yaml-flow 7.1.0 → 8.0.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 (386) 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 +5 -5
  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-C_A6WCiK.d.ts +284 -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/execution-adapter.d.ts +3 -3
  14. package/cli/node/execution-adapter.js +3 -0
  15. package/{dist/cli → cli}/node/fs-board-adapter.d.ts +24 -11
  16. package/cli/node/fs-board-adapter.js +14 -0
  17. package/cli/node/step-machine-cli.d.ts +7 -0
  18. package/cli/node/step-machine-cli.js +5 -0
  19. package/{dist/board-live-cards-public-5n1-syA3.d.cts → cli/types-CziUxkiv.d.ts} +68 -5
  20. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/card-store-ref.json +1 -0
  21. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/chat-handler.json +1 -0
  22. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/outputs-store-ref.json +1 -0
  23. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.config/task-executor.json +1 -0
  24. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.state-snapshot/board/graph.json +29 -0
  25. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime/.state-snapshot/board/lastJournalProcessedId.json +1 -0
  26. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/gandalf-runtime-out/.outputs/status.json +25 -0
  27. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-market-prices/computed_values.json +67 -0
  28. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-portfolio/computed_values.json +1 -0
  29. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/cards/card-portfolio-value/computed_values.json +52 -0
  30. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/holdings.json +22 -0
  31. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/positions.json +46 -0
  32. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/data-objects/quotes.json +35 -0
  33. package/examples/board/.demo-setup/run-1778643703151-3360-dopnpv/board-default/runtime-out/.outputs/status.json +113 -0
  34. package/examples/{example-board → board}/demo-server-config.json +0 -1
  35. package/examples/{example-board → board}/demo-server.js +23 -48
  36. package/examples/{example-board → board}/demo-shell-with-server.html +3 -3
  37. package/examples/{example-board → board}/demo-task-executor.js +71 -24
  38. package/examples/board/gandalf-cards/card-source-kinds.json +36 -0
  39. package/examples/board/gandalf-cards/cards/_index.json +7 -0
  40. package/examples/board/gandalf-cards/cards/card-source-kinds.json +64 -0
  41. package/examples/board/source-def-flows/copilot.flow.json +33 -0
  42. package/examples/board/source-def-flows/mock.flow.json +35 -0
  43. package/examples/board/source-def-flows/url-list.flow.json +33 -0
  44. package/examples/board/source-def-flows/url.flow.json +33 -0
  45. package/examples/board/source-def-flows/workiq.flow.json +34 -0
  46. package/examples/board/source-def-handlers/copilot-source-handler.js +141 -0
  47. package/examples/board/source-def-handlers/http-source-handler.js +145 -0
  48. package/examples/board/source_def_flows.json +249 -0
  49. package/examples/board/test/demo-http-test.js +317 -0
  50. package/examples/{example-board → board-local}/demo-shell-localstorage.html +4 -4
  51. package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/handlers}/portfolio-tracker-fetch-prices.js +1 -1
  52. package/examples/{browser/boards/portfolio-tracker/portfolio-tracker-public.js → portfolio-tracker/portfolio-tracker.js} +11 -14
  53. package/examples/{browser/boards/portfolio-tracker → portfolio-tracker/test}/portfolio-t4.js +32 -50
  54. package/lib/artifacts-store-lib-public-BABrgFkV.d.ts +119 -0
  55. package/lib/artifacts-store-lib-public-DGa8BpJT.d.cts +119 -0
  56. package/lib/artifacts-store-public.cjs +2 -0
  57. package/lib/artifacts-store-public.d.cts +5 -0
  58. package/lib/artifacts-store-public.d.ts +5 -0
  59. package/lib/artifacts-store-public.js +2 -0
  60. package/lib/board-live-cards-node.cjs +14 -0
  61. package/{dist/cli/node/execution-adapter.d.cts → lib/board-live-cards-node.d.cts} +45 -85
  62. package/lib/board-live-cards-node.d.ts +134 -0
  63. package/lib/board-live-cards-node.js +14 -0
  64. package/lib/board-live-cards-public-BnmRAbQV.d.cts +383 -0
  65. package/{dist/board-live-cards-public-CK_J8uv0.d.ts → lib/board-live-cards-public-CsmYrvpd.d.ts} +142 -76
  66. package/lib/board-live-cards-public.cjs +3 -0
  67. package/lib/board-live-cards-public.d.cts +4 -0
  68. package/lib/board-live-cards-public.d.ts +4 -0
  69. package/lib/board-live-cards-public.js +3 -0
  70. package/lib/board-live-cards-server-runtime.cjs +9 -0
  71. package/lib/board-live-cards-server-runtime.d.cts +6 -0
  72. package/lib/board-live-cards-server-runtime.d.ts +6 -0
  73. package/lib/board-live-cards-server-runtime.js +9 -0
  74. package/lib/board-livegraph-runtime/index.cjs +3 -0
  75. package/{dist → lib}/board-livegraph-runtime/index.d.cts +1 -2
  76. package/{dist → lib}/board-livegraph-runtime/index.d.ts +1 -2
  77. package/lib/board-livegraph-runtime/index.js +3 -0
  78. package/{dist/storage-refs.cjs → lib/board-worker-adapter.cjs} +2 -2
  79. package/{dist/storage-refs.d.cts → lib/board-worker-adapter.d.cts} +4 -3
  80. package/{dist/storage-refs.d.ts → lib/board-worker-adapter.d.ts} +4 -3
  81. package/{dist/storage-refs.js → lib/board-worker-adapter.js} +2 -2
  82. package/{dist → lib}/card-compute/index.cjs +1 -1
  83. package/{dist → lib}/card-compute/index.js +1 -1
  84. package/lib/card-store-public.cjs +2 -0
  85. package/lib/card-store-public.d.cts +61 -0
  86. package/lib/card-store-public.d.ts +61 -0
  87. package/lib/card-store-public.js +2 -0
  88. package/lib/card-validation.cjs +10 -0
  89. package/lib/card-validation.d.cts +35 -0
  90. package/lib/card-validation.d.ts +35 -0
  91. package/lib/card-validation.js +10 -0
  92. package/{dist/constants-oCEbNpul.d.ts → lib/constants-BPVLb3Es.d.ts} +1 -1
  93. package/{dist/constants-BzZUyYlp.d.cts → lib/constants-DXxsRN9y.d.cts} +1 -1
  94. package/{dist → lib}/continuous-event-graph/index.cjs +2 -2
  95. package/{dist → lib}/continuous-event-graph/index.d.cts +3 -5
  96. package/{dist → lib}/continuous-event-graph/index.d.ts +3 -5
  97. package/{dist → lib}/continuous-event-graph/index.js +2 -2
  98. package/{dist → lib}/event-graph/index.d.cts +2 -2
  99. package/{dist → lib}/event-graph/index.d.ts +2 -2
  100. package/{dist → lib}/execution-refs.d.cts +29 -10
  101. package/{dist → lib}/execution-refs.d.ts +29 -10
  102. package/lib/index.cjs +25 -0
  103. package/{dist → lib}/index.d.cts +7 -8
  104. package/{dist → lib}/index.d.ts +7 -8
  105. package/lib/index.js +25 -0
  106. package/{dist/live-cards-bridge-BXbVTsna.d.cts → lib/live-cards-bridge-DC_ZU0eS.d.ts} +134 -3
  107. package/{dist/live-cards-bridge-Ds28XR15.d.ts → lib/live-cards-bridge-b25aAVvE.d.cts} +134 -3
  108. package/lib/loader-CuuLjxVA.d.cts +42 -0
  109. package/lib/loader-Zborm2pq.d.ts +42 -0
  110. package/lib/server-runtime/index.cjs +9 -0
  111. package/{dist → lib}/server-runtime/index.d.cts +4 -4
  112. package/{dist → lib}/server-runtime/index.d.ts +4 -4
  113. package/lib/server-runtime/index.js +9 -0
  114. package/lib/step-machine/index.d.cts +64 -0
  115. package/lib/step-machine/index.d.ts +64 -0
  116. package/lib/step-machine-public/index.cjs +5 -0
  117. package/{dist → lib}/step-machine-public/index.d.cts +14 -1
  118. package/{dist → lib}/step-machine-public/index.d.ts +14 -1
  119. package/lib/step-machine-public/index.js +5 -0
  120. package/lib/storage-interface-BhAON-gW.d.cts +84 -0
  121. package/lib/storage-interface-BhAON-gW.d.ts +84 -0
  122. package/lib/stores/index.cjs +3 -0
  123. package/lib/stores/index.d.cts +4 -0
  124. package/lib/stores/index.d.ts +4 -0
  125. package/lib/stores/index.js +3 -0
  126. package/lib/stores/kv.cjs +3 -0
  127. package/lib/stores/kv.d.cts +32 -0
  128. package/lib/stores/kv.d.ts +32 -0
  129. package/lib/stores/kv.js +3 -0
  130. package/{dist → lib}/stores/memory.d.cts +1 -1
  131. package/{dist → lib}/stores/memory.d.ts +1 -1
  132. package/{dist/types-HGDTWIun.d.ts → lib/types-CBxkYuLY.d.ts} +2 -1
  133. package/{dist/types-ycun84cq.d.cts → lib/types-DQ1bKuB1.d.cts} +11 -0
  134. package/{dist/types-ycun84cq.d.ts → lib/types-DQ1bKuB1.d.ts} +11 -0
  135. package/{dist/types-CU3DjTKL.d.cts → lib/types-DkFvgxwq.d.cts} +2 -1
  136. package/package.json +79 -119
  137. package/board-live-cards-cli.js +0 -37
  138. package/browser/board-livecards-client.js.map +0 -1
  139. package/browser/board-livecards-localstorage.js.map +0 -1
  140. package/browser/board-livegraph-engine.js +0 -3
  141. package/browser/board-livegraph-engine.js.map +0 -1
  142. package/browser/card-compute.js +0 -266
  143. package/browser/compute-jsonata.js.map +0 -1
  144. package/card-store.js +0 -37
  145. package/dist/batch/index.cjs.map +0 -1
  146. package/dist/batch/index.js.map +0 -1
  147. package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +0 -136
  148. package/dist/board-live-cards-lib-jM2uYG1v.d.ts +0 -136
  149. package/dist/board-livegraph-runtime/index.cjs +0 -3
  150. package/dist/board-livegraph-runtime/index.cjs.map +0 -1
  151. package/dist/board-livegraph-runtime/index.js +0 -3
  152. package/dist/board-livegraph-runtime/index.js.map +0 -1
  153. package/dist/card-compute/index.cjs.map +0 -1
  154. package/dist/card-compute/index.js.map +0 -1
  155. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +0 -3
  156. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +0 -1
  157. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +0 -37
  158. package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +0 -1
  159. package/dist/cli/browser-api/card-store-browser-api.cjs +0 -2
  160. package/dist/cli/browser-api/card-store-browser-api.cjs.map +0 -1
  161. package/dist/cli/browser-api/card-store-browser-api.d.cts +0 -26
  162. package/dist/cli/browser-api/card-store-browser-api.js.map +0 -1
  163. package/dist/cli/node/artifacts-store-cli.cjs +0 -11
  164. package/dist/cli/node/artifacts-store-cli.cjs.map +0 -1
  165. package/dist/cli/node/artifacts-store-cli.d.cts +0 -8
  166. package/dist/cli/node/artifacts-store-cli.js.map +0 -1
  167. package/dist/cli/node/board-live-cards-cli.cjs +0 -15
  168. package/dist/cli/node/board-live-cards-cli.cjs.map +0 -1
  169. package/dist/cli/node/board-live-cards-cli.d.cts +0 -20
  170. package/dist/cli/node/board-live-cards-cli.js +0 -15
  171. package/dist/cli/node/board-live-cards-cli.js.map +0 -1
  172. package/dist/cli/node/card-store-cli.cjs +0 -8
  173. package/dist/cli/node/card-store-cli.cjs.map +0 -1
  174. package/dist/cli/node/card-store-cli.d.cts +0 -15
  175. package/dist/cli/node/card-store-cli.js.map +0 -1
  176. package/dist/cli/node/execution-adapter.cjs +0 -3
  177. package/dist/cli/node/execution-adapter.cjs.map +0 -1
  178. package/dist/cli/node/execution-adapter.js +0 -3
  179. package/dist/cli/node/execution-adapter.js.map +0 -1
  180. package/dist/cli/node/fs-board-adapter.cjs +0 -14
  181. package/dist/cli/node/fs-board-adapter.cjs.map +0 -1
  182. package/dist/cli/node/fs-board-adapter.d.cts +0 -204
  183. package/dist/cli/node/fs-board-adapter.js +0 -14
  184. package/dist/cli/node/fs-board-adapter.js.map +0 -1
  185. package/dist/cli/node/source-cli-task-executor.cjs +0 -11
  186. package/dist/cli/node/source-cli-task-executor.cjs.map +0 -1
  187. package/dist/cli/node/source-cli-task-executor.js.map +0 -1
  188. package/dist/config/index.cjs.map +0 -1
  189. package/dist/config/index.js.map +0 -1
  190. package/dist/continuous-event-graph/index.cjs.map +0 -1
  191. package/dist/continuous-event-graph/index.js.map +0 -1
  192. package/dist/event-graph/index.cjs.map +0 -1
  193. package/dist/event-graph/index.js.map +0 -1
  194. package/dist/execution-refs.cjs.map +0 -1
  195. package/dist/execution-refs.js.map +0 -1
  196. package/dist/index.cjs +0 -30
  197. package/dist/index.cjs.map +0 -1
  198. package/dist/index.js +0 -30
  199. package/dist/index.js.map +0 -1
  200. package/dist/inference/index.cjs +0 -7
  201. package/dist/inference/index.cjs.map +0 -1
  202. package/dist/inference/index.d.cts +0 -229
  203. package/dist/inference/index.d.ts +0 -229
  204. package/dist/inference/index.js +0 -7
  205. package/dist/inference/index.js.map +0 -1
  206. package/dist/server-runtime/index.cjs +0 -9
  207. package/dist/server-runtime/index.cjs.map +0 -1
  208. package/dist/server-runtime/index.js +0 -9
  209. package/dist/server-runtime/index.js.map +0 -1
  210. package/dist/step-machine/index.cjs.map +0 -1
  211. package/dist/step-machine/index.d.cts +0 -102
  212. package/dist/step-machine/index.d.ts +0 -102
  213. package/dist/step-machine/index.js.map +0 -1
  214. package/dist/step-machine-public/index.cjs +0 -3
  215. package/dist/step-machine-public/index.cjs.map +0 -1
  216. package/dist/step-machine-public/index.js +0 -3
  217. package/dist/step-machine-public/index.js.map +0 -1
  218. package/dist/storage-refs.cjs.map +0 -1
  219. package/dist/storage-refs.js.map +0 -1
  220. package/dist/stores/file.cjs +0 -2
  221. package/dist/stores/file.cjs.map +0 -1
  222. package/dist/stores/file.d.cts +0 -36
  223. package/dist/stores/file.d.ts +0 -36
  224. package/dist/stores/file.js +0 -2
  225. package/dist/stores/file.js.map +0 -1
  226. package/dist/stores/index.cjs +0 -2
  227. package/dist/stores/index.cjs.map +0 -1
  228. package/dist/stores/index.d.cts +0 -4
  229. package/dist/stores/index.d.ts +0 -4
  230. package/dist/stores/index.js +0 -2
  231. package/dist/stores/index.js.map +0 -1
  232. package/dist/stores/localStorage.cjs +0 -2
  233. package/dist/stores/localStorage.cjs.map +0 -1
  234. package/dist/stores/localStorage.d.cts +0 -34
  235. package/dist/stores/localStorage.d.ts +0 -34
  236. package/dist/stores/localStorage.js +0 -2
  237. package/dist/stores/localStorage.js.map +0 -1
  238. package/dist/stores/memory.cjs.map +0 -1
  239. package/dist/stores/memory.js.map +0 -1
  240. package/dist/types-CHSdoAAA.d.cts +0 -135
  241. package/dist/types-CoW0gQl3.d.ts +0 -135
  242. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +0 -201
  243. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.js +0 -370
  244. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.py +0 -398
  245. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +0 -196
  246. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +0 -300
  247. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +0 -617
  248. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +0 -366
  249. package/examples/browser/livecards-browser/index.html +0 -41
  250. package/examples/browser/step-machine-browser/index.html +0 -367
  251. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +0 -1
  252. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +0 -32
  253. package/examples/cli/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
  254. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
  255. package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
  256. package/examples/cli/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
  257. package/examples/cli/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
  258. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -125
  259. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -32
  260. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -26
  261. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +0 -49
  262. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -25
  263. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -23
  264. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -21
  265. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -38
  266. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -48
  267. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -31
  268. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +0 -107
  269. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +0 -51
  270. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +0 -45
  271. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +0 -71
  272. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +0 -36
  273. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +0 -26
  274. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +0 -39
  275. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +0 -80
  276. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -76
  277. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -44
  278. package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +0 -43
  279. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +0 -77
  280. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
  281. package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +0 -31
  282. package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +0 -54
  283. package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +0 -21
  284. package/examples/cli/step-machine-demo/step-cli-echo-y.js +0 -15
  285. package/examples/cli/step-machine-demo/step2-double-cli.js +0 -33
  286. package/examples/cli/step-machine-demo/two-step-math.flow.yaml +0 -93
  287. package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +0 -43
  288. package/examples/example-board/agent-instructions-cardlayout.md +0 -56
  289. package/examples/example-board/agent-instructions.md +0 -834
  290. package/examples/example-board/demo-shell.html +0 -63
  291. package/examples/index.html +0 -785
  292. package/examples/npm-libs/batch/batch-step-machine.ts +0 -121
  293. package/examples/npm-libs/continuous-event-graph/live-cards-board.ts +0 -215
  294. package/examples/npm-libs/continuous-event-graph/live-portfolio-dashboard.ts +0 -555
  295. package/examples/npm-libs/continuous-event-graph/portfolio-tracker.ts +0 -287
  296. package/examples/npm-libs/continuous-event-graph/reactive-monitoring.ts +0 -265
  297. package/examples/npm-libs/continuous-event-graph/reactive-pipeline.ts +0 -168
  298. package/examples/npm-libs/continuous-event-graph/soc-incident-board.ts +0 -287
  299. package/examples/npm-libs/continuous-event-graph/stock-dashboard.ts +0 -229
  300. package/examples/npm-libs/event-graph/ci-cd-pipeline.ts +0 -243
  301. package/examples/npm-libs/event-graph/executor-diamond.ts +0 -165
  302. package/examples/npm-libs/event-graph/executor-pipeline.ts +0 -161
  303. package/examples/npm-libs/event-graph/research-pipeline.ts +0 -137
  304. package/examples/npm-libs/flows/ai-conversation.yaml +0 -116
  305. package/examples/npm-libs/flows/order-processing.yaml +0 -143
  306. package/examples/npm-libs/flows/simple-greeting.yaml +0 -54
  307. package/examples/npm-libs/graph-of-graphs/multi-stage-etl.ts +0 -307
  308. package/examples/npm-libs/graph-of-graphs/url-processing-pipeline.ts +0 -254
  309. package/examples/npm-libs/inference/azure-deployment.ts +0 -149
  310. package/examples/npm-libs/inference/copilot-cli.ts +0 -138
  311. package/examples/npm-libs/inference/data-pipeline.ts +0 -145
  312. package/examples/npm-libs/inference/pluggable-adapters.ts +0 -254
  313. package/examples/npm-libs/node/ai-conversation.ts +0 -195
  314. package/examples/npm-libs/node/simple-greeting.ts +0 -101
  315. package/examples/step-machine-cli/portfolio-tracker/cards/holdings-table.json +0 -22
  316. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +0 -43
  317. package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +0 -15
  318. package/examples/step-machine-cli/portfolio-tracker/cards/price-fetch.json +0 -15
  319. package/examples/step-machine-cli/portfolio-tracker/fetch-prices.js +0 -48
  320. package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -57
  321. package/examples/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +0 -27
  322. package/examples/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +0 -25
  323. package/examples/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +0 -29
  324. package/examples/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +0 -27
  325. package/examples/step-machine-cli/portfolio-tracker/handlers/status-cli.js +0 -25
  326. package/examples/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +0 -37
  327. package/examples/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +0 -53
  328. package/examples/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +0 -35
  329. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
  330. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +0 -227
  331. package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +0 -38
  332. package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +0 -28
  333. package/step-machine-cli.js +0 -407
  334. /package/{dist/cli → cli}/browser-api/board-live-cards-browser-adapter.js +0 -0
  335. /package/{dist/board-livegraph-runtime → cli/browser-api}/jsonata-sync.cjs +0 -0
  336. /package/{dist/cli → cli}/node/artifacts-store-cli.d.ts +0 -0
  337. /package/{dist/cli/node/source-cli-task-executor.d.cts → cli/node/batch-runner-cli.d.ts} +0 -0
  338. /package/{dist/cli → cli}/node/board-live-cards-cli.d.ts +0 -0
  339. /package/{dist/cli → cli}/node/card-store-cli.d.ts +0 -0
  340. /package/{dist/cli → cli}/node/card-store-cli.js +0 -0
  341. /package/{dist/card-compute → cli/node}/jsonata-sync.cjs +0 -0
  342. /package/{dist/cli → cli}/node/source-cli-task-executor.d.ts +0 -0
  343. /package/{dist/cli → cli}/node/source-cli-task-executor.js +0 -0
  344. /package/examples/{example-board → board}/cards/card-concentration.json +0 -0
  345. /package/examples/{example-board → board}/cards/card-my-identity.json +0 -0
  346. /package/examples/{example-board → board}/cards/card-portfolio-action.json +0 -0
  347. /package/examples/{example-board → board}/cards/card-portfolio-intelligence.json +0 -0
  348. /package/examples/{example-board → board}/cards/card-portfolio-risks.json +0 -0
  349. /package/examples/{example-board → board}/cards/card-rebalance-impact.json +0 -0
  350. /package/examples/{example-board → board}/cards/card-rebalance-sim.json +0 -0
  351. /package/examples/{example-board → board}/cards/cardT-market-prices.json +0 -0
  352. /package/examples/{example-board → board}/cards/cardT-portfolio-value.json +0 -0
  353. /package/examples/{example-board → board}/cards/cardT-portfolio.json +0 -0
  354. /package/examples/{example-board → board}/demo-chat-handler.js +0 -0
  355. /package/examples/{example-board → board}/scripts/copilot_wrapper.bat +0 -0
  356. /package/examples/{example-board → board}/scripts/copilot_wrapper_helper.ps1 +0 -0
  357. /package/examples/{example-board → board}/scripts/workiq_wrapper.mjs +0 -0
  358. /package/examples/{browser/boards/portfolio-tracker → board/test}/portfolio-tracker-sse-worker.js +0 -0
  359. /package/{dist → lib}/batch/index.cjs +0 -0
  360. /package/{dist → lib}/batch/index.d.cts +0 -0
  361. /package/{dist → lib}/batch/index.d.ts +0 -0
  362. /package/{dist → lib}/batch/index.js +0 -0
  363. /package/{dist/cli/browser-api → lib/board-livegraph-runtime}/jsonata-sync.cjs +0 -0
  364. /package/{dist → lib}/card-compute/index.d.cts +0 -0
  365. /package/{dist → lib}/card-compute/index.d.ts +0 -0
  366. /package/{dist/cli/node → lib/card-compute}/jsonata-sync.cjs +0 -0
  367. /package/{dist → lib}/config/index.cjs +0 -0
  368. /package/{dist → lib}/config/index.d.cts +0 -0
  369. /package/{dist → lib}/config/index.d.ts +0 -0
  370. /package/{dist → lib}/config/index.js +0 -0
  371. /package/{dist → lib}/continuous-event-graph/jsonata-sync.cjs +0 -0
  372. /package/{dist → lib}/event-graph/index.cjs +0 -0
  373. /package/{dist → lib}/event-graph/index.js +0 -0
  374. /package/{dist → lib}/execution-refs.cjs +0 -0
  375. /package/{dist → lib}/execution-refs.js +0 -0
  376. /package/{dist → lib}/jsonata-sync.cjs +0 -0
  377. /package/{dist → lib}/server-runtime/jsonata-sync.cjs +0 -0
  378. /package/{dist → lib}/step-machine/index.cjs +0 -0
  379. /package/{dist → lib}/step-machine/index.js +0 -0
  380. /package/{dist → lib}/step-machine-public/jsonata-sync.cjs +0 -0
  381. /package/{dist → lib}/stores/memory.cjs +0 -0
  382. /package/{dist → lib}/stores/memory.js +0 -0
  383. /package/{dist → lib}/types-BBhqYGhE.d.cts +0 -0
  384. /package/{dist → lib}/types-BBhqYGhE.d.ts +0 -0
  385. /package/{dist → lib}/validate-BAVzUJWa.d.ts +0 -0
  386. /package/{dist → lib}/validate-Dbu7ygys.d.cts +0 -0
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { execFileSync } from 'node:child_process';
6
+
7
+ function interpolate(template, args) {
8
+ return String(template).replace(/\{\{\s*([a-zA-Z0-9_.-]+)\s*\}\}/g, (_m, key) => {
9
+ const v = args?.[key];
10
+ if (v === undefined) return '';
11
+ return typeof v === 'string' ? v : JSON.stringify(v);
12
+ });
13
+ }
14
+
15
+ const DEFAULT_PROMPT_CONTEXT = {
16
+ view_kind_guidance: [
17
+ 'VIEW KIND GUIDANCE (for dynamic ref rendering):',
18
+ '- Return a _view object whenever your output data is meant for a ref element.',
19
+ '- Allowed _view.kind values only: table, editable-table, chart, metric, list, badge, text, narrative, markdown, form, filter, todo, alert.',
20
+ '- If uncertain, use "table".',
21
+ '- For array rows that users should edit, prefer "editable-table" and set _view.data.writeTo to a card_data path.',
22
+ '- For chart, set _view.data.chartType and _view.data.columns with [labelField, valueField].',
23
+ '- Keep _view.data minimal and valid JSON (no comments, no trailing text).',
24
+ ].join('\n'),
25
+ card_layout_guidance: [
26
+ 'CARD LAYOUT GUIDANCE:',
27
+ '- Prefer compact outputs that fit a card: one primary structure plus concise rationale text.',
28
+ '- Avoid repeating values already present in upstream inputs.',
29
+ '- If you produce both machine-readable and human-readable content, keep machine-readable fields top-level and concise prose in a separate field.',
30
+ ].join('\n'),
31
+ };
32
+
33
+ function resolvePrompt(sourceDef, promptContext) {
34
+ const cfg = sourceDef?.copilot && typeof sourceDef.copilot === 'object' ? sourceDef.copilot : {};
35
+ const template = cfg.prompt_template ?? sourceDef.prompt_template;
36
+ if (!template || typeof template !== 'string') return null;
37
+ const args = {
38
+ ...(promptContext || DEFAULT_PROMPT_CONTEXT),
39
+ ...(sourceDef?._projections || {}),
40
+ ...(cfg.args || sourceDef.args || {}),
41
+ };
42
+ return interpolate(template, args);
43
+ }
44
+
45
+ function runCopilot(prompt, sourceDef, executorDir, extra) {
46
+ const wrapperPath = path.join(executorDir, 'scripts', 'copilot_wrapper.bat');
47
+ if (process.platform === 'win32' && fs.existsSync(wrapperPath)) {
48
+ const tmpBase = path.join(process.env.TEMP || process.cwd(), `copilot-handler-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`);
49
+ const outFile = `${tmpBase}.out.json`;
50
+ const promptFile = `${tmpBase}.prompt.txt`;
51
+ const sessionDir = path.join(
52
+ extra?.boardSetupRoot || (process.env.TEMP || process.cwd()),
53
+ 'copilot-sessions',
54
+ String(sourceDef?.bindTo || 'default').replace(/[^a-zA-Z0-9_-]/g, '_'),
55
+ );
56
+ fs.mkdirSync(sessionDir, { recursive: true });
57
+ fs.writeFileSync(promptFile, prompt, 'utf-8');
58
+
59
+ let shapeFile = '';
60
+ const shape = sourceDef?.copilot?.result_shape ?? sourceDef?.result_shape;
61
+ if (shape && typeof shape === 'object') {
62
+ shapeFile = `${tmpBase}.shape.json`;
63
+ fs.writeFileSync(shapeFile, JSON.stringify(shape), 'utf-8');
64
+ }
65
+
66
+ try {
67
+ execFileSync('cmd.exe', [
68
+ '/d', '/c',
69
+ wrapperPath,
70
+ outFile,
71
+ sessionDir,
72
+ extra?.boardSetupRoot || process.cwd(),
73
+ `@${promptFile}`,
74
+ 'json',
75
+ String(sourceDef?.bindTo || 'executor'),
76
+ '',
77
+ shapeFile,
78
+ ], {
79
+ encoding: 'utf-8',
80
+ stdio: ['ignore', 'pipe', 'pipe'],
81
+ windowsHide: true,
82
+ maxBuffer: 10 * 1024 * 1024,
83
+ });
84
+ return JSON.parse(fs.readFileSync(outFile, 'utf-8').replace(/^\uFEFF/, ''));
85
+ } finally {
86
+ try { fs.unlinkSync(promptFile); } catch {}
87
+ try { fs.unlinkSync(outFile); } catch {}
88
+ if (shapeFile) { try { fs.unlinkSync(shapeFile); } catch {} }
89
+ }
90
+ }
91
+
92
+ const stdout = execFileSync('copilot', ['--allow-all'], {
93
+ input: prompt,
94
+ encoding: 'utf-8',
95
+ stdio: ['pipe', 'pipe', 'pipe'],
96
+ timeout: 120000,
97
+ cwd: extra?.boardSetupRoot || process.cwd(),
98
+ windowsHide: true,
99
+ maxBuffer: 10 * 1024 * 1024,
100
+ });
101
+
102
+ const firstBrace = stdout.indexOf('{');
103
+ const firstBracket = stdout.indexOf('[');
104
+ let jsonStart = -1;
105
+ if (firstBrace === -1) jsonStart = firstBracket;
106
+ else if (firstBracket === -1) jsonStart = firstBrace;
107
+ else jsonStart = Math.min(firstBrace, firstBracket);
108
+
109
+ if (jsonStart !== -1) {
110
+ try {
111
+ return JSON.parse(stdout.slice(jsonStart));
112
+ } catch {
113
+ return stdout;
114
+ }
115
+ }
116
+ return stdout;
117
+ }
118
+
119
+ export async function execute(context) {
120
+ const sourceDef = context?.sourceDef || {};
121
+ const extra = context?.extra || {};
122
+ const executorDir = context?.executorDir || process.cwd();
123
+ const promptContext = context?.promptContext || DEFAULT_PROMPT_CONTEXT;
124
+
125
+ const prompt = resolvePrompt(sourceDef, promptContext);
126
+ if (!prompt) {
127
+ return {
128
+ result: 'failure',
129
+ data: { error: 'Source definition missing copilot.prompt_template (or prompt_template)' },
130
+ error: 'missing prompt_template',
131
+ };
132
+ }
133
+
134
+ try {
135
+ const resultValue = runCopilot(prompt, sourceDef, executorDir, extra);
136
+ return { result: 'success', data: { resultValue } };
137
+ } catch (err) {
138
+ const msg = String(err?.message || err);
139
+ return { result: 'failure', data: { error: `copilot invocation failed: ${msg}` }, error: msg };
140
+ }
141
+ }
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import os from 'node:os';
6
+ import crypto from 'node:crypto';
7
+
8
+ const CACHE_DIR = path.join(os.tmpdir(), 'demo-executor-cache');
9
+ const DEFAULT_CACHE_TTL_MS = 60 * 60 * 1000;
10
+
11
+ function interpolate(template, args) {
12
+ return String(template).replace(/\{\{\s*([a-zA-Z0-9_.-]+)\s*\}\}/g, (_m, key) => {
13
+ const v = args?.[key];
14
+ if (v === undefined) return '';
15
+ return typeof v === 'string' ? v : JSON.stringify(v);
16
+ });
17
+ }
18
+
19
+ function cacheKey(seed) {
20
+ return crypto.createHash('sha1').update(seed).digest('hex');
21
+ }
22
+
23
+ function readCache(key, ttlMs) {
24
+ const p = path.join(CACHE_DIR, `${key}.json`);
25
+ try {
26
+ const stat = fs.statSync(p);
27
+ const ageMs = Date.now() - stat.mtimeMs;
28
+ if (ageMs > ttlMs) return null;
29
+ return JSON.parse(fs.readFileSync(p, 'utf-8'));
30
+ } catch {
31
+ return null;
32
+ }
33
+ }
34
+
35
+ function writeCache(key, value) {
36
+ fs.mkdirSync(CACHE_DIR, { recursive: true });
37
+ fs.writeFileSync(path.join(CACHE_DIR, `${key}.json`), JSON.stringify(value));
38
+ }
39
+
40
+ async function fetchJson(url, method, headers) {
41
+ const response = await fetch(url, { method, headers });
42
+ const text = await response.text();
43
+ let parsed;
44
+ try {
45
+ parsed = text ? JSON.parse(text) : {};
46
+ } catch {
47
+ throw new Error(`Invalid JSON from ${url}`);
48
+ }
49
+ if (!response.ok) {
50
+ const msg = typeof parsed?.error === 'string' ? parsed.error : `HTTP ${response.status}`;
51
+ throw new Error(msg);
52
+ }
53
+ return parsed;
54
+ }
55
+
56
+ async function doFetchApi(url, method, headers, ttlMs) {
57
+ const key = cacheKey(`url:${method}:${url}`);
58
+ const cached = readCache(key, ttlMs);
59
+ if (cached !== null) {
60
+ console.error(`[http-source-handler] cache hit for ${url}`);
61
+ return cached;
62
+ }
63
+ const data = await fetchJson(url, method, headers);
64
+ writeCache(key, data);
65
+ return data;
66
+ }
67
+
68
+ function resolveTickersArg(sourceDef, fetchArgs) {
69
+ const tickersFrom = sourceDef?.tickersFrom;
70
+ if (typeof tickersFrom !== 'string' || !tickersFrom.includes('.')) return;
71
+ const [refKey, fieldName] = tickersFrom.split('.', 2);
72
+ const arr = sourceDef?._projections?.[refKey];
73
+ if (!Array.isArray(arr)) return;
74
+ const vals = arr
75
+ .filter((row) => row && typeof row === 'object' && row[fieldName])
76
+ .map((row) => String(row[fieldName]));
77
+ if (vals.length > 0) fetchArgs.tickers = vals.join(',');
78
+ }
79
+
80
+ async function executeUrl(sourceDef) {
81
+ const cfg = sourceDef?.url;
82
+ if (!cfg || typeof cfg !== 'object') {
83
+ throw new Error('url source requires object config');
84
+ }
85
+ const method = String(cfg.method || 'GET').toUpperCase();
86
+ const headers = cfg.headers && typeof cfg.headers === 'object' ? cfg.headers : {};
87
+ const ttlMs = typeof cfg.cacheTimeout === 'number' ? cfg.cacheTimeout * 1000 : DEFAULT_CACHE_TTL_MS;
88
+ const fetchArgs = cfg.args && typeof cfg.args === 'object' ? { ...cfg.args } : {};
89
+
90
+ resolveTickersArg(sourceDef, fetchArgs);
91
+ if (sourceDef?.tickersFrom && !fetchArgs.tickers) {
92
+ throw new Error('url: tickersFrom resolved to empty list - skipping fetch');
93
+ }
94
+
95
+ const ctx = {
96
+ ...(sourceDef?._projections || {}),
97
+ ...fetchArgs,
98
+ };
99
+
100
+ if (typeof cfg.url !== 'string' || !cfg.url) {
101
+ throw new Error('url source missing url template');
102
+ }
103
+ const url = interpolate(cfg.url, ctx);
104
+ return doFetchApi(url, method, headers, ttlMs);
105
+ }
106
+
107
+ async function executeUrlList(sourceDef) {
108
+ const cfg = sourceDef?.['url-list'];
109
+ if (!cfg || typeof cfg !== 'object') {
110
+ throw new Error('url-list source requires object config');
111
+ }
112
+ const method = String(cfg.method || 'GET').toUpperCase();
113
+ const headers = cfg.headers && typeof cfg.headers === 'object' ? cfg.headers : {};
114
+ const ttlMs = typeof cfg.cacheTimeout === 'number' ? cfg.cacheTimeout * 1000 : DEFAULT_CACHE_TTL_MS;
115
+
116
+ const urlList = sourceDef?._projections?.url_list;
117
+ if (!Array.isArray(urlList) || urlList.length === 0) {
118
+ throw new Error('url-list source requires _projections.url_list as non-empty array');
119
+ }
120
+
121
+ const results = [];
122
+ for (const u of urlList) {
123
+ results.push(await doFetchApi(String(u), method, headers, ttlMs));
124
+ }
125
+ return results;
126
+ }
127
+
128
+ export async function execute(context) {
129
+ const kind = context?.kind;
130
+ const sourceDef = context?.sourceDef || {};
131
+ try {
132
+ let resultValue;
133
+ if (kind === 'url') {
134
+ resultValue = await executeUrl(sourceDef);
135
+ } else if (kind === 'url-list') {
136
+ resultValue = await executeUrlList(sourceDef);
137
+ } else {
138
+ throw new Error(`http-source-handler does not support kind: ${kind}`);
139
+ }
140
+ return { result: 'success', data: { resultValue } };
141
+ } catch (err) {
142
+ const msg = String(err?.message || err);
143
+ return { result: 'failure', data: { error: msg }, error: msg };
144
+ }
145
+ }
@@ -0,0 +1,249 @@
1
+ {
2
+ "version": "1.0",
3
+ "description": "Self-contained source-def registry for demo-task-executor runtimes.",
4
+ "executor": "demo-task-executor",
5
+ "subcommands": [
6
+ "run-source-fetch",
7
+ "describe-capabilities",
8
+ "validate-source-def",
9
+ "validate-card-preflight",
10
+ "probe-source-preflight"
11
+ ],
12
+ "extraSchema": {
13
+ "description": "Board topology context passed via --extra (base64-encoded JSON, baked at init).",
14
+ "properties": {
15
+ "boardSetupRoot": {
16
+ "type": "string",
17
+ "description": "Absolute path to board root."
18
+ },
19
+ "boardId": {
20
+ "type": "string",
21
+ "description": "Board identifier."
22
+ },
23
+ "boardRuntimeDir": {
24
+ "type": "string",
25
+ "description": "Relative path to runtime dir."
26
+ },
27
+ "runtimeStatusDir": {
28
+ "type": "string",
29
+ "description": "Relative path to runtime-out dir."
30
+ },
31
+ "cardsDir": {
32
+ "type": "string",
33
+ "description": "Relative path to cards dir."
34
+ },
35
+ "serverUrl": {
36
+ "type": "string",
37
+ "description": "Base URL of the hosting server (e.g. http://127.0.0.1:7799). Used by source kinds that call server-side proxy endpoints."
38
+ },
39
+ "boardLiveCardsCliJs": {
40
+ "type": "string",
41
+ "description": "Absolute path to board-live-cards-cli.js when configured by the runtime."
42
+ },
43
+ "stepMachineCliPath": {
44
+ "type": "string",
45
+ "description": "Absolute path to step-machine-cli.js when configured by the runtime."
46
+ }
47
+ }
48
+ },
49
+ "kinds": {
50
+ "url": {
51
+ "detect": {
52
+ "field": "url"
53
+ },
54
+ "flow": "./source-def-flows/url.flow.json",
55
+ "validate": [
56
+ {
57
+ "field": "url",
58
+ "type": "object",
59
+ "message": "url must be an object."
60
+ },
61
+ {
62
+ "field": "url.url",
63
+ "type": "string",
64
+ "message": "url.url is required and must be a string."
65
+ }
66
+ ],
67
+ "probe": {
68
+ "strategy": "http-head",
69
+ "urlFrom": "url.url"
70
+ },
71
+ "manifest": {
72
+ "description": "Single URL fetch via curl with interpolation and cache.",
73
+ "inputSchema": {
74
+ "url": {
75
+ "type": "object",
76
+ "required": true,
77
+ "properties": {
78
+ "url": {
79
+ "type": "string",
80
+ "required": true
81
+ },
82
+ "method": {
83
+ "type": "string",
84
+ "required": false
85
+ },
86
+ "headers": {
87
+ "type": "object",
88
+ "required": false
89
+ },
90
+ "args": {
91
+ "type": "object",
92
+ "required": false
93
+ },
94
+ "cacheTimeout": {
95
+ "type": "number",
96
+ "required": false
97
+ }
98
+ }
99
+ },
100
+ "tickersFrom": {
101
+ "type": "string",
102
+ "required": false
103
+ }
104
+ }
105
+ }
106
+ },
107
+ "url-list": {
108
+ "detect": {
109
+ "field": "url-list"
110
+ },
111
+ "flow": "./source-def-flows/url-list.flow.json",
112
+ "validate": [
113
+ {
114
+ "field": "url-list",
115
+ "type": "object",
116
+ "message": "url-list must be an object."
117
+ }
118
+ ],
119
+ "probe": {
120
+ "strategy": "http-head",
121
+ "urlFrom": "_projections.url_list[0]"
122
+ },
123
+ "manifest": {
124
+ "description": "Fan-out URL fetch over _projections.url_list.",
125
+ "inputSchema": {
126
+ "url-list": {
127
+ "type": "object",
128
+ "required": true,
129
+ "properties": {
130
+ "method": {
131
+ "type": "string",
132
+ "required": false
133
+ },
134
+ "headers": {
135
+ "type": "object",
136
+ "required": false
137
+ },
138
+ "cacheTimeout": {
139
+ "type": "number",
140
+ "required": false
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ },
147
+ "copilot": {
148
+ "detect": {
149
+ "anyOfFields": [
150
+ "copilot",
151
+ "prompt_template"
152
+ ]
153
+ },
154
+ "flow": "./source-def-flows/copilot.flow.json",
155
+ "validate": [
156
+ {
157
+ "condition": "copilot-or-prompt",
158
+ "message": "copilot must be an object, or prompt_template must be a top-level string."
159
+ }
160
+ ],
161
+ "probe": {
162
+ "strategy": "command-check",
163
+ "command": "copilot",
164
+ "args": [
165
+ "--version"
166
+ ]
167
+ },
168
+ "manifest": {
169
+ "description": "Invoke Copilot with prompt interpolation.",
170
+ "inputSchema": {
171
+ "copilot": {
172
+ "type": "object",
173
+ "required": false
174
+ },
175
+ "prompt_template": {
176
+ "type": "string",
177
+ "required": false
178
+ }
179
+ }
180
+ }
181
+ },
182
+ "workiq": {
183
+ "detect": {
184
+ "field": "workiq"
185
+ },
186
+ "flow": "./source-def-flows/workiq.flow.json",
187
+ "validate": [
188
+ {
189
+ "field": "workiq",
190
+ "type": "object",
191
+ "message": "workiq must be an object."
192
+ },
193
+ {
194
+ "field": "workiq.query_template",
195
+ "type": "string",
196
+ "message": "workiq.query_template is required and must be a string."
197
+ }
198
+ ],
199
+ "probe": {
200
+ "strategy": "command-check",
201
+ "command": "workiq",
202
+ "args": [
203
+ "--version"
204
+ ]
205
+ },
206
+ "manifest": {
207
+ "description": "Invoke WorkIQ via demo-server HTTP proxy endpoint.",
208
+ "inputSchema": {
209
+ "workiq": {
210
+ "type": "object",
211
+ "required": true
212
+ }
213
+ }
214
+ }
215
+ },
216
+ "mock": {
217
+ "detect": {
218
+ "field": "mock"
219
+ },
220
+ "flow": "./source-def-flows/mock.flow.json",
221
+ "validate": [
222
+ {
223
+ "field": "mock",
224
+ "type": "string",
225
+ "message": "mock must be a string key."
226
+ }
227
+ ],
228
+ "probe": {
229
+ "strategy": "mock-db-lookup"
230
+ },
231
+ "manifest": {
232
+ "description": "Look up values from demo MOCK_DB map.",
233
+ "inputSchema": {
234
+ "mock": {
235
+ "type": "string",
236
+ "required": true
237
+ }
238
+ }
239
+ }
240
+ }
241
+ },
242
+ "resolveOrder": [
243
+ "url",
244
+ "url-list",
245
+ "copilot",
246
+ "workiq",
247
+ "mock"
248
+ ]
249
+ }