Pular para o conteúdo
CADCAMFUN
Docs

Documentação

Pacotes e aplicativos

Nomes de espaços de trabalho, pontos de entrada públicos, consumidores e responsabilidades de implementação.

Traduzido automaticamente do inglês. Ver o original em inglês

Bibliotecas de domínio

@cadcamfun/core

packages/core/src/index.ts exporta símbolos CAD planos e inferiores cad, CAM abaixo came funções de desenho em drawing. Ele contém esboços, modelagem sólida, mosaico, troca de desenhos, operações de usinagem, pós-processadores, análise de código G e verificação. O desktop consome esse pacote diretamente para operações interativas; o sidecar o usa por trás de adaptadores HTTP e assistentes.

@cadcamfun/vcs

packages/vcs/src/index.ts expõe funções de instantâneo, objeto, referência, comparação, mesclagem e transporte do GitHub do projeto. Não possui dependências de pacote de tempo de execução. O armazenamento e a resolução do usuário ativo pertencem ao repositório e aos serviços VCS do sidecar.

@cadcamfun/workflow

packages/workflow/src/index.ts exporta esquemas de fluxo de trabalho, análise, correspondência de gatilho e execução. Depende do efeito. O sidecar registra etapas que exigem notificações, histórico do projeto ou acesso à IA; um nome de etapa de fluxo de trabalho só pode ser usado quando sua implementação é registrada no executor.

Contratos, armazenamento e IA

@cadcamfun/api

A entrada raiz packages/api/src/index.ts compõe grupos HttpApi e esquemas compartilhados. O @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. Os consumidores da API devem selecionar a superfície do cliente que representa o ponto final de que necessitam.

@cadcamfun/db

A exportação raiz fornece o efeito Database serviço e um namespace de esquema. @cadcamfun/db/schema expõe as tabelas Drizzle. Acesso SQLite, migrações, planejamento de backup e propriedade de esquema residem aqui. A maioria das consultas de aplicativos são executadas a partir de repositórios secundários por meio do serviço; o web Studio local importa esquemas de tabela para seu processo Bun independente.

@cadcamfun/ai

packages/ai/src/index.ts expõe serviços de provedores, integração nikcli incorporada, catálogo de ações, ferramentas de aplicativos, prompts e habilidades. O sidecar fornece adaptadores de projeto, geometria, usinagem, arquivo, histórico e fluxo de trabalho ao vivo. O pacote depende da API e do núcleo, com versões fixadas do nikcli e do AI SDK.

Pacotes de extensão

@cadcamfun/plugin-sdk

O SDK src/index.ts é o ponto de entrada do plugin de aplicativo público. Ele define contratos de manifesto e capacidade e auxiliares de criação de plug-ins. O host de tempo de execução reside em apps/sidecar/src/plugins; o SDK em si não é o processo host.

@cadcamfunv2/cadcamfun-nikcli-plugin

packages/nikcli-plugin/src/index.ts exporta a ponte nikcli autônoma. Ao contrário da maioria dos espaços de trabalho, ele está configurado para publicação npm pública, atualmente na versão 0.1.0. Ele descobre ações de um aplicativo CADCAMFUN em execução e as invoca por meio de HTTP autenticado. Ele não incorpora o kernel CAD ou um catálogo de ações independente.

@cadcamfun/plugin-sdk implementa a versão principal da API do plugin 1. Os identificadores de plug-in são nomes de DNS reverso de 3–128 caracteres, como com.example.gear-generatore as versões seguem major.minor.patch com um sufixo de pré-lançamento opcional (packages/plugin-sdk/src/manifest.ts).

Gerador de cliente HTTP

@cadcamfun/httpapi-codegen exporta seu compilador e emissores de packages/httpapi-codegen/src/index.ts. compile reflete um Effect HttpApi em um modelo de contrato. emitPromise cria o Promise SDK; emitEffect e emitEffectImported suporte à saída de efeitos. A variante importada faz referência a esquemas de contrato existentes.

Outras exportações incluem emissores de compatibilidade, mapeamento de erros de transporte, write, e generate. Aumento de formatos de contrato não suportados GenerationError. O script de geração de aplicativos registra exclusões de endpoint explicitamente para limitações compartilhadas e somente Promise.

packages/api/scripts/generate-clients.ts escreve src/sdk/generated e src/client/generated. Sua verificação de desvio é gerada em um diretório temporário e compara nomes e conteúdos de arquivos com a saída confirmada.

Raiz do repositório
bun run generate
bun run generate:check

A saída gerada reside em packages/api/src/client/generated e packages/api/src/sdk/generated. Correr bun run generate depois de alterar um contrato, e bun run generate:check para confirmar que a saída confirmada é atual.

Espaços de trabalho de aplicativos

@cadcamfun/sidecar — apps/sidecar
src/main.ts é a entrada executável do servidor; src/layers.ts serviços de fios e grupos atendidos. O script de início do pacote executa o Bun diretamente. A compilação em um sidecar nativo é gerenciada por scripts de construção raiz.
@cadcamfun/desktop — apps/desktop
Frontend SolidJS/Vite mais o aplicativo Tauri Rust em src-tauri. O pacote build script constrói o frontend; a embalagem nativa requer recursos do Tauri e do sidecar.
@cadcamfun/mobile — apps/mobile
Ponto de entrada do Expo Router, transporte HTTP/nativo complementar, estado de emparelhamento seguro e UI móvel. Seu script de construção exporta o pacote JavaScript do iOS; produzir um aplicativo nativo requer os comandos de construção nativos.

Documentação, assistente e estúdio

@cadcamfun/web contém páginas Astro, componentes de documentação compartilhada e o índice de conteúdo do site. A barra lateral é declarada em src/data/docsSidebar.ts; src/data/docsIndex.ts contém resumos de recuperação e palavras-chave para as mesmas rotas. Cada página de documentação pré-renderiza seu artigo.

GET /llm lista páginas de documentação como links Markdown. GET /llm?path=/docs/cam retorna o artigo renderizado correspondente como Markdown no estilo GitHub. Adicionar format=prompt para um prompt de documentação. Caminhos desconhecidos retornam 404; falhas de conversão retornam um status de erro. O pipeline Markdown elimina navegação, scripts, estilos e controles.

POST /api/docs-assistant recupera até três páginas indexadas e transmite uma resposta por meio do Workers AI ou de um back-end nikcli configurado. O desenvolvimento local do Astro desativa ligações remotas, portanto, um backend de modelo deve estar disponível para geração. O opcional SESSIONS A ligação KV permite a limitação de taxa por IP de melhor esforço; opcional ARTIFACTS o armazenamento permite guias gerados compartilháveis.

bun run --filter @cadcamfun/web dev inicia o Astro e a API do Studio. start dirige o Astro sozinho; studio inicia apenas a API Bun Studio. Selecionações de estúdio CADCAMFUN_DB, então DATABASE_URL com um opcional file: prefixo removido, então o repositório data/cadcamfun.db. O arquivo já deve existir e conter o esquema do aplicativo.

O Studio aceita o e-mail e a senha de um usuário existente, verifica a senha armazenada com Bun.passworde grava uma sessão de banco de dados de sete dias com um cookie somente HTTP. Sua visão geral retorna contagens de toda a instalação e projetos recentes para usuários autenticados. A produção /studio/api/* rota retorna 503; a documentação implantada não abre um banco de dados SQLite local.

Raiz do repositório
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build

Selecione uma superfície de integração

PrecisarSuperfícieO que o chamador fornece
Calcular geometria sem persistência@cadcamfun/coreGeometria validada e entradas de operação; a propriedade e o salvamento de documentos permanecem fora do kernel.
Chame o contrato HTTP digitado completoApiClient de @cadcamfun/apiURL base do sidecar, token do aplicativo e tempo de execução/camadas de efeito.
Use métodos gerados baseados em Promise@cadcamfun/api/sdkOpções de cliente SDK e entradas de endpoint; verifique primeiro as omissões de geração.
Oferecer um recurso de aplicativo@cadcamfun/plugin-sdkUm manifesto compatível, exportações de módulos compatíveis e recursos concedidos.
Impulsione ações do projeto a partir do nikcli independente@cadcamfunv2/cadcamfun-nikcli-pluginA URL do aplicativo em execução, o token da ponte com escopo e o projeto selecionado.
Leia a documentação em uma ferramenta/llm?path=/docs/…Uma rota de documentação conhecida; isso não invoca ações de projeto CAD/CAM.

A maioria dos pacotes de bibliotecas são espaços de trabalho privados que exportam fontes TypeScript; sua presença no monorepo não implica uma distribuição npm publicada separadamente. A ponte nikcli possui metadados de publicação explícitos. Use o Referência HTTP para integrações que devem permanecer independentes do layout interno do pacote.

Visão geral do espaço de trabalho

Espaço de trabalhoPacoteDep. internosArquivos de origemLinhasArquivos de testeConteúdo
packages/core@cadcamfun/core—30770,774106Núcleo de geometria: cad/ (80 arquivos), cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI, núcleo19622,57983Assistente: ações, host incorporado, prompts, habilidades, ferramentas
packages/api@cadcamfun/apinúcleo, httpapi-codegen6418,3889Contrato HttpApi, erros, clientes Effect e Promise
packages/db@cadcamfun/db—71,7302SQLite + Drizzle, migrações, backups
packages/vcs@cadcamfun/vcs—101,1331Histórico e mesclagem do projeto endereçado ao conteúdo
packages/workflow@cadcamfun/workflow—53201Esquema de arquivo de fluxo de trabalho e semântica de execução
packages/plugin-sdk@cadcamfun/plugin-sdkessencial99522Manifesto do plug-in, recursos, host de teste
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302Gerador de cliente para contratos HttpApi
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592Plugin que expõe CADCAMFUN ao agente nikcli
packages/web@cadcamfun/webbanco de dados8412,9913Este site de documentação, Studio, assistente de documentos
apps/sidecar@cadcamfun/sidecarai, api, core, db, plugin-sdk, vcs, fluxo de trabalho17220,79773Servidor HTTP local: http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI, núcleo55785,579104Visualização da web SolidJS (features/ 280 arquivos) + Rust shell em src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Companheiro Expo iOS

As contagens são arquivos TypeScript, TSX, Rust e Astro rastreados no git, medidos neste branch; arquivos de teste são *.test.ts(x). Dependências internas omitem o @cadcamfun/ prefixo.

Gráfico de dependência

área de trabalhosidecarmóvel banco de dadosaPIaivcfluxo de trabalhoplugin-sdk essencialhttpapi-codegen

As setas apontam de um espaço de trabalho para o que ele importa. core não tem dependências internas, portanto a geometria e o CAM podem ser testados e reutilizados sem um servidor. Somente o sidecar toca o banco de dados; os aplicativos para desktop e dispositivos móveis alcançam dados por meio api. plugin-sdk também depende core (não desenhado).

Scripts por espaço de trabalho

Espaço de trabalhoRoteiros
raiztypecheck, test, build, build:sidecar, build:desktop, desktop:dev, generate, generate:check, db:generate, db:migrate
packages/apitypecheck, coverage, generate, generate:check
packages/dbtypecheck, generate, migrate
packages/webdev, start, studio, build, preview, deploy, astro, check:freshness, check:docs-index, typecheck, generate:api-reference, check:api-reference
apps/desktoptypecheck, dev, build, stub-sidecar, tauri, tauri:dev, tauri:build
apps/mobilestart, ios, dev, ios:build, ios:release, ios:dev, web, native:generate, typecheck, build, test
apps/sidecartypecheck, start
outros pacotestypecheck

A raiz typecheck executa todos os espaços de trabalho typecheck através do turbo e depois verifica o projeto raiz. A raiz test corre bun test packages apps scripts.

Em 3D

Pacotes e suas dependências de espaço de trabalho 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.