Saltar al contenido
CADCAMFUN
Documentos

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.

Raíz del repositorio
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/sidecar
src/main.ts es la entrada del servidor ejecutable; src/layers.ts servicios 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 paquete build el 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.

Raíz del repositorio
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

NecesidadSuperficieLo que proporciona la persona que llama
Calcular geometría sin persistencia@cadcamfun/coreEntradas validadas de geometría y operación; la propiedad y el almacenamiento de documentos permanecen fuera del núcleo.
Llame al contrato HTTP escrito completoApiClient de @cadcamfun/apiURL base de Sidecar, token de aplicación y capas/tiempo de ejecución de efectos.
Utilice métodos generados basados en promesas@cadcamfun/api/sdkOpciones de cliente SDK y entradas de puntos finales; comprobar primero las omisiones de generación.
Ofrecer una capacidad de aplicación.@cadcamfun/plugin-sdkUn manifiesto compatible, exportaciones de módulos compatibles y capacidades otorgadas.
Impulse las acciones del proyecto desde nikcli independiente@cadcamfunv2/cadcamfun-nikcli-pluginLa 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 trabajoPaqueteDepartamentos internosArchivos fuentePautaArchivos de pruebaContenido
packages/core@cadcamfun/core—30770,774106Núcleo de geometría: cad/ (80 archivos), cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI, núcleo19622,57983Asistente: acciones, host integrado, indicaciones, habilidades, herramientas
packages/api@cadcamfun/apinúcleo, httpapi-codegen6418,3889Contrato HttpApi, errores, clientes Effect y Promise
packages/db@cadcamfun/db—71,7302SQLite + Drizzle, migraciones, copias de seguridad
packages/vcs@cadcamfun/vcs—101,1331Historial de proyectos dirigidos al contenido y fusión
packages/workflow@cadcamfun/workflow—53201Esquema de archivos de flujo de trabajo y semántica de ejecución
packages/plugin-sdk@cadcamfun/plugin-sdkcentro99522Manifiesto del complemento, capacidades, host de prueba
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302Generador de clientes para contratos HttpApi
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592Complemento que expone CADCAMFUN al agente nikcli
packages/web@cadcamfun/webbase de datos8412,9913Este sitio de documentación, Studio, asistente de documentos
apps/sidecar@cadcamfun/sidecarai, api, core, db, plugin-sdk, vcs, flujo de trabajo17220,79773Servidor HTTP local: http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI, núcleo55785,579104Vista web SolidJS (features/ 280 archivos) + Rust shell en src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Compañ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

de oficinasidecarmóvil base de datosaPIaivcsflujo de trabajocomplemento-sdk centrohttpapi-codegen

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 trabajoGuiones
raíztypecheck, 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
otros paquetestypecheck

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.

En 3D

Paquetes y sus dependencias del espacio de trabajo. Arrastrar para orbitar · desplazarse para hacer zoom · arrastrar con el botón derecho para desplazarse
Todos los 13 paquetes de espacio de trabajo desde sus archivos package.json; cada línea es un espacio de trabajo:* dependencia (17 en total). Las filas son la profundidad de dependencia: paquetes sin dependencias de espacio de trabajo al frente, el sidecar, que depende de 8 de ellos, al final. Los cuadros naranjas son aplicaciones.