yaml-flow 8.5.3 → 8.6.2

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 (176) hide show
  1. package/browser/asset-integrity.json +3 -3
  2. package/examples/board/demo-shell-with-server.html +2 -2
  3. package/examples/board/doc.html +2 -2
  4. package/examples/board/server/board-server.js +773 -13
  5. package/examples/board/server/board-worker/task-executor.js +166 -51
  6. package/examples/board/server/chat-flow/copilot-chat/assistant.js +25 -12
  7. package/examples/board/server/chat-flow/copilot-chat/probe.js +7 -0
  8. package/examples/board/server/chat-flow/copilot-chat/shared.js +97 -0
  9. package/examples/board/server/chat-flow/flow-steps.json +109 -51
  10. package/examples/board/server-config.json +2 -0
  11. package/examples/board/test/server-http-test.js +878 -67
  12. package/examples/board-local/demo-shell-localstorage.html +3 -3
  13. package/lib/{artifacts-store-lib-CVgtQrNZ.d.cts → artifacts-store-lib-BR-Samty.d.cts} +1 -1
  14. package/lib/{artifacts-store-lib-D-k-E8Vy.d.ts → artifacts-store-lib-DT7XlWUL.d.ts} +1 -1
  15. package/lib/artifacts-store-public.cjs +1 -1
  16. package/lib/artifacts-store-public.d.cts +3 -3
  17. package/lib/artifacts-store-public.d.ts +3 -3
  18. package/lib/artifacts-store-public.js +1 -1
  19. package/lib/batch/index.cjs +1 -1
  20. package/lib/batch/index.js +1 -1
  21. package/lib/board-live-cards-mcp.cjs +1 -1
  22. package/lib/board-live-cards-mcp.d.cts +87 -34
  23. package/lib/board-live-cards-mcp.d.ts +87 -34
  24. package/lib/board-live-cards-mcp.js +1 -1
  25. package/lib/board-live-cards-node.cjs +8 -16
  26. package/lib/board-live-cards-node.d.cts +52 -14
  27. package/lib/board-live-cards-node.d.ts +52 -14
  28. package/lib/board-live-cards-node.js +8 -16
  29. package/lib/{board-live-cards-public-BGS22cMb.d.ts → board-live-cards-public-BMUIPOrc.d.ts} +90 -30
  30. package/lib/board-live-cards-public-async-DKZqbJVU.d.ts +256 -0
  31. package/lib/board-live-cards-public-async-dMWNbWq6.d.cts +256 -0
  32. package/lib/{board-live-cards-public-B13InXhC.d.cts → board-live-cards-public-wkNmBIRC.d.cts} +90 -30
  33. package/lib/board-live-cards-public.cjs +1 -2
  34. package/lib/board-live-cards-public.d.cts +2 -2
  35. package/lib/board-live-cards-public.d.ts +2 -2
  36. package/lib/board-live-cards-public.js +1 -2
  37. package/lib/board-live-cards-server-runtime.cjs +1 -7
  38. package/lib/board-live-cards-server-runtime.d.cts +7 -6
  39. package/lib/board-live-cards-server-runtime.d.ts +7 -6
  40. package/lib/board-live-cards-server-runtime.js +1 -7
  41. package/lib/board-livegraph-runtime/index.cjs +1 -2
  42. package/lib/board-livegraph-runtime/index.js +1 -2
  43. package/lib/board-worker-adapter.cjs +22 -7
  44. package/lib/board-worker-adapter.d.cts +28 -3
  45. package/lib/board-worker-adapter.d.ts +28 -3
  46. package/lib/board-worker-adapter.js +22 -7
  47. package/lib/card-compute/index.cjs +1 -9
  48. package/lib/card-compute/index.js +1 -9
  49. package/lib/card-store-public.cjs +1 -1
  50. package/lib/card-store-public.d.cts +2 -2
  51. package/lib/card-store-public.d.ts +2 -2
  52. package/lib/card-store-public.js +1 -1
  53. package/lib/card-validation.cjs +1 -9
  54. package/lib/card-validation.js +1 -9
  55. package/lib/{chat-storage-lib-0imhRX3l.d.cts → chat-storage-lib-BIUbE-fM.d.cts} +1 -1
  56. package/lib/{chat-storage-lib-CJn7a6OH.d.ts → chat-storage-lib-BlG-sobS.d.ts} +1 -1
  57. package/lib/chat-store-public.cjs +1 -1
  58. package/lib/chat-store-public.d.cts +3 -3
  59. package/lib/chat-store-public.d.ts +3 -3
  60. package/lib/chat-store-public.js +1 -1
  61. package/lib/chunk-2MZUYY65.cjs +2 -0
  62. package/lib/chunk-5EA2ESS4.cjs +16 -0
  63. package/lib/chunk-76ON3V7R.js +2 -0
  64. package/lib/chunk-7BKNHFNH.js +2 -0
  65. package/lib/chunk-BQS3EIEK.js +3 -0
  66. package/lib/chunk-CIAJNUR4.js +2 -0
  67. package/lib/chunk-DAXACY63.js +2 -0
  68. package/lib/chunk-FW4363Y4.js +2 -0
  69. package/lib/chunk-FZ2SBU5M.js +3 -0
  70. package/lib/chunk-G4XXRHL2.cjs +3 -0
  71. package/lib/chunk-GJJMEAVN.cjs +2 -0
  72. package/lib/chunk-GNFE24S7.cjs +2 -0
  73. package/lib/chunk-GYQXDNNI.cjs +2 -0
  74. package/lib/chunk-H5HBXPOI.cjs +3 -0
  75. package/lib/chunk-H5KD3JPY.cjs +2 -0
  76. package/lib/chunk-HEEDJEKM.js +2 -0
  77. package/lib/chunk-HLJH7LGW.js +16 -0
  78. package/lib/chunk-IXZG74EW.cjs +2 -0
  79. package/lib/chunk-JAL25FGA.cjs +2 -0
  80. package/lib/chunk-JM5EKT57.js +2 -0
  81. package/lib/chunk-JMDHDY6M.js +2 -0
  82. package/lib/chunk-KBELAKIY.js +2 -0
  83. package/lib/chunk-KHJABJ45.cjs +3 -0
  84. package/lib/chunk-KLRUISRY.cjs +2 -0
  85. package/lib/chunk-KQX6R4PV.cjs +8 -0
  86. package/lib/chunk-LODXIALE.cjs +2 -0
  87. package/lib/chunk-MLVTJASJ.js +2 -0
  88. package/lib/chunk-MNEOJWPS.js +10 -0
  89. package/lib/chunk-N6P2JW4W.js +3 -0
  90. package/lib/chunk-NMZ6XNLB.cjs +3 -0
  91. package/lib/chunk-OEFTOO47.cjs +3 -0
  92. package/lib/chunk-OPNGCSXJ.js +2 -0
  93. package/lib/chunk-OSWJKJLB.js +8 -0
  94. package/lib/chunk-P7ZCDICS.cjs +2 -0
  95. package/lib/chunk-PBCDDO4V.cjs +2 -0
  96. package/lib/chunk-PMUSJQSR.cjs +2 -0
  97. package/lib/chunk-Q6H7NINN.cjs +5 -0
  98. package/lib/chunk-QWBNDVUA.js +5 -0
  99. package/lib/chunk-S6DRP2HX.cjs +2 -0
  100. package/lib/chunk-SCWHDI3I.js +2 -0
  101. package/lib/chunk-SFVO2LB2.cjs +3 -0
  102. package/lib/chunk-U2N6MCD5.cjs +2 -0
  103. package/lib/chunk-UJ7ZTV4J.cjs +10 -0
  104. package/lib/chunk-VGT3TRQG.js +3 -0
  105. package/lib/chunk-VLBB3D6B.js +3 -0
  106. package/lib/chunk-VMW4Z6EF.js +3 -0
  107. package/lib/chunk-WDPOGXTY.js +2 -0
  108. package/lib/chunk-WOALA3V5.cjs +2 -0
  109. package/lib/chunk-X3LC4LII.js +2 -0
  110. package/lib/chunk-XQRNDX4Q.js +2 -0
  111. package/lib/chunk-YGKDQLYP.js +2 -0
  112. package/lib/chunk-YMEIPKLW.cjs +2 -0
  113. package/lib/cloud-storage.cjs +2 -0
  114. package/lib/cloud-storage.d.cts +177 -0
  115. package/lib/cloud-storage.d.ts +177 -0
  116. package/lib/cloud-storage.js +2 -0
  117. package/lib/config/index.cjs +1 -1
  118. package/lib/config/index.js +1 -1
  119. package/lib/continuous-event-graph/index.cjs +1 -2
  120. package/lib/continuous-event-graph/index.js +1 -2
  121. package/lib/event-graph/index.cjs +1 -22
  122. package/lib/event-graph/index.js +1 -22
  123. package/lib/execution-refs.cjs +1 -2
  124. package/lib/execution-refs.d.cts +3 -2
  125. package/lib/execution-refs.d.ts +3 -2
  126. package/lib/execution-refs.js +1 -2
  127. package/lib/index.cjs +2 -24
  128. package/lib/index.d.cts +1 -1
  129. package/lib/index.d.ts +1 -1
  130. package/lib/index.js +2 -24
  131. package/lib/{types-CIgsh56O.d.cts → queue-lane-registry-BPKWWgd4.d.cts} +66 -14
  132. package/lib/{types-30R357js.d.ts → queue-lane-registry-Be6c0ftj.d.ts} +66 -14
  133. package/lib/server-runtime/index.cjs +1 -7
  134. package/lib/server-runtime/index.d.cts +18 -7
  135. package/lib/server-runtime/index.d.ts +18 -7
  136. package/lib/server-runtime/index.js +1 -7
  137. package/lib/step-machine/index.cjs +1 -11
  138. package/lib/step-machine/index.js +1 -11
  139. package/lib/step-machine-public/index.cjs +1 -4
  140. package/lib/step-machine-public/index.d.cts +1 -1
  141. package/lib/step-machine-public/index.d.ts +1 -1
  142. package/lib/step-machine-public/index.js +1 -4
  143. package/lib/{storage-interface-B2WD9D5n.d.cts → storage-interface-BFiD3kyB.d.cts} +38 -1
  144. package/lib/{storage-interface-B2WD9D5n.d.ts → storage-interface-BFiD3kyB.d.ts} +38 -1
  145. package/lib/stores/index.cjs +1 -2
  146. package/lib/stores/index.d.cts +1 -1
  147. package/lib/stores/index.d.ts +1 -1
  148. package/lib/stores/index.js +1 -2
  149. package/lib/stores/kv.cjs +1 -2
  150. package/lib/stores/kv.d.cts +1 -1
  151. package/lib/stores/kv.d.ts +1 -1
  152. package/lib/stores/kv.js +1 -2
  153. package/lib/stores/memory.cjs +1 -1
  154. package/lib/stores/memory.js +1 -1
  155. package/package.json +7 -16
  156. package/cli/board-live-cards-lib-COi4bSpk.d.ts +0 -322
  157. package/cli/browser-api/board-live-cards-browser-adapter.d.ts +0 -36
  158. package/cli/browser-api/board-live-cards-browser-adapter.js +0 -4
  159. package/cli/browser-api/card-store-browser-api.d.ts +0 -25
  160. package/cli/browser-api/card-store-browser-api.js +0 -2
  161. package/cli/browser-api/jsonata-sync.cjs +0 -7623
  162. package/cli/bundled/artifacts-store-cli.mjs +0 -12
  163. package/cli/bundled/batch-runner-cli.mjs +0 -3
  164. package/cli/bundled/board-live-cards-cli.mjs +0 -29
  165. package/cli/bundled/card-store-cli.mjs +0 -154
  166. package/cli/bundled/chat-store-cli.mjs +0 -16
  167. package/cli/bundled/jsonata-sync.cjs +0 -7623
  168. package/cli/bundled/step-machine-cli.mjs +0 -150
  169. package/cli/execution-interface-BCIhu1gO.d.ts +0 -442
  170. package/cli/types-H3EMBPY2.d.ts +0 -398
  171. package/examples/board/server/README-mcp-api.md +0 -690
  172. package/examples/board/test/server-http-mcp-test.js +0 -1280
  173. package/lib/board-livegraph-runtime/jsonata-sync.cjs +0 -7623
  174. package/lib/card-compute/jsonata-sync.cjs +0 -7623
  175. package/lib/continuous-event-graph/jsonata-sync.cjs +0 -7623
  176. package/lib/server-runtime/jsonata-sync.cjs +0 -7623
@@ -7,27 +7,28 @@
7
7
  },
8
8
  "steps": {
9
9
  "read_chats": {
10
- "description": "Read chats from runtime storage via chat-store-cli and pass them through the flow",
11
- "expects_data": ["boardSetupRoot", "boardRuntimeDir", "cardId"],
10
+ "description": "Read chats from runtime storage via MCP inspect.chat-messages-on-cards",
11
+ "expects_data": ["serverUrl", "boardId", "cardId"],
12
12
  "produces_data": ["chatMessages"],
13
13
  "input_validations": [
14
- "$type(boardSetupRoot) = \"string\" and $length(boardSetupRoot) > 0",
14
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
15
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
15
16
  "$type(cardId) = \"string\" and $length(cardId) > 0"
16
17
  ],
17
18
  "handler": {
18
19
  "type": "ref",
19
- "howToRun": "local-node",
20
+ "howToRun": "http:post",
20
21
  "whatToRun": {
21
- "kind": "yaml-flow-cli",
22
- "value": "chat-store-cli.js"
22
+ "kind": "http-url",
23
+ "value": ""
23
24
  },
24
25
  "meta": "chat-handler",
25
26
  "argsMassaging": {
26
- "cmdTemplate": ["'--stdin'"],
27
- "stdinTemplate": "{ 'command': 'read-all', 'storeRef': $fsPathRef(boardSetupRoot & '/' & boardRuntimeDir), 'cardId': cardId }"
27
+ "urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp'",
28
+ "bodyTemplate": "{ 'tool': 'inspect.chat-messages-on-cards', 'args': { 'card_id': cardId } }"
28
29
  },
29
30
  "outputTransforms": {
30
- "dataTemplate": "{ 'chatMessages': output.data.records }"
31
+ "dataTemplate": "{ 'chatMessages': output.data.messages }"
31
32
  }
32
33
  },
33
34
  "transitions": {
@@ -38,7 +39,7 @@
38
39
  },
39
40
  "open_turn": {
40
41
  "description": "Resolve the current user turn from flow-provided chat messages and parse any chat envelope options",
41
- "produces_data": ["boardId", "cardId", "boardSetupRoot", "boardBaseRef", "boardRuntimeDir", "runtimeStatusDir", "cardsDir", "projectRoot", "chatFlowRoot", "chatMessages", "userText", "lastChatEntryId", "turnId", "probe", "chatHandlerMode", "chatCopilotTimeoutMs", "probeAttachmentFileIdx"],
42
+ "produces_data": ["boardId", "cardId", "boardSetupRoot", "boardBaseRef", "boardRuntimeDir", "runtimeStatusDir", "cardsDir", "projectRoot", "chatFlowRoot", "chatMessages", "userText", "lastChatEntryId", "turnId", "probe", "chatHandlerMode", "chatCopilotTimeoutMs", "probeAttachmentFileIdx", "serverUrl"],
42
43
  "input_validations": [
43
44
  "$type(cardId) = \"string\" and $length(cardId) > 0",
44
45
  "$type(chatMessages) = \"array\"",
@@ -57,6 +58,7 @@
57
58
  "data.cardsDir = ($type(expects_data.cardsDir) = \"string\" and $length(expects_data.cardsDir) > 0) ? expects_data.cardsDir : \"cards\"",
58
59
  "data.projectRoot = $type(expects_data.projectRoot) = \"string\" ? expects_data.projectRoot : \"\"",
59
60
  "data.chatFlowRoot = $type(expects_data.chatFlowRoot) = \"string\" ? expects_data.chatFlowRoot : \"\"",
61
+ "data.serverUrl = $type(expects_data.serverUrl) = \"string\" ? expects_data.serverUrl : \"\"",
60
62
  "data.chatMessages = expects_data.chatMessages",
61
63
  "data.lastChatEntryId = expects_data.lastChatEntryId",
62
64
  "data._currentUserMessage = $filter(expects_data.chatMessages, function($message) { $message.id = expects_data.lastChatEntryId and $message.role = \"user\" })[0]",
@@ -119,18 +121,24 @@
119
121
  }
120
122
  },
121
123
  "probe_in_progress": {
122
- "description": "Append a probe-only in-progress system message before generating the deterministic echo reply",
124
+ "description": "Append a probe-only in-progress system message via the host test endpoint before generating the deterministic echo reply",
125
+ "expects_data": ["serverUrl", "boardId", "cardId", "turnId"],
126
+ "input_validations": [
127
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
128
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
129
+ "$type(cardId) = \"string\" and $length(cardId) > 0"
130
+ ],
123
131
  "handler": {
124
132
  "type": "ref",
125
- "howToRun": "local-node",
133
+ "howToRun": "http:post",
126
134
  "whatToRun": {
127
- "kind": "yaml-flow-cli",
128
- "value": "chat-store-cli.js"
135
+ "kind": "http-url",
136
+ "value": ""
129
137
  },
130
138
  "meta": "chat-handler",
131
139
  "argsMassaging": {
132
- "cmdTemplate": ["'--stdin'"],
133
- "stdinTemplate": "{ 'storeRef': $fsPathRef(boardSetupRoot & '/' & boardRuntimeDir), 'cardId': cardId, 'commands': [{ 'command': 'append', 'role': 'system', 'text': 'in-progress', 'files': [], 'turn': turnId }] }"
140
+ "urlTemplate": "serverUrl & '/test-req/boards/' & boardId & '/chat/system-message'",
141
+ "bodyTemplate": "{ 'cardId': cardId, 'text': 'in-progress', 'turn': turnId, 'files': [] }"
134
142
  }
135
143
  },
136
144
  "transitions": {
@@ -140,35 +148,29 @@
140
148
  }
141
149
  },
142
150
  "probe_attachment_reply": {
143
- "description": "Read the current probe attachment via board-live-cards-cli and use its content as the assistant reply",
144
- "expects_data": ["boardBaseRef", "cardId", "probeAttachmentFileIdx"],
145
- "produces_data": ["replyText"],
151
+ "description": "Read the current probe attachment via MCP inspect.file-contents and use its content as the assistant reply",
152
+ "expects_data": ["serverUrl", "boardId", "cardId", "probeAttachmentFileIdx"],
153
+ "produces_data": ["replyText", "probeAttachmentMimeType", "probeAttachmentBodyBase64"],
146
154
  "input_validations": [
147
- "$type(boardBaseRef) = \"string\" and $length(boardBaseRef) > 0",
155
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
156
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
148
157
  "$type(cardId) = \"string\" and $length(cardId) > 0",
149
158
  "$type(probeAttachmentFileIdx) = \"number\" and probeAttachmentFileIdx >= 0"
150
159
  ],
151
160
  "handler": {
152
161
  "type": "ref",
153
- "howToRun": "local-node",
162
+ "howToRun": "http:post",
154
163
  "whatToRun": {
155
- "kind": "yaml-flow-cli",
156
- "value": "board-live-cards-cli.js"
164
+ "kind": "http-url",
165
+ "value": ""
157
166
  },
158
167
  "meta": "chat-handler",
159
168
  "argsMassaging": {
160
- "cmdTemplate": [
161
- "'get-attachment-content'",
162
- "'--base-ref'",
163
- "boardBaseRef",
164
- "'--card-id'",
165
- "cardId",
166
- "'--file-idx'",
167
- "$string(probeAttachmentFileIdx)"
168
- ]
169
+ "urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp-raw?resp=json-b64'",
170
+ "bodyTemplate": "{ 'tool': 'inspect.file-contents', 'args': { 'card_id': cardId, 'file_idx': probeAttachmentFileIdx } }"
169
171
  },
170
172
  "outputTransforms": {
171
- "dataTemplate": "{ 'replyText': $string(output.data.stdout) }"
173
+ "dataTemplate": "{ 'replyText': ($type(output.data.bodyBase64) = 'string' ? $base64decode(output.data.bodyBase64) : ''), 'probeAttachmentMimeType': output.data.mimeType, 'probeAttachmentBodyBase64': output.data.bodyBase64 }"
172
174
  }
173
175
  },
174
176
  "transitions": {
@@ -225,56 +227,112 @@
225
227
  }
226
228
  },
227
229
  "write_reply": {
228
- "description": "Append the assistant reply and clear processing via one chat-store-cli command envelope",
229
- "expects_data": ["boardSetupRoot", "boardRuntimeDir", "cardId", "replyText", "turnId"],
230
+ "description": "Append the assistant reply via MCP stage-ai-response-and-any-attachments",
231
+ "expects_data": ["serverUrl", "boardId", "cardId", "replyText", "turnId"],
230
232
  "produces_data": ["replyId"],
231
233
  "input_validations": [
232
- "$type(boardSetupRoot) = \"string\" and $length(boardSetupRoot) > 0",
234
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
235
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
233
236
  "$type(cardId) = \"string\" and $length(cardId) > 0",
234
237
  "$type(replyText) = \"string\""
235
238
  ],
236
239
  "handler": {
237
240
  "type": "ref",
238
- "howToRun": "local-node",
241
+ "howToRun": "http:post",
239
242
  "whatToRun": {
240
- "kind": "yaml-flow-cli",
241
- "value": "chat-store-cli.js"
243
+ "kind": "http-url",
244
+ "value": ""
242
245
  },
243
246
  "meta": "chat-handler",
244
247
  "argsMassaging": {
245
- "cmdTemplate": ["'--stdin'"],
246
- "stdinTemplate": "{ 'storeRef': $fsPathRef(boardSetupRoot & '/' & boardRuntimeDir), 'cardId': cardId, 'commands': [{ 'command': 'append', 'role': 'assistant', 'text': replyText, 'files': [], 'turn': turnId }, { 'command': 'set-processing', 'active': false }] }"
248
+ "urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp'",
249
+ "bodyTemplate": "{ 'tool': 'stage-ai-response-and-any-attachments', 'args': { 'card_id': cardId, 'text': replyText, 'turn_id': turnId } }"
247
250
  },
248
251
  "outputTransforms": {
249
- "dataTemplate": "{ 'replyId': output.data.results[0].data.id }"
252
+ "dataTemplate": "{ 'replyId': output.data.id }"
250
253
  }
251
254
  },
252
255
  "transitions": {
253
- "success": "completed",
256
+ "success": "clear_processing_done",
254
257
  "failure": "cleanup_failure",
255
258
  "error": "cleanup_failure"
256
259
  }
257
260
  },
261
+ "clear_processing_done": {
262
+ "description": "Clear processing through the runtime MCP controlplane",
263
+ "expects_data": ["serverUrl", "boardId", "cardId"],
264
+ "input_validations": [
265
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
266
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
267
+ "$type(cardId) = \"string\" and $length(cardId) > 0"
268
+ ],
269
+ "handler": {
270
+ "type": "ref",
271
+ "howToRun": "http:post",
272
+ "whatToRun": {
273
+ "kind": "http-url",
274
+ "value": ""
275
+ },
276
+ "argsMassaging": {
277
+ "urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp-controlplane'",
278
+ "bodyTemplate": "{ 'tool': 'setstate.chat-processing-done', 'args': { 'board_id': boardId, 'card_id': cardId } }"
279
+ },
280
+ "meta": "chat-handler"
281
+ },
282
+ "transitions": {
283
+ "success": "completed",
284
+ "failure": "failed",
285
+ "error": "failed"
286
+ }
287
+ },
258
288
  "cleanup_failure": {
259
- "description": "Write a failure system message and clear processing via one chat-store-cli command envelope",
260
- "expects_data": ["boardSetupRoot", "boardRuntimeDir", "cardId", "turnId"],
289
+ "description": "Write a failure system message via the host test endpoint",
290
+ "expects_data": ["serverUrl", "boardId", "cardId", "turnId"],
261
291
  "input_validations": [
262
- "$type(boardSetupRoot) = \"string\" and $length(boardSetupRoot) > 0",
292
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
293
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
263
294
  "$type(cardId) = \"string\" and $length(cardId) > 0"
264
295
  ],
265
296
  "handler": {
266
297
  "type": "ref",
267
- "howToRun": "local-node",
298
+ "howToRun": "http:post",
268
299
  "whatToRun": {
269
- "kind": "yaml-flow-cli",
270
- "value": "chat-store-cli.js"
300
+ "kind": "http-url",
301
+ "value": ""
271
302
  },
272
303
  "meta": "chat-handler",
273
304
  "argsMassaging": {
274
- "cmdTemplate": ["'--stdin'"],
275
- "stdinTemplate": "{ 'storeRef': $fsPathRef(boardSetupRoot & '/' & boardRuntimeDir), 'cardId': cardId, 'commands': [{ 'command': 'append', 'role': 'system', 'text': 'AI response failed - the assistant could not generate a reply. Check server configuration and logs.', 'files': [], 'turn': turnId }, { 'command': 'set-processing', 'active': false }] }"
305
+ "urlTemplate": "serverUrl & '/test-req/boards/' & boardId & '/chat/system-message'",
306
+ "bodyTemplate": "{ 'cardId': cardId, 'text': 'AI response failed - the assistant could not generate a reply. Check server configuration and logs.', 'turn': turnId, 'files': [] }"
276
307
  }
277
308
  },
309
+ "transitions": {
310
+ "success": "clear_processing_done_failure",
311
+ "failure": "failed",
312
+ "error": "failed"
313
+ }
314
+ },
315
+ "clear_processing_done_failure": {
316
+ "description": "Clear processing through the runtime MCP controlplane after failure cleanup",
317
+ "expects_data": ["serverUrl", "boardId", "cardId"],
318
+ "input_validations": [
319
+ "$type(serverUrl) = \"string\" and $length(serverUrl) > 0",
320
+ "$type(boardId) = \"string\" and $length(boardId) > 0",
321
+ "$type(cardId) = \"string\" and $length(cardId) > 0"
322
+ ],
323
+ "handler": {
324
+ "type": "ref",
325
+ "howToRun": "http:post",
326
+ "whatToRun": {
327
+ "kind": "http-url",
328
+ "value": ""
329
+ },
330
+ "argsMassaging": {
331
+ "urlTemplate": "serverUrl & '/api/boards/' & boardId & '/mcp-controlplane'",
332
+ "bodyTemplate": "{ 'tool': 'setstate.chat-processing-done', 'args': { 'board_id': boardId, 'card_id': cardId } }"
333
+ },
334
+ "meta": "chat-handler"
335
+ },
278
336
  "transitions": {
279
337
  "success": "failed",
280
338
  "failure": "failed",
@@ -1,5 +1,7 @@
1
1
  {
2
+ "mode": "cloud",
2
3
  "port": 7799,
4
+ "taskExecutorTransport": "http",
3
5
  "chatFlowTimeoutMs": 1800000,
4
6
  "chatInvokeRefTimeoutMs": 1800000,
5
7
  "chatCopilotTimeoutMs": 1800000,