yaml-flow 5.4.2 → 7.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 (252) hide show
  1. package/board-live-cards-cli.js +6 -6
  2. package/browser/asset-integrity.json +10 -0
  3. package/browser/board-livecards-client.js +2 -0
  4. package/browser/board-livecards-client.js.map +1 -0
  5. package/browser/board-livecards-localstorage.js +10 -0
  6. package/browser/board-livecards-localstorage.js.map +1 -0
  7. package/browser/board-livegraph-engine.js +2 -1676
  8. package/browser/board-livegraph-engine.js.map +1 -1
  9. package/browser/card-compute.js +28 -28
  10. package/browser/compute-jsonata.js +5 -0
  11. package/browser/compute-jsonata.js.map +1 -0
  12. package/browser/live-cards.js +561 -129
  13. package/browser/live-cards.schema.json +418 -132
  14. package/card-store.js +37 -0
  15. package/dist/batch/index.cjs +1 -108
  16. package/dist/batch/index.cjs.map +1 -1
  17. package/dist/batch/index.js +1 -106
  18. package/dist/batch/index.js.map +1 -1
  19. package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +136 -0
  20. package/dist/board-live-cards-lib-jM2uYG1v.d.ts +136 -0
  21. package/dist/board-live-cards-public-CW5074xr.d.cts +318 -0
  22. package/dist/board-live-cards-public-hnZo0mAf.d.ts +318 -0
  23. package/dist/board-livegraph-runtime/index.cjs +2 -1671
  24. package/dist/board-livegraph-runtime/index.cjs.map +1 -1
  25. package/dist/board-livegraph-runtime/index.d.cts +12 -11
  26. package/dist/board-livegraph-runtime/index.d.ts +12 -11
  27. package/dist/board-livegraph-runtime/index.js +2 -1662
  28. package/dist/board-livegraph-runtime/index.js.map +1 -1
  29. package/dist/board-livegraph-runtime/jsonata-sync.cjs +7623 -0
  30. package/dist/card-compute/index.cjs +9 -7159
  31. package/dist/card-compute/index.cjs.map +1 -1
  32. package/dist/card-compute/index.d.cts +27 -1
  33. package/dist/card-compute/index.d.ts +27 -1
  34. package/dist/card-compute/index.js +9 -7145
  35. package/dist/card-compute/index.js.map +1 -1
  36. package/dist/card-compute/jsonata-sync.cjs +7623 -0
  37. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +3 -0
  38. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +1 -0
  39. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +37 -0
  40. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.ts +37 -0
  41. package/dist/cli/browser-api/board-live-cards-browser-adapter.js +3 -0
  42. package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +1 -0
  43. package/dist/cli/browser-api/card-store-browser-api.cjs +2 -0
  44. package/dist/cli/browser-api/card-store-browser-api.cjs.map +1 -0
  45. package/dist/cli/browser-api/card-store-browser-api.d.cts +26 -0
  46. package/dist/cli/browser-api/card-store-browser-api.d.ts +26 -0
  47. package/dist/cli/browser-api/card-store-browser-api.js +2 -0
  48. package/dist/cli/browser-api/card-store-browser-api.js.map +1 -0
  49. package/dist/cli/browser-api/jsonata-sync.cjs +7623 -0
  50. package/dist/cli/node/artifacts-store-cli.cjs +11 -0
  51. package/dist/cli/node/artifacts-store-cli.cjs.map +1 -0
  52. package/dist/cli/node/artifacts-store-cli.d.cts +8 -0
  53. package/dist/cli/node/artifacts-store-cli.d.ts +8 -0
  54. package/dist/cli/node/artifacts-store-cli.js +11 -0
  55. package/dist/cli/node/artifacts-store-cli.js.map +1 -0
  56. package/dist/cli/node/board-live-cards-cli.cjs +15 -0
  57. package/dist/cli/node/board-live-cards-cli.cjs.map +1 -0
  58. package/dist/cli/node/board-live-cards-cli.d.cts +20 -0
  59. package/dist/cli/node/board-live-cards-cli.d.ts +20 -0
  60. package/dist/cli/node/board-live-cards-cli.js +15 -0
  61. package/dist/cli/node/board-live-cards-cli.js.map +1 -0
  62. package/dist/cli/node/card-store-cli.cjs +8 -0
  63. package/dist/cli/node/card-store-cli.cjs.map +1 -0
  64. package/dist/cli/node/card-store-cli.d.cts +15 -0
  65. package/dist/cli/node/card-store-cli.d.ts +15 -0
  66. package/dist/cli/node/card-store-cli.js +8 -0
  67. package/dist/cli/node/card-store-cli.js.map +1 -0
  68. package/dist/cli/node/execution-adapter.cjs +3 -0
  69. package/dist/cli/node/execution-adapter.cjs.map +1 -0
  70. package/dist/cli/node/execution-adapter.d.cts +174 -0
  71. package/dist/cli/node/execution-adapter.d.ts +174 -0
  72. package/dist/cli/node/execution-adapter.js +3 -0
  73. package/dist/cli/node/execution-adapter.js.map +1 -0
  74. package/dist/cli/node/fs-board-adapter.cjs +14 -0
  75. package/dist/cli/node/fs-board-adapter.cjs.map +1 -0
  76. package/dist/cli/node/fs-board-adapter.d.cts +204 -0
  77. package/dist/cli/node/fs-board-adapter.d.ts +204 -0
  78. package/dist/cli/node/fs-board-adapter.js +14 -0
  79. package/dist/cli/node/fs-board-adapter.js.map +1 -0
  80. package/dist/cli/node/jsonata-sync.cjs +7623 -0
  81. package/dist/cli/node/source-cli-task-executor.cjs +11 -0
  82. package/dist/cli/node/source-cli-task-executor.cjs.map +1 -0
  83. package/dist/cli/node/source-cli-task-executor.d.cts +1 -0
  84. package/dist/cli/node/source-cli-task-executor.d.ts +1 -0
  85. package/dist/cli/node/source-cli-task-executor.js +11 -0
  86. package/dist/cli/node/source-cli-task-executor.js.map +1 -0
  87. package/dist/config/index.cjs +1 -79
  88. package/dist/config/index.cjs.map +1 -1
  89. package/dist/config/index.js +1 -76
  90. package/dist/config/index.js.map +1 -1
  91. package/dist/continuous-event-graph/index.cjs +2 -2129
  92. package/dist/continuous-event-graph/index.cjs.map +1 -1
  93. package/dist/continuous-event-graph/index.d.cts +81 -5
  94. package/dist/continuous-event-graph/index.d.ts +81 -5
  95. package/dist/continuous-event-graph/index.js +2 -2088
  96. package/dist/continuous-event-graph/index.js.map +1 -1
  97. package/dist/continuous-event-graph/jsonata-sync.cjs +7623 -0
  98. package/dist/event-graph/index.cjs +22 -8292
  99. package/dist/event-graph/index.cjs.map +1 -1
  100. package/dist/event-graph/index.js +22 -8237
  101. package/dist/event-graph/index.js.map +1 -1
  102. package/dist/execution-refs.cjs +3 -0
  103. package/dist/execution-refs.cjs.map +1 -0
  104. package/dist/execution-refs.d.cts +260 -0
  105. package/dist/execution-refs.d.ts +260 -0
  106. package/dist/execution-refs.js +3 -0
  107. package/dist/execution-refs.js.map +1 -0
  108. package/dist/index.cjs +29 -13221
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.d.cts +2 -4
  111. package/dist/index.d.ts +2 -4
  112. package/dist/index.js +29 -13112
  113. package/dist/index.js.map +1 -1
  114. package/dist/inference/index.cjs +5 -617
  115. package/dist/inference/index.cjs.map +1 -1
  116. package/dist/inference/index.js +5 -610
  117. package/dist/inference/index.js.map +1 -1
  118. package/dist/jsonata-sync.cjs +7623 -0
  119. package/dist/{live-cards-bridge-x5XREkXm.d.cts → live-cards-bridge-BXbVTsna.d.cts} +27 -4
  120. package/dist/{live-cards-bridge-EQjytzI_.d.ts → live-cards-bridge-Ds28XR15.d.ts} +27 -4
  121. package/dist/server-runtime/index.cjs +9 -0
  122. package/dist/server-runtime/index.cjs.map +1 -0
  123. package/dist/server-runtime/index.d.cts +31 -0
  124. package/dist/server-runtime/index.d.ts +31 -0
  125. package/dist/server-runtime/index.js +9 -0
  126. package/dist/server-runtime/index.js.map +1 -0
  127. package/dist/server-runtime/jsonata-sync.cjs +7623 -0
  128. package/dist/step-machine/index.cjs +11 -7129
  129. package/dist/step-machine/index.cjs.map +1 -1
  130. package/dist/step-machine/index.js +11 -7113
  131. package/dist/step-machine/index.js.map +1 -1
  132. package/dist/step-machine-public/index.cjs +2 -0
  133. package/dist/step-machine-public/index.cjs.map +1 -0
  134. package/dist/step-machine-public/index.d.cts +159 -0
  135. package/dist/step-machine-public/index.d.ts +159 -0
  136. package/dist/step-machine-public/index.js +2 -0
  137. package/dist/step-machine-public/index.js.map +1 -0
  138. package/dist/step-machine-public/jsonata-sync.cjs +7623 -0
  139. package/dist/storage-refs.cjs +10 -0
  140. package/dist/storage-refs.cjs.map +1 -0
  141. package/dist/storage-refs.d.cts +93 -0
  142. package/dist/storage-refs.d.ts +93 -0
  143. package/dist/storage-refs.js +10 -0
  144. package/dist/storage-refs.js.map +1 -0
  145. package/dist/stores/file.cjs +1 -114
  146. package/dist/stores/file.cjs.map +1 -1
  147. package/dist/stores/file.js +1 -112
  148. package/dist/stores/file.js.map +1 -1
  149. package/dist/stores/index.cjs +1 -231
  150. package/dist/stores/index.cjs.map +1 -1
  151. package/dist/stores/index.js +1 -227
  152. package/dist/stores/index.js.map +1 -1
  153. package/dist/stores/localStorage.cjs +1 -76
  154. package/dist/stores/localStorage.cjs.map +1 -1
  155. package/dist/stores/localStorage.js +1 -74
  156. package/dist/stores/localStorage.js.map +1 -1
  157. package/dist/stores/memory.cjs +1 -47
  158. package/dist/stores/memory.cjs.map +1 -1
  159. package/dist/stores/memory.js +1 -45
  160. package/dist/stores/memory.js.map +1 -1
  161. package/dist/types-B1ZRa4aI.d.ts +147 -0
  162. package/dist/types-BxEFcVK9.d.cts +147 -0
  163. package/examples/browser/boards/portfolio-tracker/portfolio-t4.js +291 -0
  164. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.js +218 -0
  165. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +201 -0
  166. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.js +357 -0
  167. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +25 -16
  168. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-public.js +552 -0
  169. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +300 -0
  170. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +617 -0
  171. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-sse-worker.js +48 -0
  172. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +366 -0
  173. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +1 -0
  174. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +32 -0
  175. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +70 -3
  176. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +16 -11
  177. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +9 -8
  178. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +49 -0
  179. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +2 -6
  180. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +4 -8
  181. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +3 -7
  182. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +9 -8
  183. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +12 -17
  184. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +2 -6
  185. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +107 -0
  186. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +51 -0
  187. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +45 -0
  188. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +71 -0
  189. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +36 -0
  190. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +26 -0
  191. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +39 -0
  192. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +80 -0
  193. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +36 -187
  194. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +40 -34
  195. package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +43 -0
  196. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +77 -0
  197. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
  198. package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +8 -13
  199. package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +33 -9
  200. package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +3 -1
  201. package/examples/cli/step-machine-demo/step2-double-cli.js +6 -12
  202. package/examples/cli/step-machine-demo/two-step-math.flow.yaml +66 -4
  203. package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +13 -5
  204. package/examples/example-board/agent-instructions.md +11 -5
  205. package/examples/example-board/cards/_index.json +47 -0
  206. package/examples/example-board/cards/card-market-prices.json +33 -9
  207. package/examples/example-board/cards/card-my-identity.json +30 -6
  208. package/examples/example-board/cards/card-portfolio-action.json +24 -6
  209. package/examples/example-board/cards/card-portfolio-intelligence.json +97 -0
  210. package/examples/example-board/cards/card-portfolio-risks.json +24 -6
  211. package/examples/example-board/cards/card-portfolio-value.json +38 -10
  212. package/examples/example-board/cards/card-portfolio.json +57 -13
  213. package/examples/example-board/cards/card-rebalance-impact.json +22 -6
  214. package/examples/example-board/cards/card-rebalance-sim.json +66 -15
  215. package/examples/example-board/demo-chat-handler.js +14 -4
  216. package/examples/example-board/demo-server-config.json +1 -0
  217. package/examples/example-board/demo-server.js +366 -68
  218. package/examples/example-board/demo-shell-localstorage.html +774 -0
  219. package/examples/example-board/demo-shell-with-server.html +20 -37
  220. package/examples/example-board/demo-shell.html +5 -4
  221. package/examples/example-board/demo-task-executor.js +273 -275
  222. package/examples/index.html +0 -14
  223. package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -1
  224. package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
  225. package/package.json +46 -8
  226. package/schema/live-cards.schema.json +418 -132
  227. package/step-machine-cli.js +43 -310
  228. package/board-livecards-server-runtime.js +0 -1574
  229. package/browser/board-livecards-runtime-client.js +0 -263
  230. package/dist/cli/board-live-cards-cli.cjs +0 -10650
  231. package/dist/cli/board-live-cards-cli.cjs.map +0 -1
  232. package/dist/cli/board-live-cards-cli.d.cts +0 -179
  233. package/dist/cli/board-live-cards-cli.d.ts +0 -179
  234. package/dist/cli/board-live-cards-cli.js +0 -10598
  235. package/dist/cli/board-live-cards-cli.js.map +0 -1
  236. package/dist/journal-9HEgs7dU.d.ts +0 -28
  237. package/dist/journal-B-JCfQnh.d.cts +0 -28
  238. package/dist/schedule-Cszq9LYY.d.ts +0 -21
  239. package/dist/schedule-qWNL0RQh.d.cts +0 -21
  240. package/examples/browser/boards/portfolio-tracker/cards/holdings-table.json +0 -22
  241. package/examples/browser/boards/portfolio-tracker/cards/portfolio-form.json +0 -16
  242. package/examples/browser/boards/portfolio-tracker/cards/portfolio-risk-assessment.json +0 -28
  243. package/examples/browser/boards/portfolio-tracker/cards/portfolio-value.json +0 -15
  244. package/examples/browser/boards/portfolio-tracker/cards/price-fetch.json +0 -15
  245. package/examples/browser/boards/portfolio-tracker/cards/rebalancing-strategy.json +0 -28
  246. package/examples/browser/boards/portfolio-tracker/fetch-prices.js +0 -43
  247. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
  248. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.bat +0 -7
  249. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +0 -351
  250. package/examples/cli/step-machine-demo/two-step-math-handlers.js +0 -32
  251. package/examples/cli/step-machine-demo/two-step-mixed-handlers.js +0 -24
  252. package/examples/example-board/demo-shell-browser.html +0 -674
@@ -2,11 +2,16 @@
2
2
  "id": "card-portfolio",
3
3
  "meta": {
4
4
  "title": "My Portfolio",
5
- "tags": ["portfolio"],
5
+ "tags": [
6
+ "portfolio"
7
+ ],
6
8
  "desc": "Manage your stock holdings — edit tickers and quantities inline, add or delete rows. Changes propagate downstream immediately."
7
9
  },
8
10
  "provides": [
9
- { "bindTo": "holdings", "ref": "card_data.holdings" }
11
+ {
12
+ "bindTo": "holdings",
13
+ "ref": "card_data.holdings"
14
+ }
10
15
  ],
11
16
  "compute": [],
12
17
  "view": {
@@ -17,28 +22,67 @@
17
22
  "data": {
18
23
  "bind": "card_data.holdings",
19
24
  "writeTo": "card_data.holdings",
20
- "columns": ["ticker", "quantity", "cost_basis"],
25
+ "columns": [
26
+ "ticker",
27
+ "quantity",
28
+ "cost_basis"
29
+ ],
21
30
  "schema": {
22
31
  "properties": {
23
- "quantity": { "type": "number" },
24
- "cost_basis": { "type": "number" }
32
+ "quantity": {
33
+ "type": "number"
34
+ },
35
+ "cost_basis": {
36
+ "type": "number"
37
+ }
25
38
  }
26
39
  }
27
40
  }
28
41
  }
29
42
  ],
30
43
  "layout": {
31
- "board": { "col": 4, "order": 1 },
32
- "canvas": { "x": 50, "y": 50, "w": 320, "h": 340 }
44
+ "board": {
45
+ "col": 4,
46
+ "order": 1
47
+ },
48
+ "canvas": {
49
+ "x": 50,
50
+ "y": 50,
51
+ "w": 320,
52
+ "h": 340
53
+ }
33
54
  },
34
- "features": { "chat": true }
55
+ "features": {
56
+ "chat": true
57
+ }
35
58
  },
36
59
  "card_data": {
37
60
  "holdings": [
38
- { "ticker": "AAPL", "quantity": 10, "cost_basis": 150.00 },
39
- { "ticker": "MSFT", "quantity": 5, "cost_basis": 310.00 },
40
- { "ticker": "GOOGL", "quantity": 2, "cost_basis": 280.00 },
41
- { "ticker": "TSLA", "quantity": 3, "cost_basis": 200.00 }
61
+ {
62
+ "ticker": "AAPL",
63
+ "quantity": 10,
64
+ "cost_basis": 150
65
+ },
66
+ {
67
+ "ticker": "MSFT",
68
+ "quantity": 5,
69
+ "cost_basis": 310
70
+ },
71
+ {
72
+ "ticker": "GOOGL",
73
+ "quantity": 2,
74
+ "cost_basis": 280
75
+ },
76
+ {
77
+ "ticker": "TSLA",
78
+ "quantity": 3,
79
+ "cost_basis": 200
80
+ },
81
+ {
82
+ "ticker": "NVDA",
83
+ "quantity": 5,
84
+ "cost_basis": 310
85
+ }
42
86
  ]
43
87
  }
44
- }
88
+ }
@@ -2,11 +2,17 @@
2
2
  "id": "card-rebalance-impact",
3
3
  "meta": {
4
4
  "title": "Rebalance Impact",
5
- "tags": ["portfolio", "simulation"],
5
+ "tags": [
6
+ "portfolio",
7
+ "simulation"
8
+ ],
6
9
  "simulation": true,
7
10
  "desc": "Before/after impact summary of the proposed rebalance scenario."
8
11
  },
9
- "requires": ["positions", "proposed_trades"],
12
+ "requires": [
13
+ "positions",
14
+ "proposed_trades"
15
+ ],
10
16
  "compute": [
11
17
  {
12
18
  "bindTo": "total_current_value",
@@ -53,13 +59,23 @@
53
59
  "elements": [
54
60
  {
55
61
  "kind": "markdown",
56
- "data": { "bind": "computed_values.summary_md" }
62
+ "data": {
63
+ "bind": "computed_values.summary_md"
64
+ }
57
65
  }
58
66
  ],
59
67
  "layout": {
60
- "board": { "col": 6, "order": 8 },
61
- "canvas": { "x": 1360, "y": 480, "w": 400, "h": 280 }
68
+ "board": {
69
+ "col": 6,
70
+ "order": 8
71
+ },
72
+ "canvas": {
73
+ "x": 1360,
74
+ "y": 480,
75
+ "w": 400,
76
+ "h": 280
77
+ }
62
78
  }
63
79
  },
64
80
  "card_data": {}
65
- }
81
+ }
@@ -2,11 +2,20 @@
2
2
  "id": "card-rebalance-sim",
3
3
  "meta": {
4
4
  "title": "Rebalance Proposal",
5
- "tags": ["portfolio", "simulation"],
5
+ "tags": [
6
+ "portfolio",
7
+ "simulation"
8
+ ],
6
9
  "simulation": true,
7
10
  "desc": "AI-proposed rebalance trades based on portfolio intelligence. Edit quantities before pinning."
8
11
  },
9
- "requires": ["holdings", "portfolio_mix", "portfolio_risks", "portfolio_action", "positions"],
12
+ "requires": [
13
+ "holdings",
14
+ "portfolio_mix",
15
+ "portfolio_risks",
16
+ "portfolio_action",
17
+ "positions"
18
+ ],
10
19
  "source_defs": [
11
20
  {
12
21
  "bindTo": "rebalance",
@@ -24,7 +33,20 @@
24
33
  }
25
34
  ],
26
35
  "provides": [
27
- { "bindTo": "proposed_trades", "ref": "fetched_sources.rebalance.proposed_trades" }
36
+ {
37
+ "bindTo": "proposed_trades",
38
+ "ref": "fetched_sources.rebalance.proposed_trades"
39
+ }
40
+ ],
41
+ "compute": [
42
+ {
43
+ "bindTo": "proposed_trades",
44
+ "expr": "fetched_sources.rebalance.proposed_trades"
45
+ },
46
+ {
47
+ "bindTo": "_view",
48
+ "expr": "fetched_sources.rebalance._view"
49
+ }
28
50
  ],
29
51
  "view": {
30
52
  "elements": [
@@ -32,18 +54,37 @@
32
54
  "kind": "ref",
33
55
  "label": "Proposed Trades",
34
56
  "data": {
35
- "bind": "fetched_sources.rebalance.proposed_trades",
36
- "viewBind": "fetched_sources.rebalance._view",
57
+ "bind": "computed_values.proposed_trades",
58
+ "viewBind": "computed_values._view",
37
59
  "fallbackKind": "editable-table",
38
60
  "writeTo": "card_data.proposed_trades",
39
- "columns": ["ticker", "direction", "current_qty", "change", "proposed_qty", "price", "trade_value", "reason"],
61
+ "columns": [
62
+ "ticker",
63
+ "direction",
64
+ "current_qty",
65
+ "change",
66
+ "proposed_qty",
67
+ "price",
68
+ "trade_value",
69
+ "reason"
70
+ ],
40
71
  "schema": {
41
72
  "properties": {
42
- "current_qty": { "type": "number" },
43
- "change": { "type": "number" },
44
- "proposed_qty": { "type": "number" },
45
- "price": { "type": "number" },
46
- "trade_value": { "type": "number" }
73
+ "current_qty": {
74
+ "type": "number"
75
+ },
76
+ "change": {
77
+ "type": "number"
78
+ },
79
+ "proposed_qty": {
80
+ "type": "number"
81
+ },
82
+ "price": {
83
+ "type": "number"
84
+ },
85
+ "trade_value": {
86
+ "type": "number"
87
+ }
47
88
  }
48
89
  }
49
90
  }
@@ -58,10 +99,20 @@
58
99
  }
59
100
  ],
60
101
  "layout": {
61
- "board": { "col": 6, "order": 7 },
62
- "canvas": { "x": 840, "y": 480, "w": 500, "h": 280 }
102
+ "board": {
103
+ "col": 6,
104
+ "order": 7
105
+ },
106
+ "canvas": {
107
+ "x": 840,
108
+ "y": 480,
109
+ "w": 500,
110
+ "h": 280
111
+ }
63
112
  },
64
- "features": { "refresh": true }
113
+ "features": {
114
+ "refresh": true
115
+ }
65
116
  },
66
117
  "card_data": {}
67
- }
118
+ }
@@ -10,6 +10,7 @@
10
10
  * runtimeStatusDir— relative subdir: 'runtime-out'
11
11
  * cardsDir — relative subdir: 'surface/tmp-cards'
12
12
  * chatDir — absolute path to the card's chats directory
13
+ * chatProcessingMarkerKey — relative marker key in chats artifacts store (e.g. 'card-portfolio/.processing')
13
14
  * lastChatFile — filename of the just-written user message, e.g. '001_user.txt'
14
15
  * serverUrl — base URL of hosting server (e.g. http://127.0.0.1:7799), optional
15
16
  *
@@ -37,13 +38,12 @@ function getArg(name) {
37
38
  const boardId = getArg('--boardId') || '';
38
39
  const cardId = getArg('--cardId') || '';
39
40
  const extraStr = getArg('--extraEncJson') || '';
40
- const cleanOnExit = getArg('--cleanOnExit') || '';
41
41
 
42
42
  let extra = {};
43
43
  try { extra = JSON.parse(Buffer.from(extraStr, 'base64').toString('utf-8')); }
44
44
  catch { console.error('[demo-chat-handler] bad --extraEncJson'); process.exit(0); }
45
45
 
46
- const { boardSetupRoot, boardRuntimeDir, runtimeStatusDir, cardsDir, chatDir, lastChatFile, serverUrl } = extra;
46
+ const { boardSetupRoot, boardRuntimeDir, runtimeStatusDir, cardsDir, chatDir, chatProcessingMarkerKey, lastChatFile, serverUrl } = extra;
47
47
  if (!boardSetupRoot || !chatDir || !lastChatFile) {
48
48
  console.error('[demo-chat-handler] missing boardSetupRoot/chatDir/lastChatFile');
49
49
  process.exit(0);
@@ -153,7 +153,17 @@ try {
153
153
  } catch (err) {
154
154
  console.error('[demo-chat-handler] wrapper failed: ' + (err?.message ?? err));
155
155
  } finally {
156
- if (cleanOnExit) {
157
- try { fs.unlinkSync(cleanOnExit); } catch {}
156
+ cleanupProcessingMarker();
157
+ }
158
+ function cleanupProcessingMarker() {
159
+ // Prefer artifacts-style marker key from extra payload so runtime/handler contract
160
+ // does not rely on passing an absolute file path argument.
161
+ if (chatProcessingMarkerKey) {
162
+ try {
163
+ const markerPath = path.join(cardsDirAbs, chatProcessingMarkerKey);
164
+ fs.unlinkSync(markerPath);
165
+ return;
166
+ } catch {}
158
167
  }
168
+ try { fs.unlinkSync(path.join(chatDirAbs, '.processing')); } catch {}
159
169
  }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "port": 7799,
3
+ "serverMetaStoreRef": "::fs-path::./.server-meta",
3
4
  "cardsDir": "./cards",
4
5
  "taskExecutorPath": "./demo-task-executor.js",
5
6
  "chatHandlerPath": "./demo-chat-handler.js",