@dexto/core 1.5.8 → 1.6.1

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 (658) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +318 -159
  3. package/dist/agent/DextoAgent.d.ts +94 -56
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +315 -156
  6. package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
  7. package/dist/agent/agent-options.d.ts +53 -0
  8. package/dist/agent/agent-options.d.ts.map +1 -0
  9. package/dist/agent/agentCard.cjs +1 -1
  10. package/dist/agent/errors.cjs +2 -2
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +1 -6
  13. package/dist/agent/index.d.ts +3 -2
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/index.js +1 -7
  16. package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
  17. package/dist/agent/runtime-config.d.ts +53 -0
  18. package/dist/agent/runtime-config.d.ts.map +1 -0
  19. package/dist/agent/schemas.cjs +2 -104
  20. package/dist/agent/schemas.d.ts +8 -9197
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +1 -109
  23. package/dist/agent/state-manager.d.ts +5 -5
  24. package/dist/agent/state-manager.d.ts.map +1 -1
  25. package/dist/approval/error-codes.cjs +1 -1
  26. package/dist/approval/error-codes.d.ts +1 -1
  27. package/dist/approval/error-codes.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.cjs +5 -5
  30. package/dist/approval/errors.d.ts +2 -2
  31. package/dist/approval/errors.d.ts.map +1 -1
  32. package/dist/approval/errors.js +5 -5
  33. package/dist/approval/index.cjs +8 -8
  34. package/dist/approval/index.d.ts +2 -2
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +8 -8
  37. package/dist/approval/manager.cjs +163 -83
  38. package/dist/approval/manager.d.ts +50 -43
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +161 -81
  41. package/dist/approval/schemas.cjs +47 -32
  42. package/dist/approval/schemas.d.ts +291 -97
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +43 -28
  45. package/dist/approval/types.cjs +1 -1
  46. package/dist/approval/types.d.ts +14 -14
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +1 -1
  49. package/dist/context/compaction/index.cjs +2 -23
  50. package/dist/context/compaction/index.d.ts +1 -7
  51. package/dist/context/compaction/index.d.ts.map +1 -1
  52. package/dist/context/compaction/index.js +1 -16
  53. package/dist/context/compaction/strategies/noop.cjs +19 -1
  54. package/dist/context/compaction/strategies/noop.d.ts +13 -3
  55. package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
  56. package/dist/context/compaction/strategies/noop.js +19 -1
  57. package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
  58. package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
  59. package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
  61. package/dist/context/compaction/types.d.ts +40 -8
  62. package/dist/context/compaction/types.d.ts.map +1 -1
  63. package/dist/context/manager.cjs +4 -2
  64. package/dist/context/manager.d.ts +5 -3
  65. package/dist/context/manager.d.ts.map +1 -1
  66. package/dist/context/manager.js +4 -2
  67. package/dist/context/types.d.ts +3 -0
  68. package/dist/context/types.d.ts.map +1 -1
  69. package/dist/context/utils.cjs +2 -2
  70. package/dist/context/utils.d.ts +14 -14
  71. package/dist/context/utils.d.ts.map +1 -1
  72. package/dist/errors/result-bridge.d.ts +2 -2
  73. package/dist/errors/result-bridge.d.ts.map +1 -1
  74. package/dist/errors/types.cjs +1 -1
  75. package/dist/errors/types.d.ts +3 -3
  76. package/dist/errors/types.d.ts.map +1 -1
  77. package/dist/errors/types.js +1 -1
  78. package/dist/events/index.cjs +11 -1
  79. package/dist/events/index.d.ts +48 -7
  80. package/dist/events/index.d.ts.map +1 -1
  81. package/dist/events/index.js +11 -1
  82. package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
  83. package/dist/hooks/builtins/content-policy.d.ts +24 -0
  84. package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
  85. package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
  86. package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
  87. package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
  88. package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
  89. package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
  90. package/dist/hooks/error-codes.cjs +43 -0
  91. package/dist/hooks/error-codes.d.ts +34 -0
  92. package/dist/hooks/error-codes.d.ts.map +1 -0
  93. package/dist/hooks/error-codes.js +20 -0
  94. package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
  95. package/dist/hooks/index.d.ts +14 -0
  96. package/dist/hooks/index.d.ts.map +1 -0
  97. package/dist/hooks/index.js +11 -0
  98. package/dist/hooks/manager.cjs +354 -0
  99. package/dist/hooks/manager.d.ts +103 -0
  100. package/dist/hooks/manager.d.ts.map +1 -0
  101. package/dist/hooks/manager.js +331 -0
  102. package/dist/{plugins → hooks}/types.d.ts +26 -45
  103. package/dist/hooks/types.d.ts.map +1 -0
  104. package/dist/index.browser.cjs +13 -12
  105. package/dist/index.browser.d.ts +5 -5
  106. package/dist/index.browser.d.ts.map +1 -1
  107. package/dist/index.browser.js +8 -7
  108. package/dist/index.cjs +5 -7
  109. package/dist/index.d.ts +2 -3
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +2 -3
  112. package/dist/llm/errors.cjs +1 -1
  113. package/dist/llm/executor/stream-processor.cjs +131 -11
  114. package/dist/llm/executor/stream-processor.d.ts +8 -5
  115. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  116. package/dist/llm/executor/stream-processor.js +131 -11
  117. package/dist/llm/executor/turn-executor.cjs +49 -54
  118. package/dist/llm/executor/turn-executor.d.ts +7 -8
  119. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  120. package/dist/llm/executor/turn-executor.js +49 -54
  121. package/dist/llm/formatters/vercel.cjs +2 -2
  122. package/dist/llm/formatters/vercel.d.ts +2 -2
  123. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  124. package/dist/llm/providers/local/schemas.d.ts +12 -12
  125. package/dist/llm/registry/auto-update.d.ts +2 -2
  126. package/dist/llm/registry/auto-update.d.ts.map +1 -1
  127. package/dist/llm/registry/index.d.ts +3 -3
  128. package/dist/llm/registry/index.d.ts.map +1 -1
  129. package/dist/llm/resolver.cjs +2 -2
  130. package/dist/llm/resolver.d.ts +4 -4
  131. package/dist/llm/resolver.d.ts.map +1 -1
  132. package/dist/llm/schemas.cjs +67 -104
  133. package/dist/llm/schemas.d.ts +10 -149
  134. package/dist/llm/schemas.d.ts.map +1 -1
  135. package/dist/llm/schemas.js +64 -101
  136. package/dist/llm/services/factory.cjs +2 -3
  137. package/dist/llm/services/factory.d.ts +3 -4
  138. package/dist/llm/services/factory.d.ts.map +1 -1
  139. package/dist/llm/services/factory.js +2 -3
  140. package/dist/llm/services/vercel.cjs +8 -15
  141. package/dist/llm/services/vercel.d.ts +6 -7
  142. package/dist/llm/services/vercel.d.ts.map +1 -1
  143. package/dist/llm/services/vercel.js +8 -15
  144. package/dist/llm/validation.cjs +1 -1
  145. package/dist/llm/validation.d.ts +2 -2
  146. package/dist/llm/validation.d.ts.map +1 -1
  147. package/dist/logger/browser.cjs +4 -4
  148. package/dist/logger/browser.d.ts +4 -4
  149. package/dist/logger/browser.d.ts.map +1 -1
  150. package/dist/logger/browser.js +3 -3
  151. package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
  152. package/dist/logger/default-logger-factory.d.ts +301 -0
  153. package/dist/logger/default-logger-factory.d.ts.map +1 -0
  154. package/dist/logger/default-logger-factory.js +18 -0
  155. package/dist/logger/factory.d.ts +2 -2
  156. package/dist/logger/factory.d.ts.map +1 -1
  157. package/dist/logger/index.cjs +7 -2
  158. package/dist/logger/index.d.ts +5 -3
  159. package/dist/logger/index.d.ts.map +1 -1
  160. package/dist/logger/index.js +8 -2
  161. package/dist/logger/logger.cjs +4 -4
  162. package/dist/logger/logger.d.ts +4 -4
  163. package/dist/logger/logger.d.ts.map +1 -1
  164. package/dist/logger/logger.js +3 -3
  165. package/dist/logger/v2/dexto-logger.cjs +35 -0
  166. package/dist/logger/v2/dexto-logger.d.ts +22 -3
  167. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  168. package/dist/logger/v2/dexto-logger.js +35 -0
  169. package/dist/logger/v2/schemas.d.ts +6 -6
  170. package/dist/logger/v2/test-utils.cjs +2 -0
  171. package/dist/logger/v2/test-utils.d.ts +5 -5
  172. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  173. package/dist/logger/v2/test-utils.js +2 -0
  174. package/dist/logger/v2/transport-factory.d.ts +3 -3
  175. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  176. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  177. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  178. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  179. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  180. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  181. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  182. package/dist/logger/v2/types.cjs +1 -1
  183. package/dist/logger/v2/types.d.ts +22 -9
  184. package/dist/logger/v2/types.d.ts.map +1 -1
  185. package/dist/logger/v2/types.js +1 -1
  186. package/dist/mcp/errors.cjs +2 -2
  187. package/dist/mcp/errors.d.ts.map +1 -1
  188. package/dist/mcp/manager.cjs +16 -11
  189. package/dist/mcp/manager.d.ts +16 -13
  190. package/dist/mcp/manager.d.ts.map +1 -1
  191. package/dist/mcp/manager.js +17 -12
  192. package/dist/mcp/mcp-client.cjs +25 -20
  193. package/dist/mcp/mcp-client.d.ts +5 -5
  194. package/dist/mcp/mcp-client.d.ts.map +1 -1
  195. package/dist/mcp/mcp-client.js +20 -15
  196. package/dist/mcp/resolver.cjs +1 -1
  197. package/dist/mcp/schemas.cjs +5 -5
  198. package/dist/mcp/schemas.d.ts +19 -19
  199. package/dist/mcp/schemas.js +2 -2
  200. package/dist/mcp/types.d.ts +7 -7
  201. package/dist/mcp/types.d.ts.map +1 -1
  202. package/dist/memory/manager.d.ts +2 -2
  203. package/dist/memory/manager.d.ts.map +1 -1
  204. package/dist/memory/schemas.d.ts +2 -2
  205. package/dist/prompts/errors.cjs +3 -3
  206. package/dist/prompts/errors.d.ts.map +1 -1
  207. package/dist/prompts/prompt-manager.d.ts +3 -3
  208. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  209. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  210. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  211. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  212. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  213. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  214. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  215. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  216. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  217. package/dist/prompts/schemas.d.ts +7 -7
  218. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  219. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  220. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  221. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  222. package/dist/resources/errors.cjs +2 -2
  223. package/dist/resources/errors.d.ts.map +1 -1
  224. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  225. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  226. package/dist/resources/handlers/factory.d.ts +3 -3
  227. package/dist/resources/handlers/factory.d.ts.map +1 -1
  228. package/dist/resources/handlers/filesystem-handler.d.ts +2 -2
  229. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  230. package/dist/resources/index.cjs +7 -9
  231. package/dist/resources/index.d.ts +3 -3
  232. package/dist/resources/index.d.ts.map +1 -1
  233. package/dist/resources/index.js +5 -10
  234. package/dist/resources/manager.cjs +77 -74
  235. package/dist/resources/manager.d.ts +16 -7
  236. package/dist/resources/manager.d.ts.map +1 -1
  237. package/dist/resources/manager.js +77 -74
  238. package/dist/resources/schemas.cjs +6 -26
  239. package/dist/resources/schemas.d.ts +8 -100
  240. package/dist/resources/schemas.d.ts.map +1 -1
  241. package/dist/resources/schemas.js +4 -23
  242. package/dist/search/search-service.d.ts +2 -2
  243. package/dist/search/search-service.d.ts.map +1 -1
  244. package/dist/session/chat-session.cjs +15 -25
  245. package/dist/session/chat-session.d.ts +7 -5
  246. package/dist/session/chat-session.d.ts.map +1 -1
  247. package/dist/session/chat-session.js +16 -26
  248. package/dist/session/errors.cjs +2 -2
  249. package/dist/session/errors.d.ts.map +1 -1
  250. package/dist/session/history/database.cjs +1 -1
  251. package/dist/session/history/database.d.ts +4 -4
  252. package/dist/session/history/database.d.ts.map +1 -1
  253. package/dist/session/history/factory.d.ts +3 -3
  254. package/dist/session/history/factory.d.ts.map +1 -1
  255. package/dist/session/history/memory.d.ts +4 -4
  256. package/dist/session/history/memory.d.ts.map +1 -1
  257. package/dist/session/history/types.d.ts +2 -2
  258. package/dist/session/history/types.d.ts.map +1 -1
  259. package/dist/session/index.cjs +3 -0
  260. package/dist/session/index.d.ts +2 -0
  261. package/dist/session/index.d.ts.map +1 -1
  262. package/dist/session/index.js +2 -0
  263. package/dist/session/message-queue.d.ts +2 -2
  264. package/dist/session/message-queue.d.ts.map +1 -1
  265. package/dist/session/session-manager.cjs +67 -9
  266. package/dist/session/session-manager.d.ts +46 -7
  267. package/dist/session/session-manager.d.ts.map +1 -1
  268. package/dist/session/session-manager.js +67 -9
  269. package/dist/session/title-generator.cjs +2 -2
  270. package/dist/session/title-generator.d.ts +2 -2
  271. package/dist/session/title-generator.d.ts.map +1 -1
  272. package/dist/storage/blob/index.cjs +0 -40
  273. package/dist/storage/blob/index.d.ts +2 -44
  274. package/dist/storage/blob/index.d.ts.map +1 -1
  275. package/dist/storage/blob/index.js +0 -30
  276. package/dist/storage/cache/index.cjs +0 -37
  277. package/dist/storage/cache/index.d.ts +0 -42
  278. package/dist/storage/cache/index.d.ts.map +1 -1
  279. package/dist/storage/cache/index.js +0 -28
  280. package/dist/storage/database/index.cjs +0 -42
  281. package/dist/storage/database/index.d.ts +0 -43
  282. package/dist/storage/database/index.d.ts.map +1 -1
  283. package/dist/storage/database/index.js +0 -37
  284. package/dist/storage/error-codes.cjs +1 -6
  285. package/dist/storage/error-codes.d.ts +2 -7
  286. package/dist/storage/error-codes.d.ts.map +1 -1
  287. package/dist/storage/error-codes.js +1 -6
  288. package/dist/storage/errors.cjs +18 -82
  289. package/dist/storage/errors.d.ts +4 -24
  290. package/dist/storage/errors.d.ts.map +1 -1
  291. package/dist/storage/errors.js +16 -80
  292. package/dist/storage/index.cjs +8 -69
  293. package/dist/storage/index.d.ts +11 -66
  294. package/dist/storage/index.d.ts.map +1 -1
  295. package/dist/storage/index.js +6 -50
  296. package/dist/storage/storage-manager.cjs +9 -25
  297. package/dist/storage/storage-manager.d.ts +11 -15
  298. package/dist/storage/storage-manager.d.ts.map +1 -1
  299. package/dist/storage/storage-manager.js +8 -23
  300. package/dist/storage/types.d.ts +0 -1
  301. package/dist/storage/types.d.ts.map +1 -1
  302. package/dist/systemPrompt/contributors.d.ts +4 -4
  303. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  304. package/dist/systemPrompt/errors.cjs +2 -2
  305. package/dist/systemPrompt/errors.d.ts.map +1 -1
  306. package/dist/systemPrompt/in-built-prompts.cjs +5 -5
  307. package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
  308. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  309. package/dist/systemPrompt/in-built-prompts.js +5 -5
  310. package/dist/systemPrompt/manager.cjs +1 -5
  311. package/dist/systemPrompt/manager.d.ts +2 -3
  312. package/dist/systemPrompt/manager.d.ts.map +1 -1
  313. package/dist/systemPrompt/manager.js +1 -5
  314. package/dist/systemPrompt/schemas.d.ts +5 -5
  315. package/dist/systemPrompt/types.d.ts +11 -0
  316. package/dist/systemPrompt/types.d.ts.map +1 -1
  317. package/dist/telemetry/index.cjs +3 -0
  318. package/dist/telemetry/index.d.ts +2 -0
  319. package/dist/telemetry/index.d.ts.map +1 -1
  320. package/dist/telemetry/index.js +2 -0
  321. package/dist/telemetry/utils.d.ts +4 -4
  322. package/dist/telemetry/utils.d.ts.map +1 -1
  323. package/dist/test-utils/in-memory-storage.cjs +288 -0
  324. package/dist/test-utils/in-memory-storage.js +252 -0
  325. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  326. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  327. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  328. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  329. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  330. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  331. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  332. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  333. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  334. package/dist/tools/define-tool.d.ts +11 -0
  335. package/dist/tools/define-tool.d.ts.map +1 -0
  336. package/dist/tools/define-tool.js +7 -0
  337. package/dist/tools/display-types.d.ts +10 -0
  338. package/dist/tools/display-types.d.ts.map +1 -1
  339. package/dist/tools/error-codes.cjs +2 -2
  340. package/dist/tools/error-codes.d.ts +2 -2
  341. package/dist/tools/error-codes.d.ts.map +1 -1
  342. package/dist/tools/error-codes.js +2 -2
  343. package/dist/tools/errors.cjs +11 -23
  344. package/dist/tools/errors.d.ts +4 -10
  345. package/dist/tools/errors.d.ts.map +1 -1
  346. package/dist/tools/errors.js +9 -21
  347. package/dist/tools/index.cjs +6 -9
  348. package/dist/tools/index.d.ts +3 -4
  349. package/dist/tools/index.d.ts.map +1 -1
  350. package/dist/tools/index.js +3 -7
  351. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  352. package/dist/tools/pattern-utils.d.ts +20 -0
  353. package/dist/tools/pattern-utils.d.ts.map +1 -0
  354. package/dist/tools/pattern-utils.js +10 -0
  355. package/dist/{storage/cache/factory.cjs → tools/presentation.cjs} +26 -15
  356. package/dist/tools/presentation.d.ts +11 -0
  357. package/dist/tools/presentation.d.ts.map +1 -0
  358. package/dist/tools/presentation.js +24 -0
  359. package/dist/tools/schemas.cjs +14 -40
  360. package/dist/tools/schemas.d.ts +6 -50
  361. package/dist/tools/schemas.d.ts.map +1 -1
  362. package/dist/tools/schemas.js +11 -32
  363. package/dist/tools/tool-call-metadata.cjs +3 -3
  364. package/dist/tools/tool-call-metadata.d.ts +1 -1
  365. package/dist/tools/tool-call-metadata.d.ts.map +1 -1
  366. package/dist/tools/tool-call-metadata.js +3 -3
  367. package/dist/tools/tool-manager.cjs +608 -392
  368. package/dist/tools/tool-manager.d.ts +79 -98
  369. package/dist/tools/tool-manager.d.ts.map +1 -1
  370. package/dist/tools/tool-manager.js +608 -396
  371. package/dist/tools/types.d.ts +223 -45
  372. package/dist/tools/types.d.ts.map +1 -1
  373. package/dist/utils/error-conversion.d.ts +2 -2
  374. package/dist/utils/error-conversion.d.ts.map +1 -1
  375. package/dist/utils/path.cjs +10 -1
  376. package/dist/utils/path.d.ts +7 -4
  377. package/dist/utils/path.d.ts.map +1 -1
  378. package/dist/utils/path.js +10 -1
  379. package/dist/utils/result.cjs +1 -1
  380. package/dist/utils/result.d.ts.map +1 -1
  381. package/dist/utils/schema.cjs +9 -5
  382. package/dist/utils/schema.d.ts +4 -2
  383. package/dist/utils/schema.d.ts.map +1 -1
  384. package/dist/utils/schema.js +9 -5
  385. package/dist/utils/service-initializer.cjs +51 -56
  386. package/dist/utils/service-initializer.d.ts +17 -14
  387. package/dist/utils/service-initializer.d.ts.map +1 -1
  388. package/dist/utils/service-initializer.js +51 -56
  389. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  390. package/dist/workspace/error-codes.d.ts +5 -0
  391. package/dist/workspace/error-codes.d.ts.map +1 -0
  392. package/dist/workspace/error-codes.js +7 -0
  393. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  394. package/dist/workspace/errors.d.ts +5 -0
  395. package/dist/workspace/errors.d.ts.map +1 -0
  396. package/dist/workspace/errors.js +21 -0
  397. package/dist/{image → workspace}/index.cjs +12 -10
  398. package/dist/workspace/index.d.ts +5 -0
  399. package/dist/workspace/index.d.ts.map +1 -0
  400. package/dist/workspace/index.js +9 -0
  401. package/dist/workspace/manager.cjs +113 -0
  402. package/dist/workspace/manager.d.ts +18 -0
  403. package/dist/workspace/manager.d.ts.map +1 -0
  404. package/dist/workspace/manager.js +90 -0
  405. package/dist/workspace/types.d.ts +14 -0
  406. package/dist/workspace/types.d.ts.map +1 -0
  407. package/package.json +2 -2
  408. package/dist/context/compaction/factory.cjs +0 -57
  409. package/dist/context/compaction/factory.d.ts +0 -17
  410. package/dist/context/compaction/factory.d.ts.map +0 -1
  411. package/dist/context/compaction/factory.js +0 -34
  412. package/dist/context/compaction/provider.d.ts +0 -48
  413. package/dist/context/compaction/provider.d.ts.map +0 -1
  414. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  415. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  416. package/dist/context/compaction/providers/noop-provider.js +0 -24
  417. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  418. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  419. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  420. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  421. package/dist/context/compaction/registry.cjs +0 -39
  422. package/dist/context/compaction/registry.d.ts +0 -19
  423. package/dist/context/compaction/registry.d.ts.map +0 -1
  424. package/dist/context/compaction/registry.js +0 -16
  425. package/dist/context/compaction/schemas.cjs +0 -58
  426. package/dist/context/compaction/schemas.d.ts +0 -69
  427. package/dist/context/compaction/schemas.d.ts.map +0 -1
  428. package/dist/context/compaction/schemas.js +0 -34
  429. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  430. package/dist/image/define-image.cjs +0 -146
  431. package/dist/image/define-image.d.ts +0 -71
  432. package/dist/image/define-image.d.ts.map +0 -1
  433. package/dist/image/define-image.js +0 -121
  434. package/dist/image/index.d.ts +0 -53
  435. package/dist/image/index.d.ts.map +0 -1
  436. package/dist/image/index.js +0 -7
  437. package/dist/image/types.d.ts +0 -246
  438. package/dist/image/types.d.ts.map +0 -1
  439. package/dist/llm/services/test-utils.integration.cjs +0 -237
  440. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  441. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  442. package/dist/llm/services/test-utils.integration.js +0 -214
  443. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  444. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  445. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  446. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  447. package/dist/plugins/error-codes.cjs +0 -43
  448. package/dist/plugins/error-codes.d.ts +0 -34
  449. package/dist/plugins/error-codes.d.ts.map +0 -1
  450. package/dist/plugins/error-codes.js +0 -20
  451. package/dist/plugins/index.cjs +0 -61
  452. package/dist/plugins/index.d.ts +0 -21
  453. package/dist/plugins/index.d.ts.map +0 -1
  454. package/dist/plugins/index.js +0 -30
  455. package/dist/plugins/loader.cjs +0 -171
  456. package/dist/plugins/loader.d.ts +0 -30
  457. package/dist/plugins/loader.d.ts.map +0 -1
  458. package/dist/plugins/loader.js +0 -145
  459. package/dist/plugins/manager.cjs +0 -473
  460. package/dist/plugins/manager.d.ts +0 -106
  461. package/dist/plugins/manager.d.ts.map +0 -1
  462. package/dist/plugins/manager.js +0 -450
  463. package/dist/plugins/registrations/builtins.cjs +0 -51
  464. package/dist/plugins/registrations/builtins.d.ts +0 -17
  465. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  466. package/dist/plugins/registrations/builtins.js +0 -28
  467. package/dist/plugins/registry.cjs +0 -63
  468. package/dist/plugins/registry.d.ts +0 -101
  469. package/dist/plugins/registry.d.ts.map +0 -1
  470. package/dist/plugins/registry.js +0 -39
  471. package/dist/plugins/schemas.cjs +0 -73
  472. package/dist/plugins/schemas.d.ts +0 -195
  473. package/dist/plugins/schemas.d.ts.map +0 -1
  474. package/dist/plugins/schemas.js +0 -47
  475. package/dist/plugins/types.d.ts.map +0 -1
  476. package/dist/providers/base-registry.cjs +0 -147
  477. package/dist/providers/base-registry.d.ts +0 -147
  478. package/dist/providers/base-registry.d.ts.map +0 -1
  479. package/dist/providers/base-registry.js +0 -123
  480. package/dist/providers/discovery.cjs +0 -109
  481. package/dist/providers/discovery.d.ts +0 -96
  482. package/dist/providers/discovery.d.ts.map +0 -1
  483. package/dist/providers/discovery.js +0 -84
  484. package/dist/providers/index.cjs +0 -24
  485. package/dist/providers/index.d.ts +0 -32
  486. package/dist/providers/index.d.ts.map +0 -1
  487. package/dist/providers/index.js +0 -2
  488. package/dist/resources/internal-provider.d.ts.map +0 -1
  489. package/dist/storage/blob/factory.d.ts +0 -37
  490. package/dist/storage/blob/factory.d.ts.map +0 -1
  491. package/dist/storage/blob/factory.js +0 -15
  492. package/dist/storage/blob/local-blob-store.cjs +0 -496
  493. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  494. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  495. package/dist/storage/blob/local-blob-store.js +0 -463
  496. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  497. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  498. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  499. package/dist/storage/blob/memory-blob-store.js +0 -303
  500. package/dist/storage/blob/provider.d.ts +0 -50
  501. package/dist/storage/blob/provider.d.ts.map +0 -1
  502. package/dist/storage/blob/providers/index.d.ts +0 -8
  503. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  504. package/dist/storage/blob/providers/index.js +0 -7
  505. package/dist/storage/blob/providers/local.cjs +0 -39
  506. package/dist/storage/blob/providers/local.d.ts +0 -17
  507. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  508. package/dist/storage/blob/providers/local.js +0 -16
  509. package/dist/storage/blob/providers/memory.cjs +0 -39
  510. package/dist/storage/blob/providers/memory.d.ts +0 -17
  511. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  512. package/dist/storage/blob/providers/memory.js +0 -16
  513. package/dist/storage/blob/registry.cjs +0 -50
  514. package/dist/storage/blob/registry.d.ts +0 -42
  515. package/dist/storage/blob/registry.d.ts.map +0 -1
  516. package/dist/storage/blob/registry.js +0 -26
  517. package/dist/storage/blob/schemas.cjs +0 -52
  518. package/dist/storage/blob/schemas.d.ts +0 -85
  519. package/dist/storage/blob/schemas.d.ts.map +0 -1
  520. package/dist/storage/blob/schemas.js +0 -26
  521. package/dist/storage/cache/factory.d.ts +0 -37
  522. package/dist/storage/cache/factory.d.ts.map +0 -1
  523. package/dist/storage/cache/factory.js +0 -15
  524. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  525. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  526. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  527. package/dist/storage/cache/memory-cache-store.js +0 -84
  528. package/dist/storage/cache/provider.cjs +0 -16
  529. package/dist/storage/cache/provider.d.ts +0 -56
  530. package/dist/storage/cache/provider.d.ts.map +0 -1
  531. package/dist/storage/cache/provider.js +0 -0
  532. package/dist/storage/cache/providers/index.d.ts +0 -8
  533. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  534. package/dist/storage/cache/providers/index.js +0 -7
  535. package/dist/storage/cache/providers/memory.d.ts +0 -17
  536. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  537. package/dist/storage/cache/providers/memory.js +0 -17
  538. package/dist/storage/cache/providers/redis.cjs +0 -66
  539. package/dist/storage/cache/providers/redis.d.ts +0 -20
  540. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  541. package/dist/storage/cache/providers/redis.js +0 -33
  542. package/dist/storage/cache/redis-store.cjs +0 -173
  543. package/dist/storage/cache/redis-store.d.ts +0 -32
  544. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  545. package/dist/storage/cache/redis-store.js +0 -150
  546. package/dist/storage/cache/registry.cjs +0 -50
  547. package/dist/storage/cache/registry.d.ts +0 -42
  548. package/dist/storage/cache/registry.d.ts.map +0 -1
  549. package/dist/storage/cache/registry.js +0 -26
  550. package/dist/storage/cache/schemas.cjs +0 -81
  551. package/dist/storage/cache/schemas.d.ts +0 -150
  552. package/dist/storage/cache/schemas.d.ts.map +0 -1
  553. package/dist/storage/cache/schemas.js +0 -55
  554. package/dist/storage/database/factory.cjs +0 -38
  555. package/dist/storage/database/factory.d.ts +0 -39
  556. package/dist/storage/database/factory.d.ts.map +0 -1
  557. package/dist/storage/database/factory.js +0 -15
  558. package/dist/storage/database/memory-database-store.cjs +0 -122
  559. package/dist/storage/database/memory-database-store.d.ts +0 -29
  560. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  561. package/dist/storage/database/memory-database-store.js +0 -99
  562. package/dist/storage/database/postgres-store.cjs +0 -342
  563. package/dist/storage/database/postgres-store.d.ts +0 -55
  564. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  565. package/dist/storage/database/postgres-store.js +0 -319
  566. package/dist/storage/database/provider.cjs +0 -16
  567. package/dist/storage/database/provider.d.ts +0 -56
  568. package/dist/storage/database/provider.d.ts.map +0 -1
  569. package/dist/storage/database/provider.js +0 -0
  570. package/dist/storage/database/providers/index.cjs +0 -34
  571. package/dist/storage/database/providers/index.d.ts +0 -9
  572. package/dist/storage/database/providers/index.d.ts.map +0 -1
  573. package/dist/storage/database/providers/index.js +0 -9
  574. package/dist/storage/database/providers/memory.cjs +0 -40
  575. package/dist/storage/database/providers/memory.d.ts +0 -16
  576. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  577. package/dist/storage/database/providers/memory.js +0 -17
  578. package/dist/storage/database/providers/postgres.cjs +0 -62
  579. package/dist/storage/database/providers/postgres.d.ts +0 -19
  580. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  581. package/dist/storage/database/providers/postgres.js +0 -29
  582. package/dist/storage/database/providers/sqlite.cjs +0 -66
  583. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  584. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  585. package/dist/storage/database/providers/sqlite.js +0 -33
  586. package/dist/storage/database/registry.cjs +0 -50
  587. package/dist/storage/database/registry.d.ts +0 -42
  588. package/dist/storage/database/registry.d.ts.map +0 -1
  589. package/dist/storage/database/registry.js +0 -26
  590. package/dist/storage/database/schemas.cjs +0 -97
  591. package/dist/storage/database/schemas.d.ts +0 -226
  592. package/dist/storage/database/schemas.d.ts.map +0 -1
  593. package/dist/storage/database/schemas.js +0 -70
  594. package/dist/storage/database/sqlite-store.cjs +0 -270
  595. package/dist/storage/database/sqlite-store.d.ts +0 -33
  596. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  597. package/dist/storage/database/sqlite-store.js +0 -237
  598. package/dist/storage/schemas.cjs +0 -57
  599. package/dist/storage/schemas.d.ts +0 -347
  600. package/dist/storage/schemas.d.ts.map +0 -1
  601. package/dist/storage/schemas.js +0 -37
  602. package/dist/tools/bash-pattern-utils.cjs +0 -91
  603. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  604. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  605. package/dist/tools/bash-pattern-utils.js +0 -64
  606. package/dist/tools/custom-tool-registry.cjs +0 -64
  607. package/dist/tools/custom-tool-registry.d.ts +0 -126
  608. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  609. package/dist/tools/custom-tool-registry.js +0 -40
  610. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  611. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  612. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  613. package/dist/tools/custom-tool-schema-registry.js +0 -140
  614. package/dist/tools/internal-tools/constants.d.ts +0 -12
  615. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  616. package/dist/tools/internal-tools/constants.js +0 -12
  617. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  618. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  619. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  620. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  621. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  622. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  623. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  624. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  625. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  626. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  627. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  628. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  629. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  630. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  631. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  632. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  633. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  634. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  635. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  636. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  637. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  638. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  639. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  640. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  641. package/dist/tools/internal-tools/index.cjs +0 -26
  642. package/dist/tools/internal-tools/index.d.ts +0 -4
  643. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  644. package/dist/tools/internal-tools/index.js +0 -3
  645. package/dist/tools/internal-tools/provider.cjs +0 -324
  646. package/dist/tools/internal-tools/provider.d.ts +0 -116
  647. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  648. package/dist/tools/internal-tools/provider.js +0 -301
  649. package/dist/tools/internal-tools/registry.cjs +0 -71
  650. package/dist/tools/internal-tools/registry.d.ts +0 -91
  651. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  652. package/dist/tools/internal-tools/registry.js +0 -47
  653. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  654. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  655. /package/dist/{image → hooks}/types.cjs +0 -0
  656. /package/dist/{plugins → hooks}/types.js +0 -0
  657. /package/dist/{plugins → workspace}/types.cjs +0 -0
  658. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -1,30 +0,0 @@
1
- /**
2
- * Validate that a loaded plugin implements the DextoPlugin interface correctly
3
- * Performs runtime checks that complement TypeScript's compile-time type checking
4
- *
5
- * @param PluginClass - The plugin class constructor
6
- * @param pluginName - Name for error messages
7
- * @throws {DextoRuntimeError} If validation fails
8
- */
9
- export declare function validatePluginShape(PluginClass: any, pluginName: string): void;
10
- /**
11
- * Resolve and validate plugin module path
12
- * Ensures path is absolute after template variable expansion
13
- *
14
- * @param modulePath - Path from config (after template expansion)
15
- * @param configDir - Directory containing agent config (for validation context)
16
- * @returns Resolved absolute path
17
- * @throws {DextoRuntimeError} If path is not absolute
18
- */
19
- export declare function resolvePluginPath(modulePath: string, configDir: string): string;
20
- /**
21
- * Load a plugin from a module path
22
- * Supports both .ts (via tsx) and .js files
23
- *
24
- * @param modulePath - Absolute path to plugin module
25
- * @param pluginName - Name for error messages
26
- * @returns Plugin class constructor
27
- * @throws {DextoRuntimeError} If loading or validation fails
28
- */
29
- export declare function loadPluginModule(modulePath: string, pluginName: string): Promise<any>;
30
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAqD9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAoB/E;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAuG3F"}
@@ -1,145 +0,0 @@
1
- import "../chunk-PTJYTZNU.js";
2
- import { isAbsolute } from "path";
3
- import { pathToFileURL } from "url";
4
- import { DextoRuntimeError, ErrorScope, ErrorType } from "../errors/index.js";
5
- import { PluginErrorCode } from "./error-codes.js";
6
- function validatePluginShape(PluginClass, pluginName) {
7
- if (typeof PluginClass !== "function" || !PluginClass.prototype) {
8
- throw new DextoRuntimeError(
9
- PluginErrorCode.PLUGIN_INVALID_SHAPE,
10
- ErrorScope.PLUGIN,
11
- ErrorType.USER,
12
- `Plugin '${pluginName}' default export must be a class or constructor function`
13
- );
14
- }
15
- const proto = PluginClass.prototype;
16
- const extensionPoints = [
17
- "beforeLLMRequest",
18
- "beforeToolCall",
19
- "afterToolResult",
20
- "beforeResponse"
21
- ];
22
- const hasExtensionPoint = extensionPoints.some((point) => typeof proto[point] === "function");
23
- if (!hasExtensionPoint) {
24
- throw new DextoRuntimeError(
25
- PluginErrorCode.PLUGIN_INVALID_SHAPE,
26
- ErrorScope.PLUGIN,
27
- ErrorType.USER,
28
- `Plugin '${pluginName}' must implement at least one extension point method`,
29
- { availableExtensionPoints: extensionPoints }
30
- );
31
- }
32
- if ("initialize" in proto && typeof proto.initialize !== "function") {
33
- throw new DextoRuntimeError(
34
- PluginErrorCode.PLUGIN_INVALID_SHAPE,
35
- ErrorScope.PLUGIN,
36
- ErrorType.USER,
37
- `Plugin '${pluginName}' initialize property must be a function (found ${typeof proto.initialize})`
38
- );
39
- }
40
- if ("cleanup" in proto && typeof proto.cleanup !== "function") {
41
- throw new DextoRuntimeError(
42
- PluginErrorCode.PLUGIN_INVALID_SHAPE,
43
- ErrorScope.PLUGIN,
44
- ErrorType.USER,
45
- `Plugin '${pluginName}' cleanup property must be a function (found ${typeof proto.cleanup})`
46
- );
47
- }
48
- }
49
- function resolvePluginPath(modulePath, configDir) {
50
- if (!isAbsolute(modulePath)) {
51
- throw new DextoRuntimeError(
52
- PluginErrorCode.PLUGIN_CONFIGURATION_INVALID,
53
- ErrorScope.PLUGIN,
54
- ErrorType.USER,
55
- "Plugin module path must be absolute (got '" + modulePath + "'). Use ${{dexto.agent_dir}} template variable for agent-relative paths.",
56
- {
57
- modulePath,
58
- configDir,
59
- hint: 'Example: module: "${{dexto.agent_dir}}/plugins/my-plugin.ts"'
60
- }
61
- );
62
- }
63
- return modulePath;
64
- }
65
- async function loadPluginModule(modulePath, pluginName) {
66
- try {
67
- let pluginModule;
68
- if (modulePath.endsWith(".ts") || modulePath.endsWith(".tsx")) {
69
- if (typeof process === "undefined" || !process.versions?.node) {
70
- throw new DextoRuntimeError(
71
- PluginErrorCode.PLUGIN_LOAD_FAILED,
72
- ErrorScope.PLUGIN,
73
- ErrorType.SYSTEM,
74
- `Cannot load TypeScript plugin '${pluginName}' in browser environment. Plugins with .ts extension require Node.js runtime.`,
75
- { modulePath, pluginName }
76
- );
77
- }
78
- const tsxPackage = "tsx/esm/api";
79
- let tsx;
80
- try {
81
- tsx = await import(
82
- /* webpackIgnore: true */
83
- tsxPackage
84
- );
85
- } catch (importError) {
86
- const err = importError;
87
- if (err.code === "ERR_MODULE_NOT_FOUND") {
88
- throw new DextoRuntimeError(
89
- PluginErrorCode.PLUGIN_DEPENDENCY_NOT_INSTALLED,
90
- ErrorScope.PLUGIN,
91
- ErrorType.USER,
92
- `Cannot load TypeScript plugin '${pluginName}': tsx package is not installed.
93
- Install with: npm install tsx
94
- Or pre-compile your plugin to .js for production use.`,
95
- { modulePath, pluginName, packageName: "tsx" }
96
- );
97
- }
98
- throw importError;
99
- }
100
- const moduleUrl = pathToFileURL(modulePath).href;
101
- pluginModule = await tsx.tsImport(moduleUrl, import.meta.url);
102
- } else {
103
- const moduleUrl = pathToFileURL(modulePath).href;
104
- pluginModule = await import(
105
- /* webpackIgnore: true */
106
- moduleUrl
107
- );
108
- }
109
- let PluginClass = pluginModule.default;
110
- if (PluginClass && typeof PluginClass === "object" && "default" in PluginClass) {
111
- PluginClass = PluginClass.default;
112
- }
113
- if (!PluginClass) {
114
- throw new DextoRuntimeError(
115
- PluginErrorCode.PLUGIN_INVALID_SHAPE,
116
- ErrorScope.PLUGIN,
117
- ErrorType.USER,
118
- `Plugin '${pluginName}' at '${modulePath}' has no default export. Ensure your plugin exports a class as default.`,
119
- { modulePath, pluginName }
120
- );
121
- }
122
- validatePluginShape(PluginClass, pluginName);
123
- return PluginClass;
124
- } catch (error) {
125
- if (error instanceof DextoRuntimeError) {
126
- throw error;
127
- }
128
- throw new DextoRuntimeError(
129
- PluginErrorCode.PLUGIN_LOAD_FAILED,
130
- ErrorScope.PLUGIN,
131
- ErrorType.SYSTEM,
132
- `Failed to load plugin '${pluginName}' from '${modulePath}': ${error instanceof Error ? error.message : String(error)}`,
133
- {
134
- modulePath,
135
- pluginName,
136
- originalError: error instanceof Error ? error.message : String(error)
137
- }
138
- );
139
- }
140
- }
141
- export {
142
- loadPluginModule,
143
- resolvePluginPath,
144
- validatePluginShape
145
- };
@@ -1,473 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var manager_exports = {};
20
- __export(manager_exports, {
21
- PluginManager: () => PluginManager
22
- });
23
- module.exports = __toCommonJS(manager_exports);
24
- var import_errors = require("../errors/index.js");
25
- var import_error_codes = require("./error-codes.js");
26
- var import_loader = require("./loader.js");
27
- var import_async_context = require("../utils/async-context.js");
28
- var import_registry = require("./registry.js");
29
- var import_types = require("../logger/v2/types.js");
30
- class PluginManager {
31
- plugins = /* @__PURE__ */ new Map();
32
- pluginsByExtensionPoint = /* @__PURE__ */ new Map();
33
- options;
34
- initialized = false;
35
- logger;
36
- /** Default timeout for plugin execution (milliseconds) */
37
- static DEFAULT_TIMEOUT = 5e3;
38
- constructor(options, logger) {
39
- this.options = options;
40
- this.logger = logger.createChild(import_types.DextoLogComponent.PLUGIN);
41
- this.logger.debug("PluginManager created");
42
- }
43
- /**
44
- * Register a built-in plugin
45
- * Called by the built-in plugin registry before initialize()
46
- *
47
- * @param name - Plugin name
48
- * @param PluginClass - Plugin class constructor
49
- * @param config - Plugin configuration
50
- */
51
- registerBuiltin(name, PluginClass, config) {
52
- if (this.initialized) {
53
- throw new import_errors.DextoRuntimeError(
54
- import_error_codes.PluginErrorCode.PLUGIN_CONFIGURATION_INVALID,
55
- import_errors.ErrorScope.PLUGIN,
56
- import_errors.ErrorType.SYSTEM,
57
- "Cannot register built-in plugins after initialization"
58
- );
59
- }
60
- const plugin = new PluginClass();
61
- const loadedPlugin = {
62
- plugin,
63
- config: {
64
- name,
65
- module: `<builtin:${name}>`,
66
- enabled: config.enabled ?? true,
67
- blocking: config.blocking,
68
- priority: config.priority,
69
- config: config.config ?? void 0
70
- }
71
- };
72
- this.plugins.set(name, loadedPlugin);
73
- this.logger.debug(`Built-in plugin registered: ${name}`);
74
- }
75
- /**
76
- * Initialize all plugins from configuration
77
- * Loads custom plugins (file-based), registry plugins (programmatic), validates priorities,
78
- * sorts by priority, and calls initialize()
79
- *
80
- * TODO: Consider adding an MCP server-like convention for plugin discovery.
81
- * Instead of requiring explicit file paths, plugins could be connected as
82
- * plugin servers to the PluginManager.
83
- *
84
- * @param customPlugins - Array of custom plugin configurations from YAML (file-based)
85
- * @param registryPlugins - Array of registry plugin configurations from YAML (programmatic)
86
- * @throws {DextoRuntimeError} If any plugin fails to load or initialize (fail-fast)
87
- */
88
- async initialize(customPlugins = [], registryPlugins = []) {
89
- if (this.initialized) {
90
- throw new import_errors.DextoRuntimeError(
91
- import_error_codes.PluginErrorCode.PLUGIN_CONFIGURATION_INVALID,
92
- import_errors.ErrorScope.PLUGIN,
93
- import_errors.ErrorType.SYSTEM,
94
- "PluginManager already initialized"
95
- );
96
- }
97
- const priorities = /* @__PURE__ */ new Set();
98
- const allPluginConfigs = [
99
- ...Array.from(this.plugins.values()).map((p) => p.config),
100
- ...customPlugins,
101
- ...registryPlugins.map((r) => ({
102
- name: r.type,
103
- module: `<registry:${r.type}>`,
104
- enabled: r.enabled,
105
- blocking: r.blocking,
106
- priority: r.priority,
107
- config: r.config
108
- }))
109
- ];
110
- for (const config of allPluginConfigs) {
111
- if (!config.enabled) continue;
112
- if (priorities.has(config.priority)) {
113
- throw new import_errors.DextoRuntimeError(
114
- import_error_codes.PluginErrorCode.PLUGIN_DUPLICATE_PRIORITY,
115
- import_errors.ErrorScope.PLUGIN,
116
- import_errors.ErrorType.USER,
117
- `Duplicate plugin priority: ${config.priority}. Each plugin must have a unique priority.`,
118
- {
119
- priority: config.priority,
120
- hint: "Ensure all enabled plugins (built-in, custom, and registry) have unique priority values."
121
- }
122
- );
123
- }
124
- priorities.add(config.priority);
125
- }
126
- for (const registryConfig of registryPlugins) {
127
- if (!registryConfig.enabled) {
128
- this.logger.debug(`Skipping disabled registry plugin: ${registryConfig.type}`);
129
- continue;
130
- }
131
- try {
132
- const provider = import_registry.pluginRegistry.get(registryConfig.type);
133
- if (!provider) {
134
- throw new import_errors.DextoRuntimeError(
135
- import_error_codes.PluginErrorCode.PLUGIN_PROVIDER_NOT_FOUND,
136
- import_errors.ErrorScope.PLUGIN,
137
- import_errors.ErrorType.USER,
138
- `Plugin provider '${registryConfig.type}' not found in registry`,
139
- {
140
- type: registryConfig.type,
141
- available: import_registry.pluginRegistry.getTypes()
142
- },
143
- `Available plugin providers: ${import_registry.pluginRegistry.getTypes().join(", ") || "none"}. Register the provider using pluginRegistry.register() before agent initialization.`
144
- );
145
- }
146
- const validatedConfig = provider.configSchema.safeParse({
147
- type: registryConfig.type,
148
- ...registryConfig.config
149
- });
150
- if (!validatedConfig.success) {
151
- throw new import_errors.DextoRuntimeError(
152
- import_error_codes.PluginErrorCode.PLUGIN_PROVIDER_VALIDATION_FAILED,
153
- import_errors.ErrorScope.PLUGIN,
154
- import_errors.ErrorType.USER,
155
- `Invalid configuration for plugin provider '${registryConfig.type}'`,
156
- {
157
- type: registryConfig.type,
158
- errors: validatedConfig.error.errors
159
- },
160
- "Check the configuration schema for this plugin provider"
161
- );
162
- }
163
- const creationContext = {
164
- config: registryConfig.config || {},
165
- blocking: registryConfig.blocking,
166
- priority: registryConfig.priority
167
- };
168
- const plugin = provider.create(validatedConfig.data, creationContext);
169
- const loadedPlugin = {
170
- plugin,
171
- config: {
172
- name: registryConfig.type,
173
- module: `<registry:${registryConfig.type}>`,
174
- enabled: registryConfig.enabled,
175
- blocking: registryConfig.blocking,
176
- priority: registryConfig.priority,
177
- config: registryConfig.config
178
- }
179
- };
180
- this.plugins.set(registryConfig.type, loadedPlugin);
181
- this.logger.info(`Registry plugin loaded: ${registryConfig.type}`);
182
- } catch (error) {
183
- if (error instanceof import_errors.DextoRuntimeError) {
184
- throw error;
185
- }
186
- throw new import_errors.DextoRuntimeError(
187
- import_error_codes.PluginErrorCode.PLUGIN_INITIALIZATION_FAILED,
188
- import_errors.ErrorScope.PLUGIN,
189
- import_errors.ErrorType.SYSTEM,
190
- `Failed to load registry plugin '${registryConfig.type}': ${error instanceof Error ? error.message : String(error)}`
191
- );
192
- }
193
- }
194
- for (const pluginConfig of customPlugins) {
195
- if (!pluginConfig.enabled) {
196
- this.logger.debug(`Skipping disabled plugin: ${pluginConfig.name}`);
197
- continue;
198
- }
199
- try {
200
- const modulePath = (0, import_loader.resolvePluginPath)(pluginConfig.module, this.options.configDir);
201
- const PluginClass = await (0, import_loader.loadPluginModule)(modulePath, pluginConfig.name);
202
- const plugin = new PluginClass();
203
- const loadedPlugin = {
204
- plugin,
205
- config: pluginConfig
206
- };
207
- this.plugins.set(pluginConfig.name, loadedPlugin);
208
- this.logger.info(`Custom plugin loaded: ${pluginConfig.name}`);
209
- } catch (error) {
210
- throw new import_errors.DextoRuntimeError(
211
- import_error_codes.PluginErrorCode.PLUGIN_INITIALIZATION_FAILED,
212
- import_errors.ErrorScope.PLUGIN,
213
- import_errors.ErrorType.SYSTEM,
214
- `Failed to load plugin '${pluginConfig.name}': ${error instanceof Error ? error.message : String(error)}`
215
- );
216
- }
217
- }
218
- for (const [name, loadedPlugin] of this.plugins.entries()) {
219
- if (!loadedPlugin.config.enabled) continue;
220
- try {
221
- if (loadedPlugin.plugin.initialize) {
222
- await loadedPlugin.plugin.initialize(loadedPlugin.config.config || {});
223
- this.logger.debug(`Plugin initialized: ${name}`);
224
- }
225
- } catch (error) {
226
- throw new import_errors.DextoRuntimeError(
227
- import_error_codes.PluginErrorCode.PLUGIN_INITIALIZATION_FAILED,
228
- import_errors.ErrorScope.PLUGIN,
229
- import_errors.ErrorType.SYSTEM,
230
- `Plugin '${name}' initialization failed: ${error instanceof Error ? error.message : String(error)}`
231
- );
232
- }
233
- }
234
- for (const loadedPlugin of this.plugins.values()) {
235
- if (!loadedPlugin.config.enabled) continue;
236
- this.registerToExtensionPoints(loadedPlugin);
237
- }
238
- for (const [extensionPoint, plugins] of this.pluginsByExtensionPoint.entries()) {
239
- plugins.sort((a, b) => a.config.priority - b.config.priority);
240
- this.logger.debug(
241
- `Extension point '${extensionPoint}': ${plugins.length} plugin(s) registered`,
242
- {
243
- plugins: plugins.map((p) => ({
244
- name: p.config.name,
245
- priority: p.config.priority
246
- }))
247
- }
248
- );
249
- }
250
- this.initialized = true;
251
- this.logger.info(`PluginManager initialized with ${this.plugins.size} plugin(s)`);
252
- }
253
- /**
254
- * Register a plugin to the extension points it implements
255
- */
256
- registerToExtensionPoints(loadedPlugin) {
257
- const extensionPoints = [
258
- "beforeLLMRequest",
259
- "beforeToolCall",
260
- "afterToolResult",
261
- "beforeResponse"
262
- ];
263
- for (const point of extensionPoints) {
264
- if (typeof loadedPlugin.plugin[point] === "function") {
265
- if (!this.pluginsByExtensionPoint.has(point)) {
266
- this.pluginsByExtensionPoint.set(point, []);
267
- }
268
- this.pluginsByExtensionPoint.get(point).push(loadedPlugin);
269
- }
270
- }
271
- }
272
- /**
273
- * Execute all plugins at a specific extension point
274
- * Plugins execute sequentially in priority order
275
- *
276
- * @param extensionPoint - Which extension point to execute
277
- * @param payload - Payload for this extension point (must be an object)
278
- * @param options - Options for building execution context
279
- * @returns Modified payload after all plugins execute
280
- * @throws {DextoRuntimeError} If a blocking plugin cancels execution or payload is not an object
281
- */
282
- async executePlugins(extensionPoint, payload, options) {
283
- const plugins = this.pluginsByExtensionPoint.get(extensionPoint) || [];
284
- if (plugins.length === 0) {
285
- return payload;
286
- }
287
- if (payload === null || typeof payload !== "object") {
288
- throw new import_errors.DextoRuntimeError(
289
- import_error_codes.PluginErrorCode.PLUGIN_INVALID_SHAPE,
290
- import_errors.ErrorScope.PLUGIN,
291
- import_errors.ErrorType.USER,
292
- `Payload for ${extensionPoint} must be an object (got ${payload === null ? "null" : typeof payload})`,
293
- { extensionPoint, payloadType: typeof payload }
294
- );
295
- }
296
- let currentPayload = { ...payload };
297
- const asyncCtx = (0, import_async_context.getContext)();
298
- const llmConfig = options.stateManager.getLLMConfig(options.sessionId);
299
- const context = {
300
- sessionId: options.sessionId ?? void 0,
301
- userId: asyncCtx?.userId ?? void 0,
302
- tenantId: asyncCtx?.tenantId ?? void 0,
303
- llmConfig,
304
- logger: this.logger,
305
- abortSignal: options.abortSignal ?? void 0,
306
- agent: {
307
- sessionManager: options.sessionManager,
308
- mcpManager: options.mcpManager,
309
- toolManager: options.toolManager,
310
- stateManager: options.stateManager,
311
- agentEventBus: this.options.agentEventBus,
312
- storageManager: this.options.storageManager
313
- }
314
- };
315
- for (const { plugin, config } of plugins) {
316
- const method = plugin[extensionPoint];
317
- if (!method) continue;
318
- const startTime = Date.now();
319
- try {
320
- const result = await this.executeWithTimeout(
321
- method.call(plugin, currentPayload, context),
322
- config.name,
323
- PluginManager.DEFAULT_TIMEOUT
324
- );
325
- const duration = Date.now() - startTime;
326
- this.logger.debug(`Plugin '${config.name}' executed at ${extensionPoint}`, {
327
- ok: result.ok,
328
- cancelled: result.cancel,
329
- duration,
330
- hasModifications: !!result.modify
331
- });
332
- if (result.notices && result.notices.length > 0) {
333
- for (const notice of result.notices) {
334
- const level = notice.kind === "block" || notice.kind === "warn" ? "warn" : "info";
335
- this.logger[level](`Plugin notice (${notice.kind}): ${notice.message}`, {
336
- plugin: config.name,
337
- code: notice.code,
338
- details: notice.details
339
- });
340
- }
341
- }
342
- if (!result.ok) {
343
- this.logger.warn(`Plugin '${config.name}' returned error`, {
344
- message: result.message
345
- });
346
- if (config.blocking && result.cancel) {
347
- throw new import_errors.DextoRuntimeError(
348
- import_error_codes.PluginErrorCode.PLUGIN_BLOCKED_EXECUTION,
349
- import_errors.ErrorScope.PLUGIN,
350
- import_errors.ErrorType.FORBIDDEN,
351
- result.message || `Operation blocked by plugin '${config.name}'`,
352
- {
353
- plugin: config.name,
354
- extensionPoint,
355
- notices: result.notices
356
- }
357
- );
358
- }
359
- continue;
360
- }
361
- if (result.modify) {
362
- currentPayload = { ...currentPayload, ...result.modify };
363
- this.logger.debug(`Plugin '${config.name}' modified payload`, {
364
- keys: Object.keys(result.modify)
365
- });
366
- }
367
- if (result.cancel && config.blocking) {
368
- throw new import_errors.DextoRuntimeError(
369
- import_error_codes.PluginErrorCode.PLUGIN_BLOCKED_EXECUTION,
370
- import_errors.ErrorScope.PLUGIN,
371
- import_errors.ErrorType.FORBIDDEN,
372
- result.message || `Operation cancelled by plugin '${config.name}'`,
373
- {
374
- plugin: config.name,
375
- extensionPoint,
376
- notices: result.notices
377
- }
378
- );
379
- }
380
- } catch (error) {
381
- const duration = Date.now() - startTime;
382
- if (error instanceof import_errors.DextoRuntimeError) {
383
- throw error;
384
- }
385
- this.logger.error(`Plugin '${config.name}' threw error`, {
386
- error: error instanceof Error ? error.message : String(error),
387
- duration
388
- });
389
- if (config.blocking) {
390
- throw new import_errors.DextoRuntimeError(
391
- import_error_codes.PluginErrorCode.PLUGIN_EXECUTION_FAILED,
392
- import_errors.ErrorScope.PLUGIN,
393
- import_errors.ErrorType.SYSTEM,
394
- `Plugin '${config.name}' failed: ${error instanceof Error ? error.message : String(error)}`,
395
- {
396
- plugin: config.name,
397
- extensionPoint
398
- }
399
- );
400
- }
401
- this.logger.debug(`Non-blocking plugin error, continuing execution`);
402
- }
403
- }
404
- return currentPayload;
405
- }
406
- /**
407
- * Execute a promise with timeout, properly clearing timer on completion
408
- * Prevents timer leaks and unhandled rejections from Promise.race
409
- */
410
- async executeWithTimeout(promise, pluginName, ms) {
411
- let timer;
412
- return await new Promise((resolve, reject) => {
413
- timer = setTimeout(() => {
414
- reject(
415
- new import_errors.DextoRuntimeError(
416
- import_error_codes.PluginErrorCode.PLUGIN_EXECUTION_TIMEOUT,
417
- import_errors.ErrorScope.PLUGIN,
418
- import_errors.ErrorType.TIMEOUT,
419
- `Plugin '${pluginName}' execution timed out after ${ms}ms`
420
- )
421
- );
422
- }, ms);
423
- promise.then(
424
- (val) => {
425
- if (timer) clearTimeout(timer);
426
- resolve(val);
427
- },
428
- (err) => {
429
- if (timer) clearTimeout(timer);
430
- reject(err);
431
- }
432
- );
433
- });
434
- }
435
- /**
436
- * Cleanup all plugins
437
- * Called when agent shuts down
438
- */
439
- async cleanup() {
440
- for (const [name, loadedPlugin] of this.plugins.entries()) {
441
- if (loadedPlugin.plugin.cleanup) {
442
- try {
443
- await loadedPlugin.plugin.cleanup();
444
- this.logger.debug(`Plugin cleaned up: ${name}`);
445
- } catch (error) {
446
- this.logger.error(`Plugin cleanup failed: ${name}`, {
447
- error: error instanceof Error ? error.message : String(error)
448
- });
449
- }
450
- }
451
- }
452
- this.logger.info("PluginManager cleanup complete");
453
- }
454
- /**
455
- * Get plugin statistics
456
- */
457
- getStats() {
458
- const enabled = Array.from(this.plugins.values()).filter((p) => p.config.enabled).length;
459
- const byExtensionPoint = {};
460
- for (const [point, plugins] of this.pluginsByExtensionPoint.entries()) {
461
- byExtensionPoint[point] = plugins.length;
462
- }
463
- return {
464
- total: this.plugins.size,
465
- enabled,
466
- byExtensionPoint
467
- };
468
- }
469
- }
470
- // Annotate the CommonJS export names for ESM import in node:
471
- 0 && (module.exports = {
472
- PluginManager
473
- });