Zum Inhalt springen
CADCAMFUN
Doku

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.

Repository-Stamm
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/sidecar
src/main.ts ist der ausführbare Servereintrag; src/layers.ts kabeldienste 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 Paket build skript 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.

Repository-Stamm
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

BrauchenOberflächeWas der Anrufer bereitstellt
Berechnen Sie Geometrie ohne Persistenz@cadcamfun/coreValidierte Geometrie- und Betriebseingaben; Eigentum und Dokumentenspeicherung bleiben außerhalb des Kernels.
Rufen Sie den vollständigen typisierten HTTP-Vertrag aufApiClient aus @cadcamfun/apiSidecar-Basis-URL, Anwendungstoken und Effektlaufzeit/-ebenen.
Verwenden Sie auf Promise basierende generierte Methoden@cadcamfun/api/sdkSDK-Clientoptionen und Endpunkteingaben; Überprüfen Sie zunächst die Auslassungen bei der Generierung.
Bieten Sie eine Anwendungsmöglichkeit an@cadcamfun/plugin-sdkEin unterstütztes Manifest, kompatible Modulexporte und gewährte Funktionen.
Fördern Sie Projektaktionen mit dem eigenständigen Nikcli@cadcamfunv2/cadcamfun-nikcli-pluginDie 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

ArbeitsplatzPaketInterne AbtQuelldateienLinienTestdateienInhalt
packages/core@cadcamfun/core—30770,774106Geometriekern: cad/ (80 Dateien), cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI, Kern19622,57983Assistent: Aktionen, eingebetteter Host, Eingabeaufforderungen, Fähigkeiten, Tools
packages/api@cadcamfun/apikern, httpapi-codegen6418,3889HttpApi-Vertrag, Fehler, Effect- und Promise-Clients
packages/db@cadcamfun/db—71,7302SQLite + Drizzle, Migrationen, Backups
packages/vcs@cadcamfun/vcs—101,1331Inhaltsbezogene Projekthistorie und Zusammenführung
packages/workflow@cadcamfun/workflow—53201Workflow-Dateischema und Ausführungssemantik
packages/plugin-sdk@cadcamfun/plugin-sdkkern99522Plugin-Manifest, Funktionen, Testhost
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302Client-Generator für HttpApi-Verträge
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592Plugin, das CADCAMFUN dem Nikcli-Agenten zugänglich macht
packages/web@cadcamfun/webdb8412,9913Diese Dokumentationsseite, Studio, Dokumentationsassistent
apps/sidecar@cadcamfun/sidecaraI, API, Core, DB, Plugin-SDK, VCS, Workflow17220,79773Lokaler HTTP-Server: http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI, Kern55785,579104SolidJS-Webansicht (features/ 280 Dateien) + Rust-Shell in src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Expo 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

desktopSidecarmobile dbaPIaivcsarbeitsablaufplugin-SDK kernhttpapi-codegen

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

ArbeitsplatzSkripte
wurzeltypecheck, 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
andere Paketetypecheck

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.

In 3D

Pakete und ihre Arbeitsbereichsabhängigkeiten Zum Orbit ziehen · zum Zoomen scrollen · zum Schwenken mit der rechten Maustaste ziehen
Alle 13-Arbeitsbereichspakete aus ihren package.json-Dateien; Jede Zeile ist eine workspace:*-Abhängigkeit (insgesamt 17). Zeilen sind Abhängigkeitstiefe: Pakete ohne Arbeitsbereichsabhängigkeiten vorne, der Sidecar, der von 8 davon abhängt, hinten. Orangefarbene Kästchen sind Apps.