@warlock.js/core 4.7.0 → 4.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (812) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/esm/config/config-getter.mjs +5 -5
  3. package/esm/config/config-getter.mjs.map +1 -1
  4. package/esm/config/config-loader.mjs +2 -2
  5. package/esm/config/config-loader.mjs.map +1 -1
  6. package/esm/connectors/access-connector.mjs +2 -2
  7. package/esm/connectors/access-connector.mjs.map +1 -1
  8. package/esm/connectors/ai-connector.mjs +3 -3
  9. package/esm/connectors/ai-connector.mjs.map +1 -1
  10. package/esm/connectors/cache-connector.mjs +2 -2
  11. package/esm/connectors/cache-connector.mjs.map +1 -1
  12. package/esm/connectors/database-connector.mjs +2 -2
  13. package/esm/connectors/database-connector.mjs.map +1 -1
  14. package/esm/connectors/herald-connector.mjs +2 -2
  15. package/esm/connectors/herald-connector.mjs.map +1 -1
  16. package/esm/connectors/http-connector.mjs +7 -7
  17. package/esm/connectors/http-connector.mjs.map +1 -1
  18. package/esm/connectors/logger-connector.mjs +2 -2
  19. package/esm/connectors/logger-connector.mjs.map +1 -1
  20. package/esm/connectors/mail-connector.mjs +2 -2
  21. package/esm/connectors/mail-connector.mjs.map +1 -1
  22. package/esm/connectors/notifications-connector.mjs +2 -2
  23. package/esm/connectors/notifications-connector.mjs.map +1 -1
  24. package/esm/connectors/socket-connector.mjs +3 -3
  25. package/esm/connectors/socket-connector.mjs.map +1 -1
  26. package/esm/http/config.mjs +2 -2
  27. package/esm/http/config.mjs.map +1 -1
  28. package/esm/http/createHttpApplication.mjs +2 -2
  29. package/esm/http/createHttpApplication.mjs.map +1 -1
  30. package/esm/http/middleware/idempotency.middleware.mjs +5 -5
  31. package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
  32. package/esm/http/middleware/inject-request-context.mjs +2 -2
  33. package/esm/http/middleware/inject-request-context.mjs.map +1 -1
  34. package/esm/http/middleware/maintenance.middleware.mjs +4 -4
  35. package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
  36. package/esm/http/plugins.mjs +9 -9
  37. package/esm/http/plugins.mjs.map +1 -1
  38. package/esm/http/response.mjs +5 -5
  39. package/esm/http/response.mjs.map +1 -1
  40. package/esm/http/server.mjs +4 -4
  41. package/esm/http/server.mjs.map +1 -1
  42. package/esm/utils/paths.mjs +2 -2
  43. package/esm/utils/paths.mjs.map +1 -1
  44. package/esm/validation/validateAll.mjs +2 -2
  45. package/esm/validation/validateAll.mjs.map +1 -1
  46. package/package.json +12 -9
  47. package/esm/ai/src/agent/agent-input-builder.mjs +0 -133
  48. package/esm/ai/src/agent/agent-input-builder.mjs.map +0 -1
  49. package/esm/ai/src/agent/agent-log-event.mjs +0 -101
  50. package/esm/ai/src/agent/agent-log-event.mjs.map +0 -1
  51. package/esm/ai/src/agent/agent-stream.mjs +0 -82
  52. package/esm/ai/src/agent/agent-stream.mjs.map +0 -1
  53. package/esm/ai/src/agent/agent-to-stream-event.mjs +0 -86
  54. package/esm/ai/src/agent/agent-to-stream-event.mjs.map +0 -1
  55. package/esm/ai/src/agent/agent.mjs +0 -1276
  56. package/esm/ai/src/agent/agent.mjs.map +0 -1
  57. package/esm/ai/src/agent/index.mjs +0 -5
  58. package/esm/ai/src/agent/json-stream-guard.mjs +0 -400
  59. package/esm/ai/src/agent/json-stream-guard.mjs.map +0 -1
  60. package/esm/ai/src/agent/signature.mjs +0 -57
  61. package/esm/ai/src/agent/signature.mjs.map +0 -1
  62. package/esm/ai/src/agent/snapshot.mjs +0 -101
  63. package/esm/ai/src/agent/snapshot.mjs.map +0 -1
  64. package/esm/ai/src/agent/spawn-sub-agent.mjs +0 -68
  65. package/esm/ai/src/agent/spawn-sub-agent.mjs.map +0 -1
  66. package/esm/ai/src/ai.mjs +0 -191
  67. package/esm/ai/src/ai.mjs.map +0 -1
  68. package/esm/ai/src/batch/batch.mjs +0 -198
  69. package/esm/ai/src/batch/batch.mjs.map +0 -1
  70. package/esm/ai/src/batch/index.mjs +0 -3
  71. package/esm/ai/src/batch/run-batch-item.mjs +0 -100
  72. package/esm/ai/src/batch/run-batch-item.mjs.map +0 -1
  73. package/esm/ai/src/batch/run-with-concurrency.mjs +0 -39
  74. package/esm/ai/src/batch/run-with-concurrency.mjs.map +0 -1
  75. package/esm/ai/src/checkpoint/memory.mjs +0 -0
  76. package/esm/ai/src/checkpoint/memory.mjs.map +0 -1
  77. package/esm/ai/src/checkpoint/pg.mjs +0 -265
  78. package/esm/ai/src/checkpoint/pg.mjs.map +0 -1
  79. package/esm/ai/src/checkpoint/redis.mjs +0 -200
  80. package/esm/ai/src/checkpoint/redis.mjs.map +0 -1
  81. package/esm/ai/src/config.mjs +0 -59
  82. package/esm/ai/src/config.mjs.map +0 -1
  83. package/esm/ai/src/contracts/end.type.mjs +0 -47
  84. package/esm/ai/src/contracts/end.type.mjs.map +0 -1
  85. package/esm/ai/src/errors/agent-cancelled-error.mjs +0 -43
  86. package/esm/ai/src/errors/agent-cancelled-error.mjs.map +0 -1
  87. package/esm/ai/src/errors/agent-drift-error.mjs +0 -31
  88. package/esm/ai/src/errors/agent-drift-error.mjs.map +0 -1
  89. package/esm/ai/src/errors/agent-execution-error.mjs +0 -35
  90. package/esm/ai/src/errors/agent-execution-error.mjs.map +0 -1
  91. package/esm/ai/src/errors/agent-max-trips-error.mjs +0 -41
  92. package/esm/ai/src/errors/agent-max-trips-error.mjs.map +0 -1
  93. package/esm/ai/src/errors/ai-error.mjs +0 -68
  94. package/esm/ai/src/errors/ai-error.mjs.map +0 -1
  95. package/esm/ai/src/errors/budget-exceeded-error.mjs +0 -31
  96. package/esm/ai/src/errors/budget-exceeded-error.mjs.map +0 -1
  97. package/esm/ai/src/errors/content-filter-error.mjs +0 -28
  98. package/esm/ai/src/errors/content-filter-error.mjs.map +0 -1
  99. package/esm/ai/src/errors/context-length-exceeded-error.mjs +0 -31
  100. package/esm/ai/src/errors/context-length-exceeded-error.mjs.map +0 -1
  101. package/esm/ai/src/errors/guardrail-violation-error.mjs +0 -41
  102. package/esm/ai/src/errors/guardrail-violation-error.mjs.map +0 -1
  103. package/esm/ai/src/errors/index.mjs +0 -40
  104. package/esm/ai/src/errors/invalid-request-error.mjs +0 -31
  105. package/esm/ai/src/errors/invalid-request-error.mjs.map +0 -1
  106. package/esm/ai/src/errors/max-iterations-error.mjs +0 -32
  107. package/esm/ai/src/errors/max-iterations-error.mjs.map +0 -1
  108. package/esm/ai/src/errors/max-steps-exceeded-error.mjs +0 -21
  109. package/esm/ai/src/errors/max-steps-exceeded-error.mjs.map +0 -1
  110. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs +0 -31
  111. package/esm/ai/src/errors/orchestrator-cancelled-error.mjs.map +0 -1
  112. package/esm/ai/src/errors/orchestrator-config-error.mjs +0 -30
  113. package/esm/ai/src/errors/orchestrator-config-error.mjs.map +0 -1
  114. package/esm/ai/src/errors/orchestrator-drift-error.mjs +0 -37
  115. package/esm/ai/src/errors/orchestrator-drift-error.mjs.map +0 -1
  116. package/esm/ai/src/errors/orchestrator-failed-error.mjs +0 -36
  117. package/esm/ai/src/errors/orchestrator-failed-error.mjs.map +0 -1
  118. package/esm/ai/src/errors/outbound-policy-error.mjs +0 -32
  119. package/esm/ai/src/errors/outbound-policy-error.mjs.map +0 -1
  120. package/esm/ai/src/errors/planner-cancelled-error.mjs +0 -29
  121. package/esm/ai/src/errors/planner-cancelled-error.mjs.map +0 -1
  122. package/esm/ai/src/errors/planner-drift-error.mjs +0 -33
  123. package/esm/ai/src/errors/planner-drift-error.mjs.map +0 -1
  124. package/esm/ai/src/errors/planner-failed-error.mjs +0 -37
  125. package/esm/ai/src/errors/planner-failed-error.mjs.map +0 -1
  126. package/esm/ai/src/errors/planner-plan-invalid-error.mjs +0 -25
  127. package/esm/ai/src/errors/planner-plan-invalid-error.mjs.map +0 -1
  128. package/esm/ai/src/errors/prompt-refinement-error.mjs +0 -27
  129. package/esm/ai/src/errors/prompt-refinement-error.mjs.map +0 -1
  130. package/esm/ai/src/errors/provider-auth-error.mjs +0 -26
  131. package/esm/ai/src/errors/provider-auth-error.mjs.map +0 -1
  132. package/esm/ai/src/errors/provider-error.mjs +0 -42
  133. package/esm/ai/src/errors/provider-error.mjs.map +0 -1
  134. package/esm/ai/src/errors/provider-rate-limit-error.mjs +0 -31
  135. package/esm/ai/src/errors/provider-rate-limit-error.mjs.map +0 -1
  136. package/esm/ai/src/errors/provider-timeout-error.mjs +0 -26
  137. package/esm/ai/src/errors/provider-timeout-error.mjs.map +0 -1
  138. package/esm/ai/src/errors/quota-exceeded-error.mjs +0 -40
  139. package/esm/ai/src/errors/quota-exceeded-error.mjs.map +0 -1
  140. package/esm/ai/src/errors/routing-error.mjs +0 -23
  141. package/esm/ai/src/errors/routing-error.mjs.map +0 -1
  142. package/esm/ai/src/errors/schema-validation-error.mjs +0 -37
  143. package/esm/ai/src/errors/schema-validation-error.mjs.map +0 -1
  144. package/esm/ai/src/errors/step-failed-error.mjs +0 -19
  145. package/esm/ai/src/errors/step-failed-error.mjs.map +0 -1
  146. package/esm/ai/src/errors/supervisor-cancelled-error.mjs +0 -29
  147. package/esm/ai/src/errors/supervisor-cancelled-error.mjs.map +0 -1
  148. package/esm/ai/src/errors/supervisor-drift-error.mjs +0 -30
  149. package/esm/ai/src/errors/supervisor-drift-error.mjs.map +0 -1
  150. package/esm/ai/src/errors/supervisor-failed-error.mjs +0 -43
  151. package/esm/ai/src/errors/supervisor-failed-error.mjs.map +0 -1
  152. package/esm/ai/src/errors/supervisor-routing-error.mjs +0 -39
  153. package/esm/ai/src/errors/supervisor-routing-error.mjs.map +0 -1
  154. package/esm/ai/src/errors/tool-execution-error.mjs +0 -32
  155. package/esm/ai/src/errors/tool-execution-error.mjs.map +0 -1
  156. package/esm/ai/src/errors/workflow-cancelled-error.mjs +0 -23
  157. package/esm/ai/src/errors/workflow-cancelled-error.mjs.map +0 -1
  158. package/esm/ai/src/errors/workflow-drift-error.mjs +0 -24
  159. package/esm/ai/src/errors/workflow-drift-error.mjs.map +0 -1
  160. package/esm/ai/src/errors/workflow-error.mjs +0 -18
  161. package/esm/ai/src/errors/workflow-error.mjs.map +0 -1
  162. package/esm/ai/src/eval/dataset.mjs +0 -112
  163. package/esm/ai/src/eval/dataset.mjs.map +0 -1
  164. package/esm/ai/src/eval/eval-runner.mjs +0 -135
  165. package/esm/ai/src/eval/eval-runner.mjs.map +0 -1
  166. package/esm/ai/src/eval/index.mjs +0 -48
  167. package/esm/ai/src/eval/index.mjs.map +0 -1
  168. package/esm/ai/src/eval/judge-scorer.mjs +0 -87
  169. package/esm/ai/src/eval/judge-scorer.mjs.map +0 -1
  170. package/esm/ai/src/eval/regression.mjs +0 -51
  171. package/esm/ai/src/eval/regression.mjs.map +0 -1
  172. package/esm/ai/src/eval/report-json.mjs +0 -33
  173. package/esm/ai/src/eval/report-json.mjs.map +0 -1
  174. package/esm/ai/src/eval/report-junit.mjs +0 -60
  175. package/esm/ai/src/eval/report-junit.mjs.map +0 -1
  176. package/esm/ai/src/eval/scorers.mjs +0 -101
  177. package/esm/ai/src/eval/scorers.mjs.map +0 -1
  178. package/esm/ai/src/guard/detectors/index.mjs +0 -6
  179. package/esm/ai/src/guard/detectors/injection.mjs +0 -254
  180. package/esm/ai/src/guard/detectors/injection.mjs.map +0 -1
  181. package/esm/ai/src/guard/detectors/moderation.mjs +0 -134
  182. package/esm/ai/src/guard/detectors/moderation.mjs.map +0 -1
  183. package/esm/ai/src/guard/detectors/pii.mjs +0 -199
  184. package/esm/ai/src/guard/detectors/pii.mjs.map +0 -1
  185. package/esm/ai/src/guard/detectors/topic.mjs +0 -99
  186. package/esm/ai/src/guard/detectors/topic.mjs.map +0 -1
  187. package/esm/ai/src/guard/errors.mjs +0 -18
  188. package/esm/ai/src/guard/errors.mjs.map +0 -1
  189. package/esm/ai/src/guard/guard.mjs +0 -209
  190. package/esm/ai/src/guard/guard.mjs.map +0 -1
  191. package/esm/ai/src/guard/guardrail.mjs +0 -22
  192. package/esm/ai/src/guard/guardrail.mjs.map +0 -1
  193. package/esm/ai/src/human/errors.mjs +0 -60
  194. package/esm/ai/src/human/errors.mjs.map +0 -1
  195. package/esm/ai/src/human/human-approval.mjs +0 -170
  196. package/esm/ai/src/human/human-approval.mjs.map +0 -1
  197. package/esm/ai/src/human/policy.mjs +0 -67
  198. package/esm/ai/src/human/policy.mjs.map +0 -1
  199. package/esm/ai/src/human/register.mjs +0 -37
  200. package/esm/ai/src/human/register.mjs.map +0 -1
  201. package/esm/ai/src/human/resume-seed.mjs +0 -53
  202. package/esm/ai/src/human/resume-seed.mjs.map +0 -1
  203. package/esm/ai/src/human/resume.mjs +0 -121
  204. package/esm/ai/src/human/resume.mjs.map +0 -1
  205. package/esm/ai/src/human/stores/index.mjs +0 -5
  206. package/esm/ai/src/human/stores/memory.mjs +0 -91
  207. package/esm/ai/src/human/stores/memory.mjs.map +0 -1
  208. package/esm/ai/src/human/stores/pg.mjs +0 -220
  209. package/esm/ai/src/human/stores/pg.mjs.map +0 -1
  210. package/esm/ai/src/human/stores/redis.mjs +0 -201
  211. package/esm/ai/src/human/stores/redis.mjs.map +0 -1
  212. package/esm/ai/src/image/image-cost.mjs +0 -55
  213. package/esm/ai/src/image/image-cost.mjs.map +0 -1
  214. package/esm/ai/src/image/image.mjs +0 -112
  215. package/esm/ai/src/image/image.mjs.map +0 -1
  216. package/esm/ai/src/image/index.mjs +0 -4
  217. package/esm/ai/src/index.mjs +0 -196
  218. package/esm/ai/src/memory/derive-id.mjs +0 -24
  219. package/esm/ai/src/memory/derive-id.mjs.map +0 -1
  220. package/esm/ai/src/memory/episodic-memory.mjs +0 -106
  221. package/esm/ai/src/memory/episodic-memory.mjs.map +0 -1
  222. package/esm/ai/src/memory/memory.mjs +0 -166
  223. package/esm/ai/src/memory/memory.mjs.map +0 -1
  224. package/esm/ai/src/memory/procedural-memory.mjs +0 -103
  225. package/esm/ai/src/memory/procedural-memory.mjs.map +0 -1
  226. package/esm/ai/src/memory/semantic-memory.mjs +0 -80
  227. package/esm/ai/src/memory/semantic-memory.mjs.map +0 -1
  228. package/esm/ai/src/memory/working-memory.mjs +0 -62
  229. package/esm/ai/src/memory/working-memory.mjs.map +0 -1
  230. package/esm/ai/src/middleware/builtins/budget.mjs +0 -219
  231. package/esm/ai/src/middleware/builtins/budget.mjs.map +0 -1
  232. package/esm/ai/src/middleware/builtins/guardrail.mjs +0 -76
  233. package/esm/ai/src/middleware/builtins/guardrail.mjs.map +0 -1
  234. package/esm/ai/src/middleware/builtins/semantic-cache.mjs +0 -149
  235. package/esm/ai/src/middleware/builtins/semantic-cache.mjs.map +0 -1
  236. package/esm/ai/src/middleware/helpers/compose.mjs +0 -52
  237. package/esm/ai/src/middleware/helpers/compose.mjs.map +0 -1
  238. package/esm/ai/src/middleware/helpers/for-tool.mjs +0 -80
  239. package/esm/ai/src/middleware/helpers/for-tool.mjs.map +0 -1
  240. package/esm/ai/src/middleware/index.mjs +0 -10
  241. package/esm/ai/src/middleware/pipeline.mjs +0 -100
  242. package/esm/ai/src/middleware/pipeline.mjs.map +0 -1
  243. package/esm/ai/src/middleware/utils/extract-user-text.mjs +0 -47
  244. package/esm/ai/src/middleware/utils/extract-user-text.mjs.map +0 -1
  245. package/esm/ai/src/middleware/utils/namespaced-state.mjs +0 -60
  246. package/esm/ai/src/middleware/utils/namespaced-state.mjs.map +0 -1
  247. package/esm/ai/src/mock/index.mjs +0 -4
  248. package/esm/ai/src/mock/mock-agent.mjs +0 -3
  249. package/esm/ai/src/mock/mock-router.mjs +0 -58
  250. package/esm/ai/src/mock/mock-router.mjs.map +0 -1
  251. package/esm/ai/src/model/fallback-model.mjs +0 -218
  252. package/esm/ai/src/model/fallback-model.mjs.map +0 -1
  253. package/esm/ai/src/model/index.mjs +0 -3
  254. package/esm/ai/src/object-stream/index.mjs +0 -4
  255. package/esm/ai/src/object-stream/parse-partial-json.mjs +0 -78
  256. package/esm/ai/src/object-stream/parse-partial-json.mjs.map +0 -1
  257. package/esm/ai/src/object-stream/stream-object.mjs +0 -97
  258. package/esm/ai/src/object-stream/stream-object.mjs.map +0 -1
  259. package/esm/ai/src/observe/index.mjs +0 -4
  260. package/esm/ai/src/observe/observer-registry.mjs +0 -35
  261. package/esm/ai/src/observe/observer-registry.mjs.map +0 -1
  262. package/esm/ai/src/observe/resolve-observers.mjs +0 -73
  263. package/esm/ai/src/observe/resolve-observers.mjs.map +0 -1
  264. package/esm/ai/src/orchestrator/as-tool.mjs +0 -98
  265. package/esm/ai/src/orchestrator/as-tool.mjs.map +0 -1
  266. package/esm/ai/src/orchestrator/checkpoint.mjs +0 -75
  267. package/esm/ai/src/orchestrator/checkpoint.mjs.map +0 -1
  268. package/esm/ai/src/orchestrator/commands.mjs +0 -34
  269. package/esm/ai/src/orchestrator/commands.mjs.map +0 -1
  270. package/esm/ai/src/orchestrator/compaction.mjs +0 -206
  271. package/esm/ai/src/orchestrator/compaction.mjs.map +0 -1
  272. package/esm/ai/src/orchestrator/dispatch.mjs +0 -171
  273. package/esm/ai/src/orchestrator/dispatch.mjs.map +0 -1
  274. package/esm/ai/src/orchestrator/emitter.mjs +0 -85
  275. package/esm/ai/src/orchestrator/emitter.mjs.map +0 -1
  276. package/esm/ai/src/orchestrator/execution.mjs +0 -395
  277. package/esm/ai/src/orchestrator/execution.mjs.map +0 -1
  278. package/esm/ai/src/orchestrator/index.mjs +0 -11
  279. package/esm/ai/src/orchestrator/load.mjs +0 -49
  280. package/esm/ai/src/orchestrator/load.mjs.map +0 -1
  281. package/esm/ai/src/orchestrator/lock.mjs +0 -75
  282. package/esm/ai/src/orchestrator/lock.mjs.map +0 -1
  283. package/esm/ai/src/orchestrator/memory.mjs +0 -141
  284. package/esm/ai/src/orchestrator/memory.mjs.map +0 -1
  285. package/esm/ai/src/orchestrator/orchestrator-stream.mjs +0 -98
  286. package/esm/ai/src/orchestrator/orchestrator-stream.mjs.map +0 -1
  287. package/esm/ai/src/orchestrator/orchestrator.mjs +0 -206
  288. package/esm/ai/src/orchestrator/orchestrator.mjs.map +0 -1
  289. package/esm/ai/src/orchestrator/resume.mjs +0 -74
  290. package/esm/ai/src/orchestrator/resume.mjs.map +0 -1
  291. package/esm/ai/src/orchestrator/session-lock.mjs +0 -83
  292. package/esm/ai/src/orchestrator/session-lock.mjs.map +0 -1
  293. package/esm/ai/src/orchestrator/signature.mjs +0 -120
  294. package/esm/ai/src/orchestrator/signature.mjs.map +0 -1
  295. package/esm/ai/src/orchestrator/window.mjs +0 -56
  296. package/esm/ai/src/orchestrator/window.mjs.map +0 -1
  297. package/esm/ai/src/planner/dag-scheduler.mjs +0 -97
  298. package/esm/ai/src/planner/dag-scheduler.mjs.map +0 -1
  299. package/esm/ai/src/planner/index.mjs +0 -6
  300. package/esm/ai/src/planner/plan-prompt.mjs +0 -31
  301. package/esm/ai/src/planner/plan-prompt.mjs.map +0 -1
  302. package/esm/ai/src/planner/plan-schema.mjs +0 -120
  303. package/esm/ai/src/planner/plan-schema.mjs.map +0 -1
  304. package/esm/ai/src/planner/planner-run.mjs +0 -769
  305. package/esm/ai/src/planner/planner-run.mjs.map +0 -1
  306. package/esm/ai/src/planner/planner.mjs +0 -144
  307. package/esm/ai/src/planner/planner.mjs.map +0 -1
  308. package/esm/ai/src/planner/signature.mjs +0 -27
  309. package/esm/ai/src/planner/signature.mjs.map +0 -1
  310. package/esm/ai/src/planner/snapshot.mjs +0 -95
  311. package/esm/ai/src/planner/snapshot.mjs.map +0 -1
  312. package/esm/ai/src/prompt/errors.mjs +0 -73
  313. package/esm/ai/src/prompt/errors.mjs.map +0 -1
  314. package/esm/ai/src/prompt/index.mjs +0 -4
  315. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs +0 -104
  316. package/esm/ai/src/prompt/prompt-langfuse-sync.mjs.map +0 -1
  317. package/esm/ai/src/prompt/prompt-validate.mjs +0 -170
  318. package/esm/ai/src/prompt/prompt-validate.mjs.map +0 -1
  319. package/esm/ai/src/prompt/prompt.mjs +0 -218
  320. package/esm/ai/src/prompt/prompt.mjs.map +0 -1
  321. package/esm/ai/src/prompts/index.mjs +0 -3
  322. package/esm/ai/src/prompts/prompts-manager.mjs +0 -410
  323. package/esm/ai/src/prompts/prompts-manager.mjs.map +0 -1
  324. package/esm/ai/src/prompts/prompts-validate.mjs +0 -0
  325. package/esm/ai/src/prompts/prompts-validate.mjs.map +0 -1
  326. package/esm/ai/src/rag/as-tool.mjs +0 -48
  327. package/esm/ai/src/rag/as-tool.mjs.map +0 -1
  328. package/esm/ai/src/rag/chunk/chunk.mjs +0 -44
  329. package/esm/ai/src/rag/chunk/chunk.mjs.map +0 -1
  330. package/esm/ai/src/rag/chunk/fixed.mjs +0 -32
  331. package/esm/ai/src/rag/chunk/fixed.mjs.map +0 -1
  332. package/esm/ai/src/rag/chunk/markdown.mjs +0 -75
  333. package/esm/ai/src/rag/chunk/markdown.mjs.map +0 -1
  334. package/esm/ai/src/rag/chunk/recursive.mjs +0 -132
  335. package/esm/ai/src/rag/chunk/recursive.mjs.map +0 -1
  336. package/esm/ai/src/rag/chunk/sentence.mjs +0 -73
  337. package/esm/ai/src/rag/chunk/sentence.mjs.map +0 -1
  338. package/esm/ai/src/rag/hybrid/bm25.mjs +0 -51
  339. package/esm/ai/src/rag/hybrid/bm25.mjs.map +0 -1
  340. package/esm/ai/src/rag/hybrid/hybrid-rank.mjs +0 -29
  341. package/esm/ai/src/rag/hybrid/hybrid-rank.mjs.map +0 -1
  342. package/esm/ai/src/rag/hybrid/rrf.mjs +0 -30
  343. package/esm/ai/src/rag/hybrid/rrf.mjs.map +0 -1
  344. package/esm/ai/src/rag/index.mjs +0 -18
  345. package/esm/ai/src/rag/loaders/errors.mjs +0 -25
  346. package/esm/ai/src/rag/loaders/errors.mjs.map +0 -1
  347. package/esm/ai/src/rag/loaders/index.mjs +0 -7
  348. package/esm/ai/src/rag/loaders/load-html.mjs +0 -138
  349. package/esm/ai/src/rag/loaders/load-html.mjs.map +0 -1
  350. package/esm/ai/src/rag/loaders/load-pdf.mjs +0 -150
  351. package/esm/ai/src/rag/loaders/load-pdf.mjs.map +0 -1
  352. package/esm/ai/src/rag/loaders/load-text.mjs +0 -60
  353. package/esm/ai/src/rag/loaders/load-text.mjs.map +0 -1
  354. package/esm/ai/src/rag/loaders/load-web.mjs +0 -89
  355. package/esm/ai/src/rag/loaders/load-web.mjs.map +0 -1
  356. package/esm/ai/src/rag/rag.mjs +0 -126
  357. package/esm/ai/src/rag/rag.mjs.map +0 -1
  358. package/esm/ai/src/rag/rerank/keyword-reranker.mjs +0 -58
  359. package/esm/ai/src/rag/rerank/keyword-reranker.mjs.map +0 -1
  360. package/esm/ai/src/rag/rerank/llm-reranker.mjs +0 -85
  361. package/esm/ai/src/rag/rerank/llm-reranker.mjs.map +0 -1
  362. package/esm/ai/src/rag/retrieve.mjs +0 -68
  363. package/esm/ai/src/rag/retrieve.mjs.map +0 -1
  364. package/esm/ai/src/rag/store/cache-vector-store.mjs +0 -48
  365. package/esm/ai/src/rag/store/cache-vector-store.mjs.map +0 -1
  366. package/esm/ai/src/rag/store/pg-vector-store.mjs +0 -328
  367. package/esm/ai/src/rag/store/pg-vector-store.mjs.map +0 -1
  368. package/esm/ai/src/rag/transforms/multi-query.mjs +0 -41
  369. package/esm/ai/src/rag/transforms/multi-query.mjs.map +0 -1
  370. package/esm/ai/src/security/index.mjs +0 -5
  371. package/esm/ai/src/security/outbound-policy.mjs +0 -187
  372. package/esm/ai/src/security/outbound-policy.mjs.map +0 -1
  373. package/esm/ai/src/security/private-ip.mjs +0 -48
  374. package/esm/ai/src/security/private-ip.mjs.map +0 -1
  375. package/esm/ai/src/security/redact.mjs +0 -60
  376. package/esm/ai/src/security/redact.mjs.map +0 -1
  377. package/esm/ai/src/serve/serve.mjs +0 -90
  378. package/esm/ai/src/serve/serve.mjs.map +0 -1
  379. package/esm/ai/src/serve/sse.mjs +0 -25
  380. package/esm/ai/src/serve/sse.mjs.map +0 -1
  381. package/esm/ai/src/serve/stream-to-sse.mjs +0 -37
  382. package/esm/ai/src/serve/stream-to-sse.mjs.map +0 -1
  383. package/esm/ai/src/skills/catalog.mjs +0 -140
  384. package/esm/ai/src/skills/catalog.mjs.map +0 -1
  385. package/esm/ai/src/skills/index.mjs +0 -11
  386. package/esm/ai/src/skills/load-skill-tool.mjs +0 -65
  387. package/esm/ai/src/skills/load-skill-tool.mjs.map +0 -1
  388. package/esm/ai/src/skills/save-skill-tool.mjs +0 -65
  389. package/esm/ai/src/skills/save-skill-tool.mjs.map +0 -1
  390. package/esm/ai/src/skills/skills.mjs +0 -109
  391. package/esm/ai/src/skills/skills.mjs.map +0 -1
  392. package/esm/ai/src/skills/sources/directory-source.mjs +0 -108
  393. package/esm/ai/src/skills/sources/directory-source.mjs.map +0 -1
  394. package/esm/ai/src/skills/sources/index.mjs +0 -27
  395. package/esm/ai/src/skills/sources/index.mjs.map +0 -1
  396. package/esm/ai/src/skills/sources/parse-frontmatter.mjs +0 -46
  397. package/esm/ai/src/skills/sources/parse-frontmatter.mjs.map +0 -1
  398. package/esm/ai/src/skills/sources/store-source.mjs +0 -15
  399. package/esm/ai/src/skills/sources/store-source.mjs.map +0 -1
  400. package/esm/ai/src/skills/sources/url-source.mjs +0 -117
  401. package/esm/ai/src/skills/sources/url-source.mjs.map +0 -1
  402. package/esm/ai/src/snapshot/memory.mjs +0 -81
  403. package/esm/ai/src/snapshot/memory.mjs.map +0 -1
  404. package/esm/ai/src/snapshot/pg.mjs +0 -146
  405. package/esm/ai/src/snapshot/pg.mjs.map +0 -1
  406. package/esm/ai/src/snapshot/redis.mjs +0 -101
  407. package/esm/ai/src/snapshot/redis.mjs.map +0 -1
  408. package/esm/ai/src/speech/index.mjs +0 -3
  409. package/esm/ai/src/speech/speech.mjs +0 -122
  410. package/esm/ai/src/speech/speech.mjs.map +0 -1
  411. package/esm/ai/src/supervisor/as-tool.mjs +0 -74
  412. package/esm/ai/src/supervisor/as-tool.mjs.map +0 -1
  413. package/esm/ai/src/supervisor/cancellation.mjs +0 -22
  414. package/esm/ai/src/supervisor/cancellation.mjs.map +0 -1
  415. package/esm/ai/src/supervisor/decide.mjs +0 -272
  416. package/esm/ai/src/supervisor/decide.mjs.map +0 -1
  417. package/esm/ai/src/supervisor/emitter.mjs +0 -47
  418. package/esm/ai/src/supervisor/emitter.mjs.map +0 -1
  419. package/esm/ai/src/supervisor/entries.mjs +0 -206
  420. package/esm/ai/src/supervisor/entries.mjs.map +0 -1
  421. package/esm/ai/src/supervisor/execution.mjs +0 -1921
  422. package/esm/ai/src/supervisor/execution.mjs.map +0 -1
  423. package/esm/ai/src/supervisor/fan-out.mjs +0 -65
  424. package/esm/ai/src/supervisor/fan-out.mjs.map +0 -1
  425. package/esm/ai/src/supervisor/index.mjs +0 -14
  426. package/esm/ai/src/supervisor/router-factory.mjs +0 -141
  427. package/esm/ai/src/supervisor/router-factory.mjs.map +0 -1
  428. package/esm/ai/src/supervisor/router-prompt.mjs +0 -52
  429. package/esm/ai/src/supervisor/router-prompt.mjs.map +0 -1
  430. package/esm/ai/src/supervisor/signature.mjs +0 -89
  431. package/esm/ai/src/supervisor/signature.mjs.map +0 -1
  432. package/esm/ai/src/supervisor/snapshot.mjs +0 -69
  433. package/esm/ai/src/supervisor/snapshot.mjs.map +0 -1
  434. package/esm/ai/src/supervisor/supervisor-stream.mjs +0 -89
  435. package/esm/ai/src/supervisor/supervisor-stream.mjs.map +0 -1
  436. package/esm/ai/src/supervisor/supervisor.mjs +0 -144
  437. package/esm/ai/src/supervisor/supervisor.mjs.map +0 -1
  438. package/esm/ai/src/system-prompt/index.mjs +0 -7
  439. package/esm/ai/src/system-prompt/instruction.mjs +0 -57
  440. package/esm/ai/src/system-prompt/instruction.mjs.map +0 -1
  441. package/esm/ai/src/system-prompt/persona.mjs +0 -57
  442. package/esm/ai/src/system-prompt/persona.mjs.map +0 -1
  443. package/esm/ai/src/system-prompt/refined-system-prompt.mjs +0 -461
  444. package/esm/ai/src/system-prompt/refined-system-prompt.mjs.map +0 -1
  445. package/esm/ai/src/system-prompt/render-placeholders.mjs +0 -58
  446. package/esm/ai/src/system-prompt/render-placeholders.mjs.map +0 -1
  447. package/esm/ai/src/system-prompt/system-prompt.mjs +0 -286
  448. package/esm/ai/src/system-prompt/system-prompt.mjs.map +0 -1
  449. package/esm/ai/src/team/gates.mjs +0 -48
  450. package/esm/ai/src/team/gates.mjs.map +0 -1
  451. package/esm/ai/src/team/index.mjs +0 -3
  452. package/esm/ai/src/team/team.mjs +0 -94
  453. package/esm/ai/src/team/team.mjs.map +0 -1
  454. package/esm/ai/src/tool/executable-as-tool.mjs +0 -81
  455. package/esm/ai/src/tool/executable-as-tool.mjs.map +0 -1
  456. package/esm/ai/src/tool/index.mjs +0 -4
  457. package/esm/ai/src/tool/tool.mjs +0 -185
  458. package/esm/ai/src/tool/tool.mjs.map +0 -1
  459. package/esm/ai/src/transcribe/audio-input.mjs +0 -84
  460. package/esm/ai/src/transcribe/audio-input.mjs.map +0 -1
  461. package/esm/ai/src/transcribe/index.mjs +0 -4
  462. package/esm/ai/src/transcribe/transcribe.mjs +0 -127
  463. package/esm/ai/src/transcribe/transcribe.mjs.map +0 -1
  464. package/esm/ai/src/utils/compute-cost.mjs +0 -112
  465. package/esm/ai/src/utils/compute-cost.mjs.map +0 -1
  466. package/esm/ai/src/utils/extract-json-lenient.mjs +0 -97
  467. package/esm/ai/src/utils/extract-json-lenient.mjs.map +0 -1
  468. package/esm/ai/src/utils/extract-json-payload.mjs +0 -39
  469. package/esm/ai/src/utils/extract-json-payload.mjs.map +0 -1
  470. package/esm/ai/src/utils/generate-run-id.mjs +0 -23
  471. package/esm/ai/src/utils/generate-run-id.mjs.map +0 -1
  472. package/esm/ai/src/utils/index.mjs +0 -12
  473. package/esm/ai/src/utils/json-schema.mjs +0 -89
  474. package/esm/ai/src/utils/json-schema.mjs.map +0 -1
  475. package/esm/ai/src/utils/prepare-attachment-part.mjs +0 -232
  476. package/esm/ai/src/utils/prepare-attachment-part.mjs.map +0 -1
  477. package/esm/ai/src/utils/resolve-attachment.mjs +0 -74
  478. package/esm/ai/src/utils/resolve-attachment.mjs.map +0 -1
  479. package/esm/ai/src/utils/run-context.mjs +0 -89
  480. package/esm/ai/src/utils/run-context.mjs.map +0 -1
  481. package/esm/ai/src/utils/safe-json-parse.mjs +0 -22
  482. package/esm/ai/src/utils/safe-json-parse.mjs.map +0 -1
  483. package/esm/ai/src/utils/stamp-report-lineage.mjs +0 -45
  484. package/esm/ai/src/utils/stamp-report-lineage.mjs.map +0 -1
  485. package/esm/ai/src/vcr/cassette-io.mjs +0 -57
  486. package/esm/ai/src/vcr/cassette-io.mjs.map +0 -1
  487. package/esm/ai/src/vcr/errors.mjs +0 -37
  488. package/esm/ai/src/vcr/errors.mjs.map +0 -1
  489. package/esm/ai/src/vcr/hash-request.mjs +0 -118
  490. package/esm/ai/src/vcr/hash-request.mjs.map +0 -1
  491. package/esm/ai/src/vcr/index.mjs +0 -5
  492. package/esm/ai/src/vcr/vcr.mjs +0 -248
  493. package/esm/ai/src/vcr/vcr.mjs.map +0 -1
  494. package/esm/ai/src/workflow/as-tool.mjs +0 -49
  495. package/esm/ai/src/workflow/as-tool.mjs.map +0 -1
  496. package/esm/ai/src/workflow/cancellation.mjs +0 -44
  497. package/esm/ai/src/workflow/cancellation.mjs.map +0 -1
  498. package/esm/ai/src/workflow/emitter.mjs +0 -40
  499. package/esm/ai/src/workflow/emitter.mjs.map +0 -1
  500. package/esm/ai/src/workflow/engine.mjs +0 -363
  501. package/esm/ai/src/workflow/engine.mjs.map +0 -1
  502. package/esm/ai/src/workflow/index.mjs +0 -5
  503. package/esm/ai/src/workflow/retry.mjs +0 -32
  504. package/esm/ai/src/workflow/retry.mjs.map +0 -1
  505. package/esm/ai/src/workflow/router.mjs +0 -56
  506. package/esm/ai/src/workflow/router.mjs.map +0 -1
  507. package/esm/ai/src/workflow/run-scoped-emitter.mjs +0 -32
  508. package/esm/ai/src/workflow/run-scoped-emitter.mjs.map +0 -1
  509. package/esm/ai/src/workflow/signature.mjs +0 -34
  510. package/esm/ai/src/workflow/signature.mjs.map +0 -1
  511. package/esm/ai/src/workflow/snapshot.mjs +0 -77
  512. package/esm/ai/src/workflow/snapshot.mjs.map +0 -1
  513. package/esm/ai/src/workflow/state.mjs +0 -37
  514. package/esm/ai/src/workflow/state.mjs.map +0 -1
  515. package/esm/ai/src/workflow/step-runner.mjs +0 -370
  516. package/esm/ai/src/workflow/step-runner.mjs.map +0 -1
  517. package/esm/ai/src/workflow/step.mjs +0 -37
  518. package/esm/ai/src/workflow/step.mjs.map +0 -1
  519. package/esm/ai/src/workflow/workflow.mjs +0 -122
  520. package/esm/ai/src/workflow/workflow.mjs.map +0 -1
  521. package/esm/ai-openai/src/embedder.mjs +0 -4
  522. package/esm/ai-openai/src/image.mjs +0 -5
  523. package/esm/ai-openai/src/index.mjs +0 -7
  524. package/esm/ai-openai/src/model.mjs +0 -5
  525. package/esm/ai-openai/src/sdk.mjs +0 -9
  526. package/esm/ai-openai/src/speech.mjs +0 -5
  527. package/esm/ai-openai/src/transcription.mjs +0 -6
  528. package/esm/ai-openai/src/utils/index.mjs +0 -5
  529. package/esm/ai-openai/src/utils/to-openai-messages.mjs +0 -3
  530. package/esm/ai-openai/src/utils/to-openai-tools.mjs +0 -3
  531. package/esm/ai-openai/src/utils/wrap-openai-error.mjs +0 -4
  532. package/esm/node_modules/langfuse/lib/index.mjs +0 -1827
  533. package/esm/node_modules/langfuse/lib/index.mjs.map +0 -1
  534. package/esm/node_modules/langfuse-core/lib/index.mjs +0 -1770
  535. package/esm/node_modules/langfuse-core/lib/index.mjs.map +0 -1
  536. package/esm/node_modules/mustache/mustache.mjs +0 -587
  537. package/esm/node_modules/mustache/mustache.mjs.map +0 -1
  538. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs +0 -180
  539. package/esm/node_modules/openai/_vendor/partial-json-parser/parser.mjs.map +0 -1
  540. package/esm/node_modules/openai/auth/workload-identity-auth.mjs +0 -80
  541. package/esm/node_modules/openai/auth/workload-identity-auth.mjs.map +0 -1
  542. package/esm/node_modules/openai/azure.mjs +0 -82
  543. package/esm/node_modules/openai/azure.mjs.map +0 -1
  544. package/esm/node_modules/openai/client.mjs +0 -638
  545. package/esm/node_modules/openai/client.mjs.map +0 -1
  546. package/esm/node_modules/openai/core/api-promise.mjs +0 -75
  547. package/esm/node_modules/openai/core/api-promise.mjs.map +0 -1
  548. package/esm/node_modules/openai/core/error.mjs +0 -110
  549. package/esm/node_modules/openai/core/error.mjs.map +0 -1
  550. package/esm/node_modules/openai/core/pagination.mjs +0 -160
  551. package/esm/node_modules/openai/core/pagination.mjs.map +0 -1
  552. package/esm/node_modules/openai/core/resource.mjs +0 -10
  553. package/esm/node_modules/openai/core/resource.mjs.map +0 -1
  554. package/esm/node_modules/openai/core/streaming.mjs +0 -238
  555. package/esm/node_modules/openai/core/streaming.mjs.map +0 -1
  556. package/esm/node_modules/openai/index.mjs +0 -8
  557. package/esm/node_modules/openai/internal/decoders/line.mjs +0 -91
  558. package/esm/node_modules/openai/internal/decoders/line.mjs.map +0 -1
  559. package/esm/node_modules/openai/internal/detect-platform.mjs +0 -123
  560. package/esm/node_modules/openai/internal/detect-platform.mjs.map +0 -1
  561. package/esm/node_modules/openai/internal/errors.mjs +0 -26
  562. package/esm/node_modules/openai/internal/errors.mjs.map +0 -1
  563. package/esm/node_modules/openai/internal/headers.mjs +0 -65
  564. package/esm/node_modules/openai/internal/headers.mjs.map +0 -1
  565. package/esm/node_modules/openai/internal/parse.mjs +0 -41
  566. package/esm/node_modules/openai/internal/parse.mjs.map +0 -1
  567. package/esm/node_modules/openai/internal/qs/formats.mjs +0 -12
  568. package/esm/node_modules/openai/internal/qs/formats.mjs.map +0 -1
  569. package/esm/node_modules/openai/internal/qs/stringify.mjs +0 -179
  570. package/esm/node_modules/openai/internal/qs/stringify.mjs.map +0 -1
  571. package/esm/node_modules/openai/internal/qs/utils.mjs +0 -65
  572. package/esm/node_modules/openai/internal/qs/utils.mjs.map +0 -1
  573. package/esm/node_modules/openai/internal/request-options.mjs +0 -11
  574. package/esm/node_modules/openai/internal/request-options.mjs.map +0 -1
  575. package/esm/node_modules/openai/internal/shims.mjs +0 -77
  576. package/esm/node_modules/openai/internal/shims.mjs.map +0 -1
  577. package/esm/node_modules/openai/internal/to-file.mjs +0 -63
  578. package/esm/node_modules/openai/internal/to-file.mjs.map +0 -1
  579. package/esm/node_modules/openai/internal/tslib.mjs +0 -16
  580. package/esm/node_modules/openai/internal/tslib.mjs.map +0 -1
  581. package/esm/node_modules/openai/internal/uploads.mjs +0 -94
  582. package/esm/node_modules/openai/internal/uploads.mjs.map +0 -1
  583. package/esm/node_modules/openai/internal/utils/base64.mjs +0 -22
  584. package/esm/node_modules/openai/internal/utils/base64.mjs.map +0 -1
  585. package/esm/node_modules/openai/internal/utils/bytes.mjs +0 -26
  586. package/esm/node_modules/openai/internal/utils/bytes.mjs.map +0 -1
  587. package/esm/node_modules/openai/internal/utils/env.mjs +0 -16
  588. package/esm/node_modules/openai/internal/utils/env.mjs.map +0 -1
  589. package/esm/node_modules/openai/internal/utils/log.mjs +0 -58
  590. package/esm/node_modules/openai/internal/utils/log.mjs.map +0 -1
  591. package/esm/node_modules/openai/internal/utils/path.mjs +0 -62
  592. package/esm/node_modules/openai/internal/utils/path.mjs.map +0 -1
  593. package/esm/node_modules/openai/internal/utils/query.mjs +0 -10
  594. package/esm/node_modules/openai/internal/utils/query.mjs.map +0 -1
  595. package/esm/node_modules/openai/internal/utils/sleep.mjs +0 -6
  596. package/esm/node_modules/openai/internal/utils/sleep.mjs.map +0 -1
  597. package/esm/node_modules/openai/internal/utils/uuid.mjs +0 -18
  598. package/esm/node_modules/openai/internal/utils/uuid.mjs.map +0 -1
  599. package/esm/node_modules/openai/internal/utils/values.mjs +0 -41
  600. package/esm/node_modules/openai/internal/utils/values.mjs.map +0 -1
  601. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs +0 -247
  602. package/esm/node_modules/openai/lib/AbstractChatCompletionRunner.mjs.map +0 -1
  603. package/esm/node_modules/openai/lib/AssistantStream.mjs +0 -472
  604. package/esm/node_modules/openai/lib/AssistantStream.mjs.map +0 -1
  605. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs +0 -26
  606. package/esm/node_modules/openai/lib/ChatCompletionRunner.mjs.map +0 -1
  607. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs +0 -423
  608. package/esm/node_modules/openai/lib/ChatCompletionStream.mjs.map +0 -1
  609. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs +0 -26
  610. package/esm/node_modules/openai/lib/ChatCompletionStreamingRunner.mjs.map +0 -1
  611. package/esm/node_modules/openai/lib/EventStream.mjs +0 -163
  612. package/esm/node_modules/openai/lib/EventStream.mjs.map +0 -1
  613. package/esm/node_modules/openai/lib/ResponsesParser.mjs +0 -94
  614. package/esm/node_modules/openai/lib/ResponsesParser.mjs.map +0 -1
  615. package/esm/node_modules/openai/lib/RunnableFunction.mjs +0 -8
  616. package/esm/node_modules/openai/lib/RunnableFunction.mjs.map +0 -1
  617. package/esm/node_modules/openai/lib/Util.mjs +0 -19
  618. package/esm/node_modules/openai/lib/Util.mjs.map +0 -1
  619. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs +0 -11
  620. package/esm/node_modules/openai/lib/chatCompletionUtils.mjs.map +0 -1
  621. package/esm/node_modules/openai/lib/parser.mjs +0 -88
  622. package/esm/node_modules/openai/lib/parser.mjs.map +0 -1
  623. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs +0 -231
  624. package/esm/node_modules/openai/lib/responses/ResponseStream.mjs.map +0 -1
  625. package/esm/node_modules/openai/resources/admin/admin.mjs +0 -15
  626. package/esm/node_modules/openai/resources/admin/admin.mjs.map +0 -1
  627. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs +0 -81
  628. package/esm/node_modules/openai/resources/admin/organization/admin-api-keys.mjs.map +0 -1
  629. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs +0 -31
  630. package/esm/node_modules/openai/resources/admin/organization/audit-logs.mjs.map +0 -1
  631. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs +0 -153
  632. package/esm/node_modules/openai/resources/admin/organization/certificates.mjs.map +0 -1
  633. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs +0 -42
  634. package/esm/node_modules/openai/resources/admin/organization/data-retention.mjs.map +0 -1
  635. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs +0 -106
  636. package/esm/node_modules/openai/resources/admin/organization/groups/groups.mjs.map +0 -1
  637. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs +0 -88
  638. package/esm/node_modules/openai/resources/admin/organization/groups/roles.mjs.map +0 -1
  639. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs +0 -88
  640. package/esm/node_modules/openai/resources/admin/organization/groups/users.mjs.map +0 -1
  641. package/esm/node_modules/openai/resources/admin/organization/invites.mjs +0 -83
  642. package/esm/node_modules/openai/resources/admin/organization/invites.mjs.map +0 -1
  643. package/esm/node_modules/openai/resources/admin/organization/organization.mjs +0 -45
  644. package/esm/node_modules/openai/resources/admin/organization/organization.mjs.map +0 -1
  645. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs +0 -72
  646. package/esm/node_modules/openai/resources/admin/organization/projects/api-keys.mjs.map +0 -1
  647. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs +0 -78
  648. package/esm/node_modules/openai/resources/admin/organization/projects/certificates.mjs.map +0 -1
  649. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs +0 -46
  650. package/esm/node_modules/openai/resources/admin/organization/projects/data-retention.mjs.map +0 -1
  651. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs +0 -95
  652. package/esm/node_modules/openai/resources/admin/organization/projects/groups/groups.mjs.map +0 -1
  653. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs +0 -91
  654. package/esm/node_modules/openai/resources/admin/organization/projects/groups/roles.mjs.map +0 -1
  655. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs +0 -45
  656. package/esm/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.mjs.map +0 -1
  657. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs +0 -63
  658. package/esm/node_modules/openai/resources/admin/organization/projects/model-permissions.mjs.map +0 -1
  659. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs +0 -137
  660. package/esm/node_modules/openai/resources/admin/organization/projects/projects.mjs.map +0 -1
  661. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs +0 -51
  662. package/esm/node_modules/openai/resources/admin/organization/projects/rate-limits.mjs.map +0 -1
  663. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs +0 -108
  664. package/esm/node_modules/openai/resources/admin/organization/projects/roles.mjs.map +0 -1
  665. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs +0 -112
  666. package/esm/node_modules/openai/resources/admin/organization/projects/service-accounts.mjs.map +0 -1
  667. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs +0 -106
  668. package/esm/node_modules/openai/resources/admin/organization/projects/spend-alerts.mjs.map +0 -1
  669. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs +0 -91
  670. package/esm/node_modules/openai/resources/admin/organization/projects/users/roles.mjs.map +0 -1
  671. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs +0 -118
  672. package/esm/node_modules/openai/resources/admin/organization/projects/users/users.mjs.map +0 -1
  673. package/esm/node_modules/openai/resources/admin/organization/roles.mjs +0 -96
  674. package/esm/node_modules/openai/resources/admin/organization/roles.mjs.map +0 -1
  675. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs +0 -97
  676. package/esm/node_modules/openai/resources/admin/organization/spend-alerts.mjs.map +0 -1
  677. package/esm/node_modules/openai/resources/admin/organization/usage.mjs +0 -207
  678. package/esm/node_modules/openai/resources/admin/organization/usage.mjs.map +0 -1
  679. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs +0 -88
  680. package/esm/node_modules/openai/resources/admin/organization/users/roles.mjs.map +0 -1
  681. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs +0 -82
  682. package/esm/node_modules/openai/resources/admin/organization/users/users.mjs.map +0 -1
  683. package/esm/node_modules/openai/resources/audio/audio.mjs +0 -21
  684. package/esm/node_modules/openai/resources/audio/audio.mjs.map +0 -1
  685. package/esm/node_modules/openai/resources/audio/speech.mjs +0 -39
  686. package/esm/node_modules/openai/resources/audio/speech.mjs.map +0 -1
  687. package/esm/node_modules/openai/resources/audio/transcriptions.mjs +0 -22
  688. package/esm/node_modules/openai/resources/audio/transcriptions.mjs.map +0 -1
  689. package/esm/node_modules/openai/resources/audio/translations.mjs +0 -21
  690. package/esm/node_modules/openai/resources/audio/translations.mjs.map +0 -1
  691. package/esm/node_modules/openai/resources/batches.mjs +0 -54
  692. package/esm/node_modules/openai/resources/batches.mjs.map +0 -1
  693. package/esm/node_modules/openai/resources/beta/assistants.mjs +0 -78
  694. package/esm/node_modules/openai/resources/beta/assistants.mjs.map +0 -1
  695. package/esm/node_modules/openai/resources/beta/beta.mjs +0 -24
  696. package/esm/node_modules/openai/resources/beta/beta.mjs.map +0 -1
  697. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs +0 -18
  698. package/esm/node_modules/openai/resources/beta/chatkit/chatkit.mjs.map +0 -1
  699. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs +0 -49
  700. package/esm/node_modules/openai/resources/beta/chatkit/sessions.mjs.map +0 -1
  701. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs +0 -85
  702. package/esm/node_modules/openai/resources/beta/chatkit/threads.mjs.map +0 -1
  703. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs +0 -21
  704. package/esm/node_modules/openai/resources/beta/realtime/realtime.mjs.map +0 -1
  705. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs +0 -33
  706. package/esm/node_modules/openai/resources/beta/realtime/sessions.mjs.map +0 -1
  707. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs +0 -33
  708. package/esm/node_modules/openai/resources/beta/realtime/transcription-sessions.mjs.map +0 -1
  709. package/esm/node_modules/openai/resources/beta/threads/messages.mjs +0 -83
  710. package/esm/node_modules/openai/resources/beta/threads/messages.mjs.map +0 -1
  711. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs +0 -183
  712. package/esm/node_modules/openai/resources/beta/threads/runs/runs.mjs.map +0 -1
  713. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs +0 -45
  714. package/esm/node_modules/openai/resources/beta/threads/runs/steps.mjs.map +0 -1
  715. package/esm/node_modules/openai/resources/beta/threads/threads.mjs +0 -101
  716. package/esm/node_modules/openai/resources/beta/threads/threads.mjs.map +0 -1
  717. package/esm/node_modules/openai/resources/chat/chat.mjs +0 -15
  718. package/esm/node_modules/openai/resources/chat/chat.mjs.map +0 -1
  719. package/esm/node_modules/openai/resources/chat/completions/completions.mjs +0 -123
  720. package/esm/node_modules/openai/resources/chat/completions/completions.mjs.map +0 -1
  721. package/esm/node_modules/openai/resources/chat/completions/index.mjs +0 -7
  722. package/esm/node_modules/openai/resources/chat/completions/messages.mjs +0 -35
  723. package/esm/node_modules/openai/resources/chat/completions/messages.mjs.map +0 -1
  724. package/esm/node_modules/openai/resources/chat/index.mjs +0 -5
  725. package/esm/node_modules/openai/resources/completions.mjs +0 -20
  726. package/esm/node_modules/openai/resources/completions.mjs.map +0 -1
  727. package/esm/node_modules/openai/resources/containers/containers.mjs +0 -57
  728. package/esm/node_modules/openai/resources/containers/containers.mjs.map +0 -1
  729. package/esm/node_modules/openai/resources/containers/files/content.mjs +0 -23
  730. package/esm/node_modules/openai/resources/containers/files/content.mjs.map +0 -1
  731. package/esm/node_modules/openai/resources/containers/files/files.mjs +0 -63
  732. package/esm/node_modules/openai/resources/containers/files/files.mjs.map +0 -1
  733. package/esm/node_modules/openai/resources/conversations/conversations.mjs +0 -57
  734. package/esm/node_modules/openai/resources/conversations/conversations.mjs.map +0 -1
  735. package/esm/node_modules/openai/resources/conversations/items.mjs +0 -57
  736. package/esm/node_modules/openai/resources/conversations/items.mjs.map +0 -1
  737. package/esm/node_modules/openai/resources/embeddings.mjs +0 -48
  738. package/esm/node_modules/openai/resources/embeddings.mjs.map +0 -1
  739. package/esm/node_modules/openai/resources/evals/evals.mjs +0 -73
  740. package/esm/node_modules/openai/resources/evals/evals.mjs.map +0 -1
  741. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs +0 -35
  742. package/esm/node_modules/openai/resources/evals/runs/output-items.mjs.map +0 -1
  743. package/esm/node_modules/openai/resources/evals/runs/runs.mjs +0 -72
  744. package/esm/node_modules/openai/resources/evals/runs/runs.mjs.map +0 -1
  745. package/esm/node_modules/openai/resources/files.mjs +0 -111
  746. package/esm/node_modules/openai/resources/files.mjs.map +0 -1
  747. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs +0 -15
  748. package/esm/node_modules/openai/resources/fine-tuning/alpha/alpha.mjs.map +0 -1
  749. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs +0 -60
  750. package/esm/node_modules/openai/resources/fine-tuning/alpha/graders.mjs.map +0 -1
  751. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs +0 -15
  752. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs.map +0 -1
  753. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs +0 -102
  754. package/esm/node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs.map +0 -1
  755. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs +0 -24
  756. package/esm/node_modules/openai/resources/fine-tuning/fine-tuning.mjs.map +0 -1
  757. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs +0 -34
  758. package/esm/node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs.map +0 -1
  759. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs +0 -148
  760. package/esm/node_modules/openai/resources/fine-tuning/jobs/jobs.mjs.map +0 -1
  761. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs +0 -8
  762. package/esm/node_modules/openai/resources/fine-tuning/methods.mjs.map +0 -1
  763. package/esm/node_modules/openai/resources/graders/grader-models.mjs +0 -8
  764. package/esm/node_modules/openai/resources/graders/grader-models.mjs.map +0 -1
  765. package/esm/node_modules/openai/resources/graders/graders.mjs +0 -15
  766. package/esm/node_modules/openai/resources/graders/graders.mjs.map +0 -1
  767. package/esm/node_modules/openai/resources/images.mjs +0 -46
  768. package/esm/node_modules/openai/resources/images.mjs.map +0 -1
  769. package/esm/node_modules/openai/resources/index.mjs +0 -27
  770. package/esm/node_modules/openai/resources/models.mjs +0 -44
  771. package/esm/node_modules/openai/resources/models.mjs.map +0 -1
  772. package/esm/node_modules/openai/resources/moderations.mjs +0 -23
  773. package/esm/node_modules/openai/resources/moderations.mjs.map +0 -1
  774. package/esm/node_modules/openai/resources/realtime/calls.mjs +0 -79
  775. package/esm/node_modules/openai/resources/realtime/calls.mjs.map +0 -1
  776. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs +0 -39
  777. package/esm/node_modules/openai/resources/realtime/client-secrets.mjs.map +0 -1
  778. package/esm/node_modules/openai/resources/realtime/realtime.mjs +0 -18
  779. package/esm/node_modules/openai/resources/realtime/realtime.mjs.map +0 -1
  780. package/esm/node_modules/openai/resources/responses/input-items.mjs +0 -31
  781. package/esm/node_modules/openai/resources/responses/input-items.mjs.map +0 -1
  782. package/esm/node_modules/openai/resources/responses/input-tokens.mjs +0 -27
  783. package/esm/node_modules/openai/resources/responses/input-tokens.mjs.map +0 -1
  784. package/esm/node_modules/openai/resources/responses/responses.mjs +0 -110
  785. package/esm/node_modules/openai/resources/responses/responses.mjs.map +0 -1
  786. package/esm/node_modules/openai/resources/skills/content.mjs +0 -22
  787. package/esm/node_modules/openai/resources/skills/content.mjs.map +0 -1
  788. package/esm/node_modules/openai/resources/skills/skills.mjs +0 -69
  789. package/esm/node_modules/openai/resources/skills/skills.mjs.map +0 -1
  790. package/esm/node_modules/openai/resources/skills/versions/content.mjs +0 -23
  791. package/esm/node_modules/openai/resources/skills/versions/content.mjs.map +0 -1
  792. package/esm/node_modules/openai/resources/skills/versions/versions.mjs +0 -58
  793. package/esm/node_modules/openai/resources/skills/versions/versions.mjs.map +0 -1
  794. package/esm/node_modules/openai/resources/uploads/parts.mjs +0 -34
  795. package/esm/node_modules/openai/resources/uploads/parts.mjs.map +0 -1
  796. package/esm/node_modules/openai/resources/uploads/uploads.mjs +0 -84
  797. package/esm/node_modules/openai/resources/uploads/uploads.mjs.map +0 -1
  798. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs +0 -126
  799. package/esm/node_modules/openai/resources/vector-stores/file-batches.mjs.map +0 -1
  800. package/esm/node_modules/openai/resources/vector-stores/files.mjs +0 -147
  801. package/esm/node_modules/openai/resources/vector-stores/files.mjs.map +0 -1
  802. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs +0 -87
  803. package/esm/node_modules/openai/resources/vector-stores/vector-stores.mjs.map +0 -1
  804. package/esm/node_modules/openai/resources/videos.mjs +0 -115
  805. package/esm/node_modules/openai/resources/videos.mjs.map +0 -1
  806. package/esm/node_modules/openai/resources/webhooks/index.mjs +0 -3
  807. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs +0 -69
  808. package/esm/node_modules/openai/resources/webhooks/webhooks.mjs.map +0 -1
  809. package/esm/node_modules/openai/resources/webhooks.mjs +0 -4
  810. package/esm/node_modules/openai/streaming.mjs +0 -3
  811. package/esm/node_modules/openai/version.mjs +0 -6
  812. package/esm/node_modules/openai/version.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/image/image.ts"],"sourcesContent":["import type {\n GeneratedImage,\n ImageModelContract,\n} from \"../contracts/image-model.contract\";\nimport type { BaseReport } from \"../contracts/result/base-report.type\";\nimport { REPORT_SCHEMA_VERSION } from \"../contracts/result/base-report.type\";\nimport type { ExecuteResult } from \"../contracts/result/execute-result.type\";\nimport type { Usage } from \"../contracts/result/usage.type\";\nimport { AIError } from \"../errors/ai-error\";\nimport { ProviderError } from \"../errors/provider-error\";\nimport type { FlowObserveOption } from \"../observe/resolve-observers\";\nimport { notifyObservers } from \"../observe/resolve-observers\";\nimport { generateRunId } from \"../utils/generate-run-id\";\nimport { stampReportLineage } from \"../utils/stamp-report-lineage\";\nimport { computeImageCost } from \"./image-cost\";\n\n/**\n * Parameters for {@link image}. `model` comes from an adapter's\n * `image()` factory (`openai.image({ name })` / `google.image({ name })`);\n * the rest are provider-neutral generation knobs plus the standard\n * observability seam every verb shares.\n */\nexport type ImageParams = {\n /** The image model to generate from (`sdk.image({ name })`). */\n model: ImageModelContract;\n /** Text description of the image(s) to generate. */\n prompt: string;\n /** How many images to generate. Adapters clamp to the provider max. */\n count?: number;\n /** Requested pixel size as `\"WxH\"` (e.g. `\"1024x1024\"`). */\n size?: string;\n /** Quality tier (e.g. `\"standard\"` / `\"hd\"`). */\n quality?: string;\n /** Aspect ratio (e.g. `\"1:1\"`, `\"16:9\"`) — ratio-based providers (Imagen). */\n aspectRatio?: string;\n /** Concepts to steer away from (Imagen `negativePrompt`). */\n negativePrompt?: string;\n /** Output container hint (`\"png\"` / `\"jpeg\"` / `\"webp\"`). */\n format?: string;\n /** Cancellation handle, wired into the provider request where supported. */\n signal?: AbortSignal;\n /**\n * Observability routing for this call — same `observe` seam as\n * agents / workflows. `true` routes to the globally registered\n * observers; an `Observer` object routes flow-locally; `false` opts\n * out; omitted follows the global observe-all flag.\n */\n observe?: FlowObserveOption;\n /** Groups this call into a session for flat cost/trace queries. */\n sessionId?: string;\n /** Report node name (defaults to `\"image\"`). */\n name?: string;\n /** Provider-specific options forwarded verbatim to the adapter. */\n options?: Record<string, unknown>;\n};\n\n/** Success payload of an {@link image} run. */\nexport type ImageData = {\n /** The generated images, normalized to the discriminated shape. */\n images: GeneratedImage[];\n};\n\n/**\n * The report node an {@link image} run produces — a {@link BaseReport}\n * (`type: \"image\"`) plus which model ran and how many images came back,\n * so panoptic and any flat-row consumer attribute the cost/latency\n * without special-casing.\n */\nexport type ImageReport = BaseReport & {\n type: \"image\";\n /** Identity of the image model this run used. */\n model: { name: string; provider: string };\n /** Number of images returned (0 on failure). */\n imageCount: number;\n};\n\n/**\n * Result envelope of {@link image} — the same uniform\n * `{ data, error, usage, report }` every executable returns, narrowed\n * with the `\"image\"` discriminant.\n */\nexport type ImageResult = ExecuteResult<ImageData> & {\n type: \"image\";\n report: ImageReport;\n};\n\n/**\n * Generate one or more images from a text prompt — the image-output\n * counterpart to `ai.agent`, and the first verb of the output-modality\n * track (Theme I). Wraps an {@link ImageModelContract} (from\n * `openai.image(...)` / `google.image(...)`) in the framework's uniform\n * result contract:\n *\n * - **Never throws.** Provider failures (auth, rate-limit,\n * content-filter, invalid request) surface as a typed `AIError` on\n * `result.error`; `result.data` is then `undefined`.\n * - **Cost-truth.** When the model carries pricing, `result.usage.cost`\n * is filled in — per-token for gpt-image-1, per-image for\n * DALL·E / Imagen — folding into the same `Usage.cost` rollup as text.\n * - **Observable.** The completed {@link ImageReport} routes to any\n * registered `Observer` (panoptic, OTel, …) via the shared `observe`\n * seam, exactly like an agent run.\n *\n * @example\n * const openai = new OpenAISDK({ apiKey });\n * const { data, error, usage } = await ai.image({\n * model: openai.image({ name: \"gpt-image-1\" }),\n * prompt: \"an isometric office desk, soft studio lighting\",\n * size: \"1024x1024\",\n * });\n *\n * if (error) console.warn(error.code);\n * else for (const img of data.images) save(img); // { type: \"base64\" | \"url\", ... }\n */\nexport async function image(params: ImageParams): Promise<ImageResult> {\n const { model, prompt } = params;\n\n const runId = generateRunId(\"image\");\n const startedAt = new Date().toISOString();\n const startPerf = performance.now();\n\n const usage: Usage = { input: 0, output: 0, total: 0 };\n let data: ImageData | undefined;\n let error: AIError | undefined;\n let status: ImageReport[\"status\"] = \"completed\";\n let imageCount = 0;\n\n try {\n const response = await model.generate(prompt, {\n count: params.count,\n size: params.size,\n quality: params.quality,\n aspectRatio: params.aspectRatio,\n negativePrompt: params.negativePrompt,\n format: params.format,\n signal: params.signal,\n ...params.options,\n });\n\n // Preserve every usage channel the adapter reported (cached /\n // reasoning / cache-write, and any adapter-supplied `cost`), mirroring\n // how the agent path routes provider usage. Then honor a pre-priced\n // response or compute image cost — `usage.cost ??= …` precedence, same\n // as the agent path.\n Object.assign(usage, response.usage);\n\n if (usage.cost === undefined) {\n const cost = computeImageCost(usage, response.images.length, params.size, model.pricing);\n if (cost !== undefined) {\n usage.cost = cost;\n }\n }\n\n data = { images: response.images };\n imageCount = response.images.length;\n } catch (thrown) {\n error = thrown instanceof AIError ? thrown : new ProviderError(toMessage(thrown), { cause: thrown });\n // A caller-aborted run is \"cancelled\", not \"failed\" — keep the typed\n // cause but distinguish the terminal status for dashboards/retry policy.\n status = params.signal?.aborted ? \"cancelled\" : \"failed\";\n }\n\n const report: ImageReport = {\n runId,\n rootRunId: runId,\n name: params.name ?? \"image\",\n type: \"image\",\n status,\n error,\n startedAt,\n endedAt: new Date().toISOString(),\n duration: performance.now() - startPerf,\n usage,\n children: [],\n model: { name: model.name, provider: model.provider },\n imageCount,\n reportSchemaVersion: REPORT_SCHEMA_VERSION,\n };\n\n stampReportLineage(report, { rootRunId: runId, sessionId: params.sessionId });\n\n await notifyObservers(params.observe, report);\n\n return { type: \"image\", data, error, usage, report };\n}\n\n/** Best-effort message for a non-`AIError` thrown value. */\nfunction toMessage(thrown: unknown): string {\n return thrown instanceof Error ? thrown.message : String(thrown);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkHA,eAAsB,MAAM,QAA2C;CACrE,MAAM,EAAE,OAAO,WAAW;CAE1B,MAAM,QAAQ,cAAc,OAAO;CACnC,MAAM,6BAAY,IAAI,KAAK,EAAC,CAAC,YAAY;CACzC,MAAM,YAAY,YAAY,IAAI;CAElC,MAAM,QAAe;EAAE,OAAO;EAAG,QAAQ;EAAG,OAAO;CAAE;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI,SAAgC;CACpC,IAAI,aAAa;CAEjB,IAAI;EACF,MAAM,WAAW,MAAM,MAAM,SAAS,QAAQ;GAC5C,OAAO,OAAO;GACd,MAAM,OAAO;GACb,SAAS,OAAO;GAChB,aAAa,OAAO;GACpB,gBAAgB,OAAO;GACvB,QAAQ,OAAO;GACf,QAAQ,OAAO;GACf,GAAG,OAAO;EACZ,CAAC;EAOD,OAAO,OAAO,OAAO,SAAS,KAAK;EAEnC,IAAI,MAAM,SAAS,QAAW;GAC5B,MAAM,OAAO,iBAAiB,OAAO,SAAS,OAAO,QAAQ,OAAO,MAAM,MAAM,OAAO;GACvF,IAAI,SAAS,QACX,MAAM,OAAO;EAEjB;EAEA,OAAO,EAAE,QAAQ,SAAS,OAAO;EACjC,aAAa,SAAS,OAAO;CAC/B,SAAS,QAAQ;EACf,QAAQ,kBAAkB,UAAU,SAAS,IAAI,cAAc,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC;EAGnG,SAAS,OAAO,QAAQ,UAAU,cAAc;CAClD;CAEA,MAAM,SAAsB;EAC1B;EACA,WAAW;EACX,MAAM,OAAO,QAAQ;EACrB,MAAM;EACN;EACA;EACA;EACA,0BAAS,IAAI,KAAK,EAAC,CAAC,YAAY;EAChC,UAAU,YAAY,IAAI,IAAI;EAC9B;EACA,UAAU,CAAC;EACX,OAAO;GAAE,MAAM,MAAM;GAAM,UAAU,MAAM;EAAS;EACpD;EACA;CACF;CAEA,mBAAmB,QAAQ;EAAE,WAAW;EAAO,WAAW,OAAO;CAAU,CAAC;CAE5E,MAAM,gBAAgB,OAAO,SAAS,MAAM;CAE5C,OAAO;EAAE,MAAM;EAAS;EAAM;EAAO;EAAO;CAAO;AACrD;;AAGA,SAAS,UAAU,QAAyB;CAC1C,OAAO,kBAAkB,QAAQ,OAAO,UAAU,OAAO,MAAM;AACjE"}
@@ -1,4 +0,0 @@
1
- import { computeImageCost } from "./image-cost.mjs";
2
- import { image } from "./image.mjs";
3
-
4
- export { };
@@ -1,196 +0,0 @@
1
- import { AIError } from "./errors/ai-error.mjs";
2
- import { AgentExecutionError } from "./errors/agent-execution-error.mjs";
3
- import { AgentCancelledError } from "./errors/agent-cancelled-error.mjs";
4
- import { AgentDriftError } from "./errors/agent-drift-error.mjs";
5
- import { AgentMaxTripsError } from "./errors/agent-max-trips-error.mjs";
6
- import { BudgetExceededError } from "./errors/budget-exceeded-error.mjs";
7
- import { ProviderError } from "./errors/provider-error.mjs";
8
- import { GuardrailViolationError } from "./errors/guardrail-violation-error.mjs";
9
- import { InvalidRequestError } from "./errors/invalid-request-error.mjs";
10
- import { SupervisorFailedError } from "./errors/supervisor-failed-error.mjs";
11
- import { MaxIterationsError } from "./errors/max-iterations-error.mjs";
12
- import { WorkflowError } from "./errors/workflow-error.mjs";
13
- import { MaxStepsExceededError } from "./errors/max-steps-exceeded-error.mjs";
14
- import { OrchestratorFailedError } from "./errors/orchestrator-failed-error.mjs";
15
- import { OrchestratorConfigError } from "./errors/orchestrator-config-error.mjs";
16
- import { OrchestratorDriftError } from "./errors/orchestrator-drift-error.mjs";
17
- import { OutboundPolicyError } from "./errors/outbound-policy-error.mjs";
18
- import { PlannerFailedError } from "./errors/planner-failed-error.mjs";
19
- import { PlannerCancelledError } from "./errors/planner-cancelled-error.mjs";
20
- import { PlannerDriftError } from "./errors/planner-drift-error.mjs";
21
- import { PlannerPlanInvalidError } from "./errors/planner-plan-invalid-error.mjs";
22
- import { PromptRefinementError } from "./errors/prompt-refinement-error.mjs";
23
- import { RoutingError } from "./errors/routing-error.mjs";
24
- import { SchemaValidationError } from "./errors/schema-validation-error.mjs";
25
- import { StepFailedError } from "./errors/step-failed-error.mjs";
26
- import { SupervisorCancelledError } from "./errors/supervisor-cancelled-error.mjs";
27
- import { SupervisorDriftError } from "./errors/supervisor-drift-error.mjs";
28
- import { SupervisorRoutingError } from "./errors/supervisor-routing-error.mjs";
29
- import { ToolExecutionError } from "./errors/tool-execution-error.mjs";
30
- import { WorkflowCancelledError } from "./errors/workflow-cancelled-error.mjs";
31
- import { WorkflowDriftError } from "./errors/workflow-drift-error.mjs";
32
- import "./errors/index.mjs";
33
- import { accumulateCost, computeCost, mergeUsage } from "./utils/compute-cost.mjs";
34
- import { extractJsonPayload } from "./utils/extract-json-payload.mjs";
35
- import { extractJsonLenient } from "./utils/extract-json-lenient.mjs";
36
- import { generateRunId } from "./utils/generate-run-id.mjs";
37
- import { extractJsonSchema } from "./utils/json-schema.mjs";
38
- import { isPrivateOrReservedIp } from "./security/private-ip.mjs";
39
- import { assertUrlAllowed, fetchTextWithPolicy, guardedFetch, readTextCapped, resolveOutboundPolicy } from "./security/outbound-policy.mjs";
40
- import { resolveAttachment } from "./utils/resolve-attachment.mjs";
41
- import { prepareAttachmentPart } from "./utils/prepare-attachment-part.mjs";
42
- import { captureChildReport, withRunFrame, withoutRunFrame } from "./utils/run-context.mjs";
43
- import { safeJsonParse } from "./utils/safe-json-parse.mjs";
44
- import { stampReportLineage } from "./utils/stamp-report-lineage.mjs";
45
- import "./utils/index.mjs";
46
- import { judge } from "./eval/judge-scorer.mjs";
47
- import { diff } from "./eval/regression.mjs";
48
- import { runEval } from "./eval/eval-runner.mjs";
49
- import { extractUserText } from "./middleware/utils/extract-user-text.mjs";
50
- import { namespacedState } from "./middleware/utils/namespaced-state.mjs";
51
- import { budget, readBudgetFallbackSignal } from "./middleware/builtins/budget.mjs";
52
- import { resolveDefaultCheckpointStore, resolveDefaultSnapshotStore, resolveDefaultStore, setAIConfig } from "./config.mjs";
53
- import { semanticCache } from "./middleware/builtins/semantic-cache.mjs";
54
- import { composeMiddleware } from "./middleware/helpers/compose.mjs";
55
- import { forTool } from "./middleware/helpers/for-tool.mjs";
56
- import { runPipeline } from "./middleware/pipeline.mjs";
57
- import "./middleware/index.mjs";
58
- import { getObservers, isObserveAll } from "./observe/observer-registry.mjs";
59
- import { resolveObservers } from "./observe/resolve-observers.mjs";
60
- import { buildCatalog, loadRecord, renderCatalogPrompt, semanticPreselect } from "./skills/catalog.mjs";
61
- import { tool } from "./tool/tool.mjs";
62
- import { loadSkillTool } from "./skills/load-skill-tool.mjs";
63
- import { saveSkillTool } from "./skills/save-skill-tool.mjs";
64
- import { parseFrontmatter, parseTags } from "./skills/sources/parse-frontmatter.mjs";
65
- import { directorySource } from "./skills/sources/directory-source.mjs";
66
- import { storeSource } from "./skills/sources/store-source.mjs";
67
- import { urlSource } from "./skills/sources/url-source.mjs";
68
- import { resolveSource } from "./skills/sources/index.mjs";
69
- import { skills } from "./skills/skills.mjs";
70
- import { memory } from "./memory/memory.mjs";
71
- import "./skills/index.mjs";
72
- import { executableToTool, isExecutableTool, normalizeAgentTools } from "./tool/executable-as-tool.mjs";
73
- import { createAgentStream } from "./agent/agent-stream.mjs";
74
- import { agent } from "./agent/agent.mjs";
75
- import { spawnSubAgent } from "./agent/spawn-sub-agent.mjs";
76
- import "./agent/index.mjs";
77
- import { batch } from "./batch/batch.mjs";
78
- import "./batch/index.mjs";
79
- import { parsePartialJson } from "./object-stream/parse-partial-json.mjs";
80
- import { streamObject } from "./object-stream/stream-object.mjs";
81
- import "./object-stream/index.mjs";
82
- import { SSE_DONE, encodeSSE } from "./serve/sse.mjs";
83
- import { streamToSSE } from "./serve/stream-to-sse.mjs";
84
- import { serve } from "./serve/serve.mjs";
85
- import { memory as memory$1 } from "./checkpoint/memory.mjs";
86
- import { pg } from "./checkpoint/pg.mjs";
87
- import { redis } from "./checkpoint/redis.mjs";
88
- import { fromJSON, toJSON } from "./eval/report-json.mjs";
89
- import { toJUnit } from "./eval/report-junit.mjs";
90
- import { contains, exact, predicate } from "./eval/scorers.mjs";
91
- import { dataset } from "./eval/dataset.mjs";
92
- import { evalScorers } from "./eval/index.mjs";
93
- import { ApprovalRejectedError, InterruptSuspendedError } from "./human/errors.mjs";
94
- import { evaluatePolicy } from "./human/policy.mjs";
95
- import { humanApproval } from "./human/human-approval.mjs";
96
- import { resume } from "./human/resume.mjs";
97
- import { memory as memory$2 } from "./human/stores/memory.mjs";
98
- import { pg as pg$1 } from "./human/stores/pg.mjs";
99
- import { redis as redis$1 } from "./human/stores/redis.mjs";
100
- import "./human/stores/index.mjs";
101
- import { computeImageCost } from "./image/image-cost.mjs";
102
- import { image } from "./image/image.mjs";
103
- import "./image/index.mjs";
104
- import { speech } from "./speech/speech.mjs";
105
- import "./speech/index.mjs";
106
- import { audioFromBuffer, audioFromFile, audioMediaTypeForFilename } from "./transcribe/audio-input.mjs";
107
- import { transcribe } from "./transcribe/transcribe.mjs";
108
- import "./transcribe/index.mjs";
109
- import { injection } from "./guard/detectors/injection.mjs";
110
- import { pii } from "./guard/detectors/pii.mjs";
111
- import { topic } from "./guard/detectors/topic.mjs";
112
- import { OPENAI_INSTALL_INSTRUCTIONS } from "./guard/errors.mjs";
113
- import { moderation } from "./guard/detectors/moderation.mjs";
114
- import "./guard/detectors/index.mjs";
115
- import { guard } from "./guard/guard.mjs";
116
- import { guardrail } from "./guard/guardrail.mjs";
117
- import { END } from "./contracts/end.type.mjs";
118
- import { mockRouter } from "./mock/mock-router.mjs";
119
- import "./mock/index.mjs";
120
- import { fallbackModel } from "./model/fallback-model.mjs";
121
- import "./model/index.mjs";
122
- import { asTool } from "./orchestrator/as-tool.mjs";
123
- import { createCommandDispatcher } from "./orchestrator/commands.mjs";
124
- import { OrchestratorEmitter } from "./orchestrator/emitter.mjs";
125
- import { injectMemories, memoryQueryFromInput, outcomeTextFromTurn, recallForTurn, rememberTurnOutcome, resolveOrchestratorMemory } from "./orchestrator/memory.mjs";
126
- import { asTool as asTool$1 } from "./supervisor/as-tool.mjs";
127
- import { SupervisorEmitter } from "./supervisor/emitter.mjs";
128
- import { resolveIntentEntries } from "./supervisor/entries.mjs";
129
- import { createCancelledError } from "./supervisor/cancellation.mjs";
130
- import { buildRouterContextMessage } from "./supervisor/router-prompt.mjs";
131
- import { loadSnapshotForResume, persistSupervisorSnapshot } from "./supervisor/snapshot.mjs";
132
- import { SupervisorExecution } from "./supervisor/execution.mjs";
133
- import { computeSignature } from "./supervisor/signature.mjs";
134
- import { createSupervisorStream } from "./supervisor/supervisor-stream.mjs";
135
- import { supervisor } from "./supervisor/supervisor.mjs";
136
- import { OrchestratorExecution, runResume, runTurn } from "./orchestrator/execution.mjs";
137
- import { createOrchestratorStream } from "./orchestrator/orchestrator-stream.mjs";
138
- import { inProcessSessionLock, noopSessionLock } from "./orchestrator/session-lock.mjs";
139
- import { computeOrchestratorSignature } from "./orchestrator/signature.mjs";
140
- import { orchestrator } from "./orchestrator/orchestrator.mjs";
141
- import "./orchestrator/index.mjs";
142
- import { buildPlanSystemPrompt } from "./planner/plan-prompt.mjs";
143
- import { planSchema } from "./planner/plan-schema.mjs";
144
- import { computeSignature as computeSignature$1 } from "./planner/signature.mjs";
145
- import { planner } from "./planner/planner.mjs";
146
- import "./planner/index.mjs";
147
- import { renderPlaceholders } from "./system-prompt/render-placeholders.mjs";
148
- import { Instruction, instruction } from "./system-prompt/instruction.mjs";
149
- import { Persona, persona } from "./system-prompt/persona.mjs";
150
- import { RefinedSystemPrompt } from "./system-prompt/refined-system-prompt.mjs";
151
- import { SystemPrompt, systemPrompt } from "./system-prompt/system-prompt.mjs";
152
- import { defaultPromptsManager, promptKey, prompts } from "./prompts/prompts-manager.mjs";
153
- import { chunk } from "./rag/chunk/chunk.mjs";
154
- import { cacheVectorStore } from "./rag/store/cache-vector-store.mjs";
155
- import { rag } from "./rag/rag.mjs";
156
- import { pgVectorStore, vectorLiteral } from "./rag/store/pg-vector-store.mjs";
157
- import { loadText } from "./rag/loaders/load-text.mjs";
158
- import { loadHtml } from "./rag/loaders/load-html.mjs";
159
- import { loadWeb } from "./rag/loaders/load-web.mjs";
160
- import { PDF_PARSE_INSTALL_INSTRUCTIONS } from "./rag/loaders/errors.mjs";
161
- import { loadPdf } from "./rag/loaders/load-pdf.mjs";
162
- import { keywordReranker } from "./rag/rerank/keyword-reranker.mjs";
163
- import { llmReranker } from "./rag/rerank/llm-reranker.mjs";
164
- import { reciprocalRankFusion } from "./rag/hybrid/rrf.mjs";
165
- import { bm25Rank } from "./rag/hybrid/bm25.mjs";
166
- import { hybridRank } from "./rag/hybrid/hybrid-rank.mjs";
167
- import { multiQuery } from "./rag/transforms/multi-query.mjs";
168
- import "./rag/index.mjs";
169
- import { PromptNotFoundError, PromptValidationError } from "./prompt/errors.mjs";
170
- import { prompt } from "./prompt/prompt.mjs";
171
- import "./prompt/index.mjs";
172
- import { DEFAULT_SENSITIVE_KEYS, redact } from "./security/redact.mjs";
173
- import { VcrCassetteMissError } from "./vcr/errors.mjs";
174
- import { DEFAULT_HASH_OPTIONS, hashRequest } from "./vcr/hash-request.mjs";
175
- import { vcr } from "./vcr/vcr.mjs";
176
- import "./vcr/index.mjs";
177
- import { memory as memory$3 } from "./snapshot/memory.mjs";
178
- import { pg as pg$2 } from "./snapshot/pg.mjs";
179
- import { redis as redis$2 } from "./snapshot/redis.mjs";
180
- import { fanOut } from "./supervisor/fan-out.mjs";
181
- import { router } from "./supervisor/router-factory.mjs";
182
- import "./supervisor/index.mjs";
183
- import { team } from "./team/team.mjs";
184
- import { step } from "./workflow/step.mjs";
185
- import { computeSignature as computeSignature$2 } from "./workflow/signature.mjs";
186
- import { workflow } from "./workflow/workflow.mjs";
187
- import { ai } from "./ai.mjs";
188
- import "./observe/index.mjs";
189
- import "./prompts/index.mjs";
190
- import "./security/index.mjs";
191
- import "./team/index.mjs";
192
- import "./system-prompt/index.mjs";
193
- import "./tool/index.mjs";
194
- import "./workflow/index.mjs";
195
-
196
- export { ai };
@@ -1,24 +0,0 @@
1
- //#region ../@warlock.js/ai/src/memory/derive-id.ts
2
- /**
3
- * Derive a stable memory id from its text when the caller didn't supply
4
- * one. Re-remembering identical text therefore lands on the same id and
5
- * overwrites in place rather than duplicating.
6
- *
7
- * FNV-1a variant — cheap, dependency-free, collision-resistant enough
8
- * for de-duplicating memory entries. NOT cryptographic: a collision
9
- * would merge two distinct memories, not breach security in the current
10
- * trust model. Mirrors the prompt hash in
11
- * `middleware/builtins/semantic-cache.ts`.
12
- */
13
- function deriveMemoryId(text) {
14
- let hash = 2166136261;
15
- for (let index = 0; index < text.length; index++) {
16
- hash ^= text.charCodeAt(index);
17
- hash = Math.imul(hash, 16777619);
18
- }
19
- return (hash >>> 0).toString(16);
20
- }
21
-
22
- //#endregion
23
- export { deriveMemoryId };
24
- //# sourceMappingURL=derive-id.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"derive-id.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/memory/derive-id.ts"],"sourcesContent":["/**\n * Derive a stable memory id from its text when the caller didn't supply\n * one. Re-remembering identical text therefore lands on the same id and\n * overwrites in place rather than duplicating.\n *\n * FNV-1a variant — cheap, dependency-free, collision-resistant enough\n * for de-duplicating memory entries. NOT cryptographic: a collision\n * would merge two distinct memories, not breach security in the current\n * trust model. Mirrors the prompt hash in\n * `middleware/builtins/semantic-cache.ts`.\n */\nexport function deriveMemoryId(text: string): string {\n let hash = 0x811c9dc5;\n\n for (let index = 0; index < text.length; index++) {\n hash ^= text.charCodeAt(index);\n hash = Math.imul(hash, 0x01000193);\n }\n\n return (hash >>> 0).toString(16);\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,eAAe,MAAsB;CACnD,IAAI,OAAO;CAEX,KAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,QAAQ,SAAS;EAChD,QAAQ,KAAK,WAAW,KAAK;EAC7B,OAAO,KAAK,KAAK,MAAM,QAAU;CACnC;CAEA,QAAQ,SAAS,EAAC,CAAE,SAAS,EAAE;AACjC"}
@@ -1,106 +0,0 @@
1
- import { deriveMemoryId } from "./derive-id.mjs";
2
-
3
- //#region ../@warlock.js/ai/src/memory/episodic-memory.ts
4
- /**
5
- * How many extra candidates to pull from `similar()` before re-ranking by
6
- * the recency-blended score and slicing to `k`. Recency can promote a
7
- * slightly-less-similar-but-recent episode past a stale exact match, so
8
- * the raw top-`k` by similarity alone would miss it — overscan, then
9
- * re-rank.
10
- */
11
- const RECALL_OVERSCAN = 5;
12
- /**
13
- * Episodic recall tier (memory core M2).
14
- *
15
- * Holds a durable, timestamped log of *what happened* — events/episodes —
16
- * and retrieves the ones most relevant to a query, **blended with
17
- * recency** so recent episodes outrank stale ones at equal similarity.
18
- * That recency weighting is the whole difference from the {@link
19
- * import("./semantic-memory").SemanticMemory} tier (pure similarity over
20
- * timeless facts): episodic memory is time-anchored.
21
- *
22
- * Like the semantic tier it delegates the similarity search to the
23
- * `@warlock.js/cache` driver's `similar()` and never implements ANN
24
- * itself; it adds a stored `ts` per entry and a decay curve at recall.
25
- * The blended `score` stays in `[0, 1]` so a consumer can merge episodic
26
- * hits with the other tiers and sort on one field.
27
- *
28
- * Internal to the `memory()` factory — never exported on the package
29
- * surface.
30
- */
31
- var EpisodicMemory = class {
32
- constructor(embedder, store, namespace, recencyWeight, halfLifeMs, now) {
33
- this.embedder = embedder;
34
- this.store = store;
35
- this.namespace = namespace;
36
- this.recencyWeight = recencyWeight;
37
- this.halfLifeMs = halfLifeMs;
38
- this.now = now;
39
- }
40
- /**
41
- * Embed the episode text and index it under a namespaced, id-derived
42
- * key, stamping the current time. Re-remembering the same id overwrites
43
- * the prior entry (and refreshes its timestamp).
44
- */
45
- async remember(item) {
46
- const id = item.id ?? deriveMemoryId(item.text);
47
- const { vector } = await this.embedder.embed(item.text);
48
- const value = {
49
- id,
50
- text: item.text,
51
- ts: this.now(),
52
- metadata: item.metadata
53
- };
54
- await this.store.set(this.keyFor(id), value, { vector });
55
- }
56
- /**
57
- * Embed `query`, pull the nearest episodes clearing the similarity
58
- * `threshold`, then re-rank each by a recency-blended score before
59
- * returning the top `k`. The similarity floor still gates relevance —
60
- * recency only reorders episodes that already cleared it, it never
61
- * surfaces an irrelevant-but-recent one.
62
- */
63
- async recall(query, k, threshold) {
64
- const { vector } = await this.embedder.embed(query);
65
- const hits = await this.store.similar(vector, {
66
- topK: Math.max(k * RECALL_OVERSCAN, k),
67
- threshold
68
- });
69
- const prefix = `${this.namespace}.`;
70
- const now = this.now();
71
- return hits.filter((hit) => hit.key.startsWith(prefix)).map((hit) => ({
72
- id: hit.value.id,
73
- text: hit.value.text,
74
- tier: "episodic",
75
- score: this.blend(hit.score, hit.value.ts, now),
76
- metadata: hit.value.metadata
77
- })).sort((first, second) => second.score - first.score).slice(0, k);
78
- }
79
- /** Drop every episode written under this instance's namespace. */
80
- async clear() {
81
- await this.store.removeNamespace(this.namespace);
82
- }
83
- /**
84
- * Combine raw similarity with an exponential recency decay:
85
- * `(1 - w)·similarity + w·0.5^(age / halfLife)`. A just-remembered
86
- * episode contributes a recency of `1`; one `halfLife` old, `0.5`;
87
- * older trends toward `0`. With `recencyWeight` 0 the score is pure
88
- * similarity (an opt-out back to semantic-style ranking).
89
- */
90
- blend(similarity, ts, now) {
91
- const recency = .5 ** (Math.max(0, now - ts) / this.halfLifeMs);
92
- return (1 - this.recencyWeight) * similarity + this.recencyWeight * recency;
93
- }
94
- /**
95
- * Namespaced key for an entry. Mirrors the semantic tier's dot
96
- * separator so the prefix used here matches the `hit.key` the driver
97
- * returns from `similar()`.
98
- */
99
- keyFor(id) {
100
- return `${this.namespace}.${id}`;
101
- }
102
- };
103
-
104
- //#endregion
105
- export { EpisodicMemory };
106
- //# sourceMappingURL=episodic-memory.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"episodic-memory.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/memory/episodic-memory.ts"],"sourcesContent":["import type { CacheDriver, CacheSimilarHit } from \"@warlock.js/cache\";\nimport type { EmbedderContract } from \"../contracts/embedder.contract\";\nimport type {\n MemoryItem,\n RecalledMemory,\n} from \"../contracts/memory/memory-item.type\";\nimport { deriveMemoryId } from \"./derive-id\";\n\n/**\n * Shape persisted per episode. `ts` is the wall-clock time the episode\n * was remembered — the basis for the recency half of the blended recall\n * score. The vector lives in the driver's index (via `set({ vector })`),\n * so it is not duplicated here.\n */\ntype StoredEpisode = {\n id: string;\n text: string;\n ts: number;\n metadata?: Record<string, unknown>;\n};\n\n/**\n * How many extra candidates to pull from `similar()` before re-ranking by\n * the recency-blended score and slicing to `k`. Recency can promote a\n * slightly-less-similar-but-recent episode past a stale exact match, so\n * the raw top-`k` by similarity alone would miss it — overscan, then\n * re-rank.\n */\nconst RECALL_OVERSCAN = 5;\n\n/**\n * Episodic recall tier (memory core M2).\n *\n * Holds a durable, timestamped log of *what happened* — events/episodes —\n * and retrieves the ones most relevant to a query, **blended with\n * recency** so recent episodes outrank stale ones at equal similarity.\n * That recency weighting is the whole difference from the {@link\n * import(\"./semantic-memory\").SemanticMemory} tier (pure similarity over\n * timeless facts): episodic memory is time-anchored.\n *\n * Like the semantic tier it delegates the similarity search to the\n * `@warlock.js/cache` driver's `similar()` and never implements ANN\n * itself; it adds a stored `ts` per entry and a decay curve at recall.\n * The blended `score` stays in `[0, 1]` so a consumer can merge episodic\n * hits with the other tiers and sort on one field.\n *\n * Internal to the `memory()` factory — never exported on the package\n * surface.\n */\nexport class EpisodicMemory {\n public constructor(\n private readonly embedder: EmbedderContract,\n private readonly store: CacheDriver<any, any>,\n private readonly namespace: string,\n private readonly recencyWeight: number,\n private readonly halfLifeMs: number,\n private readonly now: () => number,\n ) {}\n\n /**\n * Embed the episode text and index it under a namespaced, id-derived\n * key, stamping the current time. Re-remembering the same id overwrites\n * the prior entry (and refreshes its timestamp).\n */\n public async remember(item: MemoryItem): Promise<void> {\n const id = item.id ?? deriveMemoryId(item.text);\n const { vector } = await this.embedder.embed(item.text);\n\n const value: StoredEpisode = {\n id,\n text: item.text,\n ts: this.now(),\n metadata: item.metadata,\n };\n\n await this.store.set(this.keyFor(id), value, { vector });\n }\n\n /**\n * Embed `query`, pull the nearest episodes clearing the similarity\n * `threshold`, then re-rank each by a recency-blended score before\n * returning the top `k`. The similarity floor still gates relevance —\n * recency only reorders episodes that already cleared it, it never\n * surfaces an irrelevant-but-recent one.\n */\n public async recall(\n query: string,\n k: number,\n threshold: number,\n ): Promise<RecalledMemory[]> {\n const { vector } = await this.embedder.embed(query);\n\n const hits = await this.store.similar<StoredEpisode>(vector, {\n topK: Math.max(k * RECALL_OVERSCAN, k),\n threshold,\n });\n\n const prefix = `${this.namespace}.`;\n const now = this.now();\n\n return hits\n .filter((hit: CacheSimilarHit<StoredEpisode>) =>\n hit.key.startsWith(prefix),\n )\n .map((hit: CacheSimilarHit<StoredEpisode>) => ({\n id: hit.value.id,\n text: hit.value.text,\n tier: \"episodic\" as const,\n score: this.blend(hit.score, hit.value.ts, now),\n metadata: hit.value.metadata,\n }))\n .sort((first, second) => second.score - first.score)\n .slice(0, k);\n }\n\n /** Drop every episode written under this instance's namespace. */\n public async clear(): Promise<void> {\n await this.store.removeNamespace(this.namespace);\n }\n\n /**\n * Combine raw similarity with an exponential recency decay:\n * `(1 - w)·similarity + w·0.5^(age / halfLife)`. A just-remembered\n * episode contributes a recency of `1`; one `halfLife` old, `0.5`;\n * older trends toward `0`. With `recencyWeight` 0 the score is pure\n * similarity (an opt-out back to semantic-style ranking).\n */\n private blend(similarity: number, ts: number, now: number): number {\n const ageMs = Math.max(0, now - ts);\n const recency = 0.5 ** (ageMs / this.halfLifeMs);\n\n return (1 - this.recencyWeight) * similarity + this.recencyWeight * recency;\n }\n\n /**\n * Namespaced key for an entry. Mirrors the semantic tier's dot\n * separator so the prefix used here matches the `hit.key` the driver\n * returns from `similar()`.\n */\n private keyFor(id: string): string {\n return `${this.namespace}.${id}`;\n }\n}\n"],"mappings":";;;;;;;;;;AA4BA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;AAqBxB,IAAa,iBAAb,MAA4B;CAC1B,AAAO,YACL,AAAiB,UACjB,AAAiB,OACjB,AAAiB,WACjB,AAAiB,eACjB,AAAiB,YACjB,AAAiB,KACjB;EANiB;EACA;EACA;EACA;EACA;EACA;CAChB;;;;;;CAOH,MAAa,SAAS,MAAiC;EACrD,MAAM,KAAK,KAAK,MAAM,eAAe,KAAK,IAAI;EAC9C,MAAM,EAAE,WAAW,MAAM,KAAK,SAAS,MAAM,KAAK,IAAI;EAEtD,MAAM,QAAuB;GAC3B;GACA,MAAM,KAAK;GACX,IAAI,KAAK,IAAI;GACb,UAAU,KAAK;EACjB;EAEA,MAAM,KAAK,MAAM,IAAI,KAAK,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,CAAC;CACzD;;;;;;;;CASA,MAAa,OACX,OACA,GACA,WAC2B;EAC3B,MAAM,EAAE,WAAW,MAAM,KAAK,SAAS,MAAM,KAAK;EAElD,MAAM,OAAO,MAAM,KAAK,MAAM,QAAuB,QAAQ;GAC3D,MAAM,KAAK,IAAI,IAAI,iBAAiB,CAAC;GACrC;EACF,CAAC;EAED,MAAM,SAAS,GAAG,KAAK,UAAU;EACjC,MAAM,MAAM,KAAK,IAAI;EAErB,OAAO,KACJ,QAAQ,QACP,IAAI,IAAI,WAAW,MAAM,CAC3B,CAAC,CACA,KAAK,SAAyC;GAC7C,IAAI,IAAI,MAAM;GACd,MAAM,IAAI,MAAM;GAChB,MAAM;GACN,OAAO,KAAK,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,GAAG;GAC9C,UAAU,IAAI,MAAM;EACtB,EAAE,CAAC,CACF,MAAM,OAAO,WAAW,OAAO,QAAQ,MAAM,KAAK,CAAC,CACnD,MAAM,GAAG,CAAC;CACf;;CAGA,MAAa,QAAuB;EAClC,MAAM,KAAK,MAAM,gBAAgB,KAAK,SAAS;CACjD;;;;;;;;CASA,AAAQ,MAAM,YAAoB,IAAY,KAAqB;EAEjE,MAAM,UAAU,OADF,KAAK,IAAI,GAAG,MAAM,EACJ,IAAI,KAAK;EAErC,QAAQ,IAAI,KAAK,iBAAiB,aAAa,KAAK,gBAAgB;CACtE;;;;;;CAOA,AAAQ,OAAO,IAAoB;EACjC,OAAO,GAAG,KAAK,UAAU,GAAG;CAC9B;AACF"}
@@ -1,166 +0,0 @@
1
- import { resolveDefaultStore } from "../config.mjs";
2
- import { EpisodicMemory } from "./episodic-memory.mjs";
3
- import { ProceduralMemory } from "./procedural-memory.mjs";
4
- import { SemanticMemory } from "./semantic-memory.mjs";
5
- import { WorkingMemory } from "./working-memory.mjs";
6
-
7
- //#region ../@warlock.js/ai/src/memory/memory.ts
8
- const DEFAULT_NAME = "memory";
9
- const DEFAULT_SEMANTIC_NAMESPACE = "ai.memory.semantic";
10
- const DEFAULT_EPISODIC_NAMESPACE = "ai.memory.episodic";
11
- const DEFAULT_PROCEDURAL_NAMESPACE = "ai.memory.procedural";
12
- const DEFAULT_K = 5;
13
- const DEFAULT_THRESHOLD = .7;
14
- const DEFAULT_RECENCY_WEIGHT = .3;
15
- const DEFAULT_HALF_LIFE_MS = 10080 * 60 * 1e3;
16
- const DEFAULT_REINFORCEMENT_WEIGHT = .3;
17
- /**
18
- * Create an agent memory store (memory core M2).
19
- *
20
- * Wires up to four tiers behind the {@link MemoryContract}: **working**
21
- * (in-run scratch, recency), **semantic** (durable facts by cosine
22
- * similarity), **episodic** (durable events, similarity blended with
23
- * recency), and **procedural** (durable how-tos, similarity blended with
24
- * reinforcement). The working tier is on by default; the other three each
25
- * activate only when their config is supplied. The three vector tiers
26
- * mirror how `semanticCache` delegates similarity to the cache driver's
27
- * `.similar()`.
28
- *
29
- * Resolution happens once here, at construction (loud), rather than per
30
- * call (silent until first use): a vector-tier config with no `store` and
31
- * no `ai.config({ defaultStore })` throws now; enabling no tier at all
32
- * throws now.
33
- *
34
- * Decay / forgetting (TTL-based falloff, eviction) remains deferred.
35
- *
36
- * @example
37
- * import { ai } from "@warlock.js/ai";
38
- * import { MemoryCacheDriver } from "@warlock.js/cache";
39
- *
40
- * const store = new MemoryCacheDriver();
41
- * store.setOptions({});
42
- *
43
- * const mem = ai.memory({
44
- * semantic: { embedder, store },
45
- * defaultTier: "semantic",
46
- * });
47
- *
48
- * await mem.remember({ text: "User prefers concise answers." });
49
- * const hits = await mem.recall("how should I respond?", { k: 3 });
50
- */
51
- function memory(config = {}) {
52
- const name = config.name ?? DEFAULT_NAME;
53
- const workingEnabled = config.working ?? true;
54
- const defaultK = config.k ?? DEFAULT_K;
55
- const defaultThreshold = config.threshold ?? DEFAULT_THRESHOLD;
56
- const working = workingEnabled ? new WorkingMemory() : void 0;
57
- const semantic = config.semantic ? buildSemanticTier(config.semantic, name) : void 0;
58
- const episodic = config.episodic ? buildEpisodicTier(config.episodic, name) : void 0;
59
- const procedural = config.procedural ? buildProceduralTier(config.procedural, name) : void 0;
60
- const tiers = {
61
- working,
62
- semantic,
63
- episodic,
64
- procedural
65
- };
66
- if (!working && !semantic && !episodic && !procedural) throw new Error(`memory("${name}"): no tier enabled — enable \`working\` (default) or pass a \`semantic\` / \`episodic\` / \`procedural\` config; a memory with no tiers can neither store nor recall`);
67
- const defaultTier = config.defaultTier ?? "working";
68
- assertTierEnabled(defaultTier, tiers, name);
69
- return {
70
- name,
71
- async remember(items) {
72
- const list = Array.isArray(items) ? items : [items];
73
- const writes = [];
74
- for (const item of list) {
75
- const tier = item.tier ?? defaultTier;
76
- assertTierEnabled(tier, tiers, name);
77
- if (tier === "working") {
78
- working.remember(item);
79
- continue;
80
- }
81
- if (tier === "semantic") {
82
- writes.push(semantic.remember(item));
83
- continue;
84
- }
85
- if (tier === "episodic") {
86
- writes.push(episodic.remember(item));
87
- continue;
88
- }
89
- writes.push(procedural.remember(item));
90
- }
91
- await Promise.all(writes);
92
- },
93
- async recall(query, options = {}) {
94
- const k = options.k ?? defaultK;
95
- const threshold = options.threshold ?? defaultThreshold;
96
- if (options.tier) assertTierEnabled(options.tier, tiers, name);
97
- const wants = (tier) => !options.tier || options.tier === tier;
98
- const [workingHits, semanticHits, episodicHits, proceduralHits] = await Promise.all([
99
- working && wants("working") ? Promise.resolve(working.recall(k)) : Promise.resolve([]),
100
- semantic && wants("semantic") ? semantic.recall(query, k, threshold) : Promise.resolve([]),
101
- episodic && wants("episodic") ? episodic.recall(query, k, threshold) : Promise.resolve([]),
102
- procedural && wants("procedural") ? procedural.recall(query, k, threshold) : Promise.resolve([])
103
- ]);
104
- return [
105
- ...workingHits,
106
- ...semanticHits,
107
- ...episodicHits,
108
- ...proceduralHits
109
- ].sort((first, second) => second.score - first.score).slice(0, k);
110
- },
111
- async clear(tier) {
112
- const clears = [];
113
- if (working && (!tier || tier === "working")) working.clear();
114
- if (semantic && (!tier || tier === "semantic")) clears.push(semantic.clear());
115
- if (episodic && (!tier || tier === "episodic")) clears.push(episodic.clear());
116
- if (procedural && (!tier || tier === "procedural")) clears.push(procedural.clear());
117
- await Promise.all(clears);
118
- }
119
- };
120
- }
121
- /**
122
- * Resolve the semantic tier's store (explicit `store` wins, else the
123
- * global `ai.config({ defaultStore })`) and build the tier. Throws at
124
- * construction when neither is available — the same loud-now contract
125
- * `semanticCache` follows.
126
- */
127
- function buildSemanticTier(semanticConfig, name) {
128
- const store = semanticConfig.store ?? resolveDefaultStore();
129
- if (!store) throw new Error(`memory("${name}"): semantic tier has no store — pass \`semantic.store\` or call \`ai.config({ defaultStore })\` at app boot before constructing the memory`);
130
- return new SemanticMemory(semanticConfig.embedder, store, semanticConfig.namespace ?? DEFAULT_SEMANTIC_NAMESPACE);
131
- }
132
- /**
133
- * Resolve the episodic tier's store (explicit `store` wins, else the
134
- * global default) and build the tier with its recency knobs. Throws at
135
- * construction when neither store is available — the same loud-now
136
- * contract the semantic tier follows.
137
- */
138
- function buildEpisodicTier(episodicConfig, name) {
139
- const store = episodicConfig.store ?? resolveDefaultStore();
140
- if (!store) throw new Error(`memory("${name}"): episodic tier has no store — pass \`episodic.store\` or call \`ai.config({ defaultStore })\` at app boot before constructing the memory`);
141
- return new EpisodicMemory(episodicConfig.embedder, store, episodicConfig.namespace ?? DEFAULT_EPISODIC_NAMESPACE, episodicConfig.recencyWeight ?? DEFAULT_RECENCY_WEIGHT, episodicConfig.halfLifeMs ?? DEFAULT_HALF_LIFE_MS, episodicConfig.now ?? (() => Date.now()));
142
- }
143
- /**
144
- * Resolve the procedural tier's store and build the tier with its
145
- * reinforcement knob. Throws at construction when no store is available.
146
- */
147
- function buildProceduralTier(proceduralConfig, name) {
148
- const store = proceduralConfig.store ?? resolveDefaultStore();
149
- if (!store) throw new Error(`memory("${name}"): procedural tier has no store — pass \`procedural.store\` or call \`ai.config({ defaultStore })\` at app boot before constructing the memory`);
150
- return new ProceduralMemory(proceduralConfig.embedder, store, proceduralConfig.namespace ?? DEFAULT_PROCEDURAL_NAMESPACE, proceduralConfig.reinforcementWeight ?? DEFAULT_REINFORCEMENT_WEIGHT);
151
- }
152
- /**
153
- * Guard that a tier referenced by config / a call is actually enabled,
154
- * failing fast with an actionable message instead of a downstream
155
- * `undefined` dereference.
156
- */
157
- function assertTierEnabled(tier, tiers, name) {
158
- if (tier === "working" && !tiers.working) throw new Error(`memory("${name}"): working tier is disabled — set \`working: true\` (the default) to use it`);
159
- if (tier === "semantic" && !tiers.semantic) throw new Error(`memory("${name}"): semantic tier is not configured — pass \`semantic\` config to use it`);
160
- if (tier === "episodic" && !tiers.episodic) throw new Error(`memory("${name}"): episodic tier is not configured — pass \`episodic\` config to use it`);
161
- if (tier === "procedural" && !tiers.procedural) throw new Error(`memory("${name}"): procedural tier is not configured — pass \`procedural\` config to use it`);
162
- }
163
-
164
- //#endregion
165
- export { memory };
166
- //# sourceMappingURL=memory.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.mjs","names":[],"sources":["../../../../../../../../../@warlock.js/ai/src/memory/memory.ts"],"sourcesContent":["import { resolveDefaultStore } from \"../config\";\nimport type { MemoryConfig } from \"../contracts/memory/memory-config.type\";\nimport type {\n MemoryItem,\n MemoryTier,\n RecalledMemory,\n} from \"../contracts/memory/memory-item.type\";\nimport type { MemoryContract } from \"../contracts/memory/memory.contract\";\nimport type { RecallOptions } from \"../contracts/memory/recall-options.type\";\nimport { EpisodicMemory } from \"./episodic-memory\";\nimport { ProceduralMemory } from \"./procedural-memory\";\nimport { SemanticMemory } from \"./semantic-memory\";\nimport { WorkingMemory } from \"./working-memory\";\n\nconst DEFAULT_NAME = \"memory\";\nconst DEFAULT_SEMANTIC_NAMESPACE = \"ai.memory.semantic\";\nconst DEFAULT_EPISODIC_NAMESPACE = \"ai.memory.episodic\";\nconst DEFAULT_PROCEDURAL_NAMESPACE = \"ai.memory.procedural\";\nconst DEFAULT_K = 5;\nconst DEFAULT_THRESHOLD = 0.7;\nconst DEFAULT_RECENCY_WEIGHT = 0.3;\nconst DEFAULT_HALF_LIFE_MS = 7 * 24 * 60 * 60 * 1000;\nconst DEFAULT_REINFORCEMENT_WEIGHT = 0.3;\n\n/**\n * Create an agent memory store (memory core M2).\n *\n * Wires up to four tiers behind the {@link MemoryContract}: **working**\n * (in-run scratch, recency), **semantic** (durable facts by cosine\n * similarity), **episodic** (durable events, similarity blended with\n * recency), and **procedural** (durable how-tos, similarity blended with\n * reinforcement). The working tier is on by default; the other three each\n * activate only when their config is supplied. The three vector tiers\n * mirror how `semanticCache` delegates similarity to the cache driver's\n * `.similar()`.\n *\n * Resolution happens once here, at construction (loud), rather than per\n * call (silent until first use): a vector-tier config with no `store` and\n * no `ai.config({ defaultStore })` throws now; enabling no tier at all\n * throws now.\n *\n * Decay / forgetting (TTL-based falloff, eviction) remains deferred.\n *\n * @example\n * import { ai } from \"@warlock.js/ai\";\n * import { MemoryCacheDriver } from \"@warlock.js/cache\";\n *\n * const store = new MemoryCacheDriver();\n * store.setOptions({});\n *\n * const mem = ai.memory({\n * semantic: { embedder, store },\n * defaultTier: \"semantic\",\n * });\n *\n * await mem.remember({ text: \"User prefers concise answers.\" });\n * const hits = await mem.recall(\"how should I respond?\", { k: 3 });\n */\nexport function memory(config: MemoryConfig = {}): MemoryContract {\n const name = config.name ?? DEFAULT_NAME;\n const workingEnabled = config.working ?? true;\n const defaultK = config.k ?? DEFAULT_K;\n const defaultThreshold = config.threshold ?? DEFAULT_THRESHOLD;\n\n const working = workingEnabled ? new WorkingMemory() : undefined;\n\n const semantic = config.semantic\n ? buildSemanticTier(config.semantic, name)\n : undefined;\n\n const episodic = config.episodic\n ? buildEpisodicTier(config.episodic, name)\n : undefined;\n\n const procedural = config.procedural\n ? buildProceduralTier(config.procedural, name)\n : undefined;\n\n const tiers: Tiers = { working, semantic, episodic, procedural };\n\n if (!working && !semantic && !episodic && !procedural) {\n throw new Error(\n `memory(\"${name}\"): no tier enabled — enable \\`working\\` (default) or pass a \\`semantic\\` / \\`episodic\\` / \\`procedural\\` config; a memory with no tiers can neither store nor recall`,\n );\n }\n\n const defaultTier: MemoryTier = config.defaultTier ?? \"working\";\n\n assertTierEnabled(defaultTier, tiers, name);\n\n return {\n name,\n async remember(items: MemoryItem | MemoryItem[]): Promise<void> {\n const list = Array.isArray(items) ? items : [items];\n\n const writes: Promise<void>[] = [];\n\n for (const item of list) {\n const tier = item.tier ?? defaultTier;\n\n assertTierEnabled(tier, tiers, name);\n\n if (tier === \"working\") {\n working!.remember(item);\n\n continue;\n }\n\n if (tier === \"semantic\") {\n writes.push(semantic!.remember(item));\n\n continue;\n }\n\n if (tier === \"episodic\") {\n writes.push(episodic!.remember(item));\n\n continue;\n }\n\n writes.push(procedural!.remember(item));\n }\n\n await Promise.all(writes);\n },\n async recall(\n query: string,\n options: RecallOptions = {},\n ): Promise<RecalledMemory[]> {\n const k = options.k ?? defaultK;\n const threshold = options.threshold ?? defaultThreshold;\n\n if (options.tier) {\n assertTierEnabled(options.tier, tiers, name);\n }\n\n const wants = (tier: MemoryTier): boolean =>\n !options.tier || options.tier === tier;\n\n const [workingHits, semanticHits, episodicHits, proceduralHits] =\n await Promise.all([\n working && wants(\"working\")\n ? Promise.resolve(working.recall(k))\n : Promise.resolve([] as RecalledMemory[]),\n semantic && wants(\"semantic\")\n ? semantic.recall(query, k, threshold)\n : Promise.resolve([] as RecalledMemory[]),\n episodic && wants(\"episodic\")\n ? episodic.recall(query, k, threshold)\n : Promise.resolve([] as RecalledMemory[]),\n procedural && wants(\"procedural\")\n ? procedural.recall(query, k, threshold)\n : Promise.resolve([] as RecalledMemory[]),\n ]);\n\n return [\n ...workingHits,\n ...semanticHits,\n ...episodicHits,\n ...proceduralHits,\n ]\n .sort((first, second) => second.score - first.score)\n .slice(0, k);\n },\n async clear(tier?: MemoryTier): Promise<void> {\n const clears: Promise<void>[] = [];\n\n if (working && (!tier || tier === \"working\")) {\n working.clear();\n }\n\n if (semantic && (!tier || tier === \"semantic\")) {\n clears.push(semantic.clear());\n }\n\n if (episodic && (!tier || tier === \"episodic\")) {\n clears.push(episodic.clear());\n }\n\n if (procedural && (!tier || tier === \"procedural\")) {\n clears.push(procedural.clear());\n }\n\n await Promise.all(clears);\n },\n };\n}\n\n/** The four tier instances a `memory()` composes; `undefined` when off. */\ntype Tiers = {\n working: WorkingMemory | undefined;\n semantic: SemanticMemory | undefined;\n episodic: EpisodicMemory | undefined;\n procedural: ProceduralMemory | undefined;\n};\n\n/**\n * Resolve the semantic tier's store (explicit `store` wins, else the\n * global `ai.config({ defaultStore })`) and build the tier. Throws at\n * construction when neither is available — the same loud-now contract\n * `semanticCache` follows.\n */\nfunction buildSemanticTier(\n semanticConfig: NonNullable<MemoryConfig[\"semantic\"]>,\n name: string,\n): SemanticMemory {\n const store = semanticConfig.store ?? resolveDefaultStore();\n\n if (!store) {\n throw new Error(\n `memory(\"${name}\"): semantic tier has no store — pass \\`semantic.store\\` or call \\`ai.config({ defaultStore })\\` at app boot before constructing the memory`,\n );\n }\n\n return new SemanticMemory(\n semanticConfig.embedder,\n store,\n semanticConfig.namespace ?? DEFAULT_SEMANTIC_NAMESPACE,\n );\n}\n\n/**\n * Resolve the episodic tier's store (explicit `store` wins, else the\n * global default) and build the tier with its recency knobs. Throws at\n * construction when neither store is available — the same loud-now\n * contract the semantic tier follows.\n */\nfunction buildEpisodicTier(\n episodicConfig: NonNullable<MemoryConfig[\"episodic\"]>,\n name: string,\n): EpisodicMemory {\n const store = episodicConfig.store ?? resolveDefaultStore();\n\n if (!store) {\n throw new Error(\n `memory(\"${name}\"): episodic tier has no store — pass \\`episodic.store\\` or call \\`ai.config({ defaultStore })\\` at app boot before constructing the memory`,\n );\n }\n\n return new EpisodicMemory(\n episodicConfig.embedder,\n store,\n episodicConfig.namespace ?? DEFAULT_EPISODIC_NAMESPACE,\n episodicConfig.recencyWeight ?? DEFAULT_RECENCY_WEIGHT,\n episodicConfig.halfLifeMs ?? DEFAULT_HALF_LIFE_MS,\n episodicConfig.now ?? (() => Date.now()),\n );\n}\n\n/**\n * Resolve the procedural tier's store and build the tier with its\n * reinforcement knob. Throws at construction when no store is available.\n */\nfunction buildProceduralTier(\n proceduralConfig: NonNullable<MemoryConfig[\"procedural\"]>,\n name: string,\n): ProceduralMemory {\n const store = proceduralConfig.store ?? resolveDefaultStore();\n\n if (!store) {\n throw new Error(\n `memory(\"${name}\"): procedural tier has no store — pass \\`procedural.store\\` or call \\`ai.config({ defaultStore })\\` at app boot before constructing the memory`,\n );\n }\n\n return new ProceduralMemory(\n proceduralConfig.embedder,\n store,\n proceduralConfig.namespace ?? DEFAULT_PROCEDURAL_NAMESPACE,\n proceduralConfig.reinforcementWeight ?? DEFAULT_REINFORCEMENT_WEIGHT,\n );\n}\n\n/**\n * Guard that a tier referenced by config / a call is actually enabled,\n * failing fast with an actionable message instead of a downstream\n * `undefined` dereference.\n */\nfunction assertTierEnabled(tier: MemoryTier, tiers: Tiers, name: string): void {\n if (tier === \"working\" && !tiers.working) {\n throw new Error(\n `memory(\"${name}\"): working tier is disabled — set \\`working: true\\` (the default) to use it`,\n );\n }\n\n if (tier === \"semantic\" && !tiers.semantic) {\n throw new Error(\n `memory(\"${name}\"): semantic tier is not configured — pass \\`semantic\\` config to use it`,\n );\n }\n\n if (tier === \"episodic\" && !tiers.episodic) {\n throw new Error(\n `memory(\"${name}\"): episodic tier is not configured — pass \\`episodic\\` config to use it`,\n );\n }\n\n if (tier === \"procedural\" && !tiers.procedural) {\n throw new Error(\n `memory(\"${name}\"): procedural tier is not configured — pass \\`procedural\\` config to use it`,\n );\n }\n}\n"],"mappings":";;;;;;;AAcA,MAAM,eAAe;AACrB,MAAM,6BAA6B;AACnC,MAAM,6BAA6B;AACnC,MAAM,+BAA+B;AACrC,MAAM,YAAY;AAClB,MAAM,oBAAoB;AAC1B,MAAM,yBAAyB;AAC/B,MAAM,uBAAuB,QAAc,KAAK;AAChD,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCrC,SAAgB,OAAO,SAAuB,CAAC,GAAmB;CAChE,MAAM,OAAO,OAAO,QAAQ;CAC5B,MAAM,iBAAiB,OAAO,WAAW;CACzC,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,mBAAmB,OAAO,aAAa;CAE7C,MAAM,UAAU,iBAAiB,IAAI,cAAc,IAAI;CAEvD,MAAM,WAAW,OAAO,WACpB,kBAAkB,OAAO,UAAU,IAAI,IACvC;CAEJ,MAAM,WAAW,OAAO,WACpB,kBAAkB,OAAO,UAAU,IAAI,IACvC;CAEJ,MAAM,aAAa,OAAO,aACtB,oBAAoB,OAAO,YAAY,IAAI,IAC3C;CAEJ,MAAM,QAAe;EAAE;EAAS;EAAU;EAAU;CAAW;CAE/D,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,YACzC,MAAM,IAAI,MACR,WAAW,KAAK,sKAClB;CAGF,MAAM,cAA0B,OAAO,eAAe;CAEtD,kBAAkB,aAAa,OAAO,IAAI;CAE1C,OAAO;EACL;EACA,MAAM,SAAS,OAAiD;GAC9D,MAAM,OAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;GAElD,MAAM,SAA0B,CAAC;GAEjC,KAAK,MAAM,QAAQ,MAAM;IACvB,MAAM,OAAO,KAAK,QAAQ;IAE1B,kBAAkB,MAAM,OAAO,IAAI;IAEnC,IAAI,SAAS,WAAW;KACtB,QAAS,SAAS,IAAI;KAEtB;IACF;IAEA,IAAI,SAAS,YAAY;KACvB,OAAO,KAAK,SAAU,SAAS,IAAI,CAAC;KAEpC;IACF;IAEA,IAAI,SAAS,YAAY;KACvB,OAAO,KAAK,SAAU,SAAS,IAAI,CAAC;KAEpC;IACF;IAEA,OAAO,KAAK,WAAY,SAAS,IAAI,CAAC;GACxC;GAEA,MAAM,QAAQ,IAAI,MAAM;EAC1B;EACA,MAAM,OACJ,OACA,UAAyB,CAAC,GACC;GAC3B,MAAM,IAAI,QAAQ,KAAK;GACvB,MAAM,YAAY,QAAQ,aAAa;GAEvC,IAAI,QAAQ,MACV,kBAAkB,QAAQ,MAAM,OAAO,IAAI;GAG7C,MAAM,SAAS,SACb,CAAC,QAAQ,QAAQ,QAAQ,SAAS;GAEpC,MAAM,CAAC,aAAa,cAAc,cAAc,kBAC9C,MAAM,QAAQ,IAAI;IAChB,WAAW,MAAM,SAAS,IACtB,QAAQ,QAAQ,QAAQ,OAAO,CAAC,CAAC,IACjC,QAAQ,QAAQ,CAAC,CAAqB;IAC1C,YAAY,MAAM,UAAU,IACxB,SAAS,OAAO,OAAO,GAAG,SAAS,IACnC,QAAQ,QAAQ,CAAC,CAAqB;IAC1C,YAAY,MAAM,UAAU,IACxB,SAAS,OAAO,OAAO,GAAG,SAAS,IACnC,QAAQ,QAAQ,CAAC,CAAqB;IAC1C,cAAc,MAAM,YAAY,IAC5B,WAAW,OAAO,OAAO,GAAG,SAAS,IACrC,QAAQ,QAAQ,CAAC,CAAqB;GAC5C,CAAC;GAEH,OAAO;IACL,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;GACL,CAAC,CACE,MAAM,OAAO,WAAW,OAAO,QAAQ,MAAM,KAAK,CAAC,CACnD,MAAM,GAAG,CAAC;EACf;EACA,MAAM,MAAM,MAAkC;GAC5C,MAAM,SAA0B,CAAC;GAEjC,IAAI,YAAY,CAAC,QAAQ,SAAS,YAChC,QAAQ,MAAM;GAGhB,IAAI,aAAa,CAAC,QAAQ,SAAS,aACjC,OAAO,KAAK,SAAS,MAAM,CAAC;GAG9B,IAAI,aAAa,CAAC,QAAQ,SAAS,aACjC,OAAO,KAAK,SAAS,MAAM,CAAC;GAG9B,IAAI,eAAe,CAAC,QAAQ,SAAS,eACnC,OAAO,KAAK,WAAW,MAAM,CAAC;GAGhC,MAAM,QAAQ,IAAI,MAAM;EAC1B;CACF;AACF;;;;;;;AAgBA,SAAS,kBACP,gBACA,MACgB;CAChB,MAAM,QAAQ,eAAe,SAAS,oBAAoB;CAE1D,IAAI,CAAC,OACH,MAAM,IAAI,MACR,WAAW,KAAK,4IAClB;CAGF,OAAO,IAAI,eACT,eAAe,UACf,OACA,eAAe,aAAa,0BAC9B;AACF;;;;;;;AAQA,SAAS,kBACP,gBACA,MACgB;CAChB,MAAM,QAAQ,eAAe,SAAS,oBAAoB;CAE1D,IAAI,CAAC,OACH,MAAM,IAAI,MACR,WAAW,KAAK,4IAClB;CAGF,OAAO,IAAI,eACT,eAAe,UACf,OACA,eAAe,aAAa,4BAC5B,eAAe,iBAAiB,wBAChC,eAAe,cAAc,sBAC7B,eAAe,cAAc,KAAK,IAAI,EACxC;AACF;;;;;AAMA,SAAS,oBACP,kBACA,MACkB;CAClB,MAAM,QAAQ,iBAAiB,SAAS,oBAAoB;CAE5D,IAAI,CAAC,OACH,MAAM,IAAI,MACR,WAAW,KAAK,gJAClB;CAGF,OAAO,IAAI,iBACT,iBAAiB,UACjB,OACA,iBAAiB,aAAa,8BAC9B,iBAAiB,uBAAuB,4BAC1C;AACF;;;;;;AAOA,SAAS,kBAAkB,MAAkB,OAAc,MAAoB;CAC7E,IAAI,SAAS,aAAa,CAAC,MAAM,SAC/B,MAAM,IAAI,MACR,WAAW,KAAK,6EAClB;CAGF,IAAI,SAAS,cAAc,CAAC,MAAM,UAChC,MAAM,IAAI,MACR,WAAW,KAAK,yEAClB;CAGF,IAAI,SAAS,cAAc,CAAC,MAAM,UAChC,MAAM,IAAI,MACR,WAAW,KAAK,yEAClB;CAGF,IAAI,SAAS,gBAAgB,CAAC,MAAM,YAClC,MAAM,IAAI,MACR,WAAW,KAAK,6EAClB;AAEJ"}