@dexto/core 1.3.0 → 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 (479) hide show
  1. package/README.md +17 -9
  2. package/dist/agent/DextoAgent.cjs +548 -207
  3. package/dist/agent/DextoAgent.d.ts +156 -33
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +545 -204
  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 +3 -0
  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 +6 -2
  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 -10
  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 +18 -4
  36. package/dist/approval/schemas.d.ts +106 -32
  37. package/dist/approval/schemas.d.ts.map +1 -1
  38. package/dist/approval/schemas.js +19 -5
  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/default.cjs → context/compression/overflow.cjs} +20 -18
  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 +280 -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 +280 -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 +181 -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.js +1 -1
  81. package/dist/events/index.cjs +18 -1
  82. package/dist/events/index.d.ts +149 -12
  83. package/dist/events/index.d.ts.map +1 -1
  84. package/dist/events/index.js +19 -2
  85. package/dist/filesystem/error-codes.js +1 -1
  86. package/dist/filesystem/errors.js +1 -1
  87. package/dist/filesystem/filesystem-service.js +1 -1
  88. package/dist/filesystem/index.js +1 -1
  89. package/dist/filesystem/path-validator.js +1 -1
  90. package/dist/index.browser.cjs +23 -8
  91. package/dist/index.browser.d.ts +4 -3
  92. package/dist/index.browser.d.ts.map +1 -1
  93. package/dist/index.browser.js +20 -3
  94. package/dist/index.js +1 -1
  95. package/dist/llm/error-codes.cjs +0 -1
  96. package/dist/llm/error-codes.d.ts +0 -1
  97. package/dist/llm/error-codes.d.ts.map +1 -1
  98. package/dist/llm/error-codes.js +1 -2
  99. package/dist/llm/errors.cjs +10 -10
  100. package/dist/llm/errors.d.ts +5 -6
  101. package/dist/llm/errors.d.ts.map +1 -1
  102. package/dist/llm/errors.js +12 -12
  103. package/dist/llm/executor/stream-processor.cjs +367 -0
  104. package/dist/llm/executor/stream-processor.d.ts +55 -0
  105. package/dist/llm/executor/stream-processor.d.ts.map +1 -0
  106. package/dist/llm/executor/stream-processor.js +344 -0
  107. package/dist/llm/executor/tool-output-truncator.cjs +75 -0
  108. package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
  109. package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
  110. package/dist/llm/executor/tool-output-truncator.js +48 -0
  111. package/dist/llm/executor/turn-executor.cjs +753 -0
  112. package/dist/llm/executor/turn-executor.d.ts +166 -0
  113. package/dist/llm/executor/turn-executor.d.ts.map +1 -0
  114. package/dist/llm/executor/turn-executor.js +684 -0
  115. package/dist/llm/executor/types.d.ts +27 -0
  116. package/dist/llm/executor/types.d.ts.map +1 -0
  117. package/dist/llm/formatters/vercel.cjs +20 -186
  118. package/dist/llm/formatters/vercel.d.ts +2 -14
  119. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  120. package/dist/llm/formatters/vercel.js +19 -185
  121. package/dist/llm/registry.cjs +36 -45
  122. package/dist/llm/registry.d.ts +53 -39
  123. package/dist/llm/registry.d.ts.map +1 -1
  124. package/dist/llm/registry.js +34 -42
  125. package/dist/llm/resolver.cjs +1 -31
  126. package/dist/llm/resolver.d.ts.map +1 -1
  127. package/dist/llm/resolver.js +2 -34
  128. package/dist/llm/schemas.cjs +2 -17
  129. package/dist/llm/schemas.d.ts +10 -23
  130. package/dist/llm/schemas.d.ts.map +1 -1
  131. package/dist/llm/schemas.js +5 -22
  132. package/dist/llm/services/factory.cjs +3 -92
  133. package/dist/llm/services/factory.d.ts +14 -4
  134. package/dist/llm/services/factory.d.ts.map +1 -1
  135. package/dist/llm/services/factory.js +4 -83
  136. package/dist/llm/services/test-utils.integration.cjs +6 -8
  137. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  138. package/dist/llm/services/test-utils.integration.js +7 -9
  139. package/dist/llm/services/types.d.ts +1 -28
  140. package/dist/llm/services/types.d.ts.map +1 -1
  141. package/dist/llm/services/vercel.cjs +54 -468
  142. package/dist/llm/services/vercel.d.ts +38 -21
  143. package/dist/llm/services/vercel.d.ts.map +1 -1
  144. package/dist/llm/services/vercel.js +56 -475
  145. package/dist/llm/types.cjs +0 -3
  146. package/dist/llm/types.d.ts +8 -8
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -3
  149. package/dist/llm/validation.js +1 -1
  150. package/dist/logger/browser.js +1 -1
  151. package/dist/logger/factory.js +1 -1
  152. package/dist/logger/index.js +1 -1
  153. package/dist/logger/logger.js +1 -1
  154. package/dist/logger/v2/dexto-logger.cjs +34 -6
  155. package/dist/logger/v2/dexto-logger.d.ts +20 -2
  156. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  157. package/dist/logger/v2/dexto-logger.js +35 -7
  158. package/dist/logger/v2/error-codes.js +1 -1
  159. package/dist/logger/v2/errors.js +1 -1
  160. package/dist/logger/v2/schemas.js +1 -1
  161. package/dist/logger/v2/test-utils.cjs +70 -0
  162. package/dist/logger/v2/test-utils.d.ts +17 -0
  163. package/dist/logger/v2/test-utils.d.ts.map +1 -0
  164. package/dist/logger/v2/test-utils.js +46 -0
  165. package/dist/logger/v2/transport-factory.js +1 -1
  166. package/dist/logger/v2/transports/console-transport.js +1 -1
  167. package/dist/logger/v2/transports/file-transport.cjs +6 -0
  168. package/dist/logger/v2/transports/file-transport.d.ts +4 -0
  169. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  170. package/dist/logger/v2/transports/file-transport.js +7 -1
  171. package/dist/logger/v2/types.cjs +1 -0
  172. package/dist/logger/v2/types.d.ts +18 -2
  173. package/dist/logger/v2/types.d.ts.map +1 -1
  174. package/dist/logger/v2/types.js +2 -1
  175. package/dist/mcp/error-codes.cjs +1 -0
  176. package/dist/mcp/error-codes.d.ts +1 -0
  177. package/dist/mcp/error-codes.d.ts.map +1 -1
  178. package/dist/mcp/error-codes.js +2 -1
  179. package/dist/mcp/errors.cjs +13 -0
  180. package/dist/mcp/errors.d.ts +7 -0
  181. package/dist/mcp/errors.d.ts.map +1 -1
  182. package/dist/mcp/errors.js +14 -1
  183. package/dist/mcp/manager.cjs +4 -0
  184. package/dist/mcp/manager.d.ts.map +1 -1
  185. package/dist/mcp/manager.js +5 -1
  186. package/dist/mcp/mcp-client.js +1 -1
  187. package/dist/mcp/resolver.js +1 -1
  188. package/dist/mcp/schemas.cjs +6 -0
  189. package/dist/mcp/schemas.d.ts +52 -0
  190. package/dist/mcp/schemas.d.ts.map +1 -1
  191. package/dist/mcp/schemas.js +6 -1
  192. package/dist/memory/error-codes.js +1 -1
  193. package/dist/memory/errors.js +1 -1
  194. package/dist/memory/index.js +1 -1
  195. package/dist/memory/manager.js +1 -1
  196. package/dist/memory/schemas.d.ts +2 -2
  197. package/dist/memory/schemas.js +1 -1
  198. package/dist/plugins/builtins/content-policy.js +1 -1
  199. package/dist/plugins/builtins/response-sanitizer.js +1 -1
  200. package/dist/plugins/error-codes.js +1 -1
  201. package/dist/plugins/index.js +1 -1
  202. package/dist/plugins/loader.js +1 -1
  203. package/dist/plugins/manager.js +1 -1
  204. package/dist/plugins/registrations/builtins.js +1 -1
  205. package/dist/plugins/schemas.d.ts +3 -3
  206. package/dist/plugins/schemas.js +1 -1
  207. package/dist/plugins/types.d.ts +0 -1
  208. package/dist/plugins/types.d.ts.map +1 -1
  209. package/dist/process/command-validator.js +1 -1
  210. package/dist/process/error-codes.js +1 -1
  211. package/dist/process/errors.js +1 -1
  212. package/dist/process/index.js +1 -1
  213. package/dist/process/process-service.cjs +78 -26
  214. package/dist/process/process-service.d.ts +6 -1
  215. package/dist/process/process-service.d.ts.map +1 -1
  216. package/dist/process/process-service.js +79 -27
  217. package/dist/process/types.d.ts +2 -2
  218. package/dist/process/types.d.ts.map +1 -1
  219. package/dist/prompts/error-codes.cjs +1 -0
  220. package/dist/prompts/error-codes.d.ts +2 -1
  221. package/dist/prompts/error-codes.d.ts.map +1 -1
  222. package/dist/prompts/error-codes.js +2 -1
  223. package/dist/prompts/errors.cjs +15 -0
  224. package/dist/prompts/errors.d.ts +4 -0
  225. package/dist/prompts/errors.d.ts.map +1 -1
  226. package/dist/prompts/errors.js +16 -1
  227. package/dist/prompts/index.js +1 -1
  228. package/dist/prompts/name-validation.js +1 -1
  229. package/dist/prompts/prompt-manager.cjs +13 -2
  230. package/dist/prompts/prompt-manager.d.ts +7 -0
  231. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  232. package/dist/prompts/prompt-manager.js +14 -3
  233. package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
  234. package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
  235. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  236. package/dist/prompts/providers/config-prompt-provider.js +13 -4
  237. package/dist/prompts/providers/custom-prompt-provider.js +1 -1
  238. package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
  239. package/dist/prompts/schemas.d.ts +12 -0
  240. package/dist/prompts/schemas.d.ts.map +1 -1
  241. package/dist/prompts/schemas.js +1 -1
  242. package/dist/prompts/types.d.ts +2 -0
  243. package/dist/prompts/types.d.ts.map +1 -1
  244. package/dist/prompts/utils.js +1 -1
  245. package/dist/resources/error-codes.js +1 -1
  246. package/dist/resources/errors.js +1 -1
  247. package/dist/resources/handlers/blob-handler.js +1 -1
  248. package/dist/resources/handlers/factory.js +1 -1
  249. package/dist/resources/handlers/filesystem-handler.js +1 -1
  250. package/dist/resources/index.js +1 -1
  251. package/dist/resources/internal-provider.js +1 -1
  252. package/dist/resources/manager.js +1 -1
  253. package/dist/resources/reference-parser.js +1 -1
  254. package/dist/resources/schemas.js +1 -1
  255. package/dist/search/index.js +1 -1
  256. package/dist/search/search-service.js +1 -1
  257. package/dist/session/chat-session.cjs +149 -51
  258. package/dist/session/chat-session.d.ts +69 -29
  259. package/dist/session/chat-session.d.ts.map +1 -1
  260. package/dist/session/chat-session.js +150 -52
  261. package/dist/session/error-codes.js +1 -1
  262. package/dist/session/errors.js +1 -1
  263. package/dist/session/history/database.cjs +134 -21
  264. package/dist/session/history/database.d.ts +37 -8
  265. package/dist/session/history/database.d.ts.map +1 -1
  266. package/dist/session/history/database.js +135 -22
  267. package/dist/session/history/factory.js +1 -1
  268. package/dist/session/history/memory.cjs +18 -0
  269. package/dist/session/history/memory.d.ts +8 -0
  270. package/dist/session/history/memory.d.ts.map +1 -1
  271. package/dist/session/history/memory.js +19 -1
  272. package/dist/session/history/types.d.ts +13 -1
  273. package/dist/session/history/types.d.ts.map +1 -1
  274. package/dist/session/index.cjs +3 -0
  275. package/dist/session/index.d.ts +3 -0
  276. package/dist/session/index.d.ts.map +1 -1
  277. package/dist/session/index.js +3 -1
  278. package/dist/session/message-queue.cjs +201 -0
  279. package/dist/session/message-queue.d.ts +114 -0
  280. package/dist/session/message-queue.d.ts.map +1 -0
  281. package/dist/session/message-queue.js +178 -0
  282. package/dist/session/schemas.js +1 -1
  283. package/dist/session/session-manager.cjs +57 -7
  284. package/dist/session/session-manager.d.ts +18 -0
  285. package/dist/session/session-manager.d.ts.map +1 -1
  286. package/dist/session/session-manager.js +58 -8
  287. package/dist/session/title-generator.cjs +4 -8
  288. package/dist/session/title-generator.d.ts +1 -2
  289. package/dist/session/title-generator.d.ts.map +1 -1
  290. package/dist/session/title-generator.js +5 -9
  291. package/dist/session/types.cjs +16 -0
  292. package/dist/session/types.d.ts +14 -0
  293. package/dist/session/types.d.ts.map +1 -0
  294. package/dist/session/types.js +0 -0
  295. package/dist/storage/blob/factory.js +1 -1
  296. package/dist/storage/blob/local-blob-store.js +1 -1
  297. package/dist/storage/blob/memory-blob-store.js +1 -1
  298. package/dist/storage/blob/schemas.js +1 -1
  299. package/dist/storage/cache/factory.js +1 -1
  300. package/dist/storage/cache/memory-cache-store.js +1 -1
  301. package/dist/storage/cache/redis-store.js +1 -1
  302. package/dist/storage/cache/schemas.js +1 -1
  303. package/dist/storage/database/factory.js +1 -1
  304. package/dist/storage/database/memory-database-store.js +1 -1
  305. package/dist/storage/database/postgres-store.cjs +12 -0
  306. package/dist/storage/database/postgres-store.d.ts.map +1 -1
  307. package/dist/storage/database/postgres-store.js +13 -1
  308. package/dist/storage/database/schemas.js +1 -1
  309. package/dist/storage/database/sqlite-store.js +1 -1
  310. package/dist/storage/error-codes.js +1 -1
  311. package/dist/storage/errors.js +1 -1
  312. package/dist/storage/index.js +1 -1
  313. package/dist/storage/schemas.js +1 -1
  314. package/dist/storage/storage-manager.js +1 -1
  315. package/dist/systemPrompt/contributors.js +1 -1
  316. package/dist/systemPrompt/error-codes.js +1 -1
  317. package/dist/systemPrompt/errors.js +1 -1
  318. package/dist/systemPrompt/in-built-prompts.js +1 -1
  319. package/dist/systemPrompt/index.js +1 -1
  320. package/dist/systemPrompt/manager.js +1 -1
  321. package/dist/systemPrompt/registry.js +1 -1
  322. package/dist/systemPrompt/schemas.d.ts +5 -5
  323. package/dist/systemPrompt/schemas.js +1 -1
  324. package/dist/telemetry/decorators.js +1 -1
  325. package/dist/telemetry/error-codes.js +1 -1
  326. package/dist/telemetry/errors.js +1 -1
  327. package/dist/telemetry/exporters.js +1 -1
  328. package/dist/telemetry/index.js +1 -1
  329. package/dist/telemetry/schemas.js +1 -1
  330. package/dist/telemetry/telemetry.js +1 -1
  331. package/dist/telemetry/utils.js +1 -1
  332. package/dist/tools/bash-pattern-utils.cjs +91 -0
  333. package/dist/tools/bash-pattern-utils.d.ts +58 -0
  334. package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
  335. package/dist/tools/bash-pattern-utils.js +64 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  337. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
  338. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
  339. package/dist/tools/display-types.cjs +60 -0
  340. package/dist/tools/display-types.d.ts +133 -0
  341. package/dist/tools/display-types.d.ts.map +1 -0
  342. package/dist/tools/display-types.js +32 -0
  343. package/dist/tools/error-codes.cjs +2 -0
  344. package/dist/tools/error-codes.d.ts +3 -1
  345. package/dist/tools/error-codes.d.ts.map +1 -1
  346. package/dist/tools/error-codes.js +3 -1
  347. package/dist/tools/errors.cjs +30 -0
  348. package/dist/tools/errors.d.ts +16 -0
  349. package/dist/tools/errors.d.ts.map +1 -1
  350. package/dist/tools/errors.js +31 -1
  351. package/dist/tools/index.cjs +2 -0
  352. package/dist/tools/index.d.ts +1 -0
  353. package/dist/tools/index.d.ts.map +1 -1
  354. package/dist/tools/index.js +2 -1
  355. package/dist/tools/internal-tools/constants.js +1 -1
  356. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
  357. package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
  358. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +42 -18
  359. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
  360. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
  361. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
  362. package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
  363. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
  364. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
  365. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
  366. package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
  367. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
  368. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
  369. package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
  370. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
  371. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
  372. package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
  373. package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
  374. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
  375. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
  376. package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
  377. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
  378. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
  379. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
  380. package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
  381. package/dist/tools/internal-tools/provider.cjs +27 -10
  382. package/dist/tools/internal-tools/provider.d.ts +8 -5
  383. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  384. package/dist/tools/internal-tools/provider.js +28 -11
  385. package/dist/tools/internal-tools/registry.cjs +4 -3
  386. package/dist/tools/internal-tools/registry.d.ts +28 -7
  387. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  388. package/dist/tools/internal-tools/registry.js +5 -4
  389. package/dist/tools/schemas.cjs +16 -6
  390. package/dist/tools/schemas.d.ts +31 -4
  391. package/dist/tools/schemas.d.ts.map +1 -1
  392. package/dist/tools/schemas.js +14 -6
  393. package/dist/tools/tool-manager.cjs +140 -18
  394. package/dist/tools/tool-manager.d.ts +23 -1
  395. package/dist/tools/tool-manager.d.ts.map +1 -1
  396. package/dist/tools/tool-manager.js +145 -19
  397. package/dist/tools/types.d.ts +20 -0
  398. package/dist/tools/types.d.ts.map +1 -1
  399. package/dist/utils/api-key-resolver.js +1 -1
  400. package/dist/utils/async-context.js +1 -1
  401. package/dist/utils/debug.js +1 -1
  402. package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
  403. package/dist/utils/defer.d.ts +63 -0
  404. package/dist/utils/defer.d.ts.map +1 -0
  405. package/dist/utils/defer.js +19 -0
  406. package/dist/utils/env-file.js +1 -1
  407. package/dist/utils/error-conversion.js +1 -1
  408. package/dist/utils/execution-context.js +1 -1
  409. package/dist/utils/fs-walk.js +1 -1
  410. package/dist/utils/index.cjs +3 -1
  411. package/dist/utils/index.d.ts +1 -0
  412. package/dist/utils/index.d.ts.map +1 -1
  413. package/dist/utils/index.js +1 -0
  414. package/dist/utils/path.js +1 -1
  415. package/dist/utils/redactor.js +1 -1
  416. package/dist/utils/result.js +1 -1
  417. package/dist/utils/safe-stringify.js +1 -1
  418. package/dist/utils/schema-metadata.js +1 -1
  419. package/dist/utils/schema.js +1 -1
  420. package/dist/utils/service-initializer.cjs +6 -2
  421. package/dist/utils/service-initializer.d.ts.map +1 -1
  422. package/dist/utils/service-initializer.js +7 -3
  423. package/dist/utils/user-info.js +1 -1
  424. package/dist/utils/zod-schema-converter.js +1 -1
  425. package/package.json +6 -7
  426. package/dist/context/compression/middle-removal.cjs +0 -95
  427. package/dist/context/compression/middle-removal.d.ts +0 -47
  428. package/dist/context/compression/middle-removal.d.ts.map +0 -1
  429. package/dist/context/compression/middle-removal.js +0 -72
  430. package/dist/context/compression/oldest-removal.cjs +0 -83
  431. package/dist/context/compression/oldest-removal.d.ts +0 -42
  432. package/dist/context/compression/oldest-removal.d.ts.map +0 -1
  433. package/dist/context/compression/oldest-removal.js +0 -60
  434. package/dist/llm/formatters/anthropic.cjs +0 -257
  435. package/dist/llm/formatters/anthropic.d.ts +0 -46
  436. package/dist/llm/formatters/anthropic.d.ts.map +0 -1
  437. package/dist/llm/formatters/anthropic.js +0 -239
  438. package/dist/llm/formatters/factory.cjs +0 -50
  439. package/dist/llm/formatters/factory.d.ts +0 -10
  440. package/dist/llm/formatters/factory.d.ts.map +0 -1
  441. package/dist/llm/formatters/factory.js +0 -27
  442. package/dist/llm/formatters/openai.cjs +0 -203
  443. package/dist/llm/formatters/openai.d.ts +0 -39
  444. package/dist/llm/formatters/openai.d.ts.map +0 -1
  445. package/dist/llm/formatters/openai.js +0 -184
  446. package/dist/llm/formatters/types.d.ts +0 -41
  447. package/dist/llm/formatters/types.d.ts.map +0 -1
  448. package/dist/llm/services/anthropic.cjs +0 -511
  449. package/dist/llm/services/anthropic.d.ts +0 -48
  450. package/dist/llm/services/anthropic.d.ts.map +0 -1
  451. package/dist/llm/services/anthropic.js +0 -447
  452. package/dist/llm/services/openai.cjs +0 -611
  453. package/dist/llm/services/openai.d.ts +0 -48
  454. package/dist/llm/services/openai.d.ts.map +0 -1
  455. package/dist/llm/services/openai.js +0 -547
  456. package/dist/llm/tokenizer/anthropic.cjs +0 -43
  457. package/dist/llm/tokenizer/anthropic.d.ts +0 -19
  458. package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
  459. package/dist/llm/tokenizer/anthropic.js +0 -20
  460. package/dist/llm/tokenizer/default.d.ts +0 -14
  461. package/dist/llm/tokenizer/default.d.ts.map +0 -1
  462. package/dist/llm/tokenizer/default.js +0 -18
  463. package/dist/llm/tokenizer/factory.cjs +0 -44
  464. package/dist/llm/tokenizer/factory.d.ts +0 -12
  465. package/dist/llm/tokenizer/factory.d.ts.map +0 -1
  466. package/dist/llm/tokenizer/factory.js +0 -21
  467. package/dist/llm/tokenizer/google.cjs +0 -52
  468. package/dist/llm/tokenizer/google.d.ts +0 -29
  469. package/dist/llm/tokenizer/google.d.ts.map +0 -1
  470. package/dist/llm/tokenizer/google.js +0 -29
  471. package/dist/llm/tokenizer/openai.cjs +0 -115
  472. package/dist/llm/tokenizer/openai.d.ts +0 -41
  473. package/dist/llm/tokenizer/openai.d.ts.map +0 -1
  474. package/dist/llm/tokenizer/openai.js +0 -91
  475. package/dist/llm/tokenizer/types.d.ts +0 -18
  476. package/dist/llm/tokenizer/types.d.ts.map +0 -1
  477. package/dist/llm/tokenizer/types.js +0 -10
  478. /package/dist/llm/{formatters → executor}/types.cjs +0 -0
  479. /package/dist/llm/{formatters → executor}/types.js +0 -0
@@ -85,23 +85,6 @@ class ProcessService {
85
85
  throw import_errors.ProcessError.invalidCommand(command, validation.error || "Unknown error");
86
86
  }
87
87
  const normalizedCommand = validation.normalizedCommand;
88
- if (validation.requiresApproval) {
89
- if (!options.approvalFunction) {
90
- throw import_errors.ProcessError.approvalRequired(
91
- normalizedCommand,
92
- "Command requires approval but no approval mechanism provided"
93
- );
94
- }
95
- this.logger.info(
96
- `Command requires approval: ${normalizedCommand} - requesting user confirmation`
97
- );
98
- const approved = await options.approvalFunction(normalizedCommand);
99
- if (!approved) {
100
- this.logger.info(`Command approval denied: ${normalizedCommand}`);
101
- throw import_errors.ProcessError.approvalDenied(normalizedCommand);
102
- }
103
- this.logger.info(`Command approved: ${normalizedCommand}`);
104
- }
105
88
  const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
106
89
  const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
107
90
  const cwd = this.resolveSafeCwd(options.cwd);
@@ -122,11 +105,41 @@ class ProcessService {
122
105
  cwd,
123
106
  timeout,
124
107
  env,
125
- ...options.description !== void 0 && { description: options.description }
108
+ ...options.description !== void 0 && { description: options.description },
109
+ ...options.abortSignal !== void 0 && { abortSignal: options.abortSignal }
126
110
  });
127
111
  }
112
+ static SIGKILL_TIMEOUT_MS = 200;
113
+ /**
114
+ * Kill a process tree (process group on Unix, taskkill on Windows)
115
+ */
116
+ async killProcessTree(pid, child) {
117
+ if (process.platform === "win32") {
118
+ await new Promise((resolve) => {
119
+ const killer = (0, import_node_child_process.spawn)("taskkill", ["/pid", String(pid), "/f", "/t"], {
120
+ stdio: "ignore"
121
+ });
122
+ killer.once("exit", () => resolve());
123
+ killer.once("error", () => resolve());
124
+ });
125
+ } else {
126
+ try {
127
+ process.kill(-pid, "SIGTERM");
128
+ await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
129
+ if (child.exitCode === null) {
130
+ process.kill(-pid, "SIGKILL");
131
+ }
132
+ } catch {
133
+ child.kill("SIGTERM");
134
+ await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
135
+ if (child.exitCode === null) {
136
+ child.kill("SIGKILL");
137
+ }
138
+ }
139
+ }
140
+ }
128
141
  /**
129
- * Execute command in foreground with timeout
142
+ * Execute command in foreground with timeout and abort support
130
143
  */
131
144
  executeForeground(command, options) {
132
145
  return new Promise((resolve, reject) => {
@@ -134,22 +147,47 @@ class ProcessService {
134
147
  let stdout = "";
135
148
  let stderr = "";
136
149
  let killed = false;
150
+ let aborted = false;
137
151
  let closed = false;
152
+ if (options.abortSignal?.aborted) {
153
+ this.logger.debug(`Command cancelled before execution: ${command}`);
154
+ resolve({
155
+ stdout: "",
156
+ stderr: "(Command was cancelled)",
157
+ exitCode: 130,
158
+ // Standard exit code for SIGINT
159
+ duration: 0
160
+ });
161
+ return;
162
+ }
138
163
  this.logger.debug(`Executing command: ${command}`);
139
164
  const child = (0, import_node_child_process.spawn)(command, {
140
165
  cwd: options.cwd,
141
166
  env: options.env,
142
- shell: true
167
+ shell: true,
168
+ detached: process.platform !== "win32"
169
+ // Create process group on Unix
143
170
  });
144
171
  const timeoutHandle = setTimeout(() => {
145
172
  killed = true;
146
- child.kill("SIGTERM");
147
- setTimeout(() => {
148
- if (!closed && child.exitCode === null) {
149
- child.kill("SIGKILL");
150
- }
151
- }, 5e3);
173
+ if (child.pid) {
174
+ void this.killProcessTree(child.pid, child);
175
+ } else {
176
+ child.kill("SIGTERM");
177
+ }
152
178
  }, options.timeout);
179
+ const abortHandler = () => {
180
+ if (closed) return;
181
+ aborted = true;
182
+ this.logger.debug(`Command cancelled by user: ${command}`);
183
+ clearTimeout(timeoutHandle);
184
+ if (child.pid) {
185
+ void this.killProcessTree(child.pid, child);
186
+ } else {
187
+ child.kill("SIGTERM");
188
+ }
189
+ };
190
+ options.abortSignal?.addEventListener("abort", abortHandler, { once: true });
153
191
  child.stdout?.on("data", (data) => {
154
192
  stdout += data.toString();
155
193
  });
@@ -159,7 +197,20 @@ class ProcessService {
159
197
  child.on("close", (code, signal) => {
160
198
  closed = true;
161
199
  clearTimeout(timeoutHandle);
200
+ options.abortSignal?.removeEventListener("abort", abortHandler);
162
201
  const duration = Date.now() - startTime;
202
+ if (aborted) {
203
+ stdout += "\n\n(Command was cancelled)";
204
+ this.logger.debug(`Command cancelled after ${duration}ms: ${command}`);
205
+ resolve({
206
+ stdout,
207
+ stderr,
208
+ exitCode: 130,
209
+ // Standard exit code for SIGINT
210
+ duration
211
+ });
212
+ return;
213
+ }
163
214
  if (killed) {
164
215
  reject(import_errors.ProcessError.timeout(command, options.timeout));
165
216
  return;
@@ -181,6 +232,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
181
232
  });
182
233
  child.on("error", (error) => {
183
234
  clearTimeout(timeoutHandle);
235
+ options.abortSignal?.removeEventListener("abort", abortHandler);
184
236
  if (error.code === "ENOENT") {
185
237
  reject(import_errors.ProcessError.commandNotFound(command));
186
238
  } else if (error.code === "EACCES") {
@@ -24,8 +24,13 @@ export declare class ProcessService {
24
24
  * Execute a command
25
25
  */
26
26
  executeCommand(command: string, options?: ExecuteOptions): Promise<ProcessResult | ProcessHandle>;
27
+ private static readonly SIGKILL_TIMEOUT_MS;
27
28
  /**
28
- * Execute command in foreground with timeout
29
+ * Kill a process tree (process group on Unix, taskkill on Windows)
30
+ */
31
+ private killProcessTree;
32
+ /**
33
+ * Execute command in foreground with timeout and abort support
29
34
  */
30
35
  private executeForeground;
31
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"process-service.d.ts","sourceRoot":"","sources":["../../src/process/process-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAEd,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAuB1D;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,YAAK,EAAE,MAAM,EAAE,YAAY;IAkBrE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAwEzC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsFzB;;OAEG;YACW,mBAAmB;IAiKjC;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+BjE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB7C;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC;IAIpC;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAcjC"}
1
+ {"version":3,"file":"process-service.d.ts","sourceRoot":"","sources":["../../src/process/process-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EACH,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,WAAW,EAEd,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAuB1D;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,YAAK,EAAE,MAAM,EAAE,YAAY;IAkBrE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC7B,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAuDzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IAEjD;;OAEG;YACW,eAAe;IA6B7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsIzB;;OAEG;YACW,mBAAmB;IAiKjC;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+BjE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB7C;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC;IAIpC;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAcjC"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { spawn } from "node:child_process";
3
3
  import * as crypto from "node:crypto";
4
4
  import * as path from "node:path";
@@ -53,23 +53,6 @@ class ProcessService {
53
53
  throw ProcessError.invalidCommand(command, validation.error || "Unknown error");
54
54
  }
55
55
  const normalizedCommand = validation.normalizedCommand;
56
- if (validation.requiresApproval) {
57
- if (!options.approvalFunction) {
58
- throw ProcessError.approvalRequired(
59
- normalizedCommand,
60
- "Command requires approval but no approval mechanism provided"
61
- );
62
- }
63
- this.logger.info(
64
- `Command requires approval: ${normalizedCommand} - requesting user confirmation`
65
- );
66
- const approved = await options.approvalFunction(normalizedCommand);
67
- if (!approved) {
68
- this.logger.info(`Command approval denied: ${normalizedCommand}`);
69
- throw ProcessError.approvalDenied(normalizedCommand);
70
- }
71
- this.logger.info(`Command approved: ${normalizedCommand}`);
72
- }
73
56
  const rawTimeout = options.timeout !== void 0 && Number.isFinite(options.timeout) ? options.timeout : DEFAULT_TIMEOUT;
74
57
  const timeout = Math.max(1, Math.min(rawTimeout, this.config.maxTimeout));
75
58
  const cwd = this.resolveSafeCwd(options.cwd);
@@ -90,11 +73,41 @@ class ProcessService {
90
73
  cwd,
91
74
  timeout,
92
75
  env,
93
- ...options.description !== void 0 && { description: options.description }
76
+ ...options.description !== void 0 && { description: options.description },
77
+ ...options.abortSignal !== void 0 && { abortSignal: options.abortSignal }
94
78
  });
95
79
  }
80
+ static SIGKILL_TIMEOUT_MS = 200;
81
+ /**
82
+ * Kill a process tree (process group on Unix, taskkill on Windows)
83
+ */
84
+ async killProcessTree(pid, child) {
85
+ if (process.platform === "win32") {
86
+ await new Promise((resolve) => {
87
+ const killer = spawn("taskkill", ["/pid", String(pid), "/f", "/t"], {
88
+ stdio: "ignore"
89
+ });
90
+ killer.once("exit", () => resolve());
91
+ killer.once("error", () => resolve());
92
+ });
93
+ } else {
94
+ try {
95
+ process.kill(-pid, "SIGTERM");
96
+ await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
97
+ if (child.exitCode === null) {
98
+ process.kill(-pid, "SIGKILL");
99
+ }
100
+ } catch {
101
+ child.kill("SIGTERM");
102
+ await new Promise((res) => setTimeout(res, ProcessService.SIGKILL_TIMEOUT_MS));
103
+ if (child.exitCode === null) {
104
+ child.kill("SIGKILL");
105
+ }
106
+ }
107
+ }
108
+ }
96
109
  /**
97
- * Execute command in foreground with timeout
110
+ * Execute command in foreground with timeout and abort support
98
111
  */
99
112
  executeForeground(command, options) {
100
113
  return new Promise((resolve, reject) => {
@@ -102,22 +115,47 @@ class ProcessService {
102
115
  let stdout = "";
103
116
  let stderr = "";
104
117
  let killed = false;
118
+ let aborted = false;
105
119
  let closed = false;
120
+ if (options.abortSignal?.aborted) {
121
+ this.logger.debug(`Command cancelled before execution: ${command}`);
122
+ resolve({
123
+ stdout: "",
124
+ stderr: "(Command was cancelled)",
125
+ exitCode: 130,
126
+ // Standard exit code for SIGINT
127
+ duration: 0
128
+ });
129
+ return;
130
+ }
106
131
  this.logger.debug(`Executing command: ${command}`);
107
132
  const child = spawn(command, {
108
133
  cwd: options.cwd,
109
134
  env: options.env,
110
- shell: true
135
+ shell: true,
136
+ detached: process.platform !== "win32"
137
+ // Create process group on Unix
111
138
  });
112
139
  const timeoutHandle = setTimeout(() => {
113
140
  killed = true;
114
- child.kill("SIGTERM");
115
- setTimeout(() => {
116
- if (!closed && child.exitCode === null) {
117
- child.kill("SIGKILL");
118
- }
119
- }, 5e3);
141
+ if (child.pid) {
142
+ void this.killProcessTree(child.pid, child);
143
+ } else {
144
+ child.kill("SIGTERM");
145
+ }
120
146
  }, options.timeout);
147
+ const abortHandler = () => {
148
+ if (closed) return;
149
+ aborted = true;
150
+ this.logger.debug(`Command cancelled by user: ${command}`);
151
+ clearTimeout(timeoutHandle);
152
+ if (child.pid) {
153
+ void this.killProcessTree(child.pid, child);
154
+ } else {
155
+ child.kill("SIGTERM");
156
+ }
157
+ };
158
+ options.abortSignal?.addEventListener("abort", abortHandler, { once: true });
121
159
  child.stdout?.on("data", (data) => {
122
160
  stdout += data.toString();
123
161
  });
@@ -127,7 +165,20 @@ class ProcessService {
127
165
  child.on("close", (code, signal) => {
128
166
  closed = true;
129
167
  clearTimeout(timeoutHandle);
168
+ options.abortSignal?.removeEventListener("abort", abortHandler);
130
169
  const duration = Date.now() - startTime;
170
+ if (aborted) {
171
+ stdout += "\n\n(Command was cancelled)";
172
+ this.logger.debug(`Command cancelled after ${duration}ms: ${command}`);
173
+ resolve({
174
+ stdout,
175
+ stderr,
176
+ exitCode: 130,
177
+ // Standard exit code for SIGINT
178
+ duration
179
+ });
180
+ return;
181
+ }
131
182
  if (killed) {
132
183
  reject(ProcessError.timeout(command, options.timeout));
133
184
  return;
@@ -149,6 +200,7 @@ Process terminated by signal ${signal ?? "UNKNOWN"}`;
149
200
  });
150
201
  child.on("error", (error) => {
151
202
  clearTimeout(timeoutHandle);
203
+ options.abortSignal?.removeEventListener("abort", abortHandler);
152
204
  if (error.code === "ENOENT") {
153
205
  reject(ProcessError.commandNotFound(command));
154
206
  } else if (error.code === "EACCES") {
@@ -17,8 +17,8 @@ export interface ExecuteOptions {
17
17
  env?: Record<string, string> | undefined;
18
18
  /** Description of what the command does (5-10 words) */
19
19
  description?: string | undefined;
20
- /** Optional approval function for dangerous commands - called when CommandValidator flags requiresApproval */
21
- approvalFunction?: (command: string) => Promise<boolean>;
20
+ /** Abort signal for cancellation support */
21
+ abortSignal?: AbortSignal | undefined;
22
22
  }
23
23
  /**
24
24
  * Process execution result (foreground execution only)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/process/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/process/types.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
30
30
  PromptErrorCode2["PROMPT_MISSING_TEXT"] = "prompt_missing_text";
31
31
  PromptErrorCode2["PROMPT_MISSING_REQUIRED_ARGUMENTS"] = "prompt_missing_required_arguments";
32
32
  PromptErrorCode2["PROMPT_ALREADY_EXISTS"] = "prompt_already_exists";
33
+ PromptErrorCode2["PROMPT_CONFIG_INVALID"] = "prompt_config_invalid";
33
34
  return PromptErrorCode2;
34
35
  })(PromptErrorCode || {});
35
36
  // Annotate the CommonJS export names for ESM import in node:
@@ -10,6 +10,7 @@ export declare enum PromptErrorCode {
10
10
  PROMPT_INVALID_NAME = "prompt_invalid_name",
11
11
  PROMPT_MISSING_TEXT = "prompt_missing_text",
12
12
  PROMPT_MISSING_REQUIRED_ARGUMENTS = "prompt_missing_required_arguments",
13
- PROMPT_ALREADY_EXISTS = "prompt_already_exists"
13
+ PROMPT_ALREADY_EXISTS = "prompt_already_exists",
14
+ PROMPT_CONFIG_INVALID = "prompt_config_invalid"
14
15
  }
15
16
  //# sourceMappingURL=error-codes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/prompts/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,yBAAyB,8BAA8B;IAGvD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,iCAAiC,sCAAsC;IACvE,qBAAqB,0BAA0B;CAClD"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/prompts/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IAEvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,yBAAyB,8BAA8B;IAGvD,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,iCAAiC,sCAAsC;IACvE,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;CAClD"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
3
3
  PromptErrorCode2["PROMPT_NOT_FOUND"] = "prompt_not_found";
4
4
  PromptErrorCode2["PROMPT_EMPTY_CONTENT"] = "prompt_empty_content";
@@ -8,6 +8,7 @@ var PromptErrorCode = /* @__PURE__ */ ((PromptErrorCode2) => {
8
8
  PromptErrorCode2["PROMPT_MISSING_TEXT"] = "prompt_missing_text";
9
9
  PromptErrorCode2["PROMPT_MISSING_REQUIRED_ARGUMENTS"] = "prompt_missing_required_arguments";
10
10
  PromptErrorCode2["PROMPT_ALREADY_EXISTS"] = "prompt_already_exists";
11
+ PromptErrorCode2["PROMPT_CONFIG_INVALID"] = "prompt_config_invalid";
11
12
  return PromptErrorCode2;
12
13
  })(PromptErrorCode || {});
13
14
  export {
@@ -137,6 +137,21 @@ class PromptError {
137
137
  { name }
138
138
  );
139
139
  }
140
+ /**
141
+ * Prompts config validation failed
142
+ */
143
+ static validationFailed(details) {
144
+ return new import_DextoValidationError.DextoValidationError([
145
+ {
146
+ code: import_error_codes.PromptErrorCode.PROMPT_CONFIG_INVALID,
147
+ message: `Invalid prompts configuration: ${details}`,
148
+ scope: import_types.ErrorScope.PROMPT,
149
+ type: import_types.ErrorType.USER,
150
+ severity: "error",
151
+ context: { details }
152
+ }
153
+ ]);
154
+ }
140
155
  }
141
156
  // Annotate the CommonJS export names for ESM import in node:
142
157
  0 && (module.exports = {
@@ -41,5 +41,9 @@ export declare class PromptError {
41
41
  static emptyResolvedContent(name: string): DextoRuntimeError<{
42
42
  name: string;
43
43
  }>;
44
+ /**
45
+ * Prompts config validation failed
46
+ */
47
+ static validationFailed(details: string): DextoValidationError;
44
48
  }
45
49
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prompts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E;;;GAGG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;;;IAU5B;;OAEG;IACH,MAAM,CAAC,WAAW;IAalB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE;IAatD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;IAUtC;;OAEG;IACH,MAAM,CAAC,YAAY;IAanB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAelF,6CAA6C;IAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAajC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;CAS3C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/prompts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAI5E;;;GAGG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;;;IAU5B;;OAEG;IACH,MAAM,CAAC,WAAW;IAalB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE;IAatD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;;;IAUtC;;OAEG;IACH,MAAM,CAAC,YAAY;IAanB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAelF,6CAA6C;IAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAajC;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;IAUxC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;CAY1C"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
3
3
  import { DextoValidationError } from "../errors/DextoValidationError.js";
4
4
  import { ErrorScope, ErrorType } from "../errors/types.js";
@@ -115,6 +115,21 @@ class PromptError {
115
115
  { name }
116
116
  );
117
117
  }
118
+ /**
119
+ * Prompts config validation failed
120
+ */
121
+ static validationFailed(details) {
122
+ return new DextoValidationError([
123
+ {
124
+ code: PromptErrorCode.PROMPT_CONFIG_INVALID,
125
+ message: `Invalid prompts configuration: ${details}`,
126
+ scope: ErrorScope.PROMPT,
127
+ type: ErrorType.USER,
128
+ severity: "error",
129
+ context: { details }
130
+ }
131
+ ]);
132
+ }
118
133
  }
119
134
  export {
120
135
  PromptError
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { PromptManager } from "./prompt-manager.js";
3
3
  import { MCPPromptProvider } from "./providers/mcp-prompt-provider.js";
4
4
  import { CustomPromptProvider } from "./providers/custom-prompt-provider.js";
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { PromptError } from "./errors.js";
3
3
  const PROMPT_NAME_REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
4
4
  const PROMPT_NAME_GUIDANCE = "kebab-case (lowercase letters and numbers separated by single hyphens)";
@@ -32,8 +32,9 @@ class PromptManager {
32
32
  this.eventBus = eventBus;
33
33
  this.database = database;
34
34
  this.logger = logger.createChild(import_types.DextoLogComponent.PROMPT);
35
+ this.configProvider = new import_config_prompt_provider.ConfigPromptProvider(agentConfig, this.logger);
35
36
  this.providers.set("mcp", new import_mcp_prompt_provider.MCPPromptProvider(mcpManager, this.logger));
36
- this.providers.set("config", new import_config_prompt_provider.ConfigPromptProvider(agentConfig, this.logger));
37
+ this.providers.set("config", this.configProvider);
37
38
  this.providers.set(
38
39
  "custom",
39
40
  new import_custom_prompt_provider.CustomPromptProvider(this.database, resourceManager, this.logger)
@@ -64,6 +65,7 @@ class PromptManager {
64
65
  });
65
66
  }
66
67
  providers = /* @__PURE__ */ new Map();
68
+ configProvider;
67
69
  promptIndex;
68
70
  aliasMap = /* @__PURE__ */ new Map();
69
71
  buildPromise = null;
@@ -209,6 +211,16 @@ class PromptManager {
209
211
  await this.ensureCache();
210
212
  this.logger.info("PromptManager refreshed");
211
213
  }
214
+ /**
215
+ * Updates the config prompts at runtime.
216
+ * Call this after modifying the agent config file to reflect new prompts.
217
+ */
218
+ updateConfigPrompts(prompts) {
219
+ this.configProvider.updatePrompts(prompts);
220
+ this.promptIndex = void 0;
221
+ this.aliasMap.clear();
222
+ this.logger.debug("Config prompts updated");
223
+ }
212
224
  /**
213
225
  * Surgically update prompts for a specific MCP server instead of full cache rebuild
214
226
  */
@@ -260,7 +272,6 @@ class PromptManager {
260
272
  const metadata = { ...prompt.metadata ?? {} };
261
273
  delete metadata.content;
262
274
  delete metadata.prompt;
263
- delete metadata.filePath;
264
275
  delete metadata.messages;
265
276
  if (!metadata.originalName) {
266
277
  metadata.originalName = prompt.name;
@@ -2,6 +2,7 @@ import type { MCPManager } from '../mcp/manager.js';
2
2
  import type { PromptSet, PromptInfo } from './types.js';
3
3
  import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
4
4
  import type { ValidatedAgentConfig } from '../agent/schemas.js';
5
+ import type { PromptsConfig } from './schemas.js';
5
6
  import type { AgentEventBus } from '../events/index.js';
6
7
  import { type CreateCustomPromptInput } from './providers/custom-prompt-provider.js';
7
8
  import type { IDextoLogger } from '../logger/v2/types.js';
@@ -11,6 +12,7 @@ export declare class PromptManager {
11
12
  private readonly eventBus;
12
13
  private readonly database;
13
14
  private providers;
15
+ private configProvider;
14
16
  private promptIndex;
15
17
  private aliasMap;
16
18
  private buildPromise;
@@ -59,6 +61,11 @@ export declare class PromptManager {
59
61
  resources: string[];
60
62
  }>;
61
63
  refresh(): Promise<void>;
64
+ /**
65
+ * Updates the config prompts at runtime.
66
+ * Call this after modifying the agent config file to reflect new prompts.
67
+ */
68
+ updateConfigPrompts(prompts: PromptsConfig): void;
62
69
  /**
63
70
  * Surgically update prompts for a specific MCP server instead of full cache rebuild
64
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-manager.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAU7D,qBAAa,aAAa;IAWlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX7B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,MAAM,CAAe;gBAGzB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,oBAAoB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,QAAQ,EACnC,MAAM,EAAE,YAAY;IAwClB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAU1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAY9F;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAkDjF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7D,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAUvE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD;;;;;;;;;;;;OAYG;IACG,aAAa,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7B,GACP,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,kBAAkB;YAqBZ,WAAW;YAgBX,UAAU;IA4BxB,OAAO,CAAC,YAAY;YA8DN,SAAS;CAgB1B"}
1
+ {"version":3,"file":"prompt-manager.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAU7D,qBAAa,aAAa;IAYlB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ7B,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,MAAM,CAAe;gBAGzB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,oBAAoB,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,QAAQ,EACnC,MAAM,EAAE,YAAY;IAyClB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAU1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAY9F;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAkDjF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7D,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAUvE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD;;;;;;;;;;;;OAYG;IACG,aAAa,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7B,GACP,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAOjD;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,kBAAkB;YAqBZ,WAAW;YAgBX,UAAU;IA4BxB,OAAO,CAAC,YAAY;YA8DN,SAAS;CAgB1B"}
@@ -1,4 +1,4 @@
1
- import "../chunk-C6A6W6XS.js";
1
+ import "../chunk-PTJYTZNU.js";
2
2
  import { MCPPromptProvider } from "./providers/mcp-prompt-provider.js";
3
3
  import { ConfigPromptProvider } from "./providers/config-prompt-provider.js";
4
4
  import {
@@ -12,8 +12,9 @@ class PromptManager {
12
12
  this.eventBus = eventBus;
13
13
  this.database = database;
14
14
  this.logger = logger.createChild(DextoLogComponent.PROMPT);
15
+ this.configProvider = new ConfigPromptProvider(agentConfig, this.logger);
15
16
  this.providers.set("mcp", new MCPPromptProvider(mcpManager, this.logger));
16
- this.providers.set("config", new ConfigPromptProvider(agentConfig, this.logger));
17
+ this.providers.set("config", this.configProvider);
17
18
  this.providers.set(
18
19
  "custom",
19
20
  new CustomPromptProvider(this.database, resourceManager, this.logger)
@@ -44,6 +45,7 @@ class PromptManager {
44
45
  });
45
46
  }
46
47
  providers = /* @__PURE__ */ new Map();
48
+ configProvider;
47
49
  promptIndex;
48
50
  aliasMap = /* @__PURE__ */ new Map();
49
51
  buildPromise = null;
@@ -189,6 +191,16 @@ class PromptManager {
189
191
  await this.ensureCache();
190
192
  this.logger.info("PromptManager refreshed");
191
193
  }
194
+ /**
195
+ * Updates the config prompts at runtime.
196
+ * Call this after modifying the agent config file to reflect new prompts.
197
+ */
198
+ updateConfigPrompts(prompts) {
199
+ this.configProvider.updatePrompts(prompts);
200
+ this.promptIndex = void 0;
201
+ this.aliasMap.clear();
202
+ this.logger.debug("Config prompts updated");
203
+ }
192
204
  /**
193
205
  * Surgically update prompts for a specific MCP server instead of full cache rebuild
194
206
  */
@@ -240,7 +252,6 @@ class PromptManager {
240
252
  const metadata = { ...prompt.metadata ?? {} };
241
253
  delete metadata.content;
242
254
  delete metadata.prompt;
243
- delete metadata.filePath;
244
255
  delete metadata.messages;
245
256
  if (!metadata.originalName) {
246
257
  metadata.originalName = prompt.name;
@@ -21,6 +21,7 @@ __export(config_prompt_provider_exports, {
21
21
  ConfigPromptProvider: () => ConfigPromptProvider
22
22
  });
23
23
  module.exports = __toCommonJS(config_prompt_provider_exports);
24
+ var import_schemas = require("../schemas.js");
24
25
  var import_types = require("../../logger/v2/types.js");
25
26
  var import_errors = require("../errors.js");
26
27
  var import_utils = require("../utils.js");
@@ -48,8 +49,14 @@ class ConfigPromptProvider {
48
49
  this.promptContent.clear();
49
50
  this.logger.debug("ConfigPromptProvider cache invalidated");
50
51
  }
51
- updateConfig(agentConfig) {
52
- this.prompts = agentConfig.prompts;
52
+ updatePrompts(prompts) {
53
+ const result = import_schemas.PromptsSchema.safeParse(prompts);
54
+ if (!result.success) {
55
+ const errorMsg = result.error.issues.map((i) => i.message).join(", ");
56
+ this.logger.error(`Invalid prompts config: ${errorMsg}`);
57
+ throw import_errors.PromptError.validationFailed(errorMsg);
58
+ }
59
+ this.prompts = result.data;
53
60
  this.invalidateCache();
54
61
  this.buildPromptsCache();
55
62
  }
@@ -105,7 +112,7 @@ class ConfigPromptProvider {
105
112
  async buildPromptsCache() {
106
113
  const cache = [];
107
114
  const contentMap = /* @__PURE__ */ new Map();
108
- for (const prompt of this.prompts) {
115
+ for (const prompt of this.prompts ?? []) {
109
116
  try {
110
117
  if (prompt.type === "inline") {
111
118
  const { info, content } = this.processInlinePrompt(prompt);
@@ -138,6 +145,7 @@ class ConfigPromptProvider {
138
145
  const promptName = `config:${prompt.id}`;
139
146
  const promptInfo = {
140
147
  name: promptName,
148
+ displayName: prompt.id,
141
149
  title: prompt.title,
142
150
  description: prompt.description,
143
151
  source: "config",
@@ -189,6 +197,7 @@ class ConfigPromptProvider {
189
197
  }
190
198
  const promptInfo = {
191
199
  name: `config:${parsed.id}`,
200
+ displayName: parsed.id,
192
201
  title: parsed.title,
193
202
  description: parsed.description,
194
203
  source: "config",