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
@@ -1,179 +0,0 @@
1
- import { b as LiveGraphSnapshot, L as LiveGraph } from '../types-CHSdoAAA.cjs';
2
- import { a as LiveCard, R as ReactiveGraph } from '../live-cards-bridge-x5XREkXm.cjs';
3
- import { f as GraphEvent, T as TaskConfig } from '../types-BBhqYGhE.cjs';
4
- import { J as Journal } from '../journal-B-JCfQnh.cjs';
5
-
6
- /**
7
- * board-live-cards-lib — Adapter interfaces and shared domain types.
8
- *
9
- * This file contains only pure TypeScript — no Node built-ins.
10
- * It is safe to include in a neutral/browser/V8 (PyMiniRacer) bundle.
11
- *
12
- * Invariants enforced here:
13
- * - RuntimeInternalStore is never returned raw from public APIs.
14
- * - OutputStore writes are idempotent and schema-versioned.
15
- * - InputStore mutations are explicit operations, never side effects.
16
- * - Locking is acquired at the lib service boundary, not inside adapters.
17
- * - ControlStore writes only during init/administrative flows.
18
- * - InvocationAdapter results are structured, not raw shell-centric.
19
- */
20
-
21
- interface SourceRuntimeEntry {
22
- lastRequestedAt?: string;
23
- lastFetchedAt?: string;
24
- lastError?: string;
25
- /** Timestamp of the most recent card-handler dispatch for this execution run. */
26
- queueRequestedAt?: string;
27
- }
28
- interface InferenceRuntimeEntry {
29
- lastRequestedAt?: string;
30
- lastFetchedAt?: string;
31
- lastError?: string;
32
- /** Same semantics as SourceRuntimeEntry.queueRequestedAt. */
33
- queueRequestedAt?: string;
34
- }
35
- type FetchRuntimeEntry = SourceRuntimeEntry | InferenceRuntimeEntry;
36
- interface SourceTokenPayload {
37
- /** Original callback token from the reactive graph (encodes taskName) */
38
- cbk: string;
39
- /** Board directory (absolute path) */
40
- rg: string;
41
- /** Card id */
42
- cid: string;
43
- /** source_defs[].bindTo */
44
- b: string;
45
- /** source_defs[].outputFile (relative to boardDir) */
46
- d: string;
47
- /** Per-source invocation checksum */
48
- cs?: string;
49
- }
50
- declare function isSourceInFlight(entry: FetchRuntimeEntry | undefined): boolean;
51
- /**
52
- * Decide what to do with a source/inference fetch given the current runtime entry
53
- * and the timestamp of the latest card-handler dispatch (queueRequestedAt).
54
- *
55
- * - 'dispatch' : fetch not yet started for this run, or previous fetch predates the request
56
- * - 'in-flight' : fetch is already running for this run — update queueRequestedAt and wait
57
- * - 'idle' : fetch already completed for this run — nothing to do
58
- */
59
- declare function decideSourceAction(entry: FetchRuntimeEntry | undefined, queueRequestedAt: string): 'dispatch' | 'in-flight' | 'idle';
60
- declare function nextEntryAfterFetchDelivery<T extends FetchRuntimeEntry>(entry: T, fetchedAt: string): T;
61
- declare function nextEntryAfterFetchFailure<T extends FetchRuntimeEntry>(entry: T, reason: string): T;
62
-
63
- /**
64
- * Board Live Cards — Disk persistence + CLI for ReactiveGraph.
65
- */
66
-
67
- /** Envelope stored in board-graph.json — wraps the LiveGraph snapshot with journal pointer. */
68
- interface BoardEnvelope {
69
- lastDrainedJournalId: string;
70
- graph: LiveGraphSnapshot;
71
- }
72
- interface JournalEntry {
73
- id: string;
74
- event: GraphEvent;
75
- }
76
- declare class BoardJournal implements Journal {
77
- private readonly journalPath;
78
- private lastDrainedId;
79
- constructor(journalPath: string, lastDrainedJournalId: string);
80
- append(event: GraphEvent): void;
81
- drain(): GraphEvent[];
82
- get size(): number;
83
- get lastDrainedJournalId(): string;
84
- }
85
- interface CardInventoryEntry {
86
- cardId: string;
87
- cardFilePath: string;
88
- addedAt: string;
89
- }
90
- interface CardInventoryIndex {
91
- byCardId: Map<string, CardInventoryEntry>;
92
- byCardPath: Map<string, CardInventoryEntry>;
93
- }
94
- declare function readCardInventory(boardDir: string): CardInventoryEntry[];
95
- declare function lookupCardPath(boardDir: string, cardId: string): string | null;
96
- declare function appendCardInventory(boardDir: string, entry: CardInventoryEntry): void;
97
- declare function buildCardInventoryIndex(boardDir: string): CardInventoryIndex;
98
- /**
99
- * Initialize a board directory.
100
- * - Dir doesn't exist → create it, write empty board-graph.json
101
- * - Dir exists + valid board-graph.json → no-op, return 'exists'
102
- * - Dir exists + non-empty (no valid board-graph.json) → throw
103
- */
104
- declare function initBoard(dir: string): 'created' | 'exists';
105
- declare function loadBoardEnvelope(dir: string): BoardEnvelope;
106
- declare function loadBoard(dir: string): LiveGraph;
107
- declare function saveBoard(dir: string, rg: ReactiveGraph, journal: BoardJournal): void;
108
- /**
109
- * Acquire an exclusive lock on the board, run `fn`, then release.
110
- * Uses proper-lockfile on board-graph.json.
111
- */
112
- declare function withBoardLock<T>(boardDir: string, fn: () => T): T;
113
-
114
- declare function encodeSourceToken(payload: SourceTokenPayload): string;
115
- declare function decodeSourceToken(token: string): SourceTokenPayload | null;
116
- /**
117
- * Append a raw event to the journal file. No lock, no file read.
118
- * Safe for hundreds of concurrent callers (appendFileSync is atomic for small writes).
119
- */
120
- declare function appendEventToJournal(boardDir: string, event: GraphEvent): void;
121
- /**
122
- * Read journal entries after the given ID. Pure file read, no mutation.
123
- */
124
- declare function getUndrainedEntries(boardDir: string, lastDrainedId: string): JournalEntry[];
125
- /**
126
- * Run one lock-guarded processing pass for this board.
127
- *
128
- * GUARANTEE (single-pass only):
129
- * - At most one process performs this pass at a time (board lock).
130
- * - If lock is acquired, exactly one drain/apply/save cycle is executed.
131
- * - If lock is busy, returns false immediately (no waiting).
132
- *
133
- * This function does NOT guarantee full settlement; it only advances the baton
134
- * by one cycle in the relay model.
135
- */
136
- declare function processAccumulatedEvents(boardDir: string): Promise<boolean>;
137
- /**
138
- * Schedule continued draining until the board eventually settles.
139
- *
140
- * GUARANTEE (system-level eventual progress):
141
- * - Default behavior launches a detached background worker process that runs
142
- * `process-accumulated-events --inline-loop`.
143
- * - Returns quickly to caller; does not synchronously wait for settlement.
144
- * - Under relay assumptions, pending entries eventually drain to zero:
145
- * 1) at least one runner continues, 2) no crash/forced exit in relay window,
146
- * 3) lock remains healthy, 4) new events do not arrive forever.
147
- *
148
- * INTERNAL MODE:
149
- * - `inlineLoop: true` executes the while(pending) loop in the current process.
150
- * - Used by the worker command to avoid recursive worker spawning.
151
- */
152
- declare function processAccumulatedEventsInfinitePass(boardDir: string, settleDelayMs?: number, options?: {
153
- inlineLoop?: boolean;
154
- }): Promise<boolean>;
155
- /**
156
- * Forced drain entrypoint: first run one immediate pass, then delegate to
157
- * infinite-pass continuation.
158
- *
159
- * GUARANTEE:
160
- * - In default mode, this guarantees immediate forward progress (single pass)
161
- * and guaranteed scheduling of eventual continuation (background worker).
162
- * - In `inlineLoop` mode, this runs full in-process settle loop and returns
163
- * only after pending reaches zero (or lock contention aborts loop).
164
- */
165
- declare function processAccumulatedEventsForced(boardDir: string, options?: {
166
- inlineLoop?: boolean;
167
- }): Promise<void>;
168
- type BoardLiveCard = LiveCard;
169
- /**
170
- * Transform a LiveCard into a TaskConfig for the reactive graph.
171
- *
172
- * Every card gets handler: 'card-handler'.
173
- * The handler inspects the card and decides what to do:
174
- * run compute, invoke source_defs.
175
- */
176
- declare function liveCardToTaskConfig(card: BoardLiveCard): TaskConfig;
177
- declare function cli(argv: string[]): Promise<void>;
178
-
179
- export { type BoardEnvelope, BoardJournal, type BoardLiveCard, type CardInventoryEntry, type CardInventoryIndex, type FetchRuntimeEntry, type InferenceRuntimeEntry, type JournalEntry, type SourceRuntimeEntry, type SourceTokenPayload, appendCardInventory, appendEventToJournal, buildCardInventoryIndex, cli, decideSourceAction, decodeSourceToken, encodeSourceToken, getUndrainedEntries, initBoard, isSourceInFlight, liveCardToTaskConfig, loadBoard, loadBoardEnvelope, lookupCardPath, nextEntryAfterFetchDelivery, nextEntryAfterFetchFailure, processAccumulatedEvents, processAccumulatedEventsForced, processAccumulatedEventsInfinitePass, readCardInventory, saveBoard, withBoardLock };
@@ -1,179 +0,0 @@
1
- import { b as LiveGraphSnapshot, L as LiveGraph } from '../types-CoW0gQl3.js';
2
- import { a as LiveCard, R as ReactiveGraph } from '../live-cards-bridge-EQjytzI_.js';
3
- import { f as GraphEvent, T as TaskConfig } from '../types-BBhqYGhE.js';
4
- import { J as Journal } from '../journal-9HEgs7dU.js';
5
-
6
- /**
7
- * board-live-cards-lib — Adapter interfaces and shared domain types.
8
- *
9
- * This file contains only pure TypeScript — no Node built-ins.
10
- * It is safe to include in a neutral/browser/V8 (PyMiniRacer) bundle.
11
- *
12
- * Invariants enforced here:
13
- * - RuntimeInternalStore is never returned raw from public APIs.
14
- * - OutputStore writes are idempotent and schema-versioned.
15
- * - InputStore mutations are explicit operations, never side effects.
16
- * - Locking is acquired at the lib service boundary, not inside adapters.
17
- * - ControlStore writes only during init/administrative flows.
18
- * - InvocationAdapter results are structured, not raw shell-centric.
19
- */
20
-
21
- interface SourceRuntimeEntry {
22
- lastRequestedAt?: string;
23
- lastFetchedAt?: string;
24
- lastError?: string;
25
- /** Timestamp of the most recent card-handler dispatch for this execution run. */
26
- queueRequestedAt?: string;
27
- }
28
- interface InferenceRuntimeEntry {
29
- lastRequestedAt?: string;
30
- lastFetchedAt?: string;
31
- lastError?: string;
32
- /** Same semantics as SourceRuntimeEntry.queueRequestedAt. */
33
- queueRequestedAt?: string;
34
- }
35
- type FetchRuntimeEntry = SourceRuntimeEntry | InferenceRuntimeEntry;
36
- interface SourceTokenPayload {
37
- /** Original callback token from the reactive graph (encodes taskName) */
38
- cbk: string;
39
- /** Board directory (absolute path) */
40
- rg: string;
41
- /** Card id */
42
- cid: string;
43
- /** source_defs[].bindTo */
44
- b: string;
45
- /** source_defs[].outputFile (relative to boardDir) */
46
- d: string;
47
- /** Per-source invocation checksum */
48
- cs?: string;
49
- }
50
- declare function isSourceInFlight(entry: FetchRuntimeEntry | undefined): boolean;
51
- /**
52
- * Decide what to do with a source/inference fetch given the current runtime entry
53
- * and the timestamp of the latest card-handler dispatch (queueRequestedAt).
54
- *
55
- * - 'dispatch' : fetch not yet started for this run, or previous fetch predates the request
56
- * - 'in-flight' : fetch is already running for this run — update queueRequestedAt and wait
57
- * - 'idle' : fetch already completed for this run — nothing to do
58
- */
59
- declare function decideSourceAction(entry: FetchRuntimeEntry | undefined, queueRequestedAt: string): 'dispatch' | 'in-flight' | 'idle';
60
- declare function nextEntryAfterFetchDelivery<T extends FetchRuntimeEntry>(entry: T, fetchedAt: string): T;
61
- declare function nextEntryAfterFetchFailure<T extends FetchRuntimeEntry>(entry: T, reason: string): T;
62
-
63
- /**
64
- * Board Live Cards — Disk persistence + CLI for ReactiveGraph.
65
- */
66
-
67
- /** Envelope stored in board-graph.json — wraps the LiveGraph snapshot with journal pointer. */
68
- interface BoardEnvelope {
69
- lastDrainedJournalId: string;
70
- graph: LiveGraphSnapshot;
71
- }
72
- interface JournalEntry {
73
- id: string;
74
- event: GraphEvent;
75
- }
76
- declare class BoardJournal implements Journal {
77
- private readonly journalPath;
78
- private lastDrainedId;
79
- constructor(journalPath: string, lastDrainedJournalId: string);
80
- append(event: GraphEvent): void;
81
- drain(): GraphEvent[];
82
- get size(): number;
83
- get lastDrainedJournalId(): string;
84
- }
85
- interface CardInventoryEntry {
86
- cardId: string;
87
- cardFilePath: string;
88
- addedAt: string;
89
- }
90
- interface CardInventoryIndex {
91
- byCardId: Map<string, CardInventoryEntry>;
92
- byCardPath: Map<string, CardInventoryEntry>;
93
- }
94
- declare function readCardInventory(boardDir: string): CardInventoryEntry[];
95
- declare function lookupCardPath(boardDir: string, cardId: string): string | null;
96
- declare function appendCardInventory(boardDir: string, entry: CardInventoryEntry): void;
97
- declare function buildCardInventoryIndex(boardDir: string): CardInventoryIndex;
98
- /**
99
- * Initialize a board directory.
100
- * - Dir doesn't exist → create it, write empty board-graph.json
101
- * - Dir exists + valid board-graph.json → no-op, return 'exists'
102
- * - Dir exists + non-empty (no valid board-graph.json) → throw
103
- */
104
- declare function initBoard(dir: string): 'created' | 'exists';
105
- declare function loadBoardEnvelope(dir: string): BoardEnvelope;
106
- declare function loadBoard(dir: string): LiveGraph;
107
- declare function saveBoard(dir: string, rg: ReactiveGraph, journal: BoardJournal): void;
108
- /**
109
- * Acquire an exclusive lock on the board, run `fn`, then release.
110
- * Uses proper-lockfile on board-graph.json.
111
- */
112
- declare function withBoardLock<T>(boardDir: string, fn: () => T): T;
113
-
114
- declare function encodeSourceToken(payload: SourceTokenPayload): string;
115
- declare function decodeSourceToken(token: string): SourceTokenPayload | null;
116
- /**
117
- * Append a raw event to the journal file. No lock, no file read.
118
- * Safe for hundreds of concurrent callers (appendFileSync is atomic for small writes).
119
- */
120
- declare function appendEventToJournal(boardDir: string, event: GraphEvent): void;
121
- /**
122
- * Read journal entries after the given ID. Pure file read, no mutation.
123
- */
124
- declare function getUndrainedEntries(boardDir: string, lastDrainedId: string): JournalEntry[];
125
- /**
126
- * Run one lock-guarded processing pass for this board.
127
- *
128
- * GUARANTEE (single-pass only):
129
- * - At most one process performs this pass at a time (board lock).
130
- * - If lock is acquired, exactly one drain/apply/save cycle is executed.
131
- * - If lock is busy, returns false immediately (no waiting).
132
- *
133
- * This function does NOT guarantee full settlement; it only advances the baton
134
- * by one cycle in the relay model.
135
- */
136
- declare function processAccumulatedEvents(boardDir: string): Promise<boolean>;
137
- /**
138
- * Schedule continued draining until the board eventually settles.
139
- *
140
- * GUARANTEE (system-level eventual progress):
141
- * - Default behavior launches a detached background worker process that runs
142
- * `process-accumulated-events --inline-loop`.
143
- * - Returns quickly to caller; does not synchronously wait for settlement.
144
- * - Under relay assumptions, pending entries eventually drain to zero:
145
- * 1) at least one runner continues, 2) no crash/forced exit in relay window,
146
- * 3) lock remains healthy, 4) new events do not arrive forever.
147
- *
148
- * INTERNAL MODE:
149
- * - `inlineLoop: true` executes the while(pending) loop in the current process.
150
- * - Used by the worker command to avoid recursive worker spawning.
151
- */
152
- declare function processAccumulatedEventsInfinitePass(boardDir: string, settleDelayMs?: number, options?: {
153
- inlineLoop?: boolean;
154
- }): Promise<boolean>;
155
- /**
156
- * Forced drain entrypoint: first run one immediate pass, then delegate to
157
- * infinite-pass continuation.
158
- *
159
- * GUARANTEE:
160
- * - In default mode, this guarantees immediate forward progress (single pass)
161
- * and guaranteed scheduling of eventual continuation (background worker).
162
- * - In `inlineLoop` mode, this runs full in-process settle loop and returns
163
- * only after pending reaches zero (or lock contention aborts loop).
164
- */
165
- declare function processAccumulatedEventsForced(boardDir: string, options?: {
166
- inlineLoop?: boolean;
167
- }): Promise<void>;
168
- type BoardLiveCard = LiveCard;
169
- /**
170
- * Transform a LiveCard into a TaskConfig for the reactive graph.
171
- *
172
- * Every card gets handler: 'card-handler'.
173
- * The handler inspects the card and decides what to do:
174
- * run compute, invoke source_defs.
175
- */
176
- declare function liveCardToTaskConfig(card: BoardLiveCard): TaskConfig;
177
- declare function cli(argv: string[]): Promise<void>;
178
-
179
- export { type BoardEnvelope, BoardJournal, type BoardLiveCard, type CardInventoryEntry, type CardInventoryIndex, type FetchRuntimeEntry, type InferenceRuntimeEntry, type JournalEntry, type SourceRuntimeEntry, type SourceTokenPayload, appendCardInventory, appendEventToJournal, buildCardInventoryIndex, cli, decideSourceAction, decodeSourceToken, encodeSourceToken, getUndrainedEntries, initBoard, isSourceInFlight, liveCardToTaskConfig, loadBoard, loadBoardEnvelope, lookupCardPath, nextEntryAfterFetchDelivery, nextEntryAfterFetchFailure, processAccumulatedEvents, processAccumulatedEventsForced, processAccumulatedEventsInfinitePass, readCardInventory, saveBoard, withBoardLock };