@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 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/runtime/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,oBAAoB,EAEpB,WAAW,EACX,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAGV,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAG3B,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,oBAAoB,EAAE,EAC9B,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAMf;AA+BD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,KAAK,IAAI,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAErE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAClC,KAAK,IAAI,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,CAGlG"}
@@ -0,0 +1,67 @@
1
+ import { createWorkflowRuntimeId as createId } from "./ids.js";
2
+ export async function emitWorkflowRuntimeEvent(events, store, emitEvent, event) {
3
+ events.push(event);
4
+ await persistWorkflowEvent(store, event);
5
+ await emitEvent?.(event);
6
+ }
7
+ export async function persistWorkflowRun(store, run) {
8
+ await store?.saveRun(run);
9
+ }
10
+ export async function persistWorkflowNodeAttempt(store, nodeAttempt) {
11
+ if (!hasWorkflowNodeAttemptStore(store)) {
12
+ return;
13
+ }
14
+ await store.saveNodeAttempt(nodeAttempt);
15
+ }
16
+ export async function persistWorkflowEdgeTransfer(store, transfer) {
17
+ if (!hasWorkflowEdgeTransferStore(store)) {
18
+ return;
19
+ }
20
+ await store.saveEdgeTransfer(transfer);
21
+ }
22
+ async function persistWorkflowEvent(store, event) {
23
+ if (!hasWorkflowEventStore(store)) {
24
+ return;
25
+ }
26
+ await store.saveEvent(createWorkflowEventRecord(event));
27
+ }
28
+ function hasWorkflowNodeAttemptStore(store) {
29
+ return typeof store?.saveNodeAttempt === "function";
30
+ }
31
+ function hasWorkflowEdgeTransferStore(store) {
32
+ return typeof store?.saveEdgeTransfer === "function";
33
+ }
34
+ function hasWorkflowEventStore(store) {
35
+ return typeof store?.saveEvent === "function";
36
+ }
37
+ export function hasWorkflowWakeupStore(store) {
38
+ return typeof store?.saveWakeup === "function";
39
+ }
40
+ export function hasWorkflowNodeAttemptReadStore(store) {
41
+ return typeof store?.getNodeAttempt === "function" &&
42
+ typeof store?.saveNodeAttempt === "function";
43
+ }
44
+ function createWorkflowEventRecord(event) {
45
+ return {
46
+ id: createId("wev"),
47
+ workflowRunId: event.runId,
48
+ type: event.type,
49
+ ...workflowEventForeignKeys(event),
50
+ payload: event,
51
+ createdAt: new Date().toISOString(),
52
+ };
53
+ }
54
+ function workflowEventForeignKeys(event) {
55
+ const keys = {};
56
+ if ("nodeId" in event) {
57
+ keys.nodeId = event.nodeId;
58
+ }
59
+ if ("edgeId" in event) {
60
+ keys.edgeId = event.edgeId;
61
+ }
62
+ if ("nodeAttemptId" in event) {
63
+ keys.attemptId = event.nodeAttemptId;
64
+ }
65
+ return keys;
66
+ }
67
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/runtime/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import type { AgentNodeDefinition, JsonObject, NodeAttemptId, WorkflowDefinition, WorkflowRun, WorkflowRunId, WorkflowValue } from "../types/index.js";
2
+ export type ResolvedAgentProfile = {
3
+ id: string;
4
+ requestedId: string;
5
+ aliases?: string[];
6
+ tools?: string[];
7
+ nativeTools?: string[];
8
+ skills?: string[];
9
+ contextFiles?: string[];
10
+ metadata?: JsonObject;
11
+ };
12
+ export type AgentProfileResolverContext = {
13
+ workflow: WorkflowDefinition;
14
+ run: WorkflowRun;
15
+ nodeId: string;
16
+ node: AgentNodeDefinition;
17
+ selection: AgentNodeDefinition["profile"];
18
+ };
19
+ export type AgentProfileResolver = (context: AgentProfileResolverContext) => Promise<ResolvedAgentProfile | undefined> | ResolvedAgentProfile | undefined;
20
+ export type OneNodeAgentExecutorContext = {
21
+ workflow: WorkflowDefinition;
22
+ run: WorkflowRun;
23
+ nodeAttemptId?: NodeAttemptId;
24
+ nodeId: string;
25
+ node: AgentNodeDefinition;
26
+ input: WorkflowValue;
27
+ prompt: string;
28
+ profileId: string;
29
+ resolvedProfile: ResolvedAgentProfile;
30
+ routing?: AgentNodeDefinition["routing"];
31
+ };
32
+ export type PiboRoutingJsonValue = null | boolean | number | string | PiboRoutingJsonValue[] | {
33
+ [key: string]: PiboRoutingJsonValue;
34
+ };
35
+ export type PiboRoutingJsonObject = {
36
+ [key: string]: PiboRoutingJsonValue;
37
+ };
38
+ export declare const PIBO_WORKFLOW_SESSION_KIND_METADATA_KEY: "workflowSessionKind";
39
+ export declare const PIBO_WORKFLOW_SESSION_KINDS: readonly ["main_workflow", "nested_workflow", "agent_node", "subagent"];
40
+ export type PiboWorkflowSessionKind = (typeof PIBO_WORKFLOW_SESSION_KINDS)[number];
41
+ export type PiboWorkflowSession = {
42
+ id: string;
43
+ piSessionId?: string;
44
+ profile: string;
45
+ parentId?: string;
46
+ workspace?: string;
47
+ metadata?: PiboRoutingJsonObject;
48
+ };
49
+ export type PiboWorkflowSessionCreateInput = {
50
+ channel: string;
51
+ kind: string;
52
+ profile: string;
53
+ parentId?: string;
54
+ workspace?: string;
55
+ title?: string;
56
+ metadata?: PiboRoutingJsonObject;
57
+ };
58
+ export type PiboWorkflowMessageEvent = {
59
+ type: "message";
60
+ piboSessionId: string;
61
+ id?: string;
62
+ text: string;
63
+ source?: "user" | "ui" | "service" | "actor";
64
+ };
65
+ export type PiboWorkflowAssistantMessageEvent = {
66
+ type: "assistant_message";
67
+ piboSessionId: string;
68
+ eventId?: string;
69
+ text: string;
70
+ };
71
+ export type PiboWorkflowSessionErrorEvent = {
72
+ type: "session_error";
73
+ piboSessionId: string;
74
+ eventId?: string;
75
+ error: string;
76
+ };
77
+ export type PiboWorkflowOutputEvent = PiboWorkflowAssistantMessageEvent | PiboWorkflowSessionErrorEvent | {
78
+ type: string;
79
+ piboSessionId: string;
80
+ eventId?: string;
81
+ };
82
+ export type PiboWorkflowSessionStatus = {
83
+ piboSessionId: string;
84
+ enabledTools?: string[];
85
+ activeTools?: string[];
86
+ };
87
+ export type PiboWorkflowSessionRouting = {
88
+ createSession(input: PiboWorkflowSessionCreateInput): PiboWorkflowSession;
89
+ emit(event: PiboWorkflowMessageEvent): Promise<unknown> | unknown;
90
+ subscribe(listener: (event: PiboWorkflowOutputEvent) => void): () => void;
91
+ getSessionRuntimeStatus?(piboSessionId: string): PiboWorkflowSessionStatus | undefined;
92
+ };
93
+ export type PiboWorkflowSessionLinkInput = {
94
+ piboSessionId: string;
95
+ workflowSessionKind?: PiboWorkflowSessionKind;
96
+ workflowRunId: WorkflowRunId;
97
+ workflowId: string;
98
+ workflowVersion: string;
99
+ workflowNodeId: string;
100
+ workflowNodeAttemptId?: NodeAttemptId;
101
+ parentPiboSessionId?: string;
102
+ };
103
+ export type PiboWorkflowSessionLinker = (input: PiboWorkflowSessionLinkInput) => Promise<unknown> | unknown;
104
+ export type PiboSessionRoutingAgentExecutorOptions = {
105
+ routing: PiboWorkflowSessionRouting;
106
+ workspace?: string;
107
+ timeoutMs?: number;
108
+ createMessageId?: () => string;
109
+ channel?: string;
110
+ kind?: string;
111
+ title?: string | ((context: OneNodeAgentExecutorContext) => string | undefined);
112
+ metadata?: PiboRoutingJsonObject | ((context: OneNodeAgentExecutorContext) => PiboRoutingJsonObject | undefined);
113
+ linkWorkflowSession?: PiboWorkflowSessionLinker;
114
+ };
115
+ export type OneNodeAgentExecutorResult = {
116
+ output: WorkflowValue;
117
+ piboSessionId?: string;
118
+ piSessionId?: string;
119
+ effectiveProfile?: string;
120
+ effectiveTools?: string[];
121
+ effectiveSkills?: string[];
122
+ effectiveContextFiles?: string[];
123
+ };
124
+ export type OneNodeAgentExecutor = (context: OneNodeAgentExecutorContext) => Promise<OneNodeAgentExecutorResult> | OneNodeAgentExecutorResult;
125
+ export declare function createPiboSessionRoutingAgentExecutor(options: PiboSessionRoutingAgentExecutorOptions): OneNodeAgentExecutor;
126
+ //# sourceMappingURL=pibo-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pibo-routing.d.ts","sourceRoot":"","sources":["../../src/runtime/pibo-routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { createWorkflowRuntimeId as createId } from "./ids.js";
2
+ export const PIBO_WORKFLOW_SESSION_KIND_METADATA_KEY = "workflowSessionKind";
3
+ export const PIBO_WORKFLOW_SESSION_KINDS = ["main_workflow", "nested_workflow", "agent_node", "subagent"];
4
+ export function createPiboSessionRoutingAgentExecutor(options) {
5
+ return async (context) => {
6
+ const title = resolveExecutorTitle(options.title, context);
7
+ const session = options.routing.createSession({
8
+ channel: options.channel ?? context.routing?.channel ?? "pibo.workflows",
9
+ kind: options.kind ?? "chat",
10
+ profile: context.profileId,
11
+ parentId: context.routing?.parentSessionId,
12
+ workspace: options.workspace,
13
+ title,
14
+ metadata: {
15
+ ...resolveExecutorMetadata(options.metadata, context),
16
+ [PIBO_WORKFLOW_SESSION_KIND_METADATA_KEY]: "agent_node",
17
+ workflowRunId: context.run.id,
18
+ workflowId: context.workflow.id,
19
+ workflowVersion: context.workflow.version,
20
+ workflowNodeId: context.nodeId,
21
+ ...(context.nodeAttemptId ? { workflowNodeAttemptId: context.nodeAttemptId } : {}),
22
+ ...(context.routing?.roomId ? { chatRoomId: context.routing.roomId } : {}),
23
+ },
24
+ });
25
+ if (options.linkWorkflowSession) {
26
+ await options.linkWorkflowSession({
27
+ piboSessionId: session.id,
28
+ workflowSessionKind: "agent_node",
29
+ workflowRunId: context.run.id,
30
+ workflowId: context.workflow.id,
31
+ workflowVersion: context.workflow.version,
32
+ workflowNodeId: context.nodeId,
33
+ ...(context.nodeAttemptId ? { workflowNodeAttemptId: context.nodeAttemptId } : {}),
34
+ ...(context.routing?.parentSessionId ? { parentPiboSessionId: context.routing.parentSessionId } : {}),
35
+ });
36
+ }
37
+ const messageId = options.createMessageId?.() ?? createId("wfm");
38
+ const reply = await emitMessageAndWaitForPiboReply(options.routing, {
39
+ type: "message",
40
+ piboSessionId: session.id,
41
+ id: messageId,
42
+ text: context.prompt,
43
+ source: "actor",
44
+ }, options.timeoutMs);
45
+ const status = options.routing.getSessionRuntimeStatus?.(session.id);
46
+ return {
47
+ output: reply.text,
48
+ piboSessionId: session.id,
49
+ piSessionId: session.piSessionId,
50
+ effectiveProfile: session.profile || context.profileId,
51
+ effectiveTools: status?.enabledTools ?? status?.activeTools,
52
+ };
53
+ };
54
+ }
55
+ function resolveExecutorTitle(title, context) {
56
+ return typeof title === "function" ? title(context) : title;
57
+ }
58
+ function resolveExecutorMetadata(metadata, context) {
59
+ const resolved = typeof metadata === "function" ? metadata(context) : metadata;
60
+ return resolved ?? {};
61
+ }
62
+ function emitMessageAndWaitForPiboReply(routing, event, timeoutMs = 120000) {
63
+ return new Promise((resolve, reject) => {
64
+ let settled = false;
65
+ let timeout;
66
+ let unsubscribe = () => { };
67
+ const finish = (result) => {
68
+ if (settled)
69
+ return;
70
+ settled = true;
71
+ clearTimeout(timeout);
72
+ unsubscribe();
73
+ if (result instanceof Error) {
74
+ reject(result);
75
+ }
76
+ else {
77
+ resolve(result);
78
+ }
79
+ };
80
+ timeout = setTimeout(() => {
81
+ finish(new Error(`Timed out waiting for assistant reply from Pibo session "${event.piboSessionId}"`));
82
+ }, timeoutMs);
83
+ unsubscribe = routing.subscribe((output) => {
84
+ if (output.piboSessionId !== event.piboSessionId || output.eventId !== event.id)
85
+ return;
86
+ if (output.type === "assistant_message") {
87
+ finish(output);
88
+ }
89
+ else if (output.type === "session_error") {
90
+ finish(new Error(output.error));
91
+ }
92
+ });
93
+ Promise.resolve(routing.emit(event)).catch(finish);
94
+ });
95
+ }
96
+ //# sourceMappingURL=pibo-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pibo-routing.js","sourceRoot":"","sources":["../../src/runtime/pibo-routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AgentNodeDefinition, NodeAttempt, RecordedAgentPrompt, WorkflowDefinition, WorkflowDiagnostic, WorkflowErrorSummary, WorkflowRegistry, WorkflowRun, WorkflowValue } from "../types/index.js";
2
+ export type AgentNodePromptBuildResult = {
3
+ ok: true;
4
+ prompt: string;
5
+ recordedPrompt: RecordedAgentPrompt;
6
+ } | {
7
+ ok: false;
8
+ diagnostics: WorkflowDiagnostic[];
9
+ error: WorkflowErrorSummary;
10
+ };
11
+ export type AgentNodePromptBuildOptions = {
12
+ workflow: WorkflowDefinition;
13
+ run: WorkflowRun;
14
+ nodeId: string;
15
+ registry?: Pick<WorkflowRegistry, "promptBuilders">;
16
+ edgePayloads?: Record<string, WorkflowValue>;
17
+ };
18
+ export declare function buildAgentNodePrompt(node: AgentNodeDefinition, input: WorkflowValue, options: AgentNodePromptBuildOptions): Promise<AgentNodePromptBuildResult>;
19
+ export declare function recordFinalAgentPrompt(nodeAttempt: NodeAttempt, prompt: RecordedAgentPrompt): void;
20
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAGnB,WAAW,EAIX,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACd,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,0BAA0B,GAClC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,mBAAmB,CAAA;CAAE,GACjE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAoBrC;AAgID,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAKlG"}
@@ -0,0 +1,235 @@
1
+ import { resolveWorkflowPromptBuilder } from "../registry/index.js";
2
+ import { createCurrentNodeStateView, createNodeScopedWorkflowRun } from "./state.js";
3
+ import { createEdgePayloadReader } from "./edge-payloads.js";
4
+ export async function buildAgentNodePrompt(node, input, options) {
5
+ if (node.promptBuilder !== undefined) {
6
+ return buildAgentNodePromptWithRegisteredBuilder(node, input, options);
7
+ }
8
+ if (!node.promptTemplate) {
9
+ const prompt = formatPromptTemplateValue(input);
10
+ return { ok: true, prompt, recordedPrompt: createRecordedAgentPrompt(prompt, "input") };
11
+ }
12
+ const prompt = renderPromptTemplate(node.promptTemplate, {
13
+ input,
14
+ state: options.run.state,
15
+ nodeId: options.nodeId,
16
+ });
17
+ return {
18
+ ok: true,
19
+ prompt,
20
+ recordedPrompt: createRecordedAgentPrompt(prompt, "promptTemplate"),
21
+ };
22
+ }
23
+ async function buildAgentNodePromptWithRegisteredBuilder(node, input, options) {
24
+ const builderId = getPromptBuilderRefId(node.promptBuilder);
25
+ const builder = builderId && options.registry
26
+ ? resolveWorkflowPromptBuilder(options.registry, node.promptBuilder)
27
+ : undefined;
28
+ if (!builderId || !builder) {
29
+ const diagnostic = {
30
+ code: "WorkflowRuntimeError.unknownPromptBuilderRef",
31
+ message: `Workflow agent node '${options.nodeId}' references prompt builder '${builderId ?? "<invalid>"}', but it is not registered in the Workflow Registry.`,
32
+ severity: "error",
33
+ nodeId: options.nodeId,
34
+ path: getPromptBuilderRefPath(node.promptBuilder, options.nodeId),
35
+ hint: "Pass a Workflow Registry with the prompt builder registered before dispatching an agent node with promptBuilder.",
36
+ };
37
+ return {
38
+ ok: false,
39
+ diagnostics: [diagnostic],
40
+ error: {
41
+ code: diagnostic.code,
42
+ message: "Agent node dispatch failed before Pibo Runtime execution because prompt builder resolution failed.",
43
+ },
44
+ };
45
+ }
46
+ try {
47
+ const result = await builder.value({
48
+ input,
49
+ state: createCurrentNodeStateView(options.run.state, options.nodeId),
50
+ global: createPromptBuilderStateReader(options.run.state.global),
51
+ local: createPromptBuilderStateReader(options.run.state.local?.[options.nodeId] ?? {}),
52
+ edge: createEdgePayloadReader(options.edgePayloads ?? {}),
53
+ node,
54
+ nodeId: options.nodeId,
55
+ run: createNodeScopedWorkflowRun(options.run, options.nodeId),
56
+ workflow: options.workflow,
57
+ });
58
+ const normalized = normalizePromptBuilderResult(result);
59
+ if (normalized !== undefined) {
60
+ return {
61
+ ok: true,
62
+ prompt: normalized.prompt,
63
+ recordedPrompt: createRecordedAgentPrompt(normalized.prompt, "promptBuilder", {
64
+ promptBuilderId: builderId,
65
+ builderMetadata: normalized.metadata,
66
+ }),
67
+ };
68
+ }
69
+ const diagnostic = {
70
+ code: "WorkflowRuntimeError.invalidPromptBuilderResult",
71
+ message: `Workflow prompt builder '${builderId}' for agent node '${options.nodeId}' returned an invalid prompt result.`,
72
+ severity: "error",
73
+ nodeId: options.nodeId,
74
+ path: getPromptBuilderRefPath(node.promptBuilder, options.nodeId),
75
+ hint: "Return a prompt string or an object with a string prompt property from the registered prompt builder.",
76
+ };
77
+ return {
78
+ ok: false,
79
+ diagnostics: [diagnostic],
80
+ error: {
81
+ code: diagnostic.code,
82
+ message: "Agent node dispatch failed before Pibo Runtime execution because prompt builder output was invalid.",
83
+ },
84
+ };
85
+ }
86
+ catch (caught) {
87
+ const message = caught instanceof Error ? caught.message : "Prompt builder failed with a non-Error value.";
88
+ const diagnostic = {
89
+ code: "WorkflowRuntimeError.promptBuilderFailed",
90
+ message: `Workflow prompt builder '${builderId}' for agent node '${options.nodeId}' failed: ${message}`,
91
+ severity: "error",
92
+ nodeId: options.nodeId,
93
+ path: getPromptBuilderRefPath(node.promptBuilder, options.nodeId),
94
+ hint: "Fix the registered prompt builder implementation or replace the promptBuilder ref.",
95
+ };
96
+ return {
97
+ ok: false,
98
+ diagnostics: [diagnostic],
99
+ error: {
100
+ code: diagnostic.code,
101
+ message: "Agent node dispatch failed before Pibo Runtime execution because prompt builder execution failed.",
102
+ },
103
+ };
104
+ }
105
+ }
106
+ function normalizePromptBuilderResult(result) {
107
+ if (typeof result === "string") {
108
+ return { prompt: result };
109
+ }
110
+ if (isPromptTemplateObject(result) && typeof result.prompt === "string") {
111
+ const metadata = isJsonObject(result.metadata) ? result.metadata : undefined;
112
+ return {
113
+ prompt: result.prompt,
114
+ ...(metadata ? { metadata } : {}),
115
+ };
116
+ }
117
+ return undefined;
118
+ }
119
+ function createRecordedAgentPrompt(text, source, options = {}) {
120
+ return {
121
+ text,
122
+ source,
123
+ tracePrivacy: {
124
+ kind: "workflowRun",
125
+ storage: "workflow-node-attempt",
126
+ redacted: false,
127
+ },
128
+ ...(options.promptBuilderId ? { promptBuilderId: options.promptBuilderId } : {}),
129
+ ...(options.builderMetadata ? { builderMetadata: options.builderMetadata } : {}),
130
+ };
131
+ }
132
+ export function recordFinalAgentPrompt(nodeAttempt, prompt) {
133
+ nodeAttempt.metadata = {
134
+ ...nodeAttempt.metadata,
135
+ finalPrompt: prompt,
136
+ };
137
+ }
138
+ function createPromptBuilderStateReader(values) {
139
+ return {
140
+ get(path) {
141
+ return values[path];
142
+ },
143
+ };
144
+ }
145
+ function getPromptBuilderRefId(ref) {
146
+ if (typeof ref === "string") {
147
+ return ref.length > 0 ? ref : undefined;
148
+ }
149
+ return ref.kind === "promptBuilder" && ref.language === "typescript" && ref.id.length > 0 ? ref.id : undefined;
150
+ }
151
+ function getPromptBuilderRefPath(ref, nodeId) {
152
+ return typeof ref === "string" ? `$.nodes.${nodeId}.promptBuilder` : `$.nodes.${nodeId}.promptBuilder.id`;
153
+ }
154
+ function renderPromptTemplate(template, context) {
155
+ return template.replace(/{{\s*([^{}]+?)\s*}}/g, (placeholder, expression) => {
156
+ const resolved = resolvePromptTemplateExpression(expression.trim(), context);
157
+ return resolved === undefined ? placeholder : formatPromptTemplateValue(resolved);
158
+ });
159
+ }
160
+ function resolvePromptTemplateExpression(expression, context) {
161
+ const path = expression.split(".").map((part) => part.trim()).filter(Boolean);
162
+ const [root, ...rest] = path;
163
+ if (!root) {
164
+ return undefined;
165
+ }
166
+ if (root === "input") {
167
+ return resolvePromptTemplatePath(context.input, rest);
168
+ }
169
+ if (root === "global") {
170
+ return resolvePromptTemplatePath(context.state.global, rest);
171
+ }
172
+ if (root === "local") {
173
+ return resolvePromptTemplatePath(context.state.local?.[context.nodeId] ?? {}, rest);
174
+ }
175
+ if (root === "state") {
176
+ if (rest.length === 0) {
177
+ return createCurrentNodeStateView(context.state, context.nodeId);
178
+ }
179
+ const [scope, ...statePath] = rest;
180
+ if (scope === "global") {
181
+ return resolvePromptTemplatePath(context.state.global, statePath);
182
+ }
183
+ if (scope === "local") {
184
+ return resolvePromptTemplatePath(context.state.local?.[context.nodeId] ?? {}, statePath);
185
+ }
186
+ return resolvePromptTemplatePath(context.state.global, rest);
187
+ }
188
+ return undefined;
189
+ }
190
+ function resolvePromptTemplatePath(value, path) {
191
+ let current = value;
192
+ for (const segment of path) {
193
+ if (Array.isArray(current)) {
194
+ const index = Number(segment);
195
+ if (!Number.isInteger(index) || index < 0 || index >= current.length) {
196
+ return undefined;
197
+ }
198
+ current = current[index];
199
+ continue;
200
+ }
201
+ if (!isPromptTemplateObject(current) || !(segment in current)) {
202
+ return undefined;
203
+ }
204
+ current = current[segment];
205
+ }
206
+ return isPromptTemplateValue(current) ? current : undefined;
207
+ }
208
+ function formatPromptTemplateValue(value) {
209
+ return typeof value === "string" ? value : JSON.stringify(value);
210
+ }
211
+ function isPromptTemplateObject(value) {
212
+ return typeof value === "object" && value !== null && !Array.isArray(value);
213
+ }
214
+ function isJsonObject(value) {
215
+ return isPromptTemplateObject(value) && Object.values(value).every(isPromptTemplateValue);
216
+ }
217
+ function isPromptTemplateValue(value) {
218
+ if (value === null) {
219
+ return true;
220
+ }
221
+ switch (typeof value) {
222
+ case "string":
223
+ case "number":
224
+ case "boolean":
225
+ return true;
226
+ case "object":
227
+ if (Array.isArray(value)) {
228
+ return value.every(isPromptTemplateValue);
229
+ }
230
+ return Object.values(value).every(isPromptTemplateValue);
231
+ default:
232
+ return false;
233
+ }
234
+ }
235
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/runtime/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { NodeAttempt, NodeAttemptId, RetryPolicy, WorkflowDefinition, WorkflowErrorSummary } from "../types/index.js";
2
+ export type WorkflowNodeRetryDecision = {
3
+ kind: "retry";
4
+ policy: RetryPolicy;
5
+ currentAttempt: number;
6
+ nextAttempt: number;
7
+ maxAttempts: number;
8
+ availableAt: string;
9
+ delayMs: number;
10
+ } | {
11
+ kind: "exhausted";
12
+ policy: RetryPolicy;
13
+ currentAttempt: number;
14
+ maxAttempts: number;
15
+ error: WorkflowErrorSummary;
16
+ } | {
17
+ kind: "none";
18
+ reason: "no_policy" | "not_retryable" | "retry_on_mismatch";
19
+ };
20
+ export type WorkflowNodeRetryDecisionOptions = {
21
+ workflow: Pick<WorkflowDefinition, "retry">;
22
+ node: WorkflowDefinition["nodes"][string];
23
+ nodeAttempt: Pick<NodeAttempt, "attempt">;
24
+ error: WorkflowErrorSummary;
25
+ now?: () => Date | string;
26
+ };
27
+ export declare function resolveWorkflowRetryPolicy(workflow: Pick<WorkflowDefinition, "retry">, node: WorkflowDefinition["nodes"][string]): RetryPolicy | undefined;
28
+ export declare function decideWorkflowNodeRetry(options: WorkflowNodeRetryDecisionOptions): WorkflowNodeRetryDecision;
29
+ export declare function createRetryScheduledNodeAttempt(previousAttempt: NodeAttempt, decision: Extract<WorkflowNodeRetryDecision, {
30
+ kind: "retry";
31
+ }>, options?: {
32
+ id?: NodeAttemptId;
33
+ error?: WorkflowErrorSummary;
34
+ }): NodeAttempt;
35
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/runtime/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EAEb,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,yBAAyB,GACjC;IACE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,oBAAoB,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,mBAAmB,CAAC;CAC7D,CAAC;AAEN,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GACxC,WAAW,GAAG,SAAS,CAEzB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CA6C5G;AAED,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,WAAW,EAC5B,QAAQ,EAAE,OAAO,CAAC,yBAAyB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,EAC/D,OAAO,GAAE;IAAE,EAAE,CAAC,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,oBAAoB,CAAA;CAAO,GACjE,WAAW,CAcb"}