Перейти к содержанию
CADCAMFUN
Документы

Документация

Пакеты и приложения

Имена рабочих областей, общедоступные точки входа, потребители и обязанности по реализации.

Автоматически переведено с английского. Смотреть оригинал на английском

Библиотеки доменов

@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/sidecar
src/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-pluginURL-адрес работающего приложения, токен моста с заданной областью действия и выбранный проект.
Чтение документации в инструменте/llm?path=/docs/…Известный маршрут документации; это не вызывает действия проекта CAD/CAM.

Большинство пакетов библиотек представляют собой частные рабочие области, экспортирующие исходный код TypeScript; их присутствие в монорепозитории не подразумевает отдельно опубликованный дистрибутив npm. Мост nikcli имеет явные метаданные публикации. Используйте HTTP-ссылка для интеграций, которые должны оставаться независимыми от внутреннего макета пакета.

Рабочее пространство с первого взгляда

Рабочая областьУпаковкаВнутренние отделыИсходные файлыЛинииТестовые файлыСодержание
packages/core@cadcamfun/core—30770,774106Ядро геометрии: cad/ (80 файлов), cam/ (110), drawing/ (7)
packages/ai@cadcamfun/aiaPI, ядро19622,57983Ассистент: действия, встроенный хост, подсказки, навыки, инструменты
packages/api@cadcamfun/apiядро, httpapi-codegen6418,3889Контракт HttpApi, ошибки, клиенты Effect и Promise
packages/db@cadcamfun/db—71,7302SQLite + Drizzle, миграции, резервные копии
packages/vcs@cadcamfun/vcs—101,1331История проектов, ориентированных на контент, и слияние
packages/workflow@cadcamfun/workflow—53201Схема файла рабочего процесса и семантика запуска
packages/plugin-sdk@cadcamfun/plugin-sdkосновной99522Манифест плагина, возможности, тестовый хост
packages/httpapi-codegen@cadcamfun/httpapi-codegen—134,3302Генератор клиентов для контрактов HttpApi
packages/nikcli-plugin@cadcamfunv2/cadcamfun-nikcli-plugin—53592Плагин, который предоставляет CADCAMFUN агенту nikcli.
packages/web@cadcamfun/webбД8412,9913Этот сайт документации, Студия, Помощник по документации
apps/sidecar@cadcamfun/sidecaraI, API, ядро, БД, плагин-SDK, vcs, рабочий процесс17220,79773Локальный HTTP-сервер: http/ (34), repos/ (24), services/ (29)
apps/desktop@cadcamfun/desktopaPI, ядро55785,579104Веб-просмотр SolidJS (features/ 280 файлов) + оболочка Rust в src-tauri/
apps/mobile@cadcamfun/mobileaPI797,6377Компаньон Expo для iOS

Подсчеты — это файлы TypeScript, TSX, Rust и Astro, отслеживаемые в git, измеренные в этой ветке; тестовые файлы *.test.ts(x). Во внутренних зависимостях отсутствует @cadcamfun/ префикс.

Граф зависимостей

рабочий столсайдкармобильный бДaPIайвКСрабочий процессплагин-SDK основнойhttpapi-codegen

Стрелки указывают от рабочей области к тому, что она импортирует. core не имеет внутренних зависимостей, поэтому геометрию и CAM можно тестировать и повторно использовать без сервера. Только сайдкар касается базы данных; настольные и мобильные приложения получают данные через api. plugin-sdk также зависит от core (не нарисовано).

Сценариев на рабочее пространство

Рабочая областьСкрипты
кореньtypecheck, 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
другие пакетыtypecheck

Корень typecheck запускает каждое рабочее пространство typecheck через турбо и потом проверяет рут проекта. Корень test бежит bun test packages apps scripts.

Через 3Д

Пакеты и зависимости от их рабочей области Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
Все пакеты рабочей области 13 из файлов package.json; каждая строка представляет собой зависимость workspace:* (всего 17). Строки — это глубина зависимости: пакеты без зависимостей от рабочей области спереди, вспомогательная программа, которая зависит от 8 из них, сзади. Оранжевые квадратики — это приложения.