@antelopejs/dms-ai 0.7.0 → 0.9.0

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 (190) hide show
  1. package/README.md +17 -7
  2. package/dist/lifecycle/skill-sources.js +17 -17
  3. package/dist/lifecycle/skill-sources.js.map +1 -1
  4. package/dist/pages/settings/availability.js.map +1 -1
  5. package/dist/pages/settings/sections.js +10 -0
  6. package/dist/pages/settings/sections.js.map +1 -1
  7. package/dist/routes/builder.d.ts +7 -1
  8. package/dist/routes/builder.js +3 -0
  9. package/dist/routes/builder.js.map +1 -1
  10. package/dist/routes/changes.d.ts +5 -4
  11. package/dist/routes/changes.js.map +1 -1
  12. package/dist/routes/codex-account.d.ts +3 -2
  13. package/dist/routes/codex-account.js.map +1 -1
  14. package/dist/routes/sidecar-results.d.ts +2 -2
  15. package/dist/routes/sidecar-results.js.map +1 -1
  16. package/dist/routes/status.js.map +1 -1
  17. package/dist/sidecar/http-client.js +3 -1
  18. package/dist/sidecar/http-client.js.map +1 -1
  19. package/dist/sidecar/index.d.ts +1 -0
  20. package/dist/sidecar/index.js +1 -0
  21. package/dist/sidecar/index.js.map +1 -1
  22. package/dist/sidecar/json-body.d.ts +4 -0
  23. package/dist/sidecar/json-body.js +33 -0
  24. package/dist/sidecar/json-body.js.map +1 -0
  25. package/dist/sidecar/settings-values.d.ts +5 -2
  26. package/dist/sidecar/settings-values.js.map +1 -1
  27. package/dist/vocabulary/tools.js +3 -0
  28. package/dist/vocabulary/tools.js.map +1 -1
  29. package/frontend-vue/app/chat/components/ChatView.vue +38 -37
  30. package/frontend-vue/app/chat/components/NoticeCard.vue +16 -0
  31. package/frontend-vue/app/chat/components/PanelHeader.vue +2 -6
  32. package/frontend-vue/app/chat/composables/conversation-events.ts +4 -0
  33. package/frontend-vue/app/chat/composables/useConversation.ts +6 -0
  34. package/frontend-vue/app/chat/types/protocol.ts +9 -1
  35. package/frontend-vue/app/chat/utils/status-label.ts +50 -0
  36. package/frontend-vue/app/chat/utils/tool-lexicon.ts +16 -0
  37. package/frontend-vue/app/components/SkillDetail.vue +1 -1
  38. package/frontend-vue/app/plugins/ai.client.ts +2 -2
  39. package/frontend-vue/app/runtime/assistant-actions.ts +4 -2
  40. package/frontend-vue/app/runtime/assistant-session.ts +5 -1
  41. package/frontend-vue/app/runtime/block-health.ts +135 -0
  42. package/frontend-vue/app/runtime/constants.ts +1 -0
  43. package/frontend-vue/app/runtime/navigation-complete.ts +47 -6
  44. package/frontend-vue/app/runtime/panel-intents.ts +6 -2
  45. package/frontend-vue/app/views/ChangeSetPanel.vue +1 -1
  46. package/frontend-vue/app/views/composables/useAiData.ts +10 -18
  47. package/frontend-vue/app/views/composables/useChangeSetActions.ts +5 -15
  48. package/frontend-vue/app/views/constants.ts +1 -1
  49. package/frontend-vue/app/views/types.ts +1 -1
  50. package/frontend-vue/build/backend-boundary.ts +54 -21
  51. package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +7 -0
  52. package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +7 -0
  53. package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +6 -1
  54. package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +6 -1
  55. package/frontend-vue/tests/assistant-actions.test.ts +37 -0
  56. package/frontend-vue/tests/block-health.test.ts +142 -0
  57. package/frontend-vue/tests/chat/conversation-events.test.ts +34 -0
  58. package/frontend-vue/tests/chat/tool-lexicon.test.ts +1 -0
  59. package/frontend-vue/tests/navigation.test.ts +67 -2
  60. package/frontend-vue/tests/support/api-error-presenter.ts +28 -0
  61. package/frontend-vue/tests/support/panel-harness.ts +2 -2
  62. package/frontend-vue/tests/views/api-data-reads.test.ts +2 -0
  63. package/frontend-vue/tests/views/api-error-presentation.test.ts +89 -0
  64. package/package.json +7 -6
  65. package/sidecar/dist/agent/provider.d.ts +5 -0
  66. package/sidecar/dist/agent/runner.d.ts +5 -0
  67. package/sidecar/dist/agent/runner.js +2 -0
  68. package/sidecar/dist/agent/runner.js.map +1 -1
  69. package/sidecar/dist/builder/builder-client.js +2 -2
  70. package/sidecar/dist/builder/builder-client.js.map +1 -1
  71. package/sidecar/dist/constants/builder.d.ts +2 -1
  72. package/sidecar/dist/constants/builder.js +12 -0
  73. package/sidecar/dist/constants/builder.js.map +1 -1
  74. package/sidecar/dist/constants/claude.d.ts +2 -0
  75. package/sidecar/dist/constants/claude.js +2 -0
  76. package/sidecar/dist/constants/claude.js.map +1 -1
  77. package/sidecar/dist/constants/mcp.d.ts +1 -1
  78. package/sidecar/dist/constants/mcp.js +1 -1
  79. package/sidecar/dist/constants/mcp.js.map +1 -1
  80. package/sidecar/dist/constants/native-binary.d.ts +5 -2
  81. package/sidecar/dist/constants/native-binary.js +5 -2
  82. package/sidecar/dist/constants/native-binary.js.map +1 -1
  83. package/sidecar/dist/constants/settings.d.ts +1 -0
  84. package/sidecar/dist/constants/settings.js +2 -0
  85. package/sidecar/dist/constants/settings.js.map +1 -1
  86. package/sidecar/dist/constants/timing.d.ts +1 -0
  87. package/sidecar/dist/constants/timing.js +1 -0
  88. package/sidecar/dist/constants/timing.js.map +1 -1
  89. package/sidecar/dist/constants/tool-kinds.js +1 -0
  90. package/sidecar/dist/constants/tool-kinds.js.map +1 -1
  91. package/sidecar/dist/logs/logs-client.js +2 -1
  92. package/sidecar/dist/logs/logs-client.js.map +1 -1
  93. package/sidecar/dist/logs/types.d.ts +2 -1
  94. package/sidecar/dist/mcp/define-tool.d.ts +1 -1
  95. package/sidecar/dist/mcp/define-tool.js.map +1 -1
  96. package/sidecar/dist/mcp/tools/builder-compose.d.ts +51 -0
  97. package/sidecar/dist/mcp/tools/builder-compose.js +96 -0
  98. package/sidecar/dist/mcp/tools/builder-compose.js.map +1 -0
  99. package/sidecar/dist/mcp/tools/builder-expr.d.ts +5 -0
  100. package/sidecar/dist/mcp/tools/builder-expr.js +25 -0
  101. package/sidecar/dist/mcp/tools/builder-expr.js.map +1 -0
  102. package/sidecar/dist/mcp/tools/builder-gate.js +2 -2
  103. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  104. package/sidecar/dist/mcp/tools/builder-project.js +54 -1
  105. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
  106. package/sidecar/dist/mcp/tools/builder-queries.d.ts +65 -0
  107. package/sidecar/dist/mcp/tools/builder-queries.js +73 -0
  108. package/sidecar/dist/mcp/tools/builder-queries.js.map +1 -0
  109. package/sidecar/dist/mcp/tools/builder-table-view-schema.d.ts +99 -0
  110. package/sidecar/dist/mcp/tools/builder-table-view-schema.js +118 -0
  111. package/sidecar/dist/mcp/tools/builder-table-view-schema.js.map +1 -0
  112. package/sidecar/dist/mcp/tools/builder-table-view.d.ts +102 -0
  113. package/sidecar/dist/mcp/tools/builder-table-view.js +24 -0
  114. package/sidecar/dist/mcp/tools/builder-table-view.js.map +1 -0
  115. package/sidecar/dist/mcp/tools/builder.d.ts +166 -20
  116. package/sidecar/dist/mcp/tools/builder.js +20 -73
  117. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  118. package/sidecar/dist/mcp/tools/navigate-to-page.js +12 -4
  119. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
  120. package/sidecar/dist/mcp/types.d.ts +2 -1
  121. package/sidecar/dist/pages/block-health.d.ts +14 -0
  122. package/sidecar/dist/pages/block-health.js +60 -0
  123. package/sidecar/dist/pages/block-health.js.map +1 -0
  124. package/sidecar/dist/prompts/agent.d.ts +1 -1
  125. package/sidecar/dist/prompts/agent.js +4 -3
  126. package/sidecar/dist/prompts/agent.js.map +1 -1
  127. package/sidecar/dist/protocol/events.d.ts +43 -0
  128. package/sidecar/dist/protocol/events.js +10 -0
  129. package/sidecar/dist/protocol/events.js.map +1 -1
  130. package/sidecar/dist/protocol/json.d.ts +4 -0
  131. package/sidecar/dist/protocol/json.js +29 -0
  132. package/sidecar/dist/protocol/json.js.map +1 -1
  133. package/sidecar/dist/protocol/messages.d.ts +57 -0
  134. package/sidecar/dist/protocol/messages.js +22 -0
  135. package/sidecar/dist/protocol/messages.js.map +1 -1
  136. package/sidecar/dist/providers/claude/config.d.ts +20 -3
  137. package/sidecar/dist/providers/claude/config.js +17 -5
  138. package/sidecar/dist/providers/claude/config.js.map +1 -1
  139. package/sidecar/dist/providers/claude/model-fallback.d.ts +9 -0
  140. package/sidecar/dist/providers/claude/model-fallback.js +37 -0
  141. package/sidecar/dist/providers/claude/model-fallback.js.map +1 -0
  142. package/sidecar/dist/providers/claude/provider.js +23 -22
  143. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  144. package/sidecar/dist/providers/claude/resolve-binary.js +18 -13
  145. package/sidecar/dist/providers/claude/resolve-binary.js.map +1 -1
  146. package/sidecar/dist/providers/claude/session-stream.d.ts +23 -0
  147. package/sidecar/dist/providers/claude/session-stream.js +58 -0
  148. package/sidecar/dist/providers/claude/session-stream.js.map +1 -0
  149. package/sidecar/dist/server/chat-events.d.ts +16 -3
  150. package/sidecar/dist/server/chat-events.js +1 -0
  151. package/sidecar/dist/server/chat-events.js.map +1 -1
  152. package/sidecar/dist/server/http-io.d.ts +2 -1
  153. package/sidecar/dist/server/http-io.js.map +1 -1
  154. package/sidecar/dist/server/http-routes.js +4 -7
  155. package/sidecar/dist/server/http-routes.js.map +1 -1
  156. package/sidecar/dist/server/navigation-completer.d.ts +15 -2
  157. package/sidecar/dist/server/navigation-completer.js +42 -41
  158. package/sidecar/dist/server/navigation-completer.js.map +1 -1
  159. package/sidecar/dist/server/permission-events.d.ts +8 -4
  160. package/sidecar/dist/server/permission-events.js.map +1 -1
  161. package/sidecar/dist/server/routing.js +15 -2
  162. package/sidecar/dist/server/routing.js.map +1 -1
  163. package/sidecar/dist/server/safety-net.js +2 -2
  164. package/sidecar/dist/server/safety-net.js.map +1 -1
  165. package/sidecar/dist/server/tool-calls.d.ts +13 -4
  166. package/sidecar/dist/server/tool-calls.js.map +1 -1
  167. package/sidecar/dist/server/turns.d.ts +16 -2
  168. package/sidecar/dist/server/turns.js +13 -3
  169. package/sidecar/dist/server/turns.js.map +1 -1
  170. package/sidecar/dist/state/change-sets.js +4 -1
  171. package/sidecar/dist/state/change-sets.js.map +1 -1
  172. package/sidecar/dist/state/conversations.d.ts +1 -0
  173. package/sidecar/dist/state/conversations.js +8 -0
  174. package/sidecar/dist/state/conversations.js.map +1 -1
  175. package/sidecar/dist/state/settings-store.d.ts +1 -0
  176. package/sidecar/dist/state/settings-store.js +1 -0
  177. package/sidecar/dist/state/settings-store.js.map +1 -1
  178. package/sidecar/dist/state/settings-types.d.ts +1 -0
  179. package/sidecar/dist/state/store.js +8 -2
  180. package/sidecar/dist/state/store.js.map +1 -1
  181. package/sidecar/dist/state/types.d.ts +8 -1
  182. package/sidecar/dist/state/types.js.map +1 -1
  183. package/sidecar/package.json +2 -2
  184. package/skills/dms-ai/SKILL.md +1 -1
  185. package/skills/dms-builder-safe/REFERENCE.md +5 -6
  186. package/skills/dms-builder-safe/SKILL.md +12 -10
  187. package/skills/dms-external-database/REFERENCE.md +20 -8
  188. package/skills/dms-external-database/SKILL.md +64 -18
  189. package/skills/dms-page-design/SKILL.md +192 -0
  190. package/skills/dms-page-design/cases.json +57 -0
@@ -9,7 +9,7 @@ import { truncateTitle } from "../state/conversations.js";
9
9
  import { broadcastConversationList, emitNotice } from "./chat-events.js";
10
10
  import { cancelCallRequests, cancelTurnRequests } from "./permission-events.js";
11
11
  import { inspectBuild } from "./safety-net.js";
12
- import { endToolCall, startToolCall, stopOpenCalls } from "./tool-calls.js";
12
+ import { endToolCall, startToolCall, stopOpenCalls, } from "./tool-calls.js";
13
13
  import { startTurnProgress } from "./turn-progress.js";
14
14
  const AUTO_FIX_TITLE_PREFIX = "Auto-fix: ";
15
15
  function dispatch(services, conversationId, event, isTerminal) {
@@ -86,10 +86,12 @@ const TURN_EVENT_HANDLERS = {
86
86
  },
87
87
  activity: () => null,
88
88
  };
89
+ function handlerFor(type) {
90
+ return TURN_EVENT_HANDLERS[type];
91
+ }
89
92
  export function handleTurnEvent(services, conversationId, ev) {
90
93
  recordEditIfAny(services, conversationId, ev);
91
- const handler = TURN_EVENT_HANDLERS[ev.type];
92
- const wireEvent = handler(services, conversationId, ev);
94
+ const wireEvent = handlerFor(ev.type)(services, conversationId, ev);
93
95
  if (wireEvent === null)
94
96
  return;
95
97
  const isTerminal = ev.type === "done" || ev.type === "error";
@@ -133,6 +135,13 @@ function buildRunnerContext(services, request) {
133
135
  await services.turns.get(conversationId)?.checkpoint.ready();
134
136
  },
135
137
  onTokenUsage: (usage) => addTurnUsage(services, conversationId, usage),
138
+ onModelUsed: (model) => services.conversationStore.markModel(conversationId, model),
139
+ onModelFallback: ({ requested, used }) => emitNotice(services, conversationId, {
140
+ kind: "model_fallback",
141
+ requestedModel: requested,
142
+ usedModel: used,
143
+ timestampMs: Date.now(),
144
+ }),
136
145
  };
137
146
  }
138
147
  function beginTurn(services, request) {
@@ -213,6 +222,7 @@ function recordUsage(services, conversationId) {
213
222
  type: EVENT_TYPES.USAGE,
214
223
  conversationId,
215
224
  totalTokens: total,
225
+ model: services.conversationStore.get(conversationId)?.model,
216
226
  });
217
227
  }
218
228
  async function finishTurn(services, conversationId) {
@@ -1 +1 @@
1
- {"version":3,"file":"turns.js","sourceRoot":"","sources":["../../src/server/turns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turns.js","sourceRoot":"","sources":["../../src/server/turns.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,16 @@ const FIRST_CHANGE_SET_NUMBER = 1;
6
6
  function emptyContents() {
7
7
  return { nextNumber: FIRST_CHANGE_SET_NUMBER, changeSets: [] };
8
8
  }
9
+ function isNumber(value) {
10
+ return typeof value === "number";
11
+ }
9
12
  function parseContents(raw) {
10
13
  try {
11
14
  const parsed = JSON.parse(raw);
12
15
  if (!Array.isArray(parsed.changeSets))
13
16
  return emptyContents();
14
17
  return {
15
- nextNumber: typeof parsed.nextNumber === "number"
18
+ nextNumber: isNumber(parsed.nextNumber)
16
19
  ? parsed.nextNumber
17
20
  : parsed.changeSets.length + FIRST_CHANGE_SET_NUMBER,
18
21
  changeSets: parsed.changeSets,
@@ -1 +1 @@
1
- {"version":3,"file":"change-sets.js","sourceRoot":"","sources":["../../src/state/change-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAyBlC,SAAS,aAAa;IACpB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QAC9D,OAAO;YACL,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;gBACnC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,uBAAuB;YACxD,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAGD,SAAS,OAAO,CAAC,KAAiB;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACrE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;SAC5B,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAe;QACxB,QAAQ;QACR,QAAQ,EAAE,aAAa,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;KAC5B,CAAC;IACF,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,KAAK,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI;QACvE,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU;QAC3C,GAAG,CAAC,MAAM;YACR,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK;YACd,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,GAAG;YACR,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3B,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"change-sets.js","sourceRoot":"","sources":["../../src/state/change-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAyBlC,SAAS,aAAa;IACpB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,aAAa,EAAE,CAAC;QAC9D,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,uBAAuB;YACtD,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAGD,SAAS,OAAO,CAAC,KAAiB;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACrE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;SAC5B,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC7D,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAe;QACxB,QAAQ;QACR,QAAQ,EAAE,aAAa,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE;KAC5B,CAAC;IACF,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,KAAK,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI;QACvE,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU;QAC3C,GAAG,CAAC,MAAM;YACR,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK;YACd,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,CAAC,GAAG;YACR,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3B,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;KAC5B,CAAC;AACJ,CAAC"}
@@ -20,6 +20,7 @@ export interface ConversationStore {
20
20
  appendMessage(conversationId: string, message: StoredMessage): void;
21
21
  patchMessages(conversationId: string, matches: (message: StoredMessage) => boolean, patch: StoredMessagePatch): void;
22
22
  markProvider(conversationId: string, provider: ProviderName): void;
23
+ markModel(conversationId: string, model: string): void;
23
24
  addTokenUsage(conversationId: string, usage: TokenUsage): void;
24
25
  recordTurnUsage(conversationId: string, usage: TokenUsage, timestampMs: number): void;
25
26
  setModes(conversationId: string, patch: ConversationModesPatch): void;
@@ -52,6 +52,13 @@ function markProvider(state, conversationId, provider) {
52
52
  conversation.provider = provider;
53
53
  persistCache(state);
54
54
  }
55
+ function markModel(state, conversationId, model) {
56
+ const conversation = ensureConversation(state, conversationId);
57
+ if (conversation.model === model)
58
+ return;
59
+ conversation.model = model;
60
+ persistCache(state);
61
+ }
55
62
  function sumUsage(current, usage) {
56
63
  return {
57
64
  inputTokens: current.inputTokens + usage.inputTokens,
@@ -141,6 +148,7 @@ export function createConversationStore(options) {
141
148
  appendMessage: (id, message) => appendToConversation(state, id, message),
142
149
  patchMessages: (id, matches, patch) => patchMessages(state, id, matches, patch),
143
150
  markProvider: (id, provider) => markProvider(state, id, provider),
151
+ markModel: (id, model) => markModel(state, id, model),
144
152
  addTokenUsage: (id, usage) => addTokenUsage(state, id, usage),
145
153
  recordTurnUsage: (id, usage, timestampMs) => recordTurnUsage(state, id, usage, timestampMs),
146
154
  setModes: (id, patch) => setModes(state, id, patch),
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/state/conversations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/state/conversations.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ declare const StoredSettingsSchema: z.ZodObject<{
25
25
  medium: "medium";
26
26
  high: "high";
27
27
  }>>>>;
28
+ claudeModel: z.ZodCatch<z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodString>>>;
28
29
  generationMode: z.ZodCatch<z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodEnum<{
29
30
  safe: "safe";
30
31
  vibe: "vibe";
@@ -12,6 +12,7 @@ const StoredSettingsSchema = z.object({
12
12
  provider: lenient(z.enum(PROVIDER_NAMES)),
13
13
  mode: lenient(z.enum(CHAT_MODES)),
14
14
  thinking: lenient(z.enum(THINKING_LEVELS)),
15
+ claudeModel: lenient(z.string().trim().min(1)),
15
16
  generationMode: lenient(z.enum(GENERATION_MODES)),
16
17
  allowLocalSkills: lenient(z.boolean()),
17
18
  alwaysAskDependencies: lenient(z.boolean()),
@@ -1 +1 @@
1
- {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/state/settings-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/state/settings-store.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export interface AppSettings {
13
13
  provider: ProviderName;
14
14
  mode: ChatMode;
15
15
  thinking: ThinkingLevel;
16
+ claudeModel: string;
16
17
  generationMode: GenerationMode;
17
18
  allowLocalSkills: boolean;
18
19
  alwaysAskDependencies: boolean;
@@ -1,14 +1,20 @@
1
1
  import { mkdir, readFile, writeFile } from "node:fs/promises";
2
2
  import { dirname } from "node:path";
3
3
  import { STATE_DEBOUNCE_MS, STATE_FILE_ENCODING, STATE_INITIAL, STATE_JSON_INDENT, STATE_LOG_PREFIX, } from "../constants/state.js";
4
+ function isObject(value) {
5
+ return typeof value === "object" && value !== null;
6
+ }
7
+ function isObjectOrNull(value) {
8
+ return typeof value === "object";
9
+ }
4
10
  function parseStateContents(raw) {
5
11
  try {
6
12
  const parsed = JSON.parse(raw);
7
- if (parsed === null || typeof parsed !== "object")
13
+ if (!isObject(parsed))
8
14
  return STATE_INITIAL;
9
15
  const candidate = parsed;
10
16
  if (candidate.conversations === undefined ||
11
- typeof candidate.conversations !== "object") {
17
+ !isObjectOrNull(candidate.conversations)) {
12
18
  return STATE_INITIAL;
13
19
  }
14
20
  return { conversations: candidate.conversations };
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAsB/B,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,aAAa,CAAC;QACxE,MAAM,SAAS,GAAG,MAA8B,CAAC;QACjD,IACE,SAAS,CAAC,aAAa,KAAK,SAAS;YACrC,OAAO,SAAS,CAAC,aAAa,KAAK,QAAQ,EAC3C,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC1D,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GACb,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QACjE,IAAI,SAAS;YAAE,OAAO,aAAa,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,iBAAiB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,KAAkB;IAElB,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC5D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO;IACjC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAiB;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB,EAAE,IAAiB;IACxD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAiB;IACzC,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,KAAK,CAAC,QAAQ,CAAC;IAClD,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,CAAC,QAAQ,CAAC;IACrB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,KAAK,GAAe;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,iBAAiB;QACnD,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;QAC1C,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,13 @@ export interface FullAutoEndedNotice {
34
34
  kind: "full_auto_ended";
35
35
  timestampMs: number;
36
36
  }
37
- export type Notice = AutoFixNotice | PermissionExpiredNotice | QuestionSkippedNotice | FullAutoEndedNotice;
37
+ export interface ModelFallbackNotice {
38
+ kind: "model_fallback";
39
+ requestedModel: string;
40
+ usedModel: string;
41
+ timestampMs: number;
42
+ }
43
+ export type Notice = AutoFixNotice | PermissionExpiredNotice | QuestionSkippedNotice | FullAutoEndedNotice | ModelFallbackNotice;
38
44
  export interface QuestionAnswerRecord {
39
45
  header: string;
40
46
  question: string;
@@ -87,6 +93,7 @@ export interface StoredConversation {
87
93
  updatedAtMs: number;
88
94
  provider?: ProviderName;
89
95
  tokenUsage?: TokenUsage;
96
+ model?: string;
90
97
  usageLog?: UsageEntry[];
91
98
  mode?: ChatMode;
92
99
  generationMode?: GenerationMode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AA6BA,MAAM,oBAAoB,GAAG;IAC3B,MAAM;IACN,WAAW;IACX,UAAU;IACV,aAAa;IACb,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,eAAe;CACP,CAAC;AAIX,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAC;AAQ9D,MAAM,2BAA2B,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AA2FpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAG3D,MAAM,CAAC,MAAM,qBAAqB,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAC;AAYrE,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AA6BA,MAAM,oBAAoB,GAAG;IAC3B,MAAM;IACN,WAAW;IACX,UAAU;IACV,aAAa;IACb,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,eAAe;CACP,CAAC;AAIX,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAC;AAQ9D,MAAM,2BAA2B,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AAoGpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAG3D,MAAM,CAAC,MAAM,qBAAqB,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAC;AAYrE,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;CACf,CAAC"}
@@ -19,8 +19,8 @@
19
19
  "knip:all": "knip"
20
20
  },
21
21
  "dependencies": {
22
- "@anthropic-ai/claude-agent-sdk": "^0.2.131",
23
- "@anthropic-ai/claude-code": "^2.1.131",
22
+ "@anthropic-ai/claude-agent-sdk": "^0.3.316",
23
+ "@anthropic-ai/claude-code": "^2.1.316",
24
24
  "@modelcontextprotocol/sdk": "1.29.0",
25
25
  "ws": "^8.18.0",
26
26
  "zod": "^4.0.0"
@@ -13,7 +13,7 @@ An owner-only development assistant. The backend starts a sidecar (child process
13
13
  ## Setup
14
14
 
15
15
  - `ajs project modules add @antelopejs/dms-ai`; config `backendUrl: "${@api.API_LOCAL_BASE_URL}"`.
16
- - Version 0.3+ needs `@antelopejs/dms` 0.9 (`interface-dms` 0.7) and `@antelopejs/dms-frontend` 0.6; 0.2 is the DMS 0.8 line. The frontend server proxies `/ai/**` to the backend with the session (`backendProxies`).
16
+ - The frontend server proxies `/ai/**` to the backend with the session (`backendProxies`). See the package README for requirements.
17
17
  - Load `@antelopejs/dms-builder` too: chats then default to Safe mode (Builder tools only, typechecked writes). Code mode allows file edits and commands under the approval mode.
18
18
  - Claude Code is the default provider. Codex needs `@openai/codex` at the exact version in `peerDependencies` and a ChatGPT sign-in (Assistant › Settings; on a remote DMS the 127.0.0.1 return page fails to load and its address is pasted with **Paste the return address**; stored per user in `~/.config/dms-ai/chatgpt-auth.json`, `OPENAI_API_KEY` is ignored); a provider that cannot run fails the turn, never falls back.
19
19
 
@@ -43,16 +43,15 @@ resource, then `BuilderAddBlock` a `TableView` with `controller` = the resource
43
43
  and display options in `config`. Relation columns work via `$ref` (see
44
44
  "DataType, component, and reference values" in SKILL.md).
45
45
 
46
- ## Queries (computed numbers a DataAPI can't serve)
46
+ ## Queries (computed data a DataAPI can't serve)
47
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.
48
+ A **query** is a derived-data endpoint on a *page*: a GET route serving an aggregate or one
49
+ point per group, backed by a generated method on the resource's model. The DataAPI serves
50
+ rows; a query serves what a KPI card, a chart or a ranked list reads.
52
51
 
53
52
  1. **Read the templates.** `BuilderQueryTemplates` returns each template's `id`, what it
54
53
  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"`.
54
+ an unrecognised key is rejected.
56
55
  2. **Add the query** with `BuilderAddQuery` on the page that will display it (not the
57
56
  resource's page). It compiles the template into a model method and a page route in one
58
57
  atomic op and returns `{ query, route }`.
@@ -38,9 +38,9 @@ its safe-mode branch.
38
38
  TableView `Column` `type`, a resource field's `dataType`), pass a **DataType value**
39
39
  `{ $dataType: "<id>", config: {…} }` — an id from `BuilderCatalog`'s `dataTypes`.
40
40
  Never pass a raw `$expr`; safe mode refuses it.
41
- - Config fields the catalog marks `x-component` hold a nested component (e.g. a
42
- ChartCard's `chart`), which safe mode cannot construct — there is no `$expr` escape
43
- hatch. Treat them like `opaque_target`: explain and ask to switch to Code mode.
41
+ - Config fields the catalog marks `x-component` hold a nested block (e.g. a
42
+ ChartCard's `chart`): pass a **block value** `{ $block: { type: "<type>", config: {…} } }`
43
+ with a `type` from `BuilderCatalog`. It is validated and allowed in safe mode.
44
44
  - To name a builder-generated resource class inside config — e.g. a relation column's
45
45
  `dataApiController` — pass a **reference value**
46
46
  `{ $ref: { resource: "<ref>", as?: "dataApi" | "table" | "model" } }` (default `as`
@@ -92,14 +92,16 @@ resource workflow (`BuilderListResources` / `BuilderCreateResource` with `locati
92
92
  and `routes` / field ops / `BuilderDeleteResource`), field semantics and reserved
93
93
  names, and the engine-support caveat for resource ops.
94
94
 
95
- ## Queries (computed numbers a DataAPI can't serve)
95
+ ## Queries (computed data a DataAPI can't serve)
96
96
 
97
- A **query** is a derived-data endpoint on a *page*: a GET route returning one computed
98
- number — a count, a sum, an average — backed by a generated method on a resource's model.
99
- The DataAPI serves rows; a query serves an aggregate over them, and a **KpiCard** is the
100
- usual consumer. Add one with `BuilderAddQuery` on the page that will display it (not the
101
- resource's page), wire the returned `route` as the card's `fetchUrl`, and read it back
102
- through `BuilderPageStructure`'s `queries`. See [REFERENCE.md](REFERENCE.md) for the
97
+ A **query** is a derived-data endpoint on a *page*: a GET route serving an aggregate (a
98
+ count, a sum, an average) or one point per group (a series), backed by a generated method on
99
+ a resource's model. The DataAPI serves rows; a query serves what KPI cards, charts and ranked
100
+ lists read. Its `response` arranges the answer for the block: `value` for a `KpiCard`,
101
+ `card` for a `ChartCard`, `items` for a `TopListCard`, `series` for a bare chart. Run
102
+ `BuilderPreviewQuery` first to see the answer, then add it with `BuilderAddQuery` on the page
103
+ that will display it (not the resource's page), wire the returned `route` as the block's
104
+ `fetchUrl`, and read it back through `BuilderPageStructure`'s `queries`. See [REFERENCE.md](REFERENCE.md) for the
103
105
  template catalog, route-bound params, opaque read-back, and the full query workflow.
104
106
 
105
107
  ## Errors & escalation
@@ -109,11 +109,20 @@ erp · postgresql 17.5 · role erp_reader (read only) · 42 relations: 9 TableVi
109
109
  - sales.events (R8, stats only) → TableView: named and commented as calendar events people edit
110
110
  - sales.orders: editable, as asked; the role here writes nothing
111
111
 
112
- ## Stats pages
113
- ### Sales
114
- - KPI: orders (count) · KPI: revenue (sum of total)
115
- - Chart: orders per month over ordered_at, Europe/Paris
116
- - Top list: orders by status
112
+ ## Questions
113
+ - How does revenue trend, and how does it compare with last year? (sales.orders, sum of total, by ordered_at)
114
+ - Which statuses do orders end in? (sales.orders, count, by status)
115
+ - Which countries buy most? (sales.orders, sum of total, by country)
116
+
117
+ ## Analytics pages
118
+ ### Sales (sales.orders)
119
+ - Period: ordered_at runs 2024-01-03 to 2026-10-28 → default last-90-days vs previous-period; presets last-90-days, ytd, last-year, custom
120
+ - Toolbar: PageToolbar › PeriodSelector
121
+ - KPIs: revenue (sum of total) · orders (count) · units (sum of quantity), each with delta and sparkline
122
+ - ChartCard › ChartArea: revenue per month
123
+ - ChartCard › ChartDonut: orders by status (5 values)
124
+ - ChartCard › ChartBar: top 10 countries by revenue
125
+ - TopListCard: top 10 cities by orders
117
126
 
118
127
  ## Left open
119
128
  - label:legacy.t_ord — no column names an order; the integrator picks one in the Builder
@@ -132,9 +141,10 @@ The proposal's values, without their rules, plus what you changed:
132
141
  "fields": [ { "column": "name", "searchable": true, "sortable": true },
133
142
  { "column": "segment", "filterable": true },
134
143
  { "column": "email" }, { "column": "created_at", "sortable": true } ] },
135
- { "relation": "sales.orders", "tableView": true, "writable": false,
136
- "fields": [ { "column": "status", "filterable": true },
137
- { "column": "ordered_at", "sortable": true }, { "column": "total" },
144
+ { "relation": "sales.orders", "tableView": true, "writable": false, "tabs": { "column": "status" },
145
+ "fields": [ { "column": "status", "filterable": true,
146
+ "display": { "kind": "badge", "items": [ { "value": "paid", "label": "Paid", "tone": "success" } ] } },
147
+ { "column": "ordered_at", "sortable": true }, { "column": "total", "display": { "kind": "price", "currency": "USD" } },
138
148
  { "column": "customer_code", "relation": "sales.customers", "label": "Customer" } ] },
139
149
  { "relation": "sales.audit_log", "tableView": false, "writable": false,
140
150
  "fields": [ { "column": "at" }, { "column": "action" } ] }
@@ -145,6 +155,8 @@ The proposal's values, without their rules, plus what you changed:
145
155
  - `declared` defaults to the column's `accepts[0]`. Set it only to take another accepted
146
156
  declaration, and always for a column a `field-type` item asked about: give the answer as its
147
157
  `declared`.
158
+ - Send `display` (each field) and `tabs` (each relation) as the proposal has them; `null` turns
159
+ one off.
148
160
  - Key columns are added for you.
149
161
  - A relation column's target must be in the same call, with a `label`, or mapped in the module
150
162
  before.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: dms-external-database
3
- description: Connects a DMS project to a client's existing database, runs the Builder's analysis of it, settles what the analysis could not decide from the catalog and aggregates, generates TableViews through the Builder, and adds stats pages over them. Use when the user wants pages over a database the project does not own, PostgreSQL, MongoDB or RethinkDB ("plug in our client's Postgres", "map their Mongo database", "generate the admin for this database", "finish the mapping the Builder proposed").
3
+ description: Connects a DMS project to a client's existing database, runs the Builder's analysis of it, settles what the analysis could not decide from the catalog and aggregates, generates TableViews through the Builder, names them and gives each the table features its data supports, and always builds an analytics dashboard first in the menu. Use when the user wants pages over a database the project does not own, PostgreSQL, MongoDB or RethinkDB ("plug in our client's Postgres", "map their Mongo database", "generate the admin for this database", "finish the mapping the Builder proposed").
4
4
  icon: i-ph-database
5
5
  category: Builder
6
6
  tags: [Database, Builder, Pages, DMS]
@@ -10,8 +10,8 @@ tags: [Database, Builder, Pages, DMS]
10
10
 
11
11
  The Builder analyses the database by itself: from the catalog and the profiles, fixed rules
12
12
  propose a mapping and name every choice's rule. Your work is what those rules cannot do: answer
13
- the questions they left open, revisit the defaults the names and comments contradict, and make the
14
- stats pages. You never start from scratch.
13
+ the questions they left open, revisit the defaults the names and comments contradict, and plan the
14
+ analytics pages from the data. You never start from scratch.
15
15
 
16
16
  You work through the `Database*` and `Builder*` tools only. You never read rows of the client's
17
17
  database: the catalog and aggregates are what you have, and they are enough. You never see or
@@ -91,17 +91,48 @@ profile of the whole database again: the Builder did it.
91
91
  neither is an array of ids as a relation.
92
92
  - **Editable.** Every TableView is proposed read-only. Make one editable only where the integrator
93
93
  wants it; show `writes` beside it, so a read-only role in this environment is visible.
94
- - **Stats pages,** which the analysis does not make, one per area:
95
- - KPIs: row counts, and sums of the `measure` columns that add up (a total, a quantity; never
96
- a unit price or a rate);
97
- - one series over the main time axis by month, in the project's time zone;
98
- - top lists over `enum-like` columns.
94
+ - **Pages people can work with.** Load the `dms-page-design` skill. For every TableView, plan
95
+ from its columns, profiles and categories, as *Name every page* and *Tables* there say: a
96
+ title, an icon and a description; the tabs, saved views, display modes, footer totals and
97
+ KPI cards its data supports. Decide each from the data, and leave out what the data does
98
+ not support.
99
+ - **The analytics dashboard,** which the analysis does not make. Every run ends with one,
100
+ first in the menu, even when the integrator only asked for the tables. Plan it from the data:
101
+ 1. **Inspect.** For each relation, read from the proposal its rows, its `time-axis` columns
102
+ with their `range`, its `measure` columns, and its `enum-like` columns with their
103
+ `categories`. Profile a column the proposal leaves without them, such as the main date
104
+ column's range. Write each range down: the period rule needs the last date.
105
+ 2. **Ask.** Write the 4 to 8 questions the owner of this data asks every week: how revenue
106
+ or volume trends, what sells, who buys, where, and how it compares with last year. Each
107
+ question names the relation, the measure (a sum of a `measure` column or a row count)
108
+ and the grouping (the time axis or a column of the same relation).
109
+ 3. **Plan pages.** The relation with a time axis, a measure and the most rows is the main
110
+ fact relation. It gets the dashboard, named for its area ("Sales", or "Overview" when it
111
+ also carries the other relations' headline figures), holding every question about it.
112
+ Another relation gets its own analytics page only when it has its own time axis and at
113
+ least 100 rows. When no relation has a time axis, the dashboard still exists: KPI cards
114
+ of counts and sums, and breakdowns by the category columns, with no period selector.
115
+ 4. **Choose blocks** for each question with `dms-page-design`, and its default period from
116
+ the main time axis's real range.
117
+ - **The minimum.** Your plan, and the pages you write, meet all of these:
118
+ - one analytics dashboard, first in the connection's menu (`order: 0`), opened by a toolbar
119
+ with a period selector when the data has dates;
120
+ - every page with a title in the owner's words, an icon and a description, never the raw
121
+ relation name;
122
+ - every table given the tabs, views, display modes, footer totals and KPI cards its data
123
+ supports, as `dms-page-design` *Tables* decides;
124
+ - at least 3 different chart kinds on it when the data has the shapes for them;
125
+ - a default period computed from the data's real dates, never assumed;
126
+ - every page built with one `BuilderComposePage` call, previewed first, and every block whose
127
+ preview is empty, zero or failed dropped or changed;
128
+ - every page opened with `NavigateToPage` and its block report read before you report.
99
129
  - **Not possible yet:** breakdowns by a related entity's name, such as revenue per customer.
100
130
  Templates read one relation, so they would show ids. List them under *Not possible yet*,
101
131
  never as pages.
102
132
 
103
133
  Write your plan (`ExitPlanMode`) in the format of REFERENCE.md *Plan*: what you change in the
104
- proposal and why, the stats pages, the open items you leave, and what is not possible yet.
134
+ proposal and why, the questions and the analytics pages that answer them, the open items you
135
+ leave, and what is not possible yet.
105
136
 
106
137
  ## 4. Validate
107
138
 
@@ -110,18 +141,29 @@ again. Write nothing before Run.
110
141
 
111
142
  ## 5. Apply
112
143
 
113
- 1. One `BuilderMapResources` with every relation of the settled proposal, TableViews and
114
- stats-only relations alike, and the relations decided against in `excluded`
115
- (REFERENCE.md *Mapping*).
116
- - Send the proposal's choices as they stand where you changed nothing.
144
+ Work in this order, so the most visible result lands first: map the tables, build the
145
+ dashboard and check it, then add KPI rows above tables, then any second analytics page.
146
+
147
+ 1. `BuilderMapResources` in batches of 3 or 4 relations per call, TableViews and stats-only
148
+ relations alike; the relations decided against go in `excluded` on the first call
149
+ (REFERENCE.md *Mapping*). One call with every relation of a large database can abort.
150
+ - Send the proposal's choices as they stand where you changed nothing, plus per resource
151
+ the `title`, `icon`, `description` and `tableOptions` you planned.
117
152
  - On `invalid_config`, fix the choice it names and call again: a refused call writes nothing.
153
+ When the same choice is refused twice, drop it (send the relation without that display or
154
+ option) and say so in your report, rather than trying more variants.
118
155
  - It answers each relation's `ref`, which queries name it by, `category`, the connection's
119
156
  category ref (`pages.<connection>`), and `leftOut`: carry those into your report.
120
- 2. Per stats page, `BuilderCreatePage` with `module` set to the generated module and `category`
121
- set to the `category` MapResources answered. Then `BuilderAddQuery` per query, and
122
- `BuilderAddBlock` per block with the query's route as its `fetchUrl`, as in the
123
- `dms-builder-safe` skill's *Queries*.
157
+ 2. Per analytics page, one `BuilderComposePage` call with `create` (`name`, `displayName`,
158
+ `module` set to the generated module, `category` set to the `category` MapResources
159
+ answered, an icon, a description, and `order: 0` for the dashboard, 1, 2… for the next
160
+ ones) and every block in the order `dms-page-design` lays out, each data block with its
161
+ query inline. Preview first, then write, as `dms-page-design` *Build a page in one call*
162
+ says.
124
163
  - Queries read the mapped resources by their refs (`<connection>/<schema>/<relation>`).
164
+ 3. Per table page that gets KPI cards above its table, one `BuilderComposePage` call with
165
+ `placement: { "before": "table" }`, previewed first. A table option MapResources refused
166
+ comes back as a warning: fix it with `BuilderConfigureTableView`.
125
167
 
126
168
  To change a relation later, read its current choices with `BuilderMapping`, then call
127
169
  `BuilderMapResources` with that relation alone, its included columns as they are and only your
@@ -137,11 +179,15 @@ change made: a mapped relation is rewritten from the choices sent, and its page
137
179
  investigate further.
138
180
  - `QueryLogs` for registration warnings (lossy fields, unserved indexes) and for the errors of
139
181
  the routes the pages called.
182
+ - On each analytics page, fix or remove every block `NavigateToPage` reports as empty or
183
+ failed, and navigate again, as in `dms-page-design` *Check every block*.
140
184
 
141
185
  Then report:
142
186
 
143
187
  - what the Builder mapped by its rules, and what you changed;
144
- - the pages made;
188
+ - the pages made, with each analytics page's default period and the date range it came from,
189
+ and per table the features you gave it and why;
190
+ - every block that still shows no data, and why;
145
191
  - what was left out and why;
146
192
  - the open items left, which the integrator finds in the Builder's *Database* workspace;
147
193
  - the variable every deployment must set.