@dexto/core 1.3.0 → 1.4.0

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 (479) hide show
  1. package/README.md +17 -9
  2. package/dist/agent/DextoAgent.cjs +548 -207
  3. package/dist/agent/DextoAgent.d.ts +156 -33
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +545 -204
  6. package/dist/agent/agentCard.js +1 -1
  7. package/dist/agent/error-codes.cjs +1 -0
  8. package/dist/agent/error-codes.d.ts +2 -1
  9. package/dist/agent/error-codes.d.ts.map +1 -1
  10. package/dist/agent/error-codes.js +2 -1
  11. package/dist/agent/errors.cjs +13 -0
  12. package/dist/agent/errors.d.ts +4 -0
  13. package/dist/agent/errors.d.ts.map +1 -1
  14. package/dist/agent/errors.js +14 -1
  15. package/dist/agent/index.d.ts +1 -1
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +1 -1
  18. package/dist/agent/schemas.cjs +3 -0
  19. package/dist/agent/schemas.d.ts +92 -55
  20. package/dist/agent/schemas.d.ts.map +1 -1
  21. package/dist/agent/schemas.js +6 -2
  22. package/dist/agent/state-manager.cjs +5 -5
  23. package/dist/agent/state-manager.d.ts +4 -4
  24. package/dist/agent/state-manager.js +6 -6
  25. package/dist/agent/types.d.ts +24 -10
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/approval/error-codes.js +1 -1
  28. package/dist/approval/errors.js +1 -1
  29. package/dist/approval/factory.js +1 -1
  30. package/dist/approval/index.js +1 -1
  31. package/dist/approval/manager.cjs +69 -3
  32. package/dist/approval/manager.d.ts +41 -3
  33. package/dist/approval/manager.d.ts.map +1 -1
  34. package/dist/approval/manager.js +70 -4
  35. package/dist/approval/schemas.cjs +18 -4
  36. package/dist/approval/schemas.d.ts +106 -32
  37. package/dist/approval/schemas.d.ts.map +1 -1
  38. package/dist/approval/schemas.js +19 -5
  39. package/dist/approval/types.d.ts +6 -0
  40. package/dist/approval/types.d.ts.map +1 -1
  41. package/dist/approval/types.js +1 -1
  42. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  43. package/dist/{llm/tokenizer/default.cjs → context/compression/overflow.cjs} +20 -18
  44. package/dist/context/compression/overflow.d.ts +33 -0
  45. package/dist/context/compression/overflow.d.ts.map +1 -0
  46. package/dist/context/compression/overflow.js +19 -0
  47. package/dist/context/compression/reactive-overflow.cjs +201 -0
  48. package/dist/context/compression/reactive-overflow.d.ts +81 -0
  49. package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
  50. package/dist/context/compression/reactive-overflow.js +178 -0
  51. package/dist/context/compression/types.d.ts +9 -7
  52. package/dist/context/compression/types.d.ts.map +1 -1
  53. package/dist/context/error-codes.cjs +3 -0
  54. package/dist/context/error-codes.d.ts +4 -1
  55. package/dist/context/error-codes.d.ts.map +1 -1
  56. package/dist/context/error-codes.js +4 -1
  57. package/dist/context/errors.cjs +28 -0
  58. package/dist/context/errors.d.ts +7 -0
  59. package/dist/context/errors.d.ts.map +1 -1
  60. package/dist/context/errors.js +29 -1
  61. package/dist/context/index.js +1 -1
  62. package/dist/context/manager.cjs +280 -323
  63. package/dist/context/manager.d.ts +65 -111
  64. package/dist/context/manager.d.ts.map +1 -1
  65. package/dist/context/manager.js +280 -328
  66. package/dist/context/media-helpers.js +1 -1
  67. package/dist/context/types.cjs +49 -0
  68. package/dist/context/types.d.ts +181 -72
  69. package/dist/context/types.d.ts.map +1 -1
  70. package/dist/context/types.js +35 -0
  71. package/dist/context/utils.cjs +266 -283
  72. package/dist/context/utils.d.ts +32 -18
  73. package/dist/context/utils.d.ts.map +1 -1
  74. package/dist/context/utils.js +266 -283
  75. package/dist/errors/DextoBaseError.js +1 -1
  76. package/dist/errors/DextoRuntimeError.js +1 -1
  77. package/dist/errors/DextoValidationError.js +1 -1
  78. package/dist/errors/index.js +1 -1
  79. package/dist/errors/result-bridge.js +1 -1
  80. package/dist/errors/types.js +1 -1
  81. package/dist/events/index.cjs +18 -1
  82. package/dist/events/index.d.ts +149 -12
  83. package/dist/events/index.d.ts.map +1 -1
  84. package/dist/events/index.js +19 -2
  85. package/dist/filesystem/error-codes.js +1 -1
  86. package/dist/filesystem/errors.js +1 -1
  87. package/dist/filesystem/filesystem-service.js +1 -1
  88. package/dist/filesystem/index.js +1 -1
  89. package/dist/filesystem/path-validator.js +1 -1
  90. package/dist/index.browser.cjs +23 -8
  91. package/dist/index.browser.d.ts +4 -3
  92. package/dist/index.browser.d.ts.map +1 -1
  93. package/dist/index.browser.js +20 -3
  94. package/dist/index.js +1 -1
  95. package/dist/llm/error-codes.cjs +0 -1
  96. package/dist/llm/error-codes.d.ts +0 -1
  97. package/dist/llm/error-codes.d.ts.map +1 -1
  98. package/dist/llm/error-codes.js +1 -2
  99. package/dist/llm/errors.cjs +10 -10
  100. package/dist/llm/errors.d.ts +5 -6
  101. package/dist/llm/errors.d.ts.map +1 -1
  102. package/dist/llm/errors.js +12 -12
  103. package/dist/llm/executor/stream-processor.cjs +367 -0
  104. package/dist/llm/executor/stream-processor.d.ts +55 -0
  105. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  106. package/dist/llm/executor/stream-processor.js +344 -0
  107. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  108. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  109. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  110. package/dist/llm/executor/tool-output-truncator.js +48 -0
  111. package/dist/llm/executor/turn-executor.cjs +753 -0
  112. package/dist/llm/executor/turn-executor.d.ts +166 -0
  113. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  114. package/dist/llm/executor/turn-executor.js +684 -0
  115. package/dist/llm/executor/types.d.ts +27 -0
  116. package/dist/llm/executor/types.d.ts.map +1 -0
  117. package/dist/llm/formatters/vercel.cjs +20 -186
  118. package/dist/llm/formatters/vercel.d.ts +2 -14
  119. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  120. package/dist/llm/formatters/vercel.js +19 -185
  121. package/dist/llm/registry.cjs +36 -45
  122. package/dist/llm/registry.d.ts +53 -39
  123. package/dist/llm/registry.d.ts.map +1 -1
  124. package/dist/llm/registry.js +34 -42
  125. package/dist/llm/resolver.cjs +1 -31
  126. package/dist/llm/resolver.d.ts.map +1 -1
  127. package/dist/llm/resolver.js +2 -34
  128. package/dist/llm/schemas.cjs +2 -17
  129. package/dist/llm/schemas.d.ts +10 -23
  130. package/dist/llm/schemas.d.ts.map +1 -1
  131. package/dist/llm/schemas.js +5 -22
  132. package/dist/llm/services/factory.cjs +3 -92
  133. package/dist/llm/services/factory.d.ts +14 -4
  134. package/dist/llm/services/factory.d.ts.map +1 -1
  135. package/dist/llm/services/factory.js +4 -83
  136. package/dist/llm/services/test-utils.integration.cjs +6 -8
  137. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  138. package/dist/llm/services/test-utils.integration.js +7 -9
  139. package/dist/llm/services/types.d.ts +1 -28
  140. package/dist/llm/services/types.d.ts.map +1 -1
  141. package/dist/llm/services/vercel.cjs +54 -468
  142. package/dist/llm/services/vercel.d.ts +38 -21
  143. package/dist/llm/services/vercel.d.ts.map +1 -1
  144. package/dist/llm/services/vercel.js +56 -475
  145. package/dist/llm/types.cjs +0 -3
  146. package/dist/llm/types.d.ts +8 -8
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -3
  149. package/dist/llm/validation.js +1 -1
  150. package/dist/logger/browser.js +1 -1
  151. package/dist/logger/factory.js +1 -1
  152. package/dist/logger/index.js +1 -1
  153. package/dist/logger/logger.js +1 -1
  154. package/dist/logger/v2/dexto-logger.cjs +34 -6
  155. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  156. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  157. package/dist/logger/v2/dexto-logger.js +35 -7
  158. package/dist/logger/v2/error-codes.js +1 -1
  159. package/dist/logger/v2/errors.js +1 -1
  160. package/dist/logger/v2/schemas.js +1 -1
  161. package/dist/logger/v2/test-utils.cjs +70 -0
  162. package/dist/logger/v2/test-utils.d.ts +17 -0
  163. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  164. package/dist/logger/v2/test-utils.js +46 -0
  165. package/dist/logger/v2/transport-factory.js +1 -1
  166. package/dist/logger/v2/transports/console-transport.js +1 -1
  167. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  168. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  169. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  170. package/dist/logger/v2/transports/file-transport.js +7 -1
  171. package/dist/logger/v2/types.cjs +1 -0
  172. package/dist/logger/v2/types.d.ts +18 -2
  173. package/dist/logger/v2/types.d.ts.map +1 -1
  174. package/dist/logger/v2/types.js +2 -1
  175. package/dist/mcp/error-codes.cjs +1 -0
  176. package/dist/mcp/error-codes.d.ts +1 -0
  177. package/dist/mcp/error-codes.d.ts.map +1 -1
  178. package/dist/mcp/error-codes.js +2 -1
  179. package/dist/mcp/errors.cjs +13 -0
  180. package/dist/mcp/errors.d.ts +7 -0
  181. package/dist/mcp/errors.d.ts.map +1 -1
  182. package/dist/mcp/errors.js +14 -1
  183. package/dist/mcp/manager.cjs +4 -0
  184. package/dist/mcp/manager.d.ts.map +1 -1
  185. package/dist/mcp/manager.js +5 -1
  186. package/dist/mcp/mcp-client.js +1 -1
  187. package/dist/mcp/resolver.js +1 -1
  188. package/dist/mcp/schemas.cjs +6 -0
  189. package/dist/mcp/schemas.d.ts +52 -0
  190. package/dist/mcp/schemas.d.ts.map +1 -1
  191. package/dist/mcp/schemas.js +6 -1
  192. package/dist/memory/error-codes.js +1 -1
  193. package/dist/memory/errors.js +1 -1
  194. package/dist/memory/index.js +1 -1
  195. package/dist/memory/manager.js +1 -1
  196. package/dist/memory/schemas.d.ts +2 -2
  197. package/dist/memory/schemas.js +1 -1
  198. package/dist/plugins/builtins/content-policy.js +1 -1
  199. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  200. package/dist/plugins/error-codes.js +1 -1
  201. package/dist/plugins/index.js +1 -1
  202. package/dist/plugins/loader.js +1 -1
  203. package/dist/plugins/manager.js +1 -1
  204. package/dist/plugins/registrations/builtins.js +1 -1
  205. package/dist/plugins/schemas.d.ts +3 -3
  206. package/dist/plugins/schemas.js +1 -1
  207. package/dist/plugins/types.d.ts +0 -1
  208. package/dist/plugins/types.d.ts.map +1 -1
  209. package/dist/process/command-validator.js +1 -1
  210. package/dist/process/error-codes.js +1 -1
  211. package/dist/process/errors.js +1 -1
  212. package/dist/process/index.js +1 -1
  213. package/dist/process/process-service.cjs +78 -26
  214. package/dist/process/process-service.d.ts +6 -1
  215. package/dist/process/process-service.d.ts.map +1 -1
  216. package/dist/process/process-service.js +79 -27
  217. package/dist/process/types.d.ts +2 -2
  218. package/dist/process/types.d.ts.map +1 -1
  219. package/dist/prompts/error-codes.cjs +1 -0
  220. package/dist/prompts/error-codes.d.ts +2 -1
  221. package/dist/prompts/error-codes.d.ts.map +1 -1
  222. package/dist/prompts/error-codes.js +2 -1
  223. package/dist/prompts/errors.cjs +15 -0
  224. package/dist/prompts/errors.d.ts +4 -0
  225. package/dist/prompts/errors.d.ts.map +1 -1
  226. package/dist/prompts/errors.js +16 -1
  227. package/dist/prompts/index.js +1 -1
  228. package/dist/prompts/name-validation.js +1 -1
  229. package/dist/prompts/prompt-manager.cjs +13 -2
  230. package/dist/prompts/prompt-manager.d.ts +7 -0
  231. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  232. package/dist/prompts/prompt-manager.js +14 -3
  233. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  234. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  235. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  236. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  237. package/dist/prompts/providers/custom-prompt-provider.js +1 -1
  238. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  239. package/dist/prompts/schemas.d.ts +12 -0
  240. package/dist/prompts/schemas.d.ts.map +1 -1
  241. package/dist/prompts/schemas.js +1 -1
  242. package/dist/prompts/types.d.ts +2 -0
  243. package/dist/prompts/types.d.ts.map +1 -1
  244. package/dist/prompts/utils.js +1 -1
  245. package/dist/resources/error-codes.js +1 -1
  246. package/dist/resources/errors.js +1 -1
  247. package/dist/resources/handlers/blob-handler.js +1 -1
  248. package/dist/resources/handlers/factory.js +1 -1
  249. package/dist/resources/handlers/filesystem-handler.js +1 -1
  250. package/dist/resources/index.js +1 -1
  251. package/dist/resources/internal-provider.js +1 -1
  252. package/dist/resources/manager.js +1 -1
  253. package/dist/resources/reference-parser.js +1 -1
  254. package/dist/resources/schemas.js +1 -1
  255. package/dist/search/index.js +1 -1
  256. package/dist/search/search-service.js +1 -1
  257. package/dist/session/chat-session.cjs +149 -51
  258. package/dist/session/chat-session.d.ts +69 -29
  259. package/dist/session/chat-session.d.ts.map +1 -1
  260. package/dist/session/chat-session.js +150 -52
  261. package/dist/session/error-codes.js +1 -1
  262. package/dist/session/errors.js +1 -1
  263. package/dist/session/history/database.cjs +134 -21
  264. package/dist/session/history/database.d.ts +37 -8
  265. package/dist/session/history/database.d.ts.map +1 -1
  266. package/dist/session/history/database.js +135 -22
  267. package/dist/session/history/factory.js +1 -1
  268. package/dist/session/history/memory.cjs +18 -0
  269. package/dist/session/history/memory.d.ts +8 -0
  270. package/dist/session/history/memory.d.ts.map +1 -1
  271. package/dist/session/history/memory.js +19 -1
  272. package/dist/session/history/types.d.ts +13 -1
  273. package/dist/session/history/types.d.ts.map +1 -1
  274. package/dist/session/index.cjs +3 -0
  275. package/dist/session/index.d.ts +3 -0
  276. package/dist/session/index.d.ts.map +1 -1
  277. package/dist/session/index.js +3 -1
  278. package/dist/session/message-queue.cjs +201 -0
  279. package/dist/session/message-queue.d.ts +114 -0
  280. package/dist/session/message-queue.d.ts.map +1 -0
  281. package/dist/session/message-queue.js +178 -0
  282. package/dist/session/schemas.js +1 -1
  283. package/dist/session/session-manager.cjs +57 -7
  284. package/dist/session/session-manager.d.ts +18 -0
  285. package/dist/session/session-manager.d.ts.map +1 -1
  286. package/dist/session/session-manager.js +58 -8
  287. package/dist/session/title-generator.cjs +4 -8
  288. package/dist/session/title-generator.d.ts +1 -2
  289. package/dist/session/title-generator.d.ts.map +1 -1
  290. package/dist/session/title-generator.js +5 -9
  291. package/dist/session/types.cjs +16 -0
  292. package/dist/session/types.d.ts +14 -0
  293. package/dist/session/types.d.ts.map +1 -0
  294. package/dist/session/types.js +0 -0
  295. package/dist/storage/blob/factory.js +1 -1
  296. package/dist/storage/blob/local-blob-store.js +1 -1
  297. package/dist/storage/blob/memory-blob-store.js +1 -1
  298. package/dist/storage/blob/schemas.js +1 -1
  299. package/dist/storage/cache/factory.js +1 -1
  300. package/dist/storage/cache/memory-cache-store.js +1 -1
  301. package/dist/storage/cache/redis-store.js +1 -1
  302. package/dist/storage/cache/schemas.js +1 -1
  303. package/dist/storage/database/factory.js +1 -1
  304. package/dist/storage/database/memory-database-store.js +1 -1
  305. package/dist/storage/database/postgres-store.cjs +12 -0
  306. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  307. package/dist/storage/database/postgres-store.js +13 -1
  308. package/dist/storage/database/schemas.js +1 -1
  309. package/dist/storage/database/sqlite-store.js +1 -1
  310. package/dist/storage/error-codes.js +1 -1
  311. package/dist/storage/errors.js +1 -1
  312. package/dist/storage/index.js +1 -1
  313. package/dist/storage/schemas.js +1 -1
  314. package/dist/storage/storage-manager.js +1 -1
  315. package/dist/systemPrompt/contributors.js +1 -1
  316. package/dist/systemPrompt/error-codes.js +1 -1
  317. package/dist/systemPrompt/errors.js +1 -1
  318. package/dist/systemPrompt/in-built-prompts.js +1 -1
  319. package/dist/systemPrompt/index.js +1 -1
  320. package/dist/systemPrompt/manager.js +1 -1
  321. package/dist/systemPrompt/registry.js +1 -1
  322. package/dist/systemPrompt/schemas.d.ts +5 -5
  323. package/dist/systemPrompt/schemas.js +1 -1
  324. package/dist/telemetry/decorators.js +1 -1
  325. package/dist/telemetry/error-codes.js +1 -1
  326. package/dist/telemetry/errors.js +1 -1
  327. package/dist/telemetry/exporters.js +1 -1
  328. package/dist/telemetry/index.js +1 -1
  329. package/dist/telemetry/schemas.js +1 -1
  330. package/dist/telemetry/telemetry.js +1 -1
  331. package/dist/telemetry/utils.js +1 -1
  332. package/dist/tools/bash-pattern-utils.cjs +91 -0
  333. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  334. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  335. package/dist/tools/bash-pattern-utils.js +64 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  337. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  338. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  339. package/dist/tools/display-types.cjs +60 -0
  340. package/dist/tools/display-types.d.ts +133 -0
  341. package/dist/tools/display-types.d.ts.map +1 -0
  342. package/dist/tools/display-types.js +32 -0
  343. package/dist/tools/error-codes.cjs +2 -0
  344. package/dist/tools/error-codes.d.ts +3 -1
  345. package/dist/tools/error-codes.d.ts.map +1 -1
  346. package/dist/tools/error-codes.js +3 -1
  347. package/dist/tools/errors.cjs +30 -0
  348. package/dist/tools/errors.d.ts +16 -0
  349. package/dist/tools/errors.d.ts.map +1 -1
  350. package/dist/tools/errors.js +31 -1
  351. package/dist/tools/index.cjs +2 -0
  352. package/dist/tools/index.d.ts +1 -0
  353. package/dist/tools/index.d.ts.map +1 -1
  354. package/dist/tools/index.js +2 -1
  355. package/dist/tools/internal-tools/constants.js +1 -1
  356. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  357. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  358. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
  359. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
  360. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
  361. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
  362. package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
  363. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  364. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
  365. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
  366. package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
  367. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
  368. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
  369. package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
  370. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
  371. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
  372. package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
  373. package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
  374. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
  375. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
  376. package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
  377. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  378. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
  379. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
  380. package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
  381. package/dist/tools/internal-tools/provider.cjs +27 -10
  382. package/dist/tools/internal-tools/provider.d.ts +8 -5
  383. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  384. package/dist/tools/internal-tools/provider.js +28 -11
  385. package/dist/tools/internal-tools/registry.cjs +4 -3
  386. package/dist/tools/internal-tools/registry.d.ts +28 -7
  387. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  388. package/dist/tools/internal-tools/registry.js +5 -4
  389. package/dist/tools/schemas.cjs +16 -6
  390. package/dist/tools/schemas.d.ts +31 -4
  391. package/dist/tools/schemas.d.ts.map +1 -1
  392. package/dist/tools/schemas.js +14 -6
  393. package/dist/tools/tool-manager.cjs +140 -18
  394. package/dist/tools/tool-manager.d.ts +23 -1
  395. package/dist/tools/tool-manager.d.ts.map +1 -1
  396. package/dist/tools/tool-manager.js +145 -19
  397. package/dist/tools/types.d.ts +20 -0
  398. package/dist/tools/types.d.ts.map +1 -1
  399. package/dist/utils/api-key-resolver.js +1 -1
  400. package/dist/utils/async-context.js +1 -1
  401. package/dist/utils/debug.js +1 -1
  402. package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
  403. package/dist/utils/defer.d.ts +63 -0
  404. package/dist/utils/defer.d.ts.map +1 -0
  405. package/dist/utils/defer.js +19 -0
  406. package/dist/utils/env-file.js +1 -1
  407. package/dist/utils/error-conversion.js +1 -1
  408. package/dist/utils/execution-context.js +1 -1
  409. package/dist/utils/fs-walk.js +1 -1
  410. package/dist/utils/index.cjs +3 -1
  411. package/dist/utils/index.d.ts +1 -0
  412. package/dist/utils/index.d.ts.map +1 -1
  413. package/dist/utils/index.js +1 -0
  414. package/dist/utils/path.js +1 -1
  415. package/dist/utils/redactor.js +1 -1
  416. package/dist/utils/result.js +1 -1
  417. package/dist/utils/safe-stringify.js +1 -1
  418. package/dist/utils/schema-metadata.js +1 -1
  419. package/dist/utils/schema.js +1 -1
  420. package/dist/utils/service-initializer.cjs +6 -2
  421. package/dist/utils/service-initializer.d.ts.map +1 -1
  422. package/dist/utils/service-initializer.js +7 -3
  423. package/dist/utils/user-info.js +1 -1
  424. package/dist/utils/zod-schema-converter.js +1 -1
  425. package/package.json +6 -7
  426. package/dist/context/compression/middle-removal.cjs +0 -95
  427. package/dist/context/compression/middle-removal.d.ts +0 -47
  428. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  429. package/dist/context/compression/middle-removal.js +0 -72
  430. package/dist/context/compression/oldest-removal.cjs +0 -83
  431. package/dist/context/compression/oldest-removal.d.ts +0 -42
  432. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  433. package/dist/context/compression/oldest-removal.js +0 -60
  434. package/dist/llm/formatters/anthropic.cjs +0 -257
  435. package/dist/llm/formatters/anthropic.d.ts +0 -46
  436. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  437. package/dist/llm/formatters/anthropic.js +0 -239
  438. package/dist/llm/formatters/factory.cjs +0 -50
  439. package/dist/llm/formatters/factory.d.ts +0 -10
  440. package/dist/llm/formatters/factory.d.ts.map +0 -1
  441. package/dist/llm/formatters/factory.js +0 -27
  442. package/dist/llm/formatters/openai.cjs +0 -203
  443. package/dist/llm/formatters/openai.d.ts +0 -39
  444. package/dist/llm/formatters/openai.d.ts.map +0 -1
  445. package/dist/llm/formatters/openai.js +0 -184
  446. package/dist/llm/formatters/types.d.ts +0 -41
  447. package/dist/llm/formatters/types.d.ts.map +0 -1
  448. package/dist/llm/services/anthropic.cjs +0 -511
  449. package/dist/llm/services/anthropic.d.ts +0 -48
  450. package/dist/llm/services/anthropic.d.ts.map +0 -1
  451. package/dist/llm/services/anthropic.js +0 -447
  452. package/dist/llm/services/openai.cjs +0 -611
  453. package/dist/llm/services/openai.d.ts +0 -48
  454. package/dist/llm/services/openai.d.ts.map +0 -1
  455. package/dist/llm/services/openai.js +0 -547
  456. package/dist/llm/tokenizer/anthropic.cjs +0 -43
  457. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  458. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  459. package/dist/llm/tokenizer/anthropic.js +0 -20
  460. package/dist/llm/tokenizer/default.d.ts +0 -14
  461. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  462. package/dist/llm/tokenizer/default.js +0 -18
  463. package/dist/llm/tokenizer/factory.cjs +0 -44
  464. package/dist/llm/tokenizer/factory.d.ts +0 -12
  465. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  466. package/dist/llm/tokenizer/factory.js +0 -21
  467. package/dist/llm/tokenizer/google.cjs +0 -52
  468. package/dist/llm/tokenizer/google.d.ts +0 -29
  469. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  470. package/dist/llm/tokenizer/google.js +0 -29
  471. package/dist/llm/tokenizer/openai.cjs +0 -115
  472. package/dist/llm/tokenizer/openai.d.ts +0 -41
  473. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  474. package/dist/llm/tokenizer/openai.js +0 -91
  475. package/dist/llm/tokenizer/types.d.ts +0 -18
  476. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  477. package/dist/llm/tokenizer/types.js +0 -10
  478. /package/dist/llm/{formatters → executor}/types.cjs +0 -0
  479. /package/dist/llm/{formatters → executor}/types.js +0 -0
@@ -0,0 +1,344 @@
1
+ import "../../chunk-PTJYTZNU.js";
2
+ import { truncateToolResult } from "./tool-output-truncator.js";
3
+ import { sanitizeToolResult } from "../../context/utils.js";
4
+ import { DextoLogComponent } from "../../logger/v2/types.js";
5
+ class StreamProcessor {
6
+ /**
7
+ * @param contextManager Context manager for message persistence
8
+ * @param eventBus Event bus for emitting events
9
+ * @param resourceManager Resource manager for blob storage
10
+ * @param abortSignal Abort signal for cancellation
11
+ * @param config Provider/model configuration
12
+ * @param logger Logger instance
13
+ * @param streaming If true, emits llm:chunk events. Default true.
14
+ * @param approvalMetadata Map of tool call IDs to approval metadata
15
+ */
16
+ constructor(contextManager, eventBus, resourceManager, abortSignal, config, logger, streaming = true, approvalMetadata) {
17
+ this.contextManager = contextManager;
18
+ this.eventBus = eventBus;
19
+ this.resourceManager = resourceManager;
20
+ this.abortSignal = abortSignal;
21
+ this.config = config;
22
+ this.streaming = streaming;
23
+ this.approvalMetadata = approvalMetadata;
24
+ this.logger = logger.createChild(DextoLogComponent.EXECUTOR);
25
+ }
26
+ assistantMessageId = null;
27
+ actualTokens = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
28
+ finishReason = "unknown";
29
+ reasoningText = "";
30
+ accumulatedText = "";
31
+ logger;
32
+ /**
33
+ * Track pending tool calls (added to context but no result yet).
34
+ * On cancel/abort, we add synthetic "cancelled" results to maintain tool_use/tool_result pairing.
35
+ */
36
+ pendingToolCalls = /* @__PURE__ */ new Map();
37
+ async process(streamFn) {
38
+ const stream = streamFn();
39
+ try {
40
+ for await (const event of stream.fullStream) {
41
+ switch (event.type) {
42
+ case "text-delta":
43
+ if (!this.assistantMessageId) {
44
+ this.assistantMessageId = await this.contextManager.addAssistantMessage("", [], {}).then(() => {
45
+ return this.getLastMessageId();
46
+ });
47
+ }
48
+ await this.contextManager.appendAssistantText(
49
+ this.assistantMessageId,
50
+ event.text
51
+ );
52
+ this.accumulatedText += event.text;
53
+ if (this.streaming) {
54
+ this.eventBus.emit("llm:chunk", {
55
+ chunkType: "text",
56
+ content: event.text
57
+ });
58
+ }
59
+ break;
60
+ case "reasoning-delta":
61
+ this.reasoningText += event.text;
62
+ if (this.streaming) {
63
+ this.eventBus.emit("llm:chunk", {
64
+ chunkType: "reasoning",
65
+ content: event.text
66
+ });
67
+ }
68
+ break;
69
+ case "tool-call":
70
+ if (!this.assistantMessageId) {
71
+ this.assistantMessageId = await this.createAssistantMessage();
72
+ }
73
+ await this.contextManager.addToolCall(this.assistantMessageId, {
74
+ id: event.toolCallId,
75
+ type: "function",
76
+ function: {
77
+ name: event.toolName,
78
+ arguments: JSON.stringify(event.input)
79
+ }
80
+ });
81
+ this.pendingToolCalls.set(event.toolCallId, {
82
+ toolName: event.toolName
83
+ });
84
+ break;
85
+ case "tool-result": {
86
+ const rawResult = event.output;
87
+ this.logger.debug("Tool result received", {
88
+ toolName: event.toolName,
89
+ toolCallId: event.toolCallId,
90
+ rawResult
91
+ });
92
+ const sanitized = await sanitizeToolResult(
93
+ rawResult,
94
+ {
95
+ blobStore: this.resourceManager.getBlobStore(),
96
+ toolName: event.toolName,
97
+ toolCallId: event.toolCallId,
98
+ success: true
99
+ },
100
+ this.logger
101
+ );
102
+ const truncated = truncateToolResult(sanitized);
103
+ const approval = this.approvalMetadata?.get(event.toolCallId);
104
+ await this.contextManager.addToolResult(
105
+ event.toolCallId,
106
+ event.toolName,
107
+ truncated,
108
+ // Includes meta.success from sanitization
109
+ approval
110
+ // Only approval metadata if present
111
+ );
112
+ this.eventBus.emit("llm:tool-result", {
113
+ toolName: event.toolName,
114
+ callId: event.toolCallId,
115
+ success: true,
116
+ sanitized: truncated,
117
+ rawResult,
118
+ ...approval?.requireApproval !== void 0 && {
119
+ requireApproval: approval.requireApproval
120
+ },
121
+ ...approval?.approvalStatus !== void 0 && {
122
+ approvalStatus: approval.approvalStatus
123
+ }
124
+ });
125
+ this.approvalMetadata?.delete(event.toolCallId);
126
+ this.pendingToolCalls.delete(event.toolCallId);
127
+ break;
128
+ }
129
+ case "finish-step":
130
+ if (event.usage) {
131
+ const cacheWriteTokens = event.providerMetadata?.["anthropic"]?.["cacheCreationInputTokens"] ?? // @ts-expect-error - Bedrock metadata typing not in Vercel SDK
132
+ event.providerMetadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ?? 0;
133
+ this.actualTokens = {
134
+ inputTokens: (this.actualTokens.inputTokens ?? 0) + (event.usage.inputTokens ?? 0),
135
+ outputTokens: (this.actualTokens.outputTokens ?? 0) + (event.usage.outputTokens ?? 0),
136
+ totalTokens: (this.actualTokens.totalTokens ?? 0) + (event.usage.totalTokens ?? 0),
137
+ ...event.usage.reasoningTokens !== void 0 && {
138
+ reasoningTokens: (this.actualTokens.reasoningTokens ?? 0) + event.usage.reasoningTokens
139
+ },
140
+ // Cache tokens
141
+ cacheReadTokens: (this.actualTokens.cacheReadTokens ?? 0) + (event.usage.cachedInputTokens ?? 0),
142
+ cacheWriteTokens: (this.actualTokens.cacheWriteTokens ?? 0) + cacheWriteTokens
143
+ };
144
+ }
145
+ break;
146
+ case "finish": {
147
+ this.finishReason = event.finishReason;
148
+ const cachedInputTokens = event.totalUsage.cachedInputTokens ?? 0;
149
+ const providerExcludesCached = this.config.provider === "anthropic" || this.config.provider === "bedrock";
150
+ const adjustedInputTokens = providerExcludesCached ? event.totalUsage.inputTokens ?? 0 : (event.totalUsage.inputTokens ?? 0) - cachedInputTokens;
151
+ const usage = {
152
+ inputTokens: adjustedInputTokens,
153
+ outputTokens: event.totalUsage.outputTokens ?? 0,
154
+ totalTokens: event.totalUsage.totalTokens ?? 0,
155
+ // Capture reasoning tokens if available (from Claude extended thinking, etc.)
156
+ ...event.totalUsage.reasoningTokens !== void 0 && {
157
+ reasoningTokens: event.totalUsage.reasoningTokens
158
+ },
159
+ // Cache tokens - read from totalUsage, write from accumulated finish-step events
160
+ cacheReadTokens: cachedInputTokens,
161
+ cacheWriteTokens: this.actualTokens.cacheWriteTokens ?? 0
162
+ };
163
+ this.actualTokens = usage;
164
+ this.logger.info("LLM response complete", {
165
+ finishReason: event.finishReason,
166
+ contentLength: this.accumulatedText.length,
167
+ content: this.accumulatedText,
168
+ ...this.reasoningText && {
169
+ reasoningLength: this.reasoningText.length,
170
+ reasoning: this.reasoningText
171
+ },
172
+ usage,
173
+ provider: this.config.provider,
174
+ model: this.config.model
175
+ });
176
+ if (this.assistantMessageId) {
177
+ await this.contextManager.updateAssistantMessage(
178
+ this.assistantMessageId,
179
+ {
180
+ tokenUsage: usage
181
+ }
182
+ );
183
+ }
184
+ const hasContent = this.accumulatedText || this.reasoningText;
185
+ if (this.finishReason !== "tool-calls" || hasContent) {
186
+ this.eventBus.emit("llm:response", {
187
+ content: this.accumulatedText,
188
+ ...this.reasoningText && { reasoning: this.reasoningText },
189
+ provider: this.config.provider,
190
+ model: this.config.model,
191
+ tokenUsage: usage,
192
+ finishReason: this.finishReason
193
+ });
194
+ }
195
+ break;
196
+ }
197
+ case "tool-error": {
198
+ this.logger.error("Tool execution failed", {
199
+ toolName: event.toolName,
200
+ toolCallId: event.toolCallId,
201
+ error: event.error
202
+ });
203
+ const errorMessage = event.error instanceof Error ? event.error.message : String(event.error);
204
+ const errorResult = {
205
+ content: [{ type: "text", text: `Error: ${errorMessage}` }],
206
+ meta: {
207
+ toolName: event.toolName,
208
+ toolCallId: event.toolCallId,
209
+ success: false
210
+ }
211
+ };
212
+ await this.contextManager.addToolResult(
213
+ event.toolCallId,
214
+ event.toolName,
215
+ errorResult,
216
+ void 0
217
+ // No approval metadata for errors
218
+ );
219
+ this.eventBus.emit("llm:tool-result", {
220
+ toolName: event.toolName,
221
+ callId: event.toolCallId,
222
+ success: false,
223
+ error: errorMessage
224
+ });
225
+ this.eventBus.emit("llm:error", {
226
+ error: event.error instanceof Error ? event.error : new Error(String(event.error)),
227
+ context: `Tool execution failed: ${event.toolName}`,
228
+ toolCallId: event.toolCallId,
229
+ recoverable: true
230
+ // Tool errors are typically recoverable
231
+ });
232
+ this.pendingToolCalls.delete(event.toolCallId);
233
+ break;
234
+ }
235
+ case "error": {
236
+ const err = event.error instanceof Error ? event.error : new Error(String(event.error));
237
+ this.logger.error(`LLM error: ${err.toString()}}`);
238
+ this.eventBus.emit("llm:error", {
239
+ error: err
240
+ });
241
+ break;
242
+ }
243
+ case "abort":
244
+ this.logger.debug("Stream aborted, emitting partial response");
245
+ this.finishReason = "cancelled";
246
+ await this.persistCancelledToolResults();
247
+ this.eventBus.emit("llm:response", {
248
+ content: this.accumulatedText,
249
+ ...this.reasoningText && { reasoning: this.reasoningText },
250
+ provider: this.config.provider,
251
+ model: this.config.model,
252
+ tokenUsage: this.actualTokens,
253
+ finishReason: "cancelled"
254
+ });
255
+ return {
256
+ text: this.accumulatedText,
257
+ finishReason: "cancelled",
258
+ usage: this.actualTokens
259
+ };
260
+ }
261
+ }
262
+ } catch (error) {
263
+ const isAbortError = error instanceof Error && error.name === "AbortError" || this.abortSignal.aborted;
264
+ if (isAbortError) {
265
+ this.logger.debug("Stream cancelled, emitting partial response");
266
+ this.finishReason = "cancelled";
267
+ await this.persistCancelledToolResults();
268
+ this.eventBus.emit("llm:response", {
269
+ content: this.accumulatedText,
270
+ ...this.reasoningText && { reasoning: this.reasoningText },
271
+ provider: this.config.provider,
272
+ model: this.config.model,
273
+ tokenUsage: this.actualTokens,
274
+ finishReason: "cancelled"
275
+ });
276
+ return {
277
+ text: this.accumulatedText,
278
+ finishReason: "cancelled",
279
+ usage: this.actualTokens
280
+ };
281
+ }
282
+ this.logger.error("Stream processing failed", { error });
283
+ this.eventBus.emit("llm:error", {
284
+ error: error instanceof Error ? error : new Error(String(error)),
285
+ context: "StreamProcessor",
286
+ recoverable: false
287
+ });
288
+ throw error;
289
+ }
290
+ return {
291
+ text: this.accumulatedText,
292
+ finishReason: this.finishReason,
293
+ usage: this.actualTokens
294
+ };
295
+ }
296
+ async createAssistantMessage() {
297
+ await this.contextManager.addAssistantMessage("", [], {});
298
+ return this.getLastMessageId();
299
+ }
300
+ async getLastMessageId() {
301
+ const history = await this.contextManager.getHistory();
302
+ const last = history[history.length - 1];
303
+ if (!last || !last.id) throw new Error("Failed to get last message ID");
304
+ return last.id;
305
+ }
306
+ /**
307
+ * Persist synthetic "cancelled" results for all pending tool calls.
308
+ * This maintains the tool_use/tool_result pairing required by LLM APIs.
309
+ * Called on abort/cancel to prevent "tool_use ids were found without tool_result" errors.
310
+ */
311
+ async persistCancelledToolResults() {
312
+ if (this.pendingToolCalls.size === 0) return;
313
+ this.logger.debug(
314
+ `Persisting cancelled results for ${this.pendingToolCalls.size} pending tool call(s)`
315
+ );
316
+ for (const [toolCallId, { toolName }] of this.pendingToolCalls) {
317
+ const cancelledResult = {
318
+ content: [{ type: "text", text: "Cancelled by user" }],
319
+ meta: {
320
+ toolName,
321
+ toolCallId,
322
+ success: false
323
+ }
324
+ };
325
+ await this.contextManager.addToolResult(
326
+ toolCallId,
327
+ toolName,
328
+ cancelledResult,
329
+ void 0
330
+ // No approval metadata for cancelled tools
331
+ );
332
+ this.eventBus.emit("llm:tool-result", {
333
+ toolName,
334
+ callId: toolCallId,
335
+ success: false,
336
+ error: "Cancelled by user"
337
+ });
338
+ }
339
+ this.pendingToolCalls.clear();
340
+ }
341
+ }
342
+ export {
343
+ StreamProcessor
344
+ };
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var tool_output_truncator_exports = {};
20
+ __export(tool_output_truncator_exports, {
21
+ DEFAULT_MAX_FILE_LINES: () => DEFAULT_MAX_FILE_LINES,
22
+ DEFAULT_MAX_LINE_LENGTH: () => DEFAULT_MAX_LINE_LENGTH,
23
+ DEFAULT_MAX_TOOL_OUTPUT_CHARS: () => DEFAULT_MAX_TOOL_OUTPUT_CHARS,
24
+ truncateStringOutput: () => truncateStringOutput,
25
+ truncateToolResult: () => truncateToolResult
26
+ });
27
+ module.exports = __toCommonJS(tool_output_truncator_exports);
28
+ const DEFAULT_MAX_TOOL_OUTPUT_CHARS = 12e4;
29
+ const DEFAULT_MAX_FILE_LINES = 2e3;
30
+ const DEFAULT_MAX_LINE_LENGTH = 2e3;
31
+ function truncateStringOutput(output, options = {}) {
32
+ const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_OUTPUT_CHARS;
33
+ if (output.length <= maxChars) {
34
+ return {
35
+ output,
36
+ truncated: false,
37
+ originalLength: output.length
38
+ };
39
+ }
40
+ const truncatedOutput = output.slice(0, maxChars) + `
41
+
42
+ [Output truncated - exceeded maximum length of ${maxChars} characters. Total length was ${output.length} characters.]`;
43
+ return {
44
+ output: truncatedOutput,
45
+ truncated: true,
46
+ originalLength: output.length
47
+ };
48
+ }
49
+ function truncateToolResult(result, options = {}) {
50
+ const newContent = result.content.map((part) => {
51
+ if (part.type === "text") {
52
+ const { output, truncated } = truncateStringOutput(part.text, options);
53
+ if (truncated) {
54
+ return { ...part, text: output };
55
+ }
56
+ }
57
+ return part;
58
+ });
59
+ return {
60
+ ...result,
61
+ content: newContent,
62
+ meta: {
63
+ ...result.meta
64
+ // We could add a flag here if we wanted to track truncation in metadata
65
+ }
66
+ };
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ DEFAULT_MAX_FILE_LINES,
71
+ DEFAULT_MAX_LINE_LENGTH,
72
+ DEFAULT_MAX_TOOL_OUTPUT_CHARS,
73
+ truncateStringOutput,
74
+ truncateToolResult
75
+ });
@@ -0,0 +1,27 @@
1
+ import { SanitizedToolResult } from '../../context/types.js';
2
+ export declare const DEFAULT_MAX_TOOL_OUTPUT_CHARS = 120000;
3
+ export declare const DEFAULT_MAX_FILE_LINES = 2000;
4
+ export declare const DEFAULT_MAX_LINE_LENGTH = 2000;
5
+ export interface TruncationOptions {
6
+ maxChars?: number;
7
+ }
8
+ export interface TruncationResult {
9
+ output: string;
10
+ truncated: boolean;
11
+ originalLength: number;
12
+ }
13
+ /**
14
+ * Truncates a string tool output to prevent context overflow.
15
+ * Appends a warning message if truncated.
16
+ */
17
+ export declare function truncateStringOutput(output: string, options?: TruncationOptions): TruncationResult;
18
+ /**
19
+ * Truncates a SanitizedToolResult.
20
+ * Currently only truncates text parts.
21
+ *
22
+ * @param result The sanitized tool result to truncate
23
+ * @param options Truncation options
24
+ * @returns The truncated result
25
+ */
26
+ export declare function truncateToolResult(result: SanitizedToolResult, options?: TruncationOptions): SanitizedToolResult;
27
+ //# sourceMappingURL=tool-output-truncator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-output-truncator.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/tool-output-truncator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,eAAO,MAAM,6BAA6B,SAAU,CAAC;AACrD,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAChC,gBAAgB,CAoBlB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,iBAAsB,GAChC,mBAAmB,CAmBrB"}
@@ -0,0 +1,48 @@
1
+ import "../../chunk-PTJYTZNU.js";
2
+ const DEFAULT_MAX_TOOL_OUTPUT_CHARS = 12e4;
3
+ const DEFAULT_MAX_FILE_LINES = 2e3;
4
+ const DEFAULT_MAX_LINE_LENGTH = 2e3;
5
+ function truncateStringOutput(output, options = {}) {
6
+ const maxChars = options.maxChars ?? DEFAULT_MAX_TOOL_OUTPUT_CHARS;
7
+ if (output.length <= maxChars) {
8
+ return {
9
+ output,
10
+ truncated: false,
11
+ originalLength: output.length
12
+ };
13
+ }
14
+ const truncatedOutput = output.slice(0, maxChars) + `
15
+
16
+ [Output truncated - exceeded maximum length of ${maxChars} characters. Total length was ${output.length} characters.]`;
17
+ return {
18
+ output: truncatedOutput,
19
+ truncated: true,
20
+ originalLength: output.length
21
+ };
22
+ }
23
+ function truncateToolResult(result, options = {}) {
24
+ const newContent = result.content.map((part) => {
25
+ if (part.type === "text") {
26
+ const { output, truncated } = truncateStringOutput(part.text, options);
27
+ if (truncated) {
28
+ return { ...part, text: output };
29
+ }
30
+ }
31
+ return part;
32
+ });
33
+ return {
34
+ ...result,
35
+ content: newContent,
36
+ meta: {
37
+ ...result.meta
38
+ // We could add a flag here if we wanted to track truncation in metadata
39
+ }
40
+ };
41
+ }
42
+ export {
43
+ DEFAULT_MAX_FILE_LINES,
44
+ DEFAULT_MAX_LINE_LENGTH,
45
+ DEFAULT_MAX_TOOL_OUTPUT_CHARS,
46
+ truncateStringOutput,
47
+ truncateToolResult
48
+ };