@cogitator-ai/core 0.19.1 → 0.19.2

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 (331) hide show
  1. package/README.md +42 -30
  2. package/dist/agent-tool.d.ts +2 -2
  3. package/dist/agent-tool.d.ts.map +1 -1
  4. package/dist/agent-tool.js +3 -2
  5. package/dist/agent-tool.js.map +1 -1
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +4 -2
  8. package/dist/agent.js.map +1 -1
  9. package/dist/cache/cache-key.d.ts.map +1 -1
  10. package/dist/cache/cache-key.js +3 -0
  11. package/dist/cache/cache-key.js.map +1 -1
  12. package/dist/cache/index.d.ts +5 -5
  13. package/dist/cache/index.js +4 -4
  14. package/dist/cache/storage/index.d.ts +3 -3
  15. package/dist/cache/storage/index.js +2 -2
  16. package/dist/cache/storage/memory.js +1 -1
  17. package/dist/cache/storage/redis.js +1 -1
  18. package/dist/cache/tool-cache.d.ts.map +1 -1
  19. package/dist/cache/tool-cache.js +14 -7
  20. package/dist/cache/tool-cache.js.map +1 -1
  21. package/dist/causal/capabilities/causal-explainer.js +2 -2
  22. package/dist/causal/capabilities/causal-planner.js +1 -1
  23. package/dist/causal/causal-reasoner.d.ts +4 -4
  24. package/dist/causal/causal-reasoner.d.ts.map +1 -1
  25. package/dist/causal/causal-reasoner.js +17 -13
  26. package/dist/causal/causal-reasoner.js.map +1 -1
  27. package/dist/causal/discovery/causal-extractor.js +1 -1
  28. package/dist/causal/discovery/causal-validator.js +1 -1
  29. package/dist/causal/discovery/hypothesis-generator.js +1 -1
  30. package/dist/causal/discovery/prompts.d.ts.map +1 -1
  31. package/dist/causal/discovery/prompts.js +44 -10
  32. package/dist/causal/discovery/prompts.js.map +1 -1
  33. package/dist/causal/graph/causal-graph.d.ts.map +1 -1
  34. package/dist/causal/graph/causal-graph.js +3 -3
  35. package/dist/causal/graph/causal-graph.js.map +1 -1
  36. package/dist/causal/graph/graph-builder.js +1 -1
  37. package/dist/causal/index.d.ts +27 -27
  38. package/dist/causal/index.js +17 -17
  39. package/dist/causal/inference/adjustment.js +1 -1
  40. package/dist/causal/inference/d-separation.d.ts.map +1 -1
  41. package/dist/causal/inference/d-separation.js +1 -3
  42. package/dist/causal/inference/d-separation.js.map +1 -1
  43. package/dist/causal/inference/inference-engine.d.ts +2 -1
  44. package/dist/causal/inference/inference-engine.d.ts.map +1 -1
  45. package/dist/causal/inference/inference-engine.js +55 -10
  46. package/dist/causal/inference/inference-engine.js.map +1 -1
  47. package/dist/causal/stores/causal-graph-store.d.ts.map +1 -1
  48. package/dist/causal/stores/causal-graph-store.js +33 -3
  49. package/dist/causal/stores/causal-graph-store.js.map +1 -1
  50. package/dist/causal/stores/causal-pattern-store.d.ts.map +1 -1
  51. package/dist/causal/stores/causal-pattern-store.js +13 -4
  52. package/dist/causal/stores/causal-pattern-store.js.map +1 -1
  53. package/dist/causal/stores/intervention-log.d.ts.map +1 -1
  54. package/dist/causal/stores/intervention-log.js +17 -3
  55. package/dist/causal/stores/intervention-log.js.map +1 -1
  56. package/dist/cogitator/index.d.ts +5 -5
  57. package/dist/cogitator/index.js +5 -5
  58. package/dist/cogitator/initializers.d.ts +6 -6
  59. package/dist/cogitator/initializers.js +6 -6
  60. package/dist/cogitator/message-builder.d.ts +2 -2
  61. package/dist/cogitator/message-builder.js +1 -1
  62. package/dist/cogitator/streaming.d.ts +3 -3
  63. package/dist/cogitator/streaming.d.ts.map +1 -1
  64. package/dist/cogitator/streaming.js +13 -1
  65. package/dist/cogitator/streaming.js.map +1 -1
  66. package/dist/cogitator/tool-executor.d.ts +3 -3
  67. package/dist/cogitator/tool-executor.d.ts.map +1 -1
  68. package/dist/cogitator/tool-executor.js +5 -4
  69. package/dist/cogitator/tool-executor.js.map +1 -1
  70. package/dist/cogitator.d.ts +1 -1
  71. package/dist/cogitator.js +1 -1
  72. package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
  73. package/dist/constitutional/constitutional-ai.js +17 -9
  74. package/dist/constitutional/constitutional-ai.js.map +1 -1
  75. package/dist/constitutional/critique-reviser.js +2 -2
  76. package/dist/constitutional/index.d.ts +12 -12
  77. package/dist/constitutional/index.js +7 -7
  78. package/dist/constitutional/input-filter.d.ts.map +1 -1
  79. package/dist/constitutional/input-filter.js +12 -2
  80. package/dist/constitutional/input-filter.js.map +1 -1
  81. package/dist/constitutional/output-filter.d.ts.map +1 -1
  82. package/dist/constitutional/output-filter.js +12 -2
  83. package/dist/constitutional/output-filter.js.map +1 -1
  84. package/dist/context/context-manager.js +3 -3
  85. package/dist/context/context-manager.js.map +1 -1
  86. package/dist/context/index.d.ts +3 -3
  87. package/dist/context/index.js +2 -2
  88. package/dist/context/strategies/hybrid.js +4 -4
  89. package/dist/context/strategies/index.d.ts +5 -5
  90. package/dist/context/strategies/index.js +5 -5
  91. package/dist/context/strategies/sliding-window.js +1 -1
  92. package/dist/context/strategies/summarize.js +1 -1
  93. package/dist/context/strategies/truncate.d.ts +3 -0
  94. package/dist/context/strategies/truncate.d.ts.map +1 -1
  95. package/dist/context/strategies/truncate.js +61 -1
  96. package/dist/context/strategies/truncate.js.map +1 -1
  97. package/dist/cost-routing/budget-enforcer.d.ts +1 -1
  98. package/dist/cost-routing/cost-estimator.d.ts +1 -1
  99. package/dist/cost-routing/cost-estimator.js +3 -3
  100. package/dist/cost-routing/cost-router.d.ts +1 -1
  101. package/dist/cost-routing/cost-router.js +4 -4
  102. package/dist/cost-routing/index.d.ts +7 -7
  103. package/dist/cost-routing/index.js +7 -7
  104. package/dist/cost-routing/model-selector.d.ts.map +1 -1
  105. package/dist/cost-routing/model-selector.js +2 -0
  106. package/dist/cost-routing/model-selector.js.map +1 -1
  107. package/dist/cost-routing/task-analyzer.d.ts.map +1 -1
  108. package/dist/cost-routing/task-analyzer.js +14 -7
  109. package/dist/cost-routing/task-analyzer.js.map +1 -1
  110. package/dist/index.d.ts +41 -41
  111. package/dist/index.js +24 -24
  112. package/dist/learning/ab-testing.d.ts.map +1 -1
  113. package/dist/learning/ab-testing.js +1 -2
  114. package/dist/learning/ab-testing.js.map +1 -1
  115. package/dist/learning/agent-optimizer.d.ts +5 -3
  116. package/dist/learning/agent-optimizer.d.ts.map +1 -1
  117. package/dist/learning/agent-optimizer.js +43 -15
  118. package/dist/learning/agent-optimizer.js.map +1 -1
  119. package/dist/learning/auto-optimizer.d.ts +4 -4
  120. package/dist/learning/auto-optimizer.d.ts.map +1 -1
  121. package/dist/learning/auto-optimizer.js +3 -0
  122. package/dist/learning/auto-optimizer.js.map +1 -1
  123. package/dist/learning/demo-selector.d.ts +1 -0
  124. package/dist/learning/demo-selector.d.ts.map +1 -1
  125. package/dist/learning/demo-selector.js +20 -11
  126. package/dist/learning/demo-selector.js.map +1 -1
  127. package/dist/learning/index.d.ts +23 -23
  128. package/dist/learning/index.js +12 -12
  129. package/dist/learning/instruction-optimizer.js +1 -1
  130. package/dist/learning/metrics.d.ts.map +1 -1
  131. package/dist/learning/metrics.js +4 -1
  132. package/dist/learning/metrics.js.map +1 -1
  133. package/dist/learning/postgres-trace-store.js +4 -1
  134. package/dist/learning/postgres-trace-store.js.map +1 -1
  135. package/dist/learning/prompt-logger.d.ts +3 -2
  136. package/dist/learning/prompt-logger.d.ts.map +1 -1
  137. package/dist/learning/prompt-logger.js +11 -3
  138. package/dist/learning/prompt-logger.js.map +1 -1
  139. package/dist/learning/prompt-monitor.js +2 -2
  140. package/dist/learning/prompt-monitor.js.map +1 -1
  141. package/dist/learning/prompts.d.ts.map +1 -1
  142. package/dist/learning/prompts.js +2 -1
  143. package/dist/learning/prompts.js.map +1 -1
  144. package/dist/learning/trace-store.d.ts +2 -0
  145. package/dist/learning/trace-store.d.ts.map +1 -1
  146. package/dist/learning/trace-store.js +25 -11
  147. package/dist/learning/trace-store.js.map +1 -1
  148. package/dist/llm/anthropic.d.ts +2 -1
  149. package/dist/llm/anthropic.d.ts.map +1 -1
  150. package/dist/llm/anthropic.js +29 -8
  151. package/dist/llm/anthropic.js.map +1 -1
  152. package/dist/llm/azure.d.ts +1 -1
  153. package/dist/llm/azure.js +1 -1
  154. package/dist/llm/bedrock.d.ts +1 -1
  155. package/dist/llm/bedrock.d.ts.map +1 -1
  156. package/dist/llm/bedrock.js +24 -8
  157. package/dist/llm/bedrock.js.map +1 -1
  158. package/dist/llm/debug.d.ts +1 -0
  159. package/dist/llm/debug.d.ts.map +1 -1
  160. package/dist/llm/debug.js +35 -11
  161. package/dist/llm/debug.js.map +1 -1
  162. package/dist/llm/google.d.ts +1 -1
  163. package/dist/llm/google.d.ts.map +1 -1
  164. package/dist/llm/google.js +18 -4
  165. package/dist/llm/google.js.map +1 -1
  166. package/dist/llm/index.d.ts +11 -11
  167. package/dist/llm/index.d.ts.map +1 -1
  168. package/dist/llm/index.js +49 -19
  169. package/dist/llm/index.js.map +1 -1
  170. package/dist/llm/ollama.d.ts +1 -1
  171. package/dist/llm/ollama.d.ts.map +1 -1
  172. package/dist/llm/ollama.js +12 -10
  173. package/dist/llm/ollama.js.map +1 -1
  174. package/dist/llm/openai-compatible-base.d.ts +2 -2
  175. package/dist/llm/openai-compatible-base.d.ts.map +1 -1
  176. package/dist/llm/openai-compatible-base.js +12 -6
  177. package/dist/llm/openai-compatible-base.js.map +1 -1
  178. package/dist/llm/openai.d.ts +4 -2
  179. package/dist/llm/openai.d.ts.map +1 -1
  180. package/dist/llm/openai.js +3 -2
  181. package/dist/llm/openai.js.map +1 -1
  182. package/dist/observability/index.d.ts +2 -2
  183. package/dist/observability/index.js +2 -2
  184. package/dist/observability/langfuse.d.ts +3 -0
  185. package/dist/observability/langfuse.d.ts.map +1 -1
  186. package/dist/observability/langfuse.js +24 -1
  187. package/dist/observability/langfuse.js.map +1 -1
  188. package/dist/observability/opentelemetry.d.ts +1 -0
  189. package/dist/observability/opentelemetry.d.ts.map +1 -1
  190. package/dist/observability/opentelemetry.js +5 -0
  191. package/dist/observability/opentelemetry.js.map +1 -1
  192. package/dist/reasoning/branch-evaluator.d.ts +1 -1
  193. package/dist/reasoning/branch-evaluator.d.ts.map +1 -1
  194. package/dist/reasoning/branch-evaluator.js +9 -4
  195. package/dist/reasoning/branch-evaluator.js.map +1 -1
  196. package/dist/reasoning/branch-generator.js +1 -1
  197. package/dist/reasoning/index.d.ts +4 -4
  198. package/dist/reasoning/index.js +4 -4
  199. package/dist/reasoning/prompts.d.ts.map +1 -1
  200. package/dist/reasoning/prompts.js +13 -0
  201. package/dist/reasoning/prompts.js.map +1 -1
  202. package/dist/reasoning/thought-tree.d.ts +1 -1
  203. package/dist/reasoning/thought-tree.js +3 -3
  204. package/dist/reflection/index.d.ts +3 -3
  205. package/dist/reflection/index.js +3 -3
  206. package/dist/reflection/reflection-engine.d.ts.map +1 -1
  207. package/dist/reflection/reflection-engine.js +10 -4
  208. package/dist/reflection/reflection-engine.js.map +1 -1
  209. package/dist/registry.js +1 -1
  210. package/dist/runtime.d.ts +5 -5
  211. package/dist/runtime.d.ts.map +1 -1
  212. package/dist/runtime.js +69 -20
  213. package/dist/runtime.js.map +1 -1
  214. package/dist/security/classifiers/index.d.ts +2 -2
  215. package/dist/security/classifiers/index.js +2 -2
  216. package/dist/security/classifiers/local-classifier.d.ts.map +1 -1
  217. package/dist/security/classifiers/local-classifier.js +3 -1
  218. package/dist/security/classifiers/local-classifier.js.map +1 -1
  219. package/dist/security/index.d.ts +4 -4
  220. package/dist/security/index.js +3 -3
  221. package/dist/security/patterns.d.ts.map +1 -1
  222. package/dist/security/patterns.js +2 -0
  223. package/dist/security/patterns.js.map +1 -1
  224. package/dist/security/prompt-injection-detector.js +2 -2
  225. package/dist/skill.d.ts.map +1 -1
  226. package/dist/skill.js +3 -0
  227. package/dist/skill.js.map +1 -1
  228. package/dist/time-travel/checkpoint-store.d.ts +3 -0
  229. package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
  230. package/dist/time-travel/checkpoint-store.js +33 -14
  231. package/dist/time-travel/checkpoint-store.js.map +1 -1
  232. package/dist/time-travel/comparator.d.ts.map +1 -1
  233. package/dist/time-travel/comparator.js +7 -1
  234. package/dist/time-travel/comparator.js.map +1 -1
  235. package/dist/time-travel/forker.d.ts +3 -3
  236. package/dist/time-travel/index.d.ts +5 -5
  237. package/dist/time-travel/index.js +5 -5
  238. package/dist/time-travel/replayer.d.ts +2 -2
  239. package/dist/time-travel/time-travel.d.ts +2 -2
  240. package/dist/time-travel/time-travel.d.ts.map +1 -1
  241. package/dist/time-travel/time-travel.js +8 -5
  242. package/dist/time-travel/time-travel.js.map +1 -1
  243. package/dist/tools/audio-generate.d.ts.map +1 -1
  244. package/dist/tools/audio-generate.js +33 -16
  245. package/dist/tools/audio-generate.js.map +1 -1
  246. package/dist/tools/audio-transcribe.d.ts.map +1 -1
  247. package/dist/tools/audio-transcribe.js +26 -9
  248. package/dist/tools/audio-transcribe.js.map +1 -1
  249. package/dist/tools/base64.d.ts +4 -4
  250. package/dist/tools/base64.d.ts.map +1 -1
  251. package/dist/tools/base64.js +22 -7
  252. package/dist/tools/base64.js.map +1 -1
  253. package/dist/tools/calculator.d.ts.map +1 -1
  254. package/dist/tools/calculator.js +13 -2
  255. package/dist/tools/calculator.js.map +1 -1
  256. package/dist/tools/capabilities-tool.js +1 -1
  257. package/dist/tools/datetime.js +1 -1
  258. package/dist/tools/device-tools.js +1 -1
  259. package/dist/tools/email.d.ts.map +1 -1
  260. package/dist/tools/email.js +39 -11
  261. package/dist/tools/email.js.map +1 -1
  262. package/dist/tools/exec.d.ts +9 -9
  263. package/dist/tools/exec.d.ts.map +1 -1
  264. package/dist/tools/exec.js +16 -3
  265. package/dist/tools/exec.js.map +1 -1
  266. package/dist/tools/filesystem.js +1 -1
  267. package/dist/tools/github.d.ts.map +1 -1
  268. package/dist/tools/github.js +29 -21
  269. package/dist/tools/github.js.map +1 -1
  270. package/dist/tools/hash.js +1 -1
  271. package/dist/tools/http.d.ts.map +1 -1
  272. package/dist/tools/http.js +9 -8
  273. package/dist/tools/http.js.map +1 -1
  274. package/dist/tools/image-analyze.js +1 -1
  275. package/dist/tools/image-generate.d.ts.map +1 -1
  276. package/dist/tools/image-generate.js +35 -18
  277. package/dist/tools/image-generate.js.map +1 -1
  278. package/dist/tools/index.d.ts +58 -47
  279. package/dist/tools/index.d.ts.map +1 -1
  280. package/dist/tools/index.js +45 -45
  281. package/dist/tools/json.js +1 -1
  282. package/dist/tools/memory-tools.d.ts +14 -0
  283. package/dist/tools/memory-tools.d.ts.map +1 -1
  284. package/dist/tools/memory-tools.js +19 -6
  285. package/dist/tools/memory-tools.js.map +1 -1
  286. package/dist/tools/random.d.ts +7 -1
  287. package/dist/tools/random.d.ts.map +1 -1
  288. package/dist/tools/random.js +11 -4
  289. package/dist/tools/random.js.map +1 -1
  290. package/dist/tools/regex.d.ts.map +1 -1
  291. package/dist/tools/regex.js +4 -1
  292. package/dist/tools/regex.js.map +1 -1
  293. package/dist/tools/scheduler-tools.js +2 -2
  294. package/dist/tools/self-tools.js +1 -1
  295. package/dist/tools/sleep.d.ts +5 -0
  296. package/dist/tools/sleep.d.ts.map +1 -1
  297. package/dist/tools/sleep.js +20 -3
  298. package/dist/tools/sleep.js.map +1 -1
  299. package/dist/tools/sql-query.d.ts.map +1 -1
  300. package/dist/tools/sql-query.js +148 -13
  301. package/dist/tools/sql-query.js.map +1 -1
  302. package/dist/tools/uuid.js +1 -1
  303. package/dist/tools/vector-search.d.ts.map +1 -1
  304. package/dist/tools/vector-search.js +79 -59
  305. package/dist/tools/vector-search.js.map +1 -1
  306. package/dist/tools/web-scrape.d.ts.map +1 -1
  307. package/dist/tools/web-scrape.js +9 -8
  308. package/dist/tools/web-scrape.js.map +1 -1
  309. package/dist/tools/web-search.d.ts.map +1 -1
  310. package/dist/tools/web-search.js +32 -14
  311. package/dist/tools/web-search.js.map +1 -1
  312. package/dist/utils/abort.d.ts +9 -0
  313. package/dist/utils/abort.d.ts.map +1 -0
  314. package/dist/utils/abort.js +43 -0
  315. package/dist/utils/abort.js.map +1 -0
  316. package/dist/utils/audio-fetch.d.ts +5 -1
  317. package/dist/utils/audio-fetch.d.ts.map +1 -1
  318. package/dist/utils/audio-fetch.js +13 -6
  319. package/dist/utils/audio-fetch.js.map +1 -1
  320. package/dist/utils/fallback.d.ts +2 -2
  321. package/dist/utils/fallback.js +1 -1
  322. package/dist/utils/image-fetch.d.ts +4 -0
  323. package/dist/utils/image-fetch.d.ts.map +1 -1
  324. package/dist/utils/image-fetch.js +13 -6
  325. package/dist/utils/image-fetch.js.map +1 -1
  326. package/dist/utils/index.d.ts +5 -5
  327. package/dist/utils/index.js +5 -5
  328. package/dist/utils/retry.d.ts.map +1 -1
  329. package/dist/utils/retry.js +3 -0
  330. package/dist/utils/retry.js.map +1 -1
  331. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkJD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;EAmDpB,CAAC"}
1
+ {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyLD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;EAuEpB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
- import { tool } from '../tool';
2
+ import { tool } from '../tool.js';
3
+ import { createLinkedAbortController, getAbortErrorMessage } from '../utils/abort.js';
4
+ const SEARCH_TIMEOUT_MS = 30_000;
3
5
  const webSearchParams = z.object({
4
6
  query: z.string().min(1).describe('Search query'),
5
7
  provider: z
@@ -22,8 +24,24 @@ const webSearchParams = z.object({
22
24
  .optional()
23
25
  .describe('Include AI-generated answer summary (Tavily only, default: false)'),
24
26
  });
25
- async function searchTavily(query, maxResults, searchDepth, includeAnswer, apiKey) {
26
- const response = await fetch('https://api.tavily.com/search', {
27
+ async function fetchSearch(provider, url, init, signal) {
28
+ const abort = createLinkedAbortController(signal, SEARCH_TIMEOUT_MS);
29
+ try {
30
+ return await fetch(url, { ...init, signal: abort.signal });
31
+ }
32
+ catch (err) {
33
+ const error = err;
34
+ if (error.name === 'AbortError') {
35
+ throw new Error(getAbortErrorMessage(`${provider} search`, abort, SEARCH_TIMEOUT_MS));
36
+ }
37
+ throw err;
38
+ }
39
+ finally {
40
+ abort.cleanup();
41
+ }
42
+ }
43
+ async function searchTavily(query, maxResults, searchDepth, includeAnswer, apiKey, signal) {
44
+ const response = await fetchSearch('Tavily', 'https://api.tavily.com/search', {
27
45
  method: 'POST',
28
46
  headers: {
29
47
  'Content-Type': 'application/json',
@@ -35,7 +53,7 @@ async function searchTavily(query, maxResults, searchDepth, includeAnswer, apiKe
35
53
  search_depth: searchDepth,
36
54
  include_answer: includeAnswer,
37
55
  }),
38
- });
56
+ }, signal);
39
57
  if (!response.ok) {
40
58
  const text = await response.text();
41
59
  throw new Error(`Tavily API error: ${response.status} ${text}`);
@@ -53,17 +71,17 @@ async function searchTavily(query, maxResults, searchDepth, includeAnswer, apiKe
53
71
  answer: data.answer,
54
72
  };
55
73
  }
56
- async function searchBrave(query, maxResults, apiKey) {
74
+ async function searchBrave(query, maxResults, apiKey, signal) {
57
75
  const params = new URLSearchParams({
58
76
  q: query,
59
77
  count: maxResults.toString(),
60
78
  });
61
- const response = await fetch(`https://api.search.brave.com/res/v1/web/search?${params}`, {
79
+ const response = await fetchSearch('Brave Search', `https://api.search.brave.com/res/v1/web/search?${params}`, {
62
80
  headers: {
63
81
  Accept: 'application/json',
64
82
  'X-Subscription-Token': apiKey,
65
83
  },
66
- });
84
+ }, signal);
67
85
  if (!response.ok) {
68
86
  const text = await response.text();
69
87
  throw new Error(`Brave Search API error: ${response.status} ${text}`);
@@ -79,8 +97,8 @@ async function searchBrave(query, maxResults, apiKey) {
79
97
  })),
80
98
  };
81
99
  }
82
- async function searchSerper(query, maxResults, apiKey) {
83
- const response = await fetch('https://google.serper.dev/search', {
100
+ async function searchSerper(query, maxResults, apiKey, signal) {
101
+ const response = await fetchSearch('Serper', 'https://google.serper.dev/search', {
84
102
  method: 'POST',
85
103
  headers: {
86
104
  'Content-Type': 'application/json',
@@ -90,7 +108,7 @@ async function searchSerper(query, maxResults, apiKey) {
90
108
  q: query,
91
109
  num: maxResults,
92
110
  }),
93
- });
111
+ }, signal);
94
112
  if (!response.ok) {
95
113
  const text = await response.text();
96
114
  throw new Error(`Serper API error: ${response.status} ${text}`);
@@ -135,7 +153,7 @@ export const webSearch = tool({
135
153
  parameters: webSearchParams,
136
154
  category: 'web',
137
155
  tags: ['search', 'web', 'internet'],
138
- execute: async ({ query, provider: requestedProvider, maxResults = 5, searchDepth = 'basic', includeAnswer = false, }) => {
156
+ execute: async ({ query, provider: requestedProvider, maxResults = 5, searchDepth = 'basic', includeAnswer = false, }, context) => {
139
157
  let provider;
140
158
  let apiKey;
141
159
  if (requestedProvider) {
@@ -161,11 +179,11 @@ export const webSearch = tool({
161
179
  try {
162
180
  switch (provider) {
163
181
  case 'tavily':
164
- return await searchTavily(query, maxResults, searchDepth, includeAnswer, apiKey);
182
+ return await searchTavily(query, maxResults, searchDepth, includeAnswer, apiKey, context?.signal ?? new AbortController().signal);
165
183
  case 'brave':
166
- return await searchBrave(query, maxResults, apiKey);
184
+ return await searchBrave(query, maxResults, apiKey, context?.signal ?? new AbortController().signal);
167
185
  case 'serper':
168
- return await searchSerper(query, maxResults, apiKey);
186
+ return await searchSerper(query, maxResults, apiKey, context?.signal ?? new AbortController().signal);
169
187
  }
170
188
  }
171
189
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACjD,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SACnC,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;CACjF,CAAC,CAAC;AAgBH,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,UAAkB,EAClB,WAAiC,EACjC,aAAsB,EACtB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+BAA+B,EAAE;QAC5D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,MAAM;YACf,KAAK;YACL,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,aAAa;SAC9B,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,UAAkB,EAClB,MAAc;IAEd,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,CAAC,EAAE,KAAK;QACR,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kDAAkD,MAAM,EAAE,EAAE;QACvF,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,sBAAsB,EAAE,MAAM;SAC/B;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,OAAO,EAAE,CAAC,CAAC,WAAW;SACvB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAa,EACb,UAAkB,EAClB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,kCAAkC,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM;SACpB;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,CAAC,EAAE,KAAK;YACR,GAAG,EAAE,UAAU;SAChB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,IAAI;YACX,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,IAAI,KAAK;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEvD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,QAAuC;IACxD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC;QAC3C,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,mMAAmM;IACrM,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC;IACnC,OAAO,EAAE,KAAK,EAAE,EACd,KAAK,EACL,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,GAAG,CAAC,EACd,WAAW,GAAG,OAAO,EACrB,aAAa,GAAG,KAAK,GACtB,EAAE,EAAE;QACH,IAAI,QAAuC,CAAC;QAC5C,IAAI,MAAc,CAAC;QAEnB,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;oBACL,KAAK,EAAE,yBAAyB,iBAAiB,SAAS,iBAAiB,CAAC,WAAW,EAAE,gCAAgC;iBAC1H,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,iBAAiB,CAAC;YAC7B,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,KAAK,EACH,uFAAuF;iBAC1F,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC7B,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,QAAQ;oBACX,OAAO,MAAM,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;gBACnF,KAAK,OAAO;oBACV,OAAO,MAAM,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBACtD,KAAK,QAAQ;oBACX,OAAO,MAAM,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface LinkedAbortController {
2
+ signal: AbortSignal;
3
+ readonly timedOut: boolean;
4
+ readonly parentAborted: boolean;
5
+ cleanup(): void;
6
+ }
7
+ export declare function createLinkedAbortController(parentSignal?: AbortSignal, timeoutMs?: number): LinkedAbortController;
8
+ export declare function getAbortErrorMessage(action: string, controls: LinkedAbortController, timeoutMs?: number): string;
9
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/utils/abort.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,2BAA2B,CACzC,YAAY,CAAC,EAAE,WAAW,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,qBAAqB,CAuCvB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAKR"}
@@ -0,0 +1,43 @@
1
+ export function createLinkedAbortController(parentSignal, timeoutMs) {
2
+ const controller = new AbortController();
3
+ let timedOut = false;
4
+ let parentAborted = false;
5
+ const abortFromParent = () => {
6
+ parentAborted = true;
7
+ controller.abort(parentSignal?.reason);
8
+ };
9
+ if (parentSignal?.aborted) {
10
+ abortFromParent();
11
+ }
12
+ else {
13
+ parentSignal?.addEventListener('abort', abortFromParent, { once: true });
14
+ }
15
+ const timeoutId = timeoutMs === undefined
16
+ ? undefined
17
+ : setTimeout(() => {
18
+ timedOut = true;
19
+ controller.abort();
20
+ }, timeoutMs);
21
+ return {
22
+ signal: controller.signal,
23
+ get timedOut() {
24
+ return timedOut;
25
+ },
26
+ get parentAborted() {
27
+ return parentAborted;
28
+ },
29
+ cleanup() {
30
+ if (timeoutId) {
31
+ clearTimeout(timeoutId);
32
+ }
33
+ parentSignal?.removeEventListener('abort', abortFromParent);
34
+ },
35
+ };
36
+ }
37
+ export function getAbortErrorMessage(action, controls, timeoutMs) {
38
+ if ((controls.timedOut || !controls.parentAborted) && timeoutMs !== undefined) {
39
+ return `${action} timed out after ${timeoutMs}ms`;
40
+ }
41
+ return `${action} aborted`;
42
+ }
43
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../src/utils/abort.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,2BAA2B,CACzC,YAA0B,EAC1B,SAAkB;IAElB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,aAAa,GAAG,IAAI,CAAC;QACrB,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;QAC1B,eAAe,EAAE,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GACb,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,EAAE,SAAS,CAAC,CAAC;IAEpB,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,aAAa;YACf,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO;YACL,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YACD,YAAY,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,QAA+B,EAC/B,SAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,GAAG,MAAM,oBAAoB,SAAS,IAAI,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,MAAM,UAAU,CAAC;AAC7B,CAAC"}
@@ -6,8 +6,12 @@ export interface FetchedAudio {
6
6
  }
7
7
  export declare function fetchAudioAsBuffer(url: string, options?: {
8
8
  timeout?: number;
9
+ signal?: AbortSignal;
9
10
  }): Promise<FetchedAudio>;
10
- export declare function audioInputToBuffer(input: AudioInput): Promise<{
11
+ export declare function audioInputToBuffer(input: AudioInput, options?: {
12
+ timeout?: number;
13
+ signal?: AbortSignal;
14
+ }): Promise<{
11
15
  buffer: Buffer;
12
16
  filename: string;
13
17
  format: AudioFormat;
@@ -1 +1 @@
1
- {"version":3,"file":"audio-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/audio-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+CD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAqBpE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAExE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAa5D"}
1
+ {"version":3,"file":"audio-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/audio-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGnE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+CD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,YAAY,CAAC,CAkCvB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAqBpE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAExE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAa5D"}
@@ -1,3 +1,4 @@
1
+ import { createLinkedAbortController, getAbortErrorMessage } from './abort.js';
1
2
  const AUDIO_MIME_TYPES = {
2
3
  'audio/mpeg': 'mp3',
3
4
  'audio/mp3': 'mp3',
@@ -40,11 +41,10 @@ function detectAudioFormat(contentType, url) {
40
41
  }
41
42
  export async function fetchAudioAsBuffer(url, options) {
42
43
  const timeout = options?.timeout ?? 60000;
43
- const controller = new AbortController();
44
- const timeoutId = setTimeout(() => controller.abort(), timeout);
44
+ const abort = createLinkedAbortController(options?.signal, timeout);
45
45
  try {
46
46
  const response = await fetch(url, {
47
- signal: controller.signal,
47
+ signal: abort.signal,
48
48
  headers: { Accept: 'audio/*' },
49
49
  });
50
50
  if (!response.ok) {
@@ -58,11 +58,18 @@ export async function fetchAudioAsBuffer(url, options) {
58
58
  }
59
59
  return { buffer, format, filename: `audio.${format}` };
60
60
  }
61
+ catch (err) {
62
+ const error = err;
63
+ if (error.name === 'AbortError') {
64
+ throw new Error(getAbortErrorMessage('Audio fetch', abort, timeout));
65
+ }
66
+ throw err;
67
+ }
61
68
  finally {
62
- clearTimeout(timeoutId);
69
+ abort.cleanup();
63
70
  }
64
71
  }
65
- export async function audioInputToBuffer(input) {
72
+ export async function audioInputToBuffer(input, options) {
66
73
  if (typeof input === 'string') {
67
74
  if (input.startsWith('data:audio/')) {
68
75
  const match = /^data:audio\/([^;]+);base64,(.+)$/.exec(input);
@@ -75,7 +82,7 @@ export async function audioInputToBuffer(input) {
75
82
  return { buffer, format, filename: `audio.${format}` };
76
83
  }
77
84
  }
78
- return fetchAudioAsBuffer(input);
85
+ return fetchAudioAsBuffer(input, options);
79
86
  }
80
87
  const buffer = Buffer.from(input.data, 'base64');
81
88
  if (buffer.length > MAX_FILE_SIZE) {
@@ -1 +1 @@
1
- {"version":3,"file":"audio-fetch.js","sourceRoot":"","sources":["../../src/utils/audio-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio-fetch.js","sourceRoot":"","sources":["../../src/utils/audio-fetch.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Fallback utilities for graceful degradation
3
3
  */
4
- import { type CircuitBreakerRegistry } from './circuit-breaker';
5
- import { type RetryOptions } from './retry';
4
+ import { type CircuitBreakerRegistry } from './circuit-breaker.js';
5
+ import { type RetryOptions } from './retry.js';
6
6
  /**
7
7
  * Fallback chain configuration
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * Fallback utilities for graceful degradation
3
3
  */
4
4
  import { CogitatorError, ErrorCode } from '@cogitator-ai/types';
5
- import { withRetry } from './retry';
5
+ import { withRetry } from './retry.js';
6
6
  /**
7
7
  * Execute with fallback chain
8
8
  *
@@ -6,11 +6,15 @@ export interface FetchedImage {
6
6
  }
7
7
  export declare function fetchImageAsBase64(url: string, options?: {
8
8
  timeout?: number;
9
+ signal?: AbortSignal;
9
10
  }): Promise<FetchedImage>;
10
11
  export declare function isDataUrl(url: string): boolean;
11
12
  export declare function parseDataUrl(dataUrl: string): FetchedImage | null;
12
13
  export declare function resolveImage(imageSource: string | {
13
14
  data: string;
14
15
  mimeType: string;
16
+ }, options?: {
17
+ timeout?: number;
18
+ signal?: AbortSignal;
15
19
  }): Promise<FetchedImage>;
16
20
  //# sourceMappingURL=image-fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/image-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;CAC3B;AAuBD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,YAAY,CAAC,CA4BvB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQjE;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,YAAY,CAAC,CAevB"}
1
+ {"version":3,"file":"image-fetch.d.ts","sourceRoot":"","sources":["../../src/utils/image-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC;AAElF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;CAC3B;AAuBD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,YAAY,CAAC,CAgCvB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQjE;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACnD,OAAO,CAAC,YAAY,CAAC,CAevB"}
@@ -1,3 +1,4 @@
1
+ import { createLinkedAbortController, getAbortErrorMessage } from './abort.js';
1
2
  const SUPPORTED_MEDIA_TYPES = new Set([
2
3
  'image/jpeg',
3
4
  'image/png',
@@ -17,11 +18,10 @@ function normalizeMediaType(contentType) {
17
18
  }
18
19
  export async function fetchImageAsBase64(url, options) {
19
20
  const timeout = options?.timeout ?? 30000;
20
- const controller = new AbortController();
21
- const timeoutId = setTimeout(() => controller.abort(), timeout);
21
+ const abort = createLinkedAbortController(options?.signal, timeout);
22
22
  try {
23
23
  const response = await fetch(url, {
24
- signal: controller.signal,
24
+ signal: abort.signal,
25
25
  headers: {
26
26
  Accept: 'image/*',
27
27
  },
@@ -35,8 +35,15 @@ export async function fetchImageAsBase64(url, options) {
35
35
  const data = Buffer.from(buffer).toString('base64');
36
36
  return { data, mediaType };
37
37
  }
38
+ catch (err) {
39
+ const error = err;
40
+ if (error.name === 'AbortError') {
41
+ throw new Error(getAbortErrorMessage('Image fetch', abort, timeout));
42
+ }
43
+ throw err;
44
+ }
38
45
  finally {
39
- clearTimeout(timeoutId);
46
+ abort.cleanup();
40
47
  }
41
48
  }
42
49
  export function isDataUrl(url) {
@@ -50,7 +57,7 @@ export function parseDataUrl(dataUrl) {
50
57
  const mediaType = normalizeMediaType(contentType);
51
58
  return { data, mediaType };
52
59
  }
53
- export async function resolveImage(imageSource) {
60
+ export async function resolveImage(imageSource, options) {
54
61
  if (typeof imageSource !== 'string') {
55
62
  return {
56
63
  data: imageSource.data,
@@ -63,6 +70,6 @@ export async function resolveImage(imageSource) {
63
70
  return parsed;
64
71
  throw new Error('Invalid data URL format');
65
72
  }
66
- return fetchImageAsBase64(imageSource);
73
+ return fetchImageAsBase64(imageSource, options);
67
74
  }
68
75
  //# sourceMappingURL=image-fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-fetch.js","sourceRoot":"","sources":["../../src/utils/image-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image-fetch.js","sourceRoot":"","sources":["../../src/utils/image-fetch.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export * from './retry';
2
- export * from './circuit-breaker';
3
- export * from './fallback';
4
- export * from './image-fetch';
5
- export * from './audio-fetch';
1
+ export * from './retry.js';
2
+ export * from './circuit-breaker.js';
3
+ export * from './fallback.js';
4
+ export * from './image-fetch.js';
5
+ export * from './audio-fetch.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
- export * from './retry';
2
- export * from './circuit-breaker';
3
- export * from './fallback';
4
- export * from './image-fetch';
5
- export * from './audio-fetch';
1
+ export * from './retry.js';
2
+ export * from './circuit-breaker.js';
3
+ export * from './fallback.js';
4
+ export * from './image-fetch.js';
5
+ export * from './audio-fetch.js';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAoED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CA0C/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC9C,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,YAAiB,GACzB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE5B"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,oCAAoC;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAoED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CA8C/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAC9C,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,OAAO,GAAE,YAAiB,GACzB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE5B"}
@@ -74,6 +74,9 @@ export async function withRetry(fn, options = {}) {
74
74
  const opts = { ...DEFAULT_OPTIONS, ...options };
75
75
  let lastError;
76
76
  for (let attempt = 1; attempt <= opts.maxRetries + 1; attempt++) {
77
+ if (opts.signal?.aborted) {
78
+ throw new Error('Retry aborted');
79
+ }
77
80
  try {
78
81
  return await fn();
79
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogitator-ai/core",
3
- "version": "0.19.1",
3
+ "version": "0.19.2",
4
4
  "description": "Core runtime for Cogitator AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",