Documentação
Pilha de tecnologia
Versões e responsabilidades retiradas dos manifestos do espaço de trabalho e da configuração do tempo de execução.
Traduzido automaticamente do inglês. Ver o original em inglês
Estrutura de tempo de execução e serviço
O manifesto raiz seleciona bun@1.4.4 como o gerenciador de pacotes. Bun instala os espaços de trabalho, executa bun:test, digite verificações com o integrado bun check, atende o sidecar, fornece SQLite e APIs de hash de senha e compila o binário secundário. O desenvolvimento de front-end de desktop usa Vite e o pacote nativo usa Rust e Tauri.
Uso de serviços de aplicativos effect@4.0.0-rc.112. A mesma versão exata é declarada em todos os espaços de trabalho que dependem do Effect, incluindo API, banco de dados, núcleo, desktop, fluxo de trabalho e sidecar. As substituições de raiz alinham os pacotes da plataforma do nó com essa versão. Effect fornece erros digitados, esquemas, contexto de serviço, camadas, simultaneidade e APIs HTTP.
O código usa o formulário de serviço v4 Context.Service e módulos HTTP em effect/unstable. A documentação correspondente à versão está instalada em packages/db/node_modules/effect/ai-docs/src/. Mantenha as atualizações de dependências coordenadas entre os consumidores.
Banco de dados e contratos
Usos de persistência drizzle-orm@1.0.0-beta.22 com bun:sqlite. A geração de migração de banco de dados usa a correspondência drizzle-kit liberar. O esquema é TypeScript; os diretórios de migração gerados contêm os metadados SQL e de migração usados durante as atualizações.
Effect HttpApi define o contrato HTTP. O gerador de código do espaço de trabalho compila esse contrato para as saídas do cliente Promise and Effect. Zod também está presente em dependências de API e IA para integrações que o exijam; ele não substitui os esquemas de limite do HttpApi.
Desktop e gráficos
A área de trabalho usa solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0e CSS do Tailwind 3. O ambiente de trabalho usa controles Kobalte, ícones Lucide, edição Monaco e Chart.js onde os recursos correspondentes precisam deles.
A janela de visualização usa three ^0.180.0. A geometria central é separada da renderização; three-csg-ts e occt-import-js 0.0.23 suporta caminhos adicionais de geometria/importação da área de trabalho. Tauri v2 fornece acesso nativo à API, diálogos, operações de shell, registro, integração de sistema operacional e integração de atualizador por meio de plug-ins instalados.
Tempo de execução de IA
@cadcamfun/ai alfinetes @nikcli-ai/sdk-next 1.428.0 e ai 7.0.127. Os adaptadores de modelo direto incluem Anthropic, OpenAI, provedores compatíveis com OpenAI e o gateway AI SDK. O sidecar seleciona o host nikcli incorporado por padrão ou o host direto por meio CADCAMFUN_AI_HOST.
As ferramentas de aplicação e os esquemas de ação ficam acima do transporte do provedor. A alteração de um provedor não cria um segundo catálogo de ações. A conectividade do modelo, as credenciais, o cancelamento e o comportamento da sessão estão documentados no Referência de IA.
Celular e documentação
O manifesto móvel usa Expo ~57.0.27, Reagir 19.2.3, Reagir nativo 0.86.3e Roteador Expo ~57.0.25. Seu transporte complementar personalizado é um módulo nativo. NativeWind, Reanimated, Gesture Handler, SecureStore e autenticação local suportam o aplicativo móvel.
Este site usa Astro ^5.14.1 com o adaptador Cloudflare, integrações MDX e Tailwind. As páginas de documentação são pré-renderizadas; assistente, Markdown, substituto do Studio e rotas de artefato são executadas no servidor. A API local do Studio é executada em Bun porque usa bun:sqlite.
A verificação de tipo usa o verificador integrado do Bun, bun check, que lê cada espaço de trabalho tsconfig.json e relata o mesmo diagnóstico que tsc. Os intervalos do manifesto descrevem as versões de dependência permitidas; o lockfile registra a resolução instalada.
O site de documentação usa Astro 5 com o adaptador Cloudflare, MDX e Tailwind (packages/web/package.json). O webview do desktop alcança o código nativo por meio de @tauri-apps/api v2.
O que é executado em cada ambiente
| Ambiente | Código que ele executa | Limitação relevante |
|---|---|---|
| Sidecar Bun | Servidor/serviços de efeitos, Drizzle, bun:sqlite, clientes provedores, fluxo de trabalho e orquestração de histórico. | Um navegador ou Cloudflare Worker não pode substituir diretamente o tempo de execução SQLite do Bun. |
| Visualização da web na área de trabalho | Estado e interação SolidJS, geometria central, Three.js, cliente API. | As operações nativas requerem comandos Tauri; a visualização do navegador fornece um ambiente de integração diferente. |
| Casca de Rust | Ciclo de vida Tauri, janela/menu/bandeja nativa, comandos seguros, atualizador. | Uma construção bem-sucedida do Vite não cria nem valida o pacote de aplicativos nativos. |
| Aplicação Expo | Telas React Native e transporte complementar nativo. | Expo Go não possui o módulo de fixação personalizado; A exportação de JavaScript não produz um instalador nativo. |
| Trabalhador de documentação da Cloudflare | Rotas de servidor para Markdown, solicitações de assistente e artefatos de guia. | Não tem acesso implícito a um sidecar local ou arquivo SQLite; ligações e configuração de back-end são explícitas. |
| Processo do Estúdio Local | Servidor HTTP Bun e acesso de leitura direto através de tabelas Drizzle selecionadas. | O banco de dados existente configurado e a sessão de conta são independentes da descoberta de desktop. |
Use o artefato de construção correspondente ao ambiente que está sendo testado. A saída de front-end, um sidecar compilado, recursos de migração, um pacote móvel exportado e instaladores nativos assinados são resultados distintos, mesmo quando um comando coordena vários estágios.
Versões fixadas
| Camada | Tecnologia | Versão (dos manifestos do pacote) |
|---|---|---|
| Gerenciador de pacotes/tempo de execução | Bun | 1.4.4 (packageManager) |
| Estrutura de serviço | Effect | 4.0.0-rc.112 (todos os espaços de trabalho, com platform-bun e opentelemetry na mesma versão) |
| Banco de dados | chuvisco-orm / chuvisco-kit, bun:sqlite | 1.0.0-beta.22 |
| Shell da área de trabalho | Tauri | 2 (caixas enferrujadas e @tauri-apps/* ^2) |
| IU da área de trabalho | SolidJS, @solidjs/router, Kobalte | ^1.9.0, ^0.15.0, ^0.13.0 |
| 3D | três.js, três-csg-ts | ^0.180.0, ^3.2.0 |
| Importação ETAPA | oct-import-js | 0.0.23 |
| Editor de código | editor de Mônaco | ^0.57.0 |
| Empacotador | Vite | ^7.0.0 |
| IA | ai (Vercel AI SDK), @ai-sdk/anthropic, openai, gateway, compatível com openai, @nikcli-ai/sdk-next | 7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0 |
| Validação (ferramentas de IA) | zod | ^4.1.8 |
| Telemetria | OpenTelemetry SDK + exportadores OTLP/HTTP | aPI 1.9.1, SDK 2.12.0, exportadores 0.223.0 |
| Móvel | Expo, Reagir Nativo, Reagir | ~57, 0.86.3, 19.2.3 |
| Documentos | Astro, Tailwind, adaptador Cloudflare, wrangler | ^5.14.1, ^3.4.17, ^12.0.0, 4.103.0 |
| Verificação de tipo | Bun bun check, TypeScript (somente suporte ao editor) | 1.4.4, ^5.9.0 |
| Tarefas Monorepo | turbo | ^2.11.7 |
Caixas de Rust no shell da área de trabalho
| Caixa | Usado para |
|---|---|
tauri (ícone da bandeja, macos-private-api) | Janelas, bandeja, IPC |
tauri-plugin-shell | Lançando o binário sidecar |
tauri-plugin-dialog, -fs, -opener | Seletores de arquivos, acesso a arquivos, caminhos de abertura e URLs |
tauri-plugin-updater | Atualizações assinadas no aplicativo |
tauri-plugin-log, -os | Registro, detecção de plataforma |
tauri-plugin-single-instance, -window-state | Um aplicativo em execução; restaurar a geometria da janela (alvos de desktop) |
tauri-plugin-liquid-glass (opcional) | efeito de vidro macOS com um substituto vibrante |
tokio, serde, thiserror, getrandom, log | Supervisão assíncrona, cargas IPC, erros de digitação, tokens de inicialização |
Por que essas escolhas
- Bun executa os testes, os scripts e o sidecar, e compila o sidecar em um binário nativo, para que o desktop seja fornecido sem um tempo de execução de JavaScript separado.
- Effect fornece erros de tipo de serviço, recursos com escopo (o identificador do banco de dados e os processos filhos são liberados no desligamento) e uma definição de HttpApi usada pelo servidor, clientes, SDKs gerados e a referência da API.
- SQLite mantém cada instalação independente: um arquivo mais um WAL, com backup antes de cada atualização de esquema.
- Tauri usa o webview do sistema e um pequeno shell Rust, que possui o processo sidecar, menus nativos, o atualizador e as chaves.
- three.js renderiza a janela de visualização; a mesma biblioteca desenha as visualizações 3D nessas páginas de documentação.