Aller au contenu
CADCAMFUN
Docs

Documentation

Forfaits et applications

Noms des espaces de travail, points d’entrée publics, consommateurs et responsabilités de mise en œuvre.

Traduit automatiquement de l'anglais. Voir l'original en anglais

Bibliothèques de domaines

@cadcamfun/core

packages/core/src/index.ts exporte les symboles CAO à plat et sous cad, CAM sous cam, et les fonctions de dessin sous drawing. Il contient des esquisses, une modélisation solide, une tessellation, un échange de dessins, des opérations d'usinage, des post-processeurs, une analyse de code G et une vérification. Le bureau consomme ce package directement pour les opérations interactives ; le sidecar l'utilise derrière les adaptateurs HTTP et assistant.

@cadcamfun/vcs

packages/vcs/src/index.ts expose les fonctions d'instantané de projet, d'objet, de référence, de comparaison, de fusion et de transport GitHub. Il n’a aucune dépendance de package d’exécution. Le stockage et la résolution des utilisateurs actifs appartiennent au référentiel et aux services VCS du sidecar.

@cadcamfun/workflow

packages/workflow/src/index.ts exporte les schémas de flux de travail, l'analyse, la correspondance des déclencheurs et l'exécution. Cela dépend de l'effet. Le sidecar enregistre les étapes nécessitant des notifications, un historique du projet ou un accès à l'IA ; un nom d'étape de workflow n'est utilisable que lorsque son implémentation est enregistrée dans le programme d'exécution.

Contrats, stockage et IA

@cadcamfun/api

L'entrée racine packages/api/src/index.ts compose des groupes HttpApi et des schémas partagés. Le @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. Les consommateurs d'API doivent sélectionner la surface client qui représente le point de terminaison dont ils ont besoin.

@cadcamfun/db

L'exportation racine fournit l'effet Database service et un espace de noms de schéma. @cadcamfun/db/schema expose les tables Drizzle. L'accès SQLite, les migrations, la planification des sauvegardes et la propriété du schéma se trouvent ici. La plupart des requêtes d'application sont exécutées à partir de référentiels sidecar via le service ; le studio Web local importe des schémas de table pour son processus Bun indépendant.

@cadcamfun/ai

packages/ai/src/index.ts expose les services du fournisseur, l'intégration nikcli intégrée, le catalogue d'actions, les outils d'application, les invites et les compétences. Le sidecar fournit des adaptateurs de projet, de géométrie, d’usinage, de fichiers, d’historique et de flux de travail en direct. Le package dépend de l'API et du noyau, avec les versions nikcli et AI SDK épinglées.

Forfaits d'extension

@cadcamfun/plugin-sdk

Les SDK src/index.ts est le point d’entrée du plugin d’application publique. Il définit les contrats de manifeste et de capacité et les aides à la création de plugins. L'hôte d'exécution réside dans apps/sidecar/src/plugins; le SDK lui-même n'est pas le processus hôte.

@cadcamfunv2/cadcamfun-nikcli-plugin

packages/nikcli-plugin/src/index.ts exporte le pont nikcli autonome. Contrairement à la plupart des espaces de travail, il est configuré pour la publication publique npm, actuellement en version 0.1.0. Il découvre les actions d'une application CADCAMFUN en cours d'exécution et les invoque via HTTP authentifié. Il n'embarque pas le noyau CAO ni un catalogue d'actions indépendant.

@cadcamfun/plugin-sdk implémente la version majeure de l'API du plugin 1. Les identifiants de plugin sont des noms DNS inversés de 3–128 caractères, tels que com.example.gear-generator, et les versions suivent major.minor.patch avec un suffixe de pré-version facultatif (packages/plugin-sdk/src/manifest.ts).

Générateur de clients HTTP

@cadcamfun/httpapi-codegen exporte son compilateur et ses émetteurs depuis packages/httpapi-codegen/src/index.ts. compile reflète un effet HttpApi dans un modèle de contrat. emitPromise crée le SDK Promise ; emitEffect et emitEffectImported prend en charge la sortie d'effet. La variante importée fait référence aux schémas de contrat existants.

Les autres exportations incluent les émetteurs de compatibilité, le mappage des erreurs de transport, write, et generate. Les formes de contrat non prises en charge augmentent GenerationError. Le script de génération d'application enregistre explicitement les exclusions de points de terminaison pour les limitations partagées et Promise uniquement.

packages/api/scripts/generate-clients.ts écrit src/sdk/generated et src/client/generated. Sa vérification de dérive génère dans un répertoire temporaire et compare les noms et le contenu des fichiers avec la sortie validée.

Racine du référentiel
bun run generate
bun run generate:check

La sortie générée réside dans packages/api/src/client/generated et packages/api/src/sdk/generated. Courir bun run generate après avoir modifié un contrat, et bun run generate:check pour confirmer que la sortie validée est actuelle.

Espaces de travail d'applications

@cadcamfun/sidecar — apps/sidecar
src/main.ts est l'entrée du serveur exécutable ; src/layers.ts services de câbles et groupes desservis. Le script de démarrage du package exécute Bun directement. La compilation dans un sidecar natif est gérée par des scripts de build racine.
@cadcamfun/desktop — apps/desktop
Frontend SolidJS/Vite plus l'application Tauri Rust dans src-tauri. Le paquet build le script construit le frontend ; L'emballage natif nécessite Tauri et les ressources sidecar.
@cadcamfun/mobile — apps/mobile
Point d’entrée du routeur Expo, transport compagnon HTTP/natif, état de couplage sécurisé et interface utilisateur mobile. Son script de construction exporte le bundle iOS JavaScript ; produire une application native nécessite les commandes de build natives.

Documentation, assistant et Studio

@cadcamfun/web contient des pages Astro, des composants de documentation partagée et l'index du contenu du site. La barre latérale est déclarée dans src/data/docsSidebar.ts; src/data/docsIndex.ts contient des résumés de récupération et des mots-clés pour les mêmes itinéraires. Chaque page de documentation pré-rend son article.

GET /llm répertorie les pages de documentation sous forme de liens Markdown. GET /llm?path=/docs/cam renvoie l'article rendu correspondant sous forme de Markdown à saveur GitHub. Ajouter format=prompt pour une invite de documentation. Les chemins inconnus renvoient 404 ; les échecs de conversion renvoient un état d'erreur. Le pipeline Markdown supprime la navigation, les scripts, les styles et les contrôles.

POST /api/docs-assistant récupère jusqu'à trois pages indexées et diffuse une réponse via Workers AI ou un backend nikcli configuré. Le développement Astro local désactive les liaisons distantes, un backend de modèle doit donc être disponible pour la génération. L'optionnel SESSIONS La liaison KV permet une limitation du débit par IP au mieux ; facultatif ARTIFACTS le stockage permet de partager des guides générés.

bun run --filter @cadcamfun/web dev démarre à la fois Astro et l'API Studio. start dirige Astro seul ; studio démarre uniquement l'API Bun Studio. Le studio sélectionne CADCAMFUN_DB, alors DATABASE_URL avec un facultatif file: préfixe supprimé, puis le référentiel data/cadcamfun.db. Le fichier doit déjà exister et contenir le schéma de l'application.

Studio accepte l'e-mail et le mot de passe d'un utilisateur existant, vérifie le mot de passe stocké avec Bun.password, et écrit une session de base de données de sept jours avec un cookie HTTP uniquement. Son aperçu renvoie le nombre de projets à l'échelle de l'installation et les projets récents aux utilisateurs authentifiés. La production /studio/api/* l'itinéraire renvoie 503 ; la documentation déployée n'ouvre pas de base de données SQLite locale.

Racine du référentiel
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build

Sélectionnez une surface d'intégration

BesoinSurfaceCe que fournit l'appelant
Calculer la géométrie sans persistance@cadcamfun/coreEntrées de géométrie et d'opération validées ; la propriété et la sauvegarde des documents restent en dehors du noyau.
Appeler le contrat HTTP tapé completApiClient depuis @cadcamfun/apiURL de base Sidecar, jeton d’application et environnement d’exécution/couches d’effet.
Utiliser des méthodes générées basées sur la promesse@cadcamfun/api/sdkOptions du client SDK et entrées du point de terminaison ; vérifiez d'abord les omissions de génération.
Offrir une capacité applicative@cadcamfun/plugin-sdkUn manifeste pris en charge, des exportations de modules compatibles et des fonctionnalités accordées.
Piloter les actions du projet à partir de nikcli autonome@cadcamfunv2/cadcamfun-nikcli-pluginL'URL de l'application en cours d'exécution, le jeton de pont étendu et le projet sélectionné.
Lire la documentation dans un outil/llm?path=/docs/…Un parcours de documentation connu ; cela n'appelle pas d'actions de projet CAO/FAO.

La plupart des packages de bibliothèque sont des espaces de travail privés exportant la source TypeScript ; leur présence dans le monorepo n'implique pas une distribution npm publiée séparément. Le pont nikcli possède des métadonnées de publication explicites. Utilisez le Référence HTTP pour les intégrations qui doivent rester indépendantes de la disposition interne du package.

L'espace de travail en un coup d'oeil

Espace de travailEmballerDépôts internesFichiers sourcesLignesFichiers de testContenu
packages/core@cadcamfun/core—30770,774106Noyau de géométrie : cad/ (80 fichiers), cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI, noyau19622,57983Assistant : actions, hôte intégré, invites, compétences, outils
packages/api@cadcamfun/apinoyau, httpapi-codegen6418,3889Contrat HttpApi, erreurs, clients Effect et Promise
packages/db@cadcamfun/db—71,7302SQLite + Drizzle, migrations, sauvegardes
packages/vcs@cadcamfun/vcs—101,1331Historique et fusion du projet axé sur le contenu
packages/workflow@cadcamfun/workflow—53201Schéma du fichier de workflow et sémantique d'exécution
packages/plugin-sdk@cadcamfun/plugin-sdkcœur99522Manifeste du plugin, capacités, hôte de test
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302Générateur de clients pour les contrats HttpApi
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592Plugin qui expose CADCAMFUN à l'agent nikcli
packages/web@cadcamfun/webbase de données8412,9913Ce site de documentation, Studio, assistant de documentation
apps/sidecar@cadcamfun/sidecarai, api, core, db, plugin-sdk, vcs, flux de travail17220,79773Serveur HTTP local : http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI, noyau55785,579104Vue Web SolidJS (features/ 280 fichiers) + Shell Rust dans src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Compagnon iOS de l'Expo

Les décomptes sont des fichiers TypeScript, TSX, Rust et Astro suivis dans git, mesurés sur cette branche ; les fichiers de test sont *.test.ts(x). Les dépendances internes omettent le @cadcamfun/ préfixe.

Graphique de dépendance

ordinateur de bureausidecarmobile base de donnéesaPIaivcsflux de travailplugin-sdk cœurhttpapi-codegen

Les flèches pointent d'un espace de travail vers ce qu'il importe. core n'a pas de dépendances internes, donc la géométrie et la CAM peuvent être testées et réutilisées sans serveur. Seul le sidecar touche la base de données ; les applications de bureau et mobiles atteignent les données via api. plugin-sdk cela dépend aussi de core (non dessiné).

Scripts par espace de travail

Espace de travailScripts
racinetypecheck, 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
autres forfaitstypecheck

La racine typecheck gère tous les espaces de travail typecheck via turbo, puis vérifie le projet racine. La racine test court bun test packages apps scripts.

En 3D

Packages et leurs dépendances d’espace de travail Faites glisser vers l'orbite · faites défiler pour zoomer · faites glisser vers la droite pour effectuer un panoramique
Tous les 13 packages d'espace de travail à partir de leurs fichiers package.json ; chaque ligne est un espace de travail :* dépendance (17 au total). Les lignes représentent la profondeur des dépendances : les packages sans dépendances d'espace de travail à l'avant, le sidecar, qui dépend de 8 d'entre eux, à l'arrière. Les cases orange sont des applications.