跳到正文
GitHub·· 7 天前AI 评分18

RoleFit AI 与 Typeset:共享文档引擎的简历工作台与编辑器

xinyiklin/rolefit-ai

AI 导读

RoleFit AI 仓库是一个 npm-workspaces monorepo,包含浏览器优先的本地简历与求职信工作台 RoleFit AI、其桌面伴侣与下载页,以及独立编辑器 Typeset。

正文

The RoleFit AI repository is an npm-workspaces monorepo containing the browser-primary local application-materials workbench, its desktop companion and public download page, and the standalone Typeset resume editor. Both products share one deterministic document engine and one reusable editing surface.

@typeset/engine -> @typeset/editor -> Typeset
                                  -> RoleFit AI
Workspace Responsibility
apps/role-fit-ai RoleFit AI: the companion-launched, browser-primary local resume and cover-letter workbench with a loopback server, portable workspace backup, tracker, paired browser extension, and five-provider manager. Product site and downloads
apps/typeset Typeset: the standalone browser-only editor at typeset.xinyiklin.com.
packages/engine @typeset/engine: resume and constrained cover-letter document models, strict .resume and .cover codecs, fonts, deterministic layout, DOM/print rendering, and PDF emission.
packages/editor @typeset/editor: direct editing, history/style hooks, document toolbar/popovers, and shared editor styles.

The packages are private workspace source packages, not independently published libraries. Apps compose them and own their own product identity, lifecycle, and host-specific workflows; apps never import from each other.

Start here

npm install
npm run dev:rolefit  # http://localhost:5181
npm run dev:rolefit:desktop  # supported local companion flow
npm run dev:rolefit:landing  # public product/download page
npm run dev:typeset  # http://localhost:5186
npm run check        # every workspace's type/build/eval gate

Requires Node 24.18 or newer in the Node 24 line. .node-version pins Node 24.18.0, matching CI and Docker, and the workspace pins npm 11.16.0. The desktop companion runs on Electron's bundled Node instead.

Focused commands:

npm run build:typeset
npm run build:rolefit
npm run build:rolefit:landing  # isolated public product/download bundle
npm run build:rolefit:desktop  # compile the companion
npm run test:rolefit:desktop   # explicit companion integration smoke
npm run make:rolefit:desktop   # native, non-publicly-trusted test artifacts (Node 24)
npm run test:rolefit:desktop:packaged
npm run test:editor:browser
npm run test:editor:browser -- --suite=core  # focused behavior/representative wrapping
npm run test:ci  # browser harness and CI routing contracts
npm run test:document-workflows --workspace apps/role-fit-ai
npm run deps:check
npm run check --workspace packages/engine
npm run check --workspace packages/editor
npm run check --workspace apps/typeset
npm run check --workspace apps/role-fit-ai

There is intentionally no ambiguous root dev, build, or preview script. Use the named root command or an explicit workspace command.

Documentation

Deployment

  • .github/workflows/deploy-pages.yml publishes the isolated RoleFit product and download page. It does not bundle the Drafting Desk or call localhost; the installed companion starts the full browser workspace on loopback.
  • .github/workflows/release-rolefit-desktop.yml validates rolefit-vX.Y.Z tags and builds signed macOS arm64/x64 plus Windows x64 companion artifacts on matching native runners. GitHub Releases is the binary source of truth; signing environments fail closed, and no auto-update channel exists yet.
  • .github/workflows/release-rolefit-desktop-preview.yml validates rolefit-preview-vX.Y.Z-beta.N tags and publishes a clearly labeled unsigned GitHub prerelease after the same native packaging, smoke, installer, artifact, checksum, and atomic-publication gates. It never receives signing secrets.
  • .github/workflows/document-workflows.yml owns package/app correctness and non-overlapping core/extended browser contracts. See the verification guide.
  • .github/workflows/deploy-typeset.yml builds and HTTP-probes the digest-pinned apps/typeset/Dockerfile before the configured EC2 deployment. The public Typeset runtime is static Nginx content.

License

MIT © 2026 Xinyi Lin

来源:GitHub · github.com