@bastani/atomic 0.9.24 → 0.9.25-alpha.2

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 (430) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/builtin/intercom/index.bundle.mjs +5 -0
  3. package/dist/builtin/intercom/package.json +2 -2
  4. package/dist/builtin/mcp/CHANGELOG.md +11 -0
  5. package/dist/builtin/mcp/index.bundle.mjs +219 -71
  6. package/dist/builtin/mcp/package.json +6 -2
  7. package/dist/builtin/subagents/package.json +3 -3
  8. package/dist/builtin/subagents/src/extension/index.bundle.mjs +1 -0
  9. package/dist/builtin/web-access/index.bundle.mjs +7 -6
  10. package/dist/builtin/web-access/package.json +2 -2
  11. package/dist/builtin/workflows/CHANGELOG.md +6 -0
  12. package/dist/builtin/workflows/package.json +2 -2
  13. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
  14. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_1_sol.md +66 -0
  15. package/dist/builtin/workflows/src/extension/index.bundle.mjs +1 -0
  16. package/dist/cli/startup-ui.d.ts +3 -4
  17. package/dist/cli/startup-ui.d.ts.map +1 -1
  18. package/dist/cli/startup-ui.js +3 -4
  19. package/dist/cli/startup-ui.js.map +1 -1
  20. package/dist/config.d.ts +3 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +17 -0
  23. package/dist/config.js.map +1 -1
  24. package/dist/core/agent-session-events.d.ts.map +1 -1
  25. package/dist/core/agent-session-events.js +5 -0
  26. package/dist/core/agent-session-events.js.map +1 -1
  27. package/dist/core/agent-session-export.d.ts.map +1 -1
  28. package/dist/core/agent-session-export.js +3 -0
  29. package/dist/core/agent-session-export.js.map +1 -1
  30. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  31. package/dist/core/agent-session-extension-bindings.js +4 -0
  32. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  33. package/dist/core/agent-session-methods.d.ts +2 -1
  34. package/dist/core/agent-session-methods.d.ts.map +1 -1
  35. package/dist/core/agent-session-methods.js.map +1 -1
  36. package/dist/core/agent-session-nested-tools.d.ts +10 -0
  37. package/dist/core/agent-session-nested-tools.d.ts.map +1 -0
  38. package/dist/core/agent-session-nested-tools.js +76 -0
  39. package/dist/core/agent-session-nested-tools.js.map +1 -0
  40. package/dist/core/agent-session-runtime-auth.js +3 -1
  41. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  42. package/dist/core/agent-session-state.d.ts +2 -0
  43. package/dist/core/agent-session-state.d.ts.map +1 -1
  44. package/dist/core/agent-session-state.js +11 -11
  45. package/dist/core/agent-session-state.js.map +1 -1
  46. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  47. package/dist/core/agent-session-tool-hooks.js +18 -3
  48. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  49. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  50. package/dist/core/agent-session-tool-registry.js +15 -3
  51. package/dist/core/agent-session-tool-registry.js.map +1 -1
  52. package/dist/core/agent-session-types.d.ts +6 -2
  53. package/dist/core/agent-session-types.d.ts.map +1 -1
  54. package/dist/core/agent-session-types.js.map +1 -1
  55. package/dist/core/builtin-resource-loader.d.ts.map +1 -1
  56. package/dist/core/builtin-resource-loader.js +13 -1
  57. package/dist/core/builtin-resource-loader.js.map +1 -1
  58. package/dist/core/compaction/utils.d.ts +1 -1
  59. package/dist/core/compaction/utils.d.ts.map +1 -1
  60. package/dist/core/compaction/utils.js +18 -18
  61. package/dist/core/compaction/utils.js.map +1 -1
  62. package/dist/core/execution-model-router.d.ts.map +1 -1
  63. package/dist/core/execution-model-router.js +24 -8
  64. package/dist/core/execution-model-router.js.map +1 -1
  65. package/dist/core/export-html/template.js +12 -0
  66. package/dist/core/extensions/agent-events.d.ts +3 -0
  67. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  68. package/dist/core/extensions/agent-events.js.map +1 -1
  69. package/dist/core/extensions/api-types.d.ts +2 -0
  70. package/dist/core/extensions/api-types.d.ts.map +1 -1
  71. package/dist/core/extensions/api-types.js.map +1 -1
  72. package/dist/core/extensions/context-types.d.ts +9 -0
  73. package/dist/core/extensions/context-types.d.ts.map +1 -1
  74. package/dist/core/extensions/context-types.js.map +1 -1
  75. package/dist/core/extensions/event-results.d.ts +3 -0
  76. package/dist/core/extensions/event-results.d.ts.map +1 -1
  77. package/dist/core/extensions/event-results.js.map +1 -1
  78. package/dist/core/extensions/index.d.ts +2 -0
  79. package/dist/core/extensions/index.d.ts.map +1 -1
  80. package/dist/core/extensions/index.js.map +1 -1
  81. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  82. package/dist/core/extensions/loader-api.js +4 -0
  83. package/dist/core/extensions/loader-api.js.map +1 -1
  84. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  85. package/dist/core/extensions/loader-core.js +3 -5
  86. package/dist/core/extensions/loader-core.js.map +1 -1
  87. package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
  88. package/dist/core/extensions/loader-host-modules.js +7 -1
  89. package/dist/core/extensions/loader-host-modules.js.map +1 -1
  90. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  91. package/dist/core/extensions/loader-runtime.js +3 -0
  92. package/dist/core/extensions/loader-runtime.js.map +1 -1
  93. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  94. package/dist/core/extensions/loader-virtual-modules.js +4 -0
  95. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  96. package/dist/core/extensions/provider-types.d.ts +2 -0
  97. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  98. package/dist/core/extensions/provider-types.js.map +1 -1
  99. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  100. package/dist/core/extensions/runner-events.js +16 -1
  101. package/dist/core/extensions/runner-events.js.map +1 -1
  102. package/dist/core/extensions/runner.d.ts +5 -0
  103. package/dist/core/extensions/runner.d.ts.map +1 -1
  104. package/dist/core/extensions/runner.js +34 -0
  105. package/dist/core/extensions/runner.js.map +1 -1
  106. package/dist/core/extensions/runtime-types.d.ts +5 -0
  107. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  108. package/dist/core/extensions/runtime-types.js.map +1 -1
  109. package/dist/core/extensions/tool-events.d.ts +4 -0
  110. package/dist/core/extensions/tool-events.d.ts.map +1 -1
  111. package/dist/core/extensions/tool-events.js.map +1 -1
  112. package/dist/core/extensions/tool-types.d.ts +34 -3
  113. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  114. package/dist/core/extensions/tool-types.js.map +1 -1
  115. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  116. package/dist/core/extensions/wrapper.js +14 -2
  117. package/dist/core/extensions/wrapper.js.map +1 -1
  118. package/dist/core/fast-model-routing-transport.d.ts.map +1 -1
  119. package/dist/core/fast-model-routing-transport.js +2 -1
  120. package/dist/core/fast-model-routing-transport.js.map +1 -1
  121. package/dist/core/fast-model-routing.d.ts +1 -2
  122. package/dist/core/fast-model-routing.d.ts.map +1 -1
  123. package/dist/core/fast-model-routing.js +13 -11
  124. package/dist/core/fast-model-routing.js.map +1 -1
  125. package/dist/core/fast-model-variants.d.ts +4 -1
  126. package/dist/core/fast-model-variants.d.ts.map +1 -1
  127. package/dist/core/fast-model-variants.js +42 -17
  128. package/dist/core/fast-model-variants.js.map +1 -1
  129. package/dist/core/mandatory-resource-loader.d.ts.map +1 -1
  130. package/dist/core/mandatory-resource-loader.js +9 -0
  131. package/dist/core/mandatory-resource-loader.js.map +1 -1
  132. package/dist/core/model-registry.d.ts +4 -1
  133. package/dist/core/model-registry.d.ts.map +1 -1
  134. package/dist/core/model-registry.js +9 -0
  135. package/dist/core/model-registry.js.map +1 -1
  136. package/dist/core/model-resolver-defaults.js +1 -1
  137. package/dist/core/model-resolver-defaults.js.map +1 -1
  138. package/dist/core/model-routing-candidates.d.ts +4 -0
  139. package/dist/core/model-routing-candidates.d.ts.map +1 -1
  140. package/dist/core/model-routing-candidates.js +8 -3
  141. package/dist/core/model-routing-candidates.js.map +1 -1
  142. package/dist/core/model-routing-evals.d.ts.map +1 -1
  143. package/dist/core/model-routing-evals.js +4 -5
  144. package/dist/core/model-routing-evals.js.map +1 -1
  145. package/dist/core/model-runtime.d.ts +3 -2
  146. package/dist/core/model-runtime.d.ts.map +1 -1
  147. package/dist/core/model-runtime.js +19 -25
  148. package/dist/core/model-runtime.js.map +1 -1
  149. package/dist/core/nested-tool-calls.d.ts +64 -0
  150. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  151. package/dist/core/nested-tool-calls.js +132 -0
  152. package/dist/core/nested-tool-calls.js.map +1 -0
  153. package/dist/core/oauth-provider-metadata.js +1 -1
  154. package/dist/core/oauth-provider-metadata.js.map +1 -1
  155. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  156. package/dist/core/package-manager-resolver.js +21 -3
  157. package/dist/core/package-manager-resolver.js.map +1 -1
  158. package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -1
  159. package/dist/core/package-manager-resource-accumulator.js +2 -0
  160. package/dist/core/package-manager-resource-accumulator.js.map +1 -1
  161. package/dist/core/package-manager-types.d.ts +2 -0
  162. package/dist/core/package-manager-types.d.ts.map +1 -1
  163. package/dist/core/package-manager-types.js.map +1 -1
  164. package/dist/core/package-manager.d.ts.map +1 -1
  165. package/dist/core/package-manager.js +1 -0
  166. package/dist/core/package-manager.js.map +1 -1
  167. package/dist/core/resource-loader-core.d.ts.map +1 -1
  168. package/dist/core/resource-loader-core.js +12 -6
  169. package/dist/core/resource-loader-core.js.map +1 -1
  170. package/dist/core/resource-loader-extensions.d.ts +1 -0
  171. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  172. package/dist/core/resource-loader-extensions.js +64 -4
  173. package/dist/core/resource-loader-extensions.js.map +1 -1
  174. package/dist/core/resource-loader-paths.d.ts.map +1 -1
  175. package/dist/core/resource-loader-paths.js +2 -1
  176. package/dist/core/resource-loader-paths.js.map +1 -1
  177. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  178. package/dist/core/resource-loader-reload.js +5 -4
  179. package/dist/core/resource-loader-reload.js.map +1 -1
  180. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  181. package/dist/core/resource-loader-source-info.js +7 -5
  182. package/dist/core/resource-loader-source-info.js.map +1 -1
  183. package/dist/core/resource-loader-types.d.ts +4 -0
  184. package/dist/core/resource-loader-types.d.ts.map +1 -1
  185. package/dist/core/resource-loader-types.js.map +1 -1
  186. package/dist/core/sdk-types.d.ts +1 -1
  187. package/dist/core/sdk-types.js.map +1 -1
  188. package/dist/core/session-manager-core.d.ts +2 -0
  189. package/dist/core/session-manager-core.d.ts.map +1 -1
  190. package/dist/core/session-manager-core.js +5 -1
  191. package/dist/core/session-manager-core.js.map +1 -1
  192. package/dist/core/session-manager-entries.d.ts +1 -1
  193. package/dist/core/session-manager-entries.d.ts.map +1 -1
  194. package/dist/core/session-manager-entries.js.map +1 -1
  195. package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
  196. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  197. package/dist/core/settings-manager-basic-accessors.js +27 -1
  198. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  199. package/dist/core/settings-manager-core.d.ts +2 -0
  200. package/dist/core/settings-manager-core.d.ts.map +1 -1
  201. package/dist/core/settings-manager-core.js +4 -0
  202. package/dist/core/settings-manager-core.js.map +1 -1
  203. package/dist/core/settings-manager-ui-accessors.d.ts +3 -1
  204. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  205. package/dist/core/settings-manager-ui-accessors.js +13 -0
  206. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  207. package/dist/core/settings-manager.d.ts +1 -1
  208. package/dist/core/settings-manager.d.ts.map +1 -1
  209. package/dist/core/settings-manager.js.map +1 -1
  210. package/dist/core/settings-merge.d.ts +1 -0
  211. package/dist/core/settings-merge.d.ts.map +1 -1
  212. package/dist/core/settings-merge.js +30 -1
  213. package/dist/core/settings-merge.js.map +1 -1
  214. package/dist/core/settings-types.d.ts +8 -1
  215. package/dist/core/settings-types.d.ts.map +1 -1
  216. package/dist/core/settings-types.js.map +1 -1
  217. package/dist/core/source-info.d.ts +3 -0
  218. package/dist/core/source-info.d.ts.map +1 -1
  219. package/dist/core/source-info.js +11 -0
  220. package/dist/core/source-info.js.map +1 -1
  221. package/dist/core/structured-output/index.d.ts.map +1 -1
  222. package/dist/core/structured-output/index.js +3 -1
  223. package/dist/core/structured-output/index.js.map +1 -1
  224. package/dist/core/tool-loadout.d.ts +6 -0
  225. package/dist/core/tool-loadout.d.ts.map +1 -0
  226. package/dist/core/tool-loadout.js +63 -0
  227. package/dist/core/tool-loadout.js.map +1 -0
  228. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  229. package/dist/core/tools/ask-user-question/ask-user-question.js +1 -0
  230. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  231. package/dist/core/tools/bash.d.ts.map +1 -1
  232. package/dist/core/tools/bash.js +31 -11
  233. package/dist/core/tools/bash.js.map +1 -1
  234. package/dist/core/tools/output-accumulator.d.ts +4 -0
  235. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  236. package/dist/core/tools/output-accumulator.js +32 -0
  237. package/dist/core/tools/output-accumulator.js.map +1 -1
  238. package/dist/core/tools/powershell.d.ts +27 -21
  239. package/dist/core/tools/powershell.d.ts.map +1 -1
  240. package/dist/core/tools/render-utils.d.ts +4 -0
  241. package/dist/core/tools/render-utils.d.ts.map +1 -1
  242. package/dist/core/tools/render-utils.js +19 -0
  243. package/dist/core/tools/render-utils.js.map +1 -1
  244. package/dist/core/tools/tool-concurrency.d.ts +1 -1
  245. package/dist/core/tools/tool-concurrency.d.ts.map +1 -1
  246. package/dist/core/tools/tool-concurrency.js +28 -3
  247. package/dist/core/tools/tool-concurrency.js.map +1 -1
  248. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  249. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  250. package/dist/core/tools/tool-definition-wrapper.js +4 -1
  251. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  252. package/dist/core/usage-totals.d.ts +2 -0
  253. package/dist/core/usage-totals.d.ts.map +1 -1
  254. package/dist/core/usage-totals.js +23 -0
  255. package/dist/core/usage-totals.js.map +1 -1
  256. package/dist/extensions/codemode/execute.d.ts +10 -0
  257. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  258. package/dist/extensions/codemode/execute.js +313 -0
  259. package/dist/extensions/codemode/execute.js.map +1 -0
  260. package/dist/extensions/codemode/index.d.ts +11 -0
  261. package/dist/extensions/codemode/index.d.ts.map +1 -0
  262. package/dist/extensions/codemode/index.js +14 -0
  263. package/dist/extensions/codemode/index.js.map +1 -0
  264. package/dist/extensions/codemode/renderer.d.ts +4 -0
  265. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  266. package/dist/extensions/codemode/renderer.js +78 -0
  267. package/dist/extensions/codemode/renderer.js.map +1 -0
  268. package/dist/extensions/codemode/tool.d.ts +51 -0
  269. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  270. package/dist/extensions/codemode/tool.js +134 -0
  271. package/dist/extensions/codemode/tool.js.map +1 -0
  272. package/dist/extensions/codemode/worker.d.ts +2 -0
  273. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  274. package/dist/extensions/codemode/worker.js +2 -0
  275. package/dist/extensions/codemode/worker.js.map +1 -0
  276. package/dist/extensions/index.d.ts.map +1 -1
  277. package/dist/extensions/index.js +5 -1
  278. package/dist/extensions/index.js.map +1 -1
  279. package/dist/extensions/llama/provider.d.ts.map +1 -1
  280. package/dist/extensions/llama/provider.js +31 -10
  281. package/dist/extensions/llama/provider.js.map +1 -1
  282. package/dist/extensions/tool-search/index.d.ts +5 -0
  283. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  284. package/dist/extensions/tool-search/index.js +6 -0
  285. package/dist/extensions/tool-search/index.js.map +1 -0
  286. package/dist/extensions/tool-search/tool.d.ts +41 -0
  287. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  288. package/dist/extensions/tool-search/tool.js +161 -0
  289. package/dist/extensions/tool-search/tool.js.map +1 -0
  290. package/dist/index.d.ts +7 -0
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +5 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -0
  295. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  296. package/dist/modes/interactive/components/chat-message-renderer.js +2 -0
  297. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  298. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  299. package/dist/modes/interactive/components/config-selector-list.js +9 -1
  300. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  301. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  302. package/dist/modes/interactive/components/config-selector-project-scope.js +4 -1
  303. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  304. package/dist/modes/interactive/components/first-time-setup.d.ts +2 -2
  305. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  306. package/dist/modes/interactive/components/first-time-setup.js +1 -0
  307. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  308. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  309. package/dist/modes/interactive/components/footer.js +42 -7
  310. package/dist/modes/interactive/components/footer.js.map +1 -1
  311. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  312. package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
  313. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  314. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  315. package/dist/modes/interactive/components/settings-selector-items.js +13 -0
  316. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  317. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  318. package/dist/modes/interactive/components/settings-selector-submenus.js +3 -1
  319. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  320. package/dist/modes/interactive/components/settings-selector-types.d.ts +3 -1
  321. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  322. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  323. package/dist/modes/interactive/components/themed-text.d.ts +8 -0
  324. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  325. package/dist/modes/interactive/components/themed-text.js +14 -0
  326. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  327. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  328. package/dist/modes/interactive/components/tool-execution.js +5 -3
  329. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  330. package/dist/modes/interactive/interactive-agent-events.js +2 -0
  331. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  332. package/dist/modes/interactive/interactive-mode-base.d.ts +2 -1
  333. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  334. package/dist/modes/interactive/interactive-mode-base.js +5 -0
  335. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  336. package/dist/modes/interactive/interactive-resource-rendering.js +7 -10
  337. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  338. package/dist/modes/interactive/interactive-selectors.js +5 -0
  339. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  340. package/dist/modes/interactive/interactive-session-runtime.js +1 -0
  341. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  342. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  343. package/dist/modes/interactive/interactive-startup.js +8 -3
  344. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  345. package/dist/modes/interactive/interactive-tui.d.ts +2 -1
  346. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  347. package/dist/modes/interactive/interactive-tui.js +1 -0
  348. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  349. package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -1
  350. package/dist/modes/interactive/theme/color-utils.js +3 -0
  351. package/dist/modes/interactive/theme/color-utils.js.map +1 -1
  352. package/dist/modes/interactive/theme/export-colors.d.ts.map +1 -1
  353. package/dist/modes/interactive/theme/export-colors.js +4 -1
  354. package/dist/modes/interactive/theme/export-colors.js.map +1 -1
  355. package/dist/modes/interactive/theme/system-theme.d.ts +23 -0
  356. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  357. package/dist/modes/interactive/theme/system-theme.js +462 -0
  358. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  359. package/dist/modes/interactive/theme/terminal-colors.d.ts +10 -0
  360. package/dist/modes/interactive/theme/terminal-colors.d.ts.map +1 -0
  361. package/dist/modes/interactive/theme/terminal-colors.js +36 -0
  362. package/dist/modes/interactive/theme/terminal-colors.js.map +1 -0
  363. package/dist/modes/interactive/theme/terminal-detection.d.ts +4 -6
  364. package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
  365. package/dist/modes/interactive/theme/terminal-detection.js +12 -46
  366. package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
  367. package/dist/modes/interactive/theme/theme-class.d.ts +1 -0
  368. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  369. package/dist/modes/interactive/theme/theme-class.js +2 -2
  370. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  371. package/dist/modes/interactive/theme/theme-controller.d.ts +16 -8
  372. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  373. package/dist/modes/interactive/theme/theme-controller.js +106 -64
  374. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  375. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  376. package/dist/modes/interactive/theme/theme-loading.js +23 -2
  377. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  378. package/dist/modes/interactive/theme/theme-schema.js +1 -1
  379. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  380. package/dist/modes/interactive/theme/theme-schema.json +2 -2
  381. package/dist/modes/interactive/theme/theme.d.ts +2 -0
  382. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  383. package/dist/modes/interactive/theme/theme.js +2 -0
  384. package/dist/modes/interactive/theme/theme.js.map +1 -1
  385. package/dist/modes/interactive-engine/engine-session-stats.d.ts +26 -0
  386. package/dist/modes/interactive-engine/engine-session-stats.d.ts.map +1 -0
  387. package/dist/modes/interactive-engine/engine-session-stats.js +71 -0
  388. package/dist/modes/interactive-engine/engine-session-stats.js.map +1 -0
  389. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
  390. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  391. package/dist/modes/interactive-engine/extension-ui-bridge.js +4 -0
  392. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  393. package/dist/modes/interactive-engine/isolated-runtime.d.ts +3 -0
  394. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  395. package/dist/modes/interactive-engine/isolated-runtime.js +27 -5
  396. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  397. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  398. package/dist/modes/rpc/rpc-provider-auth.js +3 -1
  399. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  400. package/dist/package-manager-cli.d.ts.map +1 -1
  401. package/dist/package-manager-cli.js +8 -2
  402. package/dist/package-manager-cli.js.map +1 -1
  403. package/dist/utils/paths.d.ts.map +1 -1
  404. package/dist/utils/paths.js +2 -1
  405. package/dist/utils/paths.js.map +1 -1
  406. package/dist/utils/shell.d.ts +1 -3
  407. package/dist/utils/shell.d.ts.map +1 -1
  408. package/dist/utils/shell.js +3 -30
  409. package/dist/utils/shell.js.map +1 -1
  410. package/docs/extensions/api-reference.md +5 -1
  411. package/docs/extensions/authoring.md +31 -1
  412. package/docs/extensions/events.md +3 -1
  413. package/docs/extensions.md +14 -0
  414. package/docs/models/evals.md +45 -2
  415. package/docs/models/reference.md +33 -2
  416. package/docs/models.md +1 -0
  417. package/docs/packages.md +2 -0
  418. package/docs/providers.md +34 -7
  419. package/docs/reference/cli.md +4 -0
  420. package/docs/rpc/protocol.md +10 -0
  421. package/docs/sdk/reference.md +11 -1
  422. package/docs/sdk/structured-decisions.md +4 -2
  423. package/docs/session-format.md +5 -0
  424. package/docs/settings.md +19 -5
  425. package/docs/skills.md +1 -1
  426. package/docs/themes/reference.md +2 -1
  427. package/docs/themes.md +4 -2
  428. package/docs/tools.md +39 -0
  429. package/npm-shrinkwrap.json +115 -113
  430. package/package.json +12 -9
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-core.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-loader-core.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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"}
@@ -71,11 +71,6 @@ export class DefaultResourceLoader {
71
71
  this.settingsManager =
72
72
  options.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);
73
73
  this.eventBus = options.eventBus ?? createEventBus();
74
- this.packageManager = new DefaultPackageManager({
75
- cwd: this.cwd,
76
- agentDir: this.agentDir,
77
- settingsManager: this.settingsManager,
78
- });
79
74
  this.additionalExtensionPaths = mergeInheritedStrings(inheritanceSnapshot?.additionalExtensionPaths, options.additionalExtensionPaths);
80
75
  this.additionalSkillPaths = mergeInheritedStrings(inheritanceSnapshot?.additionalSkillPaths, options.additionalSkillPaths);
81
76
  this.additionalPromptTemplatePaths = mergeInheritedStrings(inheritanceSnapshot?.additionalPromptTemplatePaths, options.additionalPromptTemplatePaths);
@@ -88,6 +83,12 @@ export class DefaultResourceLoader {
88
83
  ...(inheritanceSnapshot?.extensionFactories ?? []),
89
84
  ...(options.extensionFactories ?? []),
90
85
  ];
86
+ this.packageManager = new DefaultPackageManager({
87
+ cwd: this.cwd,
88
+ agentDir: this.agentDir,
89
+ settingsManager: this.settingsManager,
90
+ builtinExtensions: this.extensionFactories.flatMap((input) => typeof input !== "function" && input.builtin ? [input.name] : []),
91
+ });
91
92
  this.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;
92
93
  this.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;
93
94
  this.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;
@@ -321,7 +322,12 @@ export class DefaultResourceLoader {
321
322
  }
322
323
  replaceSettingsManager(settingsManager) {
323
324
  this.settingsManager = settingsManager;
324
- this.packageManager = new DefaultPackageManager({ cwd: this.cwd, agentDir: this.agentDir, settingsManager });
325
+ this.packageManager = new DefaultPackageManager({
326
+ cwd: this.cwd,
327
+ agentDir: this.agentDir,
328
+ settingsManager,
329
+ builtinExtensions: this.extensionFactories.flatMap((input) => typeof input !== "function" && input.builtin ? [input.name] : []),
330
+ });
325
331
  }
326
332
  publishCandidate(candidate) {
327
333
  this.extensionsResult = candidate.extensionsResult;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAiB,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAA4C,MAAM,sBAAsB,CAAC;AAEvG,OAAO,EACN,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAStG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACxH,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAqB,MAAM,oBAAoB,CAAC;AAI1E,MAAM,OAAO,qBAAqB;IACzB,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,eAAe,CAAkB;IACjC,QAAQ,CAAW;IACnB,cAAc,CAAwB;IACtC,wBAAwB,CAAW;IACnC,oBAAoB,CAAW;IAC/B,6BAA6B,CAAW;IACxC,oBAAoB,CAAW;IAC/B,mBAAmB,CAAkB;IACrC,kBAAkB,CAAoB;IACtC,YAAY,CAAU;IACtB,QAAQ,CAAU;IAClB,iBAAiB,CAAU;IAC3B,QAAQ,CAAU;IAClB,cAAc,CAAU;IACxB,kBAAkB,CAAU;IAC5B,wBAAwB,CAAY;IACpC,kBAAkB,CAAwD;IAC1E,cAAc,CAGpB;IACM,eAAe,CAGrB;IACM,cAAc,CAGpB;IACM,mBAAmB,CAEzB;IACM,oBAAoB,CAAoD;IACxE,0BAA0B,CAAgC;IAC1D,gBAAgB,CAAuB;IACvC,MAAM,CAAU;IAChB,gBAAgB,CAAuB;IACvC,YAAY,CAAe;IAC3B,OAAO,CAAmB;IAC1B,iBAAiB,CAAuB;IACxC,MAAM,CAAU;IAChB,gBAAgB,CAAuB;IACvC,WAAW,CAA2C;IACtD,YAAY,CAAU;IACtB,sBAAsB,CAAU;IAChC,kBAAkB,CAAW;IAC7B,6BAA6B,CAAW;IACxC,iBAAiB,CAAqB;IACtC,sBAAsB,CAA0B;IAChD,kCAAkC,CAAe;IACjD,cAAc,CAAW;IACzB,yBAAyB,CAA0B;IACnD,sBAAsB,CAA4B;IAClD,0BAA0B,CAA0B;IACpD,yBAAyB,CAA0B;IACnD,eAAe,CAAW;IAC1B,cAAc,CAAW;IACzB,MAAM,CAAU;IAChB,WAAW,CAA+B;IAElD,YAAY,OAAqC;QAChD,MAAM,mBAAmB,GAAG,OAAO,CAAC,iCAAiC,CAAC;QACtE,MAAM,wBAAwB,GAC7B,mBAAmB,EAAE,cAAc,KAAK,SAAS;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,cAAc,EAAE,mBAAmB,CAAC,cAAc,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe;YACnB,OAAO,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACtG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC;YAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CACpD,mBAAmB,EAAE,wBAAwB,EAC7C,OAAO,CAAC,wBAAwB,CAChC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAChD,mBAAmB,EAAE,oBAAoB,EACzC,OAAO,CAAC,oBAAoB,CAC5B,CAAC;QACF,IAAI,CAAC,6BAA6B,GAAG,qBAAqB,CACzD,mBAAmB,EAAE,6BAA6B,EAClD,OAAO,CAAC,6BAA6B,CACrC,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAChD,mBAAmB,EAAE,oBAAoB,EACzC,OAAO,CAAC,oBAAoB,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB;YACvB,OAAO,CAAC,mBAAmB,KAAK,SAAS;gBACxC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAClD,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG;YACzB,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,IAAI,EAAE,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;SACrC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,YAAY,IAAI,KAAK,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3E,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,mBAAmB,EAAE,iBAAiB,IAAI,KAAK,CAAC;QACtG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,mBAAmB,EAAE,QAAQ,IAAI,KAAK,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,mBAAmB,EAAE,cAAc,IAAI,KAAK,CAAC;QAC7F,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,YAAY,CAAC;QACpF,IAAI,CAAC,wBAAwB;YAC5B,OAAO,CAAC,kBAAkB,KAAK,SAAS;gBACvC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBACjC,CAAC,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,SAAS;oBACtD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;QACrE,IAAI,CAAC,gBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC;QAC1F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,kCAAkC;YACtC,mBAAmB,EAAE,kCAAkC,KAAK,SAAS;gBACpE,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACpC,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAED,SAAS;QACR,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACpE,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,UAAU;QACT,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvE,CAAC;IAED,SAAS;QACR,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACpE,CAAC;IAED,WAAW;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACb,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC;IAED,4BAA4B;QAC3B,OAAO,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,oBAAoB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,0EAA0E;IAC1E,yBAAyB;QACxB,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;QACrB,OAAO;YACN,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;YACvD,wBAAwB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,6BAA6B,EAAE,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;YACtE,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAClE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3F,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,SAAS;gBAC9C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,kCAAkC,KAAK,SAAS;gBACxD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,kCAAkC,EAAE,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC,EAAE,CAAC;SACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC7B,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE;YACzG,kCAAkC,EAAE,IAAI,CAAC,kCAAkC;SAC3E,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;QAC1G,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA6B;QAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzE,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACvD,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,kBAAkB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;YACF,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,kBAAkB,CACxC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,eAAe,EACpB,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;YACF,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,kBAAkB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,cAAc,EACnB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CACrC,CAAC;YACF,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1F,CAAC;IACF,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC/B,OAAO,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAChG,0BAA0B,CAAC,IAAI,CAAC,CAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAqC;QACjD,OAAO,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;YACtG,MAAM,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC;IACO,eAAe,CAAC,eAAgC,EAAE,QAAkB;QAC3E,OAAO,IAAI,qBAAqB,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe;YACf,QAAQ;YACR,wBAAwB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,6BAA6B,EAAE,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC;YACtE,oBAAoB,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACpD,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAClE,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB;YACjD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,iCAAiC,EAAE;gBAClC,kCAAkC,EACjC,IAAI,CAAC,kCAAkC,KAAK,SAAS;oBACpD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC;aAChD;SACD,CAAC,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,mBAAmB,CAAC,KAAa;QACtC,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,qEAAqE;QACrE,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,CAAC,eAAe,CAAC;YAC/B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;YAClD,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;SAClD,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,eAAgC,EAChC,OAAqC;QAErC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACjF,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,GAAG,EAAE;YAC1B,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;YAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO;gBACN,MAAM,EAAE,GAAG,EAAE;oBACZ,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,cAAc,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACd,IAAI,OAAO;wBAAE,OAAO;oBACpB,OAAO,GAAG,IAAI,CAAC;oBACf,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC;aACD,CAAC;QACH,CAAC,CAAC;QACF,4EAA4E;QAC5E,OAAO;YACN,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,SAAS,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;YACxF,aAAa;YACb,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE;SACtC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,eAAgC;QAC9D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9G,CAAC;IAEO,gBAAgB,CAAC,SAAgC;QACxD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACvD,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC,6BAA6B,CAAC;QAC7E,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,kCAAkC,GAAG,SAAS,CAAC,kCAAkC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACrE,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC;QAC/D,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC,0BAA0B,CAAC;QACvE,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,yBAAyB,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,CAAC;IAEO,2BAA2B;QAClC,KAAK,IAAI,CAAC,QAAQ,CAAC;QACnB,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,kBAAkB,CAAC;QAC7B,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,eAAe,CAAC;QAC1B,KAAK,IAAI,CAAC,cAAc,CAAC;QACzB,KAAK,IAAI,CAAC,mBAAmB,CAAC;QAC9B,KAAK,IAAI,CAAC,oBAAoB,CAAC;QAC/B,KAAK,IAAI,CAAC,0BAA0B,CAAC;QACrC,KAAK,IAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,IAAI,CAAC,0BAA0B,CAAC;QACrC,KAAK,IAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,IAAI,CAAC,MAAM,CAAC;IAClB,CAAC;CACD;AAED,kGAAkG;AAClG,MAAM,UAAU,gCAAgC,CAAC,MAAkC;IAClF,OAAO,CACN,MAAM,YAAY,qBAAqB;QACvC,MAAM,CAAC,WAAW,KAAK,qBAAqB;QAC5C,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CACzG,CAAC;AACH,CAAC","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { ResourceDiagnostic, ResourceOverlap } from \"./diagnostics.ts\";\nimport { createEventBus, createStagedEventBus, type EventBus } from \"./event-bus.js\";\nimport { createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport { DefaultPackageManager, type PathMetadata, type ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport { clonePackageSources, mergeInheritedStrings } from \"./resource-loader-helpers.ts\";\nimport {\n\tcollectWorkflowResources,\n\tnormalizeExtensionPaths,\n\trecordExtensionSourceInfo,\n\tresolvePackageResourcePaths,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths } from \"./resource-loader-paths.ts\";\nimport { loadProjectTrustExtensions, reloadDefaultResourceLoader } from \"./resource-loader-reload.ts\";\nimport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tDefaultResourceLoaderOptions,\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { type PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog, type SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport class DefaultResourceLoader implements ResourceLoader {\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate settingsManager: SettingsManager;\n\tprivate eventBus: EventBus;\n\tprivate packageManager: DefaultPackageManager;\n\tprivate additionalExtensionPaths: string[];\n\tprivate additionalSkillPaths: string[];\n\tprivate additionalPromptTemplatePaths: string[];\n\tprivate additionalThemePaths: string[];\n\tprivate builtinPackagePaths: PackageSource[];\n\tprivate extensionFactories: InlineExtension[];\n\tprivate noExtensions: boolean;\n\tprivate noSkills: boolean;\n\tprivate noPromptTemplates: boolean;\n\tprivate noThemes: boolean;\n\tprivate noContextFiles: boolean;\n\tprivate systemPromptSource?: string;\n\tprivate appendSystemPromptSource?: string[];\n\tprivate extensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tprivate skillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate promptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate themesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate agentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tprivate systemPromptOverride?: (base: string | undefined) => string | undefined;\n\tprivate appendSystemPromptOverride?: (base: string[]) => string[];\n\tprivate extensionsResult: LoadExtensionsResult;\n\tprivate skills: Skill[];\n\tprivate skillDiagnostics: ResourceDiagnostic[];\n\tprivate skillCatalog: SkillCatalog;\n\tprivate prompts: PromptTemplate[];\n\tprivate promptDiagnostics: ResourceDiagnostic[];\n\tprivate themes: Theme[];\n\tprivate themeDiagnostics: ResourceDiagnostic[];\n\tprivate agentsFiles: Array<{ path: string; content: string }>;\n\tprivate systemPrompt?: string;\n\tprivate systemPromptSourcePath?: string;\n\tprivate appendSystemPrompt: string[];\n\tprivate appendSystemPromptSourcePaths: string[];\n\tprivate workflowResources: ResolvedResource[];\n\tprivate mcpServerContributions: McpServerContribution[];\n\tprivate trustedBorrowedProjectLocalSources?: Set<string>;\n\tprivate lastSkillPaths: string[];\n\tprivate extensionSkillSourceInfos: Map<string, SourceInfo>;\n\tprivate resourceMetadataByPath: Map<string, PathMetadata>;\n\tprivate extensionPromptSourceInfos: Map<string, SourceInfo>;\n\tprivate extensionThemeSourceInfos: Map<string, SourceInfo>;\n\tprivate lastPromptPaths: string[];\n\tprivate lastThemePaths: string[];\n\tprivate loaded: boolean;\n\tprivate loadOptions?: ResourceLoaderReloadOptions;\n\n\tconstructor(options: DefaultResourceLoaderOptions) {\n\t\tconst inheritanceSnapshot = options.resourceLoaderInheritanceSnapshot;\n\t\tconst inheritedSettingsOptions =\n\t\t\tinheritanceSnapshot?.projectTrusted === undefined\n\t\t\t\t? undefined\n\t\t\t\t: { projectTrusted: inheritanceSnapshot.projectTrusted };\n\t\tthis.cwd = resolvePath(options.cwd);\n\t\tthis.agentDir = resolvePath(options.agentDir);\n\t\tthis.settingsManager =\n\t\t\toptions.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);\n\t\tthis.eventBus = options.eventBus ?? createEventBus();\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: this.settingsManager,\n\t\t});\n\t\tthis.additionalExtensionPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalExtensionPaths,\n\t\t\toptions.additionalExtensionPaths,\n\t\t);\n\t\tthis.additionalSkillPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalSkillPaths,\n\t\t\toptions.additionalSkillPaths,\n\t\t);\n\t\tthis.additionalPromptTemplatePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalPromptTemplatePaths,\n\t\t\toptions.additionalPromptTemplatePaths,\n\t\t);\n\t\tthis.additionalThemePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalThemePaths,\n\t\t\toptions.additionalThemePaths,\n\t\t);\n\t\tthis.builtinPackagePaths =\n\t\t\toptions.builtinPackagePaths !== undefined\n\t\t\t\t? clonePackageSources(options.builtinPackagePaths)\n\t\t\t\t: clonePackageSources(inheritanceSnapshot?.builtinPackagePaths);\n\t\tthis.extensionFactories = [\n\t\t\t...(inheritanceSnapshot?.extensionFactories ?? []),\n\t\t\t...(options.extensionFactories ?? []),\n\t\t];\n\t\tthis.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;\n\t\tthis.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;\n\t\tthis.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;\n\t\tthis.noThemes = options.noThemes ?? inheritanceSnapshot?.noThemes ?? false;\n\t\tthis.noContextFiles = options.noContextFiles ?? inheritanceSnapshot?.noContextFiles ?? false;\n\t\tthis.systemPromptSource = options.systemPrompt ?? inheritanceSnapshot?.systemPrompt;\n\t\tthis.appendSystemPromptSource =\n\t\t\toptions.appendSystemPrompt !== undefined\n\t\t\t\t? [...options.appendSystemPrompt]\n\t\t\t\t: inheritanceSnapshot?.appendSystemPrompt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: [...inheritanceSnapshot.appendSystemPrompt];\n\t\tthis.extensionsOverride = options.extensionsOverride;\n\t\tthis.skillsOverride = options.skillsOverride;\n\t\tthis.promptsOverride = options.promptsOverride;\n\t\tthis.themesOverride = options.themesOverride;\n\t\tthis.agentsFilesOverride = options.agentsFilesOverride;\n\t\tthis.systemPromptOverride = options.systemPromptOverride;\n\t\tthis.appendSystemPromptOverride = options.appendSystemPromptOverride;\n\t\tthis.extensionsResult = { extensions: [], errors: [], runtime: createExtensionRuntime() };\n\t\tthis.skills = [];\n\t\tthis.skillDiagnostics = [];\n\t\tthis.skillCatalog = buildSkillCatalog([]);\n\t\tthis.prompts = [];\n\t\tthis.promptDiagnostics = [];\n\t\tthis.themes = [];\n\t\tthis.themeDiagnostics = [];\n\t\tthis.agentsFiles = [];\n\t\tthis.appendSystemPrompt = [];\n\t\tthis.appendSystemPromptSourcePaths = [];\n\t\tthis.workflowResources = [];\n\t\tthis.mcpServerContributions = [];\n\t\tthis.trustedBorrowedProjectLocalSources =\n\t\t\tinheritanceSnapshot?.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? undefined\n\t\t\t\t: new Set(inheritanceSnapshot.trustedBorrowedProjectLocalSources);\n\t\tthis.lastSkillPaths = [];\n\t\tthis.resourceMetadataByPath = new Map();\n\t\tthis.extensionSkillSourceInfos = new Map();\n\t\tthis.extensionPromptSourceInfos = new Map();\n\t\tthis.extensionThemeSourceInfos = new Map();\n\t\tthis.lastPromptPaths = [];\n\t\tthis.lastThemePaths = [];\n\t\tthis.loaded = false;\n\t\tthis.touchInternalFieldsForSplit();\n\t}\n\n\tgetExtensions(): LoadExtensionsResult {\n\t\treturn this.extensionsResult;\n\t}\n\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { skills: this.skills, diagnostics: this.skillDiagnostics };\n\t}\n\n\tgetSkillCatalog(): SkillCatalog {\n\t\treturn this.skillCatalog;\n\t}\n\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { prompts: this.prompts, diagnostics: this.promptDiagnostics };\n\t}\n\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { themes: this.themes, diagnostics: this.themeDiagnostics };\n\t}\n\n\tgetOverlaps(): ResourceOverlap[] {\n\t\treturn [...(this.extensionsResult.overlaps ?? [])];\n\t}\n\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> } {\n\t\treturn { agentsFiles: this.agentsFiles };\n\t}\n\n\tgetSystemPrompt(): string | undefined {\n\t\treturn this.systemPrompt;\n\t}\n\n\tgetAppendSystemPrompt(): string[] {\n\t\treturn this.appendSystemPrompt;\n\t}\n\n\tgetSystemPromptSource(): { path: string } | undefined {\n\t\treturn this.systemPromptSourcePath ? { path: this.systemPromptSourcePath } : undefined;\n\t}\n\n\tgetAppendSystemPromptSources(): Array<{ path: string }> {\n\t\treturn this.appendSystemPromptSourcePaths.map((path) => ({ path }));\n\t}\n\n\tgetWorkflowResources(): ResolvedResource[] {\n\t\treturn [...this.workflowResources];\n\t}\n\n\t/** Enabled package-manifest MCP servers discovered by the last reload. */\n\tgetMcpServerContributions(): McpServerContribution[] {\n\t\treturn [...this.mcpServerContributions];\n\t}\n\n\tgetInheritanceSnapshot(): DefaultResourceLoaderInheritanceSnapshot {\n\t\treturn {\n\t\t\tprojectTrusted: this.settingsManager.isProjectTrusted(),\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\t...(this.systemPromptSource === undefined ? {} : { systemPrompt: this.systemPromptSource }),\n\t\t\t...(this.appendSystemPromptSource === undefined\n\t\t\t\t? {}\n\t\t\t\t: { appendSystemPrompt: [...this.appendSystemPromptSource] }),\n\t\t\t...(this.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? {}\n\t\t\t\t: { trustedBorrowedProjectLocalSources: [...this.trustedBorrowedProjectLocalSources] }),\n\t\t};\n\t}\n\n\tasync refreshWorkflowResources(): Promise<ResolvedResource[]> {\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(this, {\n\t\t\ttrustedBorrowedProjectLocalSources: this.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tthis.workflowResources = workflowResources;\n\t\treturn [...this.workflowResources];\n\t}\n\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst skillPaths = normalizeExtensionPaths(this, paths.skillPaths ?? []);\n\t\tconst promptPaths = normalizeExtensionPaths(this, paths.promptPaths ?? []);\n\t\tconst themePaths = normalizeExtensionPaths(this, paths.themePaths ?? []);\n\t\trecordExtensionSourceInfo(this, skillPaths, \"skill\");\n\t\trecordExtensionSourceInfo(this, promptPaths, \"prompt\");\n\t\trecordExtensionSourceInfo(this, themePaths, \"theme\");\n\n\t\tif (skillPaths.length > 0) {\n\t\t\tthis.lastSkillPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastSkillPaths,\n\t\t\t\tskillPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateSkillsFromPathsAsync(this, this.lastSkillPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (promptPaths.length > 0) {\n\t\t\tthis.lastPromptPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastPromptPaths,\n\t\t\t\tpromptPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updatePromptsFromPathsAsync(this, this.lastPromptPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (themePaths.length > 0) {\n\t\t\tthis.lastThemePaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastThemePaths,\n\t\t\t\tthemePaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateThemesFromPathsAsync(this, this.lastThemePaths, this.resourceMetadataByPath);\n\t\t}\n\t}\n\n\tasync loadProjectTrustExtensions(): Promise<LoadExtensionsResult> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, () =>\n\t\t\tloadProjectTrustExtensions(this),\n\t\t);\n\t}\n\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, async () => {\n\t\t\tawait reloadDefaultResourceLoader(this, options);\n\t\t\tthis.loadOptions = options ? { ...options } : undefined;\n\t\t\tlifecycleScopeForOwner(this.getExtensions().runtime);\n\t\t});\n\t}\n\tprivate createCandidate(settingsManager: SettingsManager, eventBus: EventBus): DefaultResourceLoader {\n\t\treturn new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\teventBus,\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\tsystemPrompt: this.systemPromptSource,\n\t\t\tappendSystemPrompt: this.appendSystemPromptSource,\n\t\t\textensionsOverride: this.extensionsOverride,\n\t\t\tskillsOverride: this.skillsOverride,\n\t\t\tpromptsOverride: this.promptsOverride,\n\t\t\tthemesOverride: this.themesOverride,\n\t\t\tagentsFilesOverride: this.agentsFilesOverride,\n\t\t\tsystemPromptOverride: this.systemPromptOverride,\n\t\t\tappendSystemPromptOverride: this.appendSystemPromptOverride,\n\t\t\tresourceLoaderInheritanceSnapshot: {\n\t\t\t\ttrustedBorrowedProjectLocalSources:\n\t\t\t\t\tthis.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: [...this.trustedBorrowedProjectLocalSources],\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @internal A borrowed discovery loader is not a session extension generation. */\n\tasync createSessionLoader(scope: object): Promise<DefaultResourceLoader> {\n\t\tif (sessionLifecycleScopes.get(this) === scope) return this;\n\t\tconst candidate = this.createCandidate(this.settingsManager, this.eventBus);\n\t\tsessionLifecycleScopes.set(candidate, scope);\n\t\tawait candidate.reload(this.loadOptions);\n\t\t// Retain caller-added assets as well as its discovery configuration.\n\t\tconst pathsWithMetadata = (paths: readonly string[]) =>\n\t\t\tpaths.flatMap((path) => {\n\t\t\t\tconst metadata = this.resourceMetadataByPath.get(path);\n\t\t\t\treturn metadata ? [{ path, metadata }] : [];\n\t\t\t});\n\t\tawait candidate.extendResources({\n\t\t\tskillPaths: pathsWithMetadata(this.lastSkillPaths),\n\t\t\tpromptPaths: pathsWithMetadata(this.lastPromptPaths),\n\t\t\tthemePaths: pathsWithMetadata(this.lastThemePaths),\n\t\t});\n\t\treturn candidate;\n\t}\n\n\tasync prepareReload(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tconst eventBusTransaction = createStagedEventBus(this.eventBus);\n\t\tconst candidate = this.createCandidate(settingsManager, eventBusTransaction.bus);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.reload(options);\n\t\tconst prepareCommit = () => {\n\t\t\tconst eventBusCommit = eventBusTransaction.prepareCommit();\n\t\t\tlet settled = false;\n\t\t\treturn {\n\t\t\t\tcommit: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.commit();\n\t\t\t\t\tthis.publishCandidate(candidate);\n\t\t\t\t},\n\t\t\t\trollback: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.rollback();\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\t// The candidate owns its generation; the borrowed loader remains untouched.\n\t\treturn {\n\t\t\tloader: candidate,\n\t\t\tactivate: (liveSettingsManager) => candidate.replaceSettingsManager(liveSettingsManager),\n\t\t\tprepareCommit,\n\t\t\tcommit: () => prepareCommit().commit(),\n\t\t};\n\t}\n\n\tprivate replaceSettingsManager(settingsManager: SettingsManager): void {\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.packageManager = new DefaultPackageManager({ cwd: this.cwd, agentDir: this.agentDir, settingsManager });\n\t}\n\n\tprivate publishCandidate(candidate: DefaultResourceLoader): void {\n\t\tthis.extensionsResult = candidate.extensionsResult;\n\t\tthis.skills = candidate.skills;\n\t\tthis.skillDiagnostics = candidate.skillDiagnostics;\n\t\tthis.skillCatalog = candidate.skillCatalog;\n\t\tthis.prompts = candidate.prompts;\n\t\tthis.promptDiagnostics = candidate.promptDiagnostics;\n\t\tthis.themes = candidate.themes;\n\t\tthis.themeDiagnostics = candidate.themeDiagnostics;\n\t\tthis.agentsFiles = candidate.agentsFiles;\n\t\tthis.systemPrompt = candidate.systemPrompt;\n\t\tthis.systemPromptSourcePath = candidate.systemPromptSourcePath;\n\t\tthis.appendSystemPrompt = candidate.appendSystemPrompt;\n\t\tthis.appendSystemPromptSourcePaths = candidate.appendSystemPromptSourcePaths;\n\t\tthis.workflowResources = candidate.workflowResources;\n\t\tthis.mcpServerContributions = candidate.mcpServerContributions;\n\t\tthis.trustedBorrowedProjectLocalSources = candidate.trustedBorrowedProjectLocalSources;\n\t\tthis.lastSkillPaths = candidate.lastSkillPaths;\n\t\tthis.extensionSkillSourceInfos = candidate.extensionSkillSourceInfos;\n\t\tthis.resourceMetadataByPath = candidate.resourceMetadataByPath;\n\t\tthis.extensionPromptSourceInfos = candidate.extensionPromptSourceInfos;\n\t\tthis.extensionThemeSourceInfos = candidate.extensionThemeSourceInfos;\n\t\tthis.lastPromptPaths = candidate.lastPromptPaths;\n\t\tthis.lastThemePaths = candidate.lastThemePaths;\n\t\tthis.loaded = candidate.loaded;\n\t}\n\n\tprivate touchInternalFieldsForSplit(): void {\n\t\tvoid this.eventBus;\n\t\tvoid this.packageManager;\n\t\tvoid this.noContextFiles;\n\t\tvoid this.extensionsOverride;\n\t\tvoid this.skillsOverride;\n\t\tvoid this.promptsOverride;\n\t\tvoid this.themesOverride;\n\t\tvoid this.agentsFilesOverride;\n\t\tvoid this.systemPromptOverride;\n\t\tvoid this.appendSystemPromptOverride;\n\t\tvoid this.extensionSkillSourceInfos;\n\t\tvoid this.extensionPromptSourceInfos;\n\t\tvoid this.extensionThemeSourceInfos;\n\t\tvoid this.loaded;\n\t}\n}\n\n/** @internal Only unmodified concrete discovery can be recreated without losing caller policy. */\nexport function canCloneDefaultResourceDiscovery(loader: ResourceLoader | undefined): loader is DefaultResourceLoader {\n\treturn (\n\t\tloader instanceof DefaultResourceLoader &&\n\t\tloader.constructor === DefaultResourceLoader &&\n\t\tObject.getOwnPropertyNames(DefaultResourceLoader.prototype).every((name) => !Object.hasOwn(loader, name))\n\t);\n}\n"]}
1
+ {"version":3,"file":"resource-loader-core.js","sourceRoot":"","sources":["../../src/core/resource-loader-core.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Theme } from \"../modes/interactive/theme/theme.js\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { ResourceDiagnostic, ResourceOverlap } from \"./diagnostics.ts\";\nimport { createEventBus, createStagedEventBus, type EventBus } from \"./event-bus.js\";\nimport { createExtensionRuntime } from \"./extensions/loader.ts\";\nimport type { InlineExtension, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { McpServerContribution } from \"./mcp-servers.ts\";\nimport { DefaultPackageManager, type PathMetadata, type ResolvedResource } from \"./package-manager.ts\";\nimport type { PromptTemplate } from \"./prompt-templates.ts\";\nimport {\n\tupdatePromptsFromPathsAsync,\n\tupdateSkillsFromPathsAsync,\n\tupdateThemesFromPathsAsync,\n} from \"./resource-loader-assets.ts\";\nimport { clonePackageSources, mergeInheritedStrings } from \"./resource-loader-helpers.ts\";\nimport {\n\tcollectWorkflowResources,\n\tnormalizeExtensionPaths,\n\trecordExtensionSourceInfo,\n\tresolvePackageResourcePaths,\n} from \"./resource-loader-package-resources.ts\";\nimport { mergeResourcePaths } from \"./resource-loader-paths.ts\";\nimport { loadProjectTrustExtensions, reloadDefaultResourceLoader } from \"./resource-loader-reload.ts\";\nimport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tDefaultResourceLoaderOptions,\n\tResourceExtensionPaths,\n\tResourceLoader,\n\tResourceLoaderReloadOptions,\n\tResourceLoaderReloadTransaction,\n} from \"./resource-loader-types.ts\";\nimport { lifecycleScopeForOwner, sessionLifecycleCreation, sessionLifecycleScopes } from \"./session-lifecycle-scope.ts\";\nimport { type PackageSource, SettingsManager } from \"./settings-manager.ts\";\nimport { buildSkillCatalog, type SkillCatalog } from \"./skill-catalog.ts\";\nimport type { Skill } from \"./skills.ts\";\nimport type { SourceInfo } from \"./source-info.ts\";\n\nexport class DefaultResourceLoader implements ResourceLoader {\n\tprivate cwd: string;\n\tprivate agentDir: string;\n\tprivate settingsManager: SettingsManager;\n\tprivate eventBus: EventBus;\n\tprivate packageManager: DefaultPackageManager;\n\tprivate additionalExtensionPaths: string[];\n\tprivate additionalSkillPaths: string[];\n\tprivate additionalPromptTemplatePaths: string[];\n\tprivate additionalThemePaths: string[];\n\tprivate builtinPackagePaths: PackageSource[];\n\tprivate extensionFactories: InlineExtension[];\n\tprivate noExtensions: boolean;\n\tprivate noSkills: boolean;\n\tprivate noPromptTemplates: boolean;\n\tprivate noThemes: boolean;\n\tprivate noContextFiles: boolean;\n\tprivate systemPromptSource?: string;\n\tprivate appendSystemPromptSource?: string[];\n\tprivate extensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;\n\tprivate skillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tskills: Skill[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate promptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tprompts: PromptTemplate[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate themesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {\n\t\tthemes: Theme[];\n\t\tdiagnostics: ResourceDiagnostic[];\n\t};\n\tprivate agentsFilesOverride?: (base: { agentsFiles: Array<{ path: string; content: string }> }) => {\n\t\tagentsFiles: Array<{ path: string; content: string }>;\n\t};\n\tprivate systemPromptOverride?: (base: string | undefined) => string | undefined;\n\tprivate appendSystemPromptOverride?: (base: string[]) => string[];\n\tprivate extensionsResult: LoadExtensionsResult;\n\tprivate skills: Skill[];\n\tprivate skillDiagnostics: ResourceDiagnostic[];\n\tprivate skillCatalog: SkillCatalog;\n\tprivate prompts: PromptTemplate[];\n\tprivate promptDiagnostics: ResourceDiagnostic[];\n\tprivate themes: Theme[];\n\tprivate themeDiagnostics: ResourceDiagnostic[];\n\tprivate agentsFiles: Array<{ path: string; content: string }>;\n\tprivate systemPrompt?: string;\n\tprivate systemPromptSourcePath?: string;\n\tprivate appendSystemPrompt: string[];\n\tprivate appendSystemPromptSourcePaths: string[];\n\tprivate workflowResources: ResolvedResource[];\n\tprivate mcpServerContributions: McpServerContribution[];\n\tprivate trustedBorrowedProjectLocalSources?: Set<string>;\n\tprivate lastSkillPaths: string[];\n\tprivate extensionSkillSourceInfos: Map<string, SourceInfo>;\n\tprivate resourceMetadataByPath: Map<string, PathMetadata>;\n\tprivate extensionPromptSourceInfos: Map<string, SourceInfo>;\n\tprivate extensionThemeSourceInfos: Map<string, SourceInfo>;\n\tprivate lastPromptPaths: string[];\n\tprivate lastThemePaths: string[];\n\tprivate loaded: boolean;\n\tprivate loadOptions?: ResourceLoaderReloadOptions;\n\n\tconstructor(options: DefaultResourceLoaderOptions) {\n\t\tconst inheritanceSnapshot = options.resourceLoaderInheritanceSnapshot;\n\t\tconst inheritedSettingsOptions =\n\t\t\tinheritanceSnapshot?.projectTrusted === undefined\n\t\t\t\t? undefined\n\t\t\t\t: { projectTrusted: inheritanceSnapshot.projectTrusted };\n\t\tthis.cwd = resolvePath(options.cwd);\n\t\tthis.agentDir = resolvePath(options.agentDir);\n\t\tthis.settingsManager =\n\t\t\toptions.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir, inheritedSettingsOptions);\n\t\tthis.eventBus = options.eventBus ?? createEventBus();\n\t\tthis.additionalExtensionPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalExtensionPaths,\n\t\t\toptions.additionalExtensionPaths,\n\t\t);\n\t\tthis.additionalSkillPaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalSkillPaths,\n\t\t\toptions.additionalSkillPaths,\n\t\t);\n\t\tthis.additionalPromptTemplatePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalPromptTemplatePaths,\n\t\t\toptions.additionalPromptTemplatePaths,\n\t\t);\n\t\tthis.additionalThemePaths = mergeInheritedStrings(\n\t\t\tinheritanceSnapshot?.additionalThemePaths,\n\t\t\toptions.additionalThemePaths,\n\t\t);\n\t\tthis.builtinPackagePaths =\n\t\t\toptions.builtinPackagePaths !== undefined\n\t\t\t\t? clonePackageSources(options.builtinPackagePaths)\n\t\t\t\t: clonePackageSources(inheritanceSnapshot?.builtinPackagePaths);\n\t\tthis.extensionFactories = [\n\t\t\t...(inheritanceSnapshot?.extensionFactories ?? []),\n\t\t\t...(options.extensionFactories ?? []),\n\t\t];\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager: this.settingsManager,\n\t\t\tbuiltinExtensions: this.extensionFactories.flatMap((input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin ? [input.name] : [],\n\t\t\t),\n\t\t});\n\t\tthis.noExtensions = options.noExtensions ?? inheritanceSnapshot?.noExtensions ?? false;\n\t\tthis.noSkills = options.noSkills ?? inheritanceSnapshot?.noSkills ?? false;\n\t\tthis.noPromptTemplates = options.noPromptTemplates ?? inheritanceSnapshot?.noPromptTemplates ?? false;\n\t\tthis.noThemes = options.noThemes ?? inheritanceSnapshot?.noThemes ?? false;\n\t\tthis.noContextFiles = options.noContextFiles ?? inheritanceSnapshot?.noContextFiles ?? false;\n\t\tthis.systemPromptSource = options.systemPrompt ?? inheritanceSnapshot?.systemPrompt;\n\t\tthis.appendSystemPromptSource =\n\t\t\toptions.appendSystemPrompt !== undefined\n\t\t\t\t? [...options.appendSystemPrompt]\n\t\t\t\t: inheritanceSnapshot?.appendSystemPrompt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: [...inheritanceSnapshot.appendSystemPrompt];\n\t\tthis.extensionsOverride = options.extensionsOverride;\n\t\tthis.skillsOverride = options.skillsOverride;\n\t\tthis.promptsOverride = options.promptsOverride;\n\t\tthis.themesOverride = options.themesOverride;\n\t\tthis.agentsFilesOverride = options.agentsFilesOverride;\n\t\tthis.systemPromptOverride = options.systemPromptOverride;\n\t\tthis.appendSystemPromptOverride = options.appendSystemPromptOverride;\n\t\tthis.extensionsResult = { extensions: [], errors: [], runtime: createExtensionRuntime() };\n\t\tthis.skills = [];\n\t\tthis.skillDiagnostics = [];\n\t\tthis.skillCatalog = buildSkillCatalog([]);\n\t\tthis.prompts = [];\n\t\tthis.promptDiagnostics = [];\n\t\tthis.themes = [];\n\t\tthis.themeDiagnostics = [];\n\t\tthis.agentsFiles = [];\n\t\tthis.appendSystemPrompt = [];\n\t\tthis.appendSystemPromptSourcePaths = [];\n\t\tthis.workflowResources = [];\n\t\tthis.mcpServerContributions = [];\n\t\tthis.trustedBorrowedProjectLocalSources =\n\t\t\tinheritanceSnapshot?.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? undefined\n\t\t\t\t: new Set(inheritanceSnapshot.trustedBorrowedProjectLocalSources);\n\t\tthis.lastSkillPaths = [];\n\t\tthis.resourceMetadataByPath = new Map();\n\t\tthis.extensionSkillSourceInfos = new Map();\n\t\tthis.extensionPromptSourceInfos = new Map();\n\t\tthis.extensionThemeSourceInfos = new Map();\n\t\tthis.lastPromptPaths = [];\n\t\tthis.lastThemePaths = [];\n\t\tthis.loaded = false;\n\t\tthis.touchInternalFieldsForSplit();\n\t}\n\n\tgetExtensions(): LoadExtensionsResult {\n\t\treturn this.extensionsResult;\n\t}\n\n\tgetSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { skills: this.skills, diagnostics: this.skillDiagnostics };\n\t}\n\n\tgetSkillCatalog(): SkillCatalog {\n\t\treturn this.skillCatalog;\n\t}\n\n\tgetPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { prompts: this.prompts, diagnostics: this.promptDiagnostics };\n\t}\n\n\tgetThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } {\n\t\treturn { themes: this.themes, diagnostics: this.themeDiagnostics };\n\t}\n\n\tgetOverlaps(): ResourceOverlap[] {\n\t\treturn [...(this.extensionsResult.overlaps ?? [])];\n\t}\n\n\tgetAgentsFiles(): { agentsFiles: Array<{ path: string; content: string }> } {\n\t\treturn { agentsFiles: this.agentsFiles };\n\t}\n\n\tgetSystemPrompt(): string | undefined {\n\t\treturn this.systemPrompt;\n\t}\n\n\tgetAppendSystemPrompt(): string[] {\n\t\treturn this.appendSystemPrompt;\n\t}\n\n\tgetSystemPromptSource(): { path: string } | undefined {\n\t\treturn this.systemPromptSourcePath ? { path: this.systemPromptSourcePath } : undefined;\n\t}\n\n\tgetAppendSystemPromptSources(): Array<{ path: string }> {\n\t\treturn this.appendSystemPromptSourcePaths.map((path) => ({ path }));\n\t}\n\n\tgetWorkflowResources(): ResolvedResource[] {\n\t\treturn [...this.workflowResources];\n\t}\n\n\t/** Enabled package-manifest MCP servers discovered by the last reload. */\n\tgetMcpServerContributions(): McpServerContribution[] {\n\t\treturn [...this.mcpServerContributions];\n\t}\n\n\tgetInheritanceSnapshot(): DefaultResourceLoaderInheritanceSnapshot {\n\t\treturn {\n\t\t\tprojectTrusted: this.settingsManager.isProjectTrusted(),\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\t...(this.systemPromptSource === undefined ? {} : { systemPrompt: this.systemPromptSource }),\n\t\t\t...(this.appendSystemPromptSource === undefined\n\t\t\t\t? {}\n\t\t\t\t: { appendSystemPrompt: [...this.appendSystemPromptSource] }),\n\t\t\t...(this.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t? {}\n\t\t\t\t: { trustedBorrowedProjectLocalSources: [...this.trustedBorrowedProjectLocalSources] }),\n\t\t};\n\t}\n\n\tasync refreshWorkflowResources(): Promise<ResolvedResource[]> {\n\t\tconst { resolvedPaths, cliExtensionPaths, builtinPackagePaths } = await resolvePackageResourcePaths(this, {\n\t\t\ttrustedBorrowedProjectLocalSources: this.trustedBorrowedProjectLocalSources,\n\t\t});\n\t\tconst workflowResources = collectWorkflowResources(resolvedPaths, cliExtensionPaths, builtinPackagePaths);\n\t\tthis.workflowResources = workflowResources;\n\t\treturn [...this.workflowResources];\n\t}\n\n\tasync extendResources(paths: ResourceExtensionPaths): Promise<void> {\n\t\tconst skillPaths = normalizeExtensionPaths(this, paths.skillPaths ?? []);\n\t\tconst promptPaths = normalizeExtensionPaths(this, paths.promptPaths ?? []);\n\t\tconst themePaths = normalizeExtensionPaths(this, paths.themePaths ?? []);\n\t\trecordExtensionSourceInfo(this, skillPaths, \"skill\");\n\t\trecordExtensionSourceInfo(this, promptPaths, \"prompt\");\n\t\trecordExtensionSourceInfo(this, themePaths, \"theme\");\n\n\t\tif (skillPaths.length > 0) {\n\t\t\tthis.lastSkillPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastSkillPaths,\n\t\t\t\tskillPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateSkillsFromPathsAsync(this, this.lastSkillPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (promptPaths.length > 0) {\n\t\t\tthis.lastPromptPaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastPromptPaths,\n\t\t\t\tpromptPaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updatePromptsFromPathsAsync(this, this.lastPromptPaths, this.resourceMetadataByPath);\n\t\t}\n\t\tif (themePaths.length > 0) {\n\t\t\tthis.lastThemePaths = mergeResourcePaths(\n\t\t\t\tthis.cwd,\n\t\t\t\tthis.lastThemePaths,\n\t\t\t\tthemePaths.map((entry) => entry.path),\n\t\t\t);\n\t\t\tawait updateThemesFromPathsAsync(this, this.lastThemePaths, this.resourceMetadataByPath);\n\t\t}\n\t}\n\n\tasync loadProjectTrustExtensions(): Promise<LoadExtensionsResult> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, () =>\n\t\t\tloadProjectTrustExtensions(this),\n\t\t);\n\t}\n\n\tasync reload(options?: ResourceLoaderReloadOptions): Promise<void> {\n\t\treturn sessionLifecycleCreation.run({ scope: lifecycleScopeForOwner(this), claimed: true }, async () => {\n\t\t\tawait reloadDefaultResourceLoader(this, options);\n\t\t\tthis.loadOptions = options ? { ...options } : undefined;\n\t\t\tlifecycleScopeForOwner(this.getExtensions().runtime);\n\t\t});\n\t}\n\tprivate createCandidate(settingsManager: SettingsManager, eventBus: EventBus): DefaultResourceLoader {\n\t\treturn new DefaultResourceLoader({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\teventBus,\n\t\t\tadditionalExtensionPaths: [...this.additionalExtensionPaths],\n\t\t\tadditionalSkillPaths: [...this.additionalSkillPaths],\n\t\t\tadditionalPromptTemplatePaths: [...this.additionalPromptTemplatePaths],\n\t\t\tadditionalThemePaths: [...this.additionalThemePaths],\n\t\t\tbuiltinPackagePaths: clonePackageSources(this.builtinPackagePaths),\n\t\t\textensionFactories: [...this.extensionFactories],\n\t\t\tnoExtensions: this.noExtensions,\n\t\t\tnoSkills: this.noSkills,\n\t\t\tnoPromptTemplates: this.noPromptTemplates,\n\t\t\tnoThemes: this.noThemes,\n\t\t\tnoContextFiles: this.noContextFiles,\n\t\t\tsystemPrompt: this.systemPromptSource,\n\t\t\tappendSystemPrompt: this.appendSystemPromptSource,\n\t\t\textensionsOverride: this.extensionsOverride,\n\t\t\tskillsOverride: this.skillsOverride,\n\t\t\tpromptsOverride: this.promptsOverride,\n\t\t\tthemesOverride: this.themesOverride,\n\t\t\tagentsFilesOverride: this.agentsFilesOverride,\n\t\t\tsystemPromptOverride: this.systemPromptOverride,\n\t\t\tappendSystemPromptOverride: this.appendSystemPromptOverride,\n\t\t\tresourceLoaderInheritanceSnapshot: {\n\t\t\t\ttrustedBorrowedProjectLocalSources:\n\t\t\t\t\tthis.trustedBorrowedProjectLocalSources === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: [...this.trustedBorrowedProjectLocalSources],\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @internal A borrowed discovery loader is not a session extension generation. */\n\tasync createSessionLoader(scope: object): Promise<DefaultResourceLoader> {\n\t\tif (sessionLifecycleScopes.get(this) === scope) return this;\n\t\tconst candidate = this.createCandidate(this.settingsManager, this.eventBus);\n\t\tsessionLifecycleScopes.set(candidate, scope);\n\t\tawait candidate.reload(this.loadOptions);\n\t\t// Retain caller-added assets as well as its discovery configuration.\n\t\tconst pathsWithMetadata = (paths: readonly string[]) =>\n\t\t\tpaths.flatMap((path) => {\n\t\t\t\tconst metadata = this.resourceMetadataByPath.get(path);\n\t\t\t\treturn metadata ? [{ path, metadata }] : [];\n\t\t\t});\n\t\tawait candidate.extendResources({\n\t\t\tskillPaths: pathsWithMetadata(this.lastSkillPaths),\n\t\t\tpromptPaths: pathsWithMetadata(this.lastPromptPaths),\n\t\t\tthemePaths: pathsWithMetadata(this.lastThemePaths),\n\t\t});\n\t\treturn candidate;\n\t}\n\n\tasync prepareReload(\n\t\tsettingsManager: SettingsManager,\n\t\toptions?: ResourceLoaderReloadOptions,\n\t): Promise<ResourceLoaderReloadTransaction> {\n\t\tconst eventBusTransaction = createStagedEventBus(this.eventBus);\n\t\tconst candidate = this.createCandidate(settingsManager, eventBusTransaction.bus);\n\t\tsessionLifecycleScopes.set(candidate, lifecycleScopeForOwner(this));\n\t\tawait candidate.reload(options);\n\t\tconst prepareCommit = () => {\n\t\t\tconst eventBusCommit = eventBusTransaction.prepareCommit();\n\t\t\tlet settled = false;\n\t\t\treturn {\n\t\t\t\tcommit: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.commit();\n\t\t\t\t\tthis.publishCandidate(candidate);\n\t\t\t\t},\n\t\t\t\trollback: () => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\teventBusCommit.rollback();\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\t// The candidate owns its generation; the borrowed loader remains untouched.\n\t\treturn {\n\t\t\tloader: candidate,\n\t\t\tactivate: (liveSettingsManager) => candidate.replaceSettingsManager(liveSettingsManager),\n\t\t\tprepareCommit,\n\t\t\tcommit: () => prepareCommit().commit(),\n\t\t};\n\t}\n\n\tprivate replaceSettingsManager(settingsManager: SettingsManager): void {\n\t\tthis.settingsManager = settingsManager;\n\t\tthis.packageManager = new DefaultPackageManager({\n\t\t\tcwd: this.cwd,\n\t\t\tagentDir: this.agentDir,\n\t\t\tsettingsManager,\n\t\t\tbuiltinExtensions: this.extensionFactories.flatMap((input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin ? [input.name] : [],\n\t\t\t),\n\t\t});\n\t}\n\n\tprivate publishCandidate(candidate: DefaultResourceLoader): void {\n\t\tthis.extensionsResult = candidate.extensionsResult;\n\t\tthis.skills = candidate.skills;\n\t\tthis.skillDiagnostics = candidate.skillDiagnostics;\n\t\tthis.skillCatalog = candidate.skillCatalog;\n\t\tthis.prompts = candidate.prompts;\n\t\tthis.promptDiagnostics = candidate.promptDiagnostics;\n\t\tthis.themes = candidate.themes;\n\t\tthis.themeDiagnostics = candidate.themeDiagnostics;\n\t\tthis.agentsFiles = candidate.agentsFiles;\n\t\tthis.systemPrompt = candidate.systemPrompt;\n\t\tthis.systemPromptSourcePath = candidate.systemPromptSourcePath;\n\t\tthis.appendSystemPrompt = candidate.appendSystemPrompt;\n\t\tthis.appendSystemPromptSourcePaths = candidate.appendSystemPromptSourcePaths;\n\t\tthis.workflowResources = candidate.workflowResources;\n\t\tthis.mcpServerContributions = candidate.mcpServerContributions;\n\t\tthis.trustedBorrowedProjectLocalSources = candidate.trustedBorrowedProjectLocalSources;\n\t\tthis.lastSkillPaths = candidate.lastSkillPaths;\n\t\tthis.extensionSkillSourceInfos = candidate.extensionSkillSourceInfos;\n\t\tthis.resourceMetadataByPath = candidate.resourceMetadataByPath;\n\t\tthis.extensionPromptSourceInfos = candidate.extensionPromptSourceInfos;\n\t\tthis.extensionThemeSourceInfos = candidate.extensionThemeSourceInfos;\n\t\tthis.lastPromptPaths = candidate.lastPromptPaths;\n\t\tthis.lastThemePaths = candidate.lastThemePaths;\n\t\tthis.loaded = candidate.loaded;\n\t}\n\n\tprivate touchInternalFieldsForSplit(): void {\n\t\tvoid this.eventBus;\n\t\tvoid this.packageManager;\n\t\tvoid this.noContextFiles;\n\t\tvoid this.extensionsOverride;\n\t\tvoid this.skillsOverride;\n\t\tvoid this.promptsOverride;\n\t\tvoid this.themesOverride;\n\t\tvoid this.agentsFilesOverride;\n\t\tvoid this.systemPromptOverride;\n\t\tvoid this.appendSystemPromptOverride;\n\t\tvoid this.extensionSkillSourceInfos;\n\t\tvoid this.extensionPromptSourceInfos;\n\t\tvoid this.extensionThemeSourceInfos;\n\t\tvoid this.loaded;\n\t}\n}\n\n/** @internal Only unmodified concrete discovery can be recreated without losing caller policy. */\nexport function canCloneDefaultResourceDiscovery(loader: ResourceLoader | undefined): loader is DefaultResourceLoader {\n\treturn (\n\t\tloader instanceof DefaultResourceLoader &&\n\t\tloader.constructor === DefaultResourceLoader &&\n\t\tObject.getOwnPropertyNames(DefaultResourceLoader.prototype).every((name) => !Object.hasOwn(loader, name))\n\t);\n}\n"]}
@@ -2,6 +2,7 @@ import { type WorkflowResourceProvider } from "./extensions/loader.ts";
2
2
  import type { Extension, ExtensionRuntime, LoadExtensionsResult } from "./extensions/types.ts";
3
3
  import type { DefaultResourceLoader } from "./resource-loader-core.ts";
4
4
  import type { DefaultResourceLoaderInheritanceSnapshot } from "./resource-loader-types.ts";
5
+ export declare function loadExtensionPaths(loader: DefaultResourceLoader, paths: string[], workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot, runtime?: ExtensionRuntime): Promise<LoadExtensionsResult>;
5
6
  export declare function loadFinalExtensionSet(loader: DefaultResourceLoader, extensionPaths: string[], preTrustExtensions: LoadExtensionsResult | undefined, workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot): Promise<LoadExtensionsResult>;
6
7
  export declare function loadExtensionFactories(loader: DefaultResourceLoader, runtime: ExtensionRuntime, workflowResourceProvider: WorkflowResourceProvider, inheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot): Promise<{
7
8
  extensions: Extension[];
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-extensions.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAO3F,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,MAAM,EAAE,EACxB,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,EACpD,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC,oBAAoB,CAAC,CAkE/B;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC;IACV,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C,CAAC,CAiCD;AAED,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAY9F"}
1
+ {"version":3,"file":"resource-loader-extensions.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkD,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,4BAA4B,CAAC;AAU3F,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,MAAM,EAAE,EACf,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,EAC3E,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAuC/B;AAED,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,MAAM,EAAE,EACxB,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,EACpD,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC,oBAAoB,CAAC,CA8D/B;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,MAAM,wCAAwC,GACzE,OAAO,CAAC;IACV,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C,CAAC,CAmCD;AAgCD,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAa9F"}
@@ -2,15 +2,42 @@ import { yieldToEventLoop } from "../utils/event-loop.js";
2
2
  import { resolvePath } from "../utils/paths.js";
3
3
  import { loadExtensionFromFactory, loadExtensionsCached } from "./extensions/loader.js";
4
4
  import { resourceInternals } from "./resource-loader-internals.js";
5
+ import { BUILTIN_PATH_PREFIX, isSyntheticPath } from "./source-info.js";
5
6
  import { endTimingSpan, startTimingSpan } from "./timings.js";
6
7
  function resolveExtensionLoadPath(loader, path) {
7
- return resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });
8
+ return isSyntheticPath(path)
9
+ ? path
10
+ : resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });
8
11
  }
9
- export async function loadFinalExtensionSet(loader, extensionPaths, preTrustExtensions, workflowResourceProvider, inheritanceSnapshotProvider) {
12
+ export async function loadExtensionPaths(loader, paths, workflowResourceProvider, inheritanceSnapshotProvider, runtime) {
10
13
  const state = resourceInternals(loader);
14
+ const result = await loadExtensionsCached(paths.filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)), state.cwd, state.eventBus, workflowResourceProvider, runtime, inheritanceSnapshotProvider);
15
+ for (const path of paths.filter((path) => path.startsWith(BUILTIN_PATH_PREFIX))) {
16
+ const builtin = state.extensionFactories.find((input) => typeof input !== "function" && input.builtin && input.name === path.slice(BUILTIN_PATH_PREFIX.length));
17
+ if (!builtin || typeof builtin === "function") {
18
+ result.errors.push({ path, error: `Unknown built-in extension: ${path}` });
19
+ continue;
20
+ }
21
+ try {
22
+ const extension = await loadExtensionFromFactory(builtin.factory, state.cwd, state.eventBus, result.runtime, path, workflowResourceProvider, inheritanceSnapshotProvider);
23
+ extension.hidden = true;
24
+ extension.replaceable = builtin.replaceable === true;
25
+ if (builtin.bundled)
26
+ extension.sourceInfo.configurationOrigin = "bundled";
27
+ result.extensions.push(extension);
28
+ }
29
+ catch (error) {
30
+ if (error instanceof Error && "code" in error && error.code === "ShutdownFailed")
31
+ throw error;
32
+ result.errors.push({ path, error: error instanceof Error ? error.message : "failed to load extension" });
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ export async function loadFinalExtensionSet(loader, extensionPaths, preTrustExtensions, workflowResourceProvider, inheritanceSnapshotProvider) {
11
38
  if (!preTrustExtensions) {
12
39
  const loadExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadExtensions");
13
- const extensionsResult = await loadExtensionsCached(extensionPaths, state.cwd, state.eventBus, workflowResourceProvider, undefined, inheritanceSnapshotProvider);
40
+ const extensionsResult = await loadExtensionPaths(loader, extensionPaths, workflowResourceProvider, inheritanceSnapshotProvider);
14
41
  endTimingSpan(loadExtensionsSpan);
15
42
  const inlineExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadInlineExtensionFactories");
16
43
  const inlineExtensions = await loadExtensionFactories(loader, extensionsResult.runtime, workflowResourceProvider, inheritanceSnapshotProvider);
@@ -28,7 +55,7 @@ export async function loadFinalExtensionSet(loader, extensionPaths, preTrustExte
28
55
  return !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);
29
56
  });
30
57
  const loadExtensionsSpan = startTimingSpan("DefaultResourceLoader.reload.loadExtensions");
31
- const remainingExtensions = await loadExtensionsCached(remainingPaths, state.cwd, state.eventBus, workflowResourceProvider, preTrustExtensions.runtime, inheritanceSnapshotProvider);
58
+ const remainingExtensions = await loadExtensionPaths(loader, remainingPaths, workflowResourceProvider, inheritanceSnapshotProvider, preTrustExtensions.runtime);
32
59
  endTimingSpan(loadExtensionsSpan);
33
60
  const loadedByPath = new Map(preloadedByPath);
34
61
  for (const extension of remainingExtensions.extensions) {
@@ -56,11 +83,14 @@ export async function loadExtensionFactories(loader, runtime, workflowResourcePr
56
83
  await yieldToEventLoop();
57
84
  }
58
85
  const descriptor = typeof inlineExtension === "function" ? undefined : inlineExtension;
86
+ if (descriptor?.builtin)
87
+ continue;
59
88
  const factory = typeof inlineExtension === "function" ? inlineExtension : inlineExtension.factory;
60
89
  const extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;
61
90
  try {
62
91
  const extension = await loadExtensionFromFactory(factory, state.cwd, state.eventBus, runtime, extensionPath, workflowResourceProvider, inheritanceSnapshotProvider);
63
92
  extension.hidden = descriptor?.hidden;
93
+ extension.replaceable = descriptor?.replaceable === true;
64
94
  if (descriptor?.bundled)
65
95
  extension.sourceInfo.configurationOrigin = "bundled";
66
96
  extensions.push(extension);
@@ -74,12 +104,42 @@ export async function loadExtensionFactories(loader, runtime, workflowResourcePr
74
104
  }
75
105
  return { extensions, errors };
76
106
  }
107
+ function omitReplacedBuiltins(result) {
108
+ const names = (extension) => [
109
+ ...[...extension.tools.keys()].map((name) => `tool:${name}`),
110
+ ...[...extension.commands.keys()].map((name) => `command:${name}`),
111
+ ...[...extension.flags.keys()].map((name) => `flag:${name}`),
112
+ ];
113
+ const taken = new Map(result.extensions
114
+ .filter((extension) => !extension.replaceable)
115
+ .flatMap((extension) => names(extension).map((name) => [name, extension])));
116
+ result.extensions = result.extensions.filter((extension) => {
117
+ if (!extension.replaceable)
118
+ return true;
119
+ const replacement = names(extension)
120
+ .map((name) => ({ name, owner: taken.get(name) }))
121
+ .find((entry) => entry.owner !== undefined);
122
+ if (!replacement?.owner)
123
+ return true;
124
+ if (extension.path.startsWith(BUILTIN_PATH_PREFIX)) {
125
+ const [kind, rawName] = replacement.name.split(":", 2);
126
+ const registeredName = kind === "command" ? `/${rawName}` : kind === "flag" ? `--${rawName}` : rawName;
127
+ result.warnings ??= [];
128
+ result.warnings.push({
129
+ path: extension.path,
130
+ warning: `Extension ${replacement.owner.path} registers ${kind} \`${registeredName}\`, so built-in extension \`${extension.path.slice(BUILTIN_PATH_PREFIX.length)}\` was replaced. Run \`atomic config\` to enable the builtin, then disable or remove the replacement extension. Keep only one enabled.`,
131
+ });
132
+ }
133
+ return false;
134
+ });
135
+ }
77
136
  export function resolveInheritedExtensionOverlaps(extensionsResult) {
78
137
  extensionsResult.overlaps = [];
79
138
  removeInheritedRegistrations("tool", extensionsResult, (extension) => extension.tools);
80
139
  removeInheritedRegistrations("command", extensionsResult, (extension) => extension.commands);
81
140
  removeInheritedRegistrations("flag", extensionsResult, (extension) => extension.flags);
82
141
  removeInheritedRegistrations("shortcut", extensionsResult, (extension) => extension.shortcuts);
142
+ omitReplacedBuiltins(extensionsResult);
83
143
  installRegistrationPolicy(extensionsResult);
84
144
  rebuildFlagDefaults(extensionsResult);
85
145
  for (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-extensions.js","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KeyId } from \"@earendil-works/pi-tui\";\nimport { yieldToEventLoop } from \"../utils/event-loop.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { OverlappingResourceType } from \"./diagnostics.ts\";\nimport { loadExtensionFromFactory, loadExtensionsCached, type WorkflowResourceProvider } from \"./extensions/loader.ts\";\nimport type { Extension, ExtensionRuntime, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"./resource-loader-types.ts\";\nimport { endTimingSpan, startTimingSpan } from \"./timings.ts\";\n\nfunction resolveExtensionLoadPath(loader: DefaultResourceLoader, path: string): string {\n\treturn resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });\n}\n\nexport async function loadFinalExtensionSet(\n\tloader: DefaultResourceLoader,\n\textensionPaths: string[],\n\tpreTrustExtensions: LoadExtensionsResult | undefined,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tif (!preTrustExtensions) {\n\t\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\t\tconst extensionsResult = await loadExtensionsCached(\n\t\t\textensionPaths,\n\t\t\tstate.cwd,\n\t\t\tstate.eventBus,\n\t\t\tworkflowResourceProvider,\n\t\t\tundefined,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(loadExtensionsSpan);\n\t\tconst inlineExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadInlineExtensionFactories\");\n\t\tconst inlineExtensions = await loadExtensionFactories(\n\t\t\tloader,\n\t\t\textensionsResult.runtime,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(inlineExtensionsSpan);\n\t\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\t\textensionsResult.errors.push(...inlineExtensions.errors);\n\t\treturn extensionsResult;\n\t}\n\n\tconst preloadedByPath = new Map(\n\t\tpreTrustExtensions.extensions\n\t\t\t.filter((extension) => !extension.path.startsWith(\"<inline:\"))\n\t\t\t.map((extension) => [extension.resolvedPath, extension]),\n\t);\n\tconst failedPreloadPaths = new Set(\n\t\tpreTrustExtensions.errors.map((error) => resolveExtensionLoadPath(loader, error.path)),\n\t);\n\tconst remainingPaths = extensionPaths.filter((path) => {\n\t\tconst resolvedPath = resolveExtensionLoadPath(loader, path);\n\t\treturn !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);\n\t});\n\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\tconst remainingExtensions = await loadExtensionsCached(\n\t\tremainingPaths,\n\t\tstate.cwd,\n\t\tstate.eventBus,\n\t\tworkflowResourceProvider,\n\t\tpreTrustExtensions.runtime,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tendTimingSpan(loadExtensionsSpan);\n\tconst loadedByPath = new Map(preloadedByPath);\n\tfor (const extension of remainingExtensions.extensions) {\n\t\tloadedByPath.set(extension.resolvedPath, extension);\n\t}\n\n\tconst inlineExtensions = preTrustExtensions.extensions.filter((extension) => extension.path.startsWith(\"<inline:\"));\n\tconst orderedExtensions = extensionPaths\n\t\t.map((path) => loadedByPath.get(resolveExtensionLoadPath(loader, path)))\n\t\t.filter((extension): extension is Extension => extension !== undefined);\n\torderedExtensions.push(...inlineExtensions);\n\n\tconst extensionsResult: LoadExtensionsResult = {\n\t\textensions: orderedExtensions,\n\t\terrors: [...preTrustExtensions.errors, ...remainingExtensions.errors],\n\t\twarnings: [...(preTrustExtensions.warnings ?? []), ...(remainingExtensions.warnings ?? [])],\n\t\truntime: preTrustExtensions.runtime,\n\t};\n\treturn extensionsResult;\n}\n\nexport async function loadExtensionFactories(\n\tloader: DefaultResourceLoader,\n\truntime: ExtensionRuntime,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<{\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n}> {\n\tconst state = resourceInternals(loader);\n\tconst extensions: Extension[] = [];\n\tconst errors: Array<{ path: string; error: string }> = [];\n\n\tfor (const [index, inlineExtension] of state.extensionFactories.entries()) {\n\t\tif (index > 0) {\n\t\t\tawait yieldToEventLoop();\n\t\t}\n\t\tconst descriptor = typeof inlineExtension === \"function\" ? undefined : inlineExtension;\n\t\tconst factory = typeof inlineExtension === \"function\" ? inlineExtension : inlineExtension.factory;\n\t\tconst extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tfactory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\truntime,\n\t\t\t\textensionPath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = descriptor?.hidden;\n\t\t\tif (descriptor?.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\textensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to load extension\";\n\t\t\terrors.push({ path: extensionPath, error: message });\n\t\t}\n\t}\n\n\treturn { extensions, errors };\n}\n\nexport function resolveInheritedExtensionOverlaps(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.overlaps = [];\n\tremoveInheritedRegistrations(\"tool\", extensionsResult, (extension) => extension.tools);\n\tremoveInheritedRegistrations(\"command\", extensionsResult, (extension) => extension.commands);\n\tremoveInheritedRegistrations(\"flag\", extensionsResult, (extension) => extension.flags);\n\tremoveInheritedRegistrations(\"shortcut\", extensionsResult, (extension) => extension.shortcuts);\n\tinstallRegistrationPolicy(extensionsResult);\n\trebuildFlagDefaults(extensionsResult);\n\n\tfor (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {\n\t\textensionsResult.errors.push({ path: conflict.path, error: conflict.message });\n\t}\n}\n\nfunction removeInheritedRegistrations<K extends string, V>(\n\tresourceType: OverlappingResourceType,\n\textensionsResult: LoadExtensionsResult,\n\tgetRegistrations: (extension: Extension) => Map<K, V>,\n): void {\n\tconst bundledOwners = new Map<K, Extension>();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"bundled\") continue;\n\t\tfor (const name of getRegistrations(extension).keys()) {\n\t\t\tif (!bundledOwners.has(name)) bundledOwners.set(name, extension);\n\t\t}\n\t}\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"inherited-pi\") continue;\n\t\tconst registrations = getRegistrations(extension);\n\t\tfor (const name of [...registrations.keys()]) {\n\t\t\tconst bundledOwner = bundledOwners.get(name);\n\t\t\tif (!bundledOwner) continue;\n\t\t\tregistrations.delete(name);\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t}\n\t}\n}\n\nfunction installRegistrationPolicy(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\textensionsResult.runtime.canRegisterResource = (extension, resourceType, name) => {\n\t\tif (resourceType === \"prompt\") return true;\n\t\tif (extension.sourceInfo.configurationOrigin === \"inherited-pi\") {\n\t\t\tconst bundledOwner = extensionsResult.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.sourceInfo.configurationOrigin === \"bundled\" &&\n\t\t\t\t\thasActiveOrPendingRegistration(extensionsResult.runtime, candidate, resourceType, name),\n\t\t\t);\n\t\t\tif (!bundledOwner) return true;\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t\treturn false;\n\t\t}\n\t\tconst isBundled = extension.sourceInfo.configurationOrigin === \"bundled\";\n\t\tfor (const inherited of extensionsResult.extensions) {\n\t\t\tif (\n\t\t\t\tinherited.sourceInfo.configurationOrigin !== \"inherited-pi\" ||\n\t\t\t\t!hasActiveOrPendingRegistration(extensionsResult.runtime, inherited, resourceType, name)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (resourceType === \"flag\" && flagOwners.get(name) === inherited.path) {\n\t\t\t\tflagOwners.delete(name);\n\t\t\t\tflagOwnerOrigins.delete(name);\n\t\t\t\tif (!extensionsResult.runtime.explicitFlagNames?.has(name))\n\t\t\t\t\textensionsResult.runtime.flagValues.delete(name);\n\t\t\t}\n\t\t\tdeleteRegistration(extensionsResult.runtime, inherited, resourceType, name);\n\t\t\tif (isBundled) recordOverlap(extensionsResult, resourceType, name, extension, inherited);\n\t\t}\n\t\treturn true;\n\t};\n}\n\nfunction hasActiveOrPendingRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\treturn (\n\t\thasRegistration(extension, resourceType, name) ||\n\t\truntime.hasPendingResourceRegistration?.(extension, resourceType, name) === true\n\t);\n}\n\nfunction hasRegistration(\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\treturn extension.tools.has(name);\n\t\tcase \"command\":\n\t\t\treturn extension.commands.has(name);\n\t\tcase \"flag\":\n\t\t\treturn extension.flags.has(name);\n\t\tcase \"shortcut\":\n\t\t\treturn extension.shortcuts.has(name as KeyId);\n\t}\n}\n\nfunction deleteRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): void {\n\truntime.deletePendingResourceRegistration?.(extension, resourceType, name);\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\textension.tools.delete(name);\n\t\t\tbreak;\n\t\tcase \"command\":\n\t\t\textension.commands.delete(name);\n\t\t\tbreak;\n\t\tcase \"flag\":\n\t\t\textension.flags.delete(name);\n\t\t\tbreak;\n\t\tcase \"shortcut\":\n\t\t\textension.shortcuts.delete(name as KeyId);\n\t\t\tbreak;\n\t}\n}\n\nfunction recordOverlap(\n\textensionsResult: LoadExtensionsResult,\n\tresourceType: OverlappingResourceType,\n\tname: string,\n\tbundled: Extension,\n\tinherited: Extension,\n): void {\n\textensionsResult.overlaps ??= [];\n\tconst overlaps = extensionsResult.overlaps;\n\tif (\n\t\toverlaps.some(\n\t\t\t(overlap) =>\n\t\t\t\toverlap.resourceType === resourceType &&\n\t\t\t\toverlap.name === name &&\n\t\t\t\toverlap.inherited.path === inherited.sourceInfo.path,\n\t\t)\n\t)\n\t\treturn;\n\toverlaps.push({ resourceType, name, bundled: bundled.sourceInfo, inherited: inherited.sourceInfo });\n}\n\nfunction rebuildFlagDefaults(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagValues.clear();\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\tflagOwners.clear();\n\tflagOwnerOrigins.clear();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tfor (const [name, flag] of extension.flags) {\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tflagOwnerOrigins.get(name) === extension.sourceInfo.configurationOrigin &&\n\t\t\t\tflag.default !== undefined &&\n\t\t\t\t!extensionsResult.runtime.flagValues.has(name)\n\t\t\t) {\n\t\t\t\textensionsResult.runtime.flagValues.set(name, flag.default);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction detectExtensionConflicts(extensions: Extension[]): Array<{ path: string; message: string }> {\n\tconst conflicts: Array<{ path: string; message: string }> = [];\n\n\t// Track which extension registered each tool and flag\n\tconst toolOwners = new Map<string, string>();\n\tconst flagOwners = new Map<string, string>();\n\n\tfor (const ext of extensions) {\n\t\t// Check tools\n\t\tfor (const toolName of ext.tools.keys()) {\n\t\t\tconst existingOwner = toolOwners.get(toolName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Tool \"${toolName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoolOwners.set(toolName, ext.path);\n\t\t\t}\n\t\t}\n\n\t\t// Check flags\n\t\tfor (const flagName of ext.flags.keys()) {\n\t\t\tconst existingOwner = flagOwners.get(flagName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Flag \"--${flagName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tflagOwners.set(flagName, ext.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"]}
1
+ {"version":3,"file":"resource-loader-extensions.js","sourceRoot":"","sources":["../../src/core/resource-loader-extensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { KeyId } from \"@earendil-works/pi-tui\";\nimport { yieldToEventLoop } from \"../utils/event-loop.ts\";\nimport { resolvePath } from \"../utils/paths.ts\";\nimport type { OverlappingResourceType } from \"./diagnostics.ts\";\nimport { loadExtensionFromFactory, loadExtensionsCached, type WorkflowResourceProvider } from \"./extensions/loader.ts\";\nimport type { Extension, ExtensionRuntime, LoadExtensionsResult } from \"./extensions/types.ts\";\nimport type { DefaultResourceLoader } from \"./resource-loader-core.ts\";\nimport { resourceInternals } from \"./resource-loader-internals.ts\";\nimport type { DefaultResourceLoaderInheritanceSnapshot } from \"./resource-loader-types.ts\";\nimport { BUILTIN_PATH_PREFIX, isSyntheticPath } from \"./source-info.ts\";\nimport { endTimingSpan, startTimingSpan } from \"./timings.ts\";\n\nfunction resolveExtensionLoadPath(loader: DefaultResourceLoader, path: string): string {\n\treturn isSyntheticPath(path)\n\t\t? path\n\t\t: resolvePath(path, resourceInternals(loader).cwd, { normalizeUnicodeSpaces: true });\n}\n\nexport async function loadExtensionPaths(\n\tloader: DefaultResourceLoader,\n\tpaths: string[],\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n\truntime?: ExtensionRuntime,\n): Promise<LoadExtensionsResult> {\n\tconst state = resourceInternals(loader);\n\tconst result = await loadExtensionsCached(\n\t\tpaths.filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX)),\n\t\tstate.cwd,\n\t\tstate.eventBus,\n\t\tworkflowResourceProvider,\n\t\truntime,\n\t\tinheritanceSnapshotProvider,\n\t);\n\tfor (const path of paths.filter((path) => path.startsWith(BUILTIN_PATH_PREFIX))) {\n\t\tconst builtin = state.extensionFactories.find(\n\t\t\t(input) =>\n\t\t\t\ttypeof input !== \"function\" && input.builtin && input.name === path.slice(BUILTIN_PATH_PREFIX.length),\n\t\t);\n\t\tif (!builtin || typeof builtin === \"function\") {\n\t\t\tresult.errors.push({ path, error: `Unknown built-in extension: ${path}` });\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tbuiltin.factory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\tresult.runtime,\n\t\t\t\tpath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = true;\n\t\t\textension.replaceable = builtin.replaceable === true;\n\t\t\tif (builtin.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\tresult.extensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tresult.errors.push({ path, error: error instanceof Error ? error.message : \"failed to load extension\" });\n\t\t}\n\t}\n\treturn result;\n}\n\nexport async function loadFinalExtensionSet(\n\tloader: DefaultResourceLoader,\n\textensionPaths: string[],\n\tpreTrustExtensions: LoadExtensionsResult | undefined,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<LoadExtensionsResult> {\n\tif (!preTrustExtensions) {\n\t\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\t\tconst extensionsResult = await loadExtensionPaths(\n\t\t\tloader,\n\t\t\textensionPaths,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(loadExtensionsSpan);\n\t\tconst inlineExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadInlineExtensionFactories\");\n\t\tconst inlineExtensions = await loadExtensionFactories(\n\t\t\tloader,\n\t\t\textensionsResult.runtime,\n\t\t\tworkflowResourceProvider,\n\t\t\tinheritanceSnapshotProvider,\n\t\t);\n\t\tendTimingSpan(inlineExtensionsSpan);\n\t\textensionsResult.extensions.push(...inlineExtensions.extensions);\n\t\textensionsResult.errors.push(...inlineExtensions.errors);\n\t\treturn extensionsResult;\n\t}\n\n\tconst preloadedByPath = new Map(\n\t\tpreTrustExtensions.extensions\n\t\t\t.filter((extension) => !extension.path.startsWith(\"<inline:\"))\n\t\t\t.map((extension) => [extension.resolvedPath, extension]),\n\t);\n\tconst failedPreloadPaths = new Set(\n\t\tpreTrustExtensions.errors.map((error) => resolveExtensionLoadPath(loader, error.path)),\n\t);\n\tconst remainingPaths = extensionPaths.filter((path) => {\n\t\tconst resolvedPath = resolveExtensionLoadPath(loader, path);\n\t\treturn !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);\n\t});\n\tconst loadExtensionsSpan = startTimingSpan(\"DefaultResourceLoader.reload.loadExtensions\");\n\tconst remainingExtensions = await loadExtensionPaths(\n\t\tloader,\n\t\tremainingPaths,\n\t\tworkflowResourceProvider,\n\t\tinheritanceSnapshotProvider,\n\t\tpreTrustExtensions.runtime,\n\t);\n\tendTimingSpan(loadExtensionsSpan);\n\tconst loadedByPath = new Map(preloadedByPath);\n\tfor (const extension of remainingExtensions.extensions) {\n\t\tloadedByPath.set(extension.resolvedPath, extension);\n\t}\n\n\tconst inlineExtensions = preTrustExtensions.extensions.filter((extension) => extension.path.startsWith(\"<inline:\"));\n\tconst orderedExtensions = extensionPaths\n\t\t.map((path) => loadedByPath.get(resolveExtensionLoadPath(loader, path)))\n\t\t.filter((extension): extension is Extension => extension !== undefined);\n\torderedExtensions.push(...inlineExtensions);\n\n\tconst extensionsResult: LoadExtensionsResult = {\n\t\textensions: orderedExtensions,\n\t\terrors: [...preTrustExtensions.errors, ...remainingExtensions.errors],\n\t\twarnings: [...(preTrustExtensions.warnings ?? []), ...(remainingExtensions.warnings ?? [])],\n\t\truntime: preTrustExtensions.runtime,\n\t};\n\treturn extensionsResult;\n}\n\nexport async function loadExtensionFactories(\n\tloader: DefaultResourceLoader,\n\truntime: ExtensionRuntime,\n\tworkflowResourceProvider: WorkflowResourceProvider,\n\tinheritanceSnapshotProvider: () => DefaultResourceLoaderInheritanceSnapshot,\n): Promise<{\n\textensions: Extension[];\n\terrors: Array<{ path: string; error: string }>;\n}> {\n\tconst state = resourceInternals(loader);\n\tconst extensions: Extension[] = [];\n\tconst errors: Array<{ path: string; error: string }> = [];\n\n\tfor (const [index, inlineExtension] of state.extensionFactories.entries()) {\n\t\tif (index > 0) {\n\t\t\tawait yieldToEventLoop();\n\t\t}\n\t\tconst descriptor = typeof inlineExtension === \"function\" ? undefined : inlineExtension;\n\t\tif (descriptor?.builtin) continue;\n\t\tconst factory = typeof inlineExtension === \"function\" ? inlineExtension : inlineExtension.factory;\n\t\tconst extensionPath = `<inline:${descriptor?.name ?? index + 1}>`;\n\t\ttry {\n\t\t\tconst extension = await loadExtensionFromFactory(\n\t\t\t\tfactory,\n\t\t\t\tstate.cwd,\n\t\t\t\tstate.eventBus,\n\t\t\t\truntime,\n\t\t\t\textensionPath,\n\t\t\t\tworkflowResourceProvider,\n\t\t\t\tinheritanceSnapshotProvider,\n\t\t\t);\n\t\t\textension.hidden = descriptor?.hidden;\n\t\t\textension.replaceable = descriptor?.replaceable === true;\n\t\t\tif (descriptor?.bundled) extension.sourceInfo.configurationOrigin = \"bundled\";\n\t\t\textensions.push(extension);\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && \"code\" in error && error.code === \"ShutdownFailed\") throw error;\n\t\t\tconst message = error instanceof Error ? error.message : \"failed to load extension\";\n\t\t\terrors.push({ path: extensionPath, error: message });\n\t\t}\n\t}\n\n\treturn { extensions, errors };\n}\n\nfunction omitReplacedBuiltins(result: LoadExtensionsResult): void {\n\tconst names = (extension: Extension) => [\n\t\t...[...extension.tools.keys()].map((name) => `tool:${name}`),\n\t\t...[...extension.commands.keys()].map((name) => `command:${name}`),\n\t\t...[...extension.flags.keys()].map((name) => `flag:${name}`),\n\t];\n\tconst taken = new Map(\n\t\tresult.extensions\n\t\t\t.filter((extension) => !extension.replaceable)\n\t\t\t.flatMap((extension) => names(extension).map((name) => [name, extension] as const)),\n\t);\n\tresult.extensions = result.extensions.filter((extension) => {\n\t\tif (!extension.replaceable) return true;\n\t\tconst replacement = names(extension)\n\t\t\t.map((name) => ({ name, owner: taken.get(name) }))\n\t\t\t.find((entry) => entry.owner !== undefined);\n\t\tif (!replacement?.owner) return true;\n\t\tif (extension.path.startsWith(BUILTIN_PATH_PREFIX)) {\n\t\t\tconst [kind, rawName] = replacement.name.split(\":\", 2);\n\t\t\tconst registeredName = kind === \"command\" ? `/${rawName}` : kind === \"flag\" ? `--${rawName}` : rawName;\n\t\t\tresult.warnings ??= [];\n\t\t\tresult.warnings.push({\n\t\t\t\tpath: extension.path,\n\t\t\t\twarning: `Extension ${replacement.owner.path} registers ${kind} \\`${registeredName}\\`, so built-in extension \\`${extension.path.slice(BUILTIN_PATH_PREFIX.length)}\\` was replaced. Run \\`atomic config\\` to enable the builtin, then disable or remove the replacement extension. Keep only one enabled.`,\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t});\n}\n\nexport function resolveInheritedExtensionOverlaps(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.overlaps = [];\n\tremoveInheritedRegistrations(\"tool\", extensionsResult, (extension) => extension.tools);\n\tremoveInheritedRegistrations(\"command\", extensionsResult, (extension) => extension.commands);\n\tremoveInheritedRegistrations(\"flag\", extensionsResult, (extension) => extension.flags);\n\tremoveInheritedRegistrations(\"shortcut\", extensionsResult, (extension) => extension.shortcuts);\n\tomitReplacedBuiltins(extensionsResult);\n\tinstallRegistrationPolicy(extensionsResult);\n\trebuildFlagDefaults(extensionsResult);\n\n\tfor (const conflict of detectExtensionConflicts(extensionsResult.extensions)) {\n\t\textensionsResult.errors.push({ path: conflict.path, error: conflict.message });\n\t}\n}\n\nfunction removeInheritedRegistrations<K extends string, V>(\n\tresourceType: OverlappingResourceType,\n\textensionsResult: LoadExtensionsResult,\n\tgetRegistrations: (extension: Extension) => Map<K, V>,\n): void {\n\tconst bundledOwners = new Map<K, Extension>();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"bundled\") continue;\n\t\tfor (const name of getRegistrations(extension).keys()) {\n\t\t\tif (!bundledOwners.has(name)) bundledOwners.set(name, extension);\n\t\t}\n\t}\n\tfor (const extension of extensionsResult.extensions) {\n\t\tif (extension.sourceInfo.configurationOrigin !== \"inherited-pi\") continue;\n\t\tconst registrations = getRegistrations(extension);\n\t\tfor (const name of [...registrations.keys()]) {\n\t\t\tconst bundledOwner = bundledOwners.get(name);\n\t\t\tif (!bundledOwner) continue;\n\t\t\tregistrations.delete(name);\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t}\n\t}\n}\n\nfunction installRegistrationPolicy(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\textensionsResult.runtime.canRegisterResource = (extension, resourceType, name) => {\n\t\tif (resourceType === \"prompt\") return true;\n\t\tif (extension.sourceInfo.configurationOrigin === \"inherited-pi\") {\n\t\t\tconst bundledOwner = extensionsResult.extensions.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.sourceInfo.configurationOrigin === \"bundled\" &&\n\t\t\t\t\thasActiveOrPendingRegistration(extensionsResult.runtime, candidate, resourceType, name),\n\t\t\t);\n\t\t\tif (!bundledOwner) return true;\n\t\t\trecordOverlap(extensionsResult, resourceType, name, bundledOwner, extension);\n\t\t\treturn false;\n\t\t}\n\t\tconst isBundled = extension.sourceInfo.configurationOrigin === \"bundled\";\n\t\tfor (const inherited of extensionsResult.extensions) {\n\t\t\tif (\n\t\t\t\tinherited.sourceInfo.configurationOrigin !== \"inherited-pi\" ||\n\t\t\t\t!hasActiveOrPendingRegistration(extensionsResult.runtime, inherited, resourceType, name)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (resourceType === \"flag\" && flagOwners.get(name) === inherited.path) {\n\t\t\t\tflagOwners.delete(name);\n\t\t\t\tflagOwnerOrigins.delete(name);\n\t\t\t\tif (!extensionsResult.runtime.explicitFlagNames?.has(name))\n\t\t\t\t\textensionsResult.runtime.flagValues.delete(name);\n\t\t\t}\n\t\t\tdeleteRegistration(extensionsResult.runtime, inherited, resourceType, name);\n\t\t\tif (isBundled) recordOverlap(extensionsResult, resourceType, name, extension, inherited);\n\t\t}\n\t\treturn true;\n\t};\n}\n\nfunction hasActiveOrPendingRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\treturn (\n\t\thasRegistration(extension, resourceType, name) ||\n\t\truntime.hasPendingResourceRegistration?.(extension, resourceType, name) === true\n\t);\n}\n\nfunction hasRegistration(\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): boolean {\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\treturn extension.tools.has(name);\n\t\tcase \"command\":\n\t\t\treturn extension.commands.has(name);\n\t\tcase \"flag\":\n\t\t\treturn extension.flags.has(name);\n\t\tcase \"shortcut\":\n\t\t\treturn extension.shortcuts.has(name as KeyId);\n\t}\n}\n\nfunction deleteRegistration(\n\truntime: ExtensionRuntime,\n\textension: Extension,\n\tresourceType: Exclude<OverlappingResourceType, \"prompt\">,\n\tname: string,\n): void {\n\truntime.deletePendingResourceRegistration?.(extension, resourceType, name);\n\tswitch (resourceType) {\n\t\tcase \"tool\":\n\t\t\textension.tools.delete(name);\n\t\t\tbreak;\n\t\tcase \"command\":\n\t\t\textension.commands.delete(name);\n\t\t\tbreak;\n\t\tcase \"flag\":\n\t\t\textension.flags.delete(name);\n\t\t\tbreak;\n\t\tcase \"shortcut\":\n\t\t\textension.shortcuts.delete(name as KeyId);\n\t\t\tbreak;\n\t}\n}\n\nfunction recordOverlap(\n\textensionsResult: LoadExtensionsResult,\n\tresourceType: OverlappingResourceType,\n\tname: string,\n\tbundled: Extension,\n\tinherited: Extension,\n): void {\n\textensionsResult.overlaps ??= [];\n\tconst overlaps = extensionsResult.overlaps;\n\tif (\n\t\toverlaps.some(\n\t\t\t(overlap) =>\n\t\t\t\toverlap.resourceType === resourceType &&\n\t\t\t\toverlap.name === name &&\n\t\t\t\toverlap.inherited.path === inherited.sourceInfo.path,\n\t\t)\n\t)\n\t\treturn;\n\toverlaps.push({ resourceType, name, bundled: bundled.sourceInfo, inherited: inherited.sourceInfo });\n}\n\nfunction rebuildFlagDefaults(extensionsResult: LoadExtensionsResult): void {\n\textensionsResult.runtime.flagValues.clear();\n\textensionsResult.runtime.flagOwners ??= new Map();\n\tconst flagOwners = extensionsResult.runtime.flagOwners;\n\textensionsResult.runtime.flagOwnerOrigins ??= new Map();\n\tconst flagOwnerOrigins = extensionsResult.runtime.flagOwnerOrigins;\n\tflagOwners.clear();\n\tflagOwnerOrigins.clear();\n\tfor (const extension of extensionsResult.extensions) {\n\t\tfor (const [name, flag] of extension.flags) {\n\t\t\tif (!flagOwners.has(name)) {\n\t\t\t\tflagOwners.set(name, extension.path);\n\t\t\t\tflagOwnerOrigins.set(name, extension.sourceInfo.configurationOrigin);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tflagOwnerOrigins.get(name) === extension.sourceInfo.configurationOrigin &&\n\t\t\t\tflag.default !== undefined &&\n\t\t\t\t!extensionsResult.runtime.flagValues.has(name)\n\t\t\t) {\n\t\t\t\textensionsResult.runtime.flagValues.set(name, flag.default);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction detectExtensionConflicts(extensions: Extension[]): Array<{ path: string; message: string }> {\n\tconst conflicts: Array<{ path: string; message: string }> = [];\n\n\t// Track which extension registered each tool and flag\n\tconst toolOwners = new Map<string, string>();\n\tconst flagOwners = new Map<string, string>();\n\n\tfor (const ext of extensions) {\n\t\t// Check tools\n\t\tfor (const toolName of ext.tools.keys()) {\n\t\t\tconst existingOwner = toolOwners.get(toolName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Tool \"${toolName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoolOwners.set(toolName, ext.path);\n\t\t\t}\n\t\t}\n\n\t\t// Check flags\n\t\tfor (const flagName of ext.flags.keys()) {\n\t\t\tconst existingOwner = flagOwners.get(flagName);\n\t\t\tif (existingOwner && existingOwner !== ext.path) {\n\t\t\t\tconflicts.push({\n\t\t\t\t\tpath: ext.path,\n\t\t\t\t\tmessage: `Flag \"--${flagName}\" conflicts with ${existingOwner}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tflagOwners.set(flagName, ext.path);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn conflicts;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-paths.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAajG"}
1
+ {"version":3,"file":"resource-loader-paths.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAajG"}
@@ -1,10 +1,11 @@
1
1
  import { getAgentDir, getAgentDirs } from "../config.js";
2
2
  import { canonicalizePath, resolvePath } from "../utils/paths.js";
3
+ import { isSyntheticPath } from "./source-info.js";
3
4
  export function getLoaderAgentDirs(agentDir) {
4
5
  return agentDir === getAgentDir() ? getAgentDirs() : [agentDir];
5
6
  }
6
7
  export function resolveResourcePath(cwd, path) {
7
- return resolvePath(path, cwd, { trim: true });
8
+ return isSyntheticPath(path) ? path : resolvePath(path, cwd, { trim: true });
8
9
  }
9
10
  export function mergeResourcePaths(cwd, primary, additional) {
10
11
  const merged = [];
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-paths.js","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAAY;IAC5D,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAiB,EAAE,UAAoB;IACtF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import { getAgentDir, getAgentDirs } from \"../config.js\";\nimport { canonicalizePath, resolvePath } from \"../utils/paths.ts\";\n\nexport function getLoaderAgentDirs(agentDir: string): string[] {\n\treturn agentDir === getAgentDir() ? getAgentDirs() : [agentDir];\n}\n\nexport function resolveResourcePath(cwd: string, path: string): string {\n\treturn resolvePath(path, cwd, { trim: true });\n}\n\nexport function mergeResourcePaths(cwd: string, primary: string[], additional: string[]): string[] {\n\tconst merged: string[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const p of [...primary, ...additional]) {\n\t\tconst resolved = resolveResourcePath(cwd, p);\n\t\tconst canonicalPath = canonicalizePath(resolved);\n\t\tif (seen.has(canonicalPath)) continue;\n\t\tseen.add(canonicalPath);\n\t\tmerged.push(resolved);\n\t}\n\n\treturn merged;\n}\n"]}
1
+ {"version":3,"file":"resource-loader-paths.js","sourceRoot":"","sources":["../../src/core/resource-loader-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IAClD,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAAY;IAC5D,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,OAAiB,EAAE,UAAoB;IACtF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import { getAgentDir, getAgentDirs } from \"../config.js\";\nimport { canonicalizePath, resolvePath } from \"../utils/paths.ts\";\nimport { isSyntheticPath } from \"./source-info.ts\";\n\nexport function getLoaderAgentDirs(agentDir: string): string[] {\n\treturn agentDir === getAgentDir() ? getAgentDirs() : [agentDir];\n}\n\nexport function resolveResourcePath(cwd: string, path: string): string {\n\treturn isSyntheticPath(path) ? path : resolvePath(path, cwd, { trim: true });\n}\n\nexport function mergeResourcePaths(cwd: string, primary: string[], additional: string[]): string[] {\n\tconst merged: string[] = [];\n\tconst seen = new Set<string>();\n\n\tfor (const p of [...primary, ...additional]) {\n\t\tconst resolved = resolveResourcePath(cwd, p);\n\t\tconst canonicalPath = canonicalizePath(resolved);\n\t\tif (seen.has(canonicalPath)) continue;\n\t\tseen.add(canonicalPath);\n\t\tmerged.push(resolved);\n\t}\n\n\treturn merged;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-loader-reload.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAe7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAmBvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAwE9E,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqD7G;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,CACvD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAwT9B"}
1
+ {"version":3,"file":"resource-loader-reload.d.ts","sourceRoot":"","sources":["../../src/core/resource-loader-reload.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAe7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAoBvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAyE9E,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmD7G;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,CACvD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAwT9B"}
@@ -4,19 +4,20 @@ import { yieldToEventLoopIfSlow } from "../utils/event-loop.js";
4
4
  import { isLocalPath, resolvePath } from "../utils/paths.js";
5
5
  import { getMandatoryBuiltinExtensionPaths } from "./builtin-packages.js";
6
6
  import { filterSupersededHerdrIntegrationPaths } from "./extensions/herdr-file-integration.js";
7
- import { clearExtensionCache, createExtensionRuntime, loadExtensionsCached } from "./extensions/loader.js";
7
+ import { clearExtensionCache, createExtensionRuntime } from "./extensions/loader.js";
8
8
  import { withMandatoryResourceLoader } from "./mandatory-resource-loader.js";
9
9
  import { isTrustedMandatoryRuntimeTool, markTrustedMandatoryRuntimeExtension } from "./mandatory-runtime-tools.js";
10
10
  import { updatePromptsFromPathsAsync, updateSkillsFromPathsAsync, updateThemesFromPathsAsync, } from "./resource-loader-assets.js";
11
11
  import { loadProjectContextFiles, resolveExistingPromptSourcePath, resolveExistingPromptSourcePaths, resolvePromptInput, } from "./resource-loader-context-files.js";
12
12
  import { discoverAppendSystemPromptFile, discoverSystemPromptFile } from "./resource-loader-discovery.js";
13
13
  import { collectExtensionPackageWarnings, mergeExtensionWarnings } from "./resource-loader-extension-warnings.js";
14
- import { loadExtensionFactories, loadFinalExtensionSet, resolveInheritedExtensionOverlaps, } from "./resource-loader-extensions.js";
14
+ import { loadExtensionFactories, loadExtensionPaths, loadFinalExtensionSet, resolveInheritedExtensionOverlaps, } from "./resource-loader-extensions.js";
15
15
  import { resourceInternals } from "./resource-loader-internals.js";
16
16
  import { collectMcpServerContributions, collectWorkflowResources, createInheritanceSnapshotProvider, createWorkflowResourceProvider, resolvePackageResourcePaths, resolveTrustedBorrowedProjectLocalSources, } from "./resource-loader-package-resources.js";
17
17
  import { mergeResourcePaths, resolveResourcePath } from "./resource-loader-paths.js";
18
18
  import { applyExtensionSourceInfo } from "./resource-loader-source-info.js";
19
19
  import { buildSkillCatalog } from "./skill-catalog.js";
20
+ import { BUILTIN_PATH_PREFIX } from "./source-info.js";
20
21
  import { endTimingSpan, resetTimings, startTimingSpan } from "./timings.js";
21
22
  function getEnabledResources(resources, metadataByPath) {
22
23
  for (const r of resources) {
@@ -88,9 +89,9 @@ export async function loadProjectTrustExtensions(loader) {
88
89
  const inheritanceSnapshotProvider = createInheritanceSnapshotProvider(loader);
89
90
  // The builtin Herdr reporter supersedes the installed file integration in a
90
91
  // Herdr pane; see extensions/herdr-file-integration.ts.
91
- const extensionPaths = filterSupersededHerdrIntegrationPaths(mergeResourcePaths(state.cwd, cliEnabledExtensions, state.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions]));
92
+ const extensionPaths = filterSupersededHerdrIntegrationPaths(mergeResourcePaths(state.cwd, cliEnabledExtensions, state.noExtensions ? builtinEnabledExtensions : [...enabledExtensions, ...builtinEnabledExtensions])).filter((path) => !path.startsWith(BUILTIN_PATH_PREFIX));
92
93
  const packageWarnings = collectExtensionPackageWarnings(extensionPaths, metadataByPath);
93
- const extensionsResult = await loadExtensionsCached(extensionPaths, state.cwd, state.eventBus, workflowResourceProvider, undefined, inheritanceSnapshotProvider);
94
+ const extensionsResult = await loadExtensionPaths(loader, extensionPaths, workflowResourceProvider, inheritanceSnapshotProvider);
94
95
  mergeExtensionWarnings(extensionsResult, packageWarnings);
95
96
  const inlineExtensions = await loadExtensionFactories(loader, extensionsResult.runtime, workflowResourceProvider, inheritanceSnapshotProvider);
96
97
  extensionsResult.extensions.push(...inlineExtensions.extensions);