@pasko70/pibo 3.3.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) 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 +70 -11
  4. package/dist/agent-runtimes/codex-native/adapter.js +3 -0
  5. package/dist/agent-runtimes/codex-native/thread.js +26 -4
  6. package/dist/agent-runtimes/omp/adapter.js +1 -0
  7. package/dist/agent-runtimes/pi/adapter.js +4 -0
  8. package/dist/agent-runtimes/pi/routed-session.js +53 -5
  9. package/dist/apps/chat/chat-api-routes.js +11 -37
  10. package/dist/apps/chat/chat-request-normalizers.js +8 -48
  11. package/dist/apps/chat/data/legacy-project-migration.js +492 -0
  12. package/dist/apps/chat/data/room-service.js +2 -2
  13. package/dist/apps/chat/data/workflow-session-model.js +1 -0
  14. package/dist/apps/chat/data/workflow-session-service.js +352 -0
  15. package/dist/apps/chat/rooms.js +1 -1
  16. package/dist/apps/chat/types/rooms.js +30 -0
  17. package/dist/apps/chat/web-app.js +264 -647
  18. package/dist/apps/chat/workflow-catalog.js +18 -18
  19. package/dist/apps/chat/{project-workflow-human-actions.js → workflow-human-actions.js} +14 -14
  20. package/dist/apps/chat/workflow-manual-trigger-runtime.js +5 -1
  21. package/dist/apps/chat/workflow-persistence.js +20 -28
  22. package/dist/apps/chat/{project-workflow-sessions.js → workflow-sessions.js} +18 -17
  23. package/dist/apps/chat-ui/assets/{dist-Kc3zbvQi.js → dist-Abz605MV.js} +1 -1
  24. package/dist/apps/chat-ui/assets/{dist-C9a0_446.js → dist-D0md0xIR.js} +1 -1
  25. package/dist/apps/chat-ui/assets/{dist-CcAkJ8iv.js → dist-DHnaUMlq.js} +1 -1
  26. package/dist/apps/chat-ui/assets/{dist-Bd9gWCbk.js → dist-DnZL1rRp.js} +1 -1
  27. package/dist/apps/chat-ui/assets/{dist-BbCjOLiw.js → dist-ERKABhp3.js} +1 -1
  28. package/dist/apps/chat-ui/assets/index-BWVPNFjU.js +228 -0
  29. package/dist/apps/chat-ui/assets/index-CywOD6EF.css +1 -0
  30. package/dist/apps/chat-ui/index.html +2 -2
  31. package/dist/apps/chat-vscode-web/assets/index-CZmxeSn3.js +43 -0
  32. package/dist/apps/chat-vscode-web/index.html +1 -1
  33. package/dist/compute/pool/cli.js +1 -1
  34. package/dist/compute/pool/seeds.js +2 -3
  35. package/dist/config/config.js +1 -1
  36. package/dist/core/session-router.js +13 -4
  37. package/dist/previews/cli.js +154 -79
  38. package/dist/previews/compute-worker.js +37 -0
  39. package/dist/previews/config.js +2 -1
  40. package/dist/previews/migrations/session-ownership.js +7 -0
  41. package/dist/previews/proxy.js +4 -2
  42. package/dist/previews/public-setup.js +108 -0
  43. package/dist/previews/store.js +20 -13
  44. package/dist/previews/web-app.js +97 -2
  45. package/dist/sessions/workflow-session-kind.js +0 -3
  46. package/npm-shrinkwrap.json +7 -6
  47. package/package.json +6 -2
  48. package/packages/workflows/README.md +21 -0
  49. package/packages/workflows/dist/api/index.d.ts +48 -0
  50. package/packages/workflows/dist/api/index.d.ts.map +1 -0
  51. package/packages/workflows/dist/api/index.js +96 -0
  52. package/packages/workflows/dist/api/index.js.map +1 -0
  53. package/packages/workflows/dist/definition-hash.d.ts +4 -0
  54. package/packages/workflows/dist/definition-hash.d.ts.map +1 -0
  55. package/packages/workflows/dist/definition-hash.js +27 -0
  56. package/packages/workflows/dist/definition-hash.js.map +1 -0
  57. package/packages/workflows/dist/fixtures/index.d.ts +39 -0
  58. package/packages/workflows/dist/fixtures/index.d.ts.map +1 -0
  59. package/packages/workflows/dist/fixtures/index.js +608 -0
  60. package/packages/workflows/dist/fixtures/index.js.map +1 -0
  61. package/packages/workflows/dist/index.d.ts +16 -0
  62. package/packages/workflows/dist/index.d.ts.map +1 -0
  63. package/packages/workflows/dist/index.js +10 -0
  64. package/packages/workflows/dist/index.js.map +1 -0
  65. package/packages/workflows/dist/inspection/index.d.ts +47 -0
  66. package/packages/workflows/dist/inspection/index.d.ts.map +1 -0
  67. package/packages/workflows/dist/inspection/index.js +131 -0
  68. package/packages/workflows/dist/inspection/index.js.map +1 -0
  69. package/packages/workflows/dist/registry/index.d.ts +30 -0
  70. package/packages/workflows/dist/registry/index.d.ts.map +1 -0
  71. package/packages/workflows/dist/registry/index.js +161 -0
  72. package/packages/workflows/dist/registry/index.js.map +1 -0
  73. package/packages/workflows/dist/runtime/adapter-node.d.ts +28 -0
  74. package/packages/workflows/dist/runtime/adapter-node.d.ts.map +1 -0
  75. package/packages/workflows/dist/runtime/adapter-node.js +172 -0
  76. package/packages/workflows/dist/runtime/adapter-node.js.map +1 -0
  77. package/packages/workflows/dist/runtime/agent-node.d.ts +32 -0
  78. package/packages/workflows/dist/runtime/agent-node.d.ts.map +1 -0
  79. package/packages/workflows/dist/runtime/agent-node.js +231 -0
  80. package/packages/workflows/dist/runtime/agent-node.js.map +1 -0
  81. package/packages/workflows/dist/runtime/agent-runtime.d.ts +25 -0
  82. package/packages/workflows/dist/runtime/agent-runtime.d.ts.map +1 -0
  83. package/packages/workflows/dist/runtime/agent-runtime.js +111 -0
  84. package/packages/workflows/dist/runtime/agent-runtime.js.map +1 -0
  85. package/packages/workflows/dist/runtime/code-node.d.ts +31 -0
  86. package/packages/workflows/dist/runtime/code-node.d.ts.map +1 -0
  87. package/packages/workflows/dist/runtime/code-node.js +223 -0
  88. package/packages/workflows/dist/runtime/code-node.js.map +1 -0
  89. package/packages/workflows/dist/runtime/dispatch-failures.d.ts +36 -0
  90. package/packages/workflows/dist/runtime/dispatch-failures.d.ts.map +1 -0
  91. package/packages/workflows/dist/runtime/dispatch-failures.js +80 -0
  92. package/packages/workflows/dist/runtime/dispatch-failures.js.map +1 -0
  93. package/packages/workflows/dist/runtime/edge-payloads.d.ts +3 -0
  94. package/packages/workflows/dist/runtime/edge-payloads.d.ts.map +1 -0
  95. package/packages/workflows/dist/runtime/edge-payloads.js +11 -0
  96. package/packages/workflows/dist/runtime/edge-payloads.js.map +1 -0
  97. package/packages/workflows/dist/runtime/edge-transfer.d.ts +39 -0
  98. package/packages/workflows/dist/runtime/edge-transfer.d.ts.map +1 -0
  99. package/packages/workflows/dist/runtime/edge-transfer.js +356 -0
  100. package/packages/workflows/dist/runtime/edge-transfer.js.map +1 -0
  101. package/packages/workflows/dist/runtime/human-action.d.ts +43 -0
  102. package/packages/workflows/dist/runtime/human-action.d.ts.map +1 -0
  103. package/packages/workflows/dist/runtime/human-action.js +231 -0
  104. package/packages/workflows/dist/runtime/human-action.js.map +1 -0
  105. package/packages/workflows/dist/runtime/human-node.d.ts +27 -0
  106. package/packages/workflows/dist/runtime/human-node.d.ts.map +1 -0
  107. package/packages/workflows/dist/runtime/human-node.js +126 -0
  108. package/packages/workflows/dist/runtime/human-node.js.map +1 -0
  109. package/packages/workflows/dist/runtime/ids.d.ts +2 -0
  110. package/packages/workflows/dist/runtime/ids.d.ts.map +1 -0
  111. package/packages/workflows/dist/runtime/ids.js +4 -0
  112. package/packages/workflows/dist/runtime/ids.js.map +1 -0
  113. package/packages/workflows/dist/runtime/index.d.ts +23 -0
  114. package/packages/workflows/dist/runtime/index.d.ts.map +1 -0
  115. package/packages/workflows/dist/runtime/index.js +12 -0
  116. package/packages/workflows/dist/runtime/index.js.map +1 -0
  117. package/packages/workflows/dist/runtime/manual-trigger.d.ts +51 -0
  118. package/packages/workflows/dist/runtime/manual-trigger.d.ts.map +1 -0
  119. package/packages/workflows/dist/runtime/manual-trigger.js +403 -0
  120. package/packages/workflows/dist/runtime/manual-trigger.js.map +1 -0
  121. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts +48 -0
  122. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts.map +1 -0
  123. package/packages/workflows/dist/runtime/nested-workflow-node.js +246 -0
  124. package/packages/workflows/dist/runtime/nested-workflow-node.js.map +1 -0
  125. package/packages/workflows/dist/runtime/one-node-agent.d.ts +34 -0
  126. package/packages/workflows/dist/runtime/one-node-agent.d.ts.map +1 -0
  127. package/packages/workflows/dist/runtime/one-node-agent.js +334 -0
  128. package/packages/workflows/dist/runtime/one-node-agent.js.map +1 -0
  129. package/packages/workflows/dist/runtime/persistence.d.ts +9 -0
  130. package/packages/workflows/dist/runtime/persistence.d.ts.map +1 -0
  131. package/packages/workflows/dist/runtime/persistence.js +67 -0
  132. package/packages/workflows/dist/runtime/persistence.js.map +1 -0
  133. package/packages/workflows/dist/runtime/pibo-routing.d.ts +126 -0
  134. package/packages/workflows/dist/runtime/pibo-routing.d.ts.map +1 -0
  135. package/packages/workflows/dist/runtime/pibo-routing.js +96 -0
  136. package/packages/workflows/dist/runtime/pibo-routing.js.map +1 -0
  137. package/packages/workflows/dist/runtime/prompts.d.ts +20 -0
  138. package/packages/workflows/dist/runtime/prompts.d.ts.map +1 -0
  139. package/packages/workflows/dist/runtime/prompts.js +235 -0
  140. package/packages/workflows/dist/runtime/prompts.js.map +1 -0
  141. package/packages/workflows/dist/runtime/retry.d.ts +35 -0
  142. package/packages/workflows/dist/runtime/retry.d.ts.map +1 -0
  143. package/packages/workflows/dist/runtime/retry.js +80 -0
  144. package/packages/workflows/dist/runtime/retry.js.map +1 -0
  145. package/packages/workflows/dist/runtime/state.d.ts +14 -0
  146. package/packages/workflows/dist/runtime/state.d.ts.map +1 -0
  147. package/packages/workflows/dist/runtime/state.js +139 -0
  148. package/packages/workflows/dist/runtime/state.js.map +1 -0
  149. package/packages/workflows/dist/runtime/time.d.ts +6 -0
  150. package/packages/workflows/dist/runtime/time.d.ts.map +1 -0
  151. package/packages/workflows/dist/runtime/time.js +42 -0
  152. package/packages/workflows/dist/runtime/time.js.map +1 -0
  153. package/packages/workflows/dist/store/catalog-records.d.ts +18 -0
  154. package/packages/workflows/dist/store/catalog-records.d.ts.map +1 -0
  155. package/packages/workflows/dist/store/catalog-records.js +59 -0
  156. package/packages/workflows/dist/store/catalog-records.js.map +1 -0
  157. package/packages/workflows/dist/store/contracts.d.ts +149 -0
  158. package/packages/workflows/dist/store/contracts.d.ts.map +1 -0
  159. package/packages/workflows/dist/store/contracts.js +2 -0
  160. package/packages/workflows/dist/store/contracts.js.map +1 -0
  161. package/packages/workflows/dist/store/draft-writes.d.ts +7 -0
  162. package/packages/workflows/dist/store/draft-writes.d.ts.map +1 -0
  163. package/packages/workflows/dist/store/draft-writes.js +18 -0
  164. package/packages/workflows/dist/store/draft-writes.js.map +1 -0
  165. package/packages/workflows/dist/store/index.d.ts +55 -0
  166. package/packages/workflows/dist/store/index.d.ts.map +1 -0
  167. package/packages/workflows/dist/store/index.js +650 -0
  168. package/packages/workflows/dist/store/index.js.map +1 -0
  169. package/packages/workflows/dist/store/list-query.d.ts +13 -0
  170. package/packages/workflows/dist/store/list-query.d.ts.map +1 -0
  171. package/packages/workflows/dist/store/list-query.js +20 -0
  172. package/packages/workflows/dist/store/list-query.js.map +1 -0
  173. package/packages/workflows/dist/store/row-mappers.d.ts +206 -0
  174. package/packages/workflows/dist/store/row-mappers.d.ts.map +1 -0
  175. package/packages/workflows/dist/store/row-mappers.js +262 -0
  176. package/packages/workflows/dist/store/row-mappers.js.map +1 -0
  177. package/packages/workflows/dist/store/schema.d.ts +13 -0
  178. package/packages/workflows/dist/store/schema.d.ts.map +1 -0
  179. package/packages/workflows/dist/store/schema.js +458 -0
  180. package/packages/workflows/dist/store/schema.js.map +1 -0
  181. package/packages/workflows/dist/store/write-values.d.ts +18 -0
  182. package/packages/workflows/dist/store/write-values.d.ts.map +1 -0
  183. package/packages/workflows/dist/store/write-values.js +227 -0
  184. package/packages/workflows/dist/store/write-values.js.map +1 -0
  185. package/packages/workflows/dist/types/index.d.ts +1202 -0
  186. package/packages/workflows/dist/types/index.d.ts.map +1 -0
  187. package/packages/workflows/dist/types/index.js +8 -0
  188. package/packages/workflows/dist/types/index.js.map +1 -0
  189. package/packages/workflows/dist/validation/diagnostics.d.ts +27 -0
  190. package/packages/workflows/dist/validation/diagnostics.d.ts.map +1 -0
  191. package/packages/workflows/dist/validation/diagnostics.js +104 -0
  192. package/packages/workflows/dist/validation/diagnostics.js.map +1 -0
  193. package/packages/workflows/dist/validation/graph-cycles.d.ts +4 -0
  194. package/packages/workflows/dist/validation/graph-cycles.d.ts.map +1 -0
  195. package/packages/workflows/dist/validation/graph-cycles.js +130 -0
  196. package/packages/workflows/dist/validation/graph-cycles.js.map +1 -0
  197. package/packages/workflows/dist/validation/graph-edges.d.ts +5 -0
  198. package/packages/workflows/dist/validation/graph-edges.d.ts.map +1 -0
  199. package/packages/workflows/dist/validation/graph-edges.js +48 -0
  200. package/packages/workflows/dist/validation/graph-edges.js.map +1 -0
  201. package/packages/workflows/dist/validation/graph-ports.d.ts +5 -0
  202. package/packages/workflows/dist/validation/graph-ports.d.ts.map +1 -0
  203. package/packages/workflows/dist/validation/graph-ports.js +55 -0
  204. package/packages/workflows/dist/validation/graph-ports.js.map +1 -0
  205. package/packages/workflows/dist/validation/index.d.ts +18 -0
  206. package/packages/workflows/dist/validation/index.d.ts.map +1 -0
  207. package/packages/workflows/dist/validation/index.js +175 -0
  208. package/packages/workflows/dist/validation/index.js.map +1 -0
  209. package/packages/workflows/dist/validation/json-schema.d.ts +12 -0
  210. package/packages/workflows/dist/validation/json-schema.d.ts.map +1 -0
  211. package/packages/workflows/dist/validation/json-schema.js +556 -0
  212. package/packages/workflows/dist/validation/json-schema.js.map +1 -0
  213. package/packages/workflows/dist/validation/registry-refs.d.ts +21 -0
  214. package/packages/workflows/dist/validation/registry-refs.d.ts.map +1 -0
  215. package/packages/workflows/dist/validation/registry-refs.js +283 -0
  216. package/packages/workflows/dist/validation/registry-refs.js.map +1 -0
  217. package/packages/workflows/dist/validation/retry-policy.d.ts +3 -0
  218. package/packages/workflows/dist/validation/retry-policy.d.ts.map +1 -0
  219. package/packages/workflows/dist/validation/retry-policy.js +114 -0
  220. package/packages/workflows/dist/validation/retry-policy.js.map +1 -0
  221. package/packages/workflows/dist/validation/schema-declarations.d.ts +5 -0
  222. package/packages/workflows/dist/validation/schema-declarations.d.ts.map +1 -0
  223. package/packages/workflows/dist/validation/schema-declarations.js +36 -0
  224. package/packages/workflows/dist/validation/schema-declarations.js.map +1 -0
  225. package/packages/workflows/dist/validation/state-access.d.ts +4 -0
  226. package/packages/workflows/dist/validation/state-access.d.ts.map +1 -0
  227. package/packages/workflows/dist/validation/state-access.js +121 -0
  228. package/packages/workflows/dist/validation/state-access.js.map +1 -0
  229. package/packages/workflows/dist/xstate/index.d.ts +73 -0
  230. package/packages/workflows/dist/xstate/index.d.ts.map +1 -0
  231. package/packages/workflows/dist/xstate/index.js +728 -0
  232. package/packages/workflows/dist/xstate/index.js.map +1 -0
  233. package/packages/workflows/package.json +23 -0
  234. package/dist/apps/chat/data/project-service.js +0 -1029
  235. package/dist/apps/chat-ui/assets/index-DWJnUye8.css +0 -1
  236. package/dist/apps/chat-ui/assets/index-exohEOUE.js +0 -228
  237. package/dist/apps/chat-vscode-web/assets/index-D1bpAUkR.js +0 -43
@@ -0,0 +1,47 @@
1
+ import type { EdgeTransfer, NodeAttempt, NodeAttemptId, WorkflowCheckpoint, WorkflowErrorSummary, WorkflowEventRecord, WorkflowHumanActionRecord, WorkflowRun, WorkflowRunId, WorkflowWaitToken, WorkflowWakeup } from "../types/index.js";
2
+ import type { WorkflowCheckpointStore, WorkflowEdgeTransferStore, WorkflowEventStore, WorkflowHumanActionStore, WorkflowNodeAttemptStore, WorkflowRunStore, WorkflowWaitTokenStore, WorkflowWakeupStore } from "../store/index.js";
3
+ export type WorkflowRunInspectionStore = WorkflowRunStore & Partial<WorkflowEventStore> & Partial<WorkflowNodeAttemptStore> & Partial<WorkflowEdgeTransferStore> & Partial<WorkflowCheckpointStore> & Partial<WorkflowWakeupStore> & Partial<WorkflowWaitTokenStore> & Partial<WorkflowHumanActionStore>;
4
+ export type WorkflowRunInspectionOptions = {
5
+ limit?: number;
6
+ };
7
+ export type WorkflowRunInspectionSummary = {
8
+ runId: WorkflowRunId;
9
+ workflowId: string;
10
+ workflowVersion: string;
11
+ status: WorkflowRun["status"];
12
+ piboSessionId?: string;
13
+ currentNodeId?: string;
14
+ currentEdgeId?: string;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ completedAt?: string;
18
+ failedAt?: string;
19
+ cancelledAt?: string;
20
+ nodeAttempts: number;
21
+ completedNodeAttempts: number;
22
+ failedNodeAttempts: number;
23
+ waitingNodeAttempts: number;
24
+ pendingWaitTokens: number;
25
+ edgeTransfers: number;
26
+ events: number;
27
+ latestCheckpointId?: string;
28
+ failedNodeId?: string;
29
+ failedNodeAttemptId?: NodeAttemptId;
30
+ error?: WorkflowErrorSummary;
31
+ };
32
+ export type WorkflowRunInspection = {
33
+ kind: "workflowRunInspection";
34
+ schemaVersion: 1;
35
+ summary: WorkflowRunInspectionSummary;
36
+ run: WorkflowRun;
37
+ nodeAttempts: NodeAttempt[];
38
+ edgeTransfers: EdgeTransfer[];
39
+ checkpoints: WorkflowCheckpoint[];
40
+ wakeups: WorkflowWakeup[];
41
+ waitTokens: WorkflowWaitToken[];
42
+ humanActions: WorkflowHumanActionRecord[];
43
+ events: WorkflowEventRecord[];
44
+ };
45
+ export declare function inspectWorkflowRun(store: WorkflowRunInspectionStore, runId: WorkflowRunId, options?: WorkflowRunInspectionOptions): Promise<WorkflowRunInspection | undefined>;
46
+ export declare function formatWorkflowRunInspection(inspection: WorkflowRunInspection): string;
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inspection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GACrD,OAAO,CAAC,kBAAkB,CAAC,GAC3B,OAAO,CAAC,wBAAwB,CAAC,GACjC,OAAO,CAAC,yBAAyB,CAAC,GAClC,OAAO,CAAC,uBAAuB,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,GAC5B,OAAO,CAAC,sBAAsB,CAAC,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEtC,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,aAAa,CAAC;IACpC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;IACtC,GAAG,EAAE,WAAW,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,YAAY,EAAE,yBAAyB,EAAE,CAAC;IAC1C,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAgC5C;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,CAsBrF"}
@@ -0,0 +1,131 @@
1
+ export async function inspectWorkflowRun(store, runId, options = {}) {
2
+ const run = await store.getRun(runId);
3
+ if (!run)
4
+ return undefined;
5
+ const limit = normalizeInspectionLimit(options.limit);
6
+ const nodeAttempts = sortNodeAttempts(await listOptional(store, store.listNodeAttempts, { workflowRunId: run.id, limit }));
7
+ const edgeTransfers = await listOptional(store, store.listEdgeTransfers, { workflowRunId: run.id, limit });
8
+ const checkpoints = await listOptional(store, store.listCheckpoints, { workflowRunId: run.id, limit });
9
+ const wakeups = await listOptional(store, store.listWakeups, { workflowRunId: run.id, limit });
10
+ const waitTokens = await listOptional(store, store.listWaitTokens, { workflowRunId: run.id, limit });
11
+ const humanActions = await listOptional(store, store.listHumanActions, { workflowRunId: run.id, limit });
12
+ const events = await listOptional(store, store.listEvents, { workflowRunId: run.id, limit });
13
+ return {
14
+ kind: "workflowRunInspection",
15
+ schemaVersion: 1,
16
+ summary: createInspectionSummary(run, {
17
+ nodeAttempts,
18
+ edgeTransfers,
19
+ checkpoints,
20
+ waitTokens,
21
+ events,
22
+ }),
23
+ run,
24
+ nodeAttempts,
25
+ edgeTransfers,
26
+ checkpoints,
27
+ wakeups,
28
+ waitTokens,
29
+ humanActions,
30
+ events,
31
+ };
32
+ }
33
+ export function formatWorkflowRunInspection(inspection) {
34
+ const { summary } = inspection;
35
+ const lines = [
36
+ `run\t${summary.runId}`,
37
+ `workflow\t${summary.workflowId}@${summary.workflowVersion}`,
38
+ `status\t${summary.status}`,
39
+ ];
40
+ if (summary.piboSessionId)
41
+ lines.push(`pibo_session\t${summary.piboSessionId}`);
42
+ if (summary.currentNodeId)
43
+ lines.push(`current_node\t${summary.currentNodeId}`);
44
+ if (summary.currentEdgeId)
45
+ lines.push(`current_edge\t${summary.currentEdgeId}`);
46
+ if (summary.latestCheckpointId)
47
+ lines.push(`checkpoint\t${summary.latestCheckpointId}`);
48
+ if (summary.failedNodeId)
49
+ lines.push(`failed_node\t${summary.failedNodeId}`);
50
+ if (summary.failedNodeAttemptId)
51
+ lines.push(`failed_attempt\t${summary.failedNodeAttemptId}`);
52
+ if (summary.error)
53
+ lines.push(`error\t${summary.error.code}\t${summary.error.message}`);
54
+ lines.push(`attempts\t${summary.nodeAttempts}\tcompleted=${summary.completedNodeAttempts}\tfailed=${summary.failedNodeAttempts}\twaiting=${summary.waitingNodeAttempts}`, `wait_tokens\t${summary.pendingWaitTokens} pending`, `edge_transfers\t${summary.edgeTransfers}`, `events\t${summary.events}`, `updated\t${summary.updatedAt}`);
55
+ return lines.join("\n");
56
+ }
57
+ function createInspectionSummary(run, facts) {
58
+ const failedAttempt = latestNodeAttempt(facts.nodeAttempts.filter((attempt) => attempt.status === "failed"));
59
+ const latestCheckpoint = latestCheckpointByCreatedAt(facts.checkpoints);
60
+ const failedEventError = latestWorkflowFailedEventError(facts.events);
61
+ return {
62
+ runId: run.id,
63
+ workflowId: run.workflowId,
64
+ workflowVersion: run.workflowVersion,
65
+ status: run.status,
66
+ ...(run.piboSessionId ? { piboSessionId: run.piboSessionId } : {}),
67
+ ...(run.current.nodeId ? { currentNodeId: run.current.nodeId } : {}),
68
+ ...(run.current.edgeId ? { currentEdgeId: run.current.edgeId } : {}),
69
+ createdAt: run.createdAt,
70
+ updatedAt: run.updatedAt,
71
+ ...(run.completedAt ? { completedAt: run.completedAt } : {}),
72
+ ...(run.failedAt ? { failedAt: run.failedAt } : {}),
73
+ ...(run.cancelledAt ? { cancelledAt: run.cancelledAt } : {}),
74
+ nodeAttempts: facts.nodeAttempts.length,
75
+ completedNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "completed").length,
76
+ failedNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "failed").length,
77
+ waitingNodeAttempts: facts.nodeAttempts.filter((attempt) => attempt.status === "waiting").length,
78
+ pendingWaitTokens: facts.waitTokens.filter((token) => token.status === "pending").length,
79
+ edgeTransfers: facts.edgeTransfers.length,
80
+ events: facts.events.length,
81
+ ...(latestCheckpoint ? { latestCheckpointId: latestCheckpoint.id } : {}),
82
+ ...(failedAttempt ? { failedNodeId: failedAttempt.nodeId, failedNodeAttemptId: failedAttempt.id } : {}),
83
+ ...(failedAttempt?.error ?? failedEventError ? { error: failedAttempt?.error ?? failedEventError } : {}),
84
+ };
85
+ }
86
+ async function listOptional(store, list, filter) {
87
+ if (!list)
88
+ return [];
89
+ return list.call(store, filter);
90
+ }
91
+ function normalizeInspectionLimit(limit) {
92
+ if (limit === undefined)
93
+ return 1000;
94
+ if (!Number.isInteger(limit) || limit < 1)
95
+ throw new Error("Workflow inspection limit must be a positive integer");
96
+ return Math.min(limit, 1000);
97
+ }
98
+ function sortNodeAttempts(attempts) {
99
+ return [...attempts].sort((left, right) => compareNullableStrings(attemptSortKey(left), attemptSortKey(right)) || left.id.localeCompare(right.id));
100
+ }
101
+ function latestNodeAttempt(attempts) {
102
+ return [...attempts].sort((left, right) => compareNullableStrings(attemptSortKey(right), attemptSortKey(left)) || right.id.localeCompare(left.id))[0];
103
+ }
104
+ function latestCheckpointByCreatedAt(checkpoints) {
105
+ return [...checkpoints].sort((left, right) => compareNullableStrings(right.createdAt, left.createdAt) || right.id.localeCompare(left.id))[0];
106
+ }
107
+ function attemptSortKey(attempt) {
108
+ return attempt.startedAt ?? attempt.availableAt ?? attempt.completedAt ?? attempt.failedAt;
109
+ }
110
+ function compareNullableStrings(left, right) {
111
+ if (left === right)
112
+ return 0;
113
+ if (left === undefined)
114
+ return 1;
115
+ if (right === undefined)
116
+ return -1;
117
+ return left.localeCompare(right);
118
+ }
119
+ function latestWorkflowFailedEventError(events) {
120
+ const failedEvent = [...events]
121
+ .filter((event) => event.type === "workflow.failed")
122
+ .sort((left, right) => compareNullableStrings(right.createdAt, left.createdAt) || right.id.localeCompare(left.id))[0];
123
+ const payload = failedEvent?.payload;
124
+ if (!payload || typeof payload !== "object" || !("error" in payload))
125
+ return undefined;
126
+ const error = payload.error;
127
+ if (!error || typeof error !== "object" || !("code" in error) || !("message" in error))
128
+ return undefined;
129
+ return error;
130
+ }
131
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inspection/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { AdapterHandler, AdapterRef, AgentProfileDefinition, CodeNodeHandler, GuardHandler, PromptBuilderHandler, PromptBuilderRef, RegistryRefId, WorkflowDefinition, WorkflowHumanActionDefinition, WorkflowProviders, WorkflowPublishedVersionRecord, WorkflowRegistry, WorkflowRegistryEntry, WorkflowRegistration, WorkflowRegistrationOptions, JsonSchema } from "../types/index.js";
2
+ export type WorkflowRegistryEntryOptions = WorkflowRegistrationOptions & {
3
+ title?: string;
4
+ description?: string;
5
+ tags?: string[];
6
+ paramsSchema?: JsonSchema;
7
+ };
8
+ export declare function createWorkflowRegistry(providers?: WorkflowProviders): WorkflowRegistry;
9
+ export declare function registerProviders(registry: WorkflowRegistry, providers: WorkflowProviders, options?: WorkflowRegistrationOptions): WorkflowRegistry;
10
+ export declare function registerWorkflowDefinition(registry: WorkflowRegistry, definition: WorkflowDefinition, options?: WorkflowRegistrationOptions): void;
11
+ export declare function resolveWorkflowDefinition(registry: Pick<WorkflowRegistry, "workflows">, id: string, version?: string): WorkflowDefinition | undefined;
12
+ export declare function registerWorkflowPublishedVersion(registry: WorkflowRegistry, record: WorkflowPublishedVersionRecord, options?: WorkflowRegistrationOptions): WorkflowRegistration;
13
+ export declare function registerWorkflowPublishedVersions(registry: WorkflowRegistry, records: Iterable<WorkflowPublishedVersionRecord>, options?: WorkflowRegistrationOptions): WorkflowRegistration[];
14
+ export declare function registerWorkflowAgentProfile(registry: WorkflowRegistry, id: RegistryRefId, profile: AgentProfileDefinition, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<AgentProfileDefinition>;
15
+ export declare function registerWorkflowHandler(registry: WorkflowRegistry, id: RegistryRefId, handler: CodeNodeHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<CodeNodeHandler>;
16
+ export declare function registerWorkflowAdapter(registry: WorkflowRegistry, id: RegistryRefId, adapter: AdapterHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<AdapterHandler>;
17
+ export declare function registerWorkflowGuard(registry: WorkflowRegistry, id: RegistryRefId, guard: GuardHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<GuardHandler>;
18
+ export declare function registerWorkflowPromptBuilder(registry: WorkflowRegistry, id: RegistryRefId, promptBuilder: PromptBuilderHandler, options?: WorkflowRegistryEntryOptions): WorkflowRegistryEntry<PromptBuilderHandler>;
19
+ export declare function registerWorkflowHumanAction(registry: WorkflowRegistry, id: RegistryRefId, humanAction: WorkflowHumanActionDefinition, options?: WorkflowRegistrationOptions): WorkflowHumanActionDefinition;
20
+ export declare function resolveWorkflowHumanAction(registry: Pick<WorkflowRegistry, "humanActions">, ref: RegistryRefId): WorkflowHumanActionDefinition | undefined;
21
+ export declare function hasWorkflowHumanAction(registry: Pick<WorkflowRegistry, "humanActions">, ref: RegistryRefId): boolean;
22
+ export declare function resolveWorkflowAgentProfile(registry: Pick<WorkflowRegistry, "profiles">, ref: RegistryRefId): WorkflowRegistryEntry<AgentProfileDefinition> | undefined;
23
+ export declare function hasWorkflowAgentProfile(registry: Pick<WorkflowRegistry, "profiles">, ref: RegistryRefId): boolean;
24
+ export declare function resolveWorkflowHandler(registry: Pick<WorkflowRegistry, "handlers">, ref: RegistryRefId): WorkflowRegistryEntry<CodeNodeHandler> | undefined;
25
+ export declare function hasWorkflowHandler(registry: Pick<WorkflowRegistry, "handlers">, ref: RegistryRefId): boolean;
26
+ export declare function resolveWorkflowAdapter(registry: Pick<WorkflowRegistry, "adapters">, ref: AdapterRef | RegistryRefId): WorkflowRegistryEntry<AdapterHandler> | undefined;
27
+ export declare function hasWorkflowAdapter(registry: Pick<WorkflowRegistry, "adapters">, ref: AdapterRef | RegistryRefId): boolean;
28
+ export declare function resolveWorkflowPromptBuilder(registry: Pick<WorkflowRegistry, "promptBuilders">, ref: PromptBuilderRef): WorkflowRegistryEntry<PromptBuilderHandler> | undefined;
29
+ export declare function hasWorkflowPromptBuilder(registry: Pick<WorkflowRegistry, "promptBuilders">, ref: PromptBuilderRef): boolean;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { hashWorkflowDefinition } from "../definition-hash.js";
2
+ export function createWorkflowRegistry(providers = {}) {
3
+ const registry = {
4
+ workflows: new Map(),
5
+ profiles: new Map(),
6
+ handlers: new Map(),
7
+ adapters: new Map(),
8
+ guards: new Map(),
9
+ promptBuilders: new Map(),
10
+ humanActions: new Map(),
11
+ };
12
+ registerProviders(registry, providers, { override: true });
13
+ return registry;
14
+ }
15
+ export function registerProviders(registry, providers, options = {}) {
16
+ for (const [id, profile] of Object.entries(providers.profiles ?? {})) {
17
+ registerWorkflowAgentProfile(registry, id, profile, options);
18
+ }
19
+ for (const [id, handler] of Object.entries(providers.handlers ?? {})) {
20
+ registerWorkflowHandler(registry, id, handler, options);
21
+ }
22
+ for (const [id, adapter] of Object.entries(providers.adapters ?? {})) {
23
+ registerWorkflowAdapter(registry, id, adapter, options);
24
+ }
25
+ for (const [id, guard] of Object.entries(providers.guards ?? {})) {
26
+ registerWorkflowGuard(registry, id, guard, options);
27
+ }
28
+ for (const [id, promptBuilder] of Object.entries(providers.promptBuilders ?? {})) {
29
+ registerWorkflowPromptBuilder(registry, id, promptBuilder, options);
30
+ }
31
+ for (const [id, humanAction] of Object.entries(providers.humanActions ?? {})) {
32
+ registerWorkflowHumanAction(registry, id, humanAction, options);
33
+ }
34
+ return registry;
35
+ }
36
+ export function registerWorkflowDefinition(registry, definition, options = {}) {
37
+ const versions = registry.workflows.get(definition.id) ?? [];
38
+ const existingIndex = versions.findIndex((item) => item.version === definition.version);
39
+ if (existingIndex >= 0) {
40
+ if (!options.override) {
41
+ throw new Error(`Workflow '${definition.id}@${definition.version}' is already registered.`);
42
+ }
43
+ versions[existingIndex] = definition;
44
+ }
45
+ else {
46
+ versions.push(definition);
47
+ }
48
+ registry.workflows.set(definition.id, versions);
49
+ }
50
+ export function resolveWorkflowDefinition(registry, id, version) {
51
+ const versions = registry.workflows.get(id);
52
+ if (!versions || versions.length === 0) {
53
+ return undefined;
54
+ }
55
+ if (version !== undefined) {
56
+ return versions.find((definition) => definition.version === version);
57
+ }
58
+ return [...versions].sort((left, right) => right.version.localeCompare(left.version))[0];
59
+ }
60
+ export function registerWorkflowPublishedVersion(registry, record, options = {}) {
61
+ assertRegistryPublishedWorkflowVersionRecord(record);
62
+ registerWorkflowDefinition(registry, record.definition, options);
63
+ return { id: record.workflowId, version: record.version, hash: record.definitionHash };
64
+ }
65
+ export function registerWorkflowPublishedVersions(registry, records, options = {}) {
66
+ const registrations = [];
67
+ for (const record of records) {
68
+ registrations.push(registerWorkflowPublishedVersion(registry, record, options));
69
+ }
70
+ return registrations;
71
+ }
72
+ function assertRegistryPublishedWorkflowVersionRecord(record) {
73
+ if (record.source !== "ui" || record.status !== "published") {
74
+ throw new Error(`Workflow '${record.workflowId}@${record.version}' is not a UI published version record.`);
75
+ }
76
+ if (record.definition.id !== record.workflowId || record.definition.version !== record.version) {
77
+ throw new Error(`Workflow '${record.workflowId}@${record.version}' published record does not match its definition id/version.`);
78
+ }
79
+ const computedHash = hashWorkflowDefinition(record.definition);
80
+ if (record.definitionHash !== computedHash) {
81
+ throw new Error(`Workflow '${record.workflowId}@${record.version}' published record has an invalid definition hash.`);
82
+ }
83
+ }
84
+ export function registerWorkflowAgentProfile(registry, id, profile, options = {}) {
85
+ return registerRegistryEntry(registry.profiles, "agent profile", id, profile, options);
86
+ }
87
+ export function registerWorkflowHandler(registry, id, handler, options = {}) {
88
+ return registerRegistryEntry(registry.handlers, "handler", id, handler, options);
89
+ }
90
+ export function registerWorkflowAdapter(registry, id, adapter, options = {}) {
91
+ return registerRegistryEntry(registry.adapters, "adapter", id, adapter, options);
92
+ }
93
+ export function registerWorkflowGuard(registry, id, guard, options = {}) {
94
+ return registerRegistryEntry(registry.guards, "guard", id, guard, options);
95
+ }
96
+ export function registerWorkflowPromptBuilder(registry, id, promptBuilder, options = {}) {
97
+ return registerRegistryEntry(registry.promptBuilders, "promptBuilder", id, promptBuilder, options);
98
+ }
99
+ export function registerWorkflowHumanAction(registry, id, humanAction, options = {}) {
100
+ if (registry.humanActions.has(id) && !options.override) {
101
+ throw new Error(`Workflow human action '${id}' is already registered.`);
102
+ }
103
+ registry.humanActions.set(id, humanAction);
104
+ return humanAction;
105
+ }
106
+ export function resolveWorkflowHumanAction(registry, ref) {
107
+ return registry.humanActions.get(ref);
108
+ }
109
+ export function hasWorkflowHumanAction(registry, ref) {
110
+ return resolveWorkflowHumanAction(registry, ref) !== undefined;
111
+ }
112
+ export function resolveWorkflowAgentProfile(registry, ref) {
113
+ return registry.profiles.get(ref);
114
+ }
115
+ export function hasWorkflowAgentProfile(registry, ref) {
116
+ return resolveWorkflowAgentProfile(registry, ref) !== undefined;
117
+ }
118
+ export function resolveWorkflowHandler(registry, ref) {
119
+ return registry.handlers.get(ref);
120
+ }
121
+ export function hasWorkflowHandler(registry, ref) {
122
+ return resolveWorkflowHandler(registry, ref) !== undefined;
123
+ }
124
+ export function resolveWorkflowAdapter(registry, ref) {
125
+ const id = typeof ref === "string" ? ref : ref.id;
126
+ return registry.adapters.get(id);
127
+ }
128
+ export function hasWorkflowAdapter(registry, ref) {
129
+ return resolveWorkflowAdapter(registry, ref) !== undefined;
130
+ }
131
+ export function resolveWorkflowPromptBuilder(registry, ref) {
132
+ return registry.promptBuilders.get(getPromptBuilderRefId(ref));
133
+ }
134
+ export function hasWorkflowPromptBuilder(registry, ref) {
135
+ return resolveWorkflowPromptBuilder(registry, ref) !== undefined;
136
+ }
137
+ function getPromptBuilderRefId(ref) {
138
+ return typeof ref === "string" ? ref : ref.id;
139
+ }
140
+ function registerRegistryEntry(entries, kind, id, value, options) {
141
+ if (entries.has(id) && !options.override) {
142
+ throw new Error(`Workflow ${kind} '${id}' is already registered.`);
143
+ }
144
+ const entry = withOptionalEntryMetadata({
145
+ id,
146
+ value,
147
+ }, options);
148
+ entries.set(id, entry);
149
+ return entry;
150
+ }
151
+ function withOptionalEntryMetadata(entry, options) {
152
+ return {
153
+ ...entry,
154
+ ...(options.pluginId ? { pluginId: options.pluginId } : {}),
155
+ ...(options.title ? { title: options.title } : {}),
156
+ ...(options.description ? { description: options.description } : {}),
157
+ ...(options.tags ? { tags: options.tags } : {}),
158
+ ...(options.paramsSchema ? { paramsSchema: options.paramsSchema } : {}),
159
+ };
160
+ }
161
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { AdapterResult, NodeAttempt, NodeAttemptId, WorkflowDefinition, WorkflowDiagnostic, WorkflowErrorSummary, WorkflowEventEmitter, WorkflowRegistry, WorkflowRun, WorkflowRuntimeEvent, WorkflowValue } from "../types/index.js";
2
+ import type { WorkflowRunStore } from "../store/index.js";
3
+ export type WorkflowAdapterNodeDispatchOptions = {
4
+ registry: Pick<WorkflowRegistry, "adapters">;
5
+ now?: () => Date | string;
6
+ createNodeAttemptId?: () => NodeAttemptId;
7
+ store?: WorkflowRunStore;
8
+ emitEvent?: WorkflowEventEmitter;
9
+ };
10
+ export type WorkflowAdapterNodeDispatchSuccess = {
11
+ ok: true;
12
+ run: WorkflowRun;
13
+ nodeAttempt: NodeAttempt;
14
+ events: WorkflowRuntimeEvent[];
15
+ output: WorkflowValue;
16
+ result: AdapterResult;
17
+ };
18
+ export type WorkflowAdapterNodeDispatchFailure = {
19
+ ok: false;
20
+ run: WorkflowRun;
21
+ nodeAttempt?: NodeAttempt;
22
+ events: WorkflowRuntimeEvent[];
23
+ diagnostics: WorkflowDiagnostic[];
24
+ error: WorkflowErrorSummary;
25
+ };
26
+ export type WorkflowAdapterNodeDispatchResult = WorkflowAdapterNodeDispatchSuccess | WorkflowAdapterNodeDispatchFailure;
27
+ export declare function dispatchWorkflowAdapterNode(definition: WorkflowDefinition, run: WorkflowRun, nodeId: string, input: WorkflowValue, options: WorkflowAdapterNodeDispatchOptions): Promise<WorkflowAdapterNodeDispatchResult>;
28
+ //# sourceMappingURL=adapter-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-node.d.ts","sourceRoot":"","sources":["../../src/runtime/adapter-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgB1D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,aAAa,CAAC;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,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,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,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;CAC7B,CAAC;AAEF,MAAM,MAAM,iCAAiC,GACzC,kCAAkC,GAClC,kCAAkC,CAAC;AAEvC,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iCAAiC,CAAC,CAsK5C"}
@@ -0,0 +1,172 @@
1
+ import { resolveWorkflowAdapter } from "../registry/index.js";
2
+ import { validateNodeOutput, validateWorkflowPortValue } from "../validation/index.js";
3
+ import { adapterNodeDispatchFailure, failAdapterNodeDispatch, } 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 dispatchWorkflowAdapterNode(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 adapterNodeDispatchFailure({
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 an adapter node.`,
20
+ severity: "error",
21
+ nodeId,
22
+ path: `$.nodes.${nodeId}`,
23
+ },
24
+ ],
25
+ error: {
26
+ code: "WorkflowRuntimeError.unknownNode",
27
+ message: "Adapter node dispatch failed because the node is not declared.",
28
+ },
29
+ });
30
+ }
31
+ if (node.kind !== "adapter") {
32
+ return adapterNodeDispatchFailure({
33
+ run,
34
+ events,
35
+ diagnostics: [
36
+ {
37
+ code: "WorkflowRuntimeError.adapterNodeRequired",
38
+ message: `Workflow node '${nodeId}' is '${node.kind}', but adapter node dispatch requires an adapter node.`,
39
+ severity: "error",
40
+ nodeId,
41
+ path: `$.nodes.${nodeId}.kind`,
42
+ },
43
+ ],
44
+ error: {
45
+ code: "WorkflowRuntimeError.adapterNodeRequired",
46
+ message: "Adapter node dispatch failed because the selected node is not an adapter node.",
47
+ },
48
+ });
49
+ }
50
+ const adapterNode = 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: "adapter",
58
+ status: "running",
59
+ input,
60
+ startedAt,
61
+ ...localStateSnapshotForNode(run, nodeId),
62
+ metadata: { adapterId: adapterNode.handler.id },
63
+ };
64
+ run.current = { nodeId, status: "running" };
65
+ run.updatedAt = startedAt;
66
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
67
+ type: "node.started",
68
+ runId: run.id,
69
+ nodeAttemptId: nodeAttempt.id,
70
+ nodeId,
71
+ });
72
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
73
+ await persistWorkflowRun(options.store, run);
74
+ const adapter = resolveWorkflowAdapter(options.registry, adapterNode.handler);
75
+ const diagnostics = [];
76
+ if (!adapter) {
77
+ diagnostics.push({
78
+ code: "WorkflowGraphError.unknownAdapterRef",
79
+ message: `Workflow adapter node '${nodeId}' references adapter '${adapterNode.handler.id}', but it is not registered in the Workflow Registry.`,
80
+ severity: "error",
81
+ nodeId,
82
+ path: `$.nodes.${nodeId}.handler.id`,
83
+ hint: "Register the adapter before dispatching the adapter node.",
84
+ });
85
+ }
86
+ if (adapterNode.input) {
87
+ diagnostics.push(...validateWorkflowPortValue(adapterNode.input, input, { path: `$.nodes.${nodeId}.input` }).diagnostics.map((diagnostic) => ({ ...diagnostic, nodeId })));
88
+ }
89
+ if (diagnostics.some((diagnostic) => diagnostic.severity === "error")) {
90
+ return failAdapterNodeDispatch({
91
+ run,
92
+ nodeAttempt,
93
+ events,
94
+ diagnostics,
95
+ timestamp,
96
+ store: options.store,
97
+ emitEvent: options.emitEvent,
98
+ error: {
99
+ code: "WorkflowRuntimeError.adapterNodeDispatchFailed",
100
+ message: "Adapter node dispatch failed before adapter execution.",
101
+ },
102
+ });
103
+ }
104
+ try {
105
+ const adapterResult = await adapter.value({ input, run: createNodeScopedWorkflowRun(run, nodeId) });
106
+ const nodeOutputResult = validateNodeOutput(definition, nodeId, adapterResult.output);
107
+ if (!nodeOutputResult.ok) {
108
+ return failAdapterNodeDispatch({
109
+ run,
110
+ nodeAttempt,
111
+ events,
112
+ diagnostics: nodeOutputResult.diagnostics,
113
+ timestamp,
114
+ store: options.store,
115
+ emitEvent: options.emitEvent,
116
+ error: {
117
+ code: "WorkflowRuntimeError.invalidNodeOutput",
118
+ message: "Adapter node output failed validation before downstream use.",
119
+ },
120
+ });
121
+ }
122
+ const completedAt = timestamp();
123
+ nodeAttempt.status = "completed";
124
+ nodeAttempt.output = adapterResult.output;
125
+ nodeAttempt.completedAt = completedAt;
126
+ Object.assign(nodeAttempt, localStateSnapshotForNode(run, nodeId));
127
+ nodeAttempt.metadata = { adapterId: adapterNode.handler.id };
128
+ run.current = { nodeId, status: run.status };
129
+ run.updatedAt = completedAt;
130
+ await emitWorkflowRuntimeEvent(events, options.store, options.emitEvent, {
131
+ type: "node.completed",
132
+ runId: run.id,
133
+ nodeAttemptId: nodeAttempt.id,
134
+ output: adapterResult.output,
135
+ });
136
+ await persistWorkflowNodeAttempt(options.store, nodeAttempt);
137
+ await persistWorkflowRun(options.store, run);
138
+ return {
139
+ ok: true,
140
+ run,
141
+ nodeAttempt,
142
+ events,
143
+ output: adapterResult.output,
144
+ result: adapterResult,
145
+ };
146
+ }
147
+ catch (caught) {
148
+ return failAdapterNodeDispatch({
149
+ run,
150
+ nodeAttempt,
151
+ events,
152
+ diagnostics: [],
153
+ timestamp,
154
+ store: options.store,
155
+ emitEvent: options.emitEvent,
156
+ error: adapterErrorSummaryFromCaught(caught),
157
+ });
158
+ }
159
+ }
160
+ function adapterErrorSummaryFromCaught(caught) {
161
+ if (caught instanceof Error) {
162
+ return {
163
+ code: "WorkflowRuntimeError.adapterFailed",
164
+ message: caught.message,
165
+ };
166
+ }
167
+ return {
168
+ code: "WorkflowRuntimeError.adapterFailed",
169
+ message: "Workflow adapter failed with a non-Error value.",
170
+ };
171
+ }
172
+ //# sourceMappingURL=adapter-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-node.js","sourceRoot":"","sources":["../../src/runtime/adapter-node.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAgCnD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,UAA8B,EAC9B,GAAgB,EAChB,MAAc,EACd,KAAoB,EACpB,OAA2C;IAE3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,0BAA0B,CAAC;YAChC,GAAG;YACH,MAAM;YACN,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,kCAAkC;oBACxC,OAAO,EAAE,kBAAkB,MAAM,kEAAkE;oBACnG,QAAQ,EAAE,OAAO;oBACjB,MAAM;oBACN,IAAI,EAAE,WAAW,MAAM,EAAE;iBAC1B;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,gEAAgE;aAC1E;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,0BAA0B,CAAC;YAChC,GAAG;YACH,MAAM;YACN,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,0CAA0C;oBAChD,OAAO,EAAE,kBAAkB,MAAM,SAAS,IAAI,CAAC,IAAI,wDAAwD;oBAC3G,QAAQ,EAAE,OAAO;oBACjB,MAAM;oBACN,IAAI,EAAE,WAAW,MAAM,OAAO;iBAC/B;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,0CAA0C;gBAChD,OAAO,EAAE,gFAAgF;aAC1F;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,IAA6B,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,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,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,KAAK;QACL,SAAS;QACT,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC;QACzC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;KAChD,CAAC;IACF,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC5C,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAE1B,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;IAC7D,MAAM,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,sCAAsC;YAC5C,OAAO,EAAE,0BAA0B,MAAM,yBAAyB,WAAW,CAAC,OAAO,CAAC,EAAE,uDAAuD;YAC/I,QAAQ,EAAE,OAAO;YACjB,MAAM;YACN,IAAI,EAAE,WAAW,MAAM,aAAa;YACpC,IAAI,EAAE,2DAA2D;SAClE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CACd,GAAG,yBAAyB,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CACzG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,CAAC,CAC5C,CACF,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,uBAAuB,CAAC;YAC7B,GAAG;YACH,WAAW;YACX,MAAM;YACN,WAAW;YACX,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,gDAAgD;gBACtD,OAAO,EAAE,wDAAwD;aAClE;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,OAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,OAAO,uBAAuB,CAAC;gBAC7B,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,EAAE,8DAA8D;iBACxE;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;QAChC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;QACjC,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QAC1C,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,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC;QAE5B,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,aAAa,CAAC,MAAM;SAC7B,CAAC,CAAC;QACH,MAAM,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7D,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,aAAa,CAAC,MAAM;YAC5B,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,uBAAuB,CAAC;YAC7B,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,6BAA6B,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAe;IACpD,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,oCAAoC;YAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,iDAAiD;KAC3D,CAAC;AACJ,CAAC"}