Documentazione
Pila tecnologica
Versioni e responsabilità prese dai manifesti dell'area di lavoro e dalla configurazione del runtime.
Tradotto automaticamente dall'inglese. Vedi l'originale in inglese
Runtime e framework di servizio
Il manifest root seleziona bun@1.4.4 come gestore dei pacchetti. Bun installa gli spazi di lavoro, corre bun:test, digita checks con il built-in bun check, serve il sidecar, fornisce SQLite e API di hashing della password e compila il file binario del sidecar. Lo sviluppo del frontend desktop utilizza Vite e il packaging nativo utilizza Rust e Tauri.
Utilizzo dei servizi applicativi effect@4.0.0-rc.112. La stessa identica versione viene dichiarata nelle aree di lavoro che dipendono da Effect, inclusi API, database, core, desktop, flusso di lavoro e sidecar. Le sostituzioni root allineano i pacchetti della piattaforma del nodo a quella versione. L'effetto fornisce errori tipizzati, schemi, contesto del servizio, livelli, concorrenza e API HTTP.
Il codice utilizza il modulo di servizio v4 Context.Service e moduli HTTP sotto effect/unstable. La documentazione corrispondente alla versione è installata in packages/db/node_modules/effect/ai-docs/src/. Mantieni gli aggiornamenti delle dipendenze coordinati tra i consumatori.
Database e contratti
Usi di persistenza drizzle-orm@1.0.0-beta.22 con bun:sqlite. La generazione della migrazione del database utilizza la corrispondenza drizzle-kit pubblicazione. Lo schema è TypeScript; le directory di migrazione generate contengono i metadati SQL e di migrazione utilizzati durante gli aggiornamenti.
Effetto HttpApi definisce il contratto HTTP. Il generatore di codice dell'area di lavoro compila il contratto negli output del client Promise ed Effect. Zod è presente anche nelle dipendenze API e AI per le integrazioni che lo richiedono; non sostituisce gli schemi di confine di HttpApi.
Desktop e grafica
Il desktop utilizza solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0e Tailwind CSS 3. L'ambiente di lavoro utilizza i controlli Kobalte, le icone Lucide, l'editing Monaco e Chart.js dove le funzionalità corrispondenti ne hanno bisogno.
Il viewport utilizza three ^0.180.0. La geometria principale è separata dal rendering; three-csg-ts e occt-import-js 0.0.23 supportare geometrie desktop aggiuntive/percorsi di importazione. Tauri v2 fornisce accesso API nativo, finestre di dialogo, operazioni della shell, registrazione, integrazione del sistema operativo e integrazione del programma di aggiornamento tramite plug-in installati.
Durata dell'intelligenza artificiale
@cadcamfun/ai perni @nikcli-ai/sdk-next 1.428.0 e ai 7.0.127. Gli adattatori del modello diretto includono Anthropic, OpenAI, provider compatibili con OpenAI e il gateway AI SDK. Il sidecar seleziona l'host nikcli incorporato per impostazione predefinita o l'host diretto tramite CADCAMFUN_AI_HOST.
Gli strumenti applicativi e gli schemi di azione si trovano al di sopra del trasporto del provider. La modifica di un fornitore non crea un secondo catalogo di azioni. La connettività del modello, le credenziali, l'annullamento e il comportamento della sessione sono documentati nel file Riferimento dell'IA.
Cellulare e documentazione
Il manifest mobile utilizza Expo ~57.0.27, Reagire 19.2.3, Reagire nativo 0.86.3e Router dell'Expo ~57.0.25. Il suo trasporto complementare personalizzato è un modulo nativo. NativeWind, Reanimated, Gesture Handler, SecureStore e l'autenticazione locale supportano l'applicazione mobile.
Questo sito utilizza Astro ^5.14.1 con l'adattatore Cloudflare, le integrazioni MDX e Tailwind. Le pagine della documentazione sono prerenderizzate; assistente, Markdown, fallback di Studio e percorsi di artefatti vengono eseguiti sul server. L'API Studio locale viene eseguita in Bun perché utilizza bun:sqlite.
Il controllo del tipo utilizza il controllo integrato di Bun, bun check, che legge i file di ogni area di lavoro tsconfig.json e riporta la stessa diagnostica di tsc. Gli intervalli manifest descrivono le versioni di dipendenza consentite; il file di lock registra la risoluzione installata.
Il sito della documentazione utilizza Astro 5 con l'adattatore Cloudflare, MDX e Tailwind (packages/web/package.json). La visualizzazione Web desktop raggiunge il codice nativo tramite @tauri-apps/api v2.
Ciò che funziona in ogni ambiente
| Ambiente | Codice che viene eseguito | Limitazione rilevante |
|---|---|---|
| Sidecar Bun | Effetto server/servizi, Drizzle, bun:sqlite, client del provider, flusso di lavoro e orchestrazione della cronologia. | Un browser o Cloudflare Worker non possono sostituire direttamente il runtime SQLite di Bun. |
| Visualizzazione Web sul desktop | Stato e interazione SolidJS, geometria principale, Three.js, client API. | Le operazioni native richiedono comandi Tauri; l'anteprima del browser fornisce un ambiente di integrazione diverso. |
| Guscio di Rust | Ciclo di vita Tauri, finestra/menu/area di notifica nativa, comandi sicuri, programma di aggiornamento. | Una build Vite riuscita non crea né convalida il bundle dell'applicazione nativa. |
| Applicazione all'Expo | Schermate React Native e trasporto compagno nativo. | Expo Go non ha il modulo di blocco personalizzato; L'esportazione JavaScript non produce un programma di installazione nativo. |
| Documentazione Cloudflare Lavoratore | Route del server per Markdown, richieste di assistente e artefatti guida. | Non ha accesso implicito a un sidecar locale o a un file SQLite; i collegamenti e la configurazione del backend sono espliciti. |
| Processo dello Studio locale | Server HTTP Bun e accesso diretto in lettura tramite tabelle Drizzle selezionate. | Il database esistente configurato e la sessione dell'account sono indipendenti dal rilevamento del desktop. |
Utilizza l'artefatto di compilazione corrispondente all'ambiente da testare. L'output del frontend, un sidecar compilato, le risorse di migrazione, un bundle mobile esportato e i programmi di installazione nativi firmati sono output distinti anche quando un comando coordina diverse fasi.
Versioni appuntate
| Strato | Tecnologia | Versione (dai manifesti dei pacchetti) |
|---|---|---|
| Gestore pacchetti/runtime | Bun | 1.4.4 (packageManager) |
| Quadro di servizio | Effect | 4.0.0-rc.112 (tutti gli spazi di lavoro, con platform-bun e opentelemetry nella stessa versione) |
| Banca dati | drizzle-orm/drizzle-kit, bun:sqlite | 1.0.0-beta.22 |
| Guscio del desktop | Tauri | 2 (Casse di ruggine e @tauri-apps/* ^2) |
| Interfaccia utente del desktop | SolidJS, @solidjs/router, Kobalte | ^1.9.0, ^0.15.0, ^0.13.0 |
| 3D | tre.js, tre-csg-ts | ^0.180.0, ^3.2.0 |
| Importazione STEP | occt-import-js | 0.0.23 |
| Editore di codice | monaco-editore | ^0.57.0 |
| Impacchettatore | Vite | ^7.0.0 |
| AI | ai (Vercel AI SDK), @ai-sdk/anthropic, openai, gateway, compatibile con openai, @nikcli-ai/sdk-next | 7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0 |
| Convalida (strumenti di intelligenza artificiale) | zod | ^4.1.8 |
| Telemetria | OpenTelemetry SDK + esportatori OTLP/HTTP | api 1.9.1, sdk 2.12.0, esportatori 0.223.0 |
| Mobile | Expo, React Nativo, React | ~57, 0.86.3, 19.2.3 |
| Documenti | Astro, Tailwind, adattatore Cloudflare, wrangler | ^5.14.1, ^3.4.17, ^12.0.0, 4.103.0 |
| Controllo del tipo | Bun bun check, TypeScript (solo supporto dell'editor) | 1.4.4, ^5.9.0 |
| Attività monorepo | turbo | ^2.11.7 |
Casse di Rust nel guscio del desktop
| Cassa | Usato per |
|---|---|
tauri (icona nella barra delle applicazioni, macos-private-api) | Finestre, vassoio, IPC |
tauri-plugin-shell | Avvio del binario del sidecar |
tauri-plugin-dialog, -fs, -opener | Selettori di file, accesso ai file, percorsi di apertura e URL |
tauri-plugin-updater | Aggiornamenti in-app firmati |
tauri-plugin-log, -os | Registrazione, rilevamento della piattaforma |
tauri-plugin-single-instance, -window-state | Un'app in esecuzione; ripristinare la geometria della finestra (destinazioni desktop) |
tauri-plugin-liquid-glass (opzionale) | effetto vetro su macOS con un fallback vivace |
tokio, serde, thiserror, getrandom, log | Supervisione asincrona, payload IPC, errori digitati, token di lancio |
Perché queste scelte
- Bun esegue i test, gli script e il sidecar e compila il sidecar in un binario nativo, quindi il desktop viene fornito senza un runtime JavaScript separato.
- Effect fornisce a ogni servizio errori tipizzati, risorse con ambito (l'handle del database e i processi secondari vengono rilasciati allo spegnimento) e una definizione HttpApi utilizzata dal server, dai client, dagli SDK generati e dal riferimento API.
- SQLite mantiene ogni installazione autonoma: un file più un WAL, di cui viene eseguito il backup prima di ogni aggiornamento dello schema.
- Tauri utilizza la visualizzazione web di sistema e una piccola shell Rust, che possiede il processo sidecar, i menu nativi, l'aggiornamento e il portachiavi.
- three.js esegue il rendering della vista; la stessa libreria disegna le anteprime 3D su queste pagine di documentazione.