@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
@@ -1,14 +1,8 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { context as otlpContext, trace, propagation } from "@opentelemetry/api";
3
- import { NodeSDK } from "@opentelemetry/sdk-node";
4
- import { ConsoleSpanExporter } from "@opentelemetry/sdk-trace-base";
5
- import { OTLPTraceExporter as OTLPHttpExporter } from "@opentelemetry/exporter-trace-otlp-http";
6
- import { OTLPTraceExporter as OTLPGrpcExporter } from "@opentelemetry/exporter-trace-otlp-grpc";
7
- import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
8
- import { Resource } from "@opentelemetry/resources";
9
- import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
10
- import { CompositeExporter } from "./exporters.js";
11
3
  import { logger } from "../logger/logger.js";
4
+ import { TelemetryError } from "./errors.js";
5
+ import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
12
6
  class Telemetry {
13
7
  tracer = trace.getTracer("dexto");
14
8
  name = "dexto-service";
@@ -26,19 +20,48 @@ class Telemetry {
26
20
  }
27
21
  this._isInitialized = enabled && !!sdk;
28
22
  }
29
- static buildTraceExporter(config) {
23
+ static async buildTraceExporter(config) {
30
24
  const e = config?.export;
31
25
  if (!e || e.type === "console") {
32
- return new ConsoleSpanExporter();
26
+ const { ConsoleSpanExporter: ConsoleSpanExporter2 } = await import("@opentelemetry/sdk-trace-base");
27
+ return new ConsoleSpanExporter2();
33
28
  }
34
29
  if (e.type === "otlp") {
35
30
  if (e.protocol === "grpc") {
31
+ let OTLPGrpcExporter;
32
+ try {
33
+ const mod = await import("@opentelemetry/exporter-trace-otlp-grpc");
34
+ OTLPGrpcExporter = mod.OTLPTraceExporter;
35
+ } catch (err) {
36
+ const error = err;
37
+ if (error.code === "ERR_MODULE_NOT_FOUND") {
38
+ throw TelemetryError.exporterDependencyNotInstalled(
39
+ "grpc",
40
+ "@opentelemetry/exporter-trace-otlp-grpc"
41
+ );
42
+ }
43
+ throw err;
44
+ }
36
45
  const options2 = {};
37
46
  if (e.endpoint) {
38
47
  options2.url = e.endpoint;
39
48
  }
40
49
  return new OTLPGrpcExporter(options2);
41
50
  }
51
+ let OTLPHttpExporter;
52
+ try {
53
+ const mod = await import("@opentelemetry/exporter-trace-otlp-http");
54
+ OTLPHttpExporter = mod.OTLPTraceExporter;
55
+ } catch (err) {
56
+ const error = err;
57
+ if (error.code === "ERR_MODULE_NOT_FOUND") {
58
+ throw TelemetryError.exporterDependencyNotInstalled(
59
+ "http",
60
+ "@opentelemetry/exporter-trace-otlp-http"
61
+ );
62
+ }
63
+ throw err;
64
+ }
42
65
  const options = {};
43
66
  if (e.endpoint) {
44
67
  options.url = e.endpoint;
@@ -48,6 +71,7 @@ class Telemetry {
48
71
  }
49
72
  return new OTLPHttpExporter(options);
50
73
  }
74
+ const { ConsoleSpanExporter } = await import("@opentelemetry/sdk-trace-base");
51
75
  return new ConsoleSpanExporter();
52
76
  }
53
77
  /**
@@ -65,10 +89,39 @@ class Telemetry {
65
89
  const enabled = config.enabled !== false;
66
90
  let sdk;
67
91
  if (enabled) {
92
+ let NodeSDK;
93
+ let Resource;
94
+ let getNodeAutoInstrumentations;
95
+ let ATTR_SERVICE_NAME;
96
+ try {
97
+ const sdkModule = await import("@opentelemetry/sdk-node");
98
+ NodeSDK = sdkModule.NodeSDK;
99
+ const resourcesModule = await import("@opentelemetry/resources");
100
+ Resource = resourcesModule.Resource;
101
+ const autoInstModule = await import("@opentelemetry/auto-instrumentations-node");
102
+ getNodeAutoInstrumentations = autoInstModule.getNodeAutoInstrumentations;
103
+ const semanticModule = await import("@opentelemetry/semantic-conventions");
104
+ ATTR_SERVICE_NAME = semanticModule.ATTR_SERVICE_NAME;
105
+ } catch (importError) {
106
+ const err = importError;
107
+ if (err.code === "ERR_MODULE_NOT_FOUND") {
108
+ throw TelemetryError.dependencyNotInstalled([
109
+ "@opentelemetry/sdk-node",
110
+ "@opentelemetry/auto-instrumentations-node",
111
+ "@opentelemetry/resources",
112
+ "@opentelemetry/semantic-conventions",
113
+ "@opentelemetry/sdk-trace-base",
114
+ "@opentelemetry/exporter-trace-otlp-http",
115
+ "@opentelemetry/exporter-trace-otlp-grpc"
116
+ ]);
117
+ }
118
+ throw importError;
119
+ }
68
120
  const resource = new Resource({
69
121
  [ATTR_SERVICE_NAME]: config.serviceName ?? "dexto-service"
70
122
  });
71
- const spanExporter = exporter || Telemetry.buildTraceExporter(config);
123
+ const spanExporter = exporter || await Telemetry.buildTraceExporter(config);
124
+ const { CompositeExporter } = await import("./exporters.js");
72
125
  const traceExporter = spanExporter instanceof CompositeExporter ? spanExporter : new CompositeExporter([spanExporter]);
73
126
  sdk = new NodeSDK({
74
127
  resource,
@@ -90,13 +143,16 @@ class Telemetry {
90
143
  }
91
144
  return globalThis.__TELEMETRY__;
92
145
  })();
93
- return Telemetry._initPromise;
146
+ return await Telemetry._initPromise;
94
147
  } catch (error) {
95
- const wrappedError = new Error(
96
- `Failed to initialize telemetry: ${error instanceof Error ? error.message : String(error)}`
97
- );
98
148
  Telemetry._initPromise = void 0;
99
- throw wrappedError;
149
+ if (error instanceof DextoRuntimeError) {
150
+ throw error;
151
+ }
152
+ throw TelemetryError.initializationFailed(
153
+ error instanceof Error ? error.message : String(error),
154
+ error
155
+ );
100
156
  }
101
157
  }
102
158
  static getActiveSpan() {
@@ -105,12 +161,12 @@ class Telemetry {
105
161
  }
106
162
  /**
107
163
  * Get the global telemetry instance
108
- * @throws {Error} If telemetry has not been initialized
164
+ * @throws {DextoRuntimeError} If telemetry has not been initialized
109
165
  * @returns {Telemetry} The global telemetry instance
110
166
  */
111
167
  static get() {
112
168
  if (!globalThis.__TELEMETRY__) {
113
- throw new Error("Telemetry not initialized");
169
+ throw TelemetryError.notInitialized();
114
170
  }
115
171
  return globalThis.__TELEMETRY__;
116
172
  }
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { propagation } from "@opentelemetry/api";
3
3
  import { Telemetry } from "./telemetry.js";
4
4
  function hasActiveTelemetry(logger) {
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var bash_pattern_utils_exports = {};
20
+ __export(bash_pattern_utils_exports, {
21
+ DANGEROUS_COMMAND_PREFIXES: () => DANGEROUS_COMMAND_PREFIXES,
22
+ generateBashPatternKey: () => generateBashPatternKey,
23
+ generateBashPatternSuggestions: () => generateBashPatternSuggestions,
24
+ isDangerousCommand: () => isDangerousCommand,
25
+ patternCovers: () => patternCovers
26
+ });
27
+ module.exports = __toCommonJS(bash_pattern_utils_exports);
28
+ function patternCovers(storedPattern, targetPatternKey) {
29
+ if (storedPattern === targetPatternKey) return true;
30
+ const storedBase = storedPattern.endsWith(" *") ? storedPattern.slice(0, -2) : storedPattern;
31
+ const targetBase = targetPatternKey.endsWith(" *") ? targetPatternKey.slice(0, -2) : targetPatternKey;
32
+ return targetBase.startsWith(storedBase + " ");
33
+ }
34
+ const DANGEROUS_COMMAND_PREFIXES = [
35
+ "rm",
36
+ "chmod",
37
+ "chown",
38
+ "chgrp",
39
+ "sudo",
40
+ "su",
41
+ "dd",
42
+ "mkfs",
43
+ "fdisk",
44
+ "parted",
45
+ "kill",
46
+ "killall",
47
+ "pkill",
48
+ "shutdown",
49
+ "reboot",
50
+ "halt",
51
+ "poweroff"
52
+ ];
53
+ function isDangerousCommand(command) {
54
+ const tokens = command.trim().split(/\s+/);
55
+ if (tokens.length === 0 || !tokens[0]) return false;
56
+ const head = tokens[0].toLowerCase();
57
+ return DANGEROUS_COMMAND_PREFIXES.includes(head);
58
+ }
59
+ function generateBashPatternKey(command) {
60
+ const tokens = command.trim().split(/\s+/);
61
+ if (tokens.length === 0 || !tokens[0]) return null;
62
+ const head = tokens[0];
63
+ if (isDangerousCommand(command)) {
64
+ return null;
65
+ }
66
+ const subcommand = tokens.slice(1).find((arg) => !arg.startsWith("-"));
67
+ return subcommand ? `${head} ${subcommand} *` : `${head} *`;
68
+ }
69
+ function generateBashPatternSuggestions(command) {
70
+ const tokens = command.trim().split(/\s+/);
71
+ if (tokens.length === 0 || !tokens[0]) return [];
72
+ const head = tokens[0];
73
+ if (isDangerousCommand(command)) {
74
+ return [];
75
+ }
76
+ const patterns = [];
77
+ const nonFlagArgs = tokens.slice(1).filter((arg) => !arg.startsWith("-"));
78
+ if (nonFlagArgs.length > 0) {
79
+ patterns.push(`${head} ${nonFlagArgs[0]} *`);
80
+ }
81
+ patterns.push(`${head} *`);
82
+ return patterns;
83
+ }
84
+ // Annotate the CommonJS export names for ESM import in node:
85
+ 0 && (module.exports = {
86
+ DANGEROUS_COMMAND_PREFIXES,
87
+ generateBashPatternKey,
88
+ generateBashPatternSuggestions,
89
+ isDangerousCommand,
90
+ patternCovers
91
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Utility functions for bash command pattern generation and matching.
3
+ *
4
+ * Pattern-based approval allows users to approve command patterns like "git *"
5
+ * that automatically cover future matching commands (e.g., "git status", "git push").
6
+ */
7
+ /**
8
+ * Check if a stored pattern covers a target pattern key.
9
+ * Pattern A covers pattern B if:
10
+ * 1. A == B (exact match), OR
11
+ * 2. B's base starts with A's base + " " (broader pattern covers narrower)
12
+ *
13
+ * Examples:
14
+ * - `git *` covers `git push *`: base `git` is prefix of base `git push`
15
+ * - `ls *` covers `ls *`: exact match
16
+ * - `npm *` does NOT cover `npx *`: `npx` doesn't start with `npm `
17
+ *
18
+ * @param storedPattern The approved pattern (e.g., "git *")
19
+ * @param targetPatternKey The pattern key to check (e.g., "git push *")
20
+ * @returns true if storedPattern covers targetPatternKey
21
+ */
22
+ export declare function patternCovers(storedPattern: string, targetPatternKey: string): boolean;
23
+ /**
24
+ * Commands that should never get auto-approve pattern suggestions.
25
+ * These require explicit approval each time for safety.
26
+ */
27
+ export declare const DANGEROUS_COMMAND_PREFIXES: readonly ["rm", "chmod", "chown", "chgrp", "sudo", "su", "dd", "mkfs", "fdisk", "parted", "kill", "killall", "pkill", "shutdown", "reboot", "halt", "poweroff"];
28
+ /**
29
+ * Check if a command prefix is dangerous (should not get pattern suggestions).
30
+ */
31
+ export declare function isDangerousCommand(command: string): boolean;
32
+ /**
33
+ * Generate the pattern key for a bash command.
34
+ * This is what gets stored when user approves, and what gets checked against approved patterns.
35
+ *
36
+ * Examples:
37
+ * - "ls -la" → "ls *" (flags don't count as subcommand)
38
+ * - "git push origin" → "git push *" (first non-flag arg is subcommand)
39
+ * - "git status" → "git status *"
40
+ * - "rm -rf /" → null (dangerous command)
41
+ *
42
+ * @param command The bash command to generate a pattern key for
43
+ * @returns The pattern key, or null if the command is dangerous
44
+ */
45
+ export declare function generateBashPatternKey(command: string): string | null;
46
+ /**
47
+ * Generate suggested patterns for UI selection.
48
+ * Returns progressively broader patterns from specific to general.
49
+ *
50
+ * Example: "git push origin main" generates:
51
+ * - "git push *" (the pattern key)
52
+ * - "git *" (broader)
53
+ *
54
+ * @param command The bash command to generate suggestions for
55
+ * @returns Array of pattern suggestions (empty for dangerous commands)
56
+ */
57
+ export declare function generateBashPatternSuggestions(command: string): string[];
58
+ //# sourceMappingURL=bash-pattern-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-pattern-utils.d.ts","sourceRoot":"","sources":["../../src/tools/bash-pattern-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAatF;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,iKAkB7B,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxE"}
@@ -0,0 +1,64 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ function patternCovers(storedPattern, targetPatternKey) {
3
+ if (storedPattern === targetPatternKey) return true;
4
+ const storedBase = storedPattern.endsWith(" *") ? storedPattern.slice(0, -2) : storedPattern;
5
+ const targetBase = targetPatternKey.endsWith(" *") ? targetPatternKey.slice(0, -2) : targetPatternKey;
6
+ return targetBase.startsWith(storedBase + " ");
7
+ }
8
+ const DANGEROUS_COMMAND_PREFIXES = [
9
+ "rm",
10
+ "chmod",
11
+ "chown",
12
+ "chgrp",
13
+ "sudo",
14
+ "su",
15
+ "dd",
16
+ "mkfs",
17
+ "fdisk",
18
+ "parted",
19
+ "kill",
20
+ "killall",
21
+ "pkill",
22
+ "shutdown",
23
+ "reboot",
24
+ "halt",
25
+ "poweroff"
26
+ ];
27
+ function isDangerousCommand(command) {
28
+ const tokens = command.trim().split(/\s+/);
29
+ if (tokens.length === 0 || !tokens[0]) return false;
30
+ const head = tokens[0].toLowerCase();
31
+ return DANGEROUS_COMMAND_PREFIXES.includes(head);
32
+ }
33
+ function generateBashPatternKey(command) {
34
+ const tokens = command.trim().split(/\s+/);
35
+ if (tokens.length === 0 || !tokens[0]) return null;
36
+ const head = tokens[0];
37
+ if (isDangerousCommand(command)) {
38
+ return null;
39
+ }
40
+ const subcommand = tokens.slice(1).find((arg) => !arg.startsWith("-"));
41
+ return subcommand ? `${head} ${subcommand} *` : `${head} *`;
42
+ }
43
+ function generateBashPatternSuggestions(command) {
44
+ const tokens = command.trim().split(/\s+/);
45
+ if (tokens.length === 0 || !tokens[0]) return [];
46
+ const head = tokens[0];
47
+ if (isDangerousCommand(command)) {
48
+ return [];
49
+ }
50
+ const patterns = [];
51
+ const nonFlagArgs = tokens.slice(1).filter((arg) => !arg.startsWith("-"));
52
+ if (nonFlagArgs.length > 0) {
53
+ patterns.push(`${head} ${nonFlagArgs[0]} *`);
54
+ }
55
+ patterns.push(`${head} *`);
56
+ return patterns;
57
+ }
58
+ export {
59
+ DANGEROUS_COMMAND_PREFIXES,
60
+ generateBashPatternKey,
61
+ generateBashPatternSuggestions,
62
+ isDangerousCommand,
63
+ patternCovers
64
+ };
@@ -1,4 +1,4 @@
1
- import "../../../chunk-C6A6W6XS.js";
1
+ import "../../../chunk-PTJYTZNU.js";
2
2
  import { InMemoryAllowedToolsProvider } from "./in-memory.js";
3
3
  import { StorageAllowedToolsProvider } from "./storage.js";
4
4
  import { ToolError } from "../../errors.js";
@@ -1,4 +1,4 @@
1
- import "../../../chunk-C6A6W6XS.js";
1
+ import "../../../chunk-PTJYTZNU.js";
2
2
  class InMemoryAllowedToolsProvider {
3
3
  /**
4
4
  * Map key is sessionId (undefined => global approvals). Value is a set of
@@ -1,4 +1,4 @@
1
- import "../../../chunk-C6A6W6XS.js";
1
+ import "../../../chunk-PTJYTZNU.js";
2
2
  class StorageAllowedToolsProvider {
3
3
  constructor(storageManager, logger) {
4
4
  this.storageManager = storageManager;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var display_types_exports = {};
20
+ __export(display_types_exports, {
21
+ isDiffDisplay: () => isDiffDisplay,
22
+ isFileDisplay: () => isFileDisplay,
23
+ isGenericDisplay: () => isGenericDisplay,
24
+ isSearchDisplay: () => isSearchDisplay,
25
+ isShellDisplay: () => isShellDisplay,
26
+ isValidDisplayData: () => isValidDisplayData
27
+ });
28
+ module.exports = __toCommonJS(display_types_exports);
29
+ function isDiffDisplay(d) {
30
+ return d.type === "diff";
31
+ }
32
+ function isShellDisplay(d) {
33
+ return d.type === "shell";
34
+ }
35
+ function isSearchDisplay(d) {
36
+ return d.type === "search";
37
+ }
38
+ function isFileDisplay(d) {
39
+ return d.type === "file";
40
+ }
41
+ function isGenericDisplay(d) {
42
+ return d.type === "generic";
43
+ }
44
+ const VALID_DISPLAY_TYPES = ["diff", "shell", "search", "file", "generic"];
45
+ function isValidDisplayData(d) {
46
+ if (d === null || typeof d !== "object") {
47
+ return false;
48
+ }
49
+ const obj = d;
50
+ return typeof obj.type === "string" && VALID_DISPLAY_TYPES.includes(obj.type);
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ isDiffDisplay,
55
+ isFileDisplay,
56
+ isGenericDisplay,
57
+ isSearchDisplay,
58
+ isShellDisplay,
59
+ isValidDisplayData
60
+ });
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Tool Display Types
3
+ *
4
+ * Discriminated union types for structured tool result rendering.
5
+ * These types enable both CLI and WebUI to render tool results with
6
+ * appropriate formatting (diffs, shell output, search results, etc.)
7
+ *
8
+ * Tools return `_display` field in their result, which is preserved
9
+ * by the sanitizer in `SanitizedToolResult.meta.display`.
10
+ */
11
+ /**
12
+ * Discriminated union of all tool display data types.
13
+ * Switch on `type` field for exhaustive handling.
14
+ */
15
+ export type ToolDisplayData = DiffDisplayData | ShellDisplayData | SearchDisplayData | FileDisplayData | GenericDisplayData;
16
+ /**
17
+ * Display data for file edit operations (edit_file, write_file overwrites).
18
+ * Contains unified diff format for rendering changes.
19
+ */
20
+ export interface DiffDisplayData {
21
+ type: 'diff';
22
+ /** Unified diff string (output of `diff` package's createPatch) */
23
+ unified: string;
24
+ /** Path to the file that was modified */
25
+ filename: string;
26
+ /** Number of lines added */
27
+ additions: number;
28
+ /** Number of lines removed */
29
+ deletions: number;
30
+ /** Original file content (optional, for approval preview) */
31
+ beforeContent?: string;
32
+ /** New file content (optional, for approval preview) */
33
+ afterContent?: string;
34
+ }
35
+ /**
36
+ * Display data for shell command execution (bash_exec).
37
+ * Contains command metadata and output for structured rendering.
38
+ */
39
+ export interface ShellDisplayData {
40
+ type: 'shell';
41
+ /** The command that was executed */
42
+ command: string;
43
+ /** Exit code from the command (0 = success) */
44
+ exitCode: number;
45
+ /** Execution duration in milliseconds */
46
+ duration: number;
47
+ /** Whether command is running in background */
48
+ isBackground?: boolean;
49
+ /** Standard output from the command */
50
+ stdout?: string;
51
+ /** Standard error from the command */
52
+ stderr?: string;
53
+ }
54
+ /**
55
+ * Display data for search operations (grep_content, glob_files).
56
+ * Contains structured match results for formatted rendering.
57
+ */
58
+ export interface SearchDisplayData {
59
+ type: 'search';
60
+ /** The search pattern used */
61
+ pattern: string;
62
+ /** Array of match results */
63
+ matches: SearchMatch[];
64
+ /** Total number of matches found (may exceed displayed matches) */
65
+ totalMatches: number;
66
+ /** Whether results were truncated due to limits */
67
+ truncated: boolean;
68
+ }
69
+ /**
70
+ * Individual search match result.
71
+ */
72
+ export interface SearchMatch {
73
+ /** File path where match was found */
74
+ file: string;
75
+ /** Line number of the match (0 for glob results) */
76
+ line: number;
77
+ /** Content of the matching line or filename */
78
+ content: string;
79
+ /** Optional surrounding context lines */
80
+ context?: string[];
81
+ }
82
+ /**
83
+ * Display data for file operations (read_file, write_file create).
84
+ * Contains file metadata for simple status rendering.
85
+ */
86
+ export interface FileDisplayData {
87
+ type: 'file';
88
+ /** Path to the file */
89
+ path: string;
90
+ /** Type of operation performed */
91
+ operation: 'read' | 'write' | 'create' | 'delete';
92
+ /** File size in bytes (optional) */
93
+ size?: number;
94
+ /** Number of lines read/written (optional) */
95
+ lineCount?: number;
96
+ /** Path to backup file if created (optional) */
97
+ backupPath?: string;
98
+ /** File content for create operations (used in approval preview) */
99
+ content?: string;
100
+ }
101
+ /**
102
+ * Fallback display data for unknown tools or MCP tools.
103
+ * Renderers should fall back to rendering content[] directly.
104
+ */
105
+ export interface GenericDisplayData {
106
+ type: 'generic';
107
+ }
108
+ /**
109
+ * Type guard for DiffDisplayData.
110
+ */
111
+ export declare function isDiffDisplay(d: ToolDisplayData): d is DiffDisplayData;
112
+ /**
113
+ * Type guard for ShellDisplayData.
114
+ */
115
+ export declare function isShellDisplay(d: ToolDisplayData): d is ShellDisplayData;
116
+ /**
117
+ * Type guard for SearchDisplayData.
118
+ */
119
+ export declare function isSearchDisplay(d: ToolDisplayData): d is SearchDisplayData;
120
+ /**
121
+ * Type guard for FileDisplayData.
122
+ */
123
+ export declare function isFileDisplay(d: ToolDisplayData): d is FileDisplayData;
124
+ /**
125
+ * Type guard for GenericDisplayData.
126
+ */
127
+ export declare function isGenericDisplay(d: ToolDisplayData): d is GenericDisplayData;
128
+ /**
129
+ * Validates that an unknown value is a valid ToolDisplayData.
130
+ * Used by sanitizer to safely extract _display from tool results.
131
+ */
132
+ export declare function isValidDisplayData(d: unknown): d is ToolDisplayData;
133
+ //# sourceMappingURL=display-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-types.d.ts","sourceRoot":"","sources":["../../src/tools/display-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,MAAM,MAAM,eAAe,GACrB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,CAAC;AAEzB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClD,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,SAAS,CAAC;CACnB;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,eAAe,CAEtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,gBAAgB,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,iBAAiB,CAE1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,eAAe,CAEtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,kBAAkB,CAE5E;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CASnE"}
@@ -0,0 +1,32 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ function isDiffDisplay(d) {
3
+ return d.type === "diff";
4
+ }
5
+ function isShellDisplay(d) {
6
+ return d.type === "shell";
7
+ }
8
+ function isSearchDisplay(d) {
9
+ return d.type === "search";
10
+ }
11
+ function isFileDisplay(d) {
12
+ return d.type === "file";
13
+ }
14
+ function isGenericDisplay(d) {
15
+ return d.type === "generic";
16
+ }
17
+ const VALID_DISPLAY_TYPES = ["diff", "shell", "search", "file", "generic"];
18
+ function isValidDisplayData(d) {
19
+ if (d === null || typeof d !== "object") {
20
+ return false;
21
+ }
22
+ const obj = d;
23
+ return typeof obj.type === "string" && VALID_DISPLAY_TYPES.includes(obj.type);
24
+ }
25
+ export {
26
+ isDiffDisplay,
27
+ isFileDisplay,
28
+ isGenericDisplay,
29
+ isSearchDisplay,
30
+ isShellDisplay,
31
+ isValidDisplayData
32
+ };
@@ -25,6 +25,7 @@ var ToolErrorCode = /* @__PURE__ */ ((ToolErrorCode2) => {
25
25
  ToolErrorCode2["EXECUTION_DENIED"] = "tools_execution_denied";
26
26
  ToolErrorCode2["EXECUTION_TIMEOUT"] = "tools_execution_timeout";
27
27
  ToolErrorCode2["EXECUTION_FAILED"] = "tools_execution_failed";
28
+ ToolErrorCode2["VALIDATION_FAILED"] = "tools_validation_failed";
28
29
  ToolErrorCode2["CONFIRMATION_HANDLER_MISSING"] = "tools_confirmation_handler_missing";
29
30
  ToolErrorCode2["CONFIRMATION_TIMEOUT"] = "tools_confirmation_timeout";
30
31
  ToolErrorCode2["CONFIRMATION_CANCELLED"] = "tools_confirmation_cancelled";
@@ -32,6 +33,7 @@ var ToolErrorCode = /* @__PURE__ */ ((ToolErrorCode2) => {
32
33
  ToolErrorCode2["TOOL_INVALID_ARGS"] = "tools_invalid_args";
33
34
  ToolErrorCode2["TOOL_UNAUTHORIZED"] = "tools_unauthorized";
34
35
  ToolErrorCode2["CONFIG_INVALID"] = "tools_config_invalid";
36
+ ToolErrorCode2["FEATURE_DISABLED"] = "tools_feature_disabled";
35
37
  return ToolErrorCode2;
36
38
  })(ToolErrorCode || {});
37
39
  // Annotate the CommonJS export names for ESM import in node:
@@ -6,12 +6,14 @@ export declare enum ToolErrorCode {
6
6
  EXECUTION_DENIED = "tools_execution_denied",
7
7
  EXECUTION_TIMEOUT = "tools_execution_timeout",
8
8
  EXECUTION_FAILED = "tools_execution_failed",
9
+ VALIDATION_FAILED = "tools_validation_failed",
9
10
  CONFIRMATION_HANDLER_MISSING = "tools_confirmation_handler_missing",
10
11
  CONFIRMATION_TIMEOUT = "tools_confirmation_timeout",
11
12
  CONFIRMATION_CANCELLED = "tools_confirmation_cancelled",
12
13
  TOOL_NOT_FOUND = "tools_tool_not_found",
13
14
  TOOL_INVALID_ARGS = "tools_invalid_args",
14
15
  TOOL_UNAUTHORIZED = "tools_unauthorized",
15
- CONFIG_INVALID = "tools_config_invalid"
16
+ CONFIG_INVALID = "tools_config_invalid",
17
+ FEATURE_DISABLED = "tools_feature_disabled"
16
18
  }
17
19
  //# sourceMappingURL=error-codes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/tools/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,aAAa;IAErB,gBAAgB,2BAA2B;IAC3C,iBAAiB,4BAA4B;IAC7C,gBAAgB,2BAA2B;IAG3C,4BAA4B,uCAAuC;IACnE,oBAAoB,+BAA+B;IACnD,sBAAsB,iCAAiC;IAGvD,cAAc,yBAAyB;IACvC,iBAAiB,uBAAuB;IACxC,iBAAiB,uBAAuB;IAGxC,cAAc,yBAAyB;CAC1C"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/tools/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,aAAa;IAErB,gBAAgB,2BAA2B;IAC3C,iBAAiB,4BAA4B;IAC7C,gBAAgB,2BAA2B;IAG3C,iBAAiB,4BAA4B;IAG7C,4BAA4B,uCAAuC;IACnE,oBAAoB,+BAA+B;IACnD,sBAAsB,iCAAiC;IAGvD,cAAc,yBAAyB;IACvC,iBAAiB,uBAAuB;IACxC,iBAAiB,uBAAuB;IAGxC,cAAc,yBAAyB;IACvC,gBAAgB,2BAA2B;CAC9C"}