@rudderjs/ai 1.17.3 → 1.18.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 (377) hide show
  1. package/README.md +19 -1274
  2. package/dist/budget-orm/index.d.ts +1 -95
  3. package/dist/budget-orm/index.d.ts.map +1 -1
  4. package/dist/budget-orm/index.js +4 -176
  5. package/dist/budget-orm/index.js.map +1 -1
  6. package/dist/chat-mentions.d.ts +1 -58
  7. package/dist/chat-mentions.d.ts.map +1 -1
  8. package/dist/chat-mentions.js +4 -80
  9. package/dist/chat-mentions.js.map +1 -1
  10. package/dist/commands/ai-eval.d.ts +1 -92
  11. package/dist/commands/ai-eval.d.ts.map +1 -1
  12. package/dist/commands/ai-eval.js +4 -377
  13. package/dist/commands/ai-eval.js.map +1 -1
  14. package/dist/commands/make-agent.d.ts +1 -2
  15. package/dist/commands/make-agent.d.ts.map +1 -1
  16. package/dist/commands/make-agent.js +4 -22
  17. package/dist/commands/make-agent.js.map +1 -1
  18. package/dist/computer-use/index.d.ts +1 -52
  19. package/dist/computer-use/index.d.ts.map +1 -1
  20. package/dist/computer-use/index.js +4 -50
  21. package/dist/computer-use/index.js.map +1 -1
  22. package/dist/conversation-orm/index.d.ts +1 -108
  23. package/dist/conversation-orm/index.d.ts.map +1 -1
  24. package/dist/conversation-orm/index.js +4 -214
  25. package/dist/conversation-orm/index.js.map +1 -1
  26. package/dist/doctor.d.ts +1 -1
  27. package/dist/doctor.d.ts.map +1 -1
  28. package/dist/doctor.js +4 -65
  29. package/dist/doctor.js.map +1 -1
  30. package/dist/eval/index.d.ts +1 -270
  31. package/dist/eval/index.d.ts.map +1 -1
  32. package/dist/eval/index.js +4 -509
  33. package/dist/eval/index.js.map +1 -1
  34. package/dist/gateway/index.d.ts +1 -10
  35. package/dist/gateway/index.d.ts.map +1 -1
  36. package/dist/gateway/index.js +4 -10
  37. package/dist/gateway/index.js.map +1 -1
  38. package/dist/index.d.ts +1 -66
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -78
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/index.d.ts +1 -15
  43. package/dist/mcp/index.d.ts.map +1 -1
  44. package/dist/mcp/index.js +4 -14
  45. package/dist/mcp/index.js.map +1 -1
  46. package/dist/memory-embedding/index.d.ts +1 -120
  47. package/dist/memory-embedding/index.d.ts.map +1 -1
  48. package/dist/memory-embedding/index.js +4 -228
  49. package/dist/memory-embedding/index.js.map +1 -1
  50. package/dist/memory-orm/index.d.ts +1 -117
  51. package/dist/memory-orm/index.d.ts.map +1 -1
  52. package/dist/memory-orm/index.js +4 -186
  53. package/dist/memory-orm/index.js.map +1 -1
  54. package/dist/node/index.d.ts +1 -2
  55. package/dist/node/index.d.ts.map +1 -1
  56. package/dist/node/index.js +4 -2
  57. package/dist/node/index.js.map +1 -1
  58. package/dist/observers.d.ts +1 -129
  59. package/dist/observers.d.ts.map +1 -1
  60. package/dist/observers.js +4 -39
  61. package/dist/observers.js.map +1 -1
  62. package/dist/react/index.d.ts +1 -15
  63. package/dist/react/index.d.ts.map +1 -1
  64. package/dist/react/index.js +4 -15
  65. package/dist/react/index.js.map +1 -1
  66. package/dist/server/index.d.ts +1 -1
  67. package/dist/server/index.d.ts.map +1 -1
  68. package/dist/server/index.js +4 -1
  69. package/dist/server/index.js.map +1 -1
  70. package/package.json +9 -13
  71. package/boost/guidelines.md +0 -260
  72. package/boost/skills/ai-agents/SKILL.md +0 -240
  73. package/boost/skills/ai-tools/SKILL.md +0 -260
  74. package/dist/agent-run-store.d.ts +0 -161
  75. package/dist/agent-run-store.d.ts.map +0 -1
  76. package/dist/agent-run-store.js +0 -98
  77. package/dist/agent-run-store.js.map +0 -1
  78. package/dist/agent-sse.d.ts +0 -153
  79. package/dist/agent-sse.d.ts.map +0 -1
  80. package/dist/agent-sse.js +0 -282
  81. package/dist/agent-sse.js.map +0 -1
  82. package/dist/agent.d.ts +0 -508
  83. package/dist/agent.d.ts.map +0 -1
  84. package/dist/agent.js +0 -1538
  85. package/dist/agent.js.map +0 -1
  86. package/dist/attachment.d.ts +0 -31
  87. package/dist/attachment.d.ts.map +0 -1
  88. package/dist/attachment.js +0 -89
  89. package/dist/attachment.js.map +0 -1
  90. package/dist/audio.d.ts +0 -45
  91. package/dist/audio.d.ts.map +0 -1
  92. package/dist/audio.js +0 -93
  93. package/dist/audio.js.map +0 -1
  94. package/dist/base64.d.ts +0 -7
  95. package/dist/base64.d.ts.map +0 -1
  96. package/dist/base64.js +0 -39
  97. package/dist/base64.js.map +0 -1
  98. package/dist/budget/pricing.d.ts +0 -124
  99. package/dist/budget/pricing.d.ts.map +0 -1
  100. package/dist/budget/pricing.js +0 -175
  101. package/dist/budget/pricing.js.map +0 -1
  102. package/dist/budget/storage.d.ts +0 -104
  103. package/dist/budget/storage.d.ts.map +0 -1
  104. package/dist/budget/storage.js +0 -0
  105. package/dist/budget/storage.js.map +0 -1
  106. package/dist/budget/with-budget.d.ts +0 -119
  107. package/dist/budget/with-budget.d.ts.map +0 -1
  108. package/dist/budget/with-budget.js +0 -175
  109. package/dist/budget/with-budget.js.map +0 -1
  110. package/dist/cached-embedding.d.ts +0 -14
  111. package/dist/cached-embedding.d.ts.map +0 -1
  112. package/dist/cached-embedding.js +0 -44
  113. package/dist/cached-embedding.js.map +0 -1
  114. package/dist/computer-use/actions.d.ts +0 -214
  115. package/dist/computer-use/actions.d.ts.map +0 -1
  116. package/dist/computer-use/actions.js +0 -48
  117. package/dist/computer-use/actions.js.map +0 -1
  118. package/dist/computer-use/errors.d.ts +0 -57
  119. package/dist/computer-use/errors.d.ts.map +0 -1
  120. package/dist/computer-use/errors.js +0 -76
  121. package/dist/computer-use/errors.js.map +0 -1
  122. package/dist/computer-use/playwright.d.ts +0 -76
  123. package/dist/computer-use/playwright.d.ts.map +0 -1
  124. package/dist/computer-use/playwright.js +0 -270
  125. package/dist/computer-use/playwright.js.map +0 -1
  126. package/dist/computer-use/tool.d.ts +0 -154
  127. package/dist/computer-use/tool.d.ts.map +0 -1
  128. package/dist/computer-use/tool.js +0 -210
  129. package/dist/computer-use/tool.js.map +0 -1
  130. package/dist/continuation-validation.d.ts +0 -85
  131. package/dist/continuation-validation.d.ts.map +0 -1
  132. package/dist/continuation-validation.js +0 -166
  133. package/dist/continuation-validation.js.map +0 -1
  134. package/dist/conversation-persistence.d.ts +0 -46
  135. package/dist/conversation-persistence.d.ts.map +0 -1
  136. package/dist/conversation-persistence.js +0 -176
  137. package/dist/conversation-persistence.js.map +0 -1
  138. package/dist/conversation.d.ts +0 -11
  139. package/dist/conversation.d.ts.map +0 -1
  140. package/dist/conversation.js +0 -55
  141. package/dist/conversation.js.map +0 -1
  142. package/dist/eval/fixtures.d.ts +0 -65
  143. package/dist/eval/fixtures.d.ts.map +0 -1
  144. package/dist/eval/fixtures.js +0 -110
  145. package/dist/eval/fixtures.js.map +0 -1
  146. package/dist/eval/html-reporter.d.ts +0 -25
  147. package/dist/eval/html-reporter.d.ts.map +0 -1
  148. package/dist/eval/html-reporter.js +0 -209
  149. package/dist/eval/html-reporter.js.map +0 -1
  150. package/dist/eval/json-reporter.d.ts +0 -43
  151. package/dist/eval/json-reporter.d.ts.map +0 -1
  152. package/dist/eval/json-reporter.js +0 -40
  153. package/dist/eval/json-reporter.js.map +0 -1
  154. package/dist/facade.d.ts +0 -96
  155. package/dist/facade.d.ts.map +0 -1
  156. package/dist/facade.js +0 -146
  157. package/dist/facade.js.map +0 -1
  158. package/dist/fake.d.ts +0 -201
  159. package/dist/fake.d.ts.map +0 -1
  160. package/dist/fake.js +0 -428
  161. package/dist/fake.js.map +0 -1
  162. package/dist/file-search.d.ts +0 -168
  163. package/dist/file-search.d.ts.map +0 -1
  164. package/dist/file-search.js +0 -158
  165. package/dist/file-search.js.map +0 -1
  166. package/dist/files.d.ts +0 -27
  167. package/dist/files.d.ts.map +0 -1
  168. package/dist/files.js +0 -44
  169. package/dist/files.js.map +0 -1
  170. package/dist/gateway/http-gateway-adapter.d.ts +0 -94
  171. package/dist/gateway/http-gateway-adapter.d.ts.map +0 -1
  172. package/dist/gateway/http-gateway-adapter.js +0 -106
  173. package/dist/gateway/http-gateway-adapter.js.map +0 -1
  174. package/dist/gateway/sse.d.ts +0 -28
  175. package/dist/gateway/sse.d.ts.map +0 -1
  176. package/dist/gateway/sse.js +0 -78
  177. package/dist/gateway/sse.js.map +0 -1
  178. package/dist/handoff.d.ts +0 -95
  179. package/dist/handoff.d.ts.map +0 -1
  180. package/dist/handoff.js +0 -78
  181. package/dist/handoff.js.map +0 -1
  182. package/dist/handoffs-driver.d.ts +0 -58
  183. package/dist/handoffs-driver.d.ts.map +0 -1
  184. package/dist/handoffs-driver.js +0 -103
  185. package/dist/handoffs-driver.js.map +0 -1
  186. package/dist/image.d.ts +0 -40
  187. package/dist/image.d.ts.map +0 -1
  188. package/dist/image.js +0 -109
  189. package/dist/image.js.map +0 -1
  190. package/dist/mcp/client-tools.d.ts +0 -39
  191. package/dist/mcp/client-tools.d.ts.map +0 -1
  192. package/dist/mcp/client-tools.js +0 -147
  193. package/dist/mcp/client-tools.js.map +0 -1
  194. package/dist/mcp/server-from-agent.d.ts +0 -24
  195. package/dist/mcp/server-from-agent.d.ts.map +0 -1
  196. package/dist/mcp/server-from-agent.js +0 -113
  197. package/dist/mcp/server-from-agent.js.map +0 -1
  198. package/dist/mcp/types.d.ts +0 -64
  199. package/dist/mcp/types.d.ts.map +0 -1
  200. package/dist/mcp/types.js +0 -6
  201. package/dist/mcp/types.js.map +0 -1
  202. package/dist/memory-extract.d.ts +0 -60
  203. package/dist/memory-extract.d.ts.map +0 -1
  204. package/dist/memory-extract.js +0 -163
  205. package/dist/memory-extract.js.map +0 -1
  206. package/dist/memory-inject.d.ts +0 -39
  207. package/dist/memory-inject.d.ts.map +0 -1
  208. package/dist/memory-inject.js +0 -135
  209. package/dist/memory-inject.js.map +0 -1
  210. package/dist/memory.d.ts +0 -55
  211. package/dist/memory.d.ts.map +0 -1
  212. package/dist/memory.js +0 -132
  213. package/dist/memory.js.map +0 -1
  214. package/dist/middleware.d.ts +0 -18
  215. package/dist/middleware.d.ts.map +0 -1
  216. package/dist/middleware.js +0 -72
  217. package/dist/middleware.js.map +0 -1
  218. package/dist/node/attachment.d.ts +0 -6
  219. package/dist/node/attachment.d.ts.map +0 -1
  220. package/dist/node/attachment.js +0 -35
  221. package/dist/node/attachment.js.map +0 -1
  222. package/dist/node/transcription.d.ts +0 -4
  223. package/dist/node/transcription.d.ts.map +0 -1
  224. package/dist/node/transcription.js +0 -8
  225. package/dist/node/transcription.js.map +0 -1
  226. package/dist/output.d.ts +0 -22
  227. package/dist/output.d.ts.map +0 -1
  228. package/dist/output.js +0 -60
  229. package/dist/output.js.map +0 -1
  230. package/dist/provider-tools.d.ts +0 -87
  231. package/dist/provider-tools.d.ts.map +0 -1
  232. package/dist/provider-tools.js +0 -189
  233. package/dist/provider-tools.js.map +0 -1
  234. package/dist/providers/anthropic.d.ts +0 -24
  235. package/dist/providers/anthropic.d.ts.map +0 -1
  236. package/dist/providers/anthropic.js +0 -405
  237. package/dist/providers/anthropic.js.map +0 -1
  238. package/dist/providers/azure.d.ts +0 -13
  239. package/dist/providers/azure.d.ts.map +0 -1
  240. package/dist/providers/azure.js +0 -15
  241. package/dist/providers/azure.js.map +0 -1
  242. package/dist/providers/bedrock.d.ts +0 -75
  243. package/dist/providers/bedrock.d.ts.map +0 -1
  244. package/dist/providers/bedrock.js +0 -181
  245. package/dist/providers/bedrock.js.map +0 -1
  246. package/dist/providers/cohere.d.ts +0 -13
  247. package/dist/providers/cohere.d.ts.map +0 -1
  248. package/dist/providers/cohere.js +0 -87
  249. package/dist/providers/cohere.js.map +0 -1
  250. package/dist/providers/deepseek.d.ts +0 -12
  251. package/dist/providers/deepseek.d.ts.map +0 -1
  252. package/dist/providers/deepseek.js +0 -15
  253. package/dist/providers/deepseek.js.map +0 -1
  254. package/dist/providers/elevenlabs.d.ts +0 -98
  255. package/dist/providers/elevenlabs.d.ts.map +0 -1
  256. package/dist/providers/elevenlabs.js +0 -229
  257. package/dist/providers/elevenlabs.js.map +0 -1
  258. package/dist/providers/google-cache-registry.d.ts +0 -132
  259. package/dist/providers/google-cache-registry.d.ts.map +0 -1
  260. package/dist/providers/google-cache-registry.js +0 -209
  261. package/dist/providers/google-cache-registry.js.map +0 -1
  262. package/dist/providers/google.d.ts +0 -38
  263. package/dist/providers/google.d.ts.map +0 -1
  264. package/dist/providers/google.js +0 -903
  265. package/dist/providers/google.js.map +0 -1
  266. package/dist/providers/groq.d.ts +0 -12
  267. package/dist/providers/groq.d.ts.map +0 -1
  268. package/dist/providers/groq.js +0 -15
  269. package/dist/providers/groq.js.map +0 -1
  270. package/dist/providers/jina.d.ts +0 -13
  271. package/dist/providers/jina.d.ts.map +0 -1
  272. package/dist/providers/jina.js +0 -90
  273. package/dist/providers/jina.js.map +0 -1
  274. package/dist/providers/mistral.d.ts +0 -13
  275. package/dist/providers/mistral.d.ts.map +0 -1
  276. package/dist/providers/mistral.js +0 -46
  277. package/dist/providers/mistral.js.map +0 -1
  278. package/dist/providers/ollama.d.ts +0 -11
  279. package/dist/providers/ollama.d.ts.map +0 -1
  280. package/dist/providers/ollama.js +0 -15
  281. package/dist/providers/ollama.js.map +0 -1
  282. package/dist/providers/openai.d.ts +0 -79
  283. package/dist/providers/openai.d.ts.map +0 -1
  284. package/dist/providers/openai.js +0 -792
  285. package/dist/providers/openai.js.map +0 -1
  286. package/dist/providers/openrouter.d.ts +0 -43
  287. package/dist/providers/openrouter.d.ts.map +0 -1
  288. package/dist/providers/openrouter.js +0 -21
  289. package/dist/providers/openrouter.js.map +0 -1
  290. package/dist/providers/voyage.d.ts +0 -91
  291. package/dist/providers/voyage.d.ts.map +0 -1
  292. package/dist/providers/voyage.js +0 -166
  293. package/dist/providers/voyage.js.map +0 -1
  294. package/dist/providers/xai.d.ts +0 -12
  295. package/dist/providers/xai.d.ts.map +0 -1
  296. package/dist/providers/xai.js +0 -15
  297. package/dist/providers/xai.js.map +0 -1
  298. package/dist/queue-job.d.ts +0 -100
  299. package/dist/queue-job.d.ts.map +0 -1
  300. package/dist/queue-job.js +0 -185
  301. package/dist/queue-job.js.map +0 -1
  302. package/dist/react/agent-run.d.ts +0 -111
  303. package/dist/react/agent-run.d.ts.map +0 -1
  304. package/dist/react/agent-run.js +0 -107
  305. package/dist/react/agent-run.js.map +0 -1
  306. package/dist/react/useAgentRun.d.ts +0 -68
  307. package/dist/react/useAgentRun.d.ts.map +0 -1
  308. package/dist/react/useAgentRun.js +0 -125
  309. package/dist/react/useAgentRun.js.map +0 -1
  310. package/dist/registry.d.ts +0 -45
  311. package/dist/registry.d.ts.map +0 -1
  312. package/dist/registry.js +0 -131
  313. package/dist/registry.js.map +0 -1
  314. package/dist/rerank.d.ts +0 -20
  315. package/dist/rerank.d.ts.map +0 -1
  316. package/dist/rerank.js +0 -40
  317. package/dist/rerank.js.map +0 -1
  318. package/dist/resume-approval.d.ts +0 -30
  319. package/dist/resume-approval.d.ts.map +0 -1
  320. package/dist/resume-approval.js +0 -147
  321. package/dist/resume-approval.js.map +0 -1
  322. package/dist/sanitize-conversation.d.ts +0 -43
  323. package/dist/sanitize-conversation.d.ts.map +0 -1
  324. package/dist/sanitize-conversation.js +0 -85
  325. package/dist/sanitize-conversation.js.map +0 -1
  326. package/dist/scoped-tool.d.ts +0 -98
  327. package/dist/scoped-tool.d.ts.map +0 -1
  328. package/dist/scoped-tool.js +0 -174
  329. package/dist/scoped-tool.js.map +0 -1
  330. package/dist/server/provider.d.ts +0 -22
  331. package/dist/server/provider.d.ts.map +0 -1
  332. package/dist/server/provider.js +0 -194
  333. package/dist/server/provider.js.map +0 -1
  334. package/dist/similarity-search.d.ts +0 -163
  335. package/dist/similarity-search.d.ts.map +0 -1
  336. package/dist/similarity-search.js +0 -147
  337. package/dist/similarity-search.js.map +0 -1
  338. package/dist/sub-agent-run-store.d.ts +0 -157
  339. package/dist/sub-agent-run-store.d.ts.map +0 -1
  340. package/dist/sub-agent-run-store.js +0 -87
  341. package/dist/sub-agent-run-store.js.map +0 -1
  342. package/dist/tool-execution.d.ts +0 -16
  343. package/dist/tool-execution.d.ts.map +0 -1
  344. package/dist/tool-execution.js +0 -498
  345. package/dist/tool-execution.js.map +0 -1
  346. package/dist/tool-helpers.d.ts +0 -77
  347. package/dist/tool-helpers.d.ts.map +0 -1
  348. package/dist/tool-helpers.js +0 -117
  349. package/dist/tool-helpers.js.map +0 -1
  350. package/dist/tool.d.ts +0 -216
  351. package/dist/tool.d.ts.map +0 -1
  352. package/dist/tool.js +0 -175
  353. package/dist/tool.js.map +0 -1
  354. package/dist/transcription.d.ts +0 -42
  355. package/dist/transcription.d.ts.map +0 -1
  356. package/dist/transcription.js +0 -77
  357. package/dist/transcription.js.map +0 -1
  358. package/dist/types.d.ts +0 -1020
  359. package/dist/types.d.ts.map +0 -1
  360. package/dist/types.js +0 -2
  361. package/dist/types.js.map +0 -1
  362. package/dist/util/hash.d.ts +0 -11
  363. package/dist/util/hash.d.ts.map +0 -1
  364. package/dist/util/hash.js +0 -23
  365. package/dist/util/hash.js.map +0 -1
  366. package/dist/vector-stores/index.d.ts +0 -96
  367. package/dist/vector-stores/index.d.ts.map +0 -1
  368. package/dist/vector-stores/index.js +0 -153
  369. package/dist/vector-stores/index.js.map +0 -1
  370. package/dist/vercel-protocol.d.ts +0 -18
  371. package/dist/vercel-protocol.d.ts.map +0 -1
  372. package/dist/vercel-protocol.js +0 -75
  373. package/dist/vercel-protocol.js.map +0 -1
  374. package/dist/zod-to-json-schema.d.ts +0 -16
  375. package/dist/zod-to-json-schema.d.ts.map +0 -1
  376. package/dist/zod-to-json-schema.js +0 -17
  377. package/dist/zod-to-json-schema.js.map +0 -1
@@ -1,39 +0,0 @@
1
- import type { AiMiddleware, RemembersSpec } from './types.js';
2
- import type { UserMemoryLookup } from './memory.js';
3
- export interface MemoryInjectOptions {
4
- /**
5
- * Override the {@link UserMemory} lookup. Defaults to the module-level
6
- * `resolveUserMemory()` registry that `AiProvider` writes to from
7
- * `AiConfig.memory`. Tests pass a closure to inject a fake.
8
- */
9
- lookup?: UserMemoryLookup;
10
- /**
11
- * Approximate-tokens estimator used for `injectTokenBudget`. Defaults
12
- * to `Math.ceil(text.length / 4)` — fine for English-heavy facts; pass
13
- * a tiktoken-backed estimator if you need accuracy.
14
- */
15
- estimateTokens?: (text: string) => number;
16
- }
17
- /**
18
- * Pre-prompt {@link AiMiddleware} that consults a {@link UserMemory}, picks
19
- * facts relevant to the latest user input, and prepends them to the
20
- * agent's system message as a fenced `<user-memory>…</user-memory>`
21
- * block. Auto-installed by `Agent.prompt` / `Agent.stream` when
22
- * `Agent.remembers()` returns `{ inject: 'auto', … }`; can also be
23
- * dropped into `Agent.middleware()` manually.
24
- *
25
- * Runs in `onStart` (async) — `onConfig` is sync and `recall()` is not.
26
- * Mutates `ctx.messages[0]` (the system message) in place; the agent
27
- * loop's `messages` array is the same reference, so the model sees the
28
- * augmented prompt on the very next provider call.
29
- *
30
- * Skips silently when:
31
- * - no `UserMemory` is registered (lookup returns `undefined`)
32
- * - no user message exists in `ctx.messages` (continuation flow where
33
- * the trailing message is `tool` / `assistant`)
34
- * - `recall()` returns no facts
35
- * - the rendered block doesn't fit even one fact under
36
- * `spec.injectTokenBudget`
37
- */
38
- export declare function withMemoryInject(spec: RemembersSpec, opts?: MemoryInjectOptions): AiMiddleware;
39
- //# sourceMappingURL=memory-inject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-inject.d.ts","sourceRoot":"","sources":["../src/memory-inject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EAGZ,aAAa,EACd,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,MAAM,CAAC,EAAU,gBAAgB,CAAA;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,aAAa,EACnB,IAAI,GAAE,mBAAwB,GAC7B,YAAY,CA+Bd"}
@@ -1,135 +0,0 @@
1
- import { resolveUserMemory } from './agent.js';
2
- /**
3
- * Pre-prompt {@link AiMiddleware} that consults a {@link UserMemory}, picks
4
- * facts relevant to the latest user input, and prepends them to the
5
- * agent's system message as a fenced `<user-memory>…</user-memory>`
6
- * block. Auto-installed by `Agent.prompt` / `Agent.stream` when
7
- * `Agent.remembers()` returns `{ inject: 'auto', … }`; can also be
8
- * dropped into `Agent.middleware()` manually.
9
- *
10
- * Runs in `onStart` (async) — `onConfig` is sync and `recall()` is not.
11
- * Mutates `ctx.messages[0]` (the system message) in place; the agent
12
- * loop's `messages` array is the same reference, so the model sees the
13
- * augmented prompt on the very next provider call.
14
- *
15
- * Skips silently when:
16
- * - no `UserMemory` is registered (lookup returns `undefined`)
17
- * - no user message exists in `ctx.messages` (continuation flow where
18
- * the trailing message is `tool` / `assistant`)
19
- * - `recall()` returns no facts
20
- * - the rendered block doesn't fit even one fact under
21
- * `spec.injectTokenBudget`
22
- */
23
- export function withMemoryInject(spec, opts = {}) {
24
- const lookup = opts.lookup ?? resolveUserMemory;
25
- const estimate = opts.estimateTokens ?? defaultEstimateTokens;
26
- return {
27
- name: 'memory-inject',
28
- async onStart(ctx) {
29
- const userText = findLatestUserText(ctx.messages);
30
- if (!userText)
31
- return;
32
- const mem = lookup();
33
- if (!mem)
34
- return;
35
- const recallOpts = {};
36
- if (spec.injectLimit !== undefined)
37
- recallOpts.limit = spec.injectLimit;
38
- if (spec.tags !== undefined)
39
- recallOpts.tags = spec.tags;
40
- const facts = await mem.recall(spec.user, userText, recallOpts);
41
- if (facts.length === 0)
42
- return;
43
- const trimmed = applyTokenBudget(facts, spec.injectTokenBudget, estimate);
44
- if (trimmed.length === 0)
45
- return;
46
- const block = renderMemoryBlock(trimmed);
47
- const sys = ctx.messages[0];
48
- if (!sys || sys.role !== 'system')
49
- return;
50
- const original = systemContentToString(sys);
51
- ctx.messages[0] = { role: 'system', content: `${original}\n\n${block}` };
52
- },
53
- };
54
- }
55
- // ─── Helpers ──────────────────────────────────────────────
56
- function defaultEstimateTokens(text) {
57
- // ~4 chars/token works for English; gpt-tokenizer adds a runtime dep
58
- // we don't want to make mandatory just for a budget approximation.
59
- return Math.ceil(text.length / 4);
60
- }
61
- /**
62
- * Walk `messages` from the end and return the text of the most recent
63
- * `role: 'user'` entry. Returns `null` when:
64
- * - no user message exists (the loop is in a continuation flow where
65
- * `options.messages` was passed and ends with `tool`/`assistant`), or
66
- * - the user message has only non-text content parts.
67
- *
68
- * The rationale for "latest user" rather than "all user history": the
69
- * search query that maps best to recall accuracy is the user's current
70
- * request. Earlier turns already shaped the loaded conversation
71
- * history, which the persistence layer handles separately.
72
- */
73
- function findLatestUserText(messages) {
74
- for (let i = messages.length - 1; i >= 0; i--) {
75
- const m = messages[i];
76
- if (m && m.role === 'user') {
77
- const text = userContentToString(m);
78
- return text.length > 0 ? text : null;
79
- }
80
- }
81
- return null;
82
- }
83
- function userContentToString(m) {
84
- if (typeof m.content === 'string')
85
- return m.content;
86
- return contentPartsToString(m.content);
87
- }
88
- function systemContentToString(m) {
89
- if (typeof m.content === 'string')
90
- return m.content;
91
- return contentPartsToString(m.content);
92
- }
93
- function contentPartsToString(parts) {
94
- const out = [];
95
- for (const p of parts) {
96
- if (p.type === 'text' && typeof p.text === 'string')
97
- out.push(p.text);
98
- }
99
- return out.join('\n');
100
- }
101
- /**
102
- * If `budget` is set, sort facts by score descending (undefined scores
103
- * treated as 0.5 — neutral) and accumulate until the rendered block's
104
- * estimated tokens would exceed `budget`. Returns the accepted prefix.
105
- *
106
- * If `budget` is unset, returns `facts` unchanged.
107
- */
108
- function applyTokenBudget(facts, budget, estimate) {
109
- if (budget === undefined || budget <= 0)
110
- return facts;
111
- // Sort by score desc; undefined → 0.5 so user-asserted facts (no
112
- // score) tie with mid-confidence model-extracted facts.
113
- const sorted = [...facts].sort((a, b) => (b.score ?? 0.5) - (a.score ?? 0.5));
114
- // Render incrementally to account for the wrapper overhead.
115
- const accepted = [];
116
- for (const f of sorted) {
117
- const candidate = renderMemoryBlock([...accepted, f]);
118
- if (estimate(candidate) > budget)
119
- break;
120
- accepted.push(f);
121
- }
122
- return accepted;
123
- }
124
- /**
125
- * Render the prepended block. The fenced `<user-memory>` tag gives
126
- * downstream systems (telescope, evals, screenshots) a stable hook to
127
- * detect / strip injected memory, and signals the model that the
128
- * content is provided by the framework rather than written into the
129
- * agent's instructions.
130
- */
131
- function renderMemoryBlock(facts) {
132
- const lines = facts.map(f => `- ${f.fact}`);
133
- return `<user-memory>\n${lines.join('\n')}\n</user-memory>`;
134
- }
135
- //# sourceMappingURL=memory-inject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-inject.js","sourceRoot":"","sources":["../src/memory-inject.ts"],"names":[],"mappings":"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"}
package/dist/memory.d.ts DELETED
@@ -1,55 +0,0 @@
1
- import type { MemoryEntry, RemembersOverride, RemembersSpec, UserMemory } from './types.js';
2
- /**
3
- * In-process, Map-backed {@link UserMemory}. Ships in the runtime-agnostic
4
- * main entry — same pattern as {@link MemoryConversationStore}. Suitable
5
- * for tests and dev; production apps configure an ORM- or
6
- * embedding-backed store via `AiConfig.memory`.
7
- *
8
- * `recall()` uses case-insensitive **token-overlap** matching against
9
- * `fact + tags`: the query is tokenized on non-alphanumeric boundaries
10
- * and any fact sharing at least one token (≥3 chars) is returned. This
11
- * lets natural-language queries like "what is my project?" pull facts
12
- * containing "project" without forcing the caller to extract keywords.
13
- * Matches return in insertion order with no scoring (binary yes/no).
14
- * Tag filters apply before the token check — they intersect with the
15
- * entry's own tags.
16
- */
17
- export declare class MemoryUserMemory implements UserMemory {
18
- private readonly entries;
19
- remember(userId: string, fact: string, opts?: {
20
- tags?: string[];
21
- score?: number;
22
- }): Promise<MemoryEntry>;
23
- recall(userId: string, query: string, opts?: {
24
- limit?: number;
25
- tags?: string[];
26
- }): Promise<MemoryEntry[]>;
27
- forget(userId: string, factId: string): Promise<void>;
28
- list(userId: string, opts?: {
29
- tags?: string[];
30
- limit?: number;
31
- }): Promise<MemoryEntry[]>;
32
- forgetAll(userId: string): Promise<void>;
33
- private allForUser;
34
- }
35
- /**
36
- * Resolves the effective {@link RemembersSpec} for a single
37
- * `prompt()` / `stream()` call. Returns `null` when memory should be
38
- * skipped for this call.
39
- *
40
- * Precedence (high → low):
41
- * 1. Per-call `options.memory` — `false` opts out, a spec replaces the
42
- * agent's declaration.
43
- * 2. Agent's `remembers()` — supports sync OR async returns.
44
- *
45
- * Mirrors {@link resolveAutoPersistSpec} so Phase 2's auto-inject
46
- * middleware can drop in alongside the conversation-persistence flow.
47
- */
48
- export declare function resolveRemembersSpec(agentDecl: () => false | RemembersSpec | Promise<false | RemembersSpec>, perCall: RemembersOverride | undefined): Promise<RemembersSpec | null>;
49
- /**
50
- * Lookup signature used by Phase 2/3 middleware to find the registered
51
- * {@link UserMemory} without taking a hard dep on `agent.ts`. Wired to
52
- * `setUserMemory()` / `AiProvider`'s `ai.memory` DI binding.
53
- */
54
- export type UserMemoryLookup = () => UserMemory | null | undefined;
55
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAA;AAOnB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEnD,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAI,MAAM,EACd,IAAI,CAAC,EAAG;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,CAAC;IAajB,MAAM,CACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAG,MAAM,EACd,IAAI,CAAC,EAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,EAAE,CAAC;IAcnB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD,IAAI,CACR,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAG;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,WAAW,EAAE,CAAC;IAMnB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,OAAO,CAAC,UAAU;CAOnB;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,EACvE,OAAO,EAAI,iBAAiB,GAAG,SAAS,GACvC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAW/B;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,UAAU,GAAG,IAAI,GAAG,SAAS,CAAA"}
package/dist/memory.js DELETED
@@ -1,132 +0,0 @@
1
- function generateId() {
2
- if (typeof globalThis.crypto?.randomUUID === 'function')
3
- return globalThis.crypto.randomUUID();
4
- return `${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;
5
- }
6
- /**
7
- * In-process, Map-backed {@link UserMemory}. Ships in the runtime-agnostic
8
- * main entry — same pattern as {@link MemoryConversationStore}. Suitable
9
- * for tests and dev; production apps configure an ORM- or
10
- * embedding-backed store via `AiConfig.memory`.
11
- *
12
- * `recall()` uses case-insensitive **token-overlap** matching against
13
- * `fact + tags`: the query is tokenized on non-alphanumeric boundaries
14
- * and any fact sharing at least one token (≥3 chars) is returned. This
15
- * lets natural-language queries like "what is my project?" pull facts
16
- * containing "project" without forcing the caller to extract keywords.
17
- * Matches return in insertion order with no scoring (binary yes/no).
18
- * Tag filters apply before the token check — they intersect with the
19
- * entry's own tags.
20
- */
21
- export class MemoryUserMemory {
22
- entries = new Map();
23
- async remember(userId, fact, opts) {
24
- const entry = {
25
- id: generateId(),
26
- userId,
27
- fact,
28
- createdAt: new Date(),
29
- ...(opts?.tags !== undefined ? { tags: opts.tags } : {}),
30
- ...(opts?.score !== undefined ? { score: opts.score } : {}),
31
- };
32
- this.entries.set(entry.id, entry);
33
- return entry;
34
- }
35
- async recall(userId, query, opts) {
36
- const queryTokens = tokenize(query);
37
- const wanted = opts?.tags;
38
- const matches = this.allForUser(userId)
39
- .filter(e => matchesTags(e, wanted))
40
- .filter(e => {
41
- if (queryTokens.size === 0)
42
- return true;
43
- const factTokens = tokenize(`${e.fact} ${(e.tags ?? []).join(' ')}`);
44
- for (const t of factTokens)
45
- if (queryTokens.has(t))
46
- return true;
47
- return false;
48
- });
49
- return capLimit(matches, opts?.limit);
50
- }
51
- async forget(userId, factId) {
52
- const entry = this.entries.get(factId);
53
- if (entry && entry.userId === userId)
54
- this.entries.delete(factId);
55
- }
56
- async list(userId, opts) {
57
- const wanted = opts?.tags;
58
- const matches = this.allForUser(userId).filter(e => matchesTags(e, wanted));
59
- return capLimit(matches, opts?.limit);
60
- }
61
- async forgetAll(userId) {
62
- for (const [id, entry] of this.entries) {
63
- if (entry.userId === userId)
64
- this.entries.delete(id);
65
- }
66
- }
67
- allForUser(userId) {
68
- const out = [];
69
- for (const entry of this.entries.values()) {
70
- if (entry.userId === userId)
71
- out.push(entry);
72
- }
73
- return out;
74
- }
75
- }
76
- /**
77
- * Lowercase + split on non-alphanumeric, drop tokens shorter than 3
78
- * characters. Returns a Set so callers can do O(1) lookups when
79
- * intersecting query tokens against fact tokens.
80
- *
81
- * Stopword filtering deliberately omitted — the 3-char floor already
82
- * removes "is", "a", "to", "the", "we", etc. and a real stopword list
83
- * is locale-dependent. The token-overlap recall is meant as a
84
- * "smarter than substring" baseline, not a search engine.
85
- */
86
- function tokenize(s) {
87
- const out = new Set();
88
- for (const tok of s.toLowerCase().split(/[^a-z0-9]+/)) {
89
- if (tok.length >= 3)
90
- out.add(tok);
91
- }
92
- return out;
93
- }
94
- function matchesTags(entry, wanted) {
95
- if (!wanted || wanted.length === 0)
96
- return true;
97
- if (!entry.tags || entry.tags.length === 0)
98
- return false;
99
- return wanted.every(t => entry.tags.includes(t));
100
- }
101
- function capLimit(items, limit) {
102
- return limit !== undefined && limit > 0 ? items.slice(0, limit) : items;
103
- }
104
- /**
105
- * Resolves the effective {@link RemembersSpec} for a single
106
- * `prompt()` / `stream()` call. Returns `null` when memory should be
107
- * skipped for this call.
108
- *
109
- * Precedence (high → low):
110
- * 1. Per-call `options.memory` — `false` opts out, a spec replaces the
111
- * agent's declaration.
112
- * 2. Agent's `remembers()` — supports sync OR async returns.
113
- *
114
- * Mirrors {@link resolveAutoPersistSpec} so Phase 2's auto-inject
115
- * middleware can drop in alongside the conversation-persistence flow.
116
- */
117
- export async function resolveRemembersSpec(agentDecl, perCall) {
118
- if (perCall === false)
119
- return null;
120
- if (perCall && typeof perCall === 'object') {
121
- if (!perCall.user)
122
- return null;
123
- return perCall;
124
- }
125
- const declared = await agentDecl();
126
- if (declared === false || !declared)
127
- return null;
128
- if (!declared.user)
129
- return null;
130
- return declared;
131
- }
132
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { AiMiddleware, BeforeToolCallResult, MiddlewareConfigResult, MiddlewareContext, StreamChunk, TokenUsage } from './types.js';
2
- /** Run onConfig hooks — piped (each transforms config, next sees result) */
3
- export declare function runOnConfig(middlewares: AiMiddleware[], ctx: MiddlewareContext, config: MiddlewareConfigResult, phase: 'init' | 'beforeModel'): MiddlewareConfigResult;
4
- /** Run onChunk hooks — piped (each can transform or drop by returning null) */
5
- export declare function runOnChunk(middlewares: AiMiddleware[], ctx: MiddlewareContext, chunk: StreamChunk): StreamChunk | null;
6
- /** Run onBeforeToolCall hooks — first non-void result wins */
7
- export declare function runOnBeforeToolCall(middlewares: AiMiddleware[], ctx: MiddlewareContext, toolName: string, args: Record<string, unknown>): Promise<BeforeToolCallResult>;
8
- /** Run a sequential hook (onStart, onIteration, onAfterToolCall, etc.) */
9
- export declare function runSequential(middlewares: AiMiddleware[], hook: 'onStart' | 'onIteration' | 'onToolPhaseComplete' | 'onFinish', ctx: MiddlewareContext): Promise<void>;
10
- /** Run onAfterToolCall hooks sequentially */
11
- export declare function runOnAfterToolCall(middlewares: AiMiddleware[], ctx: MiddlewareContext, toolName: string, args: Record<string, unknown>, result: unknown): Promise<void>;
12
- /** Run onUsage hooks sequentially */
13
- export declare function runOnUsage(middlewares: AiMiddleware[], ctx: MiddlewareContext, usage: TokenUsage): Promise<void>;
14
- /** Run onAbort hooks sequentially */
15
- export declare function runOnAbort(middlewares: AiMiddleware[], ctx: MiddlewareContext, reason: string): Promise<void>;
16
- /** Run onError hooks sequentially */
17
- export declare function runOnError(middlewares: AiMiddleware[], ctx: MiddlewareContext, error: unknown): Promise<void>;
18
- //# sourceMappingURL=middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,4EAA4E;AAC5E,wBAAgB,WAAW,CACzB,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,MAAM,GAAG,aAAa,GAC5B,sBAAsB,CASxB;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,WAAW,GACjB,WAAW,GAAG,IAAI,CASpB;AAED,8DAA8D;AAC9D,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;AAED,0EAA0E;AAC1E,wBAAsB,aAAa,CACjC,WAAW,EAAE,YAAY,EAAE,EAC3B,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,qBAAqB,GAAG,UAAU,EACpE,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,6CAA6C;AAC7C,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAC9B,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAC9B,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,qCAAqC;AACrC,wBAAsB,UAAU,CAC9B,WAAW,EAAE,YAAY,EAAE,EAC3B,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -1,72 +0,0 @@
1
- /** Run onConfig hooks — piped (each transforms config, next sees result) */
2
- export function runOnConfig(middlewares, ctx, config, phase) {
3
- let result = config;
4
- for (const mw of middlewares) {
5
- if (mw.onConfig) {
6
- const transformed = mw.onConfig(ctx, result, phase);
7
- if (transformed)
8
- result = transformed;
9
- }
10
- }
11
- return result;
12
- }
13
- /** Run onChunk hooks — piped (each can transform or drop by returning null) */
14
- export function runOnChunk(middlewares, ctx, chunk) {
15
- let result = chunk;
16
- for (const mw of middlewares) {
17
- if (result === null)
18
- break;
19
- if (mw.onChunk) {
20
- result = mw.onChunk(ctx, result);
21
- }
22
- }
23
- return result;
24
- }
25
- /** Run onBeforeToolCall hooks — first non-void result wins */
26
- export async function runOnBeforeToolCall(middlewares, ctx, toolName, args) {
27
- for (const mw of middlewares) {
28
- if (mw.onBeforeToolCall) {
29
- const result = await mw.onBeforeToolCall(ctx, toolName, args);
30
- if (result !== undefined && result !== null)
31
- return result;
32
- }
33
- }
34
- return undefined;
35
- }
36
- /** Run a sequential hook (onStart, onIteration, onAfterToolCall, etc.) */
37
- export async function runSequential(middlewares, hook, ctx) {
38
- for (const mw of middlewares) {
39
- const fn = mw[hook];
40
- if (fn)
41
- await fn.call(mw, ctx);
42
- }
43
- }
44
- /** Run onAfterToolCall hooks sequentially */
45
- export async function runOnAfterToolCall(middlewares, ctx, toolName, args, result) {
46
- for (const mw of middlewares) {
47
- if (mw.onAfterToolCall)
48
- await mw.onAfterToolCall(ctx, toolName, args, result);
49
- }
50
- }
51
- /** Run onUsage hooks sequentially */
52
- export async function runOnUsage(middlewares, ctx, usage) {
53
- for (const mw of middlewares) {
54
- if (mw.onUsage)
55
- await mw.onUsage(ctx, usage);
56
- }
57
- }
58
- /** Run onAbort hooks sequentially */
59
- export async function runOnAbort(middlewares, ctx, reason) {
60
- for (const mw of middlewares) {
61
- if (mw.onAbort)
62
- await mw.onAbort(ctx, reason);
63
- }
64
- }
65
- /** Run onError hooks sequentially */
66
- export async function runOnError(middlewares, ctx, error) {
67
- for (const mw of middlewares) {
68
- if (mw.onError)
69
- await mw.onError(ctx, error);
70
- }
71
- }
72
- //# sourceMappingURL=middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { DocumentAttachment, ImageAttachment } from '../attachment.js';
2
- /** Load a DocumentAttachment from a local file path (Node-only). */
3
- export declare function documentFromPath(path: string): Promise<DocumentAttachment>;
4
- /** Load an ImageAttachment from a local file path (Node-only). */
5
- export declare function imageFromPath(path: string): Promise<ImageAttachment>;
6
- //# sourceMappingURL=attachment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/node/attachment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAuBtE,oEAAoE;AACpE,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAIhF;AAED,kEAAkE;AAClE,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAI1E"}
@@ -1,35 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { basename, extname } from 'node:path';
3
- import { DocumentAttachment, ImageAttachment } from '../attachment.js';
4
- const MIME_MAP = {
5
- '.png': 'image/png',
6
- '.jpg': 'image/jpeg',
7
- '.jpeg': 'image/jpeg',
8
- '.gif': 'image/gif',
9
- '.webp': 'image/webp',
10
- '.svg': 'image/svg+xml',
11
- '.pdf': 'application/pdf',
12
- '.txt': 'text/plain',
13
- '.md': 'text/markdown',
14
- '.json': 'application/json',
15
- '.csv': 'text/csv',
16
- '.html': 'text/html',
17
- '.xml': 'application/xml',
18
- };
19
- function mimeFromPath(path) {
20
- const ext = extname(path).toLowerCase();
21
- return MIME_MAP[ext] ?? 'application/octet-stream';
22
- }
23
- /** Load a DocumentAttachment from a local file path (Node-only). */
24
- export async function documentFromPath(path) {
25
- const buffer = await readFile(path);
26
- const base64 = buffer.toString('base64');
27
- return DocumentAttachment.fromBase64(base64, mimeFromPath(path), basename(path));
28
- }
29
- /** Load an ImageAttachment from a local file path (Node-only). */
30
- export async function imageFromPath(path) {
31
- const buffer = await readFile(path);
32
- const base64 = buffer.toString('base64');
33
- return ImageAttachment.fromBase64(base64, mimeFromPath(path));
34
- }
35
- //# sourceMappingURL=attachment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/node/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEtE,MAAM,QAAQ,GAA2B;IACvC,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,iBAAiB;CAC1B,CAAA;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAA;AACpD,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAClF,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/D,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Transcription } from '../transcription.js';
2
- /** Create a Transcription from a local file path (Node-only). */
3
- export declare function transcribeFromPath(path: string): Promise<Transcription>;
4
- //# sourceMappingURL=transcription.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcription.d.ts","sourceRoot":"","sources":["../../src/node/transcription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,iEAAiE;AACjE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAG7E"}
@@ -1,8 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { Transcription } from '../transcription.js';
3
- /** Create a Transcription from a local file path (Node-only). */
4
- export async function transcribeFromPath(path) {
5
- const buffer = await readFile(path);
6
- return Transcription.fromBytes(new Uint8Array(buffer));
7
- }
8
- //# sourceMappingURL=transcription.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcription.js","sourceRoot":"","sources":["../../src/node/transcription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,aAAa,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AACxD,CAAC"}
package/dist/output.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { z } from 'zod';
2
- export interface OutputWrapper<T = unknown> {
3
- type: 'object' | 'array' | 'choice';
4
- schema: z.ZodType<T>;
5
- parse(text: string): T;
6
- toSystemPrompt(): string;
7
- }
8
- export declare class Output {
9
- /** Structured object output with Zod schema */
10
- static object<T extends z.ZodRawShape>(opts: {
11
- schema: z.ZodObject<T>;
12
- }): OutputWrapper<z.infer<z.ZodObject<T>>>;
13
- /** Structured array output — each element validated by schema */
14
- static array<T extends z.ZodType>(opts: {
15
- element: T;
16
- }): OutputWrapper<z.infer<T>[]>;
17
- /** Classification — pick one of the provided options */
18
- static choice<T extends string>(opts: {
19
- options: readonly [T, ...T[]];
20
- }): OutputWrapper<T>;
21
- }
22
- //# sourceMappingURL=output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAA;IACtB,cAAc,IAAI,MAAM,CAAA;CACzB;AAED,qBAAa,MAAM;IACjB,+CAA+C;IAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAchH,iEAAiE;IACjE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAepF,wDAAwD;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;KAAE,GAAG,aAAa,CAAC,CAAC,CAAC;CAa3F"}