ドキュメント
パッケージとアプリケーション
ワークスペース名、パブリック エントリ ポイント、コンシューマ、および実装の責任。
英語から自動翻訳されています。 英語の原文を見る
ドメインライブラリ
@cadcamfun/core
packages/core/src/index.ts cAD シンボルをフラットとアンダーの両方にエクスポートします cad、下のCAM cam、および以下の描画関数 drawing。これには、スケッチ、ソリッド モデリング、テッセレーション、図面交換、機械加工操作、ポストプロセッサ、G コード分析、および検証が含まれます。デスクトップは対話型操作のためにこのパッケージを直接使用します。サイドカーは HTTP およびアシスタント アダプターの背後でそれを使用します。
@cadcamfun/vcs
packages/vcs/src/index.ts プロジェクトのスナップショット、オブジェクト、参照、差分、マージ、および GitHub トランスポート関数を公開します。ランタイム パッケージの依存関係はありません。ストレージと代理ユーザーの解決は、サイドカーの VCS リポジトリとサービスに属します。
@cadcamfun/workflow
packages/workflow/src/index.ts ワークフロー スキーマ、解析、トリガー マッチング、および実行をエクスポートします。エフェクトによります。サイドカーは、通知、プロジェクト履歴、または AI アクセスを必要とするステップを登録します。ワークフロー ステップ名は、その実装がランナーに登録されている場合にのみ使用できます。
契約、ストレージ、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 へのアクセス、移行、バックアップ計画、スキーマの所有権がここに存在します。ほとんどのアプリケーション クエリは、サービスを通じてサイドカー リポジトリから実行されます。ローカル Web Studio は、独立した Bun プロセス用のテーブル スキーマをインポートします。
@cadcamfun/ai
packages/ai/src/index.ts プロバイダー サービス、組み込みの nikcli 統合、アクション カタログ、アプリケーション ツール、プロンプト、およびスキルを公開します。サイドカーは、ライブ プロジェクト、ジオメトリ、加工、ファイル、履歴、およびワークフロー アダプターを提供します。パッケージは 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 を直接実行します。ネイティブ サイドカーへのコンパイルは、ルート ビルド スクリプトによって管理されます。@cadcamfun/desktop—apps/desktop- SolidJS/Vite フロントエンドと Tauri Rust アプリケーション
src-tauri。パッケージのbuildスクリプトはフロントエンドを構築します。ネイティブ パッケージ化には、Tauri とサイドカーのリソースが必要です。 @cadcamfun/mobile—apps/mobile- Expo Router エントリ ポイント、コンパニオン HTTP/ネイティブ トランスポート、安全なペアリング状態、およびモバイル UI。そのビルド スクリプトは iOS JavaScript バンドルをエクスポートします。ネイティブ アプリケーションを作成するには、ネイティブ ビルド コマンドが必要です。
ドキュメント、アシスタント、スタジオ
@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 最大 3 つのインデックス付きページを取得し、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 | サイドカーのベース URL、アプリケーション トークン、およびエフェクト ランタイム/レイヤー。 |
| Promise ベースの生成されたメソッドを使用する | @cadcamfun/api/sdk | SDK クライアント オプションとエンドポイント入力。最初に生成漏れを確認してください。 |
| アプリケーション機能を提供する | @cadcamfun/plugin-sdk | サポートされているマニフェスト、互換性のあるモジュールのエクスポート、および付与された機能。 |
| スタンドアロンの nikcli からプロジェクトのアクションを推進 | @cadcamfunv2/cadcamfun-nikcli-plugin | 実行中のアプリの URL、スコープ指定されたブリッジ トークン、および選択したプロジェクト。 |
| ツールでドキュメントを読む | /llm?path=/docs/… | 既知の文書化ルート。これにより、CAD/CAM プロジェクトのアクションは呼び出されません。 |
ほとんどのライブラリ パッケージは、TypeScript ソースをエクスポートするプライベート ワークスペースです。モノリポジトリにそれらが存在することは、個別に公開された 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、コア、DB、プラグイン 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 シェル src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Expo iOS コンパニオン |
カウントは、git で追跡され、このブランチで測定された TypeScript、TSX、Rust、Astro ファイルです。テストファイルは *.test.ts(x)。内部依存関係では省略されます。 @cadcamfun/ 接頭語。
依存関係グラフ
矢印はワークスペースからインポートするものを指します。 core 内部依存関係がないため、サーバーなしでジオメトリと CAM をテストして再利用できます。サイドカーのみがデータベースにアクセスします。デスクトップ アプリとモバイル アプリは、次の経由でデータにアクセスします。 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 ターボを介してルート プロジェクトを確認します。根 test 走る bun test packages apps scripts.