@pasko70/pibo 3.2.7 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/agent-runtime/capabilities.js +5 -0
  2. package/dist/agent-runtime/contract.js +2 -0
  3. package/dist/agent-runtime/routed-session.js +68 -11
  4. package/dist/agent-runtimes/codex-native/adapter.js +4 -1
  5. package/dist/agent-runtimes/codex-native/process.js +1 -1
  6. package/dist/agent-runtimes/codex-native/protocol-version.js +6 -6
  7. package/dist/agent-runtimes/codex-native/thread.js +26 -4
  8. package/dist/agent-runtimes/omp/adapter.js +1 -0
  9. package/dist/agent-runtimes/omp/process.js +23 -3
  10. package/dist/agent-runtimes/omp/protocol-version.js +2 -0
  11. package/dist/agent-runtimes/pi/adapter.js +5 -1
  12. package/dist/agent-runtimes/pi/model-catalog.js +2 -2
  13. package/dist/agent-runtimes/pi/routed-session.js +53 -5
  14. package/dist/agent-runtimes/pi/runtime.js +6 -3
  15. package/dist/apps/chat/chat-api-routes.js +12 -38
  16. package/dist/apps/chat/chat-request-normalizers.js +15 -50
  17. package/dist/apps/chat/data/legacy-project-migration.js +492 -0
  18. package/dist/apps/chat/data/room-service.js +2 -2
  19. package/dist/apps/chat/data/workflow-session-model.js +1 -0
  20. package/dist/apps/chat/data/workflow-session-service.js +352 -0
  21. package/dist/apps/chat/rooms.js +1 -1
  22. package/dist/apps/chat/session-metadata.js +30 -0
  23. package/dist/apps/chat/trace.js +15 -2
  24. package/dist/apps/chat/types/rooms.js +30 -0
  25. package/dist/apps/chat/web-app.js +355 -651
  26. package/dist/apps/chat/workflow-catalog.js +18 -18
  27. package/dist/apps/chat/{project-workflow-human-actions.js → workflow-human-actions.js} +14 -14
  28. package/dist/apps/chat/workflow-manual-trigger-runtime.js +5 -1
  29. package/dist/apps/chat/workflow-persistence.js +20 -28
  30. package/dist/apps/chat/{project-workflow-sessions.js → workflow-sessions.js} +18 -17
  31. package/dist/apps/chat-ui/assets/{dist-ENXYFYda.js → dist-AhtdAETR.js} +1 -1
  32. package/dist/apps/chat-ui/assets/{dist-CGgUuVB6.js → dist-Bk_L1qbJ.js} +1 -1
  33. package/dist/apps/chat-ui/assets/{dist-DG6T1maU.js → dist-Dyp6sLQn.js} +1 -1
  34. package/dist/apps/chat-ui/assets/{dist-CFtZTGHa.js → dist-jVaiGXFD.js} +1 -1
  35. package/dist/apps/chat-ui/assets/{dist-BikaGikn.js → dist-t25moyJS.js} +1 -1
  36. package/dist/apps/chat-ui/assets/index-CZjNw-aK.js +228 -0
  37. package/dist/apps/chat-ui/assets/index-CcEjFITM.css +1 -0
  38. package/dist/apps/chat-ui/index.html +2 -2
  39. package/dist/apps/chat-vscode-web/assets/index-Spj6M0tn.js +43 -0
  40. package/dist/apps/chat-vscode-web/index.html +1 -1
  41. package/dist/compute/pool/cli.js +1 -1
  42. package/dist/compute/pool/seeds.js +2 -3
  43. package/dist/config/config.js +1 -1
  44. package/dist/core/session-router.js +19 -10
  45. package/dist/debug/agents.js +9 -3
  46. package/dist/plugins/builtin.js +2 -0
  47. package/dist/plugins/registry.js +1 -0
  48. package/dist/previews/cli.js +154 -79
  49. package/dist/previews/compute-worker.js +37 -0
  50. package/dist/previews/config.js +2 -1
  51. package/dist/previews/migrations/session-ownership.js +7 -0
  52. package/dist/previews/proxy.js +4 -2
  53. package/dist/previews/public-setup.js +108 -0
  54. package/dist/previews/store.js +20 -13
  55. package/dist/previews/web-app.js +12 -2
  56. package/dist/providers/openai-gpt56.js +41 -3
  57. package/dist/sessions/workflow-session-kind.js +0 -3
  58. package/dist/subagents/context.js +2 -2
  59. package/dist/subagents/observation-query.js +49 -6
  60. package/dist/subagents/observation-text-regex.js +124 -0
  61. package/dist/subagents/tool.js +3 -2
  62. package/dist/tools/hashline.js +64 -0
  63. package/npm-shrinkwrap.json +786 -284
  64. package/package.json +11 -6
  65. package/packages/workflows/README.md +21 -0
  66. package/packages/workflows/dist/api/index.d.ts +48 -0
  67. package/packages/workflows/dist/api/index.d.ts.map +1 -0
  68. package/packages/workflows/dist/api/index.js +96 -0
  69. package/packages/workflows/dist/api/index.js.map +1 -0
  70. package/packages/workflows/dist/definition-hash.d.ts +4 -0
  71. package/packages/workflows/dist/definition-hash.d.ts.map +1 -0
  72. package/packages/workflows/dist/definition-hash.js +27 -0
  73. package/packages/workflows/dist/definition-hash.js.map +1 -0
  74. package/packages/workflows/dist/fixtures/index.d.ts +39 -0
  75. package/packages/workflows/dist/fixtures/index.d.ts.map +1 -0
  76. package/packages/workflows/dist/fixtures/index.js +608 -0
  77. package/packages/workflows/dist/fixtures/index.js.map +1 -0
  78. package/packages/workflows/dist/index.d.ts +16 -0
  79. package/packages/workflows/dist/index.d.ts.map +1 -0
  80. package/packages/workflows/dist/index.js +10 -0
  81. package/packages/workflows/dist/index.js.map +1 -0
  82. package/packages/workflows/dist/inspection/index.d.ts +47 -0
  83. package/packages/workflows/dist/inspection/index.d.ts.map +1 -0
  84. package/packages/workflows/dist/inspection/index.js +131 -0
  85. package/packages/workflows/dist/inspection/index.js.map +1 -0
  86. package/packages/workflows/dist/registry/index.d.ts +30 -0
  87. package/packages/workflows/dist/registry/index.d.ts.map +1 -0
  88. package/packages/workflows/dist/registry/index.js +161 -0
  89. package/packages/workflows/dist/registry/index.js.map +1 -0
  90. package/packages/workflows/dist/runtime/adapter-node.d.ts +28 -0
  91. package/packages/workflows/dist/runtime/adapter-node.d.ts.map +1 -0
  92. package/packages/workflows/dist/runtime/adapter-node.js +172 -0
  93. package/packages/workflows/dist/runtime/adapter-node.js.map +1 -0
  94. package/packages/workflows/dist/runtime/agent-node.d.ts +32 -0
  95. package/packages/workflows/dist/runtime/agent-node.d.ts.map +1 -0
  96. package/packages/workflows/dist/runtime/agent-node.js +231 -0
  97. package/packages/workflows/dist/runtime/agent-node.js.map +1 -0
  98. package/packages/workflows/dist/runtime/agent-runtime.d.ts +25 -0
  99. package/packages/workflows/dist/runtime/agent-runtime.d.ts.map +1 -0
  100. package/packages/workflows/dist/runtime/agent-runtime.js +111 -0
  101. package/packages/workflows/dist/runtime/agent-runtime.js.map +1 -0
  102. package/packages/workflows/dist/runtime/code-node.d.ts +31 -0
  103. package/packages/workflows/dist/runtime/code-node.d.ts.map +1 -0
  104. package/packages/workflows/dist/runtime/code-node.js +223 -0
  105. package/packages/workflows/dist/runtime/code-node.js.map +1 -0
  106. package/packages/workflows/dist/runtime/dispatch-failures.d.ts +36 -0
  107. package/packages/workflows/dist/runtime/dispatch-failures.d.ts.map +1 -0
  108. package/packages/workflows/dist/runtime/dispatch-failures.js +80 -0
  109. package/packages/workflows/dist/runtime/dispatch-failures.js.map +1 -0
  110. package/packages/workflows/dist/runtime/edge-payloads.d.ts +3 -0
  111. package/packages/workflows/dist/runtime/edge-payloads.d.ts.map +1 -0
  112. package/packages/workflows/dist/runtime/edge-payloads.js +11 -0
  113. package/packages/workflows/dist/runtime/edge-payloads.js.map +1 -0
  114. package/packages/workflows/dist/runtime/edge-transfer.d.ts +39 -0
  115. package/packages/workflows/dist/runtime/edge-transfer.d.ts.map +1 -0
  116. package/packages/workflows/dist/runtime/edge-transfer.js +356 -0
  117. package/packages/workflows/dist/runtime/edge-transfer.js.map +1 -0
  118. package/packages/workflows/dist/runtime/human-action.d.ts +43 -0
  119. package/packages/workflows/dist/runtime/human-action.d.ts.map +1 -0
  120. package/packages/workflows/dist/runtime/human-action.js +231 -0
  121. package/packages/workflows/dist/runtime/human-action.js.map +1 -0
  122. package/packages/workflows/dist/runtime/human-node.d.ts +27 -0
  123. package/packages/workflows/dist/runtime/human-node.d.ts.map +1 -0
  124. package/packages/workflows/dist/runtime/human-node.js +126 -0
  125. package/packages/workflows/dist/runtime/human-node.js.map +1 -0
  126. package/packages/workflows/dist/runtime/ids.d.ts +2 -0
  127. package/packages/workflows/dist/runtime/ids.d.ts.map +1 -0
  128. package/packages/workflows/dist/runtime/ids.js +4 -0
  129. package/packages/workflows/dist/runtime/ids.js.map +1 -0
  130. package/packages/workflows/dist/runtime/index.d.ts +23 -0
  131. package/packages/workflows/dist/runtime/index.d.ts.map +1 -0
  132. package/packages/workflows/dist/runtime/index.js +12 -0
  133. package/packages/workflows/dist/runtime/index.js.map +1 -0
  134. package/packages/workflows/dist/runtime/manual-trigger.d.ts +51 -0
  135. package/packages/workflows/dist/runtime/manual-trigger.d.ts.map +1 -0
  136. package/packages/workflows/dist/runtime/manual-trigger.js +403 -0
  137. package/packages/workflows/dist/runtime/manual-trigger.js.map +1 -0
  138. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts +48 -0
  139. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts.map +1 -0
  140. package/packages/workflows/dist/runtime/nested-workflow-node.js +246 -0
  141. package/packages/workflows/dist/runtime/nested-workflow-node.js.map +1 -0
  142. package/packages/workflows/dist/runtime/one-node-agent.d.ts +34 -0
  143. package/packages/workflows/dist/runtime/one-node-agent.d.ts.map +1 -0
  144. package/packages/workflows/dist/runtime/one-node-agent.js +334 -0
  145. package/packages/workflows/dist/runtime/one-node-agent.js.map +1 -0
  146. package/packages/workflows/dist/runtime/persistence.d.ts +9 -0
  147. package/packages/workflows/dist/runtime/persistence.d.ts.map +1 -0
  148. package/packages/workflows/dist/runtime/persistence.js +67 -0
  149. package/packages/workflows/dist/runtime/persistence.js.map +1 -0
  150. package/packages/workflows/dist/runtime/pibo-routing.d.ts +126 -0
  151. package/packages/workflows/dist/runtime/pibo-routing.d.ts.map +1 -0
  152. package/packages/workflows/dist/runtime/pibo-routing.js +96 -0
  153. package/packages/workflows/dist/runtime/pibo-routing.js.map +1 -0
  154. package/packages/workflows/dist/runtime/prompts.d.ts +20 -0
  155. package/packages/workflows/dist/runtime/prompts.d.ts.map +1 -0
  156. package/packages/workflows/dist/runtime/prompts.js +235 -0
  157. package/packages/workflows/dist/runtime/prompts.js.map +1 -0
  158. package/packages/workflows/dist/runtime/retry.d.ts +35 -0
  159. package/packages/workflows/dist/runtime/retry.d.ts.map +1 -0
  160. package/packages/workflows/dist/runtime/retry.js +80 -0
  161. package/packages/workflows/dist/runtime/retry.js.map +1 -0
  162. package/packages/workflows/dist/runtime/state.d.ts +14 -0
  163. package/packages/workflows/dist/runtime/state.d.ts.map +1 -0
  164. package/packages/workflows/dist/runtime/state.js +139 -0
  165. package/packages/workflows/dist/runtime/state.js.map +1 -0
  166. package/packages/workflows/dist/runtime/time.d.ts +6 -0
  167. package/packages/workflows/dist/runtime/time.d.ts.map +1 -0
  168. package/packages/workflows/dist/runtime/time.js +42 -0
  169. package/packages/workflows/dist/runtime/time.js.map +1 -0
  170. package/packages/workflows/dist/store/catalog-records.d.ts +18 -0
  171. package/packages/workflows/dist/store/catalog-records.d.ts.map +1 -0
  172. package/packages/workflows/dist/store/catalog-records.js +59 -0
  173. package/packages/workflows/dist/store/catalog-records.js.map +1 -0
  174. package/packages/workflows/dist/store/contracts.d.ts +149 -0
  175. package/packages/workflows/dist/store/contracts.d.ts.map +1 -0
  176. package/packages/workflows/dist/store/contracts.js +2 -0
  177. package/packages/workflows/dist/store/contracts.js.map +1 -0
  178. package/packages/workflows/dist/store/draft-writes.d.ts +7 -0
  179. package/packages/workflows/dist/store/draft-writes.d.ts.map +1 -0
  180. package/packages/workflows/dist/store/draft-writes.js +18 -0
  181. package/packages/workflows/dist/store/draft-writes.js.map +1 -0
  182. package/packages/workflows/dist/store/index.d.ts +55 -0
  183. package/packages/workflows/dist/store/index.d.ts.map +1 -0
  184. package/packages/workflows/dist/store/index.js +650 -0
  185. package/packages/workflows/dist/store/index.js.map +1 -0
  186. package/packages/workflows/dist/store/list-query.d.ts +13 -0
  187. package/packages/workflows/dist/store/list-query.d.ts.map +1 -0
  188. package/packages/workflows/dist/store/list-query.js +20 -0
  189. package/packages/workflows/dist/store/list-query.js.map +1 -0
  190. package/packages/workflows/dist/store/row-mappers.d.ts +206 -0
  191. package/packages/workflows/dist/store/row-mappers.d.ts.map +1 -0
  192. package/packages/workflows/dist/store/row-mappers.js +262 -0
  193. package/packages/workflows/dist/store/row-mappers.js.map +1 -0
  194. package/packages/workflows/dist/store/schema.d.ts +13 -0
  195. package/packages/workflows/dist/store/schema.d.ts.map +1 -0
  196. package/packages/workflows/dist/store/schema.js +458 -0
  197. package/packages/workflows/dist/store/schema.js.map +1 -0
  198. package/packages/workflows/dist/store/write-values.d.ts +18 -0
  199. package/packages/workflows/dist/store/write-values.d.ts.map +1 -0
  200. package/packages/workflows/dist/store/write-values.js +227 -0
  201. package/packages/workflows/dist/store/write-values.js.map +1 -0
  202. package/packages/workflows/dist/types/index.d.ts +1202 -0
  203. package/packages/workflows/dist/types/index.d.ts.map +1 -0
  204. package/packages/workflows/dist/types/index.js +8 -0
  205. package/packages/workflows/dist/types/index.js.map +1 -0
  206. package/packages/workflows/dist/validation/diagnostics.d.ts +27 -0
  207. package/packages/workflows/dist/validation/diagnostics.d.ts.map +1 -0
  208. package/packages/workflows/dist/validation/diagnostics.js +104 -0
  209. package/packages/workflows/dist/validation/diagnostics.js.map +1 -0
  210. package/packages/workflows/dist/validation/graph-cycles.d.ts +4 -0
  211. package/packages/workflows/dist/validation/graph-cycles.d.ts.map +1 -0
  212. package/packages/workflows/dist/validation/graph-cycles.js +130 -0
  213. package/packages/workflows/dist/validation/graph-cycles.js.map +1 -0
  214. package/packages/workflows/dist/validation/graph-edges.d.ts +5 -0
  215. package/packages/workflows/dist/validation/graph-edges.d.ts.map +1 -0
  216. package/packages/workflows/dist/validation/graph-edges.js +48 -0
  217. package/packages/workflows/dist/validation/graph-edges.js.map +1 -0
  218. package/packages/workflows/dist/validation/graph-ports.d.ts +5 -0
  219. package/packages/workflows/dist/validation/graph-ports.d.ts.map +1 -0
  220. package/packages/workflows/dist/validation/graph-ports.js +55 -0
  221. package/packages/workflows/dist/validation/graph-ports.js.map +1 -0
  222. package/packages/workflows/dist/validation/index.d.ts +18 -0
  223. package/packages/workflows/dist/validation/index.d.ts.map +1 -0
  224. package/packages/workflows/dist/validation/index.js +175 -0
  225. package/packages/workflows/dist/validation/index.js.map +1 -0
  226. package/packages/workflows/dist/validation/json-schema.d.ts +12 -0
  227. package/packages/workflows/dist/validation/json-schema.d.ts.map +1 -0
  228. package/packages/workflows/dist/validation/json-schema.js +556 -0
  229. package/packages/workflows/dist/validation/json-schema.js.map +1 -0
  230. package/packages/workflows/dist/validation/registry-refs.d.ts +21 -0
  231. package/packages/workflows/dist/validation/registry-refs.d.ts.map +1 -0
  232. package/packages/workflows/dist/validation/registry-refs.js +283 -0
  233. package/packages/workflows/dist/validation/registry-refs.js.map +1 -0
  234. package/packages/workflows/dist/validation/retry-policy.d.ts +3 -0
  235. package/packages/workflows/dist/validation/retry-policy.d.ts.map +1 -0
  236. package/packages/workflows/dist/validation/retry-policy.js +114 -0
  237. package/packages/workflows/dist/validation/retry-policy.js.map +1 -0
  238. package/packages/workflows/dist/validation/schema-declarations.d.ts +5 -0
  239. package/packages/workflows/dist/validation/schema-declarations.d.ts.map +1 -0
  240. package/packages/workflows/dist/validation/schema-declarations.js +36 -0
  241. package/packages/workflows/dist/validation/schema-declarations.js.map +1 -0
  242. package/packages/workflows/dist/validation/state-access.d.ts +4 -0
  243. package/packages/workflows/dist/validation/state-access.d.ts.map +1 -0
  244. package/packages/workflows/dist/validation/state-access.js +121 -0
  245. package/packages/workflows/dist/validation/state-access.js.map +1 -0
  246. package/packages/workflows/dist/xstate/index.d.ts +73 -0
  247. package/packages/workflows/dist/xstate/index.d.ts.map +1 -0
  248. package/packages/workflows/dist/xstate/index.js +728 -0
  249. package/packages/workflows/dist/xstate/index.js.map +1 -0
  250. package/packages/workflows/package.json +23 -0
  251. package/dist/apps/chat/data/project-service.js +0 -1029
  252. package/dist/apps/chat-ui/assets/index-BwT5grLv.css +0 -1
  253. package/dist/apps/chat-ui/assets/index-PTJanD3E.js +0 -228
  254. package/dist/apps/chat-vscode-web/assets/index-D1bpAUkR.js +0 -43
@@ -0,0 +1,246 @@
1
+ import { resolveWorkflowDefinition } from "../registry/index.js";
2
+ import { validateNodeOutput, validateWorkflowInput, validateWorkflowOutput, validateWorkflowPortValue, } from "../validation/index.js";
3
+ import { failNestedWorkflowNodeDispatch, nestedWorkflowNodeDispatchFailure, } from "./dispatch-failures.js";
4
+ import { createWorkflowRuntimeId as createId } from "./ids.js";
5
+ import { emitWorkflowRuntimeEvent, persistWorkflowNodeAttempt, persistWorkflowRun, } from "./persistence.js";
6
+ import { createNodeScopedWorkflowRun, localStateSnapshotForNode } from "./state.js";
7
+ import { createTimestampFactory } from "./time.js";
8
+ export async function dispatchWorkflowNestedWorkflowNode(definition, run, nodeId, input, options) {
9
+ const events = [];
10
+ const timestamp = createTimestampFactory(options.now);
11
+ const node = definition.nodes[nodeId];
12
+ if (!node) {
13
+ return nestedWorkflowNodeDispatchFailure({
14
+ run,
15
+ events,
16
+ diagnostics: [
17
+ {
18
+ code: "WorkflowRuntimeError.unknownNode",
19
+ message: `Workflow node '${nodeId}' does not exist, so it cannot be dispatched as a nested workflow node.`,
20
+ severity: "error",
21
+ nodeId,
22
+ path: `$.nodes.${nodeId}`,
23
+ },
24
+ ],
25
+ error: {
26
+ code: "WorkflowRuntimeError.unknownNode",
27
+ message: "Nested workflow node dispatch failed because the node is not declared.",
28
+ },
29
+ });
30
+ }
31
+ if (node.kind !== "workflow") {
32
+ return nestedWorkflowNodeDispatchFailure({
33
+ run,
34
+ events,
35
+ diagnostics: [
36
+ {
37
+ code: "WorkflowRuntimeError.workflowNodeRequired",
38
+ message: `Workflow node '${nodeId}' is '${node.kind}', but nested workflow dispatch requires a workflow node.`,
39
+ severity: "error",
40
+ nodeId,
41
+ path: `$.nodes.${nodeId}.kind`,
42
+ },
43
+ ],
44
+ error: {
45
+ code: "WorkflowRuntimeError.workflowNodeRequired",
46
+ message: "Nested workflow node dispatch failed because the selected node is not a workflow node.",
47
+ },
48
+ });
49
+ }
50
+ const workflowNode = node;
51
+ const startedAt = timestamp();
52
+ const nodeAttempt = {
53
+ id: options.createNodeAttemptId?.() ?? createId("wna"),
54
+ workflowRunId: run.id,
55
+ nodeId,
56
+ attempt: 1,
57
+ kind: "workflow",
58
+ status: "running",
59
+ input,
60
+ startedAt,
61
+ ...localStateSnapshotForNode(run, nodeId),
62
+ metadata: {
63
+ workflowId: workflowNode.workflowId,
64
+ ...(workflowNode.workflowVersion ? { workflowVersion: workflowNode.workflowVersion } : {}),
65
+ ...(workflowNode.namespace ? { namespace: workflowNode.namespace } : {}),
66
+ },
67
+ };
68
+ run.current = { nodeId, status: "running" };
69
+ run.updatedAt = startedAt;
70
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
71
+ type: "node.started",
72
+ runId: run.id,
73
+ nodeAttemptId: nodeAttempt.id,
74
+ nodeId,
75
+ });
76
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
77
+ await persistWorkflowRun(options.store, run);
78
+ const diagnostics = [];
79
+ const childWorkflow = resolveWorkflowDefinition(options.registry, workflowNode.workflowId, workflowNode.workflowVersion);
80
+ if (!childWorkflow) {
81
+ diagnostics.push({
82
+ code: "WorkflowGraphError.unknownWorkflowRef",
83
+ message: `Workflow node '${nodeId}' references child workflow '${workflowNode.workflowId}${workflowNode.workflowVersion ? `@${workflowNode.workflowVersion}` : ""}', but it is not registered in the Workflow Registry.`,
84
+ severity: "error",
85
+ nodeId,
86
+ path: `$.nodes.${nodeId}.workflowId`,
87
+ registryRef: workflowNode.workflowId,
88
+ hint: "Register the child workflow definition before dispatching the nested workflow node.",
89
+ });
90
+ }
91
+ if (workflowNode.input) {
92
+ diagnostics.push(...validateWorkflowPortValue(workflowNode.input, input, { path: `$.nodes.${nodeId}.input` }).diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId })));
93
+ }
94
+ if (childWorkflow) {
95
+ diagnostics.push(...validateWorkflowInput(childWorkflow, input, { path: `$.nodes.${nodeId}.childInput` }).diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId })));
96
+ }
97
+ if (diagnostics.some((diagnostic) => diagnostic.severity === "error")) {
98
+ return failNestedWorkflowNodeDispatch({
99
+ run,
100
+ nodeAttempt,
101
+ events,
102
+ diagnostics,
103
+ timestamp,
104
+ store: options.store,
105
+ emitEvent: options.emitEvent,
106
+ error: {
107
+ code: "WorkflowRuntimeError.workflowNodeDispatchFailed",
108
+ message: "Nested workflow node dispatch failed before child workflow execution.",
109
+ },
110
+ });
111
+ }
112
+ const childRunId = options.createChildRunId?.() ?? createId("wfr");
113
+ try {
114
+ const executorResult = await options.nestedWorkflowExecutor({
115
+ workflow: definition,
116
+ run: createNodeScopedWorkflowRun(run, nodeId),
117
+ nodeAttemptId: nodeAttempt.id,
118
+ nodeId,
119
+ node: workflowNode,
120
+ childWorkflow: childWorkflow,
121
+ childRunId,
122
+ input,
123
+ namespace: workflowNode.namespace,
124
+ });
125
+ if (executorResult.events?.length) {
126
+ events.push(...executorResult.events);
127
+ }
128
+ nodeAttempt.metadata = {
129
+ ...nodeAttempt.metadata,
130
+ childRunId: executorResult.childRun.id,
131
+ childWorkflowId: executorResult.childRun.workflowId,
132
+ childWorkflowVersion: executorResult.childRun.workflowVersion,
133
+ };
134
+ if (executorResult.childRun.status !== "completed") {
135
+ return failNestedWorkflowNodeDispatch({
136
+ run,
137
+ nodeAttempt,
138
+ events,
139
+ diagnostics: [
140
+ {
141
+ code: "WorkflowRuntimeError.childWorkflowIncomplete",
142
+ message: `Child workflow run '${executorResult.childRun.id}' ended with status '${executorResult.childRun.status}' instead of 'completed'.`,
143
+ severity: "error",
144
+ nodeId,
145
+ path: `$.nodes.${nodeId}.workflowId`,
146
+ hint: "Nested workflow nodes must wait for the child workflow to complete successfully before producing output.",
147
+ },
148
+ ],
149
+ timestamp,
150
+ store: options.store,
151
+ emitEvent: options.emitEvent,
152
+ error: {
153
+ code: executorResult.childRun.status === "failed"
154
+ ? "WorkflowRuntimeError.childWorkflowFailed"
155
+ : "WorkflowRuntimeError.childWorkflowIncomplete",
156
+ message: "Nested workflow node dispatch failed because the child workflow did not complete successfully.",
157
+ },
158
+ childRun: executorResult.childRun,
159
+ });
160
+ }
161
+ const childOutputResult = validateWorkflowOutput(childWorkflow, executorResult.output, {
162
+ path: `$.nodes.${nodeId}.childOutput`,
163
+ });
164
+ if (!childOutputResult.ok) {
165
+ return failNestedWorkflowNodeDispatch({
166
+ run,
167
+ nodeAttempt,
168
+ events,
169
+ diagnostics: childOutputResult.diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId })),
170
+ timestamp,
171
+ store: options.store,
172
+ emitEvent: options.emitEvent,
173
+ error: {
174
+ code: "WorkflowRuntimeError.invalidChildWorkflowOutput",
175
+ message: "Child workflow output failed validation before parent node completion.",
176
+ },
177
+ childRun: executorResult.childRun,
178
+ });
179
+ }
180
+ const nodeOutputResult = validateNodeOutput(definition, nodeId, executorResult.output);
181
+ if (!nodeOutputResult.ok) {
182
+ return failNestedWorkflowNodeDispatch({
183
+ run,
184
+ nodeAttempt,
185
+ events,
186
+ diagnostics: nodeOutputResult.diagnostics,
187
+ timestamp,
188
+ store: options.store,
189
+ emitEvent: options.emitEvent,
190
+ error: {
191
+ code: "WorkflowRuntimeError.invalidNodeOutput",
192
+ message: "Nested workflow node output failed validation before downstream use.",
193
+ },
194
+ childRun: executorResult.childRun,
195
+ });
196
+ }
197
+ const completedAt = timestamp();
198
+ nodeAttempt.status = "completed";
199
+ nodeAttempt.output = executorResult.output;
200
+ nodeAttempt.completedAt = completedAt;
201
+ Object.assign(nodeAttempt, localStateSnapshotForNode(run, nodeId));
202
+ run.current = { nodeId, status: run.status };
203
+ run.updatedAt = completedAt;
204
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
205
+ type: "node.completed",
206
+ runId: run.id,
207
+ nodeAttemptId: nodeAttempt.id,
208
+ output: executorResult.output,
209
+ });
210
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
211
+ await persistWorkflowRun(options.store, run);
212
+ return {
213
+ ok: true,
214
+ run,
215
+ nodeAttempt,
216
+ events,
217
+ output: executorResult.output,
218
+ childRun: executorResult.childRun,
219
+ };
220
+ }
221
+ catch (caught) {
222
+ return failNestedWorkflowNodeDispatch({
223
+ run,
224
+ nodeAttempt,
225
+ events,
226
+ diagnostics: [],
227
+ timestamp,
228
+ store: options.store,
229
+ emitEvent: options.emitEvent,
230
+ error: nestedWorkflowErrorSummaryFromCaught(caught),
231
+ });
232
+ }
233
+ }
234
+ function nestedWorkflowErrorSummaryFromCaught(caught) {
235
+ if (caught instanceof Error) {
236
+ return {
237
+ code: "WorkflowRuntimeError.nestedWorkflowExecutorFailed",
238
+ message: caught.message,
239
+ };
240
+ }
241
+ return {
242
+ code: "WorkflowRuntimeError.nestedWorkflowExecutorFailed",
243
+ message: "Nested workflow executor failed with a non-Error value.",
244
+ };
245
+ }
246
+ //# sourceMappingURL=nested-workflow-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-workflow-node.js","sourceRoot":"","sources":["../../src/runtime/nested-workflow-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { WorkflowRunStore } from "../store/index.js";
2
+ import type { JsonValue, NodeAttempt, NodeAttemptId, NodeId, ValidationResult, WorkflowDefinition, WorkflowDiagnostic, WorkflowErrorSummary, WorkflowEventEmitter, WorkflowRegistry, WorkflowRun, WorkflowRunId, WorkflowRuntimeEvent, WorkflowValue } from "../types/index.js";
3
+ import type { AgentProfileResolver, OneNodeAgentExecutor } from "./pibo-routing.js";
4
+ export type OneNodeAgentWorkflowOptions = {
5
+ registry?: Pick<WorkflowRegistry, "promptBuilders">;
6
+ initialGlobalState?: Record<string, JsonValue>;
7
+ initialLocalState?: Record<NodeId, Record<string, JsonValue>>;
8
+ now?: () => Date | string;
9
+ createRunId?: () => WorkflowRunId;
10
+ createNodeAttemptId?: () => NodeAttemptId;
11
+ store?: WorkflowRunStore;
12
+ emitEvent?: WorkflowEventEmitter;
13
+ profileResolver?: AgentProfileResolver;
14
+ agentExecutor: OneNodeAgentExecutor;
15
+ };
16
+ export type OneNodeAgentWorkflowSuccess = {
17
+ ok: true;
18
+ run: WorkflowRun;
19
+ nodeAttempt: NodeAttempt;
20
+ events: WorkflowRuntimeEvent[];
21
+ output: WorkflowValue;
22
+ };
23
+ export type OneNodeAgentWorkflowFailure = {
24
+ ok: false;
25
+ run?: WorkflowRun;
26
+ nodeAttempt?: NodeAttempt;
27
+ events: WorkflowRuntimeEvent[];
28
+ diagnostics: WorkflowDiagnostic[];
29
+ error: WorkflowErrorSummary;
30
+ };
31
+ export type OneNodeAgentWorkflowResult = OneNodeAgentWorkflowSuccess | OneNodeAgentWorkflowFailure;
32
+ export declare function validateOneNodeAgentWorkflowPath(definition: WorkflowDefinition): ValidationResult;
33
+ export declare function runOneNodeAgentWorkflow(definition: WorkflowDefinition, input: WorkflowValue, options: OneNodeAgentWorkflowOptions): Promise<OneNodeAgentWorkflowResult>;
34
+ //# sourceMappingURL=one-node-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-node-agent.d.ts","sourceRoot":"","sources":["../../src/runtime/one-node-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAEV,SAAS,EACT,WAAW,EACX,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAe3B,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAc3B,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,aAAa,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,aAAa,CAAC;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,aAAa,EAAE,oBAAoB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,KAAK,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC,2BAA2B,GAC3B,2BAA2B,CAAC;AAEhC,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,kBAAkB,GAC7B,gBAAgB,CAwFlB;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CA+OrC"}
@@ -0,0 +1,334 @@
1
+ import { validateNodeOutput, validateWorkflow, validateWorkflowGlobalState, validateWorkflowInput, validateWorkflowOutput, } from "../validation/index.js";
2
+ import { agentExecutorErrorSummaryFromCaught, createAgentRuntimeSelectionMetadata, linkWorkflowRunToAgentSession, resolveAgentProfileForRuntime, } from "./agent-runtime.js";
3
+ import { createWorkflowRuntimeId as createId } from "./ids.js";
4
+ import { emitWorkflowRuntimeEvent, persistWorkflowNodeAttempt, persistWorkflowRun, } from "./persistence.js";
5
+ import { buildAgentNodePrompt, recordFinalAgentPrompt } from "./prompts.js";
6
+ import { createInitialWorkflowRunState, createNodeScopedWorkflowRun, localStateSnapshotForNode, } from "./state.js";
7
+ import { createTimestampFactory } from "./time.js";
8
+ export function validateOneNodeAgentWorkflowPath(definition) {
9
+ const diagnostics = [
10
+ ...validateWorkflow(definition).diagnostics,
11
+ ];
12
+ const nodeEntries = Object.entries(definition.nodes);
13
+ if (nodeEntries.length !== 1) {
14
+ diagnostics.push({
15
+ code: "WorkflowRuntimeError.oneNodeAgentRequired",
16
+ message: "The one-node agent workflow path requires exactly one node.",
17
+ severity: "error",
18
+ path: "$.nodes",
19
+ hint: "Use a workflow with one agent node, no edges, and matching initial/final ids.",
20
+ });
21
+ }
22
+ const initialNodeIds = toNodeIdArray(definition.initial);
23
+ if (initialNodeIds.length !== 1) {
24
+ diagnostics.push({
25
+ code: "WorkflowRuntimeError.singleInitialRequired",
26
+ message: "The one-node agent workflow path requires exactly one initial node.",
27
+ severity: "error",
28
+ path: "$.initial",
29
+ });
30
+ }
31
+ if (Object.keys(definition.edges).length > 0) {
32
+ diagnostics.push({
33
+ code: "WorkflowRuntimeError.edgesUnsupported",
34
+ message: "The one-node agent workflow path does not execute edges.",
35
+ severity: "error",
36
+ path: "$.edges",
37
+ hint: "Use the later graph runtime path for multi-node workflows with edges.",
38
+ });
39
+ }
40
+ const [nodeId, node] = nodeEntries[0] ?? [];
41
+ if (nodeId && node) {
42
+ const finalNodeIds = definition.final
43
+ ? toNodeIdArray(definition.final)
44
+ : [nodeId];
45
+ if (initialNodeIds.length === 1 && initialNodeIds[0] !== nodeId) {
46
+ diagnostics.push({
47
+ code: "WorkflowRuntimeError.initialNodeMismatch",
48
+ message: "The initial node must be the only declared node for the one-node agent workflow path.",
49
+ severity: "error",
50
+ path: "$.initial",
51
+ nodeId: initialNodeIds[0],
52
+ });
53
+ }
54
+ if (finalNodeIds.length !== 1 || finalNodeIds[0] !== nodeId) {
55
+ diagnostics.push({
56
+ code: "WorkflowRuntimeError.finalNodeMismatch",
57
+ message: "The final node must be the only declared node for the one-node agent workflow path.",
58
+ severity: "error",
59
+ path: "$.final",
60
+ nodeId,
61
+ });
62
+ }
63
+ if (node.kind !== "agent") {
64
+ diagnostics.push({
65
+ code: "WorkflowRuntimeError.agentNodeRequired",
66
+ message: "The one-node workflow path only supports agent nodes.",
67
+ severity: "error",
68
+ path: `$.nodes.${nodeId}.kind`,
69
+ nodeId,
70
+ });
71
+ }
72
+ else if (node.runtime !== "pibo") {
73
+ diagnostics.push({
74
+ code: "WorkflowRuntimeError.piboRuntimeRequired",
75
+ message: "Agent nodes must use the Pibo runtime in the one-node agent workflow path.",
76
+ severity: "error",
77
+ path: `$.nodes.${nodeId}.runtime`,
78
+ nodeId,
79
+ });
80
+ }
81
+ }
82
+ return diagnostics.some((diagnostic) => diagnostic.severity === "error")
83
+ ? { ok: false, diagnostics }
84
+ : { ok: true, diagnostics };
85
+ }
86
+ export async function runOneNodeAgentWorkflow(definition, input, options) {
87
+ const events = [];
88
+ const shapeResult = validateOneNodeAgentWorkflowPath(definition);
89
+ if (!shapeResult.ok) {
90
+ return runtimeFailure(events, shapeResult.diagnostics, {
91
+ code: "WorkflowRuntimeError.invalidDefinition",
92
+ message: "Workflow definition cannot run on the one-node agent workflow path.",
93
+ });
94
+ }
95
+ const inputResult = validateWorkflowInput(definition, input);
96
+ if (!inputResult.ok) {
97
+ return runtimeFailure(events, inputResult.diagnostics, {
98
+ code: "WorkflowRuntimeError.invalidInput",
99
+ message: "Workflow input failed validation before execution.",
100
+ });
101
+ }
102
+ const initialGlobalState = { ...(options.initialGlobalState ?? {}) };
103
+ const globalStateResult = validateWorkflowGlobalState(definition, initialGlobalState);
104
+ if (!globalStateResult.ok) {
105
+ return runtimeFailure(events, globalStateResult.diagnostics, {
106
+ code: "WorkflowRuntimeError.invalidGlobalState",
107
+ message: "Workflow global state failed validation before execution.",
108
+ });
109
+ }
110
+ const nodeId = toNodeIdArray(definition.initial)[0];
111
+ const node = definition.nodes[nodeId];
112
+ const timestamp = createTimestampFactory(options.now);
113
+ const createdAt = timestamp();
114
+ const run = {
115
+ id: options.createRunId?.() ?? createId("wfr"),
116
+ workflowId: definition.id,
117
+ workflowVersion: definition.version,
118
+ status: "running",
119
+ current: { nodeId, status: "running" },
120
+ input,
121
+ state: createInitialWorkflowRunState(initialGlobalState, options.initialLocalState),
122
+ createdAt,
123
+ updatedAt: createdAt,
124
+ };
125
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
126
+ type: "workflow.started",
127
+ runId: run.id,
128
+ workflowId: definition.id,
129
+ });
130
+ await persistWorkflowRun(options.store, run);
131
+ const nodeAttempt = {
132
+ id: options.createNodeAttemptId?.() ?? createId("wna"),
133
+ workflowRunId: run.id,
134
+ nodeId,
135
+ attempt: 1,
136
+ kind: "agent",
137
+ status: "running",
138
+ input,
139
+ startedAt: timestamp(),
140
+ ...localStateSnapshotForNode(run, nodeId),
141
+ };
142
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
143
+ type: "node.started",
144
+ runId: run.id,
145
+ nodeAttemptId: nodeAttempt.id,
146
+ nodeId,
147
+ });
148
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
149
+ try {
150
+ const profileResolution = await resolveAgentProfileForRuntime({
151
+ workflow: definition,
152
+ run,
153
+ nodeId,
154
+ node,
155
+ resolver: options.profileResolver,
156
+ });
157
+ if (!profileResolution.ok) {
158
+ return failRunningWorkflow({
159
+ run,
160
+ nodeAttempt,
161
+ events,
162
+ diagnostics: profileResolution.diagnostics,
163
+ timestamp,
164
+ store: options.store,
165
+ emitEvent: options.emitEvent,
166
+ error: profileResolution.error,
167
+ });
168
+ }
169
+ const promptResult = await buildAgentNodePrompt(node, input, {
170
+ workflow: definition,
171
+ run,
172
+ nodeId,
173
+ registry: options.registry,
174
+ });
175
+ if (!promptResult.ok) {
176
+ return failRunningWorkflow({
177
+ run,
178
+ nodeAttempt,
179
+ events,
180
+ diagnostics: promptResult.diagnostics,
181
+ timestamp,
182
+ store: options.store,
183
+ emitEvent: options.emitEvent,
184
+ error: promptResult.error,
185
+ });
186
+ }
187
+ recordFinalAgentPrompt(nodeAttempt, promptResult.recordedPrompt);
188
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
189
+ const executorResult = await options.agentExecutor({
190
+ workflow: definition,
191
+ run: createNodeScopedWorkflowRun(run, nodeId),
192
+ nodeAttemptId: nodeAttempt.id,
193
+ nodeId,
194
+ node,
195
+ input,
196
+ prompt: promptResult.prompt,
197
+ profileId: profileResolution.profile.id,
198
+ resolvedProfile: profileResolution.profile,
199
+ routing: node.routing,
200
+ });
201
+ const nodeOutputResult = validateNodeOutput(definition, nodeId, executorResult.output);
202
+ if (!nodeOutputResult.ok) {
203
+ return failRunningWorkflow({
204
+ run,
205
+ nodeAttempt,
206
+ events,
207
+ diagnostics: nodeOutputResult.diagnostics,
208
+ timestamp,
209
+ store: options.store,
210
+ emitEvent: options.emitEvent,
211
+ error: {
212
+ code: "WorkflowRuntimeError.invalidNodeOutput",
213
+ message: "Agent node output failed validation before workflow completion.",
214
+ },
215
+ });
216
+ }
217
+ const workflowOutputResult = validateWorkflowOutput(definition, executorResult.output);
218
+ if (!workflowOutputResult.ok) {
219
+ return failRunningWorkflow({
220
+ run,
221
+ nodeAttempt,
222
+ events,
223
+ diagnostics: workflowOutputResult.diagnostics,
224
+ timestamp,
225
+ store: options.store,
226
+ emitEvent: options.emitEvent,
227
+ error: {
228
+ code: "WorkflowRuntimeError.invalidWorkflowOutput",
229
+ message: "Workflow output failed validation before completion.",
230
+ },
231
+ });
232
+ }
233
+ const runtimeMetadata = createAgentRuntimeSelectionMetadata({
234
+ run,
235
+ node,
236
+ profile: profileResolution.profile,
237
+ executorResult,
238
+ });
239
+ const completedAt = timestamp();
240
+ nodeAttempt.status = "completed";
241
+ nodeAttempt.output = executorResult.output;
242
+ nodeAttempt.completedAt = completedAt;
243
+ Object.assign(nodeAttempt, localStateSnapshotForNode(run, nodeId));
244
+ nodeAttempt.metadata = {
245
+ ...nodeAttempt.metadata,
246
+ runtime: runtimeMetadata,
247
+ ...(executorResult.piboSessionId
248
+ ? { piboSessionId: executorResult.piboSessionId }
249
+ : {}),
250
+ ...(executorResult.piSessionId
251
+ ? { piSessionId: executorResult.piSessionId }
252
+ : {}),
253
+ };
254
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
255
+ type: "node.completed",
256
+ runId: run.id,
257
+ nodeAttemptId: nodeAttempt.id,
258
+ output: executorResult.output,
259
+ });
260
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
261
+ run.status = "completed";
262
+ run.current = { nodeId, status: "completed" };
263
+ linkWorkflowRunToAgentSession(run, node, executorResult);
264
+ run.output = executorResult.output;
265
+ run.completedAt = completedAt;
266
+ run.updatedAt = completedAt;
267
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
268
+ type: "workflow.completed",
269
+ runId: run.id,
270
+ output: executorResult.output,
271
+ });
272
+ await persistWorkflowRun(options.store, run);
273
+ return {
274
+ ok: true,
275
+ run,
276
+ nodeAttempt,
277
+ events,
278
+ output: executorResult.output,
279
+ };
280
+ }
281
+ catch (caught) {
282
+ return failRunningWorkflow({
283
+ run,
284
+ nodeAttempt,
285
+ events,
286
+ diagnostics: [],
287
+ timestamp,
288
+ store: options.store,
289
+ emitEvent: options.emitEvent,
290
+ error: agentExecutorErrorSummaryFromCaught(caught),
291
+ });
292
+ }
293
+ }
294
+ async function failRunningWorkflow(options) {
295
+ const failedAt = options.timestamp();
296
+ options.nodeAttempt.status = "failed";
297
+ options.nodeAttempt.error = options.error;
298
+ options.nodeAttempt.failedAt = failedAt;
299
+ options.run.status = "failed";
300
+ options.run.current = {
301
+ nodeId: options.nodeAttempt.nodeId,
302
+ status: "failed",
303
+ };
304
+ options.run.failedAt = failedAt;
305
+ options.run.updatedAt = failedAt;
306
+ await emitWorkflowRuntimeEvent(options.events, options.store, options.emitEvent, {
307
+ type: "node.failed",
308
+ runId: options.run.id,
309
+ nodeAttemptId: options.nodeAttempt.id,
310
+ error: options.error,
311
+ });
312
+ await emitWorkflowRuntimeEvent(options.events, options.store, options.emitEvent, {
313
+ type: "workflow.failed",
314
+ runId: options.run.id,
315
+ error: options.error,
316
+ });
317
+ await persistWorkflowNodeAttempt(options.store, options.nodeAttempt);
318
+ await persistWorkflowRun(options.store, options.run);
319
+ return {
320
+ ok: false,
321
+ run: options.run,
322
+ nodeAttempt: options.nodeAttempt,
323
+ events: options.events,
324
+ diagnostics: options.diagnostics,
325
+ error: options.error,
326
+ };
327
+ }
328
+ function runtimeFailure(events, diagnostics, error) {
329
+ return { ok: false, events, diagnostics, error };
330
+ }
331
+ function toNodeIdArray(value) {
332
+ return Array.isArray(value) ? value : [value];
333
+ }
334
+ //# sourceMappingURL=one-node-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"one-node-agent.js","sourceRoot":"","sources":["../../src/runtime/one-node-agent.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mCAAmC,EACnC,mCAAmC,EACnC,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC;AAK/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAoCnD,MAAM,UAAU,gCAAgC,CAC9C,UAA8B;IAE9B,MAAM,WAAW,GAAyB;QACxC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,WAAW;KAC5C,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAErD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,2CAA2C;YACjD,OAAO,EAAE,6DAA6D;YACtE,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,4CAA4C;YAClD,OAAO,EACL,qEAAqE;YACvE,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,uCAAuC;YAC7C,OAAO,EAAE,0DAA0D;YACnE,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,uEAAuE;SAC9E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK;YACnC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEb,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAChE,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,0CAA0C;gBAChD,OAAO,EACL,uFAAuF;gBACzF,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAC5D,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,wCAAwC;gBAC9C,OAAO,EACL,qFAAqF;gBACvF,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,SAAS;gBACf,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,wCAAwC;gBAC9C,OAAO,EAAE,uDAAuD;gBAChE,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,WAAW,MAAM,OAAO;gBAC9B,MAAM;aACP,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,0CAA0C;gBAChD,OAAO,EACL,4EAA4E;gBAC9E,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,WAAW,MAAM,UAAU;gBACjC,MAAM;aACP,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACtE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;QAC5B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAA8B,EAC9B,KAAoB,EACpB,OAAoC;IAEpC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE;YACrD,IAAI,EAAE,wCAAwC;YAC9C,OAAO,EACL,qEAAqE;SACxE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE;YACrD,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,oDAAoD;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC;IACrE,MAAM,iBAAiB,GAAG,2BAA2B,CACnD,UAAU,EACV,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,WAAW,EAAE;YAC3D,IAAI,EAAE,yCAAyC;YAC/C,OAAO,EAAE,2DAA2D;SACrE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAwB,CAAC;IAC7D,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAgB;QACvB,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;QAC9C,UAAU,EAAE,UAAU,CAAC,EAAE;QACzB,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE;QACtC,KAAK;QACL,KAAK,EAAE,6BAA6B,CAClC,kBAAkB,EAClB,OAAO,CAAC,iBAAiB,CAC1B;QACD,SAAS;QACT,SAAS,EAAE,SAAS;KACrB,CAAC;IAEF,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QACvE,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,UAAU,EAAE,UAAU,CAAC,EAAE;KAC1B,CAAC,CAAC;IACH,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAgB;QAC/B,EAAE,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC;QACtD,aAAa,EAAE,GAAG,CAAC,EAAE;QACrB,MAAM;QACN,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,KAAK;QACL,SAAS,EAAE,SAAS,EAAE;QACtB,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC;KAC1C,CAAC;IAEF,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;QACvE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,aAAa,EAAE,WAAW,CAAC,EAAE;QAC7B,MAAM;KACP,CAAC,CAAC;IACH,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,MAAM,6BAA6B,CAAC;YAC5D,QAAQ,EAAE,UAAU;YACpB,GAAG;YACH,MAAM;YACN,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,eAAe;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;YAC1B,OAAO,mBAAmB,CAAC;gBACzB,GAAG;gBACH,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,iBAAiB,CAAC,WAAW;gBAC1C,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,iBAAiB,CAAC,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE;YAC3D,QAAQ,EAAE,UAAU;YACpB,GAAG;YACH,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,mBAAmB,CAAC;gBACzB,GAAG;gBACH,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,YAAY,CAAC,WAAW;gBACrC,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,YAAY,CAAC,KAAK;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QACjE,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE7D,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;YACjD,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC;YAC7C,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,MAAM;YACN,IAAI;YACJ,KAAK;YACL,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE;YACvC,eAAe,EAAE,iBAAiB,CAAC,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,UAAU,EACV,MAAM,EACN,cAAc,CAAC,MAAM,CACtB,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,OAAO,mBAAmB,CAAC;gBACzB,GAAG;gBACH,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,wCAAwC;oBAC9C,OAAO,EACL,iEAAiE;iBACpE;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,oBAAoB,GAAG,sBAAsB,CACjD,UAAU,EACV,cAAc,CAAC,MAAM,CACtB,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC;YAC7B,OAAO,mBAAmB,CAAC;gBACzB,GAAG;gBACH,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,oBAAoB,CAAC,WAAW;gBAC7C,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,4CAA4C;oBAClD,OAAO,EAAE,sDAAsD;iBAChE;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,mCAAmC,CAAC;YAC1D,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,iBAAiB,CAAC,OAAO;YAClC,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAC3C,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,WAAW,CAAC,QAAQ,GAAG;YACrB,GAAG,WAAW,CAAC,QAAQ;YACvB,OAAO,EAAE,eAAe;YACxB,GAAG,CAAC,cAAc,CAAC,aAAa;gBAC9B,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,aAAa,EAAE;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,cAAc,CAAC,WAAW;gBAC5B,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE;gBAC7C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;YACvE,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE7D,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC9C,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACzD,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACnC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;QAE5B,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;YACvE,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,GAAG;YACH,WAAW;YACX,MAAM;YACN,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,mBAAmB,CAAC;YACzB,GAAG;YACH,WAAW;YACX,MAAM;YACN,WAAW,EAAE,EAAE;YACf,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,mCAAmC,CAAC,MAAM,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OASlC;IACC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACrC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;IACtC,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1C,OAAO,CAAC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG;QACpB,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;QAClC,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;IACjC,MAAM,wBAAwB,CAC5B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,EACjB;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QACrB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;QACrC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CACF,CAAC;IACF,MAAM,wBAAwB,CAC5B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,EACjB;QACE,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CACF,CAAC;IACF,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD,OAAO;QACL,EAAE,EAAE,KAAK;QACT,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,MAA8B,EAC9B,WAAiC,EACjC,KAA2B;IAE3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { EdgeTransfer, NodeAttempt, WorkflowEventEmitter, WorkflowRun, WorkflowRuntimeEvent } from "../types/index.js";
2
+ import type { WorkflowNodeAttemptStore, WorkflowRunStore, WorkflowWakeupStore } from "../store/index.js";
3
+ export declare function emitWorkflowRuntimeEvent(events: WorkflowRuntimeEvent[], store: WorkflowRunStore | undefined, emitEvent: WorkflowEventEmitter | undefined, event: WorkflowRuntimeEvent): Promise<void>;
4
+ export declare function persistWorkflowRun(store: WorkflowRunStore | undefined, run: WorkflowRun): Promise<void>;
5
+ export declare function persistWorkflowNodeAttempt(store: WorkflowRunStore | undefined, nodeAttempt: NodeAttempt): Promise<void>;
6
+ export declare function persistWorkflowEdgeTransfer(store: WorkflowRunStore | undefined, transfer: EdgeTransfer): Promise<void>;
7
+ export declare function hasWorkflowWakeupStore(store: WorkflowRunStore | undefined): store is WorkflowRunStore & Pick<WorkflowWakeupStore, "saveWakeup">;
8
+ export declare function hasWorkflowNodeAttemptReadStore(store: WorkflowRunStore | undefined): store is WorkflowRunStore & Pick<WorkflowNodeAttemptStore, "getNodeAttempt" | "saveNodeAttempt">;
9
+ //# sourceMappingURL=persistence.d.ts.map