Dokumentation
Pakete und Anwendungen
Arbeitsbereichsnamen, öffentliche Einstiegspunkte, Verbraucher und Implementierungsverantwortlichkeiten.
Automatisch aus dem Englischen übersetzt. Englisches Original ansehen
Domänenbibliotheken
@cadcamfun/core
packages/core/src/index.ts exportiert CAD-Symbole sowohl flach als auch unten cad, CAM unter cam, und Zeichenfunktionen unter drawing. Es umfasst Skizzen, Volumenmodellierung, Tessellation, Zeichnungsaustausch, Bearbeitungsvorgänge, Postprozessoren, G-Code-Analyse und Verifizierung. Der Desktop nutzt dieses Paket direkt für interaktive Vorgänge; Der Sidecar verwendet es hinter HTTP- und Assistentenadaptern.
@cadcamfun/vcs
packages/vcs/src/index.ts stellt Projekt-Snapshot-, Objekt-, Referenz-, Diff-, Zusammenführungs- und GitHub-Transportfunktionen bereit. Es gibt keine Laufzeitpaketabhängigkeiten. Speicher und Acting-User-Auflösung gehören zum VCS-Repository und den Diensten des Sidecars.
@cadcamfun/workflow
packages/workflow/src/index.ts exportiert Workflow-Schemata, Parsing, Trigger-Abgleich und Ausführung. Es kommt auf den Effekt an. Der Sidecar registriert Schritte, die Benachrichtigungen, Projektverlauf oder KI-Zugriff erfordern; Der Name eines Workflowschritts kann nur verwendet werden, wenn seine Implementierung im Runner registriert ist.
Verträge, Speicher und KI
@cadcamfun/api
Der Root-Eintrag packages/api/src/index.ts erstellt HttpApi-Gruppen und freigegebene Schemata. Der @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. API-Konsumenten sollten die Clientoberfläche auswählen, die den von ihnen benötigten Endpunkt darstellt.
@cadcamfun/db
Der Root-Export stellt den Effekt bereit Database dienst und einen Schema-Namespace. @cadcamfun/db/schema macht die Drizzle-Tabellen verfügbar. SQLite-Zugriff, Migrationen, Backup-Planung und Schema-Besitz sind hier verfügbar. Die meisten Anwendungsabfragen werden von Sidecar-Repositorys über den Dienst ausgeführt. Das lokale Webstudio importiert Tabellenschemata für seinen unabhängigen Bun-Prozess.
@cadcamfun/ai
packages/ai/src/index.ts stellt Anbieterdienste, die eingebettete Nikcli-Integration, den Aktionskatalog, Anwendungstools, Eingabeaufforderungen und Fähigkeiten bereit. Der Sidecar stellt Live-Projekt-, Geometrie-, Bearbeitungs-, Datei-, Verlaufs- und Workflow-Adapter bereit. Das Paket hängt von der API und dem Kern ab, mit angehefteten Nikcli- und AI SDK-Versionen.
Erweiterungspakete
@cadcamfun/plugin-sdk
Die SDKs src/index.ts ist der Einstiegspunkt für das öffentliche Anwendungs-Plugin. Es definiert Manifest- und Fähigkeitsverträge sowie Plugin-Authoring-Helfer. Der Laufzeithost lebt in apps/sidecar/src/plugins; das SDK selbst ist nicht der Hostprozess.
@cadcamfunv2/cadcamfun-nikcli-plugin
packages/nikcli-plugin/src/index.ts exportiert die eigenständige Nikcli-Brücke. Im Gegensatz zu den meisten Arbeitsbereichen ist es für die öffentliche NPM-Veröffentlichung konfiguriert, derzeit in der Version 0.1.0. Es erkennt Aktionen einer laufenden CADCAMFUN-Anwendung und ruft sie über authentifiziertes HTTP auf. Der CAD-Kernel oder ein unabhängiger Aktionskatalog werden nicht eingebettet.
@cadcamfun/plugin-sdk implementiert die Hauptversion der Plugin-API 1. Plugin-Bezeichner sind Reverse-DNS-Namen mit 3–128 Zeichen, z. B com.example.gear-generator, und Versionen folgen major.minor.patch mit einem optionalen Vorabversionssuffix (packages/plugin-sdk/src/manifest.ts).
HTTP-Client-Generator
@cadcamfun/httpapi-codegen exportiert seinen Compiler und seine Emitter aus packages/httpapi-codegen/src/index.ts. compile spiegelt einen Effekt von HttpApi in ein Vertragsmodell wider. emitPromise erstellt das Promise SDK; emitEffect und emitEffectImported unterstützung der Effektausgabe. Die importierte Variante referenziert bestehende Vertragsschemata.
Andere Exporte umfassen Kompatibilitätsemitter, Transportfehlerzuordnung, write, und generate. Nicht unterstützte Vertragsformen werden erhöht GenerationError. Das Anwendungsgenerierungsskript zeichnet Endpunktausschlüsse explizit für gemeinsame und Promise-only-Einschränkungen auf.
packages/api/scripts/generate-clients.ts schreibt src/sdk/generated und src/client/generated. Die Driftprüfung wird in ein temporäres Verzeichnis generiert und Dateinamen und Inhalte mit der festgeschriebenen Ausgabe verglichen.
bun run generate
bun run generate:check Der generierte Output lebt weiter packages/api/src/client/generated und packages/api/src/sdk/generated. Laufen bun run generate nach einer Vertragsänderung und bun run generate:check um zu bestätigen, dass die festgeschriebene Ausgabe aktuell ist.
Anwendungsarbeitsbereiche
@cadcamfun/sidecar—apps/sidecarsrc/main.tsist der ausführbare Servereintrag;src/layers.tskabeldienste und bediente Gruppen. Das Paketstartskript führt Bun direkt aus. Die Kompilierung in ein natives Sidecar wird durch Root-Build-Skripte verwaltet.@cadcamfun/desktop—apps/desktop- SolidJS/Vite-Frontend plus die Tauri Rust-Anwendung in
src-tauri. Das Paketbuildskript erstellt das Frontend; Native Verpackungen erfordern Tauri und die Sidecar-Ressourcen. @cadcamfun/mobile—apps/mobile- Expo-Router-Einstiegspunkt, begleitender HTTP/nativer Transport, sicherer Kopplungsstatus und mobile Benutzeroberfläche. Sein Build-Skript exportiert das iOS-JavaScript-Bundle; Für die Erstellung einer nativen Anwendung sind die nativen Build-Befehle erforderlich.
Dokumentation, Assistent und Studio
@cadcamfun/web enthält Astro-Seiten, gemeinsam genutzte Dokumentationskomponenten und den Site-Inhaltsindex. Die Seitenleiste ist in deklariert src/data/docsSidebar.ts; src/data/docsIndex.ts enthält Abrufzusammenfassungen und Schlüsselwörter für dieselben Routen. Jede Dokumentationsseite rendert ihren Artikel vorab.
GET /llm listet Dokumentationsseiten als Markdown-Links auf. GET /llm?path=/docs/cam gibt den entsprechenden gerenderten Artikel als Markdown im GitHub-Stil zurück. Hinzufügen format=prompt für eine Dokumentationsaufforderung. Unbekannte Pfade geben 404 zurück; Konvertierungsfehler geben einen Fehlerstatus zurück. Die Markdown-Pipeline entfernt Navigation, Skripte, Stile und Steuerelemente.
POST /api/docs-assistant ruft bis zu drei indizierte Seiten ab und streamt eine Antwort über Workers AI oder ein konfiguriertes Nikcli-Backend. Die lokale Astro-Entwicklung deaktiviert Remote-Bindungen, daher muss ein Modell-Backend für die Generierung verfügbar sein. Die Wahl SESSIONS Die KV-Bindung ermöglicht eine Best-Effort-Ratenbegrenzung pro IP; optional ARTIFACTS der Speicher ermöglicht die gemeinsame Nutzung generierter Leitfäden.
bun run --filter @cadcamfun/web dev startet sowohl Astro als auch die Studio-API. start führt Astro alleine; studio startet nur die Bun Studio API. Studio wählt CADCAMFUN_DB, dann DATABASE_URL mit einem optionalen file: präfix entfernt, dann das Repository data/cadcamfun.db. Die Datei muss bereits vorhanden sein und das Anwendungsschema enthalten.
Studio akzeptiert die E-Mail-Adresse und das Passwort eines vorhandenen Benutzers und überprüft das gespeicherte Passwort mit Bun.passwordund schreibt eine siebentägige Datenbanksitzung mit einem reinen HTTP-Cookie. Die Übersicht gibt authentifizierten Benutzern installationsweite Zählungen und aktuelle Projekte zurück. Die Produktion /studio/api/* route gibt 503 zurück; Die bereitgestellte Dokumentation öffnet keine lokale SQLite-Datenbank.
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build Wählen Sie eine Integrationsoberfläche aus
| Brauchen | Oberfläche | Was der Anrufer bereitstellt |
|---|---|---|
| Berechnen Sie Geometrie ohne Persistenz | @cadcamfun/core | Validierte Geometrie- und Betriebseingaben; Eigentum und Dokumentenspeicherung bleiben außerhalb des Kernels. |
| Rufen Sie den vollständigen typisierten HTTP-Vertrag auf | ApiClient aus @cadcamfun/api | Sidecar-Basis-URL, Anwendungstoken und Effektlaufzeit/-ebenen. |
| Verwenden Sie auf Promise basierende generierte Methoden | @cadcamfun/api/sdk | SDK-Clientoptionen und Endpunkteingaben; Überprüfen Sie zunächst die Auslassungen bei der Generierung. |
| Bieten Sie eine Anwendungsmöglichkeit an | @cadcamfun/plugin-sdk | Ein unterstütztes Manifest, kompatible Modulexporte und gewährte Funktionen. |
| Fördern Sie Projektaktionen mit dem eigenständigen Nikcli | @cadcamfunv2/cadcamfun-nikcli-plugin | Die URL der laufenden App, das bereichsbezogene Bridge-Token und das ausgewählte Projekt. |
| Lesen Sie die Dokumentation in einem Tool | /llm?path=/docs/… | Eine bekannte Dokumentationsroute; Dadurch werden keine CAD/CAM-Projektaktionen aufgerufen. |
Bei den meisten Bibliothekspaketen handelt es sich um private Arbeitsbereiche, die TypeScript-Quellen exportieren. Ihre Präsenz im Monorepo bedeutet nicht, dass es eine separat veröffentlichte NPM-Distribution gibt. Die Nikcli-Brücke verfügt über explizite Veröffentlichungsmetadaten. Benutzen Sie die HTTP-Referenz für Integrationen, die unabhängig vom internen Paketlayout bleiben sollen.
Arbeitsbereich auf einen Blick
| Arbeitsplatz | Paket | Interne Abt | Quelldateien | Linien | Testdateien | Inhalt |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | Geometriekern: cad/ (80 Dateien), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | aPI, Kern | 196 | 22,579 | 83 | Assistent: Aktionen, eingebetteter Host, Eingabeaufforderungen, Fähigkeiten, Tools |
packages/api | @cadcamfun/api | kern, httpapi-codegen | 64 | 18,388 | 9 | HttpApi-Vertrag, Fehler, Effect- und Promise-Clients |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle, Migrationen, Backups |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | Inhaltsbezogene Projekthistorie und Zusammenführung |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | Workflow-Dateischema und Ausführungssemantik |
packages/plugin-sdk | @cadcamfun/plugin-sdk | kern | 9 | 952 | 2 | Plugin-Manifest, Funktionen, Testhost |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | Client-Generator für HttpApi-Verträge |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | Plugin, das CADCAMFUN dem Nikcli-Agenten zugänglich macht |
packages/web | @cadcamfun/web | db | 84 | 12,991 | 3 | Diese Dokumentationsseite, Studio, Dokumentationsassistent |
apps/sidecar | @cadcamfun/sidecar | aI, API, Core, DB, Plugin-SDK, VCS, Workflow | 172 | 20,797 | 73 | Lokaler HTTP-Server: http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | aPI, Kern | 557 | 85,579 | 104 | SolidJS-Webansicht (features/ 280 Dateien) + Rust-Shell in src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Expo iOS-Begleiter |
Bei den Zählungen handelt es sich um TypeScript-, TSX-, Rust- und Astro-Dateien, die in Git verfolgt werden und in diesem Zweig gemessen werden. Testdateien sind *.test.ts(x). Interne Abhängigkeiten lassen das weg @cadcamfun/ präfix.
Abhängigkeitsdiagramm
Pfeile zeigen von einem Arbeitsbereich auf das, was er importiert. core verfügt über keine internen Abhängigkeiten, sodass Geometrie und CAM ohne Server getestet und wiederverwendet werden können. Nur der Sidecar berührt die Datenbank; Die Desktop- und mobilen Apps erreichen Daten api. plugin-sdk hängt auch davon ab core (nicht gezeichnet).
Skripte pro Arbeitsbereich
| Arbeitsplatz | Skripte |
|---|---|
| wurzel | 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 |
| andere Pakete | typecheck |
Die Wurzel typecheck führt jeden Arbeitsbereich aus typecheck durch Turbo und überprüft dann das Root-Projekt. Die Wurzel test läuft bun test packages apps scripts.