@dexto/core 1.1.11 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/README.md +24 -4
  2. package/dist/Dexto.cjs +4 -14
  3. package/dist/Dexto.d.ts +8 -29
  4. package/dist/Dexto.d.ts.map +1 -1
  5. package/dist/Dexto.js +4 -12
  6. package/dist/agent/DextoAgent.cjs +92 -3
  7. package/dist/agent/DextoAgent.d.ts +12 -4
  8. package/dist/agent/DextoAgent.d.ts.map +1 -1
  9. package/dist/agent/DextoAgent.js +52 -3
  10. package/dist/agent/agentCard.js +1 -0
  11. package/dist/agent/error-codes.cjs +1 -0
  12. package/dist/agent/error-codes.d.ts +1 -0
  13. package/dist/agent/error-codes.d.ts.map +1 -1
  14. package/dist/agent/error-codes.js +2 -0
  15. package/dist/agent/errors.cjs +13 -0
  16. package/dist/agent/errors.d.ts +4 -0
  17. package/dist/agent/errors.d.ts.map +1 -1
  18. package/dist/agent/errors.js +14 -0
  19. package/dist/agent/index.js +1 -0
  20. package/dist/agent/registry/error-codes.js +1 -0
  21. package/dist/agent/registry/errors.js +1 -0
  22. package/dist/agent/registry/registry.js +1 -0
  23. package/dist/agent/registry/types.js +1 -0
  24. package/dist/agent/registry/user-registry.js +1 -0
  25. package/dist/agent/schemas.cjs +6 -1
  26. package/dist/agent/schemas.d.ts +113 -3
  27. package/dist/agent/schemas.d.ts.map +1 -1
  28. package/dist/agent/schemas.js +7 -1
  29. package/dist/agent/state-manager.js +1 -0
  30. package/dist/approval/error-codes.js +1 -0
  31. package/dist/approval/errors.js +1 -0
  32. package/dist/approval/index.js +1 -0
  33. package/dist/approval/manager.cjs +30 -0
  34. package/dist/approval/manager.d.ts +23 -1
  35. package/dist/approval/manager.d.ts.map +1 -1
  36. package/dist/approval/manager.js +31 -0
  37. package/dist/approval/providers/event-based-approval-provider.js +1 -0
  38. package/dist/approval/providers/factory.js +1 -0
  39. package/dist/approval/providers/noop-approval-provider.js +1 -0
  40. package/dist/approval/schemas.cjs +36 -0
  41. package/dist/approval/schemas.d.ts +173 -0
  42. package/dist/approval/schemas.d.ts.map +1 -1
  43. package/dist/approval/schemas.js +33 -0
  44. package/dist/approval/types.cjs +1 -0
  45. package/dist/approval/types.d.ts +27 -1
  46. package/dist/approval/types.d.ts.map +1 -1
  47. package/dist/approval/types.js +2 -0
  48. package/dist/chunk-C6A6W6XS.js +53 -0
  49. package/dist/config/agent-resolver.js +1 -0
  50. package/dist/config/error-codes.js +1 -0
  51. package/dist/config/errors.js +1 -0
  52. package/dist/config/loader.js +1 -0
  53. package/dist/config/writer.js +1 -0
  54. package/dist/context/compression/middle-removal.js +1 -0
  55. package/dist/context/compression/oldest-removal.js +1 -0
  56. package/dist/context/error-codes.js +1 -0
  57. package/dist/context/errors.js +1 -0
  58. package/dist/context/index.js +1 -0
  59. package/dist/context/manager.cjs +36 -1
  60. package/dist/context/manager.d.ts.map +1 -1
  61. package/dist/context/manager.js +27 -1
  62. package/dist/context/media-helpers.js +1 -0
  63. package/dist/context/utils.cjs +102 -6
  64. package/dist/context/utils.d.ts +35 -2
  65. package/dist/context/utils.d.ts.map +1 -1
  66. package/dist/context/utils.js +100 -6
  67. package/dist/errors/DextoBaseError.js +1 -0
  68. package/dist/errors/DextoRuntimeError.js +1 -0
  69. package/dist/errors/DextoValidationError.js +1 -0
  70. package/dist/errors/index.js +1 -0
  71. package/dist/errors/result-bridge.js +1 -0
  72. package/dist/errors/types.cjs +3 -0
  73. package/dist/errors/types.d.ts +7 -2
  74. package/dist/errors/types.d.ts.map +1 -1
  75. package/dist/errors/types.js +4 -0
  76. package/dist/events/index.cjs +1 -0
  77. package/dist/events/index.d.ts +6 -2
  78. package/dist/events/index.d.ts.map +1 -1
  79. package/dist/events/index.js +2 -0
  80. package/dist/filesystem/error-codes.cjs +53 -0
  81. package/dist/filesystem/error-codes.d.ts +31 -0
  82. package/dist/filesystem/error-codes.d.ts.map +1 -0
  83. package/dist/filesystem/error-codes.js +30 -0
  84. package/dist/filesystem/errors.cjs +303 -0
  85. package/dist/filesystem/errors.d.ts +109 -0
  86. package/dist/filesystem/errors.d.ts.map +1 -0
  87. package/dist/filesystem/errors.js +280 -0
  88. package/dist/filesystem/filesystem-service.cjs +482 -0
  89. package/dist/filesystem/filesystem-service.d.ts +57 -0
  90. package/dist/filesystem/filesystem-service.d.ts.map +1 -0
  91. package/dist/filesystem/filesystem-service.js +449 -0
  92. package/dist/filesystem/index.cjs +37 -0
  93. package/dist/filesystem/index.d.ts +11 -0
  94. package/dist/filesystem/index.d.ts.map +1 -0
  95. package/dist/filesystem/index.js +11 -0
  96. package/dist/filesystem/path-validator.cjs +172 -0
  97. package/dist/filesystem/path-validator.d.ts +53 -0
  98. package/dist/filesystem/path-validator.d.ts.map +1 -0
  99. package/dist/filesystem/path-validator.js +139 -0
  100. package/dist/filesystem/types.cjs +16 -0
  101. package/dist/filesystem/types.d.ts +171 -0
  102. package/dist/filesystem/types.d.ts.map +1 -0
  103. package/dist/filesystem/types.js +0 -0
  104. package/dist/index.browser.js +1 -0
  105. package/dist/index.cjs +3 -3
  106. package/dist/index.d.ts +2 -1
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +3 -2
  109. package/dist/llm/error-codes.js +1 -0
  110. package/dist/llm/errors.js +1 -0
  111. package/dist/llm/formatters/anthropic.js +1 -0
  112. package/dist/llm/formatters/factory.js +1 -0
  113. package/dist/llm/formatters/openai.js +1 -0
  114. package/dist/llm/formatters/vercel.js +1 -0
  115. package/dist/llm/registry.cjs +15 -15
  116. package/dist/llm/registry.d.ts +1 -1
  117. package/dist/llm/registry.js +16 -15
  118. package/dist/llm/resolver.js +1 -0
  119. package/dist/llm/schemas.cjs +6 -2
  120. package/dist/llm/schemas.d.ts +10 -0
  121. package/dist/llm/schemas.d.ts.map +1 -1
  122. package/dist/llm/schemas.js +7 -2
  123. package/dist/llm/services/anthropic.cjs +67 -0
  124. package/dist/llm/services/anthropic.d.ts +6 -0
  125. package/dist/llm/services/anthropic.d.ts.map +1 -1
  126. package/dist/llm/services/anthropic.js +27 -0
  127. package/dist/llm/services/factory.js +1 -0
  128. package/dist/llm/services/openai.cjs +87 -0
  129. package/dist/llm/services/openai.d.ts +6 -0
  130. package/dist/llm/services/openai.d.ts.map +1 -1
  131. package/dist/llm/services/openai.js +47 -0
  132. package/dist/llm/services/test-utils.integration.cjs +1 -1
  133. package/dist/llm/services/test-utils.integration.js +2 -1
  134. package/dist/llm/services/vercel.cjs +144 -97
  135. package/dist/llm/services/vercel.d.ts +6 -1
  136. package/dist/llm/services/vercel.d.ts.map +1 -1
  137. package/dist/llm/services/vercel.js +105 -98
  138. package/dist/llm/tokenizer/anthropic.js +1 -0
  139. package/dist/llm/tokenizer/default.js +1 -0
  140. package/dist/llm/tokenizer/factory.js +1 -0
  141. package/dist/llm/tokenizer/google.js +1 -0
  142. package/dist/llm/tokenizer/openai.cjs +1 -1
  143. package/dist/llm/tokenizer/openai.d.ts +1 -1
  144. package/dist/llm/tokenizer/openai.js +2 -1
  145. package/dist/llm/tokenizer/types.js +1 -0
  146. package/dist/llm/types.d.ts +2 -2
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -0
  149. package/dist/llm/validation.js +1 -0
  150. package/dist/logger/browser.js +1 -0
  151. package/dist/logger/logger.d.ts +42 -0
  152. package/dist/logger/logger.d.ts.map +1 -1
  153. package/dist/logger/logger.js +1 -0
  154. package/dist/mcp/error-codes.cjs +1 -0
  155. package/dist/mcp/error-codes.d.ts +1 -0
  156. package/dist/mcp/error-codes.d.ts.map +1 -1
  157. package/dist/mcp/error-codes.js +2 -0
  158. package/dist/mcp/errors.cjs +12 -0
  159. package/dist/mcp/errors.d.ts +7 -0
  160. package/dist/mcp/errors.d.ts.map +1 -1
  161. package/dist/mcp/errors.js +13 -0
  162. package/dist/mcp/manager.cjs +66 -16
  163. package/dist/mcp/manager.d.ts +7 -0
  164. package/dist/mcp/manager.d.ts.map +1 -1
  165. package/dist/mcp/manager.js +67 -16
  166. package/dist/mcp/mcp-client.js +1 -0
  167. package/dist/mcp/resolver.js +1 -0
  168. package/dist/mcp/schemas.js +1 -0
  169. package/dist/mcp/types.d.ts +1 -1
  170. package/dist/mcp/types.d.ts.map +1 -1
  171. package/dist/memory/error-codes.js +1 -0
  172. package/dist/memory/errors.js +1 -0
  173. package/dist/memory/index.js +1 -0
  174. package/dist/memory/manager.js +1 -0
  175. package/dist/memory/schemas.js +1 -0
  176. package/dist/plugins/builtins/content-policy.js +1 -0
  177. package/dist/plugins/builtins/response-sanitizer.js +1 -0
  178. package/dist/plugins/error-codes.js +1 -0
  179. package/dist/plugins/index.js +1 -0
  180. package/dist/plugins/loader.js +1 -0
  181. package/dist/plugins/manager.js +1 -0
  182. package/dist/plugins/registrations/builtins.js +1 -0
  183. package/dist/plugins/schemas.js +1 -0
  184. package/dist/preferences/constants.js +1 -0
  185. package/dist/preferences/error-codes.js +1 -0
  186. package/dist/preferences/errors.js +1 -0
  187. package/dist/preferences/index.js +1 -0
  188. package/dist/preferences/loader.cjs +3 -1
  189. package/dist/preferences/loader.d.ts +10 -1
  190. package/dist/preferences/loader.d.ts.map +1 -1
  191. package/dist/preferences/loader.js +4 -1
  192. package/dist/preferences/schemas.cjs +2 -1
  193. package/dist/preferences/schemas.d.ts +8 -0
  194. package/dist/preferences/schemas.d.ts.map +1 -1
  195. package/dist/preferences/schemas.js +3 -1
  196. package/dist/process/command-validator.cjs +544 -0
  197. package/dist/process/command-validator.d.ts +46 -0
  198. package/dist/process/command-validator.d.ts.map +1 -0
  199. package/dist/process/command-validator.js +521 -0
  200. package/dist/process/error-codes.cjs +47 -0
  201. package/dist/process/error-codes.d.ts +25 -0
  202. package/dist/process/error-codes.d.ts.map +1 -0
  203. package/dist/process/error-codes.js +24 -0
  204. package/dist/process/errors.cjs +244 -0
  205. package/dist/process/errors.d.ts +87 -0
  206. package/dist/process/errors.d.ts.map +1 -0
  207. package/dist/process/errors.js +221 -0
  208. package/dist/process/index.cjs +37 -0
  209. package/dist/process/index.d.ts +11 -0
  210. package/dist/process/index.d.ts.map +1 -0
  211. package/dist/process/index.js +11 -0
  212. package/dist/process/process-service.cjs +443 -0
  213. package/dist/process/process-service.d.ts +62 -0
  214. package/dist/process/process-service.d.ts.map +1 -0
  215. package/dist/process/process-service.js +410 -0
  216. package/dist/process/types.cjs +16 -0
  217. package/dist/process/types.d.ts +107 -0
  218. package/dist/process/types.d.ts.map +1 -0
  219. package/dist/process/types.js +0 -0
  220. package/dist/prompts/error-codes.js +1 -0
  221. package/dist/prompts/errors.js +1 -0
  222. package/dist/prompts/index.js +1 -0
  223. package/dist/prompts/name-validation.js +1 -0
  224. package/dist/prompts/prompt-manager.js +1 -0
  225. package/dist/prompts/providers/custom-prompt-provider.js +1 -0
  226. package/dist/prompts/providers/file-prompt-provider.js +1 -0
  227. package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
  228. package/dist/prompts/providers/starter-prompt-provider.js +1 -0
  229. package/dist/prompts/schemas.js +1 -0
  230. package/dist/prompts/utils.js +1 -0
  231. package/dist/resources/error-codes.js +1 -0
  232. package/dist/resources/errors.js +1 -0
  233. package/dist/resources/handlers/blob-handler.js +1 -0
  234. package/dist/resources/handlers/factory.js +1 -0
  235. package/dist/resources/handlers/filesystem-handler.cjs +1 -1
  236. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  237. package/dist/resources/handlers/filesystem-handler.js +2 -1
  238. package/dist/resources/index.js +1 -0
  239. package/dist/resources/internal-provider.js +1 -0
  240. package/dist/resources/manager.js +1 -0
  241. package/dist/resources/reference-parser.js +1 -0
  242. package/dist/resources/schemas.js +1 -0
  243. package/dist/search/index.js +1 -0
  244. package/dist/search/search-service.js +1 -0
  245. package/dist/session/chat-session.cjs +2 -2
  246. package/dist/session/chat-session.d.ts +2 -2
  247. package/dist/session/chat-session.js +3 -2
  248. package/dist/session/error-codes.js +1 -0
  249. package/dist/session/errors.js +1 -0
  250. package/dist/session/history/database.js +1 -0
  251. package/dist/session/history/factory.js +1 -0
  252. package/dist/session/history/memory.js +1 -0
  253. package/dist/session/index.js +1 -0
  254. package/dist/session/schemas.js +1 -0
  255. package/dist/session/session-manager.d.ts +6 -0
  256. package/dist/session/session-manager.d.ts.map +1 -1
  257. package/dist/session/session-manager.js +1 -0
  258. package/dist/session/title-generator.js +1 -0
  259. package/dist/storage/blob/factory.cjs +3 -3
  260. package/dist/storage/blob/factory.d.ts +3 -1
  261. package/dist/storage/blob/factory.d.ts.map +1 -1
  262. package/dist/storage/blob/factory.js +4 -3
  263. package/dist/storage/blob/local-blob-store.cjs +18 -2
  264. package/dist/storage/blob/local-blob-store.d.ts +2 -1
  265. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  266. package/dist/storage/blob/local-blob-store.js +19 -2
  267. package/dist/storage/blob/schemas.js +1 -0
  268. package/dist/storage/cache/factory.js +1 -0
  269. package/dist/storage/cache/memory-cache-store.js +1 -0
  270. package/dist/storage/cache/redis-store.js +1 -0
  271. package/dist/storage/cache/schemas.js +1 -0
  272. package/dist/storage/database/factory.cjs +7 -5
  273. package/dist/storage/database/factory.d.ts +3 -1
  274. package/dist/storage/database/factory.d.ts.map +1 -1
  275. package/dist/storage/database/factory.js +8 -5
  276. package/dist/storage/database/memory-database-store.js +1 -0
  277. package/dist/storage/database/postgres-store.js +1 -0
  278. package/dist/storage/database/schemas.cjs +1 -1
  279. package/dist/storage/database/schemas.js +2 -1
  280. package/dist/storage/database/sqlite-store.cjs +20 -2
  281. package/dist/storage/database/sqlite-store.d.ts +2 -1
  282. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  283. package/dist/storage/database/sqlite-store.js +21 -2
  284. package/dist/storage/error-codes.cjs +1 -0
  285. package/dist/storage/error-codes.d.ts +1 -0
  286. package/dist/storage/error-codes.d.ts.map +1 -1
  287. package/dist/storage/error-codes.js +2 -0
  288. package/dist/storage/errors.cjs +15 -0
  289. package/dist/storage/errors.d.ts +4 -0
  290. package/dist/storage/errors.d.ts.map +1 -1
  291. package/dist/storage/errors.js +16 -0
  292. package/dist/storage/index.js +1 -0
  293. package/dist/storage/schemas.js +1 -0
  294. package/dist/storage/storage-manager.cjs +7 -5
  295. package/dist/storage/storage-manager.d.ts +5 -2
  296. package/dist/storage/storage-manager.d.ts.map +1 -1
  297. package/dist/storage/storage-manager.js +8 -5
  298. package/dist/systemPrompt/contributors.js +1 -0
  299. package/dist/systemPrompt/error-codes.js +1 -0
  300. package/dist/systemPrompt/errors.js +1 -0
  301. package/dist/systemPrompt/in-built-prompts.js +1 -0
  302. package/dist/systemPrompt/index.js +1 -0
  303. package/dist/systemPrompt/manager.js +1 -0
  304. package/dist/systemPrompt/registry.js +1 -0
  305. package/dist/systemPrompt/schemas.js +1 -0
  306. package/dist/telemetry/decorators.cjs +175 -0
  307. package/dist/telemetry/decorators.d.ts +17 -0
  308. package/dist/telemetry/decorators.d.ts.map +1 -0
  309. package/dist/telemetry/decorators.js +157 -0
  310. package/dist/telemetry/exporters.cjs +108 -0
  311. package/dist/telemetry/exporters.d.ts +29 -0
  312. package/dist/telemetry/exporters.d.ts.map +1 -0
  313. package/dist/telemetry/exporters.js +85 -0
  314. package/dist/telemetry/index.cjs +28 -0
  315. package/dist/telemetry/index.d.ts +2 -0
  316. package/dist/telemetry/index.d.ts.map +1 -0
  317. package/dist/telemetry/index.js +5 -0
  318. package/dist/telemetry/schemas.cjs +71 -0
  319. package/dist/telemetry/schemas.d.ts +54 -0
  320. package/dist/telemetry/schemas.d.ts.map +1 -0
  321. package/dist/telemetry/schemas.js +48 -0
  322. package/dist/telemetry/telemetry.cjs +228 -0
  323. package/dist/telemetry/telemetry.d.ts +74 -0
  324. package/dist/telemetry/telemetry.d.ts.map +1 -0
  325. package/dist/telemetry/telemetry.js +205 -0
  326. package/dist/telemetry/types.cjs +16 -0
  327. package/dist/telemetry/types.d.ts +22 -0
  328. package/dist/telemetry/types.d.ts.map +1 -0
  329. package/dist/telemetry/types.js +0 -0
  330. package/dist/telemetry/utils.cjs +87 -0
  331. package/dist/telemetry/utils.d.ts +21 -0
  332. package/dist/telemetry/utils.d.ts.map +1 -0
  333. package/dist/telemetry/utils.js +62 -0
  334. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -0
  335. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -0
  337. package/dist/tools/error-codes.js +1 -0
  338. package/dist/tools/errors.js +1 -0
  339. package/dist/tools/index.js +1 -0
  340. package/dist/tools/internal-tools/constants.cjs +39 -0
  341. package/dist/tools/internal-tools/constants.d.ts +12 -0
  342. package/dist/tools/internal-tools/constants.d.ts.map +1 -0
  343. package/dist/tools/internal-tools/constants.js +16 -0
  344. package/dist/tools/internal-tools/implementations/ask-user-tool.js +1 -0
  345. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
  346. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
  347. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
  348. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
  349. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
  350. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
  351. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
  352. package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
  353. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
  354. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
  355. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
  356. package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
  357. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
  358. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
  359. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
  360. package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
  361. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
  362. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
  363. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
  364. package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
  365. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
  366. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
  367. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
  368. package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
  369. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
  370. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
  371. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
  372. package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
  373. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
  374. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
  375. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
  376. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
  377. package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
  378. package/dist/tools/internal-tools/index.cjs +3 -1
  379. package/dist/tools/internal-tools/index.d.ts +1 -0
  380. package/dist/tools/internal-tools/index.d.ts.map +1 -1
  381. package/dist/tools/internal-tools/index.js +1 -0
  382. package/dist/tools/internal-tools/provider.js +1 -0
  383. package/dist/tools/internal-tools/registry.cjs +40 -4
  384. package/dist/tools/internal-tools/registry.d.ts +5 -9
  385. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  386. package/dist/tools/internal-tools/registry.js +41 -3
  387. package/dist/tools/schemas.cjs +18 -5
  388. package/dist/tools/schemas.d.ts +30 -1
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +15 -2
  391. package/dist/tools/tool-manager.cjs +158 -19
  392. package/dist/tools/tool-manager.d.ts +48 -2
  393. package/dist/tools/tool-manager.d.ts.map +1 -1
  394. package/dist/tools/tool-manager.js +118 -19
  395. package/dist/utils/api-key-resolver.js +1 -0
  396. package/dist/utils/api-key-store.js +1 -0
  397. package/dist/utils/async-context.js +1 -0
  398. package/dist/utils/debug.js +1 -0
  399. package/dist/utils/env.js +1 -0
  400. package/dist/utils/error-conversion.js +1 -0
  401. package/dist/utils/execution-context.js +1 -0
  402. package/dist/utils/fs-walk.js +1 -0
  403. package/dist/utils/path.js +1 -0
  404. package/dist/utils/port-utils.js +1 -0
  405. package/dist/utils/redactor.js +1 -0
  406. package/dist/utils/result.js +1 -0
  407. package/dist/utils/safe-stringify.js +1 -0
  408. package/dist/utils/schema-metadata.js +1 -0
  409. package/dist/utils/schema.js +1 -0
  410. package/dist/utils/service-initializer.cjs +42 -4
  411. package/dist/utils/service-initializer.d.ts +2 -1
  412. package/dist/utils/service-initializer.d.ts.map +1 -1
  413. package/dist/utils/service-initializer.js +33 -4
  414. package/dist/utils/user-info.js +1 -0
  415. package/dist/utils/zod-schema-converter.js +1 -0
  416. package/package.json +11 -1
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { MiddleRemovalStrategy } from "./compression/middle-removal.js";
2
3
  import { OldestRemovalStrategy } from "./compression/oldest-removal.js";
3
4
  import { logger } from "../logger/index.js";
@@ -432,12 +433,37 @@ ${prompt}`);
432
433
  */
433
434
  async getFormattedMessages(contributorContext, llmContext, systemPrompt, history) {
434
435
  let messageHistory = history ?? await this.historyProvider.getHistory();
436
+ let allowedMediaTypes = this.llmConfig.allowedMediaTypes;
437
+ if (!allowedMediaTypes) {
438
+ try {
439
+ const { getSupportedFileTypesForModel } = await import("../llm/registry.js");
440
+ const { fileTypesToMimePatterns } = await import("./utils.js");
441
+ const supportedFileTypes = getSupportedFileTypesForModel(
442
+ llmContext.provider,
443
+ llmContext.model
444
+ );
445
+ allowedMediaTypes = fileTypesToMimePatterns(supportedFileTypes);
446
+ logger.debug(
447
+ `Using model capabilities for media filtering: ${allowedMediaTypes.join(", ")}`
448
+ );
449
+ } catch (error) {
450
+ logger.warn(
451
+ `Could not determine model capabilities, allowing all media types: ${String(error)}`
452
+ );
453
+ allowedMediaTypes = void 0;
454
+ }
455
+ } else {
456
+ logger.debug(
457
+ `Using user-configured allowedMediaTypes: ${allowedMediaTypes.join(", ")}`
458
+ );
459
+ }
435
460
  logger.debug("Resolving blob references in message history before formatting");
436
461
  messageHistory = await Promise.all(
437
462
  messageHistory.map(async (message) => {
438
463
  const expandedContent = await expandBlobReferences(
439
464
  message.content,
440
- this.resourceManager
465
+ this.resourceManager,
466
+ allowedMediaTypes
441
467
  );
442
468
  return { ...message, content: expandedContent };
443
469
  })
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  function getFileMediaKind(mimeType) {
2
3
  if (mimeType?.startsWith("audio/")) return "audio";
3
4
  if (mimeType?.startsWith("video/")) return "video";
@@ -20,6 +20,7 @@ var utils_exports = {};
20
20
  __export(utils_exports, {
21
21
  countMessagesTokens: () => countMessagesTokens,
22
22
  expandBlobReferences: () => expandBlobReferences,
23
+ fileTypesToMimePatterns: () => fileTypesToMimePatterns,
23
24
  filterMessagesByLLMCapabilities: () => filterMessagesByLLMCapabilities,
24
25
  getFileData: () => getFileData,
25
26
  getFileDataWithBlobSupport: () => getFileDataWithBlobSupport,
@@ -28,6 +29,8 @@ __export(utils_exports, {
28
29
  getImageDataWithBlobSupport: () => getImageDataWithBlobSupport,
29
30
  getResourceKind: () => import_media_helpers.getResourceKind,
30
31
  isLikelyBase64String: () => isLikelyBase64String,
32
+ matchesAnyMimePattern: () => matchesAnyMimePattern,
33
+ matchesMimePattern: () => matchesMimePattern,
31
34
  normalizeToolResult: () => normalizeToolResult,
32
35
  parseDataUri: () => parseDataUri,
33
36
  persistToolMedia: () => persistToolMedia,
@@ -275,9 +278,24 @@ function buildToolBlobName(kind, mimeType, options, preferredName) {
275
278
  const unique = generateUniqueSuffix();
276
279
  return `${parts.join("-")}-${unique}.${ext}`;
277
280
  }
278
- async function resolveBlobReferenceToParts(resourceUri, resourceManager) {
281
+ async function resolveBlobReferenceToParts(resourceUri, resourceManager, allowedMediaTypes) {
279
282
  try {
280
283
  const result = await resourceManager.read(resourceUri);
284
+ if (allowedMediaTypes) {
285
+ const mimeType = result.contents[0]?.mimeType;
286
+ const metadata = result._meta;
287
+ if (mimeType && !matchesAnyMimePattern(mimeType, allowedMediaTypes)) {
288
+ const placeholderMetadata = {
289
+ mimeType,
290
+ size: metadata?.size ?? 0
291
+ };
292
+ if (metadata?.originalName) {
293
+ placeholderMetadata.originalName = metadata.originalName;
294
+ }
295
+ const placeholder = generateMediaPlaceholder(placeholderMetadata);
296
+ return [{ type: "text", text: placeholder }];
297
+ }
298
+ }
281
299
  const parts = [];
282
300
  for (const item of result.contents ?? []) {
283
301
  if (!item || typeof item !== "object") {
@@ -453,7 +471,7 @@ async function getFileDataWithBlobSupport(filePart, resourceManager) {
453
471
  }
454
472
  return getFileData(filePart);
455
473
  }
456
- async function expandBlobReferences(content, resourceManager) {
474
+ async function expandBlobReferences(content, resourceManager, allowedMediaTypes) {
457
475
  if (typeof content === "string") {
458
476
  const blobRefPattern = /@blob:[a-f0-9]+/g;
459
477
  const matches = [...content.matchAll(blobRefPattern)];
@@ -476,7 +494,11 @@ async function expandBlobReferences(content, resourceManager) {
476
494
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
477
495
  let resolvedParts = resolvedCache.get(resourceUri);
478
496
  if (!resolvedParts) {
479
- resolvedParts = await resolveBlobReferenceToParts(resourceUri, resourceManager);
497
+ resolvedParts = await resolveBlobReferenceToParts(
498
+ resourceUri,
499
+ resourceManager,
500
+ allowedMediaTypes
501
+ );
480
502
  resolvedCache.set(resourceUri, resolvedParts);
481
503
  }
482
504
  if (resolvedParts.length > 0) {
@@ -504,7 +526,11 @@ async function expandBlobReferences(content, resourceManager) {
504
526
  if (part.type === "image" && typeof part.image === "string" && part.image.startsWith("@blob:")) {
505
527
  const uri = part.image.substring(1);
506
528
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
507
- const resolved = await resolveBlobReferenceToParts(resourceUri, resourceManager);
529
+ const resolved = await resolveBlobReferenceToParts(
530
+ resourceUri,
531
+ resourceManager,
532
+ allowedMediaTypes
533
+ );
508
534
  if (resolved.length > 0) {
509
535
  expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
510
536
  } else {
@@ -515,7 +541,11 @@ async function expandBlobReferences(content, resourceManager) {
515
541
  if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
516
542
  const uri = part.data.substring(1);
517
543
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
518
- const resolved = await resolveBlobReferenceToParts(resourceUri, resourceManager);
544
+ const resolved = await resolveBlobReferenceToParts(
545
+ resourceUri,
546
+ resourceManager,
547
+ allowedMediaTypes
548
+ );
519
549
  if (resolved.length > 0) {
520
550
  expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
521
551
  } else {
@@ -533,7 +563,11 @@ async function expandBlobReferences(content, resourceManager) {
533
563
  continue;
534
564
  }
535
565
  if (part.type === "text" && part.text.includes("@blob:")) {
536
- const expanded = await expandBlobReferences(part.text, resourceManager);
566
+ const expanded = await expandBlobReferences(
567
+ part.text,
568
+ resourceManager,
569
+ allowedMediaTypes
570
+ );
537
571
  if (typeof expanded === "string") {
538
572
  expandedParts.push({ ...part, text: expanded });
539
573
  } else if (Array.isArray(expanded)) {
@@ -603,6 +637,65 @@ function parseDataUri(value) {
603
637
  const base64 = value.slice(commaIdx + 1);
604
638
  return { mediaType, base64 };
605
639
  }
640
+ function matchesMimePattern(mimeType, pattern) {
641
+ if (!mimeType) return false;
642
+ const normalizedMime = mimeType.toLowerCase().trim();
643
+ const normalizedPattern = pattern.toLowerCase().trim();
644
+ if (normalizedPattern === "*" || normalizedPattern === "*/*") {
645
+ return true;
646
+ }
647
+ if (normalizedMime === normalizedPattern) {
648
+ return true;
649
+ }
650
+ if (normalizedPattern.endsWith("/*")) {
651
+ const patternType = normalizedPattern.slice(0, -2);
652
+ const mimeType2 = normalizedMime.split("/")[0];
653
+ return mimeType2 === patternType;
654
+ }
655
+ return false;
656
+ }
657
+ function matchesAnyMimePattern(mimeType, patterns) {
658
+ return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
659
+ }
660
+ function fileTypesToMimePatterns(fileTypes) {
661
+ const patterns = [];
662
+ for (const fileType of fileTypes) {
663
+ switch (fileType) {
664
+ case "image":
665
+ patterns.push("image/*");
666
+ break;
667
+ case "pdf":
668
+ patterns.push("application/pdf");
669
+ break;
670
+ case "audio":
671
+ patterns.push("audio/*");
672
+ break;
673
+ case "video":
674
+ patterns.push("video/*");
675
+ break;
676
+ default:
677
+ import_logger.logger.warn(`Unknown file type in registry: ${fileType}`);
678
+ }
679
+ }
680
+ return patterns;
681
+ }
682
+ function generateMediaPlaceholder(metadata) {
683
+ let typeLabel = "File";
684
+ if (metadata.mimeType.startsWith("video/")) typeLabel = "Video";
685
+ else if (metadata.mimeType.startsWith("audio/")) typeLabel = "Audio";
686
+ else if (metadata.mimeType.startsWith("image/")) typeLabel = "Image";
687
+ else if (metadata.mimeType === "application/pdf") typeLabel = "PDF";
688
+ const formatSize = (bytes) => {
689
+ if (bytes === 0) return "0 B";
690
+ const k = 1024;
691
+ const sizes = ["B", "KB", "MB", "GB"];
692
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
693
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
694
+ };
695
+ const size = formatSize(metadata.size);
696
+ const name = metadata.originalName || "unknown";
697
+ return `[${typeLabel}: ${name} (${size})]`;
698
+ }
606
699
  function sanitizeDeepObject(obj) {
607
700
  if (obj == null) return obj;
608
701
  if (typeof obj === "string") {
@@ -1128,6 +1221,7 @@ function toTextForToolMessage(content) {
1128
1221
  0 && (module.exports = {
1129
1222
  countMessagesTokens,
1130
1223
  expandBlobReferences,
1224
+ fileTypesToMimePatterns,
1131
1225
  filterMessagesByLLMCapabilities,
1132
1226
  getFileData,
1133
1227
  getFileDataWithBlobSupport,
@@ -1136,6 +1230,8 @@ function toTextForToolMessage(content) {
1136
1230
  getImageDataWithBlobSupport,
1137
1231
  getResourceKind,
1138
1232
  isLikelyBase64String,
1233
+ matchesAnyMimePattern,
1234
+ matchesMimePattern,
1139
1235
  normalizeToolResult,
1140
1236
  parseDataUri,
1141
1237
  persistToolMedia,
@@ -84,11 +84,16 @@ export declare function getFileDataWithBlobSupport(filePart: {
84
84
  /**
85
85
  * Resolves blob references in message content to actual data.
86
86
  * Expands @blob:id references to their actual base64 content for LLM consumption.
87
+ * Can optionally filter by MIME type patterns - unsupported types are replaced with descriptive placeholders.
88
+ *
87
89
  * @param content The message content that may contain blob references
88
90
  * @param resourceManager Resource manager for resolving blob references
89
- * @returns Promise<Resolved content with blob references expanded>
91
+ * @param allowedMediaTypes Optional array of MIME patterns (e.g., ["image/*", "application/pdf"]).
92
+ * If provided, only matching blobs are expanded; others become placeholders.
93
+ * If omitted, all blobs are expanded (legacy behavior).
94
+ * @returns Promise<Resolved content with blob references expanded or replaced with placeholders>
90
95
  */
91
- export declare function expandBlobReferences(content: InternalMessage['content'], resourceManager: import('../resources/index.js').ResourceManager): Promise<InternalMessage['content']>;
96
+ export declare function expandBlobReferences(content: InternalMessage['content'], resourceManager: import('../resources/index.js').ResourceManager, allowedMediaTypes?: string[]): Promise<InternalMessage['content']>;
92
97
  /**
93
98
  * Filters message content based on LLM capabilities.
94
99
  * Removes unsupported file attachments while preserving supported content.
@@ -111,6 +116,34 @@ export declare function parseDataUri(value: string): {
111
116
  base64: string;
112
117
  } | null;
113
118
  export { getFileMediaKind, getResourceKind };
119
+ /**
120
+ * Check if a MIME type matches a pattern with wildcard support.
121
+ * Supports exact matches and wildcard patterns:
122
+ * - "image/png" matches "image/png" exactly
123
+ * - "image/star" (where star is asterisk) matches "image/png", "image/jpeg", etc.
124
+ * - Single asterisk or "asterisk/asterisk" matches everything
125
+ *
126
+ * @param mimeType The MIME type to check (e.g., "image/png")
127
+ * @param pattern The pattern to match against (e.g., "image/asterisk")
128
+ * @returns true if the MIME type matches the pattern
129
+ */
130
+ export declare function matchesMimePattern(mimeType: string | undefined, pattern: string): boolean;
131
+ /**
132
+ * Check if a MIME type matches any pattern in an array of patterns.
133
+ *
134
+ * @param mimeType The MIME type to check
135
+ * @param patterns Array of MIME patterns to match against
136
+ * @returns true if the MIME type matches any pattern
137
+ */
138
+ export declare function matchesAnyMimePattern(mimeType: string | undefined, patterns: string[]): boolean;
139
+ /**
140
+ * Convert supported file types to MIME type patterns.
141
+ * Used to translate LLM registry file types to MIME patterns for filtering.
142
+ *
143
+ * @param fileTypes Array of supported file types from LLM registry (e.g., ['image', 'pdf', 'audio'])
144
+ * @returns Array of MIME type patterns (e.g., ['image/*', 'application/pdf', 'audio/*'])
145
+ */
146
+ export declare function fileTypesToMimePatterns(fileTypes: string[]): string[];
114
147
  export declare function normalizeToolResult(result: unknown): Promise<NormalizedToolResult>;
115
148
  export declare function persistToolMedia(normalized: NormalizedToolResult, options: PersistToolMediaOptions): Promise<PersistToolMediaResult>;
116
149
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { logger } from "../logger/index.js";
2
3
  import { validateModelFileSupport } from "../llm/registry.js";
3
4
  import { ContextError } from "./errors.js";
@@ -236,9 +237,24 @@ function buildToolBlobName(kind, mimeType, options, preferredName) {
236
237
  const unique = generateUniqueSuffix();
237
238
  return `${parts.join("-")}-${unique}.${ext}`;
238
239
  }
239
- async function resolveBlobReferenceToParts(resourceUri, resourceManager) {
240
+ async function resolveBlobReferenceToParts(resourceUri, resourceManager, allowedMediaTypes) {
240
241
  try {
241
242
  const result = await resourceManager.read(resourceUri);
243
+ if (allowedMediaTypes) {
244
+ const mimeType = result.contents[0]?.mimeType;
245
+ const metadata = result._meta;
246
+ if (mimeType && !matchesAnyMimePattern(mimeType, allowedMediaTypes)) {
247
+ const placeholderMetadata = {
248
+ mimeType,
249
+ size: metadata?.size ?? 0
250
+ };
251
+ if (metadata?.originalName) {
252
+ placeholderMetadata.originalName = metadata.originalName;
253
+ }
254
+ const placeholder = generateMediaPlaceholder(placeholderMetadata);
255
+ return [{ type: "text", text: placeholder }];
256
+ }
257
+ }
242
258
  const parts = [];
243
259
  for (const item of result.contents ?? []) {
244
260
  if (!item || typeof item !== "object") {
@@ -414,7 +430,7 @@ async function getFileDataWithBlobSupport(filePart, resourceManager) {
414
430
  }
415
431
  return getFileData(filePart);
416
432
  }
417
- async function expandBlobReferences(content, resourceManager) {
433
+ async function expandBlobReferences(content, resourceManager, allowedMediaTypes) {
418
434
  if (typeof content === "string") {
419
435
  const blobRefPattern = /@blob:[a-f0-9]+/g;
420
436
  const matches = [...content.matchAll(blobRefPattern)];
@@ -437,7 +453,11 @@ async function expandBlobReferences(content, resourceManager) {
437
453
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
438
454
  let resolvedParts = resolvedCache.get(resourceUri);
439
455
  if (!resolvedParts) {
440
- resolvedParts = await resolveBlobReferenceToParts(resourceUri, resourceManager);
456
+ resolvedParts = await resolveBlobReferenceToParts(
457
+ resourceUri,
458
+ resourceManager,
459
+ allowedMediaTypes
460
+ );
441
461
  resolvedCache.set(resourceUri, resolvedParts);
442
462
  }
443
463
  if (resolvedParts.length > 0) {
@@ -465,7 +485,11 @@ async function expandBlobReferences(content, resourceManager) {
465
485
  if (part.type === "image" && typeof part.image === "string" && part.image.startsWith("@blob:")) {
466
486
  const uri = part.image.substring(1);
467
487
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
468
- const resolved = await resolveBlobReferenceToParts(resourceUri, resourceManager);
488
+ const resolved = await resolveBlobReferenceToParts(
489
+ resourceUri,
490
+ resourceManager,
491
+ allowedMediaTypes
492
+ );
469
493
  if (resolved.length > 0) {
470
494
  expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
471
495
  } else {
@@ -476,7 +500,11 @@ async function expandBlobReferences(content, resourceManager) {
476
500
  if (part.type === "file" && typeof part.data === "string" && part.data.startsWith("@blob:")) {
477
501
  const uri = part.data.substring(1);
478
502
  const resourceUri = uri.startsWith("blob:") ? uri : `blob:${uri}`;
479
- const resolved = await resolveBlobReferenceToParts(resourceUri, resourceManager);
503
+ const resolved = await resolveBlobReferenceToParts(
504
+ resourceUri,
505
+ resourceManager,
506
+ allowedMediaTypes
507
+ );
480
508
  if (resolved.length > 0) {
481
509
  expandedParts.push(...resolved.map((part2) => ({ ...part2 })));
482
510
  } else {
@@ -494,7 +522,11 @@ async function expandBlobReferences(content, resourceManager) {
494
522
  continue;
495
523
  }
496
524
  if (part.type === "text" && part.text.includes("@blob:")) {
497
- const expanded = await expandBlobReferences(part.text, resourceManager);
525
+ const expanded = await expandBlobReferences(
526
+ part.text,
527
+ resourceManager,
528
+ allowedMediaTypes
529
+ );
498
530
  if (typeof expanded === "string") {
499
531
  expandedParts.push({ ...part, text: expanded });
500
532
  } else if (Array.isArray(expanded)) {
@@ -564,6 +596,65 @@ function parseDataUri(value) {
564
596
  const base64 = value.slice(commaIdx + 1);
565
597
  return { mediaType, base64 };
566
598
  }
599
+ function matchesMimePattern(mimeType, pattern) {
600
+ if (!mimeType) return false;
601
+ const normalizedMime = mimeType.toLowerCase().trim();
602
+ const normalizedPattern = pattern.toLowerCase().trim();
603
+ if (normalizedPattern === "*" || normalizedPattern === "*/*") {
604
+ return true;
605
+ }
606
+ if (normalizedMime === normalizedPattern) {
607
+ return true;
608
+ }
609
+ if (normalizedPattern.endsWith("/*")) {
610
+ const patternType = normalizedPattern.slice(0, -2);
611
+ const mimeType2 = normalizedMime.split("/")[0];
612
+ return mimeType2 === patternType;
613
+ }
614
+ return false;
615
+ }
616
+ function matchesAnyMimePattern(mimeType, patterns) {
617
+ return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
618
+ }
619
+ function fileTypesToMimePatterns(fileTypes) {
620
+ const patterns = [];
621
+ for (const fileType of fileTypes) {
622
+ switch (fileType) {
623
+ case "image":
624
+ patterns.push("image/*");
625
+ break;
626
+ case "pdf":
627
+ patterns.push("application/pdf");
628
+ break;
629
+ case "audio":
630
+ patterns.push("audio/*");
631
+ break;
632
+ case "video":
633
+ patterns.push("video/*");
634
+ break;
635
+ default:
636
+ logger.warn(`Unknown file type in registry: ${fileType}`);
637
+ }
638
+ }
639
+ return patterns;
640
+ }
641
+ function generateMediaPlaceholder(metadata) {
642
+ let typeLabel = "File";
643
+ if (metadata.mimeType.startsWith("video/")) typeLabel = "Video";
644
+ else if (metadata.mimeType.startsWith("audio/")) typeLabel = "Audio";
645
+ else if (metadata.mimeType.startsWith("image/")) typeLabel = "Image";
646
+ else if (metadata.mimeType === "application/pdf") typeLabel = "PDF";
647
+ const formatSize = (bytes) => {
648
+ if (bytes === 0) return "0 B";
649
+ const k = 1024;
650
+ const sizes = ["B", "KB", "MB", "GB"];
651
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
652
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
653
+ };
654
+ const size = formatSize(metadata.size);
655
+ const name = metadata.originalName || "unknown";
656
+ return `[${typeLabel}: ${name} (${size})]`;
657
+ }
567
658
  function sanitizeDeepObject(obj) {
568
659
  if (obj == null) return obj;
569
660
  if (typeof obj === "string") {
@@ -1088,6 +1179,7 @@ function toTextForToolMessage(content) {
1088
1179
  export {
1089
1180
  countMessagesTokens,
1090
1181
  expandBlobReferences,
1182
+ fileTypesToMimePatterns,
1091
1183
  filterMessagesByLLMCapabilities,
1092
1184
  getFileData,
1093
1185
  getFileDataWithBlobSupport,
@@ -1096,6 +1188,8 @@ export {
1096
1188
  getImageDataWithBlobSupport,
1097
1189
  getResourceKind,
1098
1190
  isLikelyBase64String,
1191
+ matchesAnyMimePattern,
1192
+ matchesMimePattern,
1099
1193
  normalizeToolResult,
1100
1194
  parseDataUri,
1101
1195
  persistToolMedia,
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { randomUUID } from "crypto";
2
3
  class DextoBaseError extends Error {
3
4
  traceId;
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { DextoBaseError } from "./DextoBaseError.js";
2
3
  class DextoRuntimeError extends DextoBaseError {
3
4
  constructor(code, scope, type, message, context, recovery, traceId) {
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { DextoBaseError } from "./DextoBaseError.js";
2
3
  class DextoValidationError extends DextoBaseError {
3
4
  issues;
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { DextoBaseError } from "./DextoBaseError.js";
2
3
  import { DextoRuntimeError } from "./DextoRuntimeError.js";
3
4
  import { DextoValidationError } from "./DextoValidationError.js";
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { DextoValidationError } from "./DextoValidationError.js";
2
3
  import { logger } from "../logger/index.js";
3
4
  function ensureOk(result) {
@@ -38,6 +38,8 @@ var ErrorScope = /* @__PURE__ */ ((ErrorScope2) => {
38
38
  ErrorScope2["PROMPT"] = "prompt";
39
39
  ErrorScope2["MEMORY"] = "memory";
40
40
  ErrorScope2["PLUGIN"] = "plugin";
41
+ ErrorScope2["FILESYSTEM"] = "filesystem";
42
+ ErrorScope2["PROCESS"] = "process";
41
43
  return ErrorScope2;
42
44
  })(ErrorScope || {});
43
45
  var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
@@ -45,6 +47,7 @@ var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
45
47
  ErrorType2["NOT_FOUND"] = "not_found";
46
48
  ErrorType2["FORBIDDEN"] = "forbidden";
47
49
  ErrorType2["TIMEOUT"] = "timeout";
50
+ ErrorType2["CONFLICT"] = "conflict";
48
51
  ErrorType2["RATE_LIMIT"] = "rate_limit";
49
52
  ErrorType2["SYSTEM"] = "system";
50
53
  ErrorType2["THIRD_PARTY"] = "third_party";
@@ -14,6 +14,8 @@ import type { PromptErrorCode } from '../prompts/error-codes.js';
14
14
  import type { ApprovalErrorCode } from '../approval/error-codes.js';
15
15
  import type { MemoryErrorCode } from '../memory/error-codes.js';
16
16
  import type { PluginErrorCode } from '../plugins/error-codes.js';
17
+ import type { FileSystemErrorCode } from '../filesystem/error-codes.js';
18
+ import type { ProcessErrorCode } from '../process/error-codes.js';
17
19
  /**
18
20
  * Error scopes representing functional domains in the system
19
21
  * Each scope owns its validation and error logic
@@ -33,7 +35,9 @@ export declare enum ErrorScope {
33
35
  RESOURCE = "resource",// Resource management (MCP/internal) discovery and access
34
36
  PROMPT = "prompt",// Prompt management, resolution, and providers
35
37
  MEMORY = "memory",// Memory management and storage
36
- PLUGIN = "plugin"
38
+ PLUGIN = "plugin",// Plugin loading, validation, and execution
39
+ FILESYSTEM = "filesystem",// File system operations and path validation
40
+ PROCESS = "process"
37
41
  }
38
42
  /**
39
43
  * Error types that map directly to HTTP status codes
@@ -44,6 +48,7 @@ export declare enum ErrorType {
44
48
  NOT_FOUND = "not_found",// 404 - resource doesn't exist (session, file, etc.)
45
49
  FORBIDDEN = "forbidden",// 403 - permission denied, unauthorized
46
50
  TIMEOUT = "timeout",// 408 - operation timed out
51
+ CONFLICT = "conflict",// 409 - resource conflict, concurrent operation
47
52
  RATE_LIMIT = "rate_limit",// 429 - too many requests
48
53
  SYSTEM = "system",// 500 - bugs, internal failures, unexpected states
49
54
  THIRD_PARTY = "third_party",// 502 - upstream provider failures, API errors
@@ -53,7 +58,7 @@ export declare enum ErrorType {
53
58
  * Union type for all error codes across domains
54
59
  * Provides type safety for error handling
55
60
  */
56
- export type DextoErrorCode = LLMErrorCode | AgentErrorCode | ConfigErrorCode | ContextErrorCode | SessionErrorCode | MCPErrorCode | ToolErrorCode | StorageErrorCode | SystemPromptErrorCode | PreferenceErrorCode | RegistryErrorCode | ResourceErrorCode | PromptErrorCode | ApprovalErrorCode | MemoryErrorCode | PluginErrorCode;
61
+ export type DextoErrorCode = LLMErrorCode | AgentErrorCode | ConfigErrorCode | ContextErrorCode | SessionErrorCode | MCPErrorCode | ToolErrorCode | StorageErrorCode | SystemPromptErrorCode | PreferenceErrorCode | RegistryErrorCode | ResourceErrorCode | PromptErrorCode | ApprovalErrorCode | MemoryErrorCode | PluginErrorCode | FileSystemErrorCode | ProcessErrorCode;
57
62
  /** Severity of an issue */
58
63
  export type Severity = 'error' | 'warning';
59
64
  /** Generic issue type for validation results */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/errors/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/errors/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  var ErrorScope = /* @__PURE__ */ ((ErrorScope2) => {
2
3
  ErrorScope2["LLM"] = "llm";
3
4
  ErrorScope2["AGENT"] = "agent";
@@ -14,6 +15,8 @@ var ErrorScope = /* @__PURE__ */ ((ErrorScope2) => {
14
15
  ErrorScope2["PROMPT"] = "prompt";
15
16
  ErrorScope2["MEMORY"] = "memory";
16
17
  ErrorScope2["PLUGIN"] = "plugin";
18
+ ErrorScope2["FILESYSTEM"] = "filesystem";
19
+ ErrorScope2["PROCESS"] = "process";
17
20
  return ErrorScope2;
18
21
  })(ErrorScope || {});
19
22
  var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
@@ -21,6 +24,7 @@ var ErrorType = /* @__PURE__ */ ((ErrorType2) => {
21
24
  ErrorType2["NOT_FOUND"] = "not_found";
22
25
  ErrorType2["FORBIDDEN"] = "forbidden";
23
26
  ErrorType2["TIMEOUT"] = "timeout";
27
+ ErrorType2["CONFLICT"] = "conflict";
24
28
  ErrorType2["RATE_LIMIT"] = "rate_limit";
25
29
  ErrorType2["SYSTEM"] = "system";
26
30
  ErrorType2["THIRD_PARTY"] = "third_party";
@@ -44,6 +44,7 @@ const AGENT_EVENT_NAMES = [
44
44
  "dexto:sessionOverrideCleared",
45
45
  "dexto:mcpServerAdded",
46
46
  "dexto:mcpServerRemoved",
47
+ "dexto:mcpServerRestarted",
47
48
  "dexto:mcpServerUpdated",
48
49
  "dexto:mcpResourceUpdated",
49
50
  "dexto:mcpPromptsListChanged",
@@ -6,7 +6,7 @@ import type { SanitizedToolResult } from '../context/types.js';
6
6
  /**
7
7
  * Agent-level event names - events that occur at the agent/global level
8
8
  */
9
- export declare const AGENT_EVENT_NAMES: readonly ["dexto:conversationReset", "dexto:mcpServerConnected", "dexto:availableToolsUpdated", "dexto:llmSwitched", "dexto:stateChanged", "dexto:stateExported", "dexto:stateReset", "dexto:sessionOverrideSet", "dexto:sessionOverrideCleared", "dexto:mcpServerAdded", "dexto:mcpServerRemoved", "dexto:mcpServerUpdated", "dexto:mcpResourceUpdated", "dexto:mcpPromptsListChanged", "dexto:mcpToolsListChanged", "dexto:resourceCacheInvalidated", "dexto:sessionTitleUpdated", "dexto:approvalRequest", "dexto:approvalResponse"];
9
+ export declare const AGENT_EVENT_NAMES: readonly ["dexto:conversationReset", "dexto:mcpServerConnected", "dexto:availableToolsUpdated", "dexto:llmSwitched", "dexto:stateChanged", "dexto:stateExported", "dexto:stateReset", "dexto:sessionOverrideSet", "dexto:sessionOverrideCleared", "dexto:mcpServerAdded", "dexto:mcpServerRemoved", "dexto:mcpServerRestarted", "dexto:mcpServerUpdated", "dexto:mcpResourceUpdated", "dexto:mcpPromptsListChanged", "dexto:mcpToolsListChanged", "dexto:resourceCacheInvalidated", "dexto:sessionTitleUpdated", "dexto:approvalRequest", "dexto:approvalResponse"];
10
10
  /**
11
11
  * Session-level event names - events that occur within individual sessions
12
12
  */
@@ -14,7 +14,7 @@ export declare const SESSION_EVENT_NAMES: readonly ["llmservice:thinking", "llms
14
14
  /**
15
15
  * All event names combined for backward compatibility
16
16
  */
17
- export declare const EVENT_NAMES: readonly ["dexto:conversationReset", "dexto:mcpServerConnected", "dexto:availableToolsUpdated", "dexto:llmSwitched", "dexto:stateChanged", "dexto:stateExported", "dexto:stateReset", "dexto:sessionOverrideSet", "dexto:sessionOverrideCleared", "dexto:mcpServerAdded", "dexto:mcpServerRemoved", "dexto:mcpServerUpdated", "dexto:mcpResourceUpdated", "dexto:mcpPromptsListChanged", "dexto:mcpToolsListChanged", "dexto:resourceCacheInvalidated", "dexto:sessionTitleUpdated", "dexto:approvalRequest", "dexto:approvalResponse", "llmservice:thinking", "llmservice:chunk", "llmservice:response", "llmservice:toolCall", "llmservice:toolResult", "llmservice:error", "llmservice:switched", "llmservice:unsupportedInput"];
17
+ export declare const EVENT_NAMES: readonly ["dexto:conversationReset", "dexto:mcpServerConnected", "dexto:availableToolsUpdated", "dexto:llmSwitched", "dexto:stateChanged", "dexto:stateExported", "dexto:stateReset", "dexto:sessionOverrideSet", "dexto:sessionOverrideCleared", "dexto:mcpServerAdded", "dexto:mcpServerRemoved", "dexto:mcpServerRestarted", "dexto:mcpServerUpdated", "dexto:mcpResourceUpdated", "dexto:mcpPromptsListChanged", "dexto:mcpToolsListChanged", "dexto:resourceCacheInvalidated", "dexto:sessionTitleUpdated", "dexto:approvalRequest", "dexto:approvalResponse", "llmservice:thinking", "llmservice:chunk", "llmservice:response", "llmservice:toolCall", "llmservice:toolResult", "llmservice:error", "llmservice:switched", "llmservice:unsupportedInput"];
18
18
  /**
19
19
  * Combined event map for the agent bus - includes agent events and session events with sessionId
20
20
  * This is what the global agent event bus uses to aggregate all events
@@ -140,6 +140,10 @@ export interface AgentEventMap {
140
140
  'dexto:mcpServerRemoved': {
141
141
  serverName: string;
142
142
  };
143
+ /** Fired when MCP server is restarted */
144
+ 'dexto:mcpServerRestarted': {
145
+ serverName: string;
146
+ };
143
147
  /** Fired when MCP server is updated in runtime state */
144
148
  'dexto:mcpServerUpdated': {
145
149
  serverName: string;