@dexto/core 1.3.0 → 1.5.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 (781) hide show
  1. package/README.md +53 -9
  2. package/dist/agent/DextoAgent.cjs +570 -210
  3. package/dist/agent/DextoAgent.d.ts +175 -35
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +568 -208
  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.cjs +4 -1
  16. package/dist/agent/index.d.ts +2 -2
  17. package/dist/agent/index.d.ts.map +1 -1
  18. package/dist/agent/index.js +6 -2
  19. package/dist/agent/schemas.cjs +90 -68
  20. package/dist/agent/schemas.d.ts +5998 -146
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +90 -65
  23. package/dist/agent/state-manager.cjs +5 -5
  24. package/dist/agent/state-manager.d.ts +4 -4
  25. package/dist/agent/state-manager.js +6 -6
  26. package/dist/agent/types.d.ts +24 -10
  27. package/dist/agent/types.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.js +1 -1
  30. package/dist/approval/factory.js +1 -1
  31. package/dist/approval/index.js +1 -1
  32. package/dist/approval/manager.cjs +234 -4
  33. package/dist/approval/manager.d.ts +131 -4
  34. package/dist/approval/manager.d.ts.map +1 -1
  35. package/dist/approval/manager.js +225 -5
  36. package/dist/approval/schemas.cjs +57 -7
  37. package/dist/approval/schemas.d.ts +344 -33
  38. package/dist/approval/schemas.d.ts.map +1 -1
  39. package/dist/approval/schemas.js +54 -8
  40. package/dist/approval/types.cjs +1 -0
  41. package/dist/approval/types.d.ts +32 -1
  42. package/dist/approval/types.d.ts.map +1 -1
  43. package/dist/approval/types.js +2 -1
  44. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  45. package/dist/context/compaction/factory.cjs +57 -0
  46. package/dist/context/compaction/factory.d.ts +17 -0
  47. package/dist/context/compaction/factory.d.ts.map +1 -0
  48. package/dist/context/compaction/factory.js +34 -0
  49. package/dist/context/compaction/index.cjs +49 -0
  50. package/dist/context/compaction/index.d.ts +11 -0
  51. package/dist/context/compaction/index.d.ts.map +1 -0
  52. package/dist/context/compaction/index.js +19 -0
  53. package/dist/context/compaction/overflow.cjs +43 -0
  54. package/dist/context/compaction/overflow.d.ts +33 -0
  55. package/dist/context/compaction/overflow.d.ts.map +1 -0
  56. package/dist/context/compaction/overflow.js +19 -0
  57. package/dist/context/compaction/provider.cjs +16 -0
  58. package/dist/context/compaction/provider.d.ts +48 -0
  59. package/dist/context/compaction/provider.d.ts.map +1 -0
  60. package/dist/context/compaction/providers/noop-provider.cjs +48 -0
  61. package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
  62. package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
  63. package/dist/context/compaction/providers/noop-provider.js +24 -0
  64. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
  65. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
  66. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
  67. package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
  68. package/dist/{llm/tokenizer/factory.cjs → context/compaction/registry.cjs} +15 -20
  69. package/dist/context/compaction/registry.d.ts +19 -0
  70. package/dist/context/compaction/registry.d.ts.map +1 -0
  71. package/dist/context/compaction/registry.js +16 -0
  72. package/dist/context/compaction/schemas.cjs +38 -0
  73. package/dist/context/compaction/schemas.d.ts +24 -0
  74. package/dist/context/compaction/schemas.d.ts.map +1 -0
  75. package/dist/context/compaction/schemas.js +14 -0
  76. package/dist/{llm/tokenizer/types.cjs → context/compaction/strategies/noop.cjs} +12 -9
  77. package/dist/context/compaction/strategies/noop.d.ts +18 -0
  78. package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
  79. package/dist/context/compaction/strategies/noop.js +13 -0
  80. package/dist/context/compaction/strategies/reactive-overflow.cjs +201 -0
  81. package/dist/context/compaction/strategies/reactive-overflow.d.ts +81 -0
  82. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
  83. package/dist/context/compaction/strategies/reactive-overflow.js +178 -0
  84. package/dist/context/compaction/types.d.ts +20 -0
  85. package/dist/context/compaction/types.d.ts.map +1 -0
  86. package/dist/context/error-codes.cjs +7 -0
  87. package/dist/context/error-codes.d.ts +8 -1
  88. package/dist/context/error-codes.d.ts.map +1 -1
  89. package/dist/context/error-codes.js +8 -1
  90. package/dist/context/errors.cjs +68 -0
  91. package/dist/context/errors.d.ts +21 -0
  92. package/dist/context/errors.d.ts.map +1 -1
  93. package/dist/context/errors.js +69 -1
  94. package/dist/context/index.cjs +3 -1
  95. package/dist/context/index.d.ts +1 -0
  96. package/dist/context/index.d.ts.map +1 -1
  97. package/dist/context/index.js +2 -1
  98. package/dist/context/manager.cjs +280 -323
  99. package/dist/context/manager.d.ts +65 -111
  100. package/dist/context/manager.d.ts.map +1 -1
  101. package/dist/context/manager.js +280 -328
  102. package/dist/context/media-helpers.js +1 -1
  103. package/dist/context/types.cjs +49 -0
  104. package/dist/context/types.d.ts +187 -72
  105. package/dist/context/types.d.ts.map +1 -1
  106. package/dist/context/types.js +35 -0
  107. package/dist/context/utils.cjs +293 -290
  108. package/dist/context/utils.d.ts +32 -18
  109. package/dist/context/utils.d.ts.map +1 -1
  110. package/dist/context/utils.js +293 -290
  111. package/dist/errors/DextoBaseError.js +1 -1
  112. package/dist/errors/DextoRuntimeError.js +1 -1
  113. package/dist/errors/DextoValidationError.js +1 -1
  114. package/dist/errors/index.js +1 -1
  115. package/dist/errors/result-bridge.cjs +2 -3
  116. package/dist/errors/result-bridge.d.ts.map +1 -1
  117. package/dist/errors/result-bridge.js +3 -4
  118. package/dist/errors/types.js +1 -1
  119. package/dist/events/index.cjs +18 -1
  120. package/dist/events/index.d.ts +149 -12
  121. package/dist/events/index.d.ts.map +1 -1
  122. package/dist/events/index.js +19 -2
  123. package/dist/filesystem/error-codes.js +1 -1
  124. package/dist/filesystem/errors.js +1 -1
  125. package/dist/filesystem/filesystem-service.cjs +39 -0
  126. package/dist/filesystem/filesystem-service.d.ts +32 -0
  127. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  128. package/dist/filesystem/filesystem-service.js +40 -1
  129. package/dist/filesystem/index.d.ts +1 -1
  130. package/dist/filesystem/index.d.ts.map +1 -1
  131. package/dist/filesystem/index.js +1 -1
  132. package/dist/filesystem/path-validator.cjs +69 -1
  133. package/dist/filesystem/path-validator.d.ts +43 -2
  134. package/dist/filesystem/path-validator.d.ts.map +1 -1
  135. package/dist/filesystem/path-validator.js +70 -2
  136. package/dist/image/define-image.cjs +146 -0
  137. package/dist/image/define-image.d.ts +71 -0
  138. package/dist/image/define-image.d.ts.map +1 -0
  139. package/dist/image/define-image.js +121 -0
  140. package/dist/{llm/tokenizer/default.cjs → image/index.cjs} +10 -19
  141. package/dist/image/index.d.ts +53 -0
  142. package/dist/image/index.d.ts.map +1 -0
  143. package/dist/image/index.js +7 -0
  144. package/dist/image/types.d.ts +231 -0
  145. package/dist/image/types.d.ts.map +1 -0
  146. package/dist/image/types.js +0 -0
  147. package/dist/index.browser.cjs +23 -8
  148. package/dist/index.browser.d.ts +4 -3
  149. package/dist/index.browser.d.ts.map +1 -1
  150. package/dist/index.browser.js +20 -3
  151. package/dist/index.cjs +5 -1
  152. package/dist/index.d.ts +2 -0
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +3 -1
  155. package/dist/llm/error-codes.cjs +1 -1
  156. package/dist/llm/error-codes.d.ts +1 -1
  157. package/dist/llm/error-codes.d.ts.map +1 -1
  158. package/dist/llm/error-codes.js +2 -2
  159. package/dist/llm/errors.cjs +34 -10
  160. package/dist/llm/errors.d.ts +23 -11
  161. package/dist/llm/errors.d.ts.map +1 -1
  162. package/dist/llm/errors.js +36 -12
  163. package/dist/llm/executor/stream-processor.cjs +375 -0
  164. package/dist/llm/executor/stream-processor.d.ts +55 -0
  165. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  166. package/dist/llm/executor/stream-processor.js +352 -0
  167. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  168. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  169. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  170. package/dist/llm/executor/tool-output-truncator.js +48 -0
  171. package/dist/llm/executor/turn-executor.cjs +780 -0
  172. package/dist/llm/executor/turn-executor.d.ts +167 -0
  173. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  174. package/dist/llm/executor/turn-executor.js +711 -0
  175. package/dist/llm/executor/types.cjs +16 -0
  176. package/dist/llm/executor/types.d.ts +27 -0
  177. package/dist/llm/executor/types.d.ts.map +1 -0
  178. package/dist/llm/executor/types.js +0 -0
  179. package/dist/llm/formatters/vercel.cjs +26 -188
  180. package/dist/llm/formatters/vercel.d.ts +2 -14
  181. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  182. package/dist/llm/formatters/vercel.js +25 -187
  183. package/dist/llm/index.cjs +18 -1
  184. package/dist/llm/index.d.ts +2 -0
  185. package/dist/llm/index.d.ts.map +1 -1
  186. package/dist/llm/index.js +14 -0
  187. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  188. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  189. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  190. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  191. package/dist/llm/providers/local/downloader.cjs +291 -0
  192. package/dist/llm/providers/local/downloader.d.ts +82 -0
  193. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  194. package/dist/llm/providers/local/downloader.js +251 -0
  195. package/dist/llm/providers/local/error-codes.cjs +57 -0
  196. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  197. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  198. package/dist/llm/providers/local/error-codes.js +34 -0
  199. package/dist/llm/providers/local/errors.cjs +240 -0
  200. package/dist/llm/providers/local/errors.d.ts +31 -0
  201. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  202. package/dist/llm/providers/local/errors.js +217 -0
  203. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  204. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  205. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  206. package/dist/llm/providers/local/gpu-detector.js +178 -0
  207. package/dist/llm/providers/local/index.cjs +147 -0
  208. package/dist/llm/providers/local/index.d.ts +21 -0
  209. package/dist/llm/providers/local/index.d.ts.map +1 -0
  210. package/dist/llm/providers/local/index.js +126 -0
  211. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  212. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  213. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  214. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  215. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  216. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  217. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  218. package/dist/llm/providers/local/ollama-provider.js +198 -0
  219. package/dist/llm/providers/local/registry.cjs +343 -0
  220. package/dist/llm/providers/local/registry.d.ts +51 -0
  221. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  222. package/dist/llm/providers/local/registry.js +312 -0
  223. package/dist/llm/providers/local/schemas.cjs +169 -0
  224. package/dist/llm/providers/local/schemas.d.ts +395 -0
  225. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  226. package/dist/llm/providers/local/schemas.js +133 -0
  227. package/dist/llm/providers/local/types.cjs +16 -0
  228. package/dist/llm/providers/local/types.d.ts +219 -0
  229. package/dist/llm/providers/local/types.d.ts.map +1 -0
  230. package/dist/llm/providers/local/types.js +0 -0
  231. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  232. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  233. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  234. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  235. package/dist/llm/registry.cjs +569 -52
  236. package/dist/llm/registry.d.ts +79 -39
  237. package/dist/llm/registry.d.ts.map +1 -1
  238. package/dist/llm/registry.js +564 -49
  239. package/dist/llm/resolver.cjs +62 -34
  240. package/dist/llm/resolver.d.ts +3 -3
  241. package/dist/llm/resolver.d.ts.map +1 -1
  242. package/dist/llm/resolver.js +69 -38
  243. package/dist/llm/schemas.cjs +92 -97
  244. package/dist/llm/schemas.d.ts +162 -39
  245. package/dist/llm/schemas.d.ts.map +1 -1
  246. package/dist/llm/schemas.js +93 -100
  247. package/dist/llm/services/factory.cjs +88 -103
  248. package/dist/llm/services/factory.d.ts +17 -4
  249. package/dist/llm/services/factory.d.ts.map +1 -1
  250. package/dist/llm/services/factory.js +87 -93
  251. package/dist/llm/services/test-utils.integration.cjs +28 -10
  252. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  253. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  254. package/dist/llm/services/test-utils.integration.js +33 -12
  255. package/dist/llm/services/types.d.ts +1 -28
  256. package/dist/llm/services/types.d.ts.map +1 -1
  257. package/dist/llm/services/vercel.cjs +58 -469
  258. package/dist/llm/services/vercel.d.ts +39 -21
  259. package/dist/llm/services/vercel.d.ts.map +1 -1
  260. package/dist/llm/services/vercel.js +60 -476
  261. package/dist/llm/types.cjs +11 -4
  262. package/dist/llm/types.d.ts +9 -9
  263. package/dist/llm/types.d.ts.map +1 -1
  264. package/dist/llm/types.js +12 -4
  265. package/dist/llm/validation.js +1 -1
  266. package/dist/logger/browser.js +1 -1
  267. package/dist/logger/factory.js +1 -1
  268. package/dist/logger/index.js +1 -1
  269. package/dist/logger/logger.js +1 -1
  270. package/dist/logger/v2/dexto-logger.cjs +34 -6
  271. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  272. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  273. package/dist/logger/v2/dexto-logger.js +35 -7
  274. package/dist/logger/v2/error-codes.js +1 -1
  275. package/dist/logger/v2/errors.js +1 -1
  276. package/dist/logger/v2/schemas.js +1 -1
  277. package/dist/logger/v2/test-utils.cjs +70 -0
  278. package/dist/logger/v2/test-utils.d.ts +17 -0
  279. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  280. package/dist/logger/v2/test-utils.js +46 -0
  281. package/dist/logger/v2/transport-factory.js +1 -1
  282. package/dist/logger/v2/transports/console-transport.js +1 -1
  283. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  284. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  285. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  286. package/dist/logger/v2/transports/file-transport.js +7 -1
  287. package/dist/logger/v2/types.cjs +1 -0
  288. package/dist/logger/v2/types.d.ts +18 -2
  289. package/dist/logger/v2/types.d.ts.map +1 -1
  290. package/dist/logger/v2/types.js +2 -1
  291. package/dist/mcp/error-codes.cjs +1 -0
  292. package/dist/mcp/error-codes.d.ts +1 -0
  293. package/dist/mcp/error-codes.d.ts.map +1 -1
  294. package/dist/mcp/error-codes.js +2 -1
  295. package/dist/mcp/errors.cjs +13 -0
  296. package/dist/mcp/errors.d.ts +7 -0
  297. package/dist/mcp/errors.d.ts.map +1 -1
  298. package/dist/mcp/errors.js +14 -1
  299. package/dist/mcp/manager.cjs +12 -0
  300. package/dist/mcp/manager.d.ts +17 -0
  301. package/dist/mcp/manager.d.ts.map +1 -1
  302. package/dist/mcp/manager.js +13 -1
  303. package/dist/mcp/mcp-client.cjs +0 -3
  304. package/dist/mcp/mcp-client.d.ts.map +1 -1
  305. package/dist/mcp/mcp-client.js +1 -4
  306. package/dist/mcp/resolver.js +1 -1
  307. package/dist/mcp/schemas.cjs +6 -0
  308. package/dist/mcp/schemas.d.ts +52 -0
  309. package/dist/mcp/schemas.d.ts.map +1 -1
  310. package/dist/mcp/schemas.js +6 -1
  311. package/dist/memory/error-codes.js +1 -1
  312. package/dist/memory/errors.js +1 -1
  313. package/dist/memory/index.js +1 -1
  314. package/dist/memory/manager.js +1 -1
  315. package/dist/memory/schemas.d.ts +3 -3
  316. package/dist/memory/schemas.js +1 -1
  317. package/dist/plugins/builtins/content-policy.js +1 -1
  318. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  319. package/dist/plugins/error-codes.cjs +3 -0
  320. package/dist/plugins/error-codes.d.ts +7 -1
  321. package/dist/plugins/error-codes.d.ts.map +1 -1
  322. package/dist/plugins/error-codes.js +4 -1
  323. package/dist/plugins/index.cjs +7 -0
  324. package/dist/plugins/index.d.ts +4 -2
  325. package/dist/plugins/index.d.ts.map +1 -1
  326. package/dist/plugins/index.js +7 -2
  327. package/dist/plugins/loader.js +1 -1
  328. package/dist/plugins/manager.cjs +92 -7
  329. package/dist/plugins/manager.d.ts +10 -3
  330. package/dist/plugins/manager.d.ts.map +1 -1
  331. package/dist/plugins/manager.js +93 -8
  332. package/dist/plugins/registrations/builtins.js +1 -1
  333. package/dist/plugins/registry.cjs +63 -0
  334. package/dist/plugins/registry.d.ts +101 -0
  335. package/dist/plugins/registry.d.ts.map +1 -0
  336. package/dist/plugins/registry.js +39 -0
  337. package/dist/plugins/schemas.cjs +17 -5
  338. package/dist/plugins/schemas.d.ts +65 -8
  339. package/dist/plugins/schemas.d.ts.map +1 -1
  340. package/dist/plugins/schemas.js +16 -5
  341. package/dist/plugins/types.d.ts +0 -1
  342. package/dist/plugins/types.d.ts.map +1 -1
  343. package/dist/process/command-validator.js +1 -1
  344. package/dist/process/error-codes.js +1 -1
  345. package/dist/process/errors.js +1 -1
  346. package/dist/process/index.js +1 -1
  347. package/dist/process/process-service.cjs +78 -26
  348. package/dist/process/process-service.d.ts +6 -1
  349. package/dist/process/process-service.d.ts.map +1 -1
  350. package/dist/process/process-service.js +79 -27
  351. package/dist/process/types.d.ts +2 -2
  352. package/dist/process/types.d.ts.map +1 -1
  353. package/dist/prompts/error-codes.cjs +1 -0
  354. package/dist/prompts/error-codes.d.ts +2 -1
  355. package/dist/prompts/error-codes.d.ts.map +1 -1
  356. package/dist/prompts/error-codes.js +2 -1
  357. package/dist/prompts/errors.cjs +15 -0
  358. package/dist/prompts/errors.d.ts +4 -0
  359. package/dist/prompts/errors.d.ts.map +1 -1
  360. package/dist/prompts/errors.js +16 -1
  361. package/dist/prompts/index.js +1 -1
  362. package/dist/prompts/name-validation.js +1 -1
  363. package/dist/prompts/prompt-manager.cjs +13 -2
  364. package/dist/prompts/prompt-manager.d.ts +7 -0
  365. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  366. package/dist/prompts/prompt-manager.js +14 -3
  367. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  368. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  369. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  370. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  371. package/dist/prompts/providers/custom-prompt-provider.js +1 -1
  372. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  373. package/dist/prompts/schemas.d.ts +12 -0
  374. package/dist/prompts/schemas.d.ts.map +1 -1
  375. package/dist/prompts/schemas.js +1 -1
  376. package/dist/prompts/types.d.ts +2 -0
  377. package/dist/prompts/types.d.ts.map +1 -1
  378. package/dist/prompts/utils.js +1 -1
  379. package/dist/providers/base-registry.cjs +147 -0
  380. package/dist/providers/base-registry.d.ts +147 -0
  381. package/dist/providers/base-registry.d.ts.map +1 -0
  382. package/dist/providers/base-registry.js +123 -0
  383. package/dist/providers/discovery.cjs +95 -0
  384. package/dist/providers/discovery.d.ts +94 -0
  385. package/dist/providers/discovery.d.ts.map +1 -0
  386. package/dist/providers/discovery.js +70 -0
  387. package/dist/providers/index.cjs +24 -0
  388. package/dist/providers/index.d.ts +32 -0
  389. package/dist/providers/index.d.ts.map +1 -0
  390. package/dist/providers/index.js +2 -0
  391. package/dist/resources/error-codes.js +1 -1
  392. package/dist/resources/errors.js +1 -1
  393. package/dist/resources/handlers/blob-handler.js +1 -1
  394. package/dist/resources/handlers/factory.js +1 -1
  395. package/dist/resources/handlers/filesystem-handler.js +1 -1
  396. package/dist/resources/index.js +1 -1
  397. package/dist/resources/internal-provider.js +1 -1
  398. package/dist/resources/manager.js +1 -1
  399. package/dist/resources/reference-parser.cjs +3 -3
  400. package/dist/resources/reference-parser.d.ts.map +1 -1
  401. package/dist/resources/reference-parser.js +4 -4
  402. package/dist/resources/schemas.js +1 -1
  403. package/dist/search/index.js +1 -1
  404. package/dist/search/search-service.js +1 -1
  405. package/dist/session/chat-session.cjs +169 -54
  406. package/dist/session/chat-session.d.ts +69 -29
  407. package/dist/session/chat-session.d.ts.map +1 -1
  408. package/dist/session/chat-session.js +171 -56
  409. package/dist/session/error-codes.js +1 -1
  410. package/dist/session/errors.js +1 -1
  411. package/dist/session/history/database.cjs +134 -21
  412. package/dist/session/history/database.d.ts +37 -8
  413. package/dist/session/history/database.d.ts.map +1 -1
  414. package/dist/session/history/database.js +135 -22
  415. package/dist/session/history/factory.js +1 -1
  416. package/dist/session/history/memory.cjs +18 -0
  417. package/dist/session/history/memory.d.ts +8 -0
  418. package/dist/session/history/memory.d.ts.map +1 -1
  419. package/dist/session/history/memory.js +19 -1
  420. package/dist/session/history/types.d.ts +13 -1
  421. package/dist/session/history/types.d.ts.map +1 -1
  422. package/dist/session/index.cjs +3 -0
  423. package/dist/session/index.d.ts +3 -0
  424. package/dist/session/index.d.ts.map +1 -1
  425. package/dist/session/index.js +3 -1
  426. package/dist/session/message-queue.cjs +201 -0
  427. package/dist/session/message-queue.d.ts +114 -0
  428. package/dist/session/message-queue.d.ts.map +1 -0
  429. package/dist/session/message-queue.js +178 -0
  430. package/dist/session/schemas.js +1 -1
  431. package/dist/session/session-manager.cjs +57 -7
  432. package/dist/session/session-manager.d.ts +18 -0
  433. package/dist/session/session-manager.d.ts.map +1 -1
  434. package/dist/session/session-manager.js +58 -8
  435. package/dist/session/title-generator.cjs +4 -8
  436. package/dist/session/title-generator.d.ts +1 -2
  437. package/dist/session/title-generator.d.ts.map +1 -1
  438. package/dist/session/title-generator.js +5 -9
  439. package/dist/session/types.cjs +16 -0
  440. package/dist/session/types.d.ts +14 -0
  441. package/dist/session/types.d.ts.map +1 -0
  442. package/dist/session/types.js +0 -0
  443. package/dist/storage/blob/factory.cjs +8 -11
  444. package/dist/storage/blob/factory.d.ts +32 -6
  445. package/dist/storage/blob/factory.d.ts.map +1 -1
  446. package/dist/storage/blob/factory.js +9 -12
  447. package/dist/storage/blob/index.cjs +56 -0
  448. package/dist/storage/blob/index.d.ts +45 -0
  449. package/dist/storage/blob/index.d.ts.map +1 -0
  450. package/dist/storage/blob/index.js +30 -0
  451. package/dist/storage/blob/local-blob-store.js +1 -1
  452. package/dist/storage/blob/memory-blob-store.js +1 -1
  453. package/dist/storage/blob/provider.cjs +16 -0
  454. package/dist/storage/blob/provider.d.ts +50 -0
  455. package/dist/storage/blob/provider.d.ts.map +1 -0
  456. package/dist/storage/blob/provider.js +0 -0
  457. package/dist/storage/blob/providers/index.cjs +31 -0
  458. package/dist/storage/blob/providers/index.d.ts +8 -0
  459. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  460. package/dist/storage/blob/providers/index.js +7 -0
  461. package/dist/storage/blob/providers/local.cjs +39 -0
  462. package/dist/storage/blob/providers/local.d.ts +17 -0
  463. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  464. package/dist/storage/blob/providers/local.js +16 -0
  465. package/dist/storage/blob/providers/memory.cjs +39 -0
  466. package/dist/storage/blob/providers/memory.d.ts +17 -0
  467. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  468. package/dist/storage/blob/providers/memory.js +16 -0
  469. package/dist/storage/blob/registry.cjs +50 -0
  470. package/dist/storage/blob/registry.d.ts +42 -0
  471. package/dist/storage/blob/registry.d.ts.map +1 -0
  472. package/dist/storage/blob/registry.js +26 -0
  473. package/dist/storage/blob/schemas.cjs +9 -12
  474. package/dist/storage/blob/schemas.d.ts +39 -34
  475. package/dist/storage/blob/schemas.d.ts.map +1 -1
  476. package/dist/storage/blob/schemas.js +7 -12
  477. package/dist/storage/cache/factory.cjs +8 -36
  478. package/dist/storage/cache/factory.d.ts +32 -7
  479. package/dist/storage/cache/factory.d.ts.map +1 -1
  480. package/dist/storage/cache/factory.js +9 -27
  481. package/dist/storage/cache/index.cjs +53 -0
  482. package/dist/storage/cache/index.d.ts +44 -0
  483. package/dist/storage/cache/index.d.ts.map +1 -0
  484. package/dist/storage/cache/index.js +28 -0
  485. package/dist/storage/cache/memory-cache-store.js +1 -1
  486. package/dist/storage/cache/provider.cjs +16 -0
  487. package/dist/storage/cache/provider.d.ts +56 -0
  488. package/dist/storage/cache/provider.d.ts.map +1 -0
  489. package/dist/storage/cache/provider.js +0 -0
  490. package/dist/storage/cache/providers/index.cjs +31 -0
  491. package/dist/storage/cache/providers/index.d.ts +8 -0
  492. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  493. package/dist/storage/cache/providers/index.js +7 -0
  494. package/dist/storage/cache/providers/memory.cjs +40 -0
  495. package/dist/storage/cache/providers/memory.d.ts +17 -0
  496. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  497. package/dist/storage/cache/providers/memory.js +17 -0
  498. package/dist/storage/cache/providers/redis.cjs +66 -0
  499. package/dist/storage/cache/providers/redis.d.ts +20 -0
  500. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  501. package/dist/storage/cache/providers/redis.js +33 -0
  502. package/dist/storage/cache/redis-store.js +1 -1
  503. package/dist/{llm/tokenizer/google.cjs → storage/cache/registry.cjs} +23 -25
  504. package/dist/storage/cache/registry.d.ts +42 -0
  505. package/dist/storage/cache/registry.d.ts.map +1 -0
  506. package/dist/storage/cache/registry.js +26 -0
  507. package/dist/storage/cache/schemas.cjs +6 -2
  508. package/dist/storage/cache/schemas.d.ts +2 -3
  509. package/dist/storage/cache/schemas.d.ts.map +1 -1
  510. package/dist/storage/cache/schemas.js +4 -2
  511. package/dist/storage/database/factory.cjs +8 -47
  512. package/dist/storage/database/factory.d.ts +34 -8
  513. package/dist/storage/database/factory.d.ts.map +1 -1
  514. package/dist/storage/database/factory.js +9 -38
  515. package/dist/storage/database/index.cjs +58 -0
  516. package/dist/storage/database/index.d.ts +45 -0
  517. package/dist/storage/database/index.d.ts.map +1 -0
  518. package/dist/storage/database/index.js +37 -0
  519. package/dist/storage/database/memory-database-store.js +1 -1
  520. package/dist/storage/database/postgres-store.cjs +12 -0
  521. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  522. package/dist/storage/database/postgres-store.js +13 -1
  523. package/dist/storage/database/provider.cjs +16 -0
  524. package/dist/storage/database/provider.d.ts +56 -0
  525. package/dist/storage/database/provider.d.ts.map +1 -0
  526. package/dist/storage/database/provider.js +0 -0
  527. package/dist/storage/database/providers/index.cjs +34 -0
  528. package/dist/storage/database/providers/index.d.ts +9 -0
  529. package/dist/storage/database/providers/index.d.ts.map +1 -0
  530. package/dist/storage/database/providers/index.js +9 -0
  531. package/dist/storage/database/providers/memory.cjs +40 -0
  532. package/dist/storage/database/providers/memory.d.ts +16 -0
  533. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  534. package/dist/storage/database/providers/memory.js +17 -0
  535. package/dist/storage/database/providers/postgres.cjs +62 -0
  536. package/dist/storage/database/providers/postgres.d.ts +19 -0
  537. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  538. package/dist/storage/database/providers/postgres.js +29 -0
  539. package/dist/storage/database/providers/sqlite.cjs +66 -0
  540. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  541. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  542. package/dist/storage/database/providers/sqlite.js +33 -0
  543. package/dist/storage/database/registry.cjs +50 -0
  544. package/dist/storage/database/registry.d.ts +42 -0
  545. package/dist/storage/database/registry.d.ts.map +1 -0
  546. package/dist/storage/database/registry.js +26 -0
  547. package/dist/storage/database/schemas.cjs +8 -2
  548. package/dist/storage/database/schemas.d.ts +3 -4
  549. package/dist/storage/database/schemas.d.ts.map +1 -1
  550. package/dist/storage/database/schemas.js +5 -2
  551. package/dist/storage/database/sqlite-store.js +1 -1
  552. package/dist/storage/error-codes.cjs +6 -0
  553. package/dist/storage/error-codes.d.ts +7 -1
  554. package/dist/storage/error-codes.d.ts.map +1 -1
  555. package/dist/storage/error-codes.js +7 -1
  556. package/dist/storage/errors.cjs +80 -0
  557. package/dist/storage/errors.d.ts +24 -0
  558. package/dist/storage/errors.d.ts.map +1 -1
  559. package/dist/storage/errors.js +81 -1
  560. package/dist/storage/index.cjs +47 -4
  561. package/dist/storage/index.d.ts +34 -8
  562. package/dist/storage/index.d.ts.map +1 -1
  563. package/dist/storage/index.js +33 -4
  564. package/dist/storage/schemas.cjs +4 -0
  565. package/dist/storage/schemas.d.ts +17 -50
  566. package/dist/storage/schemas.d.ts.map +1 -1
  567. package/dist/storage/schemas.js +6 -2
  568. package/dist/storage/storage-manager.cjs +6 -6
  569. package/dist/storage/storage-manager.d.ts.map +1 -1
  570. package/dist/storage/storage-manager.js +4 -4
  571. package/dist/systemPrompt/contributors.js +1 -1
  572. package/dist/systemPrompt/error-codes.js +1 -1
  573. package/dist/systemPrompt/errors.js +1 -1
  574. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  575. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  576. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  577. package/dist/systemPrompt/in-built-prompts.js +7 -6
  578. package/dist/systemPrompt/index.js +1 -1
  579. package/dist/systemPrompt/manager.js +1 -1
  580. package/dist/systemPrompt/registry.cjs +2 -2
  581. package/dist/systemPrompt/registry.d.ts +1 -1
  582. package/dist/systemPrompt/registry.d.ts.map +1 -1
  583. package/dist/systemPrompt/registry.js +3 -3
  584. package/dist/systemPrompt/schemas.cjs +2 -2
  585. package/dist/systemPrompt/schemas.d.ts +18 -18
  586. package/dist/systemPrompt/schemas.js +3 -3
  587. package/dist/telemetry/decorators.js +1 -1
  588. package/dist/telemetry/error-codes.js +1 -1
  589. package/dist/telemetry/errors.js +1 -1
  590. package/dist/telemetry/exporters.js +1 -1
  591. package/dist/telemetry/index.js +1 -1
  592. package/dist/telemetry/schemas.js +1 -1
  593. package/dist/telemetry/telemetry.js +1 -1
  594. package/dist/telemetry/utils.js +1 -1
  595. package/dist/tools/bash-pattern-utils.cjs +91 -0
  596. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  597. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  598. package/dist/tools/bash-pattern-utils.js +64 -0
  599. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  600. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  601. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  602. package/dist/tools/custom-tool-registry.cjs +64 -0
  603. package/dist/tools/custom-tool-registry.d.ts +120 -0
  604. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  605. package/dist/tools/custom-tool-registry.js +40 -0
  606. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  607. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  608. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  609. package/dist/tools/custom-tool-schema-registry.js +140 -0
  610. package/dist/tools/display-types.cjs +60 -0
  611. package/dist/tools/display-types.d.ts +133 -0
  612. package/dist/tools/display-types.d.ts.map +1 -0
  613. package/dist/tools/display-types.js +32 -0
  614. package/dist/tools/error-codes.cjs +5 -0
  615. package/dist/tools/error-codes.d.ts +6 -1
  616. package/dist/tools/error-codes.d.ts.map +1 -1
  617. package/dist/tools/error-codes.js +6 -1
  618. package/dist/tools/errors.cjs +71 -0
  619. package/dist/tools/errors.d.ts +33 -0
  620. package/dist/tools/errors.d.ts.map +1 -1
  621. package/dist/tools/errors.js +72 -1
  622. package/dist/tools/index.cjs +15 -1
  623. package/dist/tools/index.d.ts +5 -0
  624. package/dist/tools/index.d.ts.map +1 -1
  625. package/dist/tools/index.js +13 -2
  626. package/dist/tools/internal-tools/constants.cjs +3 -9
  627. package/dist/tools/internal-tools/constants.d.ts +1 -1
  628. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  629. package/dist/tools/internal-tools/constants.js +4 -10
  630. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  631. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  632. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  633. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  634. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  635. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  636. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  637. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  638. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  639. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  640. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  641. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  642. package/dist/tools/internal-tools/provider.cjs +175 -31
  643. package/dist/tools/internal-tools/provider.d.ts +62 -14
  644. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  645. package/dist/tools/internal-tools/provider.js +176 -32
  646. package/dist/tools/internal-tools/registry.cjs +19 -43
  647. package/dist/tools/internal-tools/registry.d.ts +32 -11
  648. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  649. package/dist/tools/internal-tools/registry.js +20 -44
  650. package/dist/tools/schemas.cjs +36 -6
  651. package/dist/tools/schemas.d.ts +74 -5
  652. package/dist/tools/schemas.d.ts.map +1 -1
  653. package/dist/tools/schemas.js +30 -6
  654. package/dist/tools/tool-manager.cjs +279 -30
  655. package/dist/tools/tool-manager.d.ts +45 -4
  656. package/dist/tools/tool-manager.d.ts.map +1 -1
  657. package/dist/tools/tool-manager.js +284 -31
  658. package/dist/tools/types.d.ts +63 -0
  659. package/dist/tools/types.d.ts.map +1 -1
  660. package/dist/utils/api-key-resolver.cjs +19 -1
  661. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  662. package/dist/utils/api-key-resolver.js +20 -2
  663. package/dist/utils/async-context.js +1 -1
  664. package/dist/utils/debug.js +1 -1
  665. package/dist/{llm/tokenizer/anthropic.cjs → utils/defer.cjs} +19 -20
  666. package/dist/utils/defer.d.ts +63 -0
  667. package/dist/utils/defer.d.ts.map +1 -0
  668. package/dist/utils/defer.js +19 -0
  669. package/dist/utils/error-conversion.js +1 -1
  670. package/dist/utils/execution-context.js +1 -1
  671. package/dist/utils/fs-walk.js +1 -1
  672. package/dist/utils/index.cjs +3 -3
  673. package/dist/utils/index.d.ts +1 -1
  674. package/dist/utils/index.d.ts.map +1 -1
  675. package/dist/utils/index.js +1 -1
  676. package/dist/utils/path.js +1 -1
  677. package/dist/utils/redactor.cjs +18 -3
  678. package/dist/utils/redactor.d.ts +0 -7
  679. package/dist/utils/redactor.d.ts.map +1 -1
  680. package/dist/utils/redactor.js +19 -4
  681. package/dist/utils/result.js +1 -1
  682. package/dist/utils/safe-stringify.js +1 -1
  683. package/dist/utils/schema-metadata.js +1 -1
  684. package/dist/utils/schema.js +1 -1
  685. package/dist/utils/service-initializer.cjs +15 -37
  686. package/dist/utils/service-initializer.d.ts.map +1 -1
  687. package/dist/utils/service-initializer.js +16 -38
  688. package/dist/utils/user-info.js +1 -1
  689. package/dist/utils/zod-schema-converter.js +1 -1
  690. package/package.json +10 -8
  691. package/dist/context/compression/middle-removal.cjs +0 -95
  692. package/dist/context/compression/middle-removal.d.ts +0 -47
  693. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  694. package/dist/context/compression/middle-removal.js +0 -72
  695. package/dist/context/compression/oldest-removal.cjs +0 -83
  696. package/dist/context/compression/oldest-removal.d.ts +0 -42
  697. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  698. package/dist/context/compression/oldest-removal.js +0 -60
  699. package/dist/context/compression/types.d.ts +0 -18
  700. package/dist/context/compression/types.d.ts.map +0 -1
  701. package/dist/llm/formatters/anthropic.cjs +0 -257
  702. package/dist/llm/formatters/anthropic.d.ts +0 -46
  703. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  704. package/dist/llm/formatters/anthropic.js +0 -239
  705. package/dist/llm/formatters/factory.cjs +0 -50
  706. package/dist/llm/formatters/factory.d.ts +0 -10
  707. package/dist/llm/formatters/factory.d.ts.map +0 -1
  708. package/dist/llm/formatters/factory.js +0 -27
  709. package/dist/llm/formatters/openai.cjs +0 -203
  710. package/dist/llm/formatters/openai.d.ts +0 -39
  711. package/dist/llm/formatters/openai.d.ts.map +0 -1
  712. package/dist/llm/formatters/openai.js +0 -184
  713. package/dist/llm/formatters/types.d.ts +0 -41
  714. package/dist/llm/formatters/types.d.ts.map +0 -1
  715. package/dist/llm/services/anthropic.cjs +0 -511
  716. package/dist/llm/services/anthropic.d.ts +0 -48
  717. package/dist/llm/services/anthropic.d.ts.map +0 -1
  718. package/dist/llm/services/anthropic.js +0 -447
  719. package/dist/llm/services/openai.cjs +0 -611
  720. package/dist/llm/services/openai.d.ts +0 -48
  721. package/dist/llm/services/openai.d.ts.map +0 -1
  722. package/dist/llm/services/openai.js +0 -547
  723. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  724. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  725. package/dist/llm/tokenizer/anthropic.js +0 -20
  726. package/dist/llm/tokenizer/default.d.ts +0 -14
  727. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  728. package/dist/llm/tokenizer/default.js +0 -18
  729. package/dist/llm/tokenizer/factory.d.ts +0 -12
  730. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  731. package/dist/llm/tokenizer/factory.js +0 -21
  732. package/dist/llm/tokenizer/google.d.ts +0 -29
  733. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  734. package/dist/llm/tokenizer/google.js +0 -29
  735. package/dist/llm/tokenizer/openai.cjs +0 -115
  736. package/dist/llm/tokenizer/openai.d.ts +0 -41
  737. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  738. package/dist/llm/tokenizer/openai.js +0 -91
  739. package/dist/llm/tokenizer/types.d.ts +0 -18
  740. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  741. package/dist/llm/tokenizer/types.js +0 -10
  742. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -106
  743. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  744. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  745. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -73
  746. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  747. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  748. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  749. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  750. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -62
  751. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  752. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  753. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -39
  754. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -57
  755. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  756. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  757. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -34
  758. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -71
  759. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  760. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  761. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -48
  762. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  763. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  764. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  765. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  766. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -55
  767. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  768. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  769. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -32
  770. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -56
  771. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  772. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  773. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -33
  774. package/dist/utils/env-file.cjs +0 -118
  775. package/dist/utils/env-file.d.ts +0 -5
  776. package/dist/utils/env-file.d.ts.map +0 -1
  777. package/dist/utils/env-file.js +0 -85
  778. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  779. /package/dist/context/{compression → compaction}/types.cjs +0 -0
  780. /package/dist/{llm/formatters → context/compaction}/types.js +0 -0
  781. /package/dist/{llm/formatters → image}/types.cjs +0 -0
@@ -2,13 +2,20 @@ import {
2
2
  __decorateElement,
3
3
  __decoratorStart,
4
4
  __runInitializers
5
- } from "../chunk-C6A6W6XS.js";
5
+ } from "../chunk-PTJYTZNU.js";
6
6
  var _ToolManager_decorators, _init;
7
7
  import { InternalToolsProvider } from "./internal-tools/provider.js";
8
8
  import { ToolError } from "./errors.js";
9
+ import { ToolErrorCode } from "./error-codes.js";
10
+ import { DextoRuntimeError } from "../errors/index.js";
9
11
  import { DextoLogComponent } from "../logger/v2/types.js";
10
12
  import { ApprovalStatus } from "../approval/types.js";
11
13
  import { InstrumentClass } from "../telemetry/decorators.js";
14
+ import {
15
+ generateBashPatternKey,
16
+ generateBashPatternSuggestions,
17
+ isDangerousCommand
18
+ } from "./bash-pattern-utils.js";
12
19
  _ToolManager_decorators = [InstrumentClass({
13
20
  prefix: "tool",
14
21
  excludeMethods: [
@@ -33,6 +40,7 @@ let _ToolManager = class _ToolManager {
33
40
  // Tool source prefixing - ALL tools get prefixed by source
34
41
  static MCP_TOOL_PREFIX = "mcp--";
35
42
  static INTERNAL_TOOL_PREFIX = "internal--";
43
+ static CUSTOM_TOOL_PREFIX = "custom--";
36
44
  // Tool caching for performance
37
45
  toolsCache = {};
38
46
  cacheValid = false;
@@ -45,11 +53,15 @@ let _ToolManager = class _ToolManager {
45
53
  this.agentEventBus = agentEventBus;
46
54
  this.toolPolicies = toolPolicies;
47
55
  this.logger = logger.createChild(DextoLogComponent.TOOLS);
48
- if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
56
+ if (options?.internalToolsConfig && options.internalToolsConfig.length > 0 || options?.customToolsConfig && options.customToolsConfig.length > 0) {
57
+ const internalToolsServices = {
58
+ ...options.internalToolsServices,
59
+ approvalManager
60
+ };
49
61
  this.internalToolsProvider = new InternalToolsProvider(
50
- options.internalToolsServices || {},
51
- approvalManager,
52
- options.internalToolsConfig,
62
+ internalToolsServices,
63
+ options.internalToolsConfig || [],
64
+ options.customToolsConfig || [],
53
65
  this.logger
54
66
  );
55
67
  }
@@ -74,6 +86,16 @@ let _ToolManager = class _ToolManager {
74
86
  this.stateManager = stateManager;
75
87
  this.logger.debug("Plugin support configured for ToolManager");
76
88
  }
89
+ /**
90
+ * Set agent reference for custom tools (called after construction to avoid circular dependencies)
91
+ * Must be called before initialize() if custom tools are configured
92
+ */
93
+ setAgent(agent) {
94
+ if (this.internalToolsProvider) {
95
+ this.internalToolsProvider.setAgent(agent);
96
+ this.logger.debug("Agent reference configured for custom tools");
97
+ }
98
+ }
77
99
  /**
78
100
  * Invalidate the tools cache when tool sources change
79
101
  */
@@ -100,6 +122,37 @@ let _ToolManager = class _ToolManager {
100
122
  this.invalidateCache();
101
123
  });
102
124
  }
125
+ // ==================== Bash Pattern Approval Helpers ====================
126
+ /**
127
+ * Check if a tool name represents a bash execution tool
128
+ */
129
+ isBashTool(toolName) {
130
+ return toolName === "bash_exec" || toolName === "internal--bash_exec" || toolName === "custom--bash_exec";
131
+ }
132
+ /**
133
+ * Check if a bash command is covered by any approved pattern.
134
+ * Generates a pattern key from the command, then checks if it's covered by stored patterns.
135
+ *
136
+ * Returns approval info if covered, or pattern suggestions if not.
137
+ */
138
+ checkBashPatternApproval(command) {
139
+ const patternKey = generateBashPatternKey(command);
140
+ if (!patternKey) {
141
+ if (isDangerousCommand(command)) {
142
+ this.logger.debug(
143
+ `Skipping pattern generation for dangerous command: ${command.split(/\s+/)[0]}`
144
+ );
145
+ }
146
+ return { approved: false, suggestedPatterns: [] };
147
+ }
148
+ if (this.approvalManager.matchesBashPattern(patternKey)) {
149
+ return { approved: true };
150
+ }
151
+ return {
152
+ approved: false,
153
+ suggestedPatterns: generateBashPatternSuggestions(command)
154
+ };
155
+ }
103
156
  getMcpManager() {
104
157
  return this.mcpManager;
105
158
  }
@@ -128,6 +181,7 @@ let _ToolManager = class _ToolManager {
128
181
  const allTools = {};
129
182
  let mcpTools = {};
130
183
  let internalTools = {};
184
+ let customTools = {};
131
185
  try {
132
186
  mcpTools = await this.mcpManager.getAllTools();
133
187
  } catch (error) {
@@ -137,13 +191,21 @@ let _ToolManager = class _ToolManager {
137
191
  mcpTools = {};
138
192
  }
139
193
  try {
140
- internalTools = this.internalToolsProvider?.getAllTools() || {};
194
+ internalTools = this.internalToolsProvider?.getInternalTools() || {};
141
195
  } catch (error) {
142
196
  this.logger.error(
143
197
  `Failed to get internal tools: ${error instanceof Error ? error.message : String(error)}`
144
198
  );
145
199
  internalTools = {};
146
200
  }
201
+ try {
202
+ customTools = this.internalToolsProvider?.getCustomTools() || {};
203
+ } catch (error) {
204
+ this.logger.error(
205
+ `Failed to get custom tools: ${error instanceof Error ? error.message : String(error)}`
206
+ );
207
+ customTools = {};
208
+ }
147
209
  for (const [toolName, toolDef] of Object.entries(internalTools)) {
148
210
  const qualifiedName = `${_ToolManager.INTERNAL_TOOL_PREFIX}${toolName}`;
149
211
  allTools[qualifiedName] = {
@@ -152,6 +214,14 @@ let _ToolManager = class _ToolManager {
152
214
  description: `${toolDef.description || "No description provided"} (internal tool)`
153
215
  };
154
216
  }
217
+ for (const [toolName, toolDef] of Object.entries(customTools)) {
218
+ const qualifiedName = `${_ToolManager.CUSTOM_TOOL_PREFIX}${toolName}`;
219
+ allTools[qualifiedName] = {
220
+ ...toolDef,
221
+ name: qualifiedName,
222
+ description: `${toolDef.description || "No description provided"} (custom tool)`
223
+ };
224
+ }
155
225
  for (const [toolName, toolDef] of Object.entries(mcpTools)) {
156
226
  const qualifiedName = `${_ToolManager.MCP_TOOL_PREFIX}${toolName}`;
157
227
  allTools[qualifiedName] = {
@@ -163,8 +233,9 @@ let _ToolManager = class _ToolManager {
163
233
  const totalTools = Object.keys(allTools).length;
164
234
  const mcpCount = Object.keys(mcpTools).length;
165
235
  const internalCount = Object.keys(internalTools).length;
236
+ const customCount = Object.keys(customTools).length;
166
237
  this.logger.debug(
167
- `\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${_ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${_ToolManager.INTERNAL_TOOL_PREFIX}*)`
238
+ `\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP, ${internalCount} internal, ${customCount} custom)`
168
239
  );
169
240
  return allTools;
170
241
  }
@@ -184,15 +255,41 @@ let _ToolManager = class _ToolManager {
184
255
  /**
185
256
  * Execute a tool by routing based on universal prefix
186
257
  * ALL tools must have source prefix - no exceptions
258
+ *
259
+ * @param toolName The fully qualified tool name (e.g., "internal--edit_file")
260
+ * @param args The arguments for the tool
261
+ * @param toolCallId The unique tool call ID for tracking (from LLM or generated for direct calls)
262
+ * @param sessionId Optional session ID for context
263
+ * @param abortSignal Optional abort signal for cancellation support
187
264
  */
188
- async executeTool(toolName, args, sessionId) {
189
- this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
265
+ async executeTool(toolName, args, toolCallId, sessionId, abortSignal) {
266
+ this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}' (toolCallId: ${toolCallId})`);
190
267
  this.logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
191
- await this.handleToolApproval(toolName, args, sessionId);
268
+ if (sessionId) {
269
+ this.agentEventBus.emit("llm:tool-call", {
270
+ toolName,
271
+ args,
272
+ callId: toolCallId,
273
+ sessionId
274
+ });
275
+ }
276
+ const { requireApproval, approvalStatus } = await this.handleToolApproval(
277
+ toolName,
278
+ args,
279
+ toolCallId,
280
+ sessionId
281
+ );
192
282
  this.logger.debug(`\u2705 Tool execution approved: ${toolName}`);
193
283
  this.logger.info(
194
284
  `\u{1F527} Tool execution started for ${toolName}, sessionId: ${sessionId ?? "global"}`
195
285
  );
286
+ if (sessionId) {
287
+ this.agentEventBus.emit("tool:running", {
288
+ toolName,
289
+ toolCallId,
290
+ sessionId
291
+ });
292
+ }
196
293
  const startTime = Date.now();
197
294
  if (this.pluginManager && this.sessionManager && this.stateManager) {
198
295
  const beforePayload = {
@@ -236,16 +333,33 @@ let _ToolManager = class _ToolManager {
236
333
  result = await this.internalToolsProvider.executeTool(
237
334
  actualToolName,
238
335
  args,
239
- sessionId
336
+ sessionId,
337
+ abortSignal
338
+ );
339
+ } else if (toolName.startsWith(_ToolManager.CUSTOM_TOOL_PREFIX)) {
340
+ this.logger.debug(`\u{1F527} Detected custom tool: '${toolName}'`);
341
+ const actualToolName = toolName.substring(_ToolManager.CUSTOM_TOOL_PREFIX.length);
342
+ if (actualToolName.length === 0) {
343
+ throw ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
344
+ }
345
+ if (!this.internalToolsProvider) {
346
+ throw ToolError.internalToolsNotInitialized(toolName);
347
+ }
348
+ this.logger.debug(`\u{1F3AF} Custom routing: '${toolName}' -> '${actualToolName}'`);
349
+ result = await this.internalToolsProvider.executeTool(
350
+ actualToolName,
351
+ args,
352
+ sessionId,
353
+ abortSignal
240
354
  );
241
355
  } else {
242
356
  this.logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
243
357
  const stats = await this.getToolStats();
244
358
  this.logger.error(
245
- `\u274C Tool missing source prefix: '${toolName}' (expected '${_ToolManager.MCP_TOOL_PREFIX}*' or '${_ToolManager.INTERNAL_TOOL_PREFIX}*')`
359
+ `\u274C Tool missing source prefix: '${toolName}' (expected '${_ToolManager.MCP_TOOL_PREFIX}*', '${_ToolManager.INTERNAL_TOOL_PREFIX}*', or '${_ToolManager.CUSTOM_TOOL_PREFIX}*')`
246
360
  );
247
361
  this.logger.debug(
248
- `Available: ${stats.mcp} MCP tools, ${stats.internal} internal tools`
362
+ `Available: ${stats.mcp} MCP, ${stats.internal} internal, ${stats.custom} custom tools`
249
363
  );
250
364
  throw ToolError.notFound(toolName);
251
365
  }
@@ -274,7 +388,10 @@ let _ToolManager = class _ToolManager {
274
388
  );
275
389
  result = modifiedPayload.result;
276
390
  }
277
- return result;
391
+ return {
392
+ result,
393
+ ...requireApproval && { requireApproval, approvalStatus }
394
+ };
278
395
  } catch (error) {
279
396
  const duration = Date.now() - startTime;
280
397
  this.logger.error(
@@ -308,7 +425,11 @@ let _ToolManager = class _ToolManager {
308
425
  }
309
426
  if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
310
427
  const actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
311
- return this.internalToolsProvider?.hasTool(actualToolName) ?? false;
428
+ return this.internalToolsProvider?.hasInternalTool(actualToolName) ?? false;
429
+ }
430
+ if (toolName.startsWith(_ToolManager.CUSTOM_TOOL_PREFIX)) {
431
+ const actualToolName = toolName.substring(_ToolManager.CUSTOM_TOOL_PREFIX.length);
432
+ return this.internalToolsProvider?.hasCustomTool(actualToolName) ?? false;
312
433
  }
313
434
  return false;
314
435
  }
@@ -318,6 +439,7 @@ let _ToolManager = class _ToolManager {
318
439
  async getToolStats() {
319
440
  let mcpTools = {};
320
441
  let internalTools = {};
442
+ let customTools = {};
321
443
  try {
322
444
  mcpTools = await this.mcpManager.getAllTools();
323
445
  } catch (error) {
@@ -327,24 +449,33 @@ let _ToolManager = class _ToolManager {
327
449
  mcpTools = {};
328
450
  }
329
451
  try {
330
- internalTools = this.internalToolsProvider?.getAllTools() || {};
452
+ internalTools = this.internalToolsProvider?.getInternalTools() || {};
331
453
  } catch (error) {
332
454
  this.logger.error(
333
455
  `Failed to get internal tools for stats: ${error instanceof Error ? error.message : String(error)}`
334
456
  );
335
457
  internalTools = {};
336
458
  }
459
+ try {
460
+ customTools = this.internalToolsProvider?.getCustomTools() || {};
461
+ } catch (error) {
462
+ this.logger.error(
463
+ `Failed to get custom tools for stats: ${error instanceof Error ? error.message : String(error)}`
464
+ );
465
+ customTools = {};
466
+ }
337
467
  const mcpCount = Object.keys(mcpTools).length;
338
468
  const internalCount = Object.keys(internalTools).length;
469
+ const customCount = Object.keys(customTools).length;
339
470
  return {
340
- total: mcpCount + internalCount,
341
- // No conflicts with universal prefixing
471
+ total: mcpCount + internalCount + customCount,
342
472
  mcp: mcpCount,
343
- internal: internalCount
473
+ internal: internalCount,
474
+ custom: customCount
344
475
  };
345
476
  }
346
477
  /**
347
- * Get the source of a tool (mcp, internal, or unknown)
478
+ * Get the source of a tool (mcp, internal, custom, or unknown)
348
479
  * @param toolName The name of the tool to check
349
480
  * @returns The source of the tool
350
481
  */
@@ -355,6 +486,9 @@ let _ToolManager = class _ToolManager {
355
486
  if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX) && toolName.length > _ToolManager.INTERNAL_TOOL_PREFIX.length) {
356
487
  return "internal";
357
488
  }
489
+ if (toolName.startsWith(_ToolManager.CUSTOM_TOOL_PREFIX) && toolName.length > _ToolManager.CUSTOM_TOOL_PREFIX.length) {
490
+ return "custom";
491
+ }
358
492
  return "unknown";
359
493
  }
360
494
  /**
@@ -410,12 +544,73 @@ let _ToolManager = class _ToolManager {
410
544
  (pattern) => this.matchesToolPolicy(toolName, pattern)
411
545
  );
412
546
  }
547
+ /**
548
+ * Check if a tool has a custom approval override and handle it.
549
+ * Tools can implement getApprovalOverride() to request specialized approval flows
550
+ * (e.g., directory access approval for file tools) instead of default tool confirmation.
551
+ *
552
+ * @param toolName The fully qualified tool name
553
+ * @param args The tool arguments
554
+ * @param sessionId Optional session ID
555
+ * @returns { handled: true } if custom approval was processed, { handled: false } to continue normal flow
556
+ */
557
+ async checkCustomApprovalOverride(toolName, args, sessionId) {
558
+ let actualToolName;
559
+ if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
560
+ actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
561
+ } else if (toolName.startsWith(_ToolManager.CUSTOM_TOOL_PREFIX)) {
562
+ actualToolName = toolName.substring(_ToolManager.CUSTOM_TOOL_PREFIX.length);
563
+ }
564
+ if (!actualToolName || !this.internalToolsProvider) {
565
+ return { handled: false };
566
+ }
567
+ const tool = this.internalToolsProvider.getTool(actualToolName);
568
+ if (!tool?.getApprovalOverride) {
569
+ return { handled: false };
570
+ }
571
+ const approvalRequest = tool.getApprovalOverride(args);
572
+ if (!approvalRequest) {
573
+ return { handled: false };
574
+ }
575
+ this.logger.debug(
576
+ `Tool '${toolName}' requested custom approval: type=${approvalRequest.type}`
577
+ );
578
+ if (sessionId && !approvalRequest.sessionId) {
579
+ approvalRequest.sessionId = sessionId;
580
+ }
581
+ const response = await this.approvalManager.requestApproval(approvalRequest);
582
+ if (response.status === ApprovalStatus.APPROVED) {
583
+ if (tool.onApprovalGranted) {
584
+ tool.onApprovalGranted(response);
585
+ }
586
+ this.logger.info(
587
+ `Custom approval granted for '${toolName}', type=${approvalRequest.type}, session=${sessionId ?? "global"}`
588
+ );
589
+ return { handled: true };
590
+ }
591
+ this.logger.info(
592
+ `Custom approval denied for '${toolName}', type=${approvalRequest.type}, reason=${response.reason ?? "unknown"}`
593
+ );
594
+ if (approvalRequest.type === "directory_access") {
595
+ const metadata = approvalRequest.metadata;
596
+ throw ToolError.directoryAccessDenied(
597
+ metadata?.parentDir ?? "unknown directory",
598
+ sessionId
599
+ );
600
+ }
601
+ throw ToolError.executionDenied(toolName, sessionId);
602
+ }
413
603
  /**
414
604
  * Handle tool approval/confirmation flow
415
605
  * Checks allowed list, manages approval modes (manual, auto-approve, auto-deny),
416
606
  * and handles remember choice logic
607
+ *
608
+ * @param toolName The fully qualified tool name
609
+ * @param args The arguments for the tool
610
+ * @param toolCallId The unique tool call ID for tracking parallel tool calls
611
+ * @param sessionId Optional session ID for context
417
612
  */
418
- async handleToolApproval(toolName, args, sessionId) {
613
+ async handleToolApproval(toolName, args, toolCallId, sessionId) {
419
614
  if (this.isInAlwaysDenyList(toolName)) {
420
615
  this.logger.info(
421
616
  `Tool '${toolName}' is in static deny list \u2013 blocking execution (session: ${sessionId ?? "global"})`
@@ -423,22 +618,43 @@ let _ToolManager = class _ToolManager {
423
618
  this.logger.debug(`\u{1F6AB} Tool execution blocked by policy: ${toolName}`);
424
619
  throw ToolError.executionDenied(toolName, sessionId);
425
620
  }
621
+ const customApprovalResult = await this.checkCustomApprovalOverride(
622
+ toolName,
623
+ args,
624
+ sessionId
625
+ );
626
+ if (customApprovalResult.handled) {
627
+ return { requireApproval: true, approvalStatus: "approved" };
628
+ }
426
629
  if (this.isInAlwaysAllowList(toolName)) {
427
630
  this.logger.info(
428
631
  `Tool '${toolName}' is in static allow list \u2013 skipping confirmation (session: ${sessionId ?? "global"})`
429
632
  );
430
- return;
633
+ return { requireApproval: false };
431
634
  }
432
635
  const isAllowed = await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
433
636
  if (isAllowed) {
434
637
  this.logger.info(
435
638
  `Tool '${toolName}' already allowed for session '${sessionId ?? "global"}' \u2013 skipping confirmation.`
436
639
  );
437
- return;
640
+ return { requireApproval: false };
641
+ }
642
+ let bashPatternResult;
643
+ if (this.isBashTool(toolName)) {
644
+ const command = args.command;
645
+ if (command) {
646
+ bashPatternResult = this.checkBashPatternApproval(command);
647
+ if (bashPatternResult.approved) {
648
+ this.logger.info(
649
+ `Bash command '${command}' matched approved pattern \u2013 skipping confirmation.`
650
+ );
651
+ return { requireApproval: false };
652
+ }
653
+ }
438
654
  }
439
655
  if (this.approvalMode === "auto-approve") {
440
656
  this.logger.debug(`\u{1F7E2} Auto-approving tool execution: ${toolName}`);
441
- return;
657
+ return { requireApproval: false };
442
658
  }
443
659
  if (this.approvalMode === "auto-deny") {
444
660
  this.logger.debug(`\u{1F6AB} Auto-denying tool execution: ${toolName}`);
@@ -448,21 +664,57 @@ let _ToolManager = class _ToolManager {
448
664
  `Tool confirmation requested for ${toolName}, sessionId: ${sessionId ?? "global"}`
449
665
  );
450
666
  try {
667
+ let displayPreview;
668
+ const actualToolName = toolName.replace(/^internal--/, "");
669
+ const internalTool = this.internalToolsProvider?.getTool(actualToolName);
670
+ if (internalTool?.generatePreview) {
671
+ try {
672
+ const context = { sessionId };
673
+ const preview = await internalTool.generatePreview(args, context);
674
+ displayPreview = preview ?? void 0;
675
+ this.logger.debug(`Generated preview for ${toolName}`);
676
+ } catch (previewError) {
677
+ if (previewError instanceof DextoRuntimeError && previewError.code === ToolErrorCode.VALIDATION_FAILED) {
678
+ this.logger.debug(
679
+ `Validation failed for ${toolName}: ${previewError.message}`
680
+ );
681
+ throw previewError;
682
+ }
683
+ this.logger.debug(
684
+ `Preview generation failed for ${toolName}: ${previewError instanceof Error ? previewError.message : String(previewError)}`
685
+ );
686
+ }
687
+ }
451
688
  const requestData = {
452
689
  toolName,
690
+ toolCallId,
453
691
  args
454
692
  };
455
693
  if (sessionId !== void 0) {
456
694
  requestData.sessionId = sessionId;
457
695
  }
696
+ if (displayPreview !== void 0) {
697
+ requestData.displayPreview = displayPreview;
698
+ }
699
+ if (bashPatternResult?.suggestedPatterns && bashPatternResult.suggestedPatterns.length > 0) {
700
+ requestData.suggestedPatterns = bashPatternResult.suggestedPatterns;
701
+ }
458
702
  const response = await this.approvalManager.requestToolConfirmation(requestData);
459
- const rememberChoice = response.data && "rememberChoice" in response.data ? response.data.rememberChoice : false;
460
- if (response.status === ApprovalStatus.APPROVED && rememberChoice) {
461
- const allowSessionId = sessionId ?? response.sessionId;
462
- await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
463
- this.logger.info(
464
- `Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
465
- );
703
+ if (response.status === ApprovalStatus.APPROVED && response.data) {
704
+ const rememberChoice = "rememberChoice" in response.data ? response.data.rememberChoice : false;
705
+ const rememberPattern = "rememberPattern" in response.data ? response.data.rememberPattern : void 0;
706
+ if (rememberChoice) {
707
+ const allowSessionId = sessionId ?? response.sessionId;
708
+ await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
709
+ this.logger.info(
710
+ `Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
711
+ );
712
+ } else if (rememberPattern && typeof rememberPattern === "string" && this.isBashTool(toolName)) {
713
+ this.approvalManager.addBashPattern(rememberPattern);
714
+ this.logger.info(
715
+ `Bash pattern '${rememberPattern}' added for session approval`
716
+ );
717
+ }
466
718
  }
467
719
  const approved = response.status === ApprovalStatus.APPROVED;
468
720
  if (!approved) {
@@ -483,6 +735,7 @@ let _ToolManager = class _ToolManager {
483
735
  this.logger.info(
484
736
  `Tool confirmation approved for ${toolName}, sessionId: ${sessionId ?? "global"}`
485
737
  );
738
+ return { requireApproval: true, approvalStatus: "approved" };
486
739
  } catch (error) {
487
740
  this.logger.error(
488
741
  `Tool confirmation error for ${toolName}: ${error instanceof Error ? error.message : String(error)}`
@@ -1,11 +1,26 @@
1
1
  import type { JSONSchema7 } from 'json-schema';
2
2
  import type { ZodSchema } from 'zod';
3
+ import type { ToolDisplayData } from './display-types.js';
4
+ import type { ApprovalRequestDetails, ApprovalResponse } from '../approval/types.js';
3
5
  /**
4
6
  * Context passed to tool execution
5
7
  */
6
8
  export interface ToolExecutionContext {
7
9
  /** Session ID if available */
8
10
  sessionId?: string | undefined;
11
+ /** Abort signal for cancellation support */
12
+ abortSignal?: AbortSignal | undefined;
13
+ }
14
+ /**
15
+ * Result of tool execution, including approval metadata
16
+ */
17
+ export interface ToolExecutionResult {
18
+ /** The actual result data from tool execution */
19
+ result: unknown;
20
+ /** Whether this tool required user approval before execution */
21
+ requireApproval?: boolean;
22
+ /** The approval status (only present if requireApproval is true) */
23
+ approvalStatus?: 'approved' | 'rejected';
9
24
  }
10
25
  /**
11
26
  * Internal tool interface - for tools implemented within Dexto
@@ -19,6 +34,54 @@ export interface InternalTool {
19
34
  inputSchema: ZodSchema;
20
35
  /** The actual function that executes the tool - input is validated by Zod before execution */
21
36
  execute: (input: unknown, context?: ToolExecutionContext) => Promise<unknown> | unknown;
37
+ /**
38
+ * Optional preview generator for approval UI.
39
+ * Called before requesting user approval to generate display data (e.g., diff preview).
40
+ * Returns null if no preview is available.
41
+ */
42
+ generatePreview?: (input: unknown, context?: ToolExecutionContext) => Promise<ToolDisplayData | null>;
43
+ /**
44
+ * Optional custom approval override.
45
+ * If present and returns non-null, this approval request is used instead of
46
+ * the default tool confirmation. Allows tools to request specialized approval
47
+ * flows (e.g., directory access approval for file tools).
48
+ *
49
+ * @param args The validated input arguments for the tool
50
+ * @returns ApprovalRequestDetails for custom approval, or null to use default tool confirmation
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * // File tool requesting directory access approval for external paths
55
+ * getApprovalOverride: (args) => {
56
+ * const filePath = (args as {file_path: string}).file_path;
57
+ * if (!isPathWithinAllowed(filePath)) {
58
+ * return {
59
+ * type: ApprovalType.DIRECTORY_ACCESS,
60
+ * metadata: { path: filePath, operation: 'read', ... }
61
+ * };
62
+ * }
63
+ * return null; // Use default tool confirmation
64
+ * }
65
+ * ```
66
+ */
67
+ getApprovalOverride?: (args: unknown) => ApprovalRequestDetails | null;
68
+ /**
69
+ * Optional callback invoked when custom approval is granted.
70
+ * Allows tools to handle approval responses (e.g., remember approved directories).
71
+ * Only called when getApprovalOverride returned non-null and approval was granted.
72
+ *
73
+ * @param response The approval response from ApprovalManager
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * onApprovalGranted: (response) => {
78
+ * if (response.data?.rememberDirectory) {
79
+ * directoryApproval.addApproved(parentDir, 'session');
80
+ * }
81
+ * }
82
+ * ```
83
+ */
84
+ onApprovalGranted?: (response: ApprovalResponse) => void;
22
85
  }
23
86
  /**
24
87
  * Standard tool set interface - used by AI/LLM services
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IAEX,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;IAEvB,8FAA8F;IAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC3F;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,WAAW,CAAC;KAC3B,CAAC;CACL;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAC5C;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IAEX,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;IAEvB,8FAA8F;IAC9F,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAExF;;;;OAIG;IACH,eAAe,CAAC,EAAE,CACd,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,oBAAoB,KAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,sBAAsB,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,WAAW,CAAC;KAC3B,CAAC;CACL;AAMD;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E"}
@@ -31,7 +31,25 @@ const PROVIDER_API_KEY_MAP = {
31
31
  google: ["GOOGLE_GENERATIVE_AI_API_KEY", "GOOGLE_API_KEY", "GEMINI_API_KEY"],
32
32
  groq: ["GROQ_API_KEY"],
33
33
  cohere: ["COHERE_API_KEY"],
34
- xai: ["XAI_API_KEY", "X_AI_API_KEY"]
34
+ xai: ["XAI_API_KEY", "X_AI_API_KEY"],
35
+ openrouter: ["OPENROUTER_API_KEY"],
36
+ litellm: ["LITELLM_API_KEY", "LITELLM_KEY"],
37
+ glama: ["GLAMA_API_KEY"],
38
+ // Vertex uses ADC (Application Default Credentials), not API keys
39
+ // GOOGLE_APPLICATION_CREDENTIALS points to service account JSON (optional)
40
+ // Primary config is GOOGLE_VERTEX_PROJECT (required) + GOOGLE_VERTEX_LOCATION (optional)
41
+ vertex: [],
42
+ // Bedrock supports two auth methods:
43
+ // 1. AWS_BEARER_TOKEN_BEDROCK - Bedrock API key (simplest)
44
+ // 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY + AWS_REGION (IAM credentials)
45
+ // AWS_SESSION_TOKEN (optional, for temporary credentials)
46
+ bedrock: ["AWS_BEARER_TOKEN_BEDROCK"],
47
+ // Local providers don't require API keys
48
+ local: [],
49
+ // Native node-llama-cpp execution
50
+ ollama: []
51
+ // Ollama server (no authentication required)
52
+ // TODO: dexto: ['DEXTO_API_KEY'],
35
53
  // perplexity: ['PERPLEXITY_API_KEY'],
36
54
  // together: ['TOGETHER_API_KEY'],
37
55
  // fireworks: ['FIREWORKS_API_KEY'],
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/api-key-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AAGH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAY9D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAelF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAGpE"}
1
+ {"version":3,"file":"api-key-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/api-key-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AAGH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CA4B9D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAelF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAGpE"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  const PROVIDER_API_KEY_MAP = {
3
3
  openai: ["OPENAI_API_KEY", "OPENAI_KEY"],
4
4
  "openai-compatible": ["OPENAI_API_KEY", "OPENAI_KEY"],
@@ -7,7 +7,25 @@ const PROVIDER_API_KEY_MAP = {
7
7
  google: ["GOOGLE_GENERATIVE_AI_API_KEY", "GOOGLE_API_KEY", "GEMINI_API_KEY"],
8
8
  groq: ["GROQ_API_KEY"],
9
9
  cohere: ["COHERE_API_KEY"],
10
- xai: ["XAI_API_KEY", "X_AI_API_KEY"]
10
+ xai: ["XAI_API_KEY", "X_AI_API_KEY"],
11
+ openrouter: ["OPENROUTER_API_KEY"],
12
+ litellm: ["LITELLM_API_KEY", "LITELLM_KEY"],
13
+ glama: ["GLAMA_API_KEY"],
14
+ // Vertex uses ADC (Application Default Credentials), not API keys
15
+ // GOOGLE_APPLICATION_CREDENTIALS points to service account JSON (optional)
16
+ // Primary config is GOOGLE_VERTEX_PROJECT (required) + GOOGLE_VERTEX_LOCATION (optional)
17
+ vertex: [],
18
+ // Bedrock supports two auth methods:
19
+ // 1. AWS_BEARER_TOKEN_BEDROCK - Bedrock API key (simplest)
20
+ // 2. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY + AWS_REGION (IAM credentials)
21
+ // AWS_SESSION_TOKEN (optional, for temporary credentials)
22
+ bedrock: ["AWS_BEARER_TOKEN_BEDROCK"],
23
+ // Local providers don't require API keys
24
+ local: [],
25
+ // Native node-llama-cpp execution
26
+ ollama: []
27
+ // Ollama server (no authentication required)
28
+ // TODO: dexto: ['DEXTO_API_KEY'],
11
29
  // perplexity: ['PERPLEXITY_API_KEY'],
12
30
  // together: ['TOGETHER_API_KEY'],
13
31
  // fireworks: ['FIREWORKS_API_KEY'],
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { AsyncLocalStorage } from "async_hooks";
3
3
  const asyncContext = new AsyncLocalStorage();
4
4
  function setContext(ctx) {