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

ドキュメント

技術スタック

バージョンと責任は、ワークスペース マニフェストとランタイム構成から取得されます。

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

ランタイムとサービスのフレームワーク

ルートマニフェストが選択するのは、 bun@1.4.4 パッケージマネージャーとして。 Bun はワークスペースをインストールし、実行します bun:test、組み込みによる型チェック bun check、サイドカーを提供し、SQLite とパスワード ハッシュ API を提供し、サイドカー バイナリをコンパイルします。デスクトップ フロントエンド開発では Vite を使用し、ネイティブ パッケージ化では Rust と Tauri を使用します。

アプリケーションサービスの使用 effect@4.0.0-rc.112。 API、データベース、コア、デスクトップ、ワークフロー、サイドカーなど、Effect に依存するワークスペース全体でまったく同じリリースが宣言されます。ルート オーバーライドは、ノード プラットフォーム パッケージをそのリリースに合わせます。 Effect は、型付きエラー、スキーマ、サービス コンテキスト、レイヤー、同時実行性、および HTTP API を提供します。

コードは v4 サービス フォームを使用します Context.Service および以下の HTTP モジュール effect/unstable。バージョンが一致したドキュメントは次の場所にインストールされます。 packages/db/node_modules/effect/ai-docs/src/。依存関係のアップグレードをコンシューマー間で調整してください。

データベースと契約

永続化の用途 drizzle-orm@1.0.0-beta.22 と bun:sqlite。データベース移行の生成ではマッチングが使用されます drizzle-kit リリース。スキーマは TypeScript です。生成された移行ディレクトリには、アップグレード中に使用される SQL および移行メタデータが含まれます。

効果 HttpApi は HTTP コントラクトを定義します。ワークスペース コード ジェネレーターは、そのコントラクトを Promise and Effect クライアント出力にコンパイルします。 Zod は、それを必要とする統合の API および AI 依存関係にも存在します。 HttpApi の境界スキーマを置き換えるものではありません。

デスクトップとグラフィックス

デスクトップが使用するのは、 solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0、Tailwind CSS 3。ワークベンチは、対応する機能が必要とする Kobalte コントロール、Lucide アイコン、Monaco 編集、および Chart.js を使用します。

ビューポートが使用するのは、 three ^0.180.0。コア ジオメトリはレンダリングとは別のものです。 three-csg-ts そして occt-import-js 0.0.23 追加のデスクトップ ジオメトリ/インポート パスをサポートします。 Tauri v2 は、インストールされたプラグインを介して、ネイティブ API アクセス、ダイアログ、シェル操作、ロギング、OS 統合、およびアップデータ統合を提供します。

AI ランタイム

@cadcamfun/ai ピン @nikcli-ai/sdk-next 1.428.0 そして ai 7.0.127。直接モデル アダプターには、Anthropic、OpenAI、OpenAI 互換プロバイダー、および AI SDK ゲートウェイが含まれます。サイドカーは、デフォルトで埋め込み nikcli ホストを選択するか、直接ホストを選択します。 CADCAMFUN_AI_HOST.

アプリケーション ツールとアクション スキーマは、プロバイダー トランスポートの上に位置します。プロバイダーを変更しても、2 番目のアクション カタログは作成されません。モデルの接続、認証情報、キャンセル、セッションの動作については、 AIリファレンス.

モバイルとドキュメント

モバイルマニフェストはExpoを使用します ~57.0.27、反応する 19.2.3、ネイティブに反応する 0.86.3、およびエキスポルーター ~57.0.25。そのカスタム コンパニオン トランスポートはネイティブ モジュールです。 NativeWind、Reanimated、Gesture Handler、SecureStore、およびローカル認証がモバイル アプリケーションをサポートします。

このサイトはAstroを使用しています ^5.14.1 cloudflare アダプター、MDX、Tailwind の統合を使用します。ドキュメント ページは事前にレンダリングされます。アシスタント、Markdown、Studio フォールバック、アーティファクト ルートはサーバー上で実行されます。ローカル Studio API は Bun で実行されます。 bun:sqlite.

型チェックは Bun の組み込みチェッカーを使用します。 bun check、各ワークスペースの tsconfig.json と同じ診断結果を報告します tsc。マニフェスト範囲には、許可される依存関係のバージョンが記述されます。ロックファイルには、インストールされている解像度が記録されます。

ドキュメント サイトでは、Astro 5 と Cloudflare アダプター、MDX、および Tailwind (packages/web/package.json)。デスクトップ Web ビューは、以下を介してネイティブ コードに到達します。 @tauri-apps/api v2.

それぞれの環境で動作するもの

環境実行されるコード関連する制限
Bun サイドカーエフェクトサーバー/サービス、Drizzle、 bun:sqlite、プロバイダー クライアント、ワークフロー、履歴のオーケストレーション。ブラウザまたは Cloudflare Worker は、Bun の SQLite ランタイムを直接置き換えることはできません。
デスクトップ Web ビューSolidJS の状態とインタラクション、コア ジオメトリ、Three.js、API クライアント。ネイティブ操作には Tauri コマンドが必要です。ブラウザーのプレビューは、別の統合環境を提供します。
RustシェルTauri ライフサイクル、ネイティブ ウィンドウ/メニュー/トレイ、安全なコマンド、アップデーター。Vite のビルドが成功しても、ネイティブ アプリケーション バンドルのビルドや検証は行われません。
博覧会申請書React Native 画面とネイティブ コンパニオン トランスポート。Expo Go にはカスタムピン留めモジュールがありません。 JavaScript エクスポートではネイティブ インストーラーは生成されません。
Cloudflare ドキュメント ワーカーMarkdown、アシスタントリクエスト、ガイドアーティファクトのサーバールート。ローカルのサイドカーまたは SQLite ファイルへの暗黙的なアクセスはありません。バインディングとバックエンド構成は明示的です。
ローカルスタジオのプロセスBun HTTP サーバーと、選択した Drizzle テーブルを介した直接読み取りアクセス。構成された既存のデータベースとアカウント セッションは、デスクトップ検出から独立しています。

テスト対象の環境に対応するビルド アーティファクトを使用します。フロントエンド出力、コンパイルされたサイドカー、移行リソース、エクスポートされたモバイル バンドル、および署名されたネイティブ インストーラーは、1 つのコマンドが複数の段階を調整する場合でも、個別の出力となります。

ピン留めされたバージョン

層テクノロジーバージョン (パッケージマニフェストから)
パッケージマネージャー/ランタイムBun1.4.4 (packageManager)
サービス体制Effect4.0.0-rc.112 (platform-bun と opentelemetry が同じバージョンのすべてのワークスペース)
データベース霧雨オーム/霧雨キット、 bun:sqlite1.0.0-ベータ版。22
デスクトップシェルTauri2 (Rust 箱と @tauri-apps/* ^2)
デスクトップUISolidJS、@solidjs/router、Kobalte^1.9.0, ^0.15.0, ^0.13.0
3Dthree.js、three-csg-ts^0.180.0, ^3.2.0
STEPインポートocct-import-js0.0.23
コードエディタモナコ編集者^0.57.0
バンドラーVite^7.0.0
AIai (Vercel AI SDK)、@ai-sdk/anthropic、openai、ゲートウェイ、openai 互換、@nikcli-ai/sdk-next7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0
検証(AIツール)ゾッド^4.1.8
テレメトリーOpenTelemetry SDK + OTLP/HTTP エクスポーターaPI 1.9.1、SDK 2.12.0、エクスポータ 0.223.0
携帯エキスポ、リアクトネイティブ、リアクト~57, 0.86.3, 19.2.3
ドキュメントAstro、Tailwind、Cloudflare アダプター、ラングラー^5.14.1, ^3.4.17, ^12.0.0, 4.103.0
型チェックBun bun check、TypeScript (エディターのサポートのみ)1.4.4, ^5.9.0
モノリポジトリのタスクターボ^2.11.7

デスクトップシェルのRustクレート

木箱用途
tauri (トレイアイコン、macos-プライベート-API)窓、トレイ、IPC
tauri-plugin-shellサイドカーバイナリの起動
tauri-plugin-dialog, -fs, -openerファイル ピッカー、ファイル アクセス、パスと URL を開く
tauri-plugin-updater署名付きアプリ内アップデート
tauri-plugin-log, -osロギング、プラットフォーム検出
tauri-plugin-single-instance, -window-state実行中のアプリ 1 つ。ウィンドウ ジオメトリの復元 (デスクトップ ターゲット)
tauri-plugin-liquid-glass (オプション)鮮やかなフォールバックを備えた macOS ガラス効果
tokio, serde, thiserror, getrandom, log非同期監視、IPC ペイロード、型付きエラー、起動トークン

なぜこれらの選択をするのか

  • Bun テスト、スクリプト、サイドカーを実行し、サイドカーを 1 つのネイティブ バイナリにコンパイルするため、デスクトップは別個の JavaScript ランタイムなしで出荷されます。
  • Effect すべてのサービスのタイプ別エラー、スコープ指定されたリソース (データベース ハンドルと子プロセスはシャットダウン時に解放される)、およびサーバー、クライアント、生成された SDK、および API リファレンスで使用される 1 つの HttpApi 定義を示します。
  • SQLite 各インストールは自己完結型に保たれます。1 つのファイルと WAL が、各スキーマのアップグレード前にバックアップされます。
  • Tauri システム Web ビューと、サイドカー プロセス、ネイティブ メニュー、アップデーター、およびキーチェーンを所有する小さな Rust シェルを使用します。
  • three.js ビューポートをレンダリングします。同じライブラリがこれらのドキュメント ページの 3D プレビューを描画します。

3Dで

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