@dexto/core 1.2.6 → 1.4.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 (515) hide show
  1. package/README.md +55 -13
  2. package/dist/agent/DextoAgent.cjs +627 -228
  3. package/dist/agent/DextoAgent.d.ts +157 -34
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +625 -227
  6. package/dist/agent/agentCard.js +1 -1
  7. package/dist/agent/error-codes.cjs +1 -0
  8. package/dist/agent/error-codes.d.ts +2 -1
  9. package/dist/agent/error-codes.d.ts.map +1 -1
  10. package/dist/agent/error-codes.js +2 -1
  11. package/dist/agent/errors.cjs +13 -0
  12. package/dist/agent/errors.d.ts +4 -0
  13. package/dist/agent/errors.d.ts.map +1 -1
  14. package/dist/agent/errors.js +14 -1
  15. package/dist/agent/index.d.ts +1 -1
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +1 -1
  18. package/dist/agent/schemas.cjs +4 -1
  19. package/dist/agent/schemas.d.ts +92 -55
  20. package/dist/agent/schemas.d.ts.map +1 -1
  21. package/dist/agent/schemas.js +7 -3
  22. package/dist/agent/state-manager.cjs +5 -5
  23. package/dist/agent/state-manager.d.ts +4 -4
  24. package/dist/agent/state-manager.js +6 -6
  25. package/dist/agent/types.d.ts +24 -11
  26. package/dist/agent/types.d.ts.map +1 -1
  27. package/dist/approval/error-codes.js +1 -1
  28. package/dist/approval/errors.js +1 -1
  29. package/dist/approval/factory.js +1 -1
  30. package/dist/approval/index.js +1 -1
  31. package/dist/approval/manager.cjs +69 -3
  32. package/dist/approval/manager.d.ts +41 -3
  33. package/dist/approval/manager.d.ts.map +1 -1
  34. package/dist/approval/manager.js +70 -4
  35. package/dist/approval/schemas.cjs +20 -5
  36. package/dist/approval/schemas.d.ts +127 -52
  37. package/dist/approval/schemas.d.ts.map +1 -1
  38. package/dist/approval/schemas.js +21 -6
  39. package/dist/approval/types.d.ts +6 -0
  40. package/dist/approval/types.d.ts.map +1 -1
  41. package/dist/approval/types.js +1 -1
  42. package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
  43. package/dist/{llm/tokenizer/factory.cjs → context/compression/overflow.cjs} +20 -21
  44. package/dist/context/compression/overflow.d.ts +33 -0
  45. package/dist/context/compression/overflow.d.ts.map +1 -0
  46. package/dist/context/compression/overflow.js +19 -0
  47. package/dist/context/compression/reactive-overflow.cjs +201 -0
  48. package/dist/context/compression/reactive-overflow.d.ts +81 -0
  49. package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
  50. package/dist/context/compression/reactive-overflow.js +178 -0
  51. package/dist/context/compression/types.d.ts +9 -7
  52. package/dist/context/compression/types.d.ts.map +1 -1
  53. package/dist/context/error-codes.cjs +3 -0
  54. package/dist/context/error-codes.d.ts +4 -1
  55. package/dist/context/error-codes.d.ts.map +1 -1
  56. package/dist/context/error-codes.js +4 -1
  57. package/dist/context/errors.cjs +28 -0
  58. package/dist/context/errors.d.ts +7 -0
  59. package/dist/context/errors.d.ts.map +1 -1
  60. package/dist/context/errors.js +29 -1
  61. package/dist/context/index.js +1 -1
  62. package/dist/context/manager.cjs +287 -323
  63. package/dist/context/manager.d.ts +65 -111
  64. package/dist/context/manager.d.ts.map +1 -1
  65. package/dist/context/manager.js +287 -328
  66. package/dist/context/media-helpers.js +1 -1
  67. package/dist/context/types.cjs +49 -0
  68. package/dist/context/types.d.ts +185 -72
  69. package/dist/context/types.d.ts.map +1 -1
  70. package/dist/context/types.js +35 -0
  71. package/dist/context/utils.cjs +266 -283
  72. package/dist/context/utils.d.ts +32 -18
  73. package/dist/context/utils.d.ts.map +1 -1
  74. package/dist/context/utils.js +266 -283
  75. package/dist/errors/DextoBaseError.js +1 -1
  76. package/dist/errors/DextoRuntimeError.js +1 -1
  77. package/dist/errors/DextoValidationError.js +1 -1
  78. package/dist/errors/index.js +1 -1
  79. package/dist/errors/result-bridge.js +1 -1
  80. package/dist/errors/types.cjs +1 -0
  81. package/dist/errors/types.d.ts +4 -2
  82. package/dist/errors/types.d.ts.map +1 -1
  83. package/dist/errors/types.js +2 -1
  84. package/dist/events/index.cjs +22 -2
  85. package/dist/events/index.d.ts +170 -62
  86. package/dist/events/index.d.ts.map +1 -1
  87. package/dist/events/index.js +23 -3
  88. package/dist/filesystem/error-codes.js +1 -1
  89. package/dist/filesystem/errors.js +1 -1
  90. package/dist/filesystem/filesystem-service.js +1 -1
  91. package/dist/filesystem/index.js +1 -1
  92. package/dist/filesystem/path-validator.js +1 -1
  93. package/dist/index.browser.cjs +23 -8
  94. package/dist/index.browser.d.ts +4 -3
  95. package/dist/index.browser.d.ts.map +1 -1
  96. package/dist/index.browser.js +20 -3
  97. package/dist/index.js +1 -1
  98. package/dist/llm/error-codes.cjs +0 -1
  99. package/dist/llm/error-codes.d.ts +0 -1
  100. package/dist/llm/error-codes.d.ts.map +1 -1
  101. package/dist/llm/error-codes.js +1 -2
  102. package/dist/llm/errors.cjs +10 -10
  103. package/dist/llm/errors.d.ts +5 -6
  104. package/dist/llm/errors.d.ts.map +1 -1
  105. package/dist/llm/errors.js +12 -12
  106. package/dist/llm/executor/stream-processor.cjs +367 -0
  107. package/dist/llm/executor/stream-processor.d.ts +55 -0
  108. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  109. package/dist/llm/executor/stream-processor.js +344 -0
  110. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  111. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  112. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  113. package/dist/llm/executor/tool-output-truncator.js +48 -0
  114. package/dist/llm/executor/turn-executor.cjs +753 -0
  115. package/dist/llm/executor/turn-executor.d.ts +166 -0
  116. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  117. package/dist/llm/executor/turn-executor.js +684 -0
  118. package/dist/llm/executor/types.d.ts +27 -0
  119. package/dist/llm/executor/types.d.ts.map +1 -0
  120. package/dist/llm/formatters/vercel.cjs +20 -186
  121. package/dist/llm/formatters/vercel.d.ts +2 -14
  122. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  123. package/dist/llm/formatters/vercel.js +19 -185
  124. package/dist/llm/registry.cjs +36 -45
  125. package/dist/llm/registry.d.ts +53 -39
  126. package/dist/llm/registry.d.ts.map +1 -1
  127. package/dist/llm/registry.js +34 -42
  128. package/dist/llm/resolver.cjs +1 -31
  129. package/dist/llm/resolver.d.ts.map +1 -1
  130. package/dist/llm/resolver.js +2 -34
  131. package/dist/llm/schemas.cjs +2 -17
  132. package/dist/llm/schemas.d.ts +10 -23
  133. package/dist/llm/schemas.d.ts.map +1 -1
  134. package/dist/llm/schemas.js +5 -22
  135. package/dist/llm/services/factory.cjs +3 -92
  136. package/dist/llm/services/factory.d.ts +14 -4
  137. package/dist/llm/services/factory.d.ts.map +1 -1
  138. package/dist/llm/services/factory.js +4 -83
  139. package/dist/llm/services/test-utils.integration.cjs +6 -8
  140. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  141. package/dist/llm/services/test-utils.integration.js +7 -9
  142. package/dist/llm/services/types.d.ts +1 -28
  143. package/dist/llm/services/types.d.ts.map +1 -1
  144. package/dist/llm/services/vercel.cjs +54 -468
  145. package/dist/llm/services/vercel.d.ts +38 -21
  146. package/dist/llm/services/vercel.d.ts.map +1 -1
  147. package/dist/llm/services/vercel.js +56 -475
  148. package/dist/llm/types.cjs +0 -3
  149. package/dist/llm/types.d.ts +8 -8
  150. package/dist/llm/types.d.ts.map +1 -1
  151. package/dist/llm/types.js +1 -3
  152. package/dist/llm/validation.js +1 -1
  153. package/dist/logger/browser.js +1 -1
  154. package/dist/logger/factory.js +1 -1
  155. package/dist/logger/index.js +1 -1
  156. package/dist/logger/logger.js +1 -1
  157. package/dist/logger/v2/dexto-logger.cjs +34 -6
  158. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  159. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  160. package/dist/logger/v2/dexto-logger.js +35 -7
  161. package/dist/logger/v2/error-codes.js +1 -1
  162. package/dist/logger/v2/errors.js +1 -1
  163. package/dist/logger/v2/schemas.cjs +1 -1
  164. package/dist/logger/v2/schemas.js +2 -2
  165. package/dist/logger/v2/test-utils.cjs +70 -0
  166. package/dist/logger/v2/test-utils.d.ts +17 -0
  167. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  168. package/dist/logger/v2/test-utils.js +46 -0
  169. package/dist/logger/v2/transport-factory.js +1 -1
  170. package/dist/logger/v2/transports/console-transport.js +1 -1
  171. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  172. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  173. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  174. package/dist/logger/v2/transports/file-transport.js +7 -1
  175. package/dist/logger/v2/types.cjs +1 -0
  176. package/dist/logger/v2/types.d.ts +18 -2
  177. package/dist/logger/v2/types.d.ts.map +1 -1
  178. package/dist/logger/v2/types.js +2 -1
  179. package/dist/mcp/error-codes.cjs +1 -0
  180. package/dist/mcp/error-codes.d.ts +1 -0
  181. package/dist/mcp/error-codes.d.ts.map +1 -1
  182. package/dist/mcp/error-codes.js +2 -1
  183. package/dist/mcp/errors.cjs +13 -0
  184. package/dist/mcp/errors.d.ts +7 -0
  185. package/dist/mcp/errors.d.ts.map +1 -1
  186. package/dist/mcp/errors.js +14 -1
  187. package/dist/mcp/manager.cjs +4 -0
  188. package/dist/mcp/manager.d.ts.map +1 -1
  189. package/dist/mcp/manager.js +5 -1
  190. package/dist/mcp/mcp-client.js +1 -1
  191. package/dist/mcp/resolver.js +1 -1
  192. package/dist/mcp/schemas.cjs +6 -0
  193. package/dist/mcp/schemas.d.ts +52 -0
  194. package/dist/mcp/schemas.d.ts.map +1 -1
  195. package/dist/mcp/schemas.js +6 -1
  196. package/dist/memory/error-codes.js +1 -1
  197. package/dist/memory/errors.js +1 -1
  198. package/dist/memory/index.js +1 -1
  199. package/dist/memory/manager.js +1 -1
  200. package/dist/memory/schemas.d.ts +2 -2
  201. package/dist/memory/schemas.js +1 -1
  202. package/dist/plugins/builtins/content-policy.js +1 -1
  203. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  204. package/dist/plugins/error-codes.cjs +1 -0
  205. package/dist/plugins/error-codes.d.ts +3 -1
  206. package/dist/plugins/error-codes.d.ts.map +1 -1
  207. package/dist/plugins/error-codes.js +2 -1
  208. package/dist/plugins/index.js +1 -1
  209. package/dist/plugins/loader.cjs +25 -5
  210. package/dist/plugins/loader.d.ts.map +1 -1
  211. package/dist/plugins/loader.js +26 -6
  212. package/dist/plugins/manager.js +1 -1
  213. package/dist/plugins/registrations/builtins.js +1 -1
  214. package/dist/plugins/schemas.d.ts +3 -3
  215. package/dist/plugins/schemas.js +1 -1
  216. package/dist/plugins/types.d.ts +0 -1
  217. package/dist/plugins/types.d.ts.map +1 -1
  218. package/dist/process/command-validator.js +1 -1
  219. package/dist/process/error-codes.js +1 -1
  220. package/dist/process/errors.js +1 -1
  221. package/dist/process/index.js +1 -1
  222. package/dist/process/process-service.cjs +78 -26
  223. package/dist/process/process-service.d.ts +6 -1
  224. package/dist/process/process-service.d.ts.map +1 -1
  225. package/dist/process/process-service.js +79 -27
  226. package/dist/process/types.d.ts +2 -2
  227. package/dist/process/types.d.ts.map +1 -1
  228. package/dist/prompts/error-codes.cjs +1 -0
  229. package/dist/prompts/error-codes.d.ts +2 -1
  230. package/dist/prompts/error-codes.d.ts.map +1 -1
  231. package/dist/prompts/error-codes.js +2 -1
  232. package/dist/prompts/errors.cjs +15 -0
  233. package/dist/prompts/errors.d.ts +4 -0
  234. package/dist/prompts/errors.d.ts.map +1 -1
  235. package/dist/prompts/errors.js +16 -1
  236. package/dist/prompts/index.js +1 -1
  237. package/dist/prompts/name-validation.js +1 -1
  238. package/dist/prompts/prompt-manager.cjs +13 -2
  239. package/dist/prompts/prompt-manager.d.ts +7 -0
  240. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  241. package/dist/prompts/prompt-manager.js +14 -3
  242. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  243. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  244. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  245. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  246. package/dist/prompts/providers/custom-prompt-provider.cjs +2 -2
  247. package/dist/prompts/providers/custom-prompt-provider.d.ts +1 -1
  248. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  249. package/dist/prompts/providers/custom-prompt-provider.js +3 -3
  250. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  251. package/dist/prompts/schemas.d.ts +12 -0
  252. package/dist/prompts/schemas.d.ts.map +1 -1
  253. package/dist/prompts/schemas.js +1 -1
  254. package/dist/prompts/types.d.ts +2 -0
  255. package/dist/prompts/types.d.ts.map +1 -1
  256. package/dist/prompts/utils.js +1 -1
  257. package/dist/resources/error-codes.js +1 -1
  258. package/dist/resources/errors.js +1 -1
  259. package/dist/resources/handlers/blob-handler.js +1 -1
  260. package/dist/resources/handlers/factory.js +1 -1
  261. package/dist/resources/handlers/filesystem-handler.js +1 -1
  262. package/dist/resources/index.js +1 -1
  263. package/dist/resources/internal-provider.js +1 -1
  264. package/dist/resources/manager.js +1 -1
  265. package/dist/resources/reference-parser.js +1 -1
  266. package/dist/resources/schemas.js +1 -1
  267. package/dist/search/index.js +1 -1
  268. package/dist/search/search-service.js +1 -1
  269. package/dist/session/chat-session.cjs +149 -51
  270. package/dist/session/chat-session.d.ts +69 -29
  271. package/dist/session/chat-session.d.ts.map +1 -1
  272. package/dist/session/chat-session.js +150 -52
  273. package/dist/session/error-codes.js +1 -1
  274. package/dist/session/errors.js +1 -1
  275. package/dist/session/history/database.cjs +134 -21
  276. package/dist/session/history/database.d.ts +37 -8
  277. package/dist/session/history/database.d.ts.map +1 -1
  278. package/dist/session/history/database.js +135 -22
  279. package/dist/session/history/factory.js +1 -1
  280. package/dist/session/history/memory.cjs +18 -0
  281. package/dist/session/history/memory.d.ts +8 -0
  282. package/dist/session/history/memory.d.ts.map +1 -1
  283. package/dist/session/history/memory.js +19 -1
  284. package/dist/session/history/types.d.ts +13 -1
  285. package/dist/session/history/types.d.ts.map +1 -1
  286. package/dist/session/index.cjs +3 -0
  287. package/dist/session/index.d.ts +3 -0
  288. package/dist/session/index.d.ts.map +1 -1
  289. package/dist/session/index.js +3 -1
  290. package/dist/session/message-queue.cjs +201 -0
  291. package/dist/session/message-queue.d.ts +114 -0
  292. package/dist/session/message-queue.d.ts.map +1 -0
  293. package/dist/session/message-queue.js +178 -0
  294. package/dist/session/schemas.js +1 -1
  295. package/dist/session/session-manager.cjs +57 -7
  296. package/dist/session/session-manager.d.ts +18 -0
  297. package/dist/session/session-manager.d.ts.map +1 -1
  298. package/dist/session/session-manager.js +58 -8
  299. package/dist/session/title-generator.cjs +4 -8
  300. package/dist/session/title-generator.d.ts +1 -2
  301. package/dist/session/title-generator.d.ts.map +1 -1
  302. package/dist/session/title-generator.js +5 -9
  303. package/dist/session/types.cjs +16 -0
  304. package/dist/session/types.d.ts +14 -0
  305. package/dist/session/types.d.ts.map +1 -0
  306. package/dist/session/types.js +0 -0
  307. package/dist/storage/blob/factory.js +1 -1
  308. package/dist/storage/blob/local-blob-store.js +1 -1
  309. package/dist/storage/blob/memory-blob-store.js +1 -1
  310. package/dist/storage/blob/schemas.js +1 -1
  311. package/dist/storage/cache/factory.cjs +6 -2
  312. package/dist/storage/cache/factory.d.ts +2 -1
  313. package/dist/storage/cache/factory.d.ts.map +1 -1
  314. package/dist/storage/cache/factory.js +7 -3
  315. package/dist/storage/cache/memory-cache-store.js +1 -1
  316. package/dist/storage/cache/redis-store.js +1 -1
  317. package/dist/storage/cache/schemas.js +1 -1
  318. package/dist/storage/database/factory.cjs +11 -17
  319. package/dist/storage/database/factory.d.ts +2 -1
  320. package/dist/storage/database/factory.d.ts.map +1 -1
  321. package/dist/storage/database/factory.js +12 -18
  322. package/dist/storage/database/memory-database-store.js +1 -1
  323. package/dist/storage/database/postgres-store.cjs +12 -0
  324. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  325. package/dist/storage/database/postgres-store.js +13 -1
  326. package/dist/storage/database/schemas.js +1 -1
  327. package/dist/storage/database/sqlite-store.cjs +8 -0
  328. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  329. package/dist/storage/database/sqlite-store.js +9 -1
  330. package/dist/storage/error-codes.cjs +1 -0
  331. package/dist/storage/error-codes.d.ts +1 -0
  332. package/dist/storage/error-codes.d.ts.map +1 -1
  333. package/dist/storage/error-codes.js +2 -1
  334. package/dist/storage/errors.cjs +17 -0
  335. package/dist/storage/errors.d.ts +9 -0
  336. package/dist/storage/errors.d.ts.map +1 -1
  337. package/dist/storage/errors.js +18 -1
  338. package/dist/storage/index.js +1 -1
  339. package/dist/storage/schemas.js +1 -1
  340. package/dist/storage/storage-manager.js +1 -1
  341. package/dist/systemPrompt/contributors.js +1 -1
  342. package/dist/systemPrompt/error-codes.js +1 -1
  343. package/dist/systemPrompt/errors.js +1 -1
  344. package/dist/systemPrompt/in-built-prompts.js +1 -1
  345. package/dist/systemPrompt/index.js +1 -1
  346. package/dist/systemPrompt/manager.js +1 -1
  347. package/dist/systemPrompt/registry.js +1 -1
  348. package/dist/systemPrompt/schemas.d.ts +5 -5
  349. package/dist/systemPrompt/schemas.js +1 -1
  350. package/dist/telemetry/decorators.js +1 -1
  351. package/dist/{llm/tokenizer/default.cjs → telemetry/error-codes.cjs} +14 -19
  352. package/dist/telemetry/error-codes.d.ts +13 -0
  353. package/dist/telemetry/error-codes.d.ts.map +1 -0
  354. package/dist/telemetry/error-codes.js +13 -0
  355. package/dist/telemetry/errors.cjs +105 -0
  356. package/dist/telemetry/errors.d.ts +28 -0
  357. package/dist/telemetry/errors.d.ts.map +1 -0
  358. package/dist/telemetry/errors.js +82 -0
  359. package/dist/telemetry/exporters.js +1 -1
  360. package/dist/telemetry/index.js +1 -1
  361. package/dist/telemetry/schemas.js +1 -1
  362. package/dist/telemetry/telemetry.cjs +92 -26
  363. package/dist/telemetry/telemetry.d.ts +1 -1
  364. package/dist/telemetry/telemetry.d.ts.map +1 -1
  365. package/dist/telemetry/telemetry.js +75 -19
  366. package/dist/telemetry/utils.js +1 -1
  367. package/dist/tools/bash-pattern-utils.cjs +91 -0
  368. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  369. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  370. package/dist/tools/bash-pattern-utils.js +64 -0
  371. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  372. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  373. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  374. package/dist/tools/display-types.cjs +60 -0
  375. package/dist/tools/display-types.d.ts +133 -0
  376. package/dist/tools/display-types.d.ts.map +1 -0
  377. package/dist/tools/display-types.js +32 -0
  378. package/dist/tools/error-codes.cjs +2 -0
  379. package/dist/tools/error-codes.d.ts +3 -1
  380. package/dist/tools/error-codes.d.ts.map +1 -1
  381. package/dist/tools/error-codes.js +3 -1
  382. package/dist/tools/errors.cjs +30 -0
  383. package/dist/tools/errors.d.ts +16 -0
  384. package/dist/tools/errors.d.ts.map +1 -1
  385. package/dist/tools/errors.js +31 -1
  386. package/dist/tools/index.cjs +2 -0
  387. package/dist/tools/index.d.ts +1 -0
  388. package/dist/tools/index.d.ts.map +1 -1
  389. package/dist/tools/index.js +2 -1
  390. package/dist/tools/internal-tools/constants.js +1 -1
  391. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  392. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  393. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
  394. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
  395. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
  396. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
  397. package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
  398. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  399. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
  400. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
  401. package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
  402. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
  403. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
  404. package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
  405. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
  406. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
  407. package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
  408. package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
  409. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
  410. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
  411. package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
  412. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  413. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
  414. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
  415. package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
  416. package/dist/tools/internal-tools/provider.cjs +27 -10
  417. package/dist/tools/internal-tools/provider.d.ts +8 -5
  418. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  419. package/dist/tools/internal-tools/provider.js +28 -11
  420. package/dist/tools/internal-tools/registry.cjs +4 -3
  421. package/dist/tools/internal-tools/registry.d.ts +28 -7
  422. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  423. package/dist/tools/internal-tools/registry.js +5 -4
  424. package/dist/tools/schemas.cjs +17 -7
  425. package/dist/tools/schemas.d.ts +31 -4
  426. package/dist/tools/schemas.d.ts.map +1 -1
  427. package/dist/tools/schemas.js +15 -7
  428. package/dist/tools/tool-manager.cjs +140 -18
  429. package/dist/tools/tool-manager.d.ts +23 -1
  430. package/dist/tools/tool-manager.d.ts.map +1 -1
  431. package/dist/tools/tool-manager.js +145 -19
  432. package/dist/tools/types.d.ts +20 -11
  433. package/dist/tools/types.d.ts.map +1 -1
  434. package/dist/utils/api-key-resolver.js +1 -1
  435. package/dist/utils/async-context.js +1 -1
  436. package/dist/utils/debug.js +1 -1
  437. package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
  438. package/dist/utils/defer.d.ts +63 -0
  439. package/dist/utils/defer.d.ts.map +1 -0
  440. package/dist/utils/defer.js +19 -0
  441. package/dist/utils/env-file.js +1 -1
  442. package/dist/utils/error-conversion.js +1 -1
  443. package/dist/utils/execution-context.js +1 -1
  444. package/dist/utils/fs-walk.js +1 -1
  445. package/dist/utils/index.cjs +3 -1
  446. package/dist/utils/index.d.ts +1 -0
  447. package/dist/utils/index.d.ts.map +1 -1
  448. package/dist/utils/index.js +1 -0
  449. package/dist/utils/path.js +1 -1
  450. package/dist/utils/redactor.js +1 -1
  451. package/dist/utils/result.js +1 -1
  452. package/dist/utils/safe-stringify.js +1 -1
  453. package/dist/utils/schema-metadata.js +1 -1
  454. package/dist/utils/schema.d.ts +6 -0
  455. package/dist/utils/schema.d.ts.map +1 -1
  456. package/dist/utils/schema.js +1 -1
  457. package/dist/utils/service-initializer.cjs +6 -2
  458. package/dist/utils/service-initializer.d.ts.map +1 -1
  459. package/dist/utils/service-initializer.js +7 -3
  460. package/dist/utils/user-info.js +1 -1
  461. package/dist/utils/zod-schema-converter.js +1 -1
  462. package/package.json +54 -17
  463. package/dist/context/compression/middle-removal.cjs +0 -95
  464. package/dist/context/compression/middle-removal.d.ts +0 -47
  465. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  466. package/dist/context/compression/middle-removal.js +0 -72
  467. package/dist/context/compression/oldest-removal.cjs +0 -83
  468. package/dist/context/compression/oldest-removal.d.ts +0 -42
  469. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  470. package/dist/context/compression/oldest-removal.js +0 -60
  471. package/dist/llm/formatters/anthropic.cjs +0 -257
  472. package/dist/llm/formatters/anthropic.d.ts +0 -46
  473. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  474. package/dist/llm/formatters/anthropic.js +0 -239
  475. package/dist/llm/formatters/factory.cjs +0 -50
  476. package/dist/llm/formatters/factory.d.ts +0 -10
  477. package/dist/llm/formatters/factory.d.ts.map +0 -1
  478. package/dist/llm/formatters/factory.js +0 -27
  479. package/dist/llm/formatters/openai.cjs +0 -196
  480. package/dist/llm/formatters/openai.d.ts +0 -39
  481. package/dist/llm/formatters/openai.d.ts.map +0 -1
  482. package/dist/llm/formatters/openai.js +0 -177
  483. package/dist/llm/formatters/types.d.ts +0 -41
  484. package/dist/llm/formatters/types.d.ts.map +0 -1
  485. package/dist/llm/services/anthropic.cjs +0 -511
  486. package/dist/llm/services/anthropic.d.ts +0 -48
  487. package/dist/llm/services/anthropic.d.ts.map +0 -1
  488. package/dist/llm/services/anthropic.js +0 -447
  489. package/dist/llm/services/openai.cjs +0 -611
  490. package/dist/llm/services/openai.d.ts +0 -48
  491. package/dist/llm/services/openai.d.ts.map +0 -1
  492. package/dist/llm/services/openai.js +0 -547
  493. package/dist/llm/tokenizer/anthropic.cjs +0 -43
  494. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  495. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  496. package/dist/llm/tokenizer/anthropic.js +0 -20
  497. package/dist/llm/tokenizer/default.d.ts +0 -14
  498. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  499. package/dist/llm/tokenizer/default.js +0 -18
  500. package/dist/llm/tokenizer/factory.d.ts +0 -12
  501. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  502. package/dist/llm/tokenizer/factory.js +0 -21
  503. package/dist/llm/tokenizer/google.cjs +0 -52
  504. package/dist/llm/tokenizer/google.d.ts +0 -29
  505. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  506. package/dist/llm/tokenizer/google.js +0 -29
  507. package/dist/llm/tokenizer/openai.cjs +0 -115
  508. package/dist/llm/tokenizer/openai.d.ts +0 -33
  509. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  510. package/dist/llm/tokenizer/openai.js +0 -91
  511. package/dist/llm/tokenizer/types.d.ts +0 -18
  512. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  513. package/dist/llm/tokenizer/types.js +0 -10
  514. /package/dist/llm/{formatters → executor}/types.cjs +0 -0
  515. /package/dist/llm/{formatters → executor}/types.js +0 -0
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Re-uses existing types from context, llm/services, and events to avoid duplication.
5
5
  */
6
- import type { ImageData, FileData } from '../context/types.js';
6
+ import type { ContentPart } from '../context/types.js';
7
7
  import type { LLMTokenUsage } from '../llm/services/types.js';
8
8
  /**
9
- * Re-export existing types for convenience
9
+ * Re-export content part types for API consumers
10
10
  */
11
- export type { ImageData as ImageInput, FileData as FileInput } from '../context/types.js';
11
+ export type { ContentPart, TextPart, ImagePart, FilePart, ImageData, FileData, } from '../context/types.js';
12
12
  export type { LLMTokenUsage as TokenUsage } from '../llm/services/types.js';
13
13
  /**
14
14
  * Tool call information for agent streaming
@@ -24,13 +24,28 @@ export interface AgentToolCall {
24
24
  } | undefined;
25
25
  }
26
26
  /**
27
- * Options for generate() method
27
+ * Content input for generate() and stream() methods.
28
+ * Can be a simple string (for text-only messages) or an array of ContentPart (for multimodal).
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Simple text
33
+ * agent.generate('What is 2+2?', sessionId);
34
+ *
35
+ * // Multimodal with image
36
+ * agent.generate([
37
+ * { type: 'text', text: 'Describe this image' },
38
+ * { type: 'image', image: base64Data, mimeType: 'image/png' }
39
+ * ], sessionId);
40
+ * ```
41
+ */
42
+ export type ContentInput = string | ContentPart[];
43
+ /**
44
+ * Options for generate() and stream() methods
28
45
  */
29
46
  export interface GenerateOptions {
30
- sessionId: string;
31
- imageData?: ImageData | undefined;
32
- fileData?: FileData | undefined;
33
- signal?: AbortSignal | undefined;
47
+ /** AbortSignal for cancellation */
48
+ signal?: AbortSignal;
34
49
  }
35
50
  /**
36
51
  * Complete response from generate() method
@@ -41,7 +56,6 @@ export interface GenerateResponse {
41
56
  usage: LLMTokenUsage;
42
57
  toolCalls: AgentToolCall[];
43
58
  sessionId: string;
44
- messageId: string;
45
59
  }
46
60
  /**
47
61
  * Options for stream() method (same as generate)
@@ -49,6 +63,5 @@ export interface GenerateResponse {
49
63
  * Note: stream() now returns core StreamingEvent types directly from the event system.
50
64
  * See packages/core/src/events/index.ts for event definitions.
51
65
  */
52
- export interface StreamOptions extends GenerateOptions {
53
- }
66
+ export type StreamOptions = GenerateOptions;
54
67
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,YAAY,EAAE,SAAS,IAAI,UAAU,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1F,YAAY,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EACD;QACI,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC;KACb,GACD,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,eAAe;CAErD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,YAAY,EACR,WAAW,EACX,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,GACX,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EACD;QACI,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC;KACb,GACD,SAAS,CAAC;CACnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,mCAAmC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  var ApprovalErrorCode = /* @__PURE__ */ ((ApprovalErrorCode2) => {
3
3
  ApprovalErrorCode2["APPROVAL_INVALID_REQUEST"] = "approval_invalid_request";
4
4
  ApprovalErrorCode2["APPROVAL_INVALID_RESPONSE"] = "approval_invalid_response";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { DextoRuntimeError, ErrorScope, ErrorType } from "../errors/index.js";
3
3
  import { ApprovalErrorCode } from "./error-codes.js";
4
4
  class ApprovalError {
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { randomUUID } from "crypto";
3
3
  function createApprovalRequest(details) {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
3
3
  import {
4
4
  ApprovalTypeSchema,
@@ -25,10 +25,17 @@ var import_types = require("./types.js");
25
25
  var import_factory = require("./factory.js");
26
26
  var import_types2 = require("../logger/v2/types.js");
27
27
  var import_errors = require("./errors.js");
28
+ var import_bash_pattern_utils = require("../tools/bash-pattern-utils.js");
28
29
  class ApprovalManager {
29
30
  handler;
30
31
  config;
31
32
  logger;
33
+ /**
34
+ * Bash command patterns approved for the current session.
35
+ * Patterns use simple glob syntax (e.g., "git *", "npm install *").
36
+ * Cleared when session ends.
37
+ */
38
+ bashPatterns = /* @__PURE__ */ new Set();
32
39
  constructor(config, logger) {
33
40
  this.config = config;
34
41
  this.logger = logger.createChild(import_types2.DextoLogComponent.APPROVAL);
@@ -36,6 +43,56 @@ class ApprovalManager {
36
43
  `ApprovalManager initialized with toolConfirmation.mode: ${config.toolConfirmation.mode}, elicitation.enabled: ${config.elicitation.enabled}`
37
44
  );
38
45
  }
46
+ // ==================== Bash Pattern Methods ====================
47
+ /**
48
+ * Add a bash command pattern to the approved list for this session.
49
+ * Patterns use simple glob syntax with * as wildcard.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * manager.addBashPattern("git *"); // Approves all git commands
54
+ * manager.addBashPattern("npm install *"); // Approves npm install with any package
55
+ * ```
56
+ */
57
+ addBashPattern(pattern) {
58
+ this.bashPatterns.add(pattern);
59
+ this.logger.debug(`Added bash pattern: "${pattern}"`);
60
+ }
61
+ /**
62
+ * Check if a bash pattern key is covered by any approved pattern.
63
+ * Uses pattern-to-pattern covering for broader pattern support.
64
+ *
65
+ * @param patternKey The pattern key generated from the command (e.g., "git push *")
66
+ * @returns true if the pattern key is covered by an approved pattern
67
+ */
68
+ matchesBashPattern(patternKey) {
69
+ for (const storedPattern of this.bashPatterns) {
70
+ if ((0, import_bash_pattern_utils.patternCovers)(storedPattern, patternKey)) {
71
+ this.logger.debug(
72
+ `Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
73
+ );
74
+ return true;
75
+ }
76
+ }
77
+ return false;
78
+ }
79
+ /**
80
+ * Clear all approved bash patterns.
81
+ * Should be called when session ends.
82
+ */
83
+ clearBashPatterns() {
84
+ const count = this.bashPatterns.size;
85
+ this.bashPatterns.clear();
86
+ if (count > 0) {
87
+ this.logger.debug(`Cleared ${count} bash patterns`);
88
+ }
89
+ }
90
+ /**
91
+ * Get the current set of approved bash patterns (for debugging/display).
92
+ */
93
+ getBashPatterns() {
94
+ return this.bashPatterns;
95
+ }
39
96
  /**
40
97
  * Request a generic approval
41
98
  */
@@ -106,7 +163,8 @@ class ApprovalManager {
106
163
  const { sessionId, timeout, ...toolMetadata } = metadata;
107
164
  const details = {
108
165
  type: import_types.ApprovalType.TOOL_CONFIRMATION,
109
- timeout: timeout ?? this.config.toolConfirmation.timeout,
166
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
167
+ timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
110
168
  metadata: toolMetadata
111
169
  };
112
170
  if (sessionId !== void 0) {
@@ -139,7 +197,8 @@ class ApprovalManager {
139
197
  const { sessionId, timeout, ...commandMetadata } = metadata;
140
198
  const details = {
141
199
  type: import_types.ApprovalType.COMMAND_CONFIRMATION,
142
- timeout: timeout ?? this.config.toolConfirmation.timeout,
200
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
201
+ timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
143
202
  metadata: commandMetadata
144
203
  };
145
204
  if (sessionId !== void 0) {
@@ -158,7 +217,8 @@ class ApprovalManager {
158
217
  const { sessionId, timeout, ...elicitationMetadata } = metadata;
159
218
  const details = {
160
219
  type: import_types.ApprovalType.ELICITATION,
161
- timeout: timeout ?? this.config.elicitation.timeout,
220
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
221
+ timeout: timeout !== void 0 ? timeout : this.config.elicitation.timeout,
162
222
  metadata: elicitationMetadata
163
223
  };
164
224
  if (sessionId !== void 0) {
@@ -233,6 +293,12 @@ class ApprovalManager {
233
293
  getPendingApprovals() {
234
294
  return this.handler?.getPending?.() ?? [];
235
295
  }
296
+ /**
297
+ * Get full pending approval requests
298
+ */
299
+ getPendingApprovalRequests() {
300
+ return this.handler?.getPendingRequests?.() ?? [];
301
+ }
236
302
  /**
237
303
  * Get current configuration
238
304
  */
@@ -1,4 +1,4 @@
1
- import type { ApprovalHandler, ApprovalResponse, ApprovalRequestDetails, ToolConfirmationMetadata, CommandConfirmationMetadata, ElicitationMetadata } from './types.js';
1
+ import type { ApprovalHandler, ApprovalRequest, ApprovalResponse, ApprovalRequestDetails, ToolConfirmationMetadata, CommandConfirmationMetadata, ElicitationMetadata } from './types.js';
2
2
  import type { IDextoLogger } from '../logger/v2/types.js';
3
3
  /**
4
4
  * Configuration for the approval manager
@@ -6,11 +6,11 @@ import type { IDextoLogger } from '../logger/v2/types.js';
6
6
  export interface ApprovalManagerConfig {
7
7
  toolConfirmation: {
8
8
  mode: 'manual' | 'auto-approve' | 'auto-deny';
9
- timeout: number;
9
+ timeout?: number;
10
10
  };
11
11
  elicitation: {
12
12
  enabled: boolean;
13
- timeout: number;
13
+ timeout?: number;
14
14
  };
15
15
  }
16
16
  /**
@@ -50,7 +50,41 @@ export declare class ApprovalManager {
50
50
  private handler;
51
51
  private config;
52
52
  private logger;
53
+ /**
54
+ * Bash command patterns approved for the current session.
55
+ * Patterns use simple glob syntax (e.g., "git *", "npm install *").
56
+ * Cleared when session ends.
57
+ */
58
+ private bashPatterns;
53
59
  constructor(config: ApprovalManagerConfig, logger: IDextoLogger);
60
+ /**
61
+ * Add a bash command pattern to the approved list for this session.
62
+ * Patterns use simple glob syntax with * as wildcard.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * manager.addBashPattern("git *"); // Approves all git commands
67
+ * manager.addBashPattern("npm install *"); // Approves npm install with any package
68
+ * ```
69
+ */
70
+ addBashPattern(pattern: string): void;
71
+ /**
72
+ * Check if a bash pattern key is covered by any approved pattern.
73
+ * Uses pattern-to-pattern covering for broader pattern support.
74
+ *
75
+ * @param patternKey The pattern key generated from the command (e.g., "git push *")
76
+ * @returns true if the pattern key is covered by an approved pattern
77
+ */
78
+ matchesBashPattern(patternKey: string): boolean;
79
+ /**
80
+ * Clear all approved bash patterns.
81
+ * Should be called when session ends.
82
+ */
83
+ clearBashPatterns(): void;
84
+ /**
85
+ * Get the current set of approved bash patterns (for debugging/display).
86
+ */
87
+ getBashPatterns(): ReadonlySet<string>;
54
88
  /**
55
89
  * Request a generic approval
56
90
  */
@@ -135,6 +169,10 @@ export declare class ApprovalManager {
135
169
  * Get list of pending approval IDs
136
170
  */
137
171
  getPendingApprovals(): string[];
172
+ /**
173
+ * Get full pending approval requests
174
+ */
175
+ getPendingApprovalRequests(): ApprovalRequest[];
138
176
  /**
139
177
  * Get current configuration
140
178
  */
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EAEf,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE;QACd,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAC;QAC9C,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC;CACL;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY;IAS/D;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAcjF;;;OAGG;YACW,cAAc;IAqD5B;;;;;;OAMG;IACG,uBAAuB,CACzB,QAAQ,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,gBAAgB,CAAC;IAgB5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,0BAA0B,CAC5B,QAAQ,EAAE,2BAA2B,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACjF,OAAO,CAAC,gBAAgB,CAAC;IAgB5B;;;;;;OAMG;IACG,kBAAkB,CACpB,QAAQ,EAAE,mBAAmB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,gBAAgB,CAAC;IAgB5B;;;OAGG;IACG,qBAAqB,CACvB,QAAQ,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,OAAO,CAAC;IAqBnB;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,mBAAmB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAgCnC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,SAAS,IAAI,qBAAqB;IAIlC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IASjD;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACH,OAAO,CAAC,aAAa;CAgBxB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE;QACd,IAAI,EAAE,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAC;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,MAAM,CAAe;IAE7B;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAA0B;gBAElC,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY;IAW/D;;;;;;;;;OASG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKrC;;;;;;OAMG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAY/C;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAQzB;;OAEG;IACH,eAAe,IAAI,WAAW,CAAC,MAAM,CAAC;IAItC;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAcjF;;;OAGG;YACW,cAAc;IAqD5B;;;;;;OAMG;IACG,uBAAuB,CACzB,QAAQ,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,0BAA0B,CAC5B,QAAQ,EAAE,2BAA2B,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACjF,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;;;;OAMG;IACG,kBAAkB,CACpB,QAAQ,EAAE,mBAAmB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;OAGG;IACG,qBAAqB,CACvB,QAAQ,EAAE,wBAAwB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9E,OAAO,CAAC,OAAO,CAAC;IAqBnB;;;OAGG;IACG,kBAAkB,CACpB,QAAQ,EAAE,mBAAmB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAgCnC;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,0BAA0B,IAAI,eAAe,EAAE;IAI/C;;OAEG;IACH,SAAS,IAAI,qBAAqB;IAIlC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IASjD;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;;OAGG;IACH,OAAO,CAAC,aAAa;CAgBxB"}
@@ -1,12 +1,19 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
3
3
  import { createApprovalRequest } from "./factory.js";
4
4
  import { DextoLogComponent } from "../logger/v2/types.js";
5
5
  import { ApprovalError } from "./errors.js";
6
+ import { patternCovers } from "../tools/bash-pattern-utils.js";
6
7
  class ApprovalManager {
7
8
  handler;
8
9
  config;
9
10
  logger;
11
+ /**
12
+ * Bash command patterns approved for the current session.
13
+ * Patterns use simple glob syntax (e.g., "git *", "npm install *").
14
+ * Cleared when session ends.
15
+ */
16
+ bashPatterns = /* @__PURE__ */ new Set();
10
17
  constructor(config, logger) {
11
18
  this.config = config;
12
19
  this.logger = logger.createChild(DextoLogComponent.APPROVAL);
@@ -14,6 +21,56 @@ class ApprovalManager {
14
21
  `ApprovalManager initialized with toolConfirmation.mode: ${config.toolConfirmation.mode}, elicitation.enabled: ${config.elicitation.enabled}`
15
22
  );
16
23
  }
24
+ // ==================== Bash Pattern Methods ====================
25
+ /**
26
+ * Add a bash command pattern to the approved list for this session.
27
+ * Patterns use simple glob syntax with * as wildcard.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * manager.addBashPattern("git *"); // Approves all git commands
32
+ * manager.addBashPattern("npm install *"); // Approves npm install with any package
33
+ * ```
34
+ */
35
+ addBashPattern(pattern) {
36
+ this.bashPatterns.add(pattern);
37
+ this.logger.debug(`Added bash pattern: "${pattern}"`);
38
+ }
39
+ /**
40
+ * Check if a bash pattern key is covered by any approved pattern.
41
+ * Uses pattern-to-pattern covering for broader pattern support.
42
+ *
43
+ * @param patternKey The pattern key generated from the command (e.g., "git push *")
44
+ * @returns true if the pattern key is covered by an approved pattern
45
+ */
46
+ matchesBashPattern(patternKey) {
47
+ for (const storedPattern of this.bashPatterns) {
48
+ if (patternCovers(storedPattern, patternKey)) {
49
+ this.logger.debug(
50
+ `Pattern key "${patternKey}" is covered by approved pattern "${storedPattern}"`
51
+ );
52
+ return true;
53
+ }
54
+ }
55
+ return false;
56
+ }
57
+ /**
58
+ * Clear all approved bash patterns.
59
+ * Should be called when session ends.
60
+ */
61
+ clearBashPatterns() {
62
+ const count = this.bashPatterns.size;
63
+ this.bashPatterns.clear();
64
+ if (count > 0) {
65
+ this.logger.debug(`Cleared ${count} bash patterns`);
66
+ }
67
+ }
68
+ /**
69
+ * Get the current set of approved bash patterns (for debugging/display).
70
+ */
71
+ getBashPatterns() {
72
+ return this.bashPatterns;
73
+ }
17
74
  /**
18
75
  * Request a generic approval
19
76
  */
@@ -84,7 +141,8 @@ class ApprovalManager {
84
141
  const { sessionId, timeout, ...toolMetadata } = metadata;
85
142
  const details = {
86
143
  type: ApprovalType.TOOL_CONFIRMATION,
87
- timeout: timeout ?? this.config.toolConfirmation.timeout,
144
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
145
+ timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
88
146
  metadata: toolMetadata
89
147
  };
90
148
  if (sessionId !== void 0) {
@@ -117,7 +175,8 @@ class ApprovalManager {
117
175
  const { sessionId, timeout, ...commandMetadata } = metadata;
118
176
  const details = {
119
177
  type: ApprovalType.COMMAND_CONFIRMATION,
120
- timeout: timeout ?? this.config.toolConfirmation.timeout,
178
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
179
+ timeout: timeout !== void 0 ? timeout : this.config.toolConfirmation.timeout,
121
180
  metadata: commandMetadata
122
181
  };
123
182
  if (sessionId !== void 0) {
@@ -136,7 +195,8 @@ class ApprovalManager {
136
195
  const { sessionId, timeout, ...elicitationMetadata } = metadata;
137
196
  const details = {
138
197
  type: ApprovalType.ELICITATION,
139
- timeout: timeout ?? this.config.elicitation.timeout,
198
+ // Use provided timeout, fallback to config timeout, or undefined (no timeout)
199
+ timeout: timeout !== void 0 ? timeout : this.config.elicitation.timeout,
140
200
  metadata: elicitationMetadata
141
201
  };
142
202
  if (sessionId !== void 0) {
@@ -211,6 +271,12 @@ class ApprovalManager {
211
271
  getPendingApprovals() {
212
272
  return this.handler?.getPending?.() ?? [];
213
273
  }
274
+ /**
275
+ * Get full pending approval requests
276
+ */
277
+ getPendingApprovalRequests() {
278
+ return this.handler?.getPendingRequests?.() ?? [];
279
+ }
214
280
  /**
215
281
  * Get current configuration
216
282
  */
@@ -46,13 +46,25 @@ __export(schemas_exports, {
46
46
  module.exports = __toCommonJS(schemas_exports);
47
47
  var import_zod = require("zod");
48
48
  var import_types = require("./types.js");
49
+ var import_display_types = require("../tools/display-types.js");
50
+ const JsonSchema7Schema = import_zod.z.record(import_zod.z.unknown());
49
51
  const ApprovalTypeSchema = import_zod.z.nativeEnum(import_types.ApprovalType);
50
52
  const ApprovalStatusSchema = import_zod.z.nativeEnum(import_types.ApprovalStatus);
51
53
  const DenialReasonSchema = import_zod.z.nativeEnum(import_types.DenialReason);
54
+ const ToolDisplayDataSchema = import_zod.z.custom((val) => (0, import_display_types.isValidDisplayData)(val), {
55
+ message: "Invalid ToolDisplayData"
56
+ });
52
57
  const ToolConfirmationMetadataSchema = import_zod.z.object({
53
58
  toolName: import_zod.z.string().describe("Name of the tool to confirm"),
59
+ toolCallId: import_zod.z.string().describe("Unique tool call ID for tracking parallel tool calls"),
54
60
  args: import_zod.z.record(import_zod.z.unknown()).describe("Arguments for the tool"),
55
- description: import_zod.z.string().optional().describe("Description of the tool")
61
+ description: import_zod.z.string().optional().describe("Description of the tool"),
62
+ displayPreview: ToolDisplayDataSchema.optional().describe(
63
+ "Preview display data for approval UI (e.g., diff preview)"
64
+ ),
65
+ suggestedPatterns: import_zod.z.array(import_zod.z.string()).optional().describe(
66
+ 'Suggested patterns for session approval (for bash commands). E.g., ["git push *", "git *"] for command "git push origin main"'
67
+ )
56
68
  }).strict().describe("Tool confirmation metadata");
57
69
  const CommandConfirmationMetadataSchema = import_zod.z.object({
58
70
  toolName: import_zod.z.string().describe("Name of the tool executing the command"),
@@ -60,7 +72,7 @@ const CommandConfirmationMetadataSchema = import_zod.z.object({
60
72
  originalCommand: import_zod.z.string().optional().describe("The original command before normalization")
61
73
  }).strict().describe("Command confirmation metadata");
62
74
  const ElicitationMetadataSchema = import_zod.z.object({
63
- schema: import_zod.z.record(import_zod.z.unknown()).describe("JSON Schema for the form"),
75
+ schema: JsonSchema7Schema.describe("JSON Schema for the form"),
64
76
  prompt: import_zod.z.string().describe("Prompt to show the user"),
65
77
  serverName: import_zod.z.string().describe("MCP server requesting input"),
66
78
  context: import_zod.z.record(import_zod.z.unknown()).optional().describe("Additional context")
@@ -70,7 +82,7 @@ const BaseApprovalRequestSchema = import_zod.z.object({
70
82
  approvalId: import_zod.z.string().uuid().describe("Unique approval identifier"),
71
83
  type: ApprovalTypeSchema.describe("Type of approval"),
72
84
  sessionId: import_zod.z.string().optional().describe("Session identifier"),
73
- timeout: import_zod.z.number().int().positive().describe("Timeout in milliseconds"),
85
+ timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
74
86
  timestamp: import_zod.z.date().describe("When the request was created")
75
87
  }).describe("Base approval request");
76
88
  const ToolConfirmationRequestSchema = BaseApprovalRequestSchema.extend({
@@ -96,7 +108,10 @@ const ApprovalRequestSchema = import_zod.z.discriminatedUnion("type", [
96
108
  CustomApprovalRequestSchema
97
109
  ]);
98
110
  const ToolConfirmationResponseDataSchema = import_zod.z.object({
99
- rememberChoice: import_zod.z.boolean().optional().describe("Remember this choice")
111
+ rememberChoice: import_zod.z.boolean().optional().describe("Remember this tool for the session (approves ALL uses of this tool)"),
112
+ rememberPattern: import_zod.z.string().optional().describe(
113
+ 'Remember a command pattern for bash commands (e.g., "git *"). Only applicable for bash_exec tool approvals.'
114
+ )
100
115
  }).strict().describe("Tool confirmation response data");
101
116
  const CommandConfirmationResponseDataSchema = import_zod.z.object({
102
117
  // Command confirmations don't have remember choice - they're per-command
@@ -137,7 +152,7 @@ const ApprovalResponseSchema = import_zod.z.union([
137
152
  const ApprovalRequestDetailsSchema = import_zod.z.object({
138
153
  type: ApprovalTypeSchema,
139
154
  sessionId: import_zod.z.string().optional(),
140
- timeout: import_zod.z.number().int().positive(),
155
+ timeout: import_zod.z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
141
156
  metadata: import_zod.z.union([
142
157
  ToolConfirmationMetadataSchema,
143
158
  CommandConfirmationMetadataSchema,