@osolmaz/pi-workflows 0.16.2 → 0.16.4

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 (315) hide show
  1. package/README.md +41 -41
  2. package/dist/builtins/monitor.workflow.d.ts +1 -1
  3. package/dist/builtins/monitor.workflow.js +8 -8
  4. package/dist/builtins/pi-agent-group.js +3 -3
  5. package/dist/builtins/pi-agent-group.js.map +1 -1
  6. package/dist/channels/adapter-entry.js +14 -14
  7. package/dist/channels/adapter-entry.js.map +1 -1
  8. package/dist/client/client.d.ts +6 -6
  9. package/dist/client/client.js +27 -27
  10. package/dist/client/client.js.map +1 -1
  11. package/dist/client/protocol.d.ts +4 -1
  12. package/dist/client/protocol.js +17 -11
  13. package/dist/client/protocol.js.map +1 -1
  14. package/dist/client/resolver.d.ts +4 -4
  15. package/dist/client/view.d.ts +1 -1
  16. package/dist/extension/index.d.ts +1 -1
  17. package/dist/extension/index.js +32 -32
  18. package/dist/extension/index.js.map +1 -1
  19. package/dist/extension/recorder.d.ts +1 -1
  20. package/dist/extension/recorder.js +1 -1
  21. package/dist/extension/recorder.js.map +1 -1
  22. package/dist/extension/remote-recorder-store.d.ts +1 -1
  23. package/dist/extension/remote-recorder-store.js +2 -2
  24. package/dist/extension/remote-recorder-store.js.map +1 -1
  25. package/dist/extension/{controller-command.d.ts → resource-manager-command.d.ts} +6 -6
  26. package/dist/extension/{controller-command.js → resource-manager-command.js} +7 -7
  27. package/dist/extension/resource-manager-command.js.map +1 -0
  28. package/dist/extension/session-delivery.d.ts +1 -1
  29. package/dist/extension/session-delivery.js +2 -2
  30. package/dist/extension/session-delivery.js.map +1 -1
  31. package/dist/extension/session-view.d.ts +1 -1
  32. package/dist/extension/session-view.js +1 -1
  33. package/dist/extension/session-view.js.map +1 -1
  34. package/dist/extension/workflow-message-coordinator.d.ts +1 -1
  35. package/dist/extension/workflow-message-coordinator.js +6 -6
  36. package/dist/extension/workflow-message-coordinator.js.map +1 -1
  37. package/dist/resource-managers/conditions.d.ts +6 -0
  38. package/dist/{controllers → resource-managers}/conditions.js +3 -3
  39. package/dist/resource-managers/conditions.js.map +1 -0
  40. package/dist/resource-managers/definition.d.ts +6 -0
  41. package/dist/resource-managers/definition.js +45 -0
  42. package/dist/resource-managers/definition.js.map +1 -0
  43. package/dist/resource-managers/effects.d.ts +15 -0
  44. package/dist/{controllers → resource-managers}/effects.js +2 -2
  45. package/dist/resource-managers/effects.js.map +1 -0
  46. package/dist/resource-managers/errors.d.ts +12 -0
  47. package/dist/resource-managers/errors.js +25 -0
  48. package/dist/resource-managers/errors.js.map +1 -0
  49. package/dist/resource-managers/index.d.ts +12 -0
  50. package/dist/resource-managers/index.js +12 -0
  51. package/dist/resource-managers/index.js.map +1 -0
  52. package/dist/resource-managers/json.js.map +1 -0
  53. package/dist/resource-managers/loader.d.ts +23 -0
  54. package/dist/resource-managers/loader.js +75 -0
  55. package/dist/resource-managers/loader.js.map +1 -0
  56. package/dist/resource-managers/results.d.ts +5 -0
  57. package/dist/resource-managers/results.js.map +1 -0
  58. package/dist/resource-managers/runtime.d.ts +59 -0
  59. package/dist/{controllers/manager.js → resource-managers/runtime.js} +57 -57
  60. package/dist/resource-managers/runtime.js.map +1 -0
  61. package/dist/{controllers → resource-managers}/sqlite.d.ts +44 -44
  62. package/dist/{controllers → resource-managers}/sqlite.js +139 -130
  63. package/dist/resource-managers/sqlite.js.map +1 -0
  64. package/dist/{controllers → resource-managers}/store.d.ts +33 -33
  65. package/dist/{controllers → resource-managers}/store.js.map +1 -1
  66. package/dist/{controllers → resource-managers}/types.d.ts +41 -41
  67. package/dist/{controllers → resource-managers}/types.js.map +1 -1
  68. package/dist/resource-managers/workflows.d.ts +34 -0
  69. package/dist/{controllers → resource-managers}/workflows.js +15 -15
  70. package/dist/resource-managers/workflows.js.map +1 -0
  71. package/dist/server/channel-effects.js.map +1 -0
  72. package/dist/{host → server}/channel-supervisor.d.ts +6 -6
  73. package/dist/{host → server}/channel-supervisor.js +3 -3
  74. package/dist/server/channel-supervisor.js.map +1 -0
  75. package/dist/{host/child-worker-supervisor.d.ts → server/child-runner-supervisor.d.ts} +15 -13
  76. package/dist/{host/child-worker-supervisor.js → server/child-runner-supervisor.js} +6 -5
  77. package/dist/server/child-runner-supervisor.js.map +1 -0
  78. package/dist/{host → server}/processes.d.ts +3 -3
  79. package/dist/{host → server}/processes.js +3 -3
  80. package/dist/server/processes.js.map +1 -0
  81. package/dist/{host → server}/resolver-entry.d.ts +6 -6
  82. package/dist/{host → server}/resolver-entry.js +14 -14
  83. package/dist/server/resolver-entry.js.map +1 -0
  84. package/dist/server/resource-runner-entry.d.ts +2 -0
  85. package/dist/{host/controller-worker-entry.js → server/resource-runner-entry.js} +33 -33
  86. package/dist/server/resource-runner-entry.js.map +1 -0
  87. package/dist/server/resource-runner-protocol.d.ts +36 -0
  88. package/dist/server/resource-runner-protocol.js +49 -0
  89. package/dist/server/resource-runner-protocol.js.map +1 -0
  90. package/dist/server/resource-runner-supervisor.d.ts +21 -0
  91. package/dist/{host/worker-supervisor.js → server/resource-runner-supervisor.js} +17 -17
  92. package/dist/server/resource-runner-supervisor.js.map +1 -0
  93. package/dist/{host → server}/rpc-bridge.d.ts +3 -3
  94. package/dist/{host → server}/rpc-bridge.js +3 -3
  95. package/dist/server/rpc-bridge.js.map +1 -0
  96. package/dist/{host → server}/rpc-executor.d.ts +1 -1
  97. package/dist/{host → server}/rpc-executor.js +3 -3
  98. package/dist/server/rpc-executor.js.map +1 -0
  99. package/dist/{host/host-entry.js → server/server-entry.js} +6 -6
  100. package/dist/server/server-entry.js.map +1 -0
  101. package/dist/{host/runner.d.ts → server/server.d.ts} +39 -38
  102. package/dist/{host/runner.js → server/server.js} +408 -374
  103. package/dist/server/server.js.map +1 -0
  104. package/dist/{host → server}/state.d.ts +25 -25
  105. package/dist/{host → server}/state.js +49 -49
  106. package/dist/server/state.js.map +1 -0
  107. package/dist/{host → server}/view.d.ts +7 -7
  108. package/dist/{host → server}/view.js +13 -13
  109. package/dist/server/view.js.map +1 -0
  110. package/dist/server/workflow-runner-content.d.ts +6 -0
  111. package/dist/server/workflow-runner-content.js +96 -0
  112. package/dist/server/workflow-runner-content.js.map +1 -0
  113. package/dist/{host/worker-entry.d.ts → server/workflow-runner-entry.d.ts} +3 -3
  114. package/dist/{host/worker-entry.js → server/workflow-runner-entry.js} +68 -35
  115. package/dist/server/workflow-runner-entry.js.map +1 -0
  116. package/dist/server/workflow-runner-protocol.d.ts +69 -0
  117. package/dist/server/workflow-runner-protocol.js +176 -0
  118. package/dist/server/workflow-runner-protocol.js.map +1 -0
  119. package/dist/{host/worker-store.d.ts → server/workflow-runner-store.d.ts} +11 -11
  120. package/dist/{host/worker-store.js → server/workflow-runner-store.js} +8 -8
  121. package/dist/server/workflow-runner-store.js.map +1 -0
  122. package/dist/server/workflow-runner-supervisor.d.ts +22 -0
  123. package/dist/server/workflow-runner-supervisor.js +56 -0
  124. package/dist/server/workflow-runner-supervisor.js.map +1 -0
  125. package/dist/state/prune.d.ts +1 -1
  126. package/dist/state/prune.js +17 -10
  127. package/dist/state/prune.js.map +1 -1
  128. package/dist/state/schema.js +2 -2
  129. package/dist/state/workflow-messages.d.ts +1 -1
  130. package/dist/state/workflow-messages.js +1 -1
  131. package/dist/state/workflow-messages.js.map +1 -1
  132. package/dist/viewer/backup.js +1 -1
  133. package/dist/viewer/backup.js.map +1 -1
  134. package/dist/viewer/cli.d.ts +2 -2
  135. package/dist/viewer/cli.js +46 -32
  136. package/dist/viewer/cli.js.map +1 -1
  137. package/dist/viewer/tui.d.ts +1 -1
  138. package/dist/viewer/tui.js +1 -1
  139. package/dist/viewer/tui.js.map +1 -1
  140. package/dist/workflows/command-batch.js +2 -2
  141. package/dist/workflows/engine.js +14 -15
  142. package/dist/workflows/engine.js.map +1 -1
  143. package/dist/workflows/store.d.ts +12 -11
  144. package/dist/workflows/store.js +24 -18
  145. package/dist/workflows/store.js.map +1 -1
  146. package/dist/workflows/types.d.ts +2 -2
  147. package/docs/2026-08-20-durable-workflow-launch-plan.md +12 -12
  148. package/docs/2026-08-25-workflow-follow-ups.md +7 -7
  149. package/docs/2026-08-25-workflow-settings.md +3 -3
  150. package/docs/2026-08-30-out-of-process-workflow-host-plan.md +3 -3
  151. package/docs/2026-09-01-restore-session-delivery-controls-plan.md +5 -5
  152. package/docs/2026-09-01-unified-workflow-client-plan.md +6 -6
  153. package/docs/2026-09-02-installed-live-e2e-plan.md +3 -3
  154. package/docs/2026-09-02-unify-workflow-messages-plan.md +8 -8
  155. package/docs/2026-09-04-workflow-run-state-plan.md +6 -6
  156. package/docs/DEFERRED_TURNS.md +7 -7
  157. package/docs/DESIGN_PHILOSOPHY.md +1 -1
  158. package/docs/HUMAN_DECISIONS.md +11 -11
  159. package/docs/HUMAN_DECISION_PRESENTATIONS.md +4 -4
  160. package/docs/MONITOR.md +1 -1
  161. package/docs/RESOURCE_MANAGERS.md +221 -0
  162. package/docs/SQLITE_STATE.md +35 -33
  163. package/docs/WORKFLOW_COMPOSITION.md +1 -1
  164. package/docs/{WORKFLOW_HOST.md → WORKFLOW_SERVER.md} +125 -119
  165. package/docs/WORKFLOW_STEP_MESSAGES.md +18 -18
  166. package/docs/WORKFLOW_UPDATES.md +16 -16
  167. package/docs/development.md +15 -14
  168. package/docs/live-replay-protocol.md +20 -20
  169. package/docs/plans/2026-08-04-controller-runtime-plan.md +25 -25
  170. package/docs/plans/2026-08-05-always-on-workflows-plan.md +8 -8
  171. package/docs/plans/2026-08-10-agent-managed-monitor-workflows-plan.md +2 -2
  172. package/docs/plans/2026-08-13-session-addressed-workflow-notifications-plan.md +1 -1
  173. package/docs/plans/2026-08-16-workflow-updates-plan.md +5 -5
  174. package/docs/plans/2026-08-19-human-decision-gates-plan.md +1 -1
  175. package/docs/plans/2026-08-20-bounded-command-batches-plan.md +1 -1
  176. package/docs/plans/2026-08-21-deferred-turn-intents-plan.md +3 -3
  177. package/docs/plans/2026-08-21-sanity-check-plan.md +2 -2
  178. package/docs/plans/2026-08-23-assistant-agent-completion-plan.md +5 -5
  179. package/docs/plans/2026-08-23-sqlite-state-plan.md +25 -25
  180. package/docs/plans/2026-08-25-live-workflow-settings-plan.md +4 -4
  181. package/docs/plans/2026-08-27-workflow-terminal-restart-plan.md +3 -3
  182. package/docs/plans/2026-09-04-workflow-runner-resume-state-plan.md +318 -0
  183. package/docs/plans/piw-viewer-experience-implementation-plan.md +1 -1
  184. package/docs/tui-viewer.md +9 -9
  185. package/docs/workflows.md +72 -66
  186. package/examples/{controllers/pull-request.controller.ts → resource-managers/pull-request.resource-manager.ts} +12 -12
  187. package/herdr-plugin.toml +1 -1
  188. package/package.json +12 -11
  189. package/protocol/client.v1.schema.json +7 -7
  190. package/protocol/fixtures/client-v1.json +1 -1
  191. package/src/builtins/monitor.workflow.ts +9 -9
  192. package/src/builtins/pi-agent-group.ts +3 -3
  193. package/src/channels/adapter-entry.ts +14 -14
  194. package/src/client/client.ts +33 -32
  195. package/src/client/protocol.ts +16 -11
  196. package/src/client/resolver.ts +4 -4
  197. package/src/client/view.ts +1 -1
  198. package/src/extension/index.ts +44 -34
  199. package/src/extension/recorder.ts +1 -1
  200. package/src/extension/remote-recorder-store.ts +2 -2
  201. package/src/extension/resource-manager-command.ts +45 -0
  202. package/src/extension/session-delivery.ts +2 -2
  203. package/src/extension/session-view.ts +1 -1
  204. package/src/extension/workflow-message-coordinator.ts +6 -6
  205. package/src/{controllers → resource-managers}/conditions.ts +23 -23
  206. package/src/resource-managers/definition.ts +71 -0
  207. package/src/{controllers → resource-managers}/effects.ts +9 -9
  208. package/src/resource-managers/errors.ts +27 -0
  209. package/src/resource-managers/index.ts +88 -0
  210. package/src/resource-managers/loader.ts +111 -0
  211. package/src/{controllers → resource-managers}/results.ts +4 -4
  212. package/src/{controllers/manager.ts → resource-managers/runtime.ts} +95 -92
  213. package/src/{controllers → resource-managers}/sqlite.ts +198 -186
  214. package/src/{controllers → resource-managers}/store.ts +46 -38
  215. package/src/{controllers → resource-managers}/types.ts +50 -41
  216. package/src/{controllers → resource-managers}/workflows.ts +43 -41
  217. package/src/{host → server}/channel-supervisor.ts +8 -8
  218. package/src/{host/child-worker-supervisor.ts → server/child-runner-supervisor.ts} +22 -18
  219. package/src/{host → server}/processes.ts +3 -3
  220. package/src/{host → server}/resolver-entry.ts +28 -25
  221. package/src/{host/controller-worker-entry.ts → server/resource-runner-entry.ts} +67 -65
  222. package/src/server/resource-runner-protocol.ts +103 -0
  223. package/src/server/resource-runner-supervisor.ts +76 -0
  224. package/src/{host → server}/rpc-bridge.ts +3 -3
  225. package/src/{host → server}/rpc-executor.ts +4 -4
  226. package/src/{host/host-entry.ts → server/server-entry.ts} +5 -5
  227. package/src/{host/runner.ts → server/server.ts} +526 -461
  228. package/src/{host → server}/state.ts +78 -67
  229. package/src/{host → server}/view.ts +15 -15
  230. package/src/server/workflow-runner-content.ts +119 -0
  231. package/src/{host/worker-entry.ts → server/workflow-runner-entry.ts} +98 -57
  232. package/src/server/workflow-runner-protocol.ts +241 -0
  233. package/src/{host/worker-store.ts → server/workflow-runner-store.ts} +18 -20
  234. package/src/server/workflow-runner-supervisor.ts +79 -0
  235. package/src/state/prune.ts +27 -9
  236. package/src/state/schema.ts +2 -2
  237. package/src/state/workflow-messages.ts +1 -1
  238. package/src/viewer/backup.ts +1 -1
  239. package/src/viewer/cli.ts +50 -36
  240. package/src/viewer/tui.ts +1 -1
  241. package/src/workflows/command-batch.ts +2 -2
  242. package/src/workflows/engine.ts +14 -15
  243. package/src/workflows/store.ts +31 -28
  244. package/src/workflows/types.ts +2 -2
  245. package/dist/controllers/conditions.d.ts +0 -6
  246. package/dist/controllers/conditions.js.map +0 -1
  247. package/dist/controllers/definition.d.ts +0 -6
  248. package/dist/controllers/definition.js +0 -45
  249. package/dist/controllers/definition.js.map +0 -1
  250. package/dist/controllers/effects.d.ts +0 -15
  251. package/dist/controllers/effects.js.map +0 -1
  252. package/dist/controllers/errors.d.ts +0 -12
  253. package/dist/controllers/errors.js +0 -25
  254. package/dist/controllers/errors.js.map +0 -1
  255. package/dist/controllers/index.d.ts +0 -12
  256. package/dist/controllers/index.js +0 -12
  257. package/dist/controllers/index.js.map +0 -1
  258. package/dist/controllers/json.js.map +0 -1
  259. package/dist/controllers/loader.d.ts +0 -23
  260. package/dist/controllers/loader.js +0 -74
  261. package/dist/controllers/loader.js.map +0 -1
  262. package/dist/controllers/manager.d.ts +0 -59
  263. package/dist/controllers/manager.js.map +0 -1
  264. package/dist/controllers/results.d.ts +0 -5
  265. package/dist/controllers/results.js.map +0 -1
  266. package/dist/controllers/sqlite.js.map +0 -1
  267. package/dist/controllers/workflows.d.ts +0 -34
  268. package/dist/controllers/workflows.js.map +0 -1
  269. package/dist/extension/controller-command.js.map +0 -1
  270. package/dist/host/channel-effects.js.map +0 -1
  271. package/dist/host/channel-supervisor.js.map +0 -1
  272. package/dist/host/child-worker-supervisor.js.map +0 -1
  273. package/dist/host/controller-worker-entry.d.ts +0 -2
  274. package/dist/host/controller-worker-entry.js.map +0 -1
  275. package/dist/host/controller-worker-protocol.d.ts +0 -36
  276. package/dist/host/controller-worker-protocol.js +0 -49
  277. package/dist/host/controller-worker-protocol.js.map +0 -1
  278. package/dist/host/controller-worker-supervisor.d.ts +0 -21
  279. package/dist/host/controller-worker-supervisor.js +0 -54
  280. package/dist/host/controller-worker-supervisor.js.map +0 -1
  281. package/dist/host/host-entry.js.map +0 -1
  282. package/dist/host/processes.js.map +0 -1
  283. package/dist/host/resolver-entry.js.map +0 -1
  284. package/dist/host/rpc-bridge.js.map +0 -1
  285. package/dist/host/rpc-executor.js.map +0 -1
  286. package/dist/host/runner.js.map +0 -1
  287. package/dist/host/state.js.map +0 -1
  288. package/dist/host/view.js.map +0 -1
  289. package/dist/host/worker-entry.js.map +0 -1
  290. package/dist/host/worker-protocol.d.ts +0 -46
  291. package/dist/host/worker-protocol.js +0 -122
  292. package/dist/host/worker-protocol.js.map +0 -1
  293. package/dist/host/worker-store.js.map +0 -1
  294. package/dist/host/worker-supervisor.d.ts +0 -22
  295. package/dist/host/worker-supervisor.js.map +0 -1
  296. package/docs/CONTROLLERS.md +0 -217
  297. package/src/controllers/definition.ts +0 -65
  298. package/src/controllers/errors.ts +0 -27
  299. package/src/controllers/index.ts +0 -88
  300. package/src/controllers/loader.ts +0 -104
  301. package/src/extension/controller-command.ts +0 -45
  302. package/src/host/controller-worker-protocol.ts +0 -104
  303. package/src/host/controller-worker-supervisor.ts +0 -79
  304. package/src/host/worker-protocol.ts +0 -176
  305. package/src/host/worker-supervisor.ts +0 -74
  306. /package/dist/{controllers → resource-managers}/json.d.ts +0 -0
  307. /package/dist/{controllers → resource-managers}/json.js +0 -0
  308. /package/dist/{controllers → resource-managers}/results.js +0 -0
  309. /package/dist/{controllers → resource-managers}/store.js +0 -0
  310. /package/dist/{controllers → resource-managers}/types.js +0 -0
  311. /package/dist/{host → server}/channel-effects.d.ts +0 -0
  312. /package/dist/{host → server}/channel-effects.js +0 -0
  313. /package/dist/{host/host-entry.d.ts → server/server-entry.d.ts} +0 -0
  314. /package/src/{controllers → resource-managers}/json.ts +0 -0
  315. /package/src/{host → server}/channel-effects.ts +0 -0
@@ -37,7 +37,7 @@ export type WorkflowRunTerminalData = {
37
37
  };
38
38
  export type WorkflowRunStoreOptions = {
39
39
  authorityProvider?: (runId: string) => RunWriteAuthority | undefined;
40
- /** Host-owned projection updates that must commit with each run snapshot. */
40
+ /** Server-owned projection updates that must commit with each run snapshot. */
41
41
  snapshotLifecycle?: (context: {
42
42
  runId: string;
43
43
  state: WorkflowRunState;
@@ -45,17 +45,17 @@ export type WorkflowRunStoreOptions = {
45
45
  database: StateDatabase;
46
46
  now: number;
47
47
  }) => void;
48
- /** The global host may record an attested Pi session after the worker lease ends. */
49
- allowHostSessionRecording?: boolean;
48
+ /** The global server may record an attested Pi session after the runner lease ends. */
49
+ allowServerSessionRecording?: boolean;
50
50
  state?: StateDatabase;
51
51
  readOnly?: boolean;
52
52
  };
53
- /** The state boundary used by workflow code, including out-of-process workers. */
53
+ /** The state boundary used by workflow code, including out-of-process runners. */
54
54
  export interface WorkflowExecutionStore {
55
55
  readonly databasePath: string;
56
56
  initializeRun(workflow: WorkflowDefinition, state: WorkflowRunState, options?: InitializeWorkflowRunOptions): Promise<string>;
57
- prepareRunResume(runId: string): Promise<LoadedWorkflowRun>;
58
- readRun(runId: string, options?: ReadWorkflowRunOptions): LoadedWorkflowRun | null | Promise<LoadedWorkflowRun | null>;
57
+ prepareRunResume(runId: string): Promise<WorkflowRunState>;
58
+ readRunState(runId: string): WorkflowRunState | null | Promise<WorkflowRunState | null>;
59
59
  writeSnapshot(runId: string, state: WorkflowRunState, event: WorkflowTraceEventDraft): Promise<WorkflowTraceEvent>;
60
60
  publishUpdate(runId: string, state: WorkflowRunState, nodeId: string, attemptId: string, update: WorkflowUpdateInput, options?: {
61
61
  signal?: AbortSignal;
@@ -165,14 +165,14 @@ export declare class WorkflowRunStore {
165
165
  readonly state: StateDatabase;
166
166
  private readonly authorityProvider;
167
167
  private readonly snapshotLifecycle;
168
- private readonly allowHostSessionRecording;
168
+ private readonly allowServerSessionRecording;
169
169
  private readonly contexts;
170
170
  private readonly ownsState;
171
171
  private readonly mutations;
172
172
  private readonly workflowMessages;
173
173
  constructor(databasePath?: string, options?: WorkflowRunStoreOptions);
174
174
  close(): void;
175
- /** Host-only synchronization after a queue lifecycle mutation on the run resource. */
175
+ /** Server-only synchronization after a queue lifecycle mutation on the run resource. */
176
176
  synchronizeRevision(runId: string): number;
177
177
  createHumanDecisionRequest(request: HumanDecisionRequest): Promise<"created" | "adopted">;
178
178
  readResolvedHumanDecision(decisionId: string): Promise<ResolvedHumanDecision | null>;
@@ -218,7 +218,7 @@ export declare class WorkflowRunStore {
218
218
  originSessionId(runId: string): string | undefined;
219
219
  readFollowUpQueue(runId: string): WorkflowFollowUpQueueRecord | undefined;
220
220
  private readFollowUpQueueRange;
221
- prepareRunResume(runId: string): Promise<LoadedWorkflowRun>;
221
+ prepareRunResume(runId: string): Promise<WorkflowRunState>;
222
222
  markRunInterrupted(runId: string, reason?: string): Promise<LoadedWorkflowRun | null>;
223
223
  publishUpdate(runId: string, state: WorkflowRunState, nodeId: string, attemptId: string, update: WorkflowUpdateInput, options?: {
224
224
  signal?: AbortSignal;
@@ -226,7 +226,7 @@ export declare class WorkflowRunStore {
226
226
  event: WorkflowTraceEvent;
227
227
  record: WorkflowUpdateRecord;
228
228
  }>;
229
- /** Host-only synchronous form for an already serialized command transaction. */
229
+ /** Server-only synchronous form for an already serialized command transaction. */
230
230
  publishUpdateSynchronous(runId: string, state: WorkflowRunState, nodeId: string, attemptId: string, update: WorkflowUpdateInput, options?: {
231
231
  signal?: AbortSignal;
232
232
  }): {
@@ -253,6 +253,7 @@ export declare class WorkflowRunStore {
253
253
  readRunError(runId: string): string | null;
254
254
  readPresentationInstructions(runId: string): string;
255
255
  readTerminalData(runId: string): WorkflowRunTerminalData | null;
256
+ readRunState(runId: string): WorkflowRunState | null;
256
257
  readRun(runId: string, options?: ReadWorkflowRunOptions): LoadedWorkflowRun | null;
257
258
  readRunViewCounts(runId: string): WorkflowRunViewCounts | null;
258
259
  readRunView(runId: string, options: WorkflowRunViewReadOptions): WorkflowRunViewRead | null;
@@ -307,7 +308,7 @@ export declare class WorkflowRunStore {
307
308
  private syncContinuationIdentity;
308
309
  private readRunRow;
309
310
  private requireRunRow;
310
- private readRunState;
311
+ private materializeRunState;
311
312
  private buildRunState;
312
313
  private readSteps;
313
314
  private readStepRange;
@@ -68,7 +68,7 @@ export class WorkflowRunStore {
68
68
  state;
69
69
  authorityProvider;
70
70
  snapshotLifecycle;
71
- allowHostSessionRecording;
71
+ allowServerSessionRecording;
72
72
  contexts = new Map();
73
73
  ownsState;
74
74
  mutations;
@@ -76,7 +76,7 @@ export class WorkflowRunStore {
76
76
  constructor(databasePath = workflowStatePath(), options = {}) {
77
77
  this.authorityProvider = options.authorityProvider;
78
78
  this.snapshotLifecycle = options.snapshotLifecycle;
79
- this.allowHostSessionRecording = options.allowHostSessionRecording === true;
79
+ this.allowServerSessionRecording = options.allowServerSessionRecording === true;
80
80
  this.ownsState = options.state === undefined;
81
81
  this.state =
82
82
  options.state ??
@@ -93,7 +93,7 @@ export class WorkflowRunStore {
93
93
  if (this.ownsState)
94
94
  this.state.close();
95
95
  }
96
- /** Host-only synchronization after a queue lifecycle mutation on the run resource. */
96
+ /** Server-only synchronization after a queue lifecycle mutation on the run resource. */
97
97
  synchronizeRevision(runId) {
98
98
  const revision = this.resourceRevision(runId);
99
99
  const context = this.contexts.get(runId);
@@ -712,11 +712,11 @@ export class WorkflowRunStore {
712
712
  return { runId, originSessionId, followUps };
713
713
  }
714
714
  async prepareRunResume(runId) {
715
- const loaded = this.readRun(runId, { includeTrace: true });
716
- if (loaded === null)
715
+ const state = this.readRunState(runId);
716
+ if (state === null)
717
717
  throw new Error(`Cannot resume unreadable workflow run: ${runId}`);
718
- if (loaded.state.status !== "running") {
719
- throw new Error(`Cannot resume workflow run ${runId} with status ${loaded.state.status}`);
718
+ if (state.status !== "running") {
719
+ throw new Error(`Cannot resume workflow run ${runId} with status ${state.status}`);
720
720
  }
721
721
  this.verifySettingsProjections(runId);
722
722
  const revision = this.resourceRevision(runId);
@@ -742,18 +742,18 @@ export class WorkflowRunStore {
742
742
  payload: {},
743
743
  };
744
744
  insertRunEvent(this.state, row.resourceId, nextRevision, at, traceEvent);
745
- loaded.state.traceSeq = nextRevision;
746
- loaded.state.updatedAt = at;
747
- this.persistRunState(row, loaded.state, nextRevision, now);
748
- recordViewerDeltas(this.state, runId, runViewerTargets(loaded.state, traceEvent), now);
745
+ state.traceSeq = nextRevision;
746
+ state.updatedAt = at;
747
+ this.persistRunState(row, state, nextRevision, now);
748
+ recordViewerDeltas(this.state, runId, runViewerTargets(state, traceEvent), now);
749
749
  context.revision = nextRevision;
750
750
  });
751
- const prepared = this.readRun(runId, { includeTrace: true });
751
+ const prepared = this.readRunState(runId);
752
752
  if (prepared === null)
753
753
  throw new Error(`Workflow run became unreadable: ${runId}`);
754
754
  return prepared;
755
755
  }
756
- async markRunInterrupted(runId, reason = "Workflow host stopped before the run finished") {
756
+ async markRunInterrupted(runId, reason = "Workflow server stopped before the run finished") {
757
757
  const loaded = this.readRun(runId);
758
758
  if (loaded === null || loaded.state.status !== "running")
759
759
  return loaded;
@@ -780,7 +780,7 @@ export class WorkflowRunStore {
780
780
  async publishUpdate(runId, state, nodeId, attemptId, update, options = {}) {
781
781
  return await this.withRunLock(runId, async () => this.publishUpdateSynchronous(runId, state, nodeId, attemptId, update, options));
782
782
  }
783
- /** Host-only synchronous form for an already serialized command transaction. */
783
+ /** Server-only synchronous form for an already serialized command transaction. */
784
784
  publishUpdateSynchronous(runId, state, nodeId, attemptId, update, options = {}) {
785
785
  if (options.signal?.aborted === true) {
786
786
  throw options.signal.reason ?? new Error("workflow update attempt is no longer active");
@@ -941,7 +941,7 @@ export class WorkflowRunStore {
941
941
  },
942
942
  };
943
943
  insertRunEvent(this.state, run.resourceId, revision, at, traceEvent);
944
- const current = this.readRunState(run, this.readDefinition(run.definitionHash));
944
+ const current = this.materializeRunState(run, this.readDefinition(run.definitionHash));
945
945
  current.traceSeq = revision;
946
946
  current.updatedAt = at;
947
947
  this.persistRunState(run, current, revision, now);
@@ -1304,12 +1304,18 @@ export class WorkflowRunStore {
1304
1304
  restartNumber: row.restartNumber,
1305
1305
  };
1306
1306
  }
1307
+ readRunState(runId) {
1308
+ const row = this.readRunRow(runId);
1309
+ if (row === undefined)
1310
+ return null;
1311
+ return this.materializeRunState(row, this.readDefinition(row.definitionHash));
1312
+ }
1307
1313
  readRun(runId, options = {}) {
1308
1314
  const row = this.readRunRow(runId);
1309
1315
  if (row === undefined)
1310
1316
  return null;
1311
1317
  const snapshot = this.readDefinition(row.definitionHash);
1312
- const state = this.readRunState(row, snapshot);
1318
+ const state = this.materializeRunState(row, snapshot);
1313
1319
  const segments = this.segmentRows(runId).map((segment) => this.loadSegment(segment, state));
1314
1320
  const flat = segments.find((segment) => segment.attemptId === "") ?? emptySegment();
1315
1321
  return {
@@ -1548,7 +1554,7 @@ export class WorkflowRunStore {
1548
1554
  }
1549
1555
  assertSessionWriteAuthority(runId) {
1550
1556
  const run = this.requireRunRow(runId);
1551
- if (this.allowHostSessionRecording)
1557
+ if (this.allowServerSessionRecording)
1552
1558
  return;
1553
1559
  this.assertWriteAuthority(run, this.contextFor(runId).revision);
1554
1560
  }
@@ -2264,7 +2270,7 @@ export class WorkflowRunStore {
2264
2270
  throw new Error(`Workflow run is missing: ${runId}`);
2265
2271
  return row;
2266
2272
  }
2267
- readRunState(row, snapshot) {
2273
+ materializeRunState(row, snapshot) {
2268
2274
  const steps = this.readSteps(row.runId);
2269
2275
  return this.buildRunState(row, snapshot, steps, steps, this.readUpdates(row.runId).updates ?? []);
2270
2276
  }