Documentación
Paquetes y aplicaciones
Nombres de espacios de trabajo, puntos de entrada públicos, consumidores y responsabilidades de implementación.
Traducido automáticamente del inglés. Ver el original en inglés
Bibliotecas de dominio
@cadcamfun/core
packages/core/src/index.ts exporta símbolos CAD tanto planos como inferiores cad, CAM bajo camy funciones de dibujo en drawing. Contiene bocetos, modelado de sólidos, teselación, intercambio de dibujos, operaciones de mecanizado, posprocesadores, análisis de código G y verificación. El escritorio consume este paquete directamente para operaciones interactivas; el sidecar lo usa detrás de HTTP y adaptadores asistentes.
@cadcamfun/vcs
packages/vcs/src/index.ts expone las funciones de instantánea, objeto, referencia, diferenciación, fusión y transporte de GitHub del proyecto. No tiene dependencias de paquetes de tiempo de ejecución. El almacenamiento y la resolución del usuario activo pertenecen al repositorio y los servicios VCS del sidecar.
@cadcamfun/workflow
packages/workflow/src/index.ts exporta esquemas de flujo de trabajo, análisis, coincidencia de desencadenadores y ejecución. Depende del efecto. El sidecar registra pasos que requieren notificaciones, historial de proyectos o acceso a IA; un nombre de paso de flujo de trabajo solo se puede utilizar cuando su implementación está registrada en el ejecutor.
Contratos, almacenamiento e IA
@cadcamfun/api
La entrada raíz packages/api/src/index.ts compone grupos HttpApi y esquemas compartidos. El @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. Los consumidores de API deben seleccionar la superficie del cliente que represente el punto final que necesitan.
@cadcamfun/db
La exportación raíz proporciona el efecto Database servicio y un espacio de nombres de esquema. @cadcamfun/db/schema expone las mesas de Drizzle. El acceso a SQLite, las migraciones, la planificación de copias de seguridad y la propiedad del esquema se encuentran aquí. La mayoría de las consultas de aplicaciones se ejecutan desde repositorios complementarios a través del servicio; el estudio web local importa esquemas de tablas para su proceso Bun independiente.
@cadcamfun/ai
packages/ai/src/index.ts expone los servicios del proveedor, la integración integrada de nikcli, el catálogo de acciones, las herramientas de aplicación, las indicaciones y las habilidades. El sidecar proporciona adaptadores de proyectos en vivo, geometría, mecanizado, archivos, historial y flujo de trabajo. El paquete depende de la API y el núcleo, con versiones ancladas de nikcli y AI SDK.
Paquetes de extensión
@cadcamfun/plugin-sdk
Los SDK src/index.ts es el punto de entrada del complemento de la aplicación pública. Define contratos de manifiesto y capacidad y ayudas de creación de complementos. El host de ejecución vive en apps/sidecar/src/plugins; el SDK en sí no es el proceso host.
@cadcamfunv2/cadcamfun-nikcli-plugin
packages/nikcli-plugin/src/index.ts exporta el puente nikcli independiente. A diferencia de la mayoría de los espacios de trabajo, está configurado para la publicación pública de npm, actualmente en la versión 0.1.0. Descubre acciones de una aplicación CADCAMFUN en ejecución y las invoca a través de HTTP autenticado. No incorpora el núcleo CAD ni un catálogo de acciones independiente.
@cadcamfun/plugin-sdk implementa la versión principal de la API del complemento 1. Los identificadores de complementos son nombres DNS inversos de 3–128 caracteres, como com.example.gear-generator, y siguen las versiones major.minor.patch con un sufijo de prelanzamiento opcional (packages/plugin-sdk/src/manifest.ts).
Generador de cliente HTTP
@cadcamfun/httpapi-codegen exporta su compilador y emisores desde packages/httpapi-codegen/src/index.ts. compile refleja un efecto HttpApi en un modelo de contrato. emitPromise crea el SDK de Promesa; emitEffect y emitEffectImported admite salida de efectos. La variante importada hace referencia a esquemas de contrato existentes.
Otras exportaciones incluyen emisores de compatibilidad, mapeo de errores de transporte, write, y generate. Las formas de contrato no admitidas aumentan GenerationError. El script de generación de aplicaciones registra explícitamente las exclusiones de puntos finales para limitaciones compartidas y de solo promesa.
packages/api/scripts/generate-clients.ts escribe src/sdk/generated y src/client/generated. Su verificación de deriva se genera en un directorio temporal y compara los nombres y contenidos de los archivos con la salida confirmada.
bun run generate
bun run generate:check La salida generada vive en packages/api/src/client/generated y packages/api/src/sdk/generated. Correr bun run generate después de cambiar un contrato, y bun run generate:check para confirmar que la salida comprometida es actual.
Espacios de trabajo de aplicaciones
@cadcamfun/sidecar—apps/sidecarsrc/main.tses la entrada del servidor ejecutable;src/layers.tsservicios de cables y grupos atendidos. El script de inicio del paquete ejecuta Bun directamente. La compilación en un sidecar nativo se gestiona mediante scripts de compilación raíz.@cadcamfun/desktop—apps/desktop- Interfaz SolidJS/Vite más la aplicación Tauri Rust en
src-tauri. el paquetebuildel script construye la interfaz; El embalaje nativo requiere recursos de Tauri y el sidecar. @cadcamfun/mobile—apps/mobile- Punto de entrada de Expo Router, transporte HTTP/nativo complementario, estado de emparejamiento seguro e interfaz de usuario móvil. Su script de compilación exporta el paquete JavaScript de iOS; Para producir una aplicación nativa se requieren los comandos de compilación nativos.
Documentación, asistente y estudio.
@cadcamfun/web contiene páginas de Astro, componentes de documentación compartida y el índice de contenido del sitio. La barra lateral se declara en src/data/docsSidebar.ts; src/data/docsIndex.ts contiene resúmenes de recuperación y palabras clave para las mismas rutas. Cada página de documentación presenta previamente su artículo.
GET /llm enumera las páginas de documentación como enlaces de Markdown. GET /llm?path=/docs/cam devuelve el artículo renderizado correspondiente como Markdown con sabor a GitHub. Agregar format=prompt para un mensaje de documentación. Las rutas desconocidas devuelven 404; los errores de conversión devuelven un estado de error. El proceso de Markdown elimina la navegación, los scripts, los estilos y los controles.
POST /api/docs-assistant recupera hasta tres páginas indexadas y transmite una respuesta a través de Workers AI o un backend nikcli configurado. El desarrollo local de Astro desactiva los enlaces remotos, por lo que debe haber un modelo de backend disponible para su generación. el opcional SESSIONS La vinculación KV permite limitar la velocidad por IP con el mejor esfuerzo; opcional ARTIFACTS el almacenamiento permite compartir guías generadas.
bun run --filter @cadcamfun/web dev inicia Astro y Studio API. start dirige Astro solo; studio inicia solo la API de Bun Studio. Estudio selecciona CADCAMFUN_DB, entonces DATABASE_URL con un opcional file: prefijo eliminado, entonces el repositorio data/cadcamfun.db. El archivo ya debe existir y contener el esquema de la aplicación.
Studio acepta el correo electrónico y la contraseña de un usuario existente, verifica la contraseña almacenada con Bun.passwordy escribe una sesión de base de datos de siete días con una cookie solo HTTP. Su descripción general devuelve recuentos de toda la instalación y proyectos recientes a usuarios autenticados. la produccion /studio/api/* la ruta devuelve 503; La documentación implementada no abre una base de datos SQLite local.
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build Seleccione una superficie de integración
| Necesidad | Superficie | Lo que proporciona la persona que llama |
|---|---|---|
| Calcular geometría sin persistencia | @cadcamfun/core | Entradas validadas de geometría y operación; la propiedad y el almacenamiento de documentos permanecen fuera del núcleo. |
| Llame al contrato HTTP escrito completo | ApiClient de @cadcamfun/api | URL base de Sidecar, token de aplicación y capas/tiempo de ejecución de efectos. |
| Utilice métodos generados basados en promesas | @cadcamfun/api/sdk | Opciones de cliente SDK y entradas de puntos finales; comprobar primero las omisiones de generación. |
| Ofrecer una capacidad de aplicación. | @cadcamfun/plugin-sdk | Un manifiesto compatible, exportaciones de módulos compatibles y capacidades otorgadas. |
| Impulse las acciones del proyecto desde nikcli independiente | @cadcamfunv2/cadcamfun-nikcli-plugin | La URL de la aplicación en ejecución, el token de puente con ámbito y el proyecto seleccionado. |
| Leer documentación en una herramienta | /llm?path=/docs/… | Una ruta de documentación conocida; esto no invoca acciones del proyecto CAD/CAM. |
La mayoría de los paquetes de bibliotecas son espacios de trabajo privados que exportan código fuente TypeScript; su presencia en el monorepo no implica una distribución de npm publicada por separado. El puente nikcli tiene metadatos de publicación explícitos. Utilice el referencia HTTP para integraciones que deben permanecer independientes del diseño del paquete interno.
Espacio de trabajo de un vistazo
| Espacio de trabajo | Paquete | Departamentos internos | Archivos fuente | Pauta | Archivos de prueba | Contenido |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | Núcleo de geometría: cad/ (80 archivos), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | aPI, núcleo | 196 | 22,579 | 83 | Asistente: acciones, host integrado, indicaciones, habilidades, herramientas |
packages/api | @cadcamfun/api | núcleo, httpapi-codegen | 64 | 18,388 | 9 | Contrato HttpApi, errores, clientes Effect y Promise |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle, migraciones, copias de seguridad |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | Historial de proyectos dirigidos al contenido y fusión |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | Esquema de archivos de flujo de trabajo y semántica de ejecución |
packages/plugin-sdk | @cadcamfun/plugin-sdk | centro | 9 | 952 | 2 | Manifiesto del complemento, capacidades, host de prueba |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | Generador de clientes para contratos HttpApi |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | Complemento que expone CADCAMFUN al agente nikcli |
packages/web | @cadcamfun/web | base de datos | 84 | 12,991 | 3 | Este sitio de documentación, Studio, asistente de documentos |
apps/sidecar | @cadcamfun/sidecar | ai, api, core, db, plugin-sdk, vcs, flujo de trabajo | 172 | 20,797 | 73 | Servidor HTTP local: http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | aPI, núcleo | 557 | 85,579 | 104 | Vista web SolidJS (features/ 280 archivos) + Rust shell en src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Compañero de Expo iOS |
Los recuentos son archivos TypeScript, TSX, Rust y Astro rastreados en git, medidos en esta rama; Los archivos de prueba son *.test.ts(x). Las dependencias internas omiten la @cadcamfun/ prefijo.
Gráfico de dependencia
Las flechas apuntan desde un espacio de trabajo hasta lo que importa. core no tiene dependencias internas, por lo que la geometría y CAM se pueden probar y reutilizar sin un servidor. Sólo el sidecar toca la base de datos; Las aplicaciones de escritorio y móviles llegan a los datos a través de api. plugin-sdk también depende de core (no dibujado).
Scripts por espacio de trabajo
| Espacio de trabajo | Guiones |
|---|---|
| raíz | 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 |
| otros paquetes | typecheck |
la raiz typecheck ejecuta cada espacio de trabajo typecheck a través de turbo y luego verifica el proyecto raíz. la raiz test corre bun test packages apps scripts.