Документация
Стек технологий
Версии и обязанности взяты из манифестов рабочей области и конфигурации среды выполнения.
Автоматически переведено с английского. Смотреть оригинал на английском
Среда выполнения и сервисная среда
Корневой манифест выбирает bun@1.4.4 в качестве менеджера пакетов. Бун устанавливает рабочие области, запускает bun:test, введите проверки с помощью встроенного bun check, обслуживает сайдкар, предоставляет SQLite и API-интерфейсы хеширования паролей, а также компилирует двоичный файл дополнительного файла. Разработка внешнего интерфейса для настольных компьютеров использует Vite, а собственная упаковка — Rust и Tauri.
Использование служб приложений effect@4.0.0-rc.112. Один и тот же выпуск объявлен во всех рабочих областях, которые зависят от Effect, включая API, базу данных, ядро, рабочий стол, рабочий процесс и дополнительную версию. Корневые переопределения приводят пакеты платформы узла в соответствие с этой версией. Эффект предоставляет типизированные ошибки, схемы, контекст службы, уровни, параллелизм и API-интерфейсы HTTP.
В коде используется служебная форма v4. Context.Service и HTTP-модули в разделе effect/unstable. Документация, соответствующая версии, установлена по адресу packages/db/node_modules/effect/ai-docs/src/. Обеспечьте координацию обновлений зависимостей между потребителями.
База данных и контракты
Настойчивость использует drizzle-orm@1.0.0-beta.22 с bun:sqlite. Генерация миграции базы данных использует сопоставление drizzle-kit выпускать. Схема — TypeScript; созданные каталоги миграции содержат SQL и метаданные миграции, используемые во время обновлений.
Эффект HttpApi определяет контракт HTTP. Генератор кода рабочей области компилирует этот контракт в выходные данные клиента Promise и Effect. Zod также присутствует в зависимостях API и AI для интеграций, которые этого требуют; он не заменяет схемы границ HttpApi.
Рабочий стол и графика
На рабочем столе используется solid-js ^1.9.0, @solidjs/router ^0.15.0, vite ^7.0.0и CSS Tailwind 3. В рабочей среде используются элементы управления Kobalte, значки Lucid, редактирование Monaco и Chart.js там, где они необходимы соответствующим функциям.
В окне просмотра используется three ^0.180.0. Основная геометрия отделена от рендеринга; three-csg-ts и occt-import-js 0.0.23 поддержка дополнительных путей геометрии/импорта рабочего стола. Tauri v2 обеспечивает собственный доступ к API, диалоговые окна, операции оболочки, ведение журналов, интеграцию с ОС и интеграцию с программой обновлений через установленные плагины.
среда выполнения ИИ
@cadcamfun/ai булавки @nikcli-ai/sdk-next 1.428.0 и ai 7.0.127. Адаптеры прямых моделей включают Anthropic, OpenAI, поставщиков, совместимых с OpenAI, и шлюз AI SDK. Sidecar выбирает встроенный хост nikcli по умолчанию или прямой хост через CADCAMFUN_AI_HOST.
Инструменты приложений и схемы действий располагаются над транспортом поставщика. Смена поставщика не создает второй каталог действий. Подключение модели, учетные данные, отмена и поведение сеанса документированы в файле Справочник по ИИ.
Мобильная версия и документация
Мобильный манифест использует Expo ~57.0.27, Реагировать 19.2.3, Реагировать Нативный 0.86.3и Экспо-маршрутизатор ~57.0.25. Его собственный сопутствующий транспорт представляет собой собственный модуль. NativeWind, Reanimated, Gesture Handler, SecureStore и локальная аутентификация поддерживают мобильное приложение.
Этот сайт использует Astro ^5.14.1 с адаптером Cloudflare, интеграцией MDX и Tailwind. Страницы документации предварительно визуализируются; Assistant, Markdown, резервные маршруты Studio и маршруты артефактов выполняются на сервере. Локальный API Studio работает в Bun, поскольку он использует bun:sqlite.
Проверка типов использует встроенную программу проверки Bun, bun check, который считывает данные каждой рабочей области tsconfig.json и сообщает ту же диагностику, что и tsc. Диапазоны манифеста описывают разрешенные версии зависимостей; файл блокировки записывает установленное разрешение.
На сайте документации используется Astro 5 с адаптером Cloudflare, MDX и Tailwind (packages/web/package.json). Веб-просмотр рабочего стола достигает машинного кода через @tauri-apps/api v2.
Что работает в каждой среде
| Среда | Код, который он запускает | Соответствующее ограничение |
|---|---|---|
| Сайдкар на Bun | Сервер/сервисы эффектов, Drizzle, bun:sqlite, клиенты-провайдеры, оркестровка рабочего процесса и истории. | Браузер или Cloudflare Worker не могут напрямую заменить среду выполнения SQLite от Bun. |
| Веб-просмотр на рабочем столе | Состояние и взаимодействие SolidJS, базовая геометрия, Three.js, клиент API. | Для собственных операций требуются команды Tauri; Предварительный просмотр браузера предоставляет другую среду интеграции. |
| Ржавая оболочка | Жизненный цикл Tauri, собственное окно/меню/трей, безопасные команды, средство обновления. | Успешная сборка Vite не создает и не проверяет собственный пакет приложений. |
| Заявка на выставку | Экраны React Native и сопутствующий транспорт. | В Expo Go отсутствует собственный модуль закрепления; Экспорт JavaScript не создает собственный установщик. |
| Документация Cloudflare | Маршруты сервера для Markdown, запросов помощника и артефактов руководства. | Он не имеет неявного доступа к локальному дополнительному файлу или файлу SQLite; привязки и конфигурация серверной части являются явными. |
| Процесс локальной студии | HTTP-сервер Bun и прямой доступ для чтения через выбранные таблицы Drizzle. | Настроенная существующая база данных и сеанс учетной записи не зависят от обнаружения рабочих столов. |
Используйте артефакт сборки, соответствующий тестируемой среде. Выходные данные внешнего интерфейса, скомпилированная дополнительная программа, ресурсы миграции, экспортированный мобильный пакет и подписанные собственные установщики — это разные выходные данные, даже если одна команда координирует несколько этапов.
Закрепленные версии
| Слой | Технология | Версия (из манифестов пакетов) |
|---|---|---|
| Менеджер пакетов/время выполнения | Bun | 1.4.4 (packageManager) |
| Структура обслуживания | Effect | 4.0.0-rc.112 (все рабочие области с платформой-bun и opentelemetry в одной версии) |
| База данных | дождь-орм / дождь-комплект, bun:sqlite | 1.0.0-бета.22 |
| Оболочка рабочего стола | Tauri | 2 (ржавые ящики и @tauri-apps/* ^2) |
| Настольный пользовательский интерфейс | SolidJS, @solidjs/router, Кобальте | ^1.9.0, ^0.15.0, ^0.13.0 |
| 3D | три.js, три-csg-ts | ^0.180.0, ^3.2.0 |
| ШАГ импорта | оккт-импорт-js | 0.0.23 |
| Редактор кода | монако-редактор | ^0.57.0 |
| Бандлер | Vite | ^7.0.0 |
| ИИ | ai (Vercel AI SDK), @ai-sdk/anthropic, openai, шлюз, совместимость с openai, @nikcli-ai/sdk-next | 7.0.127, 4.0.71, 4.0.83, 4.0.103, 3.0.62, 1.428.0 |
| Валидация (инструменты ИИ) | зод | ^4.1.8 |
| Телеметрия | OpenTelemetry SDK + экспортеры OTLP/HTTP | aPI 1.9.1, SDK 2.12.0, экспортеры 0.223.0 |
| мобильный | Экспо, React Native, Реагировать | ~57, 0.86.3, 19.2.3 |
| Документы | Astro, Tailwind, адаптер Cloudflare, Wrangler | ^5.14.1, ^3.4.17, ^12.0.0, 4.103.0 |
| Проверка типа | Bun bun check, TypeScript (только поддержка редактора) | 1.4.4, ^5.9.0 |
| Задачи монорепо | турбо | ^2.11.7 |
Ржавые ящики в оболочке рабочего стола
| Ящик | Используется для |
|---|---|
tauri (значок в трее, macos-private-api) | Окна, лоток, IPC |
tauri-plugin-shell | Запуск бинарного файла Sidecar |
tauri-plugin-dialog, -fs, -opener | Средства выбора файлов, доступ к файлам, пути открытия и URL-адреса |
tauri-plugin-updater | Подписанные обновления в приложении |
tauri-plugin-log, -os | Логгирование, обнаружение платформы |
tauri-plugin-single-instance, -window-state | Одно работающее приложение; восстановить геометрию окна (цели рабочего стола) |
tauri-plugin-liquid-glass (необязательный) | эффект стекла macOS с запасом яркости |
tokio, serde, thiserror, getrandom, log | Асинхронный контроль, полезные данные IPC, типизированные ошибки, токены запуска |
Почему такой выбор
- Bun запускает тесты, сценарии и вспомогательную программу и компилирует вспомогательную программу в один собственный двоичный файл, поэтому рабочий стол поставляется без отдельной среды выполнения JavaScript.
- Effect выдает типизированные ошибки каждой службы, ограниченные ресурсы (дескриптор базы данных и дочерние процессы освобождаются при завершении работы) и одно определение HttpApi, используемое сервером, клиентами, сгенерированные SDK и ссылку на API.
- SQLite сохраняет каждую установку автономной: один файл плюс WAL, резервная копия которого создается перед каждым обновлением схемы.
- Tauri использует системный веб-просмотр и небольшую оболочку Rust, которая владеет дополнительным процессом, собственными меню, средством обновления и связкой ключей.
- three.js визуализирует область просмотра; та же библиотека рисует превью 3D на этих страницах документации.