@bastani/atomic 0.9.24 → 0.9.25-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/CHANGELOG.md +33 -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/compaction/utils.d.ts +1 -1
  56. package/dist/core/compaction/utils.d.ts.map +1 -1
  57. package/dist/core/compaction/utils.js +18 -18
  58. package/dist/core/compaction/utils.js.map +1 -1
  59. package/dist/core/execution-model-router.d.ts.map +1 -1
  60. package/dist/core/execution-model-router.js +24 -8
  61. package/dist/core/execution-model-router.js.map +1 -1
  62. package/dist/core/export-html/template.js +12 -0
  63. package/dist/core/extensions/agent-events.d.ts +3 -0
  64. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  65. package/dist/core/extensions/agent-events.js.map +1 -1
  66. package/dist/core/extensions/api-types.d.ts +2 -0
  67. package/dist/core/extensions/api-types.d.ts.map +1 -1
  68. package/dist/core/extensions/api-types.js.map +1 -1
  69. package/dist/core/extensions/context-types.d.ts +9 -0
  70. package/dist/core/extensions/context-types.d.ts.map +1 -1
  71. package/dist/core/extensions/context-types.js.map +1 -1
  72. package/dist/core/extensions/event-results.d.ts +3 -0
  73. package/dist/core/extensions/event-results.d.ts.map +1 -1
  74. package/dist/core/extensions/event-results.js.map +1 -1
  75. package/dist/core/extensions/index.d.ts +2 -0
  76. package/dist/core/extensions/index.d.ts.map +1 -1
  77. package/dist/core/extensions/index.js.map +1 -1
  78. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  79. package/dist/core/extensions/loader-api.js +4 -0
  80. package/dist/core/extensions/loader-api.js.map +1 -1
  81. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  82. package/dist/core/extensions/loader-core.js +3 -5
  83. package/dist/core/extensions/loader-core.js.map +1 -1
  84. package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
  85. package/dist/core/extensions/loader-host-modules.js +7 -1
  86. package/dist/core/extensions/loader-host-modules.js.map +1 -1
  87. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  88. package/dist/core/extensions/loader-runtime.js +3 -0
  89. package/dist/core/extensions/loader-runtime.js.map +1 -1
  90. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  91. package/dist/core/extensions/loader-virtual-modules.js +4 -0
  92. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  93. package/dist/core/extensions/provider-types.d.ts +2 -0
  94. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  95. package/dist/core/extensions/provider-types.js.map +1 -1
  96. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  97. package/dist/core/extensions/runner-events.js +16 -1
  98. package/dist/core/extensions/runner-events.js.map +1 -1
  99. package/dist/core/extensions/runner.d.ts +5 -0
  100. package/dist/core/extensions/runner.d.ts.map +1 -1
  101. package/dist/core/extensions/runner.js +34 -0
  102. package/dist/core/extensions/runner.js.map +1 -1
  103. package/dist/core/extensions/runtime-types.d.ts +5 -0
  104. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  105. package/dist/core/extensions/runtime-types.js.map +1 -1
  106. package/dist/core/extensions/tool-events.d.ts +4 -0
  107. package/dist/core/extensions/tool-events.d.ts.map +1 -1
  108. package/dist/core/extensions/tool-events.js.map +1 -1
  109. package/dist/core/extensions/tool-types.d.ts +34 -3
  110. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  111. package/dist/core/extensions/tool-types.js.map +1 -1
  112. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  113. package/dist/core/extensions/wrapper.js +14 -2
  114. package/dist/core/extensions/wrapper.js.map +1 -1
  115. package/dist/core/fast-model-routing-transport.d.ts.map +1 -1
  116. package/dist/core/fast-model-routing-transport.js +2 -1
  117. package/dist/core/fast-model-routing-transport.js.map +1 -1
  118. package/dist/core/fast-model-routing.d.ts +1 -2
  119. package/dist/core/fast-model-routing.d.ts.map +1 -1
  120. package/dist/core/fast-model-routing.js +13 -11
  121. package/dist/core/fast-model-routing.js.map +1 -1
  122. package/dist/core/fast-model-variants.d.ts +4 -1
  123. package/dist/core/fast-model-variants.d.ts.map +1 -1
  124. package/dist/core/fast-model-variants.js +42 -17
  125. package/dist/core/fast-model-variants.js.map +1 -1
  126. package/dist/core/model-registry.d.ts +4 -1
  127. package/dist/core/model-registry.d.ts.map +1 -1
  128. package/dist/core/model-registry.js +9 -0
  129. package/dist/core/model-registry.js.map +1 -1
  130. package/dist/core/model-resolver-defaults.js +1 -1
  131. package/dist/core/model-resolver-defaults.js.map +1 -1
  132. package/dist/core/model-routing-candidates.d.ts +4 -0
  133. package/dist/core/model-routing-candidates.d.ts.map +1 -1
  134. package/dist/core/model-routing-candidates.js +8 -3
  135. package/dist/core/model-routing-candidates.js.map +1 -1
  136. package/dist/core/model-routing-evals.d.ts.map +1 -1
  137. package/dist/core/model-routing-evals.js +4 -5
  138. package/dist/core/model-routing-evals.js.map +1 -1
  139. package/dist/core/model-runtime.d.ts +3 -2
  140. package/dist/core/model-runtime.d.ts.map +1 -1
  141. package/dist/core/model-runtime.js +19 -25
  142. package/dist/core/model-runtime.js.map +1 -1
  143. package/dist/core/nested-tool-calls.d.ts +64 -0
  144. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  145. package/dist/core/nested-tool-calls.js +132 -0
  146. package/dist/core/nested-tool-calls.js.map +1 -0
  147. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  148. package/dist/core/package-manager-resolver.js +21 -3
  149. package/dist/core/package-manager-resolver.js.map +1 -1
  150. package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -1
  151. package/dist/core/package-manager-resource-accumulator.js +2 -0
  152. package/dist/core/package-manager-resource-accumulator.js.map +1 -1
  153. package/dist/core/package-manager-types.d.ts +2 -0
  154. package/dist/core/package-manager-types.d.ts.map +1 -1
  155. package/dist/core/package-manager-types.js.map +1 -1
  156. package/dist/core/package-manager.d.ts.map +1 -1
  157. package/dist/core/package-manager.js +1 -0
  158. package/dist/core/package-manager.js.map +1 -1
  159. package/dist/core/resource-loader-core.d.ts.map +1 -1
  160. package/dist/core/resource-loader-core.js +12 -6
  161. package/dist/core/resource-loader-core.js.map +1 -1
  162. package/dist/core/resource-loader-extensions.d.ts +1 -0
  163. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  164. package/dist/core/resource-loader-extensions.js +64 -4
  165. package/dist/core/resource-loader-extensions.js.map +1 -1
  166. package/dist/core/resource-loader-paths.d.ts.map +1 -1
  167. package/dist/core/resource-loader-paths.js +2 -1
  168. package/dist/core/resource-loader-paths.js.map +1 -1
  169. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  170. package/dist/core/resource-loader-reload.js +5 -4
  171. package/dist/core/resource-loader-reload.js.map +1 -1
  172. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  173. package/dist/core/resource-loader-source-info.js +7 -5
  174. package/dist/core/resource-loader-source-info.js.map +1 -1
  175. package/dist/core/sdk-types.d.ts +1 -1
  176. package/dist/core/sdk-types.js.map +1 -1
  177. package/dist/core/session-manager-core.d.ts +2 -0
  178. package/dist/core/session-manager-core.d.ts.map +1 -1
  179. package/dist/core/session-manager-core.js +5 -1
  180. package/dist/core/session-manager-core.js.map +1 -1
  181. package/dist/core/session-manager-entries.d.ts +1 -1
  182. package/dist/core/session-manager-entries.d.ts.map +1 -1
  183. package/dist/core/session-manager-entries.js.map +1 -1
  184. package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
  185. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  186. package/dist/core/settings-manager-basic-accessors.js +27 -1
  187. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  188. package/dist/core/settings-manager-core.d.ts +2 -0
  189. package/dist/core/settings-manager-core.d.ts.map +1 -1
  190. package/dist/core/settings-manager-core.js +4 -0
  191. package/dist/core/settings-manager-core.js.map +1 -1
  192. package/dist/core/settings-manager-ui-accessors.d.ts +3 -1
  193. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  194. package/dist/core/settings-manager-ui-accessors.js +13 -0
  195. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  196. package/dist/core/settings-manager.d.ts +1 -1
  197. package/dist/core/settings-manager.d.ts.map +1 -1
  198. package/dist/core/settings-manager.js.map +1 -1
  199. package/dist/core/settings-merge.d.ts +1 -0
  200. package/dist/core/settings-merge.d.ts.map +1 -1
  201. package/dist/core/settings-merge.js +30 -1
  202. package/dist/core/settings-merge.js.map +1 -1
  203. package/dist/core/settings-types.d.ts +8 -1
  204. package/dist/core/settings-types.d.ts.map +1 -1
  205. package/dist/core/settings-types.js.map +1 -1
  206. package/dist/core/source-info.d.ts +3 -0
  207. package/dist/core/source-info.d.ts.map +1 -1
  208. package/dist/core/source-info.js +11 -0
  209. package/dist/core/source-info.js.map +1 -1
  210. package/dist/core/tool-loadout.d.ts +6 -0
  211. package/dist/core/tool-loadout.d.ts.map +1 -0
  212. package/dist/core/tool-loadout.js +63 -0
  213. package/dist/core/tool-loadout.js.map +1 -0
  214. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  215. package/dist/core/tools/ask-user-question/ask-user-question.js +1 -0
  216. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  217. package/dist/core/tools/bash.d.ts.map +1 -1
  218. package/dist/core/tools/bash.js +31 -11
  219. package/dist/core/tools/bash.js.map +1 -1
  220. package/dist/core/tools/output-accumulator.d.ts +4 -0
  221. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  222. package/dist/core/tools/output-accumulator.js +32 -0
  223. package/dist/core/tools/output-accumulator.js.map +1 -1
  224. package/dist/core/tools/powershell.d.ts +27 -21
  225. package/dist/core/tools/powershell.d.ts.map +1 -1
  226. package/dist/core/tools/render-utils.d.ts +4 -0
  227. package/dist/core/tools/render-utils.d.ts.map +1 -1
  228. package/dist/core/tools/render-utils.js +19 -0
  229. package/dist/core/tools/render-utils.js.map +1 -1
  230. package/dist/core/tools/tool-concurrency.d.ts +1 -1
  231. package/dist/core/tools/tool-concurrency.d.ts.map +1 -1
  232. package/dist/core/tools/tool-concurrency.js +28 -3
  233. package/dist/core/tools/tool-concurrency.js.map +1 -1
  234. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  235. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  236. package/dist/core/tools/tool-definition-wrapper.js +4 -1
  237. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  238. package/dist/core/usage-totals.d.ts +2 -0
  239. package/dist/core/usage-totals.d.ts.map +1 -1
  240. package/dist/core/usage-totals.js +23 -0
  241. package/dist/core/usage-totals.js.map +1 -1
  242. package/dist/extensions/codemode/execute.d.ts +10 -0
  243. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  244. package/dist/extensions/codemode/execute.js +313 -0
  245. package/dist/extensions/codemode/execute.js.map +1 -0
  246. package/dist/extensions/codemode/index.d.ts +11 -0
  247. package/dist/extensions/codemode/index.d.ts.map +1 -0
  248. package/dist/extensions/codemode/index.js +14 -0
  249. package/dist/extensions/codemode/index.js.map +1 -0
  250. package/dist/extensions/codemode/renderer.d.ts +4 -0
  251. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  252. package/dist/extensions/codemode/renderer.js +78 -0
  253. package/dist/extensions/codemode/renderer.js.map +1 -0
  254. package/dist/extensions/codemode/tool.d.ts +51 -0
  255. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  256. package/dist/extensions/codemode/tool.js +134 -0
  257. package/dist/extensions/codemode/tool.js.map +1 -0
  258. package/dist/extensions/codemode/worker.d.ts +2 -0
  259. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  260. package/dist/extensions/codemode/worker.js +2 -0
  261. package/dist/extensions/codemode/worker.js.map +1 -0
  262. package/dist/extensions/index.d.ts.map +1 -1
  263. package/dist/extensions/index.js +5 -1
  264. package/dist/extensions/index.js.map +1 -1
  265. package/dist/extensions/llama/provider.d.ts.map +1 -1
  266. package/dist/extensions/llama/provider.js +31 -10
  267. package/dist/extensions/llama/provider.js.map +1 -1
  268. package/dist/extensions/tool-search/index.d.ts +5 -0
  269. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  270. package/dist/extensions/tool-search/index.js +6 -0
  271. package/dist/extensions/tool-search/index.js.map +1 -0
  272. package/dist/extensions/tool-search/tool.d.ts +41 -0
  273. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  274. package/dist/extensions/tool-search/tool.js +161 -0
  275. package/dist/extensions/tool-search/tool.js.map +1 -0
  276. package/dist/index.d.ts +7 -0
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +5 -0
  279. package/dist/index.js.map +1 -1
  280. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -0
  281. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  282. package/dist/modes/interactive/components/chat-message-renderer.js +2 -0
  283. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  284. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  285. package/dist/modes/interactive/components/config-selector-list.js +9 -1
  286. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  287. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  288. package/dist/modes/interactive/components/config-selector-project-scope.js +4 -1
  289. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  290. package/dist/modes/interactive/components/first-time-setup.d.ts +2 -2
  291. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  292. package/dist/modes/interactive/components/first-time-setup.js +1 -0
  293. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  294. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  295. package/dist/modes/interactive/components/footer.js +42 -7
  296. package/dist/modes/interactive/components/footer.js.map +1 -1
  297. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  298. package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
  299. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  300. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  301. package/dist/modes/interactive/components/settings-selector-items.js +13 -0
  302. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  303. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  304. package/dist/modes/interactive/components/settings-selector-submenus.js +3 -1
  305. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  306. package/dist/modes/interactive/components/settings-selector-types.d.ts +3 -1
  307. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  308. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  309. package/dist/modes/interactive/components/themed-text.d.ts +8 -0
  310. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  311. package/dist/modes/interactive/components/themed-text.js +14 -0
  312. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  313. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  314. package/dist/modes/interactive/components/tool-execution.js +5 -3
  315. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  316. package/dist/modes/interactive/interactive-agent-events.js +2 -0
  317. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  318. package/dist/modes/interactive/interactive-mode-base.d.ts +2 -1
  319. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  320. package/dist/modes/interactive/interactive-mode-base.js +5 -0
  321. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  322. package/dist/modes/interactive/interactive-resource-rendering.js +7 -10
  323. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  324. package/dist/modes/interactive/interactive-selectors.js +5 -0
  325. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  326. package/dist/modes/interactive/interactive-session-runtime.js +1 -0
  327. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  328. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  329. package/dist/modes/interactive/interactive-startup.js +8 -3
  330. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  331. package/dist/modes/interactive/interactive-tui.d.ts +2 -1
  332. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  333. package/dist/modes/interactive/interactive-tui.js +1 -0
  334. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  335. package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -1
  336. package/dist/modes/interactive/theme/color-utils.js +3 -0
  337. package/dist/modes/interactive/theme/color-utils.js.map +1 -1
  338. package/dist/modes/interactive/theme/export-colors.d.ts.map +1 -1
  339. package/dist/modes/interactive/theme/export-colors.js +4 -1
  340. package/dist/modes/interactive/theme/export-colors.js.map +1 -1
  341. package/dist/modes/interactive/theme/system-theme.d.ts +23 -0
  342. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  343. package/dist/modes/interactive/theme/system-theme.js +462 -0
  344. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  345. package/dist/modes/interactive/theme/terminal-colors.d.ts +10 -0
  346. package/dist/modes/interactive/theme/terminal-colors.d.ts.map +1 -0
  347. package/dist/modes/interactive/theme/terminal-colors.js +36 -0
  348. package/dist/modes/interactive/theme/terminal-colors.js.map +1 -0
  349. package/dist/modes/interactive/theme/terminal-detection.d.ts +4 -6
  350. package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
  351. package/dist/modes/interactive/theme/terminal-detection.js +12 -46
  352. package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
  353. package/dist/modes/interactive/theme/theme-class.d.ts +1 -0
  354. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  355. package/dist/modes/interactive/theme/theme-class.js +2 -2
  356. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  357. package/dist/modes/interactive/theme/theme-controller.d.ts +16 -8
  358. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  359. package/dist/modes/interactive/theme/theme-controller.js +106 -64
  360. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  361. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  362. package/dist/modes/interactive/theme/theme-loading.js +23 -2
  363. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  364. package/dist/modes/interactive/theme/theme-schema.js +1 -1
  365. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  366. package/dist/modes/interactive/theme/theme-schema.json +2 -2
  367. package/dist/modes/interactive/theme/theme.d.ts +2 -0
  368. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  369. package/dist/modes/interactive/theme/theme.js +2 -0
  370. package/dist/modes/interactive/theme/theme.js.map +1 -1
  371. package/dist/modes/interactive-engine/engine-session-stats.d.ts +26 -0
  372. package/dist/modes/interactive-engine/engine-session-stats.d.ts.map +1 -0
  373. package/dist/modes/interactive-engine/engine-session-stats.js +71 -0
  374. package/dist/modes/interactive-engine/engine-session-stats.js.map +1 -0
  375. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
  376. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  377. package/dist/modes/interactive-engine/extension-ui-bridge.js +4 -0
  378. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  379. package/dist/modes/interactive-engine/isolated-runtime.d.ts +3 -0
  380. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  381. package/dist/modes/interactive-engine/isolated-runtime.js +27 -5
  382. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  383. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  384. package/dist/modes/rpc/rpc-provider-auth.js +3 -1
  385. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  386. package/dist/package-manager-cli.d.ts.map +1 -1
  387. package/dist/package-manager-cli.js +8 -2
  388. package/dist/package-manager-cli.js.map +1 -1
  389. package/dist/utils/paths.d.ts.map +1 -1
  390. package/dist/utils/paths.js +2 -1
  391. package/dist/utils/paths.js.map +1 -1
  392. package/dist/utils/shell.d.ts +1 -3
  393. package/dist/utils/shell.d.ts.map +1 -1
  394. package/dist/utils/shell.js +3 -30
  395. package/dist/utils/shell.js.map +1 -1
  396. package/docs/extensions/api-reference.md +5 -1
  397. package/docs/extensions/authoring.md +31 -1
  398. package/docs/extensions/events.md +3 -1
  399. package/docs/extensions.md +14 -0
  400. package/docs/models/evals.md +45 -2
  401. package/docs/models/reference.md +33 -2
  402. package/docs/models.md +1 -0
  403. package/docs/packages.md +2 -0
  404. package/docs/providers.md +34 -7
  405. package/docs/reference/cli.md +4 -0
  406. package/docs/rpc/protocol.md +10 -0
  407. package/docs/sdk/reference.md +5 -1
  408. package/docs/sdk/structured-decisions.md +2 -2
  409. package/docs/session-format.md +5 -0
  410. package/docs/settings.md +19 -5
  411. package/docs/skills.md +1 -1
  412. package/docs/themes/reference.md +2 -1
  413. package/docs/themes.md +4 -2
  414. package/docs/tools.md +39 -0
  415. package/npm-shrinkwrap.json +115 -113
  416. package/package.json +12 -9
@@ -0,0 +1,132 @@
1
+ import { combineUsage } from "./usage-totals.js";
2
+ export const NESTED_CALL_LIMITS = {
3
+ maxCalls: 256,
4
+ maxArgumentBytesPerCall: 8 * 1024,
5
+ maxArgumentBytesTotal: 32 * 1024,
6
+ maxErrorChars: 500,
7
+ };
8
+ const encoder = new TextEncoder();
9
+ /** Bounded session record. Tool output is deliberately not retained. */
10
+ export class NestedCallRecorder {
11
+ calls = [];
12
+ startedAt = new Map();
13
+ complete = true;
14
+ argumentBytes = 0;
15
+ usage;
16
+ start(toolCall) {
17
+ if (this.calls.length >= NESTED_CALL_LIMITS.maxCalls) {
18
+ this.complete = false;
19
+ return undefined;
20
+ }
21
+ const record = { id: toolCall.id, name: toolCall.name, status: "unfinished" };
22
+ const json = JSON.stringify(toolCall.arguments ?? {});
23
+ const bytes = encoder.encode(json).length;
24
+ if (bytes > NESTED_CALL_LIMITS.maxArgumentBytesPerCall ||
25
+ this.argumentBytes + bytes > NESTED_CALL_LIMITS.maxArgumentBytesTotal) {
26
+ record.argumentsBytes = bytes;
27
+ this.complete = false;
28
+ }
29
+ else {
30
+ record.arguments = JSON.parse(json);
31
+ this.argumentBytes += bytes;
32
+ }
33
+ this.calls.push(record);
34
+ this.startedAt.set(record, performance.now());
35
+ return record;
36
+ }
37
+ finish(record, isError, errorText) {
38
+ if (!record)
39
+ return;
40
+ record.status = isError ? "error" : "ok";
41
+ record.durationMs = Math.round(performance.now() - (this.startedAt.get(record) ?? performance.now()));
42
+ this.startedAt.delete(record);
43
+ if (isError && errorText)
44
+ record.error = errorText.slice(0, NESTED_CALL_LIMITS.maxErrorChars);
45
+ }
46
+ addUsage(usage) {
47
+ this.usage = this.usage ? combineUsage(this.usage, usage) : usage;
48
+ }
49
+ get totalUsage() {
50
+ return this.usage;
51
+ }
52
+ snapshot() {
53
+ if (this.calls.length === 0 && this.complete)
54
+ return undefined;
55
+ const calls = this.calls.map((call) => ({ ...call }));
56
+ return { calls, complete: this.complete && calls.every((call) => call.status !== "unfinished") };
57
+ }
58
+ }
59
+ function textOf(result) {
60
+ return result.content
61
+ .filter((block) => block.type === "text")
62
+ .map((block) => block.text)
63
+ .join("\n");
64
+ }
65
+ /** Nested execution retains Atomic's session scheduler rather than maintaining a competing lock. */
66
+ export class NestedToolCallRunner {
67
+ scopes = new Map();
68
+ host;
69
+ constructor(host) {
70
+ this.host = host;
71
+ }
72
+ async execute(callerId, name, args, options = {}) {
73
+ let scope = this.scopes.get(callerId);
74
+ if (!scope) {
75
+ scope = { recorder: new NestedCallRecorder(), nextId: 1 };
76
+ this.scopes.set(callerId, scope);
77
+ }
78
+ const toolCall = {
79
+ type: "toolCall",
80
+ id: `${callerId}/${scope.nextId++}`,
81
+ name,
82
+ arguments: (args ?? {}),
83
+ };
84
+ const record = scope.recorder.start(toolCall);
85
+ await this.host.emit({
86
+ type: "tool_execution_start",
87
+ toolCallId: toolCall.id,
88
+ toolName: name,
89
+ args: toolCall.arguments,
90
+ parentToolCallId: callerId,
91
+ });
92
+ this.scopes.set(toolCall.id, { recorder: scope.recorder, nextId: 1 });
93
+ let outcome;
94
+ try {
95
+ outcome = await this.host.runToolCall(toolCall, callerId, options.signal, async (partialResult) => {
96
+ options.onUpdate?.(partialResult);
97
+ await this.host.emit({
98
+ type: "tool_execution_update",
99
+ toolCallId: toolCall.id,
100
+ toolName: name,
101
+ args: toolCall.arguments,
102
+ partialResult,
103
+ parentToolCallId: callerId,
104
+ });
105
+ });
106
+ }
107
+ finally {
108
+ this.scopes.delete(toolCall.id);
109
+ }
110
+ scope.recorder.finish(record, outcome.isError, textOf(outcome.result));
111
+ if (outcome.result.usage)
112
+ scope.recorder.addUsage(outcome.result.usage);
113
+ await this.host.emit({
114
+ type: "tool_execution_end",
115
+ toolCallId: toolCall.id,
116
+ toolName: name,
117
+ result: outcome.result,
118
+ isError: outcome.isError,
119
+ parentToolCallId: callerId,
120
+ });
121
+ return outcome;
122
+ }
123
+ takeRecord(toolCallId) {
124
+ const scope = this.scopes.get(toolCallId);
125
+ this.scopes.delete(toolCallId);
126
+ return scope ? { calls: scope.recorder.snapshot(), usage: scope.recorder.totalUsage } : undefined;
127
+ }
128
+ clear() {
129
+ this.scopes.clear();
130
+ }
131
+ }
132
+ //# sourceMappingURL=nested-tool-calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-tool-calls.js","sourceRoot":"","sources":["../../src/core/nested-tool-calls.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonObject, NestedToolCallRecord, NestedToolCalls, Usage } from \"@bastani/pi-ai\";\nimport type {\n\tAgentToolCall,\n\tAgentToolCallOutcome,\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n} from \"@earendil-works/pi-agent-core\";\nimport { combineUsage } from \"./usage-totals.ts\";\n\nexport const NESTED_CALL_LIMITS = {\n\tmaxCalls: 256,\n\tmaxArgumentBytesPerCall: 8 * 1024,\n\tmaxArgumentBytesTotal: 32 * 1024,\n\tmaxErrorChars: 500,\n} as const;\nconst encoder = new TextEncoder();\nexport interface NestedCallSummary {\n\tcalls: NestedToolCalls | undefined;\n\tusage: Usage | undefined;\n}\n\n/** Bounded session record. Tool output is deliberately not retained. */\nexport class NestedCallRecorder {\n\tprivate calls: NestedToolCallRecord[] = [];\n\tprivate startedAt = new Map<NestedToolCallRecord, number>();\n\tprivate complete = true;\n\tprivate argumentBytes = 0;\n\tprivate usage: Usage | undefined;\n\tstart(toolCall: AgentToolCall): NestedToolCallRecord | undefined {\n\t\tif (this.calls.length >= NESTED_CALL_LIMITS.maxCalls) {\n\t\t\tthis.complete = false;\n\t\t\treturn undefined;\n\t\t}\n\t\tconst record: NestedToolCallRecord = { id: toolCall.id, name: toolCall.name, status: \"unfinished\" };\n\t\tconst json = JSON.stringify(toolCall.arguments ?? {});\n\t\tconst bytes = encoder.encode(json).length;\n\t\tif (\n\t\t\tbytes > NESTED_CALL_LIMITS.maxArgumentBytesPerCall ||\n\t\t\tthis.argumentBytes + bytes > NESTED_CALL_LIMITS.maxArgumentBytesTotal\n\t\t) {\n\t\t\trecord.argumentsBytes = bytes;\n\t\t\tthis.complete = false;\n\t\t} else {\n\t\t\trecord.arguments = JSON.parse(json) as JsonObject;\n\t\t\tthis.argumentBytes += bytes;\n\t\t}\n\t\tthis.calls.push(record);\n\t\tthis.startedAt.set(record, performance.now());\n\t\treturn record;\n\t}\n\tfinish(record: NestedToolCallRecord | undefined, isError: boolean, errorText: string): void {\n\t\tif (!record) return;\n\t\trecord.status = isError ? \"error\" : \"ok\";\n\t\trecord.durationMs = Math.round(performance.now() - (this.startedAt.get(record) ?? performance.now()));\n\t\tthis.startedAt.delete(record);\n\t\tif (isError && errorText) record.error = errorText.slice(0, NESTED_CALL_LIMITS.maxErrorChars);\n\t}\n\taddUsage(usage: Usage): void {\n\t\tthis.usage = this.usage ? combineUsage(this.usage, usage) : usage;\n\t}\n\tget totalUsage(): Usage | undefined {\n\t\treturn this.usage;\n\t}\n\tsnapshot(): NestedToolCalls | undefined {\n\t\tif (this.calls.length === 0 && this.complete) return undefined;\n\t\tconst calls = this.calls.map((call) => ({ ...call }));\n\t\treturn { calls, complete: this.complete && calls.every((call) => call.status !== \"unfinished\") };\n\t}\n}\n\nexport interface NestedToolCallOptions {\n\tsignal?: AbortSignal;\n\tonUpdate?: AgentToolUpdateCallback;\n}\nexport type NestedToolExecutionEvent =\n\t| { type: \"tool_execution_start\"; toolCallId: string; toolName: string; args: unknown; parentToolCallId: string }\n\t| {\n\t\t\ttype: \"tool_execution_update\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\targs: unknown;\n\t\t\tpartialResult: AgentToolResult<unknown>;\n\t\t\tparentToolCallId: string;\n\t }\n\t| {\n\t\t\ttype: \"tool_execution_end\";\n\t\t\ttoolCallId: string;\n\t\t\ttoolName: string;\n\t\t\tresult: AgentToolResult<unknown>;\n\t\t\tisError: boolean;\n\t\t\tparentToolCallId: string;\n\t };\nexport interface NestedToolCallHost {\n\trunToolCall(\n\t\ttoolCall: AgentToolCall,\n\t\tparentToolCallId: string,\n\t\tsignal: AbortSignal | undefined,\n\t\tonUpdate: (partialResult: AgentToolResult<unknown>) => Promise<void>,\n\t): Promise<AgentToolCallOutcome>;\n\temit(event: NestedToolExecutionEvent): Promise<void>;\n}\ninterface CallScope {\n\trecorder: NestedCallRecorder;\n\tnextId: number;\n}\nfunction textOf(result: AgentToolResult<unknown>): string {\n\treturn result.content\n\t\t.filter((block) => block.type === \"text\")\n\t\t.map((block) => block.text)\n\t\t.join(\"\\n\");\n}\n\n/** Nested execution retains Atomic's session scheduler rather than maintaining a competing lock. */\nexport class NestedToolCallRunner {\n\tprivate scopes = new Map<string, CallScope>();\n\tprivate host: NestedToolCallHost;\n\tconstructor(host: NestedToolCallHost) {\n\t\tthis.host = host;\n\t}\n\tasync execute(\n\t\tcallerId: string,\n\t\tname: string,\n\t\targs: unknown,\n\t\toptions: NestedToolCallOptions = {},\n\t): Promise<AgentToolCallOutcome> {\n\t\tlet scope = this.scopes.get(callerId);\n\t\tif (!scope) {\n\t\t\tscope = { recorder: new NestedCallRecorder(), nextId: 1 };\n\t\t\tthis.scopes.set(callerId, scope);\n\t\t}\n\t\tconst toolCall: AgentToolCall = {\n\t\t\ttype: \"toolCall\",\n\t\t\tid: `${callerId}/${scope.nextId++}`,\n\t\t\tname,\n\t\t\targuments: (args ?? {}) as AgentToolCall[\"arguments\"],\n\t\t};\n\t\tconst record = scope.recorder.start(toolCall);\n\t\tawait this.host.emit({\n\t\t\ttype: \"tool_execution_start\",\n\t\t\ttoolCallId: toolCall.id,\n\t\t\ttoolName: name,\n\t\t\targs: toolCall.arguments,\n\t\t\tparentToolCallId: callerId,\n\t\t});\n\t\tthis.scopes.set(toolCall.id, { recorder: scope.recorder, nextId: 1 });\n\t\tlet outcome: AgentToolCallOutcome;\n\t\ttry {\n\t\t\toutcome = await this.host.runToolCall(toolCall, callerId, options.signal, async (partialResult) => {\n\t\t\t\toptions.onUpdate?.(partialResult);\n\t\t\t\tawait this.host.emit({\n\t\t\t\t\ttype: \"tool_execution_update\",\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\ttoolName: name,\n\t\t\t\t\targs: toolCall.arguments,\n\t\t\t\t\tpartialResult,\n\t\t\t\t\tparentToolCallId: callerId,\n\t\t\t\t});\n\t\t\t});\n\t\t} finally {\n\t\t\tthis.scopes.delete(toolCall.id);\n\t\t}\n\t\tscope.recorder.finish(record, outcome.isError, textOf(outcome.result));\n\t\tif (outcome.result.usage) scope.recorder.addUsage(outcome.result.usage);\n\t\tawait this.host.emit({\n\t\t\ttype: \"tool_execution_end\",\n\t\t\ttoolCallId: toolCall.id,\n\t\t\ttoolName: name,\n\t\t\tresult: outcome.result,\n\t\t\tisError: outcome.isError,\n\t\t\tparentToolCallId: callerId,\n\t\t});\n\t\treturn outcome;\n\t}\n\ttakeRecord(toolCallId: string): NestedCallSummary | undefined {\n\t\tconst scope = this.scopes.get(toolCallId);\n\t\tthis.scopes.delete(toolCallId);\n\t\treturn scope ? { calls: scope.recorder.snapshot(), usage: scope.recorder.totalUsage } : undefined;\n\t}\n\tclear(): void {\n\t\tthis.scopes.clear();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-resolver.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACX,mBAAmB,EAEnB,qBAAqB,EAErB,aAAa,EACb,8BAA8B,EAG9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAW3D,wBAAsB,eAAe,CACpC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAC1D,OAAO,CAAC,aAAa,CAAC,CAiDxB;AAmCD,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,aAAa,CAAC,CAQxB"}
1
+ {"version":3,"file":"package-manager-resolver.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACX,mBAAmB,EAEnB,qBAAqB,EAErB,aAAa,EACb,8BAA8B,EAG9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAY3D,wBAAsB,eAAe,CACpC,OAAO,EAAE,qBAAqB,EAC9B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAC1D,OAAO,CAAC,aAAa,CAAC,CAoExB;AAqCD,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,aAAa,CAAC,CAkBxB"}
@@ -10,8 +10,9 @@ import { getBaseDirsForScope, getGitInstallPath, resolvePathFromBase } from "./p
10
10
  import { addResource, createAccumulator, getTargetMap, toResolvedPaths, } from "./package-manager-resource-accumulator.js";
11
11
  import { collectPackageResources, resolveLocalEntries } from "./package-manager-resource-collector.js";
12
12
  import { resolveExtensionEntries } from "./package-manager-resource-files.js";
13
- import { splitPatterns } from "./package-manager-resource-patterns.js";
13
+ import { applyAutoloadDisabledPatterns, isEnabledByOverrides, isOverridePattern, splitPatterns, } from "./package-manager-resource-patterns.js";
14
14
  import { dedupePackages, getPackageIdentity, getPackageSourceString, parseSource } from "./package-manager-source.js";
15
+ import { BUILTIN_PATH_PREFIX } from "./source-info.js";
15
16
  async function exists(path) {
16
17
  try {
17
18
  await access(path);
@@ -50,11 +51,21 @@ export async function resolvePackages(context, onMissing) {
50
51
  await resolveConfiguredLocalEntries(globalEntries, resourceType, target, "user", globalBaseDirs, globalOrigin);
51
52
  }
52
53
  await addAutoDiscoveredResources(context, accumulator, globalSettings, projectSettings, globalBaseDir, projectBaseDir);
54
+ for (const name of context.builtinExtensions ?? []) {
55
+ const path = `${BUILTIN_PATH_PREFIX}${name}`;
56
+ const projectEnabled = applyAutoloadDisabledPatterns([path], (projectSettings.extensions ?? []).filter(isOverridePattern), projectBaseDir).get(path);
57
+ addResource(accumulator.extensions, path, {
58
+ source: "builtin",
59
+ scope: projectEnabled === undefined ? "user" : "project",
60
+ origin: "top-level",
61
+ configurationOrigin: "bundled",
62
+ }, projectEnabled ?? isEnabledByOverrides(path, globalSettings.extensions ?? [], globalBaseDir));
63
+ }
53
64
  return toResolvedPaths(accumulator);
54
65
  }
55
66
  async function resolveConfiguredLocalEntries(entries, resourceType, target, scope, baseDirs, fieldOrigin) {
56
67
  const { plain, patterns } = splitPatterns(entries);
57
- const relativeEntries = plain.filter((entry) => !isAbsolute(entry) && !entry.startsWith("~"));
68
+ const relativeEntries = plain.filter((entry) => !entry.startsWith(BUILTIN_PATH_PREFIX) && !isAbsolute(entry) && !entry.startsWith("~"));
58
69
  const fixedEntries = plain.filter((entry) => isAbsolute(entry) || entry.startsWith("~"));
59
70
  for (const [baseIndex, baseDir] of baseDirs.entries()) {
60
71
  const metadata = {
@@ -74,7 +85,14 @@ async function resolveConfiguredLocalEntries(entries, resourceType, target, scop
74
85
  export async function resolveExtensionSources(context, sources, options) {
75
86
  const accumulator = createAccumulator();
76
87
  const scope = options?.temporary ? "temporary" : options?.local ? "project" : "user";
77
- const packageSources = sources.map((source) => ({ pkg: source, scope }));
88
+ const packageSources = [];
89
+ for (const source of sources) {
90
+ if (typeof source === "string" && source.startsWith(BUILTIN_PATH_PREFIX)) {
91
+ addResource(accumulator.extensions, source, { source: "builtin", scope, origin: "top-level", configurationOrigin: "bundled" }, true);
92
+ }
93
+ else
94
+ packageSources.push({ pkg: source, scope });
95
+ }
78
96
  await resolvePackageSources(context, packageSources, accumulator, undefined, {
79
97
  includeProjectLocalResources: options?.includeProjectLocalResources === true,
80
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-resolver.js","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { access, stat } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../config.js\";\nimport { addAutoDiscoveredResources, collectProjectLocalResources } from \"./package-manager-auto-resources.ts\";\nimport { isOfflineModeEnabled } from \"./package-manager-env.ts\";\nimport { getExistingGitInstallPath, refreshTemporaryGitSource } from \"./package-manager-git.ts\";\nimport { getExistingNpmInstallPath, installedNpmMatchesConfiguredVersion } from \"./package-manager-npm.ts\";\nimport { installParsedSource } from \"./package-manager-operations.ts\";\nimport { getBaseDirsForScope, getGitInstallPath, resolvePathFromBase } from \"./package-manager-paths.ts\";\nimport {\n\taddResource,\n\tcreateAccumulator,\n\tgetTargetMap,\n\ttoResolvedPaths,\n} from \"./package-manager-resource-accumulator.ts\";\nimport { collectPackageResources, resolveLocalEntries } from \"./package-manager-resource-collector.ts\";\nimport { resolveExtensionEntries } from \"./package-manager-resource-files.ts\";\nimport { splitPatterns } from \"./package-manager-resource-patterns.ts\";\nimport { dedupePackages, getPackageIdentity, getPackageSourceString, parseSource } from \"./package-manager-source.ts\";\nimport type {\n\tMissingSourceAction,\n\tPackageFilter,\n\tPackageManagerContext,\n\tPathMetadata,\n\tResolvedPaths,\n\tResolveExtensionSourcesOptions,\n\tResourceAccumulator,\n\tSourceScope,\n} from \"./package-manager-types.ts\";\nimport type { PackageSource } from \"./settings-manager.ts\";\n\nasync function exists(path: string): Promise<boolean> {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function resolvePackages(\n\tcontext: PackageManagerContext,\n\tonMissing?: (source: string) => Promise<MissingSourceAction>,\n): Promise<ResolvedPaths> {\n\tconst accumulator = createAccumulator();\n\tconst globalSettings = context.settingsManager.getGlobalSettings();\n\tconst projectSettings = context.settingsManager.getProjectSettings();\n\tconst allPackages: Array<{ pkg: PackageSource; scope: SourceScope }> = [];\n\n\tfor (const pkg of projectSettings.packages ?? []) {\n\t\tallPackages.push({ pkg, scope: \"project\" });\n\t}\n\tfor (const pkg of globalSettings.packages ?? []) {\n\t\tallPackages.push({ pkg, scope: \"user\" });\n\t}\n\n\tconst packageSources = dedupePackages(context, allPackages);\n\tawait resolvePackageSources(context, packageSources, accumulator, onMissing, { settingsField: \"packages\" });\n\n\tconst globalBaseDir = context.agentDir;\n\tconst projectBaseDir = join(context.cwd, CONFIG_DIR_NAME);\n\tconst globalBaseDirs = getBaseDirsForScope(context, \"user\");\n\tconst projectBaseDirs = getBaseDirsForScope(context, \"project\");\n\n\tfor (const resourceType of [\"extensions\", \"skills\", \"prompts\", \"themes\", \"workflows\"] as const) {\n\t\tconst target = getTargetMap(accumulator, resourceType);\n\t\tconst globalEntries = (globalSettings[resourceType] ?? []) as string[];\n\t\tconst projectEntries = (projectSettings[resourceType] ?? []) as string[];\n\t\tconst projectOrigin = context.settingsManager.isFieldInherited(\"project\", resourceType)\n\t\t\t? \"inherited-pi\"\n\t\t\t: \"atomic\";\n\t\tconst globalOrigin = context.settingsManager.isFieldInherited(\"global\", resourceType) ? \"inherited-pi\" : \"atomic\";\n\t\tawait resolveConfiguredLocalEntries(\n\t\t\tprojectEntries,\n\t\t\tresourceType,\n\t\t\ttarget,\n\t\t\t\"project\",\n\t\t\tprojectBaseDirs,\n\t\t\tprojectOrigin,\n\t\t);\n\t\tawait resolveConfiguredLocalEntries(globalEntries, resourceType, target, \"user\", globalBaseDirs, globalOrigin);\n\t}\n\n\tawait addAutoDiscoveredResources(\n\t\tcontext,\n\t\taccumulator,\n\t\tglobalSettings,\n\t\tprojectSettings,\n\t\tglobalBaseDir,\n\t\tprojectBaseDir,\n\t);\n\treturn toResolvedPaths(accumulator);\n}\n\nasync function resolveConfiguredLocalEntries(\n\tentries: string[],\n\tresourceType: \"extensions\" | \"skills\" | \"prompts\" | \"themes\" | \"workflows\",\n\ttarget: ReturnType<typeof getTargetMap>,\n\tscope: \"project\" | \"user\",\n\tbaseDirs: string[],\n\tfieldOrigin: \"atomic\" | \"inherited-pi\",\n): Promise<void> {\n\tconst { plain, patterns } = splitPatterns(entries);\n\tconst relativeEntries = plain.filter((entry) => !isAbsolute(entry) && !entry.startsWith(\"~\"));\n\tconst fixedEntries = plain.filter((entry) => isAbsolute(entry) || entry.startsWith(\"~\"));\n\tfor (const [baseIndex, baseDir] of baseDirs.entries()) {\n\t\tconst metadata: PathMetadata = {\n\t\t\tsource: \"local\",\n\t\t\tscope,\n\t\t\torigin: \"top-level\",\n\t\t\tbaseDir,\n\t\t\tconfigurationOrigin: baseIndex === 0 || fieldOrigin === \"atomic\" ? \"atomic\" : \"inherited-pi\",\n\t\t};\n\t\tawait resolveLocalEntries([...relativeEntries, ...patterns], resourceType, target, metadata, baseDir);\n\t\tawait resolveLocalEntries(\n\t\t\t[...fixedEntries, ...patterns],\n\t\t\tresourceType,\n\t\t\ttarget,\n\t\t\t{\n\t\t\t\t...metadata,\n\t\t\t\tconfigurationOrigin: fieldOrigin,\n\t\t\t},\n\t\t\tbaseDir,\n\t\t);\n\t}\n}\n\nexport async function resolveExtensionSources(\n\tcontext: PackageManagerContext,\n\tsources: PackageSource[],\n\toptions?: ResolveExtensionSourcesOptions,\n): Promise<ResolvedPaths> {\n\tconst accumulator = createAccumulator();\n\tconst scope: SourceScope = options?.temporary ? \"temporary\" : options?.local ? \"project\" : \"user\";\n\tconst packageSources = sources.map((source) => ({ pkg: source, scope }));\n\tawait resolvePackageSources(context, packageSources, accumulator, undefined, {\n\t\tincludeProjectLocalResources: options?.includeProjectLocalResources === true,\n\t});\n\treturn toResolvedPaths(accumulator);\n}\n\nasync function resolvePackageSources(\n\tcontext: PackageManagerContext,\n\tsources: Array<{ pkg: PackageSource; scope: SourceScope }>,\n\taccumulator: ResourceAccumulator,\n\tonMissing?: (source: string) => Promise<MissingSourceAction>,\n\toptions?: { includeProjectLocalResources?: boolean; settingsField?: \"packages\" },\n): Promise<void> {\n\tfor (const { pkg, scope } of sources) {\n\t\tconst sourceStr = getPackageSourceString(pkg);\n\t\tconst filter = typeof pkg === \"object\" ? pkg : undefined;\n\t\tconst deltaBase = findAutoloadDeltaBase(context, pkg, scope, sources);\n\t\tconst resolvedSource = deltaBase?.source ?? sourceStr;\n\t\tconst resolvedScope = deltaBase?.scope ?? scope;\n\t\tconst parsed = parseSource(resolvedSource);\n\t\tconst configurationOrigin =\n\t\t\toptions?.settingsField &&\n\t\t\tcontext.settingsManager.isFieldInherited(scope === \"project\" ? \"project\" : \"global\", options.settingsField)\n\t\t\t\t? \"inherited-pi\"\n\t\t\t\t: options?.settingsField\n\t\t\t\t\t? \"atomic\"\n\t\t\t\t\t: undefined;\n\t\tconst metadata: PathMetadata = { source: sourceStr, scope, origin: \"package\", configurationOrigin };\n\n\t\tif (parsed.type === \"local\") {\n\t\t\tfor (const [baseIndex, baseDir] of getBaseDirsForScope(context, resolvedScope).entries()) {\n\t\t\t\tconst resolvesFromSettingsBase =\n\t\t\t\t\toptions?.settingsField !== undefined && !isAbsolute(parsed.path) && !parsed.path.startsWith(\"~\");\n\t\t\t\tconst localMetadata: PathMetadata = {\n\t\t\t\t\t...metadata,\n\t\t\t\t\tbaseDir,\n\t\t\t\t\tconfigurationOrigin: resolvesFromSettingsBase\n\t\t\t\t\t\t? baseIndex === 0 || configurationOrigin === \"atomic\"\n\t\t\t\t\t\t\t? \"atomic\"\n\t\t\t\t\t\t\t: \"inherited-pi\"\n\t\t\t\t\t\t: configurationOrigin,\n\t\t\t\t};\n\t\t\t\tawait resolveLocalExtensionSource(parsed, accumulator, filter, localMetadata, baseDir, {\n\t\t\t\t\tincludeProjectLocalResources: options?.includeProjectLocalResources === true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst installMissing = async (): Promise<boolean> => {\n\t\t\tif (isOfflineModeEnabled()) return false;\n\t\t\tif (!onMissing) {\n\t\t\t\tif (context.driver) await context.driver.installParsedSource(parsed, resolvedScope);\n\t\t\t\telse await installParsedSource(context, parsed, resolvedScope);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst action = await onMissing(sourceStr);\n\t\t\tif (action === \"skip\") return false;\n\t\t\tif (action === \"error\") throw new Error(`Missing source: ${sourceStr}`);\n\t\t\tif (context.driver) await context.driver.installParsedSource(parsed, resolvedScope);\n\t\t\telse await installParsedSource(context, parsed, resolvedScope);\n\t\t\treturn true;\n\t\t};\n\n\t\tif (parsed.type === \"npm\") {\n\t\t\tlet installedPath = getExistingNpmInstallPath(context, parsed, resolvedScope);\n\t\t\tconst needsInstall =\n\t\t\t\t!installedPath || !(await installedNpmMatchesConfiguredVersion(context, parsed, installedPath));\n\t\t\tif (needsInstall) {\n\t\t\t\tconst installed = await installMissing();\n\t\t\t\tif (!installed) continue;\n\t\t\t\tinstalledPath = getExistingNpmInstallPath(context, parsed, resolvedScope);\n\t\t\t\tif (!installedPath || !(await installedNpmMatchesConfiguredVersion(context, parsed, installedPath))) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!installedPath) continue;\n\t\t\tmetadata.baseDir = installedPath;\n\t\t\tmetadata.packageRoot = installedPath;\n\t\t\tawait collectPackageResources(installedPath, accumulator, filter, metadata);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst installedPath =\n\t\t\tgetExistingGitInstallPath(context, parsed, resolvedScope) ?? getGitInstallPath(context, parsed, resolvedScope);\n\t\tif (!(await exists(installedPath))) {\n\t\t\tconst installed = await installMissing();\n\t\t\tif (!installed) continue;\n\t\t} else if (resolvedScope === \"temporary\" && !parsed.pinned && !isOfflineModeEnabled()) {\n\t\t\tif (context.driver) await context.driver.refreshTemporaryGitSource(parsed, sourceStr);\n\t\t\telse await refreshTemporaryGitSource(context, parsed, sourceStr);\n\t\t}\n\t\tmetadata.baseDir = installedPath;\n\t\tmetadata.packageRoot = installedPath;\n\t\tawait collectPackageResources(installedPath, accumulator, filter, metadata);\n\t}\n}\n\nfunction findAutoloadDeltaBase(\n\tcontext: PackageManagerContext,\n\tpkg: PackageSource,\n\tscope: SourceScope,\n\tsources: Array<{ pkg: PackageSource; scope: SourceScope }>,\n): { source: string; scope: SourceScope } | undefined {\n\tif (scope !== \"project\" || typeof pkg !== \"object\" || pkg.autoload !== false) return undefined;\n\tconst identity = getPackageIdentity(context, pkg.source, scope);\n\tconst userEntry = sources.find(\n\t\t(entry) =>\n\t\t\tentry.scope === \"user\" && getPackageIdentity(context, getPackageSourceString(entry.pkg), \"user\") === identity,\n\t);\n\treturn userEntry ? { source: getPackageSourceString(userEntry.pkg), scope: \"user\" } : undefined;\n}\n\nasync function resolveLocalExtensionSource(\n\tsource: { type: \"local\"; path: string },\n\taccumulator: ResourceAccumulator,\n\tfilter: PackageFilter | undefined,\n\tmetadata: PathMetadata,\n\tbaseDir: string,\n\toptions?: { includeProjectLocalResources?: boolean },\n): Promise<void> {\n\tconst resolved = resolvePathFromBase(source.path, baseDir);\n\tif (!(await exists(resolved))) return;\n\n\ttry {\n\t\tconst stats = await stat(resolved);\n\t\tif (stats.isFile()) {\n\t\t\taddResource(accumulator.extensions, resolved, { ...metadata, baseDir: dirname(resolved) }, true);\n\t\t\treturn;\n\t\t}\n\t\tif (stats.isDirectory()) {\n\t\t\tconst packageMetadata: PathMetadata = { ...metadata, baseDir: resolved, packageRoot: resolved };\n\t\t\tconst packageResources = await collectPackageResources(resolved, accumulator, filter, packageMetadata);\n\t\t\tconst projectLocalResources = options?.includeProjectLocalResources\n\t\t\t\t? await collectProjectLocalResources(resolved, accumulator, filter, packageMetadata)\n\t\t\t\t: false;\n\t\t\tconst extensionEntries = await resolveExtensionEntries(resolved);\n\t\t\tconst shouldAddDirectoryFallback =\n\t\t\t\textensionEntries !== null || (options?.includeProjectLocalResources === true && !projectLocalResources);\n\t\t\tif (!packageResources && shouldAddDirectoryFallback) {\n\t\t\t\taddResource(accumulator.extensions, resolved, packageMetadata, true);\n\t\t\t}\n\t\t}\n\t} catch {}\n}\n"]}
1
+ {"version":3,"file":"package-manager-resolver.js","sourceRoot":"","sources":["../../src/core/package-manager-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,eAAe,GACf,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACN,6BAA6B,EAC7B,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACb,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAYtH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,KAAK,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAA8B,EAC9B,SAA4D;IAE5D,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IACnE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;IACrE,MAAM,WAAW,GAAsD,EAAE,CAAC;IAE1E,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5G,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhE,KAAK,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAU,EAAE,CAAC;QAChG,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,CAAa,CAAC;QACvE,MAAM,cAAc,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAa,CAAC;QACzE,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;YACtF,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,QAAQ,CAAC;QACZ,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClH,MAAM,6BAA6B,CAClC,cAAc,EACd,YAAY,EACZ,MAAM,EACN,SAAS,EACT,eAAe,EACf,aAAa,CACb,CAAC;QACF,MAAM,6BAA6B,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,0BAA0B,CAC/B,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,CACd,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,mBAAmB,GAAG,IAAI,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,6BAA6B,CACnD,CAAC,IAAI,CAAC,EACN,CAAC,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAC5D,cAAc,CACd,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACZ,WAAW,CACV,WAAW,CAAC,UAAU,EACtB,IAAI,EACJ;YACC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxD,MAAM,EAAE,WAAW;YACnB,mBAAmB,EAAE,SAAS;SAC9B,EACD,cAAc,IAAI,oBAAoB,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,IAAI,EAAE,EAAE,aAAa,CAAC,CAC5F,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC3C,OAAiB,EACjB,YAA0E,EAC1E,MAAuC,EACvC,KAAyB,EACzB,QAAkB,EAClB,WAAsC;IAEtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CACjG,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAiB;YAC9B,MAAM,EAAE,OAAO;YACf,KAAK;YACL,MAAM,EAAE,WAAW;YACnB,OAAO;YACP,mBAAmB,EAAE,SAAS,KAAK,CAAC,IAAI,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc;SAC5F,CAAC;QACF,MAAM,mBAAmB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtG,MAAM,mBAAmB,CACxB,CAAC,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,EAC9B,YAAY,EACZ,MAAM,EACN;YACC,GAAG,QAAQ;YACX,mBAAmB,EAAE,WAAW;SAChC,EACD,OAAO,CACP,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,OAA8B,EAC9B,OAAwB,EACxB,OAAwC;IAExC,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAgB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAClG,MAAM,cAAc,GAAsD,EAAE,CAAC;IAC7E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1E,WAAW,CACV,WAAW,CAAC,UAAU,EACtB,MAAM,EACN,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,EACjF,IAAI,CACJ,CAAC;QACH,CAAC;;YAAM,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE;QAC5E,4BAA4B,EAAE,OAAO,EAAE,4BAA4B,KAAK,IAAI;KAC5E,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,qBAAqB,CACnC,OAA8B,EAC9B,OAA0D,EAC1D,WAAgC,EAChC,SAA4D,EAC5D,OAAgF;IAEhF,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,SAAS,EAAE,MAAM,IAAI,SAAS,CAAC;QACtD,MAAM,aAAa,GAAG,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GACxB,OAAO,EAAE,aAAa;YACtB,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;YAC1G,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,OAAO,EAAE,aAAa;gBACvB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,SAAS,CAAC;QACf,MAAM,QAAQ,GAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;QAEpG,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1F,MAAM,wBAAwB,GAC7B,OAAO,EAAE,aAAa,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClG,MAAM,aAAa,GAAiB;oBACnC,GAAG,QAAQ;oBACX,OAAO;oBACP,mBAAmB,EAAE,wBAAwB;wBAC5C,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,mBAAmB,KAAK,QAAQ;4BACpD,CAAC,CAAC,QAAQ;4BACV,CAAC,CAAC,cAAc;wBACjB,CAAC,CAAC,mBAAmB;iBACtB,CAAC;gBACF,MAAM,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE;oBACtF,4BAA4B,EAAE,OAAO,EAAE,4BAA4B,KAAK,IAAI;iBAC5E,CAAC,CAAC;YACJ,CAAC;YACD,SAAS;QACV,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,IAAsB,EAAE;YACnD,IAAI,oBAAoB,EAAE;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,IAAI,OAAO,CAAC,MAAM;oBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;;oBAC/E,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,MAAM,KAAK,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;;gBAC/E,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,aAAa,GAAG,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC9E,MAAM,YAAY,GACjB,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,oCAAoC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;YACjG,IAAI,YAAY,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC;gBACzC,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,aAAa,GAAG,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC1E,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,oCAAoC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;oBACrG,SAAS;gBACV,CAAC;YACF,CAAC;YACD,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC7B,QAAQ,CAAC,OAAO,GAAG,aAAa,CAAC;YACjC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;YACrC,MAAM,uBAAuB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5E,SAAS;QACV,CAAC;QAED,MAAM,aAAa,GAClB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAChH,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS;gBAAE,SAAS;QAC1B,CAAC;aAAM,IAAI,aAAa,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACvF,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBACjF,MAAM,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;QACD,QAAQ,CAAC,OAAO,GAAG,aAAa,CAAC;QACjC,QAAQ,CAAC,WAAW,GAAG,aAAa,CAAC;QACrC,MAAM,uBAAuB,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAC7B,OAA8B,EAC9B,GAAkB,EAClB,KAAkB,EAClB,OAA0D;IAE1D,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC/F,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,QAAQ,CAC9G,CAAC;IACF,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC;AAED,KAAK,UAAU,2BAA2B,CACzC,MAAuC,EACvC,WAAgC,EAChC,MAAiC,EACjC,QAAsB,EACtB,OAAe,EACf,OAAoD;IAEpD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO;IAEtC,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,WAAW,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACjG,OAAO;QACR,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,eAAe,GAAiB,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;YAChG,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;YACvG,MAAM,qBAAqB,GAAG,OAAO,EAAE,4BAA4B;gBAClE,CAAC,CAAC,MAAM,4BAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC;gBACpF,CAAC,CAAC,KAAK,CAAC;YACT,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,0BAA0B,GAC/B,gBAAgB,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACzG,IAAI,CAAC,gBAAgB,IAAI,0BAA0B,EAAE,CAAC;gBACrD,WAAW,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACX,CAAC","sourcesContent":["import { access, stat } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join } from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../config.js\";\nimport { addAutoDiscoveredResources, collectProjectLocalResources } from \"./package-manager-auto-resources.ts\";\nimport { isOfflineModeEnabled } from \"./package-manager-env.ts\";\nimport { getExistingGitInstallPath, refreshTemporaryGitSource } from \"./package-manager-git.ts\";\nimport { getExistingNpmInstallPath, installedNpmMatchesConfiguredVersion } from \"./package-manager-npm.ts\";\nimport { installParsedSource } from \"./package-manager-operations.ts\";\nimport { getBaseDirsForScope, getGitInstallPath, resolvePathFromBase } from \"./package-manager-paths.ts\";\nimport {\n\taddResource,\n\tcreateAccumulator,\n\tgetTargetMap,\n\ttoResolvedPaths,\n} from \"./package-manager-resource-accumulator.ts\";\nimport { collectPackageResources, resolveLocalEntries } from \"./package-manager-resource-collector.ts\";\nimport { resolveExtensionEntries } from \"./package-manager-resource-files.ts\";\nimport {\n\tapplyAutoloadDisabledPatterns,\n\tisEnabledByOverrides,\n\tisOverridePattern,\n\tsplitPatterns,\n} from \"./package-manager-resource-patterns.ts\";\nimport { dedupePackages, getPackageIdentity, getPackageSourceString, parseSource } from \"./package-manager-source.ts\";\nimport type {\n\tMissingSourceAction,\n\tPackageFilter,\n\tPackageManagerContext,\n\tPathMetadata,\n\tResolvedPaths,\n\tResolveExtensionSourcesOptions,\n\tResourceAccumulator,\n\tSourceScope,\n} from \"./package-manager-types.ts\";\nimport type { PackageSource } from \"./settings-manager.ts\";\nimport { BUILTIN_PATH_PREFIX } from \"./source-info.ts\";\n\nasync function exists(path: string): Promise<boolean> {\n\ttry {\n\t\tawait access(path);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport async function resolvePackages(\n\tcontext: PackageManagerContext,\n\tonMissing?: (source: string) => Promise<MissingSourceAction>,\n): Promise<ResolvedPaths> {\n\tconst accumulator = createAccumulator();\n\tconst globalSettings = context.settingsManager.getGlobalSettings();\n\tconst projectSettings = context.settingsManager.getProjectSettings();\n\tconst allPackages: Array<{ pkg: PackageSource; scope: SourceScope }> = [];\n\n\tfor (const pkg of projectSettings.packages ?? []) {\n\t\tallPackages.push({ pkg, scope: \"project\" });\n\t}\n\tfor (const pkg of globalSettings.packages ?? []) {\n\t\tallPackages.push({ pkg, scope: \"user\" });\n\t}\n\n\tconst packageSources = dedupePackages(context, allPackages);\n\tawait resolvePackageSources(context, packageSources, accumulator, onMissing, { settingsField: \"packages\" });\n\n\tconst globalBaseDir = context.agentDir;\n\tconst projectBaseDir = join(context.cwd, CONFIG_DIR_NAME);\n\tconst globalBaseDirs = getBaseDirsForScope(context, \"user\");\n\tconst projectBaseDirs = getBaseDirsForScope(context, \"project\");\n\n\tfor (const resourceType of [\"extensions\", \"skills\", \"prompts\", \"themes\", \"workflows\"] as const) {\n\t\tconst target = getTargetMap(accumulator, resourceType);\n\t\tconst globalEntries = (globalSettings[resourceType] ?? []) as string[];\n\t\tconst projectEntries = (projectSettings[resourceType] ?? []) as string[];\n\t\tconst projectOrigin = context.settingsManager.isFieldInherited(\"project\", resourceType)\n\t\t\t? \"inherited-pi\"\n\t\t\t: \"atomic\";\n\t\tconst globalOrigin = context.settingsManager.isFieldInherited(\"global\", resourceType) ? \"inherited-pi\" : \"atomic\";\n\t\tawait resolveConfiguredLocalEntries(\n\t\t\tprojectEntries,\n\t\t\tresourceType,\n\t\t\ttarget,\n\t\t\t\"project\",\n\t\t\tprojectBaseDirs,\n\t\t\tprojectOrigin,\n\t\t);\n\t\tawait resolveConfiguredLocalEntries(globalEntries, resourceType, target, \"user\", globalBaseDirs, globalOrigin);\n\t}\n\n\tawait addAutoDiscoveredResources(\n\t\tcontext,\n\t\taccumulator,\n\t\tglobalSettings,\n\t\tprojectSettings,\n\t\tglobalBaseDir,\n\t\tprojectBaseDir,\n\t);\n\tfor (const name of context.builtinExtensions ?? []) {\n\t\tconst path = `${BUILTIN_PATH_PREFIX}${name}`;\n\t\tconst projectEnabled = applyAutoloadDisabledPatterns(\n\t\t\t[path],\n\t\t\t(projectSettings.extensions ?? []).filter(isOverridePattern),\n\t\t\tprojectBaseDir,\n\t\t).get(path);\n\t\taddResource(\n\t\t\taccumulator.extensions,\n\t\t\tpath,\n\t\t\t{\n\t\t\t\tsource: \"builtin\",\n\t\t\t\tscope: projectEnabled === undefined ? \"user\" : \"project\",\n\t\t\t\torigin: \"top-level\",\n\t\t\t\tconfigurationOrigin: \"bundled\",\n\t\t\t},\n\t\t\tprojectEnabled ?? isEnabledByOverrides(path, globalSettings.extensions ?? [], globalBaseDir),\n\t\t);\n\t}\n\treturn toResolvedPaths(accumulator);\n}\n\nasync function resolveConfiguredLocalEntries(\n\tentries: string[],\n\tresourceType: \"extensions\" | \"skills\" | \"prompts\" | \"themes\" | \"workflows\",\n\ttarget: ReturnType<typeof getTargetMap>,\n\tscope: \"project\" | \"user\",\n\tbaseDirs: string[],\n\tfieldOrigin: \"atomic\" | \"inherited-pi\",\n): Promise<void> {\n\tconst { plain, patterns } = splitPatterns(entries);\n\tconst relativeEntries = plain.filter(\n\t\t(entry) => !entry.startsWith(BUILTIN_PATH_PREFIX) && !isAbsolute(entry) && !entry.startsWith(\"~\"),\n\t);\n\tconst fixedEntries = plain.filter((entry) => isAbsolute(entry) || entry.startsWith(\"~\"));\n\tfor (const [baseIndex, baseDir] of baseDirs.entries()) {\n\t\tconst metadata: PathMetadata = {\n\t\t\tsource: \"local\",\n\t\t\tscope,\n\t\t\torigin: \"top-level\",\n\t\t\tbaseDir,\n\t\t\tconfigurationOrigin: baseIndex === 0 || fieldOrigin === \"atomic\" ? \"atomic\" : \"inherited-pi\",\n\t\t};\n\t\tawait resolveLocalEntries([...relativeEntries, ...patterns], resourceType, target, metadata, baseDir);\n\t\tawait resolveLocalEntries(\n\t\t\t[...fixedEntries, ...patterns],\n\t\t\tresourceType,\n\t\t\ttarget,\n\t\t\t{\n\t\t\t\t...metadata,\n\t\t\t\tconfigurationOrigin: fieldOrigin,\n\t\t\t},\n\t\t\tbaseDir,\n\t\t);\n\t}\n}\n\nexport async function resolveExtensionSources(\n\tcontext: PackageManagerContext,\n\tsources: PackageSource[],\n\toptions?: ResolveExtensionSourcesOptions,\n): Promise<ResolvedPaths> {\n\tconst accumulator = createAccumulator();\n\tconst scope: SourceScope = options?.temporary ? \"temporary\" : options?.local ? \"project\" : \"user\";\n\tconst packageSources: Array<{ pkg: PackageSource; scope: SourceScope }> = [];\n\tfor (const source of sources) {\n\t\tif (typeof source === \"string\" && source.startsWith(BUILTIN_PATH_PREFIX)) {\n\t\t\taddResource(\n\t\t\t\taccumulator.extensions,\n\t\t\t\tsource,\n\t\t\t\t{ source: \"builtin\", scope, origin: \"top-level\", configurationOrigin: \"bundled\" },\n\t\t\t\ttrue,\n\t\t\t);\n\t\t} else packageSources.push({ pkg: source, scope });\n\t}\n\tawait resolvePackageSources(context, packageSources, accumulator, undefined, {\n\t\tincludeProjectLocalResources: options?.includeProjectLocalResources === true,\n\t});\n\treturn toResolvedPaths(accumulator);\n}\n\nasync function resolvePackageSources(\n\tcontext: PackageManagerContext,\n\tsources: Array<{ pkg: PackageSource; scope: SourceScope }>,\n\taccumulator: ResourceAccumulator,\n\tonMissing?: (source: string) => Promise<MissingSourceAction>,\n\toptions?: { includeProjectLocalResources?: boolean; settingsField?: \"packages\" },\n): Promise<void> {\n\tfor (const { pkg, scope } of sources) {\n\t\tconst sourceStr = getPackageSourceString(pkg);\n\t\tconst filter = typeof pkg === \"object\" ? pkg : undefined;\n\t\tconst deltaBase = findAutoloadDeltaBase(context, pkg, scope, sources);\n\t\tconst resolvedSource = deltaBase?.source ?? sourceStr;\n\t\tconst resolvedScope = deltaBase?.scope ?? scope;\n\t\tconst parsed = parseSource(resolvedSource);\n\t\tconst configurationOrigin =\n\t\t\toptions?.settingsField &&\n\t\t\tcontext.settingsManager.isFieldInherited(scope === \"project\" ? \"project\" : \"global\", options.settingsField)\n\t\t\t\t? \"inherited-pi\"\n\t\t\t\t: options?.settingsField\n\t\t\t\t\t? \"atomic\"\n\t\t\t\t\t: undefined;\n\t\tconst metadata: PathMetadata = { source: sourceStr, scope, origin: \"package\", configurationOrigin };\n\n\t\tif (parsed.type === \"local\") {\n\t\t\tfor (const [baseIndex, baseDir] of getBaseDirsForScope(context, resolvedScope).entries()) {\n\t\t\t\tconst resolvesFromSettingsBase =\n\t\t\t\t\toptions?.settingsField !== undefined && !isAbsolute(parsed.path) && !parsed.path.startsWith(\"~\");\n\t\t\t\tconst localMetadata: PathMetadata = {\n\t\t\t\t\t...metadata,\n\t\t\t\t\tbaseDir,\n\t\t\t\t\tconfigurationOrigin: resolvesFromSettingsBase\n\t\t\t\t\t\t? baseIndex === 0 || configurationOrigin === \"atomic\"\n\t\t\t\t\t\t\t? \"atomic\"\n\t\t\t\t\t\t\t: \"inherited-pi\"\n\t\t\t\t\t\t: configurationOrigin,\n\t\t\t\t};\n\t\t\t\tawait resolveLocalExtensionSource(parsed, accumulator, filter, localMetadata, baseDir, {\n\t\t\t\t\tincludeProjectLocalResources: options?.includeProjectLocalResources === true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst installMissing = async (): Promise<boolean> => {\n\t\t\tif (isOfflineModeEnabled()) return false;\n\t\t\tif (!onMissing) {\n\t\t\t\tif (context.driver) await context.driver.installParsedSource(parsed, resolvedScope);\n\t\t\t\telse await installParsedSource(context, parsed, resolvedScope);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst action = await onMissing(sourceStr);\n\t\t\tif (action === \"skip\") return false;\n\t\t\tif (action === \"error\") throw new Error(`Missing source: ${sourceStr}`);\n\t\t\tif (context.driver) await context.driver.installParsedSource(parsed, resolvedScope);\n\t\t\telse await installParsedSource(context, parsed, resolvedScope);\n\t\t\treturn true;\n\t\t};\n\n\t\tif (parsed.type === \"npm\") {\n\t\t\tlet installedPath = getExistingNpmInstallPath(context, parsed, resolvedScope);\n\t\t\tconst needsInstall =\n\t\t\t\t!installedPath || !(await installedNpmMatchesConfiguredVersion(context, parsed, installedPath));\n\t\t\tif (needsInstall) {\n\t\t\t\tconst installed = await installMissing();\n\t\t\t\tif (!installed) continue;\n\t\t\t\tinstalledPath = getExistingNpmInstallPath(context, parsed, resolvedScope);\n\t\t\t\tif (!installedPath || !(await installedNpmMatchesConfiguredVersion(context, parsed, installedPath))) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!installedPath) continue;\n\t\t\tmetadata.baseDir = installedPath;\n\t\t\tmetadata.packageRoot = installedPath;\n\t\t\tawait collectPackageResources(installedPath, accumulator, filter, metadata);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst installedPath =\n\t\t\tgetExistingGitInstallPath(context, parsed, resolvedScope) ?? getGitInstallPath(context, parsed, resolvedScope);\n\t\tif (!(await exists(installedPath))) {\n\t\t\tconst installed = await installMissing();\n\t\t\tif (!installed) continue;\n\t\t} else if (resolvedScope === \"temporary\" && !parsed.pinned && !isOfflineModeEnabled()) {\n\t\t\tif (context.driver) await context.driver.refreshTemporaryGitSource(parsed, sourceStr);\n\t\t\telse await refreshTemporaryGitSource(context, parsed, sourceStr);\n\t\t}\n\t\tmetadata.baseDir = installedPath;\n\t\tmetadata.packageRoot = installedPath;\n\t\tawait collectPackageResources(installedPath, accumulator, filter, metadata);\n\t}\n}\n\nfunction findAutoloadDeltaBase(\n\tcontext: PackageManagerContext,\n\tpkg: PackageSource,\n\tscope: SourceScope,\n\tsources: Array<{ pkg: PackageSource; scope: SourceScope }>,\n): { source: string; scope: SourceScope } | undefined {\n\tif (scope !== \"project\" || typeof pkg !== \"object\" || pkg.autoload !== false) return undefined;\n\tconst identity = getPackageIdentity(context, pkg.source, scope);\n\tconst userEntry = sources.find(\n\t\t(entry) =>\n\t\t\tentry.scope === \"user\" && getPackageIdentity(context, getPackageSourceString(entry.pkg), \"user\") === identity,\n\t);\n\treturn userEntry ? { source: getPackageSourceString(userEntry.pkg), scope: \"user\" } : undefined;\n}\n\nasync function resolveLocalExtensionSource(\n\tsource: { type: \"local\"; path: string },\n\taccumulator: ResourceAccumulator,\n\tfilter: PackageFilter | undefined,\n\tmetadata: PathMetadata,\n\tbaseDir: string,\n\toptions?: { includeProjectLocalResources?: boolean },\n): Promise<void> {\n\tconst resolved = resolvePathFromBase(source.path, baseDir);\n\tif (!(await exists(resolved))) return;\n\n\ttry {\n\t\tconst stats = await stat(resolved);\n\t\tif (stats.isFile()) {\n\t\t\taddResource(accumulator.extensions, resolved, { ...metadata, baseDir: dirname(resolved) }, true);\n\t\t\treturn;\n\t\t}\n\t\tif (stats.isDirectory()) {\n\t\t\tconst packageMetadata: PathMetadata = { ...metadata, baseDir: resolved, packageRoot: resolved };\n\t\t\tconst packageResources = await collectPackageResources(resolved, accumulator, filter, packageMetadata);\n\t\t\tconst projectLocalResources = options?.includeProjectLocalResources\n\t\t\t\t? await collectProjectLocalResources(resolved, accumulator, filter, packageMetadata)\n\t\t\t\t: false;\n\t\t\tconst extensionEntries = await resolveExtensionEntries(resolved);\n\t\t\tconst shouldAddDirectoryFallback =\n\t\t\t\textensionEntries !== null || (options?.includeProjectLocalResources === true && !projectLocalResources);\n\t\t\tif (!packageResources && shouldAddDirectoryFallback) {\n\t\t\t\taddResource(accumulator.extensions, resolved, packageMetadata, true);\n\t\t\t}\n\t\t}\n\t} catch {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-resource-accumulator.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resource-accumulator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,aAAa,EAEb,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,MAAM,4BAA4B,CAAC;AASpC,wBAAgB,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,GAAG,WAAW,CAetG;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK1G;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CASvD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,aAAa,CA0B/E"}
1
+ {"version":3,"file":"package-manager-resource-accumulator.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-resource-accumulator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,YAAY,EACZ,aAAa,EAEb,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,YAAY,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,GAAG,WAAW,CAetG;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK1G;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CASvD;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,mBAAmB,GAAG,aAAa,CA0B/E"}
@@ -1,5 +1,7 @@
1
1
  import { canonicalizePath } from "../utils/paths.js";
2
2
  function resourcePrecedenceRank(m) {
3
+ if (m.source === "builtin")
4
+ return 6;
3
5
  if (m.origin === "package")
4
6
  return 4;
5
7
  if (m.borrowedProjectLocal)
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-resource-accumulator.js","sourceRoot":"","sources":["../../src/core/package-manager-resource-accumulator.ts"],"names":[],"mappings":"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","sourcesContent":["import { canonicalizePath } from \"../utils/paths.ts\";\nimport type {\n\tPathMetadata,\n\tResolvedPaths,\n\tResolvedResource,\n\tResourceAccumulator,\n\tResourceMap,\n\tResourceType,\n} from \"./package-manager-types.ts\";\n\nfunction resourcePrecedenceRank(m: PathMetadata): number {\n\tif (m.origin === \"package\") return 4;\n\tif (m.borrowedProjectLocal) return 5;\n\tconst scopeBase = m.scope === \"project\" ? 0 : 2;\n\treturn scopeBase + (m.source === \"local\" ? 0 : 1);\n}\n\nexport function getTargetMap(accumulator: ResourceAccumulator, resourceType: ResourceType): ResourceMap {\n\tswitch (resourceType) {\n\t\tcase \"extensions\":\n\t\t\treturn accumulator.extensions;\n\t\tcase \"skills\":\n\t\t\treturn accumulator.skills;\n\t\tcase \"prompts\":\n\t\t\treturn accumulator.prompts;\n\t\tcase \"themes\":\n\t\t\treturn accumulator.themes;\n\t\tcase \"workflows\":\n\t\t\treturn accumulator.workflows;\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown resource type: ${resourceType}`);\n\t}\n}\n\nexport function addResource(map: ResourceMap, path: string, metadata: PathMetadata, enabled: boolean): void {\n\tif (!path) return;\n\tif (!map.has(path)) {\n\t\tmap.set(path, { metadata, enabled });\n\t}\n}\n\nexport function createAccumulator(): ResourceAccumulator {\n\treturn {\n\t\textensions: new Map(),\n\t\tskills: new Map(),\n\t\tprompts: new Map(),\n\t\tthemes: new Map(),\n\t\tworkflows: new Map(),\n\t\tmcpServers: new Map(),\n\t};\n}\n\nexport function toResolvedPaths(accumulator: ResourceAccumulator): ResolvedPaths {\n\tconst mapToResolved = (entries: ResourceMap): ResolvedResource[] => {\n\t\tconst resolved = Array.from(entries.entries()).map(([path, { metadata, enabled }]) => ({\n\t\t\tpath,\n\t\t\tenabled,\n\t\t\tmetadata,\n\t\t}));\n\t\tresolved.sort((a, b) => resourcePrecedenceRank(a.metadata) - resourcePrecedenceRank(b.metadata));\n\n\t\tconst seen = new Set<string>();\n\t\treturn resolved.filter((entry) => {\n\t\t\tconst canonicalPath = canonicalizePath(entry.path);\n\t\t\tif (seen.has(canonicalPath)) return false;\n\t\t\tseen.add(canonicalPath);\n\t\t\treturn true;\n\t\t});\n\t};\n\n\treturn {\n\t\textensions: mapToResolved(accumulator.extensions),\n\t\tskills: mapToResolved(accumulator.skills),\n\t\tprompts: mapToResolved(accumulator.prompts),\n\t\tthemes: mapToResolved(accumulator.themes),\n\t\tworkflows: mapToResolved(accumulator.workflows),\n\t\tmcpServers: [...accumulator.mcpServers.values()],\n\t};\n}\n"]}
1
+ {"version":3,"file":"package-manager-resource-accumulator.js","sourceRoot":"","sources":["../../src/core/package-manager-resource-accumulator.ts"],"names":[],"mappings":"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","sourcesContent":["import { canonicalizePath } from \"../utils/paths.ts\";\nimport type {\n\tPathMetadata,\n\tResolvedPaths,\n\tResolvedResource,\n\tResourceAccumulator,\n\tResourceMap,\n\tResourceType,\n} from \"./package-manager-types.ts\";\n\nfunction resourcePrecedenceRank(m: PathMetadata): number {\n\tif (m.source === \"builtin\") return 6;\n\tif (m.origin === \"package\") return 4;\n\tif (m.borrowedProjectLocal) return 5;\n\tconst scopeBase = m.scope === \"project\" ? 0 : 2;\n\treturn scopeBase + (m.source === \"local\" ? 0 : 1);\n}\n\nexport function getTargetMap(accumulator: ResourceAccumulator, resourceType: ResourceType): ResourceMap {\n\tswitch (resourceType) {\n\t\tcase \"extensions\":\n\t\t\treturn accumulator.extensions;\n\t\tcase \"skills\":\n\t\t\treturn accumulator.skills;\n\t\tcase \"prompts\":\n\t\t\treturn accumulator.prompts;\n\t\tcase \"themes\":\n\t\t\treturn accumulator.themes;\n\t\tcase \"workflows\":\n\t\t\treturn accumulator.workflows;\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown resource type: ${resourceType}`);\n\t}\n}\n\nexport function addResource(map: ResourceMap, path: string, metadata: PathMetadata, enabled: boolean): void {\n\tif (!path) return;\n\tif (!map.has(path)) {\n\t\tmap.set(path, { metadata, enabled });\n\t}\n}\n\nexport function createAccumulator(): ResourceAccumulator {\n\treturn {\n\t\textensions: new Map(),\n\t\tskills: new Map(),\n\t\tprompts: new Map(),\n\t\tthemes: new Map(),\n\t\tworkflows: new Map(),\n\t\tmcpServers: new Map(),\n\t};\n}\n\nexport function toResolvedPaths(accumulator: ResourceAccumulator): ResolvedPaths {\n\tconst mapToResolved = (entries: ResourceMap): ResolvedResource[] => {\n\t\tconst resolved = Array.from(entries.entries()).map(([path, { metadata, enabled }]) => ({\n\t\t\tpath,\n\t\t\tenabled,\n\t\t\tmetadata,\n\t\t}));\n\t\tresolved.sort((a, b) => resourcePrecedenceRank(a.metadata) - resourcePrecedenceRank(b.metadata));\n\n\t\tconst seen = new Set<string>();\n\t\treturn resolved.filter((entry) => {\n\t\t\tconst canonicalPath = canonicalizePath(entry.path);\n\t\t\tif (seen.has(canonicalPath)) return false;\n\t\t\tseen.add(canonicalPath);\n\t\t\treturn true;\n\t\t});\n\t};\n\n\treturn {\n\t\textensions: mapToResolved(accumulator.extensions),\n\t\tskills: mapToResolved(accumulator.skills),\n\t\tprompts: mapToResolved(accumulator.prompts),\n\t\tthemes: mapToResolved(accumulator.themes),\n\t\tworkflows: mapToResolved(accumulator.workflows),\n\t\tmcpServers: [...accumulator.mcpServers.values()],\n\t};\n}\n"]}
@@ -83,6 +83,7 @@ export interface PackageManagerOptions {
83
83
  cwd: string;
84
84
  agentDir: string;
85
85
  settingsManager: SettingsManager;
86
+ builtinExtensions?: string[];
86
87
  }
87
88
  export interface GitUpdateTargetInfo {
88
89
  ref: string;
@@ -114,6 +115,7 @@ export interface PackageManagerContext {
114
115
  cwd: string;
115
116
  agentDir: string;
116
117
  settingsManager: SettingsManager;
118
+ builtinExtensions?: string[];
117
119
  globalNpmRoot?: string;
118
120
  globalNpmRootCommandKey?: string;
119
121
  progressCallback?: ProgressCallback;
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-types.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-manager-types.d.ts","sourceRoot":"","sources":["../../src/core/package-manager-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager-types.js","sourceRoot":"","sources":["../../src/core/package-manager-types.ts"],"names":[],"mappings":"AAwKA,MAAM,CAAC,MAAM,cAAc,GAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,aAAa,GAAiC;IAC1D,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,oBAAoB;CAC/B,CAAC","sourcesContent":["import type { GitSource } from \"../utils/git.ts\";\nimport type { McpServerConfig } from \"./mcp-servers.ts\";\nimport type { PackageSource, SettingsManager } from \"./settings-manager.ts\";\n\nexport type ResourceConfigurationOrigin = \"atomic\" | \"inherited-pi\" | \"bundled\";\n\nexport interface PathMetadata {\n\tsource: string;\n\tscope: SourceScope;\n\torigin: \"package\" | \"top-level\";\n\tbaseDir?: string;\n\tpackageRoot?: string;\n\tconfigurationOrigin?: ResourceConfigurationOrigin;\n\t/** True for project-local resources borrowed from an explicit temporary extension source. */\n\tborrowedProjectLocal?: true;\n}\n\nexport interface ResolvedResource {\n\tpath: string;\n\tenabled: boolean;\n\tmetadata: PathMetadata;\n}\n\nexport interface ResolvedMcpServer {\n\tname: string;\n\tconfig: McpServerConfig;\n\tenabled: boolean;\n\t/** Manifest file that declared the server: the referenced JSON file, or package.json for inline servers. */\n\tpath: string;\n\tmetadata: PathMetadata;\n}\n\nexport interface ResolvedPaths {\n\textensions: ResolvedResource[];\n\tskills: ResolvedResource[];\n\tprompts: ResolvedResource[];\n\tthemes: ResolvedResource[];\n\tworkflows: ResolvedResource[];\n\tmcpServers: ResolvedMcpServer[];\n}\n\nexport type MissingSourceAction = \"install\" | \"skip\" | \"error\";\n\nexport interface ProgressEvent {\n\ttype: \"start\" | \"progress\" | \"complete\" | \"error\";\n\taction: \"install\" | \"remove\" | \"update\" | \"clone\" | \"pull\";\n\tsource: string;\n\tmessage?: string;\n}\n\nexport type ProgressCallback = (event: ProgressEvent) => void;\n\nexport interface PackageUpdate {\n\tsource: string;\n\tdisplayName: string;\n\ttype: \"npm\" | \"git\";\n\tscope: Exclude<SourceScope, \"temporary\">;\n}\n\nexport interface ConfiguredPackage {\n\tsource: string;\n\tscope: \"user\" | \"project\";\n\tfiltered: boolean;\n\tinstalledPath?: string;\n}\n\nexport interface PackageManager {\n\tresolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;\n\tinstall(source: string, options?: { local?: boolean }): Promise<void>;\n\tinstallAndPersist(source: string, options?: { local?: boolean }): Promise<void>;\n\tremove(source: string, options?: { local?: boolean }): Promise<void>;\n\tremoveAndPersist(source: string, options?: { local?: boolean }): Promise<boolean>;\n\tupdate(source?: string): Promise<void>;\n\tlistConfiguredPackages(): ConfiguredPackage[];\n\tresolveExtensionSources(sources: PackageSource[], options?: ResolveExtensionSourcesOptions): Promise<ResolvedPaths>;\n\taddSourceToSettings(source: string, options?: { local?: boolean }): boolean;\n\tremoveSourceFromSettings(source: string, options?: { local?: boolean }): boolean;\n\tsetProgressCallback(callback: ProgressCallback | undefined): void;\n\tgetInstalledPath(source: string, scope: \"user\" | \"project\"): string | undefined;\n}\n\nexport interface PackageManagerOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager: SettingsManager;\n}\n\nexport interface GitUpdateTargetInfo {\n\tref: string;\n\thead: string;\n\tfetchArgs: string[];\n}\n\nexport interface PackageManagerDriver {\n\trunCommand(command: string, args: string[], options?: { cwd?: string }): Promise<void>;\n\trunCommandCapture(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; timeoutMs?: number; env?: Record<string, string> },\n\t): Promise<string>;\n\trunCommandSync(command: string, args: string[]): string;\n\tinstallParsedSource(parsed: ParsedSource, scope: SourceScope): Promise<void>;\n\tupdateGit(source: GitSource, scope: SourceScope): Promise<void>;\n\tgitHasAvailableUpdate(installedPath: string): Promise<boolean>;\n\trefreshTemporaryGitSource(source: GitSource, sourceStr: string): Promise<void>;\n\tgetLocalGitUpdateTarget(installedPath: string): Promise<GitUpdateTargetInfo>;\n\tgetGlobalNpmRoot(): string;\n\tparseSource(source: string): ParsedSource;\n\tgetPackageIdentity(source: string, scope?: SourceScope): string;\n\tgetGitInstallPath(source: GitSource, scope: SourceScope): string;\n\tgetLatestNpmVersion(packageSpec: string, range?: string): Promise<string>;\n}\n\nexport interface PackageManagerContext {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager: SettingsManager;\n\tglobalNpmRoot?: string;\n\tglobalNpmRootCommandKey?: string;\n\tprogressCallback?: ProgressCallback;\n\tdriver?: PackageManagerDriver;\n}\n\nexport type SourceScope = \"user\" | \"project\" | \"temporary\";\n\nexport type NpmSource = {\n\ttype: \"npm\";\n\tspec: string;\n\tname: string;\n\tversion?: string;\n\trange?: string;\n\tpinned: boolean;\n};\n\nexport type LocalSource = {\n\ttype: \"local\";\n\tpath: string;\n};\n\nexport type ParsedSource = NpmSource | GitSource | LocalSource;\n\nexport type InstalledSourceScope = Exclude<SourceScope, \"temporary\">;\n\nexport interface ConfiguredUpdateSource {\n\tsource: string;\n\tscope: InstalledSourceScope;\n}\n\nexport interface NpmUpdateTarget extends ConfiguredUpdateSource {\n\tparsed: NpmSource;\n}\n\nexport interface GitUpdateTarget extends ConfiguredUpdateSource {\n\tparsed: GitSource;\n}\n\nexport interface PiManifest {\n\textensions?: string[];\n\tskills?: string[];\n\tprompts?: string[];\n\tthemes?: string[];\n\tworkflows?: string[];\n\tworkflow?: string[];\n\tmcpServers?: string | Record<string, McpServerConfig>;\n}\n\nexport type ResourceType = \"extensions\" | \"skills\" | \"prompts\" | \"themes\" | \"workflows\";\n\nexport const RESOURCE_TYPES: ResourceType[] = [\"extensions\", \"skills\", \"prompts\", \"themes\", \"workflows\"];\n\nexport const FILE_PATTERNS: Record<ResourceType, RegExp> = {\n\textensions: /\\.(ts|js)$/,\n\tskills: /\\.md$/,\n\tprompts: /\\.md$/,\n\tthemes: /\\.json$/,\n\tworkflows: /\\.(ts|js|mjs|cjs)$/,\n};\n\nexport type ResourceEntry = { metadata: PathMetadata; enabled: boolean };\nexport type ResourceMap = Map<string, ResourceEntry>;\n\nexport interface ResourceAccumulator {\n\textensions: ResourceMap;\n\tskills: ResourceMap;\n\tprompts: ResourceMap;\n\tthemes: ResourceMap;\n\tworkflows: ResourceMap;\n\t/** Keyed by declaring file and server name; the first resolution of a package wins. */\n\tmcpServers: Map<string, ResolvedMcpServer>;\n}\n\nexport interface PackageFilter {\n\tautoload?: boolean;\n\textensions?: string[];\n\tskills?: string[];\n\tprompts?: string[];\n\tthemes?: string[];\n\tworkflows?: string[];\n\tmcpServers?: string[];\n}\n\nexport interface ResolveExtensionSourcesOptions {\n\tlocal?: boolean;\n\ttemporary?: boolean;\n\tincludeProjectLocalResources?: boolean;\n}\n"]}
1
+ {"version":3,"file":"package-manager-types.js","sourceRoot":"","sources":["../../src/core/package-manager-types.ts"],"names":[],"mappings":"AA0KA,MAAM,CAAC,MAAM,cAAc,GAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,aAAa,GAAiC;IAC1D,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,oBAAoB;CAC/B,CAAC","sourcesContent":["import type { GitSource } from \"../utils/git.ts\";\nimport type { McpServerConfig } from \"./mcp-servers.ts\";\nimport type { PackageSource, SettingsManager } from \"./settings-manager.ts\";\n\nexport type ResourceConfigurationOrigin = \"atomic\" | \"inherited-pi\" | \"bundled\";\n\nexport interface PathMetadata {\n\tsource: string;\n\tscope: SourceScope;\n\torigin: \"package\" | \"top-level\";\n\tbaseDir?: string;\n\tpackageRoot?: string;\n\tconfigurationOrigin?: ResourceConfigurationOrigin;\n\t/** True for project-local resources borrowed from an explicit temporary extension source. */\n\tborrowedProjectLocal?: true;\n}\n\nexport interface ResolvedResource {\n\tpath: string;\n\tenabled: boolean;\n\tmetadata: PathMetadata;\n}\n\nexport interface ResolvedMcpServer {\n\tname: string;\n\tconfig: McpServerConfig;\n\tenabled: boolean;\n\t/** Manifest file that declared the server: the referenced JSON file, or package.json for inline servers. */\n\tpath: string;\n\tmetadata: PathMetadata;\n}\n\nexport interface ResolvedPaths {\n\textensions: ResolvedResource[];\n\tskills: ResolvedResource[];\n\tprompts: ResolvedResource[];\n\tthemes: ResolvedResource[];\n\tworkflows: ResolvedResource[];\n\tmcpServers: ResolvedMcpServer[];\n}\n\nexport type MissingSourceAction = \"install\" | \"skip\" | \"error\";\n\nexport interface ProgressEvent {\n\ttype: \"start\" | \"progress\" | \"complete\" | \"error\";\n\taction: \"install\" | \"remove\" | \"update\" | \"clone\" | \"pull\";\n\tsource: string;\n\tmessage?: string;\n}\n\nexport type ProgressCallback = (event: ProgressEvent) => void;\n\nexport interface PackageUpdate {\n\tsource: string;\n\tdisplayName: string;\n\ttype: \"npm\" | \"git\";\n\tscope: Exclude<SourceScope, \"temporary\">;\n}\n\nexport interface ConfiguredPackage {\n\tsource: string;\n\tscope: \"user\" | \"project\";\n\tfiltered: boolean;\n\tinstalledPath?: string;\n}\n\nexport interface PackageManager {\n\tresolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;\n\tinstall(source: string, options?: { local?: boolean }): Promise<void>;\n\tinstallAndPersist(source: string, options?: { local?: boolean }): Promise<void>;\n\tremove(source: string, options?: { local?: boolean }): Promise<void>;\n\tremoveAndPersist(source: string, options?: { local?: boolean }): Promise<boolean>;\n\tupdate(source?: string): Promise<void>;\n\tlistConfiguredPackages(): ConfiguredPackage[];\n\tresolveExtensionSources(sources: PackageSource[], options?: ResolveExtensionSourcesOptions): Promise<ResolvedPaths>;\n\taddSourceToSettings(source: string, options?: { local?: boolean }): boolean;\n\tremoveSourceFromSettings(source: string, options?: { local?: boolean }): boolean;\n\tsetProgressCallback(callback: ProgressCallback | undefined): void;\n\tgetInstalledPath(source: string, scope: \"user\" | \"project\"): string | undefined;\n}\n\nexport interface PackageManagerOptions {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager: SettingsManager;\n\tbuiltinExtensions?: string[];\n}\n\nexport interface GitUpdateTargetInfo {\n\tref: string;\n\thead: string;\n\tfetchArgs: string[];\n}\n\nexport interface PackageManagerDriver {\n\trunCommand(command: string, args: string[], options?: { cwd?: string }): Promise<void>;\n\trunCommandCapture(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; timeoutMs?: number; env?: Record<string, string> },\n\t): Promise<string>;\n\trunCommandSync(command: string, args: string[]): string;\n\tinstallParsedSource(parsed: ParsedSource, scope: SourceScope): Promise<void>;\n\tupdateGit(source: GitSource, scope: SourceScope): Promise<void>;\n\tgitHasAvailableUpdate(installedPath: string): Promise<boolean>;\n\trefreshTemporaryGitSource(source: GitSource, sourceStr: string): Promise<void>;\n\tgetLocalGitUpdateTarget(installedPath: string): Promise<GitUpdateTargetInfo>;\n\tgetGlobalNpmRoot(): string;\n\tparseSource(source: string): ParsedSource;\n\tgetPackageIdentity(source: string, scope?: SourceScope): string;\n\tgetGitInstallPath(source: GitSource, scope: SourceScope): string;\n\tgetLatestNpmVersion(packageSpec: string, range?: string): Promise<string>;\n}\n\nexport interface PackageManagerContext {\n\tcwd: string;\n\tagentDir: string;\n\tsettingsManager: SettingsManager;\n\tbuiltinExtensions?: string[];\n\tglobalNpmRoot?: string;\n\tglobalNpmRootCommandKey?: string;\n\tprogressCallback?: ProgressCallback;\n\tdriver?: PackageManagerDriver;\n}\n\nexport type SourceScope = \"user\" | \"project\" | \"temporary\";\n\nexport type NpmSource = {\n\ttype: \"npm\";\n\tspec: string;\n\tname: string;\n\tversion?: string;\n\trange?: string;\n\tpinned: boolean;\n};\n\nexport type LocalSource = {\n\ttype: \"local\";\n\tpath: string;\n};\n\nexport type ParsedSource = NpmSource | GitSource | LocalSource;\n\nexport type InstalledSourceScope = Exclude<SourceScope, \"temporary\">;\n\nexport interface ConfiguredUpdateSource {\n\tsource: string;\n\tscope: InstalledSourceScope;\n}\n\nexport interface NpmUpdateTarget extends ConfiguredUpdateSource {\n\tparsed: NpmSource;\n}\n\nexport interface GitUpdateTarget extends ConfiguredUpdateSource {\n\tparsed: GitSource;\n}\n\nexport interface PiManifest {\n\textensions?: string[];\n\tskills?: string[];\n\tprompts?: string[];\n\tthemes?: string[];\n\tworkflows?: string[];\n\tworkflow?: string[];\n\tmcpServers?: string | Record<string, McpServerConfig>;\n}\n\nexport type ResourceType = \"extensions\" | \"skills\" | \"prompts\" | \"themes\" | \"workflows\";\n\nexport const RESOURCE_TYPES: ResourceType[] = [\"extensions\", \"skills\", \"prompts\", \"themes\", \"workflows\"];\n\nexport const FILE_PATTERNS: Record<ResourceType, RegExp> = {\n\textensions: /\\.(ts|js)$/,\n\tskills: /\\.md$/,\n\tprompts: /\\.md$/,\n\tthemes: /\\.json$/,\n\tworkflows: /\\.(ts|js|mjs|cjs)$/,\n};\n\nexport type ResourceEntry = { metadata: PathMetadata; enabled: boolean };\nexport type ResourceMap = Map<string, ResourceEntry>;\n\nexport interface ResourceAccumulator {\n\textensions: ResourceMap;\n\tskills: ResourceMap;\n\tprompts: ResourceMap;\n\tthemes: ResourceMap;\n\tworkflows: ResourceMap;\n\t/** Keyed by declaring file and server name; the first resolution of a package wins. */\n\tmcpServers: Map<string, ResolvedMcpServer>;\n}\n\nexport interface PackageFilter {\n\tautoload?: boolean;\n\textensions?: string[];\n\tskills?: string[];\n\tprompts?: string[];\n\tthemes?: string[];\n\tworkflows?: string[];\n\tmcpServers?: string[];\n}\n\nexport interface ResolveExtensionSourcesOptions {\n\tlocal?: boolean;\n\ttemporary?: boolean;\n\tincludeProjectLocalResources?: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EACX,iBAAiB,EAEjB,mBAAmB,EACnB,cAAc,EAEd,qBAAqB,EACrB,aAAa,EAEb,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,YAAY,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,2BAA2B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,qBAAsB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD,YAAY,OAAO,EAAE,qBAAqB,EAqBzC;IAED,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAEhE;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAE1E;IAED,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAE/E;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE9E;IAEK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAElG;IAEK,uBAAuB,CAC5B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,aAAa,CAAC,CAExB;IAED,sBAAsB,IAAI,iBAAiB,EAAE,CAE5C;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;IAEK,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;IAEK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF;IAEK,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3C;IAEK,wBAAwB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEzD;IAED,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;YAIX,mBAAmB;YAInB,SAAS;YAIT,qBAAqB;YAIrB,yBAAyB;YAIzB,uBAAuB;IAIrC,OAAO,CAAC,gBAAgB;YAIV,mBAAmB;IAIjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;CAatB"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EACX,iBAAiB,EAEjB,mBAAmB,EACnB,cAAc,EAEd,qBAAqB,EACrB,aAAa,EAEb,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAE9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,YAAY,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,2BAA2B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,qBAAsB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD,YAAY,OAAO,EAAE,qBAAqB,EAsBzC;IAED,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAEhE;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAE1E;IAED,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAE/E;IAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE9E;IAEK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAElG;IAEK,uBAAuB,CAC5B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,aAAa,CAAC,CAExB;IAED,sBAAsB,IAAI,iBAAiB,EAAE,CAE5C;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;IAEK,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpF;IAEK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;IAEK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF;IAEK,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3C;IAEK,wBAAwB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEzD;IAED,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;YAIX,mBAAmB;YAInB,SAAS;YAIT,qBAAqB;YAIrB,yBAAyB;YAIzB,uBAAuB;IAIrC,OAAO,CAAC,gBAAgB;YAIV,mBAAmB;IAIjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;CAatB"}
@@ -16,6 +16,7 @@ export class DefaultPackageManager {
16
16
  cwd: resolveAbsolutePath(options.cwd),
17
17
  agentDir: resolveAbsolutePath(options.agentDir),
18
18
  settingsManager: options.settingsManager,
19
+ builtinExtensions: options.builtinExtensions,
19
20
  };
20
21
  this.context.driver = {
21
22
  runCommand: (command, args, runOptions) => this.runCommand(command, args, runOptions),
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChildProcess, ChildProcessByStdio } from \"node:child_process\";\nimport type { Readable } from \"node:stream\";\nimport { spawnProcess, spawnProcessSync } from \"../utils/child-process.ts\";\nimport type { GitSource } from \"../utils/git.ts\";\nimport { resolvePath as resolveAbsolutePath } from \"../utils/paths.ts\";\nimport { isStdoutTakenOver } from \"./output-guard.ts\";\nimport { getCommandEnv } from \"./package-manager-env.ts\";\nimport {\n\tgetLocalGitUpdateTarget as getLocalGitUpdateTargetFromContext,\n\tgitHasAvailableUpdate as gitHasAvailableUpdateFromContext,\n\trefreshTemporaryGitSource as refreshTemporaryGitSourceFromContext,\n\tupdateGit as updateGitFromContext,\n} from \"./package-manager-git.ts\";\nimport {\n\tgetGlobalNpmRoot as getGlobalNpmRootFromContext,\n\tgetLatestNpmVersion as getLatestNpmVersionFromContext,\n} from \"./package-manager-npm.ts\";\nimport {\n\tcheckForAvailableUpdates as checkForAvailableUpdatesFromContext,\n\tinstall as installFromContext,\n\tinstallParsedSource as installParsedSourceFromContext,\n\tremove as removeFromContext,\n\tupdate as updateFromContext,\n} from \"./package-manager-operations.ts\";\nimport { getGitInstallPath as getGitInstallPathFromContext } from \"./package-manager-paths.ts\";\nimport {\n\tresolveExtensionSources as resolveExtensionSourcesFromContext,\n\tresolvePackages,\n} from \"./package-manager-resolver.ts\";\nimport {\n\taddSourceToSettings as addSourceToSettingsInContext,\n\tgetInstalledPath as getInstalledPathFromContext,\n\tlistConfiguredPackages as listConfiguredPackagesFromContext,\n\tremoveSourceFromSettings as removeSourceFromSettingsInContext,\n} from \"./package-manager-settings.ts\";\nimport {\n\tgetPackageIdentity as getPackageIdentityFromContext,\n\tparseSource as parsePackageSource,\n} from \"./package-manager-source.ts\";\nimport type {\n\tConfiguredPackage,\n\tGitUpdateTargetInfo,\n\tMissingSourceAction,\n\tPackageManager,\n\tPackageManagerContext,\n\tPackageManagerOptions,\n\tPackageUpdate,\n\tParsedSource,\n\tProgressCallback,\n\tResolvedPaths,\n\tResolveExtensionSourcesOptions,\n\tSourceScope,\n} from \"./package-manager-types.ts\";\nimport type { PackageSource } from \"./settings-manager.ts\";\n\nexport type {\n\tConfiguredPackage,\n\tMissingSourceAction,\n\tPackageManager,\n\tPackageManagerOptions,\n\tPackageUpdate,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedMcpServer,\n\tResolvedPaths,\n\tResolvedResource,\n\tResolveExtensionSourcesOptions,\n\tResourceConfigurationOrigin,\n} from \"./package-manager-types.ts\";\n\nexport class DefaultPackageManager implements PackageManager {\n\tprivate readonly context: PackageManagerContext;\n\n\tconstructor(options: PackageManagerOptions) {\n\t\tthis.context = {\n\t\t\tcwd: resolveAbsolutePath(options.cwd),\n\t\t\tagentDir: resolveAbsolutePath(options.agentDir),\n\t\t\tsettingsManager: options.settingsManager,\n\t\t};\n\t\tthis.context.driver = {\n\t\t\trunCommand: (command, args, runOptions) => this.runCommand(command, args, runOptions),\n\t\t\trunCommandCapture: (command, args, runOptions) => this.runCommandCapture(command, args, runOptions),\n\t\t\trunCommandSync: (command, args) => this.runCommandSync(command, args),\n\t\t\tinstallParsedSource: (parsed, scope) => this.installParsedSource(parsed, scope),\n\t\t\tupdateGit: (source, scope) => this.updateGit(source, scope),\n\t\t\tgitHasAvailableUpdate: (installedPath) => this.gitHasAvailableUpdate(installedPath),\n\t\t\trefreshTemporaryGitSource: (source, sourceStr) => this.refreshTemporaryGitSource(source, sourceStr),\n\t\t\tgetLocalGitUpdateTarget: (installedPath) => this.getLocalGitUpdateTarget(installedPath),\n\t\t\tgetGlobalNpmRoot: () => this.getGlobalNpmRoot(),\n\t\t\tparseSource: (source) => this.parseSource(source),\n\t\t\tgetPackageIdentity: (source, scope) => this.getPackageIdentity(source, scope),\n\t\t\tgetGitInstallPath: (source, scope) => this.getGitInstallPath(source, scope),\n\t\t\tgetLatestNpmVersion: (packageSpec, range) => this.getLatestNpmVersion(packageSpec, range),\n\t\t};\n\t}\n\n\tsetProgressCallback(callback: ProgressCallback | undefined): void {\n\t\tthis.context.progressCallback = callback;\n\t}\n\n\taddSourceToSettings(source: string, options?: { local?: boolean }): boolean {\n\t\treturn addSourceToSettingsInContext(this.context, source, options);\n\t}\n\n\tremoveSourceFromSettings(source: string, options?: { local?: boolean }): boolean {\n\t\treturn removeSourceFromSettingsInContext(this.context, source, options);\n\t}\n\n\tgetInstalledPath(source: string, scope: \"user\" | \"project\"): string | undefined {\n\t\treturn getInstalledPathFromContext(this.context, source, scope);\n\t}\n\n\tasync resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths> {\n\t\treturn resolvePackages(this.context, onMissing);\n\t}\n\n\tasync resolveExtensionSources(\n\t\tsources: PackageSource[],\n\t\toptions?: ResolveExtensionSourcesOptions,\n\t): Promise<ResolvedPaths> {\n\t\treturn resolveExtensionSourcesFromContext(this.context, sources, options);\n\t}\n\n\tlistConfiguredPackages(): ConfiguredPackage[] {\n\t\treturn listConfiguredPackagesFromContext(this.context);\n\t}\n\n\tasync install(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait installFromContext(this.context, source, options);\n\t}\n\n\tasync installAndPersist(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait this.install(source, options);\n\t\tthis.addSourceToSettings(source, options);\n\t}\n\n\tasync remove(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait removeFromContext(this.context, source, options);\n\t}\n\n\tasync removeAndPersist(source: string, options?: { local?: boolean }): Promise<boolean> {\n\t\tawait this.remove(source, options);\n\t\treturn this.removeSourceFromSettings(source, options);\n\t}\n\n\tasync update(source?: string): Promise<void> {\n\t\tawait updateFromContext(this.context, source);\n\t}\n\n\tasync checkForAvailableUpdates(): Promise<PackageUpdate[]> {\n\t\treturn checkForAvailableUpdatesFromContext(this.context);\n\t}\n\n\tprivate parseSource(source: string): ParsedSource {\n\t\treturn parsePackageSource(source);\n\t}\n\n\tprivate getPackageIdentity(source: string, scope?: SourceScope): string {\n\t\treturn getPackageIdentityFromContext(this.context, source, scope);\n\t}\n\n\tprivate getGitInstallPath(source: GitSource, scope: SourceScope): string {\n\t\treturn getGitInstallPathFromContext(this.context, source, scope);\n\t}\n\n\tprivate async installParsedSource(parsed: ParsedSource, scope: SourceScope): Promise<void> {\n\t\tawait installParsedSourceFromContext(this.context, parsed, scope);\n\t}\n\n\tprivate async updateGit(source: GitSource, scope: SourceScope): Promise<void> {\n\t\tawait updateGitFromContext(this.context, source, scope);\n\t}\n\n\tprivate async gitHasAvailableUpdate(installedPath: string): Promise<boolean> {\n\t\treturn gitHasAvailableUpdateFromContext(this.context, installedPath);\n\t}\n\n\tprivate async refreshTemporaryGitSource(source: GitSource, sourceStr: string): Promise<void> {\n\t\tawait refreshTemporaryGitSourceFromContext(this.context, source, sourceStr);\n\t}\n\n\tprivate async getLocalGitUpdateTarget(installedPath: string): Promise<GitUpdateTargetInfo> {\n\t\treturn getLocalGitUpdateTargetFromContext(this.context, installedPath);\n\t}\n\n\tprivate getGlobalNpmRoot(): string {\n\t\treturn getGlobalNpmRootFromContext(this.context);\n\t}\n\n\tprivate async getLatestNpmVersion(packageSpec: string, range?: string): Promise<string> {\n\t\treturn getLatestNpmVersionFromContext(this.context, packageSpec, range);\n\t}\n\n\tprivate spawnCommand(command: string, args: string[], options?: { cwd?: string }): ChildProcess {\n\t\treturn spawnProcess(command, args, {\n\t\t\tcwd: options?.cwd,\n\t\t\tstdio: isStdoutTakenOver() ? [\"ignore\", 2, 2] : \"inherit\",\n\t\t\tenv: getCommandEnv(command),\n\t\t});\n\t}\n\n\tprivate spawnCaptureCommand(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; env?: Record<string, string> },\n\t): ChildProcessByStdio<null, Readable, Readable> {\n\t\treturn spawnProcess(command, args, {\n\t\t\tcwd: options?.cwd,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\tenv: getCommandEnv(command, options?.env),\n\t\t});\n\t}\n\n\tprivate runCommandCapture(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; timeoutMs?: number; env?: Record<string, string> },\n\t): Promise<string> {\n\t\treturn new Promise((resolvePromise, reject) => {\n\t\t\tconst child = this.spawnCaptureCommand(command, args, options);\n\t\t\tlet stdout = \"\";\n\t\t\tlet stderr = \"\";\n\t\t\tlet timedOut = false;\n\t\t\tconst timeout =\n\t\t\t\ttypeof options?.timeoutMs === \"number\"\n\t\t\t\t\t? setTimeout(() => {\n\t\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\t\tchild.kill();\n\t\t\t\t\t\t}, options.timeoutMs)\n\t\t\t\t\t: undefined;\n\n\t\t\tchild.stdout?.on(\"data\", (data) => {\n\t\t\t\tstdout += data.toString();\n\t\t\t});\n\t\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\t\tstderr += data.toString();\n\t\t\t});\n\t\t\tchild.once(\"error\", (error) => {\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\treject(error);\n\t\t\t});\n\t\t\tchild.once(\"close\", (code, signal) => {\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tif (timedOut) {\n\t\t\t\t\treject(new Error(`${command} ${args.join(\" \")} timed out after ${options?.timeoutMs}ms`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (code === 0) {\n\t\t\t\t\tresolvePromise(stdout.trim());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst exitStatus = code === null ? `signal ${signal ?? \"unknown\"}` : `code ${code}`;\n\t\t\t\treject(new Error(`${command} ${args.join(\" \")} failed with ${exitStatus}: ${stderr || stdout}`));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate runCommand(command: string, args: string[], options?: { cwd?: string }): Promise<void> {\n\t\treturn new Promise((resolvePromise, reject) => {\n\t\t\tconst child = this.spawnCommand(command, args, options);\n\t\t\tchild.on(\"error\", reject);\n\t\t\tchild.on(\"exit\", (code) => {\n\t\t\t\tif (code === 0) {\n\t\t\t\t\tresolvePromise();\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error(`${command} ${args.join(\" \")} failed with code ${code}`));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate runCommandSync(command: string, args: string[]): string {\n\t\tconst result = spawnProcessSync(command, args, {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\tencoding: \"utf-8\",\n\t\t\tenv: getCommandEnv(command),\n\t\t});\n\t\tif (result.error || result.status !== 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to run ${command} ${args.join(\" \")}: ${result.error?.message || result.stderr || result.stdout}`,\n\t\t\t);\n\t\t}\n\t\treturn (result.stdout || result.stderr || \"\").trim();\n\t}\n}\n"]}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/core/package-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ChildProcess, ChildProcessByStdio } from \"node:child_process\";\nimport type { Readable } from \"node:stream\";\nimport { spawnProcess, spawnProcessSync } from \"../utils/child-process.ts\";\nimport type { GitSource } from \"../utils/git.ts\";\nimport { resolvePath as resolveAbsolutePath } from \"../utils/paths.ts\";\nimport { isStdoutTakenOver } from \"./output-guard.ts\";\nimport { getCommandEnv } from \"./package-manager-env.ts\";\nimport {\n\tgetLocalGitUpdateTarget as getLocalGitUpdateTargetFromContext,\n\tgitHasAvailableUpdate as gitHasAvailableUpdateFromContext,\n\trefreshTemporaryGitSource as refreshTemporaryGitSourceFromContext,\n\tupdateGit as updateGitFromContext,\n} from \"./package-manager-git.ts\";\nimport {\n\tgetGlobalNpmRoot as getGlobalNpmRootFromContext,\n\tgetLatestNpmVersion as getLatestNpmVersionFromContext,\n} from \"./package-manager-npm.ts\";\nimport {\n\tcheckForAvailableUpdates as checkForAvailableUpdatesFromContext,\n\tinstall as installFromContext,\n\tinstallParsedSource as installParsedSourceFromContext,\n\tremove as removeFromContext,\n\tupdate as updateFromContext,\n} from \"./package-manager-operations.ts\";\nimport { getGitInstallPath as getGitInstallPathFromContext } from \"./package-manager-paths.ts\";\nimport {\n\tresolveExtensionSources as resolveExtensionSourcesFromContext,\n\tresolvePackages,\n} from \"./package-manager-resolver.ts\";\nimport {\n\taddSourceToSettings as addSourceToSettingsInContext,\n\tgetInstalledPath as getInstalledPathFromContext,\n\tlistConfiguredPackages as listConfiguredPackagesFromContext,\n\tremoveSourceFromSettings as removeSourceFromSettingsInContext,\n} from \"./package-manager-settings.ts\";\nimport {\n\tgetPackageIdentity as getPackageIdentityFromContext,\n\tparseSource as parsePackageSource,\n} from \"./package-manager-source.ts\";\nimport type {\n\tConfiguredPackage,\n\tGitUpdateTargetInfo,\n\tMissingSourceAction,\n\tPackageManager,\n\tPackageManagerContext,\n\tPackageManagerOptions,\n\tPackageUpdate,\n\tParsedSource,\n\tProgressCallback,\n\tResolvedPaths,\n\tResolveExtensionSourcesOptions,\n\tSourceScope,\n} from \"./package-manager-types.ts\";\nimport type { PackageSource } from \"./settings-manager.ts\";\n\nexport type {\n\tConfiguredPackage,\n\tMissingSourceAction,\n\tPackageManager,\n\tPackageManagerOptions,\n\tPackageUpdate,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedMcpServer,\n\tResolvedPaths,\n\tResolvedResource,\n\tResolveExtensionSourcesOptions,\n\tResourceConfigurationOrigin,\n} from \"./package-manager-types.ts\";\n\nexport class DefaultPackageManager implements PackageManager {\n\tprivate readonly context: PackageManagerContext;\n\n\tconstructor(options: PackageManagerOptions) {\n\t\tthis.context = {\n\t\t\tcwd: resolveAbsolutePath(options.cwd),\n\t\t\tagentDir: resolveAbsolutePath(options.agentDir),\n\t\t\tsettingsManager: options.settingsManager,\n\t\t\tbuiltinExtensions: options.builtinExtensions,\n\t\t};\n\t\tthis.context.driver = {\n\t\t\trunCommand: (command, args, runOptions) => this.runCommand(command, args, runOptions),\n\t\t\trunCommandCapture: (command, args, runOptions) => this.runCommandCapture(command, args, runOptions),\n\t\t\trunCommandSync: (command, args) => this.runCommandSync(command, args),\n\t\t\tinstallParsedSource: (parsed, scope) => this.installParsedSource(parsed, scope),\n\t\t\tupdateGit: (source, scope) => this.updateGit(source, scope),\n\t\t\tgitHasAvailableUpdate: (installedPath) => this.gitHasAvailableUpdate(installedPath),\n\t\t\trefreshTemporaryGitSource: (source, sourceStr) => this.refreshTemporaryGitSource(source, sourceStr),\n\t\t\tgetLocalGitUpdateTarget: (installedPath) => this.getLocalGitUpdateTarget(installedPath),\n\t\t\tgetGlobalNpmRoot: () => this.getGlobalNpmRoot(),\n\t\t\tparseSource: (source) => this.parseSource(source),\n\t\t\tgetPackageIdentity: (source, scope) => this.getPackageIdentity(source, scope),\n\t\t\tgetGitInstallPath: (source, scope) => this.getGitInstallPath(source, scope),\n\t\t\tgetLatestNpmVersion: (packageSpec, range) => this.getLatestNpmVersion(packageSpec, range),\n\t\t};\n\t}\n\n\tsetProgressCallback(callback: ProgressCallback | undefined): void {\n\t\tthis.context.progressCallback = callback;\n\t}\n\n\taddSourceToSettings(source: string, options?: { local?: boolean }): boolean {\n\t\treturn addSourceToSettingsInContext(this.context, source, options);\n\t}\n\n\tremoveSourceFromSettings(source: string, options?: { local?: boolean }): boolean {\n\t\treturn removeSourceFromSettingsInContext(this.context, source, options);\n\t}\n\n\tgetInstalledPath(source: string, scope: \"user\" | \"project\"): string | undefined {\n\t\treturn getInstalledPathFromContext(this.context, source, scope);\n\t}\n\n\tasync resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths> {\n\t\treturn resolvePackages(this.context, onMissing);\n\t}\n\n\tasync resolveExtensionSources(\n\t\tsources: PackageSource[],\n\t\toptions?: ResolveExtensionSourcesOptions,\n\t): Promise<ResolvedPaths> {\n\t\treturn resolveExtensionSourcesFromContext(this.context, sources, options);\n\t}\n\n\tlistConfiguredPackages(): ConfiguredPackage[] {\n\t\treturn listConfiguredPackagesFromContext(this.context);\n\t}\n\n\tasync install(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait installFromContext(this.context, source, options);\n\t}\n\n\tasync installAndPersist(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait this.install(source, options);\n\t\tthis.addSourceToSettings(source, options);\n\t}\n\n\tasync remove(source: string, options?: { local?: boolean }): Promise<void> {\n\t\tawait removeFromContext(this.context, source, options);\n\t}\n\n\tasync removeAndPersist(source: string, options?: { local?: boolean }): Promise<boolean> {\n\t\tawait this.remove(source, options);\n\t\treturn this.removeSourceFromSettings(source, options);\n\t}\n\n\tasync update(source?: string): Promise<void> {\n\t\tawait updateFromContext(this.context, source);\n\t}\n\n\tasync checkForAvailableUpdates(): Promise<PackageUpdate[]> {\n\t\treturn checkForAvailableUpdatesFromContext(this.context);\n\t}\n\n\tprivate parseSource(source: string): ParsedSource {\n\t\treturn parsePackageSource(source);\n\t}\n\n\tprivate getPackageIdentity(source: string, scope?: SourceScope): string {\n\t\treturn getPackageIdentityFromContext(this.context, source, scope);\n\t}\n\n\tprivate getGitInstallPath(source: GitSource, scope: SourceScope): string {\n\t\treturn getGitInstallPathFromContext(this.context, source, scope);\n\t}\n\n\tprivate async installParsedSource(parsed: ParsedSource, scope: SourceScope): Promise<void> {\n\t\tawait installParsedSourceFromContext(this.context, parsed, scope);\n\t}\n\n\tprivate async updateGit(source: GitSource, scope: SourceScope): Promise<void> {\n\t\tawait updateGitFromContext(this.context, source, scope);\n\t}\n\n\tprivate async gitHasAvailableUpdate(installedPath: string): Promise<boolean> {\n\t\treturn gitHasAvailableUpdateFromContext(this.context, installedPath);\n\t}\n\n\tprivate async refreshTemporaryGitSource(source: GitSource, sourceStr: string): Promise<void> {\n\t\tawait refreshTemporaryGitSourceFromContext(this.context, source, sourceStr);\n\t}\n\n\tprivate async getLocalGitUpdateTarget(installedPath: string): Promise<GitUpdateTargetInfo> {\n\t\treturn getLocalGitUpdateTargetFromContext(this.context, installedPath);\n\t}\n\n\tprivate getGlobalNpmRoot(): string {\n\t\treturn getGlobalNpmRootFromContext(this.context);\n\t}\n\n\tprivate async getLatestNpmVersion(packageSpec: string, range?: string): Promise<string> {\n\t\treturn getLatestNpmVersionFromContext(this.context, packageSpec, range);\n\t}\n\n\tprivate spawnCommand(command: string, args: string[], options?: { cwd?: string }): ChildProcess {\n\t\treturn spawnProcess(command, args, {\n\t\t\tcwd: options?.cwd,\n\t\t\tstdio: isStdoutTakenOver() ? [\"ignore\", 2, 2] : \"inherit\",\n\t\t\tenv: getCommandEnv(command),\n\t\t});\n\t}\n\n\tprivate spawnCaptureCommand(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; env?: Record<string, string> },\n\t): ChildProcessByStdio<null, Readable, Readable> {\n\t\treturn spawnProcess(command, args, {\n\t\t\tcwd: options?.cwd,\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\tenv: getCommandEnv(command, options?.env),\n\t\t});\n\t}\n\n\tprivate runCommandCapture(\n\t\tcommand: string,\n\t\targs: string[],\n\t\toptions?: { cwd?: string; timeoutMs?: number; env?: Record<string, string> },\n\t): Promise<string> {\n\t\treturn new Promise((resolvePromise, reject) => {\n\t\t\tconst child = this.spawnCaptureCommand(command, args, options);\n\t\t\tlet stdout = \"\";\n\t\t\tlet stderr = \"\";\n\t\t\tlet timedOut = false;\n\t\t\tconst timeout =\n\t\t\t\ttypeof options?.timeoutMs === \"number\"\n\t\t\t\t\t? setTimeout(() => {\n\t\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\t\tchild.kill();\n\t\t\t\t\t\t}, options.timeoutMs)\n\t\t\t\t\t: undefined;\n\n\t\t\tchild.stdout?.on(\"data\", (data) => {\n\t\t\t\tstdout += data.toString();\n\t\t\t});\n\t\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\t\tstderr += data.toString();\n\t\t\t});\n\t\t\tchild.once(\"error\", (error) => {\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\treject(error);\n\t\t\t});\n\t\t\tchild.once(\"close\", (code, signal) => {\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tif (timedOut) {\n\t\t\t\t\treject(new Error(`${command} ${args.join(\" \")} timed out after ${options?.timeoutMs}ms`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (code === 0) {\n\t\t\t\t\tresolvePromise(stdout.trim());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst exitStatus = code === null ? `signal ${signal ?? \"unknown\"}` : `code ${code}`;\n\t\t\t\treject(new Error(`${command} ${args.join(\" \")} failed with ${exitStatus}: ${stderr || stdout}`));\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate runCommand(command: string, args: string[], options?: { cwd?: string }): Promise<void> {\n\t\treturn new Promise((resolvePromise, reject) => {\n\t\t\tconst child = this.spawnCommand(command, args, options);\n\t\t\tchild.on(\"error\", reject);\n\t\t\tchild.on(\"exit\", (code) => {\n\t\t\t\tif (code === 0) {\n\t\t\t\t\tresolvePromise();\n\t\t\t\t} else {\n\t\t\t\t\treject(new Error(`${command} ${args.join(\" \")} failed with code ${code}`));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate runCommandSync(command: string, args: string[]): string {\n\t\tconst result = spawnProcessSync(command, args, {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t\tencoding: \"utf-8\",\n\t\t\tenv: getCommandEnv(command),\n\t\t});\n\t\tif (result.error || result.status !== 0) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to run ${command} ${args.join(\" \")}: ${result.error?.message || result.stderr || result.stdout}`,\n\t\t\t);\n\t\t}\n\t\treturn (result.stdout || result.stderr || \"\").trim();\n\t}\n}\n"]}
@@ -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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"}