@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.
Files changed (416) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +46 -0
  3. package/dist/builder/presence.d.ts +1 -0
  4. package/dist/builder/presence.js +22 -0
  5. package/dist/builder/presence.js.map +1 -0
  6. package/dist/constants/builder.d.ts +7 -0
  7. package/dist/constants/builder.js +11 -0
  8. package/dist/constants/builder.js.map +1 -0
  9. package/dist/constants/frontend-module.d.ts +3 -0
  10. package/dist/constants/frontend-module.js +7 -0
  11. package/dist/constants/frontend-module.js.map +1 -0
  12. package/dist/constants/logs.d.ts +3 -0
  13. package/dist/constants/logs.js +7 -0
  14. package/dist/constants/logs.js.map +1 -0
  15. package/dist/constants/module.d.ts +3 -0
  16. package/dist/constants/module.js +7 -0
  17. package/dist/constants/module.js.map +1 -0
  18. package/dist/constants/pages-registry.d.ts +2 -0
  19. package/dist/constants/pages-registry.js +6 -0
  20. package/dist/constants/pages-registry.js.map +1 -0
  21. package/dist/constants/sidecar.d.ts +24 -0
  22. package/dist/constants/sidecar.js +32 -0
  23. package/dist/constants/sidecar.js.map +1 -0
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.js +41 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/lifecycle/module-roots.d.ts +1 -0
  28. package/dist/lifecycle/module-roots.js +52 -0
  29. package/dist/lifecycle/module-roots.js.map +1 -0
  30. package/dist/lifecycle/respawn-tracker.d.ts +5 -0
  31. package/dist/lifecycle/respawn-tracker.js +20 -0
  32. package/dist/lifecycle/respawn-tracker.js.map +1 -0
  33. package/dist/lifecycle/skill-sources.d.ts +5 -0
  34. package/dist/lifecycle/skill-sources.js +181 -0
  35. package/dist/lifecycle/skill-sources.js.map +1 -0
  36. package/dist/lifecycle/spawn-sidecar.d.ts +17 -0
  37. package/dist/lifecycle/spawn-sidecar.js +299 -0
  38. package/dist/lifecycle/spawn-sidecar.js.map +1 -0
  39. package/dist/logging/log-buffer.d.ts +9 -0
  40. package/dist/logging/log-buffer.js +76 -0
  41. package/dist/logging/log-buffer.js.map +1 -0
  42. package/dist/pages/activity/page.d.ts +10 -0
  43. package/dist/pages/activity/page.js +62 -0
  44. package/dist/pages/activity/page.js.map +1 -0
  45. package/dist/pages/all.d.ts +4 -0
  46. package/dist/pages/all.js +21 -0
  47. package/dist/pages/all.js.map +1 -0
  48. package/dist/pages/index.d.ts +4 -0
  49. package/dist/pages/index.js +21 -0
  50. package/dist/pages/index.js.map +1 -0
  51. package/dist/pages/module.d.ts +1 -0
  52. package/dist/pages/module.js +11 -0
  53. package/dist/pages/module.js.map +1 -0
  54. package/dist/pages/overview/page.d.ts +11 -0
  55. package/dist/pages/overview/page.js +82 -0
  56. package/dist/pages/overview/page.js.map +1 -0
  57. package/dist/pages/settings/page.d.ts +9 -0
  58. package/dist/pages/settings/page.js +29 -0
  59. package/dist/pages/settings/page.js.map +1 -0
  60. package/dist/pages/skills/page.d.ts +9 -0
  61. package/dist/pages/skills/page.js +29 -0
  62. package/dist/pages/skills/page.js.map +1 -0
  63. package/dist/pages-registry.d.ts +2 -0
  64. package/dist/pages-registry.js +41 -0
  65. package/dist/pages-registry.js.map +1 -0
  66. package/dist/routes/builder.d.ts +11 -0
  67. package/dist/routes/builder.js +135 -0
  68. package/dist/routes/builder.js.map +1 -0
  69. package/dist/routes/health.d.ts +8 -0
  70. package/dist/routes/health.js +27 -0
  71. package/dist/routes/health.js.map +1 -0
  72. package/dist/routes/index.d.ts +8 -0
  73. package/dist/routes/index.js +25 -0
  74. package/dist/routes/index.js.map +1 -0
  75. package/dist/routes/logs.d.ts +7 -0
  76. package/dist/routes/logs.js +51 -0
  77. package/dist/routes/logs.js.map +1 -0
  78. package/dist/routes/metrics.d.ts +54 -0
  79. package/dist/routes/metrics.js +104 -0
  80. package/dist/routes/metrics.js.map +1 -0
  81. package/dist/routes/pages-registry.d.ts +7 -0
  82. package/dist/routes/pages-registry.js +86 -0
  83. package/dist/routes/pages-registry.js.map +1 -0
  84. package/dist/routes/proxy.d.ts +4 -0
  85. package/dist/routes/proxy.js +55 -0
  86. package/dist/routes/proxy.js.map +1 -0
  87. package/dist/routes/settings.d.ts +13 -0
  88. package/dist/routes/settings.js +52 -0
  89. package/dist/routes/settings.js.map +1 -0
  90. package/dist/routes/sidecar-auth.d.ts +3 -0
  91. package/dist/routes/sidecar-auth.js +27 -0
  92. package/dist/routes/sidecar-auth.js.map +1 -0
  93. package/dist/routes/sidecar-info.d.ts +6 -0
  94. package/dist/routes/sidecar-info.js +39 -0
  95. package/dist/routes/sidecar-info.js.map +1 -0
  96. package/dist/routes/skills.d.ts +18 -0
  97. package/dist/routes/skills.js +33 -0
  98. package/dist/routes/skills.js.map +1 -0
  99. package/dist/types/index.d.ts +2 -0
  100. package/dist/types/index.js +19 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/types/logs.d.ts +12 -0
  103. package/dist/types/logs.js +3 -0
  104. package/dist/types/logs.js.map +1 -0
  105. package/dist/types/pages-registry.d.ts +6 -0
  106. package/dist/types/pages-registry.js +3 -0
  107. package/dist/types/pages-registry.js.map +1 -0
  108. package/frontend-vue/.editorconfig +12 -0
  109. package/frontend-vue/app/components/ActivityView.vue +94 -0
  110. package/frontend-vue/app/components/SettingsView.vue +300 -0
  111. package/frontend-vue/app/components/SkillsView.vue +228 -0
  112. package/frontend-vue/app/plugins/ai.client.ts +109 -0
  113. package/frontend-vue/app/runtime/backoff.ts +30 -0
  114. package/frontend-vue/app/runtime/constants.ts +66 -0
  115. package/frontend-vue/app/runtime/current-page.ts +28 -0
  116. package/frontend-vue/app/runtime/header-action.ts +64 -0
  117. package/frontend-vue/app/runtime/host-commands.ts +127 -0
  118. package/frontend-vue/app/runtime/navigation-complete.ts +22 -0
  119. package/frontend-vue/app/runtime/overlay-prefs.ts +89 -0
  120. package/frontend-vue/app/runtime/overlay.ts +383 -0
  121. package/frontend-vue/app/runtime/shortcuts.ts +28 -0
  122. package/frontend-vue/app/runtime/sidecar-status.ts +163 -0
  123. package/frontend-vue/app/runtime/theme-bridge.ts +177 -0
  124. package/frontend-vue/app/runtime/ws-client.ts +196 -0
  125. package/frontend-vue/dms.frontend.ts +26 -0
  126. package/frontend-vue/eslint.config.mjs +24 -0
  127. package/frontend-vue/package.json +33 -0
  128. package/frontend-vue/pnpm-lock.yaml +2723 -0
  129. package/frontend-vue/tests/backoff.test.ts +44 -0
  130. package/frontend-vue/tests/host-commands.test.ts +142 -0
  131. package/frontend-vue/tests/navigation.test.ts +45 -0
  132. package/frontend-vue/tests/overlay-prefs.test.ts +91 -0
  133. package/frontend-vue/tests/sidecar-auth.test.ts +87 -0
  134. package/frontend-vue/tests/sidecar-guest.test.ts +45 -0
  135. package/frontend-vue/vitest.config.ts +8 -0
  136. package/package.json +79 -0
  137. package/sidecar/chatbox/dist/assets/index-Cy2BwTG0.js +50 -0
  138. package/sidecar/chatbox/dist/assets/index-pP_KOHIn.css +1 -0
  139. package/sidecar/chatbox/dist/index.html +13 -0
  140. package/sidecar/dist/agent/attachments.d.ts +8 -0
  141. package/sidecar/dist/agent/attachments.js +85 -0
  142. package/sidecar/dist/agent/attachments.js.map +1 -0
  143. package/sidecar/dist/agent/claude-runner.d.ts +33 -0
  144. package/sidecar/dist/agent/claude-runner.js +264 -0
  145. package/sidecar/dist/agent/claude-runner.js.map +1 -0
  146. package/sidecar/dist/agent/claude-session.d.ts +18 -0
  147. package/sidecar/dist/agent/claude-session.js +155 -0
  148. package/sidecar/dist/agent/claude-session.js.map +1 -0
  149. package/sidecar/dist/agent/edit-tracker.d.ts +9 -0
  150. package/sidecar/dist/agent/edit-tracker.js +34 -0
  151. package/sidecar/dist/agent/edit-tracker.js.map +1 -0
  152. package/sidecar/dist/agent/host-context.d.ts +4 -0
  153. package/sidecar/dist/agent/host-context.js +16 -0
  154. package/sidecar/dist/agent/host-context.js.map +1 -0
  155. package/sidecar/dist/agent/input-queue.d.ts +7 -0
  156. package/sidecar/dist/agent/input-queue.js +39 -0
  157. package/sidecar/dist/agent/input-queue.js.map +1 -0
  158. package/sidecar/dist/agent/permission-bus.d.ts +26 -0
  159. package/sidecar/dist/agent/permission-bus.js +138 -0
  160. package/sidecar/dist/agent/permission-bus.js.map +1 -0
  161. package/sidecar/dist/agent/question-bus.d.ts +22 -0
  162. package/sidecar/dist/agent/question-bus.js +91 -0
  163. package/sidecar/dist/agent/question-bus.js.map +1 -0
  164. package/sidecar/dist/agent/read-access.d.ts +2 -0
  165. package/sidecar/dist/agent/read-access.js +33 -0
  166. package/sidecar/dist/agent/read-access.js.map +1 -0
  167. package/sidecar/dist/agent/resolve-claude-binary.d.ts +1 -0
  168. package/sidecar/dist/agent/resolve-claude-binary.js +43 -0
  169. package/sidecar/dist/agent/resolve-claude-binary.js.map +1 -0
  170. package/sidecar/dist/agent/runner-events.d.ts +28 -0
  171. package/sidecar/dist/agent/runner-events.js +2 -0
  172. package/sidecar/dist/agent/runner-events.js.map +1 -0
  173. package/sidecar/dist/agent/sdk-adapter.d.ts +3 -0
  174. package/sidecar/dist/agent/sdk-adapter.js +106 -0
  175. package/sidecar/dist/agent/sdk-adapter.js.map +1 -0
  176. package/sidecar/dist/agent/sdk-loader.d.ts +5 -0
  177. package/sidecar/dist/agent/sdk-loader.js +14 -0
  178. package/sidecar/dist/agent/sdk-loader.js.map +1 -0
  179. package/sidecar/dist/agent/system-prompt.d.ts +6 -0
  180. package/sidecar/dist/agent/system-prompt.js +29 -0
  181. package/sidecar/dist/agent/system-prompt.js.map +1 -0
  182. package/sidecar/dist/agent/tool-summary.d.ts +1 -0
  183. package/sidecar/dist/agent/tool-summary.js +46 -0
  184. package/sidecar/dist/agent/tool-summary.js.map +1 -0
  185. package/sidecar/dist/agent/typecheck.d.ts +36 -0
  186. package/sidecar/dist/agent/typecheck.js +104 -0
  187. package/sidecar/dist/agent/typecheck.js.map +1 -0
  188. package/sidecar/dist/builder/builder-client.d.ts +10 -0
  189. package/sidecar/dist/builder/builder-client.js +52 -0
  190. package/sidecar/dist/builder/builder-client.js.map +1 -0
  191. package/sidecar/dist/builder/capability.d.ts +4 -0
  192. package/sidecar/dist/builder/capability.js +11 -0
  193. package/sidecar/dist/builder/capability.js.map +1 -0
  194. package/sidecar/dist/constants/agent.d.ts +25 -0
  195. package/sidecar/dist/constants/agent.js +25 -0
  196. package/sidecar/dist/constants/agent.js.map +1 -0
  197. package/sidecar/dist/constants/attachments.d.ts +7 -0
  198. package/sidecar/dist/constants/attachments.js +12 -0
  199. package/sidecar/dist/constants/attachments.js.map +1 -0
  200. package/sidecar/dist/constants/builder.d.ts +5 -0
  201. package/sidecar/dist/constants/builder.js +32 -0
  202. package/sidecar/dist/constants/builder.js.map +1 -0
  203. package/sidecar/dist/constants/daemon.d.ts +7 -0
  204. package/sidecar/dist/constants/daemon.js +8 -0
  205. package/sidecar/dist/constants/daemon.js.map +1 -0
  206. package/sidecar/dist/constants/env.d.ts +3 -0
  207. package/sidecar/dist/constants/env.js +4 -0
  208. package/sidecar/dist/constants/env.js.map +1 -0
  209. package/sidecar/dist/constants/host-state.d.ts +1 -0
  210. package/sidecar/dist/constants/host-state.js +2 -0
  211. package/sidecar/dist/constants/host-state.js.map +1 -0
  212. package/sidecar/dist/constants/http.d.ts +20 -0
  213. package/sidecar/dist/constants/http.js +31 -0
  214. package/sidecar/dist/constants/http.js.map +1 -0
  215. package/sidecar/dist/constants/logs.d.ts +11 -0
  216. package/sidecar/dist/constants/logs.js +16 -0
  217. package/sidecar/dist/constants/logs.js.map +1 -0
  218. package/sidecar/dist/constants/mcp.d.ts +24 -0
  219. package/sidecar/dist/constants/mcp.js +38 -0
  220. package/sidecar/dist/constants/mcp.js.map +1 -0
  221. package/sidecar/dist/constants/native-binary.d.ts +4 -0
  222. package/sidecar/dist/constants/native-binary.js +5 -0
  223. package/sidecar/dist/constants/native-binary.js.map +1 -0
  224. package/sidecar/dist/constants/pages.d.ts +16 -0
  225. package/sidecar/dist/constants/pages.js +24 -0
  226. package/sidecar/dist/constants/pages.js.map +1 -0
  227. package/sidecar/dist/constants/paths.d.ts +3 -0
  228. package/sidecar/dist/constants/paths.js +7 -0
  229. package/sidecar/dist/constants/paths.js.map +1 -0
  230. package/sidecar/dist/constants/permissions.d.ts +15 -0
  231. package/sidecar/dist/constants/permissions.js +15 -0
  232. package/sidecar/dist/constants/permissions.js.map +1 -0
  233. package/sidecar/dist/constants/ports.d.ts +3 -0
  234. package/sidecar/dist/constants/ports.js +4 -0
  235. package/sidecar/dist/constants/ports.js.map +1 -0
  236. package/sidecar/dist/constants/project.d.ts +8 -0
  237. package/sidecar/dist/constants/project.js +12 -0
  238. package/sidecar/dist/constants/project.js.map +1 -0
  239. package/sidecar/dist/constants/questions.d.ts +4 -0
  240. package/sidecar/dist/constants/questions.js +5 -0
  241. package/sidecar/dist/constants/questions.js.map +1 -0
  242. package/sidecar/dist/constants/read-access.d.ts +1 -0
  243. package/sidecar/dist/constants/read-access.js +8 -0
  244. package/sidecar/dist/constants/read-access.js.map +1 -0
  245. package/sidecar/dist/constants/safety-net.d.ts +5 -0
  246. package/sidecar/dist/constants/safety-net.js +6 -0
  247. package/sidecar/dist/constants/safety-net.js.map +1 -0
  248. package/sidecar/dist/constants/settings.d.ts +9 -0
  249. package/sidecar/dist/constants/settings.js +29 -0
  250. package/sidecar/dist/constants/settings.js.map +1 -0
  251. package/sidecar/dist/constants/state.d.ts +7 -0
  252. package/sidecar/dist/constants/state.js +7 -0
  253. package/sidecar/dist/constants/state.js.map +1 -0
  254. package/sidecar/dist/constants/timing.d.ts +1 -0
  255. package/sidecar/dist/constants/timing.js +2 -0
  256. package/sidecar/dist/constants/timing.js.map +1 -0
  257. package/sidecar/dist/constants/tool-summary.d.ts +20 -0
  258. package/sidecar/dist/constants/tool-summary.js +21 -0
  259. package/sidecar/dist/constants/tool-summary.js.map +1 -0
  260. package/sidecar/dist/constants/typecheck.d.ts +16 -0
  261. package/sidecar/dist/constants/typecheck.js +23 -0
  262. package/sidecar/dist/constants/typecheck.js.map +1 -0
  263. package/sidecar/dist/constants/ws.d.ts +5 -0
  264. package/sidecar/dist/constants/ws.js +6 -0
  265. package/sidecar/dist/constants/ws.js.map +1 -0
  266. package/sidecar/dist/host/project-info.d.ts +6 -0
  267. package/sidecar/dist/host/project-info.js +51 -0
  268. package/sidecar/dist/host/project-info.js.map +1 -0
  269. package/sidecar/dist/index.d.ts +3 -0
  270. package/sidecar/dist/index.js +280 -0
  271. package/sidecar/dist/index.js.map +1 -0
  272. package/sidecar/dist/logs/logs-client.d.ts +11 -0
  273. package/sidecar/dist/logs/logs-client.js +52 -0
  274. package/sidecar/dist/logs/logs-client.js.map +1 -0
  275. package/sidecar/dist/logs/types.d.ts +12 -0
  276. package/sidecar/dist/logs/types.js +2 -0
  277. package/sidecar/dist/logs/types.js.map +1 -0
  278. package/sidecar/dist/mcp/server.d.ts +2 -0
  279. package/sidecar/dist/mcp/server.js +50 -0
  280. package/sidecar/dist/mcp/server.js.map +1 -0
  281. package/sidecar/dist/mcp/tools/ask-user.d.ts +41 -0
  282. package/sidecar/dist/mcp/tools/ask-user.js +29 -0
  283. package/sidecar/dist/mcp/tools/ask-user.js.map +1 -0
  284. package/sidecar/dist/mcp/tools/builder.d.ts +259 -0
  285. package/sidecar/dist/mcp/tools/builder.js +216 -0
  286. package/sidecar/dist/mcp/tools/builder.js.map +1 -0
  287. package/sidecar/dist/mcp/tools/find-pages-using.d.ts +15 -0
  288. package/sidecar/dist/mcp/tools/find-pages-using.js +108 -0
  289. package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -0
  290. package/sidecar/dist/mcp/tools/get-current-page.d.ts +4 -0
  291. package/sidecar/dist/mcp/tools/get-current-page.js +12 -0
  292. package/sidecar/dist/mcp/tools/get-current-page.js.map +1 -0
  293. package/sidecar/dist/mcp/tools/list-pages.d.ts +8 -0
  294. package/sidecar/dist/mcp/tools/list-pages.js +29 -0
  295. package/sidecar/dist/mcp/tools/list-pages.js.map +1 -0
  296. package/sidecar/dist/mcp/tools/navigate-to-page.d.ts +14 -0
  297. package/sidecar/dist/mcp/tools/navigate-to-page.js +66 -0
  298. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -0
  299. package/sidecar/dist/mcp/tools/query-logs.d.ts +11 -0
  300. package/sidecar/dist/mcp/tools/query-logs.js +32 -0
  301. package/sidecar/dist/mcp/tools/query-logs.js.map +1 -0
  302. package/sidecar/dist/mcp/tools/typecheck.d.ts +9 -0
  303. package/sidecar/dist/mcp/tools/typecheck.js +20 -0
  304. package/sidecar/dist/mcp/tools/typecheck.js.map +1 -0
  305. package/sidecar/dist/mcp/types.d.ts +27 -0
  306. package/sidecar/dist/mcp/types.js +2 -0
  307. package/sidecar/dist/mcp/types.js.map +1 -0
  308. package/sidecar/dist/metrics/aggregate.d.ts +11 -0
  309. package/sidecar/dist/metrics/aggregate.js +189 -0
  310. package/sidecar/dist/metrics/aggregate.js.map +1 -0
  311. package/sidecar/dist/metrics/types.d.ts +53 -0
  312. package/sidecar/dist/metrics/types.js +8 -0
  313. package/sidecar/dist/metrics/types.js.map +1 -0
  314. package/sidecar/dist/pages/imports-scanner.d.ts +9 -0
  315. package/sidecar/dist/pages/imports-scanner.js +143 -0
  316. package/sidecar/dist/pages/imports-scanner.js.map +1 -0
  317. package/sidecar/dist/pages/registry-client.d.ts +15 -0
  318. package/sidecar/dist/pages/registry-client.js +83 -0
  319. package/sidecar/dist/pages/registry-client.js.map +1 -0
  320. package/sidecar/dist/pages/route-match.d.ts +2 -0
  321. package/sidecar/dist/pages/route-match.js +10 -0
  322. package/sidecar/dist/pages/route-match.js.map +1 -0
  323. package/sidecar/dist/pages/types.d.ts +11 -0
  324. package/sidecar/dist/pages/types.js +2 -0
  325. package/sidecar/dist/pages/types.js.map +1 -0
  326. package/sidecar/dist/prompts/agent.d.ts +3 -0
  327. package/sidecar/dist/prompts/agent.js +40 -0
  328. package/sidecar/dist/prompts/agent.js.map +1 -0
  329. package/sidecar/dist/prompts/builder.d.ts +3 -0
  330. package/sidecar/dist/prompts/builder.js +4 -0
  331. package/sidecar/dist/prompts/builder.js.map +1 -0
  332. package/sidecar/dist/protocol/events.d.ts +1050 -0
  333. package/sidecar/dist/protocol/events.js +154 -0
  334. package/sidecar/dist/protocol/events.js.map +1 -0
  335. package/sidecar/dist/protocol/messages.d.ts +644 -0
  336. package/sidecar/dist/protocol/messages.js +139 -0
  337. package/sidecar/dist/protocol/messages.js.map +1 -0
  338. package/sidecar/dist/server/client-auth.d.ts +2 -0
  339. package/sidecar/dist/server/client-auth.js +25 -0
  340. package/sidecar/dist/server/client-auth.js.map +1 -0
  341. package/sidecar/dist/server/host-socket-registry.d.ts +9 -0
  342. package/sidecar/dist/server/host-socket-registry.js +42 -0
  343. package/sidecar/dist/server/host-socket-registry.js.map +1 -0
  344. package/sidecar/dist/server/http.d.ts +25 -0
  345. package/sidecar/dist/server/http.js +263 -0
  346. package/sidecar/dist/server/http.js.map +1 -0
  347. package/sidecar/dist/server/idle-shutdown.d.ts +10 -0
  348. package/sidecar/dist/server/idle-shutdown.js +35 -0
  349. package/sidecar/dist/server/idle-shutdown.js.map +1 -0
  350. package/sidecar/dist/server/iframe-socket-registry.d.ts +10 -0
  351. package/sidecar/dist/server/iframe-socket-registry.js +57 -0
  352. package/sidecar/dist/server/iframe-socket-registry.js.map +1 -0
  353. package/sidecar/dist/server/live-turns.d.ts +8 -0
  354. package/sidecar/dist/server/live-turns.js +16 -0
  355. package/sidecar/dist/server/live-turns.js.map +1 -0
  356. package/sidecar/dist/server/navigation-completer.d.ts +5 -0
  357. package/sidecar/dist/server/navigation-completer.js +49 -0
  358. package/sidecar/dist/server/navigation-completer.js.map +1 -0
  359. package/sidecar/dist/server/pending-queue.d.ts +11 -0
  360. package/sidecar/dist/server/pending-queue.js +54 -0
  361. package/sidecar/dist/server/pending-queue.js.map +1 -0
  362. package/sidecar/dist/server/raw-data.d.ts +2 -0
  363. package/sidecar/dist/server/raw-data.js +13 -0
  364. package/sidecar/dist/server/raw-data.js.map +1 -0
  365. package/sidecar/dist/server/routing.d.ts +64 -0
  366. package/sidecar/dist/server/routing.js +571 -0
  367. package/sidecar/dist/server/routing.js.map +1 -0
  368. package/sidecar/dist/server/safety-net.d.ts +16 -0
  369. package/sidecar/dist/server/safety-net.js +76 -0
  370. package/sidecar/dist/server/safety-net.js.map +1 -0
  371. package/sidecar/dist/server/ws.d.ts +33 -0
  372. package/sidecar/dist/server/ws.js +182 -0
  373. package/sidecar/dist/server/ws.js.map +1 -0
  374. package/sidecar/dist/skills/build-catalog.d.ts +15 -0
  375. package/sidecar/dist/skills/build-catalog.js +39 -0
  376. package/sidecar/dist/skills/build-catalog.js.map +1 -0
  377. package/sidecar/dist/skills/frontmatter.d.ts +9 -0
  378. package/sidecar/dist/skills/frontmatter.js +50 -0
  379. package/sidecar/dist/skills/frontmatter.js.map +1 -0
  380. package/sidecar/dist/skills/plugin-wrapper.d.ts +6 -0
  381. package/sidecar/dist/skills/plugin-wrapper.js +37 -0
  382. package/sidecar/dist/skills/plugin-wrapper.js.map +1 -0
  383. package/sidecar/dist/skills/resolve-sources.d.ts +3 -0
  384. package/sidecar/dist/skills/resolve-sources.js +14 -0
  385. package/sidecar/dist/skills/resolve-sources.js.map +1 -0
  386. package/sidecar/dist/skills/types.d.ts +4 -0
  387. package/sidecar/dist/skills/types.js +2 -0
  388. package/sidecar/dist/skills/types.js.map +1 -0
  389. package/sidecar/dist/state/conversations.d.ts +20 -0
  390. package/sidecar/dist/state/conversations.js +93 -0
  391. package/sidecar/dist/state/conversations.js.map +1 -0
  392. package/sidecar/dist/state/host-state.d.ts +10 -0
  393. package/sidecar/dist/state/host-state.js +14 -0
  394. package/sidecar/dist/state/host-state.js.map +1 -0
  395. package/sidecar/dist/state/lock.d.ts +12 -0
  396. package/sidecar/dist/state/lock.js +43 -0
  397. package/sidecar/dist/state/lock.js.map +1 -0
  398. package/sidecar/dist/state/settings-store.d.ts +12 -0
  399. package/sidecar/dist/state/settings-store.js +82 -0
  400. package/sidecar/dist/state/settings-store.js.map +1 -0
  401. package/sidecar/dist/state/settings-types.d.ts +12 -0
  402. package/sidecar/dist/state/settings-types.js +4 -0
  403. package/sidecar/dist/state/settings-types.js.map +1 -0
  404. package/sidecar/dist/state/sidecar-version.d.ts +1 -0
  405. package/sidecar/dist/state/sidecar-version.js +14 -0
  406. package/sidecar/dist/state/sidecar-version.js.map +1 -0
  407. package/sidecar/dist/state/store.d.ts +11 -0
  408. package/sidecar/dist/state/store.js +89 -0
  409. package/sidecar/dist/state/store.js.map +1 -0
  410. package/sidecar/dist/state/types.d.ts +36 -0
  411. package/sidecar/dist/state/types.js +10 -0
  412. package/sidecar/dist/state/types.js.map +1 -0
  413. package/sidecar/package.json +42 -0
  414. package/skills/dms-builder-page/SKILL.md +80 -0
  415. package/skills/dms-builder-safe/REFERENCE.md +111 -0
  416. 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.