@warlock.js/core 4.7.0 → 4.8.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 (812) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/esm/config/config-getter.mjs +5 -5
  3. package/esm/config/config-getter.mjs.map +1 -1
  4. package/esm/config/config-loader.mjs +2 -2
  5. package/esm/config/config-loader.mjs.map +1 -1
  6. package/esm/connectors/access-connector.mjs +2 -2
  7. package/esm/connectors/access-connector.mjs.map +1 -1
  8. package/esm/connectors/ai-connector.mjs +3 -3
  9. package/esm/connectors/ai-connector.mjs.map +1 -1
  10. package/esm/connectors/cache-connector.mjs +2 -2
  11. package/esm/connectors/cache-connector.mjs.map +1 -1
  12. package/esm/connectors/database-connector.mjs +2 -2
  13. package/esm/connectors/database-connector.mjs.map +1 -1
  14. package/esm/connectors/herald-connector.mjs +2 -2
  15. package/esm/connectors/herald-connector.mjs.map +1 -1
  16. package/esm/connectors/http-connector.mjs +7 -7
  17. package/esm/connectors/http-connector.mjs.map +1 -1
  18. package/esm/connectors/logger-connector.mjs +2 -2
  19. package/esm/connectors/logger-connector.mjs.map +1 -1
  20. package/esm/connectors/mail-connector.mjs +2 -2
  21. package/esm/connectors/mail-connector.mjs.map +1 -1
  22. package/esm/connectors/notifications-connector.mjs +2 -2
  23. package/esm/connectors/notifications-connector.mjs.map +1 -1
  24. package/esm/connectors/socket-connector.mjs +3 -3
  25. package/esm/connectors/socket-connector.mjs.map +1 -1
  26. package/esm/http/config.mjs +2 -2
  27. package/esm/http/config.mjs.map +1 -1
  28. package/esm/http/createHttpApplication.mjs +2 -2
  29. package/esm/http/createHttpApplication.mjs.map +1 -1
  30. package/esm/http/middleware/idempotency.middleware.mjs +5 -5
  31. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  32. package/esm/http/middleware/inject-request-context.mjs +2 -2
  33. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  34. package/esm/http/middleware/maintenance.middleware.mjs +4 -4
  35. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  36. package/esm/http/plugins.mjs +9 -9
  37. package/esm/http/plugins.mjs.map +1 -1
  38. package/esm/http/response.mjs +5 -5
  39. package/esm/http/response.mjs.map +1 -1
  40. package/esm/http/server.mjs +4 -4
  41. package/esm/http/server.mjs.map +1 -1
  42. package/esm/utils/paths.mjs +2 -2
  43. package/esm/utils/paths.mjs.map +1 -1
  44. package/esm/validation/validateAll.mjs +2 -2
  45. package/esm/validation/validateAll.mjs.map +1 -1
  46. package/package.json +12 -9
  47. package/esm/ai/src/agent/agent-input-builder.mjs +0 -133
  48. package/esm/ai/src/agent/agent-input-builder.mjs.map +0 -1
  49. package/esm/ai/src/agent/agent-log-event.mjs +0 -101
  50. package/esm/ai/src/agent/agent-log-event.mjs.map +0 -1
  51. package/esm/ai/src/agent/agent-stream.mjs +0 -82
  52. package/esm/ai/src/agent/agent-stream.mjs.map +0 -1
  53. package/esm/ai/src/agent/agent-to-stream-event.mjs +0 -86
  54. package/esm/ai/src/agent/agent-to-stream-event.mjs.map +0 -1
  55. package/esm/ai/src/agent/agent.mjs +0 -1276
  56. package/esm/ai/src/agent/agent.mjs.map +0 -1
  57. package/esm/ai/src/agent/index.mjs +0 -5
  58. package/esm/ai/src/agent/json-stream-guard.mjs +0 -400
  59. package/esm/ai/src/agent/json-stream-guard.mjs.map +0 -1
  60. package/esm/ai/src/agent/signature.mjs +0 -57
  61. package/esm/ai/src/agent/signature.mjs.map +0 -1
  62. package/esm/ai/src/agent/snapshot.mjs +0 -101
  63. package/esm/ai/src/agent/snapshot.mjs.map +0 -1
  64. package/esm/ai/src/agent/spawn-sub-agent.mjs +0 -68
  65. package/esm/ai/src/agent/spawn-sub-agent.mjs.map +0 -1
  66. package/esm/ai/src/ai.mjs +0 -191
  67. package/esm/ai/src/ai.mjs.map +0 -1
  68. package/esm/ai/src/batch/batch.mjs +0 -198
  69. package/esm/ai/src/batch/batch.mjs.map +0 -1
  70. package/esm/ai/src/batch/index.mjs +0 -3
  71. package/esm/ai/src/batch/run-batch-item.mjs +0 -100
  72. package/esm/ai/src/batch/run-batch-item.mjs.map +0 -1
  73. package/esm/ai/src/batch/run-with-concurrency.mjs +0 -39
  74. package/esm/ai/src/batch/run-with-concurrency.mjs.map +0 -1
  75. package/esm/ai/src/checkpoint/memory.mjs +0 -0
  76. package/esm/ai/src/checkpoint/memory.mjs.map +0 -1
  77. package/esm/ai/src/checkpoint/pg.mjs +0 -265
  78. package/esm/ai/src/checkpoint/pg.mjs.map +0 -1
  79. package/esm/ai/src/checkpoint/redis.mjs +0 -200
  80. package/esm/ai/src/checkpoint/redis.mjs.map +0 -1
  81. package/esm/ai/src/config.mjs +0 -59
  82. package/esm/ai/src/config.mjs.map +0 -1
  83. package/esm/ai/src/contracts/end.type.mjs +0 -47
  84. package/esm/ai/src/contracts/end.type.mjs.map +0 -1
  85. package/esm/ai/src/errors/agent-cancelled-error.mjs +0 -43
  86. package/esm/ai/src/errors/agent-cancelled-error.mjs.map +0 -1
  87. package/esm/ai/src/errors/agent-drift-error.mjs +0 -31
  88. package/esm/ai/src/errors/agent-drift-error.mjs.map +0 -1
  89. package/esm/ai/src/errors/agent-execution-error.mjs +0 -35
  90. package/esm/ai/src/errors/agent-execution-error.mjs.map +0 -1
  91. package/esm/ai/src/errors/agent-max-trips-error.mjs +0 -41
  92. package/esm/ai/src/errors/agent-max-trips-error.mjs.map +0 -1
  93. package/esm/ai/src/errors/ai-error.mjs +0 -68
  94. package/esm/ai/src/errors/ai-error.mjs.map +0 -1
  95. package/esm/ai/src/errors/budget-exceeded-error.mjs +0 -31
  96. package/esm/ai/src/errors/budget-exceeded-error.mjs.map +0 -1
  97. package/esm/ai/src/errors/content-filter-error.mjs +0 -28
  98. package/esm/ai/src/errors/content-filter-error.mjs.map +0 -1
  99. package/esm/ai/src/errors/context-length-exceeded-error.mjs +0 -31
  100. package/esm/ai/src/errors/context-length-exceeded-error.mjs.map +0 -1
  101. package/esm/ai/src/errors/guardrail-violation-error.mjs +0 -41
  102. package/esm/ai/src/errors/guardrail-violation-error.mjs.map +0 -1
  103. package/esm/ai/src/errors/index.mjs +0 -40
  104. package/esm/ai/src/errors/invalid-request-error.mjs +0 -31
  105. package/esm/ai/src/errors/invalid-request-error.mjs.map +0 -1
  106. package/esm/ai/src/errors/max-iterations-error.mjs +0 -32
  107. package/esm/ai/src/errors/max-iterations-error.mjs.map +0 -1
  108. package/esm/ai/src/errors/max-steps-exceeded-error.mjs +0 -21
  109. package/esm/ai/src/errors/max-steps-exceeded-error.mjs.map +0 -1
  110. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs +0 -31
  111. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs.map +0 -1
  112. package/esm/ai/src/errors/orchestrator-config-error.mjs +0 -30
  113. package/esm/ai/src/errors/orchestrator-config-error.mjs.map +0 -1
  114. package/esm/ai/src/errors/orchestrator-drift-error.mjs +0 -37
  115. package/esm/ai/src/errors/orchestrator-drift-error.mjs.map +0 -1
  116. package/esm/ai/src/errors/orchestrator-failed-error.mjs +0 -36
  117. package/esm/ai/src/errors/orchestrator-failed-error.mjs.map +0 -1
  118. package/esm/ai/src/errors/outbound-policy-error.mjs +0 -32
  119. package/esm/ai/src/errors/outbound-policy-error.mjs.map +0 -1
  120. package/esm/ai/src/errors/planner-cancelled-error.mjs +0 -29
  121. package/esm/ai/src/errors/planner-cancelled-error.mjs.map +0 -1
  122. package/esm/ai/src/errors/planner-drift-error.mjs +0 -33
  123. package/esm/ai/src/errors/planner-drift-error.mjs.map +0 -1
  124. package/esm/ai/src/errors/planner-failed-error.mjs +0 -37
  125. package/esm/ai/src/errors/planner-failed-error.mjs.map +0 -1
  126. package/esm/ai/src/errors/planner-plan-invalid-error.mjs +0 -25
  127. package/esm/ai/src/errors/planner-plan-invalid-error.mjs.map +0 -1
  128. package/esm/ai/src/errors/prompt-refinement-error.mjs +0 -27
  129. package/esm/ai/src/errors/prompt-refinement-error.mjs.map +0 -1
  130. package/esm/ai/src/errors/provider-auth-error.mjs +0 -26
  131. package/esm/ai/src/errors/provider-auth-error.mjs.map +0 -1
  132. package/esm/ai/src/errors/provider-error.mjs +0 -42
  133. package/esm/ai/src/errors/provider-error.mjs.map +0 -1
  134. package/esm/ai/src/errors/provider-rate-limit-error.mjs +0 -31
  135. package/esm/ai/src/errors/provider-rate-limit-error.mjs.map +0 -1
  136. package/esm/ai/src/errors/provider-timeout-error.mjs +0 -26
  137. package/esm/ai/src/errors/provider-timeout-error.mjs.map +0 -1
  138. package/esm/ai/src/errors/quota-exceeded-error.mjs +0 -40
  139. package/esm/ai/src/errors/quota-exceeded-error.mjs.map +0 -1
  140. package/esm/ai/src/errors/routing-error.mjs +0 -23
  141. package/esm/ai/src/errors/routing-error.mjs.map +0 -1
  142. package/esm/ai/src/errors/schema-validation-error.mjs +0 -37
  143. package/esm/ai/src/errors/schema-validation-error.mjs.map +0 -1
  144. package/esm/ai/src/errors/step-failed-error.mjs +0 -19
  145. package/esm/ai/src/errors/step-failed-error.mjs.map +0 -1
  146. package/esm/ai/src/errors/supervisor-cancelled-error.mjs +0 -29
  147. package/esm/ai/src/errors/supervisor-cancelled-error.mjs.map +0 -1
  148. package/esm/ai/src/errors/supervisor-drift-error.mjs +0 -30
  149. package/esm/ai/src/errors/supervisor-drift-error.mjs.map +0 -1
  150. package/esm/ai/src/errors/supervisor-failed-error.mjs +0 -43
  151. package/esm/ai/src/errors/supervisor-failed-error.mjs.map +0 -1
  152. package/esm/ai/src/errors/supervisor-routing-error.mjs +0 -39
  153. package/esm/ai/src/errors/supervisor-routing-error.mjs.map +0 -1
  154. package/esm/ai/src/errors/tool-execution-error.mjs +0 -32
  155. package/esm/ai/src/errors/tool-execution-error.mjs.map +0 -1
  156. package/esm/ai/src/errors/workflow-cancelled-error.mjs +0 -23
  157. package/esm/ai/src/errors/workflow-cancelled-error.mjs.map +0 -1
  158. package/esm/ai/src/errors/workflow-drift-error.mjs +0 -24
  159. package/esm/ai/src/errors/workflow-drift-error.mjs.map +0 -1
  160. package/esm/ai/src/errors/workflow-error.mjs +0 -18
  161. package/esm/ai/src/errors/workflow-error.mjs.map +0 -1
  162. package/esm/ai/src/eval/dataset.mjs +0 -112
  163. package/esm/ai/src/eval/dataset.mjs.map +0 -1
  164. package/esm/ai/src/eval/eval-runner.mjs +0 -135
  165. package/esm/ai/src/eval/eval-runner.mjs.map +0 -1
  166. package/esm/ai/src/eval/index.mjs +0 -48
  167. package/esm/ai/src/eval/index.mjs.map +0 -1
  168. package/esm/ai/src/eval/judge-scorer.mjs +0 -87
  169. package/esm/ai/src/eval/judge-scorer.mjs.map +0 -1
  170. package/esm/ai/src/eval/regression.mjs +0 -51
  171. package/esm/ai/src/eval/regression.mjs.map +0 -1
  172. package/esm/ai/src/eval/report-json.mjs +0 -33
  173. package/esm/ai/src/eval/report-json.mjs.map +0 -1
  174. package/esm/ai/src/eval/report-junit.mjs +0 -60
  175. package/esm/ai/src/eval/report-junit.mjs.map +0 -1
  176. package/esm/ai/src/eval/scorers.mjs +0 -101
  177. package/esm/ai/src/eval/scorers.mjs.map +0 -1
  178. package/esm/ai/src/guard/detectors/index.mjs +0 -6
  179. package/esm/ai/src/guard/detectors/injection.mjs +0 -254
  180. package/esm/ai/src/guard/detectors/injection.mjs.map +0 -1
  181. package/esm/ai/src/guard/detectors/moderation.mjs +0 -134
  182. package/esm/ai/src/guard/detectors/moderation.mjs.map +0 -1
  183. package/esm/ai/src/guard/detectors/pii.mjs +0 -199
  184. package/esm/ai/src/guard/detectors/pii.mjs.map +0 -1
  185. package/esm/ai/src/guard/detectors/topic.mjs +0 -99
  186. package/esm/ai/src/guard/detectors/topic.mjs.map +0 -1
  187. package/esm/ai/src/guard/errors.mjs +0 -18
  188. package/esm/ai/src/guard/errors.mjs.map +0 -1
  189. package/esm/ai/src/guard/guard.mjs +0 -209
  190. package/esm/ai/src/guard/guard.mjs.map +0 -1
  191. package/esm/ai/src/guard/guardrail.mjs +0 -22
  192. package/esm/ai/src/guard/guardrail.mjs.map +0 -1
  193. package/esm/ai/src/human/errors.mjs +0 -60
  194. package/esm/ai/src/human/errors.mjs.map +0 -1
  195. package/esm/ai/src/human/human-approval.mjs +0 -170
  196. package/esm/ai/src/human/human-approval.mjs.map +0 -1
  197. package/esm/ai/src/human/policy.mjs +0 -67
  198. package/esm/ai/src/human/policy.mjs.map +0 -1
  199. package/esm/ai/src/human/register.mjs +0 -37
  200. package/esm/ai/src/human/register.mjs.map +0 -1
  201. package/esm/ai/src/human/resume-seed.mjs +0 -53
  202. package/esm/ai/src/human/resume-seed.mjs.map +0 -1
  203. package/esm/ai/src/human/resume.mjs +0 -121
  204. package/esm/ai/src/human/resume.mjs.map +0 -1
  205. package/esm/ai/src/human/stores/index.mjs +0 -5
  206. package/esm/ai/src/human/stores/memory.mjs +0 -91
  207. package/esm/ai/src/human/stores/memory.mjs.map +0 -1
  208. package/esm/ai/src/human/stores/pg.mjs +0 -220
  209. package/esm/ai/src/human/stores/pg.mjs.map +0 -1
  210. package/esm/ai/src/human/stores/redis.mjs +0 -201
  211. package/esm/ai/src/human/stores/redis.mjs.map +0 -1
  212. package/esm/ai/src/image/image-cost.mjs +0 -55
  213. package/esm/ai/src/image/image-cost.mjs.map +0 -1
  214. package/esm/ai/src/image/image.mjs +0 -112
  215. package/esm/ai/src/image/image.mjs.map +0 -1
  216. package/esm/ai/src/image/index.mjs +0 -4
  217. package/esm/ai/src/index.mjs +0 -196
  218. package/esm/ai/src/memory/derive-id.mjs +0 -24
  219. package/esm/ai/src/memory/derive-id.mjs.map +0 -1
  220. package/esm/ai/src/memory/episodic-memory.mjs +0 -106
  221. package/esm/ai/src/memory/episodic-memory.mjs.map +0 -1
  222. package/esm/ai/src/memory/memory.mjs +0 -166
  223. package/esm/ai/src/memory/memory.mjs.map +0 -1
  224. package/esm/ai/src/memory/procedural-memory.mjs +0 -103
  225. package/esm/ai/src/memory/procedural-memory.mjs.map +0 -1
  226. package/esm/ai/src/memory/semantic-memory.mjs +0 -80
  227. package/esm/ai/src/memory/semantic-memory.mjs.map +0 -1
  228. package/esm/ai/src/memory/working-memory.mjs +0 -62
  229. package/esm/ai/src/memory/working-memory.mjs.map +0 -1
  230. package/esm/ai/src/middleware/builtins/budget.mjs +0 -219
  231. package/esm/ai/src/middleware/builtins/budget.mjs.map +0 -1
  232. package/esm/ai/src/middleware/builtins/guardrail.mjs +0 -76
  233. package/esm/ai/src/middleware/builtins/guardrail.mjs.map +0 -1
  234. package/esm/ai/src/middleware/builtins/semantic-cache.mjs +0 -149
  235. package/esm/ai/src/middleware/builtins/semantic-cache.mjs.map +0 -1
  236. package/esm/ai/src/middleware/helpers/compose.mjs +0 -52
  237. package/esm/ai/src/middleware/helpers/compose.mjs.map +0 -1
  238. package/esm/ai/src/middleware/helpers/for-tool.mjs +0 -80
  239. package/esm/ai/src/middleware/helpers/for-tool.mjs.map +0 -1
  240. package/esm/ai/src/middleware/index.mjs +0 -10
  241. package/esm/ai/src/middleware/pipeline.mjs +0 -100
  242. package/esm/ai/src/middleware/pipeline.mjs.map +0 -1
  243. package/esm/ai/src/middleware/utils/extract-user-text.mjs +0 -47
  244. package/esm/ai/src/middleware/utils/extract-user-text.mjs.map +0 -1
  245. package/esm/ai/src/middleware/utils/namespaced-state.mjs +0 -60
  246. package/esm/ai/src/middleware/utils/namespaced-state.mjs.map +0 -1
  247. package/esm/ai/src/mock/index.mjs +0 -4
  248. package/esm/ai/src/mock/mock-agent.mjs +0 -3
  249. package/esm/ai/src/mock/mock-router.mjs +0 -58
  250. package/esm/ai/src/mock/mock-router.mjs.map +0 -1
  251. package/esm/ai/src/model/fallback-model.mjs +0 -218
  252. package/esm/ai/src/model/fallback-model.mjs.map +0 -1
  253. package/esm/ai/src/model/index.mjs +0 -3
  254. package/esm/ai/src/object-stream/index.mjs +0 -4
  255. package/esm/ai/src/object-stream/parse-partial-json.mjs +0 -78
  256. package/esm/ai/src/object-stream/parse-partial-json.mjs.map +0 -1
  257. package/esm/ai/src/object-stream/stream-object.mjs +0 -97
  258. package/esm/ai/src/object-stream/stream-object.mjs.map +0 -1
  259. package/esm/ai/src/observe/index.mjs +0 -4
  260. package/esm/ai/src/observe/observer-registry.mjs +0 -35
  261. package/esm/ai/src/observe/observer-registry.mjs.map +0 -1
  262. package/esm/ai/src/observe/resolve-observers.mjs +0 -73
  263. package/esm/ai/src/observe/resolve-observers.mjs.map +0 -1
  264. package/esm/ai/src/orchestrator/as-tool.mjs +0 -98
  265. package/esm/ai/src/orchestrator/as-tool.mjs.map +0 -1
  266. package/esm/ai/src/orchestrator/checkpoint.mjs +0 -75
  267. package/esm/ai/src/orchestrator/checkpoint.mjs.map +0 -1
  268. package/esm/ai/src/orchestrator/commands.mjs +0 -34
  269. package/esm/ai/src/orchestrator/commands.mjs.map +0 -1
  270. package/esm/ai/src/orchestrator/compaction.mjs +0 -206
  271. package/esm/ai/src/orchestrator/compaction.mjs.map +0 -1
  272. package/esm/ai/src/orchestrator/dispatch.mjs +0 -171
  273. package/esm/ai/src/orchestrator/dispatch.mjs.map +0 -1
  274. package/esm/ai/src/orchestrator/emitter.mjs +0 -85
  275. package/esm/ai/src/orchestrator/emitter.mjs.map +0 -1
  276. package/esm/ai/src/orchestrator/execution.mjs +0 -395
  277. package/esm/ai/src/orchestrator/execution.mjs.map +0 -1
  278. package/esm/ai/src/orchestrator/index.mjs +0 -11
  279. package/esm/ai/src/orchestrator/load.mjs +0 -49
  280. package/esm/ai/src/orchestrator/load.mjs.map +0 -1
  281. package/esm/ai/src/orchestrator/lock.mjs +0 -75
  282. package/esm/ai/src/orchestrator/lock.mjs.map +0 -1
  283. package/esm/ai/src/orchestrator/memory.mjs +0 -141
  284. package/esm/ai/src/orchestrator/memory.mjs.map +0 -1
  285. package/esm/ai/src/orchestrator/orchestrator-stream.mjs +0 -98
  286. package/esm/ai/src/orchestrator/orchestrator-stream.mjs.map +0 -1
  287. package/esm/ai/src/orchestrator/orchestrator.mjs +0 -206
  288. package/esm/ai/src/orchestrator/orchestrator.mjs.map +0 -1
  289. package/esm/ai/src/orchestrator/resume.mjs +0 -74
  290. package/esm/ai/src/orchestrator/resume.mjs.map +0 -1
  291. package/esm/ai/src/orchestrator/session-lock.mjs +0 -83
  292. package/esm/ai/src/orchestrator/session-lock.mjs.map +0 -1
  293. package/esm/ai/src/orchestrator/signature.mjs +0 -120
  294. package/esm/ai/src/orchestrator/signature.mjs.map +0 -1
  295. package/esm/ai/src/orchestrator/window.mjs +0 -56
  296. package/esm/ai/src/orchestrator/window.mjs.map +0 -1
  297. package/esm/ai/src/planner/dag-scheduler.mjs +0 -97
  298. package/esm/ai/src/planner/dag-scheduler.mjs.map +0 -1
  299. package/esm/ai/src/planner/index.mjs +0 -6
  300. package/esm/ai/src/planner/plan-prompt.mjs +0 -31
  301. package/esm/ai/src/planner/plan-prompt.mjs.map +0 -1
  302. package/esm/ai/src/planner/plan-schema.mjs +0 -120
  303. package/esm/ai/src/planner/plan-schema.mjs.map +0 -1
  304. package/esm/ai/src/planner/planner-run.mjs +0 -769
  305. package/esm/ai/src/planner/planner-run.mjs.map +0 -1
  306. package/esm/ai/src/planner/planner.mjs +0 -144
  307. package/esm/ai/src/planner/planner.mjs.map +0 -1
  308. package/esm/ai/src/planner/signature.mjs +0 -27
  309. package/esm/ai/src/planner/signature.mjs.map +0 -1
  310. package/esm/ai/src/planner/snapshot.mjs +0 -95
  311. package/esm/ai/src/planner/snapshot.mjs.map +0 -1
  312. package/esm/ai/src/prompt/errors.mjs +0 -73
  313. package/esm/ai/src/prompt/errors.mjs.map +0 -1
  314. package/esm/ai/src/prompt/index.mjs +0 -4
  315. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs +0 -104
  316. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs.map +0 -1
  317. package/esm/ai/src/prompt/prompt-validate.mjs +0 -170
  318. package/esm/ai/src/prompt/prompt-validate.mjs.map +0 -1
  319. package/esm/ai/src/prompt/prompt.mjs +0 -218
  320. package/esm/ai/src/prompt/prompt.mjs.map +0 -1
  321. package/esm/ai/src/prompts/index.mjs +0 -3
  322. package/esm/ai/src/prompts/prompts-manager.mjs +0 -410
  323. package/esm/ai/src/prompts/prompts-manager.mjs.map +0 -1
  324. package/esm/ai/src/prompts/prompts-validate.mjs +0 -0
  325. package/esm/ai/src/prompts/prompts-validate.mjs.map +0 -1
  326. package/esm/ai/src/rag/as-tool.mjs +0 -48
  327. package/esm/ai/src/rag/as-tool.mjs.map +0 -1
  328. package/esm/ai/src/rag/chunk/chunk.mjs +0 -44
  329. package/esm/ai/src/rag/chunk/chunk.mjs.map +0 -1
  330. package/esm/ai/src/rag/chunk/fixed.mjs +0 -32
  331. package/esm/ai/src/rag/chunk/fixed.mjs.map +0 -1
  332. package/esm/ai/src/rag/chunk/markdown.mjs +0 -75
  333. package/esm/ai/src/rag/chunk/markdown.mjs.map +0 -1
  334. package/esm/ai/src/rag/chunk/recursive.mjs +0 -132
  335. package/esm/ai/src/rag/chunk/recursive.mjs.map +0 -1
  336. package/esm/ai/src/rag/chunk/sentence.mjs +0 -73
  337. package/esm/ai/src/rag/chunk/sentence.mjs.map +0 -1
  338. package/esm/ai/src/rag/hybrid/bm25.mjs +0 -51
  339. package/esm/ai/src/rag/hybrid/bm25.mjs.map +0 -1
  340. package/esm/ai/src/rag/hybrid/hybrid-rank.mjs +0 -29
  341. package/esm/ai/src/rag/hybrid/hybrid-rank.mjs.map +0 -1
  342. package/esm/ai/src/rag/hybrid/rrf.mjs +0 -30
  343. package/esm/ai/src/rag/hybrid/rrf.mjs.map +0 -1
  344. package/esm/ai/src/rag/index.mjs +0 -18
  345. package/esm/ai/src/rag/loaders/errors.mjs +0 -25
  346. package/esm/ai/src/rag/loaders/errors.mjs.map +0 -1
  347. package/esm/ai/src/rag/loaders/index.mjs +0 -7
  348. package/esm/ai/src/rag/loaders/load-html.mjs +0 -138
  349. package/esm/ai/src/rag/loaders/load-html.mjs.map +0 -1
  350. package/esm/ai/src/rag/loaders/load-pdf.mjs +0 -150
  351. package/esm/ai/src/rag/loaders/load-pdf.mjs.map +0 -1
  352. package/esm/ai/src/rag/loaders/load-text.mjs +0 -60
  353. package/esm/ai/src/rag/loaders/load-text.mjs.map +0 -1
  354. package/esm/ai/src/rag/loaders/load-web.mjs +0 -89
  355. package/esm/ai/src/rag/loaders/load-web.mjs.map +0 -1
  356. package/esm/ai/src/rag/rag.mjs +0 -126
  357. package/esm/ai/src/rag/rag.mjs.map +0 -1
  358. package/esm/ai/src/rag/rerank/keyword-reranker.mjs +0 -58
  359. package/esm/ai/src/rag/rerank/keyword-reranker.mjs.map +0 -1
  360. package/esm/ai/src/rag/rerank/llm-reranker.mjs +0 -85
  361. package/esm/ai/src/rag/rerank/llm-reranker.mjs.map +0 -1
  362. package/esm/ai/src/rag/retrieve.mjs +0 -68
  363. package/esm/ai/src/rag/retrieve.mjs.map +0 -1
  364. package/esm/ai/src/rag/store/cache-vector-store.mjs +0 -48
  365. package/esm/ai/src/rag/store/cache-vector-store.mjs.map +0 -1
  366. package/esm/ai/src/rag/store/pg-vector-store.mjs +0 -328
  367. package/esm/ai/src/rag/store/pg-vector-store.mjs.map +0 -1
  368. package/esm/ai/src/rag/transforms/multi-query.mjs +0 -41
  369. package/esm/ai/src/rag/transforms/multi-query.mjs.map +0 -1
  370. package/esm/ai/src/security/index.mjs +0 -5
  371. package/esm/ai/src/security/outbound-policy.mjs +0 -187
  372. package/esm/ai/src/security/outbound-policy.mjs.map +0 -1
  373. package/esm/ai/src/security/private-ip.mjs +0 -48
  374. package/esm/ai/src/security/private-ip.mjs.map +0 -1
  375. package/esm/ai/src/security/redact.mjs +0 -60
  376. package/esm/ai/src/security/redact.mjs.map +0 -1
  377. package/esm/ai/src/serve/serve.mjs +0 -90
  378. package/esm/ai/src/serve/serve.mjs.map +0 -1
  379. package/esm/ai/src/serve/sse.mjs +0 -25
  380. package/esm/ai/src/serve/sse.mjs.map +0 -1
  381. package/esm/ai/src/serve/stream-to-sse.mjs +0 -37
  382. package/esm/ai/src/serve/stream-to-sse.mjs.map +0 -1
  383. package/esm/ai/src/skills/catalog.mjs +0 -140
  384. package/esm/ai/src/skills/catalog.mjs.map +0 -1
  385. package/esm/ai/src/skills/index.mjs +0 -11
  386. package/esm/ai/src/skills/load-skill-tool.mjs +0 -65
  387. package/esm/ai/src/skills/load-skill-tool.mjs.map +0 -1
  388. package/esm/ai/src/skills/save-skill-tool.mjs +0 -65
  389. package/esm/ai/src/skills/save-skill-tool.mjs.map +0 -1
  390. package/esm/ai/src/skills/skills.mjs +0 -109
  391. package/esm/ai/src/skills/skills.mjs.map +0 -1
  392. package/esm/ai/src/skills/sources/directory-source.mjs +0 -108
  393. package/esm/ai/src/skills/sources/directory-source.mjs.map +0 -1
  394. package/esm/ai/src/skills/sources/index.mjs +0 -27
  395. package/esm/ai/src/skills/sources/index.mjs.map +0 -1
  396. package/esm/ai/src/skills/sources/parse-frontmatter.mjs +0 -46
  397. package/esm/ai/src/skills/sources/parse-frontmatter.mjs.map +0 -1
  398. package/esm/ai/src/skills/sources/store-source.mjs +0 -15
  399. package/esm/ai/src/skills/sources/store-source.mjs.map +0 -1
  400. package/esm/ai/src/skills/sources/url-source.mjs +0 -117
  401. package/esm/ai/src/skills/sources/url-source.mjs.map +0 -1
  402. package/esm/ai/src/snapshot/memory.mjs +0 -81
  403. package/esm/ai/src/snapshot/memory.mjs.map +0 -1
  404. package/esm/ai/src/snapshot/pg.mjs +0 -146
  405. package/esm/ai/src/snapshot/pg.mjs.map +0 -1
  406. package/esm/ai/src/snapshot/redis.mjs +0 -101
  407. package/esm/ai/src/snapshot/redis.mjs.map +0 -1
  408. package/esm/ai/src/speech/index.mjs +0 -3
  409. package/esm/ai/src/speech/speech.mjs +0 -122
  410. package/esm/ai/src/speech/speech.mjs.map +0 -1
  411. package/esm/ai/src/supervisor/as-tool.mjs +0 -74
  412. package/esm/ai/src/supervisor/as-tool.mjs.map +0 -1
  413. package/esm/ai/src/supervisor/cancellation.mjs +0 -22
  414. package/esm/ai/src/supervisor/cancellation.mjs.map +0 -1
  415. package/esm/ai/src/supervisor/decide.mjs +0 -272
  416. package/esm/ai/src/supervisor/decide.mjs.map +0 -1
  417. package/esm/ai/src/supervisor/emitter.mjs +0 -47
  418. package/esm/ai/src/supervisor/emitter.mjs.map +0 -1
  419. package/esm/ai/src/supervisor/entries.mjs +0 -206
  420. package/esm/ai/src/supervisor/entries.mjs.map +0 -1
  421. package/esm/ai/src/supervisor/execution.mjs +0 -1921
  422. package/esm/ai/src/supervisor/execution.mjs.map +0 -1
  423. package/esm/ai/src/supervisor/fan-out.mjs +0 -65
  424. package/esm/ai/src/supervisor/fan-out.mjs.map +0 -1
  425. package/esm/ai/src/supervisor/index.mjs +0 -14
  426. package/esm/ai/src/supervisor/router-factory.mjs +0 -141
  427. package/esm/ai/src/supervisor/router-factory.mjs.map +0 -1
  428. package/esm/ai/src/supervisor/router-prompt.mjs +0 -52
  429. package/esm/ai/src/supervisor/router-prompt.mjs.map +0 -1
  430. package/esm/ai/src/supervisor/signature.mjs +0 -89
  431. package/esm/ai/src/supervisor/signature.mjs.map +0 -1
  432. package/esm/ai/src/supervisor/snapshot.mjs +0 -69
  433. package/esm/ai/src/supervisor/snapshot.mjs.map +0 -1
  434. package/esm/ai/src/supervisor/supervisor-stream.mjs +0 -89
  435. package/esm/ai/src/supervisor/supervisor-stream.mjs.map +0 -1
  436. package/esm/ai/src/supervisor/supervisor.mjs +0 -144
  437. package/esm/ai/src/supervisor/supervisor.mjs.map +0 -1
  438. package/esm/ai/src/system-prompt/index.mjs +0 -7
  439. package/esm/ai/src/system-prompt/instruction.mjs +0 -57
  440. package/esm/ai/src/system-prompt/instruction.mjs.map +0 -1
  441. package/esm/ai/src/system-prompt/persona.mjs +0 -57
  442. package/esm/ai/src/system-prompt/persona.mjs.map +0 -1
  443. package/esm/ai/src/system-prompt/refined-system-prompt.mjs +0 -461
  444. package/esm/ai/src/system-prompt/refined-system-prompt.mjs.map +0 -1
  445. package/esm/ai/src/system-prompt/render-placeholders.mjs +0 -58
  446. package/esm/ai/src/system-prompt/render-placeholders.mjs.map +0 -1
  447. package/esm/ai/src/system-prompt/system-prompt.mjs +0 -286
  448. package/esm/ai/src/system-prompt/system-prompt.mjs.map +0 -1
  449. package/esm/ai/src/team/gates.mjs +0 -48
  450. package/esm/ai/src/team/gates.mjs.map +0 -1
  451. package/esm/ai/src/team/index.mjs +0 -3
  452. package/esm/ai/src/team/team.mjs +0 -94
  453. package/esm/ai/src/team/team.mjs.map +0 -1
  454. package/esm/ai/src/tool/executable-as-tool.mjs +0 -81
  455. package/esm/ai/src/tool/executable-as-tool.mjs.map +0 -1
  456. package/esm/ai/src/tool/index.mjs +0 -4
  457. package/esm/ai/src/tool/tool.mjs +0 -185
  458. package/esm/ai/src/tool/tool.mjs.map +0 -1
  459. package/esm/ai/src/transcribe/audio-input.mjs +0 -84
  460. package/esm/ai/src/transcribe/audio-input.mjs.map +0 -1
  461. package/esm/ai/src/transcribe/index.mjs +0 -4
  462. package/esm/ai/src/transcribe/transcribe.mjs +0 -127
  463. package/esm/ai/src/transcribe/transcribe.mjs.map +0 -1
  464. package/esm/ai/src/utils/compute-cost.mjs +0 -112
  465. package/esm/ai/src/utils/compute-cost.mjs.map +0 -1
  466. package/esm/ai/src/utils/extract-json-lenient.mjs +0 -97
  467. package/esm/ai/src/utils/extract-json-lenient.mjs.map +0 -1
  468. package/esm/ai/src/utils/extract-json-payload.mjs +0 -39
  469. package/esm/ai/src/utils/extract-json-payload.mjs.map +0 -1
  470. package/esm/ai/src/utils/generate-run-id.mjs +0 -23
  471. package/esm/ai/src/utils/generate-run-id.mjs.map +0 -1
  472. package/esm/ai/src/utils/index.mjs +0 -12
  473. package/esm/ai/src/utils/json-schema.mjs +0 -89
  474. package/esm/ai/src/utils/json-schema.mjs.map +0 -1
  475. package/esm/ai/src/utils/prepare-attachment-part.mjs +0 -232
  476. package/esm/ai/src/utils/prepare-attachment-part.mjs.map +0 -1
  477. package/esm/ai/src/utils/resolve-attachment.mjs +0 -74
  478. package/esm/ai/src/utils/resolve-attachment.mjs.map +0 -1
  479. package/esm/ai/src/utils/run-context.mjs +0 -89
  480. package/esm/ai/src/utils/run-context.mjs.map +0 -1
  481. package/esm/ai/src/utils/safe-json-parse.mjs +0 -22
  482. package/esm/ai/src/utils/safe-json-parse.mjs.map +0 -1
  483. package/esm/ai/src/utils/stamp-report-lineage.mjs +0 -45
  484. package/esm/ai/src/utils/stamp-report-lineage.mjs.map +0 -1
  485. package/esm/ai/src/vcr/cassette-io.mjs +0 -57
  486. package/esm/ai/src/vcr/cassette-io.mjs.map +0 -1
  487. package/esm/ai/src/vcr/errors.mjs +0 -37
  488. package/esm/ai/src/vcr/errors.mjs.map +0 -1
  489. package/esm/ai/src/vcr/hash-request.mjs +0 -118
  490. package/esm/ai/src/vcr/hash-request.mjs.map +0 -1
  491. package/esm/ai/src/vcr/index.mjs +0 -5
  492. package/esm/ai/src/vcr/vcr.mjs +0 -248
  493. package/esm/ai/src/vcr/vcr.mjs.map +0 -1
  494. package/esm/ai/src/workflow/as-tool.mjs +0 -49
  495. package/esm/ai/src/workflow/as-tool.mjs.map +0 -1
  496. package/esm/ai/src/workflow/cancellation.mjs +0 -44
  497. package/esm/ai/src/workflow/cancellation.mjs.map +0 -1
  498. package/esm/ai/src/workflow/emitter.mjs +0 -40
  499. package/esm/ai/src/workflow/emitter.mjs.map +0 -1
  500. package/esm/ai/src/workflow/engine.mjs +0 -363
  501. package/esm/ai/src/workflow/engine.mjs.map +0 -1
  502. package/esm/ai/src/workflow/index.mjs +0 -5
  503. package/esm/ai/src/workflow/retry.mjs +0 -32
  504. package/esm/ai/src/workflow/retry.mjs.map +0 -1
  505. package/esm/ai/src/workflow/router.mjs +0 -56
  506. package/esm/ai/src/workflow/router.mjs.map +0 -1
  507. package/esm/ai/src/workflow/run-scoped-emitter.mjs +0 -32
  508. package/esm/ai/src/workflow/run-scoped-emitter.mjs.map +0 -1
  509. package/esm/ai/src/workflow/signature.mjs +0 -34
  510. package/esm/ai/src/workflow/signature.mjs.map +0 -1
  511. package/esm/ai/src/workflow/snapshot.mjs +0 -77
  512. package/esm/ai/src/workflow/snapshot.mjs.map +0 -1
  513. package/esm/ai/src/workflow/state.mjs +0 -37
  514. package/esm/ai/src/workflow/state.mjs.map +0 -1
  515. package/esm/ai/src/workflow/step-runner.mjs +0 -370
  516. package/esm/ai/src/workflow/step-runner.mjs.map +0 -1
  517. package/esm/ai/src/workflow/step.mjs +0 -37
  518. package/esm/ai/src/workflow/step.mjs.map +0 -1
  519. package/esm/ai/src/workflow/workflow.mjs +0 -122
  520. package/esm/ai/src/workflow/workflow.mjs.map +0 -1
  521. package/esm/ai-openai/src/embedder.mjs +0 -4
  522. package/esm/ai-openai/src/image.mjs +0 -5
  523. package/esm/ai-openai/src/index.mjs +0 -7
  524. package/esm/ai-openai/src/model.mjs +0 -5
  525. package/esm/ai-openai/src/sdk.mjs +0 -9
  526. package/esm/ai-openai/src/speech.mjs +0 -5
  527. package/esm/ai-openai/src/transcription.mjs +0 -6
  528. package/esm/ai-openai/src/utils/index.mjs +0 -5
  529. package/esm/ai-openai/src/utils/to-openai-messages.mjs +0 -3
  530. package/esm/ai-openai/src/utils/to-openai-tools.mjs +0 -3
  531. package/esm/ai-openai/src/utils/wrap-openai-error.mjs +0 -4
  532. package/esm/node_modules/langfuse/lib/index.mjs +0 -1827
  533. package/esm/node_modules/langfuse/lib/index.mjs.map +0 -1
  534. package/esm/node_modules/langfuse-core/lib/index.mjs +0 -1770
  535. package/esm/node_modules/langfuse-core/lib/index.mjs.map +0 -1
  536. package/esm/node_modules/mustache/mustache.mjs +0 -587
  537. package/esm/node_modules/mustache/mustache.mjs.map +0 -1
  538. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs +0 -180
  539. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs.map +0 -1
  540. package/esm/node_modules/openai/auth/workload-identity-auth.mjs +0 -80
  541. package/esm/node_modules/openai/auth/workload-identity-auth.mjs.map +0 -1
  542. package/esm/node_modules/openai/azure.mjs +0 -82
  543. package/esm/node_modules/openai/azure.mjs.map +0 -1
  544. package/esm/node_modules/openai/client.mjs +0 -638
  545. package/esm/node_modules/openai/client.mjs.map +0 -1
  546. package/esm/node_modules/openai/core/api-promise.mjs +0 -75
  547. package/esm/node_modules/openai/core/api-promise.mjs.map +0 -1
  548. package/esm/node_modules/openai/core/error.mjs +0 -110
  549. package/esm/node_modules/openai/core/error.mjs.map +0 -1
  550. package/esm/node_modules/openai/core/pagination.mjs +0 -160
  551. package/esm/node_modules/openai/core/pagination.mjs.map +0 -1
  552. package/esm/node_modules/openai/core/resource.mjs +0 -10
  553. package/esm/node_modules/openai/core/resource.mjs.map +0 -1
  554. package/esm/node_modules/openai/core/streaming.mjs +0 -238
  555. package/esm/node_modules/openai/core/streaming.mjs.map +0 -1
  556. package/esm/node_modules/openai/index.mjs +0 -8
  557. package/esm/node_modules/openai/internal/decoders/line.mjs +0 -91
  558. package/esm/node_modules/openai/internal/decoders/line.mjs.map +0 -1
  559. package/esm/node_modules/openai/internal/detect-platform.mjs +0 -123
  560. package/esm/node_modules/openai/internal/detect-platform.mjs.map +0 -1
  561. package/esm/node_modules/openai/internal/errors.mjs +0 -26
  562. package/esm/node_modules/openai/internal/errors.mjs.map +0 -1
  563. package/esm/node_modules/openai/internal/headers.mjs +0 -65
  564. package/esm/node_modules/openai/internal/headers.mjs.map +0 -1
  565. package/esm/node_modules/openai/internal/parse.mjs +0 -41
  566. package/esm/node_modules/openai/internal/parse.mjs.map +0 -1
  567. package/esm/node_modules/openai/internal/qs/formats.mjs +0 -12
  568. package/esm/node_modules/openai/internal/qs/formats.mjs.map +0 -1
  569. package/esm/node_modules/openai/internal/qs/stringify.mjs +0 -179
  570. package/esm/node_modules/openai/internal/qs/stringify.mjs.map +0 -1
  571. package/esm/node_modules/openai/internal/qs/utils.mjs +0 -65
  572. package/esm/node_modules/openai/internal/qs/utils.mjs.map +0 -1
  573. package/esm/node_modules/openai/internal/request-options.mjs +0 -11
  574. package/esm/node_modules/openai/internal/request-options.mjs.map +0 -1
  575. package/esm/node_modules/openai/internal/shims.mjs +0 -77
  576. package/esm/node_modules/openai/internal/shims.mjs.map +0 -1
  577. package/esm/node_modules/openai/internal/to-file.mjs +0 -63
  578. package/esm/node_modules/openai/internal/to-file.mjs.map +0 -1
  579. package/esm/node_modules/openai/internal/tslib.mjs +0 -16
  580. package/esm/node_modules/openai/internal/tslib.mjs.map +0 -1
  581. package/esm/node_modules/openai/internal/uploads.mjs +0 -94
  582. package/esm/node_modules/openai/internal/uploads.mjs.map +0 -1
  583. package/esm/node_modules/openai/internal/utils/base64.mjs +0 -22
  584. package/esm/node_modules/openai/internal/utils/base64.mjs.map +0 -1
  585. package/esm/node_modules/openai/internal/utils/bytes.mjs +0 -26
  586. package/esm/node_modules/openai/internal/utils/bytes.mjs.map +0 -1
  587. package/esm/node_modules/openai/internal/utils/env.mjs +0 -16
  588. package/esm/node_modules/openai/internal/utils/env.mjs.map +0 -1
  589. package/esm/node_modules/openai/internal/utils/log.mjs +0 -58
  590. package/esm/node_modules/openai/internal/utils/log.mjs.map +0 -1
  591. package/esm/node_modules/openai/internal/utils/path.mjs +0 -62
  592. package/esm/node_modules/openai/internal/utils/path.mjs.map +0 -1
  593. package/esm/node_modules/openai/internal/utils/query.mjs +0 -10
  594. package/esm/node_modules/openai/internal/utils/query.mjs.map +0 -1
  595. package/esm/node_modules/openai/internal/utils/sleep.mjs +0 -6
  596. package/esm/node_modules/openai/internal/utils/sleep.mjs.map +0 -1
  597. package/esm/node_modules/openai/internal/utils/uuid.mjs +0 -18
  598. package/esm/node_modules/openai/internal/utils/uuid.mjs.map +0 -1
  599. package/esm/node_modules/openai/internal/utils/values.mjs +0 -41
  600. package/esm/node_modules/openai/internal/utils/values.mjs.map +0 -1
  601. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs +0 -247
  602. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs.map +0 -1
  603. package/esm/node_modules/openai/lib/AssistantStream.mjs +0 -472
  604. package/esm/node_modules/openai/lib/AssistantStream.mjs.map +0 -1
  605. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs +0 -26
  606. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs.map +0 -1
  607. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs +0 -423
  608. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs.map +0 -1
  609. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs +0 -26
  610. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs.map +0 -1
  611. package/esm/node_modules/openai/lib/EventStream.mjs +0 -163
  612. package/esm/node_modules/openai/lib/EventStream.mjs.map +0 -1
  613. package/esm/node_modules/openai/lib/ResponsesParser.mjs +0 -94
  614. package/esm/node_modules/openai/lib/ResponsesParser.mjs.map +0 -1
  615. package/esm/node_modules/openai/lib/RunnableFunction.mjs +0 -8
  616. package/esm/node_modules/openai/lib/RunnableFunction.mjs.map +0 -1
  617. package/esm/node_modules/openai/lib/Util.mjs +0 -19
  618. package/esm/node_modules/openai/lib/Util.mjs.map +0 -1
  619. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs +0 -11
  620. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs.map +0 -1
  621. package/esm/node_modules/openai/lib/parser.mjs +0 -88
  622. package/esm/node_modules/openai/lib/parser.mjs.map +0 -1
  623. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs +0 -231
  624. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs.map +0 -1
  625. package/esm/node_modules/openai/resources/admin/admin.mjs +0 -15
  626. package/esm/node_modules/openai/resources/admin/admin.mjs.map +0 -1
  627. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs +0 -81
  628. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs.map +0 -1
  629. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs +0 -31
  630. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs.map +0 -1
  631. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs +0 -153
  632. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs.map +0 -1
  633. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs +0 -42
  634. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs.map +0 -1
  635. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs +0 -106
  636. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs.map +0 -1
  637. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs +0 -88
  638. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs.map +0 -1
  639. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs +0 -88
  640. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs.map +0 -1
  641. package/esm/node_modules/openai/resources/admin/organization/invites.mjs +0 -83
  642. package/esm/node_modules/openai/resources/admin/organization/invites.mjs.map +0 -1
  643. package/esm/node_modules/openai/resources/admin/organization/organization.mjs +0 -45
  644. package/esm/node_modules/openai/resources/admin/organization/organization.mjs.map +0 -1
  645. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs +0 -72
  646. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs.map +0 -1
  647. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs +0 -78
  648. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs.map +0 -1
  649. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs +0 -46
  650. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs.map +0 -1
  651. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs +0 -95
  652. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs.map +0 -1
  653. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs +0 -91
  654. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs.map +0 -1
  655. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs +0 -45
  656. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs.map +0 -1
  657. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs +0 -63
  658. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs.map +0 -1
  659. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs +0 -137
  660. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs.map +0 -1
  661. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs +0 -51
  662. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs.map +0 -1
  663. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs +0 -108
  664. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs.map +0 -1
  665. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs +0 -112
  666. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs.map +0 -1
  667. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs +0 -106
  668. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs.map +0 -1
  669. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs +0 -91
  670. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs.map +0 -1
  671. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs +0 -118
  672. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs.map +0 -1
  673. package/esm/node_modules/openai/resources/admin/organization/roles.mjs +0 -96
  674. package/esm/node_modules/openai/resources/admin/organization/roles.mjs.map +0 -1
  675. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs +0 -97
  676. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs.map +0 -1
  677. package/esm/node_modules/openai/resources/admin/organization/usage.mjs +0 -207
  678. package/esm/node_modules/openai/resources/admin/organization/usage.mjs.map +0 -1
  679. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs +0 -88
  680. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs.map +0 -1
  681. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs +0 -82
  682. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs.map +0 -1
  683. package/esm/node_modules/openai/resources/audio/audio.mjs +0 -21
  684. package/esm/node_modules/openai/resources/audio/audio.mjs.map +0 -1
  685. package/esm/node_modules/openai/resources/audio/speech.mjs +0 -39
  686. package/esm/node_modules/openai/resources/audio/speech.mjs.map +0 -1
  687. package/esm/node_modules/openai/resources/audio/transcriptions.mjs +0 -22
  688. package/esm/node_modules/openai/resources/audio/transcriptions.mjs.map +0 -1
  689. package/esm/node_modules/openai/resources/audio/translations.mjs +0 -21
  690. package/esm/node_modules/openai/resources/audio/translations.mjs.map +0 -1
  691. package/esm/node_modules/openai/resources/batches.mjs +0 -54
  692. package/esm/node_modules/openai/resources/batches.mjs.map +0 -1
  693. package/esm/node_modules/openai/resources/beta/assistants.mjs +0 -78
  694. package/esm/node_modules/openai/resources/beta/assistants.mjs.map +0 -1
  695. package/esm/node_modules/openai/resources/beta/beta.mjs +0 -24
  696. package/esm/node_modules/openai/resources/beta/beta.mjs.map +0 -1
  697. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs +0 -18
  698. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs.map +0 -1
  699. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs +0 -49
  700. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs.map +0 -1
  701. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs +0 -85
  702. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs.map +0 -1
  703. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs +0 -21
  704. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs.map +0 -1
  705. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs +0 -33
  706. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs.map +0 -1
  707. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs +0 -33
  708. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs.map +0 -1
  709. package/esm/node_modules/openai/resources/beta/threads/messages.mjs +0 -83
  710. package/esm/node_modules/openai/resources/beta/threads/messages.mjs.map +0 -1
  711. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs +0 -183
  712. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs.map +0 -1
  713. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs +0 -45
  714. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs.map +0 -1
  715. package/esm/node_modules/openai/resources/beta/threads/threads.mjs +0 -101
  716. package/esm/node_modules/openai/resources/beta/threads/threads.mjs.map +0 -1
  717. package/esm/node_modules/openai/resources/chat/chat.mjs +0 -15
  718. package/esm/node_modules/openai/resources/chat/chat.mjs.map +0 -1
  719. package/esm/node_modules/openai/resources/chat/completions/completions.mjs +0 -123
  720. package/esm/node_modules/openai/resources/chat/completions/completions.mjs.map +0 -1
  721. package/esm/node_modules/openai/resources/chat/completions/index.mjs +0 -7
  722. package/esm/node_modules/openai/resources/chat/completions/messages.mjs +0 -35
  723. package/esm/node_modules/openai/resources/chat/completions/messages.mjs.map +0 -1
  724. package/esm/node_modules/openai/resources/chat/index.mjs +0 -5
  725. package/esm/node_modules/openai/resources/completions.mjs +0 -20
  726. package/esm/node_modules/openai/resources/completions.mjs.map +0 -1
  727. package/esm/node_modules/openai/resources/containers/containers.mjs +0 -57
  728. package/esm/node_modules/openai/resources/containers/containers.mjs.map +0 -1
  729. package/esm/node_modules/openai/resources/containers/files/content.mjs +0 -23
  730. package/esm/node_modules/openai/resources/containers/files/content.mjs.map +0 -1
  731. package/esm/node_modules/openai/resources/containers/files/files.mjs +0 -63
  732. package/esm/node_modules/openai/resources/containers/files/files.mjs.map +0 -1
  733. package/esm/node_modules/openai/resources/conversations/conversations.mjs +0 -57
  734. package/esm/node_modules/openai/resources/conversations/conversations.mjs.map +0 -1
  735. package/esm/node_modules/openai/resources/conversations/items.mjs +0 -57
  736. package/esm/node_modules/openai/resources/conversations/items.mjs.map +0 -1
  737. package/esm/node_modules/openai/resources/embeddings.mjs +0 -48
  738. package/esm/node_modules/openai/resources/embeddings.mjs.map +0 -1
  739. package/esm/node_modules/openai/resources/evals/evals.mjs +0 -73
  740. package/esm/node_modules/openai/resources/evals/evals.mjs.map +0 -1
  741. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs +0 -35
  742. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs.map +0 -1
  743. package/esm/node_modules/openai/resources/evals/runs/runs.mjs +0 -72
  744. package/esm/node_modules/openai/resources/evals/runs/runs.mjs.map +0 -1
  745. package/esm/node_modules/openai/resources/files.mjs +0 -111
  746. package/esm/node_modules/openai/resources/files.mjs.map +0 -1
  747. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs +0 -15
  748. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs.map +0 -1
  749. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs +0 -60
  750. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs.map +0 -1
  751. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs +0 -15
  752. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs.map +0 -1
  753. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs +0 -102
  754. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs.map +0 -1
  755. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs +0 -24
  756. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs.map +0 -1
  757. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs +0 -34
  758. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs.map +0 -1
  759. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs +0 -148
  760. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs.map +0 -1
  761. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs +0 -8
  762. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs.map +0 -1
  763. package/esm/node_modules/openai/resources/graders/grader-models.mjs +0 -8
  764. package/esm/node_modules/openai/resources/graders/grader-models.mjs.map +0 -1
  765. package/esm/node_modules/openai/resources/graders/graders.mjs +0 -15
  766. package/esm/node_modules/openai/resources/graders/graders.mjs.map +0 -1
  767. package/esm/node_modules/openai/resources/images.mjs +0 -46
  768. package/esm/node_modules/openai/resources/images.mjs.map +0 -1
  769. package/esm/node_modules/openai/resources/index.mjs +0 -27
  770. package/esm/node_modules/openai/resources/models.mjs +0 -44
  771. package/esm/node_modules/openai/resources/models.mjs.map +0 -1
  772. package/esm/node_modules/openai/resources/moderations.mjs +0 -23
  773. package/esm/node_modules/openai/resources/moderations.mjs.map +0 -1
  774. package/esm/node_modules/openai/resources/realtime/calls.mjs +0 -79
  775. package/esm/node_modules/openai/resources/realtime/calls.mjs.map +0 -1
  776. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs +0 -39
  777. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs.map +0 -1
  778. package/esm/node_modules/openai/resources/realtime/realtime.mjs +0 -18
  779. package/esm/node_modules/openai/resources/realtime/realtime.mjs.map +0 -1
  780. package/esm/node_modules/openai/resources/responses/input-items.mjs +0 -31
  781. package/esm/node_modules/openai/resources/responses/input-items.mjs.map +0 -1
  782. package/esm/node_modules/openai/resources/responses/input-tokens.mjs +0 -27
  783. package/esm/node_modules/openai/resources/responses/input-tokens.mjs.map +0 -1
  784. package/esm/node_modules/openai/resources/responses/responses.mjs +0 -110
  785. package/esm/node_modules/openai/resources/responses/responses.mjs.map +0 -1
  786. package/esm/node_modules/openai/resources/skills/content.mjs +0 -22
  787. package/esm/node_modules/openai/resources/skills/content.mjs.map +0 -1
  788. package/esm/node_modules/openai/resources/skills/skills.mjs +0 -69
  789. package/esm/node_modules/openai/resources/skills/skills.mjs.map +0 -1
  790. package/esm/node_modules/openai/resources/skills/versions/content.mjs +0 -23
  791. package/esm/node_modules/openai/resources/skills/versions/content.mjs.map +0 -1
  792. package/esm/node_modules/openai/resources/skills/versions/versions.mjs +0 -58
  793. package/esm/node_modules/openai/resources/skills/versions/versions.mjs.map +0 -1
  794. package/esm/node_modules/openai/resources/uploads/parts.mjs +0 -34
  795. package/esm/node_modules/openai/resources/uploads/parts.mjs.map +0 -1
  796. package/esm/node_modules/openai/resources/uploads/uploads.mjs +0 -84
  797. package/esm/node_modules/openai/resources/uploads/uploads.mjs.map +0 -1
  798. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs +0 -126
  799. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs.map +0 -1
  800. package/esm/node_modules/openai/resources/vector-stores/files.mjs +0 -147
  801. package/esm/node_modules/openai/resources/vector-stores/files.mjs.map +0 -1
  802. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs +0 -87
  803. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs.map +0 -1
  804. package/esm/node_modules/openai/resources/videos.mjs +0 -115
  805. package/esm/node_modules/openai/resources/videos.mjs.map +0 -1
  806. package/esm/node_modules/openai/resources/webhooks/index.mjs +0 -3
  807. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs +0 -69
  808. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs.map +0 -1
  809. package/esm/node_modules/openai/resources/webhooks.mjs +0 -4
  810. package/esm/node_modules/openai/streaming.mjs +0 -3
  811. package/esm/node_modules/openai/version.mjs +0 -6
  812. package/esm/node_modules/openai/version.mjs.map +0 -1
@@ -1,363 +0,0 @@
1
- import { AIError } from "../errors/ai-error.mjs";
2
- import { WorkflowError } from "../errors/workflow-error.mjs";
3
- import { MaxStepsExceededError } from "../errors/max-steps-exceeded-error.mjs";
4
- import { RoutingError } from "../errors/routing-error.mjs";
5
- import { SchemaValidationError } from "../errors/schema-validation-error.mjs";
6
- import { WorkflowCancelledError } from "../errors/workflow-cancelled-error.mjs";
7
- import "../errors/index.mjs";
8
- import { stampReportLineage } from "../utils/stamp-report-lineage.mjs";
9
- import "../utils/index.mjs";
10
- import { createCancelledError } from "./cancellation.mjs";
11
- import { cloneState, deepFreeze } from "./state.mjs";
12
- import { executeStep, finalizeSnapshot, toAIError } from "./step-runner.mjs";
13
- import { mapNextStep, nextDeclaredStep, resolveNextStep } from "./router.mjs";
14
- import { runScopedEmitter } from "./run-scoped-emitter.mjs";
15
- import { loadSnapshotForResume, persistSnapshot } from "./snapshot.mjs";
16
- import { log } from "@warlock.js/logger";
17
-
18
- //#region ../@warlock.js/ai/src/workflow/engine.ts
19
- const DEFAULT_MAX_STEPS = 100;
20
- const DEFAULT_LOOP_WARN = 5;
21
- const LOG_MODULE_BASE = "ai.workflow";
22
- /**
23
- * Main workflow driver. Walks the declared steps, handling routing,
24
- * cancellation, retries, parallel execution, and snapshot
25
- * persistence. Delegates the step lifecycle to `step-runner.ts`,
26
- * routing to `router.ts`, persistence to `snapshot.ts`. Never throws
27
- * — every failure funnels into `result.error`.
28
- */
29
- async function runWorkflow(params) {
30
- const { definition, signature, input, runId, signal } = params;
31
- const emitter = runScopedEmitter(params.emitter, {
32
- runId,
33
- rootRunId: runId
34
- });
35
- const context = Object.freeze(params.context ?? {});
36
- const maxSteps = definition.maxSteps ?? DEFAULT_MAX_STEPS;
37
- const loopWarnAfter = definition.loopWarnAfter ?? DEFAULT_LOOP_WARN;
38
- const logger = log;
39
- const logModule = `${LOG_MODULE_BASE}.${definition.name}`;
40
- const stepByName = /* @__PURE__ */ new Map();
41
- for (const s of definition.steps) stepByName.set(s.name, s);
42
- const state = params.resumeFrom ? { ...params.resumeFrom.state } : {};
43
- const steps = params.resumeFrom ? { ...params.resumeFrom.steps } : {};
44
- const enteredCount = /* @__PURE__ */ new Map();
45
- const usage = {
46
- input: 0,
47
- output: 0,
48
- total: 0
49
- };
50
- const startedAt = params.resumeFrom?.startedAt ?? (/* @__PURE__ */ new Date()).toISOString();
51
- const startedAtDate = new Date(startedAt);
52
- const runStartPerf = performance.now();
53
- let error;
54
- let status = "completed";
55
- let cancelledAt;
56
- let lastGoto = null;
57
- let failedStepName;
58
- const buildContext = (current) => ({
59
- input,
60
- context,
61
- steps,
62
- state: current?.state ?? state,
63
- agentResult: current?.agentResult,
64
- runId,
65
- signal,
66
- startedAt: startedAtDate
67
- });
68
- emitter.emit("workflow.starting", {
69
- workflowName: definition.name,
70
- input
71
- }, params.executionHandlers);
72
- logger.info(logModule, "starting", "workflow starting", { runId });
73
- let currentName = resolveInitialStep(definition, params.resumeFrom);
74
- let stepCount = 0;
75
- try {
76
- while (currentName !== null) {
77
- if (signal?.aborted) throw createCancelledError(signal);
78
- stepCount += 1;
79
- if (stepCount > maxSteps) throw new MaxStepsExceededError(`workflow "${definition.name}" exceeded maxSteps=${maxSteps}`, { maxSteps });
80
- const entered = (enteredCount.get(currentName) ?? 0) + 1;
81
- enteredCount.set(currentName, entered);
82
- if (entered === loopWarnAfter) {
83
- emitter.emit("workflow.loop.warning", {
84
- step: currentName,
85
- enteredCount: entered,
86
- lastGoto
87
- }, params.executionHandlers);
88
- logger.warn(logModule, "loop.warning", "loop warning", {
89
- step: currentName,
90
- enteredCount: entered
91
- });
92
- }
93
- const step = stepByName.get(currentName);
94
- if (!step) throw new RoutingError(`workflow "${definition.name}": unknown step "${currentName}"`, { stepName: currentName });
95
- const snapshot = await executeStep({
96
- step,
97
- state,
98
- emitter,
99
- executionHandlers: params.executionHandlers,
100
- logger,
101
- logModule,
102
- signal,
103
- buildContext,
104
- usage,
105
- workflowDefaultRetry: definition.defaultRetry
106
- });
107
- Object.assign(state, snapshot.state);
108
- steps[step.name] = finalizeSnapshot(snapshot);
109
- if (snapshot.steps) for (const [childName, childSnap] of Object.entries(snapshot.steps)) steps[childName] = childSnap;
110
- if (snapshot.status === "failed" && snapshot.error) {
111
- const failureRoute = await resolveFailureRoute({
112
- step,
113
- definition,
114
- error: snapshot.error,
115
- ctx: buildContext({
116
- state,
117
- agentResult: snapshot.executionResult
118
- })
119
- });
120
- if (failureRoute === void 0) {
121
- const persistOutcome = await persistSnapshot({
122
- definition,
123
- signature,
124
- runId,
125
- startedAt,
126
- input,
127
- state,
128
- steps,
129
- next: step.name,
130
- status: "running"
131
- });
132
- if (!persistOutcome.ok) {
133
- const persistErr = toAIError(persistOutcome.error);
134
- emitter.emit("workflow.error", { error: persistErr }, params.executionHandlers);
135
- logger.error(logModule, "persist.failed", "snapshot persist failed", {
136
- step: step.name,
137
- code: persistErr.code,
138
- message: persistErr.message
139
- });
140
- }
141
- failedStepName = step.name;
142
- throw snapshot.error;
143
- }
144
- const failureNext = failureRoute === "end" ? null : failureRoute;
145
- if (failureNext !== null && !stepByName.has(failureNext)) throw new RoutingError(`workflow "${definition.name}": step "${step.name}" onFailure routed to unknown target "${failureNext}"`, {
146
- stepName: step.name,
147
- targetName: failureNext
148
- });
149
- const failurePersist = await persistSnapshot({
150
- definition,
151
- signature,
152
- runId,
153
- startedAt,
154
- input,
155
- state,
156
- steps,
157
- next: failureNext,
158
- status: "running"
159
- });
160
- if (!failurePersist.ok) {
161
- const persistErr = toAIError(failurePersist.error);
162
- emitter.emit("workflow.error", { error: persistErr }, params.executionHandlers);
163
- logger.error(logModule, "persist.failed", "snapshot persist failed", {
164
- step: step.name,
165
- code: persistErr.code,
166
- message: persistErr.message
167
- });
168
- }
169
- if (signal?.aborted) throw createCancelledError(signal);
170
- if (failureRoute === "end") {
171
- currentName = null;
172
- break;
173
- }
174
- lastGoto = failureRoute;
175
- currentName = failureRoute;
176
- continue;
177
- }
178
- const resolved = await resolveNextStep({
179
- step,
180
- definition,
181
- ctx: buildContext({
182
- state,
183
- agentResult: snapshot.executionResult
184
- })
185
- });
186
- const nextName = resolved === "end" ? null : typeof resolved === "string" ? resolved : nextDeclaredStep(definition, step.name);
187
- const outcome = await persistSnapshot({
188
- definition,
189
- signature,
190
- runId,
191
- startedAt,
192
- input,
193
- state,
194
- steps,
195
- next: nextName,
196
- status: "running"
197
- });
198
- if (!outcome.ok) {
199
- const persistErr = toAIError(outcome.error);
200
- emitter.emit("workflow.error", { error: persistErr }, params.executionHandlers);
201
- logger.error(logModule, "persist.failed", "snapshot persist failed", {
202
- step: step.name,
203
- code: persistErr.code,
204
- message: persistErr.message
205
- });
206
- }
207
- if (signal?.aborted) throw createCancelledError(signal);
208
- if (resolved === "end") {
209
- currentName = null;
210
- break;
211
- }
212
- if (typeof resolved === "string") {
213
- if (!stepByName.has(resolved)) throw new RoutingError(`workflow "${definition.name}": step "${step.name}" goto unknown target "${resolved}"`, {
214
- stepName: step.name,
215
- targetName: resolved
216
- });
217
- lastGoto = resolved;
218
- currentName = resolved;
219
- continue;
220
- }
221
- currentName = nextName;
222
- lastGoto = currentName;
223
- }
224
- } catch (err) {
225
- if (err instanceof WorkflowCancelledError) {
226
- status = "cancelled";
227
- cancelledAt = err.cancelledAt;
228
- error = err;
229
- } else if (err instanceof AIError) {
230
- status = "failed";
231
- error = err;
232
- } else {
233
- status = "failed";
234
- error = new WorkflowError(err instanceof Error ? err.message : String(err), { cause: err });
235
- }
236
- }
237
- const endedAt = (/* @__PURE__ */ new Date()).toISOString();
238
- const duration = performance.now() - runStartPerf;
239
- let data;
240
- if (status === "completed" && definition.output) try {
241
- const extracted = await definition.output.extract(buildContext({ state }));
242
- data = await validateWorkflowOutput(definition.output.schema, extracted);
243
- } catch (err) {
244
- status = "failed";
245
- error = err instanceof AIError ? err : new WorkflowError(err instanceof Error ? err.message : String(err), { cause: err });
246
- }
247
- const children = [];
248
- for (const stepName in steps) {
249
- const snap = steps[stepName];
250
- if (snap.agentReport) children.push(snap.agentReport);
251
- }
252
- const report = {
253
- runId,
254
- rootRunId: runId,
255
- name: definition.name,
256
- version: definition.version,
257
- type: "workflow",
258
- workflowName: definition.name,
259
- signature,
260
- status,
261
- ...error ? { error } : {},
262
- startedAt,
263
- endedAt,
264
- duration,
265
- cancelledAt,
266
- usage,
267
- children,
268
- steps,
269
- state: deepFreeze(cloneState(state))
270
- };
271
- stampReportLineage(report, {
272
- rootRunId: runId,
273
- sessionId: params.sessionId
274
- });
275
- const finalOutcome = await persistSnapshot({
276
- definition,
277
- signature,
278
- runId,
279
- startedAt,
280
- input,
281
- state,
282
- steps,
283
- next: status === "failed" ? failedStepName ?? null : null,
284
- status
285
- });
286
- if (!finalOutcome.ok) {
287
- const persistErr = toAIError(finalOutcome.error);
288
- emitter.emit("workflow.error", { error: persistErr }, params.executionHandlers);
289
- logger.error(logModule, "persist.failed", "final snapshot persist failed", {
290
- code: persistErr.code,
291
- message: persistErr.message
292
- });
293
- }
294
- const result = {
295
- type: "workflow",
296
- data,
297
- report,
298
- usage,
299
- error
300
- };
301
- if (status === "cancelled") {
302
- emitter.emit("workflow.cancelled", {
303
- cancelledAt: cancelledAt ?? endedAt,
304
- reason: error?.reason ?? ""
305
- }, params.executionHandlers);
306
- logger.warn(logModule, "cancelled", "workflow cancelled", { runId });
307
- }
308
- if (status === "failed" && error) {
309
- emitter.emit("workflow.error", { error }, params.executionHandlers);
310
- logger.error(logModule, "error", "workflow failed", {
311
- runId,
312
- code: error.code,
313
- message: error.message
314
- });
315
- }
316
- emitter.emit("workflow.completed", { result }, params.executionHandlers);
317
- logger.info(logModule, "completed", "workflow completed", {
318
- runId,
319
- status,
320
- duration
321
- });
322
- return result;
323
- }
324
- /**
325
- * Run a failed step's `onFailure` hook (if present) and translate its
326
- * result into a route. Returns `undefined` when the workflow should
327
- * halt with the original error; `"end"` for clean termination; or a
328
- * step name to redirect to. A throw inside `onFailure` is wrapped in
329
- * `RoutingError` — routing is authoritative, never retried.
330
- */
331
- async function resolveFailureRoute(params) {
332
- const { step, definition, error, ctx } = params;
333
- if (!step.onFailure) return void 0;
334
- let outcome;
335
- try {
336
- outcome = await step.onFailure(ctx, error);
337
- } catch (err) {
338
- throw new RoutingError(`workflow "${definition.name}": step "${step.name}" onFailure threw`, {
339
- stepName: step.name,
340
- cause: err
341
- });
342
- }
343
- return mapNextStep(outcome);
344
- }
345
- function resolveInitialStep(definition, resumeFrom) {
346
- if (!resumeFrom) return definition.steps[0]?.name ?? null;
347
- if (resumeFrom.next && definition.steps.some((s) => s.name === resumeFrom.next)) return resumeFrom.next;
348
- for (const step of definition.steps) {
349
- const snap = resumeFrom.steps[step.name];
350
- if (!snap || snap.status !== "completed" && snap.status !== "skipped") return step.name;
351
- }
352
- return null;
353
- }
354
- async function validateWorkflowOutput(schema, value) {
355
- if (!schema) return value;
356
- const result = await schema["~standard"].validate(value);
357
- if (result && typeof result === "object" && "issues" in result && result.issues) throw new SchemaValidationError("workflow output failed schema validation", { issues: result.issues });
358
- return result.value;
359
- }
360
-
361
- //#endregion
362
- export { runWorkflow };
363
- //# sourceMappingURL=engine.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/workflow/engine.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\nimport type { BaseReport } from \"../contracts/result/base-report.type\";\nimport type { StepSnapshot } from \"../contracts/result/step-result.type\";\nimport type { Usage } from \"../contracts/result/usage.type\";\nimport type {\n WorkflowReport,\n WorkflowResult,\n} from \"../contracts/result/workflow-result.type\";\nimport type { StepDefinition } from \"../contracts/workflow/step.contract\";\nimport type { WorkflowContext } from \"../contracts/workflow/workflow-context.type\";\nimport type { WorkflowSnapshot } from \"../contracts/workflow/workflow-snapshot.type\";\nimport type {\n WorkflowDefinition,\n WorkflowEventHandlers,\n} from \"../contracts/workflow/workflow.contract\";\nimport {\n AIError,\n MaxStepsExceededError,\n RoutingError,\n SchemaValidationError,\n WorkflowCancelledError,\n WorkflowError,\n} from \"../errors\";\nimport { stampReportLineage } from \"../utils\";\nimport { createCancelledError } from \"./cancellation\";\nimport type { WorkflowEmitter } from \"./emitter\";\nimport { mapNextStep, nextDeclaredStep, resolveNextStep } from \"./router\";\nimport { runScopedEmitter } from \"./run-scoped-emitter\";\nimport { persistSnapshot } from \"./snapshot\";\nimport { cloneState, deepFreeze } from \"./state\";\nimport { executeStep, finalizeSnapshot, toAIError } from \"./step-runner\";\n\nexport { loadSnapshotForResume } from \"./snapshot\";\n\nconst DEFAULT_MAX_STEPS = 100;\nconst DEFAULT_LOOP_WARN = 5;\nconst LOG_MODULE_BASE = \"ai.workflow\";\n\ntype EngineParams<TOutput> = {\n definition: WorkflowDefinition<any, TOutput, any, any>;\n signature: string;\n emitter: WorkflowEmitter;\n input: unknown;\n /**\n * Request-scoped envelope, frozen and exposed as `ctx.context` to\n * every step. Never persisted in snapshots; resume callers supply\n * it fresh via `WorkflowResumeOptions.context`. Defaults to a\n * frozen empty object when caller omits it.\n */\n context?: unknown;\n runId: string;\n signal?: AbortSignal;\n executionHandlers?: WorkflowEventHandlers;\n resumeFrom?: WorkflowSnapshot;\n /**\n * Opaque session identifier propagated onto every report node this\n * run produces — including agent reports from child steps. Threaded\n * from `WorkflowRunOptions.sessionId`. Omitted leaves the field\n * undefined throughout the tree.\n */\n sessionId?: string;\n};\n\n/**\n * Main workflow driver. Walks the declared steps, handling routing,\n * cancellation, retries, parallel execution, and snapshot\n * persistence. Delegates the step lifecycle to `step-runner.ts`,\n * routing to `router.ts`, persistence to `snapshot.ts`. Never throws\n * — every failure funnels into `result.error`.\n */\nexport async function runWorkflow<TOutput>(\n params: EngineParams<TOutput>,\n): Promise<WorkflowResult<TOutput>> {\n const { definition, signature, input, runId, signal } = params;\n // Bind the factory-scoped emitter to THIS run's identity. Every\n // `emitter.emit(...)` below — and the one threaded into\n // `executeStep` — now stamps `runId` / `rootRunId` automatically.\n const emitter = runScopedEmitter(params.emitter, {\n runId,\n rootRunId: runId,\n });\n\n // Freeze the envelope once at run start. Default to `{}` so step\n // code can always read `ctx.context` without an undefined guard.\n const context = Object.freeze(params.context ?? {});\n const maxSteps = definition.maxSteps ?? DEFAULT_MAX_STEPS;\n const loopWarnAfter = definition.loopWarnAfter ?? DEFAULT_LOOP_WARN;\n\n const logger = log;\n const logModule = `${LOG_MODULE_BASE}.${definition.name}`;\n\n const stepByName = new Map<string, StepDefinition>();\n for (const s of definition.steps) stepByName.set(s.name, s);\n\n const state: Record<string, unknown> = params.resumeFrom\n ? { ...params.resumeFrom.state }\n : {};\n const steps: Record<string, StepSnapshot> = params.resumeFrom\n ? { ...params.resumeFrom.steps }\n : {};\n const enteredCount = new Map<string, number>();\n const usage: Usage = { input: 0, output: 0, total: 0 };\n\n const startedAt = params.resumeFrom?.startedAt ?? new Date().toISOString();\n const startedAtDate = new Date(startedAt);\n const runStartPerf = performance.now();\n\n let error: AIError | undefined;\n let status: \"completed\" | \"failed\" | \"cancelled\" = \"completed\";\n let cancelledAt: string | undefined;\n let lastGoto: string | null = null;\n // Captured when a step throws after retries exhaust (and `onFailure`\n // didn't recover). Used to point the final snapshot's `next` at the\n // failed step so `resume()` re-runs it after the cause is fixed.\n let failedStepName: string | undefined;\n\n const buildContext = (current?: {\n state: Record<string, unknown>;\n agentResult?: unknown;\n }): WorkflowContext => ({\n input,\n context,\n steps: steps as Readonly<Record<string, StepSnapshot>>,\n state: current?.state ?? state,\n agentResult: current?.agentResult as WorkflowContext[\"agentResult\"],\n runId,\n signal,\n startedAt: startedAtDate,\n });\n\n emitter.emit(\n \"workflow.starting\",\n { workflowName: definition.name, input },\n params.executionHandlers,\n );\n logger.info(logModule, \"starting\", \"workflow starting\", { runId });\n\n let currentName: string | null = resolveInitialStep(\n definition,\n params.resumeFrom,\n );\n let stepCount = 0;\n\n try {\n while (currentName !== null) {\n if (signal?.aborted) throw createCancelledError(signal);\n\n stepCount += 1;\n if (stepCount > maxSteps) {\n throw new MaxStepsExceededError(\n `workflow \"${definition.name}\" exceeded maxSteps=${maxSteps}`,\n { maxSteps },\n );\n }\n\n const entered = (enteredCount.get(currentName) ?? 0) + 1;\n enteredCount.set(currentName, entered);\n if (entered === loopWarnAfter) {\n emitter.emit(\n \"workflow.loop.warning\",\n { step: currentName, enteredCount: entered, lastGoto },\n params.executionHandlers,\n );\n logger.warn(logModule, \"loop.warning\", \"loop warning\", {\n step: currentName,\n enteredCount: entered,\n });\n }\n\n const step = stepByName.get(currentName);\n if (!step) {\n throw new RoutingError(\n `workflow \"${definition.name}\": unknown step \"${currentName}\"`,\n { stepName: currentName },\n );\n }\n\n const snapshot = await executeStep({\n step,\n state,\n emitter,\n executionHandlers: params.executionHandlers,\n logger,\n logModule,\n signal,\n buildContext,\n usage,\n workflowDefaultRetry: definition.defaultRetry,\n });\n\n Object.assign(state, snapshot.state);\n steps[step.name] = finalizeSnapshot(snapshot);\n // Parallel children — flat-path addressing alongside nested.\n if (snapshot.steps) {\n for (const [childName, childSnap] of Object.entries(snapshot.steps)) {\n steps[childName] = childSnap;\n }\n }\n\n // Failure path: retries exhausted. Give `onFailure` a chance to\n // recover; otherwise checkpoint at the failed step (so resume\n // re-runs it) and throw — workflow halts.\n if (snapshot.status === \"failed\" && snapshot.error) {\n const failureRoute = await resolveFailureRoute({\n step,\n definition,\n error: snapshot.error,\n ctx: buildContext({ state, agentResult: snapshot.executionResult }),\n });\n\n if (failureRoute === undefined) {\n // No recovery — persist with `next: step.name` so resume\n // re-runs this step after the user fixes the cause.\n const persistOutcome = await persistSnapshot({\n definition,\n signature,\n runId,\n startedAt,\n input,\n state,\n steps,\n next: step.name,\n status: \"running\",\n });\n if (!persistOutcome.ok) {\n const persistErr = toAIError(persistOutcome.error);\n emitter.emit(\n \"workflow.error\",\n { error: persistErr },\n params.executionHandlers,\n );\n logger.error(\n logModule,\n \"persist.failed\",\n \"snapshot persist failed\",\n {\n step: step.name,\n code: persistErr.code,\n message: persistErr.message,\n },\n );\n }\n failedStepName = step.name;\n throw snapshot.error;\n }\n\n // onFailure routed — workflow continues. Checkpoint at the\n // routed target (or `null` for `end`) so resume picks up there.\n const failureNext = failureRoute === \"end\" ? null : failureRoute;\n if (failureNext !== null && !stepByName.has(failureNext)) {\n throw new RoutingError(\n `workflow \"${definition.name}\": step \"${step.name}\" onFailure routed to unknown target \"${failureNext}\"`,\n { stepName: step.name, targetName: failureNext },\n );\n }\n\n const failurePersist = await persistSnapshot({\n definition,\n signature,\n runId,\n startedAt,\n input,\n state,\n steps,\n next: failureNext,\n status: \"running\",\n });\n if (!failurePersist.ok) {\n const persistErr = toAIError(failurePersist.error);\n emitter.emit(\n \"workflow.error\",\n { error: persistErr },\n params.executionHandlers,\n );\n logger.error(\n logModule,\n \"persist.failed\",\n \"snapshot persist failed\",\n {\n step: step.name,\n code: persistErr.code,\n message: persistErr.message,\n },\n );\n }\n\n if (signal?.aborted) throw createCancelledError(signal);\n\n if (failureRoute === \"end\") {\n currentName = null;\n break;\n }\n\n lastGoto = failureRoute;\n currentName = failureRoute;\n continue;\n }\n\n // Resolve next step for checkpoint accuracy BEFORE routing errors\n // bubble — so the snapshot records where resume should resume from.\n const resolved = await resolveNextStep({\n step,\n definition,\n ctx: buildContext({ state, agentResult: snapshot.executionResult }),\n });\n\n const nextName =\n resolved === \"end\"\n ? null\n : typeof resolved === \"string\"\n ? resolved\n : nextDeclaredStep(definition, step.name);\n\n // Checkpoint after every step with the resolved `next`.\n const outcome = await persistSnapshot({\n definition,\n signature,\n runId,\n startedAt,\n input,\n state,\n steps,\n next: nextName,\n status: \"running\",\n });\n if (!outcome.ok) {\n const persistErr = toAIError(outcome.error);\n emitter.emit(\n \"workflow.error\",\n { error: persistErr },\n params.executionHandlers,\n );\n logger.error(logModule, \"persist.failed\", \"snapshot persist failed\", {\n step: step.name,\n code: persistErr.code,\n message: persistErr.message,\n });\n }\n\n if (signal?.aborted) throw createCancelledError(signal);\n\n if (resolved === \"end\") {\n currentName = null;\n break;\n }\n\n if (typeof resolved === \"string\") {\n if (!stepByName.has(resolved)) {\n throw new RoutingError(\n `workflow \"${definition.name}\": step \"${step.name}\" goto unknown target \"${resolved}\"`,\n { stepName: step.name, targetName: resolved },\n );\n }\n lastGoto = resolved;\n currentName = resolved;\n continue;\n }\n\n currentName = nextName;\n lastGoto = currentName;\n }\n } catch (err) {\n if (err instanceof WorkflowCancelledError) {\n status = \"cancelled\";\n cancelledAt = err.cancelledAt;\n error = err;\n } else if (err instanceof AIError) {\n status = \"failed\";\n error = err;\n } else {\n status = \"failed\";\n error = new WorkflowError(\n err instanceof Error ? err.message : String(err),\n { cause: err },\n );\n }\n }\n\n // Note: a `failed` step always throws (caught above) unless its\n // `onFailure` recovered the run. A `completed` workflow may still\n // contain `failed` step snapshots — those are the recovered cases\n // and are intentionally preserved for forensic trace.\n\n const endedAt = new Date().toISOString();\n const duration = performance.now() - runStartPerf;\n\n let data: TOutput | undefined;\n if (status === \"completed\" && definition.output) {\n try {\n const extracted = await definition.output.extract(\n buildContext({ state }),\n );\n data = (await validateWorkflowOutput(\n definition.output.schema,\n extracted,\n )) as TOutput;\n } catch (err) {\n status = \"failed\";\n error =\n err instanceof AIError\n ? err\n : new WorkflowError(\n err instanceof Error ? err.message : String(err),\n { cause: err },\n );\n }\n }\n\n // Collect child executable reports from every step that ran one.\n // Today the step runner surfaces agent reports (the only executable\n // kind steps can invoke natively via `step.agent`); custom `run`\n // callbacks that call tools/workflows/supervisors can't be observed\n // here without a richer step-runner API — that's a v1.x follow-up\n // (see backlog: \"step.run executables surface in workflow tree\").\n const children: BaseReport[] = [];\n for (const stepName in steps) {\n const snap = steps[stepName];\n if (snap.agentReport) {\n children.push(snap.agentReport);\n }\n }\n\n const report: WorkflowReport = {\n runId,\n rootRunId: runId,\n name: definition.name,\n version: definition.version,\n type: \"workflow\",\n workflowName: definition.name,\n signature,\n status,\n // Stamp the terminal error onto the report so it travels with the tree\n // (observe path has no result envelope to fall back on). A failed `run`\n // step's cause lives in `steps[name].error`, but the workflow-level\n // error is what a consumer reads off the root span. Absent on success.\n ...(error ? { error } : {}),\n startedAt,\n endedAt,\n duration,\n cancelledAt,\n usage,\n children,\n steps,\n state: deepFreeze(cloneState(state)),\n };\n\n // Stamp lineage on the assembled tree exactly once. Walker rewrites\n // any inner self-roots that nested agent reports brought in (each\n // agent's `buildResult` set its own runId as root), propagates\n // sessionId, and writes `reportSchemaVersion` on the root.\n stampReportLineage(report, {\n rootRunId: runId,\n sessionId: params.sessionId,\n });\n\n // On a failed run with a captured `failedStepName`, point `next` at\n // the failed step so `resume()` re-runs it. The pre-throw checkpoint\n // already wrote this value, but the final snapshot would otherwise\n // overwrite it with `null` and force resume to fall back to the\n // first non-completed step (which is the same step in practice, but\n // less informative for tooling reading the snapshot).\n const finalNext = status === \"failed\" ? failedStepName ?? null : null;\n\n const finalOutcome = await persistSnapshot({\n definition,\n signature,\n runId,\n startedAt,\n input,\n state,\n steps,\n next: finalNext,\n status,\n });\n if (!finalOutcome.ok) {\n const persistErr = toAIError(finalOutcome.error);\n emitter.emit(\n \"workflow.error\",\n { error: persistErr },\n params.executionHandlers,\n );\n logger.error(logModule, \"persist.failed\", \"final snapshot persist failed\", {\n code: persistErr.code,\n message: persistErr.message,\n });\n }\n\n const result: WorkflowResult<TOutput> = {\n type: \"workflow\",\n data,\n report,\n usage,\n error,\n };\n\n if (status === \"cancelled\") {\n emitter.emit(\n \"workflow.cancelled\",\n {\n cancelledAt: cancelledAt ?? endedAt,\n reason: (error as WorkflowCancelledError | undefined)?.reason ?? \"\",\n },\n params.executionHandlers,\n );\n logger.warn(logModule, \"cancelled\", \"workflow cancelled\", { runId });\n }\n\n if (status === \"failed\" && error) {\n emitter.emit(\"workflow.error\", { error }, params.executionHandlers);\n logger.error(logModule, \"error\", \"workflow failed\", {\n runId,\n code: error.code,\n message: error.message,\n });\n }\n\n emitter.emit(\n \"workflow.completed\",\n { result: result as WorkflowResult<unknown> },\n params.executionHandlers,\n );\n logger.info(logModule, \"completed\", \"workflow completed\", {\n runId,\n status,\n duration,\n });\n\n return result;\n}\n\n/**\n * Run a failed step's `onFailure` hook (if present) and translate its\n * result into a route. Returns `undefined` when the workflow should\n * halt with the original error; `\"end\"` for clean termination; or a\n * step name to redirect to. A throw inside `onFailure` is wrapped in\n * `RoutingError` — routing is authoritative, never retried.\n */\nasync function resolveFailureRoute<T>(params: {\n step: StepDefinition;\n definition: WorkflowDefinition<any, T, any, any>;\n error: AIError;\n ctx: WorkflowContext;\n}): Promise<\"end\" | string | undefined> {\n const { step, definition, error, ctx } = params;\n if (!step.onFailure) return undefined;\n\n let outcome;\n try {\n outcome = await step.onFailure(ctx, error);\n } catch (err) {\n throw new RoutingError(\n `workflow \"${definition.name}\": step \"${step.name}\" onFailure threw`,\n { stepName: step.name, cause: err },\n );\n }\n return mapNextStep(outcome);\n}\n\nfunction resolveInitialStep<T>(\n definition: WorkflowDefinition<any, T, any, any>,\n resumeFrom: WorkflowSnapshot | undefined,\n): string | null {\n if (!resumeFrom) return definition.steps[0]?.name ?? null;\n\n // Prefer the explicitly-recorded `next` (now populated on every\n // checkpoint). Falls back to first step whose snapshot is missing\n // or not in a terminal-success state — covers older snapshots\n // written before `next` was wired.\n if (\n resumeFrom.next &&\n definition.steps.some(s => s.name === resumeFrom.next)\n ) {\n return resumeFrom.next;\n }\n\n for (const step of definition.steps) {\n const snap = resumeFrom.steps[step.name];\n if (!snap || (snap.status !== \"completed\" && snap.status !== \"skipped\")) {\n return step.name;\n }\n }\n\n return null;\n}\n\nasync function validateWorkflowOutput(\n schema: unknown,\n value: unknown,\n): Promise<unknown> {\n if (!schema) return value;\n\n const result = await (\n schema as {\n \"~standard\": { validate: (v: unknown) => Promise<unknown> | unknown };\n }\n )[\"~standard\"].validate(value);\n\n if (\n result &&\n typeof result === \"object\" &&\n \"issues\" in result &&\n (result as { issues: unknown }).issues\n ) {\n throw new SchemaValidationError(\n \"workflow output failed schema validation\",\n {\n issues: (result as { issues: any }).issues,\n },\n );\n }\n\n return (result as { value: unknown }).value;\n}\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { step } from "./step.mjs";
2
- import { computeSignature } from "./signature.mjs";
3
- import { workflow } from "./workflow.mjs";
4
-
5
- export { };
@@ -1,32 +0,0 @@
1
- //#region ../@warlock.js/ai/src/workflow/retry.ts
2
- const DEFAULT_BACKOFF_CAP_MS = 3e4;
3
- function resolveBackoff(attempt, backoff) {
4
- const value = (() => {
5
- switch (backoff) {
6
- case "none": return 0;
7
- case "linear": return attempt * 500;
8
- case "exponential":
9
- case void 0: return 500 * 2 ** (attempt - 1);
10
- default: return backoff(attempt);
11
- }
12
- })();
13
- return Math.max(0, Math.min(value, DEFAULT_BACKOFF_CAP_MS));
14
- }
15
- function isAbortError(error) {
16
- if (!error || typeof error !== "object") return false;
17
- return error.name === "AbortError";
18
- }
19
- /**
20
- * Resolve the effective retry config for a step, merging per-step and
21
- * workflow-level defaults. `retry: false` disables retries entirely.
22
- */
23
- function resolveRetryConfig(step, workflowDefault) {
24
- if (step?.retry === false) return { attempts: 1 };
25
- if (step?.retry) return step.retry;
26
- if (workflowDefault === false || workflowDefault === void 0) return { attempts: 1 };
27
- return workflowDefault;
28
- }
29
-
30
- //#endregion
31
- export { isAbortError, resolveBackoff, resolveRetryConfig };
32
- //# sourceMappingURL=retry.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/workflow/retry.ts"],"sourcesContent":["import type {\n RetryBackoff,\n RetryConfig,\n} from \"../contracts/workflow/retry-config.type\";\n\nexport const DEFAULT_BACKOFF_CAP_MS = 30_000;\n\nexport function resolveBackoff(\n attempt: number,\n backoff: RetryBackoff | undefined,\n): number {\n const value = (() => {\n switch (backoff) {\n case \"none\":\n return 0;\n case \"linear\":\n return attempt * 500;\n case \"exponential\":\n case undefined:\n return 500 * 2 ** (attempt - 1);\n default:\n return backoff(attempt);\n }\n })();\n\n return Math.max(0, Math.min(value, DEFAULT_BACKOFF_CAP_MS));\n}\n\nexport function isAbortError(error: unknown): boolean {\n if (!error || typeof error !== \"object\") return false;\n const name = (error as { name?: unknown }).name;\n return name === \"AbortError\";\n}\n\n/**\n * Resolve the effective retry config for a step, merging per-step and\n * workflow-level defaults. `retry: false` disables retries entirely.\n */\nexport function resolveRetryConfig(\n step: { retry?: RetryConfig | false } | undefined,\n workflowDefault: RetryConfig | false | undefined,\n): RetryConfig {\n if (step?.retry === false) return { attempts: 1 };\n if (step?.retry) return step.retry;\n if (workflowDefault === false || workflowDefault === undefined) {\n return { attempts: 1 };\n }\n return workflowDefault;\n}\n"],"mappings":";AAKA,MAAa,yBAAyB;AAEtC,SAAgB,eACd,SACA,SACQ;CACR,MAAM,eAAe;EACnB,QAAQ,SAAR;GACE,KAAK,QACH,OAAO;GACT,KAAK,UACH,OAAO,UAAU;GACnB,KAAK;GACL,KAAK,QACH,OAAO,MAAM,MAAM,UAAU;GAC/B,SACE,OAAO,QAAQ,OAAO;EAC1B;CACF,EAAC,CAAE;CAEH,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,sBAAsB,CAAC;AAC5D;AAEA,SAAgB,aAAa,OAAyB;CACpD,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU,OAAO;CAEhD,OADc,MAA6B,SAC3B;AAClB;;;;;AAMA,SAAgB,mBACd,MACA,iBACa;CACb,IAAI,MAAM,UAAU,OAAO,OAAO,EAAE,UAAU,EAAE;CAChD,IAAI,MAAM,OAAO,OAAO,KAAK;CAC7B,IAAI,oBAAoB,SAAS,oBAAoB,QACnD,OAAO,EAAE,UAAU,EAAE;CAEvB,OAAO;AACT"}
@@ -1,56 +0,0 @@
1
- import { RoutingError } from "../errors/routing-error.mjs";
2
- import "../errors/index.mjs";
3
-
4
- //#region ../@warlock.js/ai/src/workflow/router.ts
5
- /**
6
- * Resolve the next step to run after `step` completes. Tries
7
- * step-level `nextStep` first, then workflow-level, then falls
8
- * through (returns `undefined`, engine picks the next declared step).
9
- *
10
- * Throws `RoutingError` when either callback throws — routing is
11
- * authoritative, so a broken router terminates the workflow instead
12
- * of being retried.
13
- */
14
- async function resolveNextStep(params) {
15
- const { step, definition, ctx } = params;
16
- if (step.nextStep) {
17
- let outcome;
18
- try {
19
- outcome = await step.nextStep(ctx);
20
- } catch (err) {
21
- throw new RoutingError(`workflow "${definition.name}": step "${step.name}" nextStep threw`, {
22
- stepName: step.name,
23
- cause: err
24
- });
25
- }
26
- const mapped = mapNextStep(outcome);
27
- if (mapped !== void 0) return mapped;
28
- }
29
- if (definition.nextStep) {
30
- let outcome;
31
- try {
32
- outcome = await definition.nextStep(step.name, ctx);
33
- } catch (err) {
34
- throw new RoutingError(`workflow "${definition.name}": workflow-level nextStep threw after "${step.name}"`, {
35
- stepName: step.name,
36
- cause: err
37
- });
38
- }
39
- const mapped = mapNextStep(outcome);
40
- if (mapped !== void 0) return mapped;
41
- }
42
- }
43
- function mapNextStep(outcome) {
44
- if (!outcome) return void 0;
45
- if ("end" in outcome && outcome.end === true) return "end";
46
- if ("goto" in outcome && typeof outcome.goto === "string") return outcome.goto;
47
- }
48
- function nextDeclaredStep(definition, currentName) {
49
- const idx = definition.steps.findIndex((s) => s.name === currentName);
50
- if (idx === -1) return null;
51
- return definition.steps[idx + 1]?.name ?? null;
52
- }
53
-
54
- //#endregion
55
- export { mapNextStep, nextDeclaredStep, resolveNextStep };
56
- //# sourceMappingURL=router.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/workflow/router.ts"],"sourcesContent":["import type { NextStepResult } from \"../contracts/workflow/next-step-result.type\";\nimport type { StepDefinition } from \"../contracts/workflow/step.contract\";\nimport type { WorkflowContext } from \"../contracts/workflow/workflow-context.type\";\nimport type { WorkflowDefinition } from \"../contracts/workflow/workflow.contract\";\nimport { RoutingError } from \"../errors\";\n\n/**\n * Resolve the next step to run after `step` completes. Tries\n * step-level `nextStep` first, then workflow-level, then falls\n * through (returns `undefined`, engine picks the next declared step).\n *\n * Throws `RoutingError` when either callback throws — routing is\n * authoritative, so a broken router terminates the workflow instead\n * of being retried.\n */\nexport async function resolveNextStep<T>(params: {\n step: StepDefinition;\n definition: WorkflowDefinition<any, T, any, any>;\n ctx: WorkflowContext;\n}): Promise<\"end\" | string | undefined> {\n const { step, definition, ctx } = params;\n\n if (step.nextStep) {\n let outcome: NextStepResult;\n try {\n outcome = await step.nextStep(ctx);\n } catch (err) {\n throw new RoutingError(\n `workflow \"${definition.name}\": step \"${step.name}\" nextStep threw`,\n { stepName: step.name, cause: err },\n );\n }\n const mapped = mapNextStep(outcome);\n if (mapped !== undefined) return mapped;\n }\n\n if (definition.nextStep) {\n let outcome: NextStepResult;\n try {\n outcome = await definition.nextStep(step.name, ctx);\n } catch (err) {\n throw new RoutingError(\n `workflow \"${definition.name}\": workflow-level nextStep threw after \"${step.name}\"`,\n { stepName: step.name, cause: err },\n );\n }\n const mapped = mapNextStep(outcome);\n if (mapped !== undefined) return mapped;\n }\n\n return undefined;\n}\n\nexport function mapNextStep(\n outcome: NextStepResult,\n): \"end\" | string | undefined {\n if (!outcome) return undefined;\n if (\"end\" in outcome && outcome.end === true) return \"end\";\n if (\"goto\" in outcome && typeof outcome.goto === \"string\")\n return outcome.goto;\n return undefined;\n}\n\nexport function nextDeclaredStep<T>(\n definition: WorkflowDefinition<any, T, any, any>,\n currentName: string,\n): string | null {\n const idx = definition.steps.findIndex(s => s.name === currentName);\n if (idx === -1) return null;\n return definition.steps[idx + 1]?.name ?? null;\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,eAAsB,gBAAmB,QAID;CACtC,MAAM,EAAE,MAAM,YAAY,QAAQ;CAElC,IAAI,KAAK,UAAU;EACjB,IAAI;EACJ,IAAI;GACF,UAAU,MAAM,KAAK,SAAS,GAAG;EACnC,SAAS,KAAK;GACZ,MAAM,IAAI,aACR,aAAa,WAAW,KAAK,WAAW,KAAK,KAAK,mBAClD;IAAE,UAAU,KAAK;IAAM,OAAO;GAAI,CACpC;EACF;EACA,MAAM,SAAS,YAAY,OAAO;EAClC,IAAI,WAAW,QAAW,OAAO;CACnC;CAEA,IAAI,WAAW,UAAU;EACvB,IAAI;EACJ,IAAI;GACF,UAAU,MAAM,WAAW,SAAS,KAAK,MAAM,GAAG;EACpD,SAAS,KAAK;GACZ,MAAM,IAAI,aACR,aAAa,WAAW,KAAK,0CAA0C,KAAK,KAAK,IACjF;IAAE,UAAU,KAAK;IAAM,OAAO;GAAI,CACpC;EACF;EACA,MAAM,SAAS,YAAY,OAAO;EAClC,IAAI,WAAW,QAAW,OAAO;CACnC;AAGF;AAEA,SAAgB,YACd,SAC4B;CAC5B,IAAI,CAAC,SAAS,OAAO;CACrB,IAAI,SAAS,WAAW,QAAQ,QAAQ,MAAM,OAAO;CACrD,IAAI,UAAU,WAAW,OAAO,QAAQ,SAAS,UAC/C,OAAO,QAAQ;AAEnB;AAEA,SAAgB,iBACd,YACA,aACe;CACf,MAAM,MAAM,WAAW,MAAM,WAAU,MAAK,EAAE,SAAS,WAAW;CAClE,IAAI,QAAQ,IAAI,OAAO;CACvB,OAAO,WAAW,MAAM,MAAM,EAAE,EAAE,QAAQ;AAC5C"}
@@ -1,32 +0,0 @@
1
- //#region ../@warlock.js/ai/src/workflow/run-scoped-emitter.ts
2
- /**
3
- * Bind a factory-scoped `WorkflowEmitter` to one run's identity.
4
- *
5
- * The engine and step-runner emit bare payloads through this sink;
6
- * it injects `runId` / `rootRunId` once and delegates to the real
7
- * three-tier emitter. This is the single place workflow run identity
8
- * is stamped — the alternative (editing every `emitter.emit` call
9
- * site) would be ~15 scattered edits and easy to miss one.
10
- *
11
- * `rootRunId === runId` for a standalone run; nested propagation
12
- * (a child workflow inheriting an outer run's root) lands in a
13
- * follow-up.
14
- *
15
- * @example
16
- * // Inside runWorkflow(), once per execution:
17
- * const emitter = runScopedEmitter(params.emitter, { runId, rootRunId: runId });
18
- * emitter.emit("workflow.starting", { workflowName, input }, executionHandlers);
19
- */
20
- function runScopedEmitter(emitter, identity) {
21
- return { emit(event, payload, executionHandlers) {
22
- const fullPayload = {
23
- ...payload,
24
- ...identity
25
- };
26
- emitter.emit(event, fullPayload, executionHandlers);
27
- } };
28
- }
29
-
30
- //#endregion
31
- export { runScopedEmitter };
32
- //# sourceMappingURL=run-scoped-emitter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-scoped-emitter.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/workflow/run-scoped-emitter.ts"],"sourcesContent":["import type { EventIdentity } from \"../contracts/events/event-identity.type\";\nimport type { WorkflowEventMap } from \"../contracts/events/event-map.type\";\nimport type { WorkflowEventHandlers } from \"../contracts/workflow/workflow.contract\";\nimport type { WorkflowEmitter, WorkflowEventSink } from \"./emitter\";\n\n/**\n * Bind a factory-scoped `WorkflowEmitter` to one run's identity.\n *\n * The engine and step-runner emit bare payloads through this sink;\n * it injects `runId` / `rootRunId` once and delegates to the real\n * three-tier emitter. This is the single place workflow run identity\n * is stamped — the alternative (editing every `emitter.emit` call\n * site) would be ~15 scattered edits and easy to miss one.\n *\n * `rootRunId === runId` for a standalone run; nested propagation\n * (a child workflow inheriting an outer run's root) lands in a\n * follow-up.\n *\n * @example\n * // Inside runWorkflow(), once per execution:\n * const emitter = runScopedEmitter(params.emitter, { runId, rootRunId: runId });\n * emitter.emit(\"workflow.starting\", { workflowName, input }, executionHandlers);\n */\nexport function runScopedEmitter(\n emitter: WorkflowEmitter,\n identity: EventIdentity,\n): WorkflowEventSink {\n return {\n emit(event, payload, executionHandlers?: WorkflowEventHandlers) {\n const fullPayload = {\n ...payload,\n ...identity,\n } as WorkflowEventMap[typeof event];\n\n emitter.emit(event, fullPayload, executionHandlers);\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,iBACd,SACA,UACmB;CACnB,OAAO,EACL,KAAK,OAAO,SAAS,mBAA2C;EAC9D,MAAM,cAAc;GAClB,GAAG;GACH,GAAG;EACL;EAEA,QAAQ,KAAK,OAAO,aAAa,iBAAiB;CACpD,EACF;AACF"}
@@ -1,34 +0,0 @@
1
- //#region ../@warlock.js/ai/src/workflow/signature.ts
2
- function stepFingerprint(step) {
3
- const tag = step.parallel ? "parallel" : step.agent ? "agent" : step.run ? "run" : "empty";
4
- const agentName = step.agent?.name;
5
- return {
6
- n: step.name,
7
- t: tag,
8
- a: agentName,
9
- c: step.parallel?.map((child) => stepFingerprint(child)) ?? null
10
- };
11
- }
12
- /**
13
- * FNV-1a 32-bit hash — deterministic, no crypto dependency.
14
- */
15
- function hash(input) {
16
- let h = 2166136261;
17
- for (let i = 0; i < input.length; i++) {
18
- h ^= input.charCodeAt(i);
19
- h = h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24)) >>> 0;
20
- }
21
- return h.toString(16).padStart(8, "0");
22
- }
23
- function computeSignature(definition) {
24
- const fingerprint = {
25
- n: definition.name,
26
- v: definition.version ?? null,
27
- s: definition.steps.map((step) => stepFingerprint(step))
28
- };
29
- return hash(JSON.stringify(fingerprint));
30
- }
31
-
32
- //#endregion
33
- export { computeSignature };
34
- //# sourceMappingURL=signature.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/workflow/signature.ts"],"sourcesContent":["import type { StepDefinition } from \"../contracts/workflow/step.contract\";\nimport type { WorkflowDefinition } from \"../contracts/workflow/workflow.contract\";\n\nfunction stepFingerprint(step: StepDefinition): unknown {\n const tag = step.parallel\n ? \"parallel\"\n : step.agent\n ? \"agent\"\n : step.run\n ? \"run\"\n : \"empty\";\n\n const agentName = step.agent?.name;\n\n return {\n n: step.name,\n t: tag,\n a: agentName,\n c: step.parallel?.map(child => stepFingerprint(child)) ?? null,\n };\n}\n\n/**\n * FNV-1a 32-bit hash — deterministic, no crypto dependency.\n */\nfunction hash(input: string): string {\n let h = 0x811c9dc5;\n\n for (let i = 0; i < input.length; i++) {\n h ^= input.charCodeAt(i);\n h = (h + ((h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24))) >>> 0;\n }\n\n return h.toString(16).padStart(8, \"0\");\n}\n\nexport function computeSignature<T>(definition: WorkflowDefinition<any, T, any, any>): string {\n const fingerprint = {\n n: definition.name,\n v: definition.version ?? null,\n s: definition.steps.map(step => stepFingerprint(step)),\n };\n\n return hash(JSON.stringify(fingerprint));\n}\n"],"mappings":";AAGA,SAAS,gBAAgB,MAA+B;CACtD,MAAM,MAAM,KAAK,WACb,aACA,KAAK,QACH,UACA,KAAK,MACH,QACA;CAER,MAAM,YAAY,KAAK,OAAO;CAE9B,OAAO;EACL,GAAG,KAAK;EACR,GAAG;EACH,GAAG;EACH,GAAG,KAAK,UAAU,KAAI,UAAS,gBAAgB,KAAK,CAAC,KAAK;CAC5D;AACF;;;;AAKA,SAAS,KAAK,OAAuB;CACnC,IAAI,IAAI;CAER,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,KAAK,MAAM,WAAW,CAAC;EACvB,IAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,SAAU;CACxE;CAEA,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;AACvC;AAEA,SAAgB,iBAAoB,YAA0D;CAC5F,MAAM,cAAc;EAClB,GAAG,WAAW;EACd,GAAG,WAAW,WAAW;EACzB,GAAG,WAAW,MAAM,KAAI,SAAQ,gBAAgB,IAAI,CAAC;CACvD;CAEA,OAAO,KAAK,KAAK,UAAU,WAAW,CAAC;AACzC"}