yaml-flow 7.1.0 → 8.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 (389) hide show
  1. package/browser/asset-integrity.json +8 -4
  2. package/browser/board-livecards-client.js +1 -1
  3. package/browser/board-livecards-localstorage.js +4 -4
  4. package/browser/live-cards.js +19 -3309
  5. package/cli/board-live-cards-lib-tjYsPt5U.d.ts +321 -0
  6. package/{dist/cli → cli}/browser-api/board-live-cards-browser-adapter.d.ts +3 -5
  7. package/{dist/cli → cli}/browser-api/card-store-browser-api.d.ts +1 -2
  8. package/{dist/cli → cli}/browser-api/card-store-browser-api.js +1 -1
  9. package/cli/execution-interface-ftO1W7Po.d.ts +286 -0
  10. package/{dist/cli → cli}/node/artifacts-store-cli.js +2 -2
  11. package/cli/node/batch-runner-cli.js +3 -0
  12. package/cli/node/board-live-cards-cli.js +15 -0
  13. package/{dist/cli → cli}/node/card-store-cli.js +1 -1
  14. package/{dist/cli → cli}/node/execution-adapter.d.ts +49 -4
  15. package/cli/node/execution-adapter.js +3 -0
  16. package/{dist/cli → cli}/node/fs-board-adapter.d.ts +24 -11
  17. package/cli/node/fs-board-adapter.js +14 -0
  18. package/cli/node/step-machine-cli.d.ts +7 -0
  19. package/cli/node/step-machine-cli.js +5 -0
  20. package/{dist/board-live-cards-public-5n1-syA3.d.cts → cli/types-C2YQXFwo.d.ts} +68 -5
  21. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.config/card-store-ref.json +1 -0
  22. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.config/chat-handler.json +1 -0
  23. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.config/outputs-store-ref.json +1 -0
  24. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.config/task-executor.json +1 -0
  25. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.state-snapshot/board/graph.json +29 -0
  26. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime/.state-snapshot/board/lastJournalProcessedId.json +1 -0
  27. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/gandalf-runtime-out/.outputs/status.json +25 -0
  28. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/cards/card-market-prices/computed_values.json +67 -0
  29. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/cards/card-portfolio/computed_values.json +1 -0
  30. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/cards/card-portfolio-value/computed_values.json +52 -0
  31. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/data-objects/holdings.json +22 -0
  32. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/data-objects/positions.json +46 -0
  33. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/data-objects/quotes.json +35 -0
  34. package/examples/board/.demo-setup/run-1778665078572-3466-a8ay4k/board-default/runtime-out/.outputs/status.json +113 -0
  35. package/examples/{example-board → board}/demo-server-config.json +0 -1
  36. package/examples/{example-board → board}/demo-server.js +23 -48
  37. package/examples/{example-board → board}/demo-shell-with-server.html +3 -3
  38. package/examples/{example-board → board}/demo-task-executor.js +71 -24
  39. package/examples/board/gandalf-cards/card-source-kinds.json +36 -0
  40. package/examples/board/gandalf-cards/cards/_index.json +7 -0
  41. package/examples/board/gandalf-cards/cards/card-source-kinds.json +64 -0
  42. package/examples/board/source-def-flows/copilot.flow.json +33 -0
  43. package/examples/board/source-def-flows/mock.flow.json +35 -0
  44. package/examples/board/source-def-flows/url-list.flow.json +33 -0
  45. package/examples/board/source-def-flows/url.flow.json +33 -0
  46. package/examples/board/source-def-flows/workiq.flow.json +34 -0
  47. package/examples/board/source-def-handlers/copilot-source-handler.js +141 -0
  48. package/examples/board/source-def-handlers/http-source-handler.js +145 -0
  49. package/examples/board/source_def_flows.json +249 -0
  50. package/examples/board/test/demo-http-test.js +317 -0
  51. package/examples/{example-board → board-local}/demo-shell-localstorage.html +4 -4
  52. package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/handlers}/portfolio-tracker-fetch-prices.js +1 -1
  53. package/examples/{browser/boards/portfolio-tracker/portfolio-tracker-public.js → portfolio-tracker/portfolio-tracker.js} +11 -14
  54. package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/test}/portfolio-t4.js +32 -50
  55. package/lib/artifacts-store-lib-public-BABrgFkV.d.ts +119 -0
  56. package/lib/artifacts-store-lib-public-DGa8BpJT.d.cts +119 -0
  57. package/lib/artifacts-store-public.cjs +2 -0
  58. package/lib/artifacts-store-public.d.cts +5 -0
  59. package/lib/artifacts-store-public.d.ts +5 -0
  60. package/lib/artifacts-store-public.js +2 -0
  61. package/lib/board-live-cards-node.cjs +14 -0
  62. package/lib/board-live-cards-node.d.cts +178 -0
  63. package/lib/board-live-cards-node.d.ts +178 -0
  64. package/lib/board-live-cards-node.js +14 -0
  65. package/lib/board-live-cards-public-BnmRAbQV.d.cts +383 -0
  66. package/{dist/board-live-cards-public-CK_J8uv0.d.ts → lib/board-live-cards-public-CsmYrvpd.d.ts} +142 -76
  67. package/lib/board-live-cards-public.cjs +3 -0
  68. package/lib/board-live-cards-public.d.cts +4 -0
  69. package/lib/board-live-cards-public.d.ts +4 -0
  70. package/lib/board-live-cards-public.js +3 -0
  71. package/lib/board-live-cards-server-runtime.cjs +9 -0
  72. package/lib/board-live-cards-server-runtime.d.cts +6 -0
  73. package/lib/board-live-cards-server-runtime.d.ts +6 -0
  74. package/lib/board-live-cards-server-runtime.js +9 -0
  75. package/lib/board-livegraph-runtime/index.cjs +3 -0
  76. package/{dist → lib}/board-livegraph-runtime/index.d.cts +1 -2
  77. package/{dist → lib}/board-livegraph-runtime/index.d.ts +1 -2
  78. package/lib/board-livegraph-runtime/index.js +3 -0
  79. package/{dist/storage-refs.cjs → lib/board-worker-adapter.cjs} +2 -2
  80. package/{dist/storage-refs.d.cts → lib/board-worker-adapter.d.cts} +4 -3
  81. package/{dist/storage-refs.d.ts → lib/board-worker-adapter.d.ts} +4 -3
  82. package/{dist/storage-refs.js → lib/board-worker-adapter.js} +2 -2
  83. package/{dist → lib}/card-compute/index.cjs +1 -1
  84. package/{dist → lib}/card-compute/index.js +1 -1
  85. package/lib/card-store-public.cjs +2 -0
  86. package/lib/card-store-public.d.cts +61 -0
  87. package/lib/card-store-public.d.ts +61 -0
  88. package/lib/card-store-public.js +2 -0
  89. package/lib/card-validation.cjs +10 -0
  90. package/lib/card-validation.d.cts +35 -0
  91. package/lib/card-validation.d.ts +35 -0
  92. package/lib/card-validation.js +10 -0
  93. package/{dist/constants-oCEbNpul.d.ts → lib/constants-BPVLb3Es.d.ts} +1 -1
  94. package/{dist/constants-BzZUyYlp.d.cts → lib/constants-DXxsRN9y.d.cts} +1 -1
  95. package/{dist → lib}/continuous-event-graph/index.cjs +2 -2
  96. package/{dist → lib}/continuous-event-graph/index.d.cts +3 -5
  97. package/{dist → lib}/continuous-event-graph/index.d.ts +3 -5
  98. package/{dist → lib}/continuous-event-graph/index.js +2 -2
  99. package/{dist → lib}/event-graph/index.d.cts +2 -2
  100. package/{dist → lib}/event-graph/index.d.ts +2 -2
  101. package/lib/execution-refs.cjs +3 -0
  102. package/{dist → lib}/execution-refs.d.cts +33 -12
  103. package/{dist → lib}/execution-refs.d.ts +33 -12
  104. package/lib/execution-refs.js +3 -0
  105. package/lib/index.cjs +25 -0
  106. package/{dist → lib}/index.d.cts +7 -8
  107. package/{dist → lib}/index.d.ts +7 -8
  108. package/lib/index.js +25 -0
  109. package/{dist/live-cards-bridge-BXbVTsna.d.cts → lib/live-cards-bridge-DC_ZU0eS.d.ts} +134 -3
  110. package/{dist/live-cards-bridge-Ds28XR15.d.ts → lib/live-cards-bridge-b25aAVvE.d.cts} +134 -3
  111. package/lib/loader-CuuLjxVA.d.cts +42 -0
  112. package/lib/loader-Zborm2pq.d.ts +42 -0
  113. package/lib/server-runtime/index.cjs +9 -0
  114. package/{dist → lib}/server-runtime/index.d.cts +4 -4
  115. package/{dist → lib}/server-runtime/index.d.ts +4 -4
  116. package/lib/server-runtime/index.js +9 -0
  117. package/lib/step-machine/index.d.cts +64 -0
  118. package/lib/step-machine/index.d.ts +64 -0
  119. package/lib/step-machine-public/index.cjs +5 -0
  120. package/{dist → lib}/step-machine-public/index.d.cts +14 -1
  121. package/{dist → lib}/step-machine-public/index.d.ts +14 -1
  122. package/lib/step-machine-public/index.js +5 -0
  123. package/lib/storage-interface-BhAON-gW.d.cts +84 -0
  124. package/lib/storage-interface-BhAON-gW.d.ts +84 -0
  125. package/lib/stores/index.cjs +3 -0
  126. package/lib/stores/index.d.cts +4 -0
  127. package/lib/stores/index.d.ts +4 -0
  128. package/lib/stores/index.js +3 -0
  129. package/lib/stores/kv.cjs +3 -0
  130. package/lib/stores/kv.d.cts +32 -0
  131. package/lib/stores/kv.d.ts +32 -0
  132. package/lib/stores/kv.js +3 -0
  133. package/{dist → lib}/stores/memory.d.cts +1 -1
  134. package/{dist → lib}/stores/memory.d.ts +1 -1
  135. package/{dist/types-HGDTWIun.d.ts → lib/types-CBxkYuLY.d.ts} +2 -1
  136. package/{dist/types-ycun84cq.d.cts → lib/types-DQ1bKuB1.d.cts} +11 -0
  137. package/{dist/types-ycun84cq.d.ts → lib/types-DQ1bKuB1.d.ts} +11 -0
  138. package/{dist/types-CU3DjTKL.d.cts → lib/types-DkFvgxwq.d.cts} +2 -1
  139. package/package.json +79 -119
  140. package/board-live-cards-cli.js +0 -37
  141. package/browser/board-livecards-client.js.map +0 -1
  142. package/browser/board-livecards-localstorage.js.map +0 -1
  143. package/browser/board-livegraph-engine.js +0 -3
  144. package/browser/board-livegraph-engine.js.map +0 -1
  145. package/browser/card-compute.js +0 -266
  146. package/browser/compute-jsonata.js.map +0 -1
  147. package/card-store.js +0 -37
  148. package/dist/batch/index.cjs.map +0 -1
  149. package/dist/batch/index.js.map +0 -1
  150. package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +0 -136
  151. package/dist/board-live-cards-lib-jM2uYG1v.d.ts +0 -136
  152. package/dist/board-livegraph-runtime/index.cjs +0 -3
  153. package/dist/board-livegraph-runtime/index.cjs.map +0 -1
  154. package/dist/board-livegraph-runtime/index.js +0 -3
  155. package/dist/board-livegraph-runtime/index.js.map +0 -1
  156. package/dist/card-compute/index.cjs.map +0 -1
  157. package/dist/card-compute/index.js.map +0 -1
  158. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +0 -3
  159. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +0 -1
  160. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +0 -37
  161. package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +0 -1
  162. package/dist/cli/browser-api/card-store-browser-api.cjs +0 -2
  163. package/dist/cli/browser-api/card-store-browser-api.cjs.map +0 -1
  164. package/dist/cli/browser-api/card-store-browser-api.d.cts +0 -26
  165. package/dist/cli/browser-api/card-store-browser-api.js.map +0 -1
  166. package/dist/cli/node/artifacts-store-cli.cjs +0 -11
  167. package/dist/cli/node/artifacts-store-cli.cjs.map +0 -1
  168. package/dist/cli/node/artifacts-store-cli.d.cts +0 -8
  169. package/dist/cli/node/artifacts-store-cli.js.map +0 -1
  170. package/dist/cli/node/board-live-cards-cli.cjs +0 -15
  171. package/dist/cli/node/board-live-cards-cli.cjs.map +0 -1
  172. package/dist/cli/node/board-live-cards-cli.d.cts +0 -20
  173. package/dist/cli/node/board-live-cards-cli.js +0 -15
  174. package/dist/cli/node/board-live-cards-cli.js.map +0 -1
  175. package/dist/cli/node/card-store-cli.cjs +0 -8
  176. package/dist/cli/node/card-store-cli.cjs.map +0 -1
  177. package/dist/cli/node/card-store-cli.d.cts +0 -15
  178. package/dist/cli/node/card-store-cli.js.map +0 -1
  179. package/dist/cli/node/execution-adapter.cjs +0 -3
  180. package/dist/cli/node/execution-adapter.cjs.map +0 -1
  181. package/dist/cli/node/execution-adapter.d.cts +0 -174
  182. package/dist/cli/node/execution-adapter.js +0 -3
  183. package/dist/cli/node/execution-adapter.js.map +0 -1
  184. package/dist/cli/node/fs-board-adapter.cjs +0 -14
  185. package/dist/cli/node/fs-board-adapter.cjs.map +0 -1
  186. package/dist/cli/node/fs-board-adapter.d.cts +0 -204
  187. package/dist/cli/node/fs-board-adapter.js +0 -14
  188. package/dist/cli/node/fs-board-adapter.js.map +0 -1
  189. package/dist/cli/node/source-cli-task-executor.cjs +0 -11
  190. package/dist/cli/node/source-cli-task-executor.cjs.map +0 -1
  191. package/dist/cli/node/source-cli-task-executor.js.map +0 -1
  192. package/dist/config/index.cjs.map +0 -1
  193. package/dist/config/index.js.map +0 -1
  194. package/dist/continuous-event-graph/index.cjs.map +0 -1
  195. package/dist/continuous-event-graph/index.js.map +0 -1
  196. package/dist/event-graph/index.cjs.map +0 -1
  197. package/dist/event-graph/index.js.map +0 -1
  198. package/dist/execution-refs.cjs +0 -3
  199. package/dist/execution-refs.cjs.map +0 -1
  200. package/dist/execution-refs.js +0 -3
  201. package/dist/execution-refs.js.map +0 -1
  202. package/dist/index.cjs +0 -30
  203. package/dist/index.cjs.map +0 -1
  204. package/dist/index.js +0 -30
  205. package/dist/index.js.map +0 -1
  206. package/dist/inference/index.cjs +0 -7
  207. package/dist/inference/index.cjs.map +0 -1
  208. package/dist/inference/index.d.cts +0 -229
  209. package/dist/inference/index.d.ts +0 -229
  210. package/dist/inference/index.js +0 -7
  211. package/dist/inference/index.js.map +0 -1
  212. package/dist/server-runtime/index.cjs +0 -9
  213. package/dist/server-runtime/index.cjs.map +0 -1
  214. package/dist/server-runtime/index.js +0 -9
  215. package/dist/server-runtime/index.js.map +0 -1
  216. package/dist/step-machine/index.cjs.map +0 -1
  217. package/dist/step-machine/index.d.cts +0 -102
  218. package/dist/step-machine/index.d.ts +0 -102
  219. package/dist/step-machine/index.js.map +0 -1
  220. package/dist/step-machine-public/index.cjs +0 -3
  221. package/dist/step-machine-public/index.cjs.map +0 -1
  222. package/dist/step-machine-public/index.js +0 -3
  223. package/dist/step-machine-public/index.js.map +0 -1
  224. package/dist/storage-refs.cjs.map +0 -1
  225. package/dist/storage-refs.js.map +0 -1
  226. package/dist/stores/file.cjs +0 -2
  227. package/dist/stores/file.cjs.map +0 -1
  228. package/dist/stores/file.d.cts +0 -36
  229. package/dist/stores/file.d.ts +0 -36
  230. package/dist/stores/file.js +0 -2
  231. package/dist/stores/file.js.map +0 -1
  232. package/dist/stores/index.cjs +0 -2
  233. package/dist/stores/index.cjs.map +0 -1
  234. package/dist/stores/index.d.cts +0 -4
  235. package/dist/stores/index.d.ts +0 -4
  236. package/dist/stores/index.js +0 -2
  237. package/dist/stores/index.js.map +0 -1
  238. package/dist/stores/localStorage.cjs +0 -2
  239. package/dist/stores/localStorage.cjs.map +0 -1
  240. package/dist/stores/localStorage.d.cts +0 -34
  241. package/dist/stores/localStorage.d.ts +0 -34
  242. package/dist/stores/localStorage.js +0 -2
  243. package/dist/stores/localStorage.js.map +0 -1
  244. package/dist/stores/memory.cjs.map +0 -1
  245. package/dist/stores/memory.js.map +0 -1
  246. package/dist/types-CHSdoAAA.d.cts +0 -135
  247. package/dist/types-CoW0gQl3.d.ts +0 -135
  248. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +0 -201
  249. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.js +0 -370
  250. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.py +0 -398
  251. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +0 -196
  252. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +0 -300
  253. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +0 -617
  254. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +0 -366
  255. package/examples/browser/livecards-browser/index.html +0 -41
  256. package/examples/browser/step-machine-browser/index.html +0 -367
  257. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +0 -1
  258. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +0 -32
  259. package/examples/cli/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
  260. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
  261. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
  262. package/examples/cli/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
  263. package/examples/cli/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
  264. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -125
  265. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -32
  266. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -26
  267. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +0 -49
  268. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -25
  269. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -23
  270. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -21
  271. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -38
  272. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -48
  273. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -31
  274. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +0 -107
  275. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +0 -51
  276. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +0 -45
  277. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +0 -71
  278. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +0 -36
  279. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +0 -26
  280. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +0 -39
  281. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +0 -80
  282. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -76
  283. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -44
  284. package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +0 -43
  285. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +0 -77
  286. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
  287. package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +0 -31
  288. package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +0 -54
  289. package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +0 -21
  290. package/examples/cli/step-machine-demo/step-cli-echo-y.js +0 -15
  291. package/examples/cli/step-machine-demo/step2-double-cli.js +0 -33
  292. package/examples/cli/step-machine-demo/two-step-math.flow.yaml +0 -93
  293. package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +0 -43
  294. package/examples/example-board/agent-instructions-cardlayout.md +0 -56
  295. package/examples/example-board/agent-instructions.md +0 -834
  296. package/examples/example-board/demo-shell.html +0 -63
  297. package/examples/index.html +0 -785
  298. package/examples/npm-libs/batch/batch-step-machine.ts +0 -121
  299. package/examples/npm-libs/continuous-event-graph/live-cards-board.ts +0 -215
  300. package/examples/npm-libs/continuous-event-graph/live-portfolio-dashboard.ts +0 -555
  301. package/examples/npm-libs/continuous-event-graph/portfolio-tracker.ts +0 -287
  302. package/examples/npm-libs/continuous-event-graph/reactive-monitoring.ts +0 -265
  303. package/examples/npm-libs/continuous-event-graph/reactive-pipeline.ts +0 -168
  304. package/examples/npm-libs/continuous-event-graph/soc-incident-board.ts +0 -287
  305. package/examples/npm-libs/continuous-event-graph/stock-dashboard.ts +0 -229
  306. package/examples/npm-libs/event-graph/ci-cd-pipeline.ts +0 -243
  307. package/examples/npm-libs/event-graph/executor-diamond.ts +0 -165
  308. package/examples/npm-libs/event-graph/executor-pipeline.ts +0 -161
  309. package/examples/npm-libs/event-graph/research-pipeline.ts +0 -137
  310. package/examples/npm-libs/flows/ai-conversation.yaml +0 -116
  311. package/examples/npm-libs/flows/order-processing.yaml +0 -143
  312. package/examples/npm-libs/flows/simple-greeting.yaml +0 -54
  313. package/examples/npm-libs/graph-of-graphs/multi-stage-etl.ts +0 -307
  314. package/examples/npm-libs/graph-of-graphs/url-processing-pipeline.ts +0 -254
  315. package/examples/npm-libs/inference/azure-deployment.ts +0 -149
  316. package/examples/npm-libs/inference/copilot-cli.ts +0 -138
  317. package/examples/npm-libs/inference/data-pipeline.ts +0 -145
  318. package/examples/npm-libs/inference/pluggable-adapters.ts +0 -254
  319. package/examples/npm-libs/node/ai-conversation.ts +0 -195
  320. package/examples/npm-libs/node/simple-greeting.ts +0 -101
  321. package/examples/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
  322. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
  323. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
  324. package/examples/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
  325. package/examples/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
  326. package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -57
  327. package/examples/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -27
  328. package/examples/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -25
  329. package/examples/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -29
  330. package/examples/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -27
  331. package/examples/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -25
  332. package/examples/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -37
  333. package/examples/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -53
  334. package/examples/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -35
  335. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
  336. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -227
  337. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -38
  338. package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
  339. package/step-machine-cli.js +0 -407
  340. /package/{dist/cli → cli}/browser-api/board-live-cards-browser-adapter.js +0 -0
  341. /package/{dist/board-livegraph-runtime → cli/browser-api}/jsonata-sync.cjs +0 -0
  342. /package/{dist/cli → cli}/node/artifacts-store-cli.d.ts +0 -0
  343. /package/{dist/cli/node/source-cli-task-executor.d.cts → cli/node/batch-runner-cli.d.ts} +0 -0
  344. /package/{dist/cli → cli}/node/board-live-cards-cli.d.ts +0 -0
  345. /package/{dist/cli → cli}/node/card-store-cli.d.ts +0 -0
  346. /package/{dist/card-compute → cli/node}/jsonata-sync.cjs +0 -0
  347. /package/{dist/cli → cli}/node/source-cli-task-executor.d.ts +0 -0
  348. /package/{dist/cli → cli}/node/source-cli-task-executor.js +0 -0
  349. /package/examples/{example-board → board}/cards/card-concentration.json +0 -0
  350. /package/examples/{example-board → board}/cards/card-my-identity.json +0 -0
  351. /package/examples/{example-board → board}/cards/card-portfolio-action.json +0 -0
  352. /package/examples/{example-board → board}/cards/card-portfolio-intelligence.json +0 -0
  353. /package/examples/{example-board → board}/cards/card-portfolio-risks.json +0 -0
  354. /package/examples/{example-board → board}/cards/card-rebalance-impact.json +0 -0
  355. /package/examples/{example-board → board}/cards/card-rebalance-sim.json +0 -0
  356. /package/examples/{example-board → board}/cards/cardT-market-prices.json +0 -0
  357. /package/examples/{example-board → board}/cards/cardT-portfolio-value.json +0 -0
  358. /package/examples/{example-board → board}/cards/cardT-portfolio.json +0 -0
  359. /package/examples/{example-board → board}/demo-chat-handler.js +0 -0
  360. /package/examples/{example-board → board}/scripts/copilot_wrapper.bat +0 -0
  361. /package/examples/{example-board → board}/scripts/copilot_wrapper_helper.ps1 +0 -0
  362. /package/examples/{example-board → board}/scripts/workiq_wrapper.mjs +0 -0
  363. /package/examples/{browser/boards/portfolio-tracker → board/test}/portfolio-tracker-sse-worker.js +0 -0
  364. /package/{dist → lib}/batch/index.cjs +0 -0
  365. /package/{dist → lib}/batch/index.d.cts +0 -0
  366. /package/{dist → lib}/batch/index.d.ts +0 -0
  367. /package/{dist → lib}/batch/index.js +0 -0
  368. /package/{dist/cli/browser-api → lib/board-livegraph-runtime}/jsonata-sync.cjs +0 -0
  369. /package/{dist → lib}/card-compute/index.d.cts +0 -0
  370. /package/{dist → lib}/card-compute/index.d.ts +0 -0
  371. /package/{dist/cli/node → lib/card-compute}/jsonata-sync.cjs +0 -0
  372. /package/{dist → lib}/config/index.cjs +0 -0
  373. /package/{dist → lib}/config/index.d.cts +0 -0
  374. /package/{dist → lib}/config/index.d.ts +0 -0
  375. /package/{dist → lib}/config/index.js +0 -0
  376. /package/{dist → lib}/continuous-event-graph/jsonata-sync.cjs +0 -0
  377. /package/{dist → lib}/event-graph/index.cjs +0 -0
  378. /package/{dist → lib}/event-graph/index.js +0 -0
  379. /package/{dist → lib}/jsonata-sync.cjs +0 -0
  380. /package/{dist → lib}/server-runtime/jsonata-sync.cjs +0 -0
  381. /package/{dist → lib}/step-machine/index.cjs +0 -0
  382. /package/{dist → lib}/step-machine/index.js +0 -0
  383. /package/{dist → lib}/step-machine-public/jsonata-sync.cjs +0 -0
  384. /package/{dist → lib}/stores/memory.cjs +0 -0
  385. /package/{dist → lib}/stores/memory.js +0 -0
  386. /package/{dist → lib}/types-BBhqYGhE.d.cts +0 -0
  387. /package/{dist → lib}/types-BBhqYGhE.d.ts +0 -0
  388. /package/{dist → lib}/validate-BAVzUJWa.d.ts +0 -0
  389. /package/{dist → lib}/validate-Dbu7ygys.d.cts +0 -0
@@ -7,12 +7,11 @@ import os from 'node:os';
7
7
  import net from 'node:net';
8
8
  import { spawnSync, spawn } from 'node:child_process';
9
9
  import { fileURLToPath } from 'node:url';
10
- import { createRequire } from 'node:module';
11
10
 
12
11
  import {
13
12
  createMultiBoardServerRuntime,
14
13
  createSingleBoardServerRuntime,
15
- } from 'yaml-flow/server-runtime';
14
+ } from 'yaml-flow/board-live-cards-server-runtime';
16
15
 
17
16
  import {
18
17
  createFsBoardPlatformAdapter,
@@ -23,23 +22,7 @@ import {
23
22
 
24
23
  const __filename = fileURLToPath(import.meta.url);
25
24
  const __dirname = path.dirname(__filename);
26
- const _require = createRequire(import.meta.url);
27
-
28
- function resolveYamlFlowDir() {
29
- try {
30
- return path.dirname(_require.resolve('yaml-flow/package.json'));
31
- } catch {
32
- return null;
33
- }
34
- }
35
-
36
- const _yamlFlowDir = resolveYamlFlowDir();
37
-
38
- // cliDir must point to the yaml-flow root so buildBoardCliInvocation finds
39
- // board-live-cards-cli.js for task-executor completion callbacks.
40
- // demo-src/example-board is 2 levels below the yaml-flow root.
41
- const YAML_FLOW_CLI_DIR = _yamlFlowDir || path.resolve(__dirname, '..', '..');
42
- const _pkgStepMachineCli = _yamlFlowDir ? path.join(_yamlFlowDir, 'step-machine-cli.js') : null;
25
+ const cliArgs = process.argv.slice(2);
43
26
 
44
27
  function loadServerConfig() {
45
28
  const configPath = path.join(__dirname, 'demo-server-config.json');
@@ -77,7 +60,7 @@ function resolveKindRefFromConfig(configValue) {
77
60
  const serverConfig = loadServerConfig();
78
61
  const configuredCardsDir = resolveFromConfig(serverConfig.cardsDir);
79
62
  const configuredTaskExecutorPath = resolveFromConfig(serverConfig.taskExecutorPath || serverConfig.demoTaskExecutorPath);
80
- const configuredStepMachineCliPath = resolveFromConfig(serverConfig.stepMachineCliPath) || _pkgStepMachineCli;
63
+ const configuredStepMachineCliPath = resolveFromConfig(serverConfig.stepMachineCliPath);
81
64
  const configuredChatHandlerPath = resolveFromConfig(serverConfig.chatHandlerPath);
82
65
  const configuredInferenceAdapterPath = resolveFromConfig(serverConfig.inferenceAdapterPath);
83
66
  const configuredGandalfCardsDir = resolveFromConfig(serverConfig.gandalfCardsDir);
@@ -97,7 +80,9 @@ if (!process.env.DEMO_INFERENCE_ADAPTER_PATH && configuredInferenceAdapterPath)
97
80
  }
98
81
 
99
82
  const PORT = Number(process.env.DEMO_SERVER_PORT || serverConfig.port || 7799);
100
- const RESET_ON_START = process.argv.includes('--reset');
83
+ const cardsPatternArgIndex = cliArgs.indexOf('--cards-pattern');
84
+ const cliCardsPattern = cardsPatternArgIndex !== -1 ? cliArgs[cardsPatternArgIndex + 1] : null;
85
+ const selectedCardsPattern = (process.env.DEMO_CARDS_PATTERN || cliCardsPattern || '').trim() || null;
101
86
 
102
87
  const CORS_HEADERS = {
103
88
  'Access-Control-Allow-Origin': '*',
@@ -132,12 +117,23 @@ const defaultGandalfInferenceAdapterPath = process.env.DEMO_GANDALF_INFERENCE_AD
132
117
  // platform-free server runtime.
133
118
  // ---------------------------------------------------------------------------
134
119
 
135
- function createFsCardSource(cardsDir) {
120
+ function wildcardToRegExp(pattern) {
121
+ const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&');
122
+ return new RegExp(`^${escaped.replace(/\*/g, '.*').replace(/\?/g, '.')}$`);
123
+ }
124
+
125
+ function createFsCardSource(cardsDir, cardPattern = null) {
126
+ const cardRegex = cardPattern ? wildcardToRegExp(cardPattern) : null;
136
127
  return {
137
128
  listCards() {
138
129
  if (!fs.existsSync(cardsDir)) return [];
139
130
  return fs.readdirSync(cardsDir)
140
- .filter(f => f.endsWith('.json'))
131
+ .filter(f => {
132
+ if (!f.endsWith('.json')) return false;
133
+ if (!cardRegex) return true;
134
+ const cardId = path.basename(f, '.json');
135
+ return cardRegex.test(cardId);
136
+ })
141
137
  .map(f => {
142
138
  try { return JSON.parse(fs.readFileSync(path.join(cardsDir, f), 'utf-8')); }
143
139
  catch { return null; }
@@ -275,7 +271,7 @@ function createNamedPipeNotificationTransport() {
275
271
 
276
272
  const serverMetaRef = process.env.DEMO_SERVER_META_STORE_REF || configuredServerMetaStoreRef || serializeRef({ kind: 'fs-path', value: setupDir });
277
273
  const serverMetaAdapter = createFsBoardPlatformAdapter(
278
- parseRef(serverMetaRef), YAML_FLOW_CLI_DIR, { suppressSpawn: true },
274
+ parseRef(serverMetaRef), { suppressSpawn: true },
279
275
  );
280
276
  const serverMetaStore = createArtifactsStore(serverMetaAdapter.blobStorage('server-meta'));
281
277
 
@@ -304,7 +300,7 @@ function buildBoardContextConfig(label, boardDir, taskExecPath, chatHandlerPath,
304
300
 
305
301
  const notifyChannel = `yaml-flow-server-${label}-${boardId}-${process.pid}`;
306
302
  const baseRef = parseRef(serializeRef({ kind: 'fs-path', value: boardDir }));
307
- const boardAdapter = createFsBoardPlatformAdapter(baseRef, YAML_FLOW_CLI_DIR, {
303
+ const boardAdapter = createFsBoardPlatformAdapter(baseRef, {
308
304
  notifyChannel,
309
305
  });
310
306
  // In the server context the drain loop is driven in-process; suppress the
@@ -312,7 +308,7 @@ function buildBoardContextConfig(label, boardDir, taskExecPath, chatHandlerPath,
312
308
  boardAdapter.requestProcessAccumulated = () => {};
313
309
  // Artifacts adapter rooted at runtimeCardsDir so chats/ and files/ are siblings of store/.
314
310
  const artifactsRef = parseRef(serializeRef({ kind: 'fs-path', value: runtimeCardsDir }));
315
- const artifactsAdapter = createFsBoardPlatformAdapter(artifactsRef, YAML_FLOW_CLI_DIR, { suppressSpawn: true });
311
+ const artifactsAdapter = createFsBoardPlatformAdapter(artifactsRef, { suppressSpawn: true });
316
312
 
317
313
  const cardStoreRef = serializeRef({ kind: 'fs-path', value: runtimeCardStoreDir });
318
314
 
@@ -390,7 +386,7 @@ const runtime = createMultiBoardServerRuntime({
390
386
  const existing = singleBoardRuntime.cardStore.get({});
391
387
  const isEmpty = existing.status !== 'success' || !existing.data?.cards?.length;
392
388
  if (isEmpty) {
393
- const cards = createFsCardSource(sourceCardsDir).listCards();
389
+ const cards = createFsCardSource(sourceCardsDir, selectedCardsPattern).listCards();
394
390
  if (cards.length) singleBoardRuntime.cardStore.set({ body: cards });
395
391
  }
396
392
  // Seed gandalf board if present
@@ -410,27 +406,6 @@ const runtime = createMultiBoardServerRuntime({
410
406
  },
411
407
  });
412
408
 
413
- // ---------------------------------------------------------------------------
414
- // Reset
415
- // ---------------------------------------------------------------------------
416
-
417
- function resetRuntime() {
418
- if (fs.existsSync(setupDir)) {
419
- fs.rmSync(setupDir, { recursive: true, force: true });
420
- console.log(`[demo-server] reset: wiped ${setupDir}`);
421
- }
422
- const chatSessionsDir = serverConfig.chatSessionsDir
423
- ? path.resolve(__dirname, serverConfig.chatSessionsDir)
424
- : path.join(os.tmpdir(), 'demo-chat-handler-sessions');
425
- if (fs.existsSync(chatSessionsDir)) {
426
- fs.rmSync(chatSessionsDir, { recursive: true, force: true });
427
- console.log(`[demo-server] reset: wiped ${chatSessionsDir}`);
428
- }
429
- }
430
-
431
- if (RESET_ON_START) {
432
- resetRuntime();
433
- }
434
409
 
435
410
  // ---------------------------------------------------------------------------
436
411
  // Demo-setup — host-level concern (not a runtime concern).
@@ -4,7 +4,7 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Example Board Demo (Server Runtime)</title>
7
- <link rel="icon" type="image/svg+xml" href="favicon.svg" />
7
+ <link rel="icon" type="image/svg+xml" href="../../browser/favicon.svg" />
8
8
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
9
9
  <style>
10
10
  /* Scale down markdown headings inside cards to stay in proportion with card body text */
@@ -19,8 +19,8 @@
19
19
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
20
20
  <script src="https://cdn.jsdelivr.net/npm/dompurify/dist/purify.min.js"></script>
21
21
  <script src="https://cdn.jsdelivr.net/npm/leader-line/leader-line.min.js"></script>
22
- <script src="https://cdn.jsdelivr.net/npm/yaml-flow@7.1.0/browser/live-cards.js"></script>
23
- <script src="https://cdn.jsdelivr.net/npm/yaml-flow@7.1.0/browser/board-livecards-client.js"></script>
22
+ <script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.0.1/browser/live-cards.js"></script>
23
+ <script src="https://cdn.jsdelivr.net/npm/yaml-flow@8.0.1/browser/board-livecards-client.js"></script>
24
24
  </head>
25
25
  <body class="bg-light">
26
26
  <div class="container-fluid py-3">
@@ -60,10 +60,9 @@ import path from 'node:path';
60
60
  import os from 'node:os';
61
61
  import { execFileSync } from 'node:child_process';
62
62
  import { fileURLToPath, pathToFileURL } from 'node:url';
63
- import { parseRef, blobStorageForRef, reportComplete, reportFailed } from 'yaml-flow/storage-refs';
64
- import { loadStepFlow, createStepMachine, MemoryStore } from '../../dist/index.js';
65
- import { buildStepHandlersForFlow } from '../../dist/step-machine-public/index.js';
66
- import { invokeRefSync } from '../../dist/cli/node/execution-adapter.js';
63
+ import { parseRef, blobStorageForRef, reportComplete, reportFailed } from 'yaml-flow/board-worker-adapter';
64
+ import { loadStepFlow, createStepMachine, MemoryStore, buildStepHandlersForFlow } from 'yaml-flow/step-machine-public';
65
+ import { invokeRefSync } from 'yaml-flow/board-live-cards-node';
67
66
 
68
67
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
69
68
  const SOURCE_DEF_FLOWS_FILE = path.join(__dirname, 'source_def_flows.json');
@@ -212,7 +211,9 @@ function loadSourceDefFlowsConfig() {
212
211
  try {
213
212
  return readJson(SOURCE_DEF_FLOWS_FILE);
214
213
  } catch (err) {
215
- fail(`Cannot read source flow registry at ${SOURCE_DEF_FLOWS_FILE}: ${String(err && err.message || err)}`);
214
+ fail(
215
+ `Cannot read source flow registry (${SOURCE_DEF_FLOWS_FILE}): ${String(err && err.message || err)}`,
216
+ );
216
217
  }
217
218
  }
218
219
 
@@ -356,6 +357,22 @@ async function executeStepMachineSourceFlow(context) {
356
357
  };
357
358
  }
358
359
 
360
+ async function resolveAndExecuteSourceFlow(sourceDef, extra, refs = {}) {
361
+ const registry = loadSourceDefFlowsConfig();
362
+ const kind = resolveSourceKind(sourceDef, registry);
363
+ const flowResult = await executeStepMachineSourceFlow({
364
+ kind,
365
+ registry,
366
+ sourceDef,
367
+ extra,
368
+ inRef: refs.inRef,
369
+ outRef: refs.outRef,
370
+ errRef: refs.errRef,
371
+ mockDb: MOCK_DB,
372
+ });
373
+ return { kind, flowResult };
374
+ }
375
+
359
376
  async function runSourceFetchSubcommand(argv) {
360
377
  const inIdx = argv.indexOf('--in-ref');
361
378
  const outIdx = argv.indexOf('--out-ref');
@@ -418,29 +435,15 @@ async function runSourceFetchSubcommand(argv) {
418
435
  failRef(`Cannot resolve source_def: ${String(err && err.message || err)}`, callback);
419
436
  }
420
437
 
421
- const registry = loadSourceDefFlowsConfig();
422
438
  let kind;
423
- try {
424
- kind = resolveSourceKind(sourceDef, registry);
425
- } catch (err) {
426
- failRef(String(err && err.message || err), callback);
427
- }
428
-
429
439
  let flowResult;
430
440
  try {
431
- flowResult = await executeStepMachineSourceFlow({
432
- kind,
433
- registry,
434
- sourceDef,
435
- extra,
436
- inRef,
437
- outRef,
438
- errRef,
439
- mockDb: MOCK_DB,
440
- });
441
+ const resolved = await resolveAndExecuteSourceFlow(sourceDef, extra, { inRef, outRef, errRef });
442
+ kind = resolved.kind;
443
+ flowResult = resolved.flowResult;
441
444
  } catch (err) {
442
445
  const detail = (err && (err.stderr || err.stdout)) ? `\n${err.stderr || err.stdout}`.trimEnd() : '';
443
- failRef(`${kind} invocation failed: ${String(err && err.message || err)}${detail}`, callback);
446
+ failRef(`source invocation failed: ${String(err && err.message || err)}${detail}`, callback);
444
447
  }
445
448
 
446
449
  if (!flowResult?.wroteOutputDirectly) {
@@ -462,6 +465,46 @@ async function runSourceFetchSubcommand(argv) {
462
465
 
463
466
  }
464
467
 
468
+ async function probeSourcePreflightSubcommand(argv) {
469
+ const extraIdx = argv.indexOf('--extra');
470
+ const extraB64 = extraIdx !== -1 ? argv[extraIdx + 1] : undefined;
471
+
472
+ let extra = {};
473
+ if (extraB64) {
474
+ try { extra = JSON.parse(Buffer.from(extraB64, 'base64').toString('utf-8')); }
475
+ catch { /* ignore malformed extra */ }
476
+ }
477
+
478
+ const startedAt = Date.now();
479
+ try {
480
+ const chunks = [];
481
+ for await (const chunk of process.stdin) {
482
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
483
+ }
484
+ const raw = Buffer.concat(chunks).toString('utf-8').trim();
485
+ if (!raw) {
486
+ console.log(JSON.stringify({ ok: false, reachable: false, latencyMs: Date.now() - startedAt, error: 'Missing probe input JSON on stdin' }));
487
+ process.exit(0);
488
+ }
489
+
490
+ let sourceDef;
491
+ try {
492
+ sourceDef = JSON.parse(raw);
493
+ } catch (err) {
494
+ console.log(JSON.stringify({ ok: false, reachable: false, latencyMs: Date.now() - startedAt, error: `Invalid probe JSON: ${String(err && err.message || err)}` }));
495
+ process.exit(0);
496
+ }
497
+
498
+ await resolveAndExecuteSourceFlow(sourceDef, extra);
499
+ console.log(JSON.stringify({ ok: true, reachable: true, latencyMs: Date.now() - startedAt }));
500
+ process.exit(0);
501
+ } catch (err) {
502
+ const detail = (err && (err.stderr || err.stdout)) ? `\n${err.stderr || err.stdout}`.trimEnd() : '';
503
+ console.log(JSON.stringify({ ok: false, reachable: false, latencyMs: Date.now() - startedAt, error: `source invocation failed: ${String(err && err.message || err)}${detail}` }));
504
+ process.exit(0);
505
+ }
506
+ }
507
+
465
508
  // ---------------------------------------------------------------------------
466
509
  // validate-source-def — structural validation of a source definition
467
510
  // ---------------------------------------------------------------------------
@@ -547,7 +590,7 @@ function validateSourceDefSubcommand(argv) {
547
590
  const CAPABILITIES = {
548
591
  version: '1.0',
549
592
  executor: 'demo-task-executor',
550
- subcommands: ['run-source-fetch', 'describe-capabilities', 'validate-source-def'],
593
+ subcommands: ['run-source-fetch', 'probe-source-preflight', 'describe-capabilities', 'validate-source-def'],
551
594
  sourceKinds: {
552
595
  mock: {
553
596
  description: 'Look up a key in a hardcoded MOCK_DB dictionary.',
@@ -658,6 +701,10 @@ async function main() {
658
701
  await runSourceFetchSubcommand(process.argv.slice(3));
659
702
  return;
660
703
  }
704
+ if (sub === 'probe-source-preflight') {
705
+ await probeSourcePreflightSubcommand(process.argv.slice(3));
706
+ return;
707
+ }
661
708
  if (sub === 'describe' || sub === 'describe-capabilities') {
662
709
  describeCapabilities();
663
710
  return;
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "card-source-kinds",
3
+ "meta": {
4
+ "title": "Source Connection Types",
5
+ "tags": ["admin"],
6
+ "desc": "Reference card listing the source def kinds supported by the demo task executor.",
7
+ "_gandalfCard": true
8
+ },
9
+ "provides": [],
10
+ "compute": [],
11
+ "view": {
12
+ "elements": [
13
+ {
14
+ "kind": "table",
15
+ "label": "Supported connection types",
16
+ "data": {
17
+ "bind": "card_data.kinds",
18
+ "columns": ["kind", "description"]
19
+ }
20
+ }
21
+ ],
22
+ "layout": {
23
+ "board": { "col": 4, "order": 99 },
24
+ "canvas": { "x": 900, "y": 50, "w": 480, "h": 240 }
25
+ }
26
+ },
27
+ "card_data": {
28
+ "kinds": [
29
+ { "kind": "mock", "description": "Look up a key in the built-in MOCK_DB dictionary and return static JSON." },
30
+ { "kind": "copilot", "description": "Invoke GitHub Copilot CLI using copilot.prompt_template (or top-level prompt_template shorthand) with {{key}} interpolation from _projections and args." },
31
+ { "kind": "workiq", "description": "Invoke WorkIQ (Microsoft 365 Copilot) using workiq.query_template with {{key}} interpolation. Requires workiq CLI + az login." },
32
+ { "kind": "url", "description": "Single URL fetch via curl with {{key}} interpolation from _projections. Supports method, headers, args, tickersFrom, and cacheTimeout (seconds)." },
33
+ { "kind": "url-list", "description": "Fan-out fetch over _projections.url_list (string[]), returning an array of raw JSON responses. Supports method, headers, and cacheTimeout." }
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "card-source-kinds": {
3
+ "key": "card-source-kinds",
4
+ "checksum": "",
5
+ "updatedAt": "2026-05-07T19:32:58.245Z"
6
+ }
7
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "id": "card-source-kinds",
3
+ "meta": {
4
+ "title": "Source Connection Types",
5
+ "tags": [
6
+ "admin"
7
+ ],
8
+ "desc": "Reference card listing the source def kinds supported by the demo task executor.",
9
+ "_gandalfCard": true
10
+ },
11
+ "provides": [],
12
+ "compute": [],
13
+ "view": {
14
+ "elements": [
15
+ {
16
+ "kind": "table",
17
+ "label": "Supported connection types",
18
+ "data": {
19
+ "bind": "card_data.kinds",
20
+ "columns": [
21
+ "kind",
22
+ "description"
23
+ ]
24
+ }
25
+ }
26
+ ],
27
+ "layout": {
28
+ "board": {
29
+ "col": 4,
30
+ "order": 99
31
+ },
32
+ "canvas": {
33
+ "x": 900,
34
+ "y": 50,
35
+ "w": 480,
36
+ "h": 240
37
+ }
38
+ }
39
+ },
40
+ "card_data": {
41
+ "kinds": [
42
+ {
43
+ "kind": "mock",
44
+ "description": "Look up a key in the built-in MOCK_DB dictionary and return static JSON."
45
+ },
46
+ {
47
+ "kind": "copilot",
48
+ "description": "Invoke GitHub Copilot CLI using copilot.prompt_template (or top-level prompt_template shorthand) with {{key}} interpolation from _projections and args."
49
+ },
50
+ {
51
+ "kind": "workiq",
52
+ "description": "Invoke WorkIQ (Microsoft 365 Copilot) using workiq.query_template with {{key}} interpolation. Requires workiq CLI + az login."
53
+ },
54
+ {
55
+ "kind": "url",
56
+ "description": "Single URL fetch via curl with {{key}} interpolation from _projections. Supports method, headers, args, tickersFrom, and cacheTimeout (seconds)."
57
+ },
58
+ {
59
+ "kind": "url-list",
60
+ "description": "Fan-out fetch over _projections.url_list (string[]), returning an array of raw JSON responses. Supports method, headers, and cacheTimeout."
61
+ }
62
+ ]
63
+ }
64
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "demo-source-copilot",
3
+ "settings": {
4
+ "start_step": "execute",
5
+ "max_total_steps": 8,
6
+ "timeout_ms": 180000
7
+ },
8
+ "steps": {
9
+ "execute": {
10
+ "description": "Execute copilot source def",
11
+ "handler": {
12
+ "type": "ref",
13
+ "howToRun": "demo-local-module",
14
+ "whatToRun": { "kind": "fs-path", "value": "./source-def-handlers/copilot-source-handler.js" }
15
+ },
16
+ "transitions": {
17
+ "success": "completed",
18
+ "failure": "failed"
19
+ }
20
+ }
21
+ },
22
+ "terminal_states": {
23
+ "completed": {
24
+ "description": "Copilot source succeeded",
25
+ "return_intent": "success",
26
+ "return_artifacts": ["resultValue", "wroteOutputDirectly"]
27
+ },
28
+ "failed": {
29
+ "description": "Copilot source failed",
30
+ "return_intent": "failure"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "id": "demo-source-mock",
3
+ "settings": {
4
+ "start_step": "execute",
5
+ "max_total_steps": 5,
6
+ "timeout_ms": 30000
7
+ },
8
+ "steps": {
9
+ "execute": {
10
+ "description": "Execute mock source def",
11
+ "handler": {
12
+ "type": "compute-jsonata",
13
+ "expr": [
14
+ "data.resultValue = $lookup(expects_data.mockDb, expects_data.sourceDef.mock)",
15
+ "result = $exists(data.resultValue) ? \"success\" : \"failure\""
16
+ ]
17
+ },
18
+ "transitions": {
19
+ "success": "completed",
20
+ "failure": "failed"
21
+ }
22
+ }
23
+ },
24
+ "terminal_states": {
25
+ "completed": {
26
+ "description": "Mock lookup succeeded",
27
+ "return_intent": "success",
28
+ "return_artifacts": ["resultValue", "wroteOutputDirectly"]
29
+ },
30
+ "failed": {
31
+ "description": "Mock lookup failed",
32
+ "return_intent": "failure"
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "demo-source-url-list",
3
+ "settings": {
4
+ "start_step": "execute",
5
+ "max_total_steps": 10,
6
+ "timeout_ms": 60000
7
+ },
8
+ "steps": {
9
+ "execute": {
10
+ "description": "Execute URL list source def",
11
+ "handler": {
12
+ "type": "ref",
13
+ "howToRun": "demo-local-module",
14
+ "whatToRun": { "kind": "fs-path", "value": "./source-def-handlers/http-source-handler.js" }
15
+ },
16
+ "transitions": {
17
+ "success": "completed",
18
+ "failure": "failed"
19
+ }
20
+ }
21
+ },
22
+ "terminal_states": {
23
+ "completed": {
24
+ "description": "URL list fetch succeeded",
25
+ "return_intent": "success",
26
+ "return_artifacts": ["resultValue", "wroteOutputDirectly"]
27
+ },
28
+ "failed": {
29
+ "description": "URL list fetch failed",
30
+ "return_intent": "failure"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "demo-source-url",
3
+ "settings": {
4
+ "start_step": "execute",
5
+ "max_total_steps": 10,
6
+ "timeout_ms": 60000
7
+ },
8
+ "steps": {
9
+ "execute": {
10
+ "description": "Execute single URL source def",
11
+ "handler": {
12
+ "type": "ref",
13
+ "howToRun": "demo-local-module",
14
+ "whatToRun": { "kind": "fs-path", "value": "./source-def-handlers/http-source-handler.js" }
15
+ },
16
+ "transitions": {
17
+ "success": "completed",
18
+ "failure": "failed"
19
+ }
20
+ }
21
+ },
22
+ "terminal_states": {
23
+ "completed": {
24
+ "description": "URL fetch succeeded",
25
+ "return_intent": "success",
26
+ "return_artifacts": ["resultValue", "wroteOutputDirectly"]
27
+ },
28
+ "failed": {
29
+ "description": "URL fetch failed",
30
+ "return_intent": "failure"
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "demo-source-workiq",
3
+ "settings": {
4
+ "start_step": "execute",
5
+ "max_total_steps": 8,
6
+ "timeout_ms": 120000
7
+ },
8
+ "steps": {
9
+ "execute": {
10
+ "description": "Execute workiq source def via demo-server HTTP proxy",
11
+ "handler": {
12
+ "type": "ref",
13
+ "howToRun": "http:post",
14
+ "whatToRun": { "kind": "http-url", "value": "/api/workiq/ask" }
15
+ },
16
+ "transitions": {
17
+ "success": "completed",
18
+ "failure": "failed"
19
+ }
20
+ }
21
+ },
22
+ "terminal_states": {
23
+ "completed": {
24
+ "description": "WorkIQ source succeeded",
25
+ "return_intent": "success",
26
+ "return_artifacts": ["resultValue", "wroteOutputDirectly"]
27
+ },
28
+ "failed": {
29
+ "description": "WorkIQ source failed",
30
+ "return_intent": "failure",
31
+ "return_artifacts": ["error"]
32
+ }
33
+ }
34
+ }