Документация
Пакеты и приложения
Имена рабочих областей, общедоступные точки входа, потребители и обязанности по реализации.
Автоматически переведено с английского. Смотреть оригинал на английском
Библиотеки доменов
@cadcamfun/core
packages/core/src/index.ts экспортирует символы САПР как плоские, так и под ними. cad, CAM под camи функции рисования под drawing. Он содержит эскизы, твердотельное моделирование, тесселяцию, обмен чертежами, операции обработки, постпроцессоры, анализ G-кода и проверку. Рабочий стол использует этот пакет непосредственно для интерактивных операций; сайдкар использует его за адаптерами HTTP и помощником.
@cadcamfun/vcs
packages/vcs/src/index.ts предоставляет снимки проекта, объекты, ссылки, различия, слияния и транспортные функции GitHub. Он не имеет зависимостей от пакетов времени выполнения. Хранилище и разрешение действующих пользователей принадлежат репозиторию и службам VCS вспомогательной машины.
@cadcamfun/workflow
packages/workflow/src/index.ts экспортирует схемы рабочих процессов, анализ, сопоставление триггеров и выполнение. Это зависит от Эффекта. Sidecar регистрирует шаги, требующие уведомлений, истории проекта или доступа к искусственному интеллекту; имя шага рабочего процесса можно использовать только в том случае, если его реализация зарегистрирована в бегуне.
Контракты, хранение и ИИ
@cadcamfun/api
Корневая запись packages/api/src/index.ts составляет группы HttpApi и общие схемы. @cadcamfun/api/sdk export points to the generated Promise SDK. The source tree also contains Effect clients and the full contract-based ApiClient. Потребители API должны выбрать клиентскую поверхность, которая представляет нужную им конечную точку.
@cadcamfun/db
Корневой экспорт обеспечивает эффект Database сервис и пространство имен схемы. @cadcamfun/db/schema открывает таблицы Drizzle. Доступ к SQLite, миграция, планирование резервного копирования и владение схемой находятся здесь. Большинство запросов приложений выполняются из дополнительных репозиториев через службу; локальная веб-студия импортирует схемы таблиц для своего независимого процесса Bun.
@cadcamfun/ai
packages/ai/src/index.ts предоставляет услуги поставщика, встроенную интеграцию nikcli, каталог действий, прикладные инструменты, подсказки и навыки. Sidecar предоставляет адаптеры живого проекта, геометрии, обработки, файлов, истории и рабочего процесса. Пакет зависит от API и ядра, с закрепленными версиями nikcli и AI SDK.
Пакеты расширений
@cadcamfun/plugin-sdk
SDK src/index.ts — это точка входа плагина общедоступного приложения. Он определяет контракты манифеста и возможностей, а также помощники по созданию плагинов. Хост среды выполнения находится в apps/sidecar/src/plugins; сам SDK не является хост-процессом.
@cadcamfunv2/cadcamfun-nikcli-plugin
packages/nikcli-plugin/src/index.ts экспортирует автономный мост Никкли. В отличие от большинства рабочих пространств, оно настроено для общедоступной публикации npm, в настоящее время имеет версию 0.1.0. Он обнаруживает действия работающего приложения CADCAMFUN и вызывает их через аутентифицированный HTTP. В него не встроено ядро САПР или независимый каталог действий.
@cadcamfun/plugin-sdk реализует основную версию API плагина 1. Идентификаторы плагинов представляют собой имена обратного DNS, состоящие из символов 3–128, например com.example.gear-generatorи версии следуют major.minor.patch с необязательным суффиксом предварительной версии (packages/plugin-sdk/src/manifest.ts).
Генератор HTTP-клиента
@cadcamfun/httpapi-codegen экспортирует свой компилятор и эмиттеры из packages/httpapi-codegen/src/index.ts. compile отражает эффект HttpApi в модели контракта. emitPromise создает Promise SDK; emitEffect и emitEffectImported поддержка вывода эффектов. Импортированный вариант ссылается на существующие схемы контрактов.
Другие экспортируемые данные включают эмиттеры совместимости, отображение транспортных ошибок, write, и generate. Неподдерживаемые формы контрактов повышают GenerationError. Сценарий создания приложения явно записывает исключения конечных точек для общих ограничений и ограничений только для обещаний.
packages/api/scripts/generate-clients.ts пишет src/sdk/generated и src/client/generated. Его проверка смещения создает временный каталог и сравнивает имена и содержимое файлов с зафиксированными выходными данными.
bun run generate
bun run generate:check Сгенерированный результат живет в packages/api/src/client/generated и packages/api/src/sdk/generated. Бегать bun run generate после изменения контракта и bun run generate:check чтобы подтвердить, что зафиксированный вывод является текущим.
Рабочие области приложений
@cadcamfun/sidecar—apps/sidecarsrc/main.ts— это исполняемая запись сервера;src/layers.tsслужбы проводной связи и обслуживаемые группы. Скрипт запуска пакета запускает Bun напрямую. Компиляция в собственный сайдкар управляется скриптами корневой сборки.@cadcamfun/desktop—apps/desktop- Интерфейс SolidJS/Vite и приложение Tauri Rust в
src-tauri. Пакетbuildскрипт строит интерфейс; для собственной упаковки требуются ресурсы Tauri и сайдкара. @cadcamfun/mobile—apps/mobile- Точка входа Expo Router, сопутствующий HTTP/собственный транспорт, состояние безопасного соединения и мобильный пользовательский интерфейс. Его сценарий сборки экспортирует пакет iOS JavaScript; для создания собственного приложения требуются собственные команды сборки.
Документация, помощник и студия
@cadcamfun/web содержит страницы Astro, компоненты общей документации и указатель содержимого сайта. Боковая панель объявлена в src/data/docsSidebar.ts; src/data/docsIndex.ts содержит сводку поиска и ключевые слова для одних и тех же маршрутов. Каждая страница документации предварительно отображает свою статью.
GET /llm перечисляет страницы документации как ссылки Markdown. GET /llm?path=/docs/cam возвращает соответствующую визуализированную статью в формате Markdown с поддержкой GitHub. Добавлять format=prompt для запроса документации. Неизвестные пути возвращают 404; сбои преобразования возвращают статус ошибки. Конвейер Markdown удаляет навигацию, сценарии, стили и элементы управления.
POST /api/docs-assistant извлекает до трех проиндексированных страниц и передает ответ через Workers AI или настроенный бэкэнд nikcli. Локальная разработка Astro отключает удаленные привязки, поэтому серверная часть модели должна быть доступна для генерации. Необязательный SESSIONS Привязка KV обеспечивает максимально возможное ограничение скорости для каждого IP; необязательный ARTIFACTS хранилище позволяет совместно использовать созданные руководства.
bun run --filter @cadcamfun/web dev запускает Astro и Studio API. start запускает Astro в одиночку; studio запускает только API Bun Studio. Студия выбирает CADCAMFUN_DB, затем DATABASE_URL с дополнительным file: префикс удален, затем репозиторий data/cadcamfun.db. Файл уже должен существовать и содержать схему приложения.
Studio принимает адрес электронной почты и пароль существующего пользователя, проверяет сохраненный пароль с помощью Bun.passwordи записывает семидневный сеанс базы данных с файлом cookie только для HTTP. Его обзор возвращает аутентифицированным пользователям данные по всей установке и недавние проекты. Производство /studio/api/* маршрут возвращает 503; развернутая документация не открывает локальную базу данных SQLite.
bun run --filter @cadcamfun/web start
bun test packages/web/test
bun run --filter @cadcamfun/web typecheck
bun run --filter @cadcamfun/web build Выберите поверхность интеграции
| Нуждаться | Поверхность | Что предоставляет вызывающий абонент |
|---|---|---|
| Вычисление геометрии без сохранения | @cadcamfun/core | Проверенная геометрия и входные данные для операций; владение и сохранение документов остаются за пределами ядра. |
| Вызов полного типизированного HTTP-контракта | ApiClient от @cadcamfun/api | Базовый URL-адрес боковой панели, токен приложения и среда/слои выполнения эффектов. |
| Используйте методы, сгенерированные на основе обещаний | @cadcamfun/api/sdk | Параметры клиента SDK и входные данные конечной точки; сначала проверьте упущения в генерации. |
| Предложите возможности приложения | @cadcamfun/plugin-sdk | Поддерживаемый манифест, совместимый экспорт модулей и предоставленные возможности. |
| Управляйте действиями по проекту из автономного nikcli | @cadcamfunv2/cadcamfun-nikcli-plugin | URL-адрес работающего приложения, токен моста с заданной областью действия и выбранный проект. |
| Чтение документации в инструменте | /llm?path=/docs/… | Известный маршрут документации; это не вызывает действия проекта CAD/CAM. |
Большинство пакетов библиотек представляют собой частные рабочие области, экспортирующие исходный код TypeScript; их присутствие в монорепозитории не подразумевает отдельно опубликованный дистрибутив npm. Мост nikcli имеет явные метаданные публикации. Используйте HTTP-ссылка для интеграций, которые должны оставаться независимыми от внутреннего макета пакета.
Рабочее пространство с первого взгляда
| Рабочая область | Упаковка | Внутренние отделы | Исходные файлы | Линии | Тестовые файлы | Содержание |
|---|---|---|---|---|---|---|
packages/core | @cadcamfun/core | — | 307 | 70,774 | 106 | Ядро геометрии: cad/ (80 файлов), cam/ (110), drawing/ (7) |
packages/ai | @cadcamfun/ai | aPI, ядро | 196 | 22,579 | 83 | Ассистент: действия, встроенный хост, подсказки, навыки, инструменты |
packages/api | @cadcamfun/api | ядро, httpapi-codegen | 64 | 18,388 | 9 | Контракт HttpApi, ошибки, клиенты Effect и Promise |
packages/db | @cadcamfun/db | — | 7 | 1,730 | 2 | SQLite + Drizzle, миграции, резервные копии |
packages/vcs | @cadcamfun/vcs | — | 10 | 1,133 | 1 | История проектов, ориентированных на контент, и слияние |
packages/workflow | @cadcamfun/workflow | — | 5 | 320 | 1 | Схема файла рабочего процесса и семантика запуска |
packages/plugin-sdk | @cadcamfun/plugin-sdk | основной | 9 | 952 | 2 | Манифест плагина, возможности, тестовый хост |
packages/httpapi-codegen | @cadcamfun/httpapi-codegen | — | 13 | 4,330 | 2 | Генератор клиентов для контрактов HttpApi |
packages/nikcli-plugin | @cadcamfunv2/cadcamfun-nikcli-plugin | — | 5 | 359 | 2 | Плагин, который предоставляет CADCAMFUN агенту nikcli. |
packages/web | @cadcamfun/web | бД | 84 | 12,991 | 3 | Этот сайт документации, Студия, Помощник по документации |
apps/sidecar | @cadcamfun/sidecar | aI, API, ядро, БД, плагин-SDK, vcs, рабочий процесс | 172 | 20,797 | 73 | Локальный HTTP-сервер: http/ (34), repos/ (24), services/ (29) |
apps/desktop | @cadcamfun/desktop | aPI, ядро | 557 | 85,579 | 104 | Веб-просмотр SolidJS (features/ 280 файлов) + оболочка Rust в src-tauri/ |
apps/mobile | @cadcamfun/mobile | aPI | 79 | 7,637 | 7 | Компаньон Expo для iOS |
Подсчеты — это файлы TypeScript, TSX, Rust и Astro, отслеживаемые в git, измеренные в этой ветке; тестовые файлы *.test.ts(x). Во внутренних зависимостях отсутствует @cadcamfun/ префикс.
Граф зависимостей
Стрелки указывают от рабочей области к тому, что она импортирует. core не имеет внутренних зависимостей, поэтому геометрию и CAM можно тестировать и повторно использовать без сервера. Только сайдкар касается базы данных; настольные и мобильные приложения получают данные через api. plugin-sdk также зависит от core (не нарисовано).
Сценариев на рабочее пространство
| Рабочая область | Скрипты |
|---|---|
| корень | 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 |
| другие пакеты | typecheck |
Корень typecheck запускает каждое рабочее пространство typecheck через турбо и потом проверяет рут проекта. Корень test бежит bun test packages apps scripts.