文档
软件包和应用程序
工作空间名称、公共入口点、消费者和实施责任。
从英文自动翻译。 查看英文原文
域库
@cadcamfun/core
packages/core/src/index.ts 导出平面和下方的 CAD 符号 cad, CAM 下 cam,以及下面的绘图函数 drawing。它包含草图、实体建模、曲面细分、绘图交换、加工操作、后处理器、G 代码分析和验证。桌面直接消费这个包进行交互操作; sidecar 在 HTTP 和辅助适配器后面使用它。
@cadcamfun/vcs
packages/vcs/src/index.ts 公开项目快照、对象、引用、差异、合并和 GitHub 传输功能。它没有运行时包依赖性。存储和代理用户解析属于 sidecar 的 VCS 存储库和服务。
@cadcamfun/workflow
packages/workflow/src/index.ts 导出工作流模式、解析、触发器匹配和执行。这取决于效果。 sidecar 注册需要通知、项目历史记录或 AI 访问的步骤;工作流步骤名称仅当其实现在运行程序中注册时才可用。
合约、存储和人工智能
@cadcamfun/api
根条目 packages/api/src/index.ts 组成 HttpApi 组和共享架构。这 @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient。 API 使用者应选择代表他们所需端点的客户端界面。
@cadcamfun/db
根导出提供效果 Database 服务和模式命名空间。 @cadcamfun/db/schema 暴露 Drizzle 表。 SQLite 访问、迁移、备份规划和模式所有权都在这里。大多数应用程序查询通过该服务从 sidecar 存储库运行;本地Web Studio为其独立的Bun进程导入表模式。
@cadcamfun/ai
packages/ai/src/index.ts 公开提供商服务、嵌入式 nikcli 集成、操作目录、应用程序工具、提示和技能。 Sidecar 提供实时项目、几何、加工、文件、历史和工作流程适配器。该软件包取决于 API 和核心,并固定 nikcli 和 AI SDK 版本。
扩展包
@cadcamfun/plugin-sdk
SDK 的 src/index.ts 是公共应用程序插件入口点。它定义了清单和功能合约以及插件创作助手。运行时主机位于 apps/sidecar/src/plugins; sDK本身不是宿主进程。
@cadcamfunv2/cadcamfun-nikcli-plugin
packages/nikcli-plugin/src/index.ts 导出独立的 nikcli 桥。与大多数工作区不同,它配置为公共 npm 发布,当前版本为 0.1.0。它从正在运行的 CADCAMFUN 应用程序发现操作,并通过经过身份验证的 HTTP 调用它们。它不嵌入 CAD 内核或独立的动作目录。
@cadcamfun/plugin-sdk 实现插件 API 主要版本 1。插件标识符是 3–128 字符的反向 DNS 名称,例如 com.example.gear-generator,版本如下 major.minor.patch 带有可选的预发布后缀(packages/plugin-sdk/src/manifest.ts).
HTTP 客户端生成器
@cadcamfun/httpapi-codegen 导出其编译器和发射器 packages/httpapi-codegen/src/index.ts. compile 将 Effect HttpApi 反映到契约模型中。 emitPromise 创建 Promise SDK; emitEffect 和 emitEffectImported 支持效果输出。导入的变体引用现有的合同模式。
其他导出包括兼容性发射器、传输错误映射、 write, 和 generate。不受支持的合约形状引发 GenerationError。应用程序生成脚本显式记录端点排除,以实现共享和仅限 Promise 的限制。
packages/api/scripts/generate-clients.ts 写 src/sdk/generated 和 src/client/generated。它的漂移检查会生成一个临时目录,并将文件名和内容与提交的输出进行比较。
bun run generate
bun run generate:check 生成的输出位于 packages/api/src/client/generated 和 packages/api/src/sdk/generated。跑步 bun run generate 更改合同后,以及 bun run generate:check 确认提交的输出是最新的。
应用程序工作区
@cadcamfun/sidecar—apps/sidecarsrc/main.ts是可执行服务器条目;src/layers.ts有线服务和服务团体。包启动脚本直接运行Bun。编译为本机 sidecar 由根构建脚本管理。@cadcamfun/desktop—apps/desktop- SolidJS/Vite 前端加上 Tauri Rust 应用程序
src-tauri。包裹的build脚本构建前端;原生打包需要 Tauri 和 sidecar 资源。 @cadcamfun/mobile—apps/mobile- Expo Router 入口点、配套 HTTP/本机传输、安全配对状态和移动 UI。它的构建脚本导出 iOS JavaScript 包;生成本机应用程序需要本机构建命令。
文档、助理和 Studio
@cadcamfun/web 包含 Astro 页面、共享文档组件和站点内容索引。侧边栏声明于 src/data/docsSidebar.ts; src/data/docsIndex.ts 保存相同路线的检索摘要和关键字。每个文档页面都会预呈现其文章。
GET /llm 将文档页面列为 Markdown 链接。 GET /llm?path=/docs/cam 以 GitHub 风格的 Markdown 形式返回相应的渲染文章。添加 format=prompt 以获得文档提示。未知路径返回 404;转换失败会返回错误状态。 Markdown 管道剥离了导航、脚本、样式和控件。
POST /api/docs-assistant 检索最多三个索引页面并通过 Workers AI 或配置的 nikcli 后端传输答案。本地 Astro 开发禁用远程绑定,因此模型后端必须可用于生成。可选的 SESSIONS KV 绑定可实现尽力而为的每个 IP 速率限制;选修的 ARTIFACTS 存储支持可共享生成的指南。
bun run --filter @cadcamfun/web dev 启动 Astro 和 Studio API。 start 独自经营Astro; studio 仅启动 Bun Studio API。工作室精选 CADCAMFUN_DB, 然后 DATABASE_URL 带有可选的 file: 删除前缀,然后存储库的 data/cadcamfun.db。该文件必须已存在并包含应用程序架构。
Studio 接受现有用户的电子邮件和密码,并使用以下命令验证存储的密码 Bun.password,并使用纯 HTTP cookie 写入为期 7 天的数据库会话。其概述向经过身份验证的用户返回安装范围内的计数和最近的项目。生产 /studio/api/* 路线返回503;部署的文档不会打开本地 SQLite 数据库。
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build 选择积分表面
| 需要 | 表面 | 调用者提供什么 |
|---|---|---|
| 无需持久性即可计算几何 | @cadcamfun/core | 验证几何形状和操作输入;所有权和文档保存保留在内核之外。 |
| 调用完整的类型化 HTTP 合约 | ApiClient 从 @cadcamfun/api | Sidecar 基本 URL、应用程序令牌和效果运行时/层。 |
| 使用基于 Promise 的生成方法 | @cadcamfun/api/sdk | SDK客户端选项和端点输入;首先检查生成遗漏。 |
| 提供应用能力 | @cadcamfun/plugin-sdk | 支持的清单、兼容的模块导出和授予的功能。 |
| 从独立的 nikcli 推动项目行动 | @cadcamfunv2/cadcamfun-nikcli-plugin | 正在运行的应用程序 URL、范围桥令牌和选定的项目。 |
| 阅读工具中的文档 | /llm?path=/docs/… | 已知的文档路径;这不会调用 CAD/CAM 项目操作。 |
大多数库包都是导出 TypeScript 源代码的私有工作区;它们出现在 monorepo 中并不意味着单独发布的 npm 发行版。 nikcli 桥具有明确的发布元数据。使用 HTTP 参考 用于应保持独立于内部封装布局的集成。
工作区一览
| 工作空间 | 包裹 | 内部部门 | 源文件 | 线路 | 测试文件 | 内容 |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | 几何内核: cad/ (80 个文件), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | aPI、核心 | 196 | 22,579 | 83 | 助手:动作、嵌入式主机、提示、技能、工具 |
packages/api | @cadcamfun/api | 核心,httpapi-codegen | 64 | 18,388 | 9 | HttpApi 合约、错误、Effect 和 Promise 客户端 |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle、迁移、备份 |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | 内容寻址的项目历史和合并 |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | 工作流文件架构和运行语义 |
packages/plugin-sdk | @cadcamfun/plugin-sdk | 核 | 9 | 952 | 2 | 插件清单、功能、测试主机 |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | HttpApi 合约的客户端生成器 |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | 将 CADCAMFUN 暴露给 nikcli 代理的插件 |
packages/web | @cadcamfun/web | 数据库 | 84 | 12,991 | 3 | 本文档站点、Studio、文档助手 |
apps/sidecar | @cadcamfun/sidecar | ai、api、core、db、plugin-sdk、vcs、工作流程 | 172 | 20,797 | 73 | 本地 HTTP 服务器: http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | aPI、核心 | 557 | 85,579 | 104 | SolidJS 网页视图 (features/ 280 文件)+ Rust shell src-tauri/ |
apps/mobile | @cadcamfun/mobile | 应用程序编程接口 | 79 | 7,637 | 7 | 世博会 iOS 伴侣 |
计数是在 git 中跟踪的 TypeScript、TSX、Rust 和 Astro 文件,在此分支上进行测量;测试文件是 *.test.ts(x)。内部依赖省略 @cadcamfun/ 前缀。
依赖图
箭头从工作区指向它导入的内容。 core 没有内部依赖性,因此可以在没有服务器的情况下测试和重用几何图形和 CAM。只有 sidecar 接触数据库;桌面和移动应用程序通过以下方式获取数据 api. plugin-sdk 还取决于 core (未绘制)。
每个工作区的脚本
| 工作空间 | 脚本 |
|---|---|
| 根 | typecheck, test, build, build:sidecar, build:desktop, desktop:dev, generate, generate:check, db:generate, db:migrate |
packages/api | typecheck, coverage, generate, generate:check |
packages/db | typecheck, generate, migrate |
packages/web | dev, start, studio, build, preview, deploy, astro, check:freshness, check:docs-index, typecheck, generate:api-reference, check:api-reference |
apps/desktop | typecheck, dev, build, stub-sidecar, tauri, tauri:dev, tauri:build |
apps/mobile | start, ios, dev, ios:build, ios:release, ios:dev, web, native:generate, typecheck, build, test |
apps/sidecar | typecheck, start |
| 其他套餐 | typecheck |
根 typecheck 运行每个工作区的 typecheck 通过turbo,然后检查根项目。根 test 运行 bun test packages apps scripts.