@antelopejs/dms-ai 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +46 -0
- package/dist/builder/presence.d.ts +1 -0
- package/dist/builder/presence.js +22 -0
- package/dist/builder/presence.js.map +1 -0
- package/dist/constants/builder.d.ts +7 -0
- package/dist/constants/builder.js +11 -0
- package/dist/constants/builder.js.map +1 -0
- package/dist/constants/frontend-module.d.ts +3 -0
- package/dist/constants/frontend-module.js +7 -0
- package/dist/constants/frontend-module.js.map +1 -0
- package/dist/constants/logs.d.ts +3 -0
- package/dist/constants/logs.js +7 -0
- package/dist/constants/logs.js.map +1 -0
- package/dist/constants/module.d.ts +3 -0
- package/dist/constants/module.js +7 -0
- package/dist/constants/module.js.map +1 -0
- package/dist/constants/pages-registry.d.ts +2 -0
- package/dist/constants/pages-registry.js +6 -0
- package/dist/constants/pages-registry.js.map +1 -0
- package/dist/constants/sidecar.d.ts +24 -0
- package/dist/constants/sidecar.js +32 -0
- package/dist/constants/sidecar.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/module-roots.d.ts +1 -0
- package/dist/lifecycle/module-roots.js +52 -0
- package/dist/lifecycle/module-roots.js.map +1 -0
- package/dist/lifecycle/respawn-tracker.d.ts +5 -0
- package/dist/lifecycle/respawn-tracker.js +20 -0
- package/dist/lifecycle/respawn-tracker.js.map +1 -0
- package/dist/lifecycle/skill-sources.d.ts +5 -0
- package/dist/lifecycle/skill-sources.js +181 -0
- package/dist/lifecycle/skill-sources.js.map +1 -0
- package/dist/lifecycle/spawn-sidecar.d.ts +17 -0
- package/dist/lifecycle/spawn-sidecar.js +299 -0
- package/dist/lifecycle/spawn-sidecar.js.map +1 -0
- package/dist/logging/log-buffer.d.ts +9 -0
- package/dist/logging/log-buffer.js +76 -0
- package/dist/logging/log-buffer.js.map +1 -0
- package/dist/pages/activity/page.d.ts +10 -0
- package/dist/pages/activity/page.js +62 -0
- package/dist/pages/activity/page.js.map +1 -0
- package/dist/pages/all.d.ts +4 -0
- package/dist/pages/all.js +21 -0
- package/dist/pages/all.js.map +1 -0
- package/dist/pages/index.d.ts +4 -0
- package/dist/pages/index.js +21 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/pages/module.d.ts +1 -0
- package/dist/pages/module.js +11 -0
- package/dist/pages/module.js.map +1 -0
- package/dist/pages/overview/page.d.ts +11 -0
- package/dist/pages/overview/page.js +82 -0
- package/dist/pages/overview/page.js.map +1 -0
- package/dist/pages/settings/page.d.ts +9 -0
- package/dist/pages/settings/page.js +29 -0
- package/dist/pages/settings/page.js.map +1 -0
- package/dist/pages/skills/page.d.ts +9 -0
- package/dist/pages/skills/page.js +29 -0
- package/dist/pages/skills/page.js.map +1 -0
- package/dist/pages-registry.d.ts +2 -0
- package/dist/pages-registry.js +41 -0
- package/dist/pages-registry.js.map +1 -0
- package/dist/routes/builder.d.ts +11 -0
- package/dist/routes/builder.js +135 -0
- package/dist/routes/builder.js.map +1 -0
- package/dist/routes/health.d.ts +8 -0
- package/dist/routes/health.js +27 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/index.d.ts +8 -0
- package/dist/routes/index.js +25 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/logs.d.ts +7 -0
- package/dist/routes/logs.js +51 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/metrics.d.ts +54 -0
- package/dist/routes/metrics.js +104 -0
- package/dist/routes/metrics.js.map +1 -0
- package/dist/routes/pages-registry.d.ts +7 -0
- package/dist/routes/pages-registry.js +86 -0
- package/dist/routes/pages-registry.js.map +1 -0
- package/dist/routes/proxy.d.ts +4 -0
- package/dist/routes/proxy.js +55 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/settings.d.ts +13 -0
- package/dist/routes/settings.js +52 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/sidecar-auth.d.ts +3 -0
- package/dist/routes/sidecar-auth.js +27 -0
- package/dist/routes/sidecar-auth.js.map +1 -0
- package/dist/routes/sidecar-info.d.ts +6 -0
- package/dist/routes/sidecar-info.js +39 -0
- package/dist/routes/sidecar-info.js.map +1 -0
- package/dist/routes/skills.d.ts +18 -0
- package/dist/routes/skills.js +33 -0
- package/dist/routes/skills.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logs.d.ts +12 -0
- package/dist/types/logs.js +3 -0
- package/dist/types/logs.js.map +1 -0
- package/dist/types/pages-registry.d.ts +6 -0
- package/dist/types/pages-registry.js +3 -0
- package/dist/types/pages-registry.js.map +1 -0
- package/frontend-vue/.editorconfig +12 -0
- package/frontend-vue/app/components/ActivityView.vue +94 -0
- package/frontend-vue/app/components/SettingsView.vue +300 -0
- package/frontend-vue/app/components/SkillsView.vue +228 -0
- package/frontend-vue/app/plugins/ai.client.ts +109 -0
- package/frontend-vue/app/runtime/backoff.ts +30 -0
- package/frontend-vue/app/runtime/constants.ts +66 -0
- package/frontend-vue/app/runtime/current-page.ts +28 -0
- package/frontend-vue/app/runtime/header-action.ts +64 -0
- package/frontend-vue/app/runtime/host-commands.ts +127 -0
- package/frontend-vue/app/runtime/navigation-complete.ts +22 -0
- package/frontend-vue/app/runtime/overlay-prefs.ts +89 -0
- package/frontend-vue/app/runtime/overlay.ts +383 -0
- package/frontend-vue/app/runtime/shortcuts.ts +28 -0
- package/frontend-vue/app/runtime/sidecar-status.ts +163 -0
- package/frontend-vue/app/runtime/theme-bridge.ts +177 -0
- package/frontend-vue/app/runtime/ws-client.ts +196 -0
- package/frontend-vue/dms.frontend.ts +26 -0
- package/frontend-vue/eslint.config.mjs +24 -0
- package/frontend-vue/package.json +33 -0
- package/frontend-vue/pnpm-lock.yaml +2723 -0
- package/frontend-vue/tests/backoff.test.ts +44 -0
- package/frontend-vue/tests/host-commands.test.ts +142 -0
- package/frontend-vue/tests/navigation.test.ts +45 -0
- package/frontend-vue/tests/overlay-prefs.test.ts +91 -0
- package/frontend-vue/tests/sidecar-auth.test.ts +87 -0
- package/frontend-vue/tests/sidecar-guest.test.ts +45 -0
- package/frontend-vue/vitest.config.ts +8 -0
- package/package.json +79 -0
- package/sidecar/chatbox/dist/assets/index-Cy2BwTG0.js +50 -0
- package/sidecar/chatbox/dist/assets/index-pP_KOHIn.css +1 -0
- package/sidecar/chatbox/dist/index.html +13 -0
- package/sidecar/dist/agent/attachments.d.ts +8 -0
- package/sidecar/dist/agent/attachments.js +85 -0
- package/sidecar/dist/agent/attachments.js.map +1 -0
- package/sidecar/dist/agent/claude-runner.d.ts +33 -0
- package/sidecar/dist/agent/claude-runner.js +264 -0
- package/sidecar/dist/agent/claude-runner.js.map +1 -0
- package/sidecar/dist/agent/claude-session.d.ts +18 -0
- package/sidecar/dist/agent/claude-session.js +155 -0
- package/sidecar/dist/agent/claude-session.js.map +1 -0
- package/sidecar/dist/agent/edit-tracker.d.ts +9 -0
- package/sidecar/dist/agent/edit-tracker.js +34 -0
- package/sidecar/dist/agent/edit-tracker.js.map +1 -0
- package/sidecar/dist/agent/host-context.d.ts +4 -0
- package/sidecar/dist/agent/host-context.js +16 -0
- package/sidecar/dist/agent/host-context.js.map +1 -0
- package/sidecar/dist/agent/input-queue.d.ts +7 -0
- package/sidecar/dist/agent/input-queue.js +39 -0
- package/sidecar/dist/agent/input-queue.js.map +1 -0
- package/sidecar/dist/agent/permission-bus.d.ts +26 -0
- package/sidecar/dist/agent/permission-bus.js +138 -0
- package/sidecar/dist/agent/permission-bus.js.map +1 -0
- package/sidecar/dist/agent/question-bus.d.ts +22 -0
- package/sidecar/dist/agent/question-bus.js +91 -0
- package/sidecar/dist/agent/question-bus.js.map +1 -0
- package/sidecar/dist/agent/read-access.d.ts +2 -0
- package/sidecar/dist/agent/read-access.js +33 -0
- package/sidecar/dist/agent/read-access.js.map +1 -0
- package/sidecar/dist/agent/resolve-claude-binary.d.ts +1 -0
- package/sidecar/dist/agent/resolve-claude-binary.js +43 -0
- package/sidecar/dist/agent/resolve-claude-binary.js.map +1 -0
- package/sidecar/dist/agent/runner-events.d.ts +28 -0
- package/sidecar/dist/agent/runner-events.js +2 -0
- package/sidecar/dist/agent/runner-events.js.map +1 -0
- package/sidecar/dist/agent/sdk-adapter.d.ts +3 -0
- package/sidecar/dist/agent/sdk-adapter.js +106 -0
- package/sidecar/dist/agent/sdk-adapter.js.map +1 -0
- package/sidecar/dist/agent/sdk-loader.d.ts +5 -0
- package/sidecar/dist/agent/sdk-loader.js +14 -0
- package/sidecar/dist/agent/sdk-loader.js.map +1 -0
- package/sidecar/dist/agent/system-prompt.d.ts +6 -0
- package/sidecar/dist/agent/system-prompt.js +29 -0
- package/sidecar/dist/agent/system-prompt.js.map +1 -0
- package/sidecar/dist/agent/tool-summary.d.ts +1 -0
- package/sidecar/dist/agent/tool-summary.js +46 -0
- package/sidecar/dist/agent/tool-summary.js.map +1 -0
- package/sidecar/dist/agent/typecheck.d.ts +36 -0
- package/sidecar/dist/agent/typecheck.js +104 -0
- package/sidecar/dist/agent/typecheck.js.map +1 -0
- package/sidecar/dist/builder/builder-client.d.ts +10 -0
- package/sidecar/dist/builder/builder-client.js +52 -0
- package/sidecar/dist/builder/builder-client.js.map +1 -0
- package/sidecar/dist/builder/capability.d.ts +4 -0
- package/sidecar/dist/builder/capability.js +11 -0
- package/sidecar/dist/builder/capability.js.map +1 -0
- package/sidecar/dist/constants/agent.d.ts +25 -0
- package/sidecar/dist/constants/agent.js +25 -0
- package/sidecar/dist/constants/agent.js.map +1 -0
- package/sidecar/dist/constants/attachments.d.ts +7 -0
- package/sidecar/dist/constants/attachments.js +12 -0
- package/sidecar/dist/constants/attachments.js.map +1 -0
- package/sidecar/dist/constants/builder.d.ts +5 -0
- package/sidecar/dist/constants/builder.js +32 -0
- package/sidecar/dist/constants/builder.js.map +1 -0
- package/sidecar/dist/constants/daemon.d.ts +7 -0
- package/sidecar/dist/constants/daemon.js +8 -0
- package/sidecar/dist/constants/daemon.js.map +1 -0
- package/sidecar/dist/constants/env.d.ts +3 -0
- package/sidecar/dist/constants/env.js +4 -0
- package/sidecar/dist/constants/env.js.map +1 -0
- package/sidecar/dist/constants/host-state.d.ts +1 -0
- package/sidecar/dist/constants/host-state.js +2 -0
- package/sidecar/dist/constants/host-state.js.map +1 -0
- package/sidecar/dist/constants/http.d.ts +20 -0
- package/sidecar/dist/constants/http.js +31 -0
- package/sidecar/dist/constants/http.js.map +1 -0
- package/sidecar/dist/constants/logs.d.ts +11 -0
- package/sidecar/dist/constants/logs.js +16 -0
- package/sidecar/dist/constants/logs.js.map +1 -0
- package/sidecar/dist/constants/mcp.d.ts +24 -0
- package/sidecar/dist/constants/mcp.js +38 -0
- package/sidecar/dist/constants/mcp.js.map +1 -0
- package/sidecar/dist/constants/native-binary.d.ts +4 -0
- package/sidecar/dist/constants/native-binary.js +5 -0
- package/sidecar/dist/constants/native-binary.js.map +1 -0
- package/sidecar/dist/constants/pages.d.ts +16 -0
- package/sidecar/dist/constants/pages.js +24 -0
- package/sidecar/dist/constants/pages.js.map +1 -0
- package/sidecar/dist/constants/paths.d.ts +3 -0
- package/sidecar/dist/constants/paths.js +7 -0
- package/sidecar/dist/constants/paths.js.map +1 -0
- package/sidecar/dist/constants/permissions.d.ts +15 -0
- package/sidecar/dist/constants/permissions.js +15 -0
- package/sidecar/dist/constants/permissions.js.map +1 -0
- package/sidecar/dist/constants/ports.d.ts +3 -0
- package/sidecar/dist/constants/ports.js +4 -0
- package/sidecar/dist/constants/ports.js.map +1 -0
- package/sidecar/dist/constants/project.d.ts +8 -0
- package/sidecar/dist/constants/project.js +12 -0
- package/sidecar/dist/constants/project.js.map +1 -0
- package/sidecar/dist/constants/questions.d.ts +4 -0
- package/sidecar/dist/constants/questions.js +5 -0
- package/sidecar/dist/constants/questions.js.map +1 -0
- package/sidecar/dist/constants/read-access.d.ts +1 -0
- package/sidecar/dist/constants/read-access.js +8 -0
- package/sidecar/dist/constants/read-access.js.map +1 -0
- package/sidecar/dist/constants/safety-net.d.ts +5 -0
- package/sidecar/dist/constants/safety-net.js +6 -0
- package/sidecar/dist/constants/safety-net.js.map +1 -0
- package/sidecar/dist/constants/settings.d.ts +9 -0
- package/sidecar/dist/constants/settings.js +29 -0
- package/sidecar/dist/constants/settings.js.map +1 -0
- package/sidecar/dist/constants/state.d.ts +7 -0
- package/sidecar/dist/constants/state.js +7 -0
- package/sidecar/dist/constants/state.js.map +1 -0
- package/sidecar/dist/constants/timing.d.ts +1 -0
- package/sidecar/dist/constants/timing.js +2 -0
- package/sidecar/dist/constants/timing.js.map +1 -0
- package/sidecar/dist/constants/tool-summary.d.ts +20 -0
- package/sidecar/dist/constants/tool-summary.js +21 -0
- package/sidecar/dist/constants/tool-summary.js.map +1 -0
- package/sidecar/dist/constants/typecheck.d.ts +16 -0
- package/sidecar/dist/constants/typecheck.js +23 -0
- package/sidecar/dist/constants/typecheck.js.map +1 -0
- package/sidecar/dist/constants/ws.d.ts +5 -0
- package/sidecar/dist/constants/ws.js +6 -0
- package/sidecar/dist/constants/ws.js.map +1 -0
- package/sidecar/dist/host/project-info.d.ts +6 -0
- package/sidecar/dist/host/project-info.js +51 -0
- package/sidecar/dist/host/project-info.js.map +1 -0
- package/sidecar/dist/index.d.ts +3 -0
- package/sidecar/dist/index.js +280 -0
- package/sidecar/dist/index.js.map +1 -0
- package/sidecar/dist/logs/logs-client.d.ts +11 -0
- package/sidecar/dist/logs/logs-client.js +52 -0
- package/sidecar/dist/logs/logs-client.js.map +1 -0
- package/sidecar/dist/logs/types.d.ts +12 -0
- package/sidecar/dist/logs/types.js +2 -0
- package/sidecar/dist/logs/types.js.map +1 -0
- package/sidecar/dist/mcp/server.d.ts +2 -0
- package/sidecar/dist/mcp/server.js +50 -0
- package/sidecar/dist/mcp/server.js.map +1 -0
- package/sidecar/dist/mcp/tools/ask-user.d.ts +41 -0
- package/sidecar/dist/mcp/tools/ask-user.js +29 -0
- package/sidecar/dist/mcp/tools/ask-user.js.map +1 -0
- package/sidecar/dist/mcp/tools/builder.d.ts +259 -0
- package/sidecar/dist/mcp/tools/builder.js +216 -0
- package/sidecar/dist/mcp/tools/builder.js.map +1 -0
- package/sidecar/dist/mcp/tools/find-pages-using.d.ts +15 -0
- package/sidecar/dist/mcp/tools/find-pages-using.js +108 -0
- package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -0
- package/sidecar/dist/mcp/tools/get-current-page.d.ts +4 -0
- package/sidecar/dist/mcp/tools/get-current-page.js +12 -0
- package/sidecar/dist/mcp/tools/get-current-page.js.map +1 -0
- package/sidecar/dist/mcp/tools/list-pages.d.ts +8 -0
- package/sidecar/dist/mcp/tools/list-pages.js +29 -0
- package/sidecar/dist/mcp/tools/list-pages.js.map +1 -0
- package/sidecar/dist/mcp/tools/navigate-to-page.d.ts +14 -0
- package/sidecar/dist/mcp/tools/navigate-to-page.js +66 -0
- package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -0
- package/sidecar/dist/mcp/tools/query-logs.d.ts +11 -0
- package/sidecar/dist/mcp/tools/query-logs.js +32 -0
- package/sidecar/dist/mcp/tools/query-logs.js.map +1 -0
- package/sidecar/dist/mcp/tools/typecheck.d.ts +9 -0
- package/sidecar/dist/mcp/tools/typecheck.js +20 -0
- package/sidecar/dist/mcp/tools/typecheck.js.map +1 -0
- package/sidecar/dist/mcp/types.d.ts +27 -0
- package/sidecar/dist/mcp/types.js +2 -0
- package/sidecar/dist/mcp/types.js.map +1 -0
- package/sidecar/dist/metrics/aggregate.d.ts +11 -0
- package/sidecar/dist/metrics/aggregate.js +189 -0
- package/sidecar/dist/metrics/aggregate.js.map +1 -0
- package/sidecar/dist/metrics/types.d.ts +53 -0
- package/sidecar/dist/metrics/types.js +8 -0
- package/sidecar/dist/metrics/types.js.map +1 -0
- package/sidecar/dist/pages/imports-scanner.d.ts +9 -0
- package/sidecar/dist/pages/imports-scanner.js +143 -0
- package/sidecar/dist/pages/imports-scanner.js.map +1 -0
- package/sidecar/dist/pages/registry-client.d.ts +15 -0
- package/sidecar/dist/pages/registry-client.js +83 -0
- package/sidecar/dist/pages/registry-client.js.map +1 -0
- package/sidecar/dist/pages/route-match.d.ts +2 -0
- package/sidecar/dist/pages/route-match.js +10 -0
- package/sidecar/dist/pages/route-match.js.map +1 -0
- package/sidecar/dist/pages/types.d.ts +11 -0
- package/sidecar/dist/pages/types.js +2 -0
- package/sidecar/dist/pages/types.js.map +1 -0
- package/sidecar/dist/prompts/agent.d.ts +3 -0
- package/sidecar/dist/prompts/agent.js +40 -0
- package/sidecar/dist/prompts/agent.js.map +1 -0
- package/sidecar/dist/prompts/builder.d.ts +3 -0
- package/sidecar/dist/prompts/builder.js +4 -0
- package/sidecar/dist/prompts/builder.js.map +1 -0
- package/sidecar/dist/protocol/events.d.ts +1050 -0
- package/sidecar/dist/protocol/events.js +154 -0
- package/sidecar/dist/protocol/events.js.map +1 -0
- package/sidecar/dist/protocol/messages.d.ts +644 -0
- package/sidecar/dist/protocol/messages.js +139 -0
- package/sidecar/dist/protocol/messages.js.map +1 -0
- package/sidecar/dist/server/client-auth.d.ts +2 -0
- package/sidecar/dist/server/client-auth.js +25 -0
- package/sidecar/dist/server/client-auth.js.map +1 -0
- package/sidecar/dist/server/host-socket-registry.d.ts +9 -0
- package/sidecar/dist/server/host-socket-registry.js +42 -0
- package/sidecar/dist/server/host-socket-registry.js.map +1 -0
- package/sidecar/dist/server/http.d.ts +25 -0
- package/sidecar/dist/server/http.js +263 -0
- package/sidecar/dist/server/http.js.map +1 -0
- package/sidecar/dist/server/idle-shutdown.d.ts +10 -0
- package/sidecar/dist/server/idle-shutdown.js +35 -0
- package/sidecar/dist/server/idle-shutdown.js.map +1 -0
- package/sidecar/dist/server/iframe-socket-registry.d.ts +10 -0
- package/sidecar/dist/server/iframe-socket-registry.js +57 -0
- package/sidecar/dist/server/iframe-socket-registry.js.map +1 -0
- package/sidecar/dist/server/live-turns.d.ts +8 -0
- package/sidecar/dist/server/live-turns.js +16 -0
- package/sidecar/dist/server/live-turns.js.map +1 -0
- package/sidecar/dist/server/navigation-completer.d.ts +5 -0
- package/sidecar/dist/server/navigation-completer.js +49 -0
- package/sidecar/dist/server/navigation-completer.js.map +1 -0
- package/sidecar/dist/server/pending-queue.d.ts +11 -0
- package/sidecar/dist/server/pending-queue.js +54 -0
- package/sidecar/dist/server/pending-queue.js.map +1 -0
- package/sidecar/dist/server/raw-data.d.ts +2 -0
- package/sidecar/dist/server/raw-data.js +13 -0
- package/sidecar/dist/server/raw-data.js.map +1 -0
- package/sidecar/dist/server/routing.d.ts +64 -0
- package/sidecar/dist/server/routing.js +571 -0
- package/sidecar/dist/server/routing.js.map +1 -0
- package/sidecar/dist/server/safety-net.d.ts +16 -0
- package/sidecar/dist/server/safety-net.js +76 -0
- package/sidecar/dist/server/safety-net.js.map +1 -0
- package/sidecar/dist/server/ws.d.ts +33 -0
- package/sidecar/dist/server/ws.js +182 -0
- package/sidecar/dist/server/ws.js.map +1 -0
- package/sidecar/dist/skills/build-catalog.d.ts +15 -0
- package/sidecar/dist/skills/build-catalog.js +39 -0
- package/sidecar/dist/skills/build-catalog.js.map +1 -0
- package/sidecar/dist/skills/frontmatter.d.ts +9 -0
- package/sidecar/dist/skills/frontmatter.js +50 -0
- package/sidecar/dist/skills/frontmatter.js.map +1 -0
- package/sidecar/dist/skills/plugin-wrapper.d.ts +6 -0
- package/sidecar/dist/skills/plugin-wrapper.js +37 -0
- package/sidecar/dist/skills/plugin-wrapper.js.map +1 -0
- package/sidecar/dist/skills/resolve-sources.d.ts +3 -0
- package/sidecar/dist/skills/resolve-sources.js +14 -0
- package/sidecar/dist/skills/resolve-sources.js.map +1 -0
- package/sidecar/dist/skills/types.d.ts +4 -0
- package/sidecar/dist/skills/types.js +2 -0
- package/sidecar/dist/skills/types.js.map +1 -0
- package/sidecar/dist/state/conversations.d.ts +20 -0
- package/sidecar/dist/state/conversations.js +93 -0
- package/sidecar/dist/state/conversations.js.map +1 -0
- package/sidecar/dist/state/host-state.d.ts +10 -0
- package/sidecar/dist/state/host-state.js +14 -0
- package/sidecar/dist/state/host-state.js.map +1 -0
- package/sidecar/dist/state/lock.d.ts +12 -0
- package/sidecar/dist/state/lock.js +43 -0
- package/sidecar/dist/state/lock.js.map +1 -0
- package/sidecar/dist/state/settings-store.d.ts +12 -0
- package/sidecar/dist/state/settings-store.js +82 -0
- package/sidecar/dist/state/settings-store.js.map +1 -0
- package/sidecar/dist/state/settings-types.d.ts +12 -0
- package/sidecar/dist/state/settings-types.js +4 -0
- package/sidecar/dist/state/settings-types.js.map +1 -0
- package/sidecar/dist/state/sidecar-version.d.ts +1 -0
- package/sidecar/dist/state/sidecar-version.js +14 -0
- package/sidecar/dist/state/sidecar-version.js.map +1 -0
- package/sidecar/dist/state/store.d.ts +11 -0
- package/sidecar/dist/state/store.js +89 -0
- package/sidecar/dist/state/store.js.map +1 -0
- package/sidecar/dist/state/types.d.ts +36 -0
- package/sidecar/dist/state/types.js +10 -0
- package/sidecar/dist/state/types.js.map +1 -0
- package/sidecar/package.json +42 -0
- package/skills/dms-builder-page/SKILL.md +80 -0
- package/skills/dms-builder-safe/REFERENCE.md +111 -0
- package/skills/dms-builder-safe/SKILL.md +118 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# dms-builder-safe reference
|
|
2
|
+
|
|
3
|
+
## Data resources (Table + DataAPI)
|
|
4
|
+
|
|
5
|
+
A **resource** is the data layer a table/form displays: a Database `Table`+`Model`
|
|
6
|
+
and a matching `DataAPI` controller at `/api/<name>`, generated as decorator classes
|
|
7
|
+
kept in sync — never hand-write them. The resource ops (and the `controller` binding
|
|
8
|
+
they feed) require a dms-builder engine version that implements them: if one returns
|
|
9
|
+
`request_failed` (the host answered `unknown_op`) or `builder_unavailable`, the
|
|
10
|
+
installed engine doesn't support it — explain the limitation instead of retrying.
|
|
11
|
+
|
|
12
|
+
1. **Read first.** `BuilderListResources`; `BuilderResourceStructure <ref>` for
|
|
13
|
+
fields + `version` hash. Hand-edited or relation fields come back `opaque` —
|
|
14
|
+
safe mode can't reconfigure those.
|
|
15
|
+
2. **Create** with `BuilderCreateResource` (`name`, `fields`, optional `seeds` — each
|
|
16
|
+
seed row supplies its own `_id`; never declare `_id`, it is auto-managed). It
|
|
17
|
+
scaffolds a `<name>/{database,data-api,index}.ts` folder and wires the nearest barrel.
|
|
18
|
+
- `location` — where the folder goes (omit for `src/<name>/`): a dir string
|
|
19
|
+
relative to the src root, `{ category: <CategoryRef> }` (mirrors that category's
|
|
20
|
+
page placement; prefer for a resource shared by one section), or
|
|
21
|
+
`{ page: <PageRef> }` (nests beside that page; prefer for a one-page resource).
|
|
22
|
+
Pass exact refs from `BuilderListPages`, never guess.
|
|
23
|
+
- `routes` — which DataAPI endpoints to expose (omit for the full set): `list`,
|
|
24
|
+
`get`, `create`, `edit`, `delete`, `select` (relation-picker options), `archive`
|
|
25
|
+
(soft delete + undo), `export`. Pass a subset whenever a resource is not a full
|
|
26
|
+
CRUD table — a singleton edit form wants `["get","edit"]`, a read-only listing
|
|
27
|
+
`["list","get"]` — and keep the view in sync: drop the `TableView` `rowActions`
|
|
28
|
+
whose routes you left out, or bind a `Form` instead for a singleton.
|
|
29
|
+
3. **Edit fields** with `BuilderAddField` / `BuilderConfigureField <ref>#<field>` /
|
|
30
|
+
`BuilderRemoveField`; field name is immutable (rename = remove + add). **Delete**
|
|
31
|
+
with `BuilderDeleteResource`: removes the files, unwires the barrel, and by default
|
|
32
|
+
clears the resource's database table so a name reuse re-seeds cleanly rather than
|
|
33
|
+
showing stale rows (`keepData: true` to keep them).
|
|
34
|
+
4. **Fields are semantic aspects, not decorators:** `dataType`, `label`, `listable`
|
|
35
|
+
(default true), `searchable`, `sortable`, `filterable`, `access`
|
|
36
|
+
(`read`|`readwrite`, default `readwrite`), `required`, `indexed`, `order`. Names
|
|
37
|
+
colliding with a DataController route or model property (`_id`, `model`, `get`,
|
|
38
|
+
`list`, `select`, `count`, `new`, `edit`, `delete`, `archive`, `restore`,
|
|
39
|
+
`exportStart`, `exportStatus`, `exportDownload`) are rejected with `invalid_config`.
|
|
40
|
+
|
|
41
|
+
**Displaying a resource on a page is a safe-mode step**: create and populate the
|
|
42
|
+
resource, then `BuilderAddBlock` a `TableView` with `controller` = the resource `ref`
|
|
43
|
+
and display options in `config`. Relation columns work via `$ref` (see
|
|
44
|
+
"DataType, component, and reference values" in SKILL.md).
|
|
45
|
+
|
|
46
|
+
## Queries (computed numbers a DataAPI can't serve)
|
|
47
|
+
|
|
48
|
+
A **query** is a derived-data endpoint on a *page*: a GET route returning one computed
|
|
49
|
+
number — a count, a sum, an average — backed by a generated method on the resource's
|
|
50
|
+
model. The DataAPI serves rows; a query serves an aggregate over them. Reach for one
|
|
51
|
+
whenever a block needs a number rather than a list — a **KpiCard** is the usual consumer.
|
|
52
|
+
|
|
53
|
+
1. **Read the templates.** `BuilderQueryTemplates` returns each template's `id`, what it
|
|
54
|
+
computes, its `output` kind, and its `params` schema. Never guess an id or a param key —
|
|
55
|
+
an unrecognised key is rejected. v1 has `count` and `aggregate`, both `output: "scalar"`.
|
|
56
|
+
2. **Add the query** with `BuilderAddQuery` on the page that will display it (not the
|
|
57
|
+
resource's page). It compiles the template into a model method and a page route in one
|
|
58
|
+
atomic op and returns `{ query, route }`.
|
|
59
|
+
3. **Wire the block to it.** `route` is the full URL — pass it as the card's `fetchUrl`.
|
|
60
|
+
There is no reference sentinel for queries yet, so wire the returned string; if you later
|
|
61
|
+
move the endpoint, update the card in the same turn.
|
|
62
|
+
4. **Read back** with `BuilderPageStructure` — a page's `queries` array reports each one's
|
|
63
|
+
`name`, `endpoint`, `resource`, `modelMethod`, `template` and `params`.
|
|
64
|
+
5. **Reconfigure / remove** with `BuilderConfigureQuery` (only the keys you patch change)
|
|
65
|
+
and `BuilderRemoveQuery` (drops the route, and the model method once nothing calls it).
|
|
66
|
+
|
|
67
|
+
**Params** are documented by each template's own `params` schema from
|
|
68
|
+
`BuilderQueryTemplates` — every key, every value shape, down to the enums. Read it rather
|
|
69
|
+
than guessing; an unrecognised key is rejected.
|
|
70
|
+
|
|
71
|
+
The one idea worth stating here, because it is what makes a query reusable: a filter value
|
|
72
|
+
can be **bound to a request parameter** instead of baked into the chain
|
|
73
|
+
(`{ "$param": { "name": "min" } }`), so one query answers `?min=25` and `?min=100`
|
|
74
|
+
rather than needing a query per threshold. Bake the value in when it is part of what the
|
|
75
|
+
query *means* (in-stock rows), bind it when the caller chooses (a price threshold). The
|
|
76
|
+
`name`/`in` you give a `$param` shape the route, not the model: the route reads the value
|
|
77
|
+
from that source and hands it to the model method, whose own parameter is named for you.
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"page": "/catalog/books", "name": "inStockValue", "resource": "book",
|
|
82
|
+
"template": "aggregate",
|
|
83
|
+
"params": { "op": "sum", "field": "price",
|
|
84
|
+
"where": [ { "field": "inStock", "op": "eq", "value": true } ] }
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
→ `{ "query": "/catalog/books@inStockValue", "route": "/catalog/books/stats/in-stock-value" }`,
|
|
88
|
+
serving `{ "value": 110.48 }`.
|
|
89
|
+
|
|
90
|
+
**What you don't have to manage.** The route is auth-gated by the page, automatically —
|
|
91
|
+
a query is never public. Queries wanting the identical chain share one model method, and a
|
|
92
|
+
query whose chain diverges from a method others still use gets its own rather than editing
|
|
93
|
+
theirs — which is why a `modelMethod` may not match its query's name (`inStockCount2`). All
|
|
94
|
+
of that is handled for you: reconfiguring or removing one query never changes what another
|
|
95
|
+
page's query returns.
|
|
96
|
+
|
|
97
|
+
**Endpoints are a default, not a namespace.** `/stats/<kebab-name>` unless you pass
|
|
98
|
+
`endpoint`; any path is fine as long as it starts with `/` and the page doesn't already
|
|
99
|
+
serve it. One coupling: a `$param` with `in: "param"` reads a path segment, so its
|
|
100
|
+
`endpoint` must declare a matching `:name` (`in: "query"`, the default, needs nothing).
|
|
101
|
+
|
|
102
|
+
**Opaque queries.** Read-back is purely structural: the builder recognizes a query by its
|
|
103
|
+
shape, so anything it can parse it can edit. A query is opaque **only when it no longer
|
|
104
|
+
parses** — not merely because a human touched it. An in-grammar edit (a changed threshold, an
|
|
105
|
+
added filter) is simply re-read and stays editable. `opaqueReason` is `unparseable_route` (the
|
|
106
|
+
GET wrapper isn't the `return { value: await model.m(...) }` shape) or `unparseable_chain` (the
|
|
107
|
+
model method isn't a chain any template accepts — hand-written differently, edited out of the
|
|
108
|
+
grammar, or emitted by a newer builder). `BuilderConfigureQuery` refuses an opaque query with
|
|
109
|
+
`opaque_target`, but it stays visible and `BuilderRemoveQuery` still works: the builder can
|
|
110
|
+
always remove what it cannot edit. To reshape an opaque query, edit it in vibe mode — or bring
|
|
111
|
+
its body back within the chain grammar and the builder picks it up again.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dms-builder-safe
|
|
3
|
+
description: Builds or modifies AntelopeJS DMS admin pages through the Builder MCP tools instead of raw code edits. Use when the generation mode is "safe", or when the user wants predictable, typechecked page edits (add/configure/move/remove blocks, create pages and categories).
|
|
4
|
+
icon: i-ph-shield-check
|
|
5
|
+
category: Builder
|
|
6
|
+
tags: [Pages, Builder, SafeMode, DMS]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Building DMS pages through the Builder (safe mode)
|
|
10
|
+
|
|
11
|
+
In safe mode you act **only through the `Builder*` MCP tools** — raw file edits
|
|
12
|
+
(`Write`/`Edit`/`Bash`) are blocked. Every op is **atomic and typecheck-gated**: on
|
|
13
|
+
success it returns the file changes; on `typecheck_failed` **nothing is written**.
|
|
14
|
+
|
|
15
|
+
## Addressing
|
|
16
|
+
|
|
17
|
+
- **PageRef** = the page's route, e.g. `/charts/revenue`.
|
|
18
|
+
- **BlockPath** = `<pageRef>#<name>[/<childId>...]`: `#<name>` is a top-level block;
|
|
19
|
+
each `/<childId>` descends into a container's child.
|
|
20
|
+
- **CategoryRef** = a dotted id, e.g. `pages.charts` (top-level pages under `pages.*`;
|
|
21
|
+
module pages under `modules.<id>.*`). Get exact refs from `BuilderListPages`, never guess.
|
|
22
|
+
- **ResourceRef** = a data resource's id — its `/api/<name>` route segment.
|
|
23
|
+
**FieldPath** = `<resourceRef>#<fieldName>` (flat). Get refs from `BuilderListResources`.
|
|
24
|
+
- **QueryRef** = `<pageRef>@<queryName>`, e.g. `/catalog/books@inStockCount`. The page is
|
|
25
|
+
where the route lives; the resource it reads is recorded in the query. Get refs from
|
|
26
|
+
`BuilderPageStructure`'s `queries`.
|
|
27
|
+
|
|
28
|
+
## DataType, component, and reference values
|
|
29
|
+
|
|
30
|
+
- Wherever the catalog marks a config field `x-dataType` (a Form field's `type`, a
|
|
31
|
+
TableView `Column` `type`, a resource field's `dataType`), pass a **DataType value**
|
|
32
|
+
`{ $dataType: "<id>", config: {…} }` — an id from `BuilderCatalog`'s `dataTypes`.
|
|
33
|
+
Never pass a raw `$expr`; safe mode refuses it.
|
|
34
|
+
- Config fields the catalog marks `x-component` hold a nested component (e.g. a
|
|
35
|
+
ChartCard's `chart`), which safe mode cannot construct — there is no `$expr` escape
|
|
36
|
+
hatch. Treat them like `opaque_target`: explain and ask to switch to Vibe mode.
|
|
37
|
+
- To name a builder-generated resource class inside config — e.g. a relation column's
|
|
38
|
+
`dataApiController` — pass a **reference value**
|
|
39
|
+
`{ $ref: { resource: "<ref>", as?: "dataApi" | "table" | "model" } }` (default `as`
|
|
40
|
+
= `dataApi`). The resource must already exist. Unlike `$expr`, `$ref` is validated
|
|
41
|
+
and **allowed in safe mode**, so relation columns work in safe mode.
|
|
42
|
+
|
|
43
|
+
## Workflow
|
|
44
|
+
|
|
45
|
+
1. **Discover the catalog first.** `BuilderCatalog` lists the valid block `type`s
|
|
46
|
+
(Grid, GridRow, KpiCard, Form, Tab, Tree, ChartCard, TableView, …), their config
|
|
47
|
+
schemas, and the DataTypes. Only use types it lists.
|
|
48
|
+
2. **Read before you write.** `BuilderListPages` to find a page/category;
|
|
49
|
+
`BuilderPageStructure <pageRef>` for the block tree, `editable` flags, and
|
|
50
|
+
`version` hash. Model new blocks on an existing page.
|
|
51
|
+
3. **Create a page** with `BuilderCreatePage` (pass a real `CategoryRef`); it returns
|
|
52
|
+
`{ ref, filepath }`. Immediately `NavigateToPage` to the new (empty) page — before
|
|
53
|
+
adding any blocks — so the user watches it fill in block by block.
|
|
54
|
+
4. **Add blocks** with `BuilderAddBlock`: omit `parent` for a top-level block or pass
|
|
55
|
+
a container's BlockPath to nest; `name` unique among siblings; `type` + `config`
|
|
56
|
+
from the catalog. **Controller-leading blocks** (catalog `controllerArg: true`,
|
|
57
|
+
e.g. `TableView`) bind to a data resource: pass `controller` = the resource `ref`
|
|
58
|
+
(its DataAPI class becomes the leading argument) and display options in `config`.
|
|
59
|
+
Required for those types; rejected for others.
|
|
60
|
+
5. **Configure / rearrange**: `BuilderConfigureBlock` merges options (`replace: true`
|
|
61
|
+
to overwrite). Children are managed only via `BuilderAddBlock` /
|
|
62
|
+
`BuilderMoveBlock` / `BuilderRemoveBlock` (removes the whole subtree).
|
|
63
|
+
6. **Pages & categories**: `BuilderConfigurePage` edits page metadata (displayName,
|
|
64
|
+
icon, order, description); `BuilderDeletePage` removes a page and its barrel
|
|
65
|
+
import; `BuilderCreateCategory` / `BuilderConfigureCategory` /
|
|
66
|
+
`BuilderDeleteCategory` manage categories. Category delete is refused with
|
|
67
|
+
`referential_integrity` while any page still references it — `BuilderDeletePage`
|
|
68
|
+
those pages first.
|
|
69
|
+
7. **Verify at runtime.** A typecheck-clean edit can still be wrong at runtime (a
|
|
70
|
+
bad `fetchUrl` 404s): `NavigateToPage` to load the page and `QueryLogs` to check
|
|
71
|
+
the host's actual reload/runtime output.
|
|
72
|
+
|
|
73
|
+
## Data resources (Table + DataAPI)
|
|
74
|
+
|
|
75
|
+
A **resource** is the data layer a table/form displays: a Database `Table`+`Model`
|
|
76
|
+
and a matching `DataAPI` controller at `/api/<name>`, generated as decorator classes
|
|
77
|
+
kept in sync — never hand-write them. Displaying one on a page is a safe-mode step:
|
|
78
|
+
create and populate the resource, then `BuilderAddBlock` a `TableView` with
|
|
79
|
+
`controller` = the resource `ref`. See [REFERENCE.md](REFERENCE.md) for the full
|
|
80
|
+
resource workflow (`BuilderListResources` / `BuilderCreateResource` with `location`
|
|
81
|
+
and `routes` / field ops / `BuilderDeleteResource`), field semantics and reserved
|
|
82
|
+
names, and the engine-support caveat for resource ops.
|
|
83
|
+
|
|
84
|
+
## Queries (computed numbers a DataAPI can't serve)
|
|
85
|
+
|
|
86
|
+
A **query** is a derived-data endpoint on a *page*: a GET route returning one computed
|
|
87
|
+
number — a count, a sum, an average — backed by a generated method on a resource's model.
|
|
88
|
+
The DataAPI serves rows; a query serves an aggregate over them, and a **KpiCard** is the
|
|
89
|
+
usual consumer. Add one with `BuilderAddQuery` on the page that will display it (not the
|
|
90
|
+
resource's page), wire the returned `route` as the card's `fetchUrl`, and read it back
|
|
91
|
+
through `BuilderPageStructure`'s `queries`. See [REFERENCE.md](REFERENCE.md) for the
|
|
92
|
+
template catalog, route-bound params, opaque read-back, and the full query workflow.
|
|
93
|
+
|
|
94
|
+
## Errors & escalation
|
|
95
|
+
|
|
96
|
+
- `typecheck_failed` → the emitted code didn't compile; read `diagnostics`, fix the
|
|
97
|
+
`config`/`type`, retry. Nothing was written.
|
|
98
|
+
- `invalid_config` / `duplicate_name` / `not_found` → fix the input.
|
|
99
|
+
- `builder_unavailable` / `request_failed` → the host's builder engine is unreachable
|
|
100
|
+
or doesn't implement the op (`request_failed` with `HTTP 400` = the host answered
|
|
101
|
+
`unknown_op`). Explain the limitation; don't retry.
|
|
102
|
+
- `opaque_target` / `unsupported` → **safe mode cannot do this**. Explain the
|
|
103
|
+
limitation and ask permission to switch to **Vibe mode** for that one step; do not
|
|
104
|
+
force it. After any vibe-mode excursion, call `BuilderRefresh` (optionally scoped
|
|
105
|
+
to the page) so the builder's source index reconciles with disk before further
|
|
106
|
+
safe-mode ops.
|
|
107
|
+
- `stale` → the page changed under you; re-read with `BuilderPageStructure`, retry.
|
|
108
|
+
|
|
109
|
+
## Guardrails
|
|
110
|
+
|
|
111
|
+
- Always `BuilderCatalog` before adding blocks; use only listed types + config keys.
|
|
112
|
+
Likewise `BuilderQueryTemplates` before adding a query.
|
|
113
|
+
- Block/child names are mandatory and unique among siblings.
|
|
114
|
+
- A card showing an aggregate needs a query behind it — don't point a `fetchUrl` at a
|
|
115
|
+
DataAPI route and hope it returns a number.
|
|
116
|
+
- After a structural change, navigate to the page and check logs before declaring done.
|
|
117
|
+
A query is the case where this matters most: it typechecks against the field names but
|
|
118
|
+
the number it returns is only visible at runtime.
|