@dexto/core 1.1.11 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +24 -4
  2. package/dist/Dexto.cjs +4 -14
  3. package/dist/Dexto.d.ts +8 -29
  4. package/dist/Dexto.d.ts.map +1 -1
  5. package/dist/Dexto.js +4 -12
  6. package/dist/agent/DextoAgent.cjs +92 -3
  7. package/dist/agent/DextoAgent.d.ts +12 -4
  8. package/dist/agent/DextoAgent.d.ts.map +1 -1
  9. package/dist/agent/DextoAgent.js +52 -3
  10. package/dist/agent/agentCard.js +1 -0
  11. package/dist/agent/error-codes.cjs +1 -0
  12. package/dist/agent/error-codes.d.ts +1 -0
  13. package/dist/agent/error-codes.d.ts.map +1 -1
  14. package/dist/agent/error-codes.js +2 -0
  15. package/dist/agent/errors.cjs +13 -0
  16. package/dist/agent/errors.d.ts +4 -0
  17. package/dist/agent/errors.d.ts.map +1 -1
  18. package/dist/agent/errors.js +14 -0
  19. package/dist/agent/index.js +1 -0
  20. package/dist/agent/registry/error-codes.js +1 -0
  21. package/dist/agent/registry/errors.js +1 -0
  22. package/dist/agent/registry/registry.js +1 -0
  23. package/dist/agent/registry/types.js +1 -0
  24. package/dist/agent/registry/user-registry.js +1 -0
  25. package/dist/agent/schemas.cjs +6 -1
  26. package/dist/agent/schemas.d.ts +113 -3
  27. package/dist/agent/schemas.d.ts.map +1 -1
  28. package/dist/agent/schemas.js +7 -1
  29. package/dist/agent/state-manager.js +1 -0
  30. package/dist/approval/error-codes.js +1 -0
  31. package/dist/approval/errors.js +1 -0
  32. package/dist/approval/index.js +1 -0
  33. package/dist/approval/manager.cjs +30 -0
  34. package/dist/approval/manager.d.ts +23 -1
  35. package/dist/approval/manager.d.ts.map +1 -1
  36. package/dist/approval/manager.js +31 -0
  37. package/dist/approval/providers/event-based-approval-provider.js +1 -0
  38. package/dist/approval/providers/factory.js +1 -0
  39. package/dist/approval/providers/noop-approval-provider.js +1 -0
  40. package/dist/approval/schemas.cjs +36 -0
  41. package/dist/approval/schemas.d.ts +173 -0
  42. package/dist/approval/schemas.d.ts.map +1 -1
  43. package/dist/approval/schemas.js +33 -0
  44. package/dist/approval/types.cjs +1 -0
  45. package/dist/approval/types.d.ts +27 -1
  46. package/dist/approval/types.d.ts.map +1 -1
  47. package/dist/approval/types.js +2 -0
  48. package/dist/chunk-C6A6W6XS.js +53 -0
  49. package/dist/config/agent-resolver.js +1 -0
  50. package/dist/config/error-codes.js +1 -0
  51. package/dist/config/errors.js +1 -0
  52. package/dist/config/loader.js +1 -0
  53. package/dist/config/writer.js +1 -0
  54. package/dist/context/compression/middle-removal.js +1 -0
  55. package/dist/context/compression/oldest-removal.js +1 -0
  56. package/dist/context/error-codes.js +1 -0
  57. package/dist/context/errors.js +1 -0
  58. package/dist/context/index.js +1 -0
  59. package/dist/context/manager.cjs +36 -1
  60. package/dist/context/manager.d.ts.map +1 -1
  61. package/dist/context/manager.js +27 -1
  62. package/dist/context/media-helpers.js +1 -0
  63. package/dist/context/utils.cjs +102 -6
  64. package/dist/context/utils.d.ts +35 -2
  65. package/dist/context/utils.d.ts.map +1 -1
  66. package/dist/context/utils.js +100 -6
  67. package/dist/errors/DextoBaseError.js +1 -0
  68. package/dist/errors/DextoRuntimeError.js +1 -0
  69. package/dist/errors/DextoValidationError.js +1 -0
  70. package/dist/errors/index.js +1 -0
  71. package/dist/errors/result-bridge.js +1 -0
  72. package/dist/errors/types.cjs +3 -0
  73. package/dist/errors/types.d.ts +7 -2
  74. package/dist/errors/types.d.ts.map +1 -1
  75. package/dist/errors/types.js +4 -0
  76. package/dist/events/index.cjs +1 -0
  77. package/dist/events/index.d.ts +6 -2
  78. package/dist/events/index.d.ts.map +1 -1
  79. package/dist/events/index.js +2 -0
  80. package/dist/filesystem/error-codes.cjs +53 -0
  81. package/dist/filesystem/error-codes.d.ts +31 -0
  82. package/dist/filesystem/error-codes.d.ts.map +1 -0
  83. package/dist/filesystem/error-codes.js +30 -0
  84. package/dist/filesystem/errors.cjs +303 -0
  85. package/dist/filesystem/errors.d.ts +109 -0
  86. package/dist/filesystem/errors.d.ts.map +1 -0
  87. package/dist/filesystem/errors.js +280 -0
  88. package/dist/filesystem/filesystem-service.cjs +482 -0
  89. package/dist/filesystem/filesystem-service.d.ts +57 -0
  90. package/dist/filesystem/filesystem-service.d.ts.map +1 -0
  91. package/dist/filesystem/filesystem-service.js +449 -0
  92. package/dist/filesystem/index.cjs +37 -0
  93. package/dist/filesystem/index.d.ts +11 -0
  94. package/dist/filesystem/index.d.ts.map +1 -0
  95. package/dist/filesystem/index.js +11 -0
  96. package/dist/filesystem/path-validator.cjs +172 -0
  97. package/dist/filesystem/path-validator.d.ts +53 -0
  98. package/dist/filesystem/path-validator.d.ts.map +1 -0
  99. package/dist/filesystem/path-validator.js +139 -0
  100. package/dist/filesystem/types.cjs +16 -0
  101. package/dist/filesystem/types.d.ts +171 -0
  102. package/dist/filesystem/types.d.ts.map +1 -0
  103. package/dist/filesystem/types.js +0 -0
  104. package/dist/index.browser.js +1 -0
  105. package/dist/index.cjs +3 -3
  106. package/dist/index.d.ts +2 -1
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +3 -2
  109. package/dist/llm/error-codes.js +1 -0
  110. package/dist/llm/errors.js +1 -0
  111. package/dist/llm/formatters/anthropic.js +1 -0
  112. package/dist/llm/formatters/factory.js +1 -0
  113. package/dist/llm/formatters/openai.js +1 -0
  114. package/dist/llm/formatters/vercel.js +1 -0
  115. package/dist/llm/registry.cjs +15 -15
  116. package/dist/llm/registry.d.ts +1 -1
  117. package/dist/llm/registry.js +16 -15
  118. package/dist/llm/resolver.js +1 -0
  119. package/dist/llm/schemas.cjs +6 -2
  120. package/dist/llm/schemas.d.ts +10 -0
  121. package/dist/llm/schemas.d.ts.map +1 -1
  122. package/dist/llm/schemas.js +7 -2
  123. package/dist/llm/services/anthropic.cjs +67 -0
  124. package/dist/llm/services/anthropic.d.ts +6 -0
  125. package/dist/llm/services/anthropic.d.ts.map +1 -1
  126. package/dist/llm/services/anthropic.js +27 -0
  127. package/dist/llm/services/factory.js +1 -0
  128. package/dist/llm/services/openai.cjs +87 -0
  129. package/dist/llm/services/openai.d.ts +6 -0
  130. package/dist/llm/services/openai.d.ts.map +1 -1
  131. package/dist/llm/services/openai.js +47 -0
  132. package/dist/llm/services/test-utils.integration.cjs +1 -1
  133. package/dist/llm/services/test-utils.integration.js +2 -1
  134. package/dist/llm/services/vercel.cjs +144 -97
  135. package/dist/llm/services/vercel.d.ts +6 -1
  136. package/dist/llm/services/vercel.d.ts.map +1 -1
  137. package/dist/llm/services/vercel.js +105 -98
  138. package/dist/llm/tokenizer/anthropic.js +1 -0
  139. package/dist/llm/tokenizer/default.js +1 -0
  140. package/dist/llm/tokenizer/factory.js +1 -0
  141. package/dist/llm/tokenizer/google.js +1 -0
  142. package/dist/llm/tokenizer/openai.cjs +1 -1
  143. package/dist/llm/tokenizer/openai.d.ts +1 -1
  144. package/dist/llm/tokenizer/openai.js +2 -1
  145. package/dist/llm/tokenizer/types.js +1 -0
  146. package/dist/llm/types.d.ts +2 -2
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -0
  149. package/dist/llm/validation.js +1 -0
  150. package/dist/logger/browser.js +1 -0
  151. package/dist/logger/logger.d.ts +42 -0
  152. package/dist/logger/logger.d.ts.map +1 -1
  153. package/dist/logger/logger.js +1 -0
  154. package/dist/mcp/error-codes.cjs +1 -0
  155. package/dist/mcp/error-codes.d.ts +1 -0
  156. package/dist/mcp/error-codes.d.ts.map +1 -1
  157. package/dist/mcp/error-codes.js +2 -0
  158. package/dist/mcp/errors.cjs +12 -0
  159. package/dist/mcp/errors.d.ts +7 -0
  160. package/dist/mcp/errors.d.ts.map +1 -1
  161. package/dist/mcp/errors.js +13 -0
  162. package/dist/mcp/manager.cjs +66 -16
  163. package/dist/mcp/manager.d.ts +7 -0
  164. package/dist/mcp/manager.d.ts.map +1 -1
  165. package/dist/mcp/manager.js +67 -16
  166. package/dist/mcp/mcp-client.js +1 -0
  167. package/dist/mcp/resolver.js +1 -0
  168. package/dist/mcp/schemas.js +1 -0
  169. package/dist/mcp/types.d.ts +1 -1
  170. package/dist/mcp/types.d.ts.map +1 -1
  171. package/dist/memory/error-codes.js +1 -0
  172. package/dist/memory/errors.js +1 -0
  173. package/dist/memory/index.js +1 -0
  174. package/dist/memory/manager.js +1 -0
  175. package/dist/memory/schemas.js +1 -0
  176. package/dist/plugins/builtins/content-policy.js +1 -0
  177. package/dist/plugins/builtins/response-sanitizer.js +1 -0
  178. package/dist/plugins/error-codes.js +1 -0
  179. package/dist/plugins/index.js +1 -0
  180. package/dist/plugins/loader.js +1 -0
  181. package/dist/plugins/manager.js +1 -0
  182. package/dist/plugins/registrations/builtins.js +1 -0
  183. package/dist/plugins/schemas.js +1 -0
  184. package/dist/preferences/constants.js +1 -0
  185. package/dist/preferences/error-codes.js +1 -0
  186. package/dist/preferences/errors.js +1 -0
  187. package/dist/preferences/index.js +1 -0
  188. package/dist/preferences/loader.cjs +3 -1
  189. package/dist/preferences/loader.d.ts +10 -1
  190. package/dist/preferences/loader.d.ts.map +1 -1
  191. package/dist/preferences/loader.js +4 -1
  192. package/dist/preferences/schemas.cjs +2 -1
  193. package/dist/preferences/schemas.d.ts +8 -0
  194. package/dist/preferences/schemas.d.ts.map +1 -1
  195. package/dist/preferences/schemas.js +3 -1
  196. package/dist/process/command-validator.cjs +544 -0
  197. package/dist/process/command-validator.d.ts +46 -0
  198. package/dist/process/command-validator.d.ts.map +1 -0
  199. package/dist/process/command-validator.js +521 -0
  200. package/dist/process/error-codes.cjs +47 -0
  201. package/dist/process/error-codes.d.ts +25 -0
  202. package/dist/process/error-codes.d.ts.map +1 -0
  203. package/dist/process/error-codes.js +24 -0
  204. package/dist/process/errors.cjs +244 -0
  205. package/dist/process/errors.d.ts +87 -0
  206. package/dist/process/errors.d.ts.map +1 -0
  207. package/dist/process/errors.js +221 -0
  208. package/dist/process/index.cjs +37 -0
  209. package/dist/process/index.d.ts +11 -0
  210. package/dist/process/index.d.ts.map +1 -0
  211. package/dist/process/index.js +11 -0
  212. package/dist/process/process-service.cjs +443 -0
  213. package/dist/process/process-service.d.ts +62 -0
  214. package/dist/process/process-service.d.ts.map +1 -0
  215. package/dist/process/process-service.js +410 -0
  216. package/dist/process/types.cjs +16 -0
  217. package/dist/process/types.d.ts +107 -0
  218. package/dist/process/types.d.ts.map +1 -0
  219. package/dist/process/types.js +0 -0
  220. package/dist/prompts/error-codes.js +1 -0
  221. package/dist/prompts/errors.js +1 -0
  222. package/dist/prompts/index.js +1 -0
  223. package/dist/prompts/name-validation.js +1 -0
  224. package/dist/prompts/prompt-manager.js +1 -0
  225. package/dist/prompts/providers/custom-prompt-provider.js +1 -0
  226. package/dist/prompts/providers/file-prompt-provider.js +1 -0
  227. package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
  228. package/dist/prompts/providers/starter-prompt-provider.js +1 -0
  229. package/dist/prompts/schemas.js +1 -0
  230. package/dist/prompts/utils.js +1 -0
  231. package/dist/resources/error-codes.js +1 -0
  232. package/dist/resources/errors.js +1 -0
  233. package/dist/resources/handlers/blob-handler.js +1 -0
  234. package/dist/resources/handlers/factory.js +1 -0
  235. package/dist/resources/handlers/filesystem-handler.cjs +1 -1
  236. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  237. package/dist/resources/handlers/filesystem-handler.js +2 -1
  238. package/dist/resources/index.js +1 -0
  239. package/dist/resources/internal-provider.js +1 -0
  240. package/dist/resources/manager.js +1 -0
  241. package/dist/resources/reference-parser.js +1 -0
  242. package/dist/resources/schemas.js +1 -0
  243. package/dist/search/index.js +1 -0
  244. package/dist/search/search-service.js +1 -0
  245. package/dist/session/chat-session.cjs +2 -2
  246. package/dist/session/chat-session.d.ts +2 -2
  247. package/dist/session/chat-session.js +3 -2
  248. package/dist/session/error-codes.js +1 -0
  249. package/dist/session/errors.js +1 -0
  250. package/dist/session/history/database.js +1 -0
  251. package/dist/session/history/factory.js +1 -0
  252. package/dist/session/history/memory.js +1 -0
  253. package/dist/session/index.js +1 -0
  254. package/dist/session/schemas.js +1 -0
  255. package/dist/session/session-manager.d.ts +6 -0
  256. package/dist/session/session-manager.d.ts.map +1 -1
  257. package/dist/session/session-manager.js +1 -0
  258. package/dist/session/title-generator.js +1 -0
  259. package/dist/storage/blob/factory.cjs +3 -3
  260. package/dist/storage/blob/factory.d.ts +3 -1
  261. package/dist/storage/blob/factory.d.ts.map +1 -1
  262. package/dist/storage/blob/factory.js +4 -3
  263. package/dist/storage/blob/local-blob-store.cjs +18 -2
  264. package/dist/storage/blob/local-blob-store.d.ts +2 -1
  265. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  266. package/dist/storage/blob/local-blob-store.js +19 -2
  267. package/dist/storage/blob/schemas.js +1 -0
  268. package/dist/storage/cache/factory.js +1 -0
  269. package/dist/storage/cache/memory-cache-store.js +1 -0
  270. package/dist/storage/cache/redis-store.js +1 -0
  271. package/dist/storage/cache/schemas.js +1 -0
  272. package/dist/storage/database/factory.cjs +7 -5
  273. package/dist/storage/database/factory.d.ts +3 -1
  274. package/dist/storage/database/factory.d.ts.map +1 -1
  275. package/dist/storage/database/factory.js +8 -5
  276. package/dist/storage/database/memory-database-store.js +1 -0
  277. package/dist/storage/database/postgres-store.js +1 -0
  278. package/dist/storage/database/schemas.cjs +1 -1
  279. package/dist/storage/database/schemas.js +2 -1
  280. package/dist/storage/database/sqlite-store.cjs +20 -2
  281. package/dist/storage/database/sqlite-store.d.ts +2 -1
  282. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  283. package/dist/storage/database/sqlite-store.js +21 -2
  284. package/dist/storage/error-codes.cjs +1 -0
  285. package/dist/storage/error-codes.d.ts +1 -0
  286. package/dist/storage/error-codes.d.ts.map +1 -1
  287. package/dist/storage/error-codes.js +2 -0
  288. package/dist/storage/errors.cjs +15 -0
  289. package/dist/storage/errors.d.ts +4 -0
  290. package/dist/storage/errors.d.ts.map +1 -1
  291. package/dist/storage/errors.js +16 -0
  292. package/dist/storage/index.js +1 -0
  293. package/dist/storage/schemas.js +1 -0
  294. package/dist/storage/storage-manager.cjs +7 -5
  295. package/dist/storage/storage-manager.d.ts +5 -2
  296. package/dist/storage/storage-manager.d.ts.map +1 -1
  297. package/dist/storage/storage-manager.js +8 -5
  298. package/dist/systemPrompt/contributors.js +1 -0
  299. package/dist/systemPrompt/error-codes.js +1 -0
  300. package/dist/systemPrompt/errors.js +1 -0
  301. package/dist/systemPrompt/in-built-prompts.js +1 -0
  302. package/dist/systemPrompt/index.js +1 -0
  303. package/dist/systemPrompt/manager.js +1 -0
  304. package/dist/systemPrompt/registry.js +1 -0
  305. package/dist/systemPrompt/schemas.js +1 -0
  306. package/dist/telemetry/decorators.cjs +175 -0
  307. package/dist/telemetry/decorators.d.ts +17 -0
  308. package/dist/telemetry/decorators.d.ts.map +1 -0
  309. package/dist/telemetry/decorators.js +157 -0
  310. package/dist/telemetry/exporters.cjs +108 -0
  311. package/dist/telemetry/exporters.d.ts +29 -0
  312. package/dist/telemetry/exporters.d.ts.map +1 -0
  313. package/dist/telemetry/exporters.js +85 -0
  314. package/dist/telemetry/index.cjs +28 -0
  315. package/dist/telemetry/index.d.ts +2 -0
  316. package/dist/telemetry/index.d.ts.map +1 -0
  317. package/dist/telemetry/index.js +5 -0
  318. package/dist/telemetry/schemas.cjs +71 -0
  319. package/dist/telemetry/schemas.d.ts +54 -0
  320. package/dist/telemetry/schemas.d.ts.map +1 -0
  321. package/dist/telemetry/schemas.js +48 -0
  322. package/dist/telemetry/telemetry.cjs +228 -0
  323. package/dist/telemetry/telemetry.d.ts +74 -0
  324. package/dist/telemetry/telemetry.d.ts.map +1 -0
  325. package/dist/telemetry/telemetry.js +205 -0
  326. package/dist/telemetry/types.cjs +16 -0
  327. package/dist/telemetry/types.d.ts +22 -0
  328. package/dist/telemetry/types.d.ts.map +1 -0
  329. package/dist/telemetry/types.js +0 -0
  330. package/dist/telemetry/utils.cjs +87 -0
  331. package/dist/telemetry/utils.d.ts +21 -0
  332. package/dist/telemetry/utils.d.ts.map +1 -0
  333. package/dist/telemetry/utils.js +62 -0
  334. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -0
  335. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -0
  337. package/dist/tools/error-codes.js +1 -0
  338. package/dist/tools/errors.js +1 -0
  339. package/dist/tools/index.js +1 -0
  340. package/dist/tools/internal-tools/constants.cjs +39 -0
  341. package/dist/tools/internal-tools/constants.d.ts +12 -0
  342. package/dist/tools/internal-tools/constants.d.ts.map +1 -0
  343. package/dist/tools/internal-tools/constants.js +16 -0
  344. package/dist/tools/internal-tools/implementations/ask-user-tool.js +1 -0
  345. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
  346. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
  347. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
  348. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
  349. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
  350. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
  351. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
  352. package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
  353. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
  354. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
  355. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
  356. package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
  357. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
  358. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
  359. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
  360. package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
  361. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
  362. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
  363. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
  364. package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
  365. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
  366. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
  367. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
  368. package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
  369. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
  370. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
  371. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
  372. package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
  373. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
  374. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
  375. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
  376. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
  377. package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
  378. package/dist/tools/internal-tools/index.cjs +3 -1
  379. package/dist/tools/internal-tools/index.d.ts +1 -0
  380. package/dist/tools/internal-tools/index.d.ts.map +1 -1
  381. package/dist/tools/internal-tools/index.js +1 -0
  382. package/dist/tools/internal-tools/provider.js +1 -0
  383. package/dist/tools/internal-tools/registry.cjs +40 -4
  384. package/dist/tools/internal-tools/registry.d.ts +5 -9
  385. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  386. package/dist/tools/internal-tools/registry.js +41 -3
  387. package/dist/tools/schemas.cjs +18 -5
  388. package/dist/tools/schemas.d.ts +30 -1
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +15 -2
  391. package/dist/tools/tool-manager.cjs +158 -19
  392. package/dist/tools/tool-manager.d.ts +48 -2
  393. package/dist/tools/tool-manager.d.ts.map +1 -1
  394. package/dist/tools/tool-manager.js +118 -19
  395. package/dist/utils/api-key-resolver.js +1 -0
  396. package/dist/utils/api-key-store.js +1 -0
  397. package/dist/utils/async-context.js +1 -0
  398. package/dist/utils/debug.js +1 -0
  399. package/dist/utils/env.js +1 -0
  400. package/dist/utils/error-conversion.js +1 -0
  401. package/dist/utils/execution-context.js +1 -0
  402. package/dist/utils/fs-walk.js +1 -0
  403. package/dist/utils/path.js +1 -0
  404. package/dist/utils/port-utils.js +1 -0
  405. package/dist/utils/redactor.js +1 -0
  406. package/dist/utils/result.js +1 -0
  407. package/dist/utils/safe-stringify.js +1 -0
  408. package/dist/utils/schema-metadata.js +1 -0
  409. package/dist/utils/schema.js +1 -0
  410. package/dist/utils/service-initializer.cjs +42 -4
  411. package/dist/utils/service-initializer.d.ts +2 -1
  412. package/dist/utils/service-initializer.d.ts.map +1 -1
  413. package/dist/utils/service-initializer.js +33 -4
  414. package/dist/utils/user-info.js +1 -0
  415. package/dist/utils/zod-schema-converter.js +1 -0
  416. package/package.json +11 -1
@@ -1,14 +1,31 @@
1
+ import {
2
+ __decorateElement,
3
+ __decoratorStart,
4
+ __runInitializers
5
+ } from "../chunk-C6A6W6XS.js";
6
+ var _ToolManager_decorators, _init;
1
7
  import { InternalToolsProvider } from "./internal-tools/provider.js";
2
8
  import { ToolError } from "./errors.js";
3
9
  import { logger } from "../logger/index.js";
4
10
  import { ApprovalStatus } from "../approval/types.js";
5
- class ToolManager {
11
+ import { InstrumentClass } from "../telemetry/decorators.js";
12
+ _ToolManager_decorators = [InstrumentClass({
13
+ prefix: "tool",
14
+ excludeMethods: [
15
+ "setPluginManager",
16
+ "setStateManager",
17
+ "getApprovalManager",
18
+ "getAllowedToolsProvider"
19
+ ]
20
+ })];
21
+ let _ToolManager = class _ToolManager {
6
22
  mcpManager;
7
23
  internalToolsProvider;
8
24
  approvalManager;
9
25
  allowedToolsProvider;
10
26
  approvalMode;
11
27
  agentEventBus;
28
+ toolPolicies;
12
29
  // Plugin support - set after construction to avoid circular dependencies
13
30
  pluginManager;
14
31
  sessionManager;
@@ -19,12 +36,13 @@ class ToolManager {
19
36
  // Tool caching for performance
20
37
  toolsCache = {};
21
38
  cacheValid = false;
22
- constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, options) {
39
+ constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, toolPolicies, options) {
23
40
  this.mcpManager = mcpManager;
24
41
  this.approvalManager = approvalManager;
25
42
  this.allowedToolsProvider = allowedToolsProvider;
26
43
  this.approvalMode = approvalMode;
27
44
  this.agentEventBus = agentEventBus;
45
+ this.toolPolicies = toolPolicies;
28
46
  if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
29
47
  this.internalToolsProvider = new InternalToolsProvider(
30
48
  options.internalToolsServices || {},
@@ -88,6 +106,16 @@ class ToolManager {
88
106
  /**
89
107
  * Build all tools from sources with universal prefixing
90
108
  * ALL tools get prefixed by their source - no exceptions
109
+ *
110
+ * TODO: Rethink tool naming convention for more consistency
111
+ * Current issue: MCP tools have dynamic naming based on conflicts:
112
+ * - No conflict: mcp--toolName
113
+ * - With conflict: mcp--serverName--toolName
114
+ * This makes policy configuration fragile. Consider:
115
+ * 1. Always including server name: mcp--serverName--toolName (breaking change)
116
+ * 2. Using a different delimiter pattern that's more predictable
117
+ * 3. Providing a tool discovery command to help users find exact names
118
+ * Related: Tool policies now support dual matching (exact + suffix) as a workaround
91
119
  */
92
120
  async buildAllTools() {
93
121
  const allTools = {};
@@ -110,7 +138,7 @@ class ToolManager {
110
138
  internalTools = {};
111
139
  }
112
140
  for (const [toolName, toolDef] of Object.entries(internalTools)) {
113
- const qualifiedName = `${ToolManager.INTERNAL_TOOL_PREFIX}${toolName}`;
141
+ const qualifiedName = `${_ToolManager.INTERNAL_TOOL_PREFIX}${toolName}`;
114
142
  allTools[qualifiedName] = {
115
143
  ...toolDef,
116
144
  name: qualifiedName,
@@ -118,7 +146,7 @@ class ToolManager {
118
146
  };
119
147
  }
120
148
  for (const [toolName, toolDef] of Object.entries(mcpTools)) {
121
- const qualifiedName = `${ToolManager.MCP_TOOL_PREFIX}${toolName}`;
149
+ const qualifiedName = `${_ToolManager.MCP_TOOL_PREFIX}${toolName}`;
122
150
  allTools[qualifiedName] = {
123
151
  ...toolDef,
124
152
  name: qualifiedName,
@@ -129,7 +157,7 @@ class ToolManager {
129
157
  const mcpCount = Object.keys(mcpTools).length;
130
158
  const internalCount = Object.keys(internalTools).length;
131
159
  logger.debug(
132
- `\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${ToolManager.INTERNAL_TOOL_PREFIX}*)`
160
+ `\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${_ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${_ToolManager.INTERNAL_TOOL_PREFIX}*)`
133
161
  );
134
162
  return allTools;
135
163
  }
@@ -180,17 +208,17 @@ class ToolManager {
180
208
  }
181
209
  try {
182
210
  let result;
183
- if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX)) {
211
+ if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
184
212
  logger.debug(`\u{1F527} Detected MCP tool: '${toolName}'`);
185
- const actualToolName = toolName.substring(ToolManager.MCP_TOOL_PREFIX.length);
213
+ const actualToolName = toolName.substring(_ToolManager.MCP_TOOL_PREFIX.length);
186
214
  if (actualToolName.length === 0) {
187
215
  throw ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
188
216
  }
189
217
  logger.debug(`\u{1F3AF} MCP routing: '${toolName}' -> '${actualToolName}'`);
190
218
  result = await this.mcpManager.executeTool(actualToolName, args, sessionId);
191
- } else if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX)) {
219
+ } else if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
192
220
  logger.debug(`\u{1F527} Detected internal tool: '${toolName}'`);
193
- const actualToolName = toolName.substring(ToolManager.INTERNAL_TOOL_PREFIX.length);
221
+ const actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
194
222
  if (actualToolName.length === 0) {
195
223
  throw ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
196
224
  }
@@ -207,7 +235,7 @@ class ToolManager {
207
235
  logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
208
236
  const stats = await this.getToolStats();
209
237
  logger.error(
210
- `\u274C Tool missing source prefix: '${toolName}' (expected '${ToolManager.MCP_TOOL_PREFIX}*' or '${ToolManager.INTERNAL_TOOL_PREFIX}*')`
238
+ `\u274C Tool missing source prefix: '${toolName}' (expected '${_ToolManager.MCP_TOOL_PREFIX}*' or '${_ToolManager.INTERNAL_TOOL_PREFIX}*')`
211
239
  );
212
240
  logger.debug(`Available: ${stats.mcp} MCP tools, ${stats.internal} internal tools`);
213
241
  throw ToolError.notFound(toolName);
@@ -265,12 +293,12 @@ class ToolManager {
265
293
  * Check if a tool exists (must have proper source prefix)
266
294
  */
267
295
  async hasTool(toolName) {
268
- if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX)) {
269
- const actualToolName = toolName.substring(ToolManager.MCP_TOOL_PREFIX.length);
296
+ if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
297
+ const actualToolName = toolName.substring(_ToolManager.MCP_TOOL_PREFIX.length);
270
298
  return this.mcpManager.getToolClient(actualToolName) !== void 0;
271
299
  }
272
- if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX)) {
273
- const actualToolName = toolName.substring(ToolManager.INTERNAL_TOOL_PREFIX.length);
300
+ if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX)) {
301
+ const actualToolName = toolName.substring(_ToolManager.INTERNAL_TOOL_PREFIX.length);
274
302
  return this.internalToolsProvider?.hasTool(actualToolName) ?? false;
275
303
  }
276
304
  return false;
@@ -312,20 +340,86 @@ class ToolManager {
312
340
  * @returns The source of the tool
313
341
  */
314
342
  getToolSource(toolName) {
315
- if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX) && toolName.length > ToolManager.MCP_TOOL_PREFIX.length) {
343
+ if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX) && toolName.length > _ToolManager.MCP_TOOL_PREFIX.length) {
316
344
  return "mcp";
317
345
  }
318
- if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX) && toolName.length > ToolManager.INTERNAL_TOOL_PREFIX.length) {
346
+ if (toolName.startsWith(_ToolManager.INTERNAL_TOOL_PREFIX) && toolName.length > _ToolManager.INTERNAL_TOOL_PREFIX.length) {
319
347
  return "internal";
320
348
  }
321
349
  return "unknown";
322
350
  }
351
+ /**
352
+ * Check if a tool matches a policy pattern
353
+ * Supports both exact matching and suffix matching for MCP tools with server prefixes
354
+ *
355
+ * Examples:
356
+ * - Policy "mcp--read_file" matches "mcp--read_file" (exact)
357
+ * - Policy "mcp--read_file" matches "mcp--filesystem--read_file" (suffix)
358
+ * - Policy "internal--ask_user" matches "internal--ask_user" (exact only)
359
+ *
360
+ * @param toolName The fully qualified tool name (e.g., "mcp--filesystem--read_file")
361
+ * @param policyPattern The policy pattern to match against (e.g., "mcp--read_file")
362
+ * @returns true if the tool matches the policy pattern
363
+ */
364
+ matchesToolPolicy(toolName, policyPattern) {
365
+ if (toolName === policyPattern) {
366
+ return true;
367
+ }
368
+ if (policyPattern.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
369
+ const baseName = policyPattern.substring(_ToolManager.MCP_TOOL_PREFIX.length);
370
+ if (toolName.endsWith(`--${baseName}`) && toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
371
+ return true;
372
+ }
373
+ }
374
+ return false;
375
+ }
376
+ /**
377
+ * Check if a tool is in the static alwaysDeny list
378
+ * Supports both exact and suffix matching (e.g., "mcp--read_file" matches "mcp--server--read_file")
379
+ * @param toolName The fully qualified tool name to check
380
+ * @returns true if the tool is in the deny list
381
+ */
382
+ isInAlwaysDenyList(toolName) {
383
+ if (!this.toolPolicies?.alwaysDeny) {
384
+ return false;
385
+ }
386
+ return this.toolPolicies.alwaysDeny.some(
387
+ (pattern) => this.matchesToolPolicy(toolName, pattern)
388
+ );
389
+ }
390
+ /**
391
+ * Check if a tool is in the static alwaysAllow list
392
+ * Supports both exact and suffix matching (e.g., "mcp--read_file" matches "mcp--server--read_file")
393
+ * @param toolName The fully qualified tool name to check
394
+ * @returns true if the tool is in the allow list
395
+ */
396
+ isInAlwaysAllowList(toolName) {
397
+ if (!this.toolPolicies?.alwaysAllow) {
398
+ return false;
399
+ }
400
+ return this.toolPolicies.alwaysAllow.some(
401
+ (pattern) => this.matchesToolPolicy(toolName, pattern)
402
+ );
403
+ }
323
404
  /**
324
405
  * Handle tool approval/confirmation flow
325
406
  * Checks allowed list, manages approval modes (event-based, auto-approve, auto-deny),
326
407
  * and handles remember choice logic
327
408
  */
328
409
  async handleToolApproval(toolName, args, sessionId) {
410
+ if (this.isInAlwaysDenyList(toolName)) {
411
+ logger.info(
412
+ `Tool '${toolName}' is in static deny list \u2013 blocking execution (session: ${sessionId ?? "global"})`
413
+ );
414
+ logger.debug(`\u{1F6AB} Tool execution blocked by policy: ${toolName}`);
415
+ throw ToolError.executionDenied(toolName, sessionId);
416
+ }
417
+ if (this.isInAlwaysAllowList(toolName)) {
418
+ logger.info(
419
+ `Tool '${toolName}' is in static allow list \u2013 skipping confirmation (session: ${sessionId ?? "global"})`
420
+ );
421
+ return;
422
+ }
329
423
  const isAllowed = await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
330
424
  if (isAllowed) {
331
425
  logger.info(
@@ -355,9 +449,10 @@ class ToolManager {
355
449
  const response = await this.approvalManager.requestToolConfirmation(requestData);
356
450
  const rememberChoice = response.data && "rememberChoice" in response.data ? response.data.rememberChoice : false;
357
451
  if (response.status === ApprovalStatus.APPROVED && rememberChoice) {
358
- await this.allowedToolsProvider.allowTool(toolName, response.sessionId);
452
+ const allowSessionId = sessionId ?? response.sessionId;
453
+ await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
359
454
  logger.info(
360
- `Tool '${toolName}' added to allowed tools for session '${response.sessionId ?? "global"}' (remember choice selected)`
455
+ `Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
361
456
  );
362
457
  }
363
458
  const approved = response.status === ApprovalStatus.APPROVED;
@@ -405,7 +500,11 @@ class ToolManager {
405
500
  cancelAllConfirmations() {
406
501
  this.approvalManager.cancelAllApprovals();
407
502
  }
408
- }
503
+ };
504
+ _init = __decoratorStart(null);
505
+ _ToolManager = __decorateElement(_init, 0, "ToolManager", _ToolManager_decorators, _ToolManager);
506
+ __runInitializers(_init, 1, _ToolManager);
507
+ let ToolManager = _ToolManager;
409
508
  export {
410
509
  ToolManager
411
510
  };
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  const PROVIDER_API_KEY_MAP = {
2
3
  openai: ["OPENAI_API_KEY", "OPENAI_KEY"],
3
4
  "openai-compatible": ["OPENAI_API_KEY", "OPENAI_KEY"],
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { LLM_PROVIDERS } from "../llm/types.js";
2
3
  import { getPrimaryApiKeyEnvVar, resolveApiKeyForProvider } from "./api-key-resolver.js";
3
4
  import { updateEnvFile } from "./env.js";
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { AsyncLocalStorage } from "async_hooks";
2
3
  const asyncContext = new AsyncLocalStorage();
3
4
  function setContext(ctx) {
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  function shouldIncludeRawToolResult() {
2
3
  const flag = process.env.DEXTO_DEBUG_TOOL_RESULT_RAW;
3
4
  if (!flag) return false;
package/dist/utils/env.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import * as path from "path";
2
3
  import { homedir } from "os";
3
4
  import { promises as fs } from "fs";
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { safeStringify } from "./safe-stringify.js";
2
3
  function toError(error) {
3
4
  if (error instanceof Error) {
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { walkUpDirectories } from "./fs-walk.js";
2
3
  import { readFileSync } from "fs";
3
4
  import * as path from "path";
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import * as path from "path";
2
3
  function walkUpDirectories(startPath, predicate) {
3
4
  let currentPath = path.resolve(startPath);
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import * as path from "path";
2
3
  import { existsSync } from "fs";
3
4
  import { promises as fs } from "fs";
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  function getPort(envVar, defaultPort, varName) {
2
3
  if (envVar === void 0) {
3
4
  return defaultPort;
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  const SENSITIVE_FIELDS = [
2
3
  "apikey",
3
4
  "api_key",
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { z } from "zod";
2
3
  import { ErrorScope, ErrorType } from "../errors/types.js";
3
4
  const NonEmptyTrimmed = z.string().transform((s) => s.trim()).refine((s) => s.length > 0, { message: "Required" });
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { redactSensitiveData } from "./redactor.js";
2
3
  function safeStringify(value, maxLen = 1e3) {
3
4
  try {
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  function extractDefault(def) {
2
3
  if (def.defaultValue !== void 0) {
3
4
  return typeof def.defaultValue === "function" ? def.defaultValue() : def.defaultValue;
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { zodToJsonSchema } from "zod-to-json-schema";
2
3
  import { logger } from "../logger/index.js";
3
4
  function convertZodSchemaToJsonSchema(zodSchema) {
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var service_initializer_exports = {};
20
30
  __export(service_initializer_exports, {
@@ -28,6 +38,7 @@ var import_state_manager = require("../agent/state-manager.js");
28
38
  var import_session = require("../session/index.js");
29
39
  var import_search = require("../search/index.js");
30
40
  var import_path = require("path");
41
+ var path = __toESM(require("path"), 1);
31
42
  var import_storage = require("../storage/index.js");
32
43
  var import_factory = require("../tools/confirmation/allowed-tools-provider/factory.js");
33
44
  var import_logger = require("../logger/index.js");
@@ -37,11 +48,19 @@ var import_manager4 = require("../approval/manager.js");
37
48
  var import_memory = require("../memory/index.js");
38
49
  var import_manager5 = require("../plugins/manager.js");
39
50
  var import_builtins = require("../plugins/registrations/builtins.js");
40
- async function createAgentServices(config, configPath) {
51
+ var import_filesystem = require("../filesystem/index.js");
52
+ var import_process = require("../process/index.js");
53
+ async function createAgentServices(config, configPath, agentId) {
54
+ if (config.telemetry?.enabled) {
55
+ const { Telemetry } = await import("../telemetry/telemetry.js");
56
+ await Telemetry.init(config.telemetry);
57
+ import_logger.logger.debug("Telemetry initialized");
58
+ }
41
59
  const agentEventBus = new import_events.AgentEventBus();
42
60
  import_logger.logger.debug("Agent event bus initialized");
43
- import_logger.logger.debug("Initializing storage manager");
44
- const storageManager = await (0, import_storage.createStorageManager)(config.storage);
61
+ const effectiveAgentId = agentId || config.agentCard?.name || (configPath ? path.basename(configPath, path.extname(configPath)) : void 0) || "default-agent";
62
+ import_logger.logger.debug("Initializing storage manager", { agentId: effectiveAgentId });
63
+ const storageManager = await (0, import_storage.createStorageManager)(config.storage, effectiveAgentId);
45
64
  import_logger.logger.debug("Storage manager initialized", {
46
65
  cache: config.storage.cache.type,
47
66
  database: config.storage.database.type
@@ -69,6 +88,20 @@ async function createAgentServices(config, configPath) {
69
88
  import_logger.logger.debug("Built-in plugins registered");
70
89
  await pluginManager.initialize(config.plugins.custom);
71
90
  import_logger.logger.info("Plugin manager initialized");
91
+ const fileSystemService = new import_filesystem.FileSystemService({
92
+ allowedPaths: ["."],
93
+ blockedPaths: [".git", "node_modules/.bin", ".env"],
94
+ blockedExtensions: [".exe", ".dll", ".so"],
95
+ workingDirectory: process.cwd()
96
+ });
97
+ await fileSystemService.initialize();
98
+ import_logger.logger.debug("FileSystemService initialized");
99
+ const processService = new import_process.ProcessService({
100
+ securityLevel: "moderate",
101
+ workingDirectory: process.cwd()
102
+ });
103
+ await processService.initialize();
104
+ import_logger.logger.debug("ProcessService initialized");
72
105
  const allowedToolsProvider = (0, import_factory.createAllowedToolsProvider)({
73
106
  type: config.toolConfirmation.allowedToolsStorage,
74
107
  storageManager
@@ -79,8 +112,13 @@ async function createAgentServices(config, configPath) {
79
112
  allowedToolsProvider,
80
113
  config.toolConfirmation.mode,
81
114
  agentEventBus,
115
+ config.toolConfirmation.toolPolicies,
82
116
  {
83
- internalToolsServices: { searchService },
117
+ internalToolsServices: {
118
+ searchService,
119
+ fileSystemService,
120
+ processService
121
+ },
84
122
  internalToolsConfig: config.internalTools
85
123
  }
86
124
  );
@@ -32,7 +32,8 @@ export type AgentServices = {
32
32
  * Initializes all agent services from a validated configuration.
33
33
  * @param config The validated agent configuration object
34
34
  * @param configPath Optional path to the config file (for relative path resolution)
35
+ * @param agentId Optional agent identifier used for database naming (default: derived from config or 'default-agent')
35
36
  * @returns All the initialized services required for a Dexto agent
36
37
  */
37
- export declare function createAgentServices(config: ValidatedAgentConfig, configPath?: string): Promise<AgentServices>;
38
+ export declare function createAgentServices(config: ValidatedAgentConfig, configPath?: string, agentId?: string): Promise<AgentServices>;
38
39
  //# sourceMappingURL=service-initializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-initializer.d.ts","sourceRoot":"","sources":["../../src/utils/service-initializer.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAwB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;CAChC,CAAC;AAGF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAuJxB"}
1
+ {"version":3,"file":"service-initializer.d.ts","sourceRoot":"","sources":["../../src/utils/service-initializer.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAwB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,iBAAiB,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;CAChC,CAAC;AAGF;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA8LxB"}
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { MCPManager } from "../mcp/manager.js";
2
3
  import { ToolManager } from "../tools/tool-manager.js";
3
4
  import { SystemPromptManager } from "../systemPrompt/manager.js";
@@ -5,6 +6,7 @@ import { AgentStateManager } from "../agent/state-manager.js";
5
6
  import { SessionManager } from "../session/index.js";
6
7
  import { SearchService } from "../search/index.js";
7
8
  import { dirname, resolve } from "path";
9
+ import * as path from "path";
8
10
  import { createStorageManager } from "../storage/index.js";
9
11
  import { createAllowedToolsProvider } from "../tools/confirmation/allowed-tools-provider/factory.js";
10
12
  import { logger } from "../logger/index.js";
@@ -14,11 +16,19 @@ import { ApprovalManager } from "../approval/manager.js";
14
16
  import { MemoryManager } from "../memory/index.js";
15
17
  import { PluginManager } from "../plugins/manager.js";
16
18
  import { registerBuiltInPlugins } from "../plugins/registrations/builtins.js";
17
- async function createAgentServices(config, configPath) {
19
+ import { FileSystemService } from "../filesystem/index.js";
20
+ import { ProcessService } from "../process/index.js";
21
+ async function createAgentServices(config, configPath, agentId) {
22
+ if (config.telemetry?.enabled) {
23
+ const { Telemetry } = await import("../telemetry/telemetry.js");
24
+ await Telemetry.init(config.telemetry);
25
+ logger.debug("Telemetry initialized");
26
+ }
18
27
  const agentEventBus = new AgentEventBus();
19
28
  logger.debug("Agent event bus initialized");
20
- logger.debug("Initializing storage manager");
21
- const storageManager = await createStorageManager(config.storage);
29
+ const effectiveAgentId = agentId || config.agentCard?.name || (configPath ? path.basename(configPath, path.extname(configPath)) : void 0) || "default-agent";
30
+ logger.debug("Initializing storage manager", { agentId: effectiveAgentId });
31
+ const storageManager = await createStorageManager(config.storage, effectiveAgentId);
22
32
  logger.debug("Storage manager initialized", {
23
33
  cache: config.storage.cache.type,
24
34
  database: config.storage.database.type
@@ -46,6 +56,20 @@ async function createAgentServices(config, configPath) {
46
56
  logger.debug("Built-in plugins registered");
47
57
  await pluginManager.initialize(config.plugins.custom);
48
58
  logger.info("Plugin manager initialized");
59
+ const fileSystemService = new FileSystemService({
60
+ allowedPaths: ["."],
61
+ blockedPaths: [".git", "node_modules/.bin", ".env"],
62
+ blockedExtensions: [".exe", ".dll", ".so"],
63
+ workingDirectory: process.cwd()
64
+ });
65
+ await fileSystemService.initialize();
66
+ logger.debug("FileSystemService initialized");
67
+ const processService = new ProcessService({
68
+ securityLevel: "moderate",
69
+ workingDirectory: process.cwd()
70
+ });
71
+ await processService.initialize();
72
+ logger.debug("ProcessService initialized");
49
73
  const allowedToolsProvider = createAllowedToolsProvider({
50
74
  type: config.toolConfirmation.allowedToolsStorage,
51
75
  storageManager
@@ -56,8 +80,13 @@ async function createAgentServices(config, configPath) {
56
80
  allowedToolsProvider,
57
81
  config.toolConfirmation.mode,
58
82
  agentEventBus,
83
+ config.toolConfirmation.toolPolicies,
59
84
  {
60
- internalToolsServices: { searchService },
85
+ internalToolsServices: {
86
+ searchService,
87
+ fileSystemService,
88
+ processService
89
+ },
61
90
  internalToolsConfig: config.internalTools
62
91
  }
63
92
  );
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  function getUserId() {
2
3
  return "default-user";
3
4
  }
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { z } from "zod";
2
3
  function jsonSchemaToZodShape(jsonSchema) {
3
4
  if (!jsonSchema || typeof jsonSchema !== "object" || jsonSchema.type !== "object") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/core",
3
- "version": "1.1.11",
3
+ "version": "1.2.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,11 +28,21 @@
28
28
  "@ai-sdk/xai": "^2.0.0",
29
29
  "@anthropic-ai/sdk": "^0.60.0",
30
30
  "@modelcontextprotocol/sdk": "^1.18.1",
31
+ "@opentelemetry/api": "^1.9.0",
32
+ "@opentelemetry/auto-instrumentations-node": "^0.52.1",
33
+ "@opentelemetry/core": "^1.28.0",
34
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.55.0",
35
+ "@opentelemetry/exporter-trace-otlp-http": "^0.55.0",
36
+ "@opentelemetry/resources": "^1.28.0",
37
+ "@opentelemetry/sdk-node": "^0.55.0",
38
+ "@opentelemetry/sdk-trace-base": "^1.28.0",
39
+ "@opentelemetry/semantic-conventions": "^1.28.0",
31
40
  "ai": "^5.0.0",
32
41
  "better-sqlite3": "^11.10.0",
33
42
  "boxen": "^7.1.1",
34
43
  "chalk": "^5.4.1",
35
44
  "dotenv": "^16.4.7",
45
+ "glob": "^11.0.3",
36
46
  "ioredis": "^5.7.0",
37
47
  "nanoid": "^5.1.6",
38
48
  "openai": "^5.16.0",