@dexto/core 1.4.0 → 1.5.1

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 (514) 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 +5959 -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 +6 -3
  89. package/dist/events/index.d.ts +35 -19
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +5 -3
  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/provider-options.cjs +87 -0
  127. package/dist/llm/executor/provider-options.d.ts +49 -0
  128. package/dist/llm/executor/provider-options.d.ts.map +1 -0
  129. package/dist/llm/executor/provider-options.js +63 -0
  130. package/dist/llm/executor/stream-processor.cjs +22 -11
  131. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  132. package/dist/llm/executor/stream-processor.js +22 -11
  133. package/dist/llm/executor/turn-executor.cjs +60 -23
  134. package/dist/llm/executor/turn-executor.d.ts +7 -5
  135. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  136. package/dist/llm/executor/turn-executor.js +60 -23
  137. package/dist/llm/formatters/vercel.cjs +15 -3
  138. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  139. package/dist/llm/formatters/vercel.js +15 -3
  140. package/dist/llm/index.cjs +18 -1
  141. package/dist/llm/index.d.ts +2 -0
  142. package/dist/llm/index.d.ts.map +1 -1
  143. package/dist/llm/index.js +14 -0
  144. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  145. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  146. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  147. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  148. package/dist/llm/providers/local/downloader.cjs +291 -0
  149. package/dist/llm/providers/local/downloader.d.ts +82 -0
  150. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  151. package/dist/llm/providers/local/downloader.js +251 -0
  152. package/dist/llm/providers/local/error-codes.cjs +57 -0
  153. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  154. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  155. package/dist/llm/providers/local/error-codes.js +34 -0
  156. package/dist/llm/providers/local/errors.cjs +240 -0
  157. package/dist/llm/providers/local/errors.d.ts +31 -0
  158. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  159. package/dist/llm/providers/local/errors.js +217 -0
  160. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  161. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  162. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  163. package/dist/llm/providers/local/gpu-detector.js +178 -0
  164. package/dist/llm/providers/local/index.cjs +147 -0
  165. package/dist/llm/providers/local/index.d.ts +21 -0
  166. package/dist/llm/providers/local/index.d.ts.map +1 -0
  167. package/dist/llm/providers/local/index.js +126 -0
  168. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  169. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  170. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  171. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  172. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  173. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  174. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  175. package/dist/llm/providers/local/ollama-provider.js +198 -0
  176. package/dist/llm/providers/local/registry.cjs +343 -0
  177. package/dist/llm/providers/local/registry.d.ts +51 -0
  178. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  179. package/dist/llm/providers/local/registry.js +312 -0
  180. package/dist/llm/providers/local/schemas.cjs +169 -0
  181. package/dist/llm/providers/local/schemas.d.ts +395 -0
  182. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  183. package/dist/llm/providers/local/schemas.js +133 -0
  184. package/dist/llm/providers/local/types.cjs +16 -0
  185. package/dist/llm/providers/local/types.d.ts +219 -0
  186. package/dist/llm/providers/local/types.d.ts.map +1 -0
  187. package/dist/llm/providers/local/types.js +0 -0
  188. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  189. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  190. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  191. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  192. package/dist/llm/registry.cjs +604 -9
  193. package/dist/llm/registry.d.ts +35 -0
  194. package/dist/llm/registry.d.ts.map +1 -1
  195. package/dist/llm/registry.js +600 -9
  196. package/dist/llm/resolver.cjs +63 -5
  197. package/dist/llm/resolver.d.ts +3 -3
  198. package/dist/llm/resolver.d.ts.map +1 -1
  199. package/dist/llm/resolver.js +69 -6
  200. package/dist/llm/schemas.cjs +107 -81
  201. package/dist/llm/schemas.d.ts +181 -22
  202. package/dist/llm/schemas.d.ts.map +1 -1
  203. package/dist/llm/schemas.js +107 -81
  204. package/dist/llm/services/factory.cjs +87 -13
  205. package/dist/llm/services/factory.d.ts +4 -1
  206. package/dist/llm/services/factory.d.ts.map +1 -1
  207. package/dist/llm/services/factory.js +85 -12
  208. package/dist/llm/services/test-utils.integration.cjs +22 -2
  209. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  210. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  211. package/dist/llm/services/test-utils.integration.js +26 -3
  212. package/dist/llm/services/vercel.cjs +8 -3
  213. package/dist/llm/services/vercel.d.ts +3 -2
  214. package/dist/llm/services/vercel.d.ts.map +1 -1
  215. package/dist/llm/services/vercel.js +8 -3
  216. package/dist/llm/types.cjs +11 -1
  217. package/dist/llm/types.d.ts +1 -1
  218. package/dist/llm/types.d.ts.map +1 -1
  219. package/dist/llm/types.js +11 -1
  220. package/dist/logger/logger.cjs +7 -3
  221. package/dist/logger/logger.d.ts.map +1 -1
  222. package/dist/logger/logger.js +7 -3
  223. package/dist/mcp/manager.cjs +8 -0
  224. package/dist/mcp/manager.d.ts +17 -0
  225. package/dist/mcp/manager.d.ts.map +1 -1
  226. package/dist/mcp/manager.js +8 -0
  227. package/dist/mcp/mcp-client.cjs +0 -3
  228. package/dist/mcp/mcp-client.d.ts.map +1 -1
  229. package/dist/mcp/mcp-client.js +0 -3
  230. package/dist/memory/schemas.d.ts +3 -3
  231. package/dist/plugins/error-codes.cjs +3 -0
  232. package/dist/plugins/error-codes.d.ts +7 -1
  233. package/dist/plugins/error-codes.d.ts.map +1 -1
  234. package/dist/plugins/error-codes.js +3 -0
  235. package/dist/plugins/index.cjs +7 -0
  236. package/dist/plugins/index.d.ts +4 -2
  237. package/dist/plugins/index.d.ts.map +1 -1
  238. package/dist/plugins/index.js +6 -1
  239. package/dist/plugins/manager.cjs +92 -7
  240. package/dist/plugins/manager.d.ts +10 -3
  241. package/dist/plugins/manager.d.ts.map +1 -1
  242. package/dist/plugins/manager.js +92 -7
  243. package/dist/plugins/registry.cjs +63 -0
  244. package/dist/plugins/registry.d.ts +101 -0
  245. package/dist/plugins/registry.d.ts.map +1 -0
  246. package/dist/plugins/registry.js +39 -0
  247. package/dist/plugins/schemas.cjs +17 -5
  248. package/dist/plugins/schemas.d.ts +62 -5
  249. package/dist/plugins/schemas.d.ts.map +1 -1
  250. package/dist/plugins/schemas.js +15 -4
  251. package/dist/providers/base-registry.cjs +147 -0
  252. package/dist/providers/base-registry.d.ts +147 -0
  253. package/dist/providers/base-registry.d.ts.map +1 -0
  254. package/dist/providers/base-registry.js +123 -0
  255. package/dist/providers/discovery.cjs +109 -0
  256. package/dist/providers/discovery.d.ts +96 -0
  257. package/dist/providers/discovery.d.ts.map +1 -0
  258. package/dist/providers/discovery.js +84 -0
  259. package/dist/providers/index.cjs +24 -0
  260. package/dist/providers/index.d.ts +32 -0
  261. package/dist/providers/index.d.ts.map +1 -0
  262. package/dist/providers/index.js +2 -0
  263. package/dist/resources/reference-parser.cjs +3 -3
  264. package/dist/resources/reference-parser.d.ts.map +1 -1
  265. package/dist/resources/reference-parser.js +3 -3
  266. package/dist/session/chat-session.cjs +20 -3
  267. package/dist/session/chat-session.d.ts.map +1 -1
  268. package/dist/session/chat-session.js +21 -4
  269. package/dist/session/history/database.cjs +49 -15
  270. package/dist/session/history/database.d.ts.map +1 -1
  271. package/dist/session/history/database.js +49 -15
  272. package/dist/session/session-manager.cjs +2 -1
  273. package/dist/session/session-manager.d.ts.map +1 -1
  274. package/dist/session/session-manager.js +2 -1
  275. package/dist/storage/blob/factory.cjs +8 -11
  276. package/dist/storage/blob/factory.d.ts +32 -6
  277. package/dist/storage/blob/factory.d.ts.map +1 -1
  278. package/dist/storage/blob/factory.js +8 -11
  279. package/dist/storage/blob/index.cjs +56 -0
  280. package/dist/storage/blob/index.d.ts +45 -0
  281. package/dist/storage/blob/index.d.ts.map +1 -0
  282. package/dist/storage/blob/index.js +30 -0
  283. package/dist/storage/blob/provider.cjs +16 -0
  284. package/dist/storage/blob/provider.d.ts +50 -0
  285. package/dist/storage/blob/provider.d.ts.map +1 -0
  286. package/dist/storage/blob/provider.js +0 -0
  287. package/dist/storage/blob/providers/index.cjs +31 -0
  288. package/dist/storage/blob/providers/index.d.ts +8 -0
  289. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  290. package/dist/storage/blob/providers/index.js +7 -0
  291. package/dist/storage/blob/providers/local.cjs +39 -0
  292. package/dist/storage/blob/providers/local.d.ts +17 -0
  293. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  294. package/dist/storage/blob/providers/local.js +16 -0
  295. package/dist/storage/blob/providers/memory.cjs +39 -0
  296. package/dist/storage/blob/providers/memory.d.ts +17 -0
  297. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  298. package/dist/storage/blob/providers/memory.js +16 -0
  299. package/dist/storage/blob/registry.cjs +50 -0
  300. package/dist/storage/blob/registry.d.ts +42 -0
  301. package/dist/storage/blob/registry.d.ts.map +1 -0
  302. package/dist/storage/blob/registry.js +26 -0
  303. package/dist/storage/blob/schemas.cjs +9 -12
  304. package/dist/storage/blob/schemas.d.ts +39 -34
  305. package/dist/storage/blob/schemas.d.ts.map +1 -1
  306. package/dist/storage/blob/schemas.js +6 -11
  307. package/dist/storage/cache/factory.cjs +8 -36
  308. package/dist/storage/cache/factory.d.ts +32 -7
  309. package/dist/storage/cache/factory.d.ts.map +1 -1
  310. package/dist/storage/cache/factory.js +8 -26
  311. package/dist/storage/cache/index.cjs +53 -0
  312. package/dist/storage/cache/index.d.ts +44 -0
  313. package/dist/storage/cache/index.d.ts.map +1 -0
  314. package/dist/storage/cache/index.js +28 -0
  315. package/dist/storage/cache/provider.cjs +16 -0
  316. package/dist/storage/cache/provider.d.ts +56 -0
  317. package/dist/storage/cache/provider.d.ts.map +1 -0
  318. package/dist/storage/cache/provider.js +0 -0
  319. package/dist/storage/cache/providers/index.cjs +31 -0
  320. package/dist/storage/cache/providers/index.d.ts +8 -0
  321. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  322. package/dist/storage/cache/providers/index.js +7 -0
  323. package/dist/storage/cache/providers/memory.cjs +40 -0
  324. package/dist/storage/cache/providers/memory.d.ts +17 -0
  325. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  326. package/dist/storage/cache/providers/memory.js +17 -0
  327. package/dist/storage/cache/providers/redis.cjs +66 -0
  328. package/dist/storage/cache/providers/redis.d.ts +20 -0
  329. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  330. package/dist/storage/cache/providers/redis.js +33 -0
  331. package/dist/storage/cache/registry.cjs +50 -0
  332. package/dist/storage/cache/registry.d.ts +42 -0
  333. package/dist/storage/cache/registry.d.ts.map +1 -0
  334. package/dist/storage/cache/registry.js +26 -0
  335. package/dist/storage/cache/schemas.cjs +6 -2
  336. package/dist/storage/cache/schemas.d.ts +2 -3
  337. package/dist/storage/cache/schemas.d.ts.map +1 -1
  338. package/dist/storage/cache/schemas.js +3 -1
  339. package/dist/storage/database/factory.cjs +8 -47
  340. package/dist/storage/database/factory.d.ts +34 -8
  341. package/dist/storage/database/factory.d.ts.map +1 -1
  342. package/dist/storage/database/factory.js +8 -37
  343. package/dist/storage/database/index.cjs +58 -0
  344. package/dist/storage/database/index.d.ts +45 -0
  345. package/dist/storage/database/index.d.ts.map +1 -0
  346. package/dist/storage/database/index.js +37 -0
  347. package/dist/storage/database/postgres-store.cjs +174 -78
  348. package/dist/storage/database/postgres-store.d.ts +19 -0
  349. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  350. package/dist/storage/database/postgres-store.js +174 -78
  351. package/dist/storage/database/provider.cjs +16 -0
  352. package/dist/storage/database/provider.d.ts +56 -0
  353. package/dist/storage/database/provider.d.ts.map +1 -0
  354. package/dist/storage/database/provider.js +0 -0
  355. package/dist/storage/database/providers/index.cjs +34 -0
  356. package/dist/storage/database/providers/index.d.ts +9 -0
  357. package/dist/storage/database/providers/index.d.ts.map +1 -0
  358. package/dist/storage/database/providers/index.js +9 -0
  359. package/dist/storage/database/providers/memory.cjs +40 -0
  360. package/dist/storage/database/providers/memory.d.ts +16 -0
  361. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  362. package/dist/storage/database/providers/memory.js +17 -0
  363. package/dist/storage/database/providers/postgres.cjs +62 -0
  364. package/dist/storage/database/providers/postgres.d.ts +19 -0
  365. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  366. package/dist/storage/database/providers/postgres.js +29 -0
  367. package/dist/storage/database/providers/sqlite.cjs +66 -0
  368. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  369. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  370. package/dist/storage/database/providers/sqlite.js +33 -0
  371. package/dist/storage/database/registry.cjs +50 -0
  372. package/dist/storage/database/registry.d.ts +42 -0
  373. package/dist/storage/database/registry.d.ts.map +1 -0
  374. package/dist/storage/database/registry.js +26 -0
  375. package/dist/storage/database/schemas.cjs +12 -3
  376. package/dist/storage/database/schemas.d.ts +11 -4
  377. package/dist/storage/database/schemas.d.ts.map +1 -1
  378. package/dist/storage/database/schemas.js +8 -2
  379. package/dist/storage/error-codes.cjs +6 -0
  380. package/dist/storage/error-codes.d.ts +7 -1
  381. package/dist/storage/error-codes.d.ts.map +1 -1
  382. package/dist/storage/error-codes.js +6 -0
  383. package/dist/storage/errors.cjs +80 -0
  384. package/dist/storage/errors.d.ts +24 -0
  385. package/dist/storage/errors.d.ts.map +1 -1
  386. package/dist/storage/errors.js +80 -0
  387. package/dist/storage/index.cjs +47 -4
  388. package/dist/storage/index.d.ts +34 -8
  389. package/dist/storage/index.d.ts.map +1 -1
  390. package/dist/storage/index.js +32 -3
  391. package/dist/storage/schemas.cjs +4 -0
  392. package/dist/storage/schemas.d.ts +24 -50
  393. package/dist/storage/schemas.d.ts.map +1 -1
  394. package/dist/storage/schemas.js +5 -1
  395. package/dist/storage/storage-manager.cjs +6 -6
  396. package/dist/storage/storage-manager.d.ts.map +1 -1
  397. package/dist/storage/storage-manager.js +3 -3
  398. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  399. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  400. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  401. package/dist/systemPrompt/in-built-prompts.js +6 -5
  402. package/dist/systemPrompt/registry.cjs +2 -2
  403. package/dist/systemPrompt/registry.d.ts +1 -1
  404. package/dist/systemPrompt/registry.d.ts.map +1 -1
  405. package/dist/systemPrompt/registry.js +2 -2
  406. package/dist/systemPrompt/schemas.cjs +2 -2
  407. package/dist/systemPrompt/schemas.d.ts +13 -13
  408. package/dist/systemPrompt/schemas.js +2 -2
  409. package/dist/tools/custom-tool-registry.cjs +64 -0
  410. package/dist/tools/custom-tool-registry.d.ts +126 -0
  411. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  412. package/dist/tools/custom-tool-registry.js +40 -0
  413. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  414. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  415. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  416. package/dist/tools/custom-tool-schema-registry.js +140 -0
  417. package/dist/tools/error-codes.cjs +3 -0
  418. package/dist/tools/error-codes.d.ts +4 -1
  419. package/dist/tools/error-codes.d.ts.map +1 -1
  420. package/dist/tools/error-codes.js +3 -0
  421. package/dist/tools/errors.cjs +41 -0
  422. package/dist/tools/errors.d.ts +17 -0
  423. package/dist/tools/errors.d.ts.map +1 -1
  424. package/dist/tools/errors.js +41 -0
  425. package/dist/tools/index.cjs +13 -1
  426. package/dist/tools/index.d.ts +4 -0
  427. package/dist/tools/index.d.ts.map +1 -1
  428. package/dist/tools/index.js +11 -1
  429. package/dist/tools/internal-tools/constants.cjs +3 -9
  430. package/dist/tools/internal-tools/constants.d.ts +1 -1
  431. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  432. package/dist/tools/internal-tools/constants.js +3 -9
  433. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  434. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  435. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  436. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  437. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  438. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  439. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  440. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  441. package/dist/tools/internal-tools/provider.cjs +153 -23
  442. package/dist/tools/internal-tools/provider.d.ts +55 -10
  443. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  444. package/dist/tools/internal-tools/provider.js +153 -23
  445. package/dist/tools/internal-tools/registry.cjs +18 -43
  446. package/dist/tools/internal-tools/registry.d.ts +4 -4
  447. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  448. package/dist/tools/internal-tools/registry.js +18 -43
  449. package/dist/tools/schemas.cjs +20 -0
  450. package/dist/tools/schemas.d.ts +43 -1
  451. package/dist/tools/schemas.d.ts.map +1 -1
  452. package/dist/tools/schemas.js +16 -0
  453. package/dist/tools/tool-manager.cjs +140 -13
  454. package/dist/tools/tool-manager.d.ts +22 -3
  455. package/dist/tools/tool-manager.d.ts.map +1 -1
  456. package/dist/tools/tool-manager.js +140 -13
  457. package/dist/tools/types.d.ts +43 -0
  458. package/dist/tools/types.d.ts.map +1 -1
  459. package/dist/utils/api-key-resolver.cjs +19 -1
  460. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  461. package/dist/utils/api-key-resolver.js +19 -1
  462. package/dist/utils/index.cjs +0 -2
  463. package/dist/utils/index.d.ts +0 -1
  464. package/dist/utils/index.d.ts.map +1 -1
  465. package/dist/utils/index.js +0 -1
  466. package/dist/utils/redactor.cjs +18 -3
  467. package/dist/utils/redactor.d.ts +0 -7
  468. package/dist/utils/redactor.d.ts.map +1 -1
  469. package/dist/utils/redactor.js +18 -3
  470. package/dist/utils/service-initializer.cjs +9 -35
  471. package/dist/utils/service-initializer.d.ts.map +1 -1
  472. package/dist/utils/service-initializer.js +9 -35
  473. package/package.json +5 -2
  474. package/dist/context/compression/overflow.d.ts.map +0 -1
  475. package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
  476. package/dist/context/compression/types.d.ts.map +0 -1
  477. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
  478. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  479. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  480. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
  481. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  482. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  483. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  484. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  485. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
  486. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  487. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  488. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
  489. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
  490. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  491. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  492. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
  493. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
  494. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  495. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  496. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
  497. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  498. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  499. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  500. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  501. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
  502. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  503. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  504. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
  505. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
  506. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  507. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  508. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
  509. package/dist/utils/env-file.cjs +0 -118
  510. package/dist/utils/env-file.d.ts +0 -5
  511. package/dist/utils/env-file.d.ts.map +0 -1
  512. package/dist/utils/env-file.js +0 -85
  513. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  514. /package/dist/context/{compression → compaction}/types.cjs +0 -0
@@ -0,0 +1,90 @@
1
+ import "../../../chunk-PTJYTZNU.js";
2
+ import { z } from "zod";
3
+ const GetResourceInputSchema = z.object({
4
+ reference: z.string().describe(
5
+ 'The resource reference to access. Formats: "blob:abc123" (from list_resources), "resource_ref:blob:abc123" (from tool annotations)'
6
+ ),
7
+ format: z.enum(["url", "metadata"]).default("url").describe(
8
+ 'Output format: "url" for a shareable URL (requires remote storage like Supabase), "metadata" for resource information without loading the data'
9
+ )
10
+ }).strict();
11
+ function createGetResourceTool(resourceManager) {
12
+ return {
13
+ id: "get_resource",
14
+ description: 'Access a stored resource. Use format "url" to get a shareable URL for other agents or external systems (requires remote storage like Supabase). Use format "metadata" to get resource information without loading data. References can be obtained from tool result annotations or list_resources.',
15
+ inputSchema: GetResourceInputSchema,
16
+ execute: async (input, _context) => {
17
+ const { reference, format } = input;
18
+ try {
19
+ const blobStore = resourceManager.getBlobStore();
20
+ const storeType = blobStore.getStoreType();
21
+ let blobUri = reference;
22
+ if (blobUri.startsWith("resource_ref:")) {
23
+ blobUri = blobUri.substring("resource_ref:".length);
24
+ }
25
+ if (blobUri.startsWith("@")) {
26
+ blobUri = blobUri.substring(1);
27
+ }
28
+ if (!blobUri.startsWith("blob:")) {
29
+ blobUri = `blob:${blobUri}`;
30
+ }
31
+ const exists = await blobStore.exists(blobUri);
32
+ if (!exists) {
33
+ return {
34
+ success: false,
35
+ error: `Resource not found: ${reference}`,
36
+ _hint: "Use list_resources to see available resources"
37
+ };
38
+ }
39
+ if (format === "metadata") {
40
+ const allBlobs = await blobStore.listBlobs();
41
+ const blobRef = allBlobs.find((b) => b.uri === blobUri);
42
+ if (!blobRef) {
43
+ return {
44
+ success: false,
45
+ error: `Resource metadata not found: ${reference}`,
46
+ _hint: "Use list_resources to see available resources"
47
+ };
48
+ }
49
+ return {
50
+ success: true,
51
+ format: "metadata",
52
+ reference: blobUri,
53
+ mimeType: blobRef.metadata.mimeType,
54
+ size: blobRef.metadata.size,
55
+ filename: blobRef.metadata.originalName,
56
+ source: blobRef.metadata.source,
57
+ createdAt: blobRef.metadata.createdAt.toISOString()
58
+ };
59
+ }
60
+ if (storeType === "memory" || storeType === "local") {
61
+ return {
62
+ success: false,
63
+ error: "URL generation not available with local/memory storage",
64
+ _hint: "Configure remote storage (e.g., Supabase) in your agent config to enable URL sharing. Local storage cannot generate shareable URLs.",
65
+ storeType
66
+ };
67
+ }
68
+ const blob = await blobStore.retrieve(blobUri, "url");
69
+ return {
70
+ success: true,
71
+ format: "url",
72
+ url: blob.data,
73
+ reference: blobUri,
74
+ mimeType: blob.metadata.mimeType,
75
+ size: blob.metadata.size,
76
+ filename: blob.metadata.originalName
77
+ };
78
+ } catch (error) {
79
+ const message = error instanceof Error ? error.message : String(error);
80
+ return {
81
+ success: false,
82
+ error: `Failed to access resource: ${message}`
83
+ };
84
+ }
85
+ }
86
+ };
87
+ }
88
+ export {
89
+ createGetResourceTool
90
+ };
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var list_resources_tool_exports = {};
20
+ __export(list_resources_tool_exports, {
21
+ createListResourcesTool: () => createListResourcesTool
22
+ });
23
+ module.exports = __toCommonJS(list_resources_tool_exports);
24
+ var import_zod = require("zod");
25
+ const ListResourcesInputSchema = import_zod.z.object({
26
+ source: import_zod.z.enum(["all", "tool", "user"]).optional().default("all").describe(
27
+ 'Filter by source: "tool" for tool-generated resources, "user" for user-uploaded, "all" for both'
28
+ ),
29
+ kind: import_zod.z.enum(["all", "image", "audio", "video", "binary"]).optional().default("all").describe('Filter by type: "image", "audio", "video", "binary", or "all"'),
30
+ limit: import_zod.z.number().optional().default(50).describe("Maximum number of resources to return (default: 50)")
31
+ }).strict();
32
+ function createListResourcesTool(resourceManager) {
33
+ return {
34
+ id: "list_resources",
35
+ description: "List available resources (images, files, etc.). Returns resource references that can be used with get_resource to obtain shareable URLs or metadata. Filter by source (tool/user) or kind (image/audio/video/binary).",
36
+ inputSchema: ListResourcesInputSchema,
37
+ execute: async (input, _context) => {
38
+ const { source, kind, limit } = input;
39
+ try {
40
+ const blobStore = resourceManager.getBlobStore();
41
+ const allBlobs = await blobStore.listBlobs();
42
+ const resources = [];
43
+ for (const blob of allBlobs) {
44
+ if (blob.metadata.source === "system") {
45
+ continue;
46
+ }
47
+ if (source !== "all" && blob.metadata.source !== source) {
48
+ continue;
49
+ }
50
+ const mimeType = blob.metadata.mimeType;
51
+ let resourceKind = "binary";
52
+ if (mimeType.startsWith("image/")) resourceKind = "image";
53
+ else if (mimeType.startsWith("audio/")) resourceKind = "audio";
54
+ else if (mimeType.startsWith("video/")) resourceKind = "video";
55
+ if (kind !== "all" && resourceKind !== kind) {
56
+ continue;
57
+ }
58
+ resources.push({
59
+ reference: blob.uri,
60
+ kind: resourceKind,
61
+ mimeType: blob.metadata.mimeType,
62
+ ...blob.metadata.originalName && { filename: blob.metadata.originalName },
63
+ source: blob.metadata.source || "tool",
64
+ size: blob.metadata.size,
65
+ createdAt: blob.metadata.createdAt.toISOString()
66
+ });
67
+ }
68
+ resources.sort(
69
+ (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()
70
+ );
71
+ const limitedResources = resources.slice(0, limit);
72
+ return {
73
+ success: true,
74
+ count: limitedResources.length,
75
+ resources: limitedResources,
76
+ _hint: limitedResources.length > 0 ? "Use get_resource with a reference to get a shareable URL or metadata" : "No resources found matching the criteria"
77
+ };
78
+ } catch (error) {
79
+ return {
80
+ success: false,
81
+ error: `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,
82
+ resources: []
83
+ };
84
+ }
85
+ }
86
+ };
87
+ }
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ createListResourcesTool
91
+ });
@@ -0,0 +1,24 @@
1
+ import { InternalTool } from '../../types.js';
2
+ import type { ResourceManager } from '../../../resources/manager.js';
3
+ /**
4
+ * Internal tool for listing available resources.
5
+ *
6
+ * This tool allows agents to discover what resources (images, files, etc.) are
7
+ * available. Use this to find resources that can be accessed with get_resource.
8
+ *
9
+ * Resources are stored blobs from:
10
+ * - Tool results (images generated by tools, screenshots, etc.)
11
+ * - User uploads (files attached to messages)
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // List all tool-generated images
16
+ * list_resources({ source: 'tool', kind: 'image' })
17
+ * → { resources: [{ reference: 'blob:abc123', kind: 'image', ... }] }
18
+ *
19
+ * // Get a URL for sharing
20
+ * get_resource({ reference: 'blob:abc123', format: 'url' })
21
+ * ```
22
+ */
23
+ export declare function createListResourcesTool(resourceManager: ResourceManager): InternalTool;
24
+ //# sourceMappingURL=list-resources-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-resources-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/list-resources-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAqDrE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,GAAG,YAAY,CA8EtF"}
@@ -0,0 +1,68 @@
1
+ import "../../../chunk-PTJYTZNU.js";
2
+ import { z } from "zod";
3
+ const ListResourcesInputSchema = z.object({
4
+ source: z.enum(["all", "tool", "user"]).optional().default("all").describe(
5
+ 'Filter by source: "tool" for tool-generated resources, "user" for user-uploaded, "all" for both'
6
+ ),
7
+ kind: z.enum(["all", "image", "audio", "video", "binary"]).optional().default("all").describe('Filter by type: "image", "audio", "video", "binary", or "all"'),
8
+ limit: z.number().optional().default(50).describe("Maximum number of resources to return (default: 50)")
9
+ }).strict();
10
+ function createListResourcesTool(resourceManager) {
11
+ return {
12
+ id: "list_resources",
13
+ description: "List available resources (images, files, etc.). Returns resource references that can be used with get_resource to obtain shareable URLs or metadata. Filter by source (tool/user) or kind (image/audio/video/binary).",
14
+ inputSchema: ListResourcesInputSchema,
15
+ execute: async (input, _context) => {
16
+ const { source, kind, limit } = input;
17
+ try {
18
+ const blobStore = resourceManager.getBlobStore();
19
+ const allBlobs = await blobStore.listBlobs();
20
+ const resources = [];
21
+ for (const blob of allBlobs) {
22
+ if (blob.metadata.source === "system") {
23
+ continue;
24
+ }
25
+ if (source !== "all" && blob.metadata.source !== source) {
26
+ continue;
27
+ }
28
+ const mimeType = blob.metadata.mimeType;
29
+ let resourceKind = "binary";
30
+ if (mimeType.startsWith("image/")) resourceKind = "image";
31
+ else if (mimeType.startsWith("audio/")) resourceKind = "audio";
32
+ else if (mimeType.startsWith("video/")) resourceKind = "video";
33
+ if (kind !== "all" && resourceKind !== kind) {
34
+ continue;
35
+ }
36
+ resources.push({
37
+ reference: blob.uri,
38
+ kind: resourceKind,
39
+ mimeType: blob.metadata.mimeType,
40
+ ...blob.metadata.originalName && { filename: blob.metadata.originalName },
41
+ source: blob.metadata.source || "tool",
42
+ size: blob.metadata.size,
43
+ createdAt: blob.metadata.createdAt.toISOString()
44
+ });
45
+ }
46
+ resources.sort(
47
+ (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()
48
+ );
49
+ const limitedResources = resources.slice(0, limit);
50
+ return {
51
+ success: true,
52
+ count: limitedResources.length,
53
+ resources: limitedResources,
54
+ _hint: limitedResources.length > 0 ? "Use get_resource with a reference to get a shareable URL or metadata" : "No resources found matching the criteria"
55
+ };
56
+ } catch (error) {
57
+ return {
58
+ success: false,
59
+ error: `Failed to list resources: ${error instanceof Error ? error.message : String(error)}`,
60
+ resources: []
61
+ };
62
+ }
63
+ }
64
+ };
65
+ }
66
+ export {
67
+ createListResourcesTool
68
+ };
@@ -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,92 @@ 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: {
140
+ ...this.services,
141
+ // Include storageManager from agent services for custom tools that need persistence
142
+ storageManager: this.agent.services?.storageManager
143
+ }
144
+ };
145
+ for (const toolConfig of this.customToolConfigs) {
146
+ try {
147
+ const validatedConfig = import_custom_tool_registry.customToolRegistry.validateConfig(toolConfig);
148
+ const provider = import_custom_tool_registry.customToolRegistry.get(validatedConfig.type);
149
+ if (!provider) {
150
+ const availableTypes = import_custom_tool_registry.customToolRegistry.getTypes();
151
+ throw import_errors.ToolError.unknownCustomToolProvider(validatedConfig.type, availableTypes);
152
+ }
153
+ const tools = provider.create(validatedConfig, context);
154
+ for (const tool of tools) {
155
+ if (this.customTools.has(tool.id)) {
156
+ this.logger.warn(
157
+ `Custom tool '${tool.id}' conflicts with existing custom tool. Skipping.`
158
+ );
159
+ continue;
160
+ }
161
+ this.customTools.set(tool.id, tool);
162
+ this.logger.debug(
163
+ `Registered custom tool: ${tool.id} from provider '${provider.metadata?.displayName || validatedConfig.type}'`
164
+ );
165
+ }
166
+ } catch (error) {
167
+ if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.ToolErrorCode.CUSTOM_TOOL_PROVIDER_UNKNOWN) {
168
+ throw error;
169
+ }
170
+ this.logger.error(
171
+ `Failed to register custom tool provider: ${error instanceof Error ? error.message : String(error)}`
172
+ );
173
+ }
174
+ }
175
+ }
176
+ /**
177
+ * Check if a tool exists (checks both internal and custom tools)
100
178
  */
101
179
  hasTool(toolName) {
102
- return this.tools.has(toolName);
180
+ return this.internalTools.has(toolName) || this.customTools.has(toolName);
181
+ }
182
+ /**
183
+ * Check if an internal tool exists
184
+ */
185
+ hasInternalTool(toolName) {
186
+ return this.internalTools.has(toolName);
187
+ }
188
+ /**
189
+ * Check if a custom tool exists
190
+ */
191
+ hasCustomTool(toolName) {
192
+ return this.customTools.has(toolName);
103
193
  }
104
194
  /**
105
195
  * Get an internal tool by name
106
196
  * Returns undefined if tool doesn't exist
107
197
  */
108
198
  getTool(toolName) {
109
- return this.tools.get(toolName);
199
+ return this.internalTools.get(toolName) || this.customTools.get(toolName);
110
200
  }
111
201
  /**
112
202
  * Execute an internal tool - confirmation is handled by ToolManager
113
203
  */
114
204
  async executeTool(toolName, args, sessionId, abortSignal) {
115
- const tool = this.tools.get(toolName);
205
+ const tool = this.internalTools.get(toolName) || this.customTools.get(toolName);
116
206
  if (!tool) {
117
- this.logger.error(`\u274C No internal tool found: ${toolName}`);
207
+ this.logger.error(`\u274C No tool found: ${toolName}`);
118
208
  this.logger.debug(
119
- `Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
209
+ `Available internal tools: ${Array.from(this.internalTools.keys()).join(", ")}`
210
+ );
211
+ this.logger.debug(
212
+ `Available custom tools: ${Array.from(this.customTools.keys()).join(", ")}`
120
213
  );
121
214
  throw import_errors.ToolError.notFound(toolName);
122
215
  }
@@ -145,31 +238,68 @@ class InternalToolsProvider {
145
238
  }
146
239
  }
147
240
  /**
148
- * Get all tools in ToolSet format with on-demand JSON Schema conversion
241
+ * Get internal tools in ToolSet format (excludes custom tools)
242
+ */
243
+ getInternalTools() {
244
+ const toolSet = {};
245
+ for (const [name, tool] of this.internalTools) {
246
+ toolSet[name] = {
247
+ name: tool.id,
248
+ description: tool.description,
249
+ parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
250
+ };
251
+ }
252
+ return toolSet;
253
+ }
254
+ /**
255
+ * Get custom tools in ToolSet format (excludes internal tools)
149
256
  */
150
- getAllTools() {
257
+ getCustomTools() {
151
258
  const toolSet = {};
152
- for (const [name, tool] of this.tools) {
259
+ for (const [name, tool] of this.customTools) {
153
260
  toolSet[name] = {
154
261
  name: tool.id,
155
262
  description: tool.description,
156
263
  parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
157
- // ← Convert on-demand
158
264
  };
159
265
  }
160
266
  return toolSet;
161
267
  }
162
268
  /**
163
- * Get tool names
269
+ * Get internal tool names
270
+ */
271
+ getInternalToolNames() {
272
+ return Array.from(this.internalTools.keys());
273
+ }
274
+ /**
275
+ * Get custom tool names
276
+ */
277
+ getCustomToolNames() {
278
+ return Array.from(this.customTools.keys());
279
+ }
280
+ /**
281
+ * Get all tool names (internal + custom)
164
282
  */
165
283
  getToolNames() {
166
- return Array.from(this.tools.keys());
284
+ return [...this.internalTools.keys(), ...this.customTools.keys()];
167
285
  }
168
286
  /**
169
287
  * Get tool count
170
288
  */
171
289
  getToolCount() {
172
- return this.tools.size;
290
+ return this.internalTools.size + this.customTools.size;
291
+ }
292
+ /**
293
+ * Get internal tool count
294
+ */
295
+ getInternalToolCount() {
296
+ return this.internalTools.size;
297
+ }
298
+ /**
299
+ * Get custom tool count
300
+ */
301
+ getCustomToolCount() {
302
+ return this.customTools.size;
173
303
  }
174
304
  }
175
305
  // 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;IAgE3B;;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"}