@dexto/core 1.1.9 → 1.1.11

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 (812) hide show
  1. package/dist/Dexto.cjs +261 -0
  2. package/dist/Dexto.d.ts +212 -0
  3. package/dist/Dexto.d.ts.map +1 -0
  4. package/dist/Dexto.js +236 -0
  5. package/dist/agent/DextoAgent.cjs +428 -123
  6. package/dist/agent/DextoAgent.d.ts +170 -102
  7. package/dist/agent/DextoAgent.d.ts.map +1 -0
  8. package/dist/agent/DextoAgent.js +428 -123
  9. package/dist/agent/agentCard.d.ts +4 -7
  10. package/dist/agent/agentCard.d.ts.map +1 -0
  11. package/dist/agent/error-codes.cjs +2 -0
  12. package/dist/agent/error-codes.d.ts +4 -3
  13. package/dist/agent/error-codes.d.ts.map +1 -0
  14. package/dist/agent/error-codes.js +2 -0
  15. package/dist/agent/errors.cjs +13 -0
  16. package/dist/agent/errors.d.ts +6 -17
  17. package/dist/agent/errors.d.ts.map +1 -0
  18. package/dist/agent/errors.js +13 -0
  19. package/dist/agent/index.cjs +3 -0
  20. package/dist/agent/index.d.ts +6 -57
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +2 -0
  23. package/dist/agent/registry/error-codes.cjs +2 -0
  24. package/dist/agent/registry/error-codes.d.ts +4 -3
  25. package/dist/agent/registry/error-codes.d.ts.map +1 -0
  26. package/dist/agent/registry/error-codes.js +2 -0
  27. package/dist/agent/registry/errors.cjs +58 -28
  28. package/dist/agent/registry/errors.d.ts +32 -36
  29. package/dist/agent/registry/errors.d.ts.map +1 -0
  30. package/dist/agent/registry/errors.js +58 -28
  31. package/dist/agent/registry/registry.cjs +242 -54
  32. package/dist/agent/registry/registry.d.ts +84 -21
  33. package/dist/agent/registry/registry.d.ts.map +1 -0
  34. package/dist/agent/registry/registry.js +251 -55
  35. package/dist/agent/registry/types.cjs +36 -3
  36. package/dist/agent/registry/types.d.ts +66 -24
  37. package/dist/agent/registry/types.d.ts.map +1 -0
  38. package/dist/agent/registry/types.js +33 -2
  39. package/dist/agent/registry/user-registry.cjs +140 -0
  40. package/dist/agent/registry/user-registry.d.ts +34 -0
  41. package/dist/agent/registry/user-registry.d.ts.map +1 -0
  42. package/dist/agent/registry/user-registry.js +104 -0
  43. package/dist/agent/schemas.cjs +17 -3
  44. package/dist/agent/schemas.d.ts +685 -463
  45. package/dist/agent/schemas.d.ts.map +1 -0
  46. package/dist/agent/schemas.js +17 -3
  47. package/dist/agent/state-manager.d.ts +7 -12
  48. package/dist/agent/state-manager.d.ts.map +1 -0
  49. package/dist/approval/error-codes.cjs +44 -0
  50. package/dist/approval/error-codes.d.ts +21 -0
  51. package/dist/approval/error-codes.d.ts.map +1 -0
  52. package/dist/approval/error-codes.js +20 -0
  53. package/dist/approval/errors.cjs +251 -0
  54. package/dist/approval/errors.d.ts +110 -0
  55. package/dist/approval/errors.d.ts.map +1 -0
  56. package/dist/approval/errors.js +227 -0
  57. package/dist/approval/index.cjs +84 -0
  58. package/dist/approval/index.d.ts +12 -0
  59. package/dist/approval/index.d.ts.map +1 -0
  60. package/dist/approval/index.js +55 -0
  61. package/dist/approval/manager.cjs +159 -0
  62. package/dist/approval/manager.d.ts +109 -0
  63. package/dist/approval/manager.d.ts.map +1 -0
  64. package/dist/approval/manager.js +135 -0
  65. package/dist/approval/providers/event-based-approval-provider.cjs +156 -0
  66. package/dist/approval/providers/event-based-approval-provider.d.ts +39 -0
  67. package/dist/approval/providers/event-based-approval-provider.d.ts.map +1 -0
  68. package/dist/approval/providers/event-based-approval-provider.js +132 -0
  69. package/dist/approval/providers/factory.cjs +38 -0
  70. package/dist/approval/providers/factory.d.ts +12 -0
  71. package/dist/approval/providers/factory.d.ts.map +1 -0
  72. package/dist/approval/providers/factory.js +14 -0
  73. package/dist/approval/providers/noop-approval-provider.cjs +54 -0
  74. package/dist/approval/providers/noop-approval-provider.d.ts +18 -0
  75. package/dist/approval/providers/noop-approval-provider.d.ts.map +1 -0
  76. package/dist/approval/providers/noop-approval-provider.js +30 -0
  77. package/dist/approval/schemas.cjs +168 -0
  78. package/dist/approval/schemas.d.ts +602 -0
  79. package/dist/approval/schemas.d.ts.map +1 -0
  80. package/dist/approval/schemas.js +126 -0
  81. package/dist/approval/types.cjs +41 -0
  82. package/dist/approval/types.d.ts +140 -0
  83. package/dist/approval/types.d.ts.map +1 -0
  84. package/dist/approval/types.js +16 -0
  85. package/dist/config/agent-resolver.d.ts +3 -4
  86. package/dist/config/agent-resolver.d.ts.map +1 -0
  87. package/dist/config/error-codes.d.ts +2 -3
  88. package/dist/config/error-codes.d.ts.map +1 -0
  89. package/dist/config/errors.d.ts +3 -18
  90. package/dist/config/errors.d.ts.map +1 -0
  91. package/dist/config/index.d.ts +4 -7
  92. package/dist/config/index.d.ts.map +1 -0
  93. package/dist/config/loader.d.ts +2 -5
  94. package/dist/config/loader.d.ts.map +1 -0
  95. package/dist/config/writer.d.ts +8 -11
  96. package/dist/config/writer.d.ts.map +1 -0
  97. package/dist/context/compression/middle-removal.d.ts +3 -6
  98. package/dist/context/compression/middle-removal.d.ts.map +1 -0
  99. package/dist/context/compression/oldest-removal.d.ts +3 -6
  100. package/dist/context/compression/oldest-removal.d.ts.map +1 -0
  101. package/dist/context/compression/types.d.ts +2 -5
  102. package/dist/context/compression/types.d.ts.map +1 -0
  103. package/dist/context/error-codes.d.ts +2 -3
  104. package/dist/context/error-codes.d.ts.map +1 -0
  105. package/dist/context/errors.d.ts +3 -18
  106. package/dist/context/errors.d.ts.map +1 -0
  107. package/dist/context/index.cjs +11 -0
  108. package/dist/context/index.d.ts +4 -19
  109. package/dist/context/index.d.ts.map +1 -0
  110. package/dist/context/index.js +5 -0
  111. package/dist/context/manager.cjs +121 -24
  112. package/dist/context/manager.d.ts +28 -20
  113. package/dist/context/manager.d.ts.map +1 -0
  114. package/dist/context/manager.js +127 -25
  115. package/dist/context/media-helpers.cjs +40 -0
  116. package/dist/context/media-helpers.d.ts +15 -0
  117. package/dist/context/media-helpers.d.ts.map +1 -0
  118. package/dist/context/media-helpers.js +15 -0
  119. package/dist/context/types.d.ts +27 -10
  120. package/dist/context/types.d.ts.map +1 -0
  121. package/dist/context/utils.cjs +811 -71
  122. package/dist/context/utils.d.ts +78 -15
  123. package/dist/context/utils.d.ts.map +1 -0
  124. package/dist/context/utils.js +802 -70
  125. package/dist/errors/DextoBaseError.d.ts +2 -3
  126. package/dist/errors/DextoBaseError.d.ts.map +1 -0
  127. package/dist/errors/DextoRuntimeError.d.ts +5 -16
  128. package/dist/errors/DextoRuntimeError.d.ts.map +1 -0
  129. package/dist/errors/DextoValidationError.d.ts +3 -16
  130. package/dist/errors/DextoValidationError.d.ts.map +1 -0
  131. package/dist/errors/index.d.ts +7 -14
  132. package/dist/errors/index.d.ts.map +1 -0
  133. package/dist/errors/result-bridge.d.ts +3 -18
  134. package/dist/errors/result-bridge.d.ts.map +1 -0
  135. package/dist/errors/types.cjs +4 -0
  136. package/dist/errors/types.d.ts +27 -20
  137. package/dist/errors/types.d.ts.map +1 -0
  138. package/dist/errors/types.js +4 -0
  139. package/dist/events/index.cjs +8 -3
  140. package/dist/events/index.d.ts +63 -35
  141. package/dist/events/index.d.ts.map +1 -0
  142. package/dist/events/index.js +8 -3
  143. package/dist/index.browser.cjs +36 -0
  144. package/dist/index.browser.d.ts +24 -51
  145. package/dist/index.browser.d.ts.map +1 -0
  146. package/dist/index.browser.js +34 -1
  147. package/dist/index.cjs +29 -1
  148. package/dist/index.d.ts +33 -89
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +14 -0
  151. package/dist/llm/error-codes.d.ts +2 -3
  152. package/dist/llm/error-codes.d.ts.map +1 -0
  153. package/dist/llm/errors.d.ts +3 -18
  154. package/dist/llm/errors.d.ts.map +1 -0
  155. package/dist/llm/formatters/anthropic.d.ts +2 -4
  156. package/dist/llm/formatters/anthropic.d.ts.map +1 -0
  157. package/dist/llm/formatters/factory.d.ts +3 -6
  158. package/dist/llm/formatters/factory.d.ts.map +1 -0
  159. package/dist/llm/formatters/openai.d.ts +2 -4
  160. package/dist/llm/formatters/openai.d.ts.map +1 -0
  161. package/dist/llm/formatters/types.d.ts +2 -4
  162. package/dist/llm/formatters/types.d.ts.map +1 -0
  163. package/dist/llm/formatters/vercel.d.ts +6 -7
  164. package/dist/llm/formatters/vercel.d.ts.map +1 -0
  165. package/dist/llm/index.d.ts +8 -39
  166. package/dist/llm/index.d.ts.map +1 -0
  167. package/dist/llm/registry.cjs +15 -1
  168. package/dist/llm/registry.d.ts +26 -29
  169. package/dist/llm/registry.d.ts.map +1 -0
  170. package/dist/llm/registry.js +15 -1
  171. package/dist/llm/resolver.d.ts +6 -20
  172. package/dist/llm/resolver.d.ts.map +1 -0
  173. package/dist/llm/schemas.d.ts +15 -17
  174. package/dist/llm/schemas.d.ts.map +1 -0
  175. package/dist/llm/services/anthropic.cjs +24 -11
  176. package/dist/llm/services/anthropic.d.ts +7 -32
  177. package/dist/llm/services/anthropic.d.ts.map +1 -0
  178. package/dist/llm/services/anthropic.js +24 -11
  179. package/dist/llm/services/factory.cjs +21 -15
  180. package/dist/llm/services/factory.d.ts +5 -32
  181. package/dist/llm/services/factory.d.ts.map +1 -0
  182. package/dist/llm/services/factory.js +21 -15
  183. package/dist/llm/services/index.d.ts +2 -21
  184. package/dist/llm/services/index.d.ts.map +1 -0
  185. package/dist/llm/services/openai.cjs +33 -16
  186. package/dist/llm/services/openai.d.ts +7 -32
  187. package/dist/llm/services/openai.d.ts.map +1 -0
  188. package/dist/llm/services/openai.js +33 -16
  189. package/dist/llm/services/test-utils.integration.cjs +2 -2
  190. package/dist/llm/services/test-utils.integration.d.ts +8 -49
  191. package/dist/llm/services/test-utils.integration.d.ts.map +1 -0
  192. package/dist/llm/services/test-utils.integration.js +2 -2
  193. package/dist/llm/services/types.d.ts +5 -22
  194. package/dist/llm/services/types.d.ts.map +1 -0
  195. package/dist/llm/services/vercel.cjs +52 -21
  196. package/dist/llm/services/vercel.d.ts +12 -35
  197. package/dist/llm/services/vercel.d.ts.map +1 -0
  198. package/dist/llm/services/vercel.js +53 -22
  199. package/dist/llm/tokenizer/anthropic.d.ts +2 -4
  200. package/dist/llm/tokenizer/anthropic.d.ts.map +1 -0
  201. package/dist/llm/tokenizer/default.d.ts +2 -4
  202. package/dist/llm/tokenizer/default.d.ts.map +1 -0
  203. package/dist/llm/tokenizer/factory.d.ts +3 -5
  204. package/dist/llm/tokenizer/factory.d.ts.map +1 -0
  205. package/dist/llm/tokenizer/google.d.ts +2 -4
  206. package/dist/llm/tokenizer/google.d.ts.map +1 -0
  207. package/dist/llm/tokenizer/openai.d.ts +2 -4
  208. package/dist/llm/tokenizer/openai.d.ts.map +1 -0
  209. package/dist/llm/tokenizer/types.d.ts +3 -4
  210. package/dist/llm/tokenizer/types.d.ts.map +1 -0
  211. package/dist/llm/types.d.ts +9 -10
  212. package/dist/llm/types.d.ts.map +1 -0
  213. package/dist/llm/validation.d.ts +8 -23
  214. package/dist/llm/validation.d.ts.map +1 -0
  215. package/dist/logger/browser.d.ts +4 -5
  216. package/dist/logger/browser.d.ts.map +1 -0
  217. package/dist/logger/index.d.ts +2 -1
  218. package/dist/logger/index.d.ts.map +1 -0
  219. package/dist/logger/logger.cjs +35 -7
  220. package/dist/logger/logger.d.ts +5 -5
  221. package/dist/logger/logger.d.ts.map +1 -0
  222. package/dist/logger/logger.js +35 -7
  223. package/dist/mcp/error-codes.d.ts +2 -3
  224. package/dist/mcp/error-codes.d.ts.map +1 -0
  225. package/dist/mcp/errors.d.ts +2 -17
  226. package/dist/mcp/errors.d.ts.map +1 -0
  227. package/dist/mcp/index.d.ts +8 -26
  228. package/dist/mcp/index.d.ts.map +1 -0
  229. package/dist/mcp/manager.cjs +462 -114
  230. package/dist/mcp/manager.d.ts +117 -58
  231. package/dist/mcp/manager.d.ts.map +1 -0
  232. package/dist/mcp/manager.js +462 -114
  233. package/dist/mcp/mcp-client.cjs +172 -10
  234. package/dist/mcp/mcp-client.d.ts +36 -14
  235. package/dist/mcp/mcp-client.d.ts.map +1 -0
  236. package/dist/mcp/mcp-client.js +176 -10
  237. package/dist/mcp/resolver.d.ts +5 -20
  238. package/dist/mcp/resolver.d.ts.map +1 -0
  239. package/dist/mcp/schemas.cjs +13 -5
  240. package/dist/mcp/schemas.d.ts +31 -28
  241. package/dist/mcp/schemas.d.ts.map +1 -0
  242. package/dist/mcp/schemas.js +10 -5
  243. package/dist/mcp/types.d.ts +18 -10
  244. package/dist/mcp/types.d.ts.map +1 -0
  245. package/dist/memory/error-codes.cjs +39 -0
  246. package/dist/memory/error-codes.d.ts +15 -0
  247. package/dist/memory/error-codes.d.ts.map +1 -0
  248. package/dist/memory/error-codes.js +15 -0
  249. package/dist/memory/errors.cjs +112 -0
  250. package/dist/memory/errors.d.ts +16 -0
  251. package/dist/memory/errors.d.ts.map +1 -0
  252. package/dist/memory/errors.js +88 -0
  253. package/dist/memory/index.cjs +43 -0
  254. package/dist/memory/index.d.ts +6 -0
  255. package/dist/memory/index.d.ts.map +1 -0
  256. package/dist/memory/index.js +18 -0
  257. package/dist/memory/manager.cjs +214 -0
  258. package/dist/memory/manager.d.ts +56 -0
  259. package/dist/memory/manager.d.ts.map +1 -0
  260. package/dist/memory/manager.js +195 -0
  261. package/dist/memory/schemas.cjs +82 -0
  262. package/dist/memory/schemas.d.ts +129 -0
  263. package/dist/memory/schemas.d.ts.map +1 -0
  264. package/dist/memory/schemas.js +53 -0
  265. package/dist/memory/types.d.ts +76 -0
  266. package/dist/memory/types.d.ts.map +1 -0
  267. package/dist/plugins/builtins/content-policy.cjs +112 -0
  268. package/dist/plugins/builtins/content-policy.d.ts +26 -0
  269. package/dist/plugins/builtins/content-policy.d.ts.map +1 -0
  270. package/dist/plugins/builtins/content-policy.js +88 -0
  271. package/dist/plugins/builtins/response-sanitizer.cjs +102 -0
  272. package/dist/plugins/builtins/response-sanitizer.d.ts +25 -0
  273. package/dist/plugins/builtins/response-sanitizer.d.ts.map +1 -0
  274. package/dist/plugins/builtins/response-sanitizer.js +78 -0
  275. package/dist/plugins/error-codes.cjs +39 -0
  276. package/dist/plugins/error-codes.d.ts +26 -0
  277. package/dist/plugins/error-codes.d.ts.map +1 -0
  278. package/dist/plugins/error-codes.js +15 -0
  279. package/dist/plugins/index.cjs +54 -0
  280. package/dist/plugins/index.d.ts +19 -0
  281. package/dist/plugins/index.d.ts.map +1 -0
  282. package/dist/plugins/index.js +24 -0
  283. package/dist/plugins/loader.cjs +151 -0
  284. package/dist/plugins/loader.d.ts +30 -0
  285. package/dist/plugins/loader.d.ts.map +1 -0
  286. package/dist/plugins/loader.js +124 -0
  287. package/dist/plugins/manager.cjs +386 -0
  288. package/dist/plugins/manager.d.ts +97 -0
  289. package/dist/plugins/manager.d.ts.map +1 -0
  290. package/dist/plugins/manager.js +362 -0
  291. package/dist/plugins/registrations/builtins.cjs +51 -0
  292. package/dist/plugins/registrations/builtins.d.ts +17 -0
  293. package/dist/plugins/registrations/builtins.d.ts.map +1 -0
  294. package/dist/plugins/registrations/builtins.js +27 -0
  295. package/dist/plugins/schemas.cjs +61 -0
  296. package/dist/plugins/schemas.d.ts +138 -0
  297. package/dist/plugins/schemas.d.ts.map +1 -0
  298. package/dist/plugins/schemas.js +35 -0
  299. package/dist/plugins/types.d.ts +152 -0
  300. package/dist/plugins/types.d.ts.map +1 -0
  301. package/dist/preferences/constants.d.ts +2 -3
  302. package/dist/preferences/constants.d.ts.map +1 -0
  303. package/dist/preferences/error-codes.d.ts +2 -3
  304. package/dist/preferences/error-codes.d.ts.map +1 -0
  305. package/dist/preferences/errors.d.ts +4 -19
  306. package/dist/preferences/errors.d.ts.map +1 -0
  307. package/dist/preferences/index.d.ts +5 -20
  308. package/dist/preferences/index.d.ts.map +1 -0
  309. package/dist/preferences/loader.d.ts +9 -12
  310. package/dist/preferences/loader.d.ts.map +1 -0
  311. package/dist/preferences/schemas.d.ts +19 -21
  312. package/dist/preferences/schemas.d.ts.map +1 -0
  313. package/dist/prompts/error-codes.cjs +38 -0
  314. package/dist/prompts/error-codes.d.ts +15 -0
  315. package/dist/prompts/error-codes.d.ts.map +1 -0
  316. package/dist/prompts/error-codes.js +14 -0
  317. package/dist/prompts/errors.cjs +144 -0
  318. package/dist/prompts/errors.d.ts +45 -0
  319. package/dist/prompts/errors.d.ts.map +1 -0
  320. package/dist/prompts/errors.js +120 -0
  321. package/dist/prompts/index.cjs +53 -0
  322. package/dist/prompts/index.d.ts +13 -0
  323. package/dist/prompts/index.d.ts.map +1 -0
  324. package/dist/prompts/index.js +20 -0
  325. package/dist/prompts/name-validation.cjs +45 -0
  326. package/dist/prompts/name-validation.d.ts +9 -0
  327. package/dist/prompts/name-validation.d.ts.map +1 -0
  328. package/dist/prompts/name-validation.js +18 -0
  329. package/dist/prompts/prompt-manager.cjs +374 -0
  330. package/dist/prompts/prompt-manager.d.ts +74 -0
  331. package/dist/prompts/prompt-manager.d.ts.map +1 -0
  332. package/dist/prompts/prompt-manager.js +352 -0
  333. package/dist/prompts/providers/custom-prompt-provider.cjs +283 -0
  334. package/dist/prompts/providers/custom-prompt-provider.d.ts +36 -0
  335. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -0
  336. package/dist/prompts/providers/custom-prompt-provider.js +259 -0
  337. package/dist/prompts/providers/file-prompt-provider.cjs +399 -0
  338. package/dist/prompts/providers/file-prompt-provider.d.ts +47 -0
  339. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -0
  340. package/dist/prompts/providers/file-prompt-provider.js +375 -0
  341. package/dist/prompts/providers/mcp-prompt-provider.cjs +102 -0
  342. package/dist/prompts/providers/mcp-prompt-provider.d.ts +35 -0
  343. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -0
  344. package/dist/prompts/providers/mcp-prompt-provider.js +78 -0
  345. package/dist/prompts/providers/starter-prompt-provider.cjs +170 -0
  346. package/dist/prompts/providers/starter-prompt-provider.d.ts +45 -0
  347. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -0
  348. package/dist/prompts/providers/starter-prompt-provider.js +146 -0
  349. package/dist/prompts/schemas.cjs +54 -0
  350. package/dist/prompts/schemas.d.ts +65 -0
  351. package/dist/prompts/schemas.d.ts.map +1 -0
  352. package/dist/prompts/schemas.js +30 -0
  353. package/dist/{storage/backend/cache-backend.cjs → prompts/types.cjs} +2 -2
  354. package/dist/prompts/types.d.ts +64 -0
  355. package/dist/prompts/types.d.ts.map +1 -0
  356. package/dist/prompts/utils.cjs +176 -0
  357. package/dist/prompts/utils.d.ts +32 -0
  358. package/dist/prompts/utils.d.ts.map +1 -0
  359. package/dist/prompts/utils.js +149 -0
  360. package/dist/resources/error-codes.cjs +38 -0
  361. package/dist/resources/error-codes.d.ts +13 -0
  362. package/dist/resources/error-codes.d.ts.map +1 -0
  363. package/dist/resources/error-codes.js +14 -0
  364. package/dist/resources/errors.cjs +155 -0
  365. package/dist/resources/errors.d.ts +48 -0
  366. package/dist/resources/errors.d.ts.map +1 -0
  367. package/dist/resources/errors.js +131 -0
  368. package/dist/resources/handlers/blob-handler.cjs +230 -0
  369. package/dist/resources/handlers/blob-handler.d.ts +38 -0
  370. package/dist/resources/handlers/blob-handler.d.ts.map +1 -0
  371. package/dist/resources/handlers/blob-handler.js +206 -0
  372. package/dist/resources/handlers/factory.cjs +50 -0
  373. package/dist/resources/handlers/factory.d.ts +11 -0
  374. package/dist/resources/handlers/factory.d.ts.map +1 -0
  375. package/dist/resources/handlers/factory.js +25 -0
  376. package/dist/resources/handlers/filesystem-handler.cjs +385 -0
  377. package/dist/resources/handlers/filesystem-handler.d.ts +35 -0
  378. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -0
  379. package/dist/resources/handlers/filesystem-handler.js +351 -0
  380. package/dist/{storage/backend/database-backend.cjs → resources/handlers/types.cjs} +2 -2
  381. package/dist/resources/handlers/types.d.ts +15 -0
  382. package/dist/resources/handlers/types.d.ts.map +1 -0
  383. package/dist/resources/index.cjs +58 -0
  384. package/dist/resources/index.d.ts +39 -0
  385. package/dist/resources/index.d.ts.map +1 -0
  386. package/dist/resources/index.js +34 -0
  387. package/dist/resources/internal-provider.cjs +141 -0
  388. package/dist/resources/internal-provider.d.ts +19 -0
  389. package/dist/resources/internal-provider.d.ts.map +1 -0
  390. package/dist/resources/internal-provider.js +117 -0
  391. package/dist/resources/manager.cjs +221 -0
  392. package/dist/resources/manager.d.ts +29 -0
  393. package/dist/resources/manager.d.ts.map +1 -0
  394. package/dist/resources/manager.js +197 -0
  395. package/dist/resources/reference-parser.cjs +217 -0
  396. package/dist/resources/reference-parser.d.ts +33 -0
  397. package/dist/resources/reference-parser.d.ts.map +1 -0
  398. package/dist/resources/reference-parser.js +190 -0
  399. package/dist/resources/schemas.cjs +98 -0
  400. package/dist/resources/schemas.d.ts +212 -0
  401. package/dist/resources/schemas.d.ts.map +1 -0
  402. package/dist/resources/schemas.js +72 -0
  403. package/dist/resources/types.cjs +16 -0
  404. package/dist/resources/types.d.ts +57 -0
  405. package/dist/resources/types.d.ts.map +1 -0
  406. package/dist/resources/types.js +0 -0
  407. package/dist/search/index.d.ts +2 -4
  408. package/dist/search/index.d.ts.map +1 -0
  409. package/dist/search/search-service.d.ts +5 -9
  410. package/dist/search/search-service.d.ts.map +1 -0
  411. package/dist/search/types.d.ts +7 -10
  412. package/dist/search/types.d.ts.map +1 -0
  413. package/dist/session/chat-session.cjs +103 -10
  414. package/dist/session/chat-session.d.ts +30 -41
  415. package/dist/session/chat-session.d.ts.map +1 -0
  416. package/dist/session/chat-session.js +103 -10
  417. package/dist/session/error-codes.d.ts +2 -3
  418. package/dist/session/error-codes.d.ts.map +1 -0
  419. package/dist/session/errors.d.ts +2 -17
  420. package/dist/session/errors.d.ts.map +1 -0
  421. package/dist/session/history/database.d.ts +6 -9
  422. package/dist/session/history/database.d.ts.map +1 -0
  423. package/dist/session/history/factory.d.ts +4 -8
  424. package/dist/session/history/factory.d.ts.map +1 -0
  425. package/dist/session/history/memory.cjs +39 -0
  426. package/dist/session/history/memory.d.ts +14 -0
  427. package/dist/session/history/memory.d.ts.map +1 -0
  428. package/dist/session/history/memory.js +15 -0
  429. package/dist/session/history/types.d.ts +3 -6
  430. package/dist/session/history/types.d.ts.map +1 -0
  431. package/dist/session/index.d.ts +3 -50
  432. package/dist/session/index.d.ts.map +1 -0
  433. package/dist/session/schemas.d.ts +4 -6
  434. package/dist/session/schemas.d.ts.map +1 -0
  435. package/dist/session/session-manager.cjs +63 -29
  436. package/dist/session/session-manager.d.ts +27 -43
  437. package/dist/session/session-manager.d.ts.map +1 -0
  438. package/dist/session/session-manager.js +63 -29
  439. package/dist/session/title-generator.cjs +140 -0
  440. package/dist/session/title-generator.d.ts +22 -0
  441. package/dist/session/title-generator.d.ts.map +1 -0
  442. package/dist/session/title-generator.js +115 -0
  443. package/dist/storage/blob/factory.cjs +50 -0
  444. package/dist/storage/blob/factory.d.ts +8 -0
  445. package/dist/storage/blob/factory.d.ts.map +1 -0
  446. package/dist/storage/blob/factory.js +26 -0
  447. package/dist/storage/blob/local-blob-store.cjs +487 -0
  448. package/dist/storage/blob/local-blob-store.d.ts +56 -0
  449. package/dist/storage/blob/local-blob-store.d.ts.map +1 -0
  450. package/dist/storage/blob/local-blob-store.js +453 -0
  451. package/dist/storage/blob/schemas.cjs +53 -0
  452. package/dist/storage/blob/schemas.d.ts +80 -0
  453. package/dist/storage/blob/schemas.d.ts.map +1 -0
  454. package/dist/storage/blob/schemas.js +28 -0
  455. package/dist/storage/blob/types.cjs +16 -0
  456. package/dist/storage/blob/types.d.ts +154 -0
  457. package/dist/storage/blob/types.d.ts.map +1 -0
  458. package/dist/storage/blob/types.js +0 -0
  459. package/dist/storage/cache/factory.cjs +63 -0
  460. package/dist/storage/cache/factory.d.ts +8 -0
  461. package/dist/storage/cache/factory.d.ts.map +1 -0
  462. package/dist/storage/cache/factory.js +29 -0
  463. package/dist/storage/cache/memory-cache-store.cjs +107 -0
  464. package/dist/storage/cache/memory-cache-store.d.ts +26 -0
  465. package/dist/storage/cache/memory-cache-store.d.ts.map +1 -0
  466. package/dist/storage/cache/memory-cache-store.js +83 -0
  467. package/dist/storage/{backend/redis-backend.cjs → cache/redis-store.cjs} +8 -22
  468. package/dist/storage/{backend/redis-backend.d.ts → cache/redis-store.d.ts} +8 -14
  469. package/dist/storage/cache/redis-store.d.ts.map +1 -0
  470. package/dist/storage/{backend/redis-backend.js → cache/redis-store.js} +4 -18
  471. package/dist/storage/cache/schemas.cjs +77 -0
  472. package/dist/storage/cache/schemas.d.ts +151 -0
  473. package/dist/storage/cache/schemas.d.ts.map +1 -0
  474. package/dist/storage/cache/schemas.js +52 -0
  475. package/dist/storage/cache/types.cjs +16 -0
  476. package/dist/storage/{backend/cache-backend.d.cts → cache/types.d.ts} +3 -4
  477. package/dist/storage/cache/types.d.ts.map +1 -0
  478. package/dist/storage/cache/types.js +0 -0
  479. package/dist/storage/database/factory.cjs +84 -0
  480. package/dist/storage/database/factory.d.ts +8 -0
  481. package/dist/storage/database/factory.d.ts.map +1 -0
  482. package/dist/storage/database/factory.js +50 -0
  483. package/dist/storage/{backend/memory-backend.cjs → database/memory-database-store.cjs} +10 -28
  484. package/dist/storage/{backend/memory-backend.d.ts → database/memory-database-store.d.ts} +7 -12
  485. package/dist/storage/database/memory-database-store.d.ts.map +1 -0
  486. package/dist/storage/{backend/memory-backend.js → database/memory-database-store.js} +6 -24
  487. package/dist/storage/{backend/postgres-backend.cjs → database/postgres-store.cjs} +11 -11
  488. package/dist/storage/{backend/postgres-backend.d.ts → database/postgres-store.d.ts} +8 -11
  489. package/dist/storage/database/postgres-store.d.ts.map +1 -0
  490. package/dist/storage/{backend/postgres-backend.js → database/postgres-store.js} +7 -7
  491. package/dist/storage/database/schemas.cjs +89 -0
  492. package/dist/storage/database/schemas.d.ts +227 -0
  493. package/dist/storage/database/schemas.d.ts.map +1 -0
  494. package/dist/storage/database/schemas.js +64 -0
  495. package/dist/storage/{backend/sqlite-backend.cjs → database/sqlite-store.cjs} +15 -14
  496. package/dist/storage/{backend/sqlite-backend.d.ts → database/sqlite-store.d.ts} +8 -11
  497. package/dist/storage/database/sqlite-store.d.ts.map +1 -0
  498. package/dist/storage/{backend/sqlite-backend.js → database/sqlite-store.js} +11 -10
  499. package/dist/storage/database/types.cjs +16 -0
  500. package/dist/storage/{backend/database-backend.d.cts → database/types.d.ts} +3 -4
  501. package/dist/storage/database/types.d.ts.map +1 -0
  502. package/dist/storage/database/types.js +0 -0
  503. package/dist/storage/error-codes.cjs +15 -0
  504. package/dist/storage/error-codes.d.ts +19 -5
  505. package/dist/storage/error-codes.d.ts.map +1 -0
  506. package/dist/storage/error-codes.js +15 -0
  507. package/dist/storage/errors.cjs +195 -7
  508. package/dist/storage/errors.d.ts +71 -19
  509. package/dist/storage/errors.d.ts.map +1 -0
  510. package/dist/storage/errors.js +189 -1
  511. package/dist/storage/index.cjs +24 -5
  512. package/dist/storage/index.d.ts +48 -7
  513. package/dist/storage/index.d.ts.map +1 -0
  514. package/dist/storage/index.js +20 -4
  515. package/dist/storage/schemas.cjs +22 -84
  516. package/dist/storage/schemas.d.ts +98 -574
  517. package/dist/storage/schemas.d.ts.map +1 -0
  518. package/dist/storage/schemas.js +25 -84
  519. package/dist/storage/storage-manager.cjs +131 -116
  520. package/dist/storage/storage-manager.d.ts +51 -25
  521. package/dist/storage/storage-manager.d.ts.map +1 -0
  522. package/dist/storage/storage-manager.js +130 -105
  523. package/dist/storage/types.d.ts +7 -5
  524. package/dist/storage/types.d.ts.map +1 -0
  525. package/dist/systemPrompt/contributors.cjs +54 -0
  526. package/dist/systemPrompt/contributors.d.ts +30 -15
  527. package/dist/systemPrompt/contributors.d.ts.map +1 -0
  528. package/dist/systemPrompt/contributors.js +53 -0
  529. package/dist/systemPrompt/error-codes.d.ts +2 -3
  530. package/dist/systemPrompt/error-codes.d.ts.map +1 -0
  531. package/dist/systemPrompt/errors.d.ts +2 -17
  532. package/dist/systemPrompt/errors.d.ts.map +1 -0
  533. package/dist/systemPrompt/in-built-prompts.cjs +13 -15
  534. package/dist/systemPrompt/in-built-prompts.d.ts +4 -14
  535. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -0
  536. package/dist/systemPrompt/in-built-prompts.js +13 -15
  537. package/dist/systemPrompt/index.cjs +11 -0
  538. package/dist/systemPrompt/index.d.ts +7 -14
  539. package/dist/systemPrompt/index.d.ts.map +1 -0
  540. package/dist/systemPrompt/index.js +8 -0
  541. package/dist/systemPrompt/manager.cjs +24 -6
  542. package/dist/systemPrompt/manager.d.ts +8 -16
  543. package/dist/systemPrompt/manager.d.ts.map +1 -0
  544. package/dist/systemPrompt/manager.js +24 -6
  545. package/dist/systemPrompt/registry.d.ts +6 -16
  546. package/dist/systemPrompt/registry.d.ts.map +1 -0
  547. package/dist/systemPrompt/schemas.cjs +17 -3
  548. package/dist/systemPrompt/schemas.d.ts +204 -30
  549. package/dist/systemPrompt/schemas.d.ts.map +1 -0
  550. package/dist/systemPrompt/schemas.js +17 -3
  551. package/dist/systemPrompt/types.d.ts +3 -12
  552. package/dist/systemPrompt/types.d.ts.map +1 -0
  553. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +1 -1
  554. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +6 -12
  555. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -0
  556. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  557. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +3 -5
  558. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -0
  559. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +9 -9
  560. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +7 -13
  561. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -0
  562. package/dist/tools/confirmation/allowed-tools-provider/storage.js +9 -9
  563. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -3
  564. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -0
  565. package/dist/tools/error-codes.d.ts +2 -3
  566. package/dist/tools/error-codes.d.ts.map +1 -0
  567. package/dist/tools/errors.d.ts +2 -17
  568. package/dist/tools/errors.d.ts.map +1 -0
  569. package/dist/tools/index.cjs +0 -2
  570. package/dist/tools/index.d.ts +11 -19
  571. package/dist/tools/index.d.ts.map +1 -0
  572. package/dist/tools/index.js +0 -1
  573. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +57 -0
  574. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +18 -0
  575. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +1 -0
  576. package/dist/tools/internal-tools/implementations/ask-user-tool.js +33 -0
  577. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +3 -11
  578. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +1 -0
  579. package/dist/tools/internal-tools/index.d.ts +3 -13
  580. package/dist/tools/internal-tools/index.d.ts.map +1 -0
  581. package/dist/tools/internal-tools/provider.cjs +9 -11
  582. package/dist/tools/internal-tools/provider.d.ts +6 -20
  583. package/dist/tools/internal-tools/provider.d.ts.map +1 -0
  584. package/dist/tools/internal-tools/provider.js +9 -11
  585. package/dist/tools/internal-tools/registry.cjs +6 -1
  586. package/dist/tools/internal-tools/registry.d.ts +10 -15
  587. package/dist/tools/internal-tools/registry.d.ts.map +1 -0
  588. package/dist/tools/internal-tools/registry.js +6 -1
  589. package/dist/tools/schemas.cjs +14 -2
  590. package/dist/tools/schemas.d.ts +12 -8
  591. package/dist/tools/schemas.d.ts.map +1 -0
  592. package/dist/tools/schemas.js +10 -2
  593. package/dist/tools/tool-manager.cjs +174 -14
  594. package/dist/tools/tool-manager.d.ts +48 -22
  595. package/dist/tools/tool-manager.d.ts.map +1 -0
  596. package/dist/tools/tool-manager.js +174 -14
  597. package/dist/tools/types.d.ts +9 -11
  598. package/dist/tools/types.d.ts.map +1 -0
  599. package/dist/utils/api-key-resolver.d.ts +5 -7
  600. package/dist/utils/api-key-resolver.d.ts.map +1 -0
  601. package/dist/utils/api-key-store.d.ts +5 -7
  602. package/dist/utils/api-key-store.d.ts.map +1 -0
  603. package/dist/utils/async-context.cjs +51 -0
  604. package/dist/utils/async-context.d.ts +68 -0
  605. package/dist/utils/async-context.d.ts.map +1 -0
  606. package/dist/utils/async-context.js +24 -0
  607. package/dist/utils/debug.cjs +40 -0
  608. package/dist/utils/debug.d.ts +2 -0
  609. package/dist/utils/debug.d.ts.map +1 -0
  610. package/dist/utils/debug.js +16 -0
  611. package/dist/utils/env.d.ts +4 -5
  612. package/dist/utils/env.d.ts.map +1 -0
  613. package/dist/utils/error-conversion.d.ts +2 -3
  614. package/dist/utils/error-conversion.d.ts.map +1 -0
  615. package/dist/utils/execution-context.d.ts +5 -6
  616. package/dist/utils/execution-context.d.ts.map +1 -0
  617. package/dist/utils/fs-walk.d.ts +2 -3
  618. package/dist/utils/fs-walk.d.ts.map +1 -0
  619. package/dist/utils/index.cjs +3 -1
  620. package/dist/utils/index.d.ts +14 -63
  621. package/dist/utils/index.d.ts.map +1 -0
  622. package/dist/utils/index.js +1 -0
  623. package/dist/utils/path.d.ts +9 -10
  624. package/dist/utils/path.d.ts.map +1 -0
  625. package/dist/utils/port-utils.d.ts +2 -3
  626. package/dist/utils/port-utils.d.ts.map +1 -0
  627. package/dist/utils/redactor.d.ts +2 -3
  628. package/dist/utils/redactor.d.ts.map +1 -0
  629. package/dist/utils/result.d.ts +14 -27
  630. package/dist/utils/result.d.ts.map +1 -0
  631. package/dist/utils/safe-stringify.d.ts +2 -3
  632. package/dist/utils/safe-stringify.d.ts.map +1 -0
  633. package/dist/utils/schema-metadata.cjs +235 -0
  634. package/dist/utils/schema-metadata.d.ts +82 -0
  635. package/dist/utils/schema-metadata.d.ts.map +1 -0
  636. package/dist/utils/schema-metadata.js +207 -0
  637. package/dist/utils/schema.d.ts +2 -3
  638. package/dist/utils/schema.d.ts.map +1 -0
  639. package/dist/utils/service-initializer.cjs +71 -34
  640. package/dist/utils/service-initializer.d.ts +18 -43
  641. package/dist/utils/service-initializer.d.ts.map +1 -0
  642. package/dist/utils/service-initializer.js +71 -34
  643. package/dist/utils/user-info.d.ts +2 -3
  644. package/dist/utils/user-info.d.ts.map +1 -0
  645. package/dist/utils/zod-schema-converter.d.ts +3 -5
  646. package/dist/utils/zod-schema-converter.d.ts.map +1 -0
  647. package/package.json +6 -4
  648. package/dist/agent/DextoAgent.d.cts +0 -541
  649. package/dist/agent/agentCard.d.cts +0 -20
  650. package/dist/agent/error-codes.d.cts +0 -14
  651. package/dist/agent/errors.d.cts +0 -44
  652. package/dist/agent/index.d.cts +0 -60
  653. package/dist/agent/registry/error-codes.d.cts +0 -20
  654. package/dist/agent/registry/errors.d.cts +0 -67
  655. package/dist/agent/registry/registry.d.cts +0 -67
  656. package/dist/agent/registry/types.d.cts +0 -100
  657. package/dist/agent/schemas.d.cts +0 -1502
  658. package/dist/agent/state-manager.d.cts +0 -97
  659. package/dist/config/agent-resolver.d.cts +0 -15
  660. package/dist/config/error-codes.d.cts +0 -17
  661. package/dist/config/errors.d.cts +0 -49
  662. package/dist/config/index.d.cts +0 -7
  663. package/dist/config/loader.d.cts +0 -19
  664. package/dist/config/writer.d.cts +0 -38
  665. package/dist/context/compression/middle-removal.d.cts +0 -48
  666. package/dist/context/compression/oldest-removal.d.cts +0 -43
  667. package/dist/context/compression/types.d.cts +0 -21
  668. package/dist/context/error-codes.d.cts +0 -19
  669. package/dist/context/errors.d.cts +0 -36
  670. package/dist/context/index.d.cts +0 -19
  671. package/dist/context/manager.d.cts +0 -254
  672. package/dist/context/types.d.cts +0 -113
  673. package/dist/context/utils.d.cts +0 -79
  674. package/dist/errors/DextoBaseError.d.cts +0 -15
  675. package/dist/errors/DextoRuntimeError.d.cts +0 -37
  676. package/dist/errors/DextoValidationError.d.cts +0 -65
  677. package/dist/errors/index.d.cts +0 -18
  678. package/dist/errors/result-bridge.d.cts +0 -39
  679. package/dist/errors/types.d.cts +0 -62
  680. package/dist/events/index.d.cts +0 -272
  681. package/dist/index.browser.d.cts +0 -53
  682. package/dist/index.d.cts +0 -89
  683. package/dist/llm/error-codes.d.cts +0 -26
  684. package/dist/llm/errors.d.cts +0 -58
  685. package/dist/llm/formatters/anthropic.d.cts +0 -45
  686. package/dist/llm/formatters/factory.d.cts +0 -12
  687. package/dist/llm/formatters/openai.d.cts +0 -38
  688. package/dist/llm/formatters/types.d.cts +0 -43
  689. package/dist/llm/formatters/vercel.d.cts +0 -48
  690. package/dist/llm/index.d.cts +0 -39
  691. package/dist/llm/registry.d.cts +0 -176
  692. package/dist/llm/resolver.d.cts +0 -34
  693. package/dist/llm/schemas.d.cts +0 -111
  694. package/dist/llm/services/anthropic.d.cts +0 -65
  695. package/dist/llm/services/factory.d.cts +0 -39
  696. package/dist/llm/services/index.d.cts +0 -21
  697. package/dist/llm/services/openai.d.cts +0 -65
  698. package/dist/llm/services/test-utils.integration.d.cts +0 -83
  699. package/dist/llm/services/types.d.cts +0 -56
  700. package/dist/llm/services/vercel.d.cts +0 -72
  701. package/dist/llm/tokenizer/anthropic.d.cts +0 -21
  702. package/dist/llm/tokenizer/default.d.cts +0 -16
  703. package/dist/llm/tokenizer/factory.d.cts +0 -12
  704. package/dist/llm/tokenizer/google.d.cts +0 -31
  705. package/dist/llm/tokenizer/openai.d.cts +0 -32
  706. package/dist/llm/tokenizer/types.d.cts +0 -19
  707. package/dist/llm/types.d.cts +0 -29
  708. package/dist/llm/validation.d.cts +0 -60
  709. package/dist/logger/browser.d.cts +0 -29
  710. package/dist/logger/index.d.cts +0 -1
  711. package/dist/logger/logger.d.cts +0 -52
  712. package/dist/mcp/error-codes.d.cts +0 -16
  713. package/dist/mcp/errors.d.cts +0 -72
  714. package/dist/mcp/index.d.cts +0 -26
  715. package/dist/mcp/manager.d.cts +0 -163
  716. package/dist/mcp/mcp-client.d.cts +0 -108
  717. package/dist/mcp/resolver.d.cts +0 -22
  718. package/dist/mcp/schemas.d.cts +0 -266
  719. package/dist/mcp/types.d.cts +0 -21
  720. package/dist/preferences/constants.d.cts +0 -3
  721. package/dist/preferences/error-codes.d.cts +0 -9
  722. package/dist/preferences/errors.d.cts +0 -33
  723. package/dist/preferences/index.d.cts +0 -21
  724. package/dist/preferences/loader.d.cts +0 -45
  725. package/dist/preferences/schemas.d.cts +0 -104
  726. package/dist/search/index.d.cts +0 -5
  727. package/dist/search/search-service.d.cts +0 -47
  728. package/dist/search/types.d.cts +0 -78
  729. package/dist/session/chat-session.d.cts +0 -284
  730. package/dist/session/error-codes.d.cts +0 -13
  731. package/dist/session/errors.d.cts +0 -58
  732. package/dist/session/history/database.d.cts +0 -28
  733. package/dist/session/history/factory.d.cts +0 -11
  734. package/dist/session/history/types.d.cts +0 -17
  735. package/dist/session/index.d.cts +0 -53
  736. package/dist/session/schemas.d.cts +0 -16
  737. package/dist/session/session-manager.d.cts +0 -219
  738. package/dist/storage/backend/cache-backend.d.ts +0 -15
  739. package/dist/storage/backend/database-backend.d.ts +0 -19
  740. package/dist/storage/backend/memory-backend.d.cts +0 -34
  741. package/dist/storage/backend/postgres-backend.d.cts +0 -37
  742. package/dist/storage/backend/redis-backend.d.cts +0 -36
  743. package/dist/storage/backend/sqlite-backend.d.cts +0 -35
  744. package/dist/storage/backend/types.d.cts +0 -14
  745. package/dist/storage/backend/types.d.ts +0 -14
  746. package/dist/storage/error-codes.d.cts +0 -14
  747. package/dist/storage/errors.d.cts +0 -63
  748. package/dist/storage/index.d.cts +0 -7
  749. package/dist/storage/schemas.d.cts +0 -856
  750. package/dist/storage/storage-manager.d.cts +0 -52
  751. package/dist/storage/types.d.cts +0 -5
  752. package/dist/systemPrompt/contributors.d.cts +0 -44
  753. package/dist/systemPrompt/error-codes.d.cts +0 -13
  754. package/dist/systemPrompt/errors.d.cts +0 -55
  755. package/dist/systemPrompt/in-built-prompts.d.cts +0 -28
  756. package/dist/systemPrompt/index.d.cts +0 -14
  757. package/dist/systemPrompt/manager.d.cts +0 -31
  758. package/dist/systemPrompt/registry.d.cts +0 -20
  759. package/dist/systemPrompt/schemas.d.cts +0 -401
  760. package/dist/systemPrompt/types.d.cts +0 -19
  761. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +0 -19
  762. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +0 -17
  763. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +0 -26
  764. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +0 -35
  765. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +0 -158
  766. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +0 -41
  767. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +0 -41
  768. package/dist/tools/confirmation/event-based-confirmation-provider.js +0 -134
  769. package/dist/tools/confirmation/factory.cjs +0 -52
  770. package/dist/tools/confirmation/factory.d.cts +0 -37
  771. package/dist/tools/confirmation/factory.d.ts +0 -37
  772. package/dist/tools/confirmation/factory.js +0 -28
  773. package/dist/tools/confirmation/noop-confirmation-provider.cjs +0 -49
  774. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +0 -22
  775. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +0 -22
  776. package/dist/tools/confirmation/noop-confirmation-provider.js +0 -25
  777. package/dist/tools/confirmation/types.d.cts +0 -46
  778. package/dist/tools/confirmation/types.d.ts +0 -46
  779. package/dist/tools/error-codes.d.cts +0 -18
  780. package/dist/tools/errors.d.cts +0 -97
  781. package/dist/tools/index.d.cts +0 -19
  782. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +0 -15
  783. package/dist/tools/internal-tools/index.d.cts +0 -13
  784. package/dist/tools/internal-tools/provider.d.cts +0 -66
  785. package/dist/tools/internal-tools/registry.d.cts +0 -45
  786. package/dist/tools/schemas.d.cts +0 -21
  787. package/dist/tools/tool-manager.d.cts +0 -106
  788. package/dist/tools/types.d.cts +0 -66
  789. package/dist/utils/api-key-resolver.d.cts +0 -23
  790. package/dist/utils/api-key-store.d.cts +0 -26
  791. package/dist/utils/env.d.cts +0 -29
  792. package/dist/utils/error-conversion.d.cts +0 -13
  793. package/dist/utils/execution-context.d.cts +0 -21
  794. package/dist/utils/fs-walk.d.cts +0 -9
  795. package/dist/utils/index.d.cts +0 -63
  796. package/dist/utils/path.d.cts +0 -54
  797. package/dist/utils/port-utils.d.cts +0 -11
  798. package/dist/utils/port-utils.spec.d.cts +0 -2
  799. package/dist/utils/port-utils.spec.d.ts +0 -2
  800. package/dist/utils/redactor.d.cts +0 -18
  801. package/dist/utils/result.d.cts +0 -180
  802. package/dist/utils/safe-stringify.d.cts +0 -7
  803. package/dist/utils/schema.d.cts +0 -6
  804. package/dist/utils/service-initializer.d.cts +0 -63
  805. package/dist/utils/user-info.d.cts +0 -3
  806. package/dist/utils/zod-schema-converter.d.cts +0 -13
  807. /package/dist/{storage/backend → memory}/types.cjs +0 -0
  808. /package/dist/{storage/backend → memory}/types.js +0 -0
  809. /package/dist/{tools/confirmation → plugins}/types.cjs +0 -0
  810. /package/dist/{tools/confirmation → plugins}/types.js +0 -0
  811. /package/dist/{storage/backend/cache-backend.js → prompts/types.js} +0 -0
  812. /package/dist/{storage/backend/database-backend.js → resources/handlers/types.js} +0 -0
@@ -1,67 +1,130 @@
1
- import { AgentRegistry, Registry, AgentRegistryEntry } from './types.js';
2
- import 'zod';
3
-
1
+ import { Registry, AgentRegistry, AgentRegistryEntry } from './types.js';
4
2
  /**
5
3
  * Local agent registry implementation
6
- * TODO: MOVE THIS INTO CLI WHERE IT IS USED, and add posthog instrumentation for install/uninstall/resolve/etc, similar to manual install command
4
+ *
5
+ * TODO: ARCHITECTURAL REFACTOR - Move registry, preferences, and agent resolution to CLI
6
+ *
7
+ * PROBLEM: Registry operations are CLI concerns but live in Core, causing:
8
+ * - Missing analytics for auto-install (when running `dexto`, registry installs agents but doesn't track)
9
+ * - Wrong separation of concerns (Core = execution engine, not discovery/setup)
10
+ * - Registry manages ~/.dexto/agents filesystem which is CLI-level setup
11
+ *
12
+ * THE RIGHT ARCHITECTURE:
13
+ *
14
+ * Move to CLI:
15
+ * 1. Agent Registry (packages/core/src/agent/registry/) → packages/cli/src/registry/
16
+ * - installAgent(), uninstallAgent(), resolveAgent(), listAgents()
17
+ * - Can directly call capture() for analytics
18
+ * - Manages ~/.dexto/agents installation directory
19
+ *
20
+ * 2. Global Preferences (packages/core/src/preferences/) → packages/cli/src/preferences/
21
+ * - User's default LLM, model, default agent
22
+ * - Used by `dexto setup` command
23
+ * - Manages ~/.dexto/preferences.json
24
+ *
25
+ * 3. Agent Resolution (packages/core/src/config/agent-resolver.ts) → packages/cli/src/agent-resolver.ts
26
+ * - Discovery logic: check registry, trigger installs, apply preferences
27
+ * - Returns resolved config PATH to core
28
+ *
29
+ * Core keeps:
30
+ * - config/loader.ts - Load YAML from path
31
+ * - config/schemas.ts - Zod validation
32
+ * - Agent execution (DextoAgent, LLM, tools, MCP)
33
+ *
34
+ * FLOW AFTER REFACTOR:
35
+ * CLI index.ts:
36
+ * → CLI: resolveAgentPath() (discovery logic)
37
+ * → CLI: registry.resolveAgent()
38
+ * → CLI: registry.installAgent() if needed
39
+ * → CLI: capture('dexto_install_agent', ...) ✓ Natural!
40
+ * → Core: new DextoAgent(configPath) (just loads & runs)
41
+ *
42
+ * BENEFITS:
43
+ * - Clear separation: CLI = setup/discovery, Core = execution
44
+ * - Analytics naturally colocated with operations
45
+ * - Core is portable (no CLI dependencies)
46
+ * - No circular deps (CLI → Core, correct direction)
47
+ *
48
+ * ESTIMATE: ~3-4 hours (mostly moving code + updating imports)
7
49
  */
8
- declare class LocalAgentRegistry implements AgentRegistry {
50
+ export declare class LocalAgentRegistry implements AgentRegistry {
9
51
  private _registry;
10
52
  /**
11
53
  * Lazy load registry from JSON file
12
54
  */
13
55
  getRegistry(): Registry;
14
56
  /**
15
- * Load registry from bundled JSON file
57
+ * Load and merge bundled + user registries
16
58
  * Uses fail-fast approach - throws RegistryError for any loading issues
17
59
  */
18
60
  private loadRegistry;
19
61
  /**
20
- * Check if agent exists in registry
62
+ * Check if agent exists in registry by ID
21
63
  */
22
- hasAgent(name: string): boolean;
64
+ hasAgent(agentId: string): boolean;
23
65
  /**
24
66
  * Get available agents with their metadata from registry
25
67
  */
26
68
  getAvailableAgents(): Record<string, AgentRegistryEntry>;
69
+ /**
70
+ * Validate custom agent ID doesn't conflict with bundled registry
71
+ * @throws RegistryError if ID conflicts with builtin agent
72
+ */
73
+ private validateCustomAgentId;
27
74
  /**
28
75
  * Resolve main config file for installed agent
29
76
  * Handles both directory agents (with main field) and single-file agents
30
77
  */
31
- resolveMainConfig(agentDir: string, agentName: string): string;
78
+ resolveMainConfig(agentDir: string, agentId: string): string;
32
79
  /**
33
80
  * Install agent atomically using temp + rename pattern
34
- * @param agentName Name of the agent to install
81
+ * @param agentId ID of the agent to install
35
82
  * @param injectPreferences Whether to inject global preferences into installed agent (default: true)
36
83
  */
37
- installAgent(agentName: string, injectPreferences?: boolean): Promise<string>;
84
+ installAgent(agentId: string, injectPreferences?: boolean): Promise<string>;
85
+ /**
86
+ * Install a custom agent from a local file path
87
+ * @param agentId Unique identifier for the custom agent
88
+ * @param sourcePath Absolute path to agent YAML file or directory
89
+ * @param metadata Agent metadata (name for display, description, author, tags, main)
90
+ * @param injectPreferences Whether to inject global preferences (default: true)
91
+ * @returns Path to the installed agent's main config file
92
+ */
93
+ installCustomAgentFromPath(agentId: string, sourcePath: string, metadata: {
94
+ name?: string;
95
+ description: string;
96
+ author: string;
97
+ tags: string[];
98
+ main?: string;
99
+ }, injectPreferences?: boolean): Promise<string>;
38
100
  /**
39
- * Resolve a registry agent name to a config path
40
- * NOTE: Only handles registry names, not file paths (routing done in loadAgentConfig)
101
+ * Resolve a registry agent ID to a config path
102
+ * NOTE: Only handles registry IDs, not file paths (routing done in loadAgentConfig)
41
103
  * Handles installing agent if needed
42
- * @param agentName Name of the agent to resolve
104
+ * @param agentId ID of the agent to resolve
43
105
  * @param autoInstall Whether to automatically install missing agents from registry (default: true)
44
106
  * @param injectPreferences Whether to inject preferences during auto-installation (default: true)
45
107
  */
46
- resolveAgent(agentName: string, autoInstall?: boolean, injectPreferences?: boolean): Promise<string>;
108
+ resolveAgent(agentId: string, autoInstall?: boolean, injectPreferences?: boolean): Promise<string>;
47
109
  /**
48
110
  * Get list of currently installed agents
49
111
  */
50
112
  getInstalledAgents(): Promise<string[]>;
51
113
  /**
52
- * Check if an agent is safe to uninstall (not the default-agent which is critical)
114
+ * Check if an agent is safe to uninstall (not the default agent from preferences)
53
115
  */
54
116
  private isAgentSafeToUninstall;
55
117
  /**
56
118
  * Uninstall an agent by removing its directory
57
- * @param agentName Name of the agent to uninstall
119
+ * For custom agents: also removes from user registry
120
+ * For builtin agents: only removes from disk
121
+ * @param agentId ID of the agent to uninstall
58
122
  * @param force Whether to force uninstall even if agent is protected (default: false)
59
123
  */
60
- uninstallAgent(agentName: string, force?: boolean): Promise<void>;
124
+ uninstallAgent(agentId: string, force?: boolean): Promise<void>;
61
125
  }
62
126
  /**
63
127
  * Get cached registry instance (singleton pattern)
64
128
  */
65
- declare function getAgentRegistry(): LocalAgentRegistry;
66
-
67
- export { LocalAgentRegistry, getAgentRegistry };
129
+ export declare function getAgentRegistry(): LocalAgentRegistry;
130
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/agent/registry/registry.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,QAAQ,EAER,aAAa,EACb,kBAAkB,EAErB,MAAM,YAAY,CAAC;AAYpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACpD,OAAO,CAAC,SAAS,CAAyB;IAE1C;;OAEG;IACH,WAAW,IAAI,QAAQ;IAOvB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAyCpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKlC;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAKxD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAgC7B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAqC5D;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAqGvF;;;;;;;OAOG;IACG,0BAA0B,CAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,EACD,iBAAiB,GAAE,OAAc,GAClC,OAAO,CAAC,MAAM,CAAC;IAqKlB;;;;;;;OAOG;IACG,YAAY,CACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAc,EAC3B,iBAAiB,GAAE,OAAc,GAClC,OAAO,CAAC,MAAM,CAAC;IAsClB;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsB7C;;OAEG;YACW,sBAAsB;IAYpC;;;;;;OAMG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA8C/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAKrD"}
@@ -5,8 +5,17 @@ import { logger } from "../../logger/index.js";
5
5
  import { resolveBundledScript, getDextoGlobalPath, copyDirectory } from "../../utils/path.js";
6
6
  import { loadGlobalPreferences } from "../../preferences/loader.js";
7
7
  import { writePreferencesToAgent } from "../../config/writer.js";
8
- import { RegistrySchema } from "./types.js";
8
+ import {
9
+ RegistrySchema,
10
+ normalizeRegistryJson
11
+ } from "./types.js";
9
12
  import { RegistryError } from "./errors.js";
13
+ import {
14
+ loadUserRegistry,
15
+ mergeRegistries,
16
+ removeAgentFromUserRegistry,
17
+ addAgentToUserRegistry
18
+ } from "./user-registry.js";
10
19
  let cachedRegistry = null;
11
20
  class LocalAgentRegistry {
12
21
  _registry = null;
@@ -20,7 +29,7 @@ class LocalAgentRegistry {
20
29
  return this._registry;
21
30
  }
22
31
  /**
23
- * Load registry from bundled JSON file
32
+ * Load and merge bundled + user registries
24
33
  * Uses fail-fast approach - throws RegistryError for any loading issues
25
34
  */
26
35
  loadRegistry() {
@@ -36,23 +45,30 @@ class LocalAgentRegistry {
36
45
  if (!existsSync(jsonPath)) {
37
46
  throw RegistryError.registryNotFound(jsonPath, "File doesn't exist");
38
47
  }
48
+ let bundledRegistry;
39
49
  try {
40
50
  const jsonData = readFileSync(jsonPath, "utf-8");
41
51
  const rawRegistry = JSON.parse(jsonData);
42
- return RegistrySchema.parse(rawRegistry);
52
+ bundledRegistry = RegistrySchema.parse(normalizeRegistryJson(rawRegistry));
43
53
  } catch (error) {
44
54
  throw RegistryError.registryParseError(
45
55
  jsonPath,
46
56
  error instanceof Error ? error.message : String(error)
47
57
  );
48
58
  }
59
+ const userRegistry = loadUserRegistry();
60
+ const merged = mergeRegistries(bundledRegistry, userRegistry);
61
+ logger.debug(
62
+ `Loaded registry: ${Object.keys(bundledRegistry.agents).length} bundled, ${Object.keys(userRegistry.agents).length} custom`
63
+ );
64
+ return merged;
49
65
  }
50
66
  /**
51
- * Check if agent exists in registry
67
+ * Check if agent exists in registry by ID
52
68
  */
53
- hasAgent(name) {
69
+ hasAgent(agentId) {
54
70
  const registry = this.getRegistry();
55
- return name in registry.agents;
71
+ return agentId in registry.agents;
56
72
  }
57
73
  /**
58
74
  * Get available agents with their metadata from registry
@@ -61,27 +77,59 @@ class LocalAgentRegistry {
61
77
  const registry = this.getRegistry();
62
78
  return registry.agents;
63
79
  }
80
+ /**
81
+ * Validate custom agent ID doesn't conflict with bundled registry
82
+ * @throws RegistryError if ID conflicts with builtin agent
83
+ */
84
+ validateCustomAgentId(agentId) {
85
+ let jsonPath;
86
+ try {
87
+ jsonPath = resolveBundledScript("agents/agent-registry.json");
88
+ } catch (error) {
89
+ throw RegistryError.registryNotFound(
90
+ "agents/agent-registry.json",
91
+ error instanceof Error ? error.message : String(error)
92
+ );
93
+ }
94
+ try {
95
+ const jsonData = readFileSync(jsonPath, "utf-8");
96
+ const bundledRegistry = RegistrySchema.parse(
97
+ normalizeRegistryJson(JSON.parse(jsonData))
98
+ );
99
+ if (agentId in bundledRegistry.agents) {
100
+ throw RegistryError.customAgentNameConflict(agentId);
101
+ }
102
+ } catch (error) {
103
+ if (error instanceof Error && /name conflicts with builtin agent/.test(error.message)) {
104
+ throw error;
105
+ }
106
+ throw RegistryError.registryParseError(
107
+ jsonPath,
108
+ error instanceof Error ? error.message : String(error)
109
+ );
110
+ }
111
+ }
64
112
  /**
65
113
  * Resolve main config file for installed agent
66
114
  * Handles both directory agents (with main field) and single-file agents
67
115
  */
68
- resolveMainConfig(agentDir, agentName) {
116
+ resolveMainConfig(agentDir, agentId) {
69
117
  const registry = this.getRegistry();
70
- const agentData = registry.agents[agentName];
118
+ const agentData = registry.agents[agentId];
71
119
  if (!agentData) {
72
120
  const available = Object.keys(registry.agents);
73
- throw RegistryError.agentNotFound(agentName, available);
121
+ throw RegistryError.agentNotFound(agentId, available);
74
122
  }
75
123
  if (agentData.source.endsWith("/")) {
76
124
  if (!agentData.main) {
77
125
  throw RegistryError.agentInvalidEntry(
78
- agentName,
126
+ agentId,
79
127
  "directory entry missing main field"
80
128
  );
81
129
  }
82
130
  const mainConfigPath = path.join(agentDir, agentData.main);
83
131
  if (!existsSync(mainConfigPath)) {
84
- throw RegistryError.mainConfigMissing(agentName, mainConfigPath);
132
+ throw RegistryError.mainConfigMissing(agentId, mainConfigPath);
85
133
  }
86
134
  return mainConfigPath;
87
135
  } else {
@@ -95,22 +143,29 @@ class LocalAgentRegistry {
95
143
  }
96
144
  /**
97
145
  * Install agent atomically using temp + rename pattern
98
- * @param agentName Name of the agent to install
146
+ * @param agentId ID of the agent to install
99
147
  * @param injectPreferences Whether to inject global preferences into installed agent (default: true)
100
148
  */
101
- async installAgent(agentName, injectPreferences = true) {
102
- logger.info(`Installing agent: ${agentName}`);
149
+ async installAgent(agentId, injectPreferences = true) {
150
+ logger.info(`Installing agent: ${agentId}`);
103
151
  const registry = this.getRegistry();
104
- const agentData = registry.agents[agentName];
152
+ const agentData = registry.agents[agentId];
105
153
  if (!agentData) {
106
154
  const available = Object.keys(registry.agents);
107
- throw RegistryError.agentNotFound(agentName, available);
155
+ throw RegistryError.agentNotFound(agentId, available);
108
156
  }
109
157
  const globalAgentsDir = getDextoGlobalPath("agents");
110
- const targetDir = path.join(globalAgentsDir, agentName);
158
+ const targetDir = path.resolve(globalAgentsDir, agentId);
159
+ const relTarget = path.relative(globalAgentsDir, targetDir);
160
+ if (relTarget.startsWith("..") || path.isAbsolute(relTarget)) {
161
+ throw RegistryError.installationFailed(
162
+ agentId,
163
+ "invalid agentId: path traversal detected"
164
+ );
165
+ }
111
166
  if (existsSync(targetDir)) {
112
- logger.info(`Agent '${agentName}' already installed`);
113
- return this.resolveMainConfig(targetDir, agentName);
167
+ logger.info(`Agent '${agentId}' already installed`);
168
+ return this.resolveMainConfig(targetDir, agentId);
114
169
  }
115
170
  await fs.mkdir(globalAgentsDir, { recursive: true });
116
171
  const sourcePath = resolveBundledScript(`agents/${agentData.source}`);
@@ -123,31 +178,144 @@ class LocalAgentRegistry {
123
178
  const targetFile = path.join(tempDir, path.basename(sourcePath));
124
179
  await fs.copyFile(sourcePath, targetFile);
125
180
  }
126
- const mainConfigPath = this.resolveMainConfig(tempDir, agentName);
181
+ const mainConfigPath = this.resolveMainConfig(tempDir, agentId);
127
182
  if (!existsSync(mainConfigPath)) {
128
- throw RegistryError.installationValidationFailed(agentName, mainConfigPath);
183
+ throw RegistryError.installationValidationFailed(agentId, mainConfigPath);
129
184
  }
130
185
  await fs.rename(tempDir, targetDir);
131
- logger.info(`\u2713 Installed agent '${agentName}' to ${targetDir}`);
186
+ logger.info(`\u2713 Installed agent '${agentId}' to ${targetDir}`);
132
187
  if (injectPreferences) {
133
188
  try {
134
189
  const preferences = await loadGlobalPreferences();
135
190
  await writePreferencesToAgent(targetDir, preferences);
136
- logger.info(`\u2713 Applied global preferences to installed agent '${agentName}'`);
191
+ logger.info(`\u2713 Applied global preferences to installed agent '${agentId}'`);
137
192
  } catch (error) {
138
193
  logger.warn(
139
- `Failed to inject preferences to '${agentName}': ${error instanceof Error ? error.message : String(error)}`
194
+ `Failed to inject preferences to '${agentId}': ${error instanceof Error ? error.message : String(error)}`
140
195
  );
141
196
  console.log(
142
- `\u26A0\uFE0F Warning: Could not apply preferences to '${agentName}' - agent will use bundled settings`
197
+ `\u26A0\uFE0F Warning: Could not apply preferences to '${agentId}' - agent will use bundled settings`
143
198
  );
144
199
  }
145
200
  } else {
146
201
  logger.info(
147
- `Skipped preference injection for '${agentName}' (injectPreferences=false)`
202
+ `Skipped preference injection for '${agentId}' (injectPreferences=false)`
203
+ );
204
+ }
205
+ return this.resolveMainConfig(targetDir, agentId);
206
+ } catch (error) {
207
+ try {
208
+ if (existsSync(tempDir)) {
209
+ await fs.rm(tempDir, { recursive: true, force: true });
210
+ }
211
+ } catch (cleanupError) {
212
+ logger.error(
213
+ `Failed to clean up temp directory: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}. Skipping cleanup...`
148
214
  );
149
215
  }
150
- return this.resolveMainConfig(targetDir, agentName);
216
+ throw RegistryError.installationFailed(
217
+ agentId,
218
+ error instanceof Error ? error.message : String(error)
219
+ );
220
+ }
221
+ }
222
+ /**
223
+ * Install a custom agent from a local file path
224
+ * @param agentId Unique identifier for the custom agent
225
+ * @param sourcePath Absolute path to agent YAML file or directory
226
+ * @param metadata Agent metadata (name for display, description, author, tags, main)
227
+ * @param injectPreferences Whether to inject global preferences (default: true)
228
+ * @returns Path to the installed agent's main config file
229
+ */
230
+ async installCustomAgentFromPath(agentId, sourcePath, metadata, injectPreferences = true) {
231
+ logger.info(`Installing custom agent '${agentId}' from ${sourcePath}`);
232
+ this.validateCustomAgentId(agentId);
233
+ if (!existsSync(sourcePath)) {
234
+ throw RegistryError.configNotFound(sourcePath);
235
+ }
236
+ const globalAgentsDir = getDextoGlobalPath("agents");
237
+ const targetDir = path.resolve(globalAgentsDir, agentId);
238
+ const relTarget = path.relative(globalAgentsDir, targetDir);
239
+ if (relTarget.startsWith("..") || path.isAbsolute(relTarget)) {
240
+ throw RegistryError.installationFailed(
241
+ agentId,
242
+ "invalid agentId: path traversal detected"
243
+ );
244
+ }
245
+ if (existsSync(targetDir)) {
246
+ throw RegistryError.agentAlreadyExists(agentId);
247
+ }
248
+ await fs.mkdir(globalAgentsDir, { recursive: true });
249
+ const stats = await fs.stat(sourcePath);
250
+ const isDirectory = stats.isDirectory();
251
+ const configFileName = isDirectory ? void 0 : `${agentId}.yml`;
252
+ if (!metadata.description) {
253
+ throw RegistryError.installationFailed(agentId, "description is required");
254
+ }
255
+ if (isDirectory && !metadata.main) {
256
+ throw RegistryError.installationFailed(
257
+ agentId,
258
+ "main field is required for directory-based agents"
259
+ );
260
+ }
261
+ const displayName = metadata.name || agentId.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
262
+ const registryEntry = {
263
+ id: agentId,
264
+ name: displayName,
265
+ description: metadata.description,
266
+ author: metadata.author,
267
+ tags: metadata.tags,
268
+ source: isDirectory ? `${agentId}/` : configFileName,
269
+ main: metadata.main
270
+ };
271
+ const tempDir = `${targetDir}.tmp.${Date.now()}`;
272
+ try {
273
+ if (isDirectory) {
274
+ await copyDirectory(sourcePath, tempDir);
275
+ } else {
276
+ await fs.mkdir(tempDir, { recursive: true });
277
+ const targetFile = path.join(tempDir, configFileName);
278
+ await fs.copyFile(sourcePath, targetFile);
279
+ }
280
+ const tempMainConfigPath = isDirectory ? path.join(tempDir, metadata.main) : path.join(tempDir, configFileName);
281
+ if (!existsSync(tempMainConfigPath)) {
282
+ throw RegistryError.installationValidationFailed(agentId, tempMainConfigPath);
283
+ }
284
+ await fs.rename(tempDir, targetDir);
285
+ logger.info(`\u2713 Installed custom agent '${agentId}' to ${targetDir}`);
286
+ const mainConfigPath = isDirectory && metadata.main ? path.join(targetDir, metadata.main) : path.join(targetDir, configFileName);
287
+ try {
288
+ await addAgentToUserRegistry(agentId, registryEntry);
289
+ logger.info(`\u2713 Added '${agentId}' to user registry`);
290
+ this._registry = null;
291
+ } catch (registryError) {
292
+ try {
293
+ if (existsSync(targetDir)) {
294
+ await fs.rm(targetDir, { recursive: true, force: true });
295
+ logger.info(`Rolled back installation: removed ${targetDir}`);
296
+ }
297
+ } catch (rollbackError) {
298
+ logger.error(
299
+ `Rollback failed for '${agentId}': ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`
300
+ );
301
+ }
302
+ throw registryError;
303
+ }
304
+ if (injectPreferences) {
305
+ try {
306
+ const preferences = await loadGlobalPreferences();
307
+ await writePreferencesToAgent(targetDir, preferences);
308
+ logger.info(`\u2713 Applied global preferences to custom agent '${agentId}'`);
309
+ } catch (error) {
310
+ logger.warn(
311
+ `Failed to inject preferences to '${agentId}': ${error instanceof Error ? error.message : String(error)}`
312
+ );
313
+ console.log(
314
+ `\u26A0\uFE0F Warning: Could not apply preferences to '${agentId}' - agent will use default settings`
315
+ );
316
+ }
317
+ }
318
+ return mainConfigPath;
151
319
  } catch (error) {
152
320
  try {
153
321
  if (existsSync(tempDir)) {
@@ -155,46 +323,50 @@ class LocalAgentRegistry {
155
323
  }
156
324
  } catch (cleanupError) {
157
325
  logger.error(
158
- `Failed to clean up temp directory: ${cleanupError}. Skipping cleanup...`
326
+ `Failed to clean up temp directory: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}. Skipping cleanup...`
159
327
  );
160
328
  }
161
329
  throw RegistryError.installationFailed(
162
- agentName,
330
+ agentId,
163
331
  error instanceof Error ? error.message : String(error)
164
332
  );
165
333
  }
166
334
  }
167
335
  /**
168
- * Resolve a registry agent name to a config path
169
- * NOTE: Only handles registry names, not file paths (routing done in loadAgentConfig)
336
+ * Resolve a registry agent ID to a config path
337
+ * NOTE: Only handles registry IDs, not file paths (routing done in loadAgentConfig)
170
338
  * Handles installing agent if needed
171
- * @param agentName Name of the agent to resolve
339
+ * @param agentId ID of the agent to resolve
172
340
  * @param autoInstall Whether to automatically install missing agents from registry (default: true)
173
341
  * @param injectPreferences Whether to inject preferences during auto-installation (default: true)
174
342
  */
175
- async resolveAgent(agentName, autoInstall = true, injectPreferences = true) {
176
- logger.debug(`Resolving registry agent: ${agentName}`);
343
+ async resolveAgent(agentId, autoInstall = true, injectPreferences = true) {
344
+ logger.debug(`Resolving registry agent: ${agentId}`);
177
345
  const globalAgentsDir = getDextoGlobalPath("agents");
178
- const installedPath = path.join(globalAgentsDir, agentName);
346
+ const installedPath = path.resolve(globalAgentsDir, agentId);
347
+ const relInstalled = path.relative(globalAgentsDir, installedPath);
348
+ if (relInstalled.startsWith("..") || path.isAbsolute(relInstalled)) {
349
+ throw RegistryError.agentNotFound(agentId, Object.keys(this.getRegistry().agents));
350
+ }
179
351
  if (existsSync(installedPath)) {
180
- const mainConfig = this.resolveMainConfig(installedPath, agentName);
181
- logger.debug(`Resolved installed agent '${agentName}' to: ${mainConfig}`);
352
+ const mainConfig = this.resolveMainConfig(installedPath, agentId);
353
+ logger.debug(`Resolved installed agent '${agentId}' to: ${mainConfig}`);
182
354
  return mainConfig;
183
355
  }
184
- logger.debug(`Agent '${agentName}' not found in installed path: ${installedPath}`);
185
- if (this.hasAgent(agentName)) {
356
+ logger.debug(`Agent '${agentId}' not found in installed path: ${installedPath}`);
357
+ if (this.hasAgent(agentId)) {
186
358
  if (autoInstall) {
187
- logger.info(`Installing agent '${agentName}' from registry...`);
188
- return await this.installAgent(agentName, injectPreferences);
359
+ logger.info(`Installing agent '${agentId}' from registry...`);
360
+ return await this.installAgent(agentId, injectPreferences);
189
361
  } else {
190
362
  const registry2 = this.getRegistry();
191
363
  const available2 = Object.keys(registry2.agents);
192
- throw RegistryError.agentNotInstalledAutoInstallDisabled(agentName, available2);
364
+ throw RegistryError.agentNotInstalledAutoInstallDisabled(agentId, available2);
193
365
  }
194
366
  }
195
367
  const registry = this.getRegistry();
196
368
  const available = Object.keys(registry.agents);
197
- throw RegistryError.agentNotFound(agentName, available);
369
+ throw RegistryError.agentNotFound(agentId, available);
198
370
  }
199
371
  /**
200
372
  * Get list of currently installed agents
@@ -213,32 +385,56 @@ class LocalAgentRegistry {
213
385
  }
214
386
  }
215
387
  /**
216
- * Check if an agent is safe to uninstall (not the default-agent which is critical)
388
+ * Check if an agent is safe to uninstall (not the default agent from preferences)
217
389
  */
218
- isAgentSafeToUninstall(agentName) {
219
- return agentName !== "default-agent";
390
+ async isAgentSafeToUninstall(agentId) {
391
+ try {
392
+ const preferences = await loadGlobalPreferences();
393
+ const defaultAgent = preferences.defaults.defaultAgent;
394
+ return agentId !== defaultAgent;
395
+ } catch {
396
+ logger.warn("Could not load preferences, using fallback protection for default-agent");
397
+ return agentId !== "default-agent";
398
+ }
220
399
  }
221
400
  /**
222
401
  * Uninstall an agent by removing its directory
223
- * @param agentName Name of the agent to uninstall
402
+ * For custom agents: also removes from user registry
403
+ * For builtin agents: only removes from disk
404
+ * @param agentId ID of the agent to uninstall
224
405
  * @param force Whether to force uninstall even if agent is protected (default: false)
225
406
  */
226
- async uninstallAgent(agentName, force = false) {
407
+ async uninstallAgent(agentId, force = false) {
227
408
  const globalAgentsDir = getDextoGlobalPath("agents");
228
- const agentDir = path.join(globalAgentsDir, agentName);
229
- logger.info(`Uninstalling agent: ${agentName} from ${agentDir}`);
409
+ const agentDir = path.resolve(globalAgentsDir, agentId);
410
+ const relAgent = path.relative(globalAgentsDir, agentDir);
411
+ if (relAgent.startsWith("..") || path.isAbsolute(relAgent)) {
412
+ throw RegistryError.uninstallationFailed(
413
+ agentId,
414
+ "invalid agentId: path traversal detected"
415
+ );
416
+ }
417
+ logger.info(`Uninstalling agent: ${agentId} from ${agentDir}`);
230
418
  if (!existsSync(agentDir)) {
231
- throw RegistryError.agentNotInstalled(agentName);
419
+ throw RegistryError.agentNotInstalled(agentId);
232
420
  }
233
- if (!force && !this.isAgentSafeToUninstall(agentName)) {
234
- throw RegistryError.agentProtected(agentName);
421
+ if (!force && !await this.isAgentSafeToUninstall(agentId)) {
422
+ throw RegistryError.agentProtected(agentId);
235
423
  }
424
+ const registry = this.getRegistry();
425
+ const agentData = registry.agents[agentId];
426
+ const isCustomAgent = agentData?.type === "custom";
236
427
  try {
237
428
  await fs.rm(agentDir, { recursive: true, force: true });
238
- logger.info(`\u2713 Removed agent '${agentName}' from ${agentDir}`);
429
+ logger.info(`\u2713 Removed agent '${agentId}' from ${agentDir}`);
430
+ if (isCustomAgent) {
431
+ await removeAgentFromUserRegistry(agentId);
432
+ logger.info(`\u2713 Removed custom agent '${agentId}' from user registry`);
433
+ this._registry = null;
434
+ }
239
435
  } catch (error) {
240
436
  throw RegistryError.uninstallationFailed(
241
- agentName,
437
+ agentId,
242
438
  error instanceof Error ? error.message : String(error)
243
439
  );
244
440
  }
@@ -19,23 +19,56 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
21
  AgentRegistryEntrySchema: () => AgentRegistryEntrySchema,
22
- RegistrySchema: () => RegistrySchema
22
+ RegistrySchema: () => RegistrySchema,
23
+ deriveDisplayName: () => deriveDisplayName,
24
+ normalizeRegistryJson: () => normalizeRegistryJson
23
25
  });
24
26
  module.exports = __toCommonJS(types_exports);
25
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
+ }
26
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"),
27
34
  description: import_zod.z.string(),
28
35
  author: import_zod.z.string(),
29
36
  tags: import_zod.z.array(import_zod.z.string()),
30
37
  source: import_zod.z.string(),
31
- main: import_zod.z.string().optional()
38
+ main: import_zod.z.string().optional(),
39
+ type: import_zod.z.enum(["builtin", "custom"]).default("builtin").describe("Agent type")
32
40
  }).strict();
33
41
  const RegistrySchema = import_zod.z.object({
34
42
  version: import_zod.z.string(),
35
43
  agents: import_zod.z.record(import_zod.z.string(), AgentRegistryEntrySchema)
36
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
+ }
37
68
  // Annotate the CommonJS export names for ESM import in node:
38
69
  0 && (module.exports = {
39
70
  AgentRegistryEntrySchema,
40
- RegistrySchema
71
+ RegistrySchema,
72
+ deriveDisplayName,
73
+ normalizeRegistryJson
41
74
  });