yaml-flow 5.4.0 → 6.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.
- package/board-live-cards-cli.js +2 -2
- package/board-livecards-server-runtime.js +488 -551
- package/browser/asset-integrity.json +10 -0
- package/browser/board-livecards-runtime-client.js +0 -6
- package/browser/board-livegraph-engine.js +2 -1676
- package/browser/board-livegraph-engine.js.map +1 -1
- package/browser/live-cards.js +347 -26
- package/browser/live-cards.schema.json +418 -132
- package/card-store.js +37 -0
- package/dist/batch/index.cjs +1 -108
- package/dist/batch/index.cjs.map +1 -1
- package/dist/batch/index.js +1 -106
- package/dist/batch/index.js.map +1 -1
- package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +136 -0
- package/dist/board-live-cards-lib-jM2uYG1v.d.ts +136 -0
- package/dist/board-live-cards-public-CltXYgaY.d.cts +314 -0
- package/dist/board-live-cards-public-f-E-FAyp.d.ts +314 -0
- package/dist/board-livegraph-runtime/index.cjs +2 -1671
- package/dist/board-livegraph-runtime/index.cjs.map +1 -1
- package/dist/board-livegraph-runtime/index.d.cts +1 -2
- package/dist/board-livegraph-runtime/index.d.ts +1 -2
- package/dist/board-livegraph-runtime/index.js +2 -1662
- package/dist/board-livegraph-runtime/index.js.map +1 -1
- package/dist/board-livegraph-runtime/jsonata-sync.cjs +7587 -0
- package/dist/card-compute/index.cjs +9 -7159
- package/dist/card-compute/index.cjs.map +1 -1
- package/dist/card-compute/index.d.cts +22 -0
- package/dist/card-compute/index.d.ts +22 -0
- package/dist/card-compute/index.js +9 -7145
- package/dist/card-compute/index.js.map +1 -1
- package/dist/card-compute/jsonata-sync.cjs +7587 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +2 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +1 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +24 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.d.ts +24 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.js +2 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +1 -0
- package/dist/cli/browser-api/card-store-browser-api.cjs +2 -0
- package/dist/cli/browser-api/card-store-browser-api.cjs.map +1 -0
- package/dist/cli/browser-api/card-store-browser-api.d.cts +26 -0
- package/dist/cli/browser-api/card-store-browser-api.d.ts +26 -0
- package/dist/cli/browser-api/card-store-browser-api.js +2 -0
- package/dist/cli/browser-api/card-store-browser-api.js.map +1 -0
- package/dist/cli/browser-api/jsonata-sync.cjs +7587 -0
- package/dist/cli/node/artifacts-store-cli.cjs +11 -0
- package/dist/cli/node/artifacts-store-cli.cjs.map +1 -0
- package/dist/cli/node/artifacts-store-cli.d.cts +8 -0
- package/dist/cli/node/artifacts-store-cli.d.ts +8 -0
- package/dist/cli/node/artifacts-store-cli.js +11 -0
- package/dist/cli/node/artifacts-store-cli.js.map +1 -0
- package/dist/cli/node/board-live-cards-cli.cjs +15 -0
- package/dist/cli/node/board-live-cards-cli.cjs.map +1 -0
- package/dist/cli/node/board-live-cards-cli.d.cts +20 -0
- package/dist/cli/node/board-live-cards-cli.d.ts +20 -0
- package/dist/cli/node/board-live-cards-cli.js +15 -0
- package/dist/cli/node/board-live-cards-cli.js.map +1 -0
- package/dist/cli/node/card-store-cli.cjs +8 -0
- package/dist/cli/node/card-store-cli.cjs.map +1 -0
- package/dist/cli/node/card-store-cli.d.cts +15 -0
- package/dist/cli/node/card-store-cli.d.ts +15 -0
- package/dist/cli/node/card-store-cli.js +8 -0
- package/dist/cli/node/card-store-cli.js.map +1 -0
- package/dist/cli/node/fs-board-adapter.cjs +14 -0
- package/dist/cli/node/fs-board-adapter.cjs.map +1 -0
- package/dist/cli/node/fs-board-adapter.d.cts +204 -0
- package/dist/cli/node/fs-board-adapter.d.ts +204 -0
- package/dist/cli/node/fs-board-adapter.js +14 -0
- package/dist/cli/node/fs-board-adapter.js.map +1 -0
- package/dist/cli/node/jsonata-sync.cjs +7587 -0
- package/dist/cli/node/source-cli-task-executor.cjs +11 -0
- package/dist/cli/node/source-cli-task-executor.cjs.map +1 -0
- package/dist/cli/node/source-cli-task-executor.d.cts +1 -0
- package/dist/cli/node/source-cli-task-executor.d.ts +1 -0
- package/dist/cli/node/source-cli-task-executor.js +11 -0
- package/dist/cli/node/source-cli-task-executor.js.map +1 -0
- package/dist/config/index.cjs +1 -79
- package/dist/config/index.cjs.map +1 -1
- package/dist/config/index.js +1 -76
- package/dist/config/index.js.map +1 -1
- package/dist/continuous-event-graph/index.cjs +2 -2129
- package/dist/continuous-event-graph/index.cjs.map +1 -1
- package/dist/continuous-event-graph/index.d.cts +81 -5
- package/dist/continuous-event-graph/index.d.ts +81 -5
- package/dist/continuous-event-graph/index.js +2 -2088
- package/dist/continuous-event-graph/index.js.map +1 -1
- package/dist/continuous-event-graph/jsonata-sync.cjs +7587 -0
- package/dist/event-graph/index.cjs +22 -8292
- package/dist/event-graph/index.cjs.map +1 -1
- package/dist/event-graph/index.js +22 -8237
- package/dist/event-graph/index.js.map +1 -1
- package/dist/execution-refs.cjs +2 -0
- package/dist/execution-refs.cjs.map +1 -0
- package/dist/execution-refs.d.cts +222 -0
- package/dist/execution-refs.d.ts +222 -0
- package/dist/execution-refs.js +2 -0
- package/dist/execution-refs.js.map +1 -0
- package/dist/index.cjs +29 -13221
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -4
- package/dist/index.d.ts +2 -4
- package/dist/index.js +29 -13112
- package/dist/index.js.map +1 -1
- package/dist/inference/index.cjs +5 -617
- package/dist/inference/index.cjs.map +1 -1
- package/dist/inference/index.js +5 -610
- package/dist/inference/index.js.map +1 -1
- package/dist/jsonata-sync.cjs +7587 -0
- package/dist/{live-cards-bridge-x5XREkXm.d.cts → live-cards-bridge-BXbVTsna.d.cts} +27 -4
- package/dist/{live-cards-bridge-EQjytzI_.d.ts → live-cards-bridge-Ds28XR15.d.ts} +27 -4
- package/dist/pycli/quickjs-board-runtime.global.js +9 -0
- package/dist/pycli/quickjs-board-runtime.global.js.map +1 -0
- package/dist/pycli/quickjs-step-machine-runtime.global.js +5 -0
- package/dist/pycli/quickjs-step-machine-runtime.global.js.map +1 -0
- package/dist/step-machine/index.cjs +11 -7129
- package/dist/step-machine/index.cjs.map +1 -1
- package/dist/step-machine/index.js +11 -7113
- package/dist/step-machine/index.js.map +1 -1
- package/dist/storage-refs.cjs +10 -0
- package/dist/storage-refs.cjs.map +1 -0
- package/dist/storage-refs.d.cts +92 -0
- package/dist/storage-refs.d.ts +92 -0
- package/dist/storage-refs.js +10 -0
- package/dist/storage-refs.js.map +1 -0
- package/dist/stores/file.cjs +1 -114
- package/dist/stores/file.cjs.map +1 -1
- package/dist/stores/file.js +1 -112
- package/dist/stores/file.js.map +1 -1
- package/dist/stores/index.cjs +1 -231
- package/dist/stores/index.cjs.map +1 -1
- package/dist/stores/index.js +1 -227
- package/dist/stores/index.js.map +1 -1
- package/dist/stores/localStorage.cjs +1 -76
- package/dist/stores/localStorage.cjs.map +1 -1
- package/dist/stores/localStorage.js +1 -74
- package/dist/stores/localStorage.js.map +1 -1
- package/dist/stores/memory.cjs +1 -47
- package/dist/stores/memory.cjs.map +1 -1
- package/dist/stores/memory.js +1 -45
- package/dist/stores/memory.js.map +1 -1
- package/examples/browser/boards/portfolio-tracker/portfolio-t4.js +292 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.js +218 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +201 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +25 -16
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-public.js +553 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +365 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +1 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +32 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +53 -1
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +15 -6
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +6 -1
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +57 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +1 -1
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +1 -1
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +7 -2
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +6 -2
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +97 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +50 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +44 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +70 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +36 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +26 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +39 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +80 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +25 -172
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +40 -34
- package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +46 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +77 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
- package/examples/example-board/agent-instructions.md +11 -5
- package/examples/example-board/demo-chat-handler.js +14 -4
- package/examples/example-board/demo-server-config.json +1 -0
- package/examples/example-board/demo-server.js +19 -34
- package/examples/example-board/demo-shell-browser.html +5 -4
- package/examples/example-board/demo-shell-with-server.html +10 -6
- package/examples/example-board/demo-task-executor.js +81 -35
- package/examples/index.html +0 -14
- package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -1
- package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
- package/package.json +39 -3
- package/schema/live-cards.schema.json +418 -132
- package/dist/cli/board-live-cards-cli.cjs +0 -10644
- package/dist/cli/board-live-cards-cli.cjs.map +0 -1
- package/dist/cli/board-live-cards-cli.d.cts +0 -179
- package/dist/cli/board-live-cards-cli.d.ts +0 -179
- package/dist/cli/board-live-cards-cli.js +0 -10592
- package/dist/cli/board-live-cards-cli.js.map +0 -1
- package/dist/journal-9HEgs7dU.d.ts +0 -28
- package/dist/journal-B-JCfQnh.d.cts +0 -28
- package/dist/schedule-Cszq9LYY.d.ts +0 -21
- package/dist/schedule-qWNL0RQh.d.cts +0 -21
- package/examples/browser/boards/portfolio-tracker/cards/holdings-table.json +0 -22
- package/examples/browser/boards/portfolio-tracker/cards/portfolio-form.json +0 -16
- package/examples/browser/boards/portfolio-tracker/cards/portfolio-risk-assessment.json +0 -28
- package/examples/browser/boards/portfolio-tracker/cards/portfolio-value.json +0 -15
- package/examples/browser/boards/portfolio-tracker/cards/price-fetch.json +0 -15
- package/examples/browser/boards/portfolio-tracker/cards/rebalancing-strategy.json +0 -28
- package/examples/browser/boards/portfolio-tracker/fetch-prices.js +0 -43
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.bat +0 -7
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +0 -351
|
@@ -2,11 +2,9 @@ import { L as LiveGraph, N as NodeInfo, b as LiveGraphSnapshot, D as DownstreamR
|
|
|
2
2
|
export { B as BlockedTask, P as PendingTask, S as ScheduleResult, d as UnresolvedDependency } from '../types-CHSdoAAA.cjs';
|
|
3
3
|
import { T as TaskConfig, f as GraphEvent, G as GraphConfig } from '../types-BBhqYGhE.cjs';
|
|
4
4
|
export { c as ExecutionState, e as GraphEngineStore, g as GraphSettings } from '../types-BBhqYGhE.cjs';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export { L as LiveBoard, a as LiveCard, b as LiveCardsToReactiveOptions, c as LiveCardsToReactiveResult, d as ReactiveGraphOptions, f as TaskHandlerReturn, h as computeDataHash, g as createReactiveGraph, l as liveCardsToReactiveGraph } from '../live-cards-bridge-x5XREkXm.cjs';
|
|
5
|
+
import { R as ReactiveGraph, e as TaskHandlerInput, T as TaskHandlerFn } from '../live-cards-bridge-BXbVTsna.cjs';
|
|
6
|
+
export { L as LiveBoard, a as LiveCard, b as LiveCardsToReactiveOptions, c as LiveCardsToReactiveResult, d as ReactiveGraphOptions, f as TaskHandlerReturn, h as computeDataHash, g as createReactiveGraph, l as liveCardsToReactiveGraph, s as schedule } from '../live-cards-bridge-BXbVTsna.cjs';
|
|
8
7
|
import { a as GraphValidationResult } from '../validate-Dbu7ygys.cjs';
|
|
9
|
-
export { J as Journal, M as MemoryJournal } from '../journal-B-JCfQnh.cjs';
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* Continuous Event Graph — Core
|
|
@@ -327,6 +325,29 @@ declare function mutateGraph(live: LiveGraph, mutations: GraphMutation[]): LiveG
|
|
|
327
325
|
interface ResolveCallbackFn {
|
|
328
326
|
(callbackToken: string, data: Record<string, unknown>, errors?: string[]): void;
|
|
329
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Structured command specification for process-based handlers.
|
|
330
|
+
*
|
|
331
|
+
* Use this everywhere instead of raw command strings:
|
|
332
|
+
* - command: the executable name or path (no embedded args)
|
|
333
|
+
* - args: explicit argument array (no shell quoting needed)
|
|
334
|
+
*
|
|
335
|
+
* JSON config format:
|
|
336
|
+
* Old: { "command": "node path/to/exec.js --flag" } ← parsed for compat by parseCommandSpec
|
|
337
|
+
* New: { "command": "node", "args": ["path/to/exec.js", "--flag"] }
|
|
338
|
+
*/
|
|
339
|
+
interface CommandSpec {
|
|
340
|
+
/** Executable name or path. No embedded args. */
|
|
341
|
+
command: string;
|
|
342
|
+
/** Explicit argument list. No shell quoting needed. */
|
|
343
|
+
args?: string[];
|
|
344
|
+
/** Working directory. */
|
|
345
|
+
cwd?: string;
|
|
346
|
+
/** Additional environment variables merged over process.env. */
|
|
347
|
+
env?: Record<string, string>;
|
|
348
|
+
/** Timeout in milliseconds. */
|
|
349
|
+
timeoutMs?: number;
|
|
350
|
+
}
|
|
330
351
|
/**
|
|
331
352
|
* Wrap a plain async function as a TaskHandlerFn.
|
|
332
353
|
*
|
|
@@ -401,6 +422,36 @@ interface ShellHandlerOptions {
|
|
|
401
422
|
* ```
|
|
402
423
|
*/
|
|
403
424
|
declare function createShellHandler(options: ShellHandlerOptions): TaskHandlerFn;
|
|
425
|
+
interface ProcessHandlerOptions extends CommandSpec {
|
|
426
|
+
/** Map exit codes to result keys (default: 0 → success, non-zero → error) */
|
|
427
|
+
exitCodeMap?: Record<number, string>;
|
|
428
|
+
/** If true, include stdout/stderr/exitCode in the data payload */
|
|
429
|
+
captureOutput?: boolean;
|
|
430
|
+
/** Lazy getter for the resolveCallback function */
|
|
431
|
+
getResolve: () => ResolveCallbackFn;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Create a TaskHandlerFn that spawns a process using structured command + args.
|
|
435
|
+
*
|
|
436
|
+
* Unlike createShellHandler, this uses execFile — no ambient shell, no quoting
|
|
437
|
+
* issues, safe on Windows and Linux. ${taskName} is substituted in both the
|
|
438
|
+
* command and each arg string.
|
|
439
|
+
*
|
|
440
|
+
* Prefer this over createShellHandler for all programmatic invocations
|
|
441
|
+
* (task-executors, source fetchers, inference adapters).
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* ```ts
|
|
445
|
+
* const handler = createProcessHandler({
|
|
446
|
+
* command: 'node',
|
|
447
|
+
* args: ['scripts/fetch.js', '--task', '${taskName}'],
|
|
448
|
+
* cwd: '/app',
|
|
449
|
+
* captureOutput: true,
|
|
450
|
+
* getResolve: () => graph.resolveCallback.bind(graph),
|
|
451
|
+
* });
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
454
|
+
declare function createProcessHandler(options: ProcessHandlerOptions): TaskHandlerFn;
|
|
404
455
|
interface ScriptHandlerOptions {
|
|
405
456
|
/** Path to the script file */
|
|
406
457
|
scriptPath: string;
|
|
@@ -474,4 +525,29 @@ declare function createWebhookHandler(options: WebhookHandlerOptions): TaskHandl
|
|
|
474
525
|
*/
|
|
475
526
|
declare function createNoopHandler(getResolve: () => ResolveCallbackFn, staticData?: Record<string, unknown>): TaskHandlerFn;
|
|
476
527
|
|
|
477
|
-
|
|
528
|
+
/**
|
|
529
|
+
* Continuous Event Graph — Journal
|
|
530
|
+
*
|
|
531
|
+
* Append-only event log for the reactive layer.
|
|
532
|
+
* Handlers append events here; drain() reads and clears atomically.
|
|
533
|
+
*
|
|
534
|
+
* Adapter:
|
|
535
|
+
* - MemoryJournal: in-process array (default)
|
|
536
|
+
*/
|
|
537
|
+
|
|
538
|
+
interface Journal {
|
|
539
|
+
/** Append an event to the journal. Safe to call from concurrent callbacks. */
|
|
540
|
+
append(event: GraphEvent): void;
|
|
541
|
+
/** Read all pending events and clear the journal atomically. */
|
|
542
|
+
drain(): GraphEvent[];
|
|
543
|
+
/** Number of pending events (for observability). */
|
|
544
|
+
readonly size: number;
|
|
545
|
+
}
|
|
546
|
+
declare class MemoryJournal implements Journal {
|
|
547
|
+
private buffer;
|
|
548
|
+
append(event: GraphEvent): void;
|
|
549
|
+
drain(): GraphEvent[];
|
|
550
|
+
get size(): number;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
export { type CommandSpec, DownstreamResult, GraphConfig, GraphEvent, type GraphMutation, type Journal, LiveGraph, LiveGraphHealth, LiveGraphSnapshot, MemoryJournal, NodeInfo, type ProcessHandlerOptions, ReactiveGraph, type ReactiveGraphValidationInput, type ResolveCallbackFn, type ScriptHandlerOptions, type ShellHandlerOptions, TaskConfig, TaskHandlerFn, TaskHandlerInput, UnreachableNodesResult, UnreachableTokensResult, UpstreamResult, type WebhookHandlerOptions, addNode, addProvides, addRequires, applyEvent, applyEvents, createCallbackHandler, createFireAndForgetHandler, createLiveGraph, createNoopHandler, createProcessHandler, createScriptHandler, createShellHandler, createWebhookHandler, disableNode, drainTokens, enableNode, getDownstream, getNode, getUnreachableNodes, getUnreachableTokens, getUpstream, injectTokens, inspect, mutateGraph, removeNode, removeProvides, removeRequires, resetNode, restore, snapshot, validateLiveGraph, validateReactiveGraph };
|
|
@@ -2,11 +2,9 @@ import { L as LiveGraph, N as NodeInfo, b as LiveGraphSnapshot, D as DownstreamR
|
|
|
2
2
|
export { B as BlockedTask, P as PendingTask, S as ScheduleResult, d as UnresolvedDependency } from '../types-CoW0gQl3.js';
|
|
3
3
|
import { T as TaskConfig, f as GraphEvent, G as GraphConfig } from '../types-BBhqYGhE.js';
|
|
4
4
|
export { c as ExecutionState, e as GraphEngineStore, g as GraphSettings } from '../types-BBhqYGhE.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export { L as LiveBoard, a as LiveCard, b as LiveCardsToReactiveOptions, c as LiveCardsToReactiveResult, d as ReactiveGraphOptions, f as TaskHandlerReturn, h as computeDataHash, g as createReactiveGraph, l as liveCardsToReactiveGraph } from '../live-cards-bridge-EQjytzI_.js';
|
|
5
|
+
import { R as ReactiveGraph, e as TaskHandlerInput, T as TaskHandlerFn } from '../live-cards-bridge-Ds28XR15.js';
|
|
6
|
+
export { L as LiveBoard, a as LiveCard, b as LiveCardsToReactiveOptions, c as LiveCardsToReactiveResult, d as ReactiveGraphOptions, f as TaskHandlerReturn, h as computeDataHash, g as createReactiveGraph, l as liveCardsToReactiveGraph, s as schedule } from '../live-cards-bridge-Ds28XR15.js';
|
|
8
7
|
import { a as GraphValidationResult } from '../validate-BAVzUJWa.js';
|
|
9
|
-
export { J as Journal, M as MemoryJournal } from '../journal-9HEgs7dU.js';
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* Continuous Event Graph — Core
|
|
@@ -327,6 +325,29 @@ declare function mutateGraph(live: LiveGraph, mutations: GraphMutation[]): LiveG
|
|
|
327
325
|
interface ResolveCallbackFn {
|
|
328
326
|
(callbackToken: string, data: Record<string, unknown>, errors?: string[]): void;
|
|
329
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Structured command specification for process-based handlers.
|
|
330
|
+
*
|
|
331
|
+
* Use this everywhere instead of raw command strings:
|
|
332
|
+
* - command: the executable name or path (no embedded args)
|
|
333
|
+
* - args: explicit argument array (no shell quoting needed)
|
|
334
|
+
*
|
|
335
|
+
* JSON config format:
|
|
336
|
+
* Old: { "command": "node path/to/exec.js --flag" } ← parsed for compat by parseCommandSpec
|
|
337
|
+
* New: { "command": "node", "args": ["path/to/exec.js", "--flag"] }
|
|
338
|
+
*/
|
|
339
|
+
interface CommandSpec {
|
|
340
|
+
/** Executable name or path. No embedded args. */
|
|
341
|
+
command: string;
|
|
342
|
+
/** Explicit argument list. No shell quoting needed. */
|
|
343
|
+
args?: string[];
|
|
344
|
+
/** Working directory. */
|
|
345
|
+
cwd?: string;
|
|
346
|
+
/** Additional environment variables merged over process.env. */
|
|
347
|
+
env?: Record<string, string>;
|
|
348
|
+
/** Timeout in milliseconds. */
|
|
349
|
+
timeoutMs?: number;
|
|
350
|
+
}
|
|
330
351
|
/**
|
|
331
352
|
* Wrap a plain async function as a TaskHandlerFn.
|
|
332
353
|
*
|
|
@@ -401,6 +422,36 @@ interface ShellHandlerOptions {
|
|
|
401
422
|
* ```
|
|
402
423
|
*/
|
|
403
424
|
declare function createShellHandler(options: ShellHandlerOptions): TaskHandlerFn;
|
|
425
|
+
interface ProcessHandlerOptions extends CommandSpec {
|
|
426
|
+
/** Map exit codes to result keys (default: 0 → success, non-zero → error) */
|
|
427
|
+
exitCodeMap?: Record<number, string>;
|
|
428
|
+
/** If true, include stdout/stderr/exitCode in the data payload */
|
|
429
|
+
captureOutput?: boolean;
|
|
430
|
+
/** Lazy getter for the resolveCallback function */
|
|
431
|
+
getResolve: () => ResolveCallbackFn;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Create a TaskHandlerFn that spawns a process using structured command + args.
|
|
435
|
+
*
|
|
436
|
+
* Unlike createShellHandler, this uses execFile — no ambient shell, no quoting
|
|
437
|
+
* issues, safe on Windows and Linux. ${taskName} is substituted in both the
|
|
438
|
+
* command and each arg string.
|
|
439
|
+
*
|
|
440
|
+
* Prefer this over createShellHandler for all programmatic invocations
|
|
441
|
+
* (task-executors, source fetchers, inference adapters).
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* ```ts
|
|
445
|
+
* const handler = createProcessHandler({
|
|
446
|
+
* command: 'node',
|
|
447
|
+
* args: ['scripts/fetch.js', '--task', '${taskName}'],
|
|
448
|
+
* cwd: '/app',
|
|
449
|
+
* captureOutput: true,
|
|
450
|
+
* getResolve: () => graph.resolveCallback.bind(graph),
|
|
451
|
+
* });
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
454
|
+
declare function createProcessHandler(options: ProcessHandlerOptions): TaskHandlerFn;
|
|
404
455
|
interface ScriptHandlerOptions {
|
|
405
456
|
/** Path to the script file */
|
|
406
457
|
scriptPath: string;
|
|
@@ -474,4 +525,29 @@ declare function createWebhookHandler(options: WebhookHandlerOptions): TaskHandl
|
|
|
474
525
|
*/
|
|
475
526
|
declare function createNoopHandler(getResolve: () => ResolveCallbackFn, staticData?: Record<string, unknown>): TaskHandlerFn;
|
|
476
527
|
|
|
477
|
-
|
|
528
|
+
/**
|
|
529
|
+
* Continuous Event Graph — Journal
|
|
530
|
+
*
|
|
531
|
+
* Append-only event log for the reactive layer.
|
|
532
|
+
* Handlers append events here; drain() reads and clears atomically.
|
|
533
|
+
*
|
|
534
|
+
* Adapter:
|
|
535
|
+
* - MemoryJournal: in-process array (default)
|
|
536
|
+
*/
|
|
537
|
+
|
|
538
|
+
interface Journal {
|
|
539
|
+
/** Append an event to the journal. Safe to call from concurrent callbacks. */
|
|
540
|
+
append(event: GraphEvent): void;
|
|
541
|
+
/** Read all pending events and clear the journal atomically. */
|
|
542
|
+
drain(): GraphEvent[];
|
|
543
|
+
/** Number of pending events (for observability). */
|
|
544
|
+
readonly size: number;
|
|
545
|
+
}
|
|
546
|
+
declare class MemoryJournal implements Journal {
|
|
547
|
+
private buffer;
|
|
548
|
+
append(event: GraphEvent): void;
|
|
549
|
+
drain(): GraphEvent[];
|
|
550
|
+
get size(): number;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
export { type CommandSpec, DownstreamResult, GraphConfig, GraphEvent, type GraphMutation, type Journal, LiveGraph, LiveGraphHealth, LiveGraphSnapshot, MemoryJournal, NodeInfo, type ProcessHandlerOptions, ReactiveGraph, type ReactiveGraphValidationInput, type ResolveCallbackFn, type ScriptHandlerOptions, type ShellHandlerOptions, TaskConfig, TaskHandlerFn, TaskHandlerInput, UnreachableNodesResult, UnreachableTokensResult, UpstreamResult, type WebhookHandlerOptions, addNode, addProvides, addRequires, applyEvent, applyEvents, createCallbackHandler, createFireAndForgetHandler, createLiveGraph, createNoopHandler, createProcessHandler, createScriptHandler, createShellHandler, createWebhookHandler, disableNode, drainTokens, enableNode, getDownstream, getNode, getUnreachableNodes, getUnreachableTokens, getUpstream, injectTokens, inspect, mutateGraph, removeNode, removeProvides, removeRequires, resetNode, restore, snapshot, validateLiveGraph, validateReactiveGraph };
|