@warlock.js/ai 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +72 -0
  2. package/cjs/index.cjs +8625 -0
  3. package/cjs/index.cjs.map +1 -0
  4. package/esm/agent/agent-config.type.d.mts +160 -0
  5. package/esm/agent/agent-config.type.d.mts.map +1 -0
  6. package/esm/agent/agent-input-builder.mjs +111 -0
  7. package/esm/agent/agent-input-builder.mjs.map +1 -0
  8. package/esm/agent/agent-log-event.mjs +101 -0
  9. package/esm/agent/agent-log-event.mjs.map +1 -0
  10. package/esm/agent/agent-stream.d.mts +47 -0
  11. package/esm/agent/agent-stream.d.mts.map +1 -0
  12. package/esm/agent/agent-stream.mjs +82 -0
  13. package/esm/agent/agent-stream.mjs.map +1 -0
  14. package/esm/agent/agent-to-stream-event.mjs +86 -0
  15. package/esm/agent/agent-to-stream-event.mjs.map +1 -0
  16. package/esm/agent/agent.d.mts +38 -0
  17. package/esm/agent/agent.d.mts.map +1 -0
  18. package/esm/agent/agent.mjs +974 -0
  19. package/esm/agent/agent.mjs.map +1 -0
  20. package/esm/agent/index.d.mts +3 -0
  21. package/esm/agent/index.mjs +4 -0
  22. package/esm/agent/json-stream-guard.mjs +400 -0
  23. package/esm/agent/json-stream-guard.mjs.map +1 -0
  24. package/esm/ai.d.mts +64 -0
  25. package/esm/ai.d.mts.map +1 -0
  26. package/esm/ai.mjs +65 -0
  27. package/esm/ai.mjs.map +1 -0
  28. package/esm/config.d.mts +79 -0
  29. package/esm/config.d.mts.map +1 -0
  30. package/esm/config.mjs +43 -0
  31. package/esm/config.mjs.map +1 -0
  32. package/esm/contracts/agent/agent-options.type.d.mts +132 -0
  33. package/esm/contracts/agent/agent-options.type.d.mts.map +1 -0
  34. package/esm/contracts/agent/agent.contract.d.mts +92 -0
  35. package/esm/contracts/agent/agent.contract.d.mts.map +1 -0
  36. package/esm/contracts/agent/index.d.mts +2 -0
  37. package/esm/contracts/attachment.type.d.mts +100 -0
  38. package/esm/contracts/attachment.type.d.mts.map +1 -0
  39. package/esm/contracts/content-part.type.d.mts +55 -0
  40. package/esm/contracts/content-part.type.d.mts.map +1 -0
  41. package/esm/contracts/conversation-message.type.d.mts +51 -0
  42. package/esm/contracts/conversation-message.type.d.mts.map +1 -0
  43. package/esm/contracts/embedder.contract.d.mts +69 -0
  44. package/esm/contracts/embedder.contract.d.mts.map +1 -0
  45. package/esm/contracts/end.type.d.mts +53 -0
  46. package/esm/contracts/end.type.d.mts.map +1 -0
  47. package/esm/contracts/end.type.mjs +47 -0
  48. package/esm/contracts/end.type.mjs.map +1 -0
  49. package/esm/contracts/events/agent-events.type.d.mts +71 -0
  50. package/esm/contracts/events/agent-events.type.d.mts.map +1 -0
  51. package/esm/contracts/events/complete-event.type.d.mts +33 -0
  52. package/esm/contracts/events/complete-event.type.d.mts.map +1 -0
  53. package/esm/contracts/events/event-identity.type.d.mts +30 -0
  54. package/esm/contracts/events/event-identity.type.d.mts.map +1 -0
  55. package/esm/contracts/events/event-map.type.d.mts +80 -0
  56. package/esm/contracts/events/event-map.type.d.mts.map +1 -0
  57. package/esm/contracts/events/index.d.mts +7 -0
  58. package/esm/contracts/events/supervisor-events.type.d.mts +162 -0
  59. package/esm/contracts/events/supervisor-events.type.d.mts.map +1 -0
  60. package/esm/contracts/events/usage-event.type.d.mts +39 -0
  61. package/esm/contracts/events/usage-event.type.d.mts.map +1 -0
  62. package/esm/contracts/events/workflow-events.type.d.mts +51 -0
  63. package/esm/contracts/events/workflow-events.type.d.mts.map +1 -0
  64. package/esm/contracts/executable.contract.d.mts +25 -0
  65. package/esm/contracts/executable.contract.d.mts.map +1 -0
  66. package/esm/contracts/finish-reason.type.d.mts +17 -0
  67. package/esm/contracts/finish-reason.type.d.mts.map +1 -0
  68. package/esm/contracts/index.d.mts +63 -0
  69. package/esm/contracts/middleware/index.d.mts +3 -0
  70. package/esm/contracts/middleware/middleware-context.type.d.mts +99 -0
  71. package/esm/contracts/middleware/middleware-context.type.d.mts.map +1 -0
  72. package/esm/contracts/middleware/middleware-state.type.d.mts +34 -0
  73. package/esm/contracts/middleware/middleware-state.type.d.mts.map +1 -0
  74. package/esm/contracts/middleware/middleware.contract.d.mts +140 -0
  75. package/esm/contracts/middleware/middleware.contract.d.mts.map +1 -0
  76. package/esm/contracts/model-tool-call-request.type.d.mts +58 -0
  77. package/esm/contracts/model-tool-call-request.type.d.mts.map +1 -0
  78. package/esm/contracts/model.contract.d.mts +164 -0
  79. package/esm/contracts/model.contract.d.mts.map +1 -0
  80. package/esm/contracts/placeholders.type.d.mts +23 -0
  81. package/esm/contracts/placeholders.type.d.mts.map +1 -0
  82. package/esm/contracts/result/agent-result.type.d.mts +33 -0
  83. package/esm/contracts/result/agent-result.type.d.mts.map +1 -0
  84. package/esm/contracts/result/attempt-entry.type.d.mts +40 -0
  85. package/esm/contracts/result/attempt-entry.type.d.mts.map +1 -0
  86. package/esm/contracts/result/base-report.type.d.mts +137 -0
  87. package/esm/contracts/result/base-report.type.d.mts.map +1 -0
  88. package/esm/contracts/result/base-report.type.mjs +17 -0
  89. package/esm/contracts/result/base-report.type.mjs.map +1 -0
  90. package/esm/contracts/result/base-result.type.d.mts +26 -0
  91. package/esm/contracts/result/base-result.type.d.mts.map +1 -0
  92. package/esm/contracts/result/execute-result.type.d.mts +40 -0
  93. package/esm/contracts/result/execute-result.type.d.mts.map +1 -0
  94. package/esm/contracts/result/execution-report.type.d.mts +50 -0
  95. package/esm/contracts/result/execution-report.type.d.mts.map +1 -0
  96. package/esm/contracts/result/index.d.mts +14 -0
  97. package/esm/contracts/result/llm-trip.type.d.mts +36 -0
  98. package/esm/contracts/result/llm-trip.type.d.mts.map +1 -0
  99. package/esm/contracts/result/model-pricing.type.d.mts +51 -0
  100. package/esm/contracts/result/model-pricing.type.d.mts.map +1 -0
  101. package/esm/contracts/result/session-send-result.type.d.mts +29 -0
  102. package/esm/contracts/result/session-send-result.type.d.mts.map +1 -0
  103. package/esm/contracts/result/step-result.type.d.mts +43 -0
  104. package/esm/contracts/result/step-result.type.d.mts.map +1 -0
  105. package/esm/contracts/result/supervisor-result.type.d.mts +86 -0
  106. package/esm/contracts/result/supervisor-result.type.d.mts.map +1 -0
  107. package/esm/contracts/result/tool-call.type.d.mts +44 -0
  108. package/esm/contracts/result/tool-call.type.d.mts.map +1 -0
  109. package/esm/contracts/result/usage.type.d.mts +57 -0
  110. package/esm/contracts/result/usage.type.d.mts.map +1 -0
  111. package/esm/contracts/result/workflow-result.type.d.mts +45 -0
  112. package/esm/contracts/result/workflow-result.type.d.mts.map +1 -0
  113. package/esm/contracts/sdk-adapter.contract.d.mts +77 -0
  114. package/esm/contracts/sdk-adapter.contract.d.mts.map +1 -0
  115. package/esm/contracts/stream/stream-event.type.d.mts +68 -0
  116. package/esm/contracts/stream/stream-event.type.d.mts.map +1 -0
  117. package/esm/contracts/stream/stream.contract.d.mts +61 -0
  118. package/esm/contracts/stream/stream.contract.d.mts.map +1 -0
  119. package/esm/contracts/streaming-tool-guard-config.type.d.mts +78 -0
  120. package/esm/contracts/streaming-tool-guard-config.type.d.mts.map +1 -0
  121. package/esm/contracts/supervisor/ack-entry.type.d.mts +97 -0
  122. package/esm/contracts/supervisor/ack-entry.type.d.mts.map +1 -0
  123. package/esm/contracts/supervisor/classifier-context.type.d.mts +189 -0
  124. package/esm/contracts/supervisor/classifier-context.type.d.mts.map +1 -0
  125. package/esm/contracts/supervisor/dispatch-context.type.d.mts +235 -0
  126. package/esm/contracts/supervisor/dispatch-context.type.d.mts.map +1 -0
  127. package/esm/contracts/supervisor/evaluate-context.type.d.mts +124 -0
  128. package/esm/contracts/supervisor/evaluate-context.type.d.mts.map +1 -0
  129. package/esm/contracts/supervisor/index.d.mts +16 -0
  130. package/esm/contracts/supervisor/intent-entry.type.d.mts +254 -0
  131. package/esm/contracts/supervisor/intent-entry.type.d.mts.map +1 -0
  132. package/esm/contracts/supervisor/iteration-snapshot.type.d.mts +117 -0
  133. package/esm/contracts/supervisor/iteration-snapshot.type.d.mts.map +1 -0
  134. package/esm/contracts/supervisor/next.type.d.mts +25 -0
  135. package/esm/contracts/supervisor/next.type.d.mts.map +1 -0
  136. package/esm/contracts/supervisor/route-context.type.d.mts +91 -0
  137. package/esm/contracts/supervisor/route-context.type.d.mts.map +1 -0
  138. package/esm/contracts/supervisor/router-entry.type.d.mts +67 -0
  139. package/esm/contracts/supervisor/router-entry.type.d.mts.map +1 -0
  140. package/esm/contracts/supervisor/supervisor-config.type.d.mts +356 -0
  141. package/esm/contracts/supervisor/supervisor-config.type.d.mts.map +1 -0
  142. package/esm/contracts/supervisor/supervisor-execute-options.type.d.mts +90 -0
  143. package/esm/contracts/supervisor/supervisor-execute-options.type.d.mts.map +1 -0
  144. package/esm/contracts/supervisor/supervisor-input.type.d.mts +24 -0
  145. package/esm/contracts/supervisor/supervisor-input.type.d.mts.map +1 -0
  146. package/esm/contracts/supervisor/supervisor-snapshot.type.d.mts +49 -0
  147. package/esm/contracts/supervisor/supervisor-snapshot.type.d.mts.map +1 -0
  148. package/esm/contracts/supervisor/supervisor-stream-event.type.d.mts +16 -0
  149. package/esm/contracts/supervisor/supervisor-stream-event.type.d.mts.map +1 -0
  150. package/esm/contracts/supervisor/supervisor.contract.d.mts +126 -0
  151. package/esm/contracts/supervisor/supervisor.contract.d.mts.map +1 -0
  152. package/esm/contracts/system-prompt.contract.d.mts +118 -0
  153. package/esm/contracts/system-prompt.contract.d.mts.map +1 -0
  154. package/esm/contracts/tool.contract.d.mts +161 -0
  155. package/esm/contracts/tool.contract.d.mts.map +1 -0
  156. package/esm/contracts/workflow/index.d.mts +6 -0
  157. package/esm/contracts/workflow/next-step-result.type.d.mts +17 -0
  158. package/esm/contracts/workflow/next-step-result.type.d.mts.map +1 -0
  159. package/esm/contracts/workflow/retry-config.type.d.mts +19 -0
  160. package/esm/contracts/workflow/retry-config.type.d.mts.map +1 -0
  161. package/esm/contracts/workflow/step.contract.d.mts +189 -0
  162. package/esm/contracts/workflow/step.contract.d.mts.map +1 -0
  163. package/esm/contracts/workflow/workflow-context.type.d.mts +45 -0
  164. package/esm/contracts/workflow/workflow-context.type.d.mts.map +1 -0
  165. package/esm/contracts/workflow/workflow-snapshot.type.d.mts +24 -0
  166. package/esm/contracts/workflow/workflow-snapshot.type.d.mts.map +1 -0
  167. package/esm/contracts/workflow/workflow.contract.d.mts +142 -0
  168. package/esm/contracts/workflow/workflow.contract.d.mts.map +1 -0
  169. package/esm/errors/agent-cancelled-error.d.mts +49 -0
  170. package/esm/errors/agent-cancelled-error.d.mts.map +1 -0
  171. package/esm/errors/agent-cancelled-error.mjs +43 -0
  172. package/esm/errors/agent-cancelled-error.mjs.map +1 -0
  173. package/esm/errors/agent-execution-error.d.mts +32 -0
  174. package/esm/errors/agent-execution-error.d.mts.map +1 -0
  175. package/esm/errors/agent-execution-error.mjs +35 -0
  176. package/esm/errors/agent-execution-error.mjs.map +1 -0
  177. package/esm/errors/agent-max-trips-error.d.mts +45 -0
  178. package/esm/errors/agent-max-trips-error.d.mts.map +1 -0
  179. package/esm/errors/agent-max-trips-error.mjs +41 -0
  180. package/esm/errors/agent-max-trips-error.mjs.map +1 -0
  181. package/esm/errors/ai-error.d.mts +94 -0
  182. package/esm/errors/ai-error.d.mts.map +1 -0
  183. package/esm/errors/ai-error.mjs +68 -0
  184. package/esm/errors/ai-error.mjs.map +1 -0
  185. package/esm/errors/budget-exceeded-error.d.mts +41 -0
  186. package/esm/errors/budget-exceeded-error.d.mts.map +1 -0
  187. package/esm/errors/budget-exceeded-error.mjs +31 -0
  188. package/esm/errors/budget-exceeded-error.mjs.map +1 -0
  189. package/esm/errors/content-filter-error.d.mts +33 -0
  190. package/esm/errors/content-filter-error.d.mts.map +1 -0
  191. package/esm/errors/content-filter-error.mjs +28 -0
  192. package/esm/errors/content-filter-error.mjs.map +1 -0
  193. package/esm/errors/context-length-exceeded-error.d.mts +38 -0
  194. package/esm/errors/context-length-exceeded-error.d.mts.map +1 -0
  195. package/esm/errors/context-length-exceeded-error.mjs +31 -0
  196. package/esm/errors/context-length-exceeded-error.mjs.map +1 -0
  197. package/esm/errors/error-category.type.d.mts +30 -0
  198. package/esm/errors/error-category.type.d.mts.map +1 -0
  199. package/esm/errors/error-code.type.d.mts +19 -0
  200. package/esm/errors/error-code.type.d.mts.map +1 -0
  201. package/esm/errors/guardrail-violation-error.d.mts +55 -0
  202. package/esm/errors/guardrail-violation-error.d.mts.map +1 -0
  203. package/esm/errors/guardrail-violation-error.mjs +41 -0
  204. package/esm/errors/guardrail-violation-error.mjs.map +1 -0
  205. package/esm/errors/index.d.mts +29 -0
  206. package/esm/errors/index.mjs +29 -0
  207. package/esm/errors/invalid-request-error.d.mts +27 -0
  208. package/esm/errors/invalid-request-error.d.mts.map +1 -0
  209. package/esm/errors/invalid-request-error.mjs +31 -0
  210. package/esm/errors/invalid-request-error.mjs.map +1 -0
  211. package/esm/errors/max-iterations-error.d.mts +31 -0
  212. package/esm/errors/max-iterations-error.d.mts.map +1 -0
  213. package/esm/errors/max-iterations-error.mjs +32 -0
  214. package/esm/errors/max-iterations-error.mjs.map +1 -0
  215. package/esm/errors/max-steps-exceeded-error.d.mts +20 -0
  216. package/esm/errors/max-steps-exceeded-error.d.mts.map +1 -0
  217. package/esm/errors/max-steps-exceeded-error.mjs +21 -0
  218. package/esm/errors/max-steps-exceeded-error.mjs.map +1 -0
  219. package/esm/errors/provider-auth-error.d.mts +22 -0
  220. package/esm/errors/provider-auth-error.d.mts.map +1 -0
  221. package/esm/errors/provider-auth-error.mjs +26 -0
  222. package/esm/errors/provider-auth-error.mjs.map +1 -0
  223. package/esm/errors/provider-error.d.mts +38 -0
  224. package/esm/errors/provider-error.d.mts.map +1 -0
  225. package/esm/errors/provider-error.mjs +42 -0
  226. package/esm/errors/provider-error.mjs.map +1 -0
  227. package/esm/errors/provider-rate-limit-error.d.mts +34 -0
  228. package/esm/errors/provider-rate-limit-error.d.mts.map +1 -0
  229. package/esm/errors/provider-rate-limit-error.mjs +31 -0
  230. package/esm/errors/provider-rate-limit-error.mjs.map +1 -0
  231. package/esm/errors/provider-timeout-error.d.mts +22 -0
  232. package/esm/errors/provider-timeout-error.d.mts.map +1 -0
  233. package/esm/errors/provider-timeout-error.mjs +26 -0
  234. package/esm/errors/provider-timeout-error.mjs.map +1 -0
  235. package/esm/errors/quota-exceeded-error.d.mts +36 -0
  236. package/esm/errors/quota-exceeded-error.d.mts.map +1 -0
  237. package/esm/errors/quota-exceeded-error.mjs +40 -0
  238. package/esm/errors/quota-exceeded-error.mjs.map +1 -0
  239. package/esm/errors/routing-error.d.mts +23 -0
  240. package/esm/errors/routing-error.d.mts.map +1 -0
  241. package/esm/errors/routing-error.mjs +23 -0
  242. package/esm/errors/routing-error.mjs.map +1 -0
  243. package/esm/errors/schema-validation-error.d.mts +40 -0
  244. package/esm/errors/schema-validation-error.d.mts.map +1 -0
  245. package/esm/errors/schema-validation-error.mjs +37 -0
  246. package/esm/errors/schema-validation-error.mjs.map +1 -0
  247. package/esm/errors/step-failed-error.d.mts +20 -0
  248. package/esm/errors/step-failed-error.d.mts.map +1 -0
  249. package/esm/errors/step-failed-error.mjs +19 -0
  250. package/esm/errors/step-failed-error.mjs.map +1 -0
  251. package/esm/errors/supervisor-cancelled-error.d.mts +29 -0
  252. package/esm/errors/supervisor-cancelled-error.d.mts.map +1 -0
  253. package/esm/errors/supervisor-cancelled-error.mjs +29 -0
  254. package/esm/errors/supervisor-cancelled-error.mjs.map +1 -0
  255. package/esm/errors/supervisor-drift-error.d.mts +31 -0
  256. package/esm/errors/supervisor-drift-error.d.mts.map +1 -0
  257. package/esm/errors/supervisor-drift-error.mjs +30 -0
  258. package/esm/errors/supervisor-drift-error.mjs.map +1 -0
  259. package/esm/errors/supervisor-failed-error.d.mts +40 -0
  260. package/esm/errors/supervisor-failed-error.d.mts.map +1 -0
  261. package/esm/errors/supervisor-failed-error.mjs +43 -0
  262. package/esm/errors/supervisor-failed-error.mjs.map +1 -0
  263. package/esm/errors/supervisor-routing-error.d.mts +44 -0
  264. package/esm/errors/supervisor-routing-error.d.mts.map +1 -0
  265. package/esm/errors/supervisor-routing-error.mjs +39 -0
  266. package/esm/errors/supervisor-routing-error.mjs.map +1 -0
  267. package/esm/errors/tool-execution-error.d.mts +35 -0
  268. package/esm/errors/tool-execution-error.d.mts.map +1 -0
  269. package/esm/errors/tool-execution-error.mjs +32 -0
  270. package/esm/errors/tool-execution-error.mjs.map +1 -0
  271. package/esm/errors/workflow-cancelled-error.d.mts +23 -0
  272. package/esm/errors/workflow-cancelled-error.d.mts.map +1 -0
  273. package/esm/errors/workflow-cancelled-error.mjs +23 -0
  274. package/esm/errors/workflow-cancelled-error.mjs.map +1 -0
  275. package/esm/errors/workflow-drift-error.d.mts +25 -0
  276. package/esm/errors/workflow-drift-error.d.mts.map +1 -0
  277. package/esm/errors/workflow-drift-error.mjs +24 -0
  278. package/esm/errors/workflow-drift-error.mjs.map +1 -0
  279. package/esm/errors/workflow-error.d.mts +15 -0
  280. package/esm/errors/workflow-error.d.mts.map +1 -0
  281. package/esm/errors/workflow-error.mjs +18 -0
  282. package/esm/errors/workflow-error.mjs.map +1 -0
  283. package/esm/index.d.mts +137 -0
  284. package/esm/index.mjs +81 -0
  285. package/esm/middleware/builtins/budget.d.mts +103 -0
  286. package/esm/middleware/builtins/budget.d.mts.map +1 -0
  287. package/esm/middleware/builtins/budget.mjs +100 -0
  288. package/esm/middleware/builtins/budget.mjs.map +1 -0
  289. package/esm/middleware/builtins/guardrail.d.mts +92 -0
  290. package/esm/middleware/builtins/guardrail.d.mts.map +1 -0
  291. package/esm/middleware/builtins/guardrail.mjs +76 -0
  292. package/esm/middleware/builtins/guardrail.mjs.map +1 -0
  293. package/esm/middleware/builtins/semantic-cache.d.mts +106 -0
  294. package/esm/middleware/builtins/semantic-cache.d.mts.map +1 -0
  295. package/esm/middleware/builtins/semantic-cache.mjs +149 -0
  296. package/esm/middleware/builtins/semantic-cache.mjs.map +1 -0
  297. package/esm/middleware/helpers/compose.d.mts +42 -0
  298. package/esm/middleware/helpers/compose.d.mts.map +1 -0
  299. package/esm/middleware/helpers/compose.mjs +52 -0
  300. package/esm/middleware/helpers/compose.mjs.map +1 -0
  301. package/esm/middleware/helpers/for-tool.d.mts +55 -0
  302. package/esm/middleware/helpers/for-tool.d.mts.map +1 -0
  303. package/esm/middleware/helpers/for-tool.mjs +80 -0
  304. package/esm/middleware/helpers/for-tool.mjs.map +1 -0
  305. package/esm/middleware/helpers/index.d.mts +2 -0
  306. package/esm/middleware/index.d.mts +8 -0
  307. package/esm/middleware/index.mjs +10 -0
  308. package/esm/middleware/pipeline.d.mts +70 -0
  309. package/esm/middleware/pipeline.d.mts.map +1 -0
  310. package/esm/middleware/pipeline.mjs +100 -0
  311. package/esm/middleware/pipeline.mjs.map +1 -0
  312. package/esm/middleware/utils/extract-user-text.d.mts +33 -0
  313. package/esm/middleware/utils/extract-user-text.d.mts.map +1 -0
  314. package/esm/middleware/utils/extract-user-text.mjs +40 -0
  315. package/esm/middleware/utils/extract-user-text.mjs.map +1 -0
  316. package/esm/middleware/utils/index.d.mts +2 -0
  317. package/esm/middleware/utils/namespaced-state.d.mts +60 -0
  318. package/esm/middleware/utils/namespaced-state.d.mts.map +1 -0
  319. package/esm/middleware/utils/namespaced-state.mjs +60 -0
  320. package/esm/middleware/utils/namespaced-state.mjs.map +1 -0
  321. package/esm/mock/index.d.mts +4 -0
  322. package/esm/mock/index.mjs +5 -0
  323. package/esm/mock/mock-agent.d.mts +41 -0
  324. package/esm/mock/mock-agent.d.mts.map +1 -0
  325. package/esm/mock/mock-agent.mjs +39 -0
  326. package/esm/mock/mock-agent.mjs.map +1 -0
  327. package/esm/mock/mock-config.type.d.mts +31 -0
  328. package/esm/mock/mock-config.type.d.mts.map +1 -0
  329. package/esm/mock/mock-model.d.mts +94 -0
  330. package/esm/mock/mock-model.d.mts.map +1 -0
  331. package/esm/mock/mock-model.mjs +150 -0
  332. package/esm/mock/mock-model.mjs.map +1 -0
  333. package/esm/mock/mock-sdk.d.mts +25 -0
  334. package/esm/mock/mock-sdk.d.mts.map +1 -0
  335. package/esm/mock/mock-sdk.mjs +37 -0
  336. package/esm/mock/mock-sdk.mjs.map +1 -0
  337. package/esm/supervisor/as-tool.d.mts +45 -0
  338. package/esm/supervisor/as-tool.d.mts.map +1 -0
  339. package/esm/supervisor/as-tool.mjs +80 -0
  340. package/esm/supervisor/as-tool.mjs.map +1 -0
  341. package/esm/supervisor/cancellation.d.mts +12 -0
  342. package/esm/supervisor/cancellation.d.mts.map +1 -0
  343. package/esm/supervisor/cancellation.mjs +22 -0
  344. package/esm/supervisor/cancellation.mjs.map +1 -0
  345. package/esm/supervisor/decide.mjs +272 -0
  346. package/esm/supervisor/decide.mjs.map +1 -0
  347. package/esm/supervisor/emitter.d.mts +27 -0
  348. package/esm/supervisor/emitter.d.mts.map +1 -0
  349. package/esm/supervisor/emitter.mjs +47 -0
  350. package/esm/supervisor/emitter.mjs.map +1 -0
  351. package/esm/supervisor/entries.d.mts +141 -0
  352. package/esm/supervisor/entries.d.mts.map +1 -0
  353. package/esm/supervisor/entries.mjs +206 -0
  354. package/esm/supervisor/entries.mjs.map +1 -0
  355. package/esm/supervisor/execution.d.mts +637 -0
  356. package/esm/supervisor/execution.d.mts.map +1 -0
  357. package/esm/supervisor/execution.mjs +1868 -0
  358. package/esm/supervisor/execution.mjs.map +1 -0
  359. package/esm/supervisor/index.d.mts +11 -0
  360. package/esm/supervisor/index.mjs +12 -0
  361. package/esm/supervisor/router-prompt.d.mts +56 -0
  362. package/esm/supervisor/router-prompt.d.mts.map +1 -0
  363. package/esm/supervisor/router-prompt.mjs +52 -0
  364. package/esm/supervisor/router-prompt.mjs.map +1 -0
  365. package/esm/supervisor/signature.d.mts +28 -0
  366. package/esm/supervisor/signature.d.mts.map +1 -0
  367. package/esm/supervisor/signature.mjs +89 -0
  368. package/esm/supervisor/signature.mjs.map +1 -0
  369. package/esm/supervisor/snapshot.d.mts +54 -0
  370. package/esm/supervisor/snapshot.d.mts.map +1 -0
  371. package/esm/supervisor/snapshot.mjs +77 -0
  372. package/esm/supervisor/snapshot.mjs.map +1 -0
  373. package/esm/supervisor/supervisor-stream.d.mts +29 -0
  374. package/esm/supervisor/supervisor-stream.d.mts.map +1 -0
  375. package/esm/supervisor/supervisor-stream.mjs +89 -0
  376. package/esm/supervisor/supervisor-stream.mjs.map +1 -0
  377. package/esm/supervisor/supervisor.d.mts +27 -0
  378. package/esm/supervisor/supervisor.d.mts.map +1 -0
  379. package/esm/supervisor/supervisor.mjs +138 -0
  380. package/esm/supervisor/supervisor.mjs.map +1 -0
  381. package/esm/system-prompt/instruction.d.mts +52 -0
  382. package/esm/system-prompt/instruction.d.mts.map +1 -0
  383. package/esm/system-prompt/instruction.mjs +57 -0
  384. package/esm/system-prompt/instruction.mjs.map +1 -0
  385. package/esm/system-prompt/persona.d.mts +52 -0
  386. package/esm/system-prompt/persona.d.mts.map +1 -0
  387. package/esm/system-prompt/persona.mjs +57 -0
  388. package/esm/system-prompt/persona.mjs.map +1 -0
  389. package/esm/system-prompt/render-placeholders.d.mts +31 -0
  390. package/esm/system-prompt/render-placeholders.d.mts.map +1 -0
  391. package/esm/system-prompt/render-placeholders.mjs +58 -0
  392. package/esm/system-prompt/render-placeholders.mjs.map +1 -0
  393. package/esm/system-prompt/system-prompt.d.mts +117 -0
  394. package/esm/system-prompt/system-prompt.d.mts.map +1 -0
  395. package/esm/system-prompt/system-prompt.mjs +137 -0
  396. package/esm/system-prompt/system-prompt.mjs.map +1 -0
  397. package/esm/tool/index.d.mts +1 -0
  398. package/esm/tool/index.mjs +3 -0
  399. package/esm/tool/tool.d.mts +64 -0
  400. package/esm/tool/tool.d.mts.map +1 -0
  401. package/esm/tool/tool.mjs +184 -0
  402. package/esm/tool/tool.mjs.map +1 -0
  403. package/esm/utils/compute-cost.d.mts +58 -0
  404. package/esm/utils/compute-cost.d.mts.map +1 -0
  405. package/esm/utils/compute-cost.mjs +87 -0
  406. package/esm/utils/compute-cost.mjs.map +1 -0
  407. package/esm/utils/extract-json-payload.d.mts +33 -0
  408. package/esm/utils/extract-json-payload.d.mts.map +1 -0
  409. package/esm/utils/extract-json-payload.mjs +39 -0
  410. package/esm/utils/extract-json-payload.mjs.map +1 -0
  411. package/esm/utils/generate-run-id.d.mts +20 -0
  412. package/esm/utils/generate-run-id.d.mts.map +1 -0
  413. package/esm/utils/generate-run-id.mjs +23 -0
  414. package/esm/utils/generate-run-id.mjs.map +1 -0
  415. package/esm/utils/index.d.mts +9 -0
  416. package/esm/utils/index.mjs +11 -0
  417. package/esm/utils/json-schema.d.mts +57 -0
  418. package/esm/utils/json-schema.d.mts.map +1 -0
  419. package/esm/utils/json-schema.mjs +89 -0
  420. package/esm/utils/json-schema.mjs.map +1 -0
  421. package/esm/utils/prepare-attachment-part.d.mts +36 -0
  422. package/esm/utils/prepare-attachment-part.d.mts.map +1 -0
  423. package/esm/utils/prepare-attachment-part.mjs +140 -0
  424. package/esm/utils/prepare-attachment-part.mjs.map +1 -0
  425. package/esm/utils/resolve-attachment.d.mts +33 -0
  426. package/esm/utils/resolve-attachment.d.mts.map +1 -0
  427. package/esm/utils/resolve-attachment.mjs +73 -0
  428. package/esm/utils/resolve-attachment.mjs.map +1 -0
  429. package/esm/utils/safe-json-parse.d.mts +14 -0
  430. package/esm/utils/safe-json-parse.d.mts.map +1 -0
  431. package/esm/utils/safe-json-parse.mjs +22 -0
  432. package/esm/utils/safe-json-parse.mjs.map +1 -0
  433. package/esm/utils/stamp-report-lineage.d.mts +61 -0
  434. package/esm/utils/stamp-report-lineage.d.mts.map +1 -0
  435. package/esm/utils/stamp-report-lineage.mjs +47 -0
  436. package/esm/utils/stamp-report-lineage.mjs.map +1 -0
  437. package/esm/utils/token-count.d.mts +15 -0
  438. package/esm/utils/token-count.d.mts.map +1 -0
  439. package/esm/utils/token-count.mjs +18 -0
  440. package/esm/utils/token-count.mjs.map +1 -0
  441. package/esm/workflow/as-tool.mjs +55 -0
  442. package/esm/workflow/as-tool.mjs.map +1 -0
  443. package/esm/workflow/cancellation.mjs +44 -0
  444. package/esm/workflow/cancellation.mjs.map +1 -0
  445. package/esm/workflow/emitter.mjs +40 -0
  446. package/esm/workflow/emitter.mjs.map +1 -0
  447. package/esm/workflow/engine.mjs +362 -0
  448. package/esm/workflow/engine.mjs.map +1 -0
  449. package/esm/workflow/index.d.mts +3 -0
  450. package/esm/workflow/index.mjs +5 -0
  451. package/esm/workflow/retry.mjs +32 -0
  452. package/esm/workflow/retry.mjs.map +1 -0
  453. package/esm/workflow/router.mjs +56 -0
  454. package/esm/workflow/router.mjs.map +1 -0
  455. package/esm/workflow/run-scoped-emitter.mjs +32 -0
  456. package/esm/workflow/run-scoped-emitter.mjs.map +1 -0
  457. package/esm/workflow/signature.d.mts +7 -0
  458. package/esm/workflow/signature.d.mts.map +1 -0
  459. package/esm/workflow/signature.mjs +34 -0
  460. package/esm/workflow/signature.mjs.map +1 -0
  461. package/esm/workflow/snapshot.mjs +71 -0
  462. package/esm/workflow/snapshot.mjs.map +1 -0
  463. package/esm/workflow/state.mjs +37 -0
  464. package/esm/workflow/state.mjs.map +1 -0
  465. package/esm/workflow/step-runner.mjs +371 -0
  466. package/esm/workflow/step-runner.mjs.map +1 -0
  467. package/esm/workflow/step.d.mts +19 -0
  468. package/esm/workflow/step.d.mts.map +1 -0
  469. package/esm/workflow/step.mjs +37 -0
  470. package/esm/workflow/step.mjs.map +1 -0
  471. package/esm/workflow/workflow.d.mts +12 -0
  472. package/esm/workflow/workflow.d.mts.map +1 -0
  473. package/esm/workflow/workflow.mjs +116 -0
  474. package/esm/workflow/workflow.mjs.map +1 -0
  475. package/llms-full.txt +2293 -0
  476. package/llms.txt +20 -0
  477. package/package.json +37 -0
  478. package/skills/README.md +53 -0
  479. package/skills/ai-basics/SKILL.md +95 -0
  480. package/skills/attach-ai-middleware/SKILL.md +184 -0
  481. package/skills/define-ai-tool/SKILL.md +186 -0
  482. package/skills/embed-text/SKILL.md +105 -0
  483. package/skills/handle-ai-errors/SKILL.md +194 -0
  484. package/skills/log-ai-calls/SKILL.md +141 -0
  485. package/skills/persist-ai-data/SKILL.md +207 -0
  486. package/skills/pick-ai-provider/SKILL.md +164 -0
  487. package/skills/run-ai-agent/SKILL.md +267 -0
  488. package/skills/run-ai-workflow/SKILL.md +258 -0
  489. package/skills/run-supervisor/SKILL.md +309 -0
  490. package/skills/write-system-prompt/SKILL.md +129 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-adapter.contract.d.mts","names":[],"sources":["../../../../../../@warlock.js/ai/src/contracts/sdk-adapter.contract.ts"],"mappings":";;;;;;;AAkBA;;;;;;;;;;;AAiBc;KAjBF,WAAA;EAkCuB,qEAhCjC,IAAA,UAqCc;EAnCd,WAAA,WA6CqC;EA3CrC,SAAA;EAsDmC;;;;;;;;EA7CnC,OAAA,GAAU,YAAY,EAkCF;EAAA,CAhCnB,GAAA;AAAA;;;;;AA2CkD;;;;;;;;;;UA1BpC,kBAAA;;;;;EAKf,KAAA,CAAM,MAAA,EAAQ,WAAA,GAAc,aAAA;;;;;;;;;EAU5B,KAAA,CAAM,IAAA,UAAc,KAAA,YAAiB,OAAA;;;;;;;;;;EAWrC,QAAA,EAAU,MAAA,EAAQ,cAAA,GAAiB,gBAAA;AAAA"}
@@ -0,0 +1,68 @@
1
+ import { AIError } from "../../errors/ai-error.mjs";
2
+ import { ToolCall } from "../result/tool-call.type.mjs";
3
+ import { LLMTrip } from "../result/llm-trip.type.mjs";
4
+ import { ToolEventMeta } from "../events/agent-events.type.mjs";
5
+ import { EventIdentity } from "../events/event-identity.type.mjs";
6
+
7
+ //#region ../../@warlock.js/ai/src/contracts/stream/stream-event.type.d.ts
8
+ /**
9
+ * Discriminated union of all events emitted during a streaming execution.
10
+ * Iterate over a StreamContract to receive these events.
11
+ *
12
+ * Event `type` strings use the same dot-notation as `AgentEventMap` keys
13
+ * so filtering logic in subscribers reads the same whether they came
14
+ * through `.on(...)` or the async iterator.
15
+ *
16
+ * Every variant also carries `EventIdentity` (`runId` / `rootRunId`)
17
+ * via the `StreamEvent` intersection, so stream consumers can
18
+ * correlate to a run the same way `.on(...)` subscribers do.
19
+ *
20
+ * @example
21
+ * for await (const event of stream) {
22
+ * if (event.type === "agent.trip.streaming") process.stdout.write(event.delta);
23
+ * else if (event.type === "agent.tool.called") console.log("Tool:", event.toolCall.name);
24
+ * else if (event.type === "agent.trip.completed") console.log("Trip done");
25
+ * }
26
+ */
27
+ type StreamEventBody = {
28
+ type: "agent.starting";
29
+ input: string;
30
+ } | {
31
+ type: "agent.trip.started";
32
+ tripIndex: number;
33
+ input: string;
34
+ } | {
35
+ type: "agent.trip.streaming";
36
+ delta: string;
37
+ tripIndex: number;
38
+ } | {
39
+ type: "agent.tool.calling";
40
+ tool: ToolEventMeta;
41
+ input: unknown;
42
+ tripIndex: number;
43
+ } | {
44
+ type: "agent.tool.called";
45
+ toolCall: ToolCall;
46
+ tool: ToolEventMeta;
47
+ } | {
48
+ type: "agent.tool.failed";
49
+ tool: ToolEventMeta;
50
+ error: AIError;
51
+ tripIndex: number;
52
+ } | {
53
+ type: "agent.trip.completed";
54
+ trip: LLMTrip;
55
+ } | {
56
+ type: "agent.completed";
57
+ } | {
58
+ type: "agent.error";
59
+ error: AIError;
60
+ };
61
+ /**
62
+ * A `StreamEventBody` variant enriched with run identity. This is what
63
+ * `agent.stream()` consumers actually receive on each iteration.
64
+ */
65
+ type StreamEvent = EventIdentity & StreamEventBody;
66
+ //#endregion
67
+ export { StreamEvent, StreamEventBody };
68
+ //# sourceMappingURL=stream-event.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-event.type.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/stream/stream-event.type.ts"],"mappings":";;;;;;;;;AAyBA;;;;;;;;;;;;;;;;;KAAY,eAAA;EACN,IAAA;EAAwB,KAAA;AAAA;EACxB,IAAA;EAA4B,SAAA;EAAmB,KAAA;AAAA;EAC/C,IAAA;EAA8B,KAAA;EAAe,SAAA;AAAA;EAE7C,IAAA;EACA,IAAA,EAAM,aAAA;EACN,KAAA;EACA,SAAA;AAAA;EAEA,IAAA;EAA2B,QAAA,EAAU,QAAA;EAAU,IAAA,EAAM,aAAA;AAAA;EAErD,IAAA;EACA,IAAA,EAAM,aAAA;EACN,KAAA,EAAO,OAAA;EACP,SAAA;AAAA;EAEA,IAAA;EAA8B,IAAA,EAAM,OAAA;AAAA;EACpC,IAAA;AAAA;EACA,IAAA;EAAqB,KAAA,EAAO,OAAA;AAAA;;;;;KAMtB,WAAA,GAAc,aAAA,GAAgB,eAAe"}
@@ -0,0 +1,61 @@
1
+ import { StreamEvent } from "./stream-event.type.mjs";
2
+
3
+ //#region ../../@warlock.js/ai/src/contracts/stream/stream.contract.d.ts
4
+ /**
5
+ * An async iterable stream that also exposes a result promise.
6
+ * Returned by every primitive's `stream()` method.
7
+ *
8
+ * Parameterized by **`TResult`** (the value `result` resolves to —
9
+ * `AgentResult`, `WorkflowResult`, `SupervisorResult`, etc.) and
10
+ * **`TEvent`** (the discriminated union iterated over). `TEvent`
11
+ * defaults to the agent's `StreamEvent` so existing agent consumers
12
+ * keep working unchanged; primitives whose event surface differs
13
+ * (e.g. `SupervisorStreamEvent` in `supervisor.stream()`) parameterize
14
+ * the second slot to surface their own events to consumers.
15
+ *
16
+ * @example
17
+ * // Agent stream — TEvent defaults to StreamEvent
18
+ * const stream = agent.stream("Explain quantum computing");
19
+ * for await (const event of stream) {
20
+ * if (event.type === "agent.trip.streaming") process.stdout.write(event.delta);
21
+ * }
22
+ *
23
+ * @example
24
+ * // Supervisor stream — TEvent narrowed to SupervisorStreamEvent
25
+ * const stream = supportBot.stream(message);
26
+ * for await (const event of stream) {
27
+ * if (event.type === "supervisor.agent.streaming") process.stdout.write(event.delta);
28
+ * }
29
+ *
30
+ * @example
31
+ * // Or await just the final result
32
+ * const result = await stream.result;
33
+ * console.log(result.usage.total, "tokens used");
34
+ *
35
+ * @example
36
+ * // Attach named handlers instead of iterating
37
+ * const stream = agent.stream("Write a poem");
38
+ * stream
39
+ * .on({ "agent.trip.streaming": ({ delta }) => process.stdout.write(delta) })
40
+ * .on({ "agent.completed": () => console.log("Done!") });
41
+ * const result = await stream.result;
42
+ */
43
+ interface StreamContract<TResult, TEvent extends {
44
+ type: string;
45
+ } = StreamEvent> extends AsyncIterable<TEvent> {
46
+ /**
47
+ * Promise that resolves to the full execution result once streaming completes.
48
+ * Rejects if the execution fails.
49
+ */
50
+ result: Promise<TResult>;
51
+ /**
52
+ * Attach event handlers by event type. Returns `this` for chaining.
53
+ * Handlers registered here fire in addition to iteration.
54
+ */
55
+ on(handlers: Partial<{ [K in TEvent["type"]]: (event: Extract<TEvent, {
56
+ type: K;
57
+ }>) => void }>): this;
58
+ }
59
+ //#endregion
60
+ export { StreamContract };
61
+ //# sourceMappingURL=stream.contract.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/stream/stream.contract.ts"],"mappings":";;;;;AAyCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBM;;UAjBW,cAAA;EAEE,IAAA;AAAA,IAAiB,WAAA,UAC1B,aAAA,CAAc,MAAA;;;;;EAKtB,MAAA,EAAQ,OAAA,CAAQ,OAAA;;;;;EAMhB,EAAA,CACE,QAAA,EAAU,OAAA,SACF,MAAA,YAAkB,KAAA,EAAO,OAAA,CAAQ,MAAA;IAAU,IAAA,EAAM,CAAA;EAAA;AAAA"}
@@ -0,0 +1,78 @@
1
+ //#region ../../@warlock.js/ai/src/contracts/streaming-tool-guard-config.type.d.ts
2
+ /**
3
+ * Configuration for the stream-time tool-call guard.
4
+ *
5
+ * **What the guard does.** Cheap/fast models occasionally emit the
6
+ * structured input for a registered tool as **literal text in the
7
+ * content stream** instead of as a structured tool-call. Without
8
+ * intervention, the customer watches raw JSON build up
9
+ * character-by-character on screen — every `delta` already shipped
10
+ * over the wire before anyone can react. The guard sits at the
11
+ * delta-processing seam inside the agent loop, scans incoming text
12
+ * for a JSON envelope that matches a registered tool's name + schema,
13
+ * and — when matched — synthesizes a real tool call while dropping
14
+ * the leaked JSON from visible text.
15
+ *
16
+ * **Opt-in by design.** Absent = off (faithful relay, no mutation).
17
+ * Empty object `{}` = on with defaults. Mutating the stream behind a
18
+ * developer's back violates least surprise — set this explicitly when
19
+ * the agent has tools that the model has been observed to leak.
20
+ *
21
+ * **What survives the guard.**
22
+ * - Legitimate prose streams verbatim; the guard only engages when a
23
+ * `{` or ```` ```json ```` opener appears in the text channel.
24
+ * - A buffered JSON blob that does NOT match the named-envelope
25
+ * pattern (envelope `{ name|tool, arguments|input }` whose tool is
26
+ * registered AND whose args validate against the tool's schema) is
27
+ * flushed back to the consumer as text — the developer's "give me
28
+ * a JSON config" prompt is preserved.
29
+ *
30
+ * **Limitations.**
31
+ * - Named envelope only. Bare-object matching is unsafe while tool
32
+ * input schemas can be permissive (a `v.record(v.any())` matches
33
+ * any object); future tier, not in v1.
34
+ * - Recovery introduces a delay equal to "time to emit the suspect
35
+ * JSON" — the customer sees prose up to the `{`, then waits while
36
+ * the buffer fills, then either sees nothing (recovered) or the
37
+ * JSON in one shot (flushed). Negligible in normal chat; visible
38
+ * only when the agent's primary output IS a JSON blob the user
39
+ * asked for.
40
+ *
41
+ * @example
42
+ * // Always on for this agent, defaults
43
+ * const talker = agent({
44
+ * model,
45
+ * tools: [suggestFollowupsTool],
46
+ * streamingToolGuard: {},
47
+ * });
48
+ *
49
+ * @example
50
+ * // Per-call override — disable for a one-off JSON-extraction call
51
+ * await agent.execute(input, {
52
+ * streamingToolGuard: undefined,
53
+ * });
54
+ *
55
+ * @example
56
+ * // Tighter buffer cap for cost-sensitive deployments
57
+ * const talker = agent({
58
+ * model,
59
+ * tools,
60
+ * streamingToolGuard: { maxBufferBytes: 2048 },
61
+ * });
62
+ */
63
+ type StreamingToolGuardConfig = {
64
+ /**
65
+ * Hard cap on the bytes the guard will accumulate before deciding
66
+ * a suspect buffer is not envelope-shaped after all. When the cap
67
+ * is hit, the buffer flushes to the consumer as text and the guard
68
+ * resets to pass-through.
69
+ *
70
+ * Defaults to `4096`. Real envelope payloads observed in production
71
+ * leaks have been under 1 KB; the cap is a safety valve against an
72
+ * adversarial / runaway buffer growing without bound.
73
+ */
74
+ maxBufferBytes?: number;
75
+ };
76
+ //#endregion
77
+ export { StreamingToolGuardConfig };
78
+ //# sourceMappingURL=streaming-tool-guard-config.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-tool-guard-config.type.d.mts","names":[],"sources":["../../../../../../@warlock.js/ai/src/contracts/streaming-tool-guard-config.type.ts"],"mappings":";;AA6DA;;;;AAWgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAXJ,wBAAA;;;;;;;;;;;EAWV,cAAc;AAAA"}
@@ -0,0 +1,97 @@
1
+ import { Message } from "../conversation-message.type.mjs";
2
+ import { AgentContract } from "../agent/agent.contract.mjs";
3
+ import { RouteContext } from "./route-context.type.mjs";
4
+ import { StandardSchemaV1 } from "@standard-schema/spec";
5
+
6
+ //#region ../../@warlock.js/ai/src/contracts/supervisor/ack-entry.type.d.ts
7
+ /**
8
+ * Receptionist callback — pure code that produces an acknowledgment
9
+ * slice. Bare-callback shorthand for `AckRunEntry`. Use when the ack
10
+ * doesn't need an LLM at all (templated greetings, deterministic
11
+ * hedges based on `ctx.input` keywords, etc.).
12
+ */
13
+ type AckCallback<TState = Record<string, unknown>> = (ctx: RouteContext<TState>) => unknown | Promise<unknown>;
14
+ /**
15
+ * Receptionist entry — LLM-driven form. Symmetric with `IntentEntry`,
16
+ * gated to ack-relevant fields:
17
+ *
18
+ * - `agent` — the receptionist agent. Typically a small/fast model
19
+ * on a separate provider so its first-token latency genuinely
20
+ * undercuts the slow path.
21
+ * - `placeholders` — values fed into the agent's `systemPrompt` template.
22
+ * - `input` — overrides what the agent receives as its user message.
23
+ * - `output` — Standard Schema; strip-validates the slice before merge.
24
+ */
25
+ type AckEntry<TState = Record<string, unknown>> = {
26
+ agent: AgentContract<unknown>;
27
+ placeholders?: (ctx: RouteContext<TState>) => Record<string, unknown>;
28
+ input?: (ctx: RouteContext<TState>) => string;
29
+ output?: StandardSchemaV1<unknown>;
30
+ /**
31
+ * Custom history slicer for the ack agent. When supplied, REPLACES
32
+ * the default (which is empty — `historyWindow.ack` defaults to `0`,
33
+ * since receptionists rarely need scroll-back). Override this when
34
+ * the ack genuinely needs a turn or two of context.
35
+ *
36
+ * Precedence: entry `history` callback > `historyWindow.ack` >
37
+ * empty.
38
+ *
39
+ * @example
40
+ * ack: {
41
+ * agent: ackAgent,
42
+ * history: (ctx) => ctx.history.slice(-2),
43
+ * }
44
+ */
45
+ history?: (ctx: RouteContext<TState>) => Message[] | ReadonlyArray<Message>;
46
+ };
47
+ /**
48
+ * Receptionist entry — callback form. Same shape as `AckEntry` but
49
+ * with `run` instead of `agent` — pure code, no LLM call. Mirrors
50
+ * the `IntentRunEntry` / `IntentEntry` split on the intents map.
51
+ */
52
+ type AckRunEntry<TState = Record<string, unknown>> = {
53
+ run: AckCallback<TState>;
54
+ output?: StandardSchemaV1<unknown>;
55
+ };
56
+ /**
57
+ * Union of accepted shapes for the supervisor's `ack` config field.
58
+ * Three forms in order of conciseness:
59
+ *
60
+ * 1. **`AckEntry`** — `{ agent, placeholders?, input?, output? }`.
61
+ * LLM-driven receptionist (e.g. one that classifies the request
62
+ * and weaves the category into the ack: "Looking into your *shipping*
63
+ * question now"). Use a meaningfully faster model + provider than
64
+ * the slow path the ack is masking — same model = same queue,
65
+ * no win.
66
+ *
67
+ * 2. **`AckRunEntry`** — `{ run, output? }`. Pure-code callback that
68
+ * returns the slice. Use for templated/deterministic acks that
69
+ * don't need an LLM.
70
+ *
71
+ * 3. **`AckCallback`** — bare `(ctx) => slice`. Shorthand for the
72
+ * pure-code form when no schema is declared.
73
+ *
74
+ * **Receptionist mental model.** Whatever form, the ack acknowledges
75
+ * receipt and indicates direction; it does NOT make decisions or
76
+ * promise outcomes. The downstream specialists own the actual answer.
77
+ *
78
+ * **Runtime semantics:**
79
+ * - Fires only when `iteration === 0 && !resumeFrom`. Resumes don't
80
+ * re-emit (the user already saw the original ack).
81
+ * - Runs concurrently with phase A (router/route decision).
82
+ * - Tokens stream via `supervisor.ack.streaming` (LLM form only —
83
+ * pure-code acks settle synchronously and emit just `.completed`).
84
+ * - Output strip-merges into `state` BEFORE dispatched branches —
85
+ * specialist outputs override the receptionist on key collision.
86
+ * - Loses gracefully — if ack hasn't settled by the time the
87
+ * iteration is otherwise ready to finalize, the slice drops with
88
+ * a warning log; the run completes regardless. Schema's
89
+ * `.optional()` covers it. Non-blocking by design.
90
+ * - Failure surfaces on `report.ack.error` but never aborts the run.
91
+ * - Usage rolls up into the supervisor's total; the ack agent's full
92
+ * report node lives in `result.report.children[]`.
93
+ */
94
+ type AckConfig<TState = Record<string, unknown>> = AckEntry<TState> | AckRunEntry<TState> | AckCallback<TState>;
95
+ //#endregion
96
+ export { AckCallback, AckConfig, AckEntry, AckRunEntry };
97
+ //# sourceMappingURL=ack-entry.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ack-entry.type.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/supervisor/ack-entry.type.ts"],"mappings":";;;;;;;;AAWA;;;;KAAY,WAAA,UAAqB,MAAA,sBAC/B,GAAA,EAAK,YAAA,CAAa,MAAA,gBACL,OAAA;;;;;;;;;;;;KAaH,QAAA,UAAkB,MAAA;EAC5B,KAAA,EAAO,aAAA;EACP,YAAA,IAAgB,GAAA,EAAK,YAAA,CAAa,MAAA,MAAY,MAAA;EAC9C,KAAA,IAAS,GAAA,EAAK,YAAA,CAAa,MAAA;EAC3B,MAAA,GAAS,gBAAA;EAHF;;;;;;;;;;;;;;;EAmBP,OAAA,IAAW,GAAA,EAAK,YAAA,CAAa,MAAA,MAAY,OAAA,KAAY,aAAA,CAAc,OAAA;AAAA;;;;;;KAQzD,WAAA,UAAqB,MAAA;EAC/B,GAAA,EAAK,WAAA,CAAY,MAAA;EACjB,MAAA,GAAS,gBAAA;AAAA;;;;;;;;;;;;AAViE;AAQ5E;;;;;;;;;;;;;;;;;AAE2B;AAyC3B;;;;;;;;KAAY,SAAA,UAAmB,MAAA,qBAC3B,QAAA,CAAS,MAAA,IACT,WAAA,CAAY,MAAA,IACZ,WAAA,CAAY,MAAA"}
@@ -0,0 +1,189 @@
1
+ import { Message } from "../conversation-message.type.mjs";
2
+ import { AIError } from "../../errors/ai-error.mjs";
3
+ import { Usage } from "../result/usage.type.mjs";
4
+ import { StreamContract } from "../stream/stream.contract.mjs";
5
+ import { AgentContract } from "../agent/agent.contract.mjs";
6
+ import { EndSentinel } from "../end.type.mjs";
7
+ import { SupervisorInput } from "./supervisor-input.type.mjs";
8
+ import { StreamableExecutable, SupervisableExecutable, SupervisableExecuteOptions, SupervisableResult } from "./dispatch-context.type.mjs";
9
+
10
+ //#region ../../@warlock.js/ai/src/contracts/supervisor/classifier-context.type.d.ts
11
+ /**
12
+ * Locked output shape every classifier must produce — agent or callback
13
+ * form. `intent` is required and must match a key in the supervisor's
14
+ * `intents` map; `reasoning` and `confidence` are optional universal
15
+ * telemetry fields.
16
+ *
17
+ * Devs may extend this with arbitrary additional fields by declaring
18
+ * a richer output schema on their classifier agent — those fields
19
+ * strip-merge into supervisor state per the supervisor's `output`
20
+ * schema. The framework only reserves the three fields below.
21
+ *
22
+ * **Confidence caveat.** LLM-reported `confidence` values are
23
+ * notoriously poorly calibrated — a model that says `0.95` is wrong
24
+ * roughly as often as one that says `0.85`. Use it as a soft signal
25
+ * (alongside reasoning inspection, prior state, deterministic checks)
26
+ * rather than as a hard threshold for control flow.
27
+ *
28
+ * @example
29
+ * // Output schema for a customer-support classifier:
30
+ * v.object({
31
+ * intent: v.enum(["billing", "shipping", "smalltalk"]),
32
+ * reasoning: v.string().optional(),
33
+ * confidence: v.number().optional(),
34
+ * // Domain-specific extension — strip-merges into state alongside.
35
+ * language: v.string().optional(),
36
+ * })
37
+ */
38
+ type ClassifierOutput = {
39
+ /** Required — must match a key in the supervisor's `intents` map. */intent: string; /** Optional reasoning trail — telemetry / refine signal. */
40
+ reasoning?: string;
41
+ /**
42
+ * Optional self-reported confidence (0–1). See "Confidence caveat"
43
+ * above — LLM-reported values are not well calibrated.
44
+ */
45
+ confidence?: number;
46
+ };
47
+ /**
48
+ * Result of a `classifier.refine` callback (Phase 7 / decisions §37).
49
+ * Lets the dev intercept the classifier's output and either (a) accept
50
+ * it as-is, (b) override the dispatched intent, (c) merge additional
51
+ * state, or (d) halt the run before any dispatch.
52
+ *
53
+ * - `undefined` → use classifier output unchanged.
54
+ * - `END` (bare sentinel) → terminate the run; no dispatch, no slice
55
+ * merged from refine. The run completes with
56
+ * `terminatedBy: "classifier"`.
57
+ * - `{ intent: "name", ...slice }` → override intent + shallow-merge
58
+ * slice into state. `intent` must match a registered intents key
59
+ * or runtime throws `SUPERVISOR_INVALID_ROUTE`.
60
+ * - `{ intent: END, ...slice }` → terminate AFTER merging slice into
61
+ * state. Useful for "halt with reason" patterns where the dev
62
+ * wants the rejection reason to surface in `result.data`.
63
+ * - `{ ...slice }` (no `intent` key) → keep classifier's intent;
64
+ * shallow-merge slice into state.
65
+ */
66
+ type ClassifierRefineResult = undefined | EndSentinel | (Record<string, unknown> & {
67
+ intent?: string | EndSentinel;
68
+ });
69
+ /**
70
+ * Read-only context passed to a classifier callback or to a
71
+ * classifier agent's per-call resolvers (`placeholders`, `input`,
72
+ * `history`). Phase 7 / decisions §37.
73
+ *
74
+ * Mirrors `RouteContext` for the iter-0 prelude with one critical
75
+ * exclusion: dispatch helpers (`intents.X.execute()` / `run` /
76
+ * `stream`) are NOT exposed at classifier time — registered intents
77
+ * have not dispatched yet; pre-running them from the classifier
78
+ * would be confusing. The refine hook gets `run` / `stream` so the
79
+ * "secondary classifier" pattern works (call another agent inline
80
+ * to validate or override the primary classification).
81
+ */
82
+ type ClassifierContext<TState = Record<string, unknown>> = {
83
+ /** Always `0` — classifier runs as the iter-0 prelude. */iteration: 0; /** The supervisor's original `execute(input)` value. */
84
+ input: SupervisorInput; /** Empty `{}` at classifier time — no intent has dispatched yet. */
85
+ state: TState; /** Read-only request-scoped bag from `execute(input, { context })`. */
86
+ context: Readonly<Record<string, unknown>>; /** Prior conversation messages from `execute(input, { history })`. */
87
+ history: ReadonlyArray<Message>; /** Cancellation signal — propagated from the `execute()` caller. */
88
+ signal: AbortSignal; /** Resolved natural-language objective from `SupervisorConfig.goal`. */
89
+ goal?: string;
90
+ };
91
+ /**
92
+ * Context passed to `classifier.refine`. Same surface as
93
+ * {@link ClassifierContext} plus the just-resolved classifier output
94
+ * on `result.data`, plus `run` / `stream` (Phase 6 inline supervised
95
+ * execution) so refine can spin up a secondary classifier or
96
+ * validator without leaving the supervised flow.
97
+ */
98
+ type ClassifierRefineContext<TState = Record<string, unknown>> = ClassifierContext<TState> & {
99
+ /** The classifier's just-resolved output, ready to refine. */result: {
100
+ data: ClassifierOutput;
101
+ }; /** Inline execute under supervision — see Phase 6 / decisions §36. */
102
+ run: (executable: SupervisableExecutable, input: unknown, options?: SupervisableExecuteOptions) => Promise<SupervisableResult>; /** Inline stream under supervision — see Phase 6 / decisions §36. */
103
+ stream: (executable: StreamableExecutable, input: unknown, options?: SupervisableExecuteOptions) => StreamContract<SupervisableResult>;
104
+ };
105
+ /**
106
+ * Object form of a classifier entry — agent variant. Use when you
107
+ * need to override per-call `placeholders`, `input`, or `history`,
108
+ * or attach a `refine` post-process hook.
109
+ */
110
+ type ClassifierAgentEntry<TState = Record<string, unknown>> = {
111
+ agent: AgentContract<unknown>; /** Per-call placeholders for the agent's systemPrompt template. */
112
+ placeholders?: (ctx: ClassifierContext<TState>) => Record<string, unknown>; /** Per-call input override; defaults to the supervisor's `ctx.input`. */
113
+ input?: (ctx: ClassifierContext<TState>) => string;
114
+ /**
115
+ * Per-call history slicer. Defaults to the supervisor's
116
+ * `historyWindow.agents` slice when omitted.
117
+ */
118
+ history?: (ctx: ClassifierContext<TState>) => Message[] | ReadonlyArray<Message>;
119
+ /**
120
+ * Optional post-classify hook. Receives the classifier's output on
121
+ * `ctx.result.data`; can override intent, merge state, or halt
122
+ * via `END`.
123
+ */
124
+ refine?: (ctx: ClassifierRefineContext<TState>) => Promise<ClassifierRefineResult> | ClassifierRefineResult;
125
+ };
126
+ /**
127
+ * Object form of a classifier entry — pure-code callback variant.
128
+ * Use when classification is deterministic (regex, keyword match,
129
+ * prior-state inspection) and an LLM call would be wasteful.
130
+ */
131
+ type ClassifierRunEntry<TState = Record<string, unknown>> = {
132
+ run: (ctx: ClassifierContext<TState>) => Promise<ClassifierOutput> | ClassifierOutput;
133
+ refine?: (ctx: ClassifierRefineContext<TState>) => Promise<ClassifierRefineResult> | ClassifierRefineResult;
134
+ };
135
+ /**
136
+ * Bare-callback shorthand — when classification is a pure function
137
+ * with no need for a `refine` hook or other entry-form fields.
138
+ */
139
+ type ClassifierCallback<TState = Record<string, unknown>> = (ctx: ClassifierContext<TState>) => Promise<ClassifierOutput> | ClassifierOutput;
140
+ /**
141
+ * Accepted shapes for `SupervisorConfig.classifier` (Phase 7 /
142
+ * decisions §37). Mirrors the same flexibility as `intents` and
143
+ * `router`:
144
+ *
145
+ * - `AgentContract` — bare agent shorthand. Output is parsed via
146
+ * the agent's own typed output schema.
147
+ * - `ClassifierCallback` — bare function shorthand; deterministic
148
+ * classification.
149
+ * - `ClassifierAgentEntry` — full object form for an agent
150
+ * classifier with overrides + optional `refine`.
151
+ * - `ClassifierRunEntry` — full object form for a callback
152
+ * classifier with optional `refine`.
153
+ *
154
+ * Mutually exclusive with `initialAgent` at the factory level —
155
+ * both answer "what runs first?" and coexistence is meaningless.
156
+ * Composes with `router`, `route`, `evaluate`, `ack`,
157
+ * `intent.next`, and Phases 5/6 features.
158
+ */
159
+ type ClassifierConfig<TState = Record<string, unknown>> = AgentContract<unknown> | ClassifierCallback<TState> | ClassifierAgentEntry<TState> | ClassifierRunEntry<TState>;
160
+ /**
161
+ * Forensic record of a classifier run, surfaced on
162
+ * `SupervisorReport.classifier` (Phase 7). Sibling of `report.ack` —
163
+ * complete forensic detail regardless of what strip-merged into state.
164
+ *
165
+ * `intent` here is the FINAL intent dispatched (post-refine override).
166
+ * `refined` indicates whether the refine hook changed something.
167
+ * Original classifier output is captured on `raw` for debugging.
168
+ */
169
+ type ClassifierSnapshot = {
170
+ /** Final intent dispatched (post-refine), or absent when refine returned END before any dispatch. */intent?: string;
171
+ reasoning?: string;
172
+ confidence?: number; /** True when refine returned a non-undefined value that overrode or augmented the classifier output. */
173
+ refined: boolean; /** True when refine (or classifier-only mode) halted before any intent dispatched. */
174
+ halted: boolean; /** Original classifier output (pre-refine) — preserved for debugging. */
175
+ raw: ClassifierOutput;
176
+ startedAt: string;
177
+ endedAt: string;
178
+ duration: number;
179
+ usage: Usage;
180
+ /**
181
+ * Set when the classifier itself errored OR refine threw. Run is
182
+ * aborted in either case — the supervisor terminates with this
183
+ * error on `result.error`.
184
+ */
185
+ error?: AIError;
186
+ };
187
+ //#endregion
188
+ export { ClassifierAgentEntry, ClassifierCallback, ClassifierConfig, ClassifierContext, ClassifierOutput, ClassifierRefineContext, ClassifierRefineResult, ClassifierRunEntry, ClassifierSnapshot };
189
+ //# sourceMappingURL=classifier-context.type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier-context.type.d.mts","names":[],"sources":["../../../../../../../@warlock.js/ai/src/contracts/supervisor/classifier-context.type.ts"],"mappings":";;;;;;;;;;;;AAyCA;;;;;;;;AASY;AAsBZ;;;;;;;;;;;;;AAG8D;AAe9D;;KAjDY,gBAAA;EAiD2B,qEA/CrC,MAAA,UAqDO;EAnDP,SAAA;EAqDS;;;;EAhDT,UAAA;AAAA;;;;;;;;;;;;;;;;;;AAsDI;AAUN;KA1CY,sBAAA,eAER,WAAA,IACC,MAAA;EAA4B,MAAA,YAAkB,WAAA;AAAA;;;;;;;;;;;;;;KAevC,iBAAA,UAA2B,MAAA;EAwBM,0DAtB3C,SAAA,KAuBkB;EArBlB,KAAA,EAAO,eAAA,EAuBK;EArBZ,KAAA,EAAO,MAAA,EAuBL;EArBF,OAAA,EAAS,QAAA,CAAS,MAAA,oBAsBd;EApBJ,OAAA,EAAS,aAAA,CAAc,OAAA,GAsBT;EApBd,MAAA,EAAQ,WAAA,EAqBD;EAnBP,IAAA;AAAA;;;;;;;;KAUU,uBAAA,UAAiC,MAAA,qBAC3C,iBAAA,CAAkB,MAAA;EAcsB,8DAZtC,MAAA;IAAU,IAAA,EAAM,gBAAA;EAAA,GAoBsB;EAlBtC,GAAA,GACE,UAAA,EAAY,sBAAA,EACZ,KAAA,WACA,OAAA,GAAU,0BAAA,KACP,OAAA,CAAQ,kBAAA,GAiBwB;EAfrC,MAAA,GACE,UAAA,EAAY,oBAAA,EACZ,KAAA,WACA,OAAA,GAAU,0BAAA,KACP,cAAA,CAAe,kBAAA;AAAA;;;;;;KAQZ,oBAAA,UAA8B,MAAA;EACxC,KAAA,EAAO,aAAA,WAgBwB;EAd/B,YAAA,IAAgB,GAAA,EAAK,iBAAA,CAAkB,MAAA,MAAY,MAAA,mBAetC;EAbb,KAAA,IAAS,GAAA,EAAK,iBAAA,CAAkB,MAAA;EAaO;;;;EARvC,OAAA,IAAW,GAAA,EAAK,iBAAA,CAAkB,MAAA,MAAY,OAAA,KAAY,aAAA,CAAc,OAAA;EATxE;;;;;EAeA,MAAA,IACE,GAAA,EAAK,uBAAA,CAAwB,MAAA,MAC1B,OAAA,CAAQ,sBAAA,IAA0B,sBAAA;AAAA;;;;;;KAQ7B,kBAAA,UAA4B,MAAA;EACtC,GAAA,GACE,GAAA,EAAK,iBAAA,CAAkB,MAAA,MACpB,OAAA,CAAQ,gBAAA,IAAoB,gBAAA;EACjC,MAAA,IACE,GAAA,EAAK,uBAAA,CAAwB,MAAA,MAC1B,OAAA,CAAQ,sBAAA,IAA0B,sBAAA;AAAA;;;;;KAO7B,kBAAA,UAA4B,MAAA,sBACtC,GAAA,EAAK,iBAAA,CAAkB,MAAA,MACpB,OAAA,CAAQ,gBAAA,IAAoB,gBAAA;;;;;;AAvB8B;AAQ/D;;;;;;;;;;;;;KAoCY,gBAAA,UAA0B,MAAA,qBAClC,aAAA,YACA,kBAAA,CAAmB,MAAA,IACnB,oBAAA,CAAqB,MAAA,IACrB,kBAAA,CAAmB,MAAA;;;;;;;;;;KAWX,kBAAA;EAhDuB,qGAkDjC,MAAA;EACA,SAAA;EACA,UAAA,WAlDE;EAoDF,OAAA,WAnDa;EAqDb,MAAA,WArD6D;EAuD7D,GAAA,EAAK,gBAAA;EACL,SAAA;EACA,OAAA;EACA,QAAA;EACA,KAAA,EAAO,KAAA;EAnDgB;;;;;EAyDvB,KAAA,GAAQ,OAAA;AAAA"}