コンテンツへスキップ
CADCAMFUN
ドキュメント

ドキュメント

パッケージとアプリケーション

ワークスペース名、パブリック エントリ ポイント、コンシューマ、および実装の責任。

英語から自動翻訳されています。 英語の原文を見る

ドメインライブラリ

@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/sidecar
src/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/sdkSDK クライアント オプションとエンドポイント入力。最初に生成漏れを確認してください。
アプリケーション機能を提供する@cadcamfun/plugin-sdkサポートされているマニフェスト、互換性のあるモジュールのエクスポート、および付与された機能。
スタンドアロンの nikcli からプロジェクトのアクションを推進@cadcamfunv2/cadcamfun-nikcli-plugin実行中のアプリの URL、スコープ指定されたブリッジ トークン、および選択したプロジェクト。
ツールでドキュメントを読む/llm?path=/docs/…既知の文書化ルート。これにより、CAD/CAM プロジェクトのアクションは呼び出されません。

ほとんどのライブラリ パッケージは、TypeScript ソースをエクスポートするプライベート ワークスペースです。モノリポジトリにそれらが存在することは、個別に公開された npm ディストリビューションを意味するものではありません。 nikcli ブリッジには明示的な出版メタデータがあります。を使用します。 HTTPリファレンス 内部パッケージのレイアウトから独立したままにする必要がある統合の場合。

ワークスペースの概要

ワークスペースパッケージ内部部門ソースファイルラインテストファイルコンテンツ
packages/core@cadcamfun/core—30770,774106ジオメトリカーネル: cad/ (80 ファイル)、 cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI、コア19622,57983アシスタント: アクション、埋め込みホスト、プロンプト、スキル、ツール
packages/api@cadcamfun/apiコア、httpapi-codegen6418,3889HttpApi コントラクト、エラー、Effect および Promise クライアント
packages/db@cadcamfun/db—71,7302SQLite + Drizzle、移行、バックアップ
packages/vcs@cadcamfun/vcs—101,1331コンテンツに対応したプロジェクト履歴とマージ
packages/workflow@cadcamfun/workflow—53201ワークフロー ファイル スキーマと実行セマンティクス
packages/plugin-sdk@cadcamfun/plugin-sdkコア99522プラグインのマニフェスト、機能、テスト ホスト
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302HttpApi コントラクトのクライアント ジェネレーター
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592CADCAMFUN を nikcli エージェントに公開するプラグイン
packages/web@cadcamfun/webデータベース8412,9913このドキュメント サイト、Studio、ドキュメント アシスタント
apps/sidecar@cadcamfun/sidecaraI、API、コア、DB、プラグイン SDK、VCS、ワークフロー17220,79773ローカルHTTPサーバー: http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI、コア55785,579104SolidJS ウェブビュー (features/ 280 ファイル)+ Rust シェル src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Expo iOS コンパニオン

カウントは、git で追跡され、このブランチで測定された TypeScript、TSX、Rust、Astro ファイルです。テストファイルは *.test.ts(x)。内部依存関係では省略されます。 @cadcamfun/ 接頭語。

依存関係グラフ

デスクトップサイドカー携帯 データベースaPIあいvCワークフロープラグインSDK コアhttpapi-codegen

矢印はワークスペースからインポートするものを指します。 core 内部依存関係がないため、サーバーなしでジオメトリと CAM をテストして再利用できます。サイドカーのみがデータベースにアクセスします。デスクトップ アプリとモバイル アプリは、次の経由でデータにアクセスします。 api. plugin-sdk にも依存します core (描かれていません)。

ワークスペースごとのスクリプト

ワークスペーススクリプト
根typecheck, test, build, build:sidecar, build:desktop, desktop:dev, generate, generate:check, db:generate, db:migrate
packages/apitypecheck, coverage, generate, generate:check
packages/dbtypecheck, generate, migrate
packages/webdev, start, studio, build, preview, deploy, astro, check:freshness, check:docs-index, typecheck, generate:api-reference, check:api-reference
apps/desktoptypecheck, dev, build, stub-sidecar, tauri, tauri:dev, tauri:build
apps/mobilestart, ios, dev, ios:build, ios:release, ios:dev, web, native:generate, typecheck, build, test
apps/sidecartypecheck, start
他のパッケージtypecheck

根 typecheck すべてのワークスペースを実行します typecheck ターボを介してルート プロジェクトを確認します。根 test 走る bun test packages apps scripts.

3Dで

パッケージとそのワークスペースの依存関係 ドラッグして周回します · スクロールしてズーム · 右ドラッグしてパンします
package.json ファイルからのすべての 13 ワークスペース パッケージ。各行は workspace:* の依存関係です (合計 17)。行は依存関係の深さを表します。前にワークスペース依存関係のないパッケージ、8 に依存するサイドカーが後ろにあります。オレンジ色のボックスはアプリです。