@dexto/core 1.2.4 → 1.2.6

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 (551) hide show
  1. package/README.md +60 -0
  2. package/dist/agent/DextoAgent.cjs +579 -345
  3. package/dist/agent/DextoAgent.d.ts +131 -83
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +573 -336
  6. package/dist/agent/agentCard.cjs +4 -2
  7. package/dist/agent/agentCard.d.ts +0 -1
  8. package/dist/agent/agentCard.d.ts.map +1 -1
  9. package/dist/agent/agentCard.js +4 -2
  10. package/dist/agent/index.cjs +3 -7
  11. package/dist/agent/index.d.ts +3 -3
  12. package/dist/agent/index.d.ts.map +1 -1
  13. package/dist/agent/index.js +7 -6
  14. package/dist/agent/schemas.cjs +179 -75
  15. package/dist/agent/schemas.d.ts +2678 -586
  16. package/dist/agent/schemas.d.ts.map +1 -1
  17. package/dist/agent/schemas.js +172 -65
  18. package/dist/agent/state-manager.cjs +28 -23
  19. package/dist/agent/state-manager.d.ts +4 -1
  20. package/dist/agent/state-manager.d.ts.map +1 -1
  21. package/dist/agent/state-manager.js +28 -23
  22. package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
  23. package/dist/agent/types.d.ts +54 -0
  24. package/dist/agent/types.d.ts.map +1 -0
  25. package/dist/agent/types.js +0 -0
  26. package/dist/approval/errors.cjs +89 -8
  27. package/dist/approval/errors.d.ts +5 -3
  28. package/dist/approval/errors.d.ts.map +1 -1
  29. package/dist/approval/errors.js +89 -8
  30. package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
  31. package/dist/approval/factory.d.ts.map +1 -0
  32. package/dist/approval/{providers/factory.js → factory.js} +1 -1
  33. package/dist/approval/index.cjs +4 -6
  34. package/dist/approval/index.d.ts +3 -5
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +4 -5
  37. package/dist/approval/manager.cjs +140 -37
  38. package/dist/approval/manager.d.ts +56 -17
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +141 -38
  41. package/dist/approval/schemas.cjs +9 -1
  42. package/dist/approval/schemas.d.ts +120 -35
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +9 -2
  45. package/dist/approval/types.cjs +14 -2
  46. package/dist/approval/types.d.ts +64 -12
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +12 -1
  49. package/dist/context/compression/middle-removal.cjs +11 -11
  50. package/dist/context/compression/middle-removal.d.ts +3 -1
  51. package/dist/context/compression/middle-removal.d.ts.map +1 -1
  52. package/dist/context/compression/middle-removal.js +11 -11
  53. package/dist/context/compression/oldest-removal.cjs +18 -5
  54. package/dist/context/compression/oldest-removal.d.ts +3 -1
  55. package/dist/context/compression/oldest-removal.d.ts.map +1 -1
  56. package/dist/context/compression/oldest-removal.js +18 -5
  57. package/dist/context/manager.cjs +94 -67
  58. package/dist/context/manager.d.ts +13 -10
  59. package/dist/context/manager.d.ts.map +1 -1
  60. package/dist/context/manager.js +94 -67
  61. package/dist/context/utils.cjs +79 -65
  62. package/dist/context/utils.d.ts +15 -12
  63. package/dist/context/utils.d.ts.map +1 -1
  64. package/dist/context/utils.js +45 -31
  65. package/dist/errors/DextoRuntimeError.d.ts +5 -5
  66. package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
  67. package/dist/errors/result-bridge.cjs +2 -3
  68. package/dist/errors/result-bridge.d.ts +5 -3
  69. package/dist/errors/result-bridge.d.ts.map +1 -1
  70. package/dist/errors/result-bridge.js +1 -2
  71. package/dist/errors/types.cjs +1 -2
  72. package/dist/errors/types.d.ts +5 -8
  73. package/dist/errors/types.d.ts.map +1 -1
  74. package/dist/errors/types.js +1 -2
  75. package/dist/events/index.cjs +125 -55
  76. package/dist/events/index.d.ts +204 -97
  77. package/dist/events/index.d.ts.map +1 -1
  78. package/dist/events/index.js +123 -55
  79. package/dist/filesystem/filesystem-service.cjs +40 -30
  80. package/dist/filesystem/filesystem-service.d.ts +9 -1
  81. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  82. package/dist/filesystem/filesystem-service.js +40 -30
  83. package/dist/filesystem/path-validator.cjs +4 -3
  84. package/dist/filesystem/path-validator.d.ts +3 -1
  85. package/dist/filesystem/path-validator.d.ts.map +1 -1
  86. package/dist/filesystem/path-validator.js +4 -3
  87. package/dist/filesystem/types.d.ts +3 -3
  88. package/dist/filesystem/types.d.ts.map +1 -1
  89. package/dist/index.browser.cjs +7 -0
  90. package/dist/index.browser.d.ts +2 -0
  91. package/dist/index.browser.d.ts.map +1 -1
  92. package/dist/index.browser.js +4 -0
  93. package/dist/index.cjs +0 -7
  94. package/dist/index.d.ts +12 -3
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +0 -4
  97. package/dist/llm/formatters/anthropic.cjs +32 -21
  98. package/dist/llm/formatters/anthropic.d.ts +3 -0
  99. package/dist/llm/formatters/anthropic.d.ts.map +1 -1
  100. package/dist/llm/formatters/anthropic.js +32 -21
  101. package/dist/llm/formatters/factory.cjs +6 -7
  102. package/dist/llm/formatters/factory.d.ts +2 -1
  103. package/dist/llm/formatters/factory.d.ts.map +1 -1
  104. package/dist/llm/formatters/factory.js +4 -5
  105. package/dist/llm/formatters/openai.cjs +38 -9
  106. package/dist/llm/formatters/openai.d.ts +3 -0
  107. package/dist/llm/formatters/openai.d.ts.map +1 -1
  108. package/dist/llm/formatters/openai.js +38 -9
  109. package/dist/llm/formatters/vercel.cjs +49 -8
  110. package/dist/llm/formatters/vercel.d.ts +3 -0
  111. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  112. package/dist/llm/formatters/vercel.js +49 -8
  113. package/dist/llm/registry.cjs +153 -17
  114. package/dist/llm/registry.d.ts +5 -2
  115. package/dist/llm/registry.d.ts.map +1 -1
  116. package/dist/llm/registry.js +143 -7
  117. package/dist/llm/resolver.cjs +4 -4
  118. package/dist/llm/resolver.d.ts +3 -2
  119. package/dist/llm/resolver.d.ts.map +1 -1
  120. package/dist/llm/resolver.js +4 -4
  121. package/dist/llm/schemas.cjs +6 -3
  122. package/dist/llm/schemas.d.ts +51 -17
  123. package/dist/llm/schemas.d.ts.map +1 -1
  124. package/dist/llm/schemas.js +5 -3
  125. package/dist/llm/services/anthropic.cjs +216 -183
  126. package/dist/llm/services/anthropic.d.ts +3 -1
  127. package/dist/llm/services/anthropic.d.ts.map +1 -1
  128. package/dist/llm/services/anthropic.js +217 -184
  129. package/dist/llm/services/factory.cjs +15 -9
  130. package/dist/llm/services/factory.d.ts +2 -1
  131. package/dist/llm/services/factory.d.ts.map +1 -1
  132. package/dist/llm/services/factory.js +15 -9
  133. package/dist/llm/services/openai.cjs +262 -225
  134. package/dist/llm/services/openai.d.ts +3 -1
  135. package/dist/llm/services/openai.d.ts.map +1 -1
  136. package/dist/llm/services/openai.js +263 -226
  137. package/dist/llm/services/test-utils.integration.cjs +58 -12
  138. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  139. package/dist/llm/services/test-utils.integration.js +58 -12
  140. package/dist/llm/services/types.d.ts +9 -0
  141. package/dist/llm/services/types.d.ts.map +1 -1
  142. package/dist/llm/services/vercel.cjs +163 -111
  143. package/dist/llm/services/vercel.d.ts +3 -1
  144. package/dist/llm/services/vercel.d.ts.map +1 -1
  145. package/dist/llm/services/vercel.js +157 -105
  146. package/dist/llm/tokenizer/factory.cjs +2 -2
  147. package/dist/llm/tokenizer/factory.d.ts +3 -1
  148. package/dist/llm/tokenizer/factory.d.ts.map +1 -1
  149. package/dist/llm/tokenizer/factory.js +2 -2
  150. package/dist/llm/tokenizer/openai.cjs +16 -9
  151. package/dist/llm/tokenizer/openai.d.ts +4 -1
  152. package/dist/llm/tokenizer/openai.d.ts.map +1 -1
  153. package/dist/llm/tokenizer/openai.js +16 -9
  154. package/dist/llm/validation.cjs +8 -9
  155. package/dist/llm/validation.d.ts +3 -1
  156. package/dist/llm/validation.d.ts.map +1 -1
  157. package/dist/llm/validation.js +5 -6
  158. package/dist/logger/factory.cjs +54 -0
  159. package/dist/logger/factory.d.ts +36 -0
  160. package/dist/logger/factory.d.ts.map +1 -0
  161. package/dist/logger/factory.js +31 -0
  162. package/dist/logger/index.cjs +42 -3
  163. package/dist/logger/index.d.ts +17 -1
  164. package/dist/logger/index.d.ts.map +1 -1
  165. package/dist/logger/index.js +26 -1
  166. package/dist/logger/logger.cjs +30 -17
  167. package/dist/logger/logger.d.ts.map +1 -1
  168. package/dist/logger/logger.js +30 -17
  169. package/dist/logger/v2/dexto-logger.cjs +141 -0
  170. package/dist/logger/v2/dexto-logger.d.ts +54 -0
  171. package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
  172. package/dist/logger/v2/dexto-logger.js +118 -0
  173. package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
  174. package/dist/logger/v2/error-codes.d.ts +13 -0
  175. package/dist/logger/v2/error-codes.d.ts.map +1 -0
  176. package/dist/logger/v2/error-codes.js +13 -0
  177. package/dist/logger/v2/errors.cjs +107 -0
  178. package/dist/logger/v2/errors.d.ts +32 -0
  179. package/dist/logger/v2/errors.d.ts.map +1 -0
  180. package/dist/logger/v2/errors.js +84 -0
  181. package/dist/logger/v2/schemas.cjs +57 -0
  182. package/dist/logger/v2/schemas.d.ts +147 -0
  183. package/dist/logger/v2/schemas.d.ts.map +1 -0
  184. package/dist/logger/v2/schemas.js +33 -0
  185. package/dist/logger/v2/transport-factory.cjs +53 -0
  186. package/dist/logger/v2/transport-factory.d.ts +21 -0
  187. package/dist/logger/v2/transport-factory.d.ts.map +1 -0
  188. package/dist/logger/v2/transport-factory.js +29 -0
  189. package/dist/logger/v2/transports/console-transport.cjs +79 -0
  190. package/dist/logger/v2/transports/console-transport.d.ts +23 -0
  191. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
  192. package/dist/logger/v2/transports/console-transport.js +46 -0
  193. package/dist/logger/v2/transports/file-transport.cjs +161 -0
  194. package/dist/logger/v2/transports/file-transport.d.ts +46 -0
  195. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
  196. package/dist/logger/v2/transports/file-transport.js +128 -0
  197. package/dist/logger/v2/types.cjs +49 -0
  198. package/dist/logger/v2/types.d.ts +123 -0
  199. package/dist/logger/v2/types.d.ts.map +1 -0
  200. package/dist/logger/v2/types.js +26 -0
  201. package/dist/mcp/manager.cjs +88 -78
  202. package/dist/mcp/manager.d.ts +3 -1
  203. package/dist/mcp/manager.d.ts.map +1 -1
  204. package/dist/mcp/manager.js +88 -78
  205. package/dist/mcp/mcp-client.cjs +109 -79
  206. package/dist/mcp/mcp-client.d.ts +3 -0
  207. package/dist/mcp/mcp-client.d.ts.map +1 -1
  208. package/dist/mcp/mcp-client.js +102 -72
  209. package/dist/memory/index.cjs +2 -0
  210. package/dist/memory/index.d.ts +1 -1
  211. package/dist/memory/index.d.ts.map +1 -1
  212. package/dist/memory/index.js +3 -1
  213. package/dist/memory/manager.cjs +9 -7
  214. package/dist/memory/manager.d.ts +3 -1
  215. package/dist/memory/manager.d.ts.map +1 -1
  216. package/dist/memory/manager.js +9 -7
  217. package/dist/memory/schemas.cjs +10 -0
  218. package/dist/memory/schemas.d.ts +37 -8
  219. package/dist/memory/schemas.d.ts.map +1 -1
  220. package/dist/memory/schemas.js +9 -0
  221. package/dist/plugins/manager.cjs +21 -19
  222. package/dist/plugins/manager.d.ts +3 -1
  223. package/dist/plugins/manager.d.ts.map +1 -1
  224. package/dist/plugins/manager.js +21 -19
  225. package/dist/plugins/schemas.d.ts +9 -9
  226. package/dist/plugins/types.d.ts +2 -2
  227. package/dist/plugins/types.d.ts.map +1 -1
  228. package/dist/process/command-validator.cjs +30 -20
  229. package/dist/process/command-validator.d.ts +4 -1
  230. package/dist/process/command-validator.d.ts.map +1 -1
  231. package/dist/process/command-validator.js +30 -20
  232. package/dist/process/process-service.cjs +23 -21
  233. package/dist/process/process-service.d.ts +3 -1
  234. package/dist/process/process-service.d.ts.map +1 -1
  235. package/dist/process/process-service.js +23 -21
  236. package/dist/prompts/index.cjs +6 -8
  237. package/dist/prompts/index.d.ts +2 -4
  238. package/dist/prompts/index.d.ts.map +1 -1
  239. package/dist/prompts/index.js +4 -6
  240. package/dist/prompts/prompt-manager.cjs +25 -20
  241. package/dist/prompts/prompt-manager.d.ts +3 -1
  242. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  243. package/dist/prompts/prompt-manager.js +25 -20
  244. package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
  247. package/dist/prompts/providers/config-prompt-provider.js +308 -0
  248. package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
  250. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  251. package/dist/prompts/providers/custom-prompt-provider.js +11 -7
  252. package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
  253. package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
  254. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  255. package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
  256. package/dist/prompts/schemas.cjs +42 -23
  257. package/dist/prompts/schemas.d.ts +123 -14
  258. package/dist/prompts/schemas.d.ts.map +1 -1
  259. package/dist/prompts/schemas.js +39 -22
  260. package/dist/prompts/types.d.ts +1 -1
  261. package/dist/prompts/types.d.ts.map +1 -1
  262. package/dist/resources/handlers/blob-handler.cjs +15 -11
  263. package/dist/resources/handlers/blob-handler.d.ts +3 -1
  264. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  265. package/dist/resources/handlers/blob-handler.js +15 -11
  266. package/dist/resources/handlers/factory.cjs +3 -3
  267. package/dist/resources/handlers/factory.d.ts +2 -1
  268. package/dist/resources/handlers/factory.d.ts.map +1 -1
  269. package/dist/resources/handlers/factory.js +3 -3
  270. package/dist/resources/handlers/filesystem-handler.cjs +10 -8
  271. package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
  272. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  273. package/dist/resources/handlers/filesystem-handler.js +10 -8
  274. package/dist/resources/internal-provider.cjs +28 -20
  275. package/dist/resources/internal-provider.d.ts +3 -1
  276. package/dist/resources/internal-provider.d.ts.map +1 -1
  277. package/dist/resources/internal-provider.js +28 -20
  278. package/dist/resources/manager.cjs +34 -25
  279. package/dist/resources/manager.d.ts +3 -1
  280. package/dist/resources/manager.d.ts.map +1 -1
  281. package/dist/resources/manager.js +34 -25
  282. package/dist/resources/schemas.d.ts +6 -6
  283. package/dist/search/search-service.cjs +8 -6
  284. package/dist/search/search-service.d.ts +3 -1
  285. package/dist/search/search-service.d.ts.map +1 -1
  286. package/dist/search/search-service.js +8 -6
  287. package/dist/session/chat-session.cjs +40 -27
  288. package/dist/session/chat-session.d.ts +10 -7
  289. package/dist/session/chat-session.d.ts.map +1 -1
  290. package/dist/session/chat-session.js +40 -27
  291. package/dist/session/history/database.cjs +18 -11
  292. package/dist/session/history/database.d.ts +3 -1
  293. package/dist/session/history/database.d.ts.map +1 -1
  294. package/dist/session/history/database.js +18 -11
  295. package/dist/session/history/factory.cjs +2 -2
  296. package/dist/session/history/factory.d.ts +5 -1
  297. package/dist/session/history/factory.d.ts.map +1 -1
  298. package/dist/session/history/factory.js +2 -2
  299. package/dist/session/session-manager.cjs +37 -53
  300. package/dist/session/session-manager.d.ts +3 -17
  301. package/dist/session/session-manager.d.ts.map +1 -1
  302. package/dist/session/session-manager.js +37 -53
  303. package/dist/session/title-generator.cjs +3 -2
  304. package/dist/session/title-generator.d.ts +2 -1
  305. package/dist/session/title-generator.d.ts.map +1 -1
  306. package/dist/session/title-generator.js +3 -2
  307. package/dist/storage/blob/factory.cjs +9 -18
  308. package/dist/storage/blob/factory.d.ts +5 -4
  309. package/dist/storage/blob/factory.d.ts.map +1 -1
  310. package/dist/storage/blob/factory.js +8 -17
  311. package/dist/storage/blob/local-blob-store.cjs +25 -32
  312. package/dist/storage/blob/local-blob-store.d.ts +3 -2
  313. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  314. package/dist/storage/blob/local-blob-store.js +25 -32
  315. package/dist/storage/blob/memory-blob-store.cjs +326 -0
  316. package/dist/storage/blob/memory-blob-store.d.ts +66 -0
  317. package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
  318. package/dist/storage/blob/memory-blob-store.js +303 -0
  319. package/dist/storage/blob/schemas.cjs +3 -1
  320. package/dist/storage/blob/schemas.d.ts +6 -6
  321. package/dist/storage/blob/schemas.d.ts.map +1 -1
  322. package/dist/storage/blob/schemas.js +3 -1
  323. package/dist/storage/cache/factory.cjs +7 -8
  324. package/dist/storage/cache/factory.d.ts +4 -1
  325. package/dist/storage/cache/factory.d.ts.map +1 -1
  326. package/dist/storage/cache/factory.js +4 -5
  327. package/dist/storage/cache/redis-store.cjs +4 -1
  328. package/dist/storage/cache/redis-store.d.ts +3 -1
  329. package/dist/storage/cache/redis-store.d.ts.map +1 -1
  330. package/dist/storage/cache/redis-store.js +4 -1
  331. package/dist/storage/database/factory.cjs +13 -16
  332. package/dist/storage/database/factory.d.ts +5 -3
  333. package/dist/storage/database/factory.d.ts.map +1 -1
  334. package/dist/storage/database/factory.js +9 -12
  335. package/dist/storage/database/postgres-store.cjs +4 -1
  336. package/dist/storage/database/postgres-store.d.ts +3 -1
  337. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  338. package/dist/storage/database/postgres-store.js +4 -1
  339. package/dist/storage/database/schemas.cjs +3 -4
  340. package/dist/storage/database/schemas.d.ts +8 -16
  341. package/dist/storage/database/schemas.d.ts.map +1 -1
  342. package/dist/storage/database/schemas.js +3 -4
  343. package/dist/storage/database/sqlite-store.cjs +17 -45
  344. package/dist/storage/database/sqlite-store.d.ts +3 -3
  345. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  346. package/dist/storage/database/sqlite-store.js +17 -45
  347. package/dist/storage/schemas.cjs +3 -1
  348. package/dist/storage/schemas.d.ts +16 -23
  349. package/dist/storage/schemas.d.ts.map +1 -1
  350. package/dist/storage/schemas.js +3 -1
  351. package/dist/storage/storage-manager.cjs +15 -15
  352. package/dist/storage/storage-manager.d.ts +6 -6
  353. package/dist/storage/storage-manager.d.ts.map +1 -1
  354. package/dist/storage/storage-manager.js +15 -15
  355. package/dist/systemPrompt/contributors.cjs +15 -15
  356. package/dist/systemPrompt/contributors.d.ts +5 -3
  357. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  358. package/dist/systemPrompt/contributors.js +15 -15
  359. package/dist/systemPrompt/in-built-prompts.cjs +0 -5
  360. package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
  361. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  362. package/dist/systemPrompt/in-built-prompts.js +0 -4
  363. package/dist/systemPrompt/manager.cjs +31 -23
  364. package/dist/systemPrompt/manager.d.ts +5 -3
  365. package/dist/systemPrompt/manager.d.ts.map +1 -1
  366. package/dist/systemPrompt/manager.js +31 -23
  367. package/dist/systemPrompt/registry.cjs +1 -2
  368. package/dist/systemPrompt/registry.d.ts +1 -1
  369. package/dist/systemPrompt/registry.d.ts.map +1 -1
  370. package/dist/systemPrompt/registry.js +1 -2
  371. package/dist/systemPrompt/schemas.cjs +24 -18
  372. package/dist/systemPrompt/schemas.d.ts +46 -222
  373. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  374. package/dist/systemPrompt/schemas.js +14 -18
  375. package/dist/telemetry/decorators.cjs +54 -15
  376. package/dist/telemetry/decorators.d.ts.map +1 -1
  377. package/dist/telemetry/decorators.js +54 -15
  378. package/dist/telemetry/utils.cjs +21 -14
  379. package/dist/telemetry/utils.d.ts +7 -3
  380. package/dist/telemetry/utils.d.ts.map +1 -1
  381. package/dist/telemetry/utils.js +21 -14
  382. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
  383. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
  384. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  385. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
  386. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
  387. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
  388. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  389. package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
  390. package/dist/tools/errors.cjs +2 -1
  391. package/dist/tools/errors.d.ts.map +1 -1
  392. package/dist/tools/errors.js +2 -1
  393. package/dist/tools/internal-tools/constants.cjs +2 -1
  394. package/dist/tools/internal-tools/constants.d.ts +1 -1
  395. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  396. package/dist/tools/internal-tools/constants.js +2 -1
  397. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
  398. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
  399. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
  400. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
  401. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
  402. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
  403. package/dist/tools/internal-tools/provider.cjs +21 -17
  404. package/dist/tools/internal-tools/provider.d.ts +3 -1
  405. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  406. package/dist/tools/internal-tools/provider.js +21 -17
  407. package/dist/tools/internal-tools/registry.cjs +5 -0
  408. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  409. package/dist/tools/internal-tools/registry.js +5 -0
  410. package/dist/tools/schemas.cjs +16 -4
  411. package/dist/tools/schemas.d.ts +21 -9
  412. package/dist/tools/schemas.d.ts.map +1 -1
  413. package/dist/tools/schemas.js +15 -4
  414. package/dist/tools/tool-manager.cjs +64 -47
  415. package/dist/tools/tool-manager.d.ts +4 -2
  416. package/dist/tools/tool-manager.d.ts.map +1 -1
  417. package/dist/tools/tool-manager.js +61 -44
  418. package/dist/tools/types.d.ts +0 -4
  419. package/dist/tools/types.d.ts.map +1 -1
  420. package/dist/utils/env-file.cjs +118 -0
  421. package/dist/utils/env-file.d.ts +5 -0
  422. package/dist/utils/env-file.d.ts.map +1 -0
  423. package/dist/utils/env-file.js +85 -0
  424. package/dist/utils/error-conversion.cjs +23 -1
  425. package/dist/utils/error-conversion.d.ts +2 -1
  426. package/dist/utils/error-conversion.d.ts.map +1 -1
  427. package/dist/utils/error-conversion.js +23 -1
  428. package/dist/utils/execution-context.d.ts.map +1 -1
  429. package/dist/utils/fs-walk.d.ts.map +1 -1
  430. package/dist/utils/index.cjs +7 -9
  431. package/dist/utils/index.d.ts +3 -4
  432. package/dist/utils/index.d.ts.map +1 -1
  433. package/dist/utils/index.js +3 -4
  434. package/dist/utils/path.cjs +22 -57
  435. package/dist/utils/path.d.ts +8 -7
  436. package/dist/utils/path.d.ts.map +1 -1
  437. package/dist/utils/path.js +21 -54
  438. package/dist/utils/result.cjs +37 -14
  439. package/dist/utils/result.d.ts.map +1 -1
  440. package/dist/utils/result.js +37 -14
  441. package/dist/utils/schema.cjs +2 -3
  442. package/dist/utils/schema.d.ts +2 -1
  443. package/dist/utils/schema.d.ts.map +1 -1
  444. package/dist/utils/schema.js +1 -2
  445. package/dist/utils/service-initializer.cjs +88 -61
  446. package/dist/utils/service-initializer.d.ts +4 -2
  447. package/dist/utils/service-initializer.d.ts.map +1 -1
  448. package/dist/utils/service-initializer.js +70 -43
  449. package/package.json +7 -3
  450. package/dist/Dexto.cjs +0 -251
  451. package/dist/Dexto.d.ts +0 -191
  452. package/dist/Dexto.d.ts.map +0 -1
  453. package/dist/Dexto.js +0 -228
  454. package/dist/agent/registry/error-codes.cjs +0 -44
  455. package/dist/agent/registry/error-codes.d.ts +0 -21
  456. package/dist/agent/registry/error-codes.d.ts.map +0 -1
  457. package/dist/agent/registry/error-codes.js +0 -21
  458. package/dist/agent/registry/errors.cjs +0 -188
  459. package/dist/agent/registry/errors.d.ts +0 -63
  460. package/dist/agent/registry/errors.d.ts.map +0 -1
  461. package/dist/agent/registry/errors.js +0 -165
  462. package/dist/agent/registry/registry.cjs +0 -479
  463. package/dist/agent/registry/registry.d.ts +0 -130
  464. package/dist/agent/registry/registry.d.ts.map +0 -1
  465. package/dist/agent/registry/registry.js +0 -453
  466. package/dist/agent/registry/types.cjs +0 -74
  467. package/dist/agent/registry/types.d.ts +0 -142
  468. package/dist/agent/registry/types.d.ts.map +0 -1
  469. package/dist/agent/registry/types.js +0 -48
  470. package/dist/agent/registry/user-registry.cjs +0 -140
  471. package/dist/agent/registry/user-registry.d.ts +0 -34
  472. package/dist/agent/registry/user-registry.d.ts.map +0 -1
  473. package/dist/agent/registry/user-registry.js +0 -105
  474. package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
  475. package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
  476. package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
  477. package/dist/approval/providers/event-based-approval-provider.js +0 -133
  478. package/dist/approval/providers/factory.d.ts.map +0 -1
  479. package/dist/approval/providers/noop-approval-provider.cjs +0 -54
  480. package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
  481. package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
  482. package/dist/approval/providers/noop-approval-provider.js +0 -31
  483. package/dist/config/agent-resolver.cjs +0 -153
  484. package/dist/config/agent-resolver.d.ts +0 -14
  485. package/dist/config/agent-resolver.d.ts.map +0 -1
  486. package/dist/config/agent-resolver.js +0 -123
  487. package/dist/config/error-codes.cjs +0 -39
  488. package/dist/config/error-codes.d.ts +0 -16
  489. package/dist/config/error-codes.d.ts.map +0 -1
  490. package/dist/config/error-codes.js +0 -16
  491. package/dist/config/errors.cjs +0 -126
  492. package/dist/config/errors.d.ts +0 -34
  493. package/dist/config/errors.d.ts.map +0 -1
  494. package/dist/config/errors.js +0 -103
  495. package/dist/config/index.cjs +0 -26
  496. package/dist/config/index.d.ts +0 -4
  497. package/dist/config/index.d.ts.map +0 -1
  498. package/dist/config/index.js +0 -3
  499. package/dist/config/loader.cjs +0 -119
  500. package/dist/config/loader.d.ts +0 -16
  501. package/dist/config/loader.d.ts.map +0 -1
  502. package/dist/config/loader.js +0 -86
  503. package/dist/config/writer.cjs +0 -182
  504. package/dist/config/writer.d.ts +0 -35
  505. package/dist/config/writer.d.ts.map +0 -1
  506. package/dist/config/writer.js +0 -147
  507. package/dist/preferences/constants.d.ts +0 -2
  508. package/dist/preferences/constants.d.ts.map +0 -1
  509. package/dist/preferences/constants.js +0 -5
  510. package/dist/preferences/error-codes.d.ts +0 -8
  511. package/dist/preferences/error-codes.d.ts.map +0 -1
  512. package/dist/preferences/error-codes.js +0 -12
  513. package/dist/preferences/errors.cjs +0 -75
  514. package/dist/preferences/errors.d.ts +0 -18
  515. package/dist/preferences/errors.d.ts.map +0 -1
  516. package/dist/preferences/errors.js +0 -51
  517. package/dist/preferences/index.cjs +0 -55
  518. package/dist/preferences/index.d.ts +0 -6
  519. package/dist/preferences/index.d.ts.map +0 -1
  520. package/dist/preferences/index.js +0 -32
  521. package/dist/preferences/loader.cjs +0 -138
  522. package/dist/preferences/loader.d.ts +0 -51
  523. package/dist/preferences/loader.d.ts.map +0 -1
  524. package/dist/preferences/loader.js +0 -110
  525. package/dist/preferences/schemas.cjs +0 -75
  526. package/dist/preferences/schemas.d.ts +0 -110
  527. package/dist/preferences/schemas.d.ts.map +0 -1
  528. package/dist/preferences/schemas.js +0 -49
  529. package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
  530. package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
  531. package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
  532. package/dist/prompts/providers/file-prompt-provider.js +0 -376
  533. package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
  534. package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
  535. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
  536. package/dist/prompts/providers/starter-prompt-provider.js +0 -147
  537. package/dist/utils/api-key-store.cjs +0 -56
  538. package/dist/utils/api-key-store.d.ts +0 -24
  539. package/dist/utils/api-key-store.d.ts.map +0 -1
  540. package/dist/utils/api-key-store.js +0 -31
  541. package/dist/utils/env.cjs +0 -154
  542. package/dist/utils/env.d.ts +0 -28
  543. package/dist/utils/env.d.ts.map +0 -1
  544. package/dist/utils/env.js +0 -119
  545. package/dist/utils/port-utils.cjs +0 -37
  546. package/dist/utils/port-utils.d.ts +0 -10
  547. package/dist/utils/port-utils.d.ts.map +0 -1
  548. package/dist/utils/port-utils.js +0 -14
  549. package/dist/utils/port-utils.spec.cjs +0 -26
  550. package/dist/utils/port-utils.spec.js +0 -25
  551. /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
@@ -7,6 +7,6 @@
7
7
  * Available internal tool names
8
8
  * Must be kept in sync with INTERNAL_TOOL_REGISTRY in registry.ts
9
9
  */
10
- export declare const INTERNAL_TOOL_NAMES: readonly ["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process"];
10
+ export declare const INTERNAL_TOOL_NAMES: readonly ["search_history", "ask_user", "read_file", "glob_files", "grep_content", "write_file", "edit_file", "bash_exec", "bash_output", "kill_process", "delegate_to_url"];
11
11
  export type KnownInternalTool = (typeof INTERNAL_TOOL_NAMES)[number];
12
12
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,2JAWtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8KAYtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -9,7 +9,8 @@ const INTERNAL_TOOL_NAMES = [
9
9
  "edit_file",
10
10
  "bash_exec",
11
11
  "bash_output",
12
- "kill_process"
12
+ "kill_process",
13
+ "delegate_to_url"
13
14
  ];
14
15
  export {
15
16
  INTERNAL_TOOL_NAMES
@@ -47,7 +47,7 @@ const BashExecInputSchema = import_zod.z.object({
47
47
  function createBashExecTool(processService, approvalManager) {
48
48
  return {
49
49
  id: "bash_exec",
50
- description: "Execute a shell command. Returns stdout, stderr, exit code, and duration. Use run_in_background=true for long-running commands (use bash_output to retrieve results later). Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Set timeout to prevent hanging commands. Security: dangerous commands are blocked, injection attempts are detected.",
50
+ description: "Execute a shell command with 2-minute default timeout. Returns stdout, stderr, exit code, and duration. For long-running commands (servers, watchers, npm run dev), MUST use run_in_background=true (use bash_output to retrieve results later). Commands ending with & are blocked - use run_in_background instead. Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Security: dangerous commands are blocked, injection attempts are detected.",
51
51
  inputSchema: BashExecInputSchema,
52
52
  execute: async (input, context) => {
53
53
  const { command, description, timeout, run_in_background, cwd } = input;
@@ -15,7 +15,7 @@ const BashExecInputSchema = z.object({
15
15
  function createBashExecTool(processService, approvalManager) {
16
16
  return {
17
17
  id: "bash_exec",
18
- description: "Execute a shell command. Returns stdout, stderr, exit code, and duration. Use run_in_background=true for long-running commands (use bash_output to retrieve results later). Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Set timeout to prevent hanging commands. Security: dangerous commands are blocked, injection attempts are detected.",
18
+ description: "Execute a shell command with 2-minute default timeout. Returns stdout, stderr, exit code, and duration. For long-running commands (servers, watchers, npm run dev), MUST use run_in_background=true (use bash_output to retrieve results later). Commands ending with & are blocked - use run_in_background instead. Requires approval for all commands. Dangerous commands (rm, git push, etc.) require additional per-command approval. Always quote file paths with spaces. Security: dangerous commands are blocked, injection attempts are detected.",
19
19
  inputSchema: BashExecInputSchema,
20
20
  execute: async (input, context) => {
21
21
  const { command, description, timeout, run_in_background, cwd } = input;
@@ -0,0 +1,192 @@
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 delegate_to_url_tool_exports = {};
20
+ __export(delegate_to_url_tool_exports, {
21
+ createDelegateToUrlTool: () => createDelegateToUrlTool
22
+ });
23
+ module.exports = __toCommonJS(delegate_to_url_tool_exports);
24
+ var import_zod = require("zod");
25
+ var import_errors = require("../../../errors/index.js");
26
+ const DelegateToUrlInputSchema = import_zod.z.object({
27
+ url: import_zod.z.string().url().describe(
28
+ 'The A2A-compliant agent URL (e.g., "http://localhost:3001" or "https://agent.example.com"). The tool will automatically append the correct JSON-RPC endpoint.'
29
+ ),
30
+ message: import_zod.z.string().min(1).describe(
31
+ "The message or task to delegate to the agent. This will be sent as natural language input."
32
+ ),
33
+ sessionId: import_zod.z.string().optional().describe(
34
+ "Optional session ID for maintaining conversation state across multiple delegations to the same agent"
35
+ ),
36
+ timeout: import_zod.z.number().optional().default(3e4).describe("Request timeout in milliseconds (default: 30000)")
37
+ }).strict();
38
+ class SimpleA2AClient {
39
+ url;
40
+ timeout;
41
+ constructor(url, timeout = 3e4) {
42
+ this.url = url.replace(/\/$/, "");
43
+ this.timeout = timeout;
44
+ }
45
+ /**
46
+ * Send a message to the A2A agent using JSON-RPC 2.0
47
+ */
48
+ async sendMessage(message, sessionId) {
49
+ const messageId = this.generateId();
50
+ const taskId = sessionId || this.generateId();
51
+ const a2aMessage = {
52
+ role: "user",
53
+ parts: [
54
+ {
55
+ kind: "text",
56
+ text: message
57
+ }
58
+ ],
59
+ messageId,
60
+ taskId,
61
+ contextId: taskId,
62
+ kind: "message"
63
+ };
64
+ const rpcRequest = {
65
+ jsonrpc: "2.0",
66
+ id: this.generateId(),
67
+ method: "message/send",
68
+ params: {
69
+ message: a2aMessage,
70
+ configuration: {
71
+ blocking: true
72
+ // Wait for completion
73
+ }
74
+ }
75
+ };
76
+ const endpoints = [
77
+ `${this.url}/v1/jsonrpc`,
78
+ // A2A v0.3.0 JSON-RPC endpoint
79
+ `${this.url}/jsonrpc`
80
+ // Alternative path
81
+ ];
82
+ let lastError = null;
83
+ for (const endpoint of endpoints) {
84
+ try {
85
+ const controller = new AbortController();
86
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
87
+ const response = await fetch(endpoint, {
88
+ method: "POST",
89
+ headers: {
90
+ "Content-Type": "application/json",
91
+ "User-Agent": "@dexto/core"
92
+ },
93
+ body: JSON.stringify(rpcRequest),
94
+ signal: controller.signal
95
+ });
96
+ clearTimeout(timeoutId);
97
+ if (!response.ok) {
98
+ lastError = new Error(
99
+ `HTTP ${response.status}: ${response.statusText} (tried ${endpoint})`
100
+ );
101
+ continue;
102
+ }
103
+ const data = await response.json();
104
+ if ("error" in data && data.error) {
105
+ throw new Error(
106
+ `Agent returned error: ${data.error.message || "Unknown error"}`
107
+ );
108
+ }
109
+ if ("result" in data) {
110
+ return this.extractTaskResponse(data.result);
111
+ }
112
+ return data;
113
+ } catch (error) {
114
+ if (error instanceof Error && error.name === "AbortError") {
115
+ throw new import_errors.DextoRuntimeError(
116
+ `Delegation timeout after ${this.timeout}ms`,
117
+ import_errors.ErrorScope.TOOLS,
118
+ import_errors.ErrorType.TIMEOUT,
119
+ "DELEGATION_TIMEOUT"
120
+ );
121
+ }
122
+ lastError = error instanceof Error ? error : new Error(String(error));
123
+ }
124
+ }
125
+ throw new import_errors.DextoRuntimeError(
126
+ `Failed to connect to agent at ${this.url}. Tried endpoints: ${endpoints.join(", ")}. Last error: ${lastError?.message || "Unknown error"}`,
127
+ import_errors.ErrorScope.TOOLS,
128
+ import_errors.ErrorType.THIRD_PARTY,
129
+ "DELEGATION_FAILED"
130
+ );
131
+ }
132
+ /**
133
+ * Extract response text from A2A Task structure
134
+ */
135
+ extractTaskResponse(task) {
136
+ if (task.history && Array.isArray(task.history)) {
137
+ const agentMessages = task.history.filter((m) => m.role === "agent");
138
+ if (agentMessages.length > 0) {
139
+ const lastMessage = agentMessages[agentMessages.length - 1];
140
+ if (lastMessage.parts && Array.isArray(lastMessage.parts)) {
141
+ const textParts = lastMessage.parts.filter((p) => p.kind === "text").map((p) => p.text);
142
+ if (textParts.length > 0) {
143
+ return textParts.join("\n");
144
+ }
145
+ }
146
+ }
147
+ }
148
+ return JSON.stringify(task, null, 2);
149
+ }
150
+ /**
151
+ * Generate unique ID
152
+ */
153
+ generateId() {
154
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
155
+ }
156
+ }
157
+ function createDelegateToUrlTool() {
158
+ return {
159
+ id: "delegate_to_url",
160
+ description: 'Delegate a task to another A2A-compliant agent at a specific URL. Supports STATEFUL multi-turn conversations via sessionId parameter. USAGE: (1) First delegation: provide url + message. Tool returns a response AND a sessionId. (2) Follow-up: use the SAME sessionId to continue the conversation with that agent. The agent remembers previous context. EXAMPLE: First call {url: "http://agent:3001", message: "Analyze data X"} returns {sessionId: "xyz", response: "..."}. Second call {url: "http://agent:3001", message: "What was the top insight?", sessionId: "xyz"}. The agent will remember the first analysis and can answer specifically.',
161
+ inputSchema: DelegateToUrlInputSchema,
162
+ execute: async (input, _context) => {
163
+ const { url, message, sessionId, timeout } = input;
164
+ try {
165
+ const client = new SimpleA2AClient(url, timeout);
166
+ const effectiveSessionId = sessionId || `delegation-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
167
+ const response = await client.sendMessage(message, effectiveSessionId);
168
+ return {
169
+ success: true,
170
+ agentUrl: url,
171
+ sessionId: effectiveSessionId,
172
+ response,
173
+ _hint: sessionId ? "Continued existing conversation" : "Started new conversation - use this sessionId for follow-ups"
174
+ };
175
+ } catch (error) {
176
+ if (error instanceof import_errors.DextoRuntimeError) {
177
+ throw error;
178
+ }
179
+ throw new import_errors.DextoRuntimeError(
180
+ `Delegation failed: ${error instanceof Error ? error.message : String(error)}`,
181
+ import_errors.ErrorScope.TOOLS,
182
+ import_errors.ErrorType.SYSTEM,
183
+ "DELEGATION_ERROR"
184
+ );
185
+ }
186
+ }
187
+ };
188
+ }
189
+ // Annotate the CommonJS export names for ESM import in node:
190
+ 0 && (module.exports = {
191
+ createDelegateToUrlTool
192
+ });
@@ -0,0 +1,33 @@
1
+ import { InternalTool } from '../../types.js';
2
+ /**
3
+ * Internal tool for agent-to-agent delegation
4
+ *
5
+ * Delegates tasks to other A2A-compliant agents at known URLs.
6
+ * Supports stateful multi-turn conversations via sessionId parameter.
7
+ *
8
+ * Features:
9
+ * - A2A Protocol v0.3.0 compliant (JSON-RPC 2.0 transport)
10
+ * - Stateful conversations with session management
11
+ * - Automatic endpoint discovery (/v1/jsonrpc, /jsonrpc)
12
+ * - Configurable timeouts and error handling
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Single delegation
17
+ * delegate_to_url({
18
+ * url: "http://pdf-analyzer:3001",
19
+ * message: "Extract all tables from the Q4 sales report"
20
+ * })
21
+ * → Returns: {sessionId: "delegation-xyz", response: "..."}
22
+ *
23
+ * // Multi-turn conversation (use same sessionId)
24
+ * delegate_to_url({
25
+ * url: "http://pdf-analyzer:3001",
26
+ * message: "Which table had the highest values?",
27
+ * sessionId: "delegation-xyz"
28
+ * })
29
+ * → Agent remembers the previous extraction and can answer specifically
30
+ * ```
31
+ */
32
+ export declare function createDelegateToUrlTool(): InternalTool;
33
+ //# sourceMappingURL=delegate-to-url-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate-to-url-tool.d.ts","sourceRoot":"","sources":["../../../../src/tools/internal-tools/implementations/delegate-to-url-tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAwB,MAAM,gBAAgB,CAAC;AA8MpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CA8CtD"}
@@ -0,0 +1,169 @@
1
+ import "../../../chunk-C6A6W6XS.js";
2
+ import { z } from "zod";
3
+ import { DextoRuntimeError, ErrorScope, ErrorType } from "../../../errors/index.js";
4
+ const DelegateToUrlInputSchema = z.object({
5
+ url: z.string().url().describe(
6
+ 'The A2A-compliant agent URL (e.g., "http://localhost:3001" or "https://agent.example.com"). The tool will automatically append the correct JSON-RPC endpoint.'
7
+ ),
8
+ message: z.string().min(1).describe(
9
+ "The message or task to delegate to the agent. This will be sent as natural language input."
10
+ ),
11
+ sessionId: z.string().optional().describe(
12
+ "Optional session ID for maintaining conversation state across multiple delegations to the same agent"
13
+ ),
14
+ timeout: z.number().optional().default(3e4).describe("Request timeout in milliseconds (default: 30000)")
15
+ }).strict();
16
+ class SimpleA2AClient {
17
+ url;
18
+ timeout;
19
+ constructor(url, timeout = 3e4) {
20
+ this.url = url.replace(/\/$/, "");
21
+ this.timeout = timeout;
22
+ }
23
+ /**
24
+ * Send a message to the A2A agent using JSON-RPC 2.0
25
+ */
26
+ async sendMessage(message, sessionId) {
27
+ const messageId = this.generateId();
28
+ const taskId = sessionId || this.generateId();
29
+ const a2aMessage = {
30
+ role: "user",
31
+ parts: [
32
+ {
33
+ kind: "text",
34
+ text: message
35
+ }
36
+ ],
37
+ messageId,
38
+ taskId,
39
+ contextId: taskId,
40
+ kind: "message"
41
+ };
42
+ const rpcRequest = {
43
+ jsonrpc: "2.0",
44
+ id: this.generateId(),
45
+ method: "message/send",
46
+ params: {
47
+ message: a2aMessage,
48
+ configuration: {
49
+ blocking: true
50
+ // Wait for completion
51
+ }
52
+ }
53
+ };
54
+ const endpoints = [
55
+ `${this.url}/v1/jsonrpc`,
56
+ // A2A v0.3.0 JSON-RPC endpoint
57
+ `${this.url}/jsonrpc`
58
+ // Alternative path
59
+ ];
60
+ let lastError = null;
61
+ for (const endpoint of endpoints) {
62
+ try {
63
+ const controller = new AbortController();
64
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
65
+ const response = await fetch(endpoint, {
66
+ method: "POST",
67
+ headers: {
68
+ "Content-Type": "application/json",
69
+ "User-Agent": "@dexto/core"
70
+ },
71
+ body: JSON.stringify(rpcRequest),
72
+ signal: controller.signal
73
+ });
74
+ clearTimeout(timeoutId);
75
+ if (!response.ok) {
76
+ lastError = new Error(
77
+ `HTTP ${response.status}: ${response.statusText} (tried ${endpoint})`
78
+ );
79
+ continue;
80
+ }
81
+ const data = await response.json();
82
+ if ("error" in data && data.error) {
83
+ throw new Error(
84
+ `Agent returned error: ${data.error.message || "Unknown error"}`
85
+ );
86
+ }
87
+ if ("result" in data) {
88
+ return this.extractTaskResponse(data.result);
89
+ }
90
+ return data;
91
+ } catch (error) {
92
+ if (error instanceof Error && error.name === "AbortError") {
93
+ throw new DextoRuntimeError(
94
+ `Delegation timeout after ${this.timeout}ms`,
95
+ ErrorScope.TOOLS,
96
+ ErrorType.TIMEOUT,
97
+ "DELEGATION_TIMEOUT"
98
+ );
99
+ }
100
+ lastError = error instanceof Error ? error : new Error(String(error));
101
+ }
102
+ }
103
+ throw new DextoRuntimeError(
104
+ `Failed to connect to agent at ${this.url}. Tried endpoints: ${endpoints.join(", ")}. Last error: ${lastError?.message || "Unknown error"}`,
105
+ ErrorScope.TOOLS,
106
+ ErrorType.THIRD_PARTY,
107
+ "DELEGATION_FAILED"
108
+ );
109
+ }
110
+ /**
111
+ * Extract response text from A2A Task structure
112
+ */
113
+ extractTaskResponse(task) {
114
+ if (task.history && Array.isArray(task.history)) {
115
+ const agentMessages = task.history.filter((m) => m.role === "agent");
116
+ if (agentMessages.length > 0) {
117
+ const lastMessage = agentMessages[agentMessages.length - 1];
118
+ if (lastMessage.parts && Array.isArray(lastMessage.parts)) {
119
+ const textParts = lastMessage.parts.filter((p) => p.kind === "text").map((p) => p.text);
120
+ if (textParts.length > 0) {
121
+ return textParts.join("\n");
122
+ }
123
+ }
124
+ }
125
+ }
126
+ return JSON.stringify(task, null, 2);
127
+ }
128
+ /**
129
+ * Generate unique ID
130
+ */
131
+ generateId() {
132
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
133
+ }
134
+ }
135
+ function createDelegateToUrlTool() {
136
+ return {
137
+ id: "delegate_to_url",
138
+ description: 'Delegate a task to another A2A-compliant agent at a specific URL. Supports STATEFUL multi-turn conversations via sessionId parameter. USAGE: (1) First delegation: provide url + message. Tool returns a response AND a sessionId. (2) Follow-up: use the SAME sessionId to continue the conversation with that agent. The agent remembers previous context. EXAMPLE: First call {url: "http://agent:3001", message: "Analyze data X"} returns {sessionId: "xyz", response: "..."}. Second call {url: "http://agent:3001", message: "What was the top insight?", sessionId: "xyz"}. The agent will remember the first analysis and can answer specifically.',
139
+ inputSchema: DelegateToUrlInputSchema,
140
+ execute: async (input, _context) => {
141
+ const { url, message, sessionId, timeout } = input;
142
+ try {
143
+ const client = new SimpleA2AClient(url, timeout);
144
+ const effectiveSessionId = sessionId || `delegation-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
145
+ const response = await client.sendMessage(message, effectiveSessionId);
146
+ return {
147
+ success: true,
148
+ agentUrl: url,
149
+ sessionId: effectiveSessionId,
150
+ response,
151
+ _hint: sessionId ? "Continued existing conversation" : "Started new conversation - use this sessionId for follow-ups"
152
+ };
153
+ } catch (error) {
154
+ if (error instanceof DextoRuntimeError) {
155
+ throw error;
156
+ }
157
+ throw new DextoRuntimeError(
158
+ `Delegation failed: ${error instanceof Error ? error.message : String(error)}`,
159
+ ErrorScope.TOOLS,
160
+ ErrorType.SYSTEM,
161
+ "DELEGATION_ERROR"
162
+ );
163
+ }
164
+ }
165
+ };
166
+ }
167
+ export {
168
+ createDelegateToUrlTool
169
+ };
@@ -21,7 +21,6 @@ __export(provider_exports, {
21
21
  InternalToolsProvider: () => InternalToolsProvider
22
22
  });
23
23
  module.exports = __toCommonJS(provider_exports);
24
- var import_logger = require("../../logger/index.js");
25
24
  var import_errors = require("../errors.js");
26
25
  var import_schema = require("../../utils/schema.js");
27
26
  var import_registry = require("./registry.js");
@@ -31,27 +30,29 @@ class InternalToolsProvider {
31
30
  // ← Store original InternalTool
32
31
  approvalManager;
33
32
  config;
34
- constructor(services, approvalManager, config = []) {
33
+ logger;
34
+ constructor(services, approvalManager, config = [], logger) {
35
35
  this.services = services;
36
36
  this.approvalManager = approvalManager;
37
37
  this.config = config;
38
- import_logger.logger.debug("InternalToolsProvider initialized with config:", config);
38
+ this.logger = logger;
39
+ this.logger.debug("InternalToolsProvider initialized with config:", { config });
39
40
  }
40
41
  /**
41
42
  * Initialize the internal tools provider by registering all available internal tools
42
43
  */
43
44
  async initialize() {
44
- import_logger.logger.info("Initializing InternalToolsProvider...");
45
+ this.logger.info("Initializing InternalToolsProvider...");
45
46
  try {
46
47
  if (this.config.length === 0) {
47
- import_logger.logger.info("No internal tools enabled by configuration");
48
+ this.logger.info("No internal tools enabled by configuration");
48
49
  return;
49
50
  }
50
51
  this.registerInternalTools();
51
52
  const toolCount = this.tools.size;
52
- import_logger.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
53
+ this.logger.info(`InternalToolsProvider initialized with ${toolCount} internal tools`);
53
54
  } catch (error) {
54
- import_logger.logger.error(
55
+ this.logger.error(
55
56
  `Failed to initialize InternalToolsProvider: ${error instanceof Error ? error.message : String(error)}`
56
57
  );
57
58
  throw error;
@@ -71,7 +72,7 @@ class InternalToolsProvider {
71
72
  (serviceKey) => !servicesWithApproval[serviceKey]
72
73
  );
73
74
  if (missingServices.length > 0) {
74
- import_logger.logger.debug(
75
+ this.logger.debug(
75
76
  `Skipping ${toolName} internal tool - missing services: ${missingServices.join(", ")}`
76
77
  );
77
78
  continue;
@@ -79,9 +80,9 @@ class InternalToolsProvider {
79
80
  try {
80
81
  const tool = toolInfo.factory(servicesWithApproval);
81
82
  this.tools.set(toolName, tool);
82
- import_logger.logger.debug(`Registered ${toolName} internal tool`);
83
+ this.logger.debug(`Registered ${toolName} internal tool`);
83
84
  } catch (error) {
84
- import_logger.logger.error(
85
+ this.logger.error(
85
86
  `Failed to register ${toolName} internal tool: ${error instanceof Error ? error.message : String(error)}`
86
87
  );
87
88
  }
@@ -99,15 +100,16 @@ class InternalToolsProvider {
99
100
  async executeTool(toolName, args, sessionId) {
100
101
  const tool = this.tools.get(toolName);
101
102
  if (!tool) {
102
- import_logger.logger.error(`\u274C No internal tool found: ${toolName}`);
103
- import_logger.logger.debug(`Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`);
103
+ this.logger.error(`\u274C No internal tool found: ${toolName}`);
104
+ this.logger.debug(
105
+ `Available internal tools: ${Array.from(this.tools.keys()).join(", ")}`
106
+ );
104
107
  throw import_errors.ToolError.notFound(toolName);
105
108
  }
106
109
  const validationResult = tool.inputSchema.safeParse(args);
107
110
  if (!validationResult.success) {
108
- import_logger.logger.error(
109
- `\u274C Invalid arguments for tool ${toolName}:`,
110
- validationResult.error.message
111
+ this.logger.error(
112
+ `\u274C Invalid arguments for tool ${toolName}: ${validationResult.error.message}`
111
113
  );
112
114
  throw import_errors.ToolError.invalidName(
113
115
  toolName,
@@ -119,7 +121,9 @@ class InternalToolsProvider {
119
121
  const result = await tool.execute(validationResult.data, context);
120
122
  return result;
121
123
  } catch (error) {
122
- import_logger.logger.error(`\u274C Internal tool execution failed: ${toolName}`, error);
124
+ this.logger.error(`\u274C Internal tool execution failed: ${toolName}`, {
125
+ error: error instanceof Error ? error.message : String(error)
126
+ });
123
127
  throw error;
124
128
  }
125
129
  }
@@ -132,7 +136,7 @@ class InternalToolsProvider {
132
136
  toolSet[name] = {
133
137
  name: tool.id,
134
138
  description: tool.description,
135
- parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema)
139
+ parameters: (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
136
140
  // ← Convert on-demand
137
141
  };
138
142
  }
@@ -1,4 +1,5 @@
1
1
  import { ToolSet } from '../types.js';
2
+ import type { IDextoLogger } from '../../logger/v2/types.js';
2
3
  import { InternalToolsServices } from './registry.js';
3
4
  import type { InternalToolsConfig } from '../schemas.js';
4
5
  import type { ApprovalManager } from '../../approval/manager.js';
@@ -19,7 +20,8 @@ export declare class InternalToolsProvider {
19
20
  private tools;
20
21
  private approvalManager;
21
22
  private config;
22
- constructor(services: InternalToolsServices, approvalManager: ApprovalManager, config?: InternalToolsConfig);
23
+ private logger;
24
+ constructor(services: InternalToolsServices, approvalManager: ApprovalManager, config: InternalToolsConfig | undefined, logger: IDextoLogger);
23
25
  /**
24
26
  * Initialize the internal tools provider by registering all available internal tools
25
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAgB,MAAM,aAAa,CAAC;AAI1E,OAAO,EAAE,qBAAqB,EAAuB,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAsB;gBAGhC,QAAQ,EAAE,qBAAqB,EAC/B,eAAe,EAAE,eAAe,EAChC,MAAM,GAAE,mBAAwB;IAQpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IA+BnB;;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,EAAgB,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAuB,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAe;gBAGzB,QAAQ,EAAE,qBAAqB,EAC/B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,mBAAmB,YAAK,EAChC,MAAM,EAAE,YAAY;IASxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IAkCnB;;OAEG;IACH,WAAW,IAAI,OAAO;IActB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGzB"}