@dexto/core 1.5.7 → 1.6.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 (697) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +383 -153
  3. package/dist/agent/DextoAgent.d.ts +112 -60
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +380 -150
  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 -99
  20. package/dist/agent/schemas.d.ts +10 -9160
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +1 -104
  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 +77 -57
  38. package/dist/approval/manager.d.ts +41 -43
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +75 -55
  41. package/dist/approval/schemas.cjs +26 -25
  42. package/dist/approval/schemas.d.ts +35 -15
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +22 -21
  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 +5 -3
  64. package/dist/context/manager.d.ts +4 -3
  65. package/dist/context/manager.d.ts.map +1 -1
  66. package/dist/context/manager.js +5 -3
  67. package/dist/context/types.d.ts +2 -0
  68. package/dist/context/types.d.ts.map +1 -1
  69. package/dist/context/utils.cjs +70 -43
  70. package/dist/context/utils.d.ts +14 -14
  71. package/dist/context/utils.d.ts.map +1 -1
  72. package/dist/context/utils.js +69 -42
  73. package/dist/errors/result-bridge.d.ts +2 -2
  74. package/dist/errors/result-bridge.d.ts.map +1 -1
  75. package/dist/errors/types.cjs +1 -1
  76. package/dist/errors/types.d.ts +3 -3
  77. package/dist/errors/types.d.ts.map +1 -1
  78. package/dist/errors/types.js +1 -1
  79. package/dist/events/index.cjs +15 -2
  80. package/dist/events/index.d.ts +78 -7
  81. package/dist/events/index.d.ts.map +1 -1
  82. package/dist/events/index.js +15 -2
  83. package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
  84. package/dist/hooks/builtins/content-policy.d.ts +24 -0
  85. package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
  86. package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
  87. package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
  88. package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
  89. package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
  90. package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
  91. package/dist/hooks/error-codes.cjs +43 -0
  92. package/dist/hooks/error-codes.d.ts +34 -0
  93. package/dist/hooks/error-codes.d.ts.map +1 -0
  94. package/dist/hooks/error-codes.js +20 -0
  95. package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
  96. package/dist/hooks/index.d.ts +14 -0
  97. package/dist/hooks/index.d.ts.map +1 -0
  98. package/dist/hooks/index.js +11 -0
  99. package/dist/hooks/manager.cjs +354 -0
  100. package/dist/hooks/manager.d.ts +103 -0
  101. package/dist/hooks/manager.d.ts.map +1 -0
  102. package/dist/hooks/manager.js +331 -0
  103. package/dist/{plugins → hooks}/types.d.ts +36 -34
  104. package/dist/hooks/types.d.ts.map +1 -0
  105. package/dist/index.browser.cjs +13 -12
  106. package/dist/index.browser.d.ts +6 -6
  107. package/dist/index.browser.d.ts.map +1 -1
  108. package/dist/index.browser.js +8 -7
  109. package/dist/index.cjs +5 -7
  110. package/dist/index.d.ts +2 -3
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -3
  113. package/dist/llm/curation-config.cjs +82 -0
  114. package/dist/llm/curation-config.d.ts +13 -0
  115. package/dist/llm/curation-config.d.ts.map +1 -0
  116. package/dist/llm/curation-config.js +59 -0
  117. package/dist/llm/curation.cjs +57 -0
  118. package/dist/llm/curation.d.ts +16 -0
  119. package/dist/llm/curation.d.ts.map +1 -0
  120. package/dist/llm/curation.js +34 -0
  121. package/dist/llm/errors.cjs +2 -2
  122. package/dist/llm/errors.d.ts +8 -8
  123. package/dist/llm/errors.js +1 -1
  124. package/dist/llm/executor/provider-options.cjs +1 -1
  125. package/dist/llm/executor/provider-options.js +1 -1
  126. package/dist/llm/executor/stream-processor.cjs +131 -11
  127. package/dist/llm/executor/stream-processor.d.ts +7 -5
  128. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  129. package/dist/llm/executor/stream-processor.js +131 -11
  130. package/dist/llm/executor/turn-executor.cjs +57 -56
  131. package/dist/llm/executor/turn-executor.d.ts +7 -8
  132. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  133. package/dist/llm/executor/turn-executor.js +57 -56
  134. package/dist/llm/formatters/vercel.cjs +2 -2
  135. package/dist/llm/formatters/vercel.d.ts +2 -2
  136. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  137. package/dist/llm/index.cjs +14 -3
  138. package/dist/llm/index.d.ts +3 -1
  139. package/dist/llm/index.d.ts.map +1 -1
  140. package/dist/llm/index.js +13 -2
  141. package/dist/llm/providers/local/schemas.d.ts +10 -10
  142. package/dist/llm/registry/auto-update.cjs +263 -0
  143. package/dist/llm/registry/auto-update.d.ts +27 -0
  144. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  145. package/dist/llm/registry/auto-update.js +227 -0
  146. package/dist/llm/registry/index.cjs +806 -0
  147. package/dist/llm/{registry.d.ts → registry/index.d.ts} +21 -43
  148. package/dist/llm/registry/index.d.ts.map +1 -0
  149. package/dist/llm/registry/index.js +756 -0
  150. package/dist/llm/registry/models.generated.cjs +4861 -0
  151. package/dist/llm/registry/models.generated.d.ts +431 -0
  152. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  153. package/dist/llm/registry/models.generated.js +4838 -0
  154. package/dist/{storage/database/providers/index.cjs → llm/registry/models.manual.cjs} +22 -12
  155. package/dist/llm/registry/models.manual.d.ts +22 -0
  156. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  157. package/dist/llm/registry/models.manual.js +21 -0
  158. package/dist/llm/registry/sync.cjs +354 -0
  159. package/dist/llm/registry/sync.d.ts +41 -0
  160. package/dist/llm/registry/sync.d.ts.map +1 -0
  161. package/dist/llm/registry/sync.js +328 -0
  162. package/dist/llm/resolver.cjs +29 -20
  163. package/dist/llm/resolver.d.ts +4 -4
  164. package/dist/llm/resolver.d.ts.map +1 -1
  165. package/dist/llm/resolver.js +28 -20
  166. package/dist/llm/schemas.cjs +69 -94
  167. package/dist/llm/schemas.d.ts +19 -158
  168. package/dist/llm/schemas.d.ts.map +1 -1
  169. package/dist/llm/schemas.js +67 -91
  170. package/dist/llm/services/factory.cjs +6 -7
  171. package/dist/llm/services/factory.d.ts +3 -4
  172. package/dist/llm/services/factory.d.ts.map +1 -1
  173. package/dist/llm/services/factory.js +6 -7
  174. package/dist/llm/services/vercel.cjs +11 -15
  175. package/dist/llm/services/vercel.d.ts +7 -7
  176. package/dist/llm/services/vercel.d.ts.map +1 -1
  177. package/dist/llm/services/vercel.js +11 -15
  178. package/dist/llm/types.cjs +1 -1
  179. package/dist/llm/types.d.ts +1 -1
  180. package/dist/llm/types.d.ts.map +1 -1
  181. package/dist/llm/types.js +1 -1
  182. package/dist/llm/validation.cjs +2 -2
  183. package/dist/llm/validation.d.ts +2 -2
  184. package/dist/llm/validation.d.ts.map +1 -1
  185. package/dist/llm/validation.js +1 -1
  186. package/dist/logger/browser.cjs +4 -4
  187. package/dist/logger/browser.d.ts +4 -4
  188. package/dist/logger/browser.d.ts.map +1 -1
  189. package/dist/logger/browser.js +3 -3
  190. package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
  191. package/dist/logger/default-logger-factory.d.ts +301 -0
  192. package/dist/logger/default-logger-factory.d.ts.map +1 -0
  193. package/dist/logger/default-logger-factory.js +18 -0
  194. package/dist/logger/factory.d.ts +2 -2
  195. package/dist/logger/factory.d.ts.map +1 -1
  196. package/dist/logger/index.cjs +7 -2
  197. package/dist/logger/index.d.ts +5 -3
  198. package/dist/logger/index.d.ts.map +1 -1
  199. package/dist/logger/index.js +8 -2
  200. package/dist/logger/logger.cjs +4 -4
  201. package/dist/logger/logger.d.ts +4 -4
  202. package/dist/logger/logger.d.ts.map +1 -1
  203. package/dist/logger/logger.js +3 -3
  204. package/dist/logger/v2/dexto-logger.d.ts +3 -3
  205. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  206. package/dist/logger/v2/schemas.d.ts +12 -12
  207. package/dist/logger/v2/test-utils.d.ts +5 -5
  208. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  209. package/dist/logger/v2/transport-factory.d.ts +3 -3
  210. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  211. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  212. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  213. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  214. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  215. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  216. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  217. package/dist/logger/v2/types.cjs +1 -1
  218. package/dist/logger/v2/types.d.ts +8 -8
  219. package/dist/logger/v2/types.d.ts.map +1 -1
  220. package/dist/logger/v2/types.js +1 -1
  221. package/dist/mcp/errors.cjs +2 -2
  222. package/dist/mcp/errors.d.ts.map +1 -1
  223. package/dist/mcp/manager.cjs +16 -11
  224. package/dist/mcp/manager.d.ts +16 -13
  225. package/dist/mcp/manager.d.ts.map +1 -1
  226. package/dist/mcp/manager.js +17 -12
  227. package/dist/mcp/mcp-client.cjs +25 -20
  228. package/dist/mcp/mcp-client.d.ts +5 -5
  229. package/dist/mcp/mcp-client.d.ts.map +1 -1
  230. package/dist/mcp/mcp-client.js +20 -15
  231. package/dist/mcp/resolver.cjs +1 -1
  232. package/dist/mcp/schemas.cjs +5 -5
  233. package/dist/mcp/schemas.d.ts +4 -4
  234. package/dist/mcp/schemas.js +2 -2
  235. package/dist/mcp/types.d.ts +7 -7
  236. package/dist/mcp/types.d.ts.map +1 -1
  237. package/dist/memory/manager.d.ts +2 -2
  238. package/dist/memory/manager.d.ts.map +1 -1
  239. package/dist/memory/schemas.d.ts +2 -2
  240. package/dist/prompts/errors.cjs +3 -3
  241. package/dist/prompts/errors.d.ts.map +1 -1
  242. package/dist/prompts/prompt-manager.d.ts +3 -3
  243. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  244. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  247. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  248. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  250. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  251. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  252. package/dist/prompts/schemas.d.ts +4 -4
  253. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  254. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  255. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  256. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  257. package/dist/resources/errors.cjs +2 -2
  258. package/dist/resources/errors.d.ts.map +1 -1
  259. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  260. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  261. package/dist/resources/handlers/factory.d.ts +3 -3
  262. package/dist/resources/handlers/factory.d.ts.map +1 -1
  263. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  264. package/dist/resources/handlers/filesystem-handler.d.ts +3 -2
  265. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  266. package/dist/resources/handlers/filesystem-handler.js +25 -0
  267. package/dist/resources/index.cjs +7 -9
  268. package/dist/resources/index.d.ts +3 -3
  269. package/dist/resources/index.d.ts.map +1 -1
  270. package/dist/resources/index.js +5 -10
  271. package/dist/resources/manager.cjs +77 -74
  272. package/dist/resources/manager.d.ts +16 -7
  273. package/dist/resources/manager.d.ts.map +1 -1
  274. package/dist/resources/manager.js +77 -74
  275. package/dist/resources/schemas.cjs +6 -26
  276. package/dist/resources/schemas.d.ts +8 -100
  277. package/dist/resources/schemas.d.ts.map +1 -1
  278. package/dist/resources/schemas.js +4 -23
  279. package/dist/search/search-service.d.ts +2 -2
  280. package/dist/search/search-service.d.ts.map +1 -1
  281. package/dist/session/chat-session.cjs +16 -26
  282. package/dist/session/chat-session.d.ts +7 -5
  283. package/dist/session/chat-session.d.ts.map +1 -1
  284. package/dist/session/chat-session.js +17 -27
  285. package/dist/session/errors.cjs +2 -2
  286. package/dist/session/errors.d.ts.map +1 -1
  287. package/dist/session/history/database.cjs +1 -1
  288. package/dist/session/history/database.d.ts +4 -4
  289. package/dist/session/history/database.d.ts.map +1 -1
  290. package/dist/session/history/factory.d.ts +3 -3
  291. package/dist/session/history/factory.d.ts.map +1 -1
  292. package/dist/session/history/memory.d.ts +4 -4
  293. package/dist/session/history/memory.d.ts.map +1 -1
  294. package/dist/session/history/types.d.ts +2 -2
  295. package/dist/session/history/types.d.ts.map +1 -1
  296. package/dist/session/index.cjs +3 -0
  297. package/dist/session/index.d.ts +2 -0
  298. package/dist/session/index.d.ts.map +1 -1
  299. package/dist/session/index.js +2 -0
  300. package/dist/session/message-queue.cjs +29 -5
  301. package/dist/session/message-queue.d.ts +5 -3
  302. package/dist/session/message-queue.d.ts.map +1 -1
  303. package/dist/session/message-queue.js +29 -5
  304. package/dist/session/session-manager.cjs +107 -12
  305. package/dist/session/session-manager.d.ts +49 -8
  306. package/dist/session/session-manager.d.ts.map +1 -1
  307. package/dist/session/session-manager.js +97 -12
  308. package/dist/session/title-generator.cjs +2 -2
  309. package/dist/session/title-generator.d.ts +2 -2
  310. package/dist/session/title-generator.d.ts.map +1 -1
  311. package/dist/session/types.d.ts +1 -0
  312. package/dist/session/types.d.ts.map +1 -1
  313. package/dist/storage/blob/index.cjs +0 -40
  314. package/dist/storage/blob/index.d.ts +2 -44
  315. package/dist/storage/blob/index.d.ts.map +1 -1
  316. package/dist/storage/blob/index.js +0 -30
  317. package/dist/storage/cache/index.cjs +0 -37
  318. package/dist/storage/cache/index.d.ts +0 -42
  319. package/dist/storage/cache/index.d.ts.map +1 -1
  320. package/dist/storage/cache/index.js +0 -28
  321. package/dist/storage/database/index.cjs +0 -42
  322. package/dist/storage/database/index.d.ts +0 -43
  323. package/dist/storage/database/index.d.ts.map +1 -1
  324. package/dist/storage/database/index.js +0 -37
  325. package/dist/storage/error-codes.cjs +1 -6
  326. package/dist/storage/error-codes.d.ts +2 -7
  327. package/dist/storage/error-codes.d.ts.map +1 -1
  328. package/dist/storage/error-codes.js +1 -6
  329. package/dist/storage/errors.cjs +18 -82
  330. package/dist/storage/errors.d.ts +4 -24
  331. package/dist/storage/errors.d.ts.map +1 -1
  332. package/dist/storage/errors.js +16 -80
  333. package/dist/storage/index.cjs +8 -69
  334. package/dist/storage/index.d.ts +11 -66
  335. package/dist/storage/index.d.ts.map +1 -1
  336. package/dist/storage/index.js +6 -50
  337. package/dist/storage/storage-manager.cjs +9 -25
  338. package/dist/storage/storage-manager.d.ts +11 -15
  339. package/dist/storage/storage-manager.d.ts.map +1 -1
  340. package/dist/storage/storage-manager.js +8 -23
  341. package/dist/storage/types.d.ts +0 -1
  342. package/dist/storage/types.d.ts.map +1 -1
  343. package/dist/systemPrompt/contributors.d.ts +4 -4
  344. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  345. package/dist/systemPrompt/errors.cjs +2 -2
  346. package/dist/systemPrompt/errors.d.ts.map +1 -1
  347. package/dist/systemPrompt/manager.cjs +1 -5
  348. package/dist/systemPrompt/manager.d.ts +2 -3
  349. package/dist/systemPrompt/manager.d.ts.map +1 -1
  350. package/dist/systemPrompt/manager.js +1 -5
  351. package/dist/telemetry/index.cjs +3 -0
  352. package/dist/telemetry/index.d.ts +2 -0
  353. package/dist/telemetry/index.d.ts.map +1 -1
  354. package/dist/telemetry/index.js +2 -0
  355. package/dist/telemetry/utils.d.ts +4 -4
  356. package/dist/telemetry/utils.d.ts.map +1 -1
  357. package/dist/test-utils/in-memory-storage.cjs +288 -0
  358. package/dist/test-utils/in-memory-storage.js +252 -0
  359. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  360. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  361. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  362. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  363. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  364. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  365. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  366. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  367. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  368. package/dist/tools/define-tool.d.ts +11 -0
  369. package/dist/tools/define-tool.d.ts.map +1 -0
  370. package/dist/tools/define-tool.js +7 -0
  371. package/dist/tools/error-codes.cjs +2 -2
  372. package/dist/tools/error-codes.d.ts +2 -2
  373. package/dist/tools/error-codes.d.ts.map +1 -1
  374. package/dist/tools/error-codes.js +2 -2
  375. package/dist/tools/errors.cjs +11 -23
  376. package/dist/tools/errors.d.ts +4 -10
  377. package/dist/tools/errors.d.ts.map +1 -1
  378. package/dist/tools/errors.js +9 -21
  379. package/dist/tools/index.cjs +3 -8
  380. package/dist/tools/index.d.ts +2 -4
  381. package/dist/tools/index.d.ts.map +1 -1
  382. package/dist/tools/index.js +2 -7
  383. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  384. package/dist/tools/pattern-utils.d.ts +20 -0
  385. package/dist/tools/pattern-utils.d.ts.map +1 -0
  386. package/dist/tools/pattern-utils.js +10 -0
  387. package/dist/tools/schemas.cjs +14 -40
  388. package/dist/tools/schemas.d.ts +6 -50
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +11 -32
  391. package/dist/tools/tool-call-metadata.cjs +75 -0
  392. package/dist/tools/tool-call-metadata.d.ts +16 -0
  393. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  394. package/dist/tools/tool-call-metadata.js +51 -0
  395. package/dist/tools/tool-manager.cjs +578 -302
  396. package/dist/tools/tool-manager.d.ts +105 -81
  397. package/dist/tools/tool-manager.d.ts.map +1 -1
  398. package/dist/tools/tool-manager.js +578 -306
  399. package/dist/tools/types.d.ts +112 -13
  400. package/dist/tools/types.d.ts.map +1 -1
  401. package/dist/utils/api-key-resolver.cjs +1 -1
  402. package/dist/utils/api-key-resolver.js +1 -1
  403. package/dist/utils/env.cjs +49 -0
  404. package/dist/utils/env.d.ts +4 -0
  405. package/dist/utils/env.d.ts.map +1 -0
  406. package/dist/utils/env.js +24 -0
  407. package/dist/utils/error-conversion.d.ts +2 -2
  408. package/dist/utils/error-conversion.d.ts.map +1 -1
  409. package/dist/utils/index.cjs +3 -1
  410. package/dist/utils/index.d.ts +1 -0
  411. package/dist/utils/index.d.ts.map +1 -1
  412. package/dist/utils/index.js +1 -0
  413. package/dist/utils/path.d.ts +2 -2
  414. package/dist/utils/path.d.ts.map +1 -1
  415. package/dist/utils/result.cjs +1 -1
  416. package/dist/utils/result.d.ts.map +1 -1
  417. package/dist/utils/schema.cjs +9 -5
  418. package/dist/utils/schema.d.ts +4 -2
  419. package/dist/utils/schema.d.ts.map +1 -1
  420. package/dist/utils/schema.js +9 -5
  421. package/dist/utils/service-initializer.cjs +58 -51
  422. package/dist/utils/service-initializer.d.ts +31 -9
  423. package/dist/utils/service-initializer.d.ts.map +1 -1
  424. package/dist/utils/service-initializer.js +58 -51
  425. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  426. package/dist/workspace/error-codes.d.ts +5 -0
  427. package/dist/workspace/error-codes.d.ts.map +1 -0
  428. package/dist/workspace/error-codes.js +7 -0
  429. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  430. package/dist/workspace/errors.d.ts +5 -0
  431. package/dist/workspace/errors.d.ts.map +1 -0
  432. package/dist/workspace/errors.js +21 -0
  433. package/dist/{image → workspace}/index.cjs +12 -10
  434. package/dist/workspace/index.d.ts +5 -0
  435. package/dist/workspace/index.d.ts.map +1 -0
  436. package/dist/workspace/index.js +9 -0
  437. package/dist/workspace/manager.cjs +113 -0
  438. package/dist/workspace/manager.d.ts +18 -0
  439. package/dist/workspace/manager.d.ts.map +1 -0
  440. package/dist/workspace/manager.js +90 -0
  441. package/dist/workspace/types.d.ts +14 -0
  442. package/dist/workspace/types.d.ts.map +1 -0
  443. package/package.json +7 -3
  444. package/dist/context/compaction/factory.cjs +0 -57
  445. package/dist/context/compaction/factory.d.ts +0 -17
  446. package/dist/context/compaction/factory.d.ts.map +0 -1
  447. package/dist/context/compaction/factory.js +0 -34
  448. package/dist/context/compaction/provider.d.ts +0 -48
  449. package/dist/context/compaction/provider.d.ts.map +0 -1
  450. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  451. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  452. package/dist/context/compaction/providers/noop-provider.js +0 -24
  453. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  454. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  455. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  456. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  457. package/dist/context/compaction/registry.cjs +0 -39
  458. package/dist/context/compaction/registry.d.ts +0 -19
  459. package/dist/context/compaction/registry.d.ts.map +0 -1
  460. package/dist/context/compaction/registry.js +0 -16
  461. package/dist/context/compaction/schemas.cjs +0 -58
  462. package/dist/context/compaction/schemas.d.ts +0 -69
  463. package/dist/context/compaction/schemas.d.ts.map +0 -1
  464. package/dist/context/compaction/schemas.js +0 -34
  465. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  466. package/dist/image/define-image.cjs +0 -146
  467. package/dist/image/define-image.d.ts +0 -71
  468. package/dist/image/define-image.d.ts.map +0 -1
  469. package/dist/image/define-image.js +0 -121
  470. package/dist/image/index.d.ts +0 -53
  471. package/dist/image/index.d.ts.map +0 -1
  472. package/dist/image/index.js +0 -7
  473. package/dist/image/types.d.ts +0 -246
  474. package/dist/image/types.d.ts.map +0 -1
  475. package/dist/llm/registry.cjs +0 -2075
  476. package/dist/llm/registry.d.ts.map +0 -1
  477. package/dist/llm/registry.js +0 -2025
  478. package/dist/llm/services/test-utils.integration.cjs +0 -237
  479. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  480. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  481. package/dist/llm/services/test-utils.integration.js +0 -214
  482. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  483. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  484. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  485. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  486. package/dist/plugins/error-codes.cjs +0 -43
  487. package/dist/plugins/error-codes.d.ts +0 -34
  488. package/dist/plugins/error-codes.d.ts.map +0 -1
  489. package/dist/plugins/error-codes.js +0 -20
  490. package/dist/plugins/index.cjs +0 -61
  491. package/dist/plugins/index.d.ts +0 -21
  492. package/dist/plugins/index.d.ts.map +0 -1
  493. package/dist/plugins/index.js +0 -30
  494. package/dist/plugins/loader.cjs +0 -171
  495. package/dist/plugins/loader.d.ts +0 -30
  496. package/dist/plugins/loader.d.ts.map +0 -1
  497. package/dist/plugins/loader.js +0 -145
  498. package/dist/plugins/manager.cjs +0 -473
  499. package/dist/plugins/manager.d.ts +0 -106
  500. package/dist/plugins/manager.d.ts.map +0 -1
  501. package/dist/plugins/manager.js +0 -450
  502. package/dist/plugins/registrations/builtins.cjs +0 -51
  503. package/dist/plugins/registrations/builtins.d.ts +0 -17
  504. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  505. package/dist/plugins/registrations/builtins.js +0 -28
  506. package/dist/plugins/registry.cjs +0 -63
  507. package/dist/plugins/registry.d.ts +0 -101
  508. package/dist/plugins/registry.d.ts.map +0 -1
  509. package/dist/plugins/registry.js +0 -39
  510. package/dist/plugins/schemas.cjs +0 -73
  511. package/dist/plugins/schemas.d.ts +0 -195
  512. package/dist/plugins/schemas.d.ts.map +0 -1
  513. package/dist/plugins/schemas.js +0 -47
  514. package/dist/plugins/types.d.ts.map +0 -1
  515. package/dist/providers/base-registry.cjs +0 -147
  516. package/dist/providers/base-registry.d.ts +0 -147
  517. package/dist/providers/base-registry.d.ts.map +0 -1
  518. package/dist/providers/base-registry.js +0 -123
  519. package/dist/providers/discovery.cjs +0 -109
  520. package/dist/providers/discovery.d.ts +0 -96
  521. package/dist/providers/discovery.d.ts.map +0 -1
  522. package/dist/providers/discovery.js +0 -84
  523. package/dist/providers/index.cjs +0 -24
  524. package/dist/providers/index.d.ts +0 -32
  525. package/dist/providers/index.d.ts.map +0 -1
  526. package/dist/providers/index.js +0 -2
  527. package/dist/resources/internal-provider.d.ts.map +0 -1
  528. package/dist/storage/blob/factory.d.ts +0 -37
  529. package/dist/storage/blob/factory.d.ts.map +0 -1
  530. package/dist/storage/blob/factory.js +0 -15
  531. package/dist/storage/blob/local-blob-store.cjs +0 -496
  532. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  533. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  534. package/dist/storage/blob/local-blob-store.js +0 -463
  535. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  536. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  537. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  538. package/dist/storage/blob/memory-blob-store.js +0 -303
  539. package/dist/storage/blob/provider.d.ts +0 -50
  540. package/dist/storage/blob/provider.d.ts.map +0 -1
  541. package/dist/storage/blob/providers/index.d.ts +0 -8
  542. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  543. package/dist/storage/blob/providers/index.js +0 -7
  544. package/dist/storage/blob/providers/local.cjs +0 -39
  545. package/dist/storage/blob/providers/local.d.ts +0 -17
  546. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  547. package/dist/storage/blob/providers/local.js +0 -16
  548. package/dist/storage/blob/providers/memory.cjs +0 -39
  549. package/dist/storage/blob/providers/memory.d.ts +0 -17
  550. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  551. package/dist/storage/blob/providers/memory.js +0 -16
  552. package/dist/storage/blob/registry.cjs +0 -50
  553. package/dist/storage/blob/registry.d.ts +0 -42
  554. package/dist/storage/blob/registry.d.ts.map +0 -1
  555. package/dist/storage/blob/registry.js +0 -26
  556. package/dist/storage/blob/schemas.cjs +0 -52
  557. package/dist/storage/blob/schemas.d.ts +0 -85
  558. package/dist/storage/blob/schemas.d.ts.map +0 -1
  559. package/dist/storage/blob/schemas.js +0 -26
  560. package/dist/storage/cache/factory.cjs +0 -38
  561. package/dist/storage/cache/factory.d.ts +0 -37
  562. package/dist/storage/cache/factory.d.ts.map +0 -1
  563. package/dist/storage/cache/factory.js +0 -15
  564. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  565. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  566. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  567. package/dist/storage/cache/memory-cache-store.js +0 -84
  568. package/dist/storage/cache/provider.cjs +0 -16
  569. package/dist/storage/cache/provider.d.ts +0 -56
  570. package/dist/storage/cache/provider.d.ts.map +0 -1
  571. package/dist/storage/cache/provider.js +0 -0
  572. package/dist/storage/cache/providers/index.d.ts +0 -8
  573. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  574. package/dist/storage/cache/providers/index.js +0 -7
  575. package/dist/storage/cache/providers/memory.d.ts +0 -17
  576. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  577. package/dist/storage/cache/providers/memory.js +0 -17
  578. package/dist/storage/cache/providers/redis.cjs +0 -66
  579. package/dist/storage/cache/providers/redis.d.ts +0 -20
  580. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  581. package/dist/storage/cache/providers/redis.js +0 -33
  582. package/dist/storage/cache/redis-store.cjs +0 -173
  583. package/dist/storage/cache/redis-store.d.ts +0 -32
  584. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  585. package/dist/storage/cache/redis-store.js +0 -150
  586. package/dist/storage/cache/registry.cjs +0 -50
  587. package/dist/storage/cache/registry.d.ts +0 -42
  588. package/dist/storage/cache/registry.d.ts.map +0 -1
  589. package/dist/storage/cache/registry.js +0 -26
  590. package/dist/storage/cache/schemas.cjs +0 -81
  591. package/dist/storage/cache/schemas.d.ts +0 -150
  592. package/dist/storage/cache/schemas.d.ts.map +0 -1
  593. package/dist/storage/cache/schemas.js +0 -55
  594. package/dist/storage/database/factory.cjs +0 -38
  595. package/dist/storage/database/factory.d.ts +0 -39
  596. package/dist/storage/database/factory.d.ts.map +0 -1
  597. package/dist/storage/database/factory.js +0 -15
  598. package/dist/storage/database/memory-database-store.cjs +0 -122
  599. package/dist/storage/database/memory-database-store.d.ts +0 -29
  600. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  601. package/dist/storage/database/memory-database-store.js +0 -99
  602. package/dist/storage/database/postgres-store.cjs +0 -342
  603. package/dist/storage/database/postgres-store.d.ts +0 -55
  604. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  605. package/dist/storage/database/postgres-store.js +0 -319
  606. package/dist/storage/database/provider.cjs +0 -16
  607. package/dist/storage/database/provider.d.ts +0 -56
  608. package/dist/storage/database/provider.d.ts.map +0 -1
  609. package/dist/storage/database/provider.js +0 -0
  610. package/dist/storage/database/providers/index.d.ts +0 -9
  611. package/dist/storage/database/providers/index.d.ts.map +0 -1
  612. package/dist/storage/database/providers/index.js +0 -9
  613. package/dist/storage/database/providers/memory.cjs +0 -40
  614. package/dist/storage/database/providers/memory.d.ts +0 -16
  615. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  616. package/dist/storage/database/providers/memory.js +0 -17
  617. package/dist/storage/database/providers/postgres.cjs +0 -62
  618. package/dist/storage/database/providers/postgres.d.ts +0 -19
  619. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  620. package/dist/storage/database/providers/postgres.js +0 -29
  621. package/dist/storage/database/providers/sqlite.cjs +0 -66
  622. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  623. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  624. package/dist/storage/database/providers/sqlite.js +0 -33
  625. package/dist/storage/database/registry.cjs +0 -50
  626. package/dist/storage/database/registry.d.ts +0 -42
  627. package/dist/storage/database/registry.d.ts.map +0 -1
  628. package/dist/storage/database/registry.js +0 -26
  629. package/dist/storage/database/schemas.cjs +0 -97
  630. package/dist/storage/database/schemas.d.ts +0 -226
  631. package/dist/storage/database/schemas.d.ts.map +0 -1
  632. package/dist/storage/database/schemas.js +0 -70
  633. package/dist/storage/database/sqlite-store.cjs +0 -270
  634. package/dist/storage/database/sqlite-store.d.ts +0 -33
  635. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  636. package/dist/storage/database/sqlite-store.js +0 -237
  637. package/dist/storage/schemas.cjs +0 -57
  638. package/dist/storage/schemas.d.ts +0 -347
  639. package/dist/storage/schemas.d.ts.map +0 -1
  640. package/dist/storage/schemas.js +0 -37
  641. package/dist/tools/bash-pattern-utils.cjs +0 -91
  642. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  643. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  644. package/dist/tools/bash-pattern-utils.js +0 -64
  645. package/dist/tools/custom-tool-registry.cjs +0 -64
  646. package/dist/tools/custom-tool-registry.d.ts +0 -126
  647. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  648. package/dist/tools/custom-tool-registry.js +0 -40
  649. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  650. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  651. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  652. package/dist/tools/custom-tool-schema-registry.js +0 -140
  653. package/dist/tools/internal-tools/constants.d.ts +0 -12
  654. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  655. package/dist/tools/internal-tools/constants.js +0 -12
  656. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  657. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  658. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  659. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  660. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  661. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  662. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  663. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  664. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  665. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  666. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  667. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  668. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  669. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  670. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  671. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  672. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  673. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  674. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  675. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  676. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  677. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  678. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  679. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  680. package/dist/tools/internal-tools/index.cjs +0 -26
  681. package/dist/tools/internal-tools/index.d.ts +0 -4
  682. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  683. package/dist/tools/internal-tools/index.js +0 -3
  684. package/dist/tools/internal-tools/provider.cjs +0 -324
  685. package/dist/tools/internal-tools/provider.d.ts +0 -114
  686. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  687. package/dist/tools/internal-tools/provider.js +0 -301
  688. package/dist/tools/internal-tools/registry.cjs +0 -71
  689. package/dist/tools/internal-tools/registry.d.ts +0 -91
  690. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  691. package/dist/tools/internal-tools/registry.js +0 -47
  692. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  693. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  694. /package/dist/{image → hooks}/types.cjs +0 -0
  695. /package/dist/{plugins → hooks}/types.js +0 -0
  696. /package/dist/{plugins → workspace}/types.cjs +0 -0
  697. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -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
- });
@@ -1,106 +0,0 @@
1
- import type { RegistryPluginConfig } from './schemas.js';
2
- import type { ExtensionPoint, PluginConfig } from './types.js';
3
- import type { AgentEventBus } from '../events/index.js';
4
- import type { StorageManager } from '../storage/index.js';
5
- import type { SessionManager } from '../session/index.js';
6
- import type { MCPManager } from '../mcp/manager.js';
7
- import type { ToolManager } from '../tools/tool-manager.js';
8
- import type { AgentStateManager } from '../agent/state-manager.js';
9
- import type { IDextoLogger } from '../logger/v2/types.js';
10
- /**
11
- * Options for PluginManager construction
12
- */
13
- export interface PluginManagerOptions {
14
- agentEventBus: AgentEventBus;
15
- storageManager: StorageManager;
16
- configDir: string;
17
- }
18
- /**
19
- * Options for building ExecutionContext
20
- * Used when calling executePlugins
21
- */
22
- export interface ExecutionContextOptions {
23
- sessionManager: SessionManager;
24
- mcpManager: MCPManager;
25
- toolManager: ToolManager;
26
- stateManager: AgentStateManager;
27
- sessionId?: string;
28
- abortSignal?: AbortSignal;
29
- }
30
- /**
31
- * Plugin Manager - Orchestrates plugin loading and execution
32
- *
33
- * Responsibilities:
34
- * - Load plugins from configuration (built-in + custom)
35
- * - Validate plugin shape and priority uniqueness
36
- * - Manage plugin lifecycle (initialize, execute, cleanup)
37
- * - Execute plugins sequentially at extension points
38
- * - Handle timeouts and errors with fail-fast policy
39
- */
40
- export declare class PluginManager {
41
- private plugins;
42
- private pluginsByExtensionPoint;
43
- private options;
44
- private initialized;
45
- private logger;
46
- /** Default timeout for plugin execution (milliseconds) */
47
- private static readonly DEFAULT_TIMEOUT;
48
- constructor(options: PluginManagerOptions, logger: IDextoLogger);
49
- /**
50
- * Register a built-in plugin
51
- * Called by the built-in plugin registry before initialize()
52
- *
53
- * @param name - Plugin name
54
- * @param PluginClass - Plugin class constructor
55
- * @param config - Plugin configuration
56
- */
57
- registerBuiltin(name: string, PluginClass: any, config: Omit<PluginConfig, 'module'>): void;
58
- /**
59
- * Initialize all plugins from configuration
60
- * Loads custom plugins (file-based), registry plugins (programmatic), validates priorities,
61
- * sorts by priority, and calls initialize()
62
- *
63
- * TODO: Consider adding an MCP server-like convention for plugin discovery.
64
- * Instead of requiring explicit file paths, plugins could be connected as
65
- * plugin servers to the PluginManager.
66
- *
67
- * @param customPlugins - Array of custom plugin configurations from YAML (file-based)
68
- * @param registryPlugins - Array of registry plugin configurations from YAML (programmatic)
69
- * @throws {DextoRuntimeError} If any plugin fails to load or initialize (fail-fast)
70
- */
71
- initialize(customPlugins?: PluginConfig[], registryPlugins?: RegistryPluginConfig[]): Promise<void>;
72
- /**
73
- * Register a plugin to the extension points it implements
74
- */
75
- private registerToExtensionPoints;
76
- /**
77
- * Execute all plugins at a specific extension point
78
- * Plugins execute sequentially in priority order
79
- *
80
- * @param extensionPoint - Which extension point to execute
81
- * @param payload - Payload for this extension point (must be an object)
82
- * @param options - Options for building execution context
83
- * @returns Modified payload after all plugins execute
84
- * @throws {DextoRuntimeError} If a blocking plugin cancels execution or payload is not an object
85
- */
86
- executePlugins<T extends Record<string, any>>(extensionPoint: ExtensionPoint, payload: T, options: ExecutionContextOptions): Promise<T>;
87
- /**
88
- * Execute a promise with timeout, properly clearing timer on completion
89
- * Prevents timer leaks and unhandled rejections from Promise.race
90
- */
91
- private executeWithTimeout;
92
- /**
93
- * Cleanup all plugins
94
- * Called when agent shuts down
95
- */
96
- cleanup(): Promise<void>;
97
- /**
98
- * Get plugin statistics
99
- */
100
- getStats(): {
101
- total: number;
102
- enabled: number;
103
- byExtensionPoint: Record<ExtensionPoint, number>;
104
- };
105
- }
106
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugins/manager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EACR,cAAc,EAEd,YAAY,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,uBAAuB,CAAkD;IACjF,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAe;IAE7B,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;gBAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY;IAM/D;;;;;;;OAOG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,IAAI;IA8B3F;;;;;;;;;;;;OAYG;IACG,UAAU,CACZ,aAAa,GAAE,YAAY,EAAO,EAClC,eAAe,GAAE,oBAAoB,EAAO,GAC7C,OAAO,CAAC,IAAI,CAAC;IAqNhB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;;;;;;;;OASG;IACG,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,CAAC,CAAC;IAoKb;;;OAGG;YACW,kBAAkB;IA8BhC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;OAEG;IACH,QAAQ,IAAI;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;KACpD;CAcJ"}