yaml-flow 5.2.8 → 5.4.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.
- package/board-livecards-server-runtime.js +15 -66
- package/browser/board-livegraph-engine.js +4 -1
- package/browser/board-livegraph-engine.js.map +1 -1
- package/browser/card-compute.js +1 -1
- package/browser/live-cards.js +178 -144
- package/browser/live-cards.schema.json +1 -1
- package/dist/board-livegraph-runtime/index.cjs +4 -1
- package/dist/board-livegraph-runtime/index.cjs.map +1 -1
- package/dist/board-livegraph-runtime/index.js +4 -1
- package/dist/board-livegraph-runtime/index.js.map +1 -1
- package/dist/card-compute/index.cjs +5 -1
- package/dist/card-compute/index.cjs.map +1 -1
- package/dist/card-compute/index.js +5 -1
- package/dist/card-compute/index.js.map +1 -1
- package/dist/cli/board-live-cards-cli.cjs +2416 -2113
- package/dist/cli/board-live-cards-cli.cjs.map +1 -1
- package/dist/cli/board-live-cards-cli.d.cts +59 -113
- package/dist/cli/board-live-cards-cli.d.ts +59 -113
- package/dist/cli/board-live-cards-cli.js +2413 -2109
- package/dist/cli/board-live-cards-cli.js.map +1 -1
- package/dist/continuous-event-graph/index.cjs +4 -1
- package/dist/continuous-event-graph/index.cjs.map +1 -1
- package/dist/continuous-event-graph/index.js +4 -1
- package/dist/continuous-event-graph/index.js.map +1 -1
- package/dist/index.cjs +5 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +4 -4
- package/examples/example-board/agent-instructions-cardlayout.md +28 -0
- package/examples/example-board/agent-instructions.md +4 -5
- package/examples/example-board/cards/card-rebalance-sim.json +13 -3
- package/examples/example-board/demo-server.js +77 -11
- package/examples/example-board/demo-shell-browser.html +4 -4
- package/examples/example-board/demo-shell-with-server.html +4 -4
- package/examples/example-board/demo-task-executor.js +22 -2
- package/package.json +1 -1
- package/schema/live-cards.schema.json +1 -1
|
@@ -3,6 +3,63 @@ import { a as LiveCard, R as ReactiveGraph } from '../live-cards-bridge-x5XREkXm
|
|
|
3
3
|
import { f as GraphEvent, T as TaskConfig } from '../types-BBhqYGhE.cjs';
|
|
4
4
|
import { J as Journal } from '../journal-B-JCfQnh.cjs';
|
|
5
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
|
+
|
|
6
63
|
/**
|
|
7
64
|
* Board Live Cards — Disk persistence + CLI for ReactiveGraph.
|
|
8
65
|
*/
|
|
@@ -53,56 +110,9 @@ declare function saveBoard(dir: string, rg: ReactiveGraph, journal: BoardJournal
|
|
|
53
110
|
* Uses proper-lockfile on board-graph.json.
|
|
54
111
|
*/
|
|
55
112
|
declare function withBoardLock<T>(boardDir: string, fn: () => T): T;
|
|
56
|
-
|
|
57
|
-
/** Original callback token from the reactive graph (encodes taskName) */
|
|
58
|
-
cbk: string;
|
|
59
|
-
/** Board directory (absolute path) */
|
|
60
|
-
rg: string;
|
|
61
|
-
/** Card id */
|
|
62
|
-
cid: string;
|
|
63
|
-
/** source_defs[].bindTo */
|
|
64
|
-
b: string;
|
|
65
|
-
/** source_defs[].outputFile (relative to boardDir) */
|
|
66
|
-
d: string;
|
|
67
|
-
/** Per-source invocation checksum */
|
|
68
|
-
cs?: string;
|
|
69
|
-
}
|
|
113
|
+
|
|
70
114
|
declare function encodeSourceToken(payload: SourceTokenPayload): string;
|
|
71
115
|
declare function decodeSourceToken(token: string): SourceTokenPayload | null;
|
|
72
|
-
interface SourceRuntimeEntry {
|
|
73
|
-
lastRequestedAt?: string;
|
|
74
|
-
lastFetchedAt?: string;
|
|
75
|
-
lastError?: string;
|
|
76
|
-
/** Timestamp of the most recent card-handler dispatch — updated on every fresh invocation.
|
|
77
|
-
* Replaces checksum-based gating: a source fetch is needed whenever
|
|
78
|
-
* lastFetchedAt is absent or older than queueRequestedAt. */
|
|
79
|
-
queueRequestedAt?: string;
|
|
80
|
-
}
|
|
81
|
-
interface InferenceRuntimeEntry {
|
|
82
|
-
lastRequestedAt?: string;
|
|
83
|
-
lastFetchedAt?: string;
|
|
84
|
-
lastError?: string;
|
|
85
|
-
/** Same semantics as SourceRuntimeEntry.queueRequestedAt. */
|
|
86
|
-
queueRequestedAt?: string;
|
|
87
|
-
}
|
|
88
|
-
type FetchRuntimeEntry = SourceRuntimeEntry | InferenceRuntimeEntry;
|
|
89
|
-
declare function isSourceInFlight(entry: FetchRuntimeEntry | undefined): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* Decide what to do with a source/inference fetch given the current runtime entry
|
|
92
|
-
* and the timestamp of the latest card-handler dispatch (queueRequestedAt).
|
|
93
|
-
*
|
|
94
|
-
* - 'dispatch' : fetch not yet started for this run, or previous fetch predates the request
|
|
95
|
-
* - 'in-flight': fetch is already running for this run — update queueRequestedAt and wait
|
|
96
|
-
* - 'idle' : fetch already completed for this run — nothing to do
|
|
97
|
-
*/
|
|
98
|
-
declare function decideSourceAction(entry: FetchRuntimeEntry | undefined, queueRequestedAt: string): 'dispatch' | 'in-flight' | 'idle';
|
|
99
|
-
declare function nextEntryAfterFetchDelivery<T extends FetchRuntimeEntry>(entry: T, fetchedAt: string): T;
|
|
100
|
-
declare function nextEntryAfterFetchFailure<T extends FetchRuntimeEntry>(entry: T, reason: string): T;
|
|
101
|
-
interface CardRuntimeState {
|
|
102
|
-
_sources: Record<string, SourceRuntimeEntry>;
|
|
103
|
-
_inferenceEntry?: InferenceRuntimeEntry;
|
|
104
|
-
_lastExecutionCount?: number;
|
|
105
|
-
}
|
|
106
116
|
/**
|
|
107
117
|
* Append a raw event to the journal file. No lock, no file read.
|
|
108
118
|
* Safe for hundreds of concurrent callers (appendFileSync is atomic for small writes).
|
|
@@ -164,70 +174,6 @@ type BoardLiveCard = LiveCard;
|
|
|
164
174
|
* run compute, invoke source_defs.
|
|
165
175
|
*/
|
|
166
176
|
declare function liveCardToTaskConfig(card: BoardLiveCard): TaskConfig;
|
|
167
|
-
/**
|
|
168
|
-
* Spin up a ReactiveGraph from a board directory with all handlers wired.
|
|
169
|
-
*
|
|
170
|
-
* Single handler:
|
|
171
|
-
* card-handler — reads card.json, loads sourcesData from outputFiles, runs CardCompute,
|
|
172
|
-
* checks undelivered source_defs, emits task-completed or spawns run-sourcedefs-internal.
|
|
173
|
-
* Fire & forget — returns 'task-initiated' immediately.
|
|
174
|
-
*/
|
|
175
|
-
interface BoardReactiveGraph {
|
|
176
|
-
rg: ReactiveGraph;
|
|
177
|
-
journal: BoardJournal;
|
|
178
|
-
}
|
|
179
|
-
declare function createBoardReactiveGraph(boardDir: string): BoardReactiveGraph;
|
|
180
|
-
interface BoardStatusCard {
|
|
181
|
-
name: string;
|
|
182
|
-
status: string;
|
|
183
|
-
error?: {
|
|
184
|
-
message: string;
|
|
185
|
-
code?: string;
|
|
186
|
-
at?: string;
|
|
187
|
-
source?: 'task-runtime' | 'source-fetch' | 'timeout' | 'unknown';
|
|
188
|
-
};
|
|
189
|
-
requires: string[];
|
|
190
|
-
requires_satisfied: string[];
|
|
191
|
-
requires_missing: string[];
|
|
192
|
-
provides_declared: string[];
|
|
193
|
-
provides_runtime: string[];
|
|
194
|
-
blocked_by: string[];
|
|
195
|
-
unblocks: string[];
|
|
196
|
-
runtime: {
|
|
197
|
-
attempt_count: number;
|
|
198
|
-
restart_count: number;
|
|
199
|
-
in_progress_since: string | null;
|
|
200
|
-
last_transition_at: string | null;
|
|
201
|
-
last_completed_at: string | null;
|
|
202
|
-
last_restarted_at: string | null;
|
|
203
|
-
status_age_ms: number | null;
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
interface BoardStatusObject {
|
|
207
|
-
schema_version: 'v1';
|
|
208
|
-
meta: {
|
|
209
|
-
board: {
|
|
210
|
-
path: string;
|
|
211
|
-
};
|
|
212
|
-
};
|
|
213
|
-
summary: {
|
|
214
|
-
card_count: number;
|
|
215
|
-
completed: number;
|
|
216
|
-
eligible: number;
|
|
217
|
-
pending: number;
|
|
218
|
-
blocked: number;
|
|
219
|
-
unresolved: number;
|
|
220
|
-
failed?: number;
|
|
221
|
-
in_progress?: number;
|
|
222
|
-
orphan_cards?: number;
|
|
223
|
-
topology?: {
|
|
224
|
-
edge_count: number;
|
|
225
|
-
max_fan_out_card: string | null;
|
|
226
|
-
max_fan_out: number;
|
|
227
|
-
};
|
|
228
|
-
};
|
|
229
|
-
cards: BoardStatusCard[];
|
|
230
|
-
}
|
|
231
177
|
declare function cli(argv: string[]): Promise<void>;
|
|
232
178
|
|
|
233
|
-
export { type BoardEnvelope, BoardJournal, type BoardLiveCard, type
|
|
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 };
|
|
@@ -3,6 +3,63 @@ import { a as LiveCard, R as ReactiveGraph } from '../live-cards-bridge-EQjytzI_
|
|
|
3
3
|
import { f as GraphEvent, T as TaskConfig } from '../types-BBhqYGhE.js';
|
|
4
4
|
import { J as Journal } from '../journal-9HEgs7dU.js';
|
|
5
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
|
+
|
|
6
63
|
/**
|
|
7
64
|
* Board Live Cards — Disk persistence + CLI for ReactiveGraph.
|
|
8
65
|
*/
|
|
@@ -53,56 +110,9 @@ declare function saveBoard(dir: string, rg: ReactiveGraph, journal: BoardJournal
|
|
|
53
110
|
* Uses proper-lockfile on board-graph.json.
|
|
54
111
|
*/
|
|
55
112
|
declare function withBoardLock<T>(boardDir: string, fn: () => T): T;
|
|
56
|
-
|
|
57
|
-
/** Original callback token from the reactive graph (encodes taskName) */
|
|
58
|
-
cbk: string;
|
|
59
|
-
/** Board directory (absolute path) */
|
|
60
|
-
rg: string;
|
|
61
|
-
/** Card id */
|
|
62
|
-
cid: string;
|
|
63
|
-
/** source_defs[].bindTo */
|
|
64
|
-
b: string;
|
|
65
|
-
/** source_defs[].outputFile (relative to boardDir) */
|
|
66
|
-
d: string;
|
|
67
|
-
/** Per-source invocation checksum */
|
|
68
|
-
cs?: string;
|
|
69
|
-
}
|
|
113
|
+
|
|
70
114
|
declare function encodeSourceToken(payload: SourceTokenPayload): string;
|
|
71
115
|
declare function decodeSourceToken(token: string): SourceTokenPayload | null;
|
|
72
|
-
interface SourceRuntimeEntry {
|
|
73
|
-
lastRequestedAt?: string;
|
|
74
|
-
lastFetchedAt?: string;
|
|
75
|
-
lastError?: string;
|
|
76
|
-
/** Timestamp of the most recent card-handler dispatch — updated on every fresh invocation.
|
|
77
|
-
* Replaces checksum-based gating: a source fetch is needed whenever
|
|
78
|
-
* lastFetchedAt is absent or older than queueRequestedAt. */
|
|
79
|
-
queueRequestedAt?: string;
|
|
80
|
-
}
|
|
81
|
-
interface InferenceRuntimeEntry {
|
|
82
|
-
lastRequestedAt?: string;
|
|
83
|
-
lastFetchedAt?: string;
|
|
84
|
-
lastError?: string;
|
|
85
|
-
/** Same semantics as SourceRuntimeEntry.queueRequestedAt. */
|
|
86
|
-
queueRequestedAt?: string;
|
|
87
|
-
}
|
|
88
|
-
type FetchRuntimeEntry = SourceRuntimeEntry | InferenceRuntimeEntry;
|
|
89
|
-
declare function isSourceInFlight(entry: FetchRuntimeEntry | undefined): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* Decide what to do with a source/inference fetch given the current runtime entry
|
|
92
|
-
* and the timestamp of the latest card-handler dispatch (queueRequestedAt).
|
|
93
|
-
*
|
|
94
|
-
* - 'dispatch' : fetch not yet started for this run, or previous fetch predates the request
|
|
95
|
-
* - 'in-flight': fetch is already running for this run — update queueRequestedAt and wait
|
|
96
|
-
* - 'idle' : fetch already completed for this run — nothing to do
|
|
97
|
-
*/
|
|
98
|
-
declare function decideSourceAction(entry: FetchRuntimeEntry | undefined, queueRequestedAt: string): 'dispatch' | 'in-flight' | 'idle';
|
|
99
|
-
declare function nextEntryAfterFetchDelivery<T extends FetchRuntimeEntry>(entry: T, fetchedAt: string): T;
|
|
100
|
-
declare function nextEntryAfterFetchFailure<T extends FetchRuntimeEntry>(entry: T, reason: string): T;
|
|
101
|
-
interface CardRuntimeState {
|
|
102
|
-
_sources: Record<string, SourceRuntimeEntry>;
|
|
103
|
-
_inferenceEntry?: InferenceRuntimeEntry;
|
|
104
|
-
_lastExecutionCount?: number;
|
|
105
|
-
}
|
|
106
116
|
/**
|
|
107
117
|
* Append a raw event to the journal file. No lock, no file read.
|
|
108
118
|
* Safe for hundreds of concurrent callers (appendFileSync is atomic for small writes).
|
|
@@ -164,70 +174,6 @@ type BoardLiveCard = LiveCard;
|
|
|
164
174
|
* run compute, invoke source_defs.
|
|
165
175
|
*/
|
|
166
176
|
declare function liveCardToTaskConfig(card: BoardLiveCard): TaskConfig;
|
|
167
|
-
/**
|
|
168
|
-
* Spin up a ReactiveGraph from a board directory with all handlers wired.
|
|
169
|
-
*
|
|
170
|
-
* Single handler:
|
|
171
|
-
* card-handler — reads card.json, loads sourcesData from outputFiles, runs CardCompute,
|
|
172
|
-
* checks undelivered source_defs, emits task-completed or spawns run-sourcedefs-internal.
|
|
173
|
-
* Fire & forget — returns 'task-initiated' immediately.
|
|
174
|
-
*/
|
|
175
|
-
interface BoardReactiveGraph {
|
|
176
|
-
rg: ReactiveGraph;
|
|
177
|
-
journal: BoardJournal;
|
|
178
|
-
}
|
|
179
|
-
declare function createBoardReactiveGraph(boardDir: string): BoardReactiveGraph;
|
|
180
|
-
interface BoardStatusCard {
|
|
181
|
-
name: string;
|
|
182
|
-
status: string;
|
|
183
|
-
error?: {
|
|
184
|
-
message: string;
|
|
185
|
-
code?: string;
|
|
186
|
-
at?: string;
|
|
187
|
-
source?: 'task-runtime' | 'source-fetch' | 'timeout' | 'unknown';
|
|
188
|
-
};
|
|
189
|
-
requires: string[];
|
|
190
|
-
requires_satisfied: string[];
|
|
191
|
-
requires_missing: string[];
|
|
192
|
-
provides_declared: string[];
|
|
193
|
-
provides_runtime: string[];
|
|
194
|
-
blocked_by: string[];
|
|
195
|
-
unblocks: string[];
|
|
196
|
-
runtime: {
|
|
197
|
-
attempt_count: number;
|
|
198
|
-
restart_count: number;
|
|
199
|
-
in_progress_since: string | null;
|
|
200
|
-
last_transition_at: string | null;
|
|
201
|
-
last_completed_at: string | null;
|
|
202
|
-
last_restarted_at: string | null;
|
|
203
|
-
status_age_ms: number | null;
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
interface BoardStatusObject {
|
|
207
|
-
schema_version: 'v1';
|
|
208
|
-
meta: {
|
|
209
|
-
board: {
|
|
210
|
-
path: string;
|
|
211
|
-
};
|
|
212
|
-
};
|
|
213
|
-
summary: {
|
|
214
|
-
card_count: number;
|
|
215
|
-
completed: number;
|
|
216
|
-
eligible: number;
|
|
217
|
-
pending: number;
|
|
218
|
-
blocked: number;
|
|
219
|
-
unresolved: number;
|
|
220
|
-
failed?: number;
|
|
221
|
-
in_progress?: number;
|
|
222
|
-
orphan_cards?: number;
|
|
223
|
-
topology?: {
|
|
224
|
-
edge_count: number;
|
|
225
|
-
max_fan_out_card: string | null;
|
|
226
|
-
max_fan_out: number;
|
|
227
|
-
};
|
|
228
|
-
};
|
|
229
|
-
cards: BoardStatusCard[];
|
|
230
|
-
}
|
|
231
177
|
declare function cli(argv: string[]): Promise<void>;
|
|
232
178
|
|
|
233
|
-
export { type BoardEnvelope, BoardJournal, type BoardLiveCard, type
|
|
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 };
|