@osolmaz/pi-workflows 0.15.3 → 0.16.1

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 (207) hide show
  1. package/README.md +24 -8
  2. package/dist/channels/adapter-entry.d.ts +3 -0
  3. package/dist/channels/adapter-entry.js +203 -0
  4. package/dist/channels/adapter-entry.js.map +1 -0
  5. package/dist/channels/config.d.ts +43 -0
  6. package/dist/channels/config.js +234 -0
  7. package/dist/channels/config.js.map +1 -0
  8. package/dist/channels/protocol.d.ts +94 -0
  9. package/dist/channels/protocol.js +219 -0
  10. package/dist/channels/protocol.js.map +1 -0
  11. package/dist/channels/telegram.d.ts +46 -0
  12. package/dist/channels/telegram.js +285 -0
  13. package/dist/channels/telegram.js.map +1 -0
  14. package/dist/client/activity.d.ts +2 -0
  15. package/dist/client/activity.js +6 -0
  16. package/dist/client/activity.js.map +1 -0
  17. package/dist/client/client.d.ts +102 -0
  18. package/dist/client/client.js +737 -0
  19. package/dist/client/client.js.map +1 -0
  20. package/dist/client/index.d.ts +3 -0
  21. package/dist/client/index.js +3 -0
  22. package/dist/client/index.js.map +1 -0
  23. package/dist/client/materialize.d.ts +7 -0
  24. package/dist/client/materialize.js +177 -0
  25. package/dist/client/materialize.js.map +1 -0
  26. package/dist/client/protocol.d.ts +60 -0
  27. package/dist/client/protocol.js +275 -0
  28. package/dist/client/protocol.js.map +1 -0
  29. package/dist/client/resolver.d.ts +23 -0
  30. package/dist/client/resolver.js +2 -0
  31. package/dist/client/resolver.js.map +1 -0
  32. package/dist/client/view.d.ts +144 -0
  33. package/dist/client/view.js +3 -0
  34. package/dist/client/view.js.map +1 -0
  35. package/dist/controllers/index.d.ts +1 -1
  36. package/dist/controllers/index.js.map +1 -1
  37. package/dist/controllers/sqlite.d.ts +47 -157
  38. package/dist/controllers/sqlite.js +230 -406
  39. package/dist/controllers/sqlite.js.map +1 -1
  40. package/dist/extension/index.d.ts +23 -1
  41. package/dist/extension/index.js +734 -555
  42. package/dist/extension/index.js.map +1 -1
  43. package/dist/extension/recorder.d.ts +95 -0
  44. package/dist/extension/recorder.js +530 -0
  45. package/dist/extension/recorder.js.map +1 -0
  46. package/dist/extension/remote-recorder-store.d.ts +25 -0
  47. package/dist/extension/remote-recorder-store.js +81 -0
  48. package/dist/extension/remote-recorder-store.js.map +1 -0
  49. package/dist/extension/session-events.d.ts +134 -0
  50. package/dist/extension/session-events.js +60 -0
  51. package/dist/extension/session-events.js.map +1 -0
  52. package/dist/extension/session-view.d.ts +9 -2
  53. package/dist/extension/session-view.js +117 -51
  54. package/dist/extension/session-view.js.map +1 -1
  55. package/dist/extension/step-message.d.ts +6 -4
  56. package/dist/extension/step-message.js +12 -6
  57. package/dist/extension/step-message.js.map +1 -1
  58. package/dist/extension/widget.d.ts +3 -2
  59. package/dist/extension/widget.js +41 -24
  60. package/dist/extension/widget.js.map +1 -1
  61. package/dist/extension/workflow-message-coordinator.d.ts +27 -0
  62. package/dist/extension/workflow-message-coordinator.js +294 -0
  63. package/dist/extension/workflow-message-coordinator.js.map +1 -0
  64. package/dist/host/channel-effects.d.ts +72 -0
  65. package/dist/host/channel-effects.js +271 -0
  66. package/dist/host/channel-effects.js.map +1 -0
  67. package/dist/host/channel-supervisor.d.ts +21 -0
  68. package/dist/host/channel-supervisor.js +54 -0
  69. package/dist/host/channel-supervisor.js.map +1 -0
  70. package/dist/host/child-worker-supervisor.js +1 -1
  71. package/dist/host/child-worker-supervisor.js.map +1 -1
  72. package/dist/host/resolver-entry.d.ts +2 -23
  73. package/dist/host/resolver-entry.js +1 -1
  74. package/dist/host/resolver-entry.js.map +1 -1
  75. package/dist/host/runner.d.ts +54 -8
  76. package/dist/host/runner.js +1997 -305
  77. package/dist/host/runner.js.map +1 -1
  78. package/dist/host/state.d.ts +25 -19
  79. package/dist/host/state.js +303 -89
  80. package/dist/host/state.js.map +1 -1
  81. package/dist/host/view.d.ts +83 -0
  82. package/dist/host/view.js +975 -0
  83. package/dist/host/view.js.map +1 -0
  84. package/dist/host/worker-protocol.js +1 -1
  85. package/dist/host/worker-protocol.js.map +1 -1
  86. package/dist/state/database.d.ts +1 -0
  87. package/dist/state/database.js +15 -0
  88. package/dist/state/database.js.map +1 -1
  89. package/dist/state/prune.d.ts +3 -1
  90. package/dist/state/prune.js +9 -33
  91. package/dist/state/prune.js.map +1 -1
  92. package/dist/state/schema.js +88 -98
  93. package/dist/state/schema.js.map +1 -1
  94. package/dist/state/workflow-messages.d.ts +96 -0
  95. package/dist/state/workflow-messages.js +335 -0
  96. package/dist/state/workflow-messages.js.map +1 -0
  97. package/dist/viewer/backup.d.ts +2 -0
  98. package/dist/viewer/backup.js +28 -0
  99. package/dist/viewer/backup.js.map +1 -0
  100. package/dist/viewer/cli.d.ts +4 -0
  101. package/dist/viewer/cli.js +150 -170
  102. package/dist/viewer/cli.js.map +1 -1
  103. package/dist/viewer/render.js +1 -1
  104. package/dist/viewer/render.js.map +1 -1
  105. package/dist/viewer/tui.d.ts +5 -7
  106. package/dist/viewer/tui.js +245 -108
  107. package/dist/viewer/tui.js.map +1 -1
  108. package/dist/workflows/human-decision.d.ts +2 -0
  109. package/dist/workflows/human-decision.js +8 -2
  110. package/dist/workflows/human-decision.js.map +1 -1
  111. package/dist/workflows/index.d.ts +1 -1
  112. package/dist/workflows/index.js.map +1 -1
  113. package/dist/workflows/settings.d.ts +1 -8
  114. package/dist/workflows/settings.js.map +1 -1
  115. package/dist/workflows/store.d.ts +67 -20
  116. package/dist/workflows/store.js +451 -378
  117. package/dist/workflows/store.js.map +1 -1
  118. package/dist/workflows/tool-input.d.ts +21 -0
  119. package/dist/workflows/tool-input.js +23 -1
  120. package/dist/workflows/tool-input.js.map +1 -1
  121. package/dist/workflows/types.d.ts +5 -5
  122. package/dist/workflows/workflow-message-content.d.ts +38 -0
  123. package/dist/workflows/workflow-message-content.js +157 -0
  124. package/dist/workflows/workflow-message-content.js.map +1 -0
  125. package/docs/2026-08-18-herdr-piw-plan.md +2 -1
  126. package/docs/2026-08-20-durable-workflow-launch-plan.md +1 -1
  127. package/docs/2026-08-25-workflow-follow-ups.md +26 -50
  128. package/docs/2026-08-30-out-of-process-workflow-host-plan.md +3 -3
  129. package/docs/2026-09-01-restore-session-delivery-controls-plan.md +4 -0
  130. package/docs/2026-09-01-unified-workflow-client-plan.md +385 -0
  131. package/docs/2026-09-02-installed-live-e2e-plan.md +239 -0
  132. package/docs/2026-09-02-unify-workflow-messages-plan.md +562 -0
  133. package/docs/DEFERRED_TURNS.md +66 -294
  134. package/docs/HUMAN_DECISIONS.md +29 -30
  135. package/docs/HUMAN_DECISION_PRESENTATIONS.md +4 -11
  136. package/docs/SQLITE_STATE.md +31 -25
  137. package/docs/WORKFLOW_HOST.md +155 -77
  138. package/docs/WORKFLOW_STEP_MESSAGES.md +166 -75
  139. package/docs/development.md +2 -1
  140. package/docs/live-replay-protocol.md +74 -132
  141. package/docs/tui-viewer.md +12 -14
  142. package/docs/workflows.md +78 -28
  143. package/herdr-plugin.toml +1 -1
  144. package/package.json +9 -3
  145. package/plugins/herdr/viewer.mjs +14 -5
  146. package/protocol/client.v1.schema.json +137 -0
  147. package/protocol/fixtures/client-v1.json +23 -0
  148. package/src/channels/adapter-entry.ts +220 -0
  149. package/src/channels/config.ts +296 -0
  150. package/src/channels/protocol.ts +333 -0
  151. package/src/channels/telegram.ts +335 -0
  152. package/src/client/activity.ts +6 -0
  153. package/src/client/client.ts +939 -0
  154. package/src/client/index.ts +25 -0
  155. package/src/client/materialize.ts +228 -0
  156. package/src/client/protocol.ts +333 -0
  157. package/src/client/resolver.ts +26 -0
  158. package/src/client/view.ts +163 -0
  159. package/src/controllers/index.ts +0 -1
  160. package/src/controllers/sqlite.ts +339 -808
  161. package/src/extension/index.ts +853 -665
  162. package/src/extension/recorder.ts +687 -0
  163. package/src/extension/remote-recorder-store.ts +126 -0
  164. package/src/extension/session-events.ts +119 -0
  165. package/src/extension/session-view.ts +157 -51
  166. package/src/extension/step-message.ts +19 -9
  167. package/src/extension/widget.ts +53 -25
  168. package/src/extension/workflow-message-coordinator.ts +334 -0
  169. package/src/host/channel-effects.ts +465 -0
  170. package/src/host/channel-supervisor.ts +73 -0
  171. package/src/host/child-worker-supervisor.ts +1 -1
  172. package/src/host/resolver-entry.ts +11 -26
  173. package/src/host/runner.ts +2639 -450
  174. package/src/host/state.ts +404 -137
  175. package/src/host/view.ts +1212 -0
  176. package/src/host/worker-protocol.ts +1 -1
  177. package/src/state/database.ts +13 -0
  178. package/src/state/prune.ts +14 -42
  179. package/src/state/schema.ts +88 -98
  180. package/src/state/workflow-messages.ts +548 -0
  181. package/src/viewer/backup.ts +29 -0
  182. package/src/viewer/cli.ts +171 -185
  183. package/src/viewer/render.ts +1 -5
  184. package/src/viewer/tui.ts +261 -124
  185. package/src/workflows/human-decision.ts +18 -2
  186. package/src/workflows/index.ts +0 -1
  187. package/src/workflows/settings.ts +1 -20
  188. package/src/workflows/store.ts +650 -511
  189. package/src/workflows/tool-input.ts +36 -1
  190. package/src/workflows/types.ts +5 -5
  191. package/src/workflows/workflow-message-content.ts +197 -0
  192. package/dist/extension/decision-channels.d.ts +0 -134
  193. package/dist/extension/decision-channels.js +0 -1307
  194. package/dist/extension/decision-channels.js.map +0 -1
  195. package/dist/host/client.d.ts +0 -48
  196. package/dist/host/client.js +0 -216
  197. package/dist/host/client.js.map +0 -1
  198. package/dist/host/protocol.d.ts +0 -38
  199. package/dist/host/protocol.js +0 -156
  200. package/dist/host/protocol.js.map +0 -1
  201. package/dist/viewer/watch.d.ts +0 -6
  202. package/dist/viewer/watch.js +0 -46
  203. package/dist/viewer/watch.js.map +0 -1
  204. package/src/extension/decision-channels.ts +0 -1826
  205. package/src/host/client.ts +0 -293
  206. package/src/host/protocol.ts +0 -196
  207. package/src/viewer/watch.ts +0 -51
@@ -1,142 +1,279 @@
1
- import { WorkflowRunStore } from "../workflows/store.js";
2
- import { maxDetailScroll, renderRunDetailLines, renderRunListLines, } from "./render.js";
3
- import { watchStateDatabase } from "./watch.js";
1
+ import { materializeRunView } from "../client/materialize.js";
2
+ import { sanitizeText } from "../render/ansi.js";
3
+ import { formatDuration } from "../render/format.js";
4
4
  const ALT_SCREEN_ON = "\u001b[?1049h\u001b[?25l";
5
5
  const ALT_SCREEN_OFF = "\u001b[?25h\u001b[?1049l";
6
6
  const CLEAR = "\u001b[2J\u001b[H";
7
- function viewportSize() {
8
- return {
9
- width: process.stdout.columns ?? 80,
10
- height: process.stdout.rows ?? 24,
11
- };
12
- }
13
- /**
14
- * Interactive live viewer. Watches the SQLite database and re-renders after
15
- * committed run changes. Returns when the user quits.
16
- */
7
+ /** Interactive client view. All durable reads stay in the workflow host. */
17
8
  export async function runViewer(options) {
18
- const store = new WorkflowRunStore(options.databasePath, { readOnly: true });
19
- let mode = { view: "list" };
20
- let bundles = [];
21
- let selectedIndex = 0;
22
- let detailScroll = 0;
23
- /** Replay position; null follows the latest step live. */
24
- let selectedStep = null;
25
- let detailStepCount = 0;
26
- if (options.runId) {
27
- bundles = store.listRuns();
28
- const match = bundles.find((bundle) => bundle.state.runId === options.runId);
29
- if (!match) {
30
- throw new Error(`Run not found: ${options.runId}`);
31
- }
32
- mode = { view: "detail", runId: match.runId };
33
- }
34
- const draw = async () => {
35
- bundles = store.listRuns();
36
- selectedIndex = Math.min(selectedIndex, Math.max(0, bundles.length - 1));
37
- const size = viewportSize();
38
- const lines = mode.view === "list"
39
- ? renderRunListLines(bundles, selectedIndex, size)
40
- : await renderDetail(mode.runId, size);
41
- process.stdout.write(CLEAR + lines.join("\n"));
9
+ let value = options.runId === undefined ? [] : null;
10
+ let selected = 0;
11
+ let scroll = 0;
12
+ let selectedStepIndex = null;
13
+ let mode = options.runId === undefined ? "runs" : "run";
14
+ let unsubscribe;
15
+ let runMaterializationGeneration = 0;
16
+ const draw = () => {
17
+ const width = process.stdout.columns ?? 100;
18
+ const height = Math.max(1, (process.stdout.rows ?? 24) - 1);
19
+ const lines = renderClientView(value, width, height, mode === "runs" ? selected : undefined, scroll, new Date(), selectedStepIndex);
20
+ process.stdout.write(`${CLEAR}${lines.join("\n")}`);
42
21
  };
43
- const renderDetail = async (runId, size) => {
44
- const bundle = store.readRun(runId, { includeTrace: true });
45
- if (!bundle) {
46
- return ["SQLite run state disappeared. Press q to go back."];
47
- }
48
- detailStepCount = bundle.state.steps.length;
49
- if (selectedStep !== null && selectedStep >= detailStepCount - 1) {
50
- // Scrubbed to (or past) the end: snap back to following live updates.
51
- selectedStep = null;
52
- }
53
- detailScroll = Math.min(detailScroll, maxDetailScroll(bundle, size, selectedStep));
54
- return renderRunDetailLines(bundle, size, new Date(), detailScroll, selectedStep);
22
+ const watchRuns = async () => {
23
+ runMaterializationGeneration += 1;
24
+ await unsubscribe?.();
25
+ mode = "runs";
26
+ scroll = 0;
27
+ selectedStepIndex = null;
28
+ unsubscribe = await options.client.watchRuns((event) => {
29
+ value = event.payload;
30
+ selected = Math.min(selected, Math.max(0, arrayLength(value) - 1));
31
+ draw();
32
+ });
33
+ };
34
+ const watchRun = async (runId) => {
35
+ runMaterializationGeneration += 1;
36
+ await unsubscribe?.();
37
+ mode = "run";
38
+ scroll = 0;
39
+ selectedStepIndex = null;
40
+ unsubscribe = await options.client.watchRun(runId, (event) => {
41
+ const generation = ++runMaterializationGeneration;
42
+ value = event.payload;
43
+ draw();
44
+ void materializeRunView(options.client, event.payload)
45
+ .then((materialized) => {
46
+ if (generation !== runMaterializationGeneration || mode !== "run")
47
+ return;
48
+ value = materialized;
49
+ draw();
50
+ })
51
+ .catch(() => {
52
+ // A newer revision event retries the complete view from its own stable snapshot.
53
+ });
54
+ });
55
55
  };
56
56
  process.stdout.write(ALT_SCREEN_ON);
57
- const stopWatching = watchStateDatabase(options.databasePath, () => {
58
- void draw();
59
- });
60
- const ticker = setInterval(() => {
61
- void draw();
62
- }, options.tickMs ?? 1_000);
63
57
  const rawModeSupported = process.stdin.isTTY === true;
64
- if (rawModeSupported) {
65
- process.stdin.setRawMode(true);
66
- }
67
- process.stdin.resume();
68
58
  try {
59
+ if (options.runId === undefined)
60
+ await watchRuns();
61
+ else
62
+ await watchRun(options.runId);
63
+ draw();
64
+ if (rawModeSupported)
65
+ process.stdin.setRawMode(true);
66
+ process.stdin.resume();
67
+ const redrawTimer = setInterval(draw, 1_000);
68
+ redrawTimer.unref?.();
69
69
  await new Promise((resolve) => {
70
70
  const onKey = (data) => {
71
71
  const key = data.toString("utf8");
72
- if (key === "q" || key === "\u0003" || key === "\u001b") {
73
- if (mode.view === "detail" && key === "q") {
74
- mode = { view: "list" };
75
- void draw();
76
- return;
77
- }
72
+ if (key === "\u0003" || key === "\u001b") {
78
73
  resolve();
79
74
  return;
80
75
  }
81
- handleNavigationKey(key);
82
- };
83
- const handleNavigationKey = (key) => {
84
- if (mode.view !== "list") {
85
- if (key === "r") {
86
- void draw();
87
- }
88
- else if (key === "\u001b[A" || key === "k") {
89
- detailScroll = Math.max(0, detailScroll - 1);
90
- void draw();
76
+ if (key === "q") {
77
+ if (mode === "run" && options.runId === undefined)
78
+ void watchRuns();
79
+ else
80
+ resolve();
81
+ return;
82
+ }
83
+ if (mode === "run") {
84
+ const page = Math.max(1, (process.stdout.rows ?? 24) - 2);
85
+ if (key === "\u001b[A" || key === "k") {
86
+ scroll = Math.max(0, scroll - 1);
87
+ draw();
91
88
  }
92
89
  else if (key === "\u001b[B" || key === "j") {
93
- // Clamped against the content height in renderDetail.
94
- detailScroll += 1;
95
- void draw();
90
+ scroll += 1;
91
+ draw();
96
92
  }
97
- else if (key === "\u001b[D" || key === "h") {
98
- const current = selectedStep ?? detailStepCount - 1;
99
- selectedStep = Math.max(0, current - 1);
100
- void draw();
93
+ else if (key === "\u001b[5~") {
94
+ scroll = Math.max(0, scroll - page);
95
+ draw();
101
96
  }
102
- else if (key === "\u001b[C" || key === "l") {
103
- // renderDetail snaps back to live once this reaches the end.
104
- selectedStep = selectedStep === null ? null : selectedStep + 1;
105
- void draw();
97
+ else if (key === "\u001b[6~") {
98
+ scroll += page;
99
+ draw();
100
+ }
101
+ else if (key === "[") {
102
+ const total = runStepCount(value);
103
+ if (total > 0) {
104
+ selectedStepIndex = Math.max(0, (selectedStepIndex ?? total - 1) - 1);
105
+ scroll = 0;
106
+ draw();
107
+ }
108
+ }
109
+ else if (key === "]") {
110
+ const total = runStepCount(value);
111
+ if (total > 0) {
112
+ const next = (selectedStepIndex ?? total - 1) + 1;
113
+ selectedStepIndex = next >= total - 1 ? null : next;
114
+ scroll = 0;
115
+ draw();
116
+ }
117
+ }
118
+ else if (key === "\u001b[F" || key === "G" || key === "L") {
119
+ selectedStepIndex = null;
120
+ scroll = 0;
121
+ draw();
122
+ }
123
+ else if (key === "\u001b[H" || key === "g") {
124
+ selectedStepIndex = runStepCount(value) > 0 ? 0 : null;
125
+ scroll = 0;
126
+ draw();
106
127
  }
107
- return;
108
- }
109
- if (key === "\u001b[A" || key === "k") {
110
- selectedIndex = Math.max(0, selectedIndex - 1);
111
- void draw();
112
- }
113
- else if (key === "\u001b[B" || key === "j") {
114
- selectedIndex = Math.min(Math.max(0, bundles.length - 1), selectedIndex + 1);
115
- void draw();
116
128
  }
117
- else if (key === "\r" || key === "\n") {
118
- const selected = bundles[selectedIndex];
119
- if (selected) {
120
- mode = { view: "detail", runId: selected.runId };
121
- detailScroll = 0;
122
- selectedStep = null;
123
- void draw();
129
+ else if (mode === "runs") {
130
+ if (key === "\u001b[A" || key === "k") {
131
+ selected = Math.max(0, selected - 1);
132
+ draw();
133
+ }
134
+ else if (key === "\u001b[B" || key === "j") {
135
+ selected = Math.min(Math.max(0, arrayLength(value) - 1), selected + 1);
136
+ draw();
137
+ }
138
+ else if (key === "\r" || key === "\n") {
139
+ const runId = selectedRunId(value, selected);
140
+ if (runId !== undefined)
141
+ void watchRun(runId);
124
142
  }
125
143
  }
126
144
  };
127
145
  process.stdin.on("data", onKey);
128
- void draw();
129
146
  });
147
+ clearInterval(redrawTimer);
130
148
  }
131
149
  finally {
132
- clearInterval(ticker);
133
- stopWatching();
134
- store.close();
135
- if (rawModeSupported) {
150
+ runMaterializationGeneration += 1;
151
+ await unsubscribe?.();
152
+ if (rawModeSupported)
136
153
  process.stdin.setRawMode(false);
137
- }
138
154
  process.stdin.pause();
139
155
  process.stdout.write(ALT_SCREEN_OFF);
140
156
  }
141
157
  }
158
+ export function renderClientView(value, width, height, selected, scroll, now = new Date(), selectedStepIndex = null) {
159
+ if (Array.isArray(value)) {
160
+ if (value.length === 0)
161
+ return ["No workflow runs found."];
162
+ const selectedIndex = selected ?? 0;
163
+ const start = Math.min(Math.max(0, selectedIndex - height + 1), Math.max(0, value.length - height));
164
+ return value.slice(start, start + height).map((item, offset) => {
165
+ const index = start + offset;
166
+ const prefix = index === selected ? "> " : " ";
167
+ return truncate(`${prefix}${summary(item)}`, width);
168
+ });
169
+ }
170
+ const lines = renderRun(value, now, selectedStepIndex);
171
+ const start = Math.min(scroll, Math.max(0, lines.length - height));
172
+ return lines.slice(start, start + height).map((line) => truncate(line, width));
173
+ }
174
+ function renderRun(value, now, selectedStepIndex) {
175
+ if (!isRecord(value) || value.schema !== "pi-workflows.run-view.v1") {
176
+ return JSON.stringify(value, null, 2).split("\n");
177
+ }
178
+ const manifest = isRecord(value.manifest) ? value.manifest : {};
179
+ const state = isRecord(value.state) ? value.state : {};
180
+ const display = isRecord(value.display) ? value.display : {};
181
+ const workflowName = typeof manifest.workflowName === "string"
182
+ ? sanitizeText(manifest.workflowName)
183
+ : typeof state.workflowName === "string"
184
+ ? sanitizeText(state.workflowName)
185
+ : "unknown";
186
+ const runId = typeof value.runId === "string" ? sanitizeText(value.runId) : "unknown";
187
+ const status = typeof display.status === "string" ? display.status : "unknown";
188
+ const steps = Array.isArray(state.steps) ? state.steps : [];
189
+ const selected = steps.length === 0
190
+ ? -1
191
+ : Math.min(Math.max(0, selectedStepIndex ?? steps.length - 1), steps.length - 1);
192
+ const startedAt = typeof manifest.startedAt === "string" ? Date.parse(manifest.startedAt) : NaN;
193
+ const finishedAt = typeof manifest.finishedAt === "string" ? Date.parse(manifest.finishedAt) : NaN;
194
+ const elapsed = Number.isFinite(startedAt)
195
+ ? ` · elapsed ${formatDuration(Math.max(0, (Number.isFinite(finishedAt) ? finishedAt : now.getTime()) - startedAt))}`
196
+ : "";
197
+ const position = selectedStepIndex === null || selected < 0 ? "" : ` · step ${selected + 1}/${steps.length}`;
198
+ const lines = [
199
+ `workflow ${workflowName}`,
200
+ `${statusGlyph(status)} ${sanitizeText(status)} · run ${runId}${elapsed}${position}`,
201
+ ];
202
+ if (typeof display.reason === "string")
203
+ lines.push(`reason: ${sanitizeText(display.reason)}`);
204
+ if (steps.length > 0) {
205
+ lines.push("", "steps");
206
+ for (const [index, step] of steps.entries()) {
207
+ if (!isRecord(step))
208
+ continue;
209
+ const nodeId = typeof step.nodeId === "string" ? sanitizeText(step.nodeId) : "unknown";
210
+ const outcome = typeof step.outcome === "string" ? step.outcome : "unknown";
211
+ lines.push(`${index === selected ? ">" : " "} ${stepGlyph(outcome)} ${nodeId} · ${sanitizeText(outcome)}`);
212
+ }
213
+ const inspected = steps[selected];
214
+ if (isRecord(inspected)) {
215
+ const nodeId = typeof inspected.nodeId === "string" ? sanitizeText(inspected.nodeId) : "unknown";
216
+ const output = Object.hasOwn(inspected, "error") ? inspected.error : inspected.output;
217
+ lines.push("", `step output — ${nodeId}`);
218
+ lines.push(...JSON.stringify(output ?? null, null, 2)
219
+ .split("\n")
220
+ .map((line) => ` ${sanitizeText(line)}`));
221
+ }
222
+ }
223
+ if (status === "completed" && Object.hasOwn(state, "finalOutput")) {
224
+ lines.push("", `output ${JSON.stringify(state.finalOutput)}`);
225
+ }
226
+ else if (typeof state.error === "string") {
227
+ lines.push("", `error: ${sanitizeText(state.error)}`);
228
+ }
229
+ return lines;
230
+ }
231
+ function summary(value) {
232
+ if (!isRecord(value))
233
+ return JSON.stringify(value);
234
+ const status = isRecord(value.display) ? value.display.status : undefined;
235
+ const name = typeof value.workflowName === "string" ? value.workflowName : "workflow";
236
+ const runId = typeof value.runId === "string" ? value.runId : "unknown";
237
+ return `${typeof status === "string" ? sanitizeText(status) : "unknown"} ${sanitizeText(name)} ${sanitizeText(runId)}`;
238
+ }
239
+ function statusGlyph(status) {
240
+ if (status === "completed")
241
+ return "✓";
242
+ if (status === "failed" || status === "timed_out" || status === "cancelled")
243
+ return "✗";
244
+ if (status === "paused")
245
+ return "‖";
246
+ if (status === "waiting")
247
+ return "○";
248
+ if (status === "queued")
249
+ return "…";
250
+ if (status === "ambiguous")
251
+ return "!";
252
+ return "●";
253
+ }
254
+ function stepGlyph(outcome) {
255
+ return outcome === "ok" ? "✓" : outcome === "failed" || outcome === "timed_out" ? "✗" : "○";
256
+ }
257
+ function selectedRunId(value, index) {
258
+ if (!Array.isArray(value))
259
+ return undefined;
260
+ const item = value[index];
261
+ return isRecord(item) && typeof item.runId === "string" ? item.runId : undefined;
262
+ }
263
+ function runStepCount(value) {
264
+ if (!isRecord(value) || !isRecord(value.state) || !Array.isArray(value.state.steps))
265
+ return 0;
266
+ return value.state.steps.length;
267
+ }
268
+ function arrayLength(value) {
269
+ return Array.isArray(value) ? value.length : 0;
270
+ }
271
+ function truncate(value, width) {
272
+ if (value.length <= width)
273
+ return value;
274
+ return width <= 1 ? value.slice(0, width) : `${value.slice(0, width - 1)}…`;
275
+ }
276
+ function isRecord(value) {
277
+ return typeof value === "object" && value !== null && !Array.isArray(value);
278
+ }
142
279
  //# sourceMappingURL=tui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/viewer/tui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,uBAAuB,CAAC;AACjF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAWlC,SAAS,YAAY;IACnB,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,GAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,IAAI,OAAO,GAAwB,EAAE,CAAC;IACtC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,0DAA0D;IAC1D,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,MAAM;YAClB,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC;YAClD,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,KAAa,EAAE,IAAkB,EAAqB,EAAE;QAClF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,mDAAmD,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACjE,sEAAsE;YACtE,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QACnF,OAAO,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACpF,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE;QACjE,KAAK,IAAI,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,KAAK,IAAI,EAAE,CAAC;IACd,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;IAE5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IACtD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACxD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAC1C,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wBACxB,KAAK,IAAI,EAAE,CAAC;wBACZ,OAAO;oBACT,CAAC;oBACD,OAAO,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC;YAEF,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAChB,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;yBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAC7C,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;wBAC7C,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;yBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAC7C,sDAAsD;wBACtD,YAAY,IAAI,CAAC,CAAC;wBAClB,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;yBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAC7C,MAAM,OAAO,GAAG,YAAY,IAAI,eAAe,GAAG,CAAC,CAAC;wBACpD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;wBACxC,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;yBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;wBAC7C,6DAA6D;wBAC7D,YAAY,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;wBAC/D,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;oBACtC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;oBAC/C,KAAK,IAAI,EAAE,CAAC;gBACd,CAAC;qBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;oBAC7C,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;oBAC7E,KAAK,IAAI,EAAE,CAAC;gBACd,CAAC;qBAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;oBACxC,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjD,YAAY,GAAG,CAAC,CAAC;wBACjB,YAAY,GAAG,IAAI,CAAC;wBACpB,KAAK,IAAI,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAChC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,YAAY,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/viewer/tui.ts"],"names":[],"mappings":"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"}
@@ -91,12 +91,14 @@ export declare class HumanDecisionStore {
91
91
  createRequest(request: HumanDecisionRequest): Promise<"created" | "adopted">;
92
92
  readRequest(decisionId: string): Promise<HumanDecisionRequest | null>;
93
93
  recordDelivery(request: HumanDecisionRequest | HumanDecisionChannelRequest, channel: string, value: HumanDecisionDeliveryRecord): Promise<"created" | "adopted">;
94
+ recordDeliverySync(request: HumanDecisionRequest | HumanDecisionChannelRequest, channel: string, value: HumanDecisionDeliveryRecord): "created" | "adopted";
94
95
  accept(request: HumanDecisionRequest, submission: HumanDecisionSubmission): Promise<HumanDecisionAcceptance>;
95
96
  acceptSync(request: HumanDecisionRequest, submission: HumanDecisionSubmission): HumanDecisionAcceptance;
96
97
  resolveTimeout(request: HumanDecisionRequest, now?: Date): Promise<HumanDecisionAcceptance>;
97
98
  resolveTimeoutSync(request: HumanDecisionRequest, now?: Date): HumanDecisionAcceptance;
98
99
  listDeliveries(decisionId: string, channel: string): Promise<HumanDecisionDeliveryRecord[]>;
99
100
  recordSettlement(decisionId: string, channel: string, value: HumanDecisionSettlementRecord): Promise<"created" | "adopted">;
101
+ recordSettlementSync(decisionId: string, channel: string, value: HumanDecisionSettlementRecord): "created" | "adopted";
100
102
  listSettlements(decisionId: string, channel: string): Promise<HumanDecisionSettlementRecord[]>;
101
103
  cancel(request: HumanDecisionRequest, reason: HumanDecisionCancellationRecord["reason"]): Promise<"created" | "adopted">;
102
104
  readCancellation(decisionId: string): Promise<HumanDecisionCancellationRecord | null>;
@@ -285,6 +285,9 @@ export class HumanDecisionStore {
285
285
  return row === undefined ? null : this.readRequestFromHash(row.requestHash);
286
286
  }
287
287
  async recordDelivery(request, channel, value) {
288
+ return this.recordDeliverySync(request, channel, value);
289
+ }
290
+ recordDeliverySync(request, channel, value) {
288
291
  return this.recordChannelMessage(request.decisionId, channel, "delivery", value);
289
292
  }
290
293
  async accept(request, submission) {
@@ -365,6 +368,9 @@ export class HumanDecisionStore {
365
368
  return this.listChannelMessages(decisionId, channel, "delivery");
366
369
  }
367
370
  async recordSettlement(decisionId, channel, value) {
371
+ return this.recordSettlementSync(decisionId, channel, value);
372
+ }
373
+ recordSettlementSync(decisionId, channel, value) {
368
374
  return this.recordChannelMessage(decisionId, channel, "settlement", value);
369
375
  }
370
376
  async listSettlements(decisionId, channel) {
@@ -700,7 +706,7 @@ export class HumanDecisionStore {
700
706
  }
701
707
  }
702
708
  recordChannelMessage(decisionId, channel, purpose, value) {
703
- const safeChannel = requireSimpleId(channel, "Human decision channel");
709
+ const safeChannel = requireChannelId(channel, "Human decision channel");
704
710
  assertId(value.attemptId, `${purpose} attempt id`);
705
711
  return this.state.transaction(() => {
706
712
  if (this.readRequestRow(decisionId) === undefined) {
@@ -738,7 +744,7 @@ export class HumanDecisionStore {
738
744
  });
739
745
  }
740
746
  listChannelMessages(decisionId, channel, purpose) {
741
- const channelId = channelIdFor(requireSimpleId(channel, "Human decision channel"));
747
+ const channelId = channelIdFor(requireChannelId(channel, "Human decision channel"));
742
748
  const rows = this.state.connection
743
749
  .prepare(`SELECT content_hash AS contentHash
744
750
  FROM channel_messages