@dexto/core 1.2.4 → 1.2.5

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 (523) 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 +164 -64
  15. package/dist/agent/schemas.d.ts +2605 -517
  16. package/dist/agent/schemas.d.ts.map +1 -1
  17. package/dist/agent/schemas.js +167 -64
  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/manager.cjs +9 -7
  210. package/dist/memory/manager.d.ts +3 -1
  211. package/dist/memory/manager.d.ts.map +1 -1
  212. package/dist/memory/manager.js +9 -7
  213. package/dist/memory/schemas.d.ts +6 -6
  214. package/dist/plugins/manager.cjs +21 -19
  215. package/dist/plugins/manager.d.ts +3 -1
  216. package/dist/plugins/manager.d.ts.map +1 -1
  217. package/dist/plugins/manager.js +21 -19
  218. package/dist/plugins/schemas.d.ts +9 -9
  219. package/dist/plugins/types.d.ts +2 -2
  220. package/dist/plugins/types.d.ts.map +1 -1
  221. package/dist/process/command-validator.cjs +30 -20
  222. package/dist/process/command-validator.d.ts +4 -1
  223. package/dist/process/command-validator.d.ts.map +1 -1
  224. package/dist/process/command-validator.js +30 -20
  225. package/dist/process/process-service.cjs +23 -21
  226. package/dist/process/process-service.d.ts +3 -1
  227. package/dist/process/process-service.d.ts.map +1 -1
  228. package/dist/process/process-service.js +23 -21
  229. package/dist/prompts/prompt-manager.cjs +25 -18
  230. package/dist/prompts/prompt-manager.d.ts +3 -1
  231. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  232. package/dist/prompts/prompt-manager.js +25 -18
  233. package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
  234. package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
  235. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  236. package/dist/prompts/providers/custom-prompt-provider.js +11 -7
  237. package/dist/prompts/providers/file-prompt-provider.cjs +14 -12
  238. package/dist/prompts/providers/file-prompt-provider.d.ts +3 -1
  239. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -1
  240. package/dist/prompts/providers/file-prompt-provider.js +14 -12
  241. package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
  242. package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
  243. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  244. package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
  245. package/dist/prompts/providers/starter-prompt-provider.cjs +7 -5
  246. package/dist/prompts/providers/starter-prompt-provider.d.ts +3 -1
  247. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -1
  248. package/dist/prompts/providers/starter-prompt-provider.js +7 -5
  249. package/dist/prompts/schemas.d.ts +3 -3
  250. package/dist/resources/handlers/blob-handler.cjs +15 -11
  251. package/dist/resources/handlers/blob-handler.d.ts +3 -1
  252. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  253. package/dist/resources/handlers/blob-handler.js +15 -11
  254. package/dist/resources/handlers/factory.cjs +3 -3
  255. package/dist/resources/handlers/factory.d.ts +2 -1
  256. package/dist/resources/handlers/factory.d.ts.map +1 -1
  257. package/dist/resources/handlers/factory.js +3 -3
  258. package/dist/resources/handlers/filesystem-handler.cjs +10 -8
  259. package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
  260. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  261. package/dist/resources/handlers/filesystem-handler.js +10 -8
  262. package/dist/resources/internal-provider.cjs +28 -20
  263. package/dist/resources/internal-provider.d.ts +3 -1
  264. package/dist/resources/internal-provider.d.ts.map +1 -1
  265. package/dist/resources/internal-provider.js +28 -20
  266. package/dist/resources/manager.cjs +34 -25
  267. package/dist/resources/manager.d.ts +3 -1
  268. package/dist/resources/manager.d.ts.map +1 -1
  269. package/dist/resources/manager.js +34 -25
  270. package/dist/resources/schemas.d.ts +6 -6
  271. package/dist/search/search-service.cjs +8 -6
  272. package/dist/search/search-service.d.ts +3 -1
  273. package/dist/search/search-service.d.ts.map +1 -1
  274. package/dist/search/search-service.js +8 -6
  275. package/dist/session/chat-session.cjs +40 -27
  276. package/dist/session/chat-session.d.ts +10 -7
  277. package/dist/session/chat-session.d.ts.map +1 -1
  278. package/dist/session/chat-session.js +40 -27
  279. package/dist/session/history/database.cjs +18 -11
  280. package/dist/session/history/database.d.ts +3 -1
  281. package/dist/session/history/database.d.ts.map +1 -1
  282. package/dist/session/history/database.js +18 -11
  283. package/dist/session/history/factory.cjs +2 -2
  284. package/dist/session/history/factory.d.ts +5 -1
  285. package/dist/session/history/factory.d.ts.map +1 -1
  286. package/dist/session/history/factory.js +2 -2
  287. package/dist/session/session-manager.cjs +37 -53
  288. package/dist/session/session-manager.d.ts +3 -17
  289. package/dist/session/session-manager.d.ts.map +1 -1
  290. package/dist/session/session-manager.js +37 -53
  291. package/dist/session/title-generator.cjs +3 -2
  292. package/dist/session/title-generator.d.ts +2 -1
  293. package/dist/session/title-generator.d.ts.map +1 -1
  294. package/dist/session/title-generator.js +3 -2
  295. package/dist/storage/blob/factory.cjs +9 -18
  296. package/dist/storage/blob/factory.d.ts +5 -4
  297. package/dist/storage/blob/factory.d.ts.map +1 -1
  298. package/dist/storage/blob/factory.js +8 -17
  299. package/dist/storage/blob/local-blob-store.cjs +25 -32
  300. package/dist/storage/blob/local-blob-store.d.ts +3 -2
  301. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  302. package/dist/storage/blob/local-blob-store.js +25 -32
  303. package/dist/storage/blob/memory-blob-store.cjs +326 -0
  304. package/dist/storage/blob/memory-blob-store.d.ts +66 -0
  305. package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
  306. package/dist/storage/blob/memory-blob-store.js +303 -0
  307. package/dist/storage/blob/schemas.cjs +3 -1
  308. package/dist/storage/blob/schemas.d.ts +6 -6
  309. package/dist/storage/blob/schemas.d.ts.map +1 -1
  310. package/dist/storage/blob/schemas.js +3 -1
  311. package/dist/storage/cache/factory.cjs +7 -8
  312. package/dist/storage/cache/factory.d.ts +4 -1
  313. package/dist/storage/cache/factory.d.ts.map +1 -1
  314. package/dist/storage/cache/factory.js +4 -5
  315. package/dist/storage/cache/redis-store.cjs +4 -1
  316. package/dist/storage/cache/redis-store.d.ts +3 -1
  317. package/dist/storage/cache/redis-store.d.ts.map +1 -1
  318. package/dist/storage/cache/redis-store.js +4 -1
  319. package/dist/storage/database/factory.cjs +13 -16
  320. package/dist/storage/database/factory.d.ts +5 -3
  321. package/dist/storage/database/factory.d.ts.map +1 -1
  322. package/dist/storage/database/factory.js +9 -12
  323. package/dist/storage/database/postgres-store.cjs +4 -1
  324. package/dist/storage/database/postgres-store.d.ts +3 -1
  325. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  326. package/dist/storage/database/postgres-store.js +4 -1
  327. package/dist/storage/database/schemas.cjs +3 -4
  328. package/dist/storage/database/schemas.d.ts +8 -16
  329. package/dist/storage/database/schemas.d.ts.map +1 -1
  330. package/dist/storage/database/schemas.js +3 -4
  331. package/dist/storage/database/sqlite-store.cjs +17 -45
  332. package/dist/storage/database/sqlite-store.d.ts +3 -3
  333. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  334. package/dist/storage/database/sqlite-store.js +17 -45
  335. package/dist/storage/schemas.cjs +3 -1
  336. package/dist/storage/schemas.d.ts +16 -23
  337. package/dist/storage/schemas.d.ts.map +1 -1
  338. package/dist/storage/schemas.js +3 -1
  339. package/dist/storage/storage-manager.cjs +15 -15
  340. package/dist/storage/storage-manager.d.ts +6 -6
  341. package/dist/storage/storage-manager.d.ts.map +1 -1
  342. package/dist/storage/storage-manager.js +15 -15
  343. package/dist/systemPrompt/contributors.cjs +15 -15
  344. package/dist/systemPrompt/contributors.d.ts +5 -3
  345. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  346. package/dist/systemPrompt/contributors.js +15 -15
  347. package/dist/systemPrompt/manager.cjs +11 -8
  348. package/dist/systemPrompt/manager.d.ts +4 -2
  349. package/dist/systemPrompt/manager.d.ts.map +1 -1
  350. package/dist/systemPrompt/manager.js +11 -8
  351. package/dist/systemPrompt/schemas.cjs +21 -1
  352. package/dist/systemPrompt/schemas.d.ts +53 -53
  353. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  354. package/dist/systemPrompt/schemas.js +11 -1
  355. package/dist/telemetry/decorators.cjs +54 -15
  356. package/dist/telemetry/decorators.d.ts.map +1 -1
  357. package/dist/telemetry/decorators.js +54 -15
  358. package/dist/telemetry/utils.cjs +21 -14
  359. package/dist/telemetry/utils.d.ts +7 -3
  360. package/dist/telemetry/utils.d.ts.map +1 -1
  361. package/dist/telemetry/utils.js +21 -14
  362. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
  363. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
  364. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  365. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
  366. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
  367. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
  368. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  369. package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
  370. package/dist/tools/errors.cjs +2 -1
  371. package/dist/tools/errors.d.ts.map +1 -1
  372. package/dist/tools/errors.js +2 -1
  373. package/dist/tools/internal-tools/constants.cjs +2 -1
  374. package/dist/tools/internal-tools/constants.d.ts +1 -1
  375. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  376. package/dist/tools/internal-tools/constants.js +2 -1
  377. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
  378. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
  379. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
  380. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
  381. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
  382. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
  383. package/dist/tools/internal-tools/provider.cjs +21 -17
  384. package/dist/tools/internal-tools/provider.d.ts +3 -1
  385. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  386. package/dist/tools/internal-tools/provider.js +21 -17
  387. package/dist/tools/internal-tools/registry.cjs +5 -0
  388. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  389. package/dist/tools/internal-tools/registry.js +5 -0
  390. package/dist/tools/schemas.cjs +16 -4
  391. package/dist/tools/schemas.d.ts +21 -9
  392. package/dist/tools/schemas.d.ts.map +1 -1
  393. package/dist/tools/schemas.js +15 -4
  394. package/dist/tools/tool-manager.cjs +64 -47
  395. package/dist/tools/tool-manager.d.ts +4 -2
  396. package/dist/tools/tool-manager.d.ts.map +1 -1
  397. package/dist/tools/tool-manager.js +61 -44
  398. package/dist/tools/types.d.ts +0 -4
  399. package/dist/tools/types.d.ts.map +1 -1
  400. package/dist/utils/env-file.cjs +118 -0
  401. package/dist/utils/env-file.d.ts +5 -0
  402. package/dist/utils/env-file.d.ts.map +1 -0
  403. package/dist/utils/env-file.js +85 -0
  404. package/dist/utils/error-conversion.cjs +23 -1
  405. package/dist/utils/error-conversion.d.ts +2 -1
  406. package/dist/utils/error-conversion.d.ts.map +1 -1
  407. package/dist/utils/error-conversion.js +23 -1
  408. package/dist/utils/execution-context.d.ts.map +1 -1
  409. package/dist/utils/fs-walk.d.ts.map +1 -1
  410. package/dist/utils/index.cjs +7 -9
  411. package/dist/utils/index.d.ts +3 -4
  412. package/dist/utils/index.d.ts.map +1 -1
  413. package/dist/utils/index.js +3 -4
  414. package/dist/utils/path.cjs +22 -57
  415. package/dist/utils/path.d.ts +8 -7
  416. package/dist/utils/path.d.ts.map +1 -1
  417. package/dist/utils/path.js +21 -54
  418. package/dist/utils/result.cjs +37 -14
  419. package/dist/utils/result.d.ts.map +1 -1
  420. package/dist/utils/result.js +37 -14
  421. package/dist/utils/schema.cjs +2 -3
  422. package/dist/utils/schema.d.ts +2 -1
  423. package/dist/utils/schema.d.ts.map +1 -1
  424. package/dist/utils/schema.js +1 -2
  425. package/dist/utils/service-initializer.cjs +87 -61
  426. package/dist/utils/service-initializer.d.ts +4 -2
  427. package/dist/utils/service-initializer.d.ts.map +1 -1
  428. package/dist/utils/service-initializer.js +69 -43
  429. package/package.json +7 -3
  430. package/dist/Dexto.cjs +0 -251
  431. package/dist/Dexto.d.ts +0 -191
  432. package/dist/Dexto.d.ts.map +0 -1
  433. package/dist/Dexto.js +0 -228
  434. package/dist/agent/registry/error-codes.cjs +0 -44
  435. package/dist/agent/registry/error-codes.d.ts +0 -21
  436. package/dist/agent/registry/error-codes.d.ts.map +0 -1
  437. package/dist/agent/registry/error-codes.js +0 -21
  438. package/dist/agent/registry/errors.cjs +0 -188
  439. package/dist/agent/registry/errors.d.ts +0 -63
  440. package/dist/agent/registry/errors.d.ts.map +0 -1
  441. package/dist/agent/registry/errors.js +0 -165
  442. package/dist/agent/registry/registry.cjs +0 -479
  443. package/dist/agent/registry/registry.d.ts +0 -130
  444. package/dist/agent/registry/registry.d.ts.map +0 -1
  445. package/dist/agent/registry/registry.js +0 -453
  446. package/dist/agent/registry/types.cjs +0 -74
  447. package/dist/agent/registry/types.d.ts +0 -142
  448. package/dist/agent/registry/types.d.ts.map +0 -1
  449. package/dist/agent/registry/types.js +0 -48
  450. package/dist/agent/registry/user-registry.cjs +0 -140
  451. package/dist/agent/registry/user-registry.d.ts +0 -34
  452. package/dist/agent/registry/user-registry.d.ts.map +0 -1
  453. package/dist/agent/registry/user-registry.js +0 -105
  454. package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
  455. package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
  456. package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
  457. package/dist/approval/providers/event-based-approval-provider.js +0 -133
  458. package/dist/approval/providers/factory.d.ts.map +0 -1
  459. package/dist/approval/providers/noop-approval-provider.cjs +0 -54
  460. package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
  461. package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
  462. package/dist/approval/providers/noop-approval-provider.js +0 -31
  463. package/dist/config/agent-resolver.cjs +0 -153
  464. package/dist/config/agent-resolver.d.ts +0 -14
  465. package/dist/config/agent-resolver.d.ts.map +0 -1
  466. package/dist/config/agent-resolver.js +0 -123
  467. package/dist/config/error-codes.cjs +0 -39
  468. package/dist/config/error-codes.d.ts +0 -16
  469. package/dist/config/error-codes.d.ts.map +0 -1
  470. package/dist/config/error-codes.js +0 -16
  471. package/dist/config/errors.cjs +0 -126
  472. package/dist/config/errors.d.ts +0 -34
  473. package/dist/config/errors.d.ts.map +0 -1
  474. package/dist/config/errors.js +0 -103
  475. package/dist/config/index.cjs +0 -26
  476. package/dist/config/index.d.ts +0 -4
  477. package/dist/config/index.d.ts.map +0 -1
  478. package/dist/config/index.js +0 -3
  479. package/dist/config/loader.cjs +0 -119
  480. package/dist/config/loader.d.ts +0 -16
  481. package/dist/config/loader.d.ts.map +0 -1
  482. package/dist/config/loader.js +0 -86
  483. package/dist/config/writer.cjs +0 -182
  484. package/dist/config/writer.d.ts +0 -35
  485. package/dist/config/writer.d.ts.map +0 -1
  486. package/dist/config/writer.js +0 -147
  487. package/dist/preferences/constants.d.ts +0 -2
  488. package/dist/preferences/constants.d.ts.map +0 -1
  489. package/dist/preferences/constants.js +0 -5
  490. package/dist/preferences/error-codes.d.ts +0 -8
  491. package/dist/preferences/error-codes.d.ts.map +0 -1
  492. package/dist/preferences/error-codes.js +0 -12
  493. package/dist/preferences/errors.cjs +0 -75
  494. package/dist/preferences/errors.d.ts +0 -18
  495. package/dist/preferences/errors.d.ts.map +0 -1
  496. package/dist/preferences/errors.js +0 -51
  497. package/dist/preferences/index.cjs +0 -55
  498. package/dist/preferences/index.d.ts +0 -6
  499. package/dist/preferences/index.d.ts.map +0 -1
  500. package/dist/preferences/index.js +0 -32
  501. package/dist/preferences/loader.cjs +0 -138
  502. package/dist/preferences/loader.d.ts +0 -51
  503. package/dist/preferences/loader.d.ts.map +0 -1
  504. package/dist/preferences/loader.js +0 -110
  505. package/dist/preferences/schemas.cjs +0 -75
  506. package/dist/preferences/schemas.d.ts +0 -110
  507. package/dist/preferences/schemas.d.ts.map +0 -1
  508. package/dist/preferences/schemas.js +0 -49
  509. package/dist/utils/api-key-store.cjs +0 -56
  510. package/dist/utils/api-key-store.d.ts +0 -24
  511. package/dist/utils/api-key-store.d.ts.map +0 -1
  512. package/dist/utils/api-key-store.js +0 -31
  513. package/dist/utils/env.cjs +0 -154
  514. package/dist/utils/env.d.ts +0 -28
  515. package/dist/utils/env.d.ts.map +0 -1
  516. package/dist/utils/env.js +0 -119
  517. package/dist/utils/port-utils.cjs +0 -37
  518. package/dist/utils/port-utils.d.ts +0 -10
  519. package/dist/utils/port-utils.d.ts.map +0 -1
  520. package/dist/utils/port-utils.js +0 -14
  521. package/dist/utils/port-utils.spec.cjs +0 -26
  522. package/dist/utils/port-utils.spec.js +0 -25
  523. /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
@@ -25,43 +25,47 @@ __export(utils_exports, {
25
25
  module.exports = __toCommonJS(utils_exports);
26
26
  var import_api = require("@opentelemetry/api");
27
27
  var import_telemetry = require("./telemetry.js");
28
- var import_logger = require("../logger/index.js");
29
- function hasActiveTelemetry() {
30
- import_logger.logger.silly("hasActiveTelemetry called.");
28
+ function hasActiveTelemetry(logger) {
29
+ logger?.silly("hasActiveTelemetry called.");
31
30
  try {
32
31
  const telemetryInstance = import_telemetry.Telemetry.get();
33
32
  const isActive = telemetryInstance.isInitialized();
34
- import_logger.logger.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
33
+ logger?.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
35
34
  return isActive;
36
35
  } catch (error) {
37
- import_logger.logger.silly(
36
+ logger?.silly(
38
37
  `hasActiveTelemetry: Telemetry not active or initialized. Error: ${error instanceof Error ? error.message : String(error)}`
39
38
  );
40
39
  return false;
41
40
  }
42
41
  }
43
- function getBaggageValues(ctx) {
44
- import_logger.logger.silly("getBaggageValues called.");
42
+ function getBaggageValues(ctx, logger) {
43
+ logger?.silly("getBaggageValues called.");
45
44
  const currentBaggage = import_api.propagation.getBaggage(ctx);
46
45
  const requestId = currentBaggage?.getEntry("http.request_id")?.value;
47
46
  const componentName = currentBaggage?.getEntry("componentName")?.value;
48
47
  const runId = currentBaggage?.getEntry("runId")?.value;
49
48
  const threadId = currentBaggage?.getEntry("threadId")?.value;
50
49
  const resourceId = currentBaggage?.getEntry("resourceId")?.value;
51
- import_logger.logger.silly(
52
- `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}`
50
+ const sessionId = currentBaggage?.getEntry("sessionId")?.value;
51
+ logger?.silly(
52
+ `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
53
53
  );
54
54
  return {
55
55
  requestId,
56
56
  componentName,
57
57
  runId,
58
58
  threadId,
59
- resourceId
59
+ resourceId,
60
+ sessionId
60
61
  };
61
62
  }
62
- function addBaggageAttributesToSpan(span, ctx) {
63
- import_logger.logger.debug("addBaggageAttributesToSpan called.");
64
- const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);
63
+ function addBaggageAttributesToSpan(span, ctx, logger) {
64
+ logger?.debug("addBaggageAttributesToSpan called.");
65
+ const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
66
+ ctx,
67
+ logger
68
+ );
65
69
  if (componentName) {
66
70
  span.setAttribute("componentName", componentName);
67
71
  }
@@ -77,7 +81,10 @@ function addBaggageAttributesToSpan(span, ctx) {
77
81
  if (resourceId) {
78
82
  span.setAttribute("resourceId", resourceId);
79
83
  }
80
- import_logger.logger.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
84
+ if (sessionId) {
85
+ span.setAttribute("sessionId", sessionId);
86
+ }
87
+ logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
81
88
  }
82
89
  // Annotate the CommonJS export names for ESM import in node:
83
90
  0 && (module.exports = {
@@ -1,21 +1,25 @@
1
1
  import type { Context, Span } from '@opentelemetry/api';
2
- export declare function hasActiveTelemetry(): boolean;
2
+ import type { IDextoLogger } from '../logger/v2/types.js';
3
+ export declare function hasActiveTelemetry(logger?: IDextoLogger): boolean;
3
4
  /**
4
5
  * Get baggage values from context
5
6
  * @param ctx The context to get baggage values from
7
+ * @param logger Optional logger instance
6
8
  * @returns
7
9
  */
8
- export declare function getBaggageValues(ctx: Context): {
10
+ export declare function getBaggageValues(ctx: Context, logger?: IDextoLogger): {
9
11
  requestId: string | undefined;
10
12
  componentName: string | undefined;
11
13
  runId: string | undefined;
12
14
  threadId: string | undefined;
13
15
  resourceId: string | undefined;
16
+ sessionId: string | undefined;
14
17
  };
15
18
  /**
16
19
  * Attaches baggage values from the given context to the provided span as attributes.
17
20
  * @param span The OpenTelemetry Span to add attributes to.
18
21
  * @param ctx The OpenTelemetry Context from which to extract baggage values.
22
+ * @param logger Optional logger instance
19
23
  */
20
- export declare function addBaggageAttributesToSpan(span: Span, ctx: Context): void;
24
+ export declare function addBaggageAttributesToSpan(span: Span, ctx: Context, logger?: IDextoLogger): void;
21
25
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAKxD,wBAAgB,kBAAkB,IAAI,OAAO,CAa5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO;;;;;;EAkB5C;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAoBzE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAajE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY;;;;;;;EAoBnE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CA0BhG"}
@@ -1,43 +1,47 @@
1
1
  import "../chunk-C6A6W6XS.js";
2
2
  import { propagation } from "@opentelemetry/api";
3
3
  import { Telemetry } from "./telemetry.js";
4
- import { logger } from "../logger/index.js";
5
- function hasActiveTelemetry() {
6
- logger.silly("hasActiveTelemetry called.");
4
+ function hasActiveTelemetry(logger) {
5
+ logger?.silly("hasActiveTelemetry called.");
7
6
  try {
8
7
  const telemetryInstance = Telemetry.get();
9
8
  const isActive = telemetryInstance.isInitialized();
10
- logger.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
9
+ logger?.silly(`hasActiveTelemetry: Telemetry is initialized: ${isActive}`);
11
10
  return isActive;
12
11
  } catch (error) {
13
- logger.silly(
12
+ logger?.silly(
14
13
  `hasActiveTelemetry: Telemetry not active or initialized. Error: ${error instanceof Error ? error.message : String(error)}`
15
14
  );
16
15
  return false;
17
16
  }
18
17
  }
19
- function getBaggageValues(ctx) {
20
- logger.silly("getBaggageValues called.");
18
+ function getBaggageValues(ctx, logger) {
19
+ logger?.silly("getBaggageValues called.");
21
20
  const currentBaggage = propagation.getBaggage(ctx);
22
21
  const requestId = currentBaggage?.getEntry("http.request_id")?.value;
23
22
  const componentName = currentBaggage?.getEntry("componentName")?.value;
24
23
  const runId = currentBaggage?.getEntry("runId")?.value;
25
24
  const threadId = currentBaggage?.getEntry("threadId")?.value;
26
25
  const resourceId = currentBaggage?.getEntry("resourceId")?.value;
27
- logger.silly(
28
- `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}`
26
+ const sessionId = currentBaggage?.getEntry("sessionId")?.value;
27
+ logger?.silly(
28
+ `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
29
29
  );
30
30
  return {
31
31
  requestId,
32
32
  componentName,
33
33
  runId,
34
34
  threadId,
35
- resourceId
35
+ resourceId,
36
+ sessionId
36
37
  };
37
38
  }
38
- function addBaggageAttributesToSpan(span, ctx) {
39
- logger.debug("addBaggageAttributesToSpan called.");
40
- const { requestId, componentName, runId, threadId, resourceId } = getBaggageValues(ctx);
39
+ function addBaggageAttributesToSpan(span, ctx, logger) {
40
+ logger?.debug("addBaggageAttributesToSpan called.");
41
+ const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
42
+ ctx,
43
+ logger
44
+ );
41
45
  if (componentName) {
42
46
  span.setAttribute("componentName", componentName);
43
47
  }
@@ -53,7 +57,10 @@ function addBaggageAttributesToSpan(span, ctx) {
53
57
  if (resourceId) {
54
58
  span.setAttribute("resourceId", resourceId);
55
59
  }
56
- logger.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
60
+ if (sessionId) {
61
+ span.setAttribute("sessionId", sessionId);
62
+ }
63
+ logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
57
64
  }
58
65
  export {
59
66
  addBaggageAttributesToSpan,
@@ -24,12 +24,12 @@ module.exports = __toCommonJS(factory_exports);
24
24
  var import_in_memory = require("./in-memory.js");
25
25
  var import_storage = require("./storage.js");
26
26
  var import_errors = require("../../errors.js");
27
- function createAllowedToolsProvider(config) {
27
+ function createAllowedToolsProvider(config, logger) {
28
28
  switch (config.type) {
29
29
  case "memory":
30
30
  return new import_in_memory.InMemoryAllowedToolsProvider();
31
31
  case "storage":
32
- return new import_storage.StorageAllowedToolsProvider(config.storageManager);
32
+ return new import_storage.StorageAllowedToolsProvider(config.storageManager, logger);
33
33
  default: {
34
34
  const _exhaustive = config;
35
35
  throw import_errors.ToolError.configInvalid(
@@ -1,5 +1,6 @@
1
1
  import type { IAllowedToolsProvider } from './types.js';
2
2
  import type { StorageManager } from '../../../storage/index.js';
3
+ import type { IDextoLogger } from '../../../logger/v2/types.js';
3
4
  export type AllowedToolsConfig = {
4
5
  type: 'memory';
5
6
  } | {
@@ -9,5 +10,5 @@ export type AllowedToolsConfig = {
9
10
  /**
10
11
  * Create an AllowedToolsProvider based on configuration.
11
12
  */
12
- export declare function createAllowedToolsProvider(config: AllowedToolsConfig): IAllowedToolsProvider;
13
+ export declare function createAllowedToolsProvider(config: AllowedToolsConfig, logger: IDextoLogger): IAllowedToolsProvider;
13
14
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAW7D,MAAM,MAAM,kBAAkB,GACxB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAClC,CAAC;AAER;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,CAc5F"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU7D,MAAM,MAAM,kBAAkB,GACxB;IACI,IAAI,EAAE,QAAQ,CAAC;CAClB,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAClC,CAAC;AAER;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,YAAY,GACrB,qBAAqB,CAcvB"}
@@ -2,12 +2,12 @@ import "../../../chunk-C6A6W6XS.js";
2
2
  import { InMemoryAllowedToolsProvider } from "./in-memory.js";
3
3
  import { StorageAllowedToolsProvider } from "./storage.js";
4
4
  import { ToolError } from "../../errors.js";
5
- function createAllowedToolsProvider(config) {
5
+ function createAllowedToolsProvider(config, logger) {
6
6
  switch (config.type) {
7
7
  case "memory":
8
8
  return new InMemoryAllowedToolsProvider();
9
9
  case "storage":
10
- return new StorageAllowedToolsProvider(config.storageManager);
10
+ return new StorageAllowedToolsProvider(config.storageManager, logger);
11
11
  default: {
12
12
  const _exhaustive = config;
13
13
  throw ToolError.configInvalid(
@@ -21,26 +21,27 @@ __export(storage_exports, {
21
21
  StorageAllowedToolsProvider: () => StorageAllowedToolsProvider
22
22
  });
23
23
  module.exports = __toCommonJS(storage_exports);
24
- var import_logger = require("../../../logger/index.cjs");
25
24
  class StorageAllowedToolsProvider {
26
- constructor(storageManager) {
25
+ constructor(storageManager, logger) {
27
26
  this.storageManager = storageManager;
27
+ this.logger = logger;
28
28
  }
29
+ logger;
29
30
  buildKey(sessionId) {
30
31
  return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
31
32
  }
32
33
  async allowTool(toolName, sessionId) {
33
34
  const key = this.buildKey(sessionId);
34
- import_logger.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
35
+ this.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
35
36
  const existingRaw = await this.storageManager.getDatabase().get(key);
36
37
  const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
37
38
  newSet.add(toolName);
38
39
  await this.storageManager.getDatabase().set(key, Array.from(newSet));
39
- import_logger.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
40
+ this.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
40
41
  }
41
42
  async disallowTool(toolName, sessionId) {
42
43
  const key = this.buildKey(sessionId);
43
- import_logger.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
44
+ this.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
44
45
  const existingRaw = await this.storageManager.getDatabase().get(key);
45
46
  if (!Array.isArray(existingRaw)) return;
46
47
  const newSet = new Set(existingRaw);
@@ -52,7 +53,7 @@ class StorageAllowedToolsProvider {
52
53
  if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
53
54
  const globalArr = await this.storageManager.getDatabase().get(this.buildKey(void 0));
54
55
  const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
55
- import_logger.logger.debug(
56
+ this.logger.debug(
56
57
  `Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
57
58
  );
58
59
  return allowed;
@@ -1,5 +1,6 @@
1
1
  import type { StorageManager } from '../../../storage/index.js';
2
2
  import type { IAllowedToolsProvider } from './types.js';
3
+ import type { IDextoLogger } from '../../../logger/v2/types.js';
3
4
  /**
4
5
  * Storage-backed implementation that persists allowed tools in the Dexto
5
6
  * storage manager. The key scheme is:
@@ -10,7 +11,8 @@ import type { IAllowedToolsProvider } from './types.js';
10
11
  */
11
12
  export declare class StorageAllowedToolsProvider implements IAllowedToolsProvider {
12
13
  private storageManager;
13
- constructor(storageManager: StorageManager);
14
+ private logger;
15
+ constructor(storageManager: StorageManager, logger: IDextoLogger);
14
16
  private buildKey;
15
17
  allowTool(toolName: string, sessionId?: string): Promise<void>;
16
18
  disallowTool(toolName: string, sessionId?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;GAOG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IACzD,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAElD,OAAO,CAAC,QAAQ;IAIV,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrE,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAIlE"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/tools/confirmation/allowed-tools-provider/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IAIjE,OAAO,CAAC,cAAc;IAH1B,OAAO,CAAC,MAAM,CAAe;gBAGjB,cAAc,EAAE,cAAc,EACtC,MAAM,EAAE,YAAY;IAKxB,OAAO,CAAC,QAAQ;IAIV,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrE,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CAIlE"}
@@ -1,24 +1,25 @@
1
1
  import "../../../chunk-C6A6W6XS.js";
2
- import { logger } from "../../../logger/index.js";
3
2
  class StorageAllowedToolsProvider {
4
- constructor(storageManager) {
3
+ constructor(storageManager, logger) {
5
4
  this.storageManager = storageManager;
5
+ this.logger = logger;
6
6
  }
7
+ logger;
7
8
  buildKey(sessionId) {
8
9
  return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
9
10
  }
10
11
  async allowTool(toolName, sessionId) {
11
12
  const key = this.buildKey(sessionId);
12
- logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
13
+ this.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
13
14
  const existingRaw = await this.storageManager.getDatabase().get(key);
14
15
  const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
15
16
  newSet.add(toolName);
16
17
  await this.storageManager.getDatabase().set(key, Array.from(newSet));
17
- logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
18
+ this.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
18
19
  }
19
20
  async disallowTool(toolName, sessionId) {
20
21
  const key = this.buildKey(sessionId);
21
- logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
22
+ this.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
22
23
  const existingRaw = await this.storageManager.getDatabase().get(key);
23
24
  if (!Array.isArray(existingRaw)) return;
24
25
  const newSet = new Set(existingRaw);
@@ -30,7 +31,7 @@ class StorageAllowedToolsProvider {
30
31
  if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
31
32
  const globalArr = await this.storageManager.getDatabase().get(this.buildKey(void 0));
32
33
  const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
33
- logger.debug(
34
+ this.logger.debug(
34
35
  `Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
35
36
  );
36
37
  return allowed;
@@ -65,11 +65,12 @@ class ToolError {
65
65
  * Tool execution timeout
66
66
  */
67
67
  static executionTimeout(toolName, timeoutMs, sessionId) {
68
+ const message = timeoutMs > 0 ? `Tool '${toolName}' execution timed out after ${timeoutMs}ms` : `Tool '${toolName}' execution timed out`;
68
69
  return new import_DextoRuntimeError.DextoRuntimeError(
69
70
  import_error_codes.ToolErrorCode.EXECUTION_TIMEOUT,
70
71
  import_types.ErrorScope.TOOLS,
71
72
  import_types.ErrorType.TIMEOUT,
72
- `Tool '${toolName}' execution timed out after ${timeoutMs}ms`,
73
+ message,
73
74
  { toolName, timeoutMs, sessionId }
74
75
  );
75
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tools/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;;;IAUhC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAU3E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAU3D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAU/E;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAUxD;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM;;;IAUlD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAUlF;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAUnD;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM;;;IAUnD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM;IAUpC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;CAShE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tools/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,SAAS;IAClB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;;;IAUhC;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAU3E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAU3D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAc/E;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;IAUxD;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM;;;IAUlD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;IAUlF;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAUnD;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM;;;IAUnD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM;IAUpC;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;CAShE"}
@@ -43,11 +43,12 @@ class ToolError {
43
43
  * Tool execution timeout
44
44
  */
45
45
  static executionTimeout(toolName, timeoutMs, sessionId) {
46
+ const message = timeoutMs > 0 ? `Tool '${toolName}' execution timed out after ${timeoutMs}ms` : `Tool '${toolName}' execution timed out`;
46
47
  return new DextoRuntimeError(
47
48
  ToolErrorCode.EXECUTION_TIMEOUT,
48
49
  ErrorScope.TOOLS,
49
50
  ErrorType.TIMEOUT,
50
- `Tool '${toolName}' execution timed out after ${timeoutMs}ms`,
51
+ message,
51
52
  { toolName, timeoutMs, sessionId }
52
53
  );
53
54
  }
@@ -31,7 +31,8 @@ const INTERNAL_TOOL_NAMES = [
31
31
  "edit_file",
32
32
  "bash_exec",
33
33
  "bash_output",
34
- "kill_process"
34
+ "kill_process",
35
+ "delegate_to_url"
35
36
  ];
36
37
  // Annotate the CommonJS export names for ESM import in node:
37
38
  0 && (module.exports = {
@@ -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
+ });