@dexto/core 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +60 -0
  2. package/dist/agent/DextoAgent.cjs +579 -345
  3. package/dist/agent/DextoAgent.d.ts +131 -83
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +573 -336
  6. package/dist/agent/agentCard.cjs +4 -2
  7. package/dist/agent/agentCard.d.ts +0 -1
  8. package/dist/agent/agentCard.d.ts.map +1 -1
  9. package/dist/agent/agentCard.js +4 -2
  10. package/dist/agent/index.cjs +3 -7
  11. package/dist/agent/index.d.ts +3 -3
  12. package/dist/agent/index.d.ts.map +1 -1
  13. package/dist/agent/index.js +7 -6
  14. package/dist/agent/schemas.cjs +179 -75
  15. package/dist/agent/schemas.d.ts +2678 -586
  16. package/dist/agent/schemas.d.ts.map +1 -1
  17. package/dist/agent/schemas.js +172 -65
  18. package/dist/agent/state-manager.cjs +28 -23
  19. package/dist/agent/state-manager.d.ts +4 -1
  20. package/dist/agent/state-manager.d.ts.map +1 -1
  21. package/dist/agent/state-manager.js +28 -23
  22. package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
  23. package/dist/agent/types.d.ts +54 -0
  24. package/dist/agent/types.d.ts.map +1 -0
  25. package/dist/agent/types.js +0 -0
  26. package/dist/approval/errors.cjs +89 -8
  27. package/dist/approval/errors.d.ts +5 -3
  28. package/dist/approval/errors.d.ts.map +1 -1
  29. package/dist/approval/errors.js +89 -8
  30. package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
  31. package/dist/approval/factory.d.ts.map +1 -0
  32. package/dist/approval/{providers/factory.js → factory.js} +1 -1
  33. package/dist/approval/index.cjs +4 -6
  34. package/dist/approval/index.d.ts +3 -5
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +4 -5
  37. package/dist/approval/manager.cjs +140 -37
  38. package/dist/approval/manager.d.ts +56 -17
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +141 -38
  41. package/dist/approval/schemas.cjs +9 -1
  42. package/dist/approval/schemas.d.ts +120 -35
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +9 -2
  45. package/dist/approval/types.cjs +14 -2
  46. package/dist/approval/types.d.ts +64 -12
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +12 -1
  49. package/dist/context/compression/middle-removal.cjs +11 -11
  50. package/dist/context/compression/middle-removal.d.ts +3 -1
  51. package/dist/context/compression/middle-removal.d.ts.map +1 -1
  52. package/dist/context/compression/middle-removal.js +11 -11
  53. package/dist/context/compression/oldest-removal.cjs +18 -5
  54. package/dist/context/compression/oldest-removal.d.ts +3 -1
  55. package/dist/context/compression/oldest-removal.d.ts.map +1 -1
  56. package/dist/context/compression/oldest-removal.js +18 -5
  57. package/dist/context/manager.cjs +94 -67
  58. package/dist/context/manager.d.ts +13 -10
  59. package/dist/context/manager.d.ts.map +1 -1
  60. package/dist/context/manager.js +94 -67
  61. package/dist/context/utils.cjs +79 -65
  62. package/dist/context/utils.d.ts +15 -12
  63. package/dist/context/utils.d.ts.map +1 -1
  64. package/dist/context/utils.js +45 -31
  65. package/dist/errors/DextoRuntimeError.d.ts +5 -5
  66. package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
  67. package/dist/errors/result-bridge.cjs +2 -3
  68. package/dist/errors/result-bridge.d.ts +5 -3
  69. package/dist/errors/result-bridge.d.ts.map +1 -1
  70. package/dist/errors/result-bridge.js +1 -2
  71. package/dist/errors/types.cjs +1 -2
  72. package/dist/errors/types.d.ts +5 -8
  73. package/dist/errors/types.d.ts.map +1 -1
  74. package/dist/errors/types.js +1 -2
  75. package/dist/events/index.cjs +125 -55
  76. package/dist/events/index.d.ts +204 -97
  77. package/dist/events/index.d.ts.map +1 -1
  78. package/dist/events/index.js +123 -55
  79. package/dist/filesystem/filesystem-service.cjs +40 -30
  80. package/dist/filesystem/filesystem-service.d.ts +9 -1
  81. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  82. package/dist/filesystem/filesystem-service.js +40 -30
  83. package/dist/filesystem/path-validator.cjs +4 -3
  84. package/dist/filesystem/path-validator.d.ts +3 -1
  85. package/dist/filesystem/path-validator.d.ts.map +1 -1
  86. package/dist/filesystem/path-validator.js +4 -3
  87. package/dist/filesystem/types.d.ts +3 -3
  88. package/dist/filesystem/types.d.ts.map +1 -1
  89. package/dist/index.browser.cjs +7 -0
  90. package/dist/index.browser.d.ts +2 -0
  91. package/dist/index.browser.d.ts.map +1 -1
  92. package/dist/index.browser.js +4 -0
  93. package/dist/index.cjs +0 -7
  94. package/dist/index.d.ts +12 -3
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +0 -4
  97. package/dist/llm/formatters/anthropic.cjs +32 -21
  98. package/dist/llm/formatters/anthropic.d.ts +3 -0
  99. package/dist/llm/formatters/anthropic.d.ts.map +1 -1
  100. package/dist/llm/formatters/anthropic.js +32 -21
  101. package/dist/llm/formatters/factory.cjs +6 -7
  102. package/dist/llm/formatters/factory.d.ts +2 -1
  103. package/dist/llm/formatters/factory.d.ts.map +1 -1
  104. package/dist/llm/formatters/factory.js +4 -5
  105. package/dist/llm/formatters/openai.cjs +38 -9
  106. package/dist/llm/formatters/openai.d.ts +3 -0
  107. package/dist/llm/formatters/openai.d.ts.map +1 -1
  108. package/dist/llm/formatters/openai.js +38 -9
  109. package/dist/llm/formatters/vercel.cjs +49 -8
  110. package/dist/llm/formatters/vercel.d.ts +3 -0
  111. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  112. package/dist/llm/formatters/vercel.js +49 -8
  113. package/dist/llm/registry.cjs +153 -17
  114. package/dist/llm/registry.d.ts +5 -2
  115. package/dist/llm/registry.d.ts.map +1 -1
  116. package/dist/llm/registry.js +143 -7
  117. package/dist/llm/resolver.cjs +4 -4
  118. package/dist/llm/resolver.d.ts +3 -2
  119. package/dist/llm/resolver.d.ts.map +1 -1
  120. package/dist/llm/resolver.js +4 -4
  121. package/dist/llm/schemas.cjs +6 -3
  122. package/dist/llm/schemas.d.ts +51 -17
  123. package/dist/llm/schemas.d.ts.map +1 -1
  124. package/dist/llm/schemas.js +5 -3
  125. package/dist/llm/services/anthropic.cjs +216 -183
  126. package/dist/llm/services/anthropic.d.ts +3 -1
  127. package/dist/llm/services/anthropic.d.ts.map +1 -1
  128. package/dist/llm/services/anthropic.js +217 -184
  129. package/dist/llm/services/factory.cjs +15 -9
  130. package/dist/llm/services/factory.d.ts +2 -1
  131. package/dist/llm/services/factory.d.ts.map +1 -1
  132. package/dist/llm/services/factory.js +15 -9
  133. package/dist/llm/services/openai.cjs +262 -225
  134. package/dist/llm/services/openai.d.ts +3 -1
  135. package/dist/llm/services/openai.d.ts.map +1 -1
  136. package/dist/llm/services/openai.js +263 -226
  137. package/dist/llm/services/test-utils.integration.cjs +58 -12
  138. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  139. package/dist/llm/services/test-utils.integration.js +58 -12
  140. package/dist/llm/services/types.d.ts +9 -0
  141. package/dist/llm/services/types.d.ts.map +1 -1
  142. package/dist/llm/services/vercel.cjs +163 -111
  143. package/dist/llm/services/vercel.d.ts +3 -1
  144. package/dist/llm/services/vercel.d.ts.map +1 -1
  145. package/dist/llm/services/vercel.js +157 -105
  146. package/dist/llm/tokenizer/factory.cjs +2 -2
  147. package/dist/llm/tokenizer/factory.d.ts +3 -1
  148. package/dist/llm/tokenizer/factory.d.ts.map +1 -1
  149. package/dist/llm/tokenizer/factory.js +2 -2
  150. package/dist/llm/tokenizer/openai.cjs +16 -9
  151. package/dist/llm/tokenizer/openai.d.ts +4 -1
  152. package/dist/llm/tokenizer/openai.d.ts.map +1 -1
  153. package/dist/llm/tokenizer/openai.js +16 -9
  154. package/dist/llm/validation.cjs +8 -9
  155. package/dist/llm/validation.d.ts +3 -1
  156. package/dist/llm/validation.d.ts.map +1 -1
  157. package/dist/llm/validation.js +5 -6
  158. package/dist/logger/factory.cjs +54 -0
  159. package/dist/logger/factory.d.ts +36 -0
  160. package/dist/logger/factory.d.ts.map +1 -0
  161. package/dist/logger/factory.js +31 -0
  162. package/dist/logger/index.cjs +42 -3
  163. package/dist/logger/index.d.ts +17 -1
  164. package/dist/logger/index.d.ts.map +1 -1
  165. package/dist/logger/index.js +26 -1
  166. package/dist/logger/logger.cjs +30 -17
  167. package/dist/logger/logger.d.ts.map +1 -1
  168. package/dist/logger/logger.js +30 -17
  169. package/dist/logger/v2/dexto-logger.cjs +141 -0
  170. package/dist/logger/v2/dexto-logger.d.ts +54 -0
  171. package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
  172. package/dist/logger/v2/dexto-logger.js +118 -0
  173. package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
  174. package/dist/logger/v2/error-codes.d.ts +13 -0
  175. package/dist/logger/v2/error-codes.d.ts.map +1 -0
  176. package/dist/logger/v2/error-codes.js +13 -0
  177. package/dist/logger/v2/errors.cjs +107 -0
  178. package/dist/logger/v2/errors.d.ts +32 -0
  179. package/dist/logger/v2/errors.d.ts.map +1 -0
  180. package/dist/logger/v2/errors.js +84 -0
  181. package/dist/logger/v2/schemas.cjs +57 -0
  182. package/dist/logger/v2/schemas.d.ts +147 -0
  183. package/dist/logger/v2/schemas.d.ts.map +1 -0
  184. package/dist/logger/v2/schemas.js +33 -0
  185. package/dist/logger/v2/transport-factory.cjs +53 -0
  186. package/dist/logger/v2/transport-factory.d.ts +21 -0
  187. package/dist/logger/v2/transport-factory.d.ts.map +1 -0
  188. package/dist/logger/v2/transport-factory.js +29 -0
  189. package/dist/logger/v2/transports/console-transport.cjs +79 -0
  190. package/dist/logger/v2/transports/console-transport.d.ts +23 -0
  191. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
  192. package/dist/logger/v2/transports/console-transport.js +46 -0
  193. package/dist/logger/v2/transports/file-transport.cjs +161 -0
  194. package/dist/logger/v2/transports/file-transport.d.ts +46 -0
  195. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
  196. package/dist/logger/v2/transports/file-transport.js +128 -0
  197. package/dist/logger/v2/types.cjs +49 -0
  198. package/dist/logger/v2/types.d.ts +123 -0
  199. package/dist/logger/v2/types.d.ts.map +1 -0
  200. package/dist/logger/v2/types.js +26 -0
  201. package/dist/mcp/manager.cjs +88 -78
  202. package/dist/mcp/manager.d.ts +3 -1
  203. package/dist/mcp/manager.d.ts.map +1 -1
  204. package/dist/mcp/manager.js +88 -78
  205. package/dist/mcp/mcp-client.cjs +109 -79
  206. package/dist/mcp/mcp-client.d.ts +3 -0
  207. package/dist/mcp/mcp-client.d.ts.map +1 -1
  208. package/dist/mcp/mcp-client.js +102 -72
  209. package/dist/memory/index.cjs +2 -0
  210. package/dist/memory/index.d.ts +1 -1
  211. package/dist/memory/index.d.ts.map +1 -1
  212. package/dist/memory/index.js +3 -1
  213. package/dist/memory/manager.cjs +9 -7
  214. package/dist/memory/manager.d.ts +3 -1
  215. package/dist/memory/manager.d.ts.map +1 -1
  216. package/dist/memory/manager.js +9 -7
  217. package/dist/memory/schemas.cjs +10 -0
  218. package/dist/memory/schemas.d.ts +37 -8
  219. package/dist/memory/schemas.d.ts.map +1 -1
  220. package/dist/memory/schemas.js +9 -0
  221. package/dist/plugins/manager.cjs +21 -19
  222. package/dist/plugins/manager.d.ts +3 -1
  223. package/dist/plugins/manager.d.ts.map +1 -1
  224. package/dist/plugins/manager.js +21 -19
  225. package/dist/plugins/schemas.d.ts +9 -9
  226. package/dist/plugins/types.d.ts +2 -2
  227. package/dist/plugins/types.d.ts.map +1 -1
  228. package/dist/process/command-validator.cjs +30 -20
  229. package/dist/process/command-validator.d.ts +4 -1
  230. package/dist/process/command-validator.d.ts.map +1 -1
  231. package/dist/process/command-validator.js +30 -20
  232. package/dist/process/process-service.cjs +23 -21
  233. package/dist/process/process-service.d.ts +3 -1
  234. package/dist/process/process-service.d.ts.map +1 -1
  235. package/dist/process/process-service.js +23 -21
  236. package/dist/prompts/index.cjs +6 -8
  237. package/dist/prompts/index.d.ts +2 -4
  238. package/dist/prompts/index.d.ts.map +1 -1
  239. package/dist/prompts/index.js +4 -6
  240. package/dist/prompts/prompt-manager.cjs +25 -20
  241. package/dist/prompts/prompt-manager.d.ts +3 -1
  242. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  243. package/dist/prompts/prompt-manager.js +25 -20
  244. package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
  247. package/dist/prompts/providers/config-prompt-provider.js +308 -0
  248. package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
  250. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  251. package/dist/prompts/providers/custom-prompt-provider.js +11 -7
  252. package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
  253. package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
  254. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  255. package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
  256. package/dist/prompts/schemas.cjs +42 -23
  257. package/dist/prompts/schemas.d.ts +123 -14
  258. package/dist/prompts/schemas.d.ts.map +1 -1
  259. package/dist/prompts/schemas.js +39 -22
  260. package/dist/prompts/types.d.ts +1 -1
  261. package/dist/prompts/types.d.ts.map +1 -1
  262. package/dist/resources/handlers/blob-handler.cjs +15 -11
  263. package/dist/resources/handlers/blob-handler.d.ts +3 -1
  264. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  265. package/dist/resources/handlers/blob-handler.js +15 -11
  266. package/dist/resources/handlers/factory.cjs +3 -3
  267. package/dist/resources/handlers/factory.d.ts +2 -1
  268. package/dist/resources/handlers/factory.d.ts.map +1 -1
  269. package/dist/resources/handlers/factory.js +3 -3
  270. package/dist/resources/handlers/filesystem-handler.cjs +10 -8
  271. package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
  272. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  273. package/dist/resources/handlers/filesystem-handler.js +10 -8
  274. package/dist/resources/internal-provider.cjs +28 -20
  275. package/dist/resources/internal-provider.d.ts +3 -1
  276. package/dist/resources/internal-provider.d.ts.map +1 -1
  277. package/dist/resources/internal-provider.js +28 -20
  278. package/dist/resources/manager.cjs +34 -25
  279. package/dist/resources/manager.d.ts +3 -1
  280. package/dist/resources/manager.d.ts.map +1 -1
  281. package/dist/resources/manager.js +34 -25
  282. package/dist/resources/schemas.d.ts +6 -6
  283. package/dist/search/search-service.cjs +8 -6
  284. package/dist/search/search-service.d.ts +3 -1
  285. package/dist/search/search-service.d.ts.map +1 -1
  286. package/dist/search/search-service.js +8 -6
  287. package/dist/session/chat-session.cjs +40 -27
  288. package/dist/session/chat-session.d.ts +10 -7
  289. package/dist/session/chat-session.d.ts.map +1 -1
  290. package/dist/session/chat-session.js +40 -27
  291. package/dist/session/history/database.cjs +18 -11
  292. package/dist/session/history/database.d.ts +3 -1
  293. package/dist/session/history/database.d.ts.map +1 -1
  294. package/dist/session/history/database.js +18 -11
  295. package/dist/session/history/factory.cjs +2 -2
  296. package/dist/session/history/factory.d.ts +5 -1
  297. package/dist/session/history/factory.d.ts.map +1 -1
  298. package/dist/session/history/factory.js +2 -2
  299. package/dist/session/session-manager.cjs +37 -53
  300. package/dist/session/session-manager.d.ts +3 -17
  301. package/dist/session/session-manager.d.ts.map +1 -1
  302. package/dist/session/session-manager.js +37 -53
  303. package/dist/session/title-generator.cjs +3 -2
  304. package/dist/session/title-generator.d.ts +2 -1
  305. package/dist/session/title-generator.d.ts.map +1 -1
  306. package/dist/session/title-generator.js +3 -2
  307. package/dist/storage/blob/factory.cjs +9 -18
  308. package/dist/storage/blob/factory.d.ts +5 -4
  309. package/dist/storage/blob/factory.d.ts.map +1 -1
  310. package/dist/storage/blob/factory.js +8 -17
  311. package/dist/storage/blob/local-blob-store.cjs +25 -32
  312. package/dist/storage/blob/local-blob-store.d.ts +3 -2
  313. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  314. package/dist/storage/blob/local-blob-store.js +25 -32
  315. package/dist/storage/blob/memory-blob-store.cjs +326 -0
  316. package/dist/storage/blob/memory-blob-store.d.ts +66 -0
  317. package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
  318. package/dist/storage/blob/memory-blob-store.js +303 -0
  319. package/dist/storage/blob/schemas.cjs +3 -1
  320. package/dist/storage/blob/schemas.d.ts +6 -6
  321. package/dist/storage/blob/schemas.d.ts.map +1 -1
  322. package/dist/storage/blob/schemas.js +3 -1
  323. package/dist/storage/cache/factory.cjs +7 -8
  324. package/dist/storage/cache/factory.d.ts +4 -1
  325. package/dist/storage/cache/factory.d.ts.map +1 -1
  326. package/dist/storage/cache/factory.js +4 -5
  327. package/dist/storage/cache/redis-store.cjs +4 -1
  328. package/dist/storage/cache/redis-store.d.ts +3 -1
  329. package/dist/storage/cache/redis-store.d.ts.map +1 -1
  330. package/dist/storage/cache/redis-store.js +4 -1
  331. package/dist/storage/database/factory.cjs +13 -16
  332. package/dist/storage/database/factory.d.ts +5 -3
  333. package/dist/storage/database/factory.d.ts.map +1 -1
  334. package/dist/storage/database/factory.js +9 -12
  335. package/dist/storage/database/postgres-store.cjs +4 -1
  336. package/dist/storage/database/postgres-store.d.ts +3 -1
  337. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  338. package/dist/storage/database/postgres-store.js +4 -1
  339. package/dist/storage/database/schemas.cjs +3 -4
  340. package/dist/storage/database/schemas.d.ts +8 -16
  341. package/dist/storage/database/schemas.d.ts.map +1 -1
  342. package/dist/storage/database/schemas.js +3 -4
  343. package/dist/storage/database/sqlite-store.cjs +17 -45
  344. package/dist/storage/database/sqlite-store.d.ts +3 -3
  345. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  346. package/dist/storage/database/sqlite-store.js +17 -45
  347. package/dist/storage/schemas.cjs +3 -1
  348. package/dist/storage/schemas.d.ts +16 -23
  349. package/dist/storage/schemas.d.ts.map +1 -1
  350. package/dist/storage/schemas.js +3 -1
  351. package/dist/storage/storage-manager.cjs +15 -15
  352. package/dist/storage/storage-manager.d.ts +6 -6
  353. package/dist/storage/storage-manager.d.ts.map +1 -1
  354. package/dist/storage/storage-manager.js +15 -15
  355. package/dist/systemPrompt/contributors.cjs +15 -15
  356. package/dist/systemPrompt/contributors.d.ts +5 -3
  357. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  358. package/dist/systemPrompt/contributors.js +15 -15
  359. package/dist/systemPrompt/in-built-prompts.cjs +0 -5
  360. package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
  361. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  362. package/dist/systemPrompt/in-built-prompts.js +0 -4
  363. package/dist/systemPrompt/manager.cjs +31 -23
  364. package/dist/systemPrompt/manager.d.ts +5 -3
  365. package/dist/systemPrompt/manager.d.ts.map +1 -1
  366. package/dist/systemPrompt/manager.js +31 -23
  367. package/dist/systemPrompt/registry.cjs +1 -2
  368. package/dist/systemPrompt/registry.d.ts +1 -1
  369. package/dist/systemPrompt/registry.d.ts.map +1 -1
  370. package/dist/systemPrompt/registry.js +1 -2
  371. package/dist/systemPrompt/schemas.cjs +24 -18
  372. package/dist/systemPrompt/schemas.d.ts +46 -222
  373. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  374. package/dist/systemPrompt/schemas.js +14 -18
  375. package/dist/telemetry/decorators.cjs +54 -15
  376. package/dist/telemetry/decorators.d.ts.map +1 -1
  377. package/dist/telemetry/decorators.js +54 -15
  378. package/dist/telemetry/utils.cjs +21 -14
  379. package/dist/telemetry/utils.d.ts +7 -3
  380. package/dist/telemetry/utils.d.ts.map +1 -1
  381. package/dist/telemetry/utils.js +21 -14
  382. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
  383. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
  384. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  385. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
  386. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
  387. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
  388. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  389. package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
  390. package/dist/tools/errors.cjs +2 -1
  391. package/dist/tools/errors.d.ts.map +1 -1
  392. package/dist/tools/errors.js +2 -1
  393. package/dist/tools/internal-tools/constants.cjs +2 -1
  394. package/dist/tools/internal-tools/constants.d.ts +1 -1
  395. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  396. package/dist/tools/internal-tools/constants.js +2 -1
  397. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
  398. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
  399. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
  400. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
  401. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
  402. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
  403. package/dist/tools/internal-tools/provider.cjs +21 -17
  404. package/dist/tools/internal-tools/provider.d.ts +3 -1
  405. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  406. package/dist/tools/internal-tools/provider.js +21 -17
  407. package/dist/tools/internal-tools/registry.cjs +5 -0
  408. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  409. package/dist/tools/internal-tools/registry.js +5 -0
  410. package/dist/tools/schemas.cjs +16 -4
  411. package/dist/tools/schemas.d.ts +21 -9
  412. package/dist/tools/schemas.d.ts.map +1 -1
  413. package/dist/tools/schemas.js +15 -4
  414. package/dist/tools/tool-manager.cjs +64 -47
  415. package/dist/tools/tool-manager.d.ts +4 -2
  416. package/dist/tools/tool-manager.d.ts.map +1 -1
  417. package/dist/tools/tool-manager.js +61 -44
  418. package/dist/tools/types.d.ts +0 -4
  419. package/dist/tools/types.d.ts.map +1 -1
  420. package/dist/utils/env-file.cjs +118 -0
  421. package/dist/utils/env-file.d.ts +5 -0
  422. package/dist/utils/env-file.d.ts.map +1 -0
  423. package/dist/utils/env-file.js +85 -0
  424. package/dist/utils/error-conversion.cjs +23 -1
  425. package/dist/utils/error-conversion.d.ts +2 -1
  426. package/dist/utils/error-conversion.d.ts.map +1 -1
  427. package/dist/utils/error-conversion.js +23 -1
  428. package/dist/utils/execution-context.d.ts.map +1 -1
  429. package/dist/utils/fs-walk.d.ts.map +1 -1
  430. package/dist/utils/index.cjs +7 -9
  431. package/dist/utils/index.d.ts +3 -4
  432. package/dist/utils/index.d.ts.map +1 -1
  433. package/dist/utils/index.js +3 -4
  434. package/dist/utils/path.cjs +22 -57
  435. package/dist/utils/path.d.ts +8 -7
  436. package/dist/utils/path.d.ts.map +1 -1
  437. package/dist/utils/path.js +21 -54
  438. package/dist/utils/result.cjs +37 -14
  439. package/dist/utils/result.d.ts.map +1 -1
  440. package/dist/utils/result.js +37 -14
  441. package/dist/utils/schema.cjs +2 -3
  442. package/dist/utils/schema.d.ts +2 -1
  443. package/dist/utils/schema.d.ts.map +1 -1
  444. package/dist/utils/schema.js +1 -2
  445. package/dist/utils/service-initializer.cjs +88 -61
  446. package/dist/utils/service-initializer.d.ts +4 -2
  447. package/dist/utils/service-initializer.d.ts.map +1 -1
  448. package/dist/utils/service-initializer.js +70 -43
  449. package/package.json +7 -3
  450. package/dist/Dexto.cjs +0 -251
  451. package/dist/Dexto.d.ts +0 -191
  452. package/dist/Dexto.d.ts.map +0 -1
  453. package/dist/Dexto.js +0 -228
  454. package/dist/agent/registry/error-codes.cjs +0 -44
  455. package/dist/agent/registry/error-codes.d.ts +0 -21
  456. package/dist/agent/registry/error-codes.d.ts.map +0 -1
  457. package/dist/agent/registry/error-codes.js +0 -21
  458. package/dist/agent/registry/errors.cjs +0 -188
  459. package/dist/agent/registry/errors.d.ts +0 -63
  460. package/dist/agent/registry/errors.d.ts.map +0 -1
  461. package/dist/agent/registry/errors.js +0 -165
  462. package/dist/agent/registry/registry.cjs +0 -479
  463. package/dist/agent/registry/registry.d.ts +0 -130
  464. package/dist/agent/registry/registry.d.ts.map +0 -1
  465. package/dist/agent/registry/registry.js +0 -453
  466. package/dist/agent/registry/types.cjs +0 -74
  467. package/dist/agent/registry/types.d.ts +0 -142
  468. package/dist/agent/registry/types.d.ts.map +0 -1
  469. package/dist/agent/registry/types.js +0 -48
  470. package/dist/agent/registry/user-registry.cjs +0 -140
  471. package/dist/agent/registry/user-registry.d.ts +0 -34
  472. package/dist/agent/registry/user-registry.d.ts.map +0 -1
  473. package/dist/agent/registry/user-registry.js +0 -105
  474. package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
  475. package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
  476. package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
  477. package/dist/approval/providers/event-based-approval-provider.js +0 -133
  478. package/dist/approval/providers/factory.d.ts.map +0 -1
  479. package/dist/approval/providers/noop-approval-provider.cjs +0 -54
  480. package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
  481. package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
  482. package/dist/approval/providers/noop-approval-provider.js +0 -31
  483. package/dist/config/agent-resolver.cjs +0 -153
  484. package/dist/config/agent-resolver.d.ts +0 -14
  485. package/dist/config/agent-resolver.d.ts.map +0 -1
  486. package/dist/config/agent-resolver.js +0 -123
  487. package/dist/config/error-codes.cjs +0 -39
  488. package/dist/config/error-codes.d.ts +0 -16
  489. package/dist/config/error-codes.d.ts.map +0 -1
  490. package/dist/config/error-codes.js +0 -16
  491. package/dist/config/errors.cjs +0 -126
  492. package/dist/config/errors.d.ts +0 -34
  493. package/dist/config/errors.d.ts.map +0 -1
  494. package/dist/config/errors.js +0 -103
  495. package/dist/config/index.cjs +0 -26
  496. package/dist/config/index.d.ts +0 -4
  497. package/dist/config/index.d.ts.map +0 -1
  498. package/dist/config/index.js +0 -3
  499. package/dist/config/loader.cjs +0 -119
  500. package/dist/config/loader.d.ts +0 -16
  501. package/dist/config/loader.d.ts.map +0 -1
  502. package/dist/config/loader.js +0 -86
  503. package/dist/config/writer.cjs +0 -182
  504. package/dist/config/writer.d.ts +0 -35
  505. package/dist/config/writer.d.ts.map +0 -1
  506. package/dist/config/writer.js +0 -147
  507. package/dist/preferences/constants.d.ts +0 -2
  508. package/dist/preferences/constants.d.ts.map +0 -1
  509. package/dist/preferences/constants.js +0 -5
  510. package/dist/preferences/error-codes.d.ts +0 -8
  511. package/dist/preferences/error-codes.d.ts.map +0 -1
  512. package/dist/preferences/error-codes.js +0 -12
  513. package/dist/preferences/errors.cjs +0 -75
  514. package/dist/preferences/errors.d.ts +0 -18
  515. package/dist/preferences/errors.d.ts.map +0 -1
  516. package/dist/preferences/errors.js +0 -51
  517. package/dist/preferences/index.cjs +0 -55
  518. package/dist/preferences/index.d.ts +0 -6
  519. package/dist/preferences/index.d.ts.map +0 -1
  520. package/dist/preferences/index.js +0 -32
  521. package/dist/preferences/loader.cjs +0 -138
  522. package/dist/preferences/loader.d.ts +0 -51
  523. package/dist/preferences/loader.d.ts.map +0 -1
  524. package/dist/preferences/loader.js +0 -110
  525. package/dist/preferences/schemas.cjs +0 -75
  526. package/dist/preferences/schemas.d.ts +0 -110
  527. package/dist/preferences/schemas.d.ts.map +0 -1
  528. package/dist/preferences/schemas.js +0 -49
  529. package/dist/prompts/providers/file-prompt-provider.cjs +0 -399
  530. package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
  531. package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
  532. package/dist/prompts/providers/file-prompt-provider.js +0 -376
  533. package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
  534. package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
  535. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
  536. package/dist/prompts/providers/starter-prompt-provider.js +0 -147
  537. package/dist/utils/api-key-store.cjs +0 -56
  538. package/dist/utils/api-key-store.d.ts +0 -24
  539. package/dist/utils/api-key-store.d.ts.map +0 -1
  540. package/dist/utils/api-key-store.js +0 -31
  541. package/dist/utils/env.cjs +0 -154
  542. package/dist/utils/env.d.ts +0 -28
  543. package/dist/utils/env.d.ts.map +0 -1
  544. package/dist/utils/env.js +0 -119
  545. package/dist/utils/port-utils.cjs +0 -37
  546. package/dist/utils/port-utils.d.ts +0 -10
  547. package/dist/utils/port-utils.d.ts.map +0 -1
  548. package/dist/utils/port-utils.js +0 -14
  549. package/dist/utils/port-utils.spec.cjs +0 -26
  550. package/dist/utils/port-utils.spec.js +0 -25
  551. /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
@@ -1,453 +0,0 @@
1
- import "../../chunk-C6A6W6XS.js";
2
- import { existsSync, readFileSync } from "fs";
3
- import { promises as fs } from "fs";
4
- import path from "path";
5
- import { logger } from "../../logger/index.js";
6
- import { resolveBundledScript, getDextoGlobalPath, copyDirectory } from "../../utils/path.js";
7
- import { loadGlobalPreferences } from "../../preferences/loader.js";
8
- import { writePreferencesToAgent } from "../../config/writer.js";
9
- import {
10
- RegistrySchema,
11
- normalizeRegistryJson
12
- } from "./types.js";
13
- import { RegistryError } from "./errors.js";
14
- import {
15
- loadUserRegistry,
16
- mergeRegistries,
17
- removeAgentFromUserRegistry,
18
- addAgentToUserRegistry
19
- } from "./user-registry.js";
20
- let cachedRegistry = null;
21
- class LocalAgentRegistry {
22
- _registry = null;
23
- /**
24
- * Lazy load registry from JSON file
25
- */
26
- getRegistry() {
27
- if (this._registry === null) {
28
- this._registry = this.loadRegistry();
29
- }
30
- return this._registry;
31
- }
32
- /**
33
- * Load and merge bundled + user registries
34
- * Uses fail-fast approach - throws RegistryError for any loading issues
35
- */
36
- loadRegistry() {
37
- let jsonPath;
38
- try {
39
- jsonPath = resolveBundledScript("agents/agent-registry.json");
40
- } catch (error) {
41
- throw RegistryError.registryNotFound(
42
- "agents/agent-registry.json",
43
- error instanceof Error ? error.message : String(error)
44
- );
45
- }
46
- if (!existsSync(jsonPath)) {
47
- throw RegistryError.registryNotFound(jsonPath, "File doesn't exist");
48
- }
49
- let bundledRegistry;
50
- try {
51
- const jsonData = readFileSync(jsonPath, "utf-8");
52
- const rawRegistry = JSON.parse(jsonData);
53
- bundledRegistry = RegistrySchema.parse(normalizeRegistryJson(rawRegistry));
54
- } catch (error) {
55
- throw RegistryError.registryParseError(
56
- jsonPath,
57
- error instanceof Error ? error.message : String(error)
58
- );
59
- }
60
- const userRegistry = loadUserRegistry();
61
- const merged = mergeRegistries(bundledRegistry, userRegistry);
62
- logger.debug(
63
- `Loaded registry: ${Object.keys(bundledRegistry.agents).length} bundled, ${Object.keys(userRegistry.agents).length} custom`
64
- );
65
- return merged;
66
- }
67
- /**
68
- * Check if agent exists in registry by ID
69
- */
70
- hasAgent(agentId) {
71
- const registry = this.getRegistry();
72
- return agentId in registry.agents;
73
- }
74
- /**
75
- * Get available agents with their metadata from registry
76
- */
77
- getAvailableAgents() {
78
- const registry = this.getRegistry();
79
- return registry.agents;
80
- }
81
- /**
82
- * Validate custom agent ID doesn't conflict with bundled registry
83
- * @throws RegistryError if ID conflicts with builtin agent
84
- */
85
- validateCustomAgentId(agentId) {
86
- let jsonPath;
87
- try {
88
- jsonPath = resolveBundledScript("agents/agent-registry.json");
89
- } catch (error) {
90
- throw RegistryError.registryNotFound(
91
- "agents/agent-registry.json",
92
- error instanceof Error ? error.message : String(error)
93
- );
94
- }
95
- try {
96
- const jsonData = readFileSync(jsonPath, "utf-8");
97
- const bundledRegistry = RegistrySchema.parse(
98
- normalizeRegistryJson(JSON.parse(jsonData))
99
- );
100
- if (agentId in bundledRegistry.agents) {
101
- throw RegistryError.customAgentNameConflict(agentId);
102
- }
103
- } catch (error) {
104
- if (error instanceof Error && /name conflicts with builtin agent/.test(error.message)) {
105
- throw error;
106
- }
107
- throw RegistryError.registryParseError(
108
- jsonPath,
109
- error instanceof Error ? error.message : String(error)
110
- );
111
- }
112
- }
113
- /**
114
- * Resolve main config file for installed agent
115
- * Handles both directory agents (with main field) and single-file agents
116
- */
117
- resolveMainConfig(agentDir, agentId) {
118
- const registry = this.getRegistry();
119
- const agentData = registry.agents[agentId];
120
- if (!agentData) {
121
- const available = Object.keys(registry.agents);
122
- throw RegistryError.agentNotFound(agentId, available);
123
- }
124
- if (agentData.source.endsWith("/")) {
125
- if (!agentData.main) {
126
- throw RegistryError.agentInvalidEntry(
127
- agentId,
128
- "directory entry missing main field"
129
- );
130
- }
131
- const mainConfigPath = path.join(agentDir, agentData.main);
132
- if (!existsSync(mainConfigPath)) {
133
- throw RegistryError.mainConfigMissing(agentId, mainConfigPath);
134
- }
135
- return mainConfigPath;
136
- } else {
137
- const filename = path.basename(agentData.source);
138
- const configPath = path.join(agentDir, filename);
139
- if (!existsSync(configPath)) {
140
- throw RegistryError.configNotFound(configPath);
141
- }
142
- return configPath;
143
- }
144
- }
145
- /**
146
- * Install agent atomically using temp + rename pattern
147
- * @param agentId ID of the agent to install
148
- * @param injectPreferences Whether to inject global preferences into installed agent (default: true)
149
- */
150
- async installAgent(agentId, injectPreferences = true) {
151
- logger.info(`Installing agent: ${agentId}`);
152
- const registry = this.getRegistry();
153
- const agentData = registry.agents[agentId];
154
- if (!agentData) {
155
- const available = Object.keys(registry.agents);
156
- throw RegistryError.agentNotFound(agentId, available);
157
- }
158
- const globalAgentsDir = getDextoGlobalPath("agents");
159
- const targetDir = path.resolve(globalAgentsDir, agentId);
160
- const relTarget = path.relative(globalAgentsDir, targetDir);
161
- if (relTarget.startsWith("..") || path.isAbsolute(relTarget)) {
162
- throw RegistryError.installationFailed(
163
- agentId,
164
- "invalid agentId: path traversal detected"
165
- );
166
- }
167
- if (existsSync(targetDir)) {
168
- logger.info(`Agent '${agentId}' already installed`);
169
- return this.resolveMainConfig(targetDir, agentId);
170
- }
171
- await fs.mkdir(globalAgentsDir, { recursive: true });
172
- const sourcePath = resolveBundledScript(`agents/${agentData.source}`);
173
- const tempDir = `${targetDir}.tmp.${Date.now()}`;
174
- try {
175
- if (agentData.source.endsWith("/")) {
176
- await copyDirectory(sourcePath, tempDir);
177
- } else {
178
- await fs.mkdir(tempDir, { recursive: true });
179
- const targetFile = path.join(tempDir, path.basename(sourcePath));
180
- await fs.copyFile(sourcePath, targetFile);
181
- }
182
- const mainConfigPath = this.resolveMainConfig(tempDir, agentId);
183
- if (!existsSync(mainConfigPath)) {
184
- throw RegistryError.installationValidationFailed(agentId, mainConfigPath);
185
- }
186
- await fs.rename(tempDir, targetDir);
187
- logger.info(`\u2713 Installed agent '${agentId}' to ${targetDir}`);
188
- if (injectPreferences) {
189
- try {
190
- const preferences = await loadGlobalPreferences();
191
- await writePreferencesToAgent(targetDir, preferences);
192
- logger.info(`\u2713 Applied global preferences to installed agent '${agentId}'`);
193
- } catch (error) {
194
- logger.warn(
195
- `Failed to inject preferences to '${agentId}': ${error instanceof Error ? error.message : String(error)}`
196
- );
197
- console.log(
198
- `\u26A0\uFE0F Warning: Could not apply preferences to '${agentId}' - agent will use bundled settings`
199
- );
200
- }
201
- } else {
202
- logger.info(
203
- `Skipped preference injection for '${agentId}' (injectPreferences=false)`
204
- );
205
- }
206
- return this.resolveMainConfig(targetDir, agentId);
207
- } catch (error) {
208
- try {
209
- if (existsSync(tempDir)) {
210
- await fs.rm(tempDir, { recursive: true, force: true });
211
- }
212
- } catch (cleanupError) {
213
- logger.error(
214
- `Failed to clean up temp directory: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}. Skipping cleanup...`
215
- );
216
- }
217
- throw RegistryError.installationFailed(
218
- agentId,
219
- error instanceof Error ? error.message : String(error)
220
- );
221
- }
222
- }
223
- /**
224
- * Install a custom agent from a local file path
225
- * @param agentId Unique identifier for the custom agent
226
- * @param sourcePath Absolute path to agent YAML file or directory
227
- * @param metadata Agent metadata (name for display, description, author, tags, main)
228
- * @param injectPreferences Whether to inject global preferences (default: true)
229
- * @returns Path to the installed agent's main config file
230
- */
231
- async installCustomAgentFromPath(agentId, sourcePath, metadata, injectPreferences = true) {
232
- logger.info(`Installing custom agent '${agentId}' from ${sourcePath}`);
233
- this.validateCustomAgentId(agentId);
234
- if (!existsSync(sourcePath)) {
235
- throw RegistryError.configNotFound(sourcePath);
236
- }
237
- const globalAgentsDir = getDextoGlobalPath("agents");
238
- const targetDir = path.resolve(globalAgentsDir, agentId);
239
- const relTarget = path.relative(globalAgentsDir, targetDir);
240
- if (relTarget.startsWith("..") || path.isAbsolute(relTarget)) {
241
- throw RegistryError.installationFailed(
242
- agentId,
243
- "invalid agentId: path traversal detected"
244
- );
245
- }
246
- if (existsSync(targetDir)) {
247
- throw RegistryError.agentAlreadyExists(agentId);
248
- }
249
- await fs.mkdir(globalAgentsDir, { recursive: true });
250
- const stats = await fs.stat(sourcePath);
251
- const isDirectory = stats.isDirectory();
252
- const configFileName = isDirectory ? void 0 : `${agentId}.yml`;
253
- if (!metadata.description) {
254
- throw RegistryError.installationFailed(agentId, "description is required");
255
- }
256
- if (isDirectory && !metadata.main) {
257
- throw RegistryError.installationFailed(
258
- agentId,
259
- "main field is required for directory-based agents"
260
- );
261
- }
262
- const displayName = metadata.name || agentId.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
263
- const registryEntry = {
264
- id: agentId,
265
- name: displayName,
266
- description: metadata.description,
267
- author: metadata.author,
268
- tags: metadata.tags,
269
- source: isDirectory ? `${agentId}/` : configFileName,
270
- main: metadata.main
271
- };
272
- const tempDir = `${targetDir}.tmp.${Date.now()}`;
273
- try {
274
- if (isDirectory) {
275
- await copyDirectory(sourcePath, tempDir);
276
- } else {
277
- await fs.mkdir(tempDir, { recursive: true });
278
- const targetFile = path.join(tempDir, configFileName);
279
- await fs.copyFile(sourcePath, targetFile);
280
- }
281
- const tempMainConfigPath = isDirectory ? path.join(tempDir, metadata.main) : path.join(tempDir, configFileName);
282
- if (!existsSync(tempMainConfigPath)) {
283
- throw RegistryError.installationValidationFailed(agentId, tempMainConfigPath);
284
- }
285
- await fs.rename(tempDir, targetDir);
286
- logger.info(`\u2713 Installed custom agent '${agentId}' to ${targetDir}`);
287
- const mainConfigPath = isDirectory && metadata.main ? path.join(targetDir, metadata.main) : path.join(targetDir, configFileName);
288
- try {
289
- await addAgentToUserRegistry(agentId, registryEntry);
290
- logger.info(`\u2713 Added '${agentId}' to user registry`);
291
- this._registry = null;
292
- } catch (registryError) {
293
- try {
294
- if (existsSync(targetDir)) {
295
- await fs.rm(targetDir, { recursive: true, force: true });
296
- logger.info(`Rolled back installation: removed ${targetDir}`);
297
- }
298
- } catch (rollbackError) {
299
- logger.error(
300
- `Rollback failed for '${agentId}': ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`
301
- );
302
- }
303
- throw registryError;
304
- }
305
- if (injectPreferences) {
306
- try {
307
- const preferences = await loadGlobalPreferences();
308
- await writePreferencesToAgent(targetDir, preferences);
309
- logger.info(`\u2713 Applied global preferences to custom agent '${agentId}'`);
310
- } catch (error) {
311
- logger.warn(
312
- `Failed to inject preferences to '${agentId}': ${error instanceof Error ? error.message : String(error)}`
313
- );
314
- console.log(
315
- `\u26A0\uFE0F Warning: Could not apply preferences to '${agentId}' - agent will use default settings`
316
- );
317
- }
318
- }
319
- return mainConfigPath;
320
- } catch (error) {
321
- try {
322
- if (existsSync(tempDir)) {
323
- await fs.rm(tempDir, { recursive: true, force: true });
324
- }
325
- } catch (cleanupError) {
326
- logger.error(
327
- `Failed to clean up temp directory: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}. Skipping cleanup...`
328
- );
329
- }
330
- throw RegistryError.installationFailed(
331
- agentId,
332
- error instanceof Error ? error.message : String(error)
333
- );
334
- }
335
- }
336
- /**
337
- * Resolve a registry agent ID to a config path
338
- * NOTE: Only handles registry IDs, not file paths (routing done in loadAgentConfig)
339
- * Handles installing agent if needed
340
- * @param agentId ID of the agent to resolve
341
- * @param autoInstall Whether to automatically install missing agents from registry (default: true)
342
- * @param injectPreferences Whether to inject preferences during auto-installation (default: true)
343
- */
344
- async resolveAgent(agentId, autoInstall = true, injectPreferences = true) {
345
- logger.debug(`Resolving registry agent: ${agentId}`);
346
- const globalAgentsDir = getDextoGlobalPath("agents");
347
- const installedPath = path.resolve(globalAgentsDir, agentId);
348
- const relInstalled = path.relative(globalAgentsDir, installedPath);
349
- if (relInstalled.startsWith("..") || path.isAbsolute(relInstalled)) {
350
- throw RegistryError.agentNotFound(agentId, Object.keys(this.getRegistry().agents));
351
- }
352
- if (existsSync(installedPath)) {
353
- const mainConfig = this.resolveMainConfig(installedPath, agentId);
354
- logger.debug(`Resolved installed agent '${agentId}' to: ${mainConfig}`);
355
- return mainConfig;
356
- }
357
- logger.debug(`Agent '${agentId}' not found in installed path: ${installedPath}`);
358
- if (this.hasAgent(agentId)) {
359
- if (autoInstall) {
360
- logger.info(`Installing agent '${agentId}' from registry...`);
361
- return await this.installAgent(agentId, injectPreferences);
362
- } else {
363
- const registry2 = this.getRegistry();
364
- const available2 = Object.keys(registry2.agents);
365
- throw RegistryError.agentNotInstalledAutoInstallDisabled(agentId, available2);
366
- }
367
- }
368
- const registry = this.getRegistry();
369
- const available = Object.keys(registry.agents);
370
- throw RegistryError.agentNotFound(agentId, available);
371
- }
372
- /**
373
- * Get list of currently installed agents
374
- */
375
- async getInstalledAgents() {
376
- const globalAgentsDir = getDextoGlobalPath("agents");
377
- if (!existsSync(globalAgentsDir)) {
378
- return [];
379
- }
380
- try {
381
- const entries = await fs.readdir(globalAgentsDir, { withFileTypes: true });
382
- return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name).filter((name) => !name.startsWith(".tmp") && !name.includes(".tmp."));
383
- } catch (error) {
384
- logger.error(`Failed to read installed agents directory: ${error}`);
385
- return [];
386
- }
387
- }
388
- /**
389
- * Check if an agent is safe to uninstall (not the default agent from preferences)
390
- */
391
- async isAgentSafeToUninstall(agentId) {
392
- try {
393
- const preferences = await loadGlobalPreferences();
394
- const defaultAgent = preferences.defaults.defaultAgent;
395
- return agentId !== defaultAgent;
396
- } catch {
397
- logger.warn("Could not load preferences, using fallback protection for default-agent");
398
- return agentId !== "default-agent";
399
- }
400
- }
401
- /**
402
- * Uninstall an agent by removing its directory
403
- * For custom agents: also removes from user registry
404
- * For builtin agents: only removes from disk
405
- * @param agentId ID of the agent to uninstall
406
- * @param force Whether to force uninstall even if agent is protected (default: false)
407
- */
408
- async uninstallAgent(agentId, force = false) {
409
- const globalAgentsDir = getDextoGlobalPath("agents");
410
- const agentDir = path.resolve(globalAgentsDir, agentId);
411
- const relAgent = path.relative(globalAgentsDir, agentDir);
412
- if (relAgent.startsWith("..") || path.isAbsolute(relAgent)) {
413
- throw RegistryError.uninstallationFailed(
414
- agentId,
415
- "invalid agentId: path traversal detected"
416
- );
417
- }
418
- logger.info(`Uninstalling agent: ${agentId} from ${agentDir}`);
419
- if (!existsSync(agentDir)) {
420
- throw RegistryError.agentNotInstalled(agentId);
421
- }
422
- if (!force && !await this.isAgentSafeToUninstall(agentId)) {
423
- throw RegistryError.agentProtected(agentId);
424
- }
425
- const registry = this.getRegistry();
426
- const agentData = registry.agents[agentId];
427
- const isCustomAgent = agentData?.type === "custom";
428
- try {
429
- await fs.rm(agentDir, { recursive: true, force: true });
430
- logger.info(`\u2713 Removed agent '${agentId}' from ${agentDir}`);
431
- if (isCustomAgent) {
432
- await removeAgentFromUserRegistry(agentId);
433
- logger.info(`\u2713 Removed custom agent '${agentId}' from user registry`);
434
- this._registry = null;
435
- }
436
- } catch (error) {
437
- throw RegistryError.uninstallationFailed(
438
- agentId,
439
- error instanceof Error ? error.message : String(error)
440
- );
441
- }
442
- }
443
- }
444
- function getAgentRegistry() {
445
- if (cachedRegistry === null) {
446
- cachedRegistry = new LocalAgentRegistry();
447
- }
448
- return cachedRegistry;
449
- }
450
- export {
451
- LocalAgentRegistry,
452
- getAgentRegistry
453
- };
@@ -1,74 +0,0 @@
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 types_exports = {};
20
- __export(types_exports, {
21
- AgentRegistryEntrySchema: () => AgentRegistryEntrySchema,
22
- RegistrySchema: () => RegistrySchema,
23
- deriveDisplayName: () => deriveDisplayName,
24
- normalizeRegistryJson: () => normalizeRegistryJson
25
- });
26
- module.exports = __toCommonJS(types_exports);
27
- var import_zod = require("zod");
28
- function deriveDisplayName(slug) {
29
- return slug.split("-").filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
30
- }
31
- const AgentRegistryEntrySchema = import_zod.z.object({
32
- id: import_zod.z.string().describe("Unique identifier for the agent"),
33
- name: import_zod.z.string().describe("Display name for the agent"),
34
- description: import_zod.z.string(),
35
- author: import_zod.z.string(),
36
- tags: import_zod.z.array(import_zod.z.string()),
37
- source: import_zod.z.string(),
38
- main: import_zod.z.string().optional(),
39
- type: import_zod.z.enum(["builtin", "custom"]).default("builtin").describe("Agent type")
40
- }).strict();
41
- const RegistrySchema = import_zod.z.object({
42
- version: import_zod.z.string(),
43
- agents: import_zod.z.record(import_zod.z.string(), AgentRegistryEntrySchema)
44
- }).strict();
45
- function normalizeRegistryJson(raw) {
46
- if (!raw || typeof raw !== "object") {
47
- return { version: "1.0.0", agents: {} };
48
- }
49
- const input = raw;
50
- const normalizedAgents = {};
51
- const agents = input.agents && typeof input.agents === "object" && input.agents !== null ? input.agents : {};
52
- for (const [agentId, value] of Object.entries(agents)) {
53
- if (!value || typeof value !== "object") continue;
54
- const entry = { ...value };
55
- if (!entry.id || typeof entry.id !== "string" || entry.id.trim() !== agentId) {
56
- entry.id = agentId;
57
- }
58
- if (!entry.name || typeof entry.name !== "string" || !entry.name.trim()) {
59
- entry.name = deriveDisplayName(agentId);
60
- }
61
- normalizedAgents[agentId] = entry;
62
- }
63
- return {
64
- version: typeof input.version === "string" && input.version.trim().length > 0 ? input.version : "1.0.0",
65
- agents: normalizedAgents
66
- };
67
- }
68
- // Annotate the CommonJS export names for ESM import in node:
69
- 0 && (module.exports = {
70
- AgentRegistryEntrySchema,
71
- RegistrySchema,
72
- deriveDisplayName,
73
- normalizeRegistryJson
74
- });
@@ -1,142 +0,0 @@
1
- import { z } from 'zod';
2
- export declare function deriveDisplayName(slug: string): string;
3
- /**
4
- * Schema for agent data in registry JSON
5
- */
6
- export declare const AgentRegistryEntrySchema: z.ZodObject<{
7
- id: z.ZodString;
8
- name: z.ZodString;
9
- description: z.ZodString;
10
- author: z.ZodString;
11
- tags: z.ZodArray<z.ZodString, "many">;
12
- source: z.ZodString;
13
- main: z.ZodOptional<z.ZodString>;
14
- type: z.ZodDefault<z.ZodEnum<["builtin", "custom"]>>;
15
- }, "strict", z.ZodTypeAny, {
16
- name: string;
17
- type: "custom" | "builtin";
18
- description: string;
19
- id: string;
20
- tags: string[];
21
- source: string;
22
- author: string;
23
- main?: string | undefined;
24
- }, {
25
- name: string;
26
- description: string;
27
- id: string;
28
- tags: string[];
29
- source: string;
30
- author: string;
31
- type?: "custom" | "builtin" | undefined;
32
- main?: string | undefined;
33
- }>;
34
- export type AgentRegistryEntry = z.output<typeof AgentRegistryEntrySchema>;
35
- /**
36
- * Schema for complete registry JSON
37
- */
38
- export declare const RegistrySchema: z.ZodObject<{
39
- version: z.ZodString;
40
- agents: z.ZodRecord<z.ZodString, z.ZodObject<{
41
- id: z.ZodString;
42
- name: z.ZodString;
43
- description: z.ZodString;
44
- author: z.ZodString;
45
- tags: z.ZodArray<z.ZodString, "many">;
46
- source: z.ZodString;
47
- main: z.ZodOptional<z.ZodString>;
48
- type: z.ZodDefault<z.ZodEnum<["builtin", "custom"]>>;
49
- }, "strict", z.ZodTypeAny, {
50
- name: string;
51
- type: "custom" | "builtin";
52
- description: string;
53
- id: string;
54
- tags: string[];
55
- source: string;
56
- author: string;
57
- main?: string | undefined;
58
- }, {
59
- name: string;
60
- description: string;
61
- id: string;
62
- tags: string[];
63
- source: string;
64
- author: string;
65
- type?: "custom" | "builtin" | undefined;
66
- main?: string | undefined;
67
- }>>;
68
- }, "strict", z.ZodTypeAny, {
69
- version: string;
70
- agents: Record<string, {
71
- name: string;
72
- type: "custom" | "builtin";
73
- description: string;
74
- id: string;
75
- tags: string[];
76
- source: string;
77
- author: string;
78
- main?: string | undefined;
79
- }>;
80
- }, {
81
- version: string;
82
- agents: Record<string, {
83
- name: string;
84
- description: string;
85
- id: string;
86
- tags: string[];
87
- source: string;
88
- author: string;
89
- type?: "custom" | "builtin" | undefined;
90
- main?: string | undefined;
91
- }>;
92
- }>;
93
- export type Registry = z.output<typeof RegistrySchema>;
94
- type RawRegistry = {
95
- version?: unknown;
96
- agents?: Record<string, unknown> | unknown;
97
- };
98
- /**
99
- * Normalize registry JSON data to ensure consistency.
100
- * Validates that id field matches the registry key and derives display names if missing.
101
- */
102
- export declare function normalizeRegistryJson(raw: unknown): RawRegistry;
103
- /**
104
- * Agent registry interface
105
- */
106
- export interface AgentRegistry {
107
- /**
108
- * Returns true if the registry contains an agent with the provided ID
109
- */
110
- hasAgent(agentId: string): boolean;
111
- /**
112
- * Returns a map of available agent IDs to their registry entries
113
- */
114
- getAvailableAgents(): Record<string, AgentRegistryEntry>;
115
- /**
116
- * Installs an agent from the registry by ID
117
- * @param agentId - Unique agent identifier
118
- * @param injectPreferences - Whether to inject global preferences (default: true)
119
- * @returns Path to the installed agent config
120
- */
121
- installAgent(agentId: string, injectPreferences?: boolean): Promise<string>;
122
- /**
123
- * Uninstalls an agent by ID
124
- * @param agentId - Unique agent identifier
125
- * @param force - Whether to force uninstall protected agents (default: false)
126
- */
127
- uninstallAgent(agentId: string, force?: boolean): Promise<void>;
128
- /**
129
- * Returns list of currently installed agent IDs
130
- */
131
- getInstalledAgents(): Promise<string[]>;
132
- /**
133
- * Resolves an agent ID or path and optionally auto-installs if needed
134
- * @param idOrPath - Agent ID from registry or filesystem path
135
- * @param autoInstall - Whether to auto-install from registry (default: true)
136
- * @param injectPreferences - Whether to inject preferences during install (default: true)
137
- * @returns Path to the agent config file
138
- */
139
- resolveAgent(idOrPath: string, autoInstall?: boolean, injectPreferences?: boolean): Promise<string>;
140
- }
141
- export {};
142
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/registry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKd,CAAC;AAEd,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAEvD,KAAK,WAAW,GAAG;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAsC/D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzD;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,YAAY,CACR,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,OAAO,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB"}