@dexto/core 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +36 -0
  2. package/dist/agent/DextoAgent.cjs +22 -3
  3. package/dist/agent/DextoAgent.d.ts +19 -2
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +23 -4
  6. package/dist/agent/index.cjs +4 -1
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.d.ts.map +1 -1
  9. package/dist/agent/index.js +5 -1
  10. package/dist/agent/schemas.cjs +90 -71
  11. package/dist/agent/schemas.d.ts +5911 -96
  12. package/dist/agent/schemas.d.ts.map +1 -1
  13. package/dist/agent/schemas.js +87 -66
  14. package/dist/approval/manager.cjs +165 -1
  15. package/dist/approval/manager.d.ts +91 -2
  16. package/dist/approval/manager.d.ts.map +1 -1
  17. package/dist/approval/manager.js +155 -1
  18. package/dist/approval/schemas.cjs +39 -3
  19. package/dist/approval/schemas.d.ts +238 -1
  20. package/dist/approval/schemas.d.ts.map +1 -1
  21. package/dist/approval/schemas.js +35 -3
  22. package/dist/approval/types.cjs +1 -0
  23. package/dist/approval/types.d.ts +26 -1
  24. package/dist/approval/types.d.ts.map +1 -1
  25. package/dist/approval/types.js +1 -0
  26. package/dist/context/compaction/factory.cjs +57 -0
  27. package/dist/context/compaction/factory.d.ts +17 -0
  28. package/dist/context/compaction/factory.d.ts.map +1 -0
  29. package/dist/context/compaction/factory.js +34 -0
  30. package/dist/context/compaction/index.cjs +49 -0
  31. package/dist/context/compaction/index.d.ts +11 -0
  32. package/dist/context/compaction/index.d.ts.map +1 -0
  33. package/dist/context/compaction/index.js +19 -0
  34. package/dist/context/{compression → compaction}/overflow.cjs +3 -3
  35. package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
  36. package/dist/context/compaction/overflow.d.ts.map +1 -0
  37. package/dist/context/{compression → compaction}/overflow.js +2 -2
  38. package/dist/context/compaction/provider.cjs +16 -0
  39. package/dist/context/compaction/provider.d.ts +48 -0
  40. package/dist/context/compaction/provider.d.ts.map +1 -0
  41. package/dist/context/compaction/providers/noop-provider.cjs +48 -0
  42. package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
  43. package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
  44. package/dist/context/compaction/providers/noop-provider.js +24 -0
  45. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
  46. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
  47. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
  48. package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
  49. package/dist/context/compaction/registry.cjs +39 -0
  50. package/dist/context/compaction/registry.d.ts +19 -0
  51. package/dist/context/compaction/registry.d.ts.map +1 -0
  52. package/dist/context/compaction/registry.js +16 -0
  53. package/dist/context/compaction/schemas.cjs +38 -0
  54. package/dist/context/compaction/schemas.d.ts +24 -0
  55. package/dist/context/compaction/schemas.d.ts.map +1 -0
  56. package/dist/context/compaction/schemas.js +14 -0
  57. package/dist/context/compaction/strategies/noop.cjs +36 -0
  58. package/dist/context/compaction/strategies/noop.d.ts +18 -0
  59. package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/noop.js +13 -0
  61. package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
  62. package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
  63. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
  64. package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
  65. package/dist/context/{compression → compaction}/types.d.ts +4 -4
  66. package/dist/context/compaction/types.d.ts.map +1 -0
  67. package/dist/context/compaction/types.js +0 -0
  68. package/dist/context/error-codes.cjs +4 -0
  69. package/dist/context/error-codes.d.ts +4 -0
  70. package/dist/context/error-codes.d.ts.map +1 -1
  71. package/dist/context/error-codes.js +4 -0
  72. package/dist/context/errors.cjs +40 -0
  73. package/dist/context/errors.d.ts +14 -0
  74. package/dist/context/errors.d.ts.map +1 -1
  75. package/dist/context/errors.js +40 -0
  76. package/dist/context/index.cjs +3 -1
  77. package/dist/context/index.d.ts +1 -0
  78. package/dist/context/index.d.ts.map +1 -1
  79. package/dist/context/index.js +1 -0
  80. package/dist/context/types.d.ts +6 -0
  81. package/dist/context/types.d.ts.map +1 -1
  82. package/dist/context/utils.cjs +27 -7
  83. package/dist/context/utils.d.ts.map +1 -1
  84. package/dist/context/utils.js +27 -7
  85. package/dist/errors/result-bridge.cjs +2 -3
  86. package/dist/errors/result-bridge.d.ts.map +1 -1
  87. package/dist/errors/result-bridge.js +2 -3
  88. package/dist/events/index.cjs +2 -2
  89. package/dist/events/index.d.ts +16 -16
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +2 -2
  92. package/dist/filesystem/filesystem-service.cjs +39 -0
  93. package/dist/filesystem/filesystem-service.d.ts +32 -0
  94. package/dist/filesystem/filesystem-service.d.ts.map +1 -1
  95. package/dist/filesystem/filesystem-service.js +39 -0
  96. package/dist/filesystem/index.d.ts +1 -1
  97. package/dist/filesystem/index.d.ts.map +1 -1
  98. package/dist/filesystem/path-validator.cjs +69 -1
  99. package/dist/filesystem/path-validator.d.ts +43 -2
  100. package/dist/filesystem/path-validator.d.ts.map +1 -1
  101. package/dist/filesystem/path-validator.js +69 -1
  102. package/dist/image/define-image.cjs +146 -0
  103. package/dist/image/define-image.d.ts +71 -0
  104. package/dist/image/define-image.d.ts.map +1 -0
  105. package/dist/image/define-image.js +121 -0
  106. package/dist/image/index.cjs +32 -0
  107. package/dist/image/index.d.ts +53 -0
  108. package/dist/image/index.d.ts.map +1 -0
  109. package/dist/image/index.js +7 -0
  110. package/dist/image/types.cjs +16 -0
  111. package/dist/image/types.d.ts +231 -0
  112. package/dist/image/types.d.ts.map +1 -0
  113. package/dist/image/types.js +0 -0
  114. package/dist/index.cjs +5 -1
  115. package/dist/index.d.ts +2 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +2 -0
  118. package/dist/llm/error-codes.cjs +1 -0
  119. package/dist/llm/error-codes.d.ts +1 -0
  120. package/dist/llm/error-codes.d.ts.map +1 -1
  121. package/dist/llm/error-codes.js +1 -0
  122. package/dist/llm/errors.cjs +24 -0
  123. package/dist/llm/errors.d.ts +19 -6
  124. package/dist/llm/errors.d.ts.map +1 -1
  125. package/dist/llm/errors.js +24 -0
  126. package/dist/llm/executor/stream-processor.cjs +11 -3
  127. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  128. package/dist/llm/executor/stream-processor.js +11 -3
  129. package/dist/llm/executor/turn-executor.cjs +50 -23
  130. package/dist/llm/executor/turn-executor.d.ts +6 -5
  131. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  132. package/dist/llm/executor/turn-executor.js +50 -23
  133. package/dist/llm/formatters/vercel.cjs +6 -2
  134. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  135. package/dist/llm/formatters/vercel.js +6 -2
  136. package/dist/llm/index.cjs +18 -1
  137. package/dist/llm/index.d.ts +2 -0
  138. package/dist/llm/index.d.ts.map +1 -1
  139. package/dist/llm/index.js +14 -0
  140. package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
  141. package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
  142. package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
  143. package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
  144. package/dist/llm/providers/local/downloader.cjs +291 -0
  145. package/dist/llm/providers/local/downloader.d.ts +82 -0
  146. package/dist/llm/providers/local/downloader.d.ts.map +1 -0
  147. package/dist/llm/providers/local/downloader.js +251 -0
  148. package/dist/llm/providers/local/error-codes.cjs +57 -0
  149. package/dist/llm/providers/local/error-codes.d.ts +66 -0
  150. package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
  151. package/dist/llm/providers/local/error-codes.js +34 -0
  152. package/dist/llm/providers/local/errors.cjs +240 -0
  153. package/dist/llm/providers/local/errors.d.ts +31 -0
  154. package/dist/llm/providers/local/errors.d.ts.map +1 -0
  155. package/dist/llm/providers/local/errors.js +217 -0
  156. package/dist/llm/providers/local/gpu-detector.cjs +214 -0
  157. package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
  158. package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
  159. package/dist/llm/providers/local/gpu-detector.js +178 -0
  160. package/dist/llm/providers/local/index.cjs +147 -0
  161. package/dist/llm/providers/local/index.d.ts +21 -0
  162. package/dist/llm/providers/local/index.d.ts.map +1 -0
  163. package/dist/llm/providers/local/index.js +126 -0
  164. package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
  165. package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
  166. package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
  167. package/dist/llm/providers/local/node-llama-provider.js +176 -0
  168. package/dist/llm/providers/local/ollama-provider.cjs +230 -0
  169. package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
  170. package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
  171. package/dist/llm/providers/local/ollama-provider.js +198 -0
  172. package/dist/llm/providers/local/registry.cjs +343 -0
  173. package/dist/llm/providers/local/registry.d.ts +51 -0
  174. package/dist/llm/providers/local/registry.d.ts.map +1 -0
  175. package/dist/llm/providers/local/registry.js +312 -0
  176. package/dist/llm/providers/local/schemas.cjs +169 -0
  177. package/dist/llm/providers/local/schemas.d.ts +395 -0
  178. package/dist/llm/providers/local/schemas.d.ts.map +1 -0
  179. package/dist/llm/providers/local/schemas.js +133 -0
  180. package/dist/llm/providers/local/types.cjs +16 -0
  181. package/dist/llm/providers/local/types.d.ts +219 -0
  182. package/dist/llm/providers/local/types.d.ts.map +1 -0
  183. package/dist/llm/providers/local/types.js +0 -0
  184. package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
  185. package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
  186. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
  187. package/dist/llm/providers/openrouter-model-registry.js +309 -0
  188. package/dist/llm/registry.cjs +535 -9
  189. package/dist/llm/registry.d.ts +26 -0
  190. package/dist/llm/registry.d.ts.map +1 -1
  191. package/dist/llm/registry.js +532 -9
  192. package/dist/llm/resolver.cjs +63 -5
  193. package/dist/llm/resolver.d.ts +3 -3
  194. package/dist/llm/resolver.d.ts.map +1 -1
  195. package/dist/llm/resolver.js +69 -6
  196. package/dist/llm/schemas.cjs +90 -80
  197. package/dist/llm/schemas.d.ts +158 -22
  198. package/dist/llm/schemas.d.ts.map +1 -1
  199. package/dist/llm/schemas.js +90 -80
  200. package/dist/llm/services/factory.cjs +87 -13
  201. package/dist/llm/services/factory.d.ts +4 -1
  202. package/dist/llm/services/factory.d.ts.map +1 -1
  203. package/dist/llm/services/factory.js +85 -12
  204. package/dist/llm/services/test-utils.integration.cjs +22 -2
  205. package/dist/llm/services/test-utils.integration.d.ts +7 -1
  206. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  207. package/dist/llm/services/test-utils.integration.js +26 -3
  208. package/dist/llm/services/vercel.cjs +5 -2
  209. package/dist/llm/services/vercel.d.ts +3 -2
  210. package/dist/llm/services/vercel.d.ts.map +1 -1
  211. package/dist/llm/services/vercel.js +5 -2
  212. package/dist/llm/types.cjs +11 -1
  213. package/dist/llm/types.d.ts +1 -1
  214. package/dist/llm/types.d.ts.map +1 -1
  215. package/dist/llm/types.js +11 -1
  216. package/dist/mcp/manager.cjs +8 -0
  217. package/dist/mcp/manager.d.ts +17 -0
  218. package/dist/mcp/manager.d.ts.map +1 -1
  219. package/dist/mcp/manager.js +8 -0
  220. package/dist/mcp/mcp-client.cjs +0 -3
  221. package/dist/mcp/mcp-client.d.ts.map +1 -1
  222. package/dist/mcp/mcp-client.js +0 -3
  223. package/dist/memory/schemas.d.ts +1 -1
  224. package/dist/plugins/error-codes.cjs +3 -0
  225. package/dist/plugins/error-codes.d.ts +7 -1
  226. package/dist/plugins/error-codes.d.ts.map +1 -1
  227. package/dist/plugins/error-codes.js +3 -0
  228. package/dist/plugins/index.cjs +7 -0
  229. package/dist/plugins/index.d.ts +4 -2
  230. package/dist/plugins/index.d.ts.map +1 -1
  231. package/dist/plugins/index.js +6 -1
  232. package/dist/plugins/manager.cjs +92 -7
  233. package/dist/plugins/manager.d.ts +10 -3
  234. package/dist/plugins/manager.d.ts.map +1 -1
  235. package/dist/plugins/manager.js +92 -7
  236. package/dist/plugins/registry.cjs +63 -0
  237. package/dist/plugins/registry.d.ts +101 -0
  238. package/dist/plugins/registry.d.ts.map +1 -0
  239. package/dist/plugins/registry.js +39 -0
  240. package/dist/plugins/schemas.cjs +17 -5
  241. package/dist/plugins/schemas.d.ts +62 -5
  242. package/dist/plugins/schemas.d.ts.map +1 -1
  243. package/dist/plugins/schemas.js +15 -4
  244. package/dist/providers/base-registry.cjs +147 -0
  245. package/dist/providers/base-registry.d.ts +147 -0
  246. package/dist/providers/base-registry.d.ts.map +1 -0
  247. package/dist/providers/base-registry.js +123 -0
  248. package/dist/providers/discovery.cjs +95 -0
  249. package/dist/providers/discovery.d.ts +94 -0
  250. package/dist/providers/discovery.d.ts.map +1 -0
  251. package/dist/providers/discovery.js +70 -0
  252. package/dist/providers/index.cjs +24 -0
  253. package/dist/providers/index.d.ts +32 -0
  254. package/dist/providers/index.d.ts.map +1 -0
  255. package/dist/providers/index.js +2 -0
  256. package/dist/resources/reference-parser.cjs +3 -3
  257. package/dist/resources/reference-parser.d.ts.map +1 -1
  258. package/dist/resources/reference-parser.js +3 -3
  259. package/dist/session/chat-session.cjs +20 -3
  260. package/dist/session/chat-session.d.ts.map +1 -1
  261. package/dist/session/chat-session.js +21 -4
  262. package/dist/storage/blob/factory.cjs +8 -11
  263. package/dist/storage/blob/factory.d.ts +32 -6
  264. package/dist/storage/blob/factory.d.ts.map +1 -1
  265. package/dist/storage/blob/factory.js +8 -11
  266. package/dist/storage/blob/index.cjs +56 -0
  267. package/dist/storage/blob/index.d.ts +45 -0
  268. package/dist/storage/blob/index.d.ts.map +1 -0
  269. package/dist/storage/blob/index.js +30 -0
  270. package/dist/storage/blob/provider.cjs +16 -0
  271. package/dist/storage/blob/provider.d.ts +50 -0
  272. package/dist/storage/blob/provider.d.ts.map +1 -0
  273. package/dist/storage/blob/provider.js +0 -0
  274. package/dist/storage/blob/providers/index.cjs +31 -0
  275. package/dist/storage/blob/providers/index.d.ts +8 -0
  276. package/dist/storage/blob/providers/index.d.ts.map +1 -0
  277. package/dist/storage/blob/providers/index.js +7 -0
  278. package/dist/storage/blob/providers/local.cjs +39 -0
  279. package/dist/storage/blob/providers/local.d.ts +17 -0
  280. package/dist/storage/blob/providers/local.d.ts.map +1 -0
  281. package/dist/storage/blob/providers/local.js +16 -0
  282. package/dist/storage/blob/providers/memory.cjs +39 -0
  283. package/dist/storage/blob/providers/memory.d.ts +17 -0
  284. package/dist/storage/blob/providers/memory.d.ts.map +1 -0
  285. package/dist/storage/blob/providers/memory.js +16 -0
  286. package/dist/storage/blob/registry.cjs +50 -0
  287. package/dist/storage/blob/registry.d.ts +42 -0
  288. package/dist/storage/blob/registry.d.ts.map +1 -0
  289. package/dist/storage/blob/registry.js +26 -0
  290. package/dist/storage/blob/schemas.cjs +9 -12
  291. package/dist/storage/blob/schemas.d.ts +39 -34
  292. package/dist/storage/blob/schemas.d.ts.map +1 -1
  293. package/dist/storage/blob/schemas.js +6 -11
  294. package/dist/storage/cache/factory.cjs +8 -36
  295. package/dist/storage/cache/factory.d.ts +32 -7
  296. package/dist/storage/cache/factory.d.ts.map +1 -1
  297. package/dist/storage/cache/factory.js +8 -26
  298. package/dist/storage/cache/index.cjs +53 -0
  299. package/dist/storage/cache/index.d.ts +44 -0
  300. package/dist/storage/cache/index.d.ts.map +1 -0
  301. package/dist/storage/cache/index.js +28 -0
  302. package/dist/storage/cache/provider.cjs +16 -0
  303. package/dist/storage/cache/provider.d.ts +56 -0
  304. package/dist/storage/cache/provider.d.ts.map +1 -0
  305. package/dist/storage/cache/provider.js +0 -0
  306. package/dist/storage/cache/providers/index.cjs +31 -0
  307. package/dist/storage/cache/providers/index.d.ts +8 -0
  308. package/dist/storage/cache/providers/index.d.ts.map +1 -0
  309. package/dist/storage/cache/providers/index.js +7 -0
  310. package/dist/storage/cache/providers/memory.cjs +40 -0
  311. package/dist/storage/cache/providers/memory.d.ts +17 -0
  312. package/dist/storage/cache/providers/memory.d.ts.map +1 -0
  313. package/dist/storage/cache/providers/memory.js +17 -0
  314. package/dist/storage/cache/providers/redis.cjs +66 -0
  315. package/dist/storage/cache/providers/redis.d.ts +20 -0
  316. package/dist/storage/cache/providers/redis.d.ts.map +1 -0
  317. package/dist/storage/cache/providers/redis.js +33 -0
  318. package/dist/storage/cache/registry.cjs +50 -0
  319. package/dist/storage/cache/registry.d.ts +42 -0
  320. package/dist/storage/cache/registry.d.ts.map +1 -0
  321. package/dist/storage/cache/registry.js +26 -0
  322. package/dist/storage/cache/schemas.cjs +6 -2
  323. package/dist/storage/cache/schemas.d.ts +2 -3
  324. package/dist/storage/cache/schemas.d.ts.map +1 -1
  325. package/dist/storage/cache/schemas.js +3 -1
  326. package/dist/storage/database/factory.cjs +8 -47
  327. package/dist/storage/database/factory.d.ts +34 -8
  328. package/dist/storage/database/factory.d.ts.map +1 -1
  329. package/dist/storage/database/factory.js +8 -37
  330. package/dist/storage/database/index.cjs +58 -0
  331. package/dist/storage/database/index.d.ts +45 -0
  332. package/dist/storage/database/index.d.ts.map +1 -0
  333. package/dist/storage/database/index.js +37 -0
  334. package/dist/storage/database/provider.cjs +16 -0
  335. package/dist/storage/database/provider.d.ts +56 -0
  336. package/dist/storage/database/provider.d.ts.map +1 -0
  337. package/dist/storage/database/provider.js +0 -0
  338. package/dist/storage/database/providers/index.cjs +34 -0
  339. package/dist/storage/database/providers/index.d.ts +9 -0
  340. package/dist/storage/database/providers/index.d.ts.map +1 -0
  341. package/dist/storage/database/providers/index.js +9 -0
  342. package/dist/storage/database/providers/memory.cjs +40 -0
  343. package/dist/storage/database/providers/memory.d.ts +16 -0
  344. package/dist/storage/database/providers/memory.d.ts.map +1 -0
  345. package/dist/storage/database/providers/memory.js +17 -0
  346. package/dist/storage/database/providers/postgres.cjs +62 -0
  347. package/dist/storage/database/providers/postgres.d.ts +19 -0
  348. package/dist/storage/database/providers/postgres.d.ts.map +1 -0
  349. package/dist/storage/database/providers/postgres.js +29 -0
  350. package/dist/storage/database/providers/sqlite.cjs +66 -0
  351. package/dist/storage/database/providers/sqlite.d.ts +20 -0
  352. package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
  353. package/dist/storage/database/providers/sqlite.js +33 -0
  354. package/dist/storage/database/registry.cjs +50 -0
  355. package/dist/storage/database/registry.d.ts +42 -0
  356. package/dist/storage/database/registry.d.ts.map +1 -0
  357. package/dist/storage/database/registry.js +26 -0
  358. package/dist/storage/database/schemas.cjs +8 -2
  359. package/dist/storage/database/schemas.d.ts +3 -4
  360. package/dist/storage/database/schemas.d.ts.map +1 -1
  361. package/dist/storage/database/schemas.js +4 -1
  362. package/dist/storage/error-codes.cjs +6 -0
  363. package/dist/storage/error-codes.d.ts +7 -1
  364. package/dist/storage/error-codes.d.ts.map +1 -1
  365. package/dist/storage/error-codes.js +6 -0
  366. package/dist/storage/errors.cjs +80 -0
  367. package/dist/storage/errors.d.ts +24 -0
  368. package/dist/storage/errors.d.ts.map +1 -1
  369. package/dist/storage/errors.js +80 -0
  370. package/dist/storage/index.cjs +47 -4
  371. package/dist/storage/index.d.ts +34 -8
  372. package/dist/storage/index.d.ts.map +1 -1
  373. package/dist/storage/index.js +32 -3
  374. package/dist/storage/schemas.cjs +4 -0
  375. package/dist/storage/schemas.d.ts +17 -50
  376. package/dist/storage/schemas.d.ts.map +1 -1
  377. package/dist/storage/schemas.js +5 -1
  378. package/dist/storage/storage-manager.cjs +6 -6
  379. package/dist/storage/storage-manager.d.ts.map +1 -1
  380. package/dist/storage/storage-manager.js +3 -3
  381. package/dist/systemPrompt/in-built-prompts.cjs +7 -6
  382. package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
  383. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  384. package/dist/systemPrompt/in-built-prompts.js +6 -5
  385. package/dist/systemPrompt/registry.cjs +2 -2
  386. package/dist/systemPrompt/registry.d.ts +1 -1
  387. package/dist/systemPrompt/registry.d.ts.map +1 -1
  388. package/dist/systemPrompt/registry.js +2 -2
  389. package/dist/systemPrompt/schemas.cjs +2 -2
  390. package/dist/systemPrompt/schemas.d.ts +13 -13
  391. package/dist/systemPrompt/schemas.js +2 -2
  392. package/dist/tools/custom-tool-registry.cjs +64 -0
  393. package/dist/tools/custom-tool-registry.d.ts +120 -0
  394. package/dist/tools/custom-tool-registry.d.ts.map +1 -0
  395. package/dist/tools/custom-tool-registry.js +40 -0
  396. package/dist/tools/custom-tool-schema-registry.cjs +164 -0
  397. package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
  398. package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
  399. package/dist/tools/custom-tool-schema-registry.js +140 -0
  400. package/dist/tools/error-codes.cjs +3 -0
  401. package/dist/tools/error-codes.d.ts +4 -1
  402. package/dist/tools/error-codes.d.ts.map +1 -1
  403. package/dist/tools/error-codes.js +3 -0
  404. package/dist/tools/errors.cjs +41 -0
  405. package/dist/tools/errors.d.ts +17 -0
  406. package/dist/tools/errors.d.ts.map +1 -1
  407. package/dist/tools/errors.js +41 -0
  408. package/dist/tools/index.cjs +13 -1
  409. package/dist/tools/index.d.ts +4 -0
  410. package/dist/tools/index.d.ts.map +1 -1
  411. package/dist/tools/index.js +11 -1
  412. package/dist/tools/internal-tools/constants.cjs +3 -9
  413. package/dist/tools/internal-tools/constants.d.ts +1 -1
  414. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  415. package/dist/tools/internal-tools/constants.js +3 -9
  416. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
  417. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
  418. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
  419. package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
  420. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
  421. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
  422. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
  423. package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
  424. package/dist/tools/internal-tools/provider.cjs +150 -23
  425. package/dist/tools/internal-tools/provider.d.ts +55 -10
  426. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  427. package/dist/tools/internal-tools/provider.js +150 -23
  428. package/dist/tools/internal-tools/registry.cjs +18 -43
  429. package/dist/tools/internal-tools/registry.d.ts +4 -4
  430. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  431. package/dist/tools/internal-tools/registry.js +18 -43
  432. package/dist/tools/schemas.cjs +20 -0
  433. package/dist/tools/schemas.d.ts +43 -1
  434. package/dist/tools/schemas.d.ts.map +1 -1
  435. package/dist/tools/schemas.js +16 -0
  436. package/dist/tools/tool-manager.cjs +140 -13
  437. package/dist/tools/tool-manager.d.ts +22 -3
  438. package/dist/tools/tool-manager.d.ts.map +1 -1
  439. package/dist/tools/tool-manager.js +140 -13
  440. package/dist/tools/types.d.ts +43 -0
  441. package/dist/tools/types.d.ts.map +1 -1
  442. package/dist/utils/api-key-resolver.cjs +19 -1
  443. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  444. package/dist/utils/api-key-resolver.js +19 -1
  445. package/dist/utils/index.cjs +0 -2
  446. package/dist/utils/index.d.ts +0 -1
  447. package/dist/utils/index.d.ts.map +1 -1
  448. package/dist/utils/index.js +0 -1
  449. package/dist/utils/redactor.cjs +18 -3
  450. package/dist/utils/redactor.d.ts +0 -7
  451. package/dist/utils/redactor.d.ts.map +1 -1
  452. package/dist/utils/redactor.js +18 -3
  453. package/dist/utils/service-initializer.cjs +9 -35
  454. package/dist/utils/service-initializer.d.ts.map +1 -1
  455. package/dist/utils/service-initializer.js +9 -35
  456. package/package.json +5 -2
  457. package/dist/context/compression/overflow.d.ts.map +0 -1
  458. package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
  459. package/dist/context/compression/types.d.ts.map +0 -1
  460. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
  461. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
  462. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
  463. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
  464. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
  465. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
  466. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
  467. package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
  468. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
  469. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
  470. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
  471. package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
  472. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
  473. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
  474. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
  475. package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
  476. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
  477. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
  478. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
  479. package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
  480. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
  481. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
  482. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
  483. package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
  484. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
  485. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
  486. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
  487. package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
  488. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
  489. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
  490. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
  491. package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
  492. package/dist/utils/env-file.cjs +0 -118
  493. package/dist/utils/env-file.d.ts +0 -5
  494. package/dist/utils/env-file.d.ts.map +0 -1
  495. package/dist/utils/env-file.js +0 -85
  496. /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
  497. /package/dist/context/{compression → compaction}/types.cjs +0 -0
@@ -0,0 +1,101 @@
1
+ import { z } from 'zod';
2
+ import type { DextoPlugin } from './types.js';
3
+ import { BaseRegistry } from '../providers/base-registry.js';
4
+ /**
5
+ * Context passed to plugin providers when creating plugin instances.
6
+ * Provides access to configuration and optional services.
7
+ */
8
+ export interface PluginCreationContext {
9
+ /** Plugin-specific configuration from YAML */
10
+ config: Record<string, any>;
11
+ /** Whether this plugin should block execution on errors */
12
+ blocking: boolean;
13
+ /** Execution priority (lower runs first) */
14
+ priority: number;
15
+ }
16
+ /**
17
+ * Plugin provider interface.
18
+ * Allows external code to register plugin providers that create plugin instances.
19
+ * Follows the same pattern as BlobStoreProvider, CompressionProvider, and CustomToolProvider.
20
+ *
21
+ * @template TType - The provider type discriminator (must match config.type)
22
+ * @template TConfig - The provider configuration type (must include { type: TType })
23
+ */
24
+ export interface PluginProvider<TType extends string = string, TConfig extends {
25
+ type: TType;
26
+ } = any> {
27
+ /** Unique type identifier matching the discriminator in config */
28
+ type: TType;
29
+ /** Zod schema for runtime validation of provider configuration */
30
+ configSchema: z.ZodType<TConfig, any, any>;
31
+ /**
32
+ * Factory function to create a plugin instance from validated configuration
33
+ * @param config - Validated configuration matching configSchema
34
+ * @param context - Plugin creation context with priority and blocking settings
35
+ * @returns A DextoPlugin instance
36
+ */
37
+ create(config: TConfig, context: PluginCreationContext): DextoPlugin;
38
+ /** Optional metadata for display and categorization */
39
+ metadata?: {
40
+ displayName: string;
41
+ description: string;
42
+ /** Which extension points this plugin implements */
43
+ extensionPoints?: Array<'beforeLLMRequest' | 'beforeToolCall' | 'afterToolResult' | 'beforeResponse'>;
44
+ /** Category for grouping (e.g., 'security', 'logging', 'integration') */
45
+ category?: string;
46
+ };
47
+ }
48
+ /**
49
+ * Registry for plugin providers.
50
+ * Follows the same pattern as BlobStoreRegistry, CompressionRegistry, and CustomToolRegistry.
51
+ *
52
+ * Plugin providers can be registered from external code (CLI, apps, distributions)
53
+ * and are validated at runtime using their Zod schemas.
54
+ *
55
+ * Extends BaseRegistry for common registry functionality.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Define a plugin provider
60
+ * const myPluginProvider: PluginProvider<'my-plugin', MyPluginConfig> = {
61
+ * type: 'my-plugin',
62
+ * configSchema: MyPluginConfigSchema,
63
+ * create(config, context) {
64
+ * return new MyPlugin(config, context);
65
+ * },
66
+ * metadata: {
67
+ * displayName: 'My Plugin',
68
+ * description: 'Does something useful',
69
+ * extensionPoints: ['beforeLLMRequest'],
70
+ * category: 'custom',
71
+ * },
72
+ * };
73
+ *
74
+ * // Register in dexto.config.ts
75
+ * import { pluginRegistry } from '@dexto/core';
76
+ * pluginRegistry.register(myPluginProvider);
77
+ *
78
+ * // Use in agent YAML
79
+ * plugins:
80
+ * registry:
81
+ * - type: my-plugin
82
+ * priority: 50
83
+ * blocking: false
84
+ * config:
85
+ * key: value
86
+ * ```
87
+ */
88
+ export declare class PluginRegistry extends BaseRegistry<PluginProvider> {
89
+ constructor();
90
+ /**
91
+ * Get all registered plugin providers.
92
+ * Alias for getAll() to match other registry patterns.
93
+ */
94
+ getProviders(): PluginProvider[];
95
+ }
96
+ /**
97
+ * Global singleton instance of the plugin registry.
98
+ * Plugin providers should be registered at application startup.
99
+ */
100
+ export declare const pluginRegistry: PluginRegistry;
101
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,YAAY,EAA6B,MAAM,+BAA+B,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAC3B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,GAAG;IAErC,kEAAkE;IAClE,IAAI,EAAE,KAAK,CAAC;IAEZ,kEAAkE;IAClE,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,WAAW,CAAC;IAErE,uDAAuD;IACvD,QAAQ,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,oDAAoD;QACpD,eAAe,CAAC,EAAE,KAAK,CACnB,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,CAC/E,CAAC;QACF,yEAAyE;QACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,cAAc,CAAC;;IAK5D;;;OAGG;IACH,YAAY,IAAI,cAAc,EAAE;CAGnC;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ import { DextoRuntimeError, ErrorScope, ErrorType } from "../errors/index.js";
3
+ import { PluginErrorCode } from "./error-codes.js";
4
+ import { BaseRegistry } from "../providers/base-registry.js";
5
+ const pluginRegistryErrorFactory = {
6
+ alreadyRegistered: (type) => new DextoRuntimeError(
7
+ PluginErrorCode.PLUGIN_PROVIDER_ALREADY_REGISTERED,
8
+ ErrorScope.PLUGIN,
9
+ ErrorType.USER,
10
+ `Plugin provider '${type}' is already registered`,
11
+ { type },
12
+ "Each plugin provider type can only be registered once"
13
+ ),
14
+ notFound: (type, availableTypes) => new DextoRuntimeError(
15
+ PluginErrorCode.PLUGIN_PROVIDER_NOT_FOUND,
16
+ ErrorScope.PLUGIN,
17
+ ErrorType.USER,
18
+ `Plugin provider '${type}' not found`,
19
+ { type, available: availableTypes },
20
+ `Available plugin providers: ${availableTypes.join(", ") || "none"}`
21
+ )
22
+ };
23
+ class PluginRegistry extends BaseRegistry {
24
+ constructor() {
25
+ super(pluginRegistryErrorFactory);
26
+ }
27
+ /**
28
+ * Get all registered plugin providers.
29
+ * Alias for getAll() to match other registry patterns.
30
+ */
31
+ getProviders() {
32
+ return this.getAll();
33
+ }
34
+ }
35
+ const pluginRegistry = new PluginRegistry();
36
+ export {
37
+ PluginRegistry,
38
+ pluginRegistry
39
+ };
@@ -20,10 +20,18 @@ var schemas_exports = {};
20
20
  __export(schemas_exports, {
21
21
  BuiltInPluginConfigSchema: () => BuiltInPluginConfigSchema,
22
22
  CustomPluginConfigSchema: () => CustomPluginConfigSchema,
23
- PluginsConfigSchema: () => PluginsConfigSchema
23
+ PluginsConfigSchema: () => PluginsConfigSchema,
24
+ RegistryPluginConfigSchema: () => RegistryPluginConfigSchema
24
25
  });
25
26
  module.exports = __toCommonJS(schemas_exports);
26
27
  var import_zod = require("zod");
28
+ const RegistryPluginConfigSchema = import_zod.z.object({
29
+ type: import_zod.z.string().describe("Plugin provider type (must be registered in pluginRegistry)"),
30
+ enabled: import_zod.z.boolean().default(true).describe("Whether this plugin is enabled"),
31
+ blocking: import_zod.z.boolean().describe("If true, plugin errors will halt execution"),
32
+ priority: import_zod.z.number().int().describe("Execution priority (lower runs first)"),
33
+ config: import_zod.z.record(import_zod.z.any()).optional().describe("Plugin-specific configuration")
34
+ }).strict();
27
35
  const CustomPluginConfigSchema = import_zod.z.object({
28
36
  name: import_zod.z.string().describe("Unique name for the plugin"),
29
37
  module: import_zod.z.string().describe(
@@ -48,14 +56,18 @@ const PluginsConfigSchema = import_zod.z.object({
48
56
  responseSanitizer: BuiltInPluginConfigSchema.optional().describe(
49
57
  "Response sanitizer plugin for output sanitization"
50
58
  ),
51
- // Custom plugins - array of plugin configurations
52
- custom: import_zod.z.array(CustomPluginConfigSchema).default([]).describe("Array of custom plugin configurations")
59
+ // Custom plugins - array of plugin configurations (loaded from file paths)
60
+ custom: import_zod.z.array(CustomPluginConfigSchema).default([]).describe("Array of custom plugin configurations (loaded from file paths)"),
61
+ // Registry plugins - array of plugin configurations (loaded from pluginRegistry)
62
+ registry: import_zod.z.array(RegistryPluginConfigSchema).default([]).describe("Array of registry plugin configurations (loaded from pluginRegistry)")
53
63
  }).strict().default({
54
- custom: []
64
+ custom: [],
65
+ registry: []
55
66
  }).describe("Plugin system configuration");
56
67
  // Annotate the CommonJS export names for ESM import in node:
57
68
  0 && (module.exports = {
58
69
  BuiltInPluginConfigSchema,
59
70
  CustomPluginConfigSchema,
60
- PluginsConfigSchema
71
+ PluginsConfigSchema,
72
+ RegistryPluginConfigSchema
61
73
  });
@@ -1,4 +1,28 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Schema for registry-based plugin configuration.
4
+ * These plugins are loaded from the pluginRegistry (programmatically registered).
5
+ */
6
+ export declare const RegistryPluginConfigSchema: z.ZodObject<{
7
+ type: z.ZodString;
8
+ enabled: z.ZodDefault<z.ZodBoolean>;
9
+ blocking: z.ZodBoolean;
10
+ priority: z.ZodNumber;
11
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
12
+ }, "strict", z.ZodTypeAny, {
13
+ type: string;
14
+ enabled: boolean;
15
+ priority: number;
16
+ blocking: boolean;
17
+ config?: Record<string, any> | undefined;
18
+ }, {
19
+ type: string;
20
+ priority: number;
21
+ blocking: boolean;
22
+ config?: Record<string, any> | undefined;
23
+ enabled?: boolean | undefined;
24
+ }>;
25
+ export type RegistryPluginConfig = z.output<typeof RegistryPluginConfigSchema>;
2
26
  /**
3
27
  * Schema for custom plugin configuration (loaded from file paths)
4
28
  */
@@ -13,14 +37,14 @@ export declare const CustomPluginConfigSchema: z.ZodObject<{
13
37
  name: string;
14
38
  enabled: boolean;
15
39
  priority: number;
16
- module: string;
17
40
  blocking: boolean;
41
+ module: string;
18
42
  config?: Record<string, any> | undefined;
19
43
  }, {
20
44
  name: string;
21
45
  priority: number;
22
- module: string;
23
46
  blocking: boolean;
47
+ module: string;
24
48
  config?: Record<string, any> | undefined;
25
49
  enabled?: boolean | undefined;
26
50
  }>;
@@ -43,7 +67,7 @@ export declare const BuiltInPluginConfigSchema: z.ZodObject<{
43
67
  }, z.ZodTypeAny, "passthrough">>;
44
68
  /**
45
69
  * Main plugins configuration schema
46
- * Supports both built-in plugins (by name) and custom plugins (with module paths)
70
+ * Supports built-in plugins (by name), custom plugins (file paths), and registry plugins (programmatic)
47
71
  */
48
72
  export declare const PluginsConfigSchema: z.ZodDefault<z.ZodObject<{
49
73
  contentPolicy: z.ZodOptional<z.ZodObject<{
@@ -83,13 +107,32 @@ export declare const PluginsConfigSchema: z.ZodDefault<z.ZodObject<{
83
107
  name: string;
84
108
  enabled: boolean;
85
109
  priority: number;
86
- module: string;
87
110
  blocking: boolean;
111
+ module: string;
88
112
  config?: Record<string, any> | undefined;
89
113
  }, {
90
114
  name: string;
91
115
  priority: number;
116
+ blocking: boolean;
92
117
  module: string;
118
+ config?: Record<string, any> | undefined;
119
+ enabled?: boolean | undefined;
120
+ }>, "many">>;
121
+ registry: z.ZodDefault<z.ZodArray<z.ZodObject<{
122
+ type: z.ZodString;
123
+ enabled: z.ZodDefault<z.ZodBoolean>;
124
+ blocking: z.ZodBoolean;
125
+ priority: z.ZodNumber;
126
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
127
+ }, "strict", z.ZodTypeAny, {
128
+ type: string;
129
+ enabled: boolean;
130
+ priority: number;
131
+ blocking: boolean;
132
+ config?: Record<string, any> | undefined;
133
+ }, {
134
+ type: string;
135
+ priority: number;
93
136
  blocking: boolean;
94
137
  config?: Record<string, any> | undefined;
95
138
  enabled?: boolean | undefined;
@@ -99,7 +142,14 @@ export declare const PluginsConfigSchema: z.ZodDefault<z.ZodObject<{
99
142
  name: string;
100
143
  enabled: boolean;
101
144
  priority: number;
145
+ blocking: boolean;
102
146
  module: string;
147
+ config?: Record<string, any> | undefined;
148
+ }[];
149
+ registry: {
150
+ type: string;
151
+ enabled: boolean;
152
+ priority: number;
103
153
  blocking: boolean;
104
154
  config?: Record<string, any> | undefined;
105
155
  }[];
@@ -117,8 +167,8 @@ export declare const PluginsConfigSchema: z.ZodDefault<z.ZodObject<{
117
167
  custom?: {
118
168
  name: string;
119
169
  priority: number;
120
- module: string;
121
170
  blocking: boolean;
171
+ module: string;
122
172
  config?: Record<string, any> | undefined;
123
173
  enabled?: boolean | undefined;
124
174
  }[] | undefined;
@@ -132,6 +182,13 @@ export declare const PluginsConfigSchema: z.ZodDefault<z.ZodObject<{
132
182
  blocking: z.ZodOptional<z.ZodBoolean>;
133
183
  enabled: z.ZodDefault<z.ZodBoolean>;
134
184
  }, z.ZodTypeAny, "passthrough"> | undefined;
185
+ registry?: {
186
+ type: string;
187
+ priority: number;
188
+ blocking: boolean;
189
+ config?: Record<string, any> | undefined;
190
+ enabled?: boolean | undefined;
191
+ }[] | undefined;
135
192
  }>>;
136
193
  export type PluginsConfig = z.input<typeof PluginsConfigSchema>;
137
194
  export type ValidatedPluginsConfig = z.output<typeof PluginsConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/plugins/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAaxB,CAAC;AAEd;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;gCAQc,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBY,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/plugins/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;EAQ1B,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAaxB,CAAC;AAEd;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;gCAQc,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BY,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1,5 +1,12 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  import { z } from "zod";
3
+ const RegistryPluginConfigSchema = z.object({
4
+ type: z.string().describe("Plugin provider type (must be registered in pluginRegistry)"),
5
+ enabled: z.boolean().default(true).describe("Whether this plugin is enabled"),
6
+ blocking: z.boolean().describe("If true, plugin errors will halt execution"),
7
+ priority: z.number().int().describe("Execution priority (lower runs first)"),
8
+ config: z.record(z.any()).optional().describe("Plugin-specific configuration")
9
+ }).strict();
3
10
  const CustomPluginConfigSchema = z.object({
4
11
  name: z.string().describe("Unique name for the plugin"),
5
12
  module: z.string().describe(
@@ -24,13 +31,17 @@ const PluginsConfigSchema = z.object({
24
31
  responseSanitizer: BuiltInPluginConfigSchema.optional().describe(
25
32
  "Response sanitizer plugin for output sanitization"
26
33
  ),
27
- // Custom plugins - array of plugin configurations
28
- custom: z.array(CustomPluginConfigSchema).default([]).describe("Array of custom plugin configurations")
34
+ // Custom plugins - array of plugin configurations (loaded from file paths)
35
+ custom: z.array(CustomPluginConfigSchema).default([]).describe("Array of custom plugin configurations (loaded from file paths)"),
36
+ // Registry plugins - array of plugin configurations (loaded from pluginRegistry)
37
+ registry: z.array(RegistryPluginConfigSchema).default([]).describe("Array of registry plugin configurations (loaded from pluginRegistry)")
29
38
  }).strict().default({
30
- custom: []
39
+ custom: [],
40
+ registry: []
31
41
  }).describe("Plugin system configuration");
32
42
  export {
33
43
  BuiltInPluginConfigSchema,
34
44
  CustomPluginConfigSchema,
35
- PluginsConfigSchema
45
+ PluginsConfigSchema,
46
+ RegistryPluginConfigSchema
36
47
  };
@@ -0,0 +1,147 @@
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 base_registry_exports = {};
20
+ __export(base_registry_exports, {
21
+ BaseRegistry: () => BaseRegistry,
22
+ defaultErrorFactory: () => defaultErrorFactory
23
+ });
24
+ module.exports = __toCommonJS(base_registry_exports);
25
+ var import_zod = require("zod");
26
+ const defaultErrorFactory = {
27
+ alreadyRegistered: (type) => new Error(`Provider '${type}' is already registered`),
28
+ notFound: (type, availableTypes) => new Error(
29
+ `Provider '${type}' not found. Available: ${availableTypes.join(", ") || "none"}`
30
+ )
31
+ };
32
+ class BaseRegistry {
33
+ providers = /* @__PURE__ */ new Map();
34
+ errorFactory;
35
+ /**
36
+ * Create a new registry instance.
37
+ *
38
+ * @param errorFactory - Optional custom error factory for registry errors.
39
+ * If not provided, uses default Error instances.
40
+ */
41
+ constructor(errorFactory = defaultErrorFactory) {
42
+ this.errorFactory = errorFactory;
43
+ }
44
+ /**
45
+ * Register a provider.
46
+ *
47
+ * @param provider - The provider to register
48
+ * @throws Error if a provider with the same type is already registered
49
+ */
50
+ register(provider) {
51
+ if (this.providers.has(provider.type)) {
52
+ throw this.errorFactory.alreadyRegistered(provider.type);
53
+ }
54
+ this.providers.set(provider.type, provider);
55
+ }
56
+ /**
57
+ * Unregister a provider.
58
+ *
59
+ * @param type - The provider type to unregister
60
+ * @returns true if the provider was unregistered, false if it wasn't registered
61
+ */
62
+ unregister(type) {
63
+ return this.providers.delete(type);
64
+ }
65
+ /**
66
+ * Get a registered provider by type.
67
+ *
68
+ * @param type - The provider type identifier
69
+ * @returns The provider if found, undefined otherwise
70
+ */
71
+ get(type) {
72
+ return this.providers.get(type);
73
+ }
74
+ /**
75
+ * Check if a provider is registered.
76
+ *
77
+ * @param type - The provider type identifier
78
+ * @returns true if registered, false otherwise
79
+ */
80
+ has(type) {
81
+ return this.providers.has(type);
82
+ }
83
+ /**
84
+ * Get all registered provider types.
85
+ *
86
+ * @returns Array of provider type identifiers
87
+ */
88
+ getTypes() {
89
+ return Array.from(this.providers.keys());
90
+ }
91
+ /**
92
+ * Get all registered providers.
93
+ *
94
+ * @returns Array of providers
95
+ */
96
+ getAll() {
97
+ return Array.from(this.providers.values());
98
+ }
99
+ /**
100
+ * Get the number of registered providers.
101
+ *
102
+ * @returns Count of registered providers
103
+ */
104
+ get size() {
105
+ return this.providers.size;
106
+ }
107
+ /**
108
+ * Clear all registered providers.
109
+ * Primarily useful for testing.
110
+ */
111
+ clear() {
112
+ this.providers.clear();
113
+ }
114
+ /**
115
+ * Validate a configuration against a provider's schema.
116
+ *
117
+ * This method is only available for registries with providers that have
118
+ * a configSchema property. It:
119
+ * 1. Extracts the 'type' field to identify the provider
120
+ * 2. Looks up the provider in the registry
121
+ * 3. Validates the full config against the provider's schema
122
+ * 4. Returns the validated configuration
123
+ *
124
+ * @param config - Raw configuration object with a 'type' field
125
+ * @returns Validated configuration object
126
+ * @throws Error if type is missing, provider not found, or validation fails
127
+ */
128
+ validateConfig(config) {
129
+ const typeSchema = import_zod.z.object({ type: import_zod.z.string() }).passthrough();
130
+ const parsed = typeSchema.parse(config);
131
+ const provider = this.providers.get(parsed.type);
132
+ if (!provider) {
133
+ throw this.errorFactory.notFound(parsed.type, this.getTypes());
134
+ }
135
+ if (!("configSchema" in provider) || !provider.configSchema) {
136
+ throw new Error(
137
+ `Provider '${parsed.type}' does not support config validation (no configSchema)`
138
+ );
139
+ }
140
+ return provider.configSchema.parse(config);
141
+ }
142
+ }
143
+ // Annotate the CommonJS export names for ESM import in node:
144
+ 0 && (module.exports = {
145
+ BaseRegistry,
146
+ defaultErrorFactory
147
+ });
@@ -0,0 +1,147 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Base provider interface - all providers must have a type identifier.
4
+ */
5
+ export interface BaseProvider {
6
+ /** Unique type identifier for this provider */
7
+ type: string;
8
+ }
9
+ /**
10
+ * Provider with config schema - for providers that support validateConfig.
11
+ */
12
+ export interface ConfigurableProvider extends BaseProvider {
13
+ /** Zod schema for validating provider configuration */
14
+ configSchema: z.ZodType<any, any, any>;
15
+ }
16
+ /**
17
+ * Error factory interface for customizing registry errors.
18
+ * Each registry can provide its own error implementations.
19
+ */
20
+ export interface RegistryErrorFactory {
21
+ /** Called when attempting to register a provider that already exists */
22
+ alreadyRegistered(type: string): Error;
23
+ /** Called when looking up a provider that doesn't exist (for validateConfig) */
24
+ notFound(type: string, availableTypes: string[]): Error;
25
+ }
26
+ /**
27
+ * Default error factory that throws plain Error instances.
28
+ * Used when no custom error factory is provided.
29
+ */
30
+ export declare const defaultErrorFactory: RegistryErrorFactory;
31
+ /**
32
+ * Generic base registry for provider patterns.
33
+ *
34
+ * This class provides common registry functionality used across Dexto's
35
+ * provider system (blob storage, compression, custom tools, etc.).
36
+ *
37
+ * Features:
38
+ * - Type-safe provider registration and retrieval
39
+ * - Duplicate registration prevention
40
+ * - Customizable error handling via error factory
41
+ * - Optional config validation for providers with schemas
42
+ *
43
+ * @template TProvider - The provider type (must extend BaseProvider)
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Define your provider interface
48
+ * interface MyProvider extends BaseProvider {
49
+ * type: string;
50
+ * configSchema: z.ZodType<any>;
51
+ * create(config: any): MyInstance;
52
+ * }
53
+ *
54
+ * // Create a registry
55
+ * class MyRegistry extends BaseRegistry<MyProvider> {
56
+ * constructor() {
57
+ * super({
58
+ * alreadyRegistered: (type) => new MyError(`Provider ${type} exists`),
59
+ * notFound: (type, available) => new MyError(`Unknown: ${type}`),
60
+ * });
61
+ * }
62
+ * }
63
+ *
64
+ * // Use the registry
65
+ * const registry = new MyRegistry();
66
+ * registry.register(myProvider);
67
+ * const provider = registry.get('my-type');
68
+ * ```
69
+ */
70
+ export declare class BaseRegistry<TProvider extends BaseProvider> {
71
+ protected providers: Map<string, TProvider>;
72
+ protected errorFactory: RegistryErrorFactory;
73
+ /**
74
+ * Create a new registry instance.
75
+ *
76
+ * @param errorFactory - Optional custom error factory for registry errors.
77
+ * If not provided, uses default Error instances.
78
+ */
79
+ constructor(errorFactory?: RegistryErrorFactory);
80
+ /**
81
+ * Register a provider.
82
+ *
83
+ * @param provider - The provider to register
84
+ * @throws Error if a provider with the same type is already registered
85
+ */
86
+ register(provider: TProvider): void;
87
+ /**
88
+ * Unregister a provider.
89
+ *
90
+ * @param type - The provider type to unregister
91
+ * @returns true if the provider was unregistered, false if it wasn't registered
92
+ */
93
+ unregister(type: string): boolean;
94
+ /**
95
+ * Get a registered provider by type.
96
+ *
97
+ * @param type - The provider type identifier
98
+ * @returns The provider if found, undefined otherwise
99
+ */
100
+ get(type: string): TProvider | undefined;
101
+ /**
102
+ * Check if a provider is registered.
103
+ *
104
+ * @param type - The provider type identifier
105
+ * @returns true if registered, false otherwise
106
+ */
107
+ has(type: string): boolean;
108
+ /**
109
+ * Get all registered provider types.
110
+ *
111
+ * @returns Array of provider type identifiers
112
+ */
113
+ getTypes(): string[];
114
+ /**
115
+ * Get all registered providers.
116
+ *
117
+ * @returns Array of providers
118
+ */
119
+ getAll(): TProvider[];
120
+ /**
121
+ * Get the number of registered providers.
122
+ *
123
+ * @returns Count of registered providers
124
+ */
125
+ get size(): number;
126
+ /**
127
+ * Clear all registered providers.
128
+ * Primarily useful for testing.
129
+ */
130
+ clear(): void;
131
+ /**
132
+ * Validate a configuration against a provider's schema.
133
+ *
134
+ * This method is only available for registries with providers that have
135
+ * a configSchema property. It:
136
+ * 1. Extracts the 'type' field to identify the provider
137
+ * 2. Looks up the provider in the registry
138
+ * 3. Validates the full config against the provider's schema
139
+ * 4. Returns the validated configuration
140
+ *
141
+ * @param config - Raw configuration object with a 'type' field
142
+ * @returns Validated configuration object
143
+ * @throws Error if type is missing, provider not found, or validation fails
144
+ */
145
+ validateConfig(config: unknown): any;
146
+ }
147
+ //# sourceMappingURL=base-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-registry.d.ts","sourceRoot":"","sources":["../../src/providers/base-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACtD,uDAAuD;IACvD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,wEAAwE;IACxE,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACvC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,oBAMjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,YAAY,CAAC,SAAS,SAAS,YAAY;IACpD,SAAS,CAAC,SAAS,yBAAgC;IACnD,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAE7C;;;;;OAKG;gBACS,YAAY,GAAE,oBAA0C;IAIpE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAOnC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIxC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;;;OAIG;IACH,QAAQ,IAAI,MAAM,EAAE;IAIpB;;;;OAIG;IACH,MAAM,IAAI,SAAS,EAAE;IAIrB;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,GAAG;CAqBvC"}