Pular para o conteúdo
CADCAMFUN
Docs

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

AmbienteCódigo que ele executaLimitação relevante
Sidecar BunServidor/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 trabalhoEstado 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 RustCiclo 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 ExpoTelas 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 CloudflareRotas 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 LocalServidor 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

CamadaTecnologiaVersão (dos manifestos do pacote)
Gerenciador de pacotes/tempo de execuçãoBun1.4.4 (packageManager)
Estrutura de serviçoEffect4.0.0-rc.112 (todos os espaços de trabalho, com platform-bun e opentelemetry na mesma versão)
Banco de dadoschuvisco-orm / chuvisco-kit, bun:sqlite1.0.0-beta.22
Shell da área de trabalhoTauri2 (caixas enferrujadas e @tauri-apps/* ^2)
IU da área de trabalhoSolidJS, @solidjs/router, Kobalte^1.9.0, ^0.15.0, ^0.13.0
3Dtrês.js, três-csg-ts^0.180.0, ^3.2.0
Importação ETAPAoct-import-js0.0.23
Editor de códigoeditor de Mônaco^0.57.0
EmpacotadorVite^7.0.0
IAai (Vercel AI SDK), @ai-sdk/anthropic, openai, gateway, compatível com openai, @nikcli-ai/sdk-next7.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
TelemetriaOpenTelemetry SDK + exportadores OTLP/HTTPaPI 1.9.1, SDK 2.12.0, exportadores 0.223.0
MóvelExpo, Reagir Nativo, Reagir~57, 0.86.3, 19.2.3
DocumentosAstro, Tailwind, adaptador Cloudflare, wrangler^5.14.1, ^3.4.17, ^12.0.0, 4.103.0
Verificação de tipoBun bun check, TypeScript (somente suporte ao editor)1.4.4, ^5.9.0
Tarefas Monorepoturbo^2.11.7

Caixas de Rust no shell da área de trabalho

CaixaUsado para
tauri (ícone da bandeja, macos-private-api)Janelas, bandeja, IPC
tauri-plugin-shellLançando o binário sidecar
tauri-plugin-dialog, -fs, -openerSeletores de arquivos, acesso a arquivos, caminhos de abertura e URLs
tauri-plugin-updaterAtualizações assinadas no aplicativo
tauri-plugin-log, -osRegistro, detecção de plataforma
tauri-plugin-single-instance, -window-stateUm 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, logSupervisã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.

Em 3D

A pilha por profundidade de dependência Arraste para orbitar · role para ampliar · arraste com o botão direito para deslocar
Todos os 13 pacotes de espaço de trabalho de seus arquivos package.json; cada linha é um espaço de trabalho:* dependência (17 no total). As linhas têm profundidade de dependência: pacotes sem dependências de espaço de trabalho na frente, o sidecar, que depende de 8 deles, atrás. Caixas laranja são aplicativos. o núcleo é a base sobre a qual o resto se baseia.