Saltar al contenido
CADCAMFUN
Documentos

Documentación

Pila de tecnología

Versiones y responsabilidades extraídas de los manifiestos del espacio de trabajo y la configuración del tiempo de ejecución.

Traducido automáticamente del inglés. Ver el original en inglés

Marco de ejecución y servicio

El manifiesto raíz selecciona bun@1.4.4 como administrador de paquetes. Bun instala los espacios de trabajo, ejecuta bun:test, escriba cheques con el incorporado bun check, sirve el sidecar, proporciona SQLite y API de hash de contraseñas, y compila el binario del sidecar. El desarrollo frontend de escritorio utiliza Vite y el empaquetado nativo utiliza Rust y Tauri.

Uso de servicios de aplicaciones effect@4.0.0-rc.112. Se declara exactamente la misma versión en todos los espacios de trabajo que dependen de Effect, incluida la API, la base de datos, el núcleo, el escritorio, el flujo de trabajo y el sidecar. Las anulaciones de raíz alinean los paquetes de la plataforma de nodos con esa versión. Effect proporciona errores escritos, esquemas, contexto de servicio, capas, simultaneidad y API HTTP.

El código utiliza el formulario de servicio v4 Context.Service y módulos HTTP bajo effect/unstable. La documentación que coincida con la versión está instalada en packages/db/node_modules/effect/ai-docs/src/. Mantenga las actualizaciones de dependencia coordinadas entre los consumidores.

Base de datos y contratos

Usos de persistencia drizzle-orm@1.0.0-beta.22 con bun:sqlite. La generación de migración de bases de datos utiliza la coincidencia drizzle-kit liberar. El esquema es TypeScript; Los directorios de migración generados contienen los metadatos de migración y SQL utilizados durante las actualizaciones.

El efecto HttpApi define el contrato HTTP. El generador de código del espacio de trabajo compila ese contrato en las salidas del cliente Promise and Effect. Zod también está presente en dependencias de API e IA para integraciones que lo requieran; no reemplaza los esquemas de límites de HttpApi.

Escritorio y gráficos

El escritorio utiliza solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0y CSS Tailwind 3. El banco de trabajo utiliza controles Kobalte, íconos Lucide, edición Monaco y Chart.js cuando las funciones correspondientes los necesitan.

La ventana gráfica utiliza three ^0.180.0. La geometría del núcleo está separada del renderizado; three-csg-ts y occt-import-js 0.0.23 admite geometría de escritorio adicional/rutas de importación. Tauri v2 proporciona acceso API nativo, diálogos, operaciones de shell, registro, integración del sistema operativo e integración del actualizador a través de complementos instalados.

Tiempo de ejecución de IA

@cadcamfun/ai patas @nikcli-ai/sdk-next 1.428.0 y ai 7.0.127. Los adaptadores de modelos directos incluyen Anthropic, OpenAI, proveedores compatibles con OpenAI y la puerta de enlace AI SDK. El sidecar selecciona el host nikcli integrado de forma predeterminada o el host directo a través de CADCAMFUN_AI_HOST.

Las herramientas de aplicación y los esquemas de acción se encuentran por encima del transporte del proveedor. Cambiar de proveedor no crea un segundo catálogo de acciones. La conectividad del modelo, las credenciales, la cancelación y el comportamiento de la sesión están documentados en el Referencia de IA.

Móvil y documentación

El manifiesto móvil utiliza Expo. ~57.0.27, reaccionar 19.2.3, reaccionar nativo 0.86.3y enrutador Expo ~57.0.25. Su transporte complementario personalizado es un módulo nativo. NativeWind, Reanimated, Gesture Handler, SecureStore y la autenticación local son compatibles con la aplicación móvil.

Este sitio utiliza Astro ^5.14.1 con el adaptador Cloudflare, integraciones MDX y Tailwind. Las páginas de documentación están prerenderizadas; asistente, Markdown, respaldo de Studio y rutas de artefactos se ejecutan en el servidor. La API de Studio local se ejecuta en Bun porque usa bun:sqlite.

La verificación de tipos utiliza el verificador integrado de Bun, bun check, que lee el contenido de cada espacio de trabajo tsconfig.json e informa los mismos diagnósticos que tsc. Los rangos de manifiesto describen las versiones de dependencia permitidas; el archivo de bloqueo registra la resolución instalada.

El sitio de documentación utiliza Astro 5 con el adaptador Cloudflare, MDX y Tailwind (packages/web/package.json). La vista web de escritorio llega al código nativo a través de @tauri-apps/api v2.

Qué se ejecuta en cada entorno

AmbienteCódigo que se ejecutaLimitación relevante
Sidecar de BunServidor/servicios de efectos, Drizzle, bun:sqlite, clientes proveedores, flujo de trabajo y orquestación del historial.Un navegador o Cloudflare Worker no puede sustituir directamente el tiempo de ejecución SQLite de Bun.
Vista web de escritorioEstado e interacción de SolidJS, geometría central, Three.js, cliente API.Las operaciones nativas requieren comandos Tauri; La vista previa del navegador proporciona un entorno de integración diferente.
cáscara de RustCiclo de vida de Tauri, ventana/menú/bandeja nativa, comandos seguros, actualizador.Una compilación exitosa de Vite no compila ni valida el paquete de aplicaciones nativas.
Solicitud de exposiciónPantallas React Native y transporte acompañante nativo.Expo Go carece del módulo de fijación personalizado; La exportación de JavaScript no genera un instalador nativo.
Trabajador de documentación de CloudflareRutas del servidor para Markdown, solicitudes de asistente y artefactos de guía.No tiene acceso implícito a un archivo sidecar local o SQLite; Los enlaces y la configuración del backend son explícitos.
Proceso de estudio localServidor Bun HTTP y acceso de lectura directo a través de tablas Drizzle seleccionadas.La base de datos existente configurada y la sesión de cuenta son independientes del descubrimiento de escritorio.

Utilice el artefacto de compilación correspondiente al entorno que se está probando. La salida del frontend, un sidecar compilado, los recursos de migración, un paquete móvil exportado y los instaladores nativos firmados son salidas distintas incluso cuando un comando coordina varias etapas.

Versiones fijadas

CapaTecnologíaVersión (de manifiestos del paquete)
Administrador de paquetes/tiempo de ejecuciónBun1.4.4 (packageManager)
Marco de servicioEffect4.0.0-rc.112 (todos los espacios de trabajo, con platform-bun y opentelemetry en la misma versión)
Base de datosllovizna-orm / llovizna-kit, bun:sqlite1.0.0-beta.22
shell de escritorioTauri2 (Cajas oxidadas y @tauri-apps/* ^2)
Interfaz de usuario de escritorioSolidJS, @solidjs/router, Kobalte^1.9.0, ^0.15.0, ^0.13.0
3Dtres.js, tres-csg-ts^0.180.0, ^3.2.0
Importación PASOocct-import-js0.0.23
editor de códigoeditor-mónaco^0.57.0
empaquetadorVite^7.0.0
AIai (Vercel AI SDK), @ai-sdk/anthropic, openai, gateway, compatible con openai, @nikcli-ai/sdk-next7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0
Validación (herramientas de IA)zod^4.1.8
TelemetriaOpenTelemetry SDK + exportadores OTLP/HTTPapi 1.9.1, sdk 2.12.0, exportadores 0.223.0
MóvilExpo, reaccionar nativo, reaccionar~57, 0.86.3, 19.2.3
DocumentosAdaptador Astro, Tailwind, Cloudflare, Wrangler^5.14.1, ^3.4.17, ^12.0.0, 4.103.0
Comprobación de tipoBun bun check, TypeScript (solo soporte para editor)1.4.4, ^5.9.0
Tareas monorepoturbo^2.11.7

Cajas de Rust en el escritorio

CajaUtilizado para
tauri (icono de bandeja, macos-api privada)Windows, bandeja, IPC
tauri-plugin-shellLanzando el binario sidecar
tauri-plugin-dialog, -fs, -openerSelectores de archivos, acceso a archivos, rutas de apertura y URL
tauri-plugin-updaterActualizaciones firmadas en la aplicación
tauri-plugin-log, -osRegistro, detección de plataforma
tauri-plugin-single-instance, -window-stateUna aplicación en ejecución; restaurar la geometría de la ventana (objetivos de escritorio)
tauri-plugin-liquid-glass (opcional)efecto de cristal de macOS con un respaldo de vitalidad
tokio, serde, thiserror, getrandom, logSupervisión asíncrona, cargas útiles de IPC, errores escritos, tokens de lanzamiento

¿Por qué estas opciones?

  • Bun ejecuta las pruebas, los scripts y el sidecar, y compila el sidecar en un binario nativo, por lo que el escritorio se entrega sin un tiempo de ejecución de JavaScript separado.
  • Effect proporciona errores escritos para cada servicio, recursos de alcance (el identificador de la base de datos y los procesos secundarios se liberan al cerrar) y una definición de HttpApi utilizada por el servidor, los clientes, los SDK generados y la referencia de API.
  • SQLite mantiene cada instalación independiente: un archivo más un WAL, respaldado antes de cada actualización del esquema.
  • Tauri utiliza la vista web del sistema y un pequeño shell Rust, que posee el proceso sidecar, los menús nativos, el actualizador y el llavero.
  • three.js renderiza la ventana gráfica; la misma biblioteca dibuja las vistas previas 3D en estas páginas de documentación.

En 3D

La pila por profundidad de dependencia 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. El núcleo es la base sobre la que se construye el resto.