@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,403 @@
1
+ import { validateWorkflow, validateWorkflowInput, validateWorkflowPortValue } from "../validation/index.js";
2
+ import { dispatchWorkflowAgentNode } from "./agent-node.js";
3
+ import { recordWorkflowEdgeTransfer } from "./edge-transfer.js";
4
+ import { createWorkflowRuntimeId as createId } from "./ids.js";
5
+ import { emitWorkflowRuntimeEvent, persistWorkflowNodeAttempt, persistWorkflowRun, } from "./persistence.js";
6
+ import { createInitialWorkflowRunState } from "./state.js";
7
+ import { createTimestampFactory } from "./time.js";
8
+ export async function runManualTextTriggerWorkflow(definition, input, options) {
9
+ const events = [];
10
+ const nodeAttempts = [];
11
+ const edgeTransfers = [];
12
+ const timestamp = createTimestampFactory(options.now);
13
+ const triggerNodeId = options.source.triggerNodeId;
14
+ const triggerNode = definition.nodes[triggerNodeId];
15
+ const readiness = validateManualTextTriggerRun(definition, triggerNodeId, input);
16
+ if (!readiness.ok) {
17
+ return failure({
18
+ nodeAttempts,
19
+ edgeTransfers,
20
+ events,
21
+ diagnostics: readiness.diagnostics,
22
+ error: {
23
+ code: "WorkflowRuntimeError.manualTriggerRunBlocked",
24
+ message: "Manual trigger workflow run was blocked by validation errors.",
25
+ },
26
+ });
27
+ }
28
+ const createdAt = timestamp();
29
+ const run = {
30
+ id: options.createRunId?.() ?? createId("wfr"),
31
+ workflowId: definition.id,
32
+ workflowVersion: definition.version,
33
+ status: "running",
34
+ current: { nodeId: triggerNodeId, status: "running" },
35
+ input,
36
+ state: createInitialWorkflowRunState(options.initialGlobalState ?? {}),
37
+ createdAt,
38
+ updatedAt: createdAt,
39
+ };
40
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
41
+ type: "workflow.started",
42
+ runId: run.id,
43
+ workflowId: definition.id,
44
+ });
45
+ await persistWorkflowRun(options.store, run);
46
+ const triggerAttempt = await completeManualTriggerNodeAttempt({
47
+ definition,
48
+ run,
49
+ triggerNodeId,
50
+ triggerNode: triggerNode,
51
+ input,
52
+ timestamp,
53
+ store: options.store,
54
+ emitEvent: options.emitEvent,
55
+ events,
56
+ createNodeAttemptId: options.createNodeAttemptId,
57
+ source: options.source,
58
+ });
59
+ nodeAttempts.push(triggerAttempt);
60
+ const queue = [];
61
+ const enqueueResult = await enqueueDirectOutgoingAgentEdges({
62
+ definition,
63
+ run,
64
+ sourceAttempt: triggerAttempt,
65
+ queue,
66
+ edgeTransfers,
67
+ events,
68
+ store: options.store,
69
+ emitEvent: options.emitEvent,
70
+ timestamp,
71
+ });
72
+ if (!enqueueResult.ok) {
73
+ return failRun({
74
+ run,
75
+ triggerAttempt,
76
+ nodeAttempts,
77
+ edgeTransfers,
78
+ events,
79
+ diagnostics: enqueueResult.diagnostics,
80
+ timestamp,
81
+ store: options.store,
82
+ emitEvent: options.emitEvent,
83
+ error: enqueueResult.error,
84
+ });
85
+ }
86
+ let lastOutput = input;
87
+ const executedNodes = new Set();
88
+ while (queue.length) {
89
+ const item = queue.shift();
90
+ if (executedNodes.has(item.nodeId)) {
91
+ return failRun({
92
+ run,
93
+ triggerAttempt,
94
+ nodeAttempts,
95
+ edgeTransfers,
96
+ events,
97
+ diagnostics: [{
98
+ code: "WorkflowRuntimeError.joinUnsupported",
99
+ message: `Workflow node '${item.nodeId}' received more than one input, but manual trigger V1 does not support joins yet.`,
100
+ severity: "error",
101
+ nodeId: item.nodeId,
102
+ edgeId: item.viaEdgeId,
103
+ path: `$.edges.${item.viaEdgeId}`,
104
+ hint: "Use a simple fan-out or linear agent chain until join policies are implemented.",
105
+ }],
106
+ timestamp,
107
+ store: options.store,
108
+ emitEvent: options.emitEvent,
109
+ error: {
110
+ code: "WorkflowRuntimeError.joinUnsupported",
111
+ message: "Manual trigger workflow run failed because a join node was reached.",
112
+ },
113
+ });
114
+ }
115
+ executedNodes.add(item.nodeId);
116
+ const dispatchResult = await dispatchWorkflowAgentNode(definition, run, item.nodeId, item.input, {
117
+ registry: options.registry,
118
+ now: options.now,
119
+ createNodeAttemptId: options.createNodeAttemptId,
120
+ store: options.store,
121
+ emitEvent: options.emitEvent,
122
+ profileResolver: options.profileResolver,
123
+ agentExecutor: options.agentExecutor,
124
+ });
125
+ events.push(...dispatchResult.events);
126
+ if (!dispatchResult.ok) {
127
+ return failRun({
128
+ run: dispatchResult.run,
129
+ triggerAttempt,
130
+ nodeAttempts,
131
+ edgeTransfers,
132
+ events,
133
+ diagnostics: dispatchResult.diagnostics,
134
+ timestamp,
135
+ store: options.store,
136
+ emitEvent: options.emitEvent,
137
+ error: dispatchResult.error,
138
+ });
139
+ }
140
+ nodeAttempts.push(dispatchResult.nodeAttempt);
141
+ lastOutput = dispatchResult.output;
142
+ const nextResult = await enqueueDirectOutgoingAgentEdges({
143
+ definition,
144
+ run: dispatchResult.run,
145
+ sourceAttempt: dispatchResult.nodeAttempt,
146
+ queue,
147
+ edgeTransfers,
148
+ events,
149
+ store: options.store,
150
+ emitEvent: options.emitEvent,
151
+ timestamp,
152
+ });
153
+ if (!nextResult.ok) {
154
+ return failRun({
155
+ run: dispatchResult.run,
156
+ triggerAttempt,
157
+ nodeAttempts,
158
+ edgeTransfers,
159
+ events,
160
+ diagnostics: nextResult.diagnostics,
161
+ timestamp,
162
+ store: options.store,
163
+ emitEvent: options.emitEvent,
164
+ error: nextResult.error,
165
+ });
166
+ }
167
+ }
168
+ const completedAt = timestamp();
169
+ run.status = "completed";
170
+ run.current = { status: "completed" };
171
+ run.output = lastOutput;
172
+ run.completedAt = completedAt;
173
+ run.updatedAt = completedAt;
174
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
175
+ type: "workflow.completed",
176
+ runId: run.id,
177
+ output: lastOutput,
178
+ });
179
+ await persistWorkflowRun(options.store, run);
180
+ return {
181
+ ok: true,
182
+ run,
183
+ triggerAttempt,
184
+ nodeAttempts,
185
+ edgeTransfers,
186
+ events,
187
+ output: lastOutput,
188
+ };
189
+ }
190
+ export function validateManualTextTriggerRun(definition, triggerNodeId, input) {
191
+ const diagnostics = [];
192
+ const definitionResult = validateWorkflow(definition);
193
+ diagnostics.push(...definitionResult.diagnostics);
194
+ const workflowInputResult = validateWorkflowInput(definition, input);
195
+ diagnostics.push(...workflowInputResult.diagnostics);
196
+ const node = definition.nodes[triggerNodeId];
197
+ if (!node) {
198
+ diagnostics.push({
199
+ code: "WorkflowRuntimeError.unknownTriggerNode",
200
+ message: `Manual trigger node '${triggerNodeId}' does not exist.`,
201
+ severity: "error",
202
+ nodeId: triggerNodeId,
203
+ path: `$.nodes.${triggerNodeId}`,
204
+ });
205
+ }
206
+ else if (node.kind !== "trigger") {
207
+ diagnostics.push({
208
+ code: "WorkflowRuntimeError.triggerNodeRequired",
209
+ message: `Workflow node '${triggerNodeId}' is '${node.kind}', but manual runs require a trigger node.`,
210
+ severity: "error",
211
+ nodeId: triggerNodeId,
212
+ path: `$.nodes.${triggerNodeId}.kind`,
213
+ });
214
+ }
215
+ else {
216
+ if (node.trigger.kind !== "manual") {
217
+ diagnostics.push({
218
+ code: "WorkflowRuntimeError.manualTriggerRequired",
219
+ message: `Workflow trigger node '${triggerNodeId}' is '${node.trigger.kind}', but this run path supports only manual triggers.`,
220
+ severity: "error",
221
+ nodeId: triggerNodeId,
222
+ path: `$.nodes.${triggerNodeId}.trigger.kind`,
223
+ });
224
+ }
225
+ if (!node.output || node.output.kind !== "text") {
226
+ diagnostics.push({
227
+ code: "WorkflowRuntimeError.textTriggerOutputRequired",
228
+ message: `Workflow trigger node '${triggerNodeId}' must declare a text output port for manual text runs.`,
229
+ severity: "error",
230
+ nodeId: triggerNodeId,
231
+ path: `$.nodes.${triggerNodeId}.output`,
232
+ });
233
+ }
234
+ else {
235
+ diagnostics.push(...validateWorkflowPortValue(node.output, input, { path: `$.nodes.${triggerNodeId}.output` }).diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId: triggerNodeId })));
236
+ }
237
+ }
238
+ for (const [edgeId, edge] of Object.entries(definition.edges)) {
239
+ if (edge.from.nodeId !== triggerNodeId && definition.nodes[edge.from.nodeId]?.kind !== "agent")
240
+ continue;
241
+ const target = definition.nodes[edge.to.nodeId];
242
+ if (!target)
243
+ continue;
244
+ if (target.kind !== "agent") {
245
+ diagnostics.push({
246
+ code: "WorkflowRuntimeError.agentTargetRequired",
247
+ message: `Workflow edge '${edgeId}' targets '${target.kind}', but manual trigger V1 can only dispatch agent nodes.`,
248
+ severity: "error",
249
+ edgeId,
250
+ nodeId: edge.to.nodeId,
251
+ path: `$.edges.${edgeId}.to.nodeId`,
252
+ hint: "Use trigger and agent nodes only until adapter/code/human execution is enabled for this run path.",
253
+ });
254
+ }
255
+ if (edge.guard) {
256
+ diagnostics.push({
257
+ code: "WorkflowRuntimeError.edgeGuardUnsupported",
258
+ message: `Workflow edge '${edgeId}' uses a guard, which is not supported by manual trigger V1.`,
259
+ severity: "error",
260
+ edgeId,
261
+ path: `$.edges.${edgeId}.guard`,
262
+ });
263
+ }
264
+ if (edge.adapter) {
265
+ diagnostics.push({
266
+ code: "WorkflowRuntimeError.edgeAdapterUnsupported",
267
+ message: `Workflow edge '${edgeId}' uses an adapter, which is not supported by manual trigger V1.`,
268
+ severity: "error",
269
+ edgeId,
270
+ path: `$.edges.${edgeId}.adapter`,
271
+ });
272
+ }
273
+ }
274
+ return diagnostics.some((diagnostic) => diagnostic.severity === "error")
275
+ ? { ok: false, diagnostics }
276
+ : { ok: true, diagnostics };
277
+ }
278
+ async function completeManualTriggerNodeAttempt(input) {
279
+ const startedAt = input.timestamp();
280
+ const nodeAttempt = {
281
+ id: input.createNodeAttemptId?.() ?? createId("wna"),
282
+ workflowRunId: input.run.id,
283
+ nodeId: input.triggerNodeId,
284
+ attempt: 1,
285
+ kind: "trigger",
286
+ status: "running",
287
+ input: input.input,
288
+ startedAt,
289
+ metadata: {
290
+ trigger: {
291
+ kind: input.triggerNode.trigger.kind,
292
+ mode: input.triggerNode.trigger.mode ?? "editor",
293
+ source: input.source.kind,
294
+ ...(input.source.actorId ? { actorId: input.source.actorId } : {}),
295
+ ...(input.source.draftId ? { draftId: input.source.draftId } : {}),
296
+ },
297
+ },
298
+ };
299
+ input.run.current = { nodeId: input.triggerNodeId, status: "running" };
300
+ input.run.updatedAt = startedAt;
301
+ await emitWorkflowRuntimeEvent(input.events, input.store, input.emitEvent, {
302
+ type: "node.started",
303
+ runId: input.run.id,
304
+ nodeAttemptId: nodeAttempt.id,
305
+ nodeId: input.triggerNodeId,
306
+ });
307
+ await persistWorkflowNodeAttempt(input.store, nodeAttempt);
308
+ await persistWorkflowRun(input.store, input.run);
309
+ const completedAt = input.timestamp();
310
+ nodeAttempt.status = "completed";
311
+ nodeAttempt.output = input.input;
312
+ nodeAttempt.completedAt = completedAt;
313
+ input.run.current = { nodeId: input.triggerNodeId, status: "running" };
314
+ input.run.updatedAt = completedAt;
315
+ await emitWorkflowRuntimeEvent(input.events, input.store, input.emitEvent, {
316
+ type: "node.completed",
317
+ runId: input.run.id,
318
+ nodeAttemptId: nodeAttempt.id,
319
+ output: input.input,
320
+ });
321
+ await persistWorkflowNodeAttempt(input.store, nodeAttempt);
322
+ await persistWorkflowRun(input.store, input.run);
323
+ return nodeAttempt;
324
+ }
325
+ async function enqueueDirectOutgoingAgentEdges(input) {
326
+ const outgoingEdges = Object.entries(input.definition.edges)
327
+ .filter(([, edge]) => edge.from.nodeId === input.sourceAttempt.nodeId)
328
+ .sort(([left], [right]) => left.localeCompare(right));
329
+ for (const [edgeId, edge] of outgoingEdges) {
330
+ if (edge.guard || edge.adapter || (edge.kind ?? "data") !== "data") {
331
+ return {
332
+ ok: false,
333
+ diagnostics: [{
334
+ code: "WorkflowRuntimeError.edgeFeatureUnsupported",
335
+ message: `Workflow edge '${edgeId}' uses a feature that manual trigger V1 does not execute yet.`,
336
+ severity: "error",
337
+ edgeId,
338
+ path: `$.edges.${edgeId}`,
339
+ }],
340
+ error: {
341
+ code: "WorkflowRuntimeError.edgeFeatureUnsupported",
342
+ message: "Manual trigger workflow run failed because an unsupported edge feature was reached.",
343
+ },
344
+ };
345
+ }
346
+ const target = input.definition.nodes[edge.to.nodeId];
347
+ if (!target || target.kind !== "agent") {
348
+ return {
349
+ ok: false,
350
+ diagnostics: [{
351
+ code: "WorkflowRuntimeError.agentTargetRequired",
352
+ message: `Workflow edge '${edgeId}' must target an agent node in manual trigger V1.`,
353
+ severity: "error",
354
+ edgeId,
355
+ nodeId: edge.to.nodeId,
356
+ path: `$.edges.${edgeId}.to.nodeId`,
357
+ }],
358
+ error: {
359
+ code: "WorkflowRuntimeError.agentTargetRequired",
360
+ message: "Manual trigger workflow run failed because a non-agent node was reached.",
361
+ },
362
+ };
363
+ }
364
+ const transfer = await recordWorkflowEdgeTransfer(input.definition, input.run, edgeId, input.sourceAttempt, {
365
+ events: input.events,
366
+ store: input.store,
367
+ emitEvent: input.emitEvent,
368
+ now: input.timestamp,
369
+ });
370
+ input.edgeTransfers.push(transfer);
371
+ if (!transfer.ok) {
372
+ return { ok: false, diagnostics: transfer.diagnostics, error: transfer.error };
373
+ }
374
+ input.queue.push({ nodeId: edge.to.nodeId, input: transfer.targetInput, viaEdgeId: edgeId });
375
+ }
376
+ return { ok: true };
377
+ }
378
+ async function failRun(input) {
379
+ const failedAt = input.timestamp();
380
+ input.run.status = "failed";
381
+ input.run.current = { ...input.run.current, status: "failed" };
382
+ input.run.failedAt = failedAt;
383
+ input.run.updatedAt = failedAt;
384
+ await emitWorkflowRuntimeEvent(input.events, input.store, input.emitEvent, {
385
+ type: "workflow.failed",
386
+ runId: input.run.id,
387
+ error: input.error,
388
+ });
389
+ await persistWorkflowRun(input.store, input.run);
390
+ return failure({
391
+ run: input.run,
392
+ triggerAttempt: input.triggerAttempt,
393
+ nodeAttempts: input.nodeAttempts,
394
+ edgeTransfers: input.edgeTransfers,
395
+ events: input.events,
396
+ diagnostics: input.diagnostics,
397
+ error: input.error,
398
+ });
399
+ }
400
+ function failure(input) {
401
+ return { ok: false, ...input };
402
+ }
403
+ //# sourceMappingURL=manual-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-trigger.js","sourceRoot":"","sources":["../../src/runtime/manual-trigger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { NestedWorkflowNodeDefinition, NodeAttempt, NodeAttemptId, WorkflowDefinition, WorkflowDiagnostic, WorkflowErrorSummary, WorkflowEventEmitter, WorkflowRegistry, WorkflowRun, WorkflowRunId, WorkflowRuntimeEvent, WorkflowValue } from "../types/index.js";
2
+ import type { WorkflowRunStore } from "../store/index.js";
3
+ export type NestedWorkflowExecutorContext = {
4
+ workflow: WorkflowDefinition;
5
+ run: WorkflowRun;
6
+ nodeAttemptId: NodeAttemptId;
7
+ nodeId: string;
8
+ node: NestedWorkflowNodeDefinition;
9
+ childWorkflow: WorkflowDefinition;
10
+ childRunId: WorkflowRunId;
11
+ input: WorkflowValue;
12
+ namespace?: string;
13
+ };
14
+ export type NestedWorkflowExecutorResult = {
15
+ output: WorkflowValue;
16
+ childRun: WorkflowRun;
17
+ events?: WorkflowRuntimeEvent[];
18
+ };
19
+ export type NestedWorkflowExecutor = (context: NestedWorkflowExecutorContext) => Promise<NestedWorkflowExecutorResult> | NestedWorkflowExecutorResult;
20
+ export type WorkflowNestedWorkflowNodeDispatchOptions = {
21
+ registry: Pick<WorkflowRegistry, "workflows">;
22
+ now?: () => Date | string;
23
+ createNodeAttemptId?: () => NodeAttemptId;
24
+ createChildRunId?: () => WorkflowRunId;
25
+ store?: WorkflowRunStore;
26
+ emitEvent?: WorkflowEventEmitter;
27
+ nestedWorkflowExecutor: NestedWorkflowExecutor;
28
+ };
29
+ export type WorkflowNestedWorkflowNodeDispatchSuccess = {
30
+ ok: true;
31
+ run: WorkflowRun;
32
+ nodeAttempt: NodeAttempt;
33
+ events: WorkflowRuntimeEvent[];
34
+ output: WorkflowValue;
35
+ childRun: WorkflowRun;
36
+ };
37
+ export type WorkflowNestedWorkflowNodeDispatchFailure = {
38
+ ok: false;
39
+ run: WorkflowRun;
40
+ nodeAttempt?: NodeAttempt;
41
+ events: WorkflowRuntimeEvent[];
42
+ diagnostics: WorkflowDiagnostic[];
43
+ error: WorkflowErrorSummary;
44
+ childRun?: WorkflowRun;
45
+ };
46
+ export type WorkflowNestedWorkflowNodeDispatchResult = WorkflowNestedWorkflowNodeDispatchSuccess | WorkflowNestedWorkflowNodeDispatchFailure;
47
+ export declare function dispatchWorkflowNestedWorkflowNode(definition: WorkflowDefinition, run: WorkflowRun, nodeId: string, input: WorkflowValue, options: WorkflowNestedWorkflowNodeDispatchOptions): Promise<WorkflowNestedWorkflowNodeDispatchResult>;
48
+ //# sourceMappingURL=nested-workflow-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-workflow-node.d.ts","sourceRoot":"","sources":["../../src/runtime/nested-workflow-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAqB1D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,4BAA4B,CAAC;IACnC,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,6BAA6B,KACnC,OAAO,CAAC,4BAA4B,CAAC,GAAG,4BAA4B,CAAC;AAE1E,MAAM,MAAM,yCAAyC,GAAG;IACtD,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,aAAa,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,aAAa,CAAC;IACvC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,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;IACtB,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,EAAE,EAAE,KAAK,CAAC;IACV,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAChD,yCAAyC,GACzC,yCAAyC,CAAC;AAE9C,wBAAsB,kCAAkC,CACtD,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,yCAAyC,GACjD,OAAO,CAAC,wCAAwC,CAAC,CA2PnD"}