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.
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/sidecarsrc/main.tsest l'entrée du serveur exécutable ;src/layers.tsservices 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 paquetbuildle 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.
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
| Besoin | Surface | Ce que fournit l'appelant |
|---|---|---|
| Calculer la géométrie sans persistance | @cadcamfun/core | Entré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é complet | ApiClient depuis @cadcamfun/api | URL 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/sdk | Options 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-sdk | Un 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-plugin | L'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 travail | Emballer | Dépôts internes | Fichiers sources | Lignes | Fichiers de test | Contenu |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | Noyau de géométrie : cad/ (80 fichiers), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | aPI, noyau | 196 | 22,579 | 83 | Assistant : actions, hôte intégré, invites, compétences, outils |
packages/api | @cadcamfun/api | noyau, httpapi-codegen | 64 | 18,388 | 9 | Contrat HttpApi, erreurs, clients Effect et Promise |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle, migrations, sauvegardes |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | Historique et fusion du projet axé sur le contenu |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | Schéma du fichier de workflow et sémantique d'exécution |
packages/plugin-sdk | @cadcamfun/plugin-sdk | cœur | 9 | 952 | 2 | Manifeste du plugin, capacités, hôte de test |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | Générateur de clients pour les contrats HttpApi |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | Plugin qui expose CADCAMFUN à l'agent nikcli |
packages/web | @cadcamfun/web | base de données | 84 | 12,991 | 3 | Ce site de documentation, Studio, assistant de documentation |
apps/sidecar | @cadcamfun/sidecar | ai, api, core, db, plugin-sdk, vcs, flux de travail | 172 | 20,797 | 73 | Serveur HTTP local : http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | aPI, noyau | 557 | 85,579 | 104 | Vue Web SolidJS (features/ 280 fichiers) + Shell Rust dans src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Compagnon 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
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 travail | Scripts |
|---|---|
| racine | 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 |
| autres forfaits | typecheck |
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.