@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,26 @@
1
+ import "../../chunk-PTJYTZNU.js";
2
+ import { StorageError } from "../errors.js";
3
+ import { BaseRegistry } from "../../providers/base-registry.js";
4
+ const blobStoreErrorFactory = {
5
+ alreadyRegistered: (type) => StorageError.blobProviderAlreadyRegistered(type),
6
+ notFound: (type, availableTypes) => StorageError.unknownBlobProvider(type, availableTypes)
7
+ };
8
+ class BlobStoreRegistry extends BaseRegistry {
9
+ constructor() {
10
+ super(blobStoreErrorFactory);
11
+ }
12
+ /**
13
+ * Get all registered providers.
14
+ * Alias for getAll() for backward compatibility.
15
+ *
16
+ * @returns Array of providers
17
+ */
18
+ getProviders() {
19
+ return this.getAll();
20
+ }
21
+ }
22
+ const blobStoreRegistry = new BlobStoreRegistry();
23
+ export {
24
+ BlobStoreRegistry,
25
+ blobStoreRegistry
26
+ };
@@ -19,7 +19,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var schemas_exports = {};
20
20
  __export(schemas_exports, {
21
21
  BLOB_STORE_TYPES: () => BLOB_STORE_TYPES,
22
- BlobStoreConfigSchema: () => BlobStoreConfigSchema
22
+ BlobStoreConfigSchema: () => BlobStoreConfigSchema,
23
+ InMemoryBlobStoreSchema: () => InMemoryBlobStoreSchema,
24
+ LocalBlobStoreSchema: () => LocalBlobStoreSchema
23
25
  });
24
26
  module.exports = __toCommonJS(schemas_exports);
25
27
  var import_zod = require("zod");
@@ -38,18 +40,13 @@ const LocalBlobStoreSchema = import_zod.z.object({
38
40
  maxTotalSize: import_zod.z.number().int().positive().optional().default(1024 * 1024 * 1024).describe("Maximum total storage size in bytes"),
39
41
  cleanupAfterDays: import_zod.z.number().int().positive().optional().default(30).describe("Auto-cleanup blobs older than N days")
40
42
  }).strict();
41
- const BlobStoreConfigSchema = import_zod.z.discriminatedUnion("type", [InMemoryBlobStoreSchema, LocalBlobStoreSchema], {
42
- errorMap: (issue, ctx) => {
43
- if (issue.code === import_zod.z.ZodIssueCode.invalid_union_discriminator) {
44
- return {
45
- message: `Invalid blob store type. Expected 'in-memory' or 'local'.`
46
- };
47
- }
48
- return { message: ctx.defaultError };
49
- }
50
- }).describe("Blob store configuration");
43
+ const BlobStoreConfigSchema = import_zod.z.object({
44
+ type: import_zod.z.string().describe("Blob store provider type")
45
+ }).passthrough().describe("Blob store configuration (validated at runtime by provider registry)");
51
46
  // Annotate the CommonJS export names for ESM import in node:
52
47
  0 && (module.exports = {
53
48
  BLOB_STORE_TYPES,
54
- BlobStoreConfigSchema
49
+ BlobStoreConfigSchema,
50
+ InMemoryBlobStoreSchema,
51
+ LocalBlobStoreSchema
55
52
  });
@@ -1,4 +1,8 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Built-in blob store types (core providers only).
4
+ * Custom providers registered at runtime are not included in this list.
5
+ */
2
6
  export declare const BLOB_STORE_TYPES: readonly ["in-memory", "local"];
3
7
  export type BlobStoreType = (typeof BLOB_STORE_TYPES)[number];
4
8
  /**
@@ -42,39 +46,40 @@ declare const LocalBlobStoreSchema: z.ZodObject<{
42
46
  }>;
43
47
  export type LocalBlobStoreConfig = z.output<typeof LocalBlobStoreSchema>;
44
48
  /**
45
- * Blob store configuration using discriminated union
49
+ * Blob store configuration schema.
50
+ *
51
+ * This schema uses `.passthrough()` to accept any provider-specific configuration.
52
+ * It only validates that a `type` field exists as a string.
53
+ *
54
+ * Detailed validation happens at runtime via blobStoreRegistry.validateConfig(),
55
+ * which looks up the registered provider and validates against its specific schema.
56
+ *
57
+ * This approach allows:
58
+ * - Custom providers to be registered at the CLI/server layer
59
+ * - Each provider to define its own configuration structure
60
+ * - Type safety through the provider registry pattern
61
+ *
62
+ * Example flow:
63
+ * 1. Config passes this schema (basic structure check)
64
+ * 2. blobStoreRegistry.validateConfig(config) validates against provider schema
65
+ * 3. Provider's create() method receives validated, typed config
46
66
  */
47
- export declare const BlobStoreConfigSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
48
- type: z.ZodLiteral<"in-memory">;
49
- maxBlobSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
50
- maxTotalSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
51
- }, "strict", z.ZodTypeAny, {
52
- type: "in-memory";
53
- maxBlobSize: number;
54
- maxTotalSize: number;
55
- }, {
56
- type: "in-memory";
57
- maxBlobSize?: number | undefined;
58
- maxTotalSize?: number | undefined;
59
- }>, z.ZodObject<{
60
- type: z.ZodLiteral<"local">;
61
- storePath: z.ZodString;
62
- maxBlobSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
63
- maxTotalSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
64
- cleanupAfterDays: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
65
- }, "strict", z.ZodTypeAny, {
66
- type: "local";
67
- maxBlobSize: number;
68
- maxTotalSize: number;
69
- storePath: string;
70
- cleanupAfterDays: number;
71
- }, {
72
- type: "local";
73
- storePath: string;
74
- maxBlobSize?: number | undefined;
75
- maxTotalSize?: number | undefined;
76
- cleanupAfterDays?: number | undefined;
77
- }>]>;
78
- export type BlobStoreConfig = z.output<typeof BlobStoreConfigSchema>;
79
- export {};
67
+ export declare const BlobStoreConfigSchema: z.ZodObject<{
68
+ type: z.ZodString;
69
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
70
+ type: z.ZodString;
71
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
72
+ type: z.ZodString;
73
+ }, z.ZodTypeAny, "passthrough">>;
74
+ /**
75
+ * Blob store configuration type.
76
+ *
77
+ * Union type including built-in providers (local, in-memory) and a catch-all
78
+ * for custom providers registered at runtime.
79
+ */
80
+ export type BlobStoreConfig = InMemoryBlobStoreConfig | LocalBlobStoreConfig | {
81
+ type: string;
82
+ [key: string]: any;
83
+ };
84
+ export { InMemoryBlobStoreSchema, LocalBlobStoreSchema };
80
85
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB,iCAAkC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;EAkBhB,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E;;GAEG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EA8Bb,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWO,CAAC;AAE1C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,iCAAkC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;EAkBhB,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E;;GAEG;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EA8Bb,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB;;;;;;gCAKmD,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACrB,uBAAuB,GACvB,oBAAoB,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAG3C,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -15,17 +15,12 @@ const LocalBlobStoreSchema = z.object({
15
15
  maxTotalSize: z.number().int().positive().optional().default(1024 * 1024 * 1024).describe("Maximum total storage size in bytes"),
16
16
  cleanupAfterDays: z.number().int().positive().optional().default(30).describe("Auto-cleanup blobs older than N days")
17
17
  }).strict();
18
- const BlobStoreConfigSchema = z.discriminatedUnion("type", [InMemoryBlobStoreSchema, LocalBlobStoreSchema], {
19
- errorMap: (issue, ctx) => {
20
- if (issue.code === z.ZodIssueCode.invalid_union_discriminator) {
21
- return {
22
- message: `Invalid blob store type. Expected 'in-memory' or 'local'.`
23
- };
24
- }
25
- return { message: ctx.defaultError };
26
- }
27
- }).describe("Blob store configuration");
18
+ const BlobStoreConfigSchema = z.object({
19
+ type: z.string().describe("Blob store provider type")
20
+ }).passthrough().describe("Blob store configuration (validated at runtime by provider registry)");
28
21
  export {
29
22
  BLOB_STORE_TYPES,
30
- BlobStoreConfigSchema
23
+ BlobStoreConfigSchema,
24
+ InMemoryBlobStoreSchema,
25
+ LocalBlobStoreSchema
31
26
  };
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,48 +15,22 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var factory_exports = {};
30
20
  __export(factory_exports, {
31
21
  createCache: () => createCache
32
22
  });
33
23
  module.exports = __toCommonJS(factory_exports);
34
- var import_memory_cache_store = require("./memory-cache-store.js");
35
- var import_errors = require("../errors.js");
36
- let RedisStore = null;
24
+ var import_registry = require("./registry.js");
37
25
  async function createCache(config, logger) {
38
- switch (config.type) {
39
- case "redis":
40
- return createRedisStore(config, logger);
41
- case "in-memory":
42
- default:
43
- logger.info("Using in-memory cache store");
44
- return new import_memory_cache_store.MemoryCacheStore();
45
- }
46
- }
47
- async function createRedisStore(config, logger) {
48
- try {
49
- if (!RedisStore) {
50
- const module2 = await import("./redis-store.js");
51
- RedisStore = module2.RedisStore;
52
- }
53
- logger.info(`Connecting to Redis at ${config.host}:${config.port}`);
54
- return new RedisStore(config, logger);
55
- } catch (error) {
56
- const err = error;
57
- if (err.code === "ERR_MODULE_NOT_FOUND") {
58
- throw import_errors.StorageError.dependencyNotInstalled("Redis", "ioredis", "npm install ioredis");
59
- }
60
- throw error;
26
+ const validatedConfig = import_registry.cacheRegistry.validateConfig(config);
27
+ const provider = import_registry.cacheRegistry.get(validatedConfig.type);
28
+ if (!provider) {
29
+ throw new Error(`Provider '${validatedConfig.type}' not found in registry`);
61
30
  }
31
+ const providerName = provider.metadata?.displayName || validatedConfig.type;
32
+ logger.info(`Using ${providerName} cache`);
33
+ return provider.create(validatedConfig, logger);
62
34
  }
63
35
  // Annotate the CommonJS export names for ESM import in node:
64
36
  0 && (module.exports = {
@@ -1,12 +1,37 @@
1
1
  import type { Cache } from './types.js';
2
- import type { CacheConfig } from '../schemas.js';
3
2
  import type { IDextoLogger } from '../../logger/v2/types.js';
4
3
  /**
5
- * Create a cache store based on configuration.
6
- * Handles lazy loading of optional dependencies.
7
- * Throws StorageError.dependencyNotInstalled if required package is missing.
8
- * @param config Cache configuration
9
- * @param logger Logger instance for logging
4
+ * Create a cache based on configuration using the provider registry.
5
+ *
6
+ * This factory function:
7
+ * 1. Validates the configuration against the registered provider's schema
8
+ * 2. Looks up the provider in the registry
9
+ * 3. Calls the provider's create method to instantiate the cache
10
+ *
11
+ * The configuration type is determined at runtime by the 'type' field,
12
+ * which must match a registered provider. Custom providers can be registered
13
+ * via cacheRegistry.register() before calling this function.
14
+ *
15
+ * @param config - Cache configuration with a 'type' discriminator
16
+ * @param logger - Logger instance for the cache
17
+ * @returns A Cache implementation
18
+ * @throws Error if the provider type is not registered or validation fails
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Using built-in provider
23
+ * const cache = await createCache({ type: 'redis', host: 'localhost' }, logger);
24
+ *
25
+ * // Using custom provider (registered beforehand)
26
+ * import { cacheRegistry } from '@dexto/core';
27
+ * import { memcachedProvider } from './storage/memcached-provider.js';
28
+ *
29
+ * cacheRegistry.register(memcachedProvider);
30
+ * const cache = await createCache({ type: 'memcached', servers: ['...'] }, logger);
31
+ * ```
10
32
  */
11
- export declare function createCache(config: CacheConfig, logger: IDextoLogger): Promise<Cache>;
33
+ export declare function createCache(config: {
34
+ type: string;
35
+ [key: string]: any;
36
+ }, logger: IDextoLogger): Promise<Cache>;
12
37
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/storage/cache/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAW7D;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAU3F"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/storage/cache/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5C,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,KAAK,CAAC,CAgBhB"}
@@ -1,32 +1,14 @@
1
1
  import "../../chunk-PTJYTZNU.js";
2
- import { MemoryCacheStore } from "./memory-cache-store.js";
3
- import { StorageError } from "../errors.js";
4
- let RedisStore = null;
2
+ import { cacheRegistry } from "./registry.js";
5
3
  async function createCache(config, logger) {
6
- switch (config.type) {
7
- case "redis":
8
- return createRedisStore(config, logger);
9
- case "in-memory":
10
- default:
11
- logger.info("Using in-memory cache store");
12
- return new MemoryCacheStore();
13
- }
14
- }
15
- async function createRedisStore(config, logger) {
16
- try {
17
- if (!RedisStore) {
18
- const module = await import("./redis-store.js");
19
- RedisStore = module.RedisStore;
20
- }
21
- logger.info(`Connecting to Redis at ${config.host}:${config.port}`);
22
- return new RedisStore(config, logger);
23
- } catch (error) {
24
- const err = error;
25
- if (err.code === "ERR_MODULE_NOT_FOUND") {
26
- throw StorageError.dependencyNotInstalled("Redis", "ioredis", "npm install ioredis");
27
- }
28
- throw error;
4
+ const validatedConfig = cacheRegistry.validateConfig(config);
5
+ const provider = cacheRegistry.get(validatedConfig.type);
6
+ if (!provider) {
7
+ throw new Error(`Provider '${validatedConfig.type}' not found in registry`);
29
8
  }
9
+ const providerName = provider.metadata?.displayName || validatedConfig.type;
10
+ logger.info(`Using ${providerName} cache`);
11
+ return provider.create(validatedConfig, logger);
30
12
  }
31
13
  export {
32
14
  createCache
@@ -0,0 +1,53 @@
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 cache_exports = {};
20
+ __export(cache_exports, {
21
+ CACHE_TYPES: () => import_schemas.CACHE_TYPES,
22
+ CacheConfigSchema: () => import_schemas.CacheConfigSchema,
23
+ CacheRegistry: () => import_registry2.CacheRegistry,
24
+ InMemoryCacheSchema: () => import_schemas.InMemoryCacheSchema,
25
+ MemoryCacheStore: () => import_memory_cache_store.MemoryCacheStore,
26
+ RedisCacheSchema: () => import_schemas.RedisCacheSchema,
27
+ cacheRegistry: () => import_registry2.cacheRegistry,
28
+ createCache: () => import_factory.createCache
29
+ });
30
+ module.exports = __toCommonJS(cache_exports);
31
+ var import_registry = require("./registry.js");
32
+ var import_providers = require("./providers/index.js");
33
+ var import_factory = require("./factory.js");
34
+ var import_registry2 = require("./registry.js");
35
+ var import_schemas = require("./schemas.js");
36
+ var import_memory_cache_store = require("./memory-cache-store.js");
37
+ if (!import_registry.cacheRegistry.has("in-memory")) {
38
+ import_registry.cacheRegistry.register(import_providers.inMemoryCacheProvider);
39
+ }
40
+ if (!import_registry.cacheRegistry.has("redis")) {
41
+ import_registry.cacheRegistry.register(import_providers.redisCacheProvider);
42
+ }
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ CACHE_TYPES,
46
+ CacheConfigSchema,
47
+ CacheRegistry,
48
+ InMemoryCacheSchema,
49
+ MemoryCacheStore,
50
+ RedisCacheSchema,
51
+ cacheRegistry,
52
+ createCache
53
+ });
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Cache Module
3
+ *
4
+ * This module provides a flexible caching system with support for
5
+ * multiple backends through a provider pattern.
6
+ *
7
+ * ## Built-in Providers
8
+ * - `in-memory`: Store data in RAM (for testing/development)
9
+ * - `redis`: Store data in Redis server
10
+ *
11
+ * ## Custom Providers
12
+ * Custom providers (e.g., Memcached, Hazelcast) can be registered at the
13
+ * CLI/server layer before configuration loading.
14
+ *
15
+ * ## Usage
16
+ *
17
+ * ### Using built-in providers
18
+ * ```typescript
19
+ * import { createCache } from '@dexto/core';
20
+ *
21
+ * const cache = await createCache({ type: 'redis', host: 'localhost' }, logger);
22
+ * ```
23
+ *
24
+ * ### Registering custom providers
25
+ * ```typescript
26
+ * import { cacheRegistry, type CacheProvider } from '@dexto/core';
27
+ *
28
+ * const memcachedProvider: CacheProvider<'memcached', MemcachedConfig> = {
29
+ * type: 'memcached',
30
+ * configSchema: MemcachedConfigSchema,
31
+ * create: (config, logger) => new MemcachedCache(config, logger),
32
+ * };
33
+ *
34
+ * cacheRegistry.register(memcachedProvider);
35
+ * const cache = await createCache({ type: 'memcached', servers: ['...'] }, logger);
36
+ * ```
37
+ */
38
+ export { createCache } from './factory.js';
39
+ export { cacheRegistry, CacheRegistry } from './registry.js';
40
+ export type { CacheProvider } from './provider.js';
41
+ export type { Cache } from './types.js';
42
+ export { CACHE_TYPES, CacheConfigSchema, InMemoryCacheSchema, RedisCacheSchema, type CacheType, type CacheConfig, type InMemoryCacheConfig, type RedisCacheConfig, } from './schemas.js';
43
+ export { MemoryCacheStore } from './memory-cache-store.js';
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAiBH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import "../../chunk-PTJYTZNU.js";
2
+ import { cacheRegistry } from "./registry.js";
3
+ import { inMemoryCacheProvider, redisCacheProvider } from "./providers/index.js";
4
+ if (!cacheRegistry.has("in-memory")) {
5
+ cacheRegistry.register(inMemoryCacheProvider);
6
+ }
7
+ if (!cacheRegistry.has("redis")) {
8
+ cacheRegistry.register(redisCacheProvider);
9
+ }
10
+ import { createCache } from "./factory.js";
11
+ import { cacheRegistry as cacheRegistry2, CacheRegistry } from "./registry.js";
12
+ import {
13
+ CACHE_TYPES,
14
+ CacheConfigSchema,
15
+ InMemoryCacheSchema,
16
+ RedisCacheSchema
17
+ } from "./schemas.js";
18
+ import { MemoryCacheStore } from "./memory-cache-store.js";
19
+ export {
20
+ CACHE_TYPES,
21
+ CacheConfigSchema,
22
+ CacheRegistry,
23
+ InMemoryCacheSchema,
24
+ MemoryCacheStore,
25
+ RedisCacheSchema,
26
+ cacheRegistry2 as cacheRegistry,
27
+ createCache
28
+ };
@@ -0,0 +1,16 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var provider_exports = {};
16
+ module.exports = __toCommonJS(provider_exports);
@@ -0,0 +1,56 @@
1
+ import type { z } from 'zod';
2
+ import type { Cache } from './types.js';
3
+ import type { IDextoLogger } from '../../logger/v2/types.js';
4
+ /**
5
+ * Provider interface for creating cache instances.
6
+ *
7
+ * This interface uses TypeScript generics to enforce type safety:
8
+ * - TType: The literal type string (e.g., 'redis', 'in-memory')
9
+ * - TConfig: The configuration type with discriminator { type: TType }
10
+ *
11
+ * This ensures that the provider type matches the config type discriminator,
12
+ * providing compile-time safety for provider implementations.
13
+ */
14
+ export interface CacheProvider<TType extends string = string, TConfig extends {
15
+ type: TType;
16
+ } = any> {
17
+ /**
18
+ * Unique identifier for this provider (e.g., 'redis', 'in-memory', 'memcached').
19
+ * Must match the 'type' field in the configuration.
20
+ */
21
+ type: TType;
22
+ /**
23
+ * Zod schema for validating provider-specific configuration.
24
+ * The schema must output TConfig type.
25
+ *
26
+ * Note: Uses z.ZodType with relaxed generics to allow input/output type variance.
27
+ * This is necessary because Zod schemas with `.optional().default()` have
28
+ * input types that include undefined, but output types that don't.
29
+ */
30
+ configSchema: z.ZodType<TConfig, any, any>;
31
+ /**
32
+ * Factory function to create a Cache instance.
33
+ *
34
+ * Unlike blob store providers (which are sync), cache providers may return
35
+ * a Promise to support lazy loading of optional dependencies (e.g., ioredis).
36
+ *
37
+ * @param config - Validated configuration specific to this provider
38
+ * @param logger - Logger instance for the cache
39
+ * @returns A Cache implementation (or Promise for async providers)
40
+ */
41
+ create(config: TConfig, logger: IDextoLogger): Cache | Promise<Cache>;
42
+ /**
43
+ * Optional metadata for documentation, UIs, and discovery.
44
+ */
45
+ metadata?: {
46
+ /** Human-readable name (e.g., "Redis", "Memcached") */
47
+ displayName: string;
48
+ /** Brief description of this cache backend */
49
+ description: string;
50
+ /** Whether this provider requires network connectivity */
51
+ requiresNetwork?: boolean;
52
+ /** Whether this provider supports TTL (time-to-live) */
53
+ supportsTTL?: boolean;
54
+ };
55
+ }
56
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/storage/cache/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa,CAC1B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,OAAO,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,GAAG;IAErC;;;OAGG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,EAAE;QACP,uDAAuD;QACvD,WAAW,EAAE,MAAM,CAAC;QACpB,8CAA8C;QAC9C,WAAW,EAAE,MAAM,CAAC;QACpB,0DAA0D;QAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,wDAAwD;QACxD,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACL"}
File without changes
@@ -0,0 +1,31 @@
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 providers_exports = {};
20
+ __export(providers_exports, {
21
+ inMemoryCacheProvider: () => import_memory.inMemoryCacheProvider,
22
+ redisCacheProvider: () => import_redis.redisCacheProvider
23
+ });
24
+ module.exports = __toCommonJS(providers_exports);
25
+ var import_memory = require("./memory.js");
26
+ var import_redis = require("./redis.js");
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ inMemoryCacheProvider,
30
+ redisCacheProvider
31
+ });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Built-in cache providers.
3
+ *
4
+ * These providers are automatically registered when importing from @dexto/core.
5
+ */
6
+ export { inMemoryCacheProvider } from './memory.js';
7
+ export { redisCacheProvider } from './redis.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/cache/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "../../../chunk-PTJYTZNU.js";
2
+ import { inMemoryCacheProvider } from "./memory.js";
3
+ import { redisCacheProvider } from "./redis.js";
4
+ export {
5
+ inMemoryCacheProvider,
6
+ redisCacheProvider
7
+ };
@@ -0,0 +1,40 @@
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 memory_exports = {};
20
+ __export(memory_exports, {
21
+ inMemoryCacheProvider: () => inMemoryCacheProvider
22
+ });
23
+ module.exports = __toCommonJS(memory_exports);
24
+ var import_schemas = require("../schemas.js");
25
+ var import_memory_cache_store = require("../memory-cache-store.js");
26
+ const inMemoryCacheProvider = {
27
+ type: "in-memory",
28
+ configSchema: import_schemas.InMemoryCacheSchema,
29
+ create: (_config, _logger) => new import_memory_cache_store.MemoryCacheStore(),
30
+ metadata: {
31
+ displayName: "In-Memory",
32
+ description: "Store cache data in RAM (ephemeral, for testing and development)",
33
+ requiresNetwork: false,
34
+ supportsTTL: true
35
+ }
36
+ };
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ inMemoryCacheProvider
40
+ });