@dexto/core 1.4.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 (497) hide show
  1. package/README.md +36 -0
  2. package/dist/agent/DextoAgent.cjs +22 -3
  3. package/dist/agent/DextoAgent.d.ts +19 -2
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +23 -4
  6. package/dist/agent/index.cjs +4 -1
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.d.ts.map +1 -1
  9. package/dist/agent/index.js +5 -1
  10. package/dist/agent/schemas.cjs +90 -71
  11. package/dist/agent/schemas.d.ts +5911 -96
  12. package/dist/agent/schemas.d.ts.map +1 -1
  13. package/dist/agent/schemas.js +87 -66
  14. package/dist/approval/manager.cjs +165 -1
  15. package/dist/approval/manager.d.ts +91 -2
  16. package/dist/approval/manager.d.ts.map +1 -1
  17. package/dist/approval/manager.js +155 -1
  18. package/dist/approval/schemas.cjs +39 -3
  19. package/dist/approval/schemas.d.ts +238 -1
  20. package/dist/approval/schemas.d.ts.map +1 -1
  21. package/dist/approval/schemas.js +35 -3
  22. package/dist/approval/types.cjs +1 -0
  23. package/dist/approval/types.d.ts +26 -1
  24. package/dist/approval/types.d.ts.map +1 -1
  25. package/dist/approval/types.js +1 -0
  26. package/dist/context/compaction/factory.cjs +57 -0
  27. package/dist/context/compaction/factory.d.ts +17 -0
  28. package/dist/context/compaction/factory.d.ts.map +1 -0
  29. package/dist/context/compaction/factory.js +34 -0
  30. package/dist/context/compaction/index.cjs +49 -0
  31. package/dist/context/compaction/index.d.ts +11 -0
  32. package/dist/context/compaction/index.d.ts.map +1 -0
  33. package/dist/context/compaction/index.js +19 -0
  34. package/dist/context/{compression → compaction}/overflow.cjs +3 -3
  35. package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
  36. package/dist/context/compaction/overflow.d.ts.map +1 -0
  37. package/dist/context/{compression → compaction}/overflow.js +2 -2
  38. package/dist/context/compaction/provider.cjs +16 -0
  39. package/dist/context/compaction/provider.d.ts +48 -0
  40. package/dist/context/compaction/provider.d.ts.map +1 -0
  41. package/dist/context/compaction/providers/noop-provider.cjs +48 -0
  42. package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
  43. package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
  44. package/dist/context/compaction/providers/noop-provider.js +24 -0
  45. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
  46. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
  47. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
  48. package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
  49. package/dist/context/compaction/registry.cjs +39 -0
  50. package/dist/context/compaction/registry.d.ts +19 -0
  51. package/dist/context/compaction/registry.d.ts.map +1 -0
  52. package/dist/context/compaction/registry.js +16 -0
  53. package/dist/context/compaction/schemas.cjs +38 -0
  54. package/dist/context/compaction/schemas.d.ts +24 -0
  55. package/dist/context/compaction/schemas.d.ts.map +1 -0
  56. package/dist/context/compaction/schemas.js +14 -0
  57. package/dist/context/compaction/strategies/noop.cjs +36 -0
  58. package/dist/context/compaction/strategies/noop.d.ts +18 -0
  59. package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/noop.js +13 -0
  61. package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
  62. package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
  63. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
  64. package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
  65. package/dist/context/{compression → compaction}/types.d.ts +4 -4
  66. package/dist/context/compaction/types.d.ts.map +1 -0
  67. package/dist/context/compaction/types.js +0 -0
  68. package/dist/context/error-codes.cjs +4 -0
  69. package/dist/context/error-codes.d.ts +4 -0
  70. package/dist/context/error-codes.d.ts.map +1 -1
  71. package/dist/context/error-codes.js +4 -0
  72. package/dist/context/errors.cjs +40 -0
  73. package/dist/context/errors.d.ts +14 -0
  74. package/dist/context/errors.d.ts.map +1 -1
  75. package/dist/context/errors.js +40 -0
  76. package/dist/context/index.cjs +3 -1
  77. package/dist/context/index.d.ts +1 -0
  78. package/dist/context/index.d.ts.map +1 -1
  79. package/dist/context/index.js +1 -0
  80. package/dist/context/types.d.ts +6 -0
  81. package/dist/context/types.d.ts.map +1 -1
  82. package/dist/context/utils.cjs +27 -7
  83. package/dist/context/utils.d.ts.map +1 -1
  84. package/dist/context/utils.js +27 -7
  85. package/dist/errors/result-bridge.cjs +2 -3
  86. package/dist/errors/result-bridge.d.ts.map +1 -1
  87. package/dist/errors/result-bridge.js +2 -3
  88. package/dist/events/index.cjs +2 -2
  89. package/dist/events/index.d.ts +16 -16
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +2 -2
  92. package/dist/filesystem/filesystem-service.cjs +39 -0
  93. package/dist/filesystem/filesystem-service.d.ts +32 -0
  94. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  95. package/dist/filesystem/filesystem-service.js +39 -0
  96. package/dist/filesystem/index.d.ts +1 -1
  97. package/dist/filesystem/index.d.ts.map +1 -1
  98. package/dist/filesystem/path-validator.cjs +69 -1
  99. package/dist/filesystem/path-validator.d.ts +43 -2
  100. package/dist/filesystem/path-validator.d.ts.map +1 -1
  101. package/dist/filesystem/path-validator.js +69 -1
  102. package/dist/image/define-image.cjs +146 -0
  103. package/dist/image/define-image.d.ts +71 -0
  104. package/dist/image/define-image.d.ts.map +1 -0
  105. package/dist/image/define-image.js +121 -0
  106. package/dist/image/index.cjs +32 -0
  107. package/dist/image/index.d.ts +53 -0
  108. package/dist/image/index.d.ts.map +1 -0
  109. package/dist/image/index.js +7 -0
  110. package/dist/image/types.cjs +16 -0
  111. package/dist/image/types.d.ts +231 -0
  112. package/dist/image/types.d.ts.map +1 -0
  113. package/dist/image/types.js +0 -0
  114. package/dist/index.cjs +5 -1
  115. package/dist/index.d.ts +2 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +2 -0
  118. package/dist/llm/error-codes.cjs +1 -0
  119. package/dist/llm/error-codes.d.ts +1 -0
  120. package/dist/llm/error-codes.d.ts.map +1 -1
  121. package/dist/llm/error-codes.js +1 -0
  122. package/dist/llm/errors.cjs +24 -0
  123. package/dist/llm/errors.d.ts +19 -6
  124. package/dist/llm/errors.d.ts.map +1 -1
  125. package/dist/llm/errors.js +24 -0
  126. package/dist/llm/executor/stream-processor.cjs +11 -3
  127. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  128. package/dist/llm/executor/stream-processor.js +11 -3
  129. package/dist/llm/executor/turn-executor.cjs +50 -23
  130. package/dist/llm/executor/turn-executor.d.ts +6 -5
  131. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  132. package/dist/llm/executor/turn-executor.js +50 -23
  133. package/dist/llm/formatters/vercel.cjs +6 -2
  134. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  135. package/dist/llm/formatters/vercel.js +6 -2
  136. package/dist/llm/index.cjs +18 -1
  137. package/dist/llm/index.d.ts +2 -0
  138. package/dist/llm/index.d.ts.map +1 -1
  139. package/dist/llm/index.js +14 -0
  140. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  141. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  142. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  143. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  144. package/dist/llm/providers/local/downloader.cjs +291 -0
  145. package/dist/llm/providers/local/downloader.d.ts +82 -0
  146. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  147. package/dist/llm/providers/local/downloader.js +251 -0
  148. package/dist/llm/providers/local/error-codes.cjs +57 -0
  149. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  150. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  151. package/dist/llm/providers/local/error-codes.js +34 -0
  152. package/dist/llm/providers/local/errors.cjs +240 -0
  153. package/dist/llm/providers/local/errors.d.ts +31 -0
  154. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  155. package/dist/llm/providers/local/errors.js +217 -0
  156. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  157. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  158. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  159. package/dist/llm/providers/local/gpu-detector.js +178 -0
  160. package/dist/llm/providers/local/index.cjs +147 -0
  161. package/dist/llm/providers/local/index.d.ts +21 -0
  162. package/dist/llm/providers/local/index.d.ts.map +1 -0
  163. package/dist/llm/providers/local/index.js +126 -0
  164. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  165. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  166. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  167. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  168. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  169. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  170. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  171. package/dist/llm/providers/local/ollama-provider.js +198 -0
  172. package/dist/llm/providers/local/registry.cjs +343 -0
  173. package/dist/llm/providers/local/registry.d.ts +51 -0
  174. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  175. package/dist/llm/providers/local/registry.js +312 -0
  176. package/dist/llm/providers/local/schemas.cjs +169 -0
  177. package/dist/llm/providers/local/schemas.d.ts +395 -0
  178. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  179. package/dist/llm/providers/local/schemas.js +133 -0
  180. package/dist/llm/providers/local/types.cjs +16 -0
  181. package/dist/llm/providers/local/types.d.ts +219 -0
  182. package/dist/llm/providers/local/types.d.ts.map +1 -0
  183. package/dist/llm/providers/local/types.js +0 -0
  184. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  185. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  186. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  187. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  188. package/dist/llm/registry.cjs +535 -9
  189. package/dist/llm/registry.d.ts +26 -0
  190. package/dist/llm/registry.d.ts.map +1 -1
  191. package/dist/llm/registry.js +532 -9
  192. package/dist/llm/resolver.cjs +63 -5
  193. package/dist/llm/resolver.d.ts +3 -3
  194. package/dist/llm/resolver.d.ts.map +1 -1
  195. package/dist/llm/resolver.js +69 -6
  196. package/dist/llm/schemas.cjs +90 -80
  197. package/dist/llm/schemas.d.ts +158 -22
  198. package/dist/llm/schemas.d.ts.map +1 -1
  199. package/dist/llm/schemas.js +90 -80
  200. package/dist/llm/services/factory.cjs +87 -13
  201. package/dist/llm/services/factory.d.ts +4 -1
  202. package/dist/llm/services/factory.d.ts.map +1 -1
  203. package/dist/llm/services/factory.js +85 -12
  204. package/dist/llm/services/test-utils.integration.cjs +22 -2
  205. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  206. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  207. package/dist/llm/services/test-utils.integration.js +26 -3
  208. package/dist/llm/services/vercel.cjs +5 -2
  209. package/dist/llm/services/vercel.d.ts +3 -2
  210. package/dist/llm/services/vercel.d.ts.map +1 -1
  211. package/dist/llm/services/vercel.js +5 -2
  212. package/dist/llm/types.cjs +11 -1
  213. package/dist/llm/types.d.ts +1 -1
  214. package/dist/llm/types.d.ts.map +1 -1
  215. package/dist/llm/types.js +11 -1
  216. package/dist/mcp/manager.cjs +8 -0
  217. package/dist/mcp/manager.d.ts +17 -0
  218. package/dist/mcp/manager.d.ts.map +1 -1
  219. package/dist/mcp/manager.js +8 -0
  220. package/dist/mcp/mcp-client.cjs +0 -3
  221. package/dist/mcp/mcp-client.d.ts.map +1 -1
  222. package/dist/mcp/mcp-client.js +0 -3
  223. package/dist/memory/schemas.d.ts +1 -1
  224. package/dist/plugins/error-codes.cjs +3 -0
  225. package/dist/plugins/error-codes.d.ts +7 -1
  226. package/dist/plugins/error-codes.d.ts.map +1 -1
  227. package/dist/plugins/error-codes.js +3 -0
  228. package/dist/plugins/index.cjs +7 -0
  229. package/dist/plugins/index.d.ts +4 -2
  230. package/dist/plugins/index.d.ts.map +1 -1
  231. package/dist/plugins/index.js +6 -1
  232. package/dist/plugins/manager.cjs +92 -7
  233. package/dist/plugins/manager.d.ts +10 -3
  234. package/dist/plugins/manager.d.ts.map +1 -1
  235. package/dist/plugins/manager.js +92 -7
  236. package/dist/plugins/registry.cjs +63 -0
  237. package/dist/plugins/registry.d.ts +101 -0
  238. package/dist/plugins/registry.d.ts.map +1 -0
  239. package/dist/plugins/registry.js +39 -0
  240. package/dist/plugins/schemas.cjs +17 -5
  241. package/dist/plugins/schemas.d.ts +62 -5
  242. package/dist/plugins/schemas.d.ts.map +1 -1
  243. package/dist/plugins/schemas.js +15 -4
  244. package/dist/providers/base-registry.cjs +147 -0
  245. package/dist/providers/base-registry.d.ts +147 -0
  246. package/dist/providers/base-registry.d.ts.map +1 -0
  247. package/dist/providers/base-registry.js +123 -0
  248. package/dist/providers/discovery.cjs +95 -0
  249. package/dist/providers/discovery.d.ts +94 -0
  250. package/dist/providers/discovery.d.ts.map +1 -0
  251. package/dist/providers/discovery.js +70 -0
  252. package/dist/providers/index.cjs +24 -0
  253. package/dist/providers/index.d.ts +32 -0
  254. package/dist/providers/index.d.ts.map +1 -0
  255. package/dist/providers/index.js +2 -0
  256. package/dist/resources/reference-parser.cjs +3 -3
  257. package/dist/resources/reference-parser.d.ts.map +1 -1
  258. package/dist/resources/reference-parser.js +3 -3
  259. package/dist/session/chat-session.cjs +20 -3
  260. package/dist/session/chat-session.d.ts.map +1 -1
  261. package/dist/session/chat-session.js +21 -4
  262. package/dist/storage/blob/factory.cjs +8 -11
  263. package/dist/storage/blob/factory.d.ts +32 -6
  264. package/dist/storage/blob/factory.d.ts.map +1 -1
  265. package/dist/storage/blob/factory.js +8 -11
  266. package/dist/storage/blob/index.cjs +56 -0
  267. package/dist/storage/blob/index.d.ts +45 -0
  268. package/dist/storage/blob/index.d.ts.map +1 -0
  269. package/dist/storage/blob/index.js +30 -0
  270. package/dist/storage/blob/provider.cjs +16 -0
  271. package/dist/storage/blob/provider.d.ts +50 -0
  272. package/dist/storage/blob/provider.d.ts.map +1 -0
  273. package/dist/storage/blob/provider.js +0 -0
  274. package/dist/storage/blob/providers/index.cjs +31 -0
  275. package/dist/storage/blob/providers/index.d.ts +8 -0
  276. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  277. package/dist/storage/blob/providers/index.js +7 -0
  278. package/dist/storage/blob/providers/local.cjs +39 -0
  279. package/dist/storage/blob/providers/local.d.ts +17 -0
  280. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  281. package/dist/storage/blob/providers/local.js +16 -0
  282. package/dist/storage/blob/providers/memory.cjs +39 -0
  283. package/dist/storage/blob/providers/memory.d.ts +17 -0
  284. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  285. package/dist/storage/blob/providers/memory.js +16 -0
  286. package/dist/storage/blob/registry.cjs +50 -0
  287. package/dist/storage/blob/registry.d.ts +42 -0
  288. package/dist/storage/blob/registry.d.ts.map +1 -0
  289. package/dist/storage/blob/registry.js +26 -0
  290. package/dist/storage/blob/schemas.cjs +9 -12
  291. package/dist/storage/blob/schemas.d.ts +39 -34
  292. package/dist/storage/blob/schemas.d.ts.map +1 -1
  293. package/dist/storage/blob/schemas.js +6 -11
  294. package/dist/storage/cache/factory.cjs +8 -36
  295. package/dist/storage/cache/factory.d.ts +32 -7
  296. package/dist/storage/cache/factory.d.ts.map +1 -1
  297. package/dist/storage/cache/factory.js +8 -26
  298. package/dist/storage/cache/index.cjs +53 -0
  299. package/dist/storage/cache/index.d.ts +44 -0
  300. package/dist/storage/cache/index.d.ts.map +1 -0
  301. package/dist/storage/cache/index.js +28 -0
  302. package/dist/storage/cache/provider.cjs +16 -0
  303. package/dist/storage/cache/provider.d.ts +56 -0
  304. package/dist/storage/cache/provider.d.ts.map +1 -0
  305. package/dist/storage/cache/provider.js +0 -0
  306. package/dist/storage/cache/providers/index.cjs +31 -0
  307. package/dist/storage/cache/providers/index.d.ts +8 -0
  308. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  309. package/dist/storage/cache/providers/index.js +7 -0
  310. package/dist/storage/cache/providers/memory.cjs +40 -0
  311. package/dist/storage/cache/providers/memory.d.ts +17 -0
  312. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  313. package/dist/storage/cache/providers/memory.js +17 -0
  314. package/dist/storage/cache/providers/redis.cjs +66 -0
  315. package/dist/storage/cache/providers/redis.d.ts +20 -0
  316. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  317. package/dist/storage/cache/providers/redis.js +33 -0
  318. package/dist/storage/cache/registry.cjs +50 -0
  319. package/dist/storage/cache/registry.d.ts +42 -0
  320. package/dist/storage/cache/registry.d.ts.map +1 -0
  321. package/dist/storage/cache/registry.js +26 -0
  322. package/dist/storage/cache/schemas.cjs +6 -2
  323. package/dist/storage/cache/schemas.d.ts +2 -3
  324. package/dist/storage/cache/schemas.d.ts.map +1 -1
  325. package/dist/storage/cache/schemas.js +3 -1
  326. package/dist/storage/database/factory.cjs +8 -47
  327. package/dist/storage/database/factory.d.ts +34 -8
  328. package/dist/storage/database/factory.d.ts.map +1 -1
  329. package/dist/storage/database/factory.js +8 -37
  330. package/dist/storage/database/index.cjs +58 -0
  331. package/dist/storage/database/index.d.ts +45 -0
  332. package/dist/storage/database/index.d.ts.map +1 -0
  333. package/dist/storage/database/index.js +37 -0
  334. package/dist/storage/database/provider.cjs +16 -0
  335. package/dist/storage/database/provider.d.ts +56 -0
  336. package/dist/storage/database/provider.d.ts.map +1 -0
  337. package/dist/storage/database/provider.js +0 -0
  338. package/dist/storage/database/providers/index.cjs +34 -0
  339. package/dist/storage/database/providers/index.d.ts +9 -0
  340. package/dist/storage/database/providers/index.d.ts.map +1 -0
  341. package/dist/storage/database/providers/index.js +9 -0
  342. package/dist/storage/database/providers/memory.cjs +40 -0
  343. package/dist/storage/database/providers/memory.d.ts +16 -0
  344. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  345. package/dist/storage/database/providers/memory.js +17 -0
  346. package/dist/storage/database/providers/postgres.cjs +62 -0
  347. package/dist/storage/database/providers/postgres.d.ts +19 -0
  348. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  349. package/dist/storage/database/providers/postgres.js +29 -0
  350. package/dist/storage/database/providers/sqlite.cjs +66 -0
  351. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  352. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  353. package/dist/storage/database/providers/sqlite.js +33 -0
  354. package/dist/storage/database/registry.cjs +50 -0
  355. package/dist/storage/database/registry.d.ts +42 -0
  356. package/dist/storage/database/registry.d.ts.map +1 -0
  357. package/dist/storage/database/registry.js +26 -0
  358. package/dist/storage/database/schemas.cjs +8 -2
  359. package/dist/storage/database/schemas.d.ts +3 -4
  360. package/dist/storage/database/schemas.d.ts.map +1 -1
  361. package/dist/storage/database/schemas.js +4 -1
  362. package/dist/storage/error-codes.cjs +6 -0
  363. package/dist/storage/error-codes.d.ts +7 -1
  364. package/dist/storage/error-codes.d.ts.map +1 -1
  365. package/dist/storage/error-codes.js +6 -0
  366. package/dist/storage/errors.cjs +80 -0
  367. package/dist/storage/errors.d.ts +24 -0
  368. package/dist/storage/errors.d.ts.map +1 -1
  369. package/dist/storage/errors.js +80 -0
  370. package/dist/storage/index.cjs +47 -4
  371. package/dist/storage/index.d.ts +34 -8
  372. package/dist/storage/index.d.ts.map +1 -1
  373. package/dist/storage/index.js +32 -3
  374. package/dist/storage/schemas.cjs +4 -0
  375. package/dist/storage/schemas.d.ts +17 -50
  376. package/dist/storage/schemas.d.ts.map +1 -1
  377. package/dist/storage/schemas.js +5 -1
  378. package/dist/storage/storage-manager.cjs +6 -6
  379. package/dist/storage/storage-manager.d.ts.map +1 -1
  380. package/dist/storage/storage-manager.js +3 -3
  381. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  382. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  383. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  384. package/dist/systemPrompt/in-built-prompts.js +6 -5
  385. package/dist/systemPrompt/registry.cjs +2 -2
  386. package/dist/systemPrompt/registry.d.ts +1 -1
  387. package/dist/systemPrompt/registry.d.ts.map +1 -1
  388. package/dist/systemPrompt/registry.js +2 -2
  389. package/dist/systemPrompt/schemas.cjs +2 -2
  390. package/dist/systemPrompt/schemas.d.ts +13 -13
  391. package/dist/systemPrompt/schemas.js +2 -2
  392. package/dist/tools/custom-tool-registry.cjs +64 -0
  393. package/dist/tools/custom-tool-registry.d.ts +120 -0
  394. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  395. package/dist/tools/custom-tool-registry.js +40 -0
  396. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  397. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  398. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  399. package/dist/tools/custom-tool-schema-registry.js +140 -0
  400. package/dist/tools/error-codes.cjs +3 -0
  401. package/dist/tools/error-codes.d.ts +4 -1
  402. package/dist/tools/error-codes.d.ts.map +1 -1
  403. package/dist/tools/error-codes.js +3 -0
  404. package/dist/tools/errors.cjs +41 -0
  405. package/dist/tools/errors.d.ts +17 -0
  406. package/dist/tools/errors.d.ts.map +1 -1
  407. package/dist/tools/errors.js +41 -0
  408. package/dist/tools/index.cjs +13 -1
  409. package/dist/tools/index.d.ts +4 -0
  410. package/dist/tools/index.d.ts.map +1 -1
  411. package/dist/tools/index.js +11 -1
  412. package/dist/tools/internal-tools/constants.cjs +3 -9
  413. package/dist/tools/internal-tools/constants.d.ts +1 -1
  414. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  415. package/dist/tools/internal-tools/constants.js +3 -9
  416. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  417. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  418. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  419. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  420. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  421. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  422. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  423. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  424. package/dist/tools/internal-tools/provider.cjs +150 -23
  425. package/dist/tools/internal-tools/provider.d.ts +55 -10
  426. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  427. package/dist/tools/internal-tools/provider.js +150 -23
  428. package/dist/tools/internal-tools/registry.cjs +18 -43
  429. package/dist/tools/internal-tools/registry.d.ts +4 -4
  430. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  431. package/dist/tools/internal-tools/registry.js +18 -43
  432. package/dist/tools/schemas.cjs +20 -0
  433. package/dist/tools/schemas.d.ts +43 -1
  434. package/dist/tools/schemas.d.ts.map +1 -1
  435. package/dist/tools/schemas.js +16 -0
  436. package/dist/tools/tool-manager.cjs +140 -13
  437. package/dist/tools/tool-manager.d.ts +22 -3
  438. package/dist/tools/tool-manager.d.ts.map +1 -1
  439. package/dist/tools/tool-manager.js +140 -13
  440. package/dist/tools/types.d.ts +43 -0
  441. package/dist/tools/types.d.ts.map +1 -1
  442. package/dist/utils/api-key-resolver.cjs +19 -1
  443. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  444. package/dist/utils/api-key-resolver.js +19 -1
  445. package/dist/utils/index.cjs +0 -2
  446. package/dist/utils/index.d.ts +0 -1
  447. package/dist/utils/index.d.ts.map +1 -1
  448. package/dist/utils/index.js +0 -1
  449. package/dist/utils/redactor.cjs +18 -3
  450. package/dist/utils/redactor.d.ts +0 -7
  451. package/dist/utils/redactor.d.ts.map +1 -1
  452. package/dist/utils/redactor.js +18 -3
  453. package/dist/utils/service-initializer.cjs +9 -35
  454. package/dist/utils/service-initializer.d.ts.map +1 -1
  455. package/dist/utils/service-initializer.js +9 -35
  456. package/package.json +5 -2
  457. package/dist/context/compression/overflow.d.ts.map +0 -1
  458. package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
  459. package/dist/context/compression/types.d.ts.map +0 -1
  460. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
  461. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  462. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  463. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
  464. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  465. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  466. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  467. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  468. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
  469. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  470. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  471. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
  472. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
  473. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  474. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  475. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
  476. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
  477. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  478. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  479. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
  480. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  481. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  482. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  483. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  484. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
  485. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  486. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  487. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
  488. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
  489. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  490. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  491. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
  492. package/dist/utils/env-file.cjs +0 -118
  493. package/dist/utils/env-file.d.ts +0 -5
  494. package/dist/utils/env-file.d.ts.map +0 -1
  495. package/dist/utils/env-file.js +0 -85
  496. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  497. /package/dist/context/{compression → compaction}/types.cjs +0 -0
@@ -24,31 +24,59 @@ module.exports = __toCommonJS(provider_exports);
24
24
  var import_errors = require("../errors.js");
25
25
  var import_schema = require("../../utils/schema.js");
26
26
  var import_registry = require("./registry.js");
27
+ var import_custom_tool_registry = require("../custom-tool-registry.js");
28
+ var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
29
+ var import_error_codes = require("../error-codes.js");
27
30
  class InternalToolsProvider {
28
31
  services;
29
- tools = /* @__PURE__ */ new Map();
30
- // Store original InternalTool
32
+ internalTools = /* @__PURE__ */ new Map();
33
+ // Built-in internal tools
34
+ customTools = /* @__PURE__ */ new Map();
35
+ // Custom tool provider tools
31
36
  config;
37
+ customToolConfigs;
32
38
  logger;
33
- constructor(services, config = [], logger) {
39
+ agent;
40
+ // Set after construction to avoid circular dependency
41
+ constructor(services, config = [], customToolConfigs = [], logger) {
34
42
  this.services = services;
35
43
  this.config = config;
44
+ this.customToolConfigs = customToolConfigs;
36
45
  this.logger = logger;
37
- this.logger.debug("InternalToolsProvider initialized with config:", { config });
46
+ this.logger.debug("InternalToolsProvider initialized with config:", {
47
+ config,
48
+ customToolConfigs
49
+ });
50
+ }
51
+ /**
52
+ * Set agent reference after construction (avoids circular dependency)
53
+ * Must be called before initialize() if custom tools need agent access
54
+ */
55
+ setAgent(agent) {
56
+ this.agent = agent;
38
57
  }
39
58
  /**
40
59
  * Initialize the internal tools provider by registering all available internal tools
60
+ * and custom tools from the registry
41
61
  */
42
62
  async initialize() {
43
63
  this.logger.info("Initializing InternalToolsProvider...");
44
64
  try {
45
- if (this.config.length === 0) {
65
+ if (this.config.length > 0) {
66
+ this.registerInternalTools();
67
+ } else {
46
68
  this.logger.info("No internal tools enabled by configuration");
47
- return;
48
69
  }
49
- this.registerInternalTools();
50
- const toolCount = this.tools.size;
51
- this.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
70
+ if (this.customToolConfigs.length > 0) {
71
+ this.registerCustomTools();
72
+ } else {
73
+ this.logger.debug("No custom tool providers configured");
74
+ }
75
+ const internalCount = this.internalTools.size;
76
+ const customCount = this.customTools.size;
77
+ this.logger.info(
78
+ `InternalToolsProvider initialized with ${internalCount + customCount} tools (${internalCount} internal, ${customCount} custom)`
79
+ );
52
80
  } catch (error) {
53
81
  this.logger.error(
54
82
  `Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
@@ -86,7 +114,7 @@ class InternalToolsProvider {
86
114
  }
87
115
  try {
88
116
  const tool = toolInfo.factory(this.services);
89
- this.tools.set(toolName, tool);
117
+ this.internalTools.set(toolName, tool);
90
118
  this.logger.debug(`Registered ${toolName} internal tool`);
91
119
  } catch (error) {
92
120
  this.logger.error(
@@ -96,27 +124,89 @@ class InternalToolsProvider {
96
124
  }
97
125
  }
98
126
  /**
99
- * Check if a tool exists
127
+ * Register custom tools from the custom tool registry.
128
+ * Tools are stored by their original ID - prefixing is handled by ToolManager.
129
+ */
130
+ registerCustomTools() {
131
+ if (!this.agent) {
132
+ throw import_errors.ToolError.configInvalid(
133
+ "Agent reference not set. Call setAgent() before initialize() when using custom tools."
134
+ );
135
+ }
136
+ const context = {
137
+ logger: this.logger,
138
+ agent: this.agent,
139
+ services: this.services
140
+ // Includes approvalManager for tools that need approval flows
141
+ };
142
+ for (const toolConfig of this.customToolConfigs) {
143
+ try {
144
+ const validatedConfig = import_custom_tool_registry.customToolRegistry.validateConfig(toolConfig);
145
+ const provider = import_custom_tool_registry.customToolRegistry.get(validatedConfig.type);
146
+ if (!provider) {
147
+ const availableTypes = import_custom_tool_registry.customToolRegistry.getTypes();
148
+ throw import_errors.ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
149
+ }
150
+ const tools = provider.create(validatedConfig, context);
151
+ for (const tool of tools) {
152
+ if (this.customTools.has(tool.id)) {
153
+ this.logger.warn(
154
+ `Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
155
+ );
156
+ continue;
157
+ }
158
+ this.customTools.set(tool.id, tool);
159
+ this.logger.debug(
160
+ `Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
161
+ );
162
+ }
163
+ } catch (error) {
164
+ if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
165
+ throw error;
166
+ }
167
+ this.logger.error(
168
+ `Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
169
+ );
170
+ }
171
+ }
172
+ }
173
+ /**
174
+ * Check if a tool exists (checks both internal and custom tools)
100
175
  */
101
176
  hasTool(toolName) {
102
- return this.tools.has(toolName);
177
+ return this.internalTools.has(toolName) || this.customTools.has(toolName);
178
+ }
179
+ /**
180
+ * Check if an internal tool exists
181
+ */
182
+ hasInternalTool(toolName) {
183
+ return this.internalTools.has(toolName);
184
+ }
185
+ /**
186
+ * Check if a custom tool exists
187
+ */
188
+ hasCustomTool(toolName) {
189
+ return this.customTools.has(toolName);
103
190
  }
104
191
  /**
105
192
  * Get an internal tool by name
106
193
  * Returns undefined if tool doesn't exist
107
194
  */
108
195
  getTool(toolName) {
109
- return this.tools.get(toolName);
196
+ return this.internalTools.get(toolName) || this.customTools.get(toolName);
110
197
  }
111
198
  /**
112
199
  * Execute an internal tool - confirmation is handled by ToolManager
113
200
  */
114
201
  async executeTool(toolName, args, sessionId, abortSignal) {
115
- const tool = this.tools.get(toolName);
202
+ const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
116
203
  if (!tool) {
117
- this.logger.error(`\u274C No internal tool found: ${toolName}`);
204
+ this.logger.error(`\u274C No tool found: ${toolName}`);
205
+ this.logger.debug(
206
+ `Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
207
+ );
118
208
  this.logger.debug(
119
- `Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
209
+ `Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
120
210
  );
121
211
  throw import_errors.ToolError.notFound(toolName);
122
212
  }
@@ -145,31 +235,68 @@ class InternalToolsProvider {
145
235
  }
146
236
  }
147
237
  /**
148
- * Get all tools in ToolSet format with on-demand JSON Schema conversion
238
+ * Get internal tools in ToolSet format (excludes custom tools)
239
+ */
240
+ getInternalTools() {
241
+ const toolSet = {};
242
+ for (const [name, tool] of this.internalTools) {
243
+ toolSet[name] = {
244
+ name: tool.id,
245
+ description: tool.description,
246
+ parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
247
+ };
248
+ }
249
+ return toolSet;
250
+ }
251
+ /**
252
+ * Get custom tools in ToolSet format (excludes internal tools)
149
253
  */
150
- getAllTools() {
254
+ getCustomTools() {
151
255
  const toolSet = {};
152
- for (const [name, tool] of this.tools) {
256
+ for (const [name, tool] of this.customTools) {
153
257
  toolSet[name] = {
154
258
  name: tool.id,
155
259
  description: tool.description,
156
260
  parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
157
- // ← Convert on-demand
158
261
  };
159
262
  }
160
263
  return toolSet;
161
264
  }
162
265
  /**
163
- * Get tool names
266
+ * Get internal tool names
267
+ */
268
+ getInternalToolNames() {
269
+ return Array.from(this.internalTools.keys());
270
+ }
271
+ /**
272
+ * Get custom tool names
273
+ */
274
+ getCustomToolNames() {
275
+ return Array.from(this.customTools.keys());
276
+ }
277
+ /**
278
+ * Get all tool names (internal + custom)
164
279
  */
165
280
  getToolNames() {
166
- return Array.from(this.tools.keys());
281
+ return [...this.internalTools.keys(), ...this.customTools.keys()];
167
282
  }
168
283
  /**
169
284
  * Get tool count
170
285
  */
171
286
  getToolCount() {
172
- return this.tools.size;
287
+ return this.internalTools.size + this.customTools.size;
288
+ }
289
+ /**
290
+ * Get internal tool count
291
+ */
292
+ getInternalToolCount() {
293
+ return this.internalTools.size;
294
+ }
295
+ /**
296
+ * Get custom tool count
297
+ */
298
+ getCustomToolCount() {
299
+ return this.customTools.size;
173
300
  }
174
301
  }
175
302
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,27 +1,39 @@
1
1
  import { ToolSet, InternalTool } from '../types.js';
2
2
  import type { IDextoLogger } from '../../logger/v2/types.js';
3
+ import type { DextoAgent } from '../../agent/DextoAgent.js';
3
4
  import { InternalToolsServices } from './registry.js';
4
- import type { InternalToolsConfig } from '../schemas.js';
5
+ import type { InternalToolsConfig, CustomToolsConfig } from '../schemas.js';
5
6
  /**
6
- * Provider for built-in internal tools that are part of the core system
7
+ * Provider for built-in internal tools and custom tool providers
7
8
  *
8
- * This provider manages internal tools that are shipped with the core system
9
- * and need access to core services like SearchService, SessionManager, etc.
9
+ * This provider manages:
10
+ * 1. Built-in internal tools that are shipped with the core system
11
+ * 2. Custom tools registered via the customToolRegistry
10
12
  *
11
13
  * Benefits:
12
14
  * - Clean separation: ToolManager doesn't need to know about specific services
13
15
  * - Easy to extend: Just add new tools and services as needed
14
16
  * - Lightweight: Direct tool management without complex infrastructure
15
17
  * - No unnecessary ProcessedInternalTool wrapper - uses InternalTool directly
18
+ * - Custom tools follow the same provider pattern as blob storage
16
19
  */
17
20
  export declare class InternalToolsProvider {
18
21
  private services;
19
- private tools;
22
+ private internalTools;
23
+ private customTools;
20
24
  private config;
25
+ private customToolConfigs;
21
26
  private logger;
22
- constructor(services: InternalToolsServices, config: InternalToolsConfig | undefined, logger: IDextoLogger);
27
+ private agent?;
28
+ constructor(services: InternalToolsServices, config: InternalToolsConfig | undefined, customToolConfigs: CustomToolsConfig | undefined, logger: IDextoLogger);
29
+ /**
30
+ * Set agent reference after construction (avoids circular dependency)
31
+ * Must be called before initialize() if custom tools need agent access
32
+ */
33
+ setAgent(agent: DextoAgent): void;
23
34
  /**
24
35
  * Initialize the internal tools provider by registering all available internal tools
36
+ * and custom tools from the registry
25
37
  */
26
38
  initialize(): Promise<void>;
27
39
  /**
@@ -29,9 +41,22 @@ export declare class InternalToolsProvider {
29
41
  */
30
42
  private registerInternalTools;
31
43
  /**
32
- * Check if a tool exists
44
+ * Register custom tools from the custom tool registry.
45
+ * Tools are stored by their original ID - prefixing is handled by ToolManager.
46
+ */
47
+ private registerCustomTools;
48
+ /**
49
+ * Check if a tool exists (checks both internal and custom tools)
33
50
  */
34
51
  hasTool(toolName: string): boolean;
52
+ /**
53
+ * Check if an internal tool exists
54
+ */
55
+ hasInternalTool(toolName: string): boolean;
56
+ /**
57
+ * Check if a custom tool exists
58
+ */
59
+ hasCustomTool(toolName: string): boolean;
35
60
  /**
36
61
  * Get an internal tool by name
37
62
  * Returns undefined if tool doesn't exist
@@ -42,16 +67,36 @@ export declare class InternalToolsProvider {
42
67
  */
43
68
  executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string, abortSignal?: AbortSignal): Promise<unknown>;
44
69
  /**
45
- * Get all tools in ToolSet format with on-demand JSON Schema conversion
70
+ * Get internal tools in ToolSet format (excludes custom tools)
71
+ */
72
+ getInternalTools(): ToolSet;
73
+ /**
74
+ * Get custom tools in ToolSet format (excludes internal tools)
75
+ */
76
+ getCustomTools(): ToolSet;
77
+ /**
78
+ * Get internal tool names
79
+ */
80
+ getInternalToolNames(): string[];
81
+ /**
82
+ * Get custom tool names
46
83
  */
47
- getAllTools(): ToolSet;
84
+ getCustomToolNames(): string[];
48
85
  /**
49
- * Get tool names
86
+ * Get all tool names (internal + custom)
50
87
  */
51
88
  getToolNames(): string[];
52
89
  /**
53
90
  * Get tool count
54
91
  */
55
92
  getToolCount(): number;
93
+ /**
94
+ * Get internal tool count
95
+ */
96
+ getInternalToolCount(): number;
97
+ /**
98
+ * Get custom tool count
99
+ */
100
+ getCustomToolCount(): number;
56
101
  }
57
102
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAGzB,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,mBAAmB,YAAK,EAChC,MAAM,EAAE,YAAY;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;OAEG;IACH,WAAW,IAAI,OAAO;IActB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGzB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAK5E;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGvB,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,mBAAmB,YAAK,EAChC,iBAAiB,EAAE,iBAAiB,YAAK,EACzC,MAAM,EAAE,YAAY;IAYxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4D3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,OAAO,CAAC;IAyCnB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAc3B;;OAEG;IACH,cAAc,IAAI,OAAO;IAczB;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG/B"}
@@ -2,31 +2,59 @@ import "../../chunk-PTJYTZNU.js";
2
2
  import { ToolError } from "../errors.js";
3
3
  import { convertZodSchemaToJsonSchema } from "../../utils/schema.js";
4
4
  import { getInternalToolInfo } from "./registry.js";
5
+ import { customToolRegistry } from "../custom-tool-registry.js";
6
+ import { DextoRuntimeError } from "../../errors/DextoRuntimeError.js";
7
+ import { ToolErrorCode } from "../error-codes.js";
5
8
  class InternalToolsProvider {
6
9
  services;
7
- tools = /* @__PURE__ */ new Map();
8
- // Store original InternalTool
10
+ internalTools = /* @__PURE__ */ new Map();
11
+ // Built-in internal tools
12
+ customTools = /* @__PURE__ */ new Map();
13
+ // Custom tool provider tools
9
14
  config;
15
+ customToolConfigs;
10
16
  logger;
11
- constructor(services, config = [], logger) {
17
+ agent;
18
+ // Set after construction to avoid circular dependency
19
+ constructor(services, config = [], customToolConfigs = [], logger) {
12
20
  this.services = services;
13
21
  this.config = config;
22
+ this.customToolConfigs = customToolConfigs;
14
23
  this.logger = logger;
15
- this.logger.debug("InternalToolsProvider initialized with config:", { config });
24
+ this.logger.debug("InternalToolsProvider initialized with config:", {
25
+ config,
26
+ customToolConfigs
27
+ });
28
+ }
29
+ /**
30
+ * Set agent reference after construction (avoids circular dependency)
31
+ * Must be called before initialize() if custom tools need agent access
32
+ */
33
+ setAgent(agent) {
34
+ this.agent = agent;
16
35
  }
17
36
  /**
18
37
  * Initialize the internal tools provider by registering all available internal tools
38
+ * and custom tools from the registry
19
39
  */
20
40
  async initialize() {
21
41
  this.logger.info("Initializing InternalToolsProvider...");
22
42
  try {
23
- if (this.config.length === 0) {
43
+ if (this.config.length > 0) {
44
+ this.registerInternalTools();
45
+ } else {
24
46
  this.logger.info("No internal tools enabled by configuration");
25
- return;
26
47
  }
27
- this.registerInternalTools();
28
- const toolCount = this.tools.size;
29
- this.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
48
+ if (this.customToolConfigs.length > 0) {
49
+ this.registerCustomTools();
50
+ } else {
51
+ this.logger.debug("No custom tool providers configured");
52
+ }
53
+ const internalCount = this.internalTools.size;
54
+ const customCount = this.customTools.size;
55
+ this.logger.info(
56
+ `InternalToolsProvider initialized with ${internalCount + customCount} tools (${internalCount} internal, ${customCount} custom)`
57
+ );
30
58
  } catch (error) {
31
59
  this.logger.error(
32
60
  `Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
@@ -64,7 +92,7 @@ class InternalToolsProvider {
64
92
  }
65
93
  try {
66
94
  const tool = toolInfo.factory(this.services);
67
- this.tools.set(toolName, tool);
95
+ this.internalTools.set(toolName, tool);
68
96
  this.logger.debug(`Registered ${toolName} internal tool`);
69
97
  } catch (error) {
70
98
  this.logger.error(
@@ -74,27 +102,89 @@ class InternalToolsProvider {
74
102
  }
75
103
  }
76
104
  /**
77
- * Check if a tool exists
105
+ * Register custom tools from the custom tool registry.
106
+ * Tools are stored by their original ID - prefixing is handled by ToolManager.
107
+ */
108
+ registerCustomTools() {
109
+ if (!this.agent) {
110
+ throw ToolError.configInvalid(
111
+ "Agent reference not set. Call setAgent() before initialize() when using custom tools."
112
+ );
113
+ }
114
+ const context = {
115
+ logger: this.logger,
116
+ agent: this.agent,
117
+ services: this.services
118
+ // Includes approvalManager for tools that need approval flows
119
+ };
120
+ for (const toolConfig of this.customToolConfigs) {
121
+ try {
122
+ const validatedConfig = customToolRegistry.validateConfig(toolConfig);
123
+ const provider = customToolRegistry.get(validatedConfig.type);
124
+ if (!provider) {
125
+ const availableTypes = customToolRegistry.getTypes();
126
+ throw ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
127
+ }
128
+ const tools = provider.create(validatedConfig, context);
129
+ for (const tool of tools) {
130
+ if (this.customTools.has(tool.id)) {
131
+ this.logger.warn(
132
+ `Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
133
+ );
134
+ continue;
135
+ }
136
+ this.customTools.set(tool.id, tool);
137
+ this.logger.debug(
138
+ `Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
139
+ );
140
+ }
141
+ } catch (error) {
142
+ if (error instanceof DextoRuntimeError && error.code === ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
143
+ throw error;
144
+ }
145
+ this.logger.error(
146
+ `Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
147
+ );
148
+ }
149
+ }
150
+ }
151
+ /**
152
+ * Check if a tool exists (checks both internal and custom tools)
78
153
  */
79
154
  hasTool(toolName) {
80
- return this.tools.has(toolName);
155
+ return this.internalTools.has(toolName) || this.customTools.has(toolName);
156
+ }
157
+ /**
158
+ * Check if an internal tool exists
159
+ */
160
+ hasInternalTool(toolName) {
161
+ return this.internalTools.has(toolName);
162
+ }
163
+ /**
164
+ * Check if a custom tool exists
165
+ */
166
+ hasCustomTool(toolName) {
167
+ return this.customTools.has(toolName);
81
168
  }
82
169
  /**
83
170
  * Get an internal tool by name
84
171
  * Returns undefined if tool doesn't exist
85
172
  */
86
173
  getTool(toolName) {
87
- return this.tools.get(toolName);
174
+ return this.internalTools.get(toolName) || this.customTools.get(toolName);
88
175
  }
89
176
  /**
90
177
  * Execute an internal tool - confirmation is handled by ToolManager
91
178
  */
92
179
  async executeTool(toolName, args, sessionId, abortSignal) {
93
- const tool = this.tools.get(toolName);
180
+ const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
94
181
  if (!tool) {
95
- this.logger.error(`\u274C No internal tool found: ${toolName}`);
182
+ this.logger.error(`\u274C No tool found: ${toolName}`);
183
+ this.logger.debug(
184
+ `Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
185
+ );
96
186
  this.logger.debug(
97
- `Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
187
+ `Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
98
188
  );
99
189
  throw ToolError.notFound(toolName);
100
190
  }
@@ -123,31 +213,68 @@ class InternalToolsProvider {
123
213
  }
124
214
  }
125
215
  /**
126
- * Get all tools in ToolSet format with on-demand JSON Schema conversion
216
+ * Get internal tools in ToolSet format (excludes custom tools)
217
+ */
218
+ getInternalTools() {
219
+ const toolSet = {};
220
+ for (const [name, tool] of this.internalTools) {
221
+ toolSet[name] = {
222
+ name: tool.id,
223
+ description: tool.description,
224
+ parameters: convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
225
+ };
226
+ }
227
+ return toolSet;
228
+ }
229
+ /**
230
+ * Get custom tools in ToolSet format (excludes internal tools)
127
231
  */
128
- getAllTools() {
232
+ getCustomTools() {
129
233
  const toolSet = {};
130
- for (const [name, tool] of this.tools) {
234
+ for (const [name, tool] of this.customTools) {
131
235
  toolSet[name] = {
132
236
  name: tool.id,
133
237
  description: tool.description,
134
238
  parameters: convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
135
- // ← Convert on-demand
136
239
  };
137
240
  }
138
241
  return toolSet;
139
242
  }
140
243
  /**
141
- * Get tool names
244
+ * Get internal tool names
245
+ */
246
+ getInternalToolNames() {
247
+ return Array.from(this.internalTools.keys());
248
+ }
249
+ /**
250
+ * Get custom tool names
251
+ */
252
+ getCustomToolNames() {
253
+ return Array.from(this.customTools.keys());
254
+ }
255
+ /**
256
+ * Get all tool names (internal + custom)
142
257
  */
143
258
  getToolNames() {
144
- return Array.from(this.tools.keys());
259
+ return [...this.internalTools.keys(), ...this.customTools.keys()];
145
260
  }
146
261
  /**
147
262
  * Get tool count
148
263
  */
149
264
  getToolCount() {
150
- return this.tools.size;
265
+ return this.internalTools.size + this.customTools.size;
266
+ }
267
+ /**
268
+ * Get internal tool count
269
+ */
270
+ getInternalToolCount() {
271
+ return this.internalTools.size;
272
+ }
273
+ /**
274
+ * Get custom tool count
275
+ */
276
+ getCustomToolCount() {
277
+ return this.customTools.size;
151
278
  }
152
279
  }
153
280
  export {