@dexto/core 1.5.8 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +318 -159
  3. package/dist/agent/DextoAgent.d.ts +94 -56
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +315 -156
  6. package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
  7. package/dist/agent/agent-options.d.ts +53 -0
  8. package/dist/agent/agent-options.d.ts.map +1 -0
  9. package/dist/agent/agentCard.cjs +1 -1
  10. package/dist/agent/errors.cjs +2 -2
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +1 -6
  13. package/dist/agent/index.d.ts +3 -2
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/index.js +1 -7
  16. package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
  17. package/dist/agent/runtime-config.d.ts +53 -0
  18. package/dist/agent/runtime-config.d.ts.map +1 -0
  19. package/dist/agent/schemas.cjs +2 -104
  20. package/dist/agent/schemas.d.ts +8 -9197
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +1 -109
  23. package/dist/agent/state-manager.d.ts +5 -5
  24. package/dist/agent/state-manager.d.ts.map +1 -1
  25. package/dist/approval/error-codes.cjs +1 -1
  26. package/dist/approval/error-codes.d.ts +1 -1
  27. package/dist/approval/error-codes.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.cjs +5 -5
  30. package/dist/approval/errors.d.ts +2 -2
  31. package/dist/approval/errors.d.ts.map +1 -1
  32. package/dist/approval/errors.js +5 -5
  33. package/dist/approval/index.cjs +8 -8
  34. package/dist/approval/index.d.ts +2 -2
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +8 -8
  37. package/dist/approval/manager.cjs +163 -83
  38. package/dist/approval/manager.d.ts +50 -43
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +161 -81
  41. package/dist/approval/schemas.cjs +47 -32
  42. package/dist/approval/schemas.d.ts +291 -97
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +43 -28
  45. package/dist/approval/types.cjs +1 -1
  46. package/dist/approval/types.d.ts +14 -14
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +1 -1
  49. package/dist/context/compaction/index.cjs +2 -23
  50. package/dist/context/compaction/index.d.ts +1 -7
  51. package/dist/context/compaction/index.d.ts.map +1 -1
  52. package/dist/context/compaction/index.js +1 -16
  53. package/dist/context/compaction/strategies/noop.cjs +19 -1
  54. package/dist/context/compaction/strategies/noop.d.ts +13 -3
  55. package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
  56. package/dist/context/compaction/strategies/noop.js +19 -1
  57. package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
  58. package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
  59. package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
  61. package/dist/context/compaction/types.d.ts +40 -8
  62. package/dist/context/compaction/types.d.ts.map +1 -1
  63. package/dist/context/manager.cjs +4 -2
  64. package/dist/context/manager.d.ts +5 -3
  65. package/dist/context/manager.d.ts.map +1 -1
  66. package/dist/context/manager.js +4 -2
  67. package/dist/context/types.d.ts +3 -0
  68. package/dist/context/types.d.ts.map +1 -1
  69. package/dist/context/utils.cjs +2 -2
  70. package/dist/context/utils.d.ts +14 -14
  71. package/dist/context/utils.d.ts.map +1 -1
  72. package/dist/errors/result-bridge.d.ts +2 -2
  73. package/dist/errors/result-bridge.d.ts.map +1 -1
  74. package/dist/errors/types.cjs +1 -1
  75. package/dist/errors/types.d.ts +3 -3
  76. package/dist/errors/types.d.ts.map +1 -1
  77. package/dist/errors/types.js +1 -1
  78. package/dist/events/index.cjs +11 -1
  79. package/dist/events/index.d.ts +48 -7
  80. package/dist/events/index.d.ts.map +1 -1
  81. package/dist/events/index.js +11 -1
  82. package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
  83. package/dist/hooks/builtins/content-policy.d.ts +24 -0
  84. package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
  85. package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
  86. package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
  87. package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
  88. package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
  89. package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
  90. package/dist/hooks/error-codes.cjs +43 -0
  91. package/dist/hooks/error-codes.d.ts +34 -0
  92. package/dist/hooks/error-codes.d.ts.map +1 -0
  93. package/dist/hooks/error-codes.js +20 -0
  94. package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
  95. package/dist/hooks/index.d.ts +14 -0
  96. package/dist/hooks/index.d.ts.map +1 -0
  97. package/dist/hooks/index.js +11 -0
  98. package/dist/hooks/manager.cjs +354 -0
  99. package/dist/hooks/manager.d.ts +103 -0
  100. package/dist/hooks/manager.d.ts.map +1 -0
  101. package/dist/hooks/manager.js +331 -0
  102. package/dist/{plugins → hooks}/types.d.ts +26 -45
  103. package/dist/hooks/types.d.ts.map +1 -0
  104. package/dist/index.browser.cjs +13 -12
  105. package/dist/index.browser.d.ts +5 -5
  106. package/dist/index.browser.d.ts.map +1 -1
  107. package/dist/index.browser.js +8 -7
  108. package/dist/index.cjs +5 -7
  109. package/dist/index.d.ts +2 -3
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +2 -3
  112. package/dist/llm/errors.cjs +1 -1
  113. package/dist/llm/executor/stream-processor.cjs +131 -11
  114. package/dist/llm/executor/stream-processor.d.ts +8 -5
  115. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  116. package/dist/llm/executor/stream-processor.js +131 -11
  117. package/dist/llm/executor/turn-executor.cjs +49 -54
  118. package/dist/llm/executor/turn-executor.d.ts +7 -8
  119. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  120. package/dist/llm/executor/turn-executor.js +49 -54
  121. package/dist/llm/formatters/vercel.cjs +2 -2
  122. package/dist/llm/formatters/vercel.d.ts +2 -2
  123. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  124. package/dist/llm/providers/local/schemas.d.ts +12 -12
  125. package/dist/llm/registry/auto-update.d.ts +2 -2
  126. package/dist/llm/registry/auto-update.d.ts.map +1 -1
  127. package/dist/llm/registry/index.d.ts +3 -3
  128. package/dist/llm/registry/index.d.ts.map +1 -1
  129. package/dist/llm/resolver.cjs +2 -2
  130. package/dist/llm/resolver.d.ts +4 -4
  131. package/dist/llm/resolver.d.ts.map +1 -1
  132. package/dist/llm/schemas.cjs +67 -104
  133. package/dist/llm/schemas.d.ts +10 -149
  134. package/dist/llm/schemas.d.ts.map +1 -1
  135. package/dist/llm/schemas.js +64 -101
  136. package/dist/llm/services/factory.cjs +2 -3
  137. package/dist/llm/services/factory.d.ts +3 -4
  138. package/dist/llm/services/factory.d.ts.map +1 -1
  139. package/dist/llm/services/factory.js +2 -3
  140. package/dist/llm/services/vercel.cjs +8 -15
  141. package/dist/llm/services/vercel.d.ts +6 -7
  142. package/dist/llm/services/vercel.d.ts.map +1 -1
  143. package/dist/llm/services/vercel.js +8 -15
  144. package/dist/llm/validation.cjs +1 -1
  145. package/dist/llm/validation.d.ts +2 -2
  146. package/dist/llm/validation.d.ts.map +1 -1
  147. package/dist/logger/browser.cjs +4 -4
  148. package/dist/logger/browser.d.ts +4 -4
  149. package/dist/logger/browser.d.ts.map +1 -1
  150. package/dist/logger/browser.js +3 -3
  151. package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
  152. package/dist/logger/default-logger-factory.d.ts +301 -0
  153. package/dist/logger/default-logger-factory.d.ts.map +1 -0
  154. package/dist/logger/default-logger-factory.js +18 -0
  155. package/dist/logger/factory.d.ts +2 -2
  156. package/dist/logger/factory.d.ts.map +1 -1
  157. package/dist/logger/index.cjs +7 -2
  158. package/dist/logger/index.d.ts +5 -3
  159. package/dist/logger/index.d.ts.map +1 -1
  160. package/dist/logger/index.js +8 -2
  161. package/dist/logger/logger.cjs +4 -4
  162. package/dist/logger/logger.d.ts +4 -4
  163. package/dist/logger/logger.d.ts.map +1 -1
  164. package/dist/logger/logger.js +3 -3
  165. package/dist/logger/v2/dexto-logger.cjs +35 -0
  166. package/dist/logger/v2/dexto-logger.d.ts +22 -3
  167. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  168. package/dist/logger/v2/dexto-logger.js +35 -0
  169. package/dist/logger/v2/schemas.d.ts +6 -6
  170. package/dist/logger/v2/test-utils.cjs +2 -0
  171. package/dist/logger/v2/test-utils.d.ts +5 -5
  172. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  173. package/dist/logger/v2/test-utils.js +2 -0
  174. package/dist/logger/v2/transport-factory.d.ts +3 -3
  175. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  176. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  177. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  178. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  179. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  180. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  181. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  182. package/dist/logger/v2/types.cjs +1 -1
  183. package/dist/logger/v2/types.d.ts +22 -9
  184. package/dist/logger/v2/types.d.ts.map +1 -1
  185. package/dist/logger/v2/types.js +1 -1
  186. package/dist/mcp/errors.cjs +2 -2
  187. package/dist/mcp/errors.d.ts.map +1 -1
  188. package/dist/mcp/manager.cjs +16 -11
  189. package/dist/mcp/manager.d.ts +16 -13
  190. package/dist/mcp/manager.d.ts.map +1 -1
  191. package/dist/mcp/manager.js +17 -12
  192. package/dist/mcp/mcp-client.cjs +25 -20
  193. package/dist/mcp/mcp-client.d.ts +5 -5
  194. package/dist/mcp/mcp-client.d.ts.map +1 -1
  195. package/dist/mcp/mcp-client.js +20 -15
  196. package/dist/mcp/resolver.cjs +1 -1
  197. package/dist/mcp/schemas.cjs +5 -5
  198. package/dist/mcp/schemas.d.ts +19 -19
  199. package/dist/mcp/schemas.js +2 -2
  200. package/dist/mcp/types.d.ts +7 -7
  201. package/dist/mcp/types.d.ts.map +1 -1
  202. package/dist/memory/manager.d.ts +2 -2
  203. package/dist/memory/manager.d.ts.map +1 -1
  204. package/dist/memory/schemas.d.ts +2 -2
  205. package/dist/prompts/errors.cjs +3 -3
  206. package/dist/prompts/errors.d.ts.map +1 -1
  207. package/dist/prompts/prompt-manager.d.ts +3 -3
  208. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  209. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  210. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  211. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  212. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  213. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  214. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  215. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  216. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  217. package/dist/prompts/schemas.d.ts +7 -7
  218. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  219. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  220. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  221. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  222. package/dist/resources/errors.cjs +2 -2
  223. package/dist/resources/errors.d.ts.map +1 -1
  224. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  225. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  226. package/dist/resources/handlers/factory.d.ts +3 -3
  227. package/dist/resources/handlers/factory.d.ts.map +1 -1
  228. package/dist/resources/handlers/filesystem-handler.d.ts +2 -2
  229. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  230. package/dist/resources/index.cjs +7 -9
  231. package/dist/resources/index.d.ts +3 -3
  232. package/dist/resources/index.d.ts.map +1 -1
  233. package/dist/resources/index.js +5 -10
  234. package/dist/resources/manager.cjs +77 -74
  235. package/dist/resources/manager.d.ts +16 -7
  236. package/dist/resources/manager.d.ts.map +1 -1
  237. package/dist/resources/manager.js +77 -74
  238. package/dist/resources/schemas.cjs +6 -26
  239. package/dist/resources/schemas.d.ts +8 -100
  240. package/dist/resources/schemas.d.ts.map +1 -1
  241. package/dist/resources/schemas.js +4 -23
  242. package/dist/search/search-service.d.ts +2 -2
  243. package/dist/search/search-service.d.ts.map +1 -1
  244. package/dist/session/chat-session.cjs +15 -25
  245. package/dist/session/chat-session.d.ts +7 -5
  246. package/dist/session/chat-session.d.ts.map +1 -1
  247. package/dist/session/chat-session.js +16 -26
  248. package/dist/session/errors.cjs +2 -2
  249. package/dist/session/errors.d.ts.map +1 -1
  250. package/dist/session/history/database.cjs +1 -1
  251. package/dist/session/history/database.d.ts +4 -4
  252. package/dist/session/history/database.d.ts.map +1 -1
  253. package/dist/session/history/factory.d.ts +3 -3
  254. package/dist/session/history/factory.d.ts.map +1 -1
  255. package/dist/session/history/memory.d.ts +4 -4
  256. package/dist/session/history/memory.d.ts.map +1 -1
  257. package/dist/session/history/types.d.ts +2 -2
  258. package/dist/session/history/types.d.ts.map +1 -1
  259. package/dist/session/index.cjs +3 -0
  260. package/dist/session/index.d.ts +2 -0
  261. package/dist/session/index.d.ts.map +1 -1
  262. package/dist/session/index.js +2 -0
  263. package/dist/session/message-queue.d.ts +2 -2
  264. package/dist/session/message-queue.d.ts.map +1 -1
  265. package/dist/session/session-manager.cjs +67 -9
  266. package/dist/session/session-manager.d.ts +46 -7
  267. package/dist/session/session-manager.d.ts.map +1 -1
  268. package/dist/session/session-manager.js +67 -9
  269. package/dist/session/title-generator.cjs +2 -2
  270. package/dist/session/title-generator.d.ts +2 -2
  271. package/dist/session/title-generator.d.ts.map +1 -1
  272. package/dist/storage/blob/index.cjs +0 -40
  273. package/dist/storage/blob/index.d.ts +2 -44
  274. package/dist/storage/blob/index.d.ts.map +1 -1
  275. package/dist/storage/blob/index.js +0 -30
  276. package/dist/storage/cache/index.cjs +0 -37
  277. package/dist/storage/cache/index.d.ts +0 -42
  278. package/dist/storage/cache/index.d.ts.map +1 -1
  279. package/dist/storage/cache/index.js +0 -28
  280. package/dist/storage/database/index.cjs +0 -42
  281. package/dist/storage/database/index.d.ts +0 -43
  282. package/dist/storage/database/index.d.ts.map +1 -1
  283. package/dist/storage/database/index.js +0 -37
  284. package/dist/storage/error-codes.cjs +1 -6
  285. package/dist/storage/error-codes.d.ts +2 -7
  286. package/dist/storage/error-codes.d.ts.map +1 -1
  287. package/dist/storage/error-codes.js +1 -6
  288. package/dist/storage/errors.cjs +18 -82
  289. package/dist/storage/errors.d.ts +4 -24
  290. package/dist/storage/errors.d.ts.map +1 -1
  291. package/dist/storage/errors.js +16 -80
  292. package/dist/storage/index.cjs +8 -69
  293. package/dist/storage/index.d.ts +11 -66
  294. package/dist/storage/index.d.ts.map +1 -1
  295. package/dist/storage/index.js +6 -50
  296. package/dist/storage/storage-manager.cjs +9 -25
  297. package/dist/storage/storage-manager.d.ts +11 -15
  298. package/dist/storage/storage-manager.d.ts.map +1 -1
  299. package/dist/storage/storage-manager.js +8 -23
  300. package/dist/storage/types.d.ts +0 -1
  301. package/dist/storage/types.d.ts.map +1 -1
  302. package/dist/systemPrompt/contributors.d.ts +4 -4
  303. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  304. package/dist/systemPrompt/errors.cjs +2 -2
  305. package/dist/systemPrompt/errors.d.ts.map +1 -1
  306. package/dist/systemPrompt/in-built-prompts.cjs +5 -5
  307. package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
  308. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  309. package/dist/systemPrompt/in-built-prompts.js +5 -5
  310. package/dist/systemPrompt/manager.cjs +1 -5
  311. package/dist/systemPrompt/manager.d.ts +2 -3
  312. package/dist/systemPrompt/manager.d.ts.map +1 -1
  313. package/dist/systemPrompt/manager.js +1 -5
  314. package/dist/systemPrompt/schemas.d.ts +5 -5
  315. package/dist/systemPrompt/types.d.ts +11 -0
  316. package/dist/systemPrompt/types.d.ts.map +1 -1
  317. package/dist/telemetry/index.cjs +3 -0
  318. package/dist/telemetry/index.d.ts +2 -0
  319. package/dist/telemetry/index.d.ts.map +1 -1
  320. package/dist/telemetry/index.js +2 -0
  321. package/dist/telemetry/utils.d.ts +4 -4
  322. package/dist/telemetry/utils.d.ts.map +1 -1
  323. package/dist/test-utils/in-memory-storage.cjs +288 -0
  324. package/dist/test-utils/in-memory-storage.js +252 -0
  325. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  326. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  327. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  328. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  329. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  330. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  331. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  332. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  333. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  334. package/dist/tools/define-tool.d.ts +11 -0
  335. package/dist/tools/define-tool.d.ts.map +1 -0
  336. package/dist/tools/define-tool.js +7 -0
  337. package/dist/tools/display-types.d.ts +10 -0
  338. package/dist/tools/display-types.d.ts.map +1 -1
  339. package/dist/tools/error-codes.cjs +2 -2
  340. package/dist/tools/error-codes.d.ts +2 -2
  341. package/dist/tools/error-codes.d.ts.map +1 -1
  342. package/dist/tools/error-codes.js +2 -2
  343. package/dist/tools/errors.cjs +11 -23
  344. package/dist/tools/errors.d.ts +4 -10
  345. package/dist/tools/errors.d.ts.map +1 -1
  346. package/dist/tools/errors.js +9 -21
  347. package/dist/tools/index.cjs +6 -9
  348. package/dist/tools/index.d.ts +3 -4
  349. package/dist/tools/index.d.ts.map +1 -1
  350. package/dist/tools/index.js +3 -7
  351. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  352. package/dist/tools/pattern-utils.d.ts +20 -0
  353. package/dist/tools/pattern-utils.d.ts.map +1 -0
  354. package/dist/tools/pattern-utils.js +10 -0
  355. package/dist/{storage/cache/factory.cjs → tools/presentation.cjs} +26 -15
  356. package/dist/tools/presentation.d.ts +11 -0
  357. package/dist/tools/presentation.d.ts.map +1 -0
  358. package/dist/tools/presentation.js +24 -0
  359. package/dist/tools/schemas.cjs +14 -40
  360. package/dist/tools/schemas.d.ts +6 -50
  361. package/dist/tools/schemas.d.ts.map +1 -1
  362. package/dist/tools/schemas.js +11 -32
  363. package/dist/tools/tool-call-metadata.cjs +3 -3
  364. package/dist/tools/tool-call-metadata.d.ts +1 -1
  365. package/dist/tools/tool-call-metadata.d.ts.map +1 -1
  366. package/dist/tools/tool-call-metadata.js +3 -3
  367. package/dist/tools/tool-manager.cjs +608 -392
  368. package/dist/tools/tool-manager.d.ts +79 -98
  369. package/dist/tools/tool-manager.d.ts.map +1 -1
  370. package/dist/tools/tool-manager.js +608 -396
  371. package/dist/tools/types.d.ts +223 -45
  372. package/dist/tools/types.d.ts.map +1 -1
  373. package/dist/utils/error-conversion.d.ts +2 -2
  374. package/dist/utils/error-conversion.d.ts.map +1 -1
  375. package/dist/utils/path.cjs +10 -1
  376. package/dist/utils/path.d.ts +7 -4
  377. package/dist/utils/path.d.ts.map +1 -1
  378. package/dist/utils/path.js +10 -1
  379. package/dist/utils/result.cjs +1 -1
  380. package/dist/utils/result.d.ts.map +1 -1
  381. package/dist/utils/schema.cjs +9 -5
  382. package/dist/utils/schema.d.ts +4 -2
  383. package/dist/utils/schema.d.ts.map +1 -1
  384. package/dist/utils/schema.js +9 -5
  385. package/dist/utils/service-initializer.cjs +51 -56
  386. package/dist/utils/service-initializer.d.ts +17 -14
  387. package/dist/utils/service-initializer.d.ts.map +1 -1
  388. package/dist/utils/service-initializer.js +51 -56
  389. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  390. package/dist/workspace/error-codes.d.ts +5 -0
  391. package/dist/workspace/error-codes.d.ts.map +1 -0
  392. package/dist/workspace/error-codes.js +7 -0
  393. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  394. package/dist/workspace/errors.d.ts +5 -0
  395. package/dist/workspace/errors.d.ts.map +1 -0
  396. package/dist/workspace/errors.js +21 -0
  397. package/dist/{image → workspace}/index.cjs +12 -10
  398. package/dist/workspace/index.d.ts +5 -0
  399. package/dist/workspace/index.d.ts.map +1 -0
  400. package/dist/workspace/index.js +9 -0
  401. package/dist/workspace/manager.cjs +113 -0
  402. package/dist/workspace/manager.d.ts +18 -0
  403. package/dist/workspace/manager.d.ts.map +1 -0
  404. package/dist/workspace/manager.js +90 -0
  405. package/dist/workspace/types.d.ts +14 -0
  406. package/dist/workspace/types.d.ts.map +1 -0
  407. package/package.json +2 -2
  408. package/dist/context/compaction/factory.cjs +0 -57
  409. package/dist/context/compaction/factory.d.ts +0 -17
  410. package/dist/context/compaction/factory.d.ts.map +0 -1
  411. package/dist/context/compaction/factory.js +0 -34
  412. package/dist/context/compaction/provider.d.ts +0 -48
  413. package/dist/context/compaction/provider.d.ts.map +0 -1
  414. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  415. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  416. package/dist/context/compaction/providers/noop-provider.js +0 -24
  417. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  418. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  419. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  420. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  421. package/dist/context/compaction/registry.cjs +0 -39
  422. package/dist/context/compaction/registry.d.ts +0 -19
  423. package/dist/context/compaction/registry.d.ts.map +0 -1
  424. package/dist/context/compaction/registry.js +0 -16
  425. package/dist/context/compaction/schemas.cjs +0 -58
  426. package/dist/context/compaction/schemas.d.ts +0 -69
  427. package/dist/context/compaction/schemas.d.ts.map +0 -1
  428. package/dist/context/compaction/schemas.js +0 -34
  429. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  430. package/dist/image/define-image.cjs +0 -146
  431. package/dist/image/define-image.d.ts +0 -71
  432. package/dist/image/define-image.d.ts.map +0 -1
  433. package/dist/image/define-image.js +0 -121
  434. package/dist/image/index.d.ts +0 -53
  435. package/dist/image/index.d.ts.map +0 -1
  436. package/dist/image/index.js +0 -7
  437. package/dist/image/types.d.ts +0 -246
  438. package/dist/image/types.d.ts.map +0 -1
  439. package/dist/llm/services/test-utils.integration.cjs +0 -237
  440. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  441. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  442. package/dist/llm/services/test-utils.integration.js +0 -214
  443. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  444. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  445. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  446. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  447. package/dist/plugins/error-codes.cjs +0 -43
  448. package/dist/plugins/error-codes.d.ts +0 -34
  449. package/dist/plugins/error-codes.d.ts.map +0 -1
  450. package/dist/plugins/error-codes.js +0 -20
  451. package/dist/plugins/index.cjs +0 -61
  452. package/dist/plugins/index.d.ts +0 -21
  453. package/dist/plugins/index.d.ts.map +0 -1
  454. package/dist/plugins/index.js +0 -30
  455. package/dist/plugins/loader.cjs +0 -171
  456. package/dist/plugins/loader.d.ts +0 -30
  457. package/dist/plugins/loader.d.ts.map +0 -1
  458. package/dist/plugins/loader.js +0 -145
  459. package/dist/plugins/manager.cjs +0 -473
  460. package/dist/plugins/manager.d.ts +0 -106
  461. package/dist/plugins/manager.d.ts.map +0 -1
  462. package/dist/plugins/manager.js +0 -450
  463. package/dist/plugins/registrations/builtins.cjs +0 -51
  464. package/dist/plugins/registrations/builtins.d.ts +0 -17
  465. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  466. package/dist/plugins/registrations/builtins.js +0 -28
  467. package/dist/plugins/registry.cjs +0 -63
  468. package/dist/plugins/registry.d.ts +0 -101
  469. package/dist/plugins/registry.d.ts.map +0 -1
  470. package/dist/plugins/registry.js +0 -39
  471. package/dist/plugins/schemas.cjs +0 -73
  472. package/dist/plugins/schemas.d.ts +0 -195
  473. package/dist/plugins/schemas.d.ts.map +0 -1
  474. package/dist/plugins/schemas.js +0 -47
  475. package/dist/plugins/types.d.ts.map +0 -1
  476. package/dist/providers/base-registry.cjs +0 -147
  477. package/dist/providers/base-registry.d.ts +0 -147
  478. package/dist/providers/base-registry.d.ts.map +0 -1
  479. package/dist/providers/base-registry.js +0 -123
  480. package/dist/providers/discovery.cjs +0 -109
  481. package/dist/providers/discovery.d.ts +0 -96
  482. package/dist/providers/discovery.d.ts.map +0 -1
  483. package/dist/providers/discovery.js +0 -84
  484. package/dist/providers/index.cjs +0 -24
  485. package/dist/providers/index.d.ts +0 -32
  486. package/dist/providers/index.d.ts.map +0 -1
  487. package/dist/providers/index.js +0 -2
  488. package/dist/resources/internal-provider.d.ts.map +0 -1
  489. package/dist/storage/blob/factory.d.ts +0 -37
  490. package/dist/storage/blob/factory.d.ts.map +0 -1
  491. package/dist/storage/blob/factory.js +0 -15
  492. package/dist/storage/blob/local-blob-store.cjs +0 -496
  493. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  494. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  495. package/dist/storage/blob/local-blob-store.js +0 -463
  496. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  497. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  498. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  499. package/dist/storage/blob/memory-blob-store.js +0 -303
  500. package/dist/storage/blob/provider.d.ts +0 -50
  501. package/dist/storage/blob/provider.d.ts.map +0 -1
  502. package/dist/storage/blob/providers/index.d.ts +0 -8
  503. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  504. package/dist/storage/blob/providers/index.js +0 -7
  505. package/dist/storage/blob/providers/local.cjs +0 -39
  506. package/dist/storage/blob/providers/local.d.ts +0 -17
  507. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  508. package/dist/storage/blob/providers/local.js +0 -16
  509. package/dist/storage/blob/providers/memory.cjs +0 -39
  510. package/dist/storage/blob/providers/memory.d.ts +0 -17
  511. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  512. package/dist/storage/blob/providers/memory.js +0 -16
  513. package/dist/storage/blob/registry.cjs +0 -50
  514. package/dist/storage/blob/registry.d.ts +0 -42
  515. package/dist/storage/blob/registry.d.ts.map +0 -1
  516. package/dist/storage/blob/registry.js +0 -26
  517. package/dist/storage/blob/schemas.cjs +0 -52
  518. package/dist/storage/blob/schemas.d.ts +0 -85
  519. package/dist/storage/blob/schemas.d.ts.map +0 -1
  520. package/dist/storage/blob/schemas.js +0 -26
  521. package/dist/storage/cache/factory.d.ts +0 -37
  522. package/dist/storage/cache/factory.d.ts.map +0 -1
  523. package/dist/storage/cache/factory.js +0 -15
  524. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  525. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  526. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  527. package/dist/storage/cache/memory-cache-store.js +0 -84
  528. package/dist/storage/cache/provider.cjs +0 -16
  529. package/dist/storage/cache/provider.d.ts +0 -56
  530. package/dist/storage/cache/provider.d.ts.map +0 -1
  531. package/dist/storage/cache/provider.js +0 -0
  532. package/dist/storage/cache/providers/index.d.ts +0 -8
  533. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  534. package/dist/storage/cache/providers/index.js +0 -7
  535. package/dist/storage/cache/providers/memory.d.ts +0 -17
  536. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  537. package/dist/storage/cache/providers/memory.js +0 -17
  538. package/dist/storage/cache/providers/redis.cjs +0 -66
  539. package/dist/storage/cache/providers/redis.d.ts +0 -20
  540. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  541. package/dist/storage/cache/providers/redis.js +0 -33
  542. package/dist/storage/cache/redis-store.cjs +0 -173
  543. package/dist/storage/cache/redis-store.d.ts +0 -32
  544. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  545. package/dist/storage/cache/redis-store.js +0 -150
  546. package/dist/storage/cache/registry.cjs +0 -50
  547. package/dist/storage/cache/registry.d.ts +0 -42
  548. package/dist/storage/cache/registry.d.ts.map +0 -1
  549. package/dist/storage/cache/registry.js +0 -26
  550. package/dist/storage/cache/schemas.cjs +0 -81
  551. package/dist/storage/cache/schemas.d.ts +0 -150
  552. package/dist/storage/cache/schemas.d.ts.map +0 -1
  553. package/dist/storage/cache/schemas.js +0 -55
  554. package/dist/storage/database/factory.cjs +0 -38
  555. package/dist/storage/database/factory.d.ts +0 -39
  556. package/dist/storage/database/factory.d.ts.map +0 -1
  557. package/dist/storage/database/factory.js +0 -15
  558. package/dist/storage/database/memory-database-store.cjs +0 -122
  559. package/dist/storage/database/memory-database-store.d.ts +0 -29
  560. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  561. package/dist/storage/database/memory-database-store.js +0 -99
  562. package/dist/storage/database/postgres-store.cjs +0 -342
  563. package/dist/storage/database/postgres-store.d.ts +0 -55
  564. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  565. package/dist/storage/database/postgres-store.js +0 -319
  566. package/dist/storage/database/provider.cjs +0 -16
  567. package/dist/storage/database/provider.d.ts +0 -56
  568. package/dist/storage/database/provider.d.ts.map +0 -1
  569. package/dist/storage/database/provider.js +0 -0
  570. package/dist/storage/database/providers/index.cjs +0 -34
  571. package/dist/storage/database/providers/index.d.ts +0 -9
  572. package/dist/storage/database/providers/index.d.ts.map +0 -1
  573. package/dist/storage/database/providers/index.js +0 -9
  574. package/dist/storage/database/providers/memory.cjs +0 -40
  575. package/dist/storage/database/providers/memory.d.ts +0 -16
  576. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  577. package/dist/storage/database/providers/memory.js +0 -17
  578. package/dist/storage/database/providers/postgres.cjs +0 -62
  579. package/dist/storage/database/providers/postgres.d.ts +0 -19
  580. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  581. package/dist/storage/database/providers/postgres.js +0 -29
  582. package/dist/storage/database/providers/sqlite.cjs +0 -66
  583. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  584. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  585. package/dist/storage/database/providers/sqlite.js +0 -33
  586. package/dist/storage/database/registry.cjs +0 -50
  587. package/dist/storage/database/registry.d.ts +0 -42
  588. package/dist/storage/database/registry.d.ts.map +0 -1
  589. package/dist/storage/database/registry.js +0 -26
  590. package/dist/storage/database/schemas.cjs +0 -97
  591. package/dist/storage/database/schemas.d.ts +0 -226
  592. package/dist/storage/database/schemas.d.ts.map +0 -1
  593. package/dist/storage/database/schemas.js +0 -70
  594. package/dist/storage/database/sqlite-store.cjs +0 -270
  595. package/dist/storage/database/sqlite-store.d.ts +0 -33
  596. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  597. package/dist/storage/database/sqlite-store.js +0 -237
  598. package/dist/storage/schemas.cjs +0 -57
  599. package/dist/storage/schemas.d.ts +0 -347
  600. package/dist/storage/schemas.d.ts.map +0 -1
  601. package/dist/storage/schemas.js +0 -37
  602. package/dist/tools/bash-pattern-utils.cjs +0 -91
  603. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  604. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  605. package/dist/tools/bash-pattern-utils.js +0 -64
  606. package/dist/tools/custom-tool-registry.cjs +0 -64
  607. package/dist/tools/custom-tool-registry.d.ts +0 -126
  608. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  609. package/dist/tools/custom-tool-registry.js +0 -40
  610. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  611. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  612. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  613. package/dist/tools/custom-tool-schema-registry.js +0 -140
  614. package/dist/tools/internal-tools/constants.d.ts +0 -12
  615. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  616. package/dist/tools/internal-tools/constants.js +0 -12
  617. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  618. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  619. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  620. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  621. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  622. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  623. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  624. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  625. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  626. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  627. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  628. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  629. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  630. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  631. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  632. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  633. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  634. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  635. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  636. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  637. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  638. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  639. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  640. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  641. package/dist/tools/internal-tools/index.cjs +0 -26
  642. package/dist/tools/internal-tools/index.d.ts +0 -4
  643. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  644. package/dist/tools/internal-tools/index.js +0 -3
  645. package/dist/tools/internal-tools/provider.cjs +0 -324
  646. package/dist/tools/internal-tools/provider.d.ts +0 -116
  647. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  648. package/dist/tools/internal-tools/provider.js +0 -301
  649. package/dist/tools/internal-tools/registry.cjs +0 -71
  650. package/dist/tools/internal-tools/registry.d.ts +0 -91
  651. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  652. package/dist/tools/internal-tools/registry.js +0 -47
  653. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  654. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  655. /package/dist/{image → hooks}/types.cjs +0 -0
  656. /package/dist/{plugins → hooks}/types.js +0 -0
  657. /package/dist/{plugins → workspace}/types.cjs +0 -0
  658. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -1,20 +1,46 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  import path from "node:path";
3
+ import { realpathSync } from "node:fs";
3
4
  import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
4
5
  import { createApprovalRequest } from "./factory.js";
5
6
  import { DextoLogComponent } from "../logger/v2/types.js";
6
7
  import { ApprovalError } from "./errors.js";
7
- import { patternCovers } from "../tools/bash-pattern-utils.js";
8
+ import { patternCovers } from "../tools/pattern-utils.js";
9
+ function tryRealpathSync(targetPath) {
10
+ try {
11
+ return realpathSync(targetPath);
12
+ } catch {
13
+ return null;
14
+ }
15
+ }
16
+ function tryRealpathSyncWithExistingParent(resolvedPath) {
17
+ const direct = tryRealpathSync(resolvedPath);
18
+ if (direct) return direct;
19
+ let currentDir = path.dirname(resolvedPath);
20
+ while (true) {
21
+ const realDir = tryRealpathSync(currentDir);
22
+ if (realDir) {
23
+ const suffix = path.relative(currentDir, resolvedPath);
24
+ return path.join(realDir, suffix);
25
+ }
26
+ const parent = path.dirname(currentDir);
27
+ if (parent === currentDir) {
28
+ return null;
29
+ }
30
+ currentDir = parent;
31
+ }
32
+ }
8
33
  class ApprovalManager {
9
34
  handler;
10
35
  config;
11
36
  logger;
12
37
  /**
13
- * Bash command patterns approved for the current session.
14
- * Patterns use simple glob syntax (e.g., "git *", "npm install *").
15
- * Cleared when session ends.
38
+ * Tool approval patterns, keyed by tool id.
39
+ *
40
+ * Patterns use simple glob syntax (e.g. "git *", "npm install *") and are matched
41
+ * using pattern-to-pattern covering (see {@link patternCovers}).
16
42
  */
17
- bashPatterns = /* @__PURE__ */ new Set();
43
+ toolPatterns = /* @__PURE__ */ new Map();
18
44
  /**
19
45
  * Directories approved for file access for the current session.
20
46
  * Stores normalized absolute paths mapped to their approval type:
@@ -27,36 +53,37 @@ class ApprovalManager {
27
53
  this.config = config;
28
54
  this.logger = logger.createChild(DextoLogComponent.APPROVAL);
29
55
  this.logger.debug(
30
- `ApprovalManager initialized with toolConfirmation.mode: ${config.toolConfirmation.mode}, elicitation.enabled: ${config.elicitation.enabled}`
56
+ `ApprovalManager initialized with permissions.mode: ${config.permissions.mode}, elicitation.enabled: ${config.elicitation.enabled}`
31
57
  );
32
58
  }
33
- // ==================== Bash Pattern Methods ====================
59
+ // ==================== Pattern Methods ====================
60
+ getOrCreateToolPatternSet(toolName) {
61
+ const existing = this.toolPatterns.get(toolName);
62
+ if (existing) return existing;
63
+ const created = /* @__PURE__ */ new Set();
64
+ this.toolPatterns.set(toolName, created);
65
+ return created;
66
+ }
34
67
  /**
35
- * Add a bash command pattern to the approved list for this session.
36
- * Patterns use simple glob syntax with * as wildcard.
37
- *
38
- * @example
39
- * ```typescript
40
- * manager.addBashPattern("git *"); // Approves all git commands
41
- * manager.addBashPattern("npm install *"); // Approves npm install with any package
42
- * ```
68
+ * Add an approval pattern for a tool.
43
69
  */
44
- addBashPattern(pattern) {
45
- this.bashPatterns.add(pattern);
46
- this.logger.debug(`Added bash pattern: "${pattern}"`);
70
+ addPattern(toolName, pattern) {
71
+ this.getOrCreateToolPatternSet(toolName).add(pattern);
72
+ this.logger.debug(`Added pattern for '${toolName}': "${pattern}"`);
47
73
  }
48
74
  /**
49
- * Check if a bash pattern key is covered by any approved pattern.
50
- * Uses pattern-to-pattern covering for broader pattern support.
75
+ * Check if a pattern key is covered by any approved pattern for a tool.
51
76
  *
52
- * @param patternKey The pattern key generated from the command (e.g., "git push *")
53
- * @returns true if the pattern key is covered by an approved pattern
77
+ * Note: This expects a pattern key (e.g. "git push *"), not raw arguments.
78
+ * Tools are responsible for generating the key via `tool.approval.patternKey()`.
54
79
  */
55
- matchesBashPattern(patternKey) {
56
- for (const storedPattern of this.bashPatterns) {
80
+ matchesPattern(toolName, patternKey) {
81
+ const patterns = this.toolPatterns.get(toolName);
82
+ if (!patterns || patterns.size === 0) return false;
83
+ for (const storedPattern of patterns) {
57
84
  if (patternCovers(storedPattern, patternKey)) {
58
85
  this.logger.debug(
59
- `Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
86
+ `Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}" (tool: ${toolName})`
60
87
  );
61
88
  return true;
62
89
  }
@@ -64,23 +91,64 @@ class ApprovalManager {
64
91
  return false;
65
92
  }
66
93
  /**
67
- * Clear all approved bash patterns.
68
- * Should be called when session ends.
94
+ * Clear all patterns for a tool (or all tools when omitted).
69
95
  */
70
- clearBashPatterns() {
71
- const count = this.bashPatterns.size;
72
- this.bashPatterns.clear();
96
+ clearPatterns(toolName) {
97
+ if (toolName) {
98
+ const patterns = this.toolPatterns.get(toolName);
99
+ if (!patterns) return;
100
+ const count2 = patterns.size;
101
+ patterns.clear();
102
+ if (count2 > 0) {
103
+ this.logger.debug(`Cleared ${count2} pattern(s) for '${toolName}'`);
104
+ }
105
+ return;
106
+ }
107
+ const count = Array.from(this.toolPatterns.values()).reduce(
108
+ (sum, set) => sum + set.size,
109
+ 0
110
+ );
111
+ this.toolPatterns.clear();
73
112
  if (count > 0) {
74
- this.logger.debug(`Cleared ${count} bash patterns`);
113
+ this.logger.debug(`Cleared ${count} total tool pattern(s)`);
75
114
  }
76
115
  }
77
116
  /**
78
- * Get the current set of approved bash patterns (for debugging/display).
117
+ * Get patterns for a tool (for debugging/display).
79
118
  */
80
- getBashPatterns() {
81
- return this.bashPatterns;
119
+ getToolPatterns(toolName) {
120
+ return this.toolPatterns.get(toolName) ?? /* @__PURE__ */ new Set();
121
+ }
122
+ /**
123
+ * Get all tool patterns (for debugging/display).
124
+ */
125
+ getAllToolPatterns() {
126
+ return this.toolPatterns;
82
127
  }
83
128
  // ==================== Directory Access Methods ====================
129
+ /**
130
+ * Resolve a directory path for use as an approval key.
131
+ *
132
+ * We store BOTH the resolved path and (when available) its realpath, so approvals
133
+ * continue to work even when other subsystems canonicalize paths via realpath
134
+ * (e.g. macOS /tmp -> /private/tmp or custom symlinked directories).
135
+ */
136
+ getDirectoryApprovalKeys(directory) {
137
+ const resolved = path.resolve(directory);
138
+ const real = tryRealpathSyncWithExistingParent(resolved);
139
+ if (real && real !== resolved) {
140
+ return [resolved, real];
141
+ }
142
+ return [resolved];
143
+ }
144
+ getFileApprovalKeys(filePath) {
145
+ const resolved = path.resolve(filePath);
146
+ const real = tryRealpathSyncWithExistingParent(resolved);
147
+ if (real && real !== resolved) {
148
+ return [resolved, real];
149
+ }
150
+ return [resolved];
151
+ }
84
152
  /**
85
153
  * Initialize the working directory as a session-approved directory.
86
154
  * This should be called once during setup to ensure the working directory
@@ -89,9 +157,7 @@ class ApprovalManager {
89
157
  * @param workingDir The working directory path
90
158
  */
91
159
  initializeWorkingDirectory(workingDir) {
92
- const normalized = path.resolve(workingDir);
93
- this.approvedDirectories.set(normalized, "session");
94
- this.logger.debug(`Initialized working directory as session-approved: "${normalized}"`);
160
+ this.addApprovedDirectory(workingDir, "session");
95
161
  }
96
162
  /**
97
163
  * Add a directory to the approved list for this session.
@@ -111,16 +177,28 @@ class ApprovalManager {
111
177
  * ```
112
178
  */
113
179
  addApprovedDirectory(directory, type = "session") {
114
- const normalized = path.resolve(directory);
115
- const existing = this.approvedDirectories.get(normalized);
116
- if (existing === "session") {
180
+ const keys = this.getDirectoryApprovalKeys(directory);
181
+ const existingTypes = keys.map((key) => this.approvedDirectories.get(key)).filter((value) => value !== void 0);
182
+ const hasSessionApproval = existingTypes.includes("session");
183
+ const effectiveType = type === "session" || hasSessionApproval ? "session" : "once";
184
+ for (const key of keys) {
185
+ const existing = this.approvedDirectories.get(key);
186
+ if (existing === "session") {
187
+ continue;
188
+ }
189
+ this.approvedDirectories.set(key, effectiveType);
190
+ }
191
+ const resolvedKey = keys[0];
192
+ if (effectiveType === "session" && type === "once" && hasSessionApproval) {
117
193
  this.logger.debug(
118
- `Directory "${normalized}" already approved as 'session', not downgrading to '${type}'`
194
+ `Directory "${resolvedKey}" already approved as 'session', not downgrading to 'once'`
119
195
  );
120
196
  return;
121
197
  }
122
- this.approvedDirectories.set(normalized, type);
123
- this.logger.debug(`Added approved directory: "${normalized}" (type: ${type})`);
198
+ const realKey = keys.length > 1 ? keys[1] : null;
199
+ this.logger.debug(
200
+ `Added approved directory: "${resolvedKey}" (type: ${effectiveType})${realKey ? `, realpath: "${realKey}"` : ""}`
201
+ );
124
202
  }
125
203
  /**
126
204
  * Check if a file path is within any session-approved directory.
@@ -131,15 +209,16 @@ class ApprovalManager {
131
209
  * @returns true if the path is within a session-approved directory
132
210
  */
133
211
  isDirectorySessionApproved(filePath) {
134
- const normalized = path.resolve(filePath);
135
- for (const [approvedDir, type] of this.approvedDirectories) {
136
- if (type !== "session") continue;
137
- const relative = path.relative(approvedDir, normalized);
138
- if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
139
- this.logger.debug(
140
- `Path "${normalized}" is within session-approved directory "${approvedDir}"`
141
- );
142
- return true;
212
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
213
+ for (const [approvedDir, type] of this.approvedDirectories) {
214
+ if (type !== "session") continue;
215
+ const relative = path.relative(approvedDir, normalized);
216
+ if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
217
+ this.logger.debug(
218
+ `Path "${normalized}" is within session-approved directory "${approvedDir}"`
219
+ );
220
+ return true;
221
+ }
143
222
  }
144
223
  }
145
224
  return false;
@@ -153,14 +232,15 @@ class ApprovalManager {
153
232
  * @returns true if the path is within any approved directory
154
233
  */
155
234
  isDirectoryApproved(filePath) {
156
- const normalized = path.resolve(filePath);
157
- for (const [approvedDir] of this.approvedDirectories) {
158
- const relative = path.relative(approvedDir, normalized);
159
- if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
160
- this.logger.debug(
161
- `Path "${normalized}" is within approved directory "${approvedDir}"`
162
- );
163
- return true;
235
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
236
+ for (const [approvedDir] of this.approvedDirectories) {
237
+ const relative = path.relative(approvedDir, normalized);
238
+ if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
239
+ this.logger.debug(
240
+ `Path "${normalized}" is within approved directory "${approvedDir}"`
241
+ );
242
+ return true;
243
+ }
164
244
  }
165
245
  }
166
246
  return false;
@@ -189,11 +269,11 @@ class ApprovalManager {
189
269
  return Array.from(this.approvedDirectories.keys());
190
270
  }
191
271
  /**
192
- * Clear all session-scoped approvals (bash patterns and directories).
272
+ * Clear all session-scoped approvals (tool patterns and directories).
193
273
  * Convenience method for clearing all session state at once.
194
274
  */
195
275
  clearSessionApprovals() {
196
- this.clearBashPatterns();
276
+ this.clearPatterns();
197
277
  this.clearApprovedDirectories();
198
278
  this.logger.debug("Cleared all session approvals");
199
279
  }
@@ -217,7 +297,7 @@ class ApprovalManager {
217
297
  const details = {
218
298
  type: ApprovalType.DIRECTORY_ACCESS,
219
299
  // Use provided timeout, fallback to config timeout, or undefined (no timeout)
220
- timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
300
+ timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
221
301
  metadata: directoryMetadata
222
302
  };
223
303
  if (sessionId !== void 0) {
@@ -238,7 +318,7 @@ class ApprovalManager {
238
318
  return this.handleApproval(request);
239
319
  }
240
320
  /**
241
- * Handle approval requests (tool confirmation, elicitation, command confirmation, directory access, custom)
321
+ * Handle approval requests (tool approval, elicitation, command confirmation, directory access, custom)
242
322
  * @private
243
323
  */
244
324
  async handleApproval(request) {
@@ -249,7 +329,7 @@ class ApprovalManager {
249
329
  );
250
330
  return handler2(request);
251
331
  }
252
- const mode = this.config.toolConfirmation.mode;
332
+ const mode = this.config.permissions.mode;
253
333
  if (mode === "auto-approve") {
254
334
  this.logger.info(
255
335
  `Auto-approve approval '${request.type}', approvalId: ${request.approvalId}`
@@ -285,18 +365,18 @@ class ApprovalManager {
285
365
  return handler(request);
286
366
  }
287
367
  /**
288
- * Request tool confirmation approval
289
- * Convenience method for tool execution confirmation
368
+ * Request tool approval
369
+ * Convenience method for tool execution approval
290
370
  *
291
371
  * TODO: Make sessionId required once all callers are updated to pass it
292
372
  * Tool confirmations always happen in session context during LLM execution
293
373
  */
294
- async requestToolConfirmation(metadata) {
374
+ async requestToolApproval(metadata) {
295
375
  const { sessionId, timeout, ...toolMetadata } = metadata;
296
376
  const details = {
297
- type: ApprovalType.TOOL_CONFIRMATION,
377
+ type: ApprovalType.TOOL_APPROVAL,
298
378
  // Use provided timeout, fallback to config timeout, or undefined (no timeout)
299
- timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
379
+ timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
300
380
  metadata: toolMetadata
301
381
  };
302
382
  if (sessionId !== void 0) {
@@ -308,7 +388,7 @@ class ApprovalManager {
308
388
  * Request command confirmation approval
309
389
  * Convenience method for dangerous command execution within an already-approved tool
310
390
  *
311
- * This is different from tool confirmation - it's for per-command approval
391
+ * This is different from tool approval - it's for per-command approval
312
392
  * of dangerous operations (like rm, git push) within tools that are already approved.
313
393
  *
314
394
  * TODO: Make sessionId required once all callers are updated to pass it
@@ -330,7 +410,7 @@ class ApprovalManager {
330
410
  const details = {
331
411
  type: ApprovalType.COMMAND_CONFIRMATION,
332
412
  // Use provided timeout, fallback to config timeout, or undefined (no timeout)
333
- timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
413
+ timeout: timeout !== void 0 ? timeout : this.config.permissions.timeout,
334
414
  metadata: commandMetadata
335
415
  };
336
416
  if (sessionId !== void 0) {
@@ -359,15 +439,15 @@ class ApprovalManager {
359
439
  return this.requestApproval(details);
360
440
  }
361
441
  /**
362
- * Check if tool confirmation was approved
442
+ * Check if tool approval was approved
363
443
  * Throws appropriate error if denied
364
444
  */
365
- async checkToolConfirmation(metadata) {
366
- const response = await this.requestToolConfirmation(metadata);
445
+ async checkToolApproval(metadata) {
446
+ const response = await this.requestToolApproval(metadata);
367
447
  if (response.status === ApprovalStatus.APPROVED) {
368
448
  return true;
369
449
  } else if (response.status === ApprovalStatus.DENIED) {
370
- throw ApprovalError.toolConfirmationDenied(
450
+ throw ApprovalError.toolApprovalDenied(
371
451
  metadata.toolName,
372
452
  response.reason,
373
453
  response.message,
@@ -376,7 +456,7 @@ class ApprovalManager {
376
456
  } else {
377
457
  throw ApprovalError.cancelled(
378
458
  response.approvalId,
379
- ApprovalType.TOOL_CONFIRMATION,
459
+ ApprovalType.TOOL_APPROVAL,
380
460
  response.message ?? response.reason
381
461
  );
382
462
  }
@@ -457,11 +537,11 @@ class ApprovalManager {
457
537
  * Set the approval handler for manual approval mode.
458
538
  *
459
539
  * The handler will be called for:
460
- * - Tool confirmation requests when toolConfirmation.mode is 'manual'
461
- * - All elicitation requests (when elicitation is enabled, regardless of toolConfirmation.mode)
540
+ * - Tool confirmation requests when permissions.mode is 'manual'
541
+ * - All elicitation requests (when elicitation is enabled, regardless of permissions.mode)
462
542
  *
463
543
  * A handler must be set before processing requests if:
464
- * - toolConfirmation.mode is 'manual', or
544
+ * - permissions.mode is 'manual', or
465
545
  * - elicitation is enabled (elicitation.enabled is true)
466
546
  *
467
547
  * @param handler The approval handler function, or null to clear
@@ -494,7 +574,7 @@ class ApprovalManager {
494
574
  ensureHandler() {
495
575
  if (!this.handler) {
496
576
  throw ApprovalError.invalidConfig(
497
- 'An approval handler is required but not configured.\nHandlers are required for:\n \u2022 manual tool confirmation mode\n \u2022 all elicitation requests (when elicitation is enabled)\nEither:\n \u2022 set toolConfirmation.mode to "auto-approve" or "auto-deny", or\n \u2022 disable elicitation (set elicitation.enabled: false), or\n \u2022 call agent.setApprovalHandler(...) before processing requests.'
577
+ 'An approval handler is required but not configured.\nHandlers are required for:\n \u2022 manual tool approval mode\n \u2022 all elicitation requests (when elicitation is enabled)\nEither:\n \u2022 set permissions.mode to "auto-approve" or "auto-deny", or\n \u2022 disable elicitation (set elicitation.enabled: false), or\n \u2022 call agent.setApprovalHandler(...) before processing requests.'
498
578
  );
499
579
  }
500
580
  return this.handler;
@@ -42,10 +42,10 @@ __export(schemas_exports, {
42
42
  ElicitationRequestSchema: () => ElicitationRequestSchema,
43
43
  ElicitationResponseDataSchema: () => ElicitationResponseDataSchema,
44
44
  ElicitationResponseSchema: () => ElicitationResponseSchema,
45
- ToolConfirmationMetadataSchema: () => ToolConfirmationMetadataSchema,
46
- ToolConfirmationRequestSchema: () => ToolConfirmationRequestSchema,
47
- ToolConfirmationResponseDataSchema: () => ToolConfirmationResponseDataSchema,
48
- ToolConfirmationResponseSchema: () => ToolConfirmationResponseSchema
45
+ ToolApprovalMetadataSchema: () => ToolApprovalMetadataSchema,
46
+ ToolApprovalRequestSchema: () => ToolApprovalRequestSchema,
47
+ ToolApprovalResponseDataSchema: () => ToolApprovalResponseDataSchema,
48
+ ToolApprovalResponseSchema: () => ToolApprovalResponseSchema
49
49
  });
50
50
  module.exports = __toCommonJS(schemas_exports);
51
51
  var import_zod = require("zod");
@@ -58,18 +58,36 @@ const DenialReasonSchema = import_zod.z.nativeEnum(import_types.DenialReason);
58
58
  const ToolDisplayDataSchema = import_zod.z.custom((val) => (0, import_display_types.isValidDisplayData)(val), {
59
59
  message: "Invalid ToolDisplayData"
60
60
  });
61
- const ToolConfirmationMetadataSchema = import_zod.z.object({
61
+ const ToolPresentationSnapshotV1Schema = import_zod.z.custom(
62
+ (val) => typeof val === "object" && val !== null && val.version === 1,
63
+ {
64
+ message: "Invalid ToolPresentationSnapshotV1"
65
+ }
66
+ );
67
+ const DirectoryAccessMetadataSchema = import_zod.z.object({
68
+ path: import_zod.z.string().describe("Full path being accessed"),
69
+ parentDir: import_zod.z.string().describe("Parent directory (what gets approved for session)"),
70
+ operation: import_zod.z.enum(["read", "write", "edit"]).describe("Type of file operation"),
71
+ toolName: import_zod.z.string().describe("Name of the tool requesting access")
72
+ }).strict().describe("Directory access metadata");
73
+ const ToolApprovalMetadataSchema = import_zod.z.object({
62
74
  toolName: import_zod.z.string().describe("Name of the tool to confirm"),
75
+ presentationSnapshot: ToolPresentationSnapshotV1Schema.optional().describe(
76
+ "Optional UI-agnostic presentation snapshot for the tool call. Clients MUST ignore unknown fields."
77
+ ),
63
78
  toolCallId: import_zod.z.string().describe("Unique tool call ID for tracking parallel tool calls"),
64
79
  args: import_zod.z.record(import_zod.z.unknown()).describe("Arguments for the tool"),
65
80
  description: import_zod.z.string().optional().describe("Description of the tool"),
66
81
  displayPreview: ToolDisplayDataSchema.optional().describe(
67
82
  "Preview display data for approval UI (e.g., diff preview)"
68
83
  ),
84
+ directoryAccess: DirectoryAccessMetadataSchema.optional().describe(
85
+ "Optional directory access metadata when the tool targets a path outside config-allowed roots"
86
+ ),
69
87
  suggestedPatterns: import_zod.z.array(import_zod.z.string()).optional().describe(
70
- 'Suggested patterns for session approval (for bash commands). E.g., ["git push *", "git *"] for command "git push origin main"'
88
+ 'Suggested patterns for session approval. Tools may provide patterns to allow approving a broader subset of future calls (e.g., ["git push *", "git *"]).'
71
89
  )
72
- }).strict().describe("Tool confirmation metadata");
90
+ }).strict().describe("Tool approval metadata");
73
91
  const CommandConfirmationMetadataSchema = import_zod.z.object({
74
92
  toolName: import_zod.z.string().describe("Name of the tool executing the command"),
75
93
  command: import_zod.z.string().describe("The normalized command to execute"),
@@ -77,17 +95,11 @@ const CommandConfirmationMetadataSchema = import_zod.z.object({
77
95
  }).strict().describe("Command confirmation metadata");
78
96
  const ElicitationMetadataSchema = import_zod.z.object({
79
97
  schema: JsonSchema7Schema.describe("JSON Schema for the form"),
80
- prompt: import_zod.z.string().describe("Prompt to show the user"),
98
+ prompt: import_zod.z.string().describe("High-level prompt/context for the form (clients may show it)"),
81
99
  serverName: import_zod.z.string().describe("MCP server requesting input"),
82
100
  context: import_zod.z.record(import_zod.z.unknown()).optional().describe("Additional context")
83
101
  }).strict().describe("Elicitation metadata");
84
102
  const CustomApprovalMetadataSchema = import_zod.z.record(import_zod.z.unknown()).describe("Custom metadata");
85
- const DirectoryAccessMetadataSchema = import_zod.z.object({
86
- path: import_zod.z.string().describe("Full path being accessed"),
87
- parentDir: import_zod.z.string().describe("Parent directory (what gets approved for session)"),
88
- operation: import_zod.z.enum(["read", "write", "edit"]).describe("Type of file operation"),
89
- toolName: import_zod.z.string().describe("Name of the tool requesting access")
90
- }).strict().describe("Directory access metadata");
91
103
  const BaseApprovalRequestSchema = import_zod.z.object({
92
104
  approvalId: import_zod.z.string().uuid().describe("Unique approval identifier"),
93
105
  type: ApprovalTypeSchema.describe("Type of approval"),
@@ -95,9 +107,9 @@ const BaseApprovalRequestSchema = import_zod.z.object({
95
107
  timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
96
108
  timestamp: import_zod.z.date().describe("When the request was created")
97
109
  }).describe("Base approval request");
98
- const ToolConfirmationRequestSchema = BaseApprovalRequestSchema.extend({
99
- type: import_zod.z.literal(import_types.ApprovalType.TOOL_CONFIRMATION),
100
- metadata: ToolConfirmationMetadataSchema
110
+ const ToolApprovalRequestSchema = BaseApprovalRequestSchema.extend({
111
+ type: import_zod.z.literal(import_types.ApprovalType.TOOL_APPROVAL),
112
+ metadata: ToolApprovalMetadataSchema
101
113
  }).strict();
102
114
  const CommandConfirmationRequestSchema = BaseApprovalRequestSchema.extend({
103
115
  type: import_zod.z.literal(import_types.ApprovalType.COMMAND_CONFIRMATION),
@@ -116,18 +128,21 @@ const DirectoryAccessRequestSchema = BaseApprovalRequestSchema.extend({
116
128
  metadata: DirectoryAccessMetadataSchema
117
129
  }).strict();
118
130
  const ApprovalRequestSchema = import_zod.z.discriminatedUnion("type", [
119
- ToolConfirmationRequestSchema,
131
+ ToolApprovalRequestSchema,
120
132
  CommandConfirmationRequestSchema,
121
133
  ElicitationRequestSchema,
122
134
  CustomApprovalRequestSchema,
123
135
  DirectoryAccessRequestSchema
124
136
  ]);
125
- const ToolConfirmationResponseDataSchema = import_zod.z.object({
137
+ const ToolApprovalResponseDataSchema = import_zod.z.object({
126
138
  rememberChoice: import_zod.z.boolean().optional().describe("Remember this tool for the session (approves ALL uses of this tool)"),
127
139
  rememberPattern: import_zod.z.string().optional().describe(
128
- 'Remember a command pattern for bash commands (e.g., "git *"). Only applicable for bash_exec tool approvals.'
140
+ 'Remember an approval pattern (e.g., "git *"). Only applicable when the tool provides pattern-based approval support.'
141
+ ),
142
+ rememberDirectory: import_zod.z.boolean().optional().describe(
143
+ "Remember this directory for the session (allows future access without prompting again)"
129
144
  )
130
- }).strict().describe("Tool confirmation response data");
145
+ }).strict().describe("Tool approval response data");
131
146
  const CommandConfirmationResponseDataSchema = import_zod.z.object({
132
147
  // Command confirmations don't have remember choice - they're per-command
133
148
  // Could add command pattern remembering in future (e.g., "remember git push *")
@@ -149,8 +164,8 @@ const BaseApprovalResponseSchema = import_zod.z.object({
149
164
  message: import_zod.z.string().optional().describe("Human-readable message explaining the denial/cancellation"),
150
165
  timeoutMs: import_zod.z.number().int().positive().optional().describe("Timeout duration in milliseconds (present for timeout events)")
151
166
  }).describe("Base approval response");
152
- const ToolConfirmationResponseSchema = BaseApprovalResponseSchema.extend({
153
- data: ToolConfirmationResponseDataSchema.optional()
167
+ const ToolApprovalResponseSchema = BaseApprovalResponseSchema.extend({
168
+ data: ToolApprovalResponseDataSchema.optional()
154
169
  }).strict();
155
170
  const CommandConfirmationResponseSchema = BaseApprovalResponseSchema.extend({
156
171
  data: CommandConfirmationResponseDataSchema.optional()
@@ -165,7 +180,7 @@ const DirectoryAccessResponseSchema = BaseApprovalResponseSchema.extend({
165
180
  data: DirectoryAccessResponseDataSchema.optional()
166
181
  }).strict();
167
182
  const ApprovalResponseSchema = import_zod.z.union([
168
- ToolConfirmationResponseSchema,
183
+ ToolApprovalResponseSchema,
169
184
  CommandConfirmationResponseSchema,
170
185
  ElicitationResponseSchema,
171
186
  CustomApprovalResponseSchema,
@@ -176,19 +191,19 @@ const ApprovalRequestDetailsSchema = import_zod.z.object({
176
191
  sessionId: import_zod.z.string().optional(),
177
192
  timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
178
193
  metadata: import_zod.z.union([
179
- ToolConfirmationMetadataSchema,
194
+ ToolApprovalMetadataSchema,
180
195
  CommandConfirmationMetadataSchema,
181
196
  ElicitationMetadataSchema,
182
197
  CustomApprovalMetadataSchema,
183
198
  DirectoryAccessMetadataSchema
184
199
  ])
185
200
  }).superRefine((data, ctx) => {
186
- if (data.type === import_types.ApprovalType.TOOL_CONFIRMATION) {
187
- const result = ToolConfirmationMetadataSchema.safeParse(data.metadata);
201
+ if (data.type === import_types.ApprovalType.TOOL_APPROVAL) {
202
+ const result = ToolApprovalMetadataSchema.safeParse(data.metadata);
188
203
  if (!result.success) {
189
204
  ctx.addIssue({
190
205
  code: import_zod.z.ZodIssueCode.custom,
191
- message: "Metadata must match ToolConfirmationMetadataSchema for TOOL_CONFIRMATION type",
206
+ message: "Metadata must match ToolApprovalMetadataSchema for TOOL_APPROVAL type",
192
207
  path: ["metadata"]
193
208
  });
194
209
  }
@@ -256,8 +271,8 @@ const ApprovalRequestDetailsSchema = import_zod.z.object({
256
271
  ElicitationRequestSchema,
257
272
  ElicitationResponseDataSchema,
258
273
  ElicitationResponseSchema,
259
- ToolConfirmationMetadataSchema,
260
- ToolConfirmationRequestSchema,
261
- ToolConfirmationResponseDataSchema,
262
- ToolConfirmationResponseSchema
274
+ ToolApprovalMetadataSchema,
275
+ ToolApprovalRequestSchema,
276
+ ToolApprovalResponseDataSchema,
277
+ ToolApprovalResponseSchema
263
278
  });