Documentazione
Pacchetti e applicazioni
Nomi delle aree di lavoro, punti di ingresso pubblici, consumatori e responsabilità di implementazione.
Tradotto automaticamente dall'inglese. Vedi l'originale in inglese
Librerie di dominio
@cadcamfun/core
packages/core/src/index.ts esporta simboli CAD sia piatti che sotto cad, CAM sotto came funzioni di disegno sotto drawing. Contiene schizzi, modellazione solida, tassellatura, scambio di disegni, operazioni di lavorazione, post-processori, analisi del codice G e verifica. Il desktop utilizza questo pacchetto direttamente per operazioni interattive; il sidecar lo utilizza dietro gli adattatori HTTP e Assistant.
@cadcamfun/vcs
packages/vcs/src/index.ts espone le funzioni di snapshot, oggetto, riferimento, diff, unione e trasporto GitHub del progetto. Non ha dipendenze del pacchetto runtime. L'archiviazione e la risoluzione dell'utente agente appartengono al repository e ai servizi VCS del sidecar.
@cadcamfun/workflow
packages/workflow/src/index.ts esporta schemi di flusso di lavoro, analisi, corrispondenza di trigger ed esecuzione. Dipende dall'effetto. Il sidecar registra i passaggi che richiedono notifiche, cronologia del progetto o accesso all'intelligenza artificiale; il nome di una fase del flusso di lavoro è utilizzabile solo quando la sua implementazione è registrata nel runner.
Contratti, archiviazione e intelligenza artificiale
@cadcamfun/api
La voce radice packages/api/src/index.ts compone gruppi HttpApi e schemi condivisi. IL @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. I consumatori API devono selezionare la superficie client che rappresenta l'endpoint di cui hanno bisogno.
@cadcamfun/db
L'esportazione root fornisce l'effetto Database servizio e uno spazio dei nomi dello schema. @cadcamfun/db/schema espone i tavoli Drizzle. L'accesso SQLite, le migrazioni, la pianificazione del backup e la proprietà dello schema risiedono qui. La maggior parte delle query delle applicazioni vengono eseguite dai repository sidecar tramite il servizio; lo Studio web locale importa schemi di tabelle per il suo processo Bun indipendente.
@cadcamfun/ai
packages/ai/src/index.ts espone i servizi del fornitore, l'integrazione nikcli incorporata, il catalogo delle azioni, gli strumenti applicativi, i suggerimenti e le competenze. Il sidecar fornisce adattatori di progetto live, geometria, lavorazione, file, cronologia e flusso di lavoro. Il pacchetto dipende dall'API e dal core, con versioni nikcli e AI SDK bloccate.
Pacchetti di estensione
@cadcamfun/plugin-sdk
Gli SDK src/index.ts è il punto di ingresso del plugin dell'applicazione pubblica. Definisce i contratti manifest e di capacità e gli aiutanti per la creazione di plug-in. L'host runtime risiede in apps/sidecar/src/plugins; l'SDK stesso non è il processo host.
@cadcamfunv2/cadcamfun-nikcli-plugin
packages/nikcli-plugin/src/index.ts esporta il bridge nikcli autonomo. A differenza della maggior parte degli spazi di lavoro, è configurato per la pubblicazione npm pubblica, attualmente alla versione 0.1.0. Rileva le azioni da un'applicazione CADCAMFUN in esecuzione e le richiama tramite HTTP autenticato. Non incorpora il kernel CAD o un catalogo di azioni indipendente.
@cadcamfun/plugin-sdk implementa la versione principale dell'API del plugin 1. Gli identificatori del plugin sono nomi DNS inversi di 3–128 caratteri, come ad esempio com.example.gear-generator, e le versioni seguono major.minor.patch con un suffisso pre-release opzionale (packages/plugin-sdk/src/manifest.ts).
Generatore di client HTTP
@cadcamfun/httpapi-codegen esporta il suo compilatore e gli emettitori da packages/httpapi-codegen/src/index.ts. compile riflette un effetto HttpApi in un modello di contratto. emitPromise crea l'SDK Promise; emitEffect e emitEffectImported supporta l'uscita degli effetti. La variante importata fa riferimento a schemi contrattuali esistenti.
Altre esportazioni includono emettitori di compatibilità, mappatura degli errori di trasporto, write, e generate. Le forme contrattuali non supportate aumentano GenerationError. Lo script di generazione dell'applicazione registra esplicitamente le esclusioni degli endpoint per le limitazioni condivise e Promise-only.
packages/api/scripts/generate-clients.ts scrive src/sdk/generated e src/client/generated. Il suo controllo della deriva genera in una directory temporanea e confronta i nomi e i contenuti dei file con l'output impegnato.
bun run generate
bun run generate:check L'output generato vive packages/api/src/client/generated e packages/api/src/sdk/generated. Correre bun run generate dopo aver modificato un contratto, e bun run generate:check per confermare che l'output impegnato è corrente.
Aree di lavoro dell'applicazione
@cadcamfun/sidecar—apps/sidecarsrc/main.tsè la voce del server eseguibile;src/layers.tsservizi telefonici e gruppi serviti. Lo script di avvio del pacchetto esegue direttamente Bun. La compilazione in un sidecar nativo è gestita dagli script di build root.@cadcamfun/desktop—apps/desktop- Frontend SolidJS/Vite più l'applicazione Tauri Rust in
src-tauri. Il pacchettobuildlo script costruisce il frontend; il packaging nativo richiede Tauri e le risorse sidecar. @cadcamfun/mobile—apps/mobile- Punto di ingresso Expo Router, trasporto HTTP/nativo complementare, stato di accoppiamento sicuro e interfaccia utente mobile. Il suo script di compilazione esporta il bundle JavaScript iOS; la produzione di un'applicazione nativa richiede i comandi di compilazione nativi.
Documentazione, assistente e Studio
@cadcamfun/web contiene pagine Astro, componenti di documentazione condivisa e indice del contenuto del sito. La barra laterale è dichiarata in src/data/docsSidebar.ts; src/data/docsIndex.ts contiene riepiloghi di recupero e parole chiave per gli stessi percorsi. Ogni pagina della documentazione esegue il prerendering del relativo articolo.
GET /llm elenca le pagine della documentazione come collegamenti Markdown. GET /llm?path=/docs/cam restituisce l'articolo visualizzato corrispondente come Markdown basato su GitHub. Aggiungere format=prompt per una richiesta di documentazione. I percorsi sconosciuti restituiscono 404; gli errori di conversione restituiscono uno stato di errore. La pipeline Markdown elimina navigazione, script, stili e controlli.
POST /api/docs-assistant recupera fino a tre pagine indicizzate e trasmette una risposta tramite Workers AI o un backend nikcli configurato. Lo sviluppo Astro locale disabilita i collegamenti remoti, quindi un backend del modello deve essere disponibile per la generazione. L'opzionale SESSIONS Il collegamento KV consente la limitazione della velocità per IP al massimo sforzo; opzionale ARTIFACTS l'archiviazione consente guide generate condivisibili.
bun run --filter @cadcamfun/web dev avvia sia Astro che l'API Studio. start gestisce Astro da solo; studio avvia solo l'API di Bun Studio. Lo Studio seleziona CADCAMFUN_DB, poi DATABASE_URL con un opzionale file: prefisso rimosso, quindi quello del repository data/cadcamfun.db. Il file deve già esistere e contenere lo schema dell'applicazione.
Studio accetta l'e-mail e la password di un utente esistente e verifica la password memorizzata con Bun.passworde scrive una sessione di database di sette giorni con un cookie solo HTTP. La sua panoramica restituisce i conteggi a livello di installazione e i progetti recenti agli utenti autenticati. La produzione /studio/api/* il percorso restituisce 503; la documentazione distribuita non apre un database 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 Seleziona una superficie di integrazione
| Bisogno | Superficie | Cosa fornisce il chiamante |
|---|---|---|
| Calcola la geometria senza persistenza | @cadcamfun/core | Geometria convalidata e input operativi; la proprietà e il salvataggio dei documenti rimangono al di fuori del kernel. |
| Chiama il contratto HTTP tipizzato completo | ApiClient da @cadcamfun/api | URL di base del sidecar, token dell'applicazione e runtime/livelli degli effetti. |
| Utilizza metodi generati basati su Promise | @cadcamfun/api/sdk | Opzioni client SDK e input endpoint; controlla prima le omissioni di generazione. |
| Offrire una capacità applicativa | @cadcamfun/plugin-sdk | Un manifest supportato, esportazioni di moduli compatibili e funzionalità concesse. |
| Guida le azioni del progetto da nikcli autonomo | @cadcamfunv2/cadcamfun-nikcli-plugin | L'URL dell'app in esecuzione, il token bridge con ambito e il progetto selezionato. |
| Leggere la documentazione in uno strumento | /llm?path=/docs/… | Un percorso di documentazione noto; questo non richiama azioni del progetto CAD/CAM. |
La maggior parte dei pacchetti di librerie sono aree di lavoro private che esportano l'origine TypeScript; la loro presenza nel monorepo non implica una distribuzione npm pubblicata separatamente. Il bridge nikcli ha metadati di pubblicazione espliciti. Usa il Riferimento HTTP per integrazioni che dovrebbero rimanere indipendenti dal layout del pacchetto interno.
L'area di lavoro in breve
| Spazio di lavoro | Pacchetto | Dip. interni | File di origine | Linee | File di prova | Contenuto |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | Nucleo della geometria: cad/ (80 file), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | api, nucleo | 196 | 22,579 | 83 | Assistente: azioni, host incorporato, istruzioni, competenze, strumenti |
packages/api | @cadcamfun/api | core, codice httpapi | 64 | 18,388 | 9 | Contratto HttpApi, errori, client Effect e Promise |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle, migrazioni, backup |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | Cronologia e unione del progetto indirizzato al contenuto |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | Schema del file del flusso di lavoro e semantica di esecuzione |
packages/plugin-sdk | @cadcamfun/plugin-sdk | nucleo | 9 | 952 | 2 | Manifesto del plugin, funzionalità, host di test |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | Generatore di client per contratti HttpApi |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | Plugin che espone CADCAMFUN all'agente nikcli |
packages/web | @cadcamfun/web | db | 84 | 12,991 | 3 | Questo sito di documentazione, Studio, Assistente documenti |
apps/sidecar | @cadcamfun/sidecar | ai, api, core, db, plugin-sdk, vcs, flusso di lavoro | 172 | 20,797 | 73 | Server HTTP locale: http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | api, nucleo | 557 | 85,579 | 104 | Visualizzazione web SolidJS (features/ 280 file) + Rust shell inserito src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Compagno iOS dell'Expo |
I conteggi sono file TypeScript, TSX, Rust e Astro tracciati in git, misurati su questo ramo; i file di prova sono *.test.ts(x). Le dipendenze interne omettono il file @cadcamfun/ prefisso.
Grafico delle dipendenze
Le frecce indicano da un'area di lavoro a ciò che importa. core non ha dipendenze interne, quindi la geometria e il CAM possono essere testati e riutilizzati senza un server. Solo il sidecar tocca il database; le app desktop e mobili raggiungono i dati api. plugin-sdk dipende anche da core (non disegnato).
Script per area di lavoro
| Spazio di lavoro | Script |
|---|---|
| radice | 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 |
| altri pacchetti | typecheck |
La radice typecheck gestisce ogni spazio di lavoro typecheck tramite turbo e quindi controlla il progetto root. La radice test corre bun test packages apps scripts.