@warlock.js/core 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (846) hide show
  1. package/CHANGELOG.md +45 -5
  2. package/README.md +47 -11
  3. package/esm/ai/src/agent/agent-input-builder.mjs +132 -0
  4. package/esm/ai/src/agent/agent-input-builder.mjs.map +1 -0
  5. package/esm/ai/src/agent/agent-log-event.mjs +101 -0
  6. package/esm/ai/src/agent/agent-log-event.mjs.map +1 -0
  7. package/esm/ai/src/agent/agent-stream.mjs +82 -0
  8. package/esm/ai/src/agent/agent-stream.mjs.map +1 -0
  9. package/esm/ai/src/agent/agent-to-stream-event.mjs +86 -0
  10. package/esm/ai/src/agent/agent-to-stream-event.mjs.map +1 -0
  11. package/esm/ai/src/agent/agent.mjs +1157 -0
  12. package/esm/ai/src/agent/agent.mjs.map +1 -0
  13. package/esm/ai/src/agent/index.mjs +5 -0
  14. package/esm/ai/src/agent/json-stream-guard.mjs +400 -0
  15. package/esm/ai/src/agent/json-stream-guard.mjs.map +1 -0
  16. package/esm/ai/src/agent/spawn-sub-agent.mjs +68 -0
  17. package/esm/ai/src/agent/spawn-sub-agent.mjs.map +1 -0
  18. package/esm/ai/src/ai.mjs +155 -0
  19. package/esm/ai/src/ai.mjs.map +1 -0
  20. package/esm/ai/src/batch/batch.mjs +198 -0
  21. package/esm/ai/src/batch/batch.mjs.map +1 -0
  22. package/esm/ai/src/batch/index.mjs +3 -0
  23. package/esm/ai/src/batch/run-batch-item.mjs +100 -0
  24. package/esm/ai/src/batch/run-batch-item.mjs.map +1 -0
  25. package/esm/ai/src/batch/run-with-concurrency.mjs +39 -0
  26. package/esm/ai/src/batch/run-with-concurrency.mjs.map +1 -0
  27. package/esm/ai/src/checkpoint/memory.mjs +0 -0
  28. package/esm/ai/src/checkpoint/memory.mjs.map +1 -0
  29. package/esm/ai/src/checkpoint/pg.mjs +265 -0
  30. package/esm/ai/src/checkpoint/pg.mjs.map +1 -0
  31. package/esm/ai/src/checkpoint/redis.mjs +200 -0
  32. package/esm/ai/src/checkpoint/redis.mjs.map +1 -0
  33. package/esm/ai/src/config.mjs +59 -0
  34. package/esm/ai/src/config.mjs.map +1 -0
  35. package/esm/ai/src/contracts/end.type.mjs +47 -0
  36. package/esm/ai/src/contracts/end.type.mjs.map +1 -0
  37. package/esm/ai/src/errors/agent-cancelled-error.mjs +43 -0
  38. package/esm/ai/src/errors/agent-cancelled-error.mjs.map +1 -0
  39. package/esm/ai/src/errors/agent-execution-error.mjs +35 -0
  40. package/esm/ai/src/errors/agent-execution-error.mjs.map +1 -0
  41. package/esm/ai/src/errors/agent-max-trips-error.mjs +41 -0
  42. package/esm/ai/src/errors/agent-max-trips-error.mjs.map +1 -0
  43. package/esm/ai/src/errors/ai-error.mjs +68 -0
  44. package/esm/ai/src/errors/ai-error.mjs.map +1 -0
  45. package/esm/ai/src/errors/budget-exceeded-error.mjs +31 -0
  46. package/esm/ai/src/errors/budget-exceeded-error.mjs.map +1 -0
  47. package/esm/ai/src/errors/content-filter-error.mjs +28 -0
  48. package/esm/ai/src/errors/content-filter-error.mjs.map +1 -0
  49. package/esm/ai/src/errors/context-length-exceeded-error.mjs +31 -0
  50. package/esm/ai/src/errors/context-length-exceeded-error.mjs.map +1 -0
  51. package/esm/ai/src/errors/guardrail-violation-error.mjs +41 -0
  52. package/esm/ai/src/errors/guardrail-violation-error.mjs.map +1 -0
  53. package/esm/ai/src/errors/index.mjs +37 -0
  54. package/esm/ai/src/errors/invalid-request-error.mjs +31 -0
  55. package/esm/ai/src/errors/invalid-request-error.mjs.map +1 -0
  56. package/esm/ai/src/errors/max-iterations-error.mjs +32 -0
  57. package/esm/ai/src/errors/max-iterations-error.mjs.map +1 -0
  58. package/esm/ai/src/errors/max-steps-exceeded-error.mjs +21 -0
  59. package/esm/ai/src/errors/max-steps-exceeded-error.mjs.map +1 -0
  60. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs +31 -0
  61. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs.map +1 -0
  62. package/esm/ai/src/errors/orchestrator-config-error.mjs +30 -0
  63. package/esm/ai/src/errors/orchestrator-config-error.mjs.map +1 -0
  64. package/esm/ai/src/errors/orchestrator-drift-error.mjs +37 -0
  65. package/esm/ai/src/errors/orchestrator-drift-error.mjs.map +1 -0
  66. package/esm/ai/src/errors/orchestrator-failed-error.mjs +36 -0
  67. package/esm/ai/src/errors/orchestrator-failed-error.mjs.map +1 -0
  68. package/esm/ai/src/errors/outbound-policy-error.mjs +32 -0
  69. package/esm/ai/src/errors/outbound-policy-error.mjs.map +1 -0
  70. package/esm/ai/src/errors/planner-cancelled-error.mjs +29 -0
  71. package/esm/ai/src/errors/planner-cancelled-error.mjs.map +1 -0
  72. package/esm/ai/src/errors/planner-failed-error.mjs +37 -0
  73. package/esm/ai/src/errors/planner-failed-error.mjs.map +1 -0
  74. package/esm/ai/src/errors/planner-plan-invalid-error.mjs +25 -0
  75. package/esm/ai/src/errors/planner-plan-invalid-error.mjs.map +1 -0
  76. package/esm/ai/src/errors/provider-auth-error.mjs +26 -0
  77. package/esm/ai/src/errors/provider-auth-error.mjs.map +1 -0
  78. package/esm/ai/src/errors/provider-error.mjs +42 -0
  79. package/esm/ai/src/errors/provider-error.mjs.map +1 -0
  80. package/esm/ai/src/errors/provider-rate-limit-error.mjs +31 -0
  81. package/esm/ai/src/errors/provider-rate-limit-error.mjs.map +1 -0
  82. package/esm/ai/src/errors/provider-timeout-error.mjs +26 -0
  83. package/esm/ai/src/errors/provider-timeout-error.mjs.map +1 -0
  84. package/esm/ai/src/errors/quota-exceeded-error.mjs +40 -0
  85. package/esm/ai/src/errors/quota-exceeded-error.mjs.map +1 -0
  86. package/esm/ai/src/errors/routing-error.mjs +23 -0
  87. package/esm/ai/src/errors/routing-error.mjs.map +1 -0
  88. package/esm/ai/src/errors/schema-validation-error.mjs +37 -0
  89. package/esm/ai/src/errors/schema-validation-error.mjs.map +1 -0
  90. package/esm/ai/src/errors/step-failed-error.mjs +19 -0
  91. package/esm/ai/src/errors/step-failed-error.mjs.map +1 -0
  92. package/esm/ai/src/errors/supervisor-cancelled-error.mjs +29 -0
  93. package/esm/ai/src/errors/supervisor-cancelled-error.mjs.map +1 -0
  94. package/esm/ai/src/errors/supervisor-drift-error.mjs +30 -0
  95. package/esm/ai/src/errors/supervisor-drift-error.mjs.map +1 -0
  96. package/esm/ai/src/errors/supervisor-failed-error.mjs +43 -0
  97. package/esm/ai/src/errors/supervisor-failed-error.mjs.map +1 -0
  98. package/esm/ai/src/errors/supervisor-routing-error.mjs +39 -0
  99. package/esm/ai/src/errors/supervisor-routing-error.mjs.map +1 -0
  100. package/esm/ai/src/errors/tool-execution-error.mjs +32 -0
  101. package/esm/ai/src/errors/tool-execution-error.mjs.map +1 -0
  102. package/esm/ai/src/errors/workflow-cancelled-error.mjs +23 -0
  103. package/esm/ai/src/errors/workflow-cancelled-error.mjs.map +1 -0
  104. package/esm/ai/src/errors/workflow-drift-error.mjs +24 -0
  105. package/esm/ai/src/errors/workflow-drift-error.mjs.map +1 -0
  106. package/esm/ai/src/errors/workflow-error.mjs +18 -0
  107. package/esm/ai/src/errors/workflow-error.mjs.map +1 -0
  108. package/esm/ai/src/eval/dataset.mjs +112 -0
  109. package/esm/ai/src/eval/dataset.mjs.map +1 -0
  110. package/esm/ai/src/eval/eval-runner.mjs +135 -0
  111. package/esm/ai/src/eval/eval-runner.mjs.map +1 -0
  112. package/esm/ai/src/eval/index.mjs +48 -0
  113. package/esm/ai/src/eval/index.mjs.map +1 -0
  114. package/esm/ai/src/eval/judge-scorer.mjs +87 -0
  115. package/esm/ai/src/eval/judge-scorer.mjs.map +1 -0
  116. package/esm/ai/src/eval/regression.mjs +51 -0
  117. package/esm/ai/src/eval/regression.mjs.map +1 -0
  118. package/esm/ai/src/eval/report-json.mjs +33 -0
  119. package/esm/ai/src/eval/report-json.mjs.map +1 -0
  120. package/esm/ai/src/eval/report-junit.mjs +60 -0
  121. package/esm/ai/src/eval/report-junit.mjs.map +1 -0
  122. package/esm/ai/src/eval/scorers.mjs +101 -0
  123. package/esm/ai/src/eval/scorers.mjs.map +1 -0
  124. package/esm/ai/src/guard/detectors/index.mjs +6 -0
  125. package/esm/ai/src/guard/detectors/injection.mjs +254 -0
  126. package/esm/ai/src/guard/detectors/injection.mjs.map +1 -0
  127. package/esm/ai/src/guard/detectors/moderation.mjs +134 -0
  128. package/esm/ai/src/guard/detectors/moderation.mjs.map +1 -0
  129. package/esm/ai/src/guard/detectors/pii.mjs +199 -0
  130. package/esm/ai/src/guard/detectors/pii.mjs.map +1 -0
  131. package/esm/ai/src/guard/detectors/topic.mjs +99 -0
  132. package/esm/ai/src/guard/detectors/topic.mjs.map +1 -0
  133. package/esm/ai/src/guard/errors.mjs +18 -0
  134. package/esm/ai/src/guard/errors.mjs.map +1 -0
  135. package/esm/ai/src/guard/guard.mjs +209 -0
  136. package/esm/ai/src/guard/guard.mjs.map +1 -0
  137. package/esm/ai/src/guard/guardrail.mjs +22 -0
  138. package/esm/ai/src/guard/guardrail.mjs.map +1 -0
  139. package/esm/ai/src/human/errors.mjs +60 -0
  140. package/esm/ai/src/human/errors.mjs.map +1 -0
  141. package/esm/ai/src/human/human-approval.mjs +170 -0
  142. package/esm/ai/src/human/human-approval.mjs.map +1 -0
  143. package/esm/ai/src/human/policy.mjs +67 -0
  144. package/esm/ai/src/human/policy.mjs.map +1 -0
  145. package/esm/ai/src/human/register.mjs +37 -0
  146. package/esm/ai/src/human/register.mjs.map +1 -0
  147. package/esm/ai/src/human/resume-seed.mjs +53 -0
  148. package/esm/ai/src/human/resume-seed.mjs.map +1 -0
  149. package/esm/ai/src/human/resume.mjs +121 -0
  150. package/esm/ai/src/human/resume.mjs.map +1 -0
  151. package/esm/ai/src/human/stores/index.mjs +5 -0
  152. package/esm/ai/src/human/stores/memory.mjs +91 -0
  153. package/esm/ai/src/human/stores/memory.mjs.map +1 -0
  154. package/esm/ai/src/human/stores/pg.mjs +220 -0
  155. package/esm/ai/src/human/stores/pg.mjs.map +1 -0
  156. package/esm/ai/src/human/stores/redis.mjs +201 -0
  157. package/esm/ai/src/human/stores/redis.mjs.map +1 -0
  158. package/esm/ai/src/index.mjs +174 -0
  159. package/esm/ai/src/memory/derive-id.mjs +24 -0
  160. package/esm/ai/src/memory/derive-id.mjs.map +1 -0
  161. package/esm/ai/src/memory/episodic-memory.mjs +106 -0
  162. package/esm/ai/src/memory/episodic-memory.mjs.map +1 -0
  163. package/esm/ai/src/memory/memory.mjs +166 -0
  164. package/esm/ai/src/memory/memory.mjs.map +1 -0
  165. package/esm/ai/src/memory/procedural-memory.mjs +103 -0
  166. package/esm/ai/src/memory/procedural-memory.mjs.map +1 -0
  167. package/esm/ai/src/memory/semantic-memory.mjs +80 -0
  168. package/esm/ai/src/memory/semantic-memory.mjs.map +1 -0
  169. package/esm/ai/src/memory/working-memory.mjs +62 -0
  170. package/esm/ai/src/memory/working-memory.mjs.map +1 -0
  171. package/esm/ai/src/middleware/builtins/budget.mjs +219 -0
  172. package/esm/ai/src/middleware/builtins/budget.mjs.map +1 -0
  173. package/esm/ai/src/middleware/builtins/guardrail.mjs +76 -0
  174. package/esm/ai/src/middleware/builtins/guardrail.mjs.map +1 -0
  175. package/esm/ai/src/middleware/builtins/semantic-cache.mjs +149 -0
  176. package/esm/ai/src/middleware/builtins/semantic-cache.mjs.map +1 -0
  177. package/esm/ai/src/middleware/helpers/compose.mjs +52 -0
  178. package/esm/ai/src/middleware/helpers/compose.mjs.map +1 -0
  179. package/esm/ai/src/middleware/helpers/for-tool.mjs +80 -0
  180. package/esm/ai/src/middleware/helpers/for-tool.mjs.map +1 -0
  181. package/esm/ai/src/middleware/index.mjs +10 -0
  182. package/esm/ai/src/middleware/pipeline.mjs +100 -0
  183. package/esm/ai/src/middleware/pipeline.mjs.map +1 -0
  184. package/esm/ai/src/middleware/utils/extract-user-text.mjs +47 -0
  185. package/esm/ai/src/middleware/utils/extract-user-text.mjs.map +1 -0
  186. package/esm/ai/src/middleware/utils/namespaced-state.mjs +60 -0
  187. package/esm/ai/src/middleware/utils/namespaced-state.mjs.map +1 -0
  188. package/esm/ai/src/mock/index.mjs +4 -0
  189. package/esm/ai/src/mock/mock-agent.mjs +3 -0
  190. package/esm/ai/src/mock/mock-router.mjs +58 -0
  191. package/esm/ai/src/mock/mock-router.mjs.map +1 -0
  192. package/esm/ai/src/model/fallback-model.mjs +218 -0
  193. package/esm/ai/src/model/fallback-model.mjs.map +1 -0
  194. package/esm/ai/src/model/index.mjs +3 -0
  195. package/esm/ai/src/object-stream/index.mjs +4 -0
  196. package/esm/ai/src/object-stream/parse-partial-json.mjs +78 -0
  197. package/esm/ai/src/object-stream/parse-partial-json.mjs.map +1 -0
  198. package/esm/ai/src/object-stream/stream-object.mjs +97 -0
  199. package/esm/ai/src/object-stream/stream-object.mjs.map +1 -0
  200. package/esm/ai/src/observe/index.mjs +4 -0
  201. package/esm/ai/src/observe/observer-registry.mjs +35 -0
  202. package/esm/ai/src/observe/observer-registry.mjs.map +1 -0
  203. package/esm/ai/src/observe/resolve-observers.mjs +73 -0
  204. package/esm/ai/src/observe/resolve-observers.mjs.map +1 -0
  205. package/esm/ai/src/orchestrator/as-tool.mjs +98 -0
  206. package/esm/ai/src/orchestrator/as-tool.mjs.map +1 -0
  207. package/esm/ai/src/orchestrator/checkpoint.mjs +75 -0
  208. package/esm/ai/src/orchestrator/checkpoint.mjs.map +1 -0
  209. package/esm/ai/src/orchestrator/commands.mjs +34 -0
  210. package/esm/ai/src/orchestrator/commands.mjs.map +1 -0
  211. package/esm/ai/src/orchestrator/compaction.mjs +206 -0
  212. package/esm/ai/src/orchestrator/compaction.mjs.map +1 -0
  213. package/esm/ai/src/orchestrator/dispatch.mjs +171 -0
  214. package/esm/ai/src/orchestrator/dispatch.mjs.map +1 -0
  215. package/esm/ai/src/orchestrator/emitter.mjs +85 -0
  216. package/esm/ai/src/orchestrator/emitter.mjs.map +1 -0
  217. package/esm/ai/src/orchestrator/execution.mjs +395 -0
  218. package/esm/ai/src/orchestrator/execution.mjs.map +1 -0
  219. package/esm/ai/src/orchestrator/index.mjs +11 -0
  220. package/esm/ai/src/orchestrator/load.mjs +49 -0
  221. package/esm/ai/src/orchestrator/load.mjs.map +1 -0
  222. package/esm/ai/src/orchestrator/lock.mjs +75 -0
  223. package/esm/ai/src/orchestrator/lock.mjs.map +1 -0
  224. package/esm/ai/src/orchestrator/memory.mjs +141 -0
  225. package/esm/ai/src/orchestrator/memory.mjs.map +1 -0
  226. package/esm/ai/src/orchestrator/orchestrator-stream.mjs +98 -0
  227. package/esm/ai/src/orchestrator/orchestrator-stream.mjs.map +1 -0
  228. package/esm/ai/src/orchestrator/orchestrator.mjs +206 -0
  229. package/esm/ai/src/orchestrator/orchestrator.mjs.map +1 -0
  230. package/esm/ai/src/orchestrator/resume.mjs +74 -0
  231. package/esm/ai/src/orchestrator/resume.mjs.map +1 -0
  232. package/esm/ai/src/orchestrator/session-lock.mjs +83 -0
  233. package/esm/ai/src/orchestrator/session-lock.mjs.map +1 -0
  234. package/esm/ai/src/orchestrator/signature.mjs +120 -0
  235. package/esm/ai/src/orchestrator/signature.mjs.map +1 -0
  236. package/esm/ai/src/orchestrator/window.mjs +56 -0
  237. package/esm/ai/src/orchestrator/window.mjs.map +1 -0
  238. package/esm/ai/src/planner/dag-scheduler.mjs +97 -0
  239. package/esm/ai/src/planner/dag-scheduler.mjs.map +1 -0
  240. package/esm/ai/src/planner/index.mjs +6 -0
  241. package/esm/ai/src/planner/plan-prompt.mjs +31 -0
  242. package/esm/ai/src/planner/plan-prompt.mjs.map +1 -0
  243. package/esm/ai/src/planner/plan-schema.mjs +120 -0
  244. package/esm/ai/src/planner/plan-schema.mjs.map +1 -0
  245. package/esm/ai/src/planner/planner-run.mjs +614 -0
  246. package/esm/ai/src/planner/planner-run.mjs.map +1 -0
  247. package/esm/ai/src/planner/planner.mjs +120 -0
  248. package/esm/ai/src/planner/planner.mjs.map +1 -0
  249. package/esm/ai/src/planner/signature.mjs +27 -0
  250. package/esm/ai/src/planner/signature.mjs.map +1 -0
  251. package/esm/ai/src/prompt/errors.mjs +73 -0
  252. package/esm/ai/src/prompt/errors.mjs.map +1 -0
  253. package/esm/ai/src/prompt/index.mjs +4 -0
  254. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs +104 -0
  255. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs.map +1 -0
  256. package/esm/ai/src/prompt/prompt-validate.mjs +170 -0
  257. package/esm/ai/src/prompt/prompt-validate.mjs.map +1 -0
  258. package/esm/ai/src/prompt/prompt.mjs +218 -0
  259. package/esm/ai/src/prompt/prompt.mjs.map +1 -0
  260. package/esm/ai/src/prompts/index.mjs +3 -0
  261. package/esm/ai/src/prompts/prompts-manager.mjs +410 -0
  262. package/esm/ai/src/prompts/prompts-manager.mjs.map +1 -0
  263. package/esm/ai/src/prompts/prompts-validate.mjs +200 -0
  264. package/esm/ai/src/prompts/prompts-validate.mjs.map +1 -0
  265. package/esm/ai/src/rag/as-tool.mjs +48 -0
  266. package/esm/ai/src/rag/as-tool.mjs.map +1 -0
  267. package/esm/ai/src/rag/chunk/chunk.mjs +44 -0
  268. package/esm/ai/src/rag/chunk/chunk.mjs.map +1 -0
  269. package/esm/ai/src/rag/chunk/fixed.mjs +32 -0
  270. package/esm/ai/src/rag/chunk/fixed.mjs.map +1 -0
  271. package/esm/ai/src/rag/chunk/markdown.mjs +75 -0
  272. package/esm/ai/src/rag/chunk/markdown.mjs.map +1 -0
  273. package/esm/ai/src/rag/chunk/recursive.mjs +132 -0
  274. package/esm/ai/src/rag/chunk/recursive.mjs.map +1 -0
  275. package/esm/ai/src/rag/chunk/sentence.mjs +73 -0
  276. package/esm/ai/src/rag/chunk/sentence.mjs.map +1 -0
  277. package/esm/ai/src/rag/index.mjs +7 -0
  278. package/esm/ai/src/rag/rag.mjs +126 -0
  279. package/esm/ai/src/rag/rag.mjs.map +1 -0
  280. package/esm/ai/src/rag/rerank/keyword-reranker.mjs +58 -0
  281. package/esm/ai/src/rag/rerank/keyword-reranker.mjs.map +1 -0
  282. package/esm/ai/src/rag/rerank/llm-reranker.mjs +85 -0
  283. package/esm/ai/src/rag/rerank/llm-reranker.mjs.map +1 -0
  284. package/esm/ai/src/rag/retrieve.mjs +68 -0
  285. package/esm/ai/src/rag/retrieve.mjs.map +1 -0
  286. package/esm/ai/src/rag/store/cache-vector-store.mjs +48 -0
  287. package/esm/ai/src/rag/store/cache-vector-store.mjs.map +1 -0
  288. package/esm/ai/src/security/index.mjs +5 -0
  289. package/esm/ai/src/security/outbound-policy.mjs +187 -0
  290. package/esm/ai/src/security/outbound-policy.mjs.map +1 -0
  291. package/esm/ai/src/security/private-ip.mjs +48 -0
  292. package/esm/ai/src/security/private-ip.mjs.map +1 -0
  293. package/esm/ai/src/security/redact.mjs +60 -0
  294. package/esm/ai/src/security/redact.mjs.map +1 -0
  295. package/esm/ai/src/serve/serve.mjs +90 -0
  296. package/esm/ai/src/serve/serve.mjs.map +1 -0
  297. package/esm/ai/src/serve/sse.mjs +25 -0
  298. package/esm/ai/src/serve/sse.mjs.map +1 -0
  299. package/esm/ai/src/serve/stream-to-sse.mjs +37 -0
  300. package/esm/ai/src/serve/stream-to-sse.mjs.map +1 -0
  301. package/esm/ai/src/skills/catalog.mjs +140 -0
  302. package/esm/ai/src/skills/catalog.mjs.map +1 -0
  303. package/esm/ai/src/skills/index.mjs +11 -0
  304. package/esm/ai/src/skills/load-skill-tool.mjs +65 -0
  305. package/esm/ai/src/skills/load-skill-tool.mjs.map +1 -0
  306. package/esm/ai/src/skills/save-skill-tool.mjs +65 -0
  307. package/esm/ai/src/skills/save-skill-tool.mjs.map +1 -0
  308. package/esm/ai/src/skills/skills.mjs +109 -0
  309. package/esm/ai/src/skills/skills.mjs.map +1 -0
  310. package/esm/ai/src/skills/sources/directory-source.mjs +108 -0
  311. package/esm/ai/src/skills/sources/directory-source.mjs.map +1 -0
  312. package/esm/ai/src/skills/sources/index.mjs +27 -0
  313. package/esm/ai/src/skills/sources/index.mjs.map +1 -0
  314. package/esm/ai/src/skills/sources/parse-frontmatter.mjs +46 -0
  315. package/esm/ai/src/skills/sources/parse-frontmatter.mjs.map +1 -0
  316. package/esm/ai/src/skills/sources/store-source.mjs +15 -0
  317. package/esm/ai/src/skills/sources/store-source.mjs.map +1 -0
  318. package/esm/ai/src/skills/sources/url-source.mjs +117 -0
  319. package/esm/ai/src/skills/sources/url-source.mjs.map +1 -0
  320. package/esm/ai/src/snapshot/memory.mjs +81 -0
  321. package/esm/ai/src/snapshot/memory.mjs.map +1 -0
  322. package/esm/ai/src/snapshot/pg.mjs +146 -0
  323. package/esm/ai/src/snapshot/pg.mjs.map +1 -0
  324. package/esm/ai/src/snapshot/redis.mjs +101 -0
  325. package/esm/ai/src/snapshot/redis.mjs.map +1 -0
  326. package/esm/ai/src/supervisor/as-tool.mjs +74 -0
  327. package/esm/ai/src/supervisor/as-tool.mjs.map +1 -0
  328. package/esm/ai/src/supervisor/cancellation.mjs +22 -0
  329. package/esm/ai/src/supervisor/cancellation.mjs.map +1 -0
  330. package/esm/ai/src/supervisor/decide.mjs +272 -0
  331. package/esm/ai/src/supervisor/decide.mjs.map +1 -0
  332. package/esm/ai/src/supervisor/emitter.mjs +47 -0
  333. package/esm/ai/src/supervisor/emitter.mjs.map +1 -0
  334. package/esm/ai/src/supervisor/entries.mjs +206 -0
  335. package/esm/ai/src/supervisor/entries.mjs.map +1 -0
  336. package/esm/ai/src/supervisor/execution.mjs +1921 -0
  337. package/esm/ai/src/supervisor/execution.mjs.map +1 -0
  338. package/esm/ai/src/supervisor/fan-out.mjs +65 -0
  339. package/esm/ai/src/supervisor/fan-out.mjs.map +1 -0
  340. package/esm/ai/src/supervisor/index.mjs +14 -0
  341. package/esm/ai/src/supervisor/router-factory.mjs +141 -0
  342. package/esm/ai/src/supervisor/router-factory.mjs.map +1 -0
  343. package/esm/ai/src/supervisor/router-prompt.mjs +52 -0
  344. package/esm/ai/src/supervisor/router-prompt.mjs.map +1 -0
  345. package/esm/ai/src/supervisor/signature.mjs +89 -0
  346. package/esm/ai/src/supervisor/signature.mjs.map +1 -0
  347. package/esm/ai/src/supervisor/snapshot.mjs +69 -0
  348. package/esm/ai/src/supervisor/snapshot.mjs.map +1 -0
  349. package/esm/ai/src/supervisor/supervisor-stream.mjs +89 -0
  350. package/esm/ai/src/supervisor/supervisor-stream.mjs.map +1 -0
  351. package/esm/ai/src/supervisor/supervisor.mjs +144 -0
  352. package/esm/ai/src/supervisor/supervisor.mjs.map +1 -0
  353. package/esm/ai/src/system-prompt/index.mjs +6 -0
  354. package/esm/ai/src/system-prompt/instruction.mjs +57 -0
  355. package/esm/ai/src/system-prompt/instruction.mjs.map +1 -0
  356. package/esm/ai/src/system-prompt/persona.mjs +57 -0
  357. package/esm/ai/src/system-prompt/persona.mjs.map +1 -0
  358. package/esm/ai/src/system-prompt/render-placeholders.mjs +58 -0
  359. package/esm/ai/src/system-prompt/render-placeholders.mjs.map +1 -0
  360. package/esm/ai/src/system-prompt/system-prompt.mjs +267 -0
  361. package/esm/ai/src/system-prompt/system-prompt.mjs.map +1 -0
  362. package/esm/ai/src/team/gates.mjs +48 -0
  363. package/esm/ai/src/team/gates.mjs.map +1 -0
  364. package/esm/ai/src/team/index.mjs +3 -0
  365. package/esm/ai/src/team/team.mjs +94 -0
  366. package/esm/ai/src/team/team.mjs.map +1 -0
  367. package/esm/ai/src/tool/executable-as-tool.mjs +81 -0
  368. package/esm/ai/src/tool/executable-as-tool.mjs.map +1 -0
  369. package/esm/ai/src/tool/index.mjs +4 -0
  370. package/esm/ai/src/tool/tool.mjs +185 -0
  371. package/esm/ai/src/tool/tool.mjs.map +1 -0
  372. package/esm/ai/src/utils/compute-cost.mjs +112 -0
  373. package/esm/ai/src/utils/compute-cost.mjs.map +1 -0
  374. package/esm/ai/src/utils/extract-json-lenient.mjs +97 -0
  375. package/esm/ai/src/utils/extract-json-lenient.mjs.map +1 -0
  376. package/esm/ai/src/utils/extract-json-payload.mjs +39 -0
  377. package/esm/ai/src/utils/extract-json-payload.mjs.map +1 -0
  378. package/esm/ai/src/utils/generate-run-id.mjs +23 -0
  379. package/esm/ai/src/utils/generate-run-id.mjs.map +1 -0
  380. package/esm/ai/src/utils/index.mjs +12 -0
  381. package/esm/ai/src/utils/json-schema.mjs +89 -0
  382. package/esm/ai/src/utils/json-schema.mjs.map +1 -0
  383. package/esm/ai/src/utils/prepare-attachment-part.mjs +232 -0
  384. package/esm/ai/src/utils/prepare-attachment-part.mjs.map +1 -0
  385. package/esm/ai/src/utils/resolve-attachment.mjs +74 -0
  386. package/esm/ai/src/utils/resolve-attachment.mjs.map +1 -0
  387. package/esm/ai/src/utils/run-context.mjs +89 -0
  388. package/esm/ai/src/utils/run-context.mjs.map +1 -0
  389. package/esm/ai/src/utils/safe-json-parse.mjs +22 -0
  390. package/esm/ai/src/utils/safe-json-parse.mjs.map +1 -0
  391. package/esm/ai/src/utils/stamp-report-lineage.mjs +45 -0
  392. package/esm/ai/src/utils/stamp-report-lineage.mjs.map +1 -0
  393. package/esm/ai/src/vcr/cassette-io.mjs +57 -0
  394. package/esm/ai/src/vcr/cassette-io.mjs.map +1 -0
  395. package/esm/ai/src/vcr/errors.mjs +37 -0
  396. package/esm/ai/src/vcr/errors.mjs.map +1 -0
  397. package/esm/ai/src/vcr/hash-request.mjs +118 -0
  398. package/esm/ai/src/vcr/hash-request.mjs.map +1 -0
  399. package/esm/ai/src/vcr/index.mjs +5 -0
  400. package/esm/ai/src/vcr/vcr.mjs +248 -0
  401. package/esm/ai/src/vcr/vcr.mjs.map +1 -0
  402. package/esm/ai/src/workflow/as-tool.mjs +49 -0
  403. package/esm/ai/src/workflow/as-tool.mjs.map +1 -0
  404. package/esm/ai/src/workflow/cancellation.mjs +44 -0
  405. package/esm/ai/src/workflow/cancellation.mjs.map +1 -0
  406. package/esm/ai/src/workflow/emitter.mjs +40 -0
  407. package/esm/ai/src/workflow/emitter.mjs.map +1 -0
  408. package/esm/ai/src/workflow/engine.mjs +363 -0
  409. package/esm/ai/src/workflow/engine.mjs.map +1 -0
  410. package/esm/ai/src/workflow/index.mjs +5 -0
  411. package/esm/ai/src/workflow/retry.mjs +32 -0
  412. package/esm/ai/src/workflow/retry.mjs.map +1 -0
  413. package/esm/ai/src/workflow/router.mjs +56 -0
  414. package/esm/ai/src/workflow/router.mjs.map +1 -0
  415. package/esm/ai/src/workflow/run-scoped-emitter.mjs +32 -0
  416. package/esm/ai/src/workflow/run-scoped-emitter.mjs.map +1 -0
  417. package/esm/ai/src/workflow/signature.mjs +34 -0
  418. package/esm/ai/src/workflow/signature.mjs.map +1 -0
  419. package/esm/ai/src/workflow/snapshot.mjs +77 -0
  420. package/esm/ai/src/workflow/snapshot.mjs.map +1 -0
  421. package/esm/ai/src/workflow/state.mjs +37 -0
  422. package/esm/ai/src/workflow/state.mjs.map +1 -0
  423. package/esm/ai/src/workflow/step-runner.mjs +370 -0
  424. package/esm/ai/src/workflow/step-runner.mjs.map +1 -0
  425. package/esm/ai/src/workflow/step.mjs +37 -0
  426. package/esm/ai/src/workflow/step.mjs.map +1 -0
  427. package/esm/ai/src/workflow/workflow.mjs +122 -0
  428. package/esm/ai/src/workflow/workflow.mjs.map +1 -0
  429. package/esm/ai-openai/src/embedder.mjs +4 -0
  430. package/esm/ai-openai/src/index.mjs +4 -0
  431. package/esm/ai-openai/src/model.mjs +5 -0
  432. package/esm/ai-openai/src/sdk.mjs +6 -0
  433. package/esm/ai-openai/src/utils/index.mjs +4 -0
  434. package/esm/ai-openai/src/utils/to-openai-tools.mjs +3 -0
  435. package/esm/ai-openai/src/utils/wrap-openai-error.mjs +4 -0
  436. package/esm/cli/commands/dev-server.command.mjs +1 -1
  437. package/esm/cli/commands/dev-server.command.mjs.map +1 -1
  438. package/esm/cli/commands/generate/templates/stubs.mjs +3 -4
  439. package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
  440. package/esm/connectors/ai-connector.d.mts +43 -0
  441. package/esm/connectors/ai-connector.d.mts.map +1 -0
  442. package/esm/connectors/ai-connector.mjs +56 -0
  443. package/esm/connectors/ai-connector.mjs.map +1 -0
  444. package/esm/connectors/cache-connector.d.mts +5 -0
  445. package/esm/connectors/cache-connector.d.mts.map +1 -1
  446. package/esm/connectors/cache-connector.mjs +7 -0
  447. package/esm/connectors/cache-connector.mjs.map +1 -1
  448. package/esm/connectors/connectors-manager.d.mts +6 -2
  449. package/esm/connectors/connectors-manager.d.mts.map +1 -1
  450. package/esm/connectors/connectors-manager.mjs +8 -2
  451. package/esm/connectors/connectors-manager.mjs.map +1 -1
  452. package/esm/connectors/http-connector.mjs.map +1 -1
  453. package/esm/connectors/index.d.mts +1 -0
  454. package/esm/connectors/index.mjs +1 -0
  455. package/esm/connectors/socket-connector.d.mts +16 -1
  456. package/esm/connectors/socket-connector.d.mts.map +1 -1
  457. package/esm/connectors/socket-connector.mjs +28 -5
  458. package/esm/connectors/socket-connector.mjs.map +1 -1
  459. package/esm/connectors/storage.connector.d.mts +7 -0
  460. package/esm/connectors/storage.connector.d.mts.map +1 -1
  461. package/esm/connectors/storage.connector.mjs +7 -0
  462. package/esm/connectors/storage.connector.mjs.map +1 -1
  463. package/esm/connectors/types.d.mts +3 -2
  464. package/esm/connectors/types.d.mts.map +1 -1
  465. package/esm/connectors/types.mjs +1 -0
  466. package/esm/connectors/types.mjs.map +1 -1
  467. package/esm/dev-server/development-server.mjs +2 -14
  468. package/esm/dev-server/development-server.mjs.map +1 -1
  469. package/esm/dev-server/file-event-handler.mjs +15 -3
  470. package/esm/dev-server/file-event-handler.mjs.map +1 -1
  471. package/esm/generations/add-command.action.mjs +61 -12
  472. package/esm/generations/add-command.action.mjs.map +1 -1
  473. package/esm/generations/stubs.mjs +31 -1
  474. package/esm/generations/stubs.mjs.map +1 -1
  475. package/esm/http/middleware/cache-response-middleware.d.mts +1 -1
  476. package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
  477. package/esm/http/middleware/cache-response-middleware.mjs +15 -6
  478. package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
  479. package/esm/http/middleware/concurrency-limit.middleware.mjs +2 -0
  480. package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
  481. package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
  482. package/esm/http/middleware/idempotency.middleware.mjs +4 -1
  483. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  484. package/esm/http/middleware/maintenance.middleware.mjs +2 -1
  485. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  486. package/esm/http/request.d.mts +9 -2
  487. package/esm/http/request.d.mts.map +1 -1
  488. package/esm/http/request.mjs +15 -3
  489. package/esm/http/request.mjs.map +1 -1
  490. package/esm/http/response.d.mts +12 -0
  491. package/esm/http/response.d.mts.map +1 -1
  492. package/esm/http/response.mjs +19 -2
  493. package/esm/http/response.mjs.map +1 -1
  494. package/esm/http/server.d.mts.map +1 -1
  495. package/esm/http/server.mjs +1 -1
  496. package/esm/http/server.mjs.map +1 -1
  497. package/esm/index.d.mts +6 -2
  498. package/esm/index.mjs +5 -1
  499. package/esm/node_modules/langfuse/lib/index.mjs +1827 -0
  500. package/esm/node_modules/langfuse/lib/index.mjs.map +1 -0
  501. package/esm/node_modules/langfuse-core/lib/index.mjs +1770 -0
  502. package/esm/node_modules/langfuse-core/lib/index.mjs.map +1 -0
  503. package/esm/node_modules/mustache/mustache.mjs +587 -0
  504. package/esm/node_modules/mustache/mustache.mjs.map +1 -0
  505. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs +180 -0
  506. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs.map +1 -0
  507. package/esm/node_modules/openai/auth/workload-identity-auth.mjs +80 -0
  508. package/esm/node_modules/openai/auth/workload-identity-auth.mjs.map +1 -0
  509. package/esm/node_modules/openai/azure.mjs +82 -0
  510. package/esm/node_modules/openai/azure.mjs.map +1 -0
  511. package/esm/node_modules/openai/client.mjs +638 -0
  512. package/esm/node_modules/openai/client.mjs.map +1 -0
  513. package/esm/node_modules/openai/core/api-promise.mjs +75 -0
  514. package/esm/node_modules/openai/core/api-promise.mjs.map +1 -0
  515. package/esm/node_modules/openai/core/error.mjs +110 -0
  516. package/esm/node_modules/openai/core/error.mjs.map +1 -0
  517. package/esm/node_modules/openai/core/pagination.mjs +160 -0
  518. package/esm/node_modules/openai/core/pagination.mjs.map +1 -0
  519. package/esm/node_modules/openai/core/resource.mjs +10 -0
  520. package/esm/node_modules/openai/core/resource.mjs.map +1 -0
  521. package/esm/node_modules/openai/core/streaming.mjs +238 -0
  522. package/esm/node_modules/openai/core/streaming.mjs.map +1 -0
  523. package/esm/node_modules/openai/index.mjs +8 -0
  524. package/esm/node_modules/openai/internal/decoders/line.mjs +91 -0
  525. package/esm/node_modules/openai/internal/decoders/line.mjs.map +1 -0
  526. package/esm/node_modules/openai/internal/detect-platform.mjs +123 -0
  527. package/esm/node_modules/openai/internal/detect-platform.mjs.map +1 -0
  528. package/esm/node_modules/openai/internal/errors.mjs +26 -0
  529. package/esm/node_modules/openai/internal/errors.mjs.map +1 -0
  530. package/esm/node_modules/openai/internal/headers.mjs +65 -0
  531. package/esm/node_modules/openai/internal/headers.mjs.map +1 -0
  532. package/esm/node_modules/openai/internal/parse.mjs +41 -0
  533. package/esm/node_modules/openai/internal/parse.mjs.map +1 -0
  534. package/esm/node_modules/openai/internal/qs/formats.mjs +12 -0
  535. package/esm/node_modules/openai/internal/qs/formats.mjs.map +1 -0
  536. package/esm/node_modules/openai/internal/qs/stringify.mjs +179 -0
  537. package/esm/node_modules/openai/internal/qs/stringify.mjs.map +1 -0
  538. package/esm/node_modules/openai/internal/qs/utils.mjs +65 -0
  539. package/esm/node_modules/openai/internal/qs/utils.mjs.map +1 -0
  540. package/esm/node_modules/openai/internal/request-options.mjs +11 -0
  541. package/esm/node_modules/openai/internal/request-options.mjs.map +1 -0
  542. package/esm/node_modules/openai/internal/shims.mjs +77 -0
  543. package/esm/node_modules/openai/internal/shims.mjs.map +1 -0
  544. package/esm/node_modules/openai/internal/to-file.mjs +63 -0
  545. package/esm/node_modules/openai/internal/to-file.mjs.map +1 -0
  546. package/esm/node_modules/openai/internal/tslib.mjs +16 -0
  547. package/esm/node_modules/openai/internal/tslib.mjs.map +1 -0
  548. package/esm/node_modules/openai/internal/uploads.mjs +94 -0
  549. package/esm/node_modules/openai/internal/uploads.mjs.map +1 -0
  550. package/esm/node_modules/openai/internal/utils/base64.mjs +22 -0
  551. package/esm/node_modules/openai/internal/utils/base64.mjs.map +1 -0
  552. package/esm/node_modules/openai/internal/utils/bytes.mjs +26 -0
  553. package/esm/node_modules/openai/internal/utils/bytes.mjs.map +1 -0
  554. package/esm/node_modules/openai/internal/utils/env.mjs +16 -0
  555. package/esm/node_modules/openai/internal/utils/env.mjs.map +1 -0
  556. package/esm/node_modules/openai/internal/utils/log.mjs +58 -0
  557. package/esm/node_modules/openai/internal/utils/log.mjs.map +1 -0
  558. package/esm/node_modules/openai/internal/utils/path.mjs +62 -0
  559. package/esm/node_modules/openai/internal/utils/path.mjs.map +1 -0
  560. package/esm/node_modules/openai/internal/utils/query.mjs +10 -0
  561. package/esm/node_modules/openai/internal/utils/query.mjs.map +1 -0
  562. package/esm/node_modules/openai/internal/utils/sleep.mjs +6 -0
  563. package/esm/node_modules/openai/internal/utils/sleep.mjs.map +1 -0
  564. package/esm/node_modules/openai/internal/utils/uuid.mjs +18 -0
  565. package/esm/node_modules/openai/internal/utils/uuid.mjs.map +1 -0
  566. package/esm/node_modules/openai/internal/utils/values.mjs +41 -0
  567. package/esm/node_modules/openai/internal/utils/values.mjs.map +1 -0
  568. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs +247 -0
  569. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs.map +1 -0
  570. package/esm/node_modules/openai/lib/AssistantStream.mjs +472 -0
  571. package/esm/node_modules/openai/lib/AssistantStream.mjs.map +1 -0
  572. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs +26 -0
  573. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs.map +1 -0
  574. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs +423 -0
  575. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs.map +1 -0
  576. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs +26 -0
  577. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs.map +1 -0
  578. package/esm/node_modules/openai/lib/EventStream.mjs +163 -0
  579. package/esm/node_modules/openai/lib/EventStream.mjs.map +1 -0
  580. package/esm/node_modules/openai/lib/ResponsesParser.mjs +94 -0
  581. package/esm/node_modules/openai/lib/ResponsesParser.mjs.map +1 -0
  582. package/esm/node_modules/openai/lib/RunnableFunction.mjs +8 -0
  583. package/esm/node_modules/openai/lib/RunnableFunction.mjs.map +1 -0
  584. package/esm/node_modules/openai/lib/Util.mjs +19 -0
  585. package/esm/node_modules/openai/lib/Util.mjs.map +1 -0
  586. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs +11 -0
  587. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs.map +1 -0
  588. package/esm/node_modules/openai/lib/parser.mjs +88 -0
  589. package/esm/node_modules/openai/lib/parser.mjs.map +1 -0
  590. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs +231 -0
  591. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs.map +1 -0
  592. package/esm/node_modules/openai/resources/admin/admin.mjs +15 -0
  593. package/esm/node_modules/openai/resources/admin/admin.mjs.map +1 -0
  594. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs +81 -0
  595. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs.map +1 -0
  596. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs +31 -0
  597. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs.map +1 -0
  598. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs +153 -0
  599. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs.map +1 -0
  600. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs +42 -0
  601. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs.map +1 -0
  602. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs +106 -0
  603. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs.map +1 -0
  604. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs +88 -0
  605. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs.map +1 -0
  606. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs +88 -0
  607. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs.map +1 -0
  608. package/esm/node_modules/openai/resources/admin/organization/invites.mjs +83 -0
  609. package/esm/node_modules/openai/resources/admin/organization/invites.mjs.map +1 -0
  610. package/esm/node_modules/openai/resources/admin/organization/organization.mjs +45 -0
  611. package/esm/node_modules/openai/resources/admin/organization/organization.mjs.map +1 -0
  612. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs +72 -0
  613. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs.map +1 -0
  614. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs +78 -0
  615. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs.map +1 -0
  616. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs +46 -0
  617. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs.map +1 -0
  618. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs +95 -0
  619. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs.map +1 -0
  620. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs +91 -0
  621. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs.map +1 -0
  622. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs +45 -0
  623. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs.map +1 -0
  624. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs +63 -0
  625. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs.map +1 -0
  626. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs +137 -0
  627. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs.map +1 -0
  628. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs +51 -0
  629. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs.map +1 -0
  630. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs +108 -0
  631. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs.map +1 -0
  632. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs +112 -0
  633. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs.map +1 -0
  634. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs +106 -0
  635. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs.map +1 -0
  636. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs +91 -0
  637. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs.map +1 -0
  638. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs +118 -0
  639. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs.map +1 -0
  640. package/esm/node_modules/openai/resources/admin/organization/roles.mjs +96 -0
  641. package/esm/node_modules/openai/resources/admin/organization/roles.mjs.map +1 -0
  642. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs +97 -0
  643. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs.map +1 -0
  644. package/esm/node_modules/openai/resources/admin/organization/usage.mjs +207 -0
  645. package/esm/node_modules/openai/resources/admin/organization/usage.mjs.map +1 -0
  646. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs +88 -0
  647. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs.map +1 -0
  648. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs +82 -0
  649. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs.map +1 -0
  650. package/esm/node_modules/openai/resources/audio/audio.mjs +21 -0
  651. package/esm/node_modules/openai/resources/audio/audio.mjs.map +1 -0
  652. package/esm/node_modules/openai/resources/audio/speech.mjs +39 -0
  653. package/esm/node_modules/openai/resources/audio/speech.mjs.map +1 -0
  654. package/esm/node_modules/openai/resources/audio/transcriptions.mjs +22 -0
  655. package/esm/node_modules/openai/resources/audio/transcriptions.mjs.map +1 -0
  656. package/esm/node_modules/openai/resources/audio/translations.mjs +21 -0
  657. package/esm/node_modules/openai/resources/audio/translations.mjs.map +1 -0
  658. package/esm/node_modules/openai/resources/batches.mjs +54 -0
  659. package/esm/node_modules/openai/resources/batches.mjs.map +1 -0
  660. package/esm/node_modules/openai/resources/beta/assistants.mjs +78 -0
  661. package/esm/node_modules/openai/resources/beta/assistants.mjs.map +1 -0
  662. package/esm/node_modules/openai/resources/beta/beta.mjs +24 -0
  663. package/esm/node_modules/openai/resources/beta/beta.mjs.map +1 -0
  664. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs +18 -0
  665. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs.map +1 -0
  666. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs +49 -0
  667. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs.map +1 -0
  668. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs +85 -0
  669. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs.map +1 -0
  670. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs +21 -0
  671. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs.map +1 -0
  672. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs +33 -0
  673. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs.map +1 -0
  674. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs +33 -0
  675. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs.map +1 -0
  676. package/esm/node_modules/openai/resources/beta/threads/messages.mjs +83 -0
  677. package/esm/node_modules/openai/resources/beta/threads/messages.mjs.map +1 -0
  678. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs +183 -0
  679. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs.map +1 -0
  680. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs +45 -0
  681. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs.map +1 -0
  682. package/esm/node_modules/openai/resources/beta/threads/threads.mjs +101 -0
  683. package/esm/node_modules/openai/resources/beta/threads/threads.mjs.map +1 -0
  684. package/esm/node_modules/openai/resources/chat/chat.mjs +15 -0
  685. package/esm/node_modules/openai/resources/chat/chat.mjs.map +1 -0
  686. package/esm/node_modules/openai/resources/chat/completions/completions.mjs +123 -0
  687. package/esm/node_modules/openai/resources/chat/completions/completions.mjs.map +1 -0
  688. package/esm/node_modules/openai/resources/chat/completions/index.mjs +7 -0
  689. package/esm/node_modules/openai/resources/chat/completions/messages.mjs +35 -0
  690. package/esm/node_modules/openai/resources/chat/completions/messages.mjs.map +1 -0
  691. package/esm/node_modules/openai/resources/chat/index.mjs +5 -0
  692. package/esm/node_modules/openai/resources/completions.mjs +20 -0
  693. package/esm/node_modules/openai/resources/completions.mjs.map +1 -0
  694. package/esm/node_modules/openai/resources/containers/containers.mjs +57 -0
  695. package/esm/node_modules/openai/resources/containers/containers.mjs.map +1 -0
  696. package/esm/node_modules/openai/resources/containers/files/content.mjs +23 -0
  697. package/esm/node_modules/openai/resources/containers/files/content.mjs.map +1 -0
  698. package/esm/node_modules/openai/resources/containers/files/files.mjs +63 -0
  699. package/esm/node_modules/openai/resources/containers/files/files.mjs.map +1 -0
  700. package/esm/node_modules/openai/resources/conversations/conversations.mjs +57 -0
  701. package/esm/node_modules/openai/resources/conversations/conversations.mjs.map +1 -0
  702. package/esm/node_modules/openai/resources/conversations/items.mjs +57 -0
  703. package/esm/node_modules/openai/resources/conversations/items.mjs.map +1 -0
  704. package/esm/node_modules/openai/resources/embeddings.mjs +48 -0
  705. package/esm/node_modules/openai/resources/embeddings.mjs.map +1 -0
  706. package/esm/node_modules/openai/resources/evals/evals.mjs +73 -0
  707. package/esm/node_modules/openai/resources/evals/evals.mjs.map +1 -0
  708. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs +35 -0
  709. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs.map +1 -0
  710. package/esm/node_modules/openai/resources/evals/runs/runs.mjs +72 -0
  711. package/esm/node_modules/openai/resources/evals/runs/runs.mjs.map +1 -0
  712. package/esm/node_modules/openai/resources/files.mjs +111 -0
  713. package/esm/node_modules/openai/resources/files.mjs.map +1 -0
  714. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs +15 -0
  715. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs.map +1 -0
  716. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs +60 -0
  717. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs.map +1 -0
  718. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs +15 -0
  719. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs.map +1 -0
  720. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs +102 -0
  721. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs.map +1 -0
  722. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs +24 -0
  723. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs.map +1 -0
  724. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs +34 -0
  725. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs.map +1 -0
  726. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs +148 -0
  727. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs.map +1 -0
  728. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs +8 -0
  729. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs.map +1 -0
  730. package/esm/node_modules/openai/resources/graders/grader-models.mjs +8 -0
  731. package/esm/node_modules/openai/resources/graders/grader-models.mjs.map +1 -0
  732. package/esm/node_modules/openai/resources/graders/graders.mjs +15 -0
  733. package/esm/node_modules/openai/resources/graders/graders.mjs.map +1 -0
  734. package/esm/node_modules/openai/resources/images.mjs +46 -0
  735. package/esm/node_modules/openai/resources/images.mjs.map +1 -0
  736. package/esm/node_modules/openai/resources/index.mjs +27 -0
  737. package/esm/node_modules/openai/resources/models.mjs +44 -0
  738. package/esm/node_modules/openai/resources/models.mjs.map +1 -0
  739. package/esm/node_modules/openai/resources/moderations.mjs +23 -0
  740. package/esm/node_modules/openai/resources/moderations.mjs.map +1 -0
  741. package/esm/node_modules/openai/resources/realtime/calls.mjs +79 -0
  742. package/esm/node_modules/openai/resources/realtime/calls.mjs.map +1 -0
  743. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs +39 -0
  744. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs.map +1 -0
  745. package/esm/node_modules/openai/resources/realtime/realtime.mjs +18 -0
  746. package/esm/node_modules/openai/resources/realtime/realtime.mjs.map +1 -0
  747. package/esm/node_modules/openai/resources/responses/input-items.mjs +31 -0
  748. package/esm/node_modules/openai/resources/responses/input-items.mjs.map +1 -0
  749. package/esm/node_modules/openai/resources/responses/input-tokens.mjs +27 -0
  750. package/esm/node_modules/openai/resources/responses/input-tokens.mjs.map +1 -0
  751. package/esm/node_modules/openai/resources/responses/responses.mjs +110 -0
  752. package/esm/node_modules/openai/resources/responses/responses.mjs.map +1 -0
  753. package/esm/node_modules/openai/resources/skills/content.mjs +22 -0
  754. package/esm/node_modules/openai/resources/skills/content.mjs.map +1 -0
  755. package/esm/node_modules/openai/resources/skills/skills.mjs +69 -0
  756. package/esm/node_modules/openai/resources/skills/skills.mjs.map +1 -0
  757. package/esm/node_modules/openai/resources/skills/versions/content.mjs +23 -0
  758. package/esm/node_modules/openai/resources/skills/versions/content.mjs.map +1 -0
  759. package/esm/node_modules/openai/resources/skills/versions/versions.mjs +58 -0
  760. package/esm/node_modules/openai/resources/skills/versions/versions.mjs.map +1 -0
  761. package/esm/node_modules/openai/resources/uploads/parts.mjs +34 -0
  762. package/esm/node_modules/openai/resources/uploads/parts.mjs.map +1 -0
  763. package/esm/node_modules/openai/resources/uploads/uploads.mjs +84 -0
  764. package/esm/node_modules/openai/resources/uploads/uploads.mjs.map +1 -0
  765. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs +126 -0
  766. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs.map +1 -0
  767. package/esm/node_modules/openai/resources/vector-stores/files.mjs +147 -0
  768. package/esm/node_modules/openai/resources/vector-stores/files.mjs.map +1 -0
  769. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs +87 -0
  770. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs.map +1 -0
  771. package/esm/node_modules/openai/resources/videos.mjs +115 -0
  772. package/esm/node_modules/openai/resources/videos.mjs.map +1 -0
  773. package/esm/node_modules/openai/resources/webhooks/index.mjs +3 -0
  774. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs +69 -0
  775. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs.map +1 -0
  776. package/esm/node_modules/openai/resources/webhooks.mjs +4 -0
  777. package/esm/node_modules/openai/streaming.mjs +3 -0
  778. package/esm/node_modules/openai/version.mjs +6 -0
  779. package/esm/node_modules/openai/version.mjs.map +1 -0
  780. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +9 -0
  781. package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
  782. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +32 -5
  783. package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
  784. package/esm/repositories/adapters/cascade/filter-applicator.mjs +17 -3
  785. package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
  786. package/esm/repositories/repository.manager.d.mts +11 -1
  787. package/esm/repositories/repository.manager.d.mts.map +1 -1
  788. package/esm/repositories/repository.manager.mjs +79 -25
  789. package/esm/repositories/repository.manager.mjs.map +1 -1
  790. package/esm/router/route-registry.mjs +19 -10
  791. package/esm/router/route-registry.mjs.map +1 -1
  792. package/esm/router/router.d.mts.map +1 -1
  793. package/esm/router/router.mjs +7 -4
  794. package/esm/router/router.mjs.map +1 -1
  795. package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
  796. package/esm/storage/drivers/cloud-driver.mjs +48 -12
  797. package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
  798. package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
  799. package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
  800. package/esm/storage/drivers/local-driver.d.mts +8 -0
  801. package/esm/storage/drivers/local-driver.d.mts.map +1 -1
  802. package/esm/storage/drivers/local-driver.mjs +19 -4
  803. package/esm/storage/drivers/local-driver.mjs.map +1 -1
  804. package/esm/storage/drivers/r2-driver.mjs +1 -1
  805. package/esm/storage/drivers/r2-driver.mjs.map +1 -1
  806. package/esm/storage/drivers/s3-driver.mjs +1 -1
  807. package/esm/storage/drivers/s3-driver.mjs.map +1 -1
  808. package/esm/storage/index.d.mts +4 -1
  809. package/esm/storage/index.mjs +3 -0
  810. package/esm/storage/scoped-storage.d.mts +8 -4
  811. package/esm/storage/scoped-storage.d.mts.map +1 -1
  812. package/esm/storage/scoped-storage.mjs +21 -6
  813. package/esm/storage/scoped-storage.mjs.map +1 -1
  814. package/esm/storage/storage.d.mts +12 -4
  815. package/esm/storage/storage.d.mts.map +1 -1
  816. package/esm/storage/storage.mjs +23 -9
  817. package/esm/storage/storage.mjs.map +1 -1
  818. package/esm/storage/types.d.mts +33 -5
  819. package/esm/storage/types.d.mts.map +1 -1
  820. package/esm/storage/utils/contain-path.d.mts +23 -0
  821. package/esm/storage/utils/contain-path.d.mts.map +1 -0
  822. package/esm/storage/utils/contain-path.mjs +35 -0
  823. package/esm/storage/utils/contain-path.mjs.map +1 -0
  824. package/esm/storage/utils/safe-fetch.d.mts +68 -0
  825. package/esm/storage/utils/safe-fetch.d.mts.map +1 -0
  826. package/esm/storage/utils/safe-fetch.mjs +205 -0
  827. package/esm/storage/utils/safe-fetch.mjs.map +1 -0
  828. package/esm/storage/utils/storage-error.d.mts +35 -0
  829. package/esm/storage/utils/storage-error.d.mts.map +1 -0
  830. package/esm/storage/utils/storage-error.mjs +17 -0
  831. package/esm/storage/utils/storage-error.mjs.map +1 -0
  832. package/esm/use-cases/use-case-pipeline.mjs +4 -1
  833. package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
  834. package/esm/use-cases/use-case.mjs +12 -4
  835. package/esm/use-cases/use-case.mjs.map +1 -1
  836. package/esm/use-cases/use-cases-registry.d.mts +12 -4
  837. package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
  838. package/esm/use-cases/use-cases-registry.mjs +13 -3
  839. package/esm/use-cases/use-cases-registry.mjs.map +1 -1
  840. package/esm/utils/npm-registry.d.mts +1 -1
  841. package/esm/utils/npm-registry.mjs +2 -2
  842. package/esm/utils/npm-registry.mjs.map +1 -1
  843. package/llms-full.txt +29 -1
  844. package/package.json +9 -9
  845. package/skills/add-connector/SKILL.md +6 -1
  846. package/skills/configure-app/SKILL.md +23 -0
@@ -0,0 +1,59 @@
1
+ //#region ../@warlock.js/ai/src/config.ts
2
+ const aiConfig = {};
3
+ const configListeners = [];
4
+ /**
5
+ * Set or extend process-wide AI configuration. Merges over existing
6
+ * values — fields not present in `partial` keep whatever was set
7
+ * before (or stay unset). Call once at app boot, before constructing
8
+ * any agent / supervisor / middleware that should pick up the
9
+ * defaults.
10
+ *
11
+ * Returns the merged config so callers can verify what landed.
12
+ *
13
+ * @example
14
+ * import { cache } from "@warlock.js/cache";
15
+ * import { ai } from "@warlock.js/ai";
16
+ *
17
+ * ai.config({ defaultStore: cache.driver("redis", { client }) });
18
+ */
19
+ function setAIConfig(partial) {
20
+ Object.assign(aiConfig, partial);
21
+ const snapshot = { ...aiConfig };
22
+ for (const listener of configListeners) try {
23
+ listener(snapshot);
24
+ } catch {}
25
+ return snapshot;
26
+ }
27
+ /**
28
+ * Resolve the effective `@warlock.js/cache` driver for a cache-backed
29
+ * consumer that didn't receive an explicit one. Returns the global
30
+ * `defaultStore` if set, otherwise `undefined`. The semantic-cache
31
+ * middleware treats `undefined` as fatal and throws. Snapshot
32
+ * persistence no longer consults this — it resolves through
33
+ * {@link resolveDefaultSnapshotStore}.
34
+ */
35
+ function resolveDefaultStore() {
36
+ return aiConfig.defaultStore;
37
+ }
38
+ /**
39
+ * Resolve the global default {@link CheckpointStore} for an
40
+ * orchestrator that didn't receive an explicit `checkpointStore`.
41
+ * Returns `undefined` when none is configured — the orchestrator
42
+ * factory decides whether that's fatal.
43
+ */
44
+ function resolveDefaultCheckpointStore() {
45
+ return aiConfig.defaultCheckpointStore;
46
+ }
47
+ /**
48
+ * Resolve the global default {@link SnapshotStore} for an orchestrator
49
+ * that didn't receive an explicit `snapshotStore`. Returns `undefined`
50
+ * when none is configured — the orchestrator factory decides whether
51
+ * that's fatal (it is, when `iterate: true`).
52
+ */
53
+ function resolveDefaultSnapshotStore() {
54
+ return aiConfig.defaultSnapshotStore;
55
+ }
56
+
57
+ //#endregion
58
+ export { resolveDefaultCheckpointStore, resolveDefaultSnapshotStore, resolveDefaultStore, setAIConfig };
59
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","names":[],"sources":["../../../../../../../../@warlock.js/ai/src/config.ts"],"sourcesContent":["import type { CacheDriver } from \"@warlock.js/cache\";\nimport type { CheckpointStore } from \"./contracts/orchestrator/checkpoint-store.contract\";\nimport type { SnapshotStore } from \"./contracts/orchestrator/snapshot-store.contract\";\n\n/**\n * Process-wide `@warlock.js/ai` configuration. **Intentionally tiny.**\n * Lives here only for genuinely cross-cutting defaults that would\n * otherwise force users to wire the same value into every consumer.\n *\n * **What lives here.** A field earns a slot only when it satisfies\n * all three:\n * 1. Multiple unrelated consumers need the same value.\n * 2. The value is infrastructure (drivers, clients, pools), not\n * behavior (kill-switches, mode flags).\n * 3. Per-call override doesn't make sense for the use case.\n *\n * **What does NOT live here.** Logger config (use\n * `@warlock.js/logger` directly). Per-primitive feature flags\n * (live on the relevant config type). Anything that's really one\n * consumer's concern (lives on that consumer).\n *\n * Phase 3.2 deliberately removed the previous `configureAI()` bag\n * because it was growing unbounded. Treat new fields here with the\n * same suspicion.\n *\n * **Augmentable.** Declared as an `interface` (not a `type` alias) so\n * observability/tooling packages can attach their own opaque config slot\n * via declaration merging WITHOUT core importing them — keeping core\n * dependency-free. For example `@warlock.js/ai-panoptic` adds a\n * `panoptic?` field:\n *\n * ```ts\n * declare module \"@warlock.js/ai\" {\n * interface AIConfig {\n * panoptic?: PanopticConfig;\n * }\n * }\n * ```\n *\n * `setAIConfig` stores the whole object via `Object.assign`, so any\n * augmented field is preserved even though core never reads it.\n */\nexport interface AIConfig {\n /**\n * Default `@warlock.js/cache` driver for cache-backed consumers that\n * didn't supply their own `store` — currently the `semanticCache`\n * middleware's vector store. Declaring it once here removes the\n * repetition across middleware declarations.\n *\n * NOT the snapshot-persistence fallback anymore. Supervisor /\n * workflow / orchestrator resume snapshots resolve through\n * {@link AIConfig.defaultSnapshotStore} (a {@link SnapshotStore}),\n * never this driver.\n *\n * Per-declaration overrides (`semanticCache({ store })`) win when\n * supplied. Set this once at app boot, *after* you've constructed\n * your driver.\n *\n * @example\n * import { cache } from \"@warlock.js/cache\";\n * import { ai } from \"@warlock.js/ai\";\n *\n * ai.config({\n * defaultStore: cache.driver(\"redis\", { client: redisClient }),\n * });\n */\n defaultStore?: CacheDriver<any, any>;\n\n /**\n * Default {@link CheckpointStore} for every orchestrator that didn't\n * supply its own `checkpointStore` (orchestrator.md §15.2). Holds\n * durable session state — `state`, `turn_index`, drift `signature`,\n * compaction locks. Per-orchestrator `checkpointStore` wins when\n * supplied. Set once at app boot.\n *\n * @example\n * import { ai } from \"@warlock.js/ai\";\n *\n * ai.config({ defaultCheckpointStore: ai.checkpoint.memory() });\n */\n defaultCheckpointStore?: CheckpointStore;\n\n /**\n * Default {@link SnapshotStore} for every orchestrator that didn't\n * supply its own `snapshotStore` (orchestrator.md §15.2). Holds the\n * internal supervisor run state used to resume an interrupted\n * `iterate: true` turn. Per-orchestrator `snapshotStore` wins when\n * supplied. Set once at app boot.\n *\n * @example\n * import { ai } from \"@warlock.js/ai\";\n *\n * ai.config({ defaultSnapshotStore: ai.snapshot.memory() });\n */\n defaultSnapshotStore?: SnapshotStore;\n};\n\nconst aiConfig: AIConfig = {};\n\n/** A listener notified after every `setAIConfig` merge. */\ntype ConfigListener = (config: AIConfig) => void;\n\nconst configListeners: ConfigListener[] = [];\n\n/**\n * Subscribe to config changes. The listener fires after every\n * {@link setAIConfig} merge with a fresh snapshot of the full config —\n * the seam observability/tooling packages use to react when their\n * augmented slot (e.g. `panoptic`) is set, WITHOUT core importing them.\n *\n * Mirrors the dependency-inversion of the `Observer` registry: core\n * exposes the structural hook; the tool subscribes on its side-effect\n * import. To also catch config that was applied *before* the subscription,\n * read {@link getAIConfig} once right after subscribing.\n *\n * @example\n * import { onConfigApplied, getAIConfig } from \"@warlock.js/ai\";\n * onConfigApplied((config) => applyPanopticConfig(config.panoptic));\n * applyPanopticConfig(getAIConfig().panoptic); // catch pre-set config\n */\nexport function onConfigApplied(listener: ConfigListener): void {\n configListeners.push(listener);\n}\n\n/**\n * Set or extend process-wide AI configuration. Merges over existing\n * values — fields not present in `partial` keep whatever was set\n * before (or stay unset). Call once at app boot, before constructing\n * any agent / supervisor / middleware that should pick up the\n * defaults.\n *\n * Returns the merged config so callers can verify what landed.\n *\n * @example\n * import { cache } from \"@warlock.js/cache\";\n * import { ai } from \"@warlock.js/ai\";\n *\n * ai.config({ defaultStore: cache.driver(\"redis\", { client }) });\n */\nexport function setAIConfig(partial: Partial<AIConfig>): AIConfig {\n Object.assign(aiConfig, partial);\n const snapshot = { ...aiConfig };\n\n // Notify subscribers (e.g. panoptic) after the merge. Errors are\n // swallowed so a misbehaving listener never breaks config application,\n // mirroring the observer / onUsage swallow-on-throw discipline.\n for (const listener of configListeners) {\n try {\n listener(snapshot);\n } catch {\n // intentionally ignored\n }\n }\n\n return snapshot;\n}\n\n/**\n * Read the current AI config snapshot. Returns a shallow copy so\n * callers can't accidentally mutate the source of truth. Used\n * internally by consumers to resolve their `defaultStore` fallback.\n */\nexport function getAIConfig(): AIConfig {\n return { ...aiConfig };\n}\n\n/**\n * Resolve the effective `@warlock.js/cache` driver for a cache-backed\n * consumer that didn't receive an explicit one. Returns the global\n * `defaultStore` if set, otherwise `undefined`. The semantic-cache\n * middleware treats `undefined` as fatal and throws. Snapshot\n * persistence no longer consults this — it resolves through\n * {@link resolveDefaultSnapshotStore}.\n */\nexport function resolveDefaultStore(): CacheDriver<any, any> | undefined {\n return aiConfig.defaultStore;\n}\n\n/**\n * Resolve the global default {@link CheckpointStore} for an\n * orchestrator that didn't receive an explicit `checkpointStore`.\n * Returns `undefined` when none is configured — the orchestrator\n * factory decides whether that's fatal.\n */\nexport function resolveDefaultCheckpointStore(): CheckpointStore | undefined {\n return aiConfig.defaultCheckpointStore;\n}\n\n/**\n * Resolve the global default {@link SnapshotStore} for an orchestrator\n * that didn't receive an explicit `snapshotStore`. Returns `undefined`\n * when none is configured — the orchestrator factory decides whether\n * that's fatal (it is, when `iterate: true`).\n */\nexport function resolveDefaultSnapshotStore(): SnapshotStore | undefined {\n return aiConfig.defaultSnapshotStore;\n}\n"],"mappings":";AAiGA,MAAM,WAAqB,CAAC;AAK5B,MAAM,kBAAoC,CAAC;;;;;;;;;;;;;;;;AAqC3C,SAAgB,YAAY,SAAsC;CAChE,OAAO,OAAO,UAAU,OAAO;CAC/B,MAAM,WAAW,EAAE,GAAG,SAAS;CAK/B,KAAK,MAAM,YAAY,iBACrB,IAAI;EACF,SAAS,QAAQ;CACnB,QAAQ,CAER;CAGF,OAAO;AACT;;;;;;;;;AAmBA,SAAgB,sBAAyD;CACvE,OAAO,SAAS;AAClB;;;;;;;AAQA,SAAgB,gCAA6D;CAC3E,OAAO,SAAS;AAClB;;;;;;;AAQA,SAAgB,8BAAyD;CACvE,OAAO,SAAS;AAClB"}
@@ -0,0 +1,47 @@
1
+ //#region ../@warlock.js/ai/src/contracts/end.type.ts
2
+ /**
3
+ * Framework-global termination sentinel. Emitted by any primitive
4
+ * whose control flow is routed through JSON-serializable strings —
5
+ * supervisor (router agent's `next`, deterministic `route` callback),
6
+ * future planner (plan steps), future orchestrator (session
7
+ * directive), any future primitive that needs to say "stop" across a
8
+ * wire that can't carry `null`.
9
+ *
10
+ * **Why one shared literal.** Consumers learn one word. Cross-
11
+ * primitive pipes — a planner feeding a supervisor, a supervisor
12
+ * nested as a tool inside an orchestrator — can pass the sentinel
13
+ * through without translation.
14
+ *
15
+ * **Why this specific string.** Brand-prefixed (`__warlock:`) so it
16
+ * can't collide with a realistic user-chosen intent / step / route
17
+ * key (`"end"`, `"done"`, `"stop"` are all valid user keys).
18
+ * Underscore-surrounded so it stands out in logs and snapshots.
19
+ * JSON-safe so a router agent emits it verbatim.
20
+ *
21
+ * **Not used by every primitive.** Workflow's `nextStep` returns
22
+ * `null` to end — a callback-level mechanism that predates this
23
+ * sentinel. Workflows keep `null`; the sentinel is for primitives
24
+ * whose "end" must survive a JSON boundary.
25
+ *
26
+ * @example
27
+ * import { END } from "@warlock.js/ai";
28
+ *
29
+ * // Supervisor route callback
30
+ * ai.supervisor({
31
+ * intents: { writer, critic },
32
+ * route: (ctx) => (ctx.iteration >= 5 ? END : "writer"),
33
+ * });
34
+ *
35
+ * // Router agent output schema
36
+ * const router = ai.agent({
37
+ * model,
38
+ * output: z.object({
39
+ * next: z.union([z.string(), z.array(z.string()), z.literal(END)]),
40
+ * }),
41
+ * });
42
+ */
43
+ const END = "__warlock:end__";
44
+
45
+ //#endregion
46
+ export { END };
47
+ //# sourceMappingURL=end.type.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end.type.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/contracts/end.type.ts"],"sourcesContent":["/**\n * Framework-global termination sentinel. Emitted by any primitive\n * whose control flow is routed through JSON-serializable strings —\n * supervisor (router agent's `next`, deterministic `route` callback),\n * future planner (plan steps), future orchestrator (session\n * directive), any future primitive that needs to say \"stop\" across a\n * wire that can't carry `null`.\n *\n * **Why one shared literal.** Consumers learn one word. Cross-\n * primitive pipes — a planner feeding a supervisor, a supervisor\n * nested as a tool inside an orchestrator — can pass the sentinel\n * through without translation.\n *\n * **Why this specific string.** Brand-prefixed (`__warlock:`) so it\n * can't collide with a realistic user-chosen intent / step / route\n * key (`\"end\"`, `\"done\"`, `\"stop\"` are all valid user keys).\n * Underscore-surrounded so it stands out in logs and snapshots.\n * JSON-safe so a router agent emits it verbatim.\n *\n * **Not used by every primitive.** Workflow's `nextStep` returns\n * `null` to end — a callback-level mechanism that predates this\n * sentinel. Workflows keep `null`; the sentinel is for primitives\n * whose \"end\" must survive a JSON boundary.\n *\n * @example\n * import { END } from \"@warlock.js/ai\";\n *\n * // Supervisor route callback\n * ai.supervisor({\n * intents: { writer, critic },\n * route: (ctx) => (ctx.iteration >= 5 ? END : \"writer\"),\n * });\n *\n * // Router agent output schema\n * const router = ai.agent({\n * model,\n * output: z.object({\n * next: z.union([z.string(), z.array(z.string()), z.literal(END)]),\n * }),\n * });\n */\nexport const END = \"__warlock:end__\" as const;\n\n/**\n * Value type of `END`. Exposed so consumers building Zod / Standard\n * Schema output schemas can write `z.literal(END)` without\n * hard-coding the string, and so generic helpers that accept \"the\n * end sentinel\" can type-narrow correctly.\n */\nexport type EndSentinel = typeof END;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAa,MAAM"}
@@ -0,0 +1,43 @@
1
+ import { AgentExecutionError } from "./agent-execution-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/agent-cancelled-error.ts
4
+ /**
5
+ * Agent run was cancelled via `AbortSignal` before it could finish.
6
+ * Between-trip cancellation is guaranteed; mid-trip cancellation is
7
+ * best-effort (the signal is threaded into the provider adapter's
8
+ * HTTP client when supported).
9
+ *
10
+ * Surfaced on `result.error` rather than thrown — `agent.execute()`
11
+ * still returns with `report.status = "cancelled"` and partial trip
12
+ * history intact. Consumers branch on the class (not the message) to
13
+ * distinguish caller-initiated stops from other failures.
14
+ *
15
+ * **Why split from `AgentExecutionError`.** Cancellation is a
16
+ * different operational signal from "the agent crashed" — retry
17
+ * policy and dashboards typically want different behavior for each.
18
+ * Keeping cancellation in its own class lets the category
19
+ * (`"cancelled"`) be set declaratively per type instead of inferred
20
+ * from a `context.cancelled === true` flag.
21
+ *
22
+ * @example
23
+ * const result = await agent.execute(input, { signal });
24
+ * if (result.error instanceof AgentCancelledError) {
25
+ * // caller pulled the plug — don't retry, surface a "stopped" UI
26
+ * return { status: "cancelled" };
27
+ * }
28
+ */
29
+ var AgentCancelledError = class extends AgentExecutionError {
30
+ static {
31
+ this.defaultCategory = "cancelled";
32
+ }
33
+ constructor(message, options) {
34
+ super(message, options, "AGENT_CANCELLED");
35
+ this.name = "AgentCancelledError";
36
+ this.cancelledAt = options?.cancelledAt;
37
+ this.reason = options?.reason;
38
+ }
39
+ };
40
+
41
+ //#endregion
42
+ export { AgentCancelledError };
43
+ //# sourceMappingURL=agent-cancelled-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-cancelled-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/agent-cancelled-error.ts"],"sourcesContent":["import { AgentExecutionError } from \"./agent-execution-error\";\nimport type { AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\n\n/**\n * Payload for {@link AgentCancelledError}. `cancelledAt` is the\n * ISO-8601 timestamp at which the abort was observed; `reason`\n * carries the value the caller supplied to `controller.abort(reason)`\n * when present.\n */\nexport type AgentCancelledErrorOptions = AIErrorOptions & {\n cancelledAt?: string;\n reason?: string;\n};\n\n/**\n * Agent run was cancelled via `AbortSignal` before it could finish.\n * Between-trip cancellation is guaranteed; mid-trip cancellation is\n * best-effort (the signal is threaded into the provider adapter's\n * HTTP client when supported).\n *\n * Surfaced on `result.error` rather than thrown — `agent.execute()`\n * still returns with `report.status = \"cancelled\"` and partial trip\n * history intact. Consumers branch on the class (not the message) to\n * distinguish caller-initiated stops from other failures.\n *\n * **Why split from `AgentExecutionError`.** Cancellation is a\n * different operational signal from \"the agent crashed\" — retry\n * policy and dashboards typically want different behavior for each.\n * Keeping cancellation in its own class lets the category\n * (`\"cancelled\"`) be set declaratively per type instead of inferred\n * from a `context.cancelled === true` flag.\n *\n * @example\n * const result = await agent.execute(input, { signal });\n * if (result.error instanceof AgentCancelledError) {\n * // caller pulled the plug — don't retry, surface a \"stopped\" UI\n * return { status: \"cancelled\" };\n * }\n */\nexport class AgentCancelledError extends AgentExecutionError {\n public static readonly defaultCategory: ErrorCategory = \"cancelled\";\n\n public readonly cancelledAt?: string;\n public readonly reason?: string;\n\n public constructor(message: string, options?: AgentCancelledErrorOptions) {\n super(message, options, \"AGENT_CANCELLED\");\n this.name = \"AgentCancelledError\";\n this.cancelledAt = options?.cancelledAt;\n this.reason = options?.reason;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAa,sBAAb,cAAyC,oBAAoB;;yBACH;;CAKxD,AAAO,YAAY,SAAiB,SAAsC;EACxE,MAAM,SAAS,SAAS,iBAAiB;EACzC,KAAK,OAAO;EACZ,KAAK,cAAc,SAAS;EAC5B,KAAK,SAAS,SAAS;CACzB;AACF"}
@@ -0,0 +1,35 @@
1
+ import { AIError } from "./ai-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/agent-execution-error.ts
4
+ /**
5
+ * Base for agent runtime failures that aren't schema / tool / provider
6
+ * problems — runtime-structural issues inside the trip loop or
7
+ * authoring-time middleware misconfiguration. Two specialized
8
+ * subclasses cover the two non-generic cases:
9
+ *
10
+ * - {@link AgentCancelledError} (`AGENT_CANCELLED`) — caller-driven
11
+ * abort via `AbortSignal`.
12
+ * - {@link AgentMaxTripsError} (`AGENT_MAX_TRIPS`) — trip loop hit
13
+ * the `maxTrips` cap without a natural stop.
14
+ *
15
+ * Use the base class directly for anything else (unregistered tool
16
+ * dispatch, authoring-time middleware validation, surprise
17
+ * exceptions). The subclasses exist so consumers can branch on a
18
+ * dedicated `instanceof` / category without inferring from `context`
19
+ * flags or parsing the message.
20
+ *
21
+ * @example
22
+ * if (result.error?.code === "AGENT_EXEC_FAILED") {
23
+ * logger.warn("unexpected agent failure", result.error.context);
24
+ * }
25
+ */
26
+ var AgentExecutionError = class extends AIError {
27
+ constructor(message, options, code = "AGENT_EXEC_FAILED") {
28
+ super(code, message, options);
29
+ this.name = "AgentExecutionError";
30
+ }
31
+ };
32
+
33
+ //#endregion
34
+ export { AgentExecutionError };
35
+ //# sourceMappingURL=agent-execution-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-execution-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/agent-execution-error.ts"],"sourcesContent":["import { AIError, type AIErrorOptions } from \"./ai-error\";\nimport type { AIErrorCode } from \"./error-code.type\";\n\n/**\n * Base for agent runtime failures that aren't schema / tool / provider\n * problems — runtime-structural issues inside the trip loop or\n * authoring-time middleware misconfiguration. Two specialized\n * subclasses cover the two non-generic cases:\n *\n * - {@link AgentCancelledError} (`AGENT_CANCELLED`) — caller-driven\n * abort via `AbortSignal`.\n * - {@link AgentMaxTripsError} (`AGENT_MAX_TRIPS`) — trip loop hit\n * the `maxTrips` cap without a natural stop.\n *\n * Use the base class directly for anything else (unregistered tool\n * dispatch, authoring-time middleware validation, surprise\n * exceptions). The subclasses exist so consumers can branch on a\n * dedicated `instanceof` / category without inferring from `context`\n * flags or parsing the message.\n *\n * @example\n * if (result.error?.code === \"AGENT_EXEC_FAILED\") {\n * logger.warn(\"unexpected agent failure\", result.error.context);\n * }\n */\nexport class AgentExecutionError extends AIError {\n public constructor(\n message: string,\n options?: AIErrorOptions,\n code: AIErrorCode = \"AGENT_EXEC_FAILED\",\n ) {\n super(code, message, options);\n this.name = \"AgentExecutionError\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAa,sBAAb,cAAyC,QAAQ;CAC/C,AAAO,YACL,SACA,SACA,OAAoB,qBACpB;EACA,MAAM,MAAM,SAAS,OAAO;EAC5B,KAAK,OAAO;CACd;AACF"}
@@ -0,0 +1,41 @@
1
+ import { AgentExecutionError } from "./agent-execution-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/agent-max-trips-error.ts
4
+ /**
5
+ * Runaway-loop hard guard: the agent's trip loop ran `maxTrips` round
6
+ * trips to the model without the model issuing a natural stop. The
7
+ * loop terminates with this typed error on `result.error` and the
8
+ * full trip history preserved in `result.report.trips` so consumers
9
+ * can see where the loop got stuck.
10
+ *
11
+ * **Not retryable by default.** A run that hit the cap usually
12
+ * indicates either a tool the agent can't satisfy (causing infinite
13
+ * re-asks) or a model that won't commit to an answer. Bumping
14
+ * `maxTrips` and retrying without root-causing the underlying issue
15
+ * just burns more tokens.
16
+ *
17
+ * **Why split from `AgentExecutionError`.** The catch-all base wears
18
+ * too many hats — cancellation vs. max-trips vs. generic crashes had
19
+ * to be disambiguated from `context` flags or message regex. Split
20
+ * subclasses let category dispatch (`"max-trips"`) and consumer
21
+ * branching (`instanceof`) work without inference.
22
+ *
23
+ * @example
24
+ * if (result.error instanceof AgentMaxTripsError) {
25
+ * logger.warn("agent hit trip cap", { max: result.error.maxTrips });
26
+ * }
27
+ */
28
+ var AgentMaxTripsError = class extends AgentExecutionError {
29
+ static {
30
+ this.defaultCategory = "max-trips";
31
+ }
32
+ constructor(message, options) {
33
+ super(message, options, "AGENT_MAX_TRIPS");
34
+ this.name = "AgentMaxTripsError";
35
+ this.maxTrips = options.maxTrips;
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ export { AgentMaxTripsError };
41
+ //# sourceMappingURL=agent-max-trips-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-max-trips-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/agent-max-trips-error.ts"],"sourcesContent":["import { AgentExecutionError } from \"./agent-execution-error\";\nimport type { AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\n\n/**\n * Payload for {@link AgentMaxTripsError}. `maxTrips` is the cap the\n * agent hit — useful for log/metric attribution and for retry-with-\n * higher-cap recovery strategies.\n */\nexport type AgentMaxTripsErrorOptions = AIErrorOptions & {\n maxTrips: number;\n};\n\n/**\n * Runaway-loop hard guard: the agent's trip loop ran `maxTrips` round\n * trips to the model without the model issuing a natural stop. The\n * loop terminates with this typed error on `result.error` and the\n * full trip history preserved in `result.report.trips` so consumers\n * can see where the loop got stuck.\n *\n * **Not retryable by default.** A run that hit the cap usually\n * indicates either a tool the agent can't satisfy (causing infinite\n * re-asks) or a model that won't commit to an answer. Bumping\n * `maxTrips` and retrying without root-causing the underlying issue\n * just burns more tokens.\n *\n * **Why split from `AgentExecutionError`.** The catch-all base wears\n * too many hats — cancellation vs. max-trips vs. generic crashes had\n * to be disambiguated from `context` flags or message regex. Split\n * subclasses let category dispatch (`\"max-trips\"`) and consumer\n * branching (`instanceof`) work without inference.\n *\n * @example\n * if (result.error instanceof AgentMaxTripsError) {\n * logger.warn(\"agent hit trip cap\", { max: result.error.maxTrips });\n * }\n */\nexport class AgentMaxTripsError extends AgentExecutionError {\n public static readonly defaultCategory: ErrorCategory = \"max-trips\";\n\n public readonly maxTrips: number;\n\n public constructor(message: string, options: AgentMaxTripsErrorOptions) {\n super(message, options, \"AGENT_MAX_TRIPS\");\n this.name = \"AgentMaxTripsError\";\n this.maxTrips = options.maxTrips;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,IAAa,qBAAb,cAAwC,oBAAoB;;yBACF;;CAIxD,AAAO,YAAY,SAAiB,SAAoC;EACtE,MAAM,SAAS,SAAS,iBAAiB;EACzC,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;CAC1B;AACF"}
@@ -0,0 +1,68 @@
1
+ //#region ../@warlock.js/ai/src/errors/ai-error.ts
2
+ /**
3
+ * Base class for every error thrown (or surfaced via `result.error`) by
4
+ * `@warlock.js/ai` and its provider adapter packages.
5
+ *
6
+ * **Role.** The single typed error contract across the AI framework.
7
+ * Every thrown error anywhere in `@warlock.js/ai*` is either an
8
+ * `AIError` itself or one of its subclasses — plain `Error` must never
9
+ * leak out. Consumers branch either on the narrow `error.code` (stable
10
+ * string), on `error.category` (coarse dashboard grouping), or on
11
+ * `instanceof` a specific subclass.
12
+ *
13
+ * **Independence.** Deliberately extends the platform `Error` directly
14
+ * — never `HttpError` from `@warlock.js/core`. The AI framework is a
15
+ * standalone product; coupling its error base to a web framework would
16
+ * force every consumer to pull in the HTTP layer even when they only
17
+ * use AI in a CLI, worker, or test.
18
+ *
19
+ * **Fields.**
20
+ * - `code` — stable machine-readable identifier (see `AIErrorCode`).
21
+ * - `category` — coarse `ErrorCategory` for dashboards / retry policy.
22
+ * Resolved at construction from the subclass's `static defaultCategory`
23
+ * (or, for direct `new AIError(...)` calls, from the explicit 4th
24
+ * constructor argument).
25
+ * - `cause` — optional original thrown value (SDK error, nested error,
26
+ * raw value). Preserves root cause through re-wrapping.
27
+ * - `context` — optional free-form diagnostic bag (status, requestId,
28
+ * headers). Consumers treat it as opaque; logs and telemetry read it.
29
+ *
30
+ * **Category override — direct AIError usage only.** Subclasses ARE
31
+ * their category by type; there's no legitimate runtime override at
32
+ * the subclass level. The 4th constructor argument exists ONLY for
33
+ * direct `new AIError(...)` callers, who would otherwise be stuck with
34
+ * the `"unknown"` default. Subclasses construct via `super(code,
35
+ * message, options)` and physically cannot reach the override slot
36
+ * through their own typed signatures.
37
+ *
38
+ * @example
39
+ * try {
40
+ * await agent.execute("hello");
41
+ * } catch (error) {
42
+ * if (error instanceof AIError) {
43
+ * console.error(`[${error.code}] (${error.category}) ${error.message}`);
44
+ * }
45
+ * }
46
+ *
47
+ * @example
48
+ * // Direct AIError construction with explicit category — escape hatch
49
+ * // for call sites that lack a specific subclass.
50
+ * throw new AIError("UNEXPECTED", "transient glitch", undefined, "provider");
51
+ */
52
+ var AIError = class extends Error {
53
+ static {
54
+ this.defaultCategory = "unknown";
55
+ }
56
+ constructor(code, message, options, category) {
57
+ super(message);
58
+ this.name = "AIError";
59
+ this.code = code;
60
+ this.context = options?.context;
61
+ this.category = category ?? this.constructor.defaultCategory;
62
+ if (options?.cause !== void 0) this.cause = options.cause;
63
+ }
64
+ };
65
+
66
+ //#endregion
67
+ export { AIError };
68
+ //# sourceMappingURL=ai-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/ai-error.ts"],"sourcesContent":["import type { ErrorCategory } from \"./error-category.type\";\nimport type { AIErrorCode } from \"./error-code.type\";\n\n/**\n * Optional constructor payload shared by every `AIError` subclass.\n *\n * `cause` carries the original thrown value (SDK error, runtime crash,\n * validation failure) so downstream logging and debuggers can still\n * reach it. `context` is a free-form diagnostic bag for provider-raw\n * metadata (status codes, request ids, response headers) that shouldn't\n * be promoted to typed fields but is useful in logs and telemetry.\n *\n * **No `category` here.** Category is fixed per subclass via the\n * class-level `static defaultCategory`. Subclasses ARE their\n * category — `RateLimitError` is always `\"rate-limit\"`, never\n * something else at runtime. Direct `new AIError(...)` callers (the\n * one legitimate override case, since the base catch-all has no\n * specific class) receive a separate 4th constructor argument\n * instead, so the override is structurally unreachable from subclass\n * call sites.\n */\nexport type AIErrorOptions = {\n cause?: unknown;\n context?: Record<string, unknown>;\n};\n\n/**\n * Base class for every error thrown (or surfaced via `result.error`) by\n * `@warlock.js/ai` and its provider adapter packages.\n *\n * **Role.** The single typed error contract across the AI framework.\n * Every thrown error anywhere in `@warlock.js/ai*` is either an\n * `AIError` itself or one of its subclasses — plain `Error` must never\n * leak out. Consumers branch either on the narrow `error.code` (stable\n * string), on `error.category` (coarse dashboard grouping), or on\n * `instanceof` a specific subclass.\n *\n * **Independence.** Deliberately extends the platform `Error` directly\n * — never `HttpError` from `@warlock.js/core`. The AI framework is a\n * standalone product; coupling its error base to a web framework would\n * force every consumer to pull in the HTTP layer even when they only\n * use AI in a CLI, worker, or test.\n *\n * **Fields.**\n * - `code` — stable machine-readable identifier (see `AIErrorCode`).\n * - `category` — coarse `ErrorCategory` for dashboards / retry policy.\n * Resolved at construction from the subclass's `static defaultCategory`\n * (or, for direct `new AIError(...)` calls, from the explicit 4th\n * constructor argument).\n * - `cause` — optional original thrown value (SDK error, nested error,\n * raw value). Preserves root cause through re-wrapping.\n * - `context` — optional free-form diagnostic bag (status, requestId,\n * headers). Consumers treat it as opaque; logs and telemetry read it.\n *\n * **Category override — direct AIError usage only.** Subclasses ARE\n * their category by type; there's no legitimate runtime override at\n * the subclass level. The 4th constructor argument exists ONLY for\n * direct `new AIError(...)` callers, who would otherwise be stuck with\n * the `\"unknown\"` default. Subclasses construct via `super(code,\n * message, options)` and physically cannot reach the override slot\n * through their own typed signatures.\n *\n * @example\n * try {\n * await agent.execute(\"hello\");\n * } catch (error) {\n * if (error instanceof AIError) {\n * console.error(`[${error.code}] (${error.category}) ${error.message}`);\n * }\n * }\n *\n * @example\n * // Direct AIError construction with explicit category — escape hatch\n * // for call sites that lack a specific subclass.\n * throw new AIError(\"UNEXPECTED\", \"transient glitch\", undefined, \"provider\");\n */\nexport class AIError extends Error {\n /**\n * Class-level category for every instance of this error type.\n * Subclasses redeclare with their own concrete `ErrorCategory` so\n * `error.category` is correct without per-call wiring. The base\n * class keeps `\"unknown\"` so untyped direct throws of `AIError`\n * itself remain honest about their lack of dispatch information\n * (and can override via the 4th constructor argument).\n */\n public static readonly defaultCategory: ErrorCategory = \"unknown\";\n\n public readonly code: AIErrorCode;\n public readonly category: ErrorCategory;\n public readonly context?: Record<string, unknown>;\n\n public constructor(\n code: AIErrorCode,\n message: string,\n options?: AIErrorOptions,\n category?: ErrorCategory,\n ) {\n super(message);\n\n this.name = \"AIError\";\n this.code = code;\n this.context = options?.context;\n this.category = category ?? (this.constructor as typeof AIError).defaultCategory;\n\n if (options?.cause !== undefined) {\n (this as { cause?: unknown }).cause = options.cause;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA,IAAa,UAAb,cAA6B,MAAM;;yBASuB;;CAMxD,AAAO,YACL,MACA,SACA,SACA,UACA;EACA,MAAM,OAAO;EAEb,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,KAAK,UAAU,SAAS;EACxB,KAAK,WAAW,YAAa,KAAK,YAA+B;EAEjE,IAAI,SAAS,UAAU,QACrB,AAAC,KAA6B,QAAQ,QAAQ;CAElD;AACF"}
@@ -0,0 +1,31 @@
1
+ import { AIError } from "./ai-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/budget-exceeded-error.ts
4
+ /**
5
+ * A user- or framework-configured budget was exceeded mid-execution.
6
+ *
7
+ * **Not thrown yet.** The class is defined here so v2's budget
8
+ * middleware can throw it without a breaking release of the error
9
+ * hierarchy. Shape is locked: `{ limit, actual, unit }`.
10
+ *
11
+ * @example
12
+ * if (error instanceof BudgetExceededError && error.unit === "usd") {
13
+ * alertFinance(error.actual, error.limit);
14
+ * }
15
+ */
16
+ var BudgetExceededError = class extends AIError {
17
+ static {
18
+ this.defaultCategory = "budget";
19
+ }
20
+ constructor(message, options) {
21
+ super("BUDGET_EXCEEDED", message, options);
22
+ this.name = "BudgetExceededError";
23
+ this.limit = options.limit;
24
+ this.actual = options.actual;
25
+ this.unit = options.unit;
26
+ }
27
+ };
28
+
29
+ //#endregion
30
+ export { BudgetExceededError };
31
+ //# sourceMappingURL=budget-exceeded-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-exceeded-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/budget-exceeded-error.ts"],"sourcesContent":["import { AIError, type AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\n\n/**\n * Unit of the budget being enforced. `tokens` for context/output\n * caps, `usd` for monetary caps, `requests` for call-count caps.\n */\nexport type BudgetUnit = \"tokens\" | \"usd\" | \"requests\";\n\n/**\n * Payload for `BudgetExceededError`. All three fields are required so\n * consumers can present the breach numerically without having to\n * reparse the message.\n */\nexport type BudgetExceededErrorOptions = AIErrorOptions & {\n limit: number;\n actual: number;\n unit: BudgetUnit;\n};\n\n/**\n * A user- or framework-configured budget was exceeded mid-execution.\n *\n * **Not thrown yet.** The class is defined here so v2's budget\n * middleware can throw it without a breaking release of the error\n * hierarchy. Shape is locked: `{ limit, actual, unit }`.\n *\n * @example\n * if (error instanceof BudgetExceededError && error.unit === \"usd\") {\n * alertFinance(error.actual, error.limit);\n * }\n */\nexport class BudgetExceededError extends AIError {\n public static readonly defaultCategory: ErrorCategory = \"budget\";\n\n public readonly limit: number;\n public readonly actual: number;\n public readonly unit: BudgetUnit;\n\n public constructor(message: string, options: BudgetExceededErrorOptions) {\n super(\"BUDGET_EXCEEDED\", message, options);\n this.name = \"BudgetExceededError\";\n this.limit = options.limit;\n this.actual = options.actual;\n this.unit = options.unit;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgCA,IAAa,sBAAb,cAAyC,QAAQ;;yBACS;;CAMxD,AAAO,YAAY,SAAiB,SAAqC;EACvE,MAAM,mBAAmB,SAAS,OAAO;EACzC,KAAK,OAAO;EACZ,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,OAAO,QAAQ;CACtB;AACF"}
@@ -0,0 +1,28 @@
1
+ import { ProviderError } from "./provider-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/content-filter-error.ts
4
+ /**
5
+ * Response (or request) was blocked by the provider's safety filter.
6
+ * Not retryable with the same input — reshape the prompt or lean on
7
+ * a less-restrictive model.
8
+ *
9
+ * @example
10
+ * if (result.error instanceof ContentFilterError) {
11
+ * return respondWithPolicyMessage(result.error.reason);
12
+ * }
13
+ */
14
+ var ContentFilterError = class extends ProviderError {
15
+ static {
16
+ this.defaultCategory = "content-filter";
17
+ }
18
+ constructor(message, options) {
19
+ super(message, options, "CONTENT_FILTER");
20
+ this.name = "ContentFilterError";
21
+ this.reason = options?.reason;
22
+ this.categories = options?.categories;
23
+ }
24
+ };
25
+
26
+ //#endregion
27
+ export { };
28
+ //# sourceMappingURL=content-filter-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-filter-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/content-filter-error.ts"],"sourcesContent":["import type { AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\nimport { ProviderError } from \"./provider-error\";\n\n/**\n * Payload for `ContentFilterError`. Both fields optional — providers\n * don't consistently disclose the specific filter reason or\n * categories, especially when the block is pre-generation.\n */\nexport type ContentFilterErrorOptions = AIErrorOptions & {\n reason?: string;\n categories?: string[];\n};\n\n/**\n * Response (or request) was blocked by the provider's safety filter.\n * Not retryable with the same input — reshape the prompt or lean on\n * a less-restrictive model.\n *\n * @example\n * if (result.error instanceof ContentFilterError) {\n * return respondWithPolicyMessage(result.error.reason);\n * }\n */\nexport class ContentFilterError extends ProviderError {\n public static readonly defaultCategory: ErrorCategory = \"content-filter\";\n\n public readonly reason?: string;\n public readonly categories?: string[];\n\n public constructor(message: string, options?: ContentFilterErrorOptions) {\n super(message, options, \"CONTENT_FILTER\");\n this.name = \"ContentFilterError\";\n this.reason = options?.reason;\n this.categories = options?.categories;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,IAAa,qBAAb,cAAwC,cAAc;;yBACI;;CAKxD,AAAO,YAAY,SAAiB,SAAqC;EACvE,MAAM,SAAS,SAAS,gBAAgB;EACxC,KAAK,OAAO;EACZ,KAAK,SAAS,SAAS;EACvB,KAAK,aAAa,SAAS;CAC7B;AACF"}
@@ -0,0 +1,31 @@
1
+ import { ProviderError } from "./provider-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/context-length-exceeded-error.ts
4
+ /**
5
+ * The request's prompt (messages + tools + schema) exceeded the
6
+ * model's context window. Not retryable without shortening the input.
7
+ *
8
+ * Typically surfaced as OpenAI 400 with `code: "context_length_exceeded"`.
9
+ *
10
+ * @example
11
+ * if (result.error instanceof ContextLengthExceededError) {
12
+ * messages = truncateOldestTurns(messages);
13
+ * return agent.execute(input, { history: messages });
14
+ * }
15
+ */
16
+ var ContextLengthExceededError = class extends ProviderError {
17
+ static {
18
+ this.defaultCategory = "context-length";
19
+ }
20
+ constructor(message, options) {
21
+ super(message, options, "CONTEXT_LENGTH_EXCEEDED");
22
+ this.name = "ContextLengthExceededError";
23
+ this.limit = options?.limit;
24
+ this.actual = options?.actual;
25
+ this.modelName = options?.modelName;
26
+ }
27
+ };
28
+
29
+ //#endregion
30
+ export { };
31
+ //# sourceMappingURL=context-length-exceeded-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-length-exceeded-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/context-length-exceeded-error.ts"],"sourcesContent":["import type { AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\nimport { ProviderError } from \"./provider-error\";\n\n/**\n * Payload for `ContextLengthExceededError`. All fields are optional —\n * providers inconsistently surface exact token counts and the\n * model's limit. When present, they let callers compute a trim\n * target; when absent, the error still categorizes the failure.\n */\nexport type ContextLengthExceededErrorOptions = AIErrorOptions & {\n limit?: number;\n actual?: number;\n modelName?: string;\n};\n\n/**\n * The request's prompt (messages + tools + schema) exceeded the\n * model's context window. Not retryable without shortening the input.\n *\n * Typically surfaced as OpenAI 400 with `code: \"context_length_exceeded\"`.\n *\n * @example\n * if (result.error instanceof ContextLengthExceededError) {\n * messages = truncateOldestTurns(messages);\n * return agent.execute(input, { history: messages });\n * }\n */\nexport class ContextLengthExceededError extends ProviderError {\n public static readonly defaultCategory: ErrorCategory = \"context-length\";\n\n public readonly limit?: number;\n public readonly actual?: number;\n public readonly modelName?: string;\n\n public constructor(\n message: string,\n options?: ContextLengthExceededErrorOptions,\n ) {\n super(message, options, \"CONTEXT_LENGTH_EXCEEDED\");\n this.name = \"ContextLengthExceededError\";\n this.limit = options?.limit;\n this.actual = options?.actual;\n this.modelName = options?.modelName;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AA4BA,IAAa,6BAAb,cAAgD,cAAc;;yBACJ;;CAMxD,AAAO,YACL,SACA,SACA;EACA,MAAM,SAAS,SAAS,yBAAyB;EACjD,KAAK,OAAO;EACZ,KAAK,QAAQ,SAAS;EACtB,KAAK,SAAS,SAAS;EACvB,KAAK,YAAY,SAAS;CAC5B;AACF"}
@@ -0,0 +1,41 @@
1
+ import { AIError } from "./ai-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/guardrail-violation-error.ts
4
+ /**
5
+ * A guardrail middleware rejected the prompt or response mid-execution.
6
+ *
7
+ * **Role.** The typed abort surface for `ai.middleware.guardrail`.
8
+ * Consumers branch on `error.phase` to distinguish "the user asked
9
+ * something disallowed" (`"input"`) from "the model produced something
10
+ * disallowed" (`"output"`) — the two failure modes have very different
11
+ * product responses (block vs. retry, or surface a policy message vs.
12
+ * re-prompt the model).
13
+ *
14
+ * Thrown from inside the middleware pipeline's `trip.before` / `trip.after`
15
+ * hooks; surfaced to the caller via `result.error` like every other
16
+ * `AIError`.
17
+ *
18
+ * @example
19
+ * if (result.error instanceof GuardrailViolationError) {
20
+ * if (result.error.phase === "input") {
21
+ * return respondWithPolicyMessage(result.error.reason);
22
+ * }
23
+ * return retryWithSanitizedPrompt();
24
+ * }
25
+ */
26
+ var GuardrailViolationError = class extends AIError {
27
+ static {
28
+ this.defaultCategory = "guardrail";
29
+ }
30
+ constructor(message, options) {
31
+ super("GUARDRAIL_VIOLATION", message, options);
32
+ this.name = "GuardrailViolationError";
33
+ this.phase = options.phase;
34
+ this.reason = options.reason;
35
+ this.guardrail = options.guardrail;
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ export { GuardrailViolationError };
41
+ //# sourceMappingURL=guardrail-violation-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-violation-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/guardrail-violation-error.ts"],"sourcesContent":["import { AIError, type AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\n\n/**\n * Phase at which a guardrail rejected the content — `\"input\"` when the\n * violation was detected on the outbound prompt (before the model saw\n * it), `\"output\"` when it was detected on the model's response (before\n * the caller saw it).\n */\nexport type GuardrailPhase = \"input\" | \"output\";\n\n/**\n * Payload for `GuardrailViolationError`. `phase` tells the caller\n * whether the prompt or the response tripped the check; `reason` is\n * the free-form explanation the guardrail middleware produced;\n * `guardrail` names the offending middleware so operators can tune a\n * specific rule without hunting through logs.\n */\nexport type GuardrailViolationErrorOptions = AIErrorOptions & {\n phase: GuardrailPhase;\n reason: string;\n guardrail?: string;\n};\n\n/**\n * A guardrail middleware rejected the prompt or response mid-execution.\n *\n * **Role.** The typed abort surface for `ai.middleware.guardrail`.\n * Consumers branch on `error.phase` to distinguish \"the user asked\n * something disallowed\" (`\"input\"`) from \"the model produced something\n * disallowed\" (`\"output\"`) — the two failure modes have very different\n * product responses (block vs. retry, or surface a policy message vs.\n * re-prompt the model).\n *\n * Thrown from inside the middleware pipeline's `trip.before` / `trip.after`\n * hooks; surfaced to the caller via `result.error` like every other\n * `AIError`.\n *\n * @example\n * if (result.error instanceof GuardrailViolationError) {\n * if (result.error.phase === \"input\") {\n * return respondWithPolicyMessage(result.error.reason);\n * }\n * return retryWithSanitizedPrompt();\n * }\n */\nexport class GuardrailViolationError extends AIError {\n public static readonly defaultCategory: ErrorCategory = \"guardrail\";\n\n public readonly phase: GuardrailPhase;\n public readonly reason: string;\n public readonly guardrail?: string;\n\n public constructor(message: string, options: GuardrailViolationErrorOptions) {\n super(\"GUARDRAIL_VIOLATION\", message, options);\n\n this.name = \"GuardrailViolationError\";\n this.phase = options.phase;\n this.reason = options.reason;\n this.guardrail = options.guardrail;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,IAAa,0BAAb,cAA6C,QAAQ;;yBACK;;CAMxD,AAAO,YAAY,SAAiB,SAAyC;EAC3E,MAAM,uBAAuB,SAAS,OAAO;EAE7C,KAAK,OAAO;EACZ,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,YAAY,QAAQ;CAC3B;AACF"}
@@ -0,0 +1,37 @@
1
+ import { AIError } from "./ai-error.mjs";
2
+ import { AgentExecutionError } from "./agent-execution-error.mjs";
3
+ import { AgentCancelledError } from "./agent-cancelled-error.mjs";
4
+ import { AgentMaxTripsError } from "./agent-max-trips-error.mjs";
5
+ import { BudgetExceededError } from "./budget-exceeded-error.mjs";
6
+ import { ProviderError } from "./provider-error.mjs";
7
+ import "./content-filter-error.mjs";
8
+ import "./context-length-exceeded-error.mjs";
9
+ import { GuardrailViolationError } from "./guardrail-violation-error.mjs";
10
+ import { InvalidRequestError } from "./invalid-request-error.mjs";
11
+ import { SupervisorFailedError } from "./supervisor-failed-error.mjs";
12
+ import { MaxIterationsError } from "./max-iterations-error.mjs";
13
+ import { WorkflowError } from "./workflow-error.mjs";
14
+ import { MaxStepsExceededError } from "./max-steps-exceeded-error.mjs";
15
+ import { OrchestratorFailedError } from "./orchestrator-failed-error.mjs";
16
+ import "./orchestrator-cancelled-error.mjs";
17
+ import { OrchestratorConfigError } from "./orchestrator-config-error.mjs";
18
+ import { OrchestratorDriftError } from "./orchestrator-drift-error.mjs";
19
+ import { OutboundPolicyError } from "./outbound-policy-error.mjs";
20
+ import { PlannerFailedError } from "./planner-failed-error.mjs";
21
+ import { PlannerCancelledError } from "./planner-cancelled-error.mjs";
22
+ import { PlannerPlanInvalidError } from "./planner-plan-invalid-error.mjs";
23
+ import "./provider-auth-error.mjs";
24
+ import "./provider-rate-limit-error.mjs";
25
+ import "./provider-timeout-error.mjs";
26
+ import "./quota-exceeded-error.mjs";
27
+ import { RoutingError } from "./routing-error.mjs";
28
+ import { SchemaValidationError } from "./schema-validation-error.mjs";
29
+ import { StepFailedError } from "./step-failed-error.mjs";
30
+ import { SupervisorCancelledError } from "./supervisor-cancelled-error.mjs";
31
+ import { SupervisorDriftError } from "./supervisor-drift-error.mjs";
32
+ import { SupervisorRoutingError } from "./supervisor-routing-error.mjs";
33
+ import { ToolExecutionError } from "./tool-execution-error.mjs";
34
+ import { WorkflowCancelledError } from "./workflow-cancelled-error.mjs";
35
+ import { WorkflowDriftError } from "./workflow-drift-error.mjs";
36
+
37
+ export { };
@@ -0,0 +1,31 @@
1
+ import { ProviderError } from "./provider-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/invalid-request-error.ts
4
+ /**
5
+ * Provider rejected the request as malformed — bad model name,
6
+ * unsupported feature, missing required field, image attached to a
7
+ * non-vision model, etc. The catch-all for 4xx responses that aren't
8
+ * auth, rate-limit, context-length, or content-filter.
9
+ *
10
+ * Also thrown from the agent when user-side validation fails at the
11
+ * boundary (e.g. vision gate, malformed attachment shape) — the
12
+ * category is "you sent something the provider / agent cannot use".
13
+ *
14
+ * @example
15
+ * if (result.error instanceof InvalidRequestError) {
16
+ * logger.error("bad agent input", { context: result.error.context });
17
+ * }
18
+ */
19
+ var InvalidRequestError = class extends ProviderError {
20
+ static {
21
+ this.defaultCategory = "validation";
22
+ }
23
+ constructor(message, options) {
24
+ super(message, options, "PROVIDER_INVALID_REQUEST");
25
+ this.name = "InvalidRequestError";
26
+ }
27
+ };
28
+
29
+ //#endregion
30
+ export { InvalidRequestError };
31
+ //# sourceMappingURL=invalid-request-error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalid-request-error.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/errors/invalid-request-error.ts"],"sourcesContent":["import type { AIErrorOptions } from \"./ai-error\";\nimport type { ErrorCategory } from \"./error-category.type\";\nimport { ProviderError } from \"./provider-error\";\n\n/**\n * Provider rejected the request as malformed — bad model name,\n * unsupported feature, missing required field, image attached to a\n * non-vision model, etc. The catch-all for 4xx responses that aren't\n * auth, rate-limit, context-length, or content-filter.\n *\n * Also thrown from the agent when user-side validation fails at the\n * boundary (e.g. vision gate, malformed attachment shape) — the\n * category is \"you sent something the provider / agent cannot use\".\n *\n * @example\n * if (result.error instanceof InvalidRequestError) {\n * logger.error(\"bad agent input\", { context: result.error.context });\n * }\n */\nexport class InvalidRequestError extends ProviderError {\n public static readonly defaultCategory: ErrorCategory = \"validation\";\n\n public constructor(message: string, options?: AIErrorOptions) {\n super(message, options, \"PROVIDER_INVALID_REQUEST\");\n this.name = \"InvalidRequestError\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,IAAa,sBAAb,cAAyC,cAAc;;yBACG;;CAExD,AAAO,YAAY,SAAiB,SAA0B;EAC5D,MAAM,SAAS,SAAS,0BAA0B;EAClD,KAAK,OAAO;CACd;AACF"}
@@ -0,0 +1,32 @@
1
+ import { SupervisorFailedError } from "./supervisor-failed-error.mjs";
2
+
3
+ //#region ../@warlock.js/ai/src/errors/max-iterations-error.ts
4
+ /**
5
+ * Hard-cap guard: the supervisor ran `maxIterations` loop turns
6
+ * without reaching a terminal decision (`END`, `satisfied: true`, or
7
+ * cancellation). Terminates the run immediately with a typed error on
8
+ * `result.error` — partial per-iteration snapshots are still
9
+ * available on `result.report.snapshots`.
10
+ *
11
+ * @example
12
+ * const { error, report } = await supervisor.execute(input);
13
+ * if (error?.code === "SUPERVISOR_MAX_ITERATIONS") {
14
+ * logger.warn("supervisor did not converge", {
15
+ * iterations: report.iterations,
16
+ * });
17
+ * }
18
+ */
19
+ var MaxIterationsError = class extends SupervisorFailedError {
20
+ static {
21
+ this.defaultCategory = "max-iterations";
22
+ }
23
+ constructor(message, options) {
24
+ super(message, options, "SUPERVISOR_MAX_ITERATIONS");
25
+ this.name = "MaxIterationsError";
26
+ this.maxIterations = options.maxIterations;
27
+ }
28
+ };
29
+
30
+ //#endregion
31
+ export { MaxIterationsError };
32
+ //# sourceMappingURL=max-iterations-error.mjs.map