kagent-ts 0.1.3 → 0.1.5

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 (349) hide show
  1. package/LICENSE +68 -21
  2. package/README.md +27 -371
  3. package/dist/compression/progressive-compressor.d.ts +66 -0
  4. package/dist/compression/progressive-compressor.d.ts.map +1 -0
  5. package/dist/compression/progressive-compressor.js +367 -0
  6. package/dist/compression/progressive-compressor.js.map +1 -0
  7. package/dist/compression/types.d.ts +1 -5
  8. package/dist/compression/types.d.ts.map +1 -1
  9. package/dist/context/context-manager.d.ts +34 -15
  10. package/dist/context/context-manager.d.ts.map +1 -1
  11. package/dist/context/context-manager.js +78 -28
  12. package/dist/context/context-manager.js.map +1 -1
  13. package/dist/context/types.d.ts +20 -4
  14. package/dist/context/types.d.ts.map +1 -1
  15. package/dist/core/agent.d.ts +407 -35
  16. package/dist/core/agent.d.ts.map +1 -1
  17. package/dist/core/agent.js +685 -70
  18. package/dist/core/agent.js.map +1 -1
  19. package/dist/core/fusion-agent.d.ts +207 -0
  20. package/dist/core/fusion-agent.d.ts.map +1 -0
  21. package/dist/core/fusion-agent.js +769 -0
  22. package/dist/core/fusion-agent.js.map +1 -0
  23. package/dist/core/hooks.d.ts +19 -7
  24. package/dist/core/hooks.d.ts.map +1 -1
  25. package/dist/core/plan-solve-agent.d.ts +1 -15
  26. package/dist/core/plan-solve-agent.d.ts.map +1 -1
  27. package/dist/core/plan-solve-agent.js +144 -117
  28. package/dist/core/plan-solve-agent.js.map +1 -1
  29. package/dist/core/react-agent.d.ts +0 -13
  30. package/dist/core/react-agent.d.ts.map +1 -1
  31. package/dist/core/react-agent.js +128 -101
  32. package/dist/core/react-agent.js.map +1 -1
  33. package/dist/core/response-schema.d.ts +65 -0
  34. package/dist/core/response-schema.d.ts.map +1 -1
  35. package/dist/core/response-schema.js +174 -1
  36. package/dist/core/response-schema.js.map +1 -1
  37. package/dist/core/system-prompts.d.ts +27 -0
  38. package/dist/core/system-prompts.d.ts.map +1 -0
  39. package/dist/core/system-prompts.js +112 -0
  40. package/dist/core/system-prompts.js.map +1 -0
  41. package/dist/eval/benchmark.d.ts +81 -0
  42. package/dist/eval/benchmark.d.ts.map +1 -0
  43. package/dist/eval/benchmark.js +292 -0
  44. package/dist/eval/benchmark.js.map +1 -0
  45. package/dist/eval/eval-runner.d.ts +79 -0
  46. package/dist/eval/eval-runner.d.ts.map +1 -0
  47. package/dist/eval/eval-runner.js +252 -0
  48. package/dist/eval/eval-runner.js.map +1 -0
  49. package/dist/eval/index.d.ts +7 -0
  50. package/dist/eval/index.d.ts.map +1 -0
  51. package/dist/eval/index.js +13 -0
  52. package/dist/eval/index.js.map +1 -0
  53. package/dist/eval/tool-call-evaluator.d.ts +72 -0
  54. package/dist/eval/tool-call-evaluator.d.ts.map +1 -0
  55. package/dist/eval/tool-call-evaluator.js +265 -0
  56. package/dist/eval/tool-call-evaluator.js.map +1 -0
  57. package/dist/eval/types.d.ts +219 -0
  58. package/dist/eval/types.d.ts.map +1 -0
  59. package/dist/eval/types.js +3 -0
  60. package/dist/eval/types.js.map +1 -0
  61. package/dist/index.d.ts +61 -14
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +121 -8
  64. package/dist/index.js.map +1 -1
  65. package/dist/llm/anthropic-provider.d.ts +141 -0
  66. package/dist/llm/anthropic-provider.d.ts.map +1 -0
  67. package/dist/llm/anthropic-provider.js +486 -0
  68. package/dist/llm/anthropic-provider.js.map +1 -0
  69. package/dist/llm/errors.d.ts +26 -0
  70. package/dist/llm/errors.d.ts.map +1 -0
  71. package/dist/llm/errors.js +19 -0
  72. package/dist/llm/errors.js.map +1 -0
  73. package/dist/llm/factory.d.ts +73 -0
  74. package/dist/llm/factory.d.ts.map +1 -0
  75. package/dist/llm/factory.js +77 -0
  76. package/dist/llm/factory.js.map +1 -0
  77. package/dist/llm/fallback-provider.d.ts +47 -0
  78. package/dist/llm/fallback-provider.d.ts.map +1 -0
  79. package/dist/llm/fallback-provider.js +91 -0
  80. package/dist/llm/fallback-provider.js.map +1 -0
  81. package/dist/llm/interface.d.ts +54 -11
  82. package/dist/llm/interface.d.ts.map +1 -1
  83. package/dist/llm/interface.js +34 -0
  84. package/dist/llm/interface.js.map +1 -1
  85. package/dist/llm/model-router.d.ts +126 -0
  86. package/dist/llm/model-router.d.ts.map +1 -0
  87. package/dist/llm/model-router.js +178 -0
  88. package/dist/llm/model-router.js.map +1 -0
  89. package/dist/llm/openai-provider.d.ts +8 -32
  90. package/dist/llm/openai-provider.d.ts.map +1 -1
  91. package/dist/llm/openai-provider.js +27 -60
  92. package/dist/llm/openai-provider.js.map +1 -1
  93. package/dist/llm/rate-limiter.d.ts +41 -0
  94. package/dist/llm/rate-limiter.d.ts.map +1 -0
  95. package/dist/llm/rate-limiter.js +93 -0
  96. package/dist/llm/rate-limiter.js.map +1 -0
  97. package/dist/llm/retry.d.ts +26 -0
  98. package/dist/llm/retry.d.ts.map +1 -0
  99. package/dist/llm/retry.js +44 -0
  100. package/dist/llm/retry.js.map +1 -0
  101. package/dist/llm/token-budget.d.ts +97 -0
  102. package/dist/llm/token-budget.d.ts.map +1 -0
  103. package/dist/llm/token-budget.js +115 -0
  104. package/dist/llm/token-budget.js.map +1 -0
  105. package/dist/logging/index.d.ts +2 -0
  106. package/dist/logging/index.d.ts.map +1 -0
  107. package/dist/logging/index.js +7 -0
  108. package/dist/logging/index.js.map +1 -0
  109. package/dist/logging/logger.d.ts +38 -0
  110. package/dist/logging/logger.d.ts.map +1 -0
  111. package/dist/logging/logger.js +34 -0
  112. package/dist/logging/logger.js.map +1 -0
  113. package/dist/mcp/index.d.ts +4 -0
  114. package/dist/mcp/index.d.ts.map +1 -0
  115. package/dist/mcp/index.js +8 -0
  116. package/dist/mcp/index.js.map +1 -0
  117. package/dist/mcp/mcp-client-manager.d.ts +72 -0
  118. package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
  119. package/dist/mcp/mcp-client-manager.js +235 -0
  120. package/dist/mcp/mcp-client-manager.js.map +1 -0
  121. package/dist/mcp/mcp-types.d.ts +58 -0
  122. package/dist/mcp/mcp-types.d.ts.map +1 -0
  123. package/dist/mcp/mcp-types.js +20 -0
  124. package/dist/mcp/mcp-types.js.map +1 -0
  125. package/dist/memory/index.d.ts +3 -0
  126. package/dist/memory/index.d.ts.map +1 -0
  127. package/dist/memory/index.js +6 -0
  128. package/dist/memory/index.js.map +1 -0
  129. package/dist/memory/memory-manager.d.ts +119 -0
  130. package/dist/memory/memory-manager.d.ts.map +1 -0
  131. package/dist/memory/memory-manager.js +334 -0
  132. package/dist/memory/memory-manager.js.map +1 -0
  133. package/dist/messages/types.d.ts +2 -0
  134. package/dist/messages/types.d.ts.map +1 -1
  135. package/dist/orchestrator/index.d.ts +5 -0
  136. package/dist/orchestrator/index.d.ts.map +1 -0
  137. package/dist/orchestrator/index.js +13 -0
  138. package/dist/orchestrator/index.js.map +1 -0
  139. package/dist/orchestrator/json-extractor.d.ts +18 -0
  140. package/dist/orchestrator/json-extractor.d.ts.map +1 -0
  141. package/dist/orchestrator/json-extractor.js +111 -0
  142. package/dist/orchestrator/json-extractor.js.map +1 -0
  143. package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
  144. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
  145. package/dist/orchestrator/orchestrator-agent.js +675 -0
  146. package/dist/orchestrator/orchestrator-agent.js.map +1 -0
  147. package/dist/orchestrator/orchestrator-response.d.ts +40 -0
  148. package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
  149. package/dist/orchestrator/orchestrator-response.js +275 -0
  150. package/dist/orchestrator/orchestrator-response.js.map +1 -0
  151. package/dist/orchestrator/orchestrator-types.d.ts +116 -0
  152. package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
  153. package/dist/orchestrator/orchestrator-types.js +3 -0
  154. package/dist/orchestrator/orchestrator-types.js.map +1 -0
  155. package/dist/preferences/preference-manager.d.ts +8 -3
  156. package/dist/preferences/preference-manager.d.ts.map +1 -1
  157. package/dist/preferences/preference-manager.js +17 -4
  158. package/dist/preferences/preference-manager.js.map +1 -1
  159. package/dist/rag/chroma-store.d.ts +52 -0
  160. package/dist/rag/chroma-store.d.ts.map +1 -0
  161. package/dist/rag/chroma-store.js +110 -0
  162. package/dist/rag/chroma-store.js.map +1 -0
  163. package/dist/rag/document-loader.d.ts +21 -0
  164. package/dist/rag/document-loader.d.ts.map +1 -0
  165. package/dist/rag/document-loader.js +129 -0
  166. package/dist/rag/document-loader.js.map +1 -0
  167. package/dist/rag/embedding-provider.d.ts +36 -0
  168. package/dist/rag/embedding-provider.d.ts.map +1 -0
  169. package/dist/rag/embedding-provider.js +74 -0
  170. package/dist/rag/embedding-provider.js.map +1 -0
  171. package/dist/rag/index.d.ts +17 -0
  172. package/dist/rag/index.d.ts.map +1 -0
  173. package/dist/rag/index.js +27 -0
  174. package/dist/rag/index.js.map +1 -0
  175. package/dist/rag/keyword-index.d.ts +53 -0
  176. package/dist/rag/keyword-index.d.ts.map +1 -0
  177. package/dist/rag/keyword-index.js +161 -0
  178. package/dist/rag/keyword-index.js.map +1 -0
  179. package/dist/rag/llm-reranker.d.ts +36 -0
  180. package/dist/rag/llm-reranker.d.ts.map +1 -0
  181. package/dist/rag/llm-reranker.js +95 -0
  182. package/dist/rag/llm-reranker.js.map +1 -0
  183. package/dist/rag/rag-manager.d.ts +54 -0
  184. package/dist/rag/rag-manager.d.ts.map +1 -0
  185. package/dist/rag/rag-manager.js +179 -0
  186. package/dist/rag/rag-manager.js.map +1 -0
  187. package/dist/rag/rag-types.d.ts +143 -0
  188. package/dist/rag/rag-types.d.ts.map +1 -0
  189. package/dist/rag/rag-types.js +9 -0
  190. package/dist/rag/rag-types.js.map +1 -0
  191. package/dist/rag/rrf.d.ts +47 -0
  192. package/dist/rag/rrf.d.ts.map +1 -0
  193. package/dist/rag/rrf.js +70 -0
  194. package/dist/rag/rrf.js.map +1 -0
  195. package/dist/rag/search-knowledge.d.ts +24 -0
  196. package/dist/rag/search-knowledge.d.ts.map +1 -0
  197. package/dist/rag/search-knowledge.js +86 -0
  198. package/dist/rag/search-knowledge.js.map +1 -0
  199. package/dist/rag/text-splitter.d.ts +25 -0
  200. package/dist/rag/text-splitter.d.ts.map +1 -0
  201. package/dist/rag/text-splitter.js +136 -0
  202. package/dist/rag/text-splitter.js.map +1 -0
  203. package/dist/rag/vector-store.d.ts +34 -0
  204. package/dist/rag/vector-store.d.ts.map +1 -0
  205. package/dist/rag/vector-store.js +73 -0
  206. package/dist/rag/vector-store.js.map +1 -0
  207. package/dist/reflection/error-notebook.d.ts +125 -0
  208. package/dist/reflection/error-notebook.d.ts.map +1 -0
  209. package/dist/reflection/error-notebook.js +368 -0
  210. package/dist/reflection/error-notebook.js.map +1 -0
  211. package/dist/reflection/index.d.ts +8 -0
  212. package/dist/reflection/index.d.ts.map +1 -0
  213. package/dist/reflection/index.js +12 -0
  214. package/dist/reflection/index.js.map +1 -0
  215. package/dist/reflection/memory-reflector.d.ts +97 -0
  216. package/dist/reflection/memory-reflector.d.ts.map +1 -0
  217. package/dist/reflection/memory-reflector.js +215 -0
  218. package/dist/reflection/memory-reflector.js.map +1 -0
  219. package/dist/reflection/reflection-agent.d.ts +105 -0
  220. package/dist/reflection/reflection-agent.d.ts.map +1 -0
  221. package/dist/reflection/reflection-agent.js +234 -0
  222. package/dist/reflection/reflection-agent.js.map +1 -0
  223. package/dist/reflection/reflection-hook.d.ts +50 -0
  224. package/dist/reflection/reflection-hook.d.ts.map +1 -0
  225. package/dist/reflection/reflection-hook.js +108 -0
  226. package/dist/reflection/reflection-hook.js.map +1 -0
  227. package/dist/rules/project-rules.d.ts +47 -0
  228. package/dist/rules/project-rules.d.ts.map +1 -0
  229. package/dist/rules/project-rules.js +166 -0
  230. package/dist/rules/project-rules.js.map +1 -0
  231. package/dist/security/boundaries.d.ts +81 -0
  232. package/dist/security/boundaries.d.ts.map +1 -0
  233. package/dist/security/boundaries.js +158 -0
  234. package/dist/security/boundaries.js.map +1 -0
  235. package/dist/security/index.d.ts +2 -0
  236. package/dist/security/index.d.ts.map +1 -0
  237. package/dist/security/index.js +11 -0
  238. package/dist/security/index.js.map +1 -0
  239. package/dist/session/session-types.d.ts +25 -4
  240. package/dist/session/session-types.d.ts.map +1 -1
  241. package/dist/skills/file-skill-loader.d.ts +9 -20
  242. package/dist/skills/file-skill-loader.d.ts.map +1 -1
  243. package/dist/skills/file-skill-loader.js +35 -164
  244. package/dist/skills/file-skill-loader.js.map +1 -1
  245. package/dist/skills/index.d.ts +1 -1
  246. package/dist/skills/index.d.ts.map +1 -1
  247. package/dist/skills/index.js +1 -2
  248. package/dist/skills/index.js.map +1 -1
  249. package/dist/skills/skill-manager.d.ts +22 -29
  250. package/dist/skills/skill-manager.d.ts.map +1 -1
  251. package/dist/skills/skill-manager.js +63 -85
  252. package/dist/skills/skill-manager.js.map +1 -1
  253. package/dist/skills/types.d.ts +4 -16
  254. package/dist/skills/types.d.ts.map +1 -1
  255. package/dist/subagent/index.d.ts +4 -0
  256. package/dist/subagent/index.d.ts.map +1 -0
  257. package/dist/subagent/index.js +8 -0
  258. package/dist/subagent/index.js.map +1 -0
  259. package/dist/subagent/subagent-loader.d.ts +53 -0
  260. package/dist/subagent/subagent-loader.d.ts.map +1 -0
  261. package/dist/subagent/subagent-loader.js +155 -0
  262. package/dist/subagent/subagent-loader.js.map +1 -0
  263. package/dist/subagent/subagent-manager.d.ts +161 -0
  264. package/dist/subagent/subagent-manager.d.ts.map +1 -0
  265. package/dist/subagent/subagent-manager.js +468 -0
  266. package/dist/subagent/subagent-manager.js.map +1 -0
  267. package/dist/subagent/subagent-types.d.ts +77 -0
  268. package/dist/subagent/subagent-types.d.ts.map +1 -0
  269. package/dist/subagent/subagent-types.js +3 -0
  270. package/dist/subagent/subagent-types.js.map +1 -0
  271. package/dist/tools/builtin/bash.d.ts +3 -0
  272. package/dist/tools/builtin/bash.d.ts.map +1 -0
  273. package/dist/tools/builtin/bash.js +87 -0
  274. package/dist/tools/builtin/bash.js.map +1 -0
  275. package/dist/tools/builtin/edit-file.d.ts.map +1 -1
  276. package/dist/tools/builtin/edit-file.js +1 -0
  277. package/dist/tools/builtin/edit-file.js.map +1 -1
  278. package/dist/tools/builtin/index.d.ts +14 -0
  279. package/dist/tools/builtin/index.d.ts.map +1 -1
  280. package/dist/tools/builtin/index.js +45 -1
  281. package/dist/tools/builtin/index.js.map +1 -1
  282. package/dist/tools/builtin/list-errors.d.ts +7 -0
  283. package/dist/tools/builtin/list-errors.d.ts.map +1 -0
  284. package/dist/tools/builtin/list-errors.js +64 -0
  285. package/dist/tools/builtin/list-errors.js.map +1 -0
  286. package/dist/tools/builtin/list-subagents.d.ts +7 -0
  287. package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
  288. package/dist/tools/builtin/list-subagents.js +21 -0
  289. package/dist/tools/builtin/list-subagents.js.map +1 -0
  290. package/dist/tools/builtin/recall.d.ts +11 -0
  291. package/dist/tools/builtin/recall.d.ts.map +1 -0
  292. package/dist/tools/builtin/recall.js +60 -0
  293. package/dist/tools/builtin/recall.js.map +1 -0
  294. package/dist/tools/builtin/remember.d.ts +12 -0
  295. package/dist/tools/builtin/remember.d.ts.map +1 -0
  296. package/dist/tools/builtin/remember.js +72 -0
  297. package/dist/tools/builtin/remember.js.map +1 -0
  298. package/dist/tools/builtin/skill.d.ts +14 -0
  299. package/dist/tools/builtin/skill.d.ts.map +1 -0
  300. package/dist/tools/builtin/skill.js +71 -0
  301. package/dist/tools/builtin/skill.js.map +1 -0
  302. package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
  303. package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
  304. package/dist/tools/builtin/spawn-subagent.js +43 -0
  305. package/dist/tools/builtin/spawn-subagent.js.map +1 -0
  306. package/dist/tools/builtin/web-fetch.d.ts +3 -0
  307. package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
  308. package/dist/tools/builtin/web-fetch.js +101 -0
  309. package/dist/tools/builtin/web-fetch.js.map +1 -0
  310. package/dist/tools/builtin/write-file.d.ts.map +1 -1
  311. package/dist/tools/builtin/write-file.js +1 -0
  312. package/dist/tools/builtin/write-file.js.map +1 -1
  313. package/dist/tools/circuit-breaker.d.ts +19 -10
  314. package/dist/tools/circuit-breaker.d.ts.map +1 -1
  315. package/dist/tools/circuit-breaker.js +22 -11
  316. package/dist/tools/circuit-breaker.js.map +1 -1
  317. package/dist/tools/error-tracker.d.ts +28 -44
  318. package/dist/tools/error-tracker.d.ts.map +1 -1
  319. package/dist/tools/error-tracker.js +39 -156
  320. package/dist/tools/error-tracker.js.map +1 -1
  321. package/dist/tools/tool-filter.d.ts +70 -0
  322. package/dist/tools/tool-filter.d.ts.map +1 -0
  323. package/dist/tools/tool-filter.js +92 -0
  324. package/dist/tools/tool-filter.js.map +1 -0
  325. package/dist/tools/tool-output-truncator.d.ts +36 -0
  326. package/dist/tools/tool-output-truncator.d.ts.map +1 -0
  327. package/dist/tools/tool-output-truncator.js +117 -0
  328. package/dist/tools/tool-output-truncator.js.map +1 -0
  329. package/dist/tools/tool-registry.d.ts +25 -9
  330. package/dist/tools/tool-registry.d.ts.map +1 -1
  331. package/dist/tools/tool-registry.js +77 -28
  332. package/dist/tools/tool-registry.js.map +1 -1
  333. package/dist/tools/tool-validator.d.ts +13 -0
  334. package/dist/tools/tool-validator.d.ts.map +1 -0
  335. package/dist/tools/tool-validator.js +116 -0
  336. package/dist/tools/tool-validator.js.map +1 -0
  337. package/dist/tools/types.d.ts +86 -3
  338. package/dist/tools/types.d.ts.map +1 -1
  339. package/dist/tools/types.js +51 -2
  340. package/dist/tools/types.js.map +1 -1
  341. package/dist/trace/trace-logger.d.ts +30 -4
  342. package/dist/trace/trace-logger.d.ts.map +1 -1
  343. package/dist/trace/trace-logger.js +83 -7
  344. package/dist/trace/trace-logger.js.map +1 -1
  345. package/package.json +14 -4
  346. package/dist/compression/sliding-window.d.ts +0 -21
  347. package/dist/compression/sliding-window.d.ts.map +0 -1
  348. package/dist/compression/sliding-window.js +0 -44
  349. package/dist/compression/sliding-window.js.map +0 -1
@@ -1,51 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.ToolErrorTracker = void 0;
37
4
  exports.categorizeError = categorizeError;
38
- /**
39
- * ToolErrorTracker — records the complete lifecycle of tool failures
40
- * and persists them as structured documents for developer review.
41
- *
42
- * Each "trace" captures one error chain: first failure → retries →
43
- * LLM analysis → resolution or circuit-open. Traces are stored as
44
- * individual JSON files in a designated directory (.error-traces/)
45
- * so developers can inspect, aggregate, and learn from them.
46
- */
47
- const fs = __importStar(require("fs"));
48
- const path = __importStar(require("path"));
49
5
  /**
50
6
  * Generates a short unique trace ID.
51
7
  */
@@ -85,7 +41,7 @@ function sanitizeArgs(args) {
85
41
  return sanitized;
86
42
  }
87
43
  /**
88
- * Limit error message length to avoid huge trace files.
44
+ * Limit error message length to avoid huge trace objects.
89
45
  */
90
46
  function truncateError(error, maxLen = 500) {
91
47
  if (error.length <= maxLen)
@@ -125,12 +81,13 @@ function categorizeError(error) {
125
81
  return "unknown";
126
82
  }
127
83
  /**
128
- * ToolErrorTracker records the complete lifecycle of tool failures.
84
+ * ToolErrorTracker records the lifecycle of tool failures in memory
85
+ * for the duration of a session.
129
86
  *
130
87
  * Usage:
131
88
  * ```ts
132
- * const tracker = new ToolErrorTracker({ storageDir: ".error-traces" });
133
- * const registry = new ToolRegistry({ errorTracker: tracker });
89
+ * const tracker = new ToolErrorTracker();
90
+ * const registry = new ToolRegistry(2, tracker);
134
91
  * ```
135
92
  *
136
93
  * Lifecycle of a trace:
@@ -140,18 +97,12 @@ function categorizeError(error) {
140
97
  * 4. Recovery → `recordRecovery()` marks the trace as resolved
141
98
  * 5. Circuit open → `recordFailure()` marks the trace as unresolved
142
99
  *
143
- * All traces are persisted as individual JSON files in the storage
144
- * directory, plus an index file for quick browsing.
100
+ * For cross-session persistence and LLM-powered error diagnosis,
101
+ * use {@link import('../reflection/error-notebook').ErrorNotebook}.
145
102
  */
146
103
  class ToolErrorTracker {
147
104
  traces = new Map();
148
105
  activeTraceByTool = new Map();
149
- storageDir;
150
- persistImmediately;
151
- constructor(config) {
152
- this.storageDir = config?.storageDir ?? ".error-traces";
153
- this.persistImmediately = config?.persistImmediately ?? true;
154
- }
155
106
  // ─── Event Recording ────────────────────────────────────────────────────
156
107
  /**
157
108
  * Record a tool execution failure.
@@ -163,17 +114,15 @@ class ToolErrorTracker {
163
114
  *
164
115
  * @returns The trace ID for the chain this failure belongs to.
165
116
  */
166
- recordFailure(toolName, args, error, retriesRemaining) {
117
+ recordFailure(toolName, args, error, retriesRemaining, breakerState) {
167
118
  const existingTraceId = this.activeTraceByTool.get(toolName);
168
119
  let trace;
169
120
  if (existingTraceId) {
170
- // Append to existing trace
171
121
  const existing = this.traces.get(existingTraceId);
172
122
  if (existing && !existing.resolved) {
173
123
  trace = existing;
174
124
  }
175
125
  else {
176
- // Existing trace is resolved/closed — start a new one
177
126
  trace = this.createTrace(toolName, args);
178
127
  }
179
128
  }
@@ -181,8 +130,13 @@ class ToolErrorTracker {
181
130
  trace = this.createTrace(toolName, args);
182
131
  }
183
132
  const attemptNumber = trace.events.filter((e) => e.type === "failure" || e.type === "retry").length + 1;
133
+ const eventType = retriesRemaining > 0
134
+ ? "failure"
135
+ : breakerState === "half_open"
136
+ ? "circuit_half_open"
137
+ : "circuit_open";
184
138
  const event = {
185
- type: retriesRemaining > 0 ? "failure" : "circuit_open",
139
+ type: eventType,
186
140
  timestamp: nowISO(),
187
141
  error: truncateError(error),
188
142
  attemptNumber,
@@ -191,21 +145,18 @@ class ToolErrorTracker {
191
145
  };
192
146
  trace.events.push(event);
193
147
  trace.updatedAt = nowISO();
194
- if (retriesRemaining === 0) {
195
- // Circuit just opened trace is done, unresolved
148
+ // Only close the trace when the circuit is fully OPEN, not when
149
+ // retriesRemaining === 0 but the breaker is still HALF_OPEN (recovery
150
+ // is still possible in that state).
151
+ if (breakerState === "open") {
196
152
  trace.resolved = false;
197
153
  this.activeTraceByTool.delete(toolName);
198
154
  }
199
155
  this.traces.set(trace.traceId, trace);
200
- this.persistTrace(trace.traceId);
201
156
  return trace.traceId;
202
157
  }
203
158
  /**
204
159
  * Record a tool recovery (successful execution after previous failures).
205
- *
206
- * @param toolName The tool that recovered.
207
- * @param traceId The trace ID for this failure chain.
208
- * @param resolution Optional description of how it was resolved.
209
160
  */
210
161
  recordRecovery(toolName, traceId, resolution) {
211
162
  const trace = this.traces.get(traceId);
@@ -223,12 +174,9 @@ class ToolErrorTracker {
223
174
  trace.updatedAt = nowISO();
224
175
  this.traces.set(traceId, trace);
225
176
  this.activeTraceByTool.delete(toolName);
226
- this.persistTrace(traceId);
227
177
  }
228
178
  /**
229
179
  * Attach LLM analysis to the latest failure/retry event in a trace.
230
- *
231
- * Called by the agent after the LLM has reasoned about a tool error.
232
180
  */
233
181
  recordAnalysis(traceId, analysis) {
234
182
  const trace = this.traces.get(traceId);
@@ -251,7 +199,6 @@ class ToolErrorTracker {
251
199
  trace.events.push(analysisEvent);
252
200
  trace.updatedAt = nowISO();
253
201
  this.traces.set(traceId, trace);
254
- this.persistTrace(traceId);
255
202
  }
256
203
  // ─── Query ───────────────────────────────────────────────────────────────
257
204
  /**
@@ -288,51 +235,27 @@ class ToolErrorTracker {
288
235
  return this.activeTraceByTool.get(toolName);
289
236
  }
290
237
  /**
291
- * Get the total number of traces recorded.
292
- */
293
- get traceCount() {
294
- return this.traces.size;
295
- }
296
- // ─── Persistence ─────────────────────────────────────────────────────────
297
- /**
298
- * Persist all traces to disk immediately.
238
+ * Get all currently active (unresolved) traces.
299
239
  */
300
- persistAll() {
301
- this.ensureStorageDir();
302
- for (const traceId of this.traces.keys()) {
303
- this.writeTraceFile(traceId);
240
+ getActiveTraces() {
241
+ const result = [];
242
+ for (const [toolName, traceId] of this.activeTraceByTool) {
243
+ const trace = this.traces.get(traceId);
244
+ if (trace && !trace.resolved) {
245
+ result.push({ toolName, traceId });
246
+ }
304
247
  }
305
- this.writeIndexFile();
248
+ return result;
306
249
  }
307
250
  /**
308
- * Load traces from disk (e.g., on startup to resume monitoring).
251
+ * Get the total number of traces recorded in this session.
309
252
  */
310
- loadFromDisk() {
311
- this.ensureStorageDir();
312
- const dir = this.storageDir;
313
- if (!fs.existsSync(dir))
314
- return;
315
- const files = fs.readdirSync(dir);
316
- for (const file of files) {
317
- if (!file.startsWith("trace_") || !file.endsWith(".json"))
318
- continue;
319
- if (file === "traces.json")
320
- continue; // skip index
321
- try {
322
- const content = fs.readFileSync(path.join(dir, file), "utf-8");
323
- const trace = JSON.parse(content);
324
- this.traces.set(trace.traceId, trace);
325
- if (!trace.resolved) {
326
- this.activeTraceByTool.set(trace.toolName, trace.traceId);
327
- }
328
- }
329
- catch {
330
- // Skip corrupted files
331
- }
332
- }
253
+ get traceCount() {
254
+ return this.traces.size;
333
255
  }
256
+ // ─── Report ──────────────────────────────────────────────────────────────
334
257
  /**
335
- * Generate a human-readable markdown report of all traces.
258
+ * Generate an in-memory markdown report of all traces for the current session.
336
259
  */
337
260
  generateMarkdownReport() {
338
261
  const summaries = this.getAllSummaries();
@@ -356,7 +279,6 @@ class ToolErrorTracker {
356
279
  report += `- **Created:** ${summary.createdAt}\n`;
357
280
  report += `- **Status:** ${summary.resolved ? "✅ Resolved" : "❌ Unresolved"}\n`;
358
281
  report += `- **Attempts:** ${summary.errorCount}\n\n`;
359
- // Events table
360
282
  report += `| # | Type | Timestamp | Error / Analysis |\n`;
361
283
  report += `|---|------|-----------|------------------|\n`;
362
284
  let eventNum = 0;
@@ -374,6 +296,9 @@ class ToolErrorTracker {
374
296
  else if (event.type === "recovery") {
375
297
  detail = event.resolution ?? "Recovered";
376
298
  }
299
+ else if (event.type === "circuit_half_open") {
300
+ detail = `Circuit degraded (half-open) after ${event.attemptNumber} attempt(s) — next failure will open the circuit`;
301
+ }
377
302
  else if (event.type === "circuit_open") {
378
303
  detail = `Circuit opened after ${event.attemptNumber} attempts`;
379
304
  }
@@ -387,25 +312,11 @@ class ToolErrorTracker {
387
312
  return report;
388
313
  }
389
314
  /**
390
- * Delete all stored traces.
315
+ * Clear all in-memory traces.
391
316
  */
392
- clearAll() {
317
+ clear() {
393
318
  this.traces.clear();
394
319
  this.activeTraceByTool.clear();
395
- const dir = this.storageDir;
396
- if (fs.existsSync(dir)) {
397
- const files = fs.readdirSync(dir);
398
- for (const file of files) {
399
- if (file.endsWith(".json")) {
400
- try {
401
- fs.unlinkSync(path.join(dir, file));
402
- }
403
- catch {
404
- // ignore
405
- }
406
- }
407
- }
408
- }
409
320
  }
410
321
  // ─── Private Helpers ─────────────────────────────────────────────────────
411
322
  createTrace(toolName, args) {
@@ -424,36 +335,6 @@ class ToolErrorTracker {
424
335
  this.activeTraceByTool.set(toolName, traceId);
425
336
  return trace;
426
337
  }
427
- persistTrace(traceId) {
428
- if (!this.persistImmediately)
429
- return;
430
- this.ensureStorageDir();
431
- this.writeTraceFile(traceId);
432
- this.writeIndexFile();
433
- }
434
- ensureStorageDir() {
435
- if (!fs.existsSync(this.storageDir)) {
436
- fs.mkdirSync(this.storageDir, { recursive: true });
437
- }
438
- }
439
- writeTraceFile(traceId) {
440
- const trace = this.traces.get(traceId);
441
- if (!trace)
442
- return;
443
- const filePath = path.join(this.storageDir, `${traceId}.json`);
444
- fs.writeFileSync(filePath, JSON.stringify(trace, null, 2), "utf-8");
445
- }
446
- writeIndexFile() {
447
- const summaries = this.getAllSummaries();
448
- const filePath = path.join(this.storageDir, "traces.json");
449
- fs.writeFileSync(filePath, JSON.stringify({
450
- totalTraces: summaries.length,
451
- resolvedCount: summaries.filter((s) => s.resolved).length,
452
- openCount: summaries.filter((s) => !s.resolved).length,
453
- updatedAt: nowISO(),
454
- traces: summaries,
455
- }, null, 2), "utf-8");
456
- }
457
338
  formatEventType(type) {
458
339
  switch (type) {
459
340
  case "failure":
@@ -462,6 +343,8 @@ class ToolErrorTracker {
462
343
  return "🟡 Retry";
463
344
  case "recovery":
464
345
  return "🟢 Recovery";
346
+ case "circuit_half_open":
347
+ return "⚠️ Circuit Half-Open";
465
348
  case "circuit_open":
466
349
  return "⛔ Circuit Open";
467
350
  case "analysis":
@@ -1 +1 @@
1
- {"version":3,"file":"error-tracker.js","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-tracker.js","sourceRoot":"","sources":["../../src/tools/error-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { Tool } from "./types";
2
+ /**
3
+ * A tool filter decides whether a given tool should be included.
4
+ *
5
+ * Pass a filter to a sub-agent definition so you can restrict which
6
+ * tools the sub-agent can access without editing the main agent's
7
+ * ToolRegistry.
8
+ *
9
+ * Built-in factories (`allowlist`, `denylist`, `pattern`) cover common
10
+ * cases; implement this interface directly for custom logic.
11
+ */
12
+ export interface ToolFilter {
13
+ /** Human-readable name shown in debug/log output. */
14
+ readonly name: string;
15
+ /** Return `true` to include the tool, `false` to exclude. */
16
+ filter(tool: Tool): boolean;
17
+ }
18
+ /**
19
+ * Only allow tools whose name is in the provided list.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const filter = allowlist(["read_file", "grep", "glob"]);
24
+ * ```
25
+ */
26
+ export declare function allowlist(...names: string[]): ToolFilter;
27
+ /**
28
+ * Allow all tools EXCEPT those whose name is in the provided list.
29
+ * Useful for removing dangerous or unnecessary tools from sub-agents.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const filter = denylist("spawn_subagent", "list_subagents");
34
+ * ```
35
+ */
36
+ export declare function denylist(...names: string[]): ToolFilter;
37
+ /**
38
+ * Include only tools whose name matches a regex pattern.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const filter = pattern(/^(read|write|edit)_/); // file-system tools only
43
+ * ```
44
+ */
45
+ export declare function pattern(regex: RegExp): ToolFilter;
46
+ /**
47
+ * Combine multiple filters with AND logic — a tool must pass ALL filters.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * // Allow file tools, but exclude write
52
+ * const filter = all(pattern(/^(read|write|edit)_/), denylist("write_file"));
53
+ * ```
54
+ */
55
+ export declare function all(...filters: ToolFilter[]): ToolFilter;
56
+ /**
57
+ * Combine multiple filters with OR logic — a tool must pass AT LEAST ONE filter.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * // Allow read_file or exact grep match
62
+ * const filter = any(allowlist("read_file"), allowlist("grep"));
63
+ * ```
64
+ */
65
+ export declare function any(...filters: ToolFilter[]): ToolFilter;
66
+ /**
67
+ * Apply a filter to a tool array and return the filtered subset.
68
+ */
69
+ export declare function filterTools(tools: Tool[], filter: ToolFilter): Tool[];
70
+ //# sourceMappingURL=tool-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-filter.d.ts","sourceRoot":"","sources":["../../src/tools/tool-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAI/B;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6DAA6D;IAC7D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;CAC7B;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAMxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAMvD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxD;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,CAErE"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allowlist = allowlist;
4
+ exports.denylist = denylist;
5
+ exports.pattern = pattern;
6
+ exports.all = all;
7
+ exports.any = any;
8
+ exports.filterTools = filterTools;
9
+ // ─── Built-in Filters ────────────────────────────────────────────────────────
10
+ /**
11
+ * Only allow tools whose name is in the provided list.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const filter = allowlist(["read_file", "grep", "glob"]);
16
+ * ```
17
+ */
18
+ function allowlist(...names) {
19
+ const set = new Set(names);
20
+ return {
21
+ name: `allowlist(${names.join(", ")})`,
22
+ filter: (tool) => set.has(tool.name),
23
+ };
24
+ }
25
+ /**
26
+ * Allow all tools EXCEPT those whose name is in the provided list.
27
+ * Useful for removing dangerous or unnecessary tools from sub-agents.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const filter = denylist("spawn_subagent", "list_subagents");
32
+ * ```
33
+ */
34
+ function denylist(...names) {
35
+ const set = new Set(names);
36
+ return {
37
+ name: `denylist(${names.join(", ")})`,
38
+ filter: (tool) => !set.has(tool.name),
39
+ };
40
+ }
41
+ /**
42
+ * Include only tools whose name matches a regex pattern.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const filter = pattern(/^(read|write|edit)_/); // file-system tools only
47
+ * ```
48
+ */
49
+ function pattern(regex) {
50
+ return {
51
+ name: `pattern(/${regex.source}/${regex.flags})`,
52
+ filter: (tool) => regex.test(tool.name),
53
+ };
54
+ }
55
+ /**
56
+ * Combine multiple filters with AND logic — a tool must pass ALL filters.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * // Allow file tools, but exclude write
61
+ * const filter = all(pattern(/^(read|write|edit)_/), denylist("write_file"));
62
+ * ```
63
+ */
64
+ function all(...filters) {
65
+ return {
66
+ name: `all(${filters.map((f) => f.name).join(", ")})`,
67
+ filter: (tool) => filters.every((f) => f.filter(tool)),
68
+ };
69
+ }
70
+ /**
71
+ * Combine multiple filters with OR logic — a tool must pass AT LEAST ONE filter.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * // Allow read_file or exact grep match
76
+ * const filter = any(allowlist("read_file"), allowlist("grep"));
77
+ * ```
78
+ */
79
+ function any(...filters) {
80
+ return {
81
+ name: `any(${filters.map((f) => f.name).join(", ")})`,
82
+ filter: (tool) => filters.some((f) => f.filter(tool)),
83
+ };
84
+ }
85
+ // ─── Helper ──────────────────────────────────────────────────────────────────
86
+ /**
87
+ * Apply a filter to a tool array and return the filtered subset.
88
+ */
89
+ function filterTools(tools, filter) {
90
+ return tools.filter((t) => filter.filter(t));
91
+ }
92
+ //# sourceMappingURL=tool-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-filter.js","sourceRoot":"","sources":["../../src/tools/tool-filter.ts"],"names":[],"mappings":";;AAgCA,8BAMC;AAWD,4BAMC;AAUD,0BAKC;AAWD,kBAKC;AAWD,kBAKC;AAOD,kCAEC;AAzFD,gFAAgF;AAEhF;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,GAAG,KAAe;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,GAAG,KAAe;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO;QACL,IAAI,EAAE,YAAY,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG;QAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,GAAG,CAAC,GAAG,OAAqB;IAC1C,OAAO;QACL,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,GAAG,CAAC,GAAG,OAAqB;IAC1C,OAAO;QACL,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,MAAkB;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Truncator for tool outputs that exceed a byte threshold.
3
+ *
4
+ * When a tool returns a very large result it fills the context window
5
+ * and wastes tokens. This component saves the full result to disk and
6
+ * returns a short preview + a file path, so the LLM can decide whether
7
+ * to read the full content via the normal file-reading tools.
8
+ */
9
+ export declare class ToolOutputTruncator {
10
+ private maxBytes;
11
+ private keepBytes;
12
+ private outputDir;
13
+ /**
14
+ * @param maxBytes Outputs larger than this are truncated (0 = off).
15
+ * @param keepBytes How many bytes to keep from the start of the output
16
+ * when truncating.
17
+ * @param outputDir Directory where full outputs are saved.
18
+ */
19
+ constructor(maxBytes?: number, keepBytes?: number, outputDir?: string);
20
+ /**
21
+ * Whether truncation is active (maxBytes > 0).
22
+ */
23
+ get enabled(): boolean;
24
+ /**
25
+ * Truncate a tool result string if it exceeds the configured threshold.
26
+ *
27
+ * - If the result is within `maxBytes`, returns it unchanged.
28
+ * - Otherwise saves the full output to disk and returns the first
29
+ * `keepBytes` bytes + a marker pointing to the saved file.
30
+ *
31
+ * @param toolName Name of the tool that produced this result.
32
+ * @param result The raw result string from tool execution.
33
+ */
34
+ truncate(toolName: string, result: string): string;
35
+ }
36
+ //# sourceMappingURL=tool-output-truncator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-output-truncator.d.ts","sourceRoot":"","sources":["../../src/tools/tool-output-truncator.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;OAKG;gBAED,QAAQ,GAAE,MAAU,EACpB,SAAS,GAAE,MAAa,EACxB,SAAS,CAAC,EAAE,MAAM;IAOpB;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CA6BnD"}