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.
- package/board-live-cards-cli.js +6 -6
- package/browser/asset-integrity.json +10 -0
- package/browser/board-livecards-client.js +2 -0
- package/browser/board-livecards-client.js.map +1 -0
- package/browser/board-livecards-localstorage.js +10 -0
- package/browser/board-livecards-localstorage.js.map +1 -0
- package/browser/board-livegraph-engine.js +2 -1676
- package/browser/board-livegraph-engine.js.map +1 -1
- package/browser/card-compute.js +28 -28
- package/browser/compute-jsonata.js +5 -0
- package/browser/compute-jsonata.js.map +1 -0
- package/browser/live-cards.js +561 -129
- 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-CW5074xr.d.cts +318 -0
- package/dist/board-live-cards-public-hnZo0mAf.d.ts +318 -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 +12 -11
- package/dist/board-livegraph-runtime/index.d.ts +12 -11
- 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 +7623 -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 +27 -1
- package/dist/card-compute/index.d.ts +27 -1
- package/dist/card-compute/index.js +9 -7145
- package/dist/card-compute/index.js.map +1 -1
- package/dist/card-compute/jsonata-sync.cjs +7623 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +3 -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 +37 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.d.ts +37 -0
- package/dist/cli/browser-api/board-live-cards-browser-adapter.js +3 -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 +7623 -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/execution-adapter.cjs +3 -0
- package/dist/cli/node/execution-adapter.cjs.map +1 -0
- package/dist/cli/node/execution-adapter.d.cts +174 -0
- package/dist/cli/node/execution-adapter.d.ts +174 -0
- package/dist/cli/node/execution-adapter.js +3 -0
- package/dist/cli/node/execution-adapter.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 +7623 -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 +7623 -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 +3 -0
- package/dist/execution-refs.cjs.map +1 -0
- package/dist/execution-refs.d.cts +260 -0
- package/dist/execution-refs.d.ts +260 -0
- package/dist/execution-refs.js +3 -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 +7623 -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/server-runtime/index.cjs +9 -0
- package/dist/server-runtime/index.cjs.map +1 -0
- package/dist/server-runtime/index.d.cts +31 -0
- package/dist/server-runtime/index.d.ts +31 -0
- package/dist/server-runtime/index.js +9 -0
- package/dist/server-runtime/index.js.map +1 -0
- package/dist/server-runtime/jsonata-sync.cjs +7623 -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/step-machine-public/index.cjs +2 -0
- package/dist/step-machine-public/index.cjs.map +1 -0
- package/dist/step-machine-public/index.d.cts +159 -0
- package/dist/step-machine-public/index.d.ts +159 -0
- package/dist/step-machine-public/index.js +2 -0
- package/dist/step-machine-public/index.js.map +1 -0
- package/dist/step-machine-public/jsonata-sync.cjs +7623 -0
- package/dist/storage-refs.cjs +10 -0
- package/dist/storage-refs.cjs.map +1 -0
- package/dist/storage-refs.d.cts +93 -0
- package/dist/storage-refs.d.ts +93 -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/dist/types-B1ZRa4aI.d.ts +147 -0
- package/dist/types-BxEFcVK9.d.cts +147 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-t4.js +291 -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-http-test.js +357 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +25 -16
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-public.js +552 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +300 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +617 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker-sse-worker.js +48 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +366 -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 +70 -3
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +16 -11
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +9 -8
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +49 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +2 -6
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +4 -8
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +3 -7
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +9 -8
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +12 -17
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +2 -6
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +107 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +51 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +45 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +71 -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 +36 -187
- 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 +43 -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/cli/step-machine-demo/jsonata-init-board-cli.js +8 -13
- package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +33 -9
- package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +3 -1
- package/examples/cli/step-machine-demo/step2-double-cli.js +6 -12
- package/examples/cli/step-machine-demo/two-step-math.flow.yaml +66 -4
- package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +13 -5
- package/examples/example-board/agent-instructions.md +11 -5
- package/examples/example-board/cards/_index.json +47 -0
- package/examples/example-board/cards/card-market-prices.json +33 -9
- package/examples/example-board/cards/card-my-identity.json +30 -6
- package/examples/example-board/cards/card-portfolio-action.json +24 -6
- package/examples/example-board/cards/card-portfolio-intelligence.json +97 -0
- package/examples/example-board/cards/card-portfolio-risks.json +24 -6
- package/examples/example-board/cards/card-portfolio-value.json +38 -10
- package/examples/example-board/cards/card-portfolio.json +57 -13
- package/examples/example-board/cards/card-rebalance-impact.json +22 -6
- package/examples/example-board/cards/card-rebalance-sim.json +66 -15
- 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 +366 -68
- package/examples/example-board/demo-shell-localstorage.html +774 -0
- package/examples/example-board/demo-shell-with-server.html +20 -37
- package/examples/example-board/demo-shell.html +5 -4
- package/examples/example-board/demo-task-executor.js +273 -275
- 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 +46 -8
- package/schema/live-cards.schema.json +418 -132
- package/step-machine-cli.js +43 -310
- package/board-livecards-server-runtime.js +0 -1574
- package/browser/board-livecards-runtime-client.js +0 -263
- package/dist/cli/board-live-cards-cli.cjs +0 -10650
- 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 -10598
- 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
- package/examples/cli/step-machine-demo/two-step-math-handlers.js +0 -32
- package/examples/cli/step-machine-demo/two-step-mixed-handlers.js +0 -24
- package/examples/example-board/demo-shell-browser.html +0 -674
|
@@ -1,174 +1,416 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://nsreehari.github.io/boards/live-cards.schema.json",
|
|
4
|
-
|
|
5
4
|
"definitions": {
|
|
6
|
-
|
|
7
5
|
"bind_ref": {
|
|
8
6
|
"description": "A card data path reference, e.g. 'card_data.raw_quotes' or 'requires.upstream'",
|
|
9
7
|
"type": "string",
|
|
10
8
|
"pattern": "^(card_data|requires|fetched_sources|computed_values)(\\.|$)"
|
|
11
9
|
},
|
|
12
|
-
|
|
13
10
|
"bind_or_literal": {
|
|
14
11
|
"description": "A literal value or a bind reference object",
|
|
15
12
|
"oneOf": [
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
{
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "number"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "boolean"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"type": "array"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"bind": {
|
|
29
|
+
"$ref": "#/definitions/bind_ref"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"bind"
|
|
34
|
+
]
|
|
23
35
|
}
|
|
24
36
|
]
|
|
25
37
|
},
|
|
26
|
-
|
|
27
38
|
"compute_expr": {
|
|
28
39
|
"description": "A declarative JSON compute expression",
|
|
29
40
|
"type": "object",
|
|
30
|
-
"required": [
|
|
41
|
+
"required": [
|
|
42
|
+
"fn"
|
|
43
|
+
],
|
|
31
44
|
"properties": {
|
|
32
45
|
"fn": {
|
|
33
46
|
"type": "string",
|
|
34
47
|
"description": "Function name from the built-in vocabulary",
|
|
35
48
|
"enum": [
|
|
36
|
-
"sum",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
49
|
+
"sum",
|
|
50
|
+
"avg",
|
|
51
|
+
"min",
|
|
52
|
+
"max",
|
|
53
|
+
"count",
|
|
54
|
+
"first",
|
|
55
|
+
"last",
|
|
56
|
+
"add",
|
|
57
|
+
"sub",
|
|
58
|
+
"mul",
|
|
59
|
+
"div",
|
|
60
|
+
"round",
|
|
61
|
+
"abs",
|
|
62
|
+
"mod",
|
|
63
|
+
"gt",
|
|
64
|
+
"gte",
|
|
65
|
+
"lt",
|
|
66
|
+
"lte",
|
|
67
|
+
"eq",
|
|
68
|
+
"neq",
|
|
69
|
+
"if",
|
|
70
|
+
"and",
|
|
71
|
+
"or",
|
|
72
|
+
"not",
|
|
73
|
+
"concat",
|
|
74
|
+
"upper",
|
|
75
|
+
"lower",
|
|
76
|
+
"template",
|
|
77
|
+
"filter",
|
|
78
|
+
"pluck",
|
|
79
|
+
"map",
|
|
80
|
+
"sort",
|
|
81
|
+
"slice",
|
|
82
|
+
"flat",
|
|
83
|
+
"unique",
|
|
84
|
+
"group",
|
|
85
|
+
"get",
|
|
86
|
+
"default",
|
|
87
|
+
"now",
|
|
88
|
+
"diff_days",
|
|
89
|
+
"format_date"
|
|
44
90
|
]
|
|
45
91
|
},
|
|
46
92
|
"input": {
|
|
47
93
|
"description": "card_data.path, literal, array of inputs, or nested compute_expr",
|
|
48
94
|
"oneOf": [
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
|
|
95
|
+
{
|
|
96
|
+
"type": "string"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"type": "number"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"type": "boolean"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"type": "array"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"$ref": "#/definitions/compute_expr"
|
|
109
|
+
}
|
|
54
110
|
]
|
|
55
111
|
},
|
|
56
|
-
"field": {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
112
|
+
"field": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"description": "For pluck/sum/group — the object key to extract"
|
|
115
|
+
},
|
|
116
|
+
"where": {
|
|
117
|
+
"$ref": "#/definitions/compute_expr",
|
|
118
|
+
"description": "For filter — predicate expression ($ = current item)"
|
|
119
|
+
},
|
|
120
|
+
"cond": {
|
|
121
|
+
"$ref": "#/definitions/compute_expr",
|
|
122
|
+
"description": "For if — condition expression"
|
|
123
|
+
},
|
|
124
|
+
"then": {
|
|
125
|
+
"description": "For if — value when cond is truthy"
|
|
126
|
+
},
|
|
127
|
+
"else": {
|
|
128
|
+
"description": "For if — value when cond is falsy"
|
|
129
|
+
},
|
|
130
|
+
"format": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"description": "For format_date — date format string"
|
|
133
|
+
}
|
|
62
134
|
}
|
|
63
135
|
},
|
|
64
|
-
|
|
65
136
|
"meta": {
|
|
66
137
|
"type": "object",
|
|
67
138
|
"properties": {
|
|
68
|
-
"title": {
|
|
69
|
-
|
|
139
|
+
"title": {
|
|
140
|
+
"type": "string"
|
|
141
|
+
},
|
|
142
|
+
"tags": {
|
|
143
|
+
"type": "array",
|
|
144
|
+
"items": {
|
|
145
|
+
"type": "string"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
70
148
|
}
|
|
71
149
|
},
|
|
72
|
-
|
|
73
150
|
"requires": {
|
|
74
151
|
"type": "array",
|
|
75
|
-
"items": {
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "string"
|
|
154
|
+
},
|
|
76
155
|
"description": "IDs of upstream nodes this node depends on"
|
|
77
156
|
},
|
|
78
|
-
|
|
79
157
|
"provides": {
|
|
80
158
|
"type": "array",
|
|
81
159
|
"items": {
|
|
82
160
|
"type": "object",
|
|
83
|
-
"required": [
|
|
161
|
+
"required": [
|
|
162
|
+
"bindTo",
|
|
163
|
+
"ref"
|
|
164
|
+
],
|
|
84
165
|
"properties": {
|
|
85
|
-
"bindTo": {
|
|
86
|
-
|
|
166
|
+
"bindTo": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"description": "Token name published downstream"
|
|
169
|
+
},
|
|
170
|
+
"ref": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"description": "Path to read value from (card_data.*, requires.*, fetched_sources.*, computed_values.*)"
|
|
173
|
+
}
|
|
87
174
|
}
|
|
88
175
|
},
|
|
89
176
|
"description": "Explicit bindings exposing computed or card_data values downstream as named tokens"
|
|
90
177
|
},
|
|
91
|
-
|
|
92
178
|
"compute_step": {
|
|
93
179
|
"description": "A single ordered compute step: reads card_data.*/requires.*/computed_values.*, writes to computed_values[bindTo]",
|
|
94
180
|
"type": "object",
|
|
95
|
-
"required": [
|
|
181
|
+
"required": [
|
|
182
|
+
"bindTo",
|
|
183
|
+
"expr"
|
|
184
|
+
],
|
|
96
185
|
"properties": {
|
|
97
|
-
"bindTo": {
|
|
98
|
-
|
|
186
|
+
"bindTo": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"description": "Key in computed_values to write result"
|
|
189
|
+
},
|
|
190
|
+
"expr": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"description": "JSONata expression evaluated against { card_data, requires, fetched_sources, computed_values }"
|
|
193
|
+
}
|
|
99
194
|
}
|
|
100
195
|
},
|
|
101
|
-
|
|
102
196
|
"source_def": {
|
|
103
197
|
"description": "One source entry. The engine requires 'bindTo' (compute namespace key) and 'outputFile' (delivery signal path). bindTo and outputFile must be unique across all source_defs in a card. Every other property is yours — add whatever your task-executor needs: kind, url, headers, mailbox, channel, model, query, etc. The full object is passed verbatim as the --in JSON to the executor.",
|
|
104
198
|
"type": "object",
|
|
105
|
-
"required": [
|
|
199
|
+
"required": [
|
|
200
|
+
"bindTo",
|
|
201
|
+
"outputFile"
|
|
202
|
+
],
|
|
106
203
|
"additionalProperties": true,
|
|
107
204
|
"properties": {
|
|
108
|
-
"bindTo":
|
|
109
|
-
|
|
205
|
+
"bindTo": {
|
|
206
|
+
"type": "string",
|
|
207
|
+
"description": "Key under fetched_sources.* available in compute expressions"
|
|
208
|
+
},
|
|
209
|
+
"outputFile": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "Board-relative path the executor writes its JSON result to. Presence of this file signals delivery."
|
|
212
|
+
},
|
|
110
213
|
"projections": {
|
|
111
214
|
"type": "object",
|
|
112
215
|
"description": "Named data projections from card_data or requires, evaluated before the executor is called. Each key is a ref name; each value is a JSONata expression rooted at card_data or requires. The resolved values are passed to the executor as _projections. fetched_sources, computed_values, and source_defs are not accessible here — sources run before those exist.",
|
|
113
|
-
"additionalProperties": {
|
|
216
|
+
"additionalProperties": {
|
|
217
|
+
"type": "string"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"optionalForCompletionGating": {
|
|
221
|
+
"type": "boolean",
|
|
222
|
+
"default": false,
|
|
223
|
+
"description": "When true this source does not gate card completion. Default false when absent, so source_defs are completion-gating by default."
|
|
114
224
|
},
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
225
|
+
"timeout": {
|
|
226
|
+
"type": "integer",
|
|
227
|
+
"minimum": 0,
|
|
228
|
+
"default": 120000,
|
|
229
|
+
"description": "Executor/script timeout in ms. Default: 120 000 (2 min)."
|
|
230
|
+
},
|
|
231
|
+
"script": {
|
|
232
|
+
"type": "string",
|
|
233
|
+
"description": "Legacy direct-run: shell command executed when no .task-executor is registered. stdout is captured as the result."
|
|
234
|
+
}
|
|
118
235
|
}
|
|
119
236
|
},
|
|
120
|
-
|
|
121
237
|
"render_element": {
|
|
122
238
|
"type": "object",
|
|
123
|
-
"required": [
|
|
239
|
+
"required": [
|
|
240
|
+
"kind"
|
|
241
|
+
],
|
|
124
242
|
"properties": {
|
|
125
|
-
"id":
|
|
126
|
-
|
|
127
|
-
"
|
|
128
|
-
|
|
129
|
-
|
|
243
|
+
"id": {
|
|
244
|
+
"type": "string",
|
|
245
|
+
"description": "Optional element ID for targeted updates"
|
|
246
|
+
},
|
|
247
|
+
"kind": {
|
|
248
|
+
"enum": [
|
|
249
|
+
"metric",
|
|
250
|
+
"table",
|
|
251
|
+
"editable-table",
|
|
252
|
+
"chart",
|
|
253
|
+
"form",
|
|
254
|
+
"filter",
|
|
255
|
+
"list",
|
|
256
|
+
"notes",
|
|
257
|
+
"todo",
|
|
258
|
+
"alert",
|
|
259
|
+
"narrative",
|
|
260
|
+
"badge",
|
|
261
|
+
"text",
|
|
262
|
+
"markdown",
|
|
263
|
+
"ref",
|
|
264
|
+
"custom",
|
|
265
|
+
"actions"
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
"label": {
|
|
269
|
+
"type": "string",
|
|
270
|
+
"description": "Heading above this element"
|
|
271
|
+
},
|
|
272
|
+
"className": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"description": "Bootstrap grid class, e.g. 'col-12 col-md-6'"
|
|
275
|
+
},
|
|
276
|
+
"visible": {
|
|
277
|
+
"type": "string",
|
|
278
|
+
"description": "card_data/requires/fetched_sources/computed_values path — element shown only if truthy"
|
|
130
279
|
},
|
|
131
|
-
"label": { "type": "string", "description": "Heading above this element" },
|
|
132
|
-
"className": { "type": "string", "description": "Bootstrap grid class, e.g. 'col-12 col-md-6'" },
|
|
133
|
-
"visible": { "type": "string", "description": "card_data/requires/fetched_sources/computed_values path — element shown only if truthy" },
|
|
134
280
|
"data": {
|
|
135
281
|
"type": "object",
|
|
136
282
|
"properties": {
|
|
137
|
-
"bind":
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
"
|
|
146
|
-
|
|
283
|
+
"bind": {
|
|
284
|
+
"$ref": "#/definitions/bind_ref",
|
|
285
|
+
"description": "card_data/requires/fetched_sources/computed_values path to read data from"
|
|
286
|
+
},
|
|
287
|
+
"writeTo": {
|
|
288
|
+
"$ref": "#/definitions/bind_ref",
|
|
289
|
+
"description": "card_data path for user input (form, filter, todo, notes)"
|
|
290
|
+
},
|
|
291
|
+
"columns": {
|
|
292
|
+
"type": "array",
|
|
293
|
+
"items": {
|
|
294
|
+
"type": "string"
|
|
295
|
+
},
|
|
296
|
+
"description": "table: visible columns"
|
|
297
|
+
},
|
|
298
|
+
"maxRows": {
|
|
299
|
+
"type": "integer",
|
|
300
|
+
"description": "table/list: max rows to display"
|
|
301
|
+
},
|
|
302
|
+
"sortable": {
|
|
303
|
+
"type": "boolean",
|
|
304
|
+
"default": true,
|
|
305
|
+
"description": "table: enable click-to-sort"
|
|
306
|
+
},
|
|
307
|
+
"placeholder": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"description": "Empty-state message"
|
|
310
|
+
},
|
|
311
|
+
"chartType": {
|
|
312
|
+
"enum": [
|
|
313
|
+
"bar",
|
|
314
|
+
"line",
|
|
315
|
+
"pie",
|
|
316
|
+
"doughnut"
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
"chartOptions": {
|
|
320
|
+
"type": "object",
|
|
321
|
+
"description": "Chart.js options passthrough"
|
|
322
|
+
},
|
|
323
|
+
"fields": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"description": "JSON Schema for form/filter fields"
|
|
326
|
+
},
|
|
327
|
+
"thresholds": {
|
|
147
328
|
"type": "object",
|
|
148
329
|
"properties": {
|
|
149
|
-
"green": {
|
|
150
|
-
|
|
330
|
+
"green": {
|
|
331
|
+
"type": "string"
|
|
332
|
+
},
|
|
333
|
+
"amber": {
|
|
334
|
+
"type": "string"
|
|
335
|
+
}
|
|
151
336
|
}
|
|
152
337
|
},
|
|
153
|
-
"colorMap": {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
338
|
+
"colorMap": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"description": "badge: value → Bootstrap color"
|
|
341
|
+
},
|
|
342
|
+
"style": {
|
|
343
|
+
"enum": [
|
|
344
|
+
"heading",
|
|
345
|
+
"muted",
|
|
346
|
+
"default"
|
|
347
|
+
],
|
|
348
|
+
"description": "text: display style"
|
|
349
|
+
},
|
|
350
|
+
"upload": {
|
|
351
|
+
"type": "boolean",
|
|
352
|
+
"default": true,
|
|
353
|
+
"description": "file-upload: show drop zone (false = read-only file list)"
|
|
354
|
+
},
|
|
355
|
+
"accept": {
|
|
356
|
+
"type": "array",
|
|
357
|
+
"items": {
|
|
358
|
+
"type": "string"
|
|
359
|
+
},
|
|
360
|
+
"description": "file-upload: allowed extensions"
|
|
361
|
+
},
|
|
362
|
+
"multiple": {
|
|
363
|
+
"type": "boolean",
|
|
364
|
+
"default": true,
|
|
365
|
+
"description": "file-upload: allow multiple files"
|
|
366
|
+
},
|
|
367
|
+
"fileAttach": {
|
|
368
|
+
"type": "boolean",
|
|
369
|
+
"default": false,
|
|
370
|
+
"description": "chat: enable inline file attachments"
|
|
371
|
+
},
|
|
372
|
+
"fileAccept": {
|
|
373
|
+
"type": "array",
|
|
374
|
+
"items": {
|
|
375
|
+
"type": "string"
|
|
376
|
+
},
|
|
377
|
+
"description": "chat: allowed attachment extensions"
|
|
378
|
+
},
|
|
379
|
+
"buttons": {
|
|
161
380
|
"type": "array",
|
|
162
381
|
"description": "actions: button definitions",
|
|
163
382
|
"items": {
|
|
164
383
|
"type": "object",
|
|
165
|
-
"required": [
|
|
384
|
+
"required": [
|
|
385
|
+
"id",
|
|
386
|
+
"label"
|
|
387
|
+
],
|
|
166
388
|
"properties": {
|
|
167
|
-
"id":
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
"
|
|
171
|
-
|
|
389
|
+
"id": {
|
|
390
|
+
"type": "string"
|
|
391
|
+
},
|
|
392
|
+
"label": {
|
|
393
|
+
"type": "string"
|
|
394
|
+
},
|
|
395
|
+
"style": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"description": "Bootstrap button variant, e.g. 'success', 'outline-danger'"
|
|
398
|
+
},
|
|
399
|
+
"size": {
|
|
400
|
+
"type": "string",
|
|
401
|
+
"default": "sm"
|
|
402
|
+
},
|
|
403
|
+
"disabled": {
|
|
404
|
+
"oneOf": [
|
|
405
|
+
{
|
|
406
|
+
"type": "boolean"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"type": "string",
|
|
410
|
+
"description": "card_data/requires/fetched_sources/computed_values path — truthy = disabled"
|
|
411
|
+
}
|
|
412
|
+
]
|
|
413
|
+
}
|
|
172
414
|
}
|
|
173
415
|
}
|
|
174
416
|
}
|
|
@@ -176,15 +418,18 @@
|
|
|
176
418
|
}
|
|
177
419
|
}
|
|
178
420
|
},
|
|
179
|
-
|
|
180
421
|
"view": {
|
|
181
422
|
"type": "object",
|
|
182
|
-
"required": [
|
|
423
|
+
"required": [
|
|
424
|
+
"elements"
|
|
425
|
+
],
|
|
183
426
|
"properties": {
|
|
184
427
|
"elements": {
|
|
185
428
|
"type": "array",
|
|
186
429
|
"minItems": 1,
|
|
187
|
-
"items": {
|
|
430
|
+
"items": {
|
|
431
|
+
"$ref": "#/definitions/render_element"
|
|
432
|
+
}
|
|
188
433
|
},
|
|
189
434
|
"layout": {
|
|
190
435
|
"type": "object",
|
|
@@ -192,17 +437,31 @@
|
|
|
192
437
|
"board": {
|
|
193
438
|
"type": "object",
|
|
194
439
|
"properties": {
|
|
195
|
-
"col":
|
|
196
|
-
|
|
440
|
+
"col": {
|
|
441
|
+
"type": "integer",
|
|
442
|
+
"minimum": 1,
|
|
443
|
+
"maximum": 12
|
|
444
|
+
},
|
|
445
|
+
"order": {
|
|
446
|
+
"type": "integer"
|
|
447
|
+
}
|
|
197
448
|
}
|
|
198
449
|
},
|
|
199
450
|
"canvas": {
|
|
200
451
|
"type": "object",
|
|
201
452
|
"properties": {
|
|
202
|
-
"x": {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"
|
|
453
|
+
"x": {
|
|
454
|
+
"type": "number"
|
|
455
|
+
},
|
|
456
|
+
"y": {
|
|
457
|
+
"type": "number"
|
|
458
|
+
},
|
|
459
|
+
"w": {
|
|
460
|
+
"type": "number"
|
|
461
|
+
},
|
|
462
|
+
"h": {
|
|
463
|
+
"type": "number"
|
|
464
|
+
}
|
|
206
465
|
}
|
|
207
466
|
}
|
|
208
467
|
}
|
|
@@ -210,26 +469,46 @@
|
|
|
210
469
|
"features": {
|
|
211
470
|
"type": "object",
|
|
212
471
|
"properties": {
|
|
213
|
-
"chat":
|
|
214
|
-
|
|
215
|
-
|
|
472
|
+
"chat": {
|
|
473
|
+
"type": "boolean",
|
|
474
|
+
"default": false
|
|
475
|
+
},
|
|
476
|
+
"notes": {
|
|
477
|
+
"type": "boolean",
|
|
478
|
+
"default": false
|
|
479
|
+
},
|
|
480
|
+
"refresh": {
|
|
481
|
+
"type": "boolean",
|
|
482
|
+
"default": true
|
|
483
|
+
}
|
|
216
484
|
}
|
|
217
485
|
}
|
|
218
486
|
}
|
|
219
487
|
}
|
|
220
488
|
},
|
|
221
|
-
|
|
222
489
|
"title": "LiveCard",
|
|
223
490
|
"description": "A unified card node. Behavior depends on which sections are present (source_defs, compute, view, etc.)",
|
|
224
491
|
"type": "object",
|
|
225
|
-
"required": [
|
|
492
|
+
"required": [
|
|
493
|
+
"id"
|
|
494
|
+
],
|
|
226
495
|
"additionalProperties": false,
|
|
227
496
|
"properties": {
|
|
228
|
-
"id":
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
"
|
|
232
|
-
|
|
497
|
+
"id": {
|
|
498
|
+
"type": "string"
|
|
499
|
+
},
|
|
500
|
+
"requires": {
|
|
501
|
+
"$ref": "#/definitions/requires"
|
|
502
|
+
},
|
|
503
|
+
"provides": {
|
|
504
|
+
"$ref": "#/definitions/provides"
|
|
505
|
+
},
|
|
506
|
+
"meta": {
|
|
507
|
+
"$ref": "#/definitions/meta"
|
|
508
|
+
},
|
|
509
|
+
"view": {
|
|
510
|
+
"$ref": "#/definitions/view"
|
|
511
|
+
},
|
|
233
512
|
"card_data": {
|
|
234
513
|
"type": "object",
|
|
235
514
|
"description": "Authored card data and runtime metadata. Includes uploaded-file metadata maintained by host handlers and inference evaluation results.",
|
|
@@ -239,9 +518,15 @@
|
|
|
239
518
|
"description": "Optional uploaded-file metadata maintained by host handlers. Stored name is normalized and serial-prefixed (for example 001-my_file.pdf).",
|
|
240
519
|
"items": {
|
|
241
520
|
"type": "object",
|
|
242
|
-
"required": [
|
|
521
|
+
"required": [
|
|
522
|
+
"name",
|
|
523
|
+
"stored_name"
|
|
524
|
+
],
|
|
243
525
|
"properties": {
|
|
244
|
-
"name": {
|
|
526
|
+
"name": {
|
|
527
|
+
"type": "string",
|
|
528
|
+
"minLength": 1
|
|
529
|
+
},
|
|
245
530
|
"stored_name": {
|
|
246
531
|
"type": "string",
|
|
247
532
|
"minLength": 5,
|
|
@@ -250,28 +535,29 @@
|
|
|
250
535
|
},
|
|
251
536
|
"size": {
|
|
252
537
|
"oneOf": [
|
|
253
|
-
{
|
|
254
|
-
|
|
538
|
+
{
|
|
539
|
+
"type": "integer",
|
|
540
|
+
"minimum": 0
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"type": "null"
|
|
544
|
+
}
|
|
255
545
|
]
|
|
256
546
|
},
|
|
257
|
-
"mime_type": {
|
|
258
|
-
|
|
259
|
-
|
|
547
|
+
"mime_type": {
|
|
548
|
+
"type": "string"
|
|
549
|
+
},
|
|
550
|
+
"path": {
|
|
551
|
+
"type": "string",
|
|
552
|
+
"pattern": "^[^\\s]+/files/[0-9]{3,}-[a-z0-9._-]+$"
|
|
553
|
+
},
|
|
554
|
+
"uploaded_at": {
|
|
555
|
+
"type": "string",
|
|
556
|
+
"format": "date-time"
|
|
557
|
+
}
|
|
260
558
|
},
|
|
261
559
|
"additionalProperties": false
|
|
262
560
|
}
|
|
263
|
-
},
|
|
264
|
-
"llm_task_completion_inference": {
|
|
265
|
-
"type": "object",
|
|
266
|
-
"description": "Runtime state written by the inference adapter (advanced/undocumented). Prefer the standard source_defs → compute → provides pattern for LLM-based signals.",
|
|
267
|
-
"properties": {
|
|
268
|
-
"inferenceRequested": { "type": "string", "format": "date-time", "description": "Timestamp when the latest inference request was initiated" },
|
|
269
|
-
"inferenceCompletedAt": { "type": "string", "format": "date-time", "description": "Timestamp when the latest inference request completed" },
|
|
270
|
-
"isTaskCompleted": { "type": "boolean", "description": "Whether the task is considered complete by the adapter" },
|
|
271
|
-
"reasoning": { "type": "string", "description": "Explanation of completion decision" },
|
|
272
|
-
"evidence": { "type": "array", "description": "Supporting evidence from source_defs/compute" }
|
|
273
|
-
},
|
|
274
|
-
"additionalProperties": true
|
|
275
561
|
}
|
|
276
562
|
},
|
|
277
563
|
"additionalProperties": true
|
|
@@ -279,16 +565,16 @@
|
|
|
279
565
|
"source_defs": {
|
|
280
566
|
"type": "array",
|
|
281
567
|
"description": "Source entries. Each entry is passed verbatim to the board's .task-executor (registered via init --task-executor) as the --in JSON file. The executor fetches/generates the data and writes JSON to --out. If no executor is registered, the built-in executor runs the entry's 'cli' command directly. Sources gate completion by default. Set optionalForCompletionGating: true for enrichment-only source_defs that should not block task-completed.",
|
|
282
|
-
"items": {
|
|
568
|
+
"items": {
|
|
569
|
+
"$ref": "#/definitions/source_def"
|
|
570
|
+
}
|
|
283
571
|
},
|
|
284
572
|
"compute": {
|
|
285
573
|
"type": "array",
|
|
286
574
|
"description": "Ordered array of compute steps. Each reads card_data.*/requires.*/fetched_sources.*/computed_values.* and writes to ephemeral computed_values[bindTo].",
|
|
287
|
-
"items": {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
"type": "string",
|
|
291
|
-
"description": "Advanced/undocumented: invokes a registered inference adapter instead of the default source-delivery completion gate. Prefer the standard pattern: use an LLM-backed source, compute a verdict token, and publish it via provides."
|
|
575
|
+
"items": {
|
|
576
|
+
"$ref": "#/definitions/compute_step"
|
|
577
|
+
}
|
|
292
578
|
}
|
|
293
579
|
}
|
|
294
580
|
}
|