@dexto/core 1.5.8 → 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 (640) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +293 -154
  3. package/dist/agent/DextoAgent.d.ts +83 -56
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +290 -151
  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 +10 -9199
  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 +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 +4 -2
  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 +4 -2
  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 +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 +43 -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 +36 -34
  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 +7 -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 +10 -10
  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 +6 -145
  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 +7 -14
  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 +7 -14
  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.d.ts +3 -3
  166. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  167. package/dist/logger/v2/schemas.d.ts +12 -12
  168. package/dist/logger/v2/test-utils.d.ts +5 -5
  169. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  170. package/dist/logger/v2/transport-factory.d.ts +3 -3
  171. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  172. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  173. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  174. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  175. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  176. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  177. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  178. package/dist/logger/v2/types.cjs +1 -1
  179. package/dist/logger/v2/types.d.ts +8 -8
  180. package/dist/logger/v2/types.d.ts.map +1 -1
  181. package/dist/logger/v2/types.js +1 -1
  182. package/dist/mcp/errors.cjs +2 -2
  183. package/dist/mcp/errors.d.ts.map +1 -1
  184. package/dist/mcp/manager.cjs +16 -11
  185. package/dist/mcp/manager.d.ts +16 -13
  186. package/dist/mcp/manager.d.ts.map +1 -1
  187. package/dist/mcp/manager.js +17 -12
  188. package/dist/mcp/mcp-client.cjs +25 -20
  189. package/dist/mcp/mcp-client.d.ts +5 -5
  190. package/dist/mcp/mcp-client.d.ts.map +1 -1
  191. package/dist/mcp/mcp-client.js +20 -15
  192. package/dist/mcp/resolver.cjs +1 -1
  193. package/dist/mcp/schemas.cjs +5 -5
  194. package/dist/mcp/schemas.d.ts +4 -4
  195. package/dist/mcp/schemas.js +2 -2
  196. package/dist/mcp/types.d.ts +7 -7
  197. package/dist/mcp/types.d.ts.map +1 -1
  198. package/dist/memory/manager.d.ts +2 -2
  199. package/dist/memory/manager.d.ts.map +1 -1
  200. package/dist/memory/schemas.d.ts +2 -2
  201. package/dist/prompts/errors.cjs +3 -3
  202. package/dist/prompts/errors.d.ts.map +1 -1
  203. package/dist/prompts/prompt-manager.d.ts +3 -3
  204. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  205. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  206. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  207. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  208. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  209. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  210. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  211. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  212. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  213. package/dist/prompts/schemas.d.ts +4 -4
  214. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  215. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  216. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  217. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  218. package/dist/resources/errors.cjs +2 -2
  219. package/dist/resources/errors.d.ts.map +1 -1
  220. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  221. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  222. package/dist/resources/handlers/factory.d.ts +3 -3
  223. package/dist/resources/handlers/factory.d.ts.map +1 -1
  224. package/dist/resources/handlers/filesystem-handler.d.ts +2 -2
  225. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  226. package/dist/resources/index.cjs +7 -9
  227. package/dist/resources/index.d.ts +3 -3
  228. package/dist/resources/index.d.ts.map +1 -1
  229. package/dist/resources/index.js +5 -10
  230. package/dist/resources/manager.cjs +77 -74
  231. package/dist/resources/manager.d.ts +16 -7
  232. package/dist/resources/manager.d.ts.map +1 -1
  233. package/dist/resources/manager.js +77 -74
  234. package/dist/resources/schemas.cjs +6 -26
  235. package/dist/resources/schemas.d.ts +8 -100
  236. package/dist/resources/schemas.d.ts.map +1 -1
  237. package/dist/resources/schemas.js +4 -23
  238. package/dist/search/search-service.d.ts +2 -2
  239. package/dist/search/search-service.d.ts.map +1 -1
  240. package/dist/session/chat-session.cjs +15 -25
  241. package/dist/session/chat-session.d.ts +7 -5
  242. package/dist/session/chat-session.d.ts.map +1 -1
  243. package/dist/session/chat-session.js +16 -26
  244. package/dist/session/errors.cjs +2 -2
  245. package/dist/session/errors.d.ts.map +1 -1
  246. package/dist/session/history/database.cjs +1 -1
  247. package/dist/session/history/database.d.ts +4 -4
  248. package/dist/session/history/database.d.ts.map +1 -1
  249. package/dist/session/history/factory.d.ts +3 -3
  250. package/dist/session/history/factory.d.ts.map +1 -1
  251. package/dist/session/history/memory.d.ts +4 -4
  252. package/dist/session/history/memory.d.ts.map +1 -1
  253. package/dist/session/history/types.d.ts +2 -2
  254. package/dist/session/history/types.d.ts.map +1 -1
  255. package/dist/session/index.cjs +3 -0
  256. package/dist/session/index.d.ts +2 -0
  257. package/dist/session/index.d.ts.map +1 -1
  258. package/dist/session/index.js +2 -0
  259. package/dist/session/message-queue.d.ts +2 -2
  260. package/dist/session/message-queue.d.ts.map +1 -1
  261. package/dist/session/session-manager.cjs +67 -9
  262. package/dist/session/session-manager.d.ts +46 -7
  263. package/dist/session/session-manager.d.ts.map +1 -1
  264. package/dist/session/session-manager.js +67 -9
  265. package/dist/session/title-generator.cjs +2 -2
  266. package/dist/session/title-generator.d.ts +2 -2
  267. package/dist/session/title-generator.d.ts.map +1 -1
  268. package/dist/storage/blob/index.cjs +0 -40
  269. package/dist/storage/blob/index.d.ts +2 -44
  270. package/dist/storage/blob/index.d.ts.map +1 -1
  271. package/dist/storage/blob/index.js +0 -30
  272. package/dist/storage/cache/index.cjs +0 -37
  273. package/dist/storage/cache/index.d.ts +0 -42
  274. package/dist/storage/cache/index.d.ts.map +1 -1
  275. package/dist/storage/cache/index.js +0 -28
  276. package/dist/storage/database/index.cjs +0 -42
  277. package/dist/storage/database/index.d.ts +0 -43
  278. package/dist/storage/database/index.d.ts.map +1 -1
  279. package/dist/storage/database/index.js +0 -37
  280. package/dist/storage/error-codes.cjs +1 -6
  281. package/dist/storage/error-codes.d.ts +2 -7
  282. package/dist/storage/error-codes.d.ts.map +1 -1
  283. package/dist/storage/error-codes.js +1 -6
  284. package/dist/storage/errors.cjs +18 -82
  285. package/dist/storage/errors.d.ts +4 -24
  286. package/dist/storage/errors.d.ts.map +1 -1
  287. package/dist/storage/errors.js +16 -80
  288. package/dist/storage/index.cjs +8 -69
  289. package/dist/storage/index.d.ts +11 -66
  290. package/dist/storage/index.d.ts.map +1 -1
  291. package/dist/storage/index.js +6 -50
  292. package/dist/storage/storage-manager.cjs +9 -25
  293. package/dist/storage/storage-manager.d.ts +11 -15
  294. package/dist/storage/storage-manager.d.ts.map +1 -1
  295. package/dist/storage/storage-manager.js +8 -23
  296. package/dist/storage/types.d.ts +0 -1
  297. package/dist/storage/types.d.ts.map +1 -1
  298. package/dist/systemPrompt/contributors.d.ts +4 -4
  299. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  300. package/dist/systemPrompt/errors.cjs +2 -2
  301. package/dist/systemPrompt/errors.d.ts.map +1 -1
  302. package/dist/systemPrompt/manager.cjs +1 -5
  303. package/dist/systemPrompt/manager.d.ts +2 -3
  304. package/dist/systemPrompt/manager.d.ts.map +1 -1
  305. package/dist/systemPrompt/manager.js +1 -5
  306. package/dist/telemetry/index.cjs +3 -0
  307. package/dist/telemetry/index.d.ts +2 -0
  308. package/dist/telemetry/index.d.ts.map +1 -1
  309. package/dist/telemetry/index.js +2 -0
  310. package/dist/telemetry/utils.d.ts +4 -4
  311. package/dist/telemetry/utils.d.ts.map +1 -1
  312. package/dist/test-utils/in-memory-storage.cjs +288 -0
  313. package/dist/test-utils/in-memory-storage.js +252 -0
  314. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  315. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  316. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  317. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  318. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  319. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  320. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  321. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  322. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  323. package/dist/tools/define-tool.d.ts +11 -0
  324. package/dist/tools/define-tool.d.ts.map +1 -0
  325. package/dist/tools/define-tool.js +7 -0
  326. package/dist/tools/error-codes.cjs +2 -2
  327. package/dist/tools/error-codes.d.ts +2 -2
  328. package/dist/tools/error-codes.d.ts.map +1 -1
  329. package/dist/tools/error-codes.js +2 -2
  330. package/dist/tools/errors.cjs +11 -23
  331. package/dist/tools/errors.d.ts +4 -10
  332. package/dist/tools/errors.d.ts.map +1 -1
  333. package/dist/tools/errors.js +9 -21
  334. package/dist/tools/index.cjs +3 -8
  335. package/dist/tools/index.d.ts +2 -4
  336. package/dist/tools/index.d.ts.map +1 -1
  337. package/dist/tools/index.js +2 -7
  338. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  339. package/dist/tools/pattern-utils.d.ts +20 -0
  340. package/dist/tools/pattern-utils.d.ts.map +1 -0
  341. package/dist/tools/pattern-utils.js +10 -0
  342. package/dist/tools/schemas.cjs +14 -40
  343. package/dist/tools/schemas.d.ts +6 -50
  344. package/dist/tools/schemas.d.ts.map +1 -1
  345. package/dist/tools/schemas.js +11 -32
  346. package/dist/tools/tool-call-metadata.cjs +3 -3
  347. package/dist/tools/tool-call-metadata.d.ts +1 -1
  348. package/dist/tools/tool-call-metadata.d.ts.map +1 -1
  349. package/dist/tools/tool-call-metadata.js +3 -3
  350. package/dist/tools/tool-manager.cjs +376 -327
  351. package/dist/tools/tool-manager.d.ts +63 -80
  352. package/dist/tools/tool-manager.d.ts.map +1 -1
  353. package/dist/tools/tool-manager.js +376 -331
  354. package/dist/tools/types.d.ts +112 -13
  355. package/dist/tools/types.d.ts.map +1 -1
  356. package/dist/utils/error-conversion.d.ts +2 -2
  357. package/dist/utils/error-conversion.d.ts.map +1 -1
  358. package/dist/utils/path.d.ts +2 -2
  359. package/dist/utils/path.d.ts.map +1 -1
  360. package/dist/utils/result.cjs +1 -1
  361. package/dist/utils/result.d.ts.map +1 -1
  362. package/dist/utils/schema.cjs +9 -5
  363. package/dist/utils/schema.d.ts +4 -2
  364. package/dist/utils/schema.d.ts.map +1 -1
  365. package/dist/utils/schema.js +9 -5
  366. package/dist/utils/service-initializer.cjs +51 -56
  367. package/dist/utils/service-initializer.d.ts +17 -14
  368. package/dist/utils/service-initializer.d.ts.map +1 -1
  369. package/dist/utils/service-initializer.js +51 -56
  370. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  371. package/dist/workspace/error-codes.d.ts +5 -0
  372. package/dist/workspace/error-codes.d.ts.map +1 -0
  373. package/dist/workspace/error-codes.js +7 -0
  374. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  375. package/dist/workspace/errors.d.ts +5 -0
  376. package/dist/workspace/errors.d.ts.map +1 -0
  377. package/dist/workspace/errors.js +21 -0
  378. package/dist/{image → workspace}/index.cjs +12 -10
  379. package/dist/workspace/index.d.ts +5 -0
  380. package/dist/workspace/index.d.ts.map +1 -0
  381. package/dist/workspace/index.js +9 -0
  382. package/dist/workspace/manager.cjs +113 -0
  383. package/dist/workspace/manager.d.ts +18 -0
  384. package/dist/workspace/manager.d.ts.map +1 -0
  385. package/dist/workspace/manager.js +90 -0
  386. package/dist/workspace/types.d.ts +14 -0
  387. package/dist/workspace/types.d.ts.map +1 -0
  388. package/package.json +2 -2
  389. package/dist/context/compaction/factory.cjs +0 -57
  390. package/dist/context/compaction/factory.d.ts +0 -17
  391. package/dist/context/compaction/factory.d.ts.map +0 -1
  392. package/dist/context/compaction/factory.js +0 -34
  393. package/dist/context/compaction/provider.d.ts +0 -48
  394. package/dist/context/compaction/provider.d.ts.map +0 -1
  395. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  396. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  397. package/dist/context/compaction/providers/noop-provider.js +0 -24
  398. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  399. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  400. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  401. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  402. package/dist/context/compaction/registry.cjs +0 -39
  403. package/dist/context/compaction/registry.d.ts +0 -19
  404. package/dist/context/compaction/registry.d.ts.map +0 -1
  405. package/dist/context/compaction/registry.js +0 -16
  406. package/dist/context/compaction/schemas.cjs +0 -58
  407. package/dist/context/compaction/schemas.d.ts +0 -69
  408. package/dist/context/compaction/schemas.d.ts.map +0 -1
  409. package/dist/context/compaction/schemas.js +0 -34
  410. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  411. package/dist/image/define-image.cjs +0 -146
  412. package/dist/image/define-image.d.ts +0 -71
  413. package/dist/image/define-image.d.ts.map +0 -1
  414. package/dist/image/define-image.js +0 -121
  415. package/dist/image/index.d.ts +0 -53
  416. package/dist/image/index.d.ts.map +0 -1
  417. package/dist/image/index.js +0 -7
  418. package/dist/image/types.d.ts +0 -246
  419. package/dist/image/types.d.ts.map +0 -1
  420. package/dist/llm/services/test-utils.integration.cjs +0 -237
  421. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  422. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  423. package/dist/llm/services/test-utils.integration.js +0 -214
  424. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  425. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  426. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  427. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  428. package/dist/plugins/error-codes.cjs +0 -43
  429. package/dist/plugins/error-codes.d.ts +0 -34
  430. package/dist/plugins/error-codes.d.ts.map +0 -1
  431. package/dist/plugins/error-codes.js +0 -20
  432. package/dist/plugins/index.cjs +0 -61
  433. package/dist/plugins/index.d.ts +0 -21
  434. package/dist/plugins/index.d.ts.map +0 -1
  435. package/dist/plugins/index.js +0 -30
  436. package/dist/plugins/loader.cjs +0 -171
  437. package/dist/plugins/loader.d.ts +0 -30
  438. package/dist/plugins/loader.d.ts.map +0 -1
  439. package/dist/plugins/loader.js +0 -145
  440. package/dist/plugins/manager.cjs +0 -473
  441. package/dist/plugins/manager.d.ts +0 -106
  442. package/dist/plugins/manager.d.ts.map +0 -1
  443. package/dist/plugins/manager.js +0 -450
  444. package/dist/plugins/registrations/builtins.cjs +0 -51
  445. package/dist/plugins/registrations/builtins.d.ts +0 -17
  446. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  447. package/dist/plugins/registrations/builtins.js +0 -28
  448. package/dist/plugins/registry.cjs +0 -63
  449. package/dist/plugins/registry.d.ts +0 -101
  450. package/dist/plugins/registry.d.ts.map +0 -1
  451. package/dist/plugins/registry.js +0 -39
  452. package/dist/plugins/schemas.cjs +0 -73
  453. package/dist/plugins/schemas.d.ts +0 -195
  454. package/dist/plugins/schemas.d.ts.map +0 -1
  455. package/dist/plugins/schemas.js +0 -47
  456. package/dist/plugins/types.d.ts.map +0 -1
  457. package/dist/providers/base-registry.cjs +0 -147
  458. package/dist/providers/base-registry.d.ts +0 -147
  459. package/dist/providers/base-registry.d.ts.map +0 -1
  460. package/dist/providers/base-registry.js +0 -123
  461. package/dist/providers/discovery.cjs +0 -109
  462. package/dist/providers/discovery.d.ts +0 -96
  463. package/dist/providers/discovery.d.ts.map +0 -1
  464. package/dist/providers/discovery.js +0 -84
  465. package/dist/providers/index.cjs +0 -24
  466. package/dist/providers/index.d.ts +0 -32
  467. package/dist/providers/index.d.ts.map +0 -1
  468. package/dist/providers/index.js +0 -2
  469. package/dist/resources/internal-provider.d.ts.map +0 -1
  470. package/dist/storage/blob/factory.d.ts +0 -37
  471. package/dist/storage/blob/factory.d.ts.map +0 -1
  472. package/dist/storage/blob/factory.js +0 -15
  473. package/dist/storage/blob/local-blob-store.cjs +0 -496
  474. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  475. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  476. package/dist/storage/blob/local-blob-store.js +0 -463
  477. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  478. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  479. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  480. package/dist/storage/blob/memory-blob-store.js +0 -303
  481. package/dist/storage/blob/provider.d.ts +0 -50
  482. package/dist/storage/blob/provider.d.ts.map +0 -1
  483. package/dist/storage/blob/providers/index.d.ts +0 -8
  484. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  485. package/dist/storage/blob/providers/index.js +0 -7
  486. package/dist/storage/blob/providers/local.cjs +0 -39
  487. package/dist/storage/blob/providers/local.d.ts +0 -17
  488. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  489. package/dist/storage/blob/providers/local.js +0 -16
  490. package/dist/storage/blob/providers/memory.cjs +0 -39
  491. package/dist/storage/blob/providers/memory.d.ts +0 -17
  492. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  493. package/dist/storage/blob/providers/memory.js +0 -16
  494. package/dist/storage/blob/registry.cjs +0 -50
  495. package/dist/storage/blob/registry.d.ts +0 -42
  496. package/dist/storage/blob/registry.d.ts.map +0 -1
  497. package/dist/storage/blob/registry.js +0 -26
  498. package/dist/storage/blob/schemas.cjs +0 -52
  499. package/dist/storage/blob/schemas.d.ts +0 -85
  500. package/dist/storage/blob/schemas.d.ts.map +0 -1
  501. package/dist/storage/blob/schemas.js +0 -26
  502. package/dist/storage/cache/factory.cjs +0 -38
  503. package/dist/storage/cache/factory.d.ts +0 -37
  504. package/dist/storage/cache/factory.d.ts.map +0 -1
  505. package/dist/storage/cache/factory.js +0 -15
  506. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  507. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  508. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  509. package/dist/storage/cache/memory-cache-store.js +0 -84
  510. package/dist/storage/cache/provider.cjs +0 -16
  511. package/dist/storage/cache/provider.d.ts +0 -56
  512. package/dist/storage/cache/provider.d.ts.map +0 -1
  513. package/dist/storage/cache/provider.js +0 -0
  514. package/dist/storage/cache/providers/index.d.ts +0 -8
  515. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  516. package/dist/storage/cache/providers/index.js +0 -7
  517. package/dist/storage/cache/providers/memory.d.ts +0 -17
  518. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  519. package/dist/storage/cache/providers/memory.js +0 -17
  520. package/dist/storage/cache/providers/redis.cjs +0 -66
  521. package/dist/storage/cache/providers/redis.d.ts +0 -20
  522. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  523. package/dist/storage/cache/providers/redis.js +0 -33
  524. package/dist/storage/cache/redis-store.cjs +0 -173
  525. package/dist/storage/cache/redis-store.d.ts +0 -32
  526. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  527. package/dist/storage/cache/redis-store.js +0 -150
  528. package/dist/storage/cache/registry.cjs +0 -50
  529. package/dist/storage/cache/registry.d.ts +0 -42
  530. package/dist/storage/cache/registry.d.ts.map +0 -1
  531. package/dist/storage/cache/registry.js +0 -26
  532. package/dist/storage/cache/schemas.cjs +0 -81
  533. package/dist/storage/cache/schemas.d.ts +0 -150
  534. package/dist/storage/cache/schemas.d.ts.map +0 -1
  535. package/dist/storage/cache/schemas.js +0 -55
  536. package/dist/storage/database/factory.cjs +0 -38
  537. package/dist/storage/database/factory.d.ts +0 -39
  538. package/dist/storage/database/factory.d.ts.map +0 -1
  539. package/dist/storage/database/factory.js +0 -15
  540. package/dist/storage/database/memory-database-store.cjs +0 -122
  541. package/dist/storage/database/memory-database-store.d.ts +0 -29
  542. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  543. package/dist/storage/database/memory-database-store.js +0 -99
  544. package/dist/storage/database/postgres-store.cjs +0 -342
  545. package/dist/storage/database/postgres-store.d.ts +0 -55
  546. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  547. package/dist/storage/database/postgres-store.js +0 -319
  548. package/dist/storage/database/provider.cjs +0 -16
  549. package/dist/storage/database/provider.d.ts +0 -56
  550. package/dist/storage/database/provider.d.ts.map +0 -1
  551. package/dist/storage/database/provider.js +0 -0
  552. package/dist/storage/database/providers/index.cjs +0 -34
  553. package/dist/storage/database/providers/index.d.ts +0 -9
  554. package/dist/storage/database/providers/index.d.ts.map +0 -1
  555. package/dist/storage/database/providers/index.js +0 -9
  556. package/dist/storage/database/providers/memory.cjs +0 -40
  557. package/dist/storage/database/providers/memory.d.ts +0 -16
  558. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  559. package/dist/storage/database/providers/memory.js +0 -17
  560. package/dist/storage/database/providers/postgres.cjs +0 -62
  561. package/dist/storage/database/providers/postgres.d.ts +0 -19
  562. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  563. package/dist/storage/database/providers/postgres.js +0 -29
  564. package/dist/storage/database/providers/sqlite.cjs +0 -66
  565. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  566. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  567. package/dist/storage/database/providers/sqlite.js +0 -33
  568. package/dist/storage/database/registry.cjs +0 -50
  569. package/dist/storage/database/registry.d.ts +0 -42
  570. package/dist/storage/database/registry.d.ts.map +0 -1
  571. package/dist/storage/database/registry.js +0 -26
  572. package/dist/storage/database/schemas.cjs +0 -97
  573. package/dist/storage/database/schemas.d.ts +0 -226
  574. package/dist/storage/database/schemas.d.ts.map +0 -1
  575. package/dist/storage/database/schemas.js +0 -70
  576. package/dist/storage/database/sqlite-store.cjs +0 -270
  577. package/dist/storage/database/sqlite-store.d.ts +0 -33
  578. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  579. package/dist/storage/database/sqlite-store.js +0 -237
  580. package/dist/storage/schemas.cjs +0 -57
  581. package/dist/storage/schemas.d.ts +0 -347
  582. package/dist/storage/schemas.d.ts.map +0 -1
  583. package/dist/storage/schemas.js +0 -37
  584. package/dist/tools/bash-pattern-utils.cjs +0 -91
  585. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  586. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  587. package/dist/tools/bash-pattern-utils.js +0 -64
  588. package/dist/tools/custom-tool-registry.cjs +0 -64
  589. package/dist/tools/custom-tool-registry.d.ts +0 -126
  590. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  591. package/dist/tools/custom-tool-registry.js +0 -40
  592. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  593. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  594. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  595. package/dist/tools/custom-tool-schema-registry.js +0 -140
  596. package/dist/tools/internal-tools/constants.d.ts +0 -12
  597. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  598. package/dist/tools/internal-tools/constants.js +0 -12
  599. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  600. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  601. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  602. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  603. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  604. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  605. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  606. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  607. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  608. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  609. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  610. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  611. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  612. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  613. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  614. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  615. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  616. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  617. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  618. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  619. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  620. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  621. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  622. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  623. package/dist/tools/internal-tools/index.cjs +0 -26
  624. package/dist/tools/internal-tools/index.d.ts +0 -4
  625. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  626. package/dist/tools/internal-tools/index.js +0 -3
  627. package/dist/tools/internal-tools/provider.cjs +0 -324
  628. package/dist/tools/internal-tools/provider.d.ts +0 -116
  629. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  630. package/dist/tools/internal-tools/provider.js +0 -301
  631. package/dist/tools/internal-tools/registry.cjs +0 -71
  632. package/dist/tools/internal-tools/registry.d.ts +0 -91
  633. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  634. package/dist/tools/internal-tools/registry.js +0 -47
  635. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  636. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  637. /package/dist/{image → hooks}/types.cjs +0 -0
  638. /package/dist/{plugins → hooks}/types.js +0 -0
  639. /package/dist/{plugins → workspace}/types.cjs +0 -0
  640. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -0,0 +1,22 @@
1
+ import type { Hook, BeforeResponsePayload, HookExecutionContext, HookResult } from '../types.js';
2
+ export interface ResponseSanitizerConfig {
3
+ redactEmails?: boolean;
4
+ redactApiKeys?: boolean;
5
+ maxResponseLength?: number;
6
+ }
7
+ /**
8
+ * Response sanitizer built-in hook.
9
+ *
10
+ * This hook redacts sensitive information from LLM responses to prevent accidental leakage:
11
+ * - Email addresses
12
+ * - API keys and tokens
13
+ * - Optional: Truncates responses that exceed length limits
14
+ */
15
+ export declare class ResponseSanitizerHook implements Hook {
16
+ private redactEmails;
17
+ private redactApiKeys;
18
+ private maxResponseLength;
19
+ initialize(config: Record<string, unknown>): Promise<void>;
20
+ beforeResponse(payload: BeforeResponsePayload, _context: HookExecutionContext): Promise<HookResult>;
21
+ }
22
+ //# sourceMappingURL=response-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/hooks/builtins/response-sanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,IAAI,EACJ,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EAEb,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,uBAAuB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAQD;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,IAAI;IAC9C,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,iBAAiB,CAAsC;IAEzD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,cAAc,CAChB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,oBAAoB,GAC/B,OAAO,CAAC,UAAU,CAAC;CAyEzB"}
@@ -4,7 +4,7 @@ const DEFAULTS = {
4
4
  redactApiKeys: false,
5
5
  maxResponseLength: 0
6
6
  };
7
- class ResponseSanitizerPlugin {
7
+ class ResponseSanitizerHook {
8
8
  redactEmails = DEFAULTS.redactEmails;
9
9
  redactApiKeys = DEFAULTS.redactApiKeys;
10
10
  maxResponseLength = DEFAULTS.maxResponseLength;
@@ -75,5 +75,5 @@ class ResponseSanitizerPlugin {
75
75
  }
76
76
  }
77
77
  export {
78
- ResponseSanitizerPlugin
78
+ ResponseSanitizerHook
79
79
  };
@@ -0,0 +1,43 @@
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 error_codes_exports = {};
20
+ __export(error_codes_exports, {
21
+ HookErrorCode: () => HookErrorCode
22
+ });
23
+ module.exports = __toCommonJS(error_codes_exports);
24
+ var HookErrorCode = /* @__PURE__ */ ((HookErrorCode2) => {
25
+ HookErrorCode2["HOOK_LOAD_FAILED"] = "HOOK_LOAD_FAILED";
26
+ HookErrorCode2["HOOK_INVALID_SHAPE"] = "HOOK_INVALID_SHAPE";
27
+ HookErrorCode2["HOOK_INSTANTIATION_FAILED"] = "HOOK_INSTANTIATION_FAILED";
28
+ HookErrorCode2["HOOK_INITIALIZATION_FAILED"] = "HOOK_INITIALIZATION_FAILED";
29
+ HookErrorCode2["HOOK_CONFIGURATION_INVALID"] = "HOOK_CONFIGURATION_INVALID";
30
+ HookErrorCode2["HOOK_EXECUTION_FAILED"] = "HOOK_EXECUTION_FAILED";
31
+ HookErrorCode2["HOOK_EXECUTION_TIMEOUT"] = "HOOK_EXECUTION_TIMEOUT";
32
+ HookErrorCode2["HOOK_BLOCKED_EXECUTION"] = "HOOK_BLOCKED_EXECUTION";
33
+ HookErrorCode2["HOOK_DUPLICATE_PRIORITY"] = "HOOK_DUPLICATE_PRIORITY";
34
+ HookErrorCode2["HOOK_DEPENDENCY_NOT_INSTALLED"] = "HOOK_DEPENDENCY_NOT_INSTALLED";
35
+ HookErrorCode2["HOOK_PROVIDER_ALREADY_REGISTERED"] = "HOOK_PROVIDER_ALREADY_REGISTERED";
36
+ HookErrorCode2["HOOK_PROVIDER_NOT_FOUND"] = "HOOK_PROVIDER_NOT_FOUND";
37
+ HookErrorCode2["HOOK_PROVIDER_VALIDATION_FAILED"] = "HOOK_PROVIDER_VALIDATION_FAILED";
38
+ return HookErrorCode2;
39
+ })(HookErrorCode || {});
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ HookErrorCode
43
+ });
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Hook-specific error codes.
3
+ * Used for hook loading, validation, and execution errors.
4
+ */
5
+ export declare enum HookErrorCode {
6
+ /** Hook file not found or cannot be loaded */
7
+ HOOK_LOAD_FAILED = "HOOK_LOAD_FAILED",
8
+ /** Hook does not implement required interface */
9
+ HOOK_INVALID_SHAPE = "HOOK_INVALID_SHAPE",
10
+ /** Hook constructor threw an error */
11
+ HOOK_INSTANTIATION_FAILED = "HOOK_INSTANTIATION_FAILED",
12
+ /** Hook initialization failed */
13
+ HOOK_INITIALIZATION_FAILED = "HOOK_INITIALIZATION_FAILED",
14
+ /** Hook configuration is invalid */
15
+ HOOK_CONFIGURATION_INVALID = "HOOK_CONFIGURATION_INVALID",
16
+ /** Hook execution failed */
17
+ HOOK_EXECUTION_FAILED = "HOOK_EXECUTION_FAILED",
18
+ /** Hook execution timed out */
19
+ HOOK_EXECUTION_TIMEOUT = "HOOK_EXECUTION_TIMEOUT",
20
+ /** Hook blocked execution */
21
+ HOOK_BLOCKED_EXECUTION = "HOOK_BLOCKED_EXECUTION",
22
+ /** Duplicate hook priority */
23
+ HOOK_DUPLICATE_PRIORITY = "HOOK_DUPLICATE_PRIORITY",
24
+ /** Required dependency not installed for hook loading */
25
+ HOOK_DEPENDENCY_NOT_INSTALLED = "HOOK_DEPENDENCY_NOT_INSTALLED",
26
+ /** Hook provider already registered in registry */
27
+ HOOK_PROVIDER_ALREADY_REGISTERED = "HOOK_PROVIDER_ALREADY_REGISTERED",
28
+ /** Hook provider not found in registry */
29
+ HOOK_PROVIDER_NOT_FOUND = "HOOK_PROVIDER_NOT_FOUND",
30
+ /** Hook provider configuration validation failed */
31
+ HOOK_PROVIDER_VALIDATION_FAILED = "HOOK_PROVIDER_VALIDATION_FAILED"
32
+ }
33
+ export type { HookErrorCode as default };
34
+ //# sourceMappingURL=error-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/hooks/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,aAAa;IACrB,8CAA8C;IAC9C,gBAAgB,qBAAqB;IAErC,iDAAiD;IACjD,kBAAkB,uBAAuB;IAEzC,sCAAsC;IACtC,yBAAyB,8BAA8B;IAEvD,iCAAiC;IACjC,0BAA0B,+BAA+B;IAEzD,oCAAoC;IACpC,0BAA0B,+BAA+B;IAEzD,4BAA4B;IAC5B,qBAAqB,0BAA0B;IAE/C,+BAA+B;IAC/B,sBAAsB,2BAA2B;IAEjD,6BAA6B;IAC7B,sBAAsB,2BAA2B;IAEjD,8BAA8B;IAC9B,uBAAuB,4BAA4B;IAEnD,yDAAyD;IACzD,6BAA6B,kCAAkC;IAE/D,mDAAmD;IACnD,gCAAgC,qCAAqC;IAErE,0CAA0C;IAC1C,uBAAuB,4BAA4B;IAEnD,oDAAoD;IACpD,+BAA+B,oCAAoC;CACtE;AAED,YAAY,EAAE,aAAa,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ var HookErrorCode = /* @__PURE__ */ ((HookErrorCode2) => {
3
+ HookErrorCode2["HOOK_LOAD_FAILED"] = "HOOK_LOAD_FAILED";
4
+ HookErrorCode2["HOOK_INVALID_SHAPE"] = "HOOK_INVALID_SHAPE";
5
+ HookErrorCode2["HOOK_INSTANTIATION_FAILED"] = "HOOK_INSTANTIATION_FAILED";
6
+ HookErrorCode2["HOOK_INITIALIZATION_FAILED"] = "HOOK_INITIALIZATION_FAILED";
7
+ HookErrorCode2["HOOK_CONFIGURATION_INVALID"] = "HOOK_CONFIGURATION_INVALID";
8
+ HookErrorCode2["HOOK_EXECUTION_FAILED"] = "HOOK_EXECUTION_FAILED";
9
+ HookErrorCode2["HOOK_EXECUTION_TIMEOUT"] = "HOOK_EXECUTION_TIMEOUT";
10
+ HookErrorCode2["HOOK_BLOCKED_EXECUTION"] = "HOOK_BLOCKED_EXECUTION";
11
+ HookErrorCode2["HOOK_DUPLICATE_PRIORITY"] = "HOOK_DUPLICATE_PRIORITY";
12
+ HookErrorCode2["HOOK_DEPENDENCY_NOT_INSTALLED"] = "HOOK_DEPENDENCY_NOT_INSTALLED";
13
+ HookErrorCode2["HOOK_PROVIDER_ALREADY_REGISTERED"] = "HOOK_PROVIDER_ALREADY_REGISTERED";
14
+ HookErrorCode2["HOOK_PROVIDER_NOT_FOUND"] = "HOOK_PROVIDER_NOT_FOUND";
15
+ HookErrorCode2["HOOK_PROVIDER_VALIDATION_FAILED"] = "HOOK_PROVIDER_VALIDATION_FAILED";
16
+ return HookErrorCode2;
17
+ })(HookErrorCode || {});
18
+ export {
19
+ HookErrorCode
20
+ };
@@ -16,25 +16,22 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var memory_exports = {};
20
- __export(memory_exports, {
21
- inMemoryCacheProvider: () => inMemoryCacheProvider
19
+ var hooks_exports = {};
20
+ __export(hooks_exports, {
21
+ ContentPolicyHook: () => import_content_policy.ContentPolicyHook,
22
+ HookErrorCode: () => import_error_codes.HookErrorCode,
23
+ HookManager: () => import_manager.HookManager,
24
+ ResponseSanitizerHook: () => import_response_sanitizer.ResponseSanitizerHook
22
25
  });
23
- module.exports = __toCommonJS(memory_exports);
24
- var import_schemas = require("../schemas.js");
25
- var import_memory_cache_store = require("../memory-cache-store.js");
26
- const inMemoryCacheProvider = {
27
- type: "in-memory",
28
- configSchema: import_schemas.InMemoryCacheSchema,
29
- create: (_config, _logger) => new import_memory_cache_store.MemoryCacheStore(),
30
- metadata: {
31
- displayName: "In-Memory",
32
- description: "Store cache data in RAM (ephemeral, for testing and development)",
33
- requiresNetwork: false,
34
- supportsTTL: true
35
- }
36
- };
26
+ module.exports = __toCommonJS(hooks_exports);
27
+ var import_manager = require("./manager.js");
28
+ var import_error_codes = require("./error-codes.js");
29
+ var import_content_policy = require("./builtins/content-policy.js");
30
+ var import_response_sanitizer = require("./builtins/response-sanitizer.js");
37
31
  // Annotate the CommonJS export names for ESM import in node:
38
32
  0 && (module.exports = {
39
- inMemoryCacheProvider
33
+ ContentPolicyHook,
34
+ HookErrorCode,
35
+ HookManager,
36
+ ResponseSanitizerHook
40
37
  });
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Hook System
3
+ *
4
+ * Unified hook architecture for extending agent behavior at key extension points.
5
+ */
6
+ export type { Hook, HookConfig, HookExecutionContext, HookResult, HookNotice, ExtensionPoint, BeforeLLMRequestPayload, BeforeToolCallPayload, AfterToolResultPayload, BeforeResponsePayload, } from './types.js';
7
+ export { HookManager } from './manager.js';
8
+ export type { HookManagerOptions, HookExecutionContextOptions } from './manager.js';
9
+ export { HookErrorCode } from './error-codes.js';
10
+ export { ContentPolicyHook } from './builtins/content-policy.js';
11
+ export type { ContentPolicyConfig } from './builtins/content-policy.js';
12
+ export { ResponseSanitizerHook } from './builtins/response-sanitizer.js';
13
+ export type { ResponseSanitizerConfig } from './builtins/response-sanitizer.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACR,IAAI,EACJ,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAGpF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ import { HookManager } from "./manager.js";
3
+ import { HookErrorCode } from "./error-codes.js";
4
+ import { ContentPolicyHook } from "./builtins/content-policy.js";
5
+ import { ResponseSanitizerHook } from "./builtins/response-sanitizer.js";
6
+ export {
7
+ ContentPolicyHook,
8
+ HookErrorCode,
9
+ HookManager,
10
+ ResponseSanitizerHook
11
+ };
@@ -0,0 +1,354 @@
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
+ HookManager: () => HookManager
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_async_context = require("../utils/async-context.js");
27
+ var import_types = require("../logger/v2/types.js");
28
+ class HookManager {
29
+ hooks = [];
30
+ hooksByExtensionPoint = /* @__PURE__ */ new Map();
31
+ hookNameByInstance = /* @__PURE__ */ new WeakMap();
32
+ options;
33
+ initialized = false;
34
+ logger;
35
+ /** Default timeout for hook execution (milliseconds) */
36
+ static DEFAULT_TIMEOUT = 5e3;
37
+ constructor(options, hooks, logger) {
38
+ this.options = options;
39
+ this.logger = logger.createChild(import_types.DextoLogComponent.HOOK);
40
+ this.setHooks(hooks);
41
+ this.logger.debug("HookManager created");
42
+ }
43
+ /**
44
+ * Provide the concrete hooks this manager should orchestrate.
45
+ * Hooks must be fully resolved and initialized before calling `initialize()`.
46
+ */
47
+ setHooks(hooks) {
48
+ if (this.initialized) {
49
+ throw new import_errors.DextoRuntimeError(
50
+ import_error_codes.HookErrorCode.HOOK_CONFIGURATION_INVALID,
51
+ import_errors.ErrorScope.HOOK,
52
+ import_errors.ErrorType.SYSTEM,
53
+ "Cannot set hooks after initialization"
54
+ );
55
+ }
56
+ this.hooks = [...hooks];
57
+ this.hooksByExtensionPoint.clear();
58
+ this.hookNameByInstance = /* @__PURE__ */ new WeakMap();
59
+ for (const [index, hook] of this.hooks.entries()) {
60
+ this.hookNameByInstance.set(hook, this.deriveHookName(hook, index));
61
+ }
62
+ }
63
+ /**
64
+ * Initialize hook orchestration.
65
+ * Validates hook shapes and registers them to extension points.
66
+ * @throws {DextoRuntimeError} If any hook fails validation (fail-fast)
67
+ */
68
+ async initialize() {
69
+ if (this.initialized) {
70
+ throw new import_errors.DextoRuntimeError(
71
+ import_error_codes.HookErrorCode.HOOK_CONFIGURATION_INVALID,
72
+ import_errors.ErrorScope.HOOK,
73
+ import_errors.ErrorType.SYSTEM,
74
+ "HookManager already initialized"
75
+ );
76
+ }
77
+ for (const [index, hook] of this.hooks.entries()) {
78
+ this.assertValidHookShape(hook, index);
79
+ this.registerToExtensionPoints(hook);
80
+ }
81
+ for (const [extensionPoint, hooks] of this.hooksByExtensionPoint.entries()) {
82
+ this.logger.debug(
83
+ `Extension point '${extensionPoint}': ${hooks.length} hook(s) registered`
84
+ );
85
+ }
86
+ this.initialized = true;
87
+ this.logger.info(`HookManager initialized with ${this.hooks.length} hook(s)`);
88
+ }
89
+ /**
90
+ * Register a hook to the extension points it implements.
91
+ */
92
+ registerToExtensionPoints(hook) {
93
+ const extensionPoints = [
94
+ "beforeLLMRequest",
95
+ "beforeToolCall",
96
+ "afterToolResult",
97
+ "beforeResponse"
98
+ ];
99
+ for (const point of extensionPoints) {
100
+ if (typeof hook[point] === "function") {
101
+ if (!this.hooksByExtensionPoint.has(point)) {
102
+ this.hooksByExtensionPoint.set(point, []);
103
+ }
104
+ this.hooksByExtensionPoint.get(point).push(hook);
105
+ }
106
+ }
107
+ }
108
+ /**
109
+ * Execute all hooks at a specific extension point.
110
+ * Hooks execute sequentially in the order they were provided.
111
+ *
112
+ * @param extensionPoint - Which extension point to execute
113
+ * @param payload - Payload for this extension point (must be an object)
114
+ * @param options - Options for building execution context
115
+ * @returns Modified payload after all hooks execute
116
+ * @throws {DextoRuntimeError} If a hook cancels execution or payload is not an object
117
+ */
118
+ async executeHooks(extensionPoint, payload, options) {
119
+ const hooks = this.hooksByExtensionPoint.get(extensionPoint) || [];
120
+ if (hooks.length === 0) {
121
+ return payload;
122
+ }
123
+ if (payload === null || typeof payload !== "object") {
124
+ throw new import_errors.DextoRuntimeError(
125
+ import_error_codes.HookErrorCode.HOOK_INVALID_SHAPE,
126
+ import_errors.ErrorScope.HOOK,
127
+ import_errors.ErrorType.USER,
128
+ `Payload for ${extensionPoint} must be an object (got ${payload === null ? "null" : typeof payload})`,
129
+ { extensionPoint, payloadType: typeof payload }
130
+ );
131
+ }
132
+ let currentPayload = { ...payload };
133
+ const asyncCtx = (0, import_async_context.getContext)();
134
+ const llmConfig = options.stateManager.getLLMConfig(options.sessionId);
135
+ const context = {
136
+ sessionId: options.sessionId ?? void 0,
137
+ userId: asyncCtx?.userId ?? void 0,
138
+ tenantId: asyncCtx?.tenantId ?? void 0,
139
+ llmConfig,
140
+ logger: this.logger,
141
+ abortSignal: options.abortSignal ?? void 0,
142
+ agent: {
143
+ sessionManager: options.sessionManager,
144
+ mcpManager: options.mcpManager,
145
+ toolManager: options.toolManager,
146
+ stateManager: options.stateManager,
147
+ agentEventBus: this.options.agentEventBus,
148
+ storageManager: this.options.storageManager
149
+ }
150
+ };
151
+ for (const [index, hook] of hooks.entries()) {
152
+ const method = hook[extensionPoint];
153
+ if (!method) continue;
154
+ const hookName = this.hookNameByInstance.get(hook) ?? this.deriveHookName(hook, index);
155
+ const startTime = Date.now();
156
+ try {
157
+ const result = await this.executeWithTimeout(
158
+ method.call(hook, currentPayload, context),
159
+ hookName,
160
+ HookManager.DEFAULT_TIMEOUT
161
+ );
162
+ const duration = Date.now() - startTime;
163
+ this.logger.debug(`Hook '${hookName}' executed at ${extensionPoint}`, {
164
+ ok: result.ok,
165
+ cancelled: result.cancel,
166
+ duration,
167
+ hasModifications: !!result.modify
168
+ });
169
+ if (result.notices && result.notices.length > 0) {
170
+ for (const notice of result.notices) {
171
+ const level = notice.kind === "block" || notice.kind === "warn" ? "warn" : "info";
172
+ this.logger[level](`Hook notice (${notice.kind}): ${notice.message}`, {
173
+ hook: hookName,
174
+ code: notice.code,
175
+ details: notice.details
176
+ });
177
+ }
178
+ }
179
+ if (!result.ok) {
180
+ this.logger.warn(`Hook '${hookName}' returned error`, {
181
+ message: result.message
182
+ });
183
+ if (result.cancel) {
184
+ throw new import_errors.DextoRuntimeError(
185
+ import_error_codes.HookErrorCode.HOOK_BLOCKED_EXECUTION,
186
+ import_errors.ErrorScope.HOOK,
187
+ import_errors.ErrorType.FORBIDDEN,
188
+ result.message || `Operation blocked by hook '${hookName}'`,
189
+ {
190
+ hook: hookName,
191
+ extensionPoint,
192
+ notices: result.notices
193
+ }
194
+ );
195
+ }
196
+ continue;
197
+ }
198
+ if (result.modify) {
199
+ currentPayload = {
200
+ ...currentPayload,
201
+ ...result.modify
202
+ };
203
+ this.logger.debug(`Hook '${hookName}' modified payload`, {
204
+ keys: Object.keys(result.modify)
205
+ });
206
+ }
207
+ if (result.cancel) {
208
+ throw new import_errors.DextoRuntimeError(
209
+ import_error_codes.HookErrorCode.HOOK_BLOCKED_EXECUTION,
210
+ import_errors.ErrorScope.HOOK,
211
+ import_errors.ErrorType.FORBIDDEN,
212
+ result.message || `Operation cancelled by hook '${hookName}'`,
213
+ {
214
+ hook: hookName,
215
+ extensionPoint,
216
+ notices: result.notices
217
+ }
218
+ );
219
+ }
220
+ } catch (error) {
221
+ const duration = Date.now() - startTime;
222
+ if (error instanceof import_errors.DextoRuntimeError) {
223
+ throw error;
224
+ }
225
+ this.logger.error(`Hook '${hookName}' threw error`, {
226
+ error: error instanceof Error ? error.message : String(error),
227
+ duration
228
+ });
229
+ throw new import_errors.DextoRuntimeError(
230
+ import_error_codes.HookErrorCode.HOOK_EXECUTION_FAILED,
231
+ import_errors.ErrorScope.HOOK,
232
+ import_errors.ErrorType.SYSTEM,
233
+ `Hook '${hookName}' failed: ${error instanceof Error ? error.message : String(error)}`,
234
+ {
235
+ hook: hookName,
236
+ extensionPoint
237
+ }
238
+ );
239
+ }
240
+ }
241
+ return currentPayload;
242
+ }
243
+ /**
244
+ * Execute a promise with timeout, properly clearing timer on completion
245
+ * Prevents timer leaks and unhandled rejections from Promise.race
246
+ */
247
+ async executeWithTimeout(promise, hookName, ms) {
248
+ let timer;
249
+ return await new Promise((resolve, reject) => {
250
+ timer = setTimeout(() => {
251
+ reject(
252
+ new import_errors.DextoRuntimeError(
253
+ import_error_codes.HookErrorCode.HOOK_EXECUTION_TIMEOUT,
254
+ import_errors.ErrorScope.HOOK,
255
+ import_errors.ErrorType.TIMEOUT,
256
+ `Hook '${hookName}' execution timed out after ${ms}ms`
257
+ )
258
+ );
259
+ }, ms);
260
+ promise.then(
261
+ (val) => {
262
+ if (timer) clearTimeout(timer);
263
+ resolve(val);
264
+ },
265
+ (err) => {
266
+ if (timer) clearTimeout(timer);
267
+ reject(err);
268
+ }
269
+ );
270
+ });
271
+ }
272
+ /**
273
+ * Cleanup all hooks.
274
+ * Called when agent shuts down
275
+ */
276
+ async cleanup() {
277
+ for (const [index, hook] of this.hooks.entries()) {
278
+ const hookName = this.hookNameByInstance.get(hook) ?? this.deriveHookName(hook, index);
279
+ if (hook.cleanup) {
280
+ try {
281
+ await hook.cleanup();
282
+ this.logger.debug(`Hook cleaned up: ${hookName}`);
283
+ } catch (error) {
284
+ this.logger.error(`Hook cleanup failed: ${hookName}`, {
285
+ error: error instanceof Error ? error.message : String(error)
286
+ });
287
+ }
288
+ }
289
+ }
290
+ this.logger.info("HookManager cleanup complete");
291
+ }
292
+ /**
293
+ * Get hook statistics.
294
+ */
295
+ getStats() {
296
+ const byExtensionPoint = {};
297
+ for (const [point, hooks] of this.hooksByExtensionPoint.entries()) {
298
+ byExtensionPoint[point] = hooks.length;
299
+ }
300
+ return {
301
+ total: this.hooks.length,
302
+ enabled: this.hooks.length,
303
+ byExtensionPoint
304
+ };
305
+ }
306
+ /**
307
+ * List hook display names in execution order.
308
+ *
309
+ * Names are derived from:
310
+ * - `hook.name` (if present)
311
+ * - constructor/class name (if available)
312
+ * - fallback `hook#N`
313
+ */
314
+ getHookNames() {
315
+ return this.hooks.map((hook, index) => {
316
+ return this.hookNameByInstance.get(hook) ?? this.deriveHookName(hook, index);
317
+ });
318
+ }
319
+ deriveHookName(hook, index) {
320
+ const maybeNamed = hook;
321
+ if (typeof maybeNamed.name === "string" && maybeNamed.name.trim().length > 0) {
322
+ return maybeNamed.name;
323
+ }
324
+ const ctorName = hook.constructor?.name;
325
+ if (typeof ctorName === "string" && ctorName !== "Object" && ctorName.trim().length > 0) {
326
+ return ctorName;
327
+ }
328
+ return `hook#${index + 1}`;
329
+ }
330
+ assertValidHookShape(hook, index) {
331
+ const extensionPoints = [
332
+ "beforeLLMRequest",
333
+ "beforeToolCall",
334
+ "afterToolResult",
335
+ "beforeResponse"
336
+ ];
337
+ const hasExtensionPoint = extensionPoints.some(
338
+ (point) => typeof hook[point] === "function"
339
+ );
340
+ if (!hasExtensionPoint) {
341
+ throw new import_errors.DextoRuntimeError(
342
+ import_error_codes.HookErrorCode.HOOK_INVALID_SHAPE,
343
+ import_errors.ErrorScope.HOOK,
344
+ import_errors.ErrorType.USER,
345
+ `Hook '${this.deriveHookName(hook, index)}' must implement at least one extension point method`,
346
+ { availableExtensionPoints: extensionPoints }
347
+ );
348
+ }
349
+ }
350
+ }
351
+ // Annotate the CommonJS export names for ESM import in node:
352
+ 0 && (module.exports = {
353
+ HookManager
354
+ });
@@ -0,0 +1,103 @@
1
+ import type { ExtensionPoint, Hook } from './types.js';
2
+ import type { AgentEventBus } from '../events/index.js';
3
+ import type { StorageManager } from '../storage/index.js';
4
+ import type { SessionManager } from '../session/index.js';
5
+ import type { MCPManager } from '../mcp/manager.js';
6
+ import type { ToolManager } from '../tools/tool-manager.js';
7
+ import type { AgentStateManager } from '../agent/state-manager.js';
8
+ import type { Logger } from '../logger/v2/types.js';
9
+ /**
10
+ * Options for HookManager construction.
11
+ */
12
+ export interface HookManagerOptions {
13
+ agentEventBus: AgentEventBus;
14
+ storageManager: StorageManager;
15
+ }
16
+ /**
17
+ * Options for building hook execution context.
18
+ * Used when calling `executeHooks()`.
19
+ */
20
+ export interface HookExecutionContextOptions {
21
+ sessionManager: SessionManager;
22
+ mcpManager: MCPManager;
23
+ toolManager: ToolManager;
24
+ stateManager: AgentStateManager;
25
+ sessionId?: string;
26
+ abortSignal?: AbortSignal;
27
+ }
28
+ /**
29
+ * Hook Manager - Orchestrates hook execution.
30
+ *
31
+ * Responsibilities:
32
+ * - Validate hook shape
33
+ * - Manage hook lifecycle (initialize, execute, cleanup)
34
+ * - Execute hooks sequentially at extension points
35
+ * - Handle timeouts and errors with fail-fast policy
36
+ */
37
+ export declare class HookManager {
38
+ private hooks;
39
+ private hooksByExtensionPoint;
40
+ private hookNameByInstance;
41
+ private options;
42
+ private initialized;
43
+ private logger;
44
+ /** Default timeout for hook execution (milliseconds) */
45
+ private static readonly DEFAULT_TIMEOUT;
46
+ constructor(options: HookManagerOptions, hooks: Hook[], logger: Logger);
47
+ /**
48
+ * Provide the concrete hooks this manager should orchestrate.
49
+ * Hooks must be fully resolved and initialized before calling `initialize()`.
50
+ */
51
+ setHooks(hooks: Hook[]): void;
52
+ /**
53
+ * Initialize hook orchestration.
54
+ * Validates hook shapes and registers them to extension points.
55
+ * @throws {DextoRuntimeError} If any hook fails validation (fail-fast)
56
+ */
57
+ initialize(): Promise<void>;
58
+ /**
59
+ * Register a hook to the extension points it implements.
60
+ */
61
+ private registerToExtensionPoints;
62
+ /**
63
+ * Execute all hooks at a specific extension point.
64
+ * Hooks execute sequentially in the order they were provided.
65
+ *
66
+ * @param extensionPoint - Which extension point to execute
67
+ * @param payload - Payload for this extension point (must be an object)
68
+ * @param options - Options for building execution context
69
+ * @returns Modified payload after all hooks execute
70
+ * @throws {DextoRuntimeError} If a hook cancels execution or payload is not an object
71
+ */
72
+ executeHooks<T extends object>(extensionPoint: ExtensionPoint, payload: T, options: HookExecutionContextOptions): Promise<T>;
73
+ /**
74
+ * Execute a promise with timeout, properly clearing timer on completion
75
+ * Prevents timer leaks and unhandled rejections from Promise.race
76
+ */
77
+ private executeWithTimeout;
78
+ /**
79
+ * Cleanup all hooks.
80
+ * Called when agent shuts down
81
+ */
82
+ cleanup(): Promise<void>;
83
+ /**
84
+ * Get hook statistics.
85
+ */
86
+ getStats(): {
87
+ total: number;
88
+ enabled: number;
89
+ byExtensionPoint: Record<ExtensionPoint, number>;
90
+ };
91
+ /**
92
+ * List hook display names in execution order.
93
+ *
94
+ * Names are derived from:
95
+ * - `hook.name` (if present)
96
+ * - constructor/class name (if available)
97
+ * - fallback `hook#N`
98
+ */
99
+ getHookNames(): string[];
100
+ private deriveHookName;
101
+ private assertValidHookShape;
102
+ }
103
+ //# sourceMappingURL=manager.d.ts.map