@sammorrowdrums/mcpi 0.70.9 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (888) hide show
  1. package/CHANGELOG.md +1623 -1
  2. package/LICENSE +21 -0
  3. package/README.md +196 -141
  4. package/dist/bun/cli.d.ts.map +1 -1
  5. package/dist/bun/cli.js +4 -0
  6. package/dist/bun/cli.js.map +1 -1
  7. package/dist/bun/register-bedrock.d.ts.map +1 -1
  8. package/dist/bun/register-bedrock.js +1 -1
  9. package/dist/bun/register-bedrock.js.map +1 -1
  10. package/dist/bun/restore-sandbox-env.d.ts +17 -0
  11. package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
  12. package/dist/bun/restore-sandbox-env.js +36 -0
  13. package/dist/bun/restore-sandbox-env.js.map +1 -0
  14. package/dist/cli/args.d.ts +9 -2
  15. package/dist/cli/args.d.ts.map +1 -1
  16. package/dist/cli/args.js +116 -16
  17. package/dist/cli/args.js.map +1 -1
  18. package/dist/cli/auth-check.d.ts +19 -0
  19. package/dist/cli/auth-check.d.ts.map +1 -0
  20. package/dist/cli/auth-check.js +50 -0
  21. package/dist/cli/auth-check.js.map +1 -0
  22. package/dist/cli/auth-command.d.ts +24 -0
  23. package/dist/cli/auth-command.d.ts.map +1 -0
  24. package/dist/cli/auth-command.js +103 -0
  25. package/dist/cli/auth-command.js.map +1 -0
  26. package/dist/cli/config-selector.d.ts +6 -4
  27. package/dist/cli/config-selector.d.ts.map +1 -1
  28. package/dist/cli/config-selector.js +4 -4
  29. package/dist/cli/config-selector.js.map +1 -1
  30. package/dist/cli/credential-print.d.ts +13 -0
  31. package/dist/cli/credential-print.d.ts.map +1 -0
  32. package/dist/cli/credential-print.js +76 -0
  33. package/dist/cli/credential-print.js.map +1 -0
  34. package/dist/cli/experimental/auth.d.ts +16 -0
  35. package/dist/cli/experimental/auth.d.ts.map +1 -0
  36. package/dist/cli/experimental/auth.js +13 -0
  37. package/dist/cli/experimental/auth.js.map +1 -0
  38. package/dist/cli/experimental/cli.d.ts +6 -0
  39. package/dist/cli/experimental/cli.d.ts.map +1 -0
  40. package/dist/cli/experimental/cli.js +5 -0
  41. package/dist/cli/experimental/cli.js.map +1 -0
  42. package/dist/cli/experimental/command-options.d.ts +17 -0
  43. package/dist/cli/experimental/command-options.d.ts.map +1 -0
  44. package/dist/cli/experimental/command-options.js +35 -0
  45. package/dist/cli/experimental/command-options.js.map +1 -0
  46. package/dist/cli/experimental/command.d.ts +63 -0
  47. package/dist/cli/experimental/command.d.ts.map +1 -0
  48. package/dist/cli/experimental/command.js +130 -0
  49. package/dist/cli/experimental/command.js.map +1 -0
  50. package/dist/cli/experimental/commands/client.d.ts +13 -0
  51. package/dist/cli/experimental/commands/client.d.ts.map +1 -0
  52. package/dist/cli/experimental/commands/client.js +25 -0
  53. package/dist/cli/experimental/commands/client.js.map +1 -0
  54. package/dist/cli/experimental/commands/mcpi.d.ts +15 -0
  55. package/dist/cli/experimental/commands/mcpi.d.ts.map +1 -0
  56. package/dist/cli/experimental/commands/mcpi.js +28 -0
  57. package/dist/cli/experimental/commands/mcpi.js.map +1 -0
  58. package/dist/cli/experimental/commands/server.d.ts +13 -0
  59. package/dist/cli/experimental/commands/server.d.ts.map +1 -0
  60. package/dist/cli/experimental/commands/server.js +25 -0
  61. package/dist/cli/experimental/commands/server.js.map +1 -0
  62. package/dist/cli/experimental/transport-address.d.ts +10 -0
  63. package/dist/cli/experimental/transport-address.d.ts.map +1 -0
  64. package/dist/cli/experimental/transport-address.js +38 -0
  65. package/dist/cli/experimental/transport-address.js.map +1 -0
  66. package/dist/cli/file-processor.d.ts.map +1 -1
  67. package/dist/cli/file-processor.js +13 -26
  68. package/dist/cli/file-processor.js.map +1 -1
  69. package/dist/cli/initial-message.d.ts +1 -1
  70. package/dist/cli/initial-message.d.ts.map +1 -1
  71. package/dist/cli/initial-message.js.map +1 -1
  72. package/dist/cli/list-models.d.ts +2 -2
  73. package/dist/cli/list-models.d.ts.map +1 -1
  74. package/dist/cli/list-models.js +4 -4
  75. package/dist/cli/list-models.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts +10 -0
  77. package/dist/cli/project-trust.d.ts.map +1 -0
  78. package/dist/cli/project-trust.js +48 -0
  79. package/dist/cli/project-trust.js.map +1 -0
  80. package/dist/cli/session-picker.d.ts +3 -2
  81. package/dist/cli/session-picker.d.ts.map +1 -1
  82. package/dist/cli/session-picker.js +5 -4
  83. package/dist/cli/session-picker.js.map +1 -1
  84. package/dist/cli/startup-ui.d.ts +20 -0
  85. package/dist/cli/startup-ui.d.ts.map +1 -0
  86. package/dist/cli/startup-ui.js +184 -0
  87. package/dist/cli/startup-ui.js.map +1 -0
  88. package/dist/cli.d.ts.map +1 -1
  89. package/dist/cli.js +6 -3
  90. package/dist/cli.js.map +1 -1
  91. package/dist/client/index.d.ts +3 -0
  92. package/dist/client/index.d.ts.map +1 -0
  93. package/dist/client/index.js +3 -0
  94. package/dist/client/index.js.map +1 -0
  95. package/dist/client/remote-session.d.ts +53 -0
  96. package/dist/client/remote-session.d.ts.map +1 -0
  97. package/dist/client/remote-session.js +340 -0
  98. package/dist/client/remote-session.js.map +1 -0
  99. package/dist/client/transcript.d.ts +12 -0
  100. package/dist/client/transcript.d.ts.map +1 -0
  101. package/dist/client/transcript.js +98 -0
  102. package/dist/client/transcript.js.map +1 -0
  103. package/dist/config.d.ts +34 -12
  104. package/dist/config.d.ts.map +1 -1
  105. package/dist/config.js +312 -61
  106. package/dist/config.js.map +1 -1
  107. package/dist/core/agent-session-runtime.d.ts +11 -9
  108. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  109. package/dist/core/agent-session-runtime.js +16 -7
  110. package/dist/core/agent-session-runtime.js.map +1 -1
  111. package/dist/core/agent-session-services.d.ts +13 -12
  112. package/dist/core/agent-session-services.d.ts.map +1 -1
  113. package/dist/core/agent-session-services.js +34 -14
  114. package/dist/core/agent-session-services.js.map +1 -1
  115. package/dist/core/agent-session.d.ts +110 -53
  116. package/dist/core/agent-session.d.ts.map +1 -1
  117. package/dist/core/agent-session.js +658 -488
  118. package/dist/core/agent-session.js.map +1 -1
  119. package/dist/core/auth-guidance.d.ts.map +1 -1
  120. package/dist/core/auth-guidance.js.map +1 -1
  121. package/dist/core/auth-storage.d.ts +35 -104
  122. package/dist/core/auth-storage.d.ts.map +1 -1
  123. package/dist/core/auth-storage.js +272 -286
  124. package/dist/core/auth-storage.js.map +1 -1
  125. package/dist/core/bash-executor.d.ts +1 -1
  126. package/dist/core/bash-executor.d.ts.map +1 -1
  127. package/dist/core/bash-executor.js +11 -8
  128. package/dist/core/bash-executor.js.map +1 -1
  129. package/dist/core/cache-stats.d.ts +49 -0
  130. package/dist/core/cache-stats.d.ts.map +1 -0
  131. package/dist/core/cache-stats.js +101 -0
  132. package/dist/core/cache-stats.js.map +1 -0
  133. package/dist/core/compaction/branch-summarization.d.ts +16 -6
  134. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  135. package/dist/core/compaction/branch-summarization.js +13 -10
  136. package/dist/core/compaction/branch-summarization.js.map +1 -1
  137. package/dist/core/compaction/compaction.d.ts +25 -9
  138. package/dist/core/compaction/compaction.d.ts.map +1 -1
  139. package/dist/core/compaction/compaction.js +163 -133
  140. package/dist/core/compaction/compaction.js.map +1 -1
  141. package/dist/core/compaction/index.d.ts +3 -3
  142. package/dist/core/compaction/index.d.ts.map +1 -1
  143. package/dist/core/compaction/index.js.map +1 -1
  144. package/dist/core/compaction/utils.d.ts +3 -3
  145. package/dist/core/compaction/utils.d.ts.map +1 -1
  146. package/dist/core/compaction/utils.js +7 -18
  147. package/dist/core/compaction/utils.js.map +1 -1
  148. package/dist/core/defaults.d.ts +1 -1
  149. package/dist/core/defaults.d.ts.map +1 -1
  150. package/dist/core/defaults.js.map +1 -1
  151. package/dist/core/env-overlay.d.ts +21 -0
  152. package/dist/core/env-overlay.d.ts.map +1 -0
  153. package/dist/core/env-overlay.js +25 -0
  154. package/dist/core/env-overlay.js.map +1 -0
  155. package/dist/core/exec.d.ts +8 -1
  156. package/dist/core/exec.d.ts.map +1 -1
  157. package/dist/core/exec.js +7 -1
  158. package/dist/core/exec.js.map +1 -1
  159. package/dist/core/experimental.d.ts +6 -0
  160. package/dist/core/experimental.d.ts.map +1 -0
  161. package/dist/core/experimental.js +8 -0
  162. package/dist/core/experimental.js.map +1 -0
  163. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  164. package/dist/core/export-html/ansi-to-html.js +1 -1
  165. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  166. package/dist/core/export-html/index.d.ts +2 -2
  167. package/dist/core/export-html/index.d.ts.map +1 -1
  168. package/dist/core/export-html/index.js +8 -6
  169. package/dist/core/export-html/index.js.map +1 -1
  170. package/dist/core/export-html/template.css +53 -4
  171. package/dist/core/export-html/template.js +129 -35
  172. package/dist/core/export-html/tool-renderer.d.ts +2 -8
  173. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  174. package/dist/core/export-html/tool-renderer.js +15 -2
  175. package/dist/core/export-html/tool-renderer.js.map +1 -1
  176. package/dist/core/export-html/vendor/marked.min.js +75 -3
  177. package/dist/core/extensions/index.d.ts +8 -8
  178. package/dist/core/extensions/index.d.ts.map +1 -1
  179. package/dist/core/extensions/index.js.map +1 -1
  180. package/dist/core/extensions/loader.d.ts +5 -7
  181. package/dist/core/extensions/loader.d.ts.map +1 -1
  182. package/dist/core/extensions/loader.js +160 -87
  183. package/dist/core/extensions/loader.js.map +1 -1
  184. package/dist/core/extensions/runner.d.ts +32 -13
  185. package/dist/core/extensions/runner.d.ts.map +1 -1
  186. package/dist/core/extensions/runner.js +192 -4
  187. package/dist/core/extensions/runner.js.map +1 -1
  188. package/dist/core/extensions/types.d.ts +217 -69
  189. package/dist/core/extensions/types.d.ts.map +1 -1
  190. package/dist/core/extensions/types.js.map +1 -1
  191. package/dist/core/extensions/wrapper.d.ts +3 -3
  192. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  193. package/dist/core/extensions/wrapper.js +22 -3
  194. package/dist/core/extensions/wrapper.js.map +1 -1
  195. package/dist/core/footer-data-provider.d.ts +12 -0
  196. package/dist/core/footer-data-provider.d.ts.map +1 -1
  197. package/dist/core/footer-data-provider.js +30 -2
  198. package/dist/core/footer-data-provider.js.map +1 -1
  199. package/dist/core/http-dispatcher.d.ts +22 -0
  200. package/dist/core/http-dispatcher.d.ts.map +1 -0
  201. package/dist/core/http-dispatcher.js +96 -0
  202. package/dist/core/http-dispatcher.js.map +1 -0
  203. package/dist/core/index.d.ts +9 -8
  204. package/dist/core/index.d.ts.map +1 -1
  205. package/dist/core/index.js +1 -0
  206. package/dist/core/index.js.map +1 -1
  207. package/dist/core/keybindings.d.ts +79 -10
  208. package/dist/core/keybindings.d.ts.map +1 -1
  209. package/dist/core/keybindings.js +11 -10
  210. package/dist/core/keybindings.js.map +1 -1
  211. package/dist/core/messages.d.ts +2 -2
  212. package/dist/core/messages.d.ts.map +1 -1
  213. package/dist/core/messages.js.map +1 -1
  214. package/dist/core/model-config.d.ts +571 -0
  215. package/dist/core/model-config.d.ts.map +1 -0
  216. package/dist/core/model-config.js +254 -0
  217. package/dist/core/model-config.js.map +1 -0
  218. package/dist/core/model-registry.d.ts +23 -110
  219. package/dist/core/model-registry.d.ts.map +1 -1
  220. package/dist/core/model-registry.js +65 -616
  221. package/dist/core/model-registry.js.map +1 -1
  222. package/dist/core/model-resolver.d.ts +20 -7
  223. package/dist/core/model-resolver.d.ts.map +1 -1
  224. package/dist/core/model-resolver.js +139 -43
  225. package/dist/core/model-resolver.js.map +1 -1
  226. package/dist/core/model-runtime.d.ts +100 -0
  227. package/dist/core/model-runtime.d.ts.map +1 -0
  228. package/dist/core/model-runtime.js +602 -0
  229. package/dist/core/model-runtime.js.map +1 -0
  230. package/dist/core/models-store.d.ts +22 -0
  231. package/dist/core/models-store.d.ts.map +1 -0
  232. package/dist/core/models-store.js +113 -0
  233. package/dist/core/models-store.js.map +1 -0
  234. package/dist/core/output-guard.d.ts +1 -0
  235. package/dist/core/output-guard.d.ts.map +1 -1
  236. package/dist/core/output-guard.js +52 -22
  237. package/dist/core/output-guard.js.map +1 -1
  238. package/dist/core/package-manager.d.ts +21 -4
  239. package/dist/core/package-manager.d.ts.map +1 -1
  240. package/dist/core/package-manager.js +428 -191
  241. package/dist/core/package-manager.js.map +1 -1
  242. package/dist/core/pi-manifest.d.ts +8 -0
  243. package/dist/core/pi-manifest.d.ts.map +1 -0
  244. package/dist/core/pi-manifest.js +25 -0
  245. package/dist/core/pi-manifest.js.map +1 -0
  246. package/dist/core/project-trust.d.ts +15 -0
  247. package/dist/core/project-trust.d.ts.map +1 -0
  248. package/dist/core/project-trust.js +59 -0
  249. package/dist/core/project-trust.js.map +1 -0
  250. package/dist/core/prompt-templates.d.ts +4 -2
  251. package/dist/core/prompt-templates.d.ts.map +1 -1
  252. package/dist/core/prompt-templates.js +36 -50
  253. package/dist/core/prompt-templates.js.map +1 -1
  254. package/dist/core/provider-attribution.d.ts +4 -0
  255. package/dist/core/provider-attribution.d.ts.map +1 -0
  256. package/dist/core/provider-attribution.js +72 -0
  257. package/dist/core/provider-attribution.js.map +1 -0
  258. package/dist/core/provider-composer.d.ts +58 -0
  259. package/dist/core/provider-composer.d.ts.map +1 -0
  260. package/dist/core/provider-composer.js +396 -0
  261. package/dist/core/provider-composer.js.map +1 -0
  262. package/dist/core/radius.d.ts +2 -0
  263. package/dist/core/radius.d.ts.map +1 -0
  264. package/dist/core/radius.js +2 -0
  265. package/dist/core/radius.js.map +1 -0
  266. package/dist/core/remote-catalog-provider.d.ts +17 -0
  267. package/dist/core/remote-catalog-provider.d.ts.map +1 -0
  268. package/dist/core/remote-catalog-provider.js +137 -0
  269. package/dist/core/remote-catalog-provider.js.map +1 -0
  270. package/dist/core/resolve-config-value.d.ts +13 -6
  271. package/dist/core/resolve-config-value.d.ts.map +1 -1
  272. package/dist/core/resolve-config-value.js +143 -22
  273. package/dist/core/resolve-config-value.js.map +1 -1
  274. package/dist/core/resource-loader.d.ts +40 -12
  275. package/dist/core/resource-loader.d.ts.map +1 -1
  276. package/dist/core/resource-loader.js +236 -87
  277. package/dist/core/resource-loader.js.map +1 -1
  278. package/dist/core/runtime-credentials.d.ts +15 -0
  279. package/dist/core/runtime-credentials.d.ts.map +1 -0
  280. package/dist/core/runtime-credentials.js +39 -0
  281. package/dist/core/runtime-credentials.js.map +1 -0
  282. package/dist/core/sdk.d.ts +26 -25
  283. package/dist/core/sdk.d.ts.map +1 -1
  284. package/dist/core/sdk.js +56 -49
  285. package/dist/core/sdk.js.map +1 -1
  286. package/dist/core/session-manager.d.ts +42 -19
  287. package/dist/core/session-manager.d.ts.map +1 -1
  288. package/dist/core/session-manager.js +454 -223
  289. package/dist/core/session-manager.js.map +1 -1
  290. package/dist/core/settings-manager.d.ts +77 -8
  291. package/dist/core/settings-manager.d.ts.map +1 -1
  292. package/dist/core/settings-manager.js +255 -67
  293. package/dist/core/settings-manager.js.map +1 -1
  294. package/dist/core/skills.d.ts +2 -2
  295. package/dist/core/skills.d.ts.map +1 -1
  296. package/dist/core/skills.js +12 -34
  297. package/dist/core/skills.js.map +1 -1
  298. package/dist/core/slash-commands.d.ts +2 -1
  299. package/dist/core/slash-commands.d.ts.map +1 -1
  300. package/dist/core/slash-commands.js +4 -3
  301. package/dist/core/slash-commands.js.map +1 -1
  302. package/dist/core/source-info.d.ts +1 -1
  303. package/dist/core/source-info.d.ts.map +1 -1
  304. package/dist/core/source-info.js.map +1 -1
  305. package/dist/core/system-prompt.d.ts +1 -1
  306. package/dist/core/system-prompt.d.ts.map +1 -1
  307. package/dist/core/system-prompt.js +15 -25
  308. package/dist/core/system-prompt.js.map +1 -1
  309. package/dist/core/telemetry.d.ts +7 -1
  310. package/dist/core/telemetry.d.ts.map +1 -1
  311. package/dist/core/telemetry.js +7 -1
  312. package/dist/core/telemetry.js.map +1 -1
  313. package/dist/core/timings.d.ts +5 -3
  314. package/dist/core/timings.d.ts.map +1 -1
  315. package/dist/core/timings.js +26 -16
  316. package/dist/core/timings.js.map +1 -1
  317. package/dist/core/tools/bash.d.ts +11 -7
  318. package/dist/core/tools/bash.d.ts.map +1 -1
  319. package/dist/core/tools/bash.js +220 -188
  320. package/dist/core/tools/bash.js.map +1 -1
  321. package/dist/core/tools/edit-diff.d.ts +26 -5
  322. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  323. package/dist/core/tools/edit-diff.js +110 -23
  324. package/dist/core/tools/edit-diff.js.map +1 -1
  325. package/dist/core/tools/edit.d.ts +11 -5
  326. package/dist/core/tools/edit.d.ts.map +1 -1
  327. package/dist/core/tools/edit.js +67 -100
  328. package/dist/core/tools/edit.js.map +1 -1
  329. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  330. package/dist/core/tools/file-mutation-queue.js +27 -12
  331. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  332. package/dist/core/tools/find.d.ts +10 -3
  333. package/dist/core/tools/find.d.ts.map +1 -1
  334. package/dist/core/tools/find.js +41 -37
  335. package/dist/core/tools/find.js.map +1 -1
  336. package/dist/core/tools/grep.d.ts +7 -3
  337. package/dist/core/tools/grep.d.ts.map +1 -1
  338. package/dist/core/tools/grep.js +12 -8
  339. package/dist/core/tools/grep.js.map +1 -1
  340. package/dist/core/tools/index.d.ts +18 -18
  341. package/dist/core/tools/index.d.ts.map +1 -1
  342. package/dist/core/tools/index.js.map +1 -1
  343. package/dist/core/tools/ls.d.ts +7 -3
  344. package/dist/core/tools/ls.d.ts.map +1 -1
  345. package/dist/core/tools/ls.js +17 -15
  346. package/dist/core/tools/ls.js.map +1 -1
  347. package/dist/core/tools/output-accumulator.d.ts +52 -0
  348. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  349. package/dist/core/tools/output-accumulator.js +184 -0
  350. package/dist/core/tools/output-accumulator.js.map +1 -0
  351. package/dist/core/tools/path-utils.d.ts +2 -0
  352. package/dist/core/tools/path-utils.d.ts.map +1 -1
  353. package/dist/core/tools/path-utils.js +39 -21
  354. package/dist/core/tools/path-utils.js.map +1 -1
  355. package/dist/core/tools/read.d.ts +7 -3
  356. package/dist/core/tools/read.d.ts.map +1 -1
  357. package/dist/core/tools/read.js +101 -51
  358. package/dist/core/tools/read.js.map +1 -1
  359. package/dist/core/tools/render-utils.d.ts +5 -2
  360. package/dist/core/tools/render-utils.d.ts.map +1 -1
  361. package/dist/core/tools/render-utils.js +18 -2
  362. package/dist/core/tools/render-utils.js.map +1 -1
  363. package/dist/core/tools/tool-definition-wrapper.d.ts +2 -2
  364. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  365. package/dist/core/tools/tool-definition-wrapper.js +3 -3
  366. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  367. package/dist/core/tools/truncate.d.ts.map +1 -1
  368. package/dist/core/tools/truncate.js +12 -2
  369. package/dist/core/tools/truncate.js.map +1 -1
  370. package/dist/core/tools/write.d.ts +6 -2
  371. package/dist/core/tools/write.d.ts.map +1 -1
  372. package/dist/core/tools/write.js +35 -45
  373. package/dist/core/tools/write.js.map +1 -1
  374. package/dist/core/trust-manager.d.ts +36 -0
  375. package/dist/core/trust-manager.d.ts.map +1 -0
  376. package/dist/core/trust-manager.js +202 -0
  377. package/dist/core/trust-manager.js.map +1 -0
  378. package/dist/core/usage-totals.d.ts +19 -0
  379. package/dist/core/usage-totals.d.ts.map +1 -0
  380. package/dist/core/usage-totals.js +52 -0
  381. package/dist/core/usage-totals.js.map +1 -0
  382. package/dist/extensions/index.d.ts +3 -0
  383. package/dist/extensions/index.d.ts.map +1 -0
  384. package/dist/extensions/index.js +3 -0
  385. package/dist/extensions/index.js.map +1 -0
  386. package/dist/extensions/llama/client.d.ts +61 -0
  387. package/dist/extensions/llama/client.d.ts.map +1 -0
  388. package/dist/extensions/llama/client.js +302 -0
  389. package/dist/extensions/llama/client.js.map +1 -0
  390. package/dist/extensions/llama/huggingface.d.ts +23 -0
  391. package/dist/extensions/llama/huggingface.d.ts.map +1 -0
  392. package/dist/extensions/llama/huggingface.js +141 -0
  393. package/dist/extensions/llama/huggingface.js.map +1 -0
  394. package/dist/extensions/llama/index.d.ts +3 -0
  395. package/dist/extensions/llama/index.d.ts.map +1 -0
  396. package/dist/extensions/llama/index.js +217 -0
  397. package/dist/extensions/llama/index.js.map +1 -0
  398. package/dist/extensions/llama/provider.d.ts +10 -0
  399. package/dist/extensions/llama/provider.d.ts.map +1 -0
  400. package/dist/extensions/llama/provider.js +121 -0
  401. package/dist/extensions/llama/provider.js.map +1 -0
  402. package/dist/extensions/llama/ui.d.ts +42 -0
  403. package/dist/extensions/llama/ui.d.ts.map +1 -0
  404. package/dist/extensions/llama/ui.js +416 -0
  405. package/dist/extensions/llama/ui.js.map +1 -0
  406. package/dist/index.d.ts +34 -27
  407. package/dist/index.d.ts.map +1 -1
  408. package/dist/index.js +11 -5
  409. package/dist/index.js.map +1 -1
  410. package/dist/main.d.ts +2 -2
  411. package/dist/main.d.ts.map +1 -1
  412. package/dist/main.js +311 -101
  413. package/dist/main.js.map +1 -1
  414. package/dist/migrations.d.ts +5 -5
  415. package/dist/migrations.d.ts.map +1 -1
  416. package/dist/migrations.js +10 -10
  417. package/dist/migrations.js.map +1 -1
  418. package/dist/modes/index.d.ts +6 -5
  419. package/dist/modes/index.d.ts.map +1 -1
  420. package/dist/modes/index.js.map +1 -1
  421. package/dist/modes/interactive/components/armin.d.ts +1 -1
  422. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  423. package/dist/modes/interactive/components/armin.js.map +1 -1
  424. package/dist/modes/interactive/components/assistant-message.d.ts +8 -3
  425. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  426. package/dist/modes/interactive/components/assistant-message.js +55 -26
  427. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  428. package/dist/modes/interactive/components/bash-execution.d.ts +2 -2
  429. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  430. package/dist/modes/interactive/components/bash-execution.js +4 -4
  431. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  432. package/dist/modes/interactive/components/bordered-loader.d.ts +2 -2
  433. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  434. package/dist/modes/interactive/components/bordered-loader.js +1 -1
  435. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  436. package/dist/modes/interactive/components/branch-summary-message.d.ts +2 -2
  437. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  438. package/dist/modes/interactive/components/branch-summary-message.js +1 -1
  439. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  440. package/dist/modes/interactive/components/compaction-summary-message.d.ts +2 -2
  441. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  442. package/dist/modes/interactive/components/compaction-summary-message.js +1 -1
  443. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  444. package/dist/modes/interactive/components/config-selector.d.ts +37 -6
  445. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  446. package/dist/modes/interactive/components/config-selector.js +318 -34
  447. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  448. package/dist/modes/interactive/components/countdown-timer.d.ts +3 -3
  449. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  450. package/dist/modes/interactive/components/countdown-timer.js +2 -2
  451. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  452. package/dist/modes/interactive/components/custom-editor.d.ts +2 -2
  453. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  454. package/dist/modes/interactive/components/custom-editor.js +9 -2
  455. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  456. package/dist/modes/interactive/components/custom-entry.d.ts +19 -0
  457. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -0
  458. package/dist/modes/interactive/components/custom-entry.js +52 -0
  459. package/dist/modes/interactive/components/custom-entry.js.map +1 -0
  460. package/dist/modes/interactive/components/custom-message.d.ts +6 -4
  461. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  462. package/dist/modes/interactive/components/custom-message.js +11 -3
  463. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  464. package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
  465. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  466. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  467. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  468. package/dist/modes/interactive/components/diff.js.map +1 -1
  469. package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
  470. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  471. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  472. package/dist/modes/interactive/components/extension-editor.d.ts +5 -4
  473. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  474. package/dist/modes/interactive/components/extension-editor.js +19 -32
  475. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  476. package/dist/modes/interactive/components/extension-input.d.ts +1 -1
  477. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  478. package/dist/modes/interactive/components/extension-input.js +1 -1
  479. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  480. package/dist/modes/interactive/components/extension-selector.d.ts +3 -1
  481. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  482. package/dist/modes/interactive/components/extension-selector.js +7 -2
  483. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  484. package/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  485. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  486. package/dist/modes/interactive/components/first-time-setup.js +103 -0
  487. package/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  488. package/dist/modes/interactive/components/footer.d.ts +9 -4
  489. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  490. package/dist/modes/interactive/components/footer.js +52 -31
  491. package/dist/modes/interactive/components/footer.js.map +1 -1
  492. package/dist/modes/interactive/components/index.d.ts +33 -31
  493. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  494. package/dist/modes/interactive/components/index.js +2 -0
  495. package/dist/modes/interactive/components/index.js.map +1 -1
  496. package/dist/modes/interactive/components/keybinding-hints.d.ts +6 -1
  497. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  498. package/dist/modes/interactive/components/keybinding-hints.js +20 -6
  499. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  500. package/dist/modes/interactive/components/login-dialog.d.ts +12 -6
  501. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  502. package/dist/modes/interactive/components/login-dialog.js +46 -17
  503. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  504. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  505. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  506. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  507. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  508. package/dist/modes/interactive/components/mermaid.d.ts +11 -0
  509. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
  510. package/dist/modes/interactive/components/mermaid.js +75 -0
  511. package/dist/modes/interactive/components/mermaid.js.map +1 -0
  512. package/dist/modes/interactive/components/model-selector.d.ts +13 -6
  513. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  514. package/dist/modes/interactive/components/model-selector.js +92 -44
  515. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  516. package/dist/modes/interactive/components/oauth-selector.d.ts +7 -4
  517. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/oauth-selector.js +32 -28
  519. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  520. package/dist/modes/interactive/components/scoped-models-selector.d.ts +5 -1
  521. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  522. package/dist/modes/interactive/components/scoped-models-selector.js +52 -14
  523. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  524. package/dist/modes/interactive/components/session-selector-search.d.ts +1 -1
  525. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  526. package/dist/modes/interactive/components/session-selector-search.js +1 -1
  527. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  528. package/dist/modes/interactive/components/session-selector.d.ts +4 -5
  529. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  530. package/dist/modes/interactive/components/session-selector.js +18 -16
  531. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  532. package/dist/modes/interactive/components/settings-selector.d.ts +23 -2
  533. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  534. package/dist/modes/interactive/components/settings-selector.js +322 -22
  535. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  536. package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
  537. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  538. package/dist/modes/interactive/components/show-images-selector.js +1 -1
  539. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  540. package/dist/modes/interactive/components/skill-invocation-message.d.ts +2 -2
  541. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  542. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  543. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  544. package/dist/modes/interactive/components/status-indicator.d.ts +28 -0
  545. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -0
  546. package/dist/modes/interactive/components/status-indicator.js +60 -0
  547. package/dist/modes/interactive/components/status-indicator.js.map +1 -0
  548. package/dist/modes/interactive/components/theme-selector.d.ts +1 -1
  549. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  550. package/dist/modes/interactive/components/theme-selector.js +1 -1
  551. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  552. package/dist/modes/interactive/components/thinking-selector.d.ts +2 -2
  553. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  554. package/dist/modes/interactive/components/thinking-selector.js +3 -2
  555. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  556. package/dist/modes/interactive/components/tool-execution.d.ts +2 -2
  557. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  558. package/dist/modes/interactive/components/tool-execution.js +33 -2
  559. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  560. package/dist/modes/interactive/components/tree-selector.d.ts +7 -2
  561. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  562. package/dist/modes/interactive/components/tree-selector.js +179 -26
  563. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  564. package/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  565. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  566. package/dist/modes/interactive/components/trust-selector.js +91 -0
  567. package/dist/modes/interactive/components/trust-selector.js.map +1 -0
  568. package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
  569. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  570. package/dist/modes/interactive/components/user-message-selector.js +1 -1
  571. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  572. package/dist/modes/interactive/components/user-message.d.ts +9 -3
  573. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  574. package/dist/modes/interactive/components/user-message.js +26 -6
  575. package/dist/modes/interactive/components/user-message.js.map +1 -1
  576. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  577. package/dist/modes/interactive/components/visual-truncate.js +1 -1
  578. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  579. package/dist/modes/interactive/external-editor.d.ts +12 -0
  580. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  581. package/dist/modes/interactive/external-editor.js +37 -0
  582. package/dist/modes/interactive/external-editor.js.map +1 -0
  583. package/dist/modes/interactive/interactive-mode.d.ts +104 -26
  584. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  585. package/dist/modes/interactive/interactive-mode.js +1565 -692
  586. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  587. package/dist/modes/interactive/model-catalog-refresh.d.ts +7 -0
  588. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  589. package/dist/modes/interactive/model-catalog-refresh.js +34 -0
  590. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
  591. package/dist/modes/interactive/model-search.d.ts +12 -0
  592. package/dist/modes/interactive/model-search.d.ts.map +1 -0
  593. package/dist/modes/interactive/model-search.js +15 -0
  594. package/dist/modes/interactive/model-search.js.map +1 -0
  595. package/dist/modes/interactive/theme/dark.json +10 -5
  596. package/dist/modes/interactive/theme/light.json +10 -5
  597. package/dist/modes/interactive/theme/theme-controller.d.ts +40 -0
  598. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  599. package/dist/modes/interactive/theme/theme-controller.js +125 -0
  600. package/dist/modes/interactive/theme/theme-controller.js.map +1 -0
  601. package/dist/modes/interactive/theme/theme-schema.json +22 -5
  602. package/dist/modes/interactive/theme/theme.d.ts +48 -7
  603. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  604. package/dist/modes/interactive/theme/theme.js +194 -76
  605. package/dist/modes/interactive/theme/theme.js.map +1 -1
  606. package/dist/modes/json-event.d.ts +31 -0
  607. package/dist/modes/json-event.d.ts.map +1 -0
  608. package/dist/modes/json-event.js +15 -0
  609. package/dist/modes/json-event.js.map +1 -0
  610. package/dist/modes/print-mode.d.ts +3 -3
  611. package/dist/modes/print-mode.d.ts.map +1 -1
  612. package/dist/modes/print-mode.js +16 -5
  613. package/dist/modes/print-mode.js.map +1 -1
  614. package/dist/modes/rpc/rpc-client.d.ts +33 -10
  615. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  616. package/dist/modes/rpc/rpc-client.js +89 -11
  617. package/dist/modes/rpc/rpc-client.js.map +1 -1
  618. package/dist/modes/rpc/rpc-mode.d.ts +2 -2
  619. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  620. package/dist/modes/rpc/rpc-mode.js +69 -9
  621. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  622. package/dist/modes/rpc/rpc-types.d.ts +43 -5
  623. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  624. package/dist/modes/rpc/rpc-types.js.map +1 -1
  625. package/dist/package-manager-cli.d.ts +6 -2
  626. package/dist/package-manager-cli.d.ts.map +1 -1
  627. package/dist/package-manager-cli.js +527 -25
  628. package/dist/package-manager-cli.js.map +1 -1
  629. package/dist/path-migration.d.ts +13 -0
  630. package/dist/path-migration.d.ts.map +1 -0
  631. package/dist/path-migration.js +52 -0
  632. package/dist/path-migration.js.map +1 -0
  633. package/dist/rpc-entry.d.ts +3 -0
  634. package/dist/rpc-entry.d.ts.map +1 -0
  635. package/dist/rpc-entry.js +11 -0
  636. package/dist/rpc-entry.js.map +1 -0
  637. package/dist/server/create-harness.d.ts +26 -0
  638. package/dist/server/create-harness.d.ts.map +1 -0
  639. package/dist/server/create-harness.js +106 -0
  640. package/dist/server/create-harness.js.map +1 -0
  641. package/dist/utils/abort.d.ts +5 -0
  642. package/dist/utils/abort.d.ts.map +1 -0
  643. package/dist/utils/abort.js +48 -0
  644. package/dist/utils/abort.js.map +1 -0
  645. package/dist/utils/ansi.d.ts +2 -0
  646. package/dist/utils/ansi.d.ts.map +1 -0
  647. package/dist/utils/ansi.js +52 -0
  648. package/dist/utils/ansi.js.map +1 -0
  649. package/dist/utils/changelog.d.ts +2 -1
  650. package/dist/utils/changelog.d.ts.map +1 -1
  651. package/dist/utils/changelog.js +85 -0
  652. package/dist/utils/changelog.js.map +1 -1
  653. package/dist/utils/child-process.d.ts +12 -5
  654. package/dist/utils/child-process.d.ts.map +1 -1
  655. package/dist/utils/child-process.js +33 -5
  656. package/dist/utils/child-process.js.map +1 -1
  657. package/dist/utils/clipboard-image.d.ts.map +1 -1
  658. package/dist/utils/clipboard-image.js +4 -4
  659. package/dist/utils/clipboard-image.js.map +1 -1
  660. package/dist/utils/clipboard-native.d.ts +4 -1
  661. package/dist/utils/clipboard-native.d.ts.map +1 -1
  662. package/dist/utils/clipboard-native.js +14 -8
  663. package/dist/utils/clipboard-native.js.map +1 -1
  664. package/dist/utils/clipboard.d.ts +2 -0
  665. package/dist/utils/clipboard.d.ts.map +1 -1
  666. package/dist/utils/clipboard.js +129 -46
  667. package/dist/utils/clipboard.js.map +1 -1
  668. package/dist/utils/deprecation.d.ts +4 -0
  669. package/dist/utils/deprecation.d.ts.map +1 -0
  670. package/dist/utils/deprecation.js +13 -0
  671. package/dist/utils/deprecation.js.map +1 -0
  672. package/dist/utils/exif-orientation.d.ts +1 -1
  673. package/dist/utils/exif-orientation.d.ts.map +1 -1
  674. package/dist/utils/exif-orientation.js.map +1 -1
  675. package/dist/utils/git.d.ts.map +1 -1
  676. package/dist/utils/git.js +54 -22
  677. package/dist/utils/git.js.map +1 -1
  678. package/dist/utils/html.d.ts +7 -0
  679. package/dist/utils/html.d.ts.map +1 -0
  680. package/dist/utils/html.js +40 -0
  681. package/dist/utils/html.js.map +1 -0
  682. package/dist/utils/image-convert.d.ts +1 -0
  683. package/dist/utils/image-convert.d.ts.map +1 -1
  684. package/dist/utils/image-convert.js +21 -15
  685. package/dist/utils/image-convert.js.map +1 -1
  686. package/dist/utils/image-process.d.ts +18 -0
  687. package/dist/utils/image-process.d.ts.map +1 -0
  688. package/dist/utils/image-process.js +83 -0
  689. package/dist/utils/image-process.js.map +1 -0
  690. package/dist/utils/image-resize-core.d.ts +30 -0
  691. package/dist/utils/image-resize-core.d.ts.map +1 -0
  692. package/dist/utils/image-resize-core.js +124 -0
  693. package/dist/utils/image-resize-core.js.map +1 -0
  694. package/dist/utils/image-resize-worker.d.ts +2 -0
  695. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  696. package/dist/utils/image-resize-worker.js +31 -0
  697. package/dist/utils/image-resize-worker.js.map +1 -0
  698. package/dist/utils/image-resize.d.ts +7 -27
  699. package/dist/utils/image-resize.d.ts.map +1 -1
  700. package/dist/utils/image-resize.js +75 -115
  701. package/dist/utils/image-resize.js.map +1 -1
  702. package/dist/utils/json.d.ts +3 -0
  703. package/dist/utils/json.d.ts.map +1 -0
  704. package/dist/utils/json.js +7 -0
  705. package/dist/utils/json.js.map +1 -0
  706. package/dist/utils/management-http.d.ts +23 -0
  707. package/dist/utils/management-http.d.ts.map +1 -0
  708. package/dist/utils/management-http.js +50 -0
  709. package/dist/utils/management-http.js.map +1 -0
  710. package/dist/utils/mime.d.ts +1 -0
  711. package/dist/utils/mime.d.ts.map +1 -1
  712. package/dist/utils/mime.js +100 -16
  713. package/dist/utils/mime.js.map +1 -1
  714. package/dist/utils/open-browser.d.ts +9 -0
  715. package/dist/utils/open-browser.d.ts.map +1 -0
  716. package/dist/utils/open-browser.js +22 -0
  717. package/dist/utils/open-browser.js.map +1 -0
  718. package/dist/utils/paths.d.ts +29 -1
  719. package/dist/utils/paths.d.ts.map +1 -1
  720. package/dist/utils/paths.js +102 -2
  721. package/dist/utils/paths.js.map +1 -1
  722. package/dist/utils/pi-user-agent.d.ts +2 -0
  723. package/dist/utils/pi-user-agent.d.ts.map +1 -0
  724. package/dist/utils/pi-user-agent.js +5 -0
  725. package/dist/utils/pi-user-agent.js.map +1 -0
  726. package/dist/utils/shell.d.ts +1 -0
  727. package/dist/utils/shell.d.ts.map +1 -1
  728. package/dist/utils/shell.js +18 -6
  729. package/dist/utils/shell.js.map +1 -1
  730. package/dist/utils/syntax-highlight.d.ts +12 -0
  731. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  732. package/dist/utils/syntax-highlight.js +118 -0
  733. package/dist/utils/syntax-highlight.js.map +1 -0
  734. package/dist/utils/tool-result-images.d.ts +19 -0
  735. package/dist/utils/tool-result-images.d.ts.map +1 -0
  736. package/dist/utils/tool-result-images.js +45 -0
  737. package/dist/utils/tool-result-images.js.map +1 -0
  738. package/dist/utils/tools-manager.d.ts +10 -1
  739. package/dist/utils/tools-manager.d.ts.map +1 -1
  740. package/dist/utils/tools-manager.js +105 -36
  741. package/dist/utils/tools-manager.js.map +1 -1
  742. package/dist/utils/version-check.d.ts +19 -0
  743. package/dist/utils/version-check.d.ts.map +1 -0
  744. package/dist/utils/version-check.js +85 -0
  745. package/dist/utils/version-check.js.map +1 -0
  746. package/dist/utils/windows-self-update.d.ts +3 -0
  747. package/dist/utils/windows-self-update.d.ts.map +1 -0
  748. package/dist/utils/windows-self-update.js +77 -0
  749. package/dist/utils/windows-self-update.js.map +1 -0
  750. package/docs/compaction.md +39 -32
  751. package/docs/containerization.md +113 -0
  752. package/docs/custom-provider.md +212 -75
  753. package/docs/development.md +9 -9
  754. package/docs/docs.json +156 -0
  755. package/docs/environment-variables.md +186 -0
  756. package/docs/extensions.md +652 -140
  757. package/docs/index.md +81 -0
  758. package/docs/json.md +26 -15
  759. package/docs/keybindings.md +60 -21
  760. package/docs/llama-cpp.md +99 -0
  761. package/docs/models.md +168 -34
  762. package/docs/packages.md +46 -36
  763. package/docs/prompt-templates.md +13 -5
  764. package/docs/providers.md +147 -26
  765. package/docs/quickstart.md +167 -0
  766. package/docs/rpc.md +218 -36
  767. package/docs/sdk.md +190 -125
  768. package/docs/security.md +59 -0
  769. package/docs/{session.md → session-format.md} +48 -22
  770. package/docs/sessions.md +145 -0
  771. package/docs/settings.md +130 -25
  772. package/docs/shell-aliases.md +2 -2
  773. package/docs/skills.md +13 -14
  774. package/docs/terminal-setup.md +73 -16
  775. package/docs/termux.md +10 -10
  776. package/docs/themes.md +41 -16
  777. package/docs/tmux.md +6 -4
  778. package/docs/tui.md +85 -61
  779. package/docs/usage.md +302 -0
  780. package/docs/windows.md +2 -2
  781. package/examples/README.md +1 -1
  782. package/examples/extensions/README.md +12 -9
  783. package/examples/extensions/bash-spawn-hook.ts +2 -2
  784. package/examples/extensions/border-status-editor.ts +145 -0
  785. package/examples/extensions/built-in-tool-renderer.ts +2 -2
  786. package/examples/extensions/claude-rules.ts +1 -1
  787. package/examples/extensions/commands.ts +1 -1
  788. package/examples/extensions/custom-compaction.ts +6 -16
  789. package/examples/extensions/custom-footer.ts +1 -1
  790. package/examples/extensions/custom-header.ts +7 -7
  791. package/examples/extensions/custom-provider-anthropic/index.ts +15 -8
  792. package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
  793. package/examples/extensions/custom-provider-anthropic/package.json +3 -3
  794. package/examples/extensions/custom-provider-gitlab-duo/index.ts +65 -9
  795. package/examples/extensions/custom-provider-gitlab-duo/package.json +2 -2
  796. package/examples/extensions/custom-provider-gitlab-duo/test.ts +2 -2
  797. package/examples/extensions/doom-overlay/README.md +1 -1
  798. package/examples/extensions/doom-overlay/doom-component.ts +4 -4
  799. package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
  800. package/examples/extensions/doom-overlay/index.ts +5 -5
  801. package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
  802. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  803. package/examples/extensions/entry-renderer.ts +41 -0
  804. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  805. package/examples/extensions/github-issue-autocomplete.ts +2 -2
  806. package/examples/extensions/gondolin/index.ts +531 -0
  807. package/examples/extensions/gondolin/package-lock.json +185 -0
  808. package/examples/extensions/gondolin/package.json +19 -0
  809. package/examples/extensions/handoff.ts +50 -14
  810. package/examples/extensions/hidden-thinking-label.ts +1 -1
  811. package/examples/extensions/inline-bash.ts +2 -2
  812. package/examples/extensions/input-transform-streaming.ts +39 -0
  813. package/examples/extensions/input-transform.ts +2 -2
  814. package/examples/extensions/interactive-shell.ts +2 -2
  815. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  816. package/examples/extensions/mac-system-theme.ts +2 -2
  817. package/examples/extensions/message-renderer.ts +3 -3
  818. package/examples/extensions/minimal-mode.ts +2 -2
  819. package/examples/extensions/modal-editor.ts +2 -2
  820. package/examples/extensions/model-status.ts +1 -1
  821. package/examples/extensions/notify.ts +3 -3
  822. package/examples/extensions/overlay-qa-tests.ts +242 -140
  823. package/examples/extensions/overlay-test.ts +9 -6
  824. package/examples/extensions/pirate.ts +1 -1
  825. package/examples/extensions/plan-mode/README.md +3 -2
  826. package/examples/extensions/plan-mode/index.ts +90 -40
  827. package/examples/extensions/preset.ts +16 -10
  828. package/examples/extensions/project-trust.ts +64 -0
  829. package/examples/extensions/prompt-customizer.ts +1 -1
  830. package/examples/extensions/provider-payload.ts +5 -5
  831. package/examples/extensions/qna.ts +4 -8
  832. package/examples/extensions/question.ts +41 -19
  833. package/examples/extensions/questionnaire.ts +50 -29
  834. package/examples/extensions/rainbow-editor.ts +1 -1
  835. package/examples/extensions/reload-runtime.ts +2 -2
  836. package/examples/extensions/rpc-demo.ts +1 -1
  837. package/examples/extensions/sandbox/index.ts +9 -9
  838. package/examples/extensions/sandbox/package-lock.json +7 -7
  839. package/examples/extensions/sandbox/package.json +3 -3
  840. package/examples/extensions/shutdown-command.ts +5 -5
  841. package/examples/extensions/snake.ts +2 -2
  842. package/examples/extensions/space-invaders.ts +2 -2
  843. package/examples/extensions/ssh.ts +2 -2
  844. package/examples/extensions/structured-output.ts +1 -1
  845. package/examples/extensions/subagent/README.md +18 -13
  846. package/examples/extensions/subagent/agents.ts +42 -11
  847. package/examples/extensions/subagent/index.ts +76 -30
  848. package/examples/extensions/summarize.ts +12 -19
  849. package/examples/extensions/tic-tac-toe.ts +2 -2
  850. package/examples/extensions/titlebar-spinner.ts +3 -3
  851. package/examples/extensions/todo.ts +2 -2
  852. package/examples/extensions/tool-override.ts +1 -1
  853. package/examples/extensions/tools.ts +7 -2
  854. package/examples/extensions/truncated-tool.ts +2 -2
  855. package/examples/extensions/with-deps/package-lock.json +4 -4
  856. package/examples/extensions/with-deps/package.json +4 -4
  857. package/examples/extensions/working-indicator.ts +4 -4
  858. package/examples/extensions/working-message-test.ts +1 -1
  859. package/examples/rpc-extension-ui.ts +11 -2
  860. package/examples/sdk/01-minimal.ts +15 -11
  861. package/examples/sdk/02-custom-model.ts +18 -18
  862. package/examples/sdk/03-custom-prompt.ts +25 -17
  863. package/examples/sdk/04-skills.ts +3 -3
  864. package/examples/sdk/05-tools.ts +8 -4
  865. package/examples/sdk/06-extensions.ts +13 -9
  866. package/examples/sdk/07-context-files.ts +2 -2
  867. package/examples/sdk/08-prompt-templates.ts +3 -3
  868. package/examples/sdk/09-api-keys-and-oauth.ts +19 -33
  869. package/examples/sdk/10-settings.ts +4 -4
  870. package/examples/sdk/11-sessions.ts +4 -0
  871. package/examples/sdk/12-full-control.ts +22 -21
  872. package/examples/sdk/README.md +23 -30
  873. package/npm-shrinkwrap.json +1818 -0
  874. package/package.json +117 -99
  875. package/dist/modes/interactive/assets/clankolas.png +0 -0
  876. package/dist/modes/interactive/components/auth-selector-status.d.ts +0 -20
  877. package/dist/modes/interactive/components/auth-selector-status.d.ts.map +0 -1
  878. package/dist/modes/interactive/components/auth-selector-status.js +0 -23
  879. package/dist/modes/interactive/components/auth-selector-status.js.map +0 -1
  880. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  881. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  882. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  883. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  884. package/docs/images/exy.png +0 -0
  885. package/docs/tree.md +0 -233
  886. package/examples/extensions/antigravity-image-gen.ts +0 -418
  887. package/examples/extensions/custom-provider-qwen-cli/index.ts +0 -345
  888. package/examples/extensions/custom-provider-qwen-cli/package.json +0 -16
@@ -1,17 +1,18 @@
1
1
  import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join, resolve, sep } from "node:path";
2
+ import { basename, dirname, join, resolve, sep } from "node:path";
4
3
  import chalk from "chalk";
5
4
  import { CONFIG_DIR_NAME } from "../config.js";
6
5
  import { loadThemeFromPath } from "../modes/interactive/theme/theme.js";
7
- import { isLocalPath } from "../utils/paths.js";
6
+ import { canonicalizePath, isLocalPath, resolvePath } from "../utils/paths.js";
8
7
  import { createEventBus } from "./event-bus.js";
9
- import { createExtensionRuntime, loadExtensionFromFactory, loadExtensions } from "./extensions/loader.js";
8
+ import { clearExtensionCache, createExtensionRuntime, loadExtensionFromFactory, loadExtensionsCached, } from "./extensions/loader.js";
9
+ import { findGitPaths } from "./footer-data-provider.js";
10
10
  import { DefaultPackageManager } from "./package-manager.js";
11
11
  import { loadPromptTemplates } from "./prompt-templates.js";
12
12
  import { SettingsManager } from "./settings-manager.js";
13
13
  import { loadSkills } from "./skills.js";
14
14
  import { createSourceInfo } from "./source-info.js";
15
+ import { resetTimings } from "./timings.js";
15
16
  function resolvePromptInput(input, description) {
16
17
  if (!input) {
17
18
  return undefined;
@@ -28,11 +29,14 @@ function resolvePromptInput(input, description) {
28
29
  return input;
29
30
  }
30
31
  function loadContextFileFromDir(dir) {
31
- const candidates = ["AGENTS.md", "CLAUDE.md"];
32
+ const candidates = ["AGENTS.override.md", "AGENTS.md", "AGENTS.MD", "CLAUDE.md", "CLAUDE.MD"];
32
33
  for (const filename of candidates) {
33
34
  const filePath = join(dir, filename);
34
35
  if (existsSync(filePath)) {
35
36
  try {
37
+ if (!statSync(filePath).isFile()) {
38
+ continue;
39
+ }
36
40
  return {
37
41
  path: filePath,
38
42
  content: readFileSync(filePath, "utf-8"),
@@ -45,9 +49,38 @@ function loadContextFileFromDir(dir) {
45
49
  }
46
50
  return null;
47
51
  }
52
+ /**
53
+ * The main repo's context file that a nested linked worktree's own copy shadows: both
54
+ * occupy the same logical repository scope, so loading both applies that context twice. Returns
55
+ * undefined when nothing is shadowed, leaving normal ancestor inheritance alone.
56
+ *
57
+ * Returned canonicalized (realpath), because `git worktree add` writes the `.git`
58
+ * file's `gitdir:` target in realpath form while cwd may still be symlinked
59
+ * (macOS `/tmp` -> `/private/tmp`).
60
+ */
61
+ function findShadowedContextFile(cwd) {
62
+ const gitPaths = findGitPaths(cwd);
63
+ if (!gitPaths)
64
+ return undefined;
65
+ const commonGitDir = canonicalizePath(gitPaths.commonGitDir);
66
+ const worktreeRoot = canonicalizePath(gitPaths.repoDir);
67
+ const mainRepoRoot = dirname(commonGitDir);
68
+ // False for an ordinary repo, where the two are the same dir, and for a sibling
69
+ // worktree (`git worktree add ../feat`), whose main repo is not an ancestor.
70
+ if (!worktreeRoot.startsWith(`${mainRepoRoot}${sep}`))
71
+ return undefined;
72
+ // dirname of the common git dir is the main worktree root only when that dir is
73
+ // itself checked out from the same repo. In a bare layout (`proj/.bare` +
74
+ // `proj/main`) it is just the directory holding `.bare`, which tracks nothing; a
75
+ // submodule's gitdir has no `commondir`, so it lands under `.git/modules`.
76
+ if (canonicalizePath(join(mainRepoRoot, ".git")) !== commonGitDir)
77
+ return undefined;
78
+ const worktreeContextFile = loadContextFileFromDir(worktreeRoot);
79
+ return worktreeContextFile ? join(mainRepoRoot, basename(worktreeContextFile.path)) : undefined;
80
+ }
48
81
  export function loadProjectContextFiles(options) {
49
- const resolvedCwd = options.cwd;
50
- const resolvedAgentDir = options.agentDir;
82
+ const resolvedCwd = resolvePath(options.cwd);
83
+ const resolvedAgentDir = resolvePath(options.agentDir);
51
84
  const contextFiles = [];
52
85
  const seenPaths = new Set();
53
86
  const globalContext = loadContextFileFromDir(resolvedAgentDir);
@@ -56,17 +89,16 @@ export function loadProjectContextFiles(options) {
56
89
  seenPaths.add(globalContext.path);
57
90
  }
58
91
  const ancestorContextFiles = [];
92
+ const shadowedContextFile = findShadowedContextFile(resolvedCwd);
59
93
  let currentDir = resolvedCwd;
60
- const root = resolve("/");
61
94
  while (true) {
62
95
  const contextFile = loadContextFileFromDir(currentDir);
63
- if (contextFile && !seenPaths.has(contextFile.path)) {
96
+ const isShadowed = shadowedContextFile !== undefined && canonicalizePath(contextFile?.path ?? "") === shadowedContextFile;
97
+ if (contextFile && !isShadowed && !seenPaths.has(contextFile.path)) {
64
98
  ancestorContextFiles.unshift(contextFile);
65
99
  seenPaths.add(contextFile.path);
66
100
  }
67
- if (currentDir === root)
68
- break;
69
- const parentDir = resolve(currentDir, "..");
101
+ const parentDir = dirname(currentDir);
70
102
  if (parentDir === currentDir)
71
103
  break;
72
104
  currentDir = parentDir;
@@ -108,21 +140,26 @@ export class DefaultResourceLoader {
108
140
  themeDiagnostics;
109
141
  agentsFiles;
110
142
  systemPrompt;
143
+ systemPromptSourcePath;
111
144
  appendSystemPrompt;
145
+ appendSystemPromptSourcePaths;
112
146
  lastSkillPaths;
113
147
  extensionSkillSourceInfos;
114
148
  extensionPromptSourceInfos;
115
149
  extensionThemeSourceInfos;
150
+ resourceMetadataByPath;
116
151
  lastPromptPaths;
117
152
  lastThemePaths;
153
+ loaded;
118
154
  constructor(options) {
119
- this.cwd = options.cwd;
120
- this.agentDir = options.agentDir;
155
+ this.cwd = resolvePath(options.cwd);
156
+ this.agentDir = resolvePath(options.agentDir);
121
157
  this.settingsManager = options.settingsManager ?? SettingsManager.create(this.cwd, this.agentDir);
122
158
  this.eventBus = options.eventBus ?? createEventBus();
123
159
  this.packageManager = new DefaultPackageManager({
124
160
  cwd: this.cwd,
125
161
  agentDir: this.agentDir,
162
+ cacheDir: options.cacheDir,
126
163
  settingsManager: this.settingsManager,
127
164
  });
128
165
  this.additionalExtensionPaths = options.additionalExtensionPaths ?? [];
@@ -153,12 +190,15 @@ export class DefaultResourceLoader {
153
190
  this.themeDiagnostics = [];
154
191
  this.agentsFiles = [];
155
192
  this.appendSystemPrompt = [];
193
+ this.appendSystemPromptSourcePaths = [];
156
194
  this.lastSkillPaths = [];
157
195
  this.extensionSkillSourceInfos = new Map();
158
196
  this.extensionPromptSourceInfos = new Map();
159
197
  this.extensionThemeSourceInfos = new Map();
198
+ this.resourceMetadataByPath = new Map();
160
199
  this.lastPromptPaths = [];
161
200
  this.lastThemePaths = [];
201
+ this.loaded = false;
162
202
  }
163
203
  getExtensions() {
164
204
  return this.extensionsResult;
@@ -178,9 +218,15 @@ export class DefaultResourceLoader {
178
218
  getSystemPrompt() {
179
219
  return this.systemPrompt;
180
220
  }
221
+ getSystemPromptSource() {
222
+ return this.systemPromptSourcePath ? { path: this.systemPromptSourcePath } : undefined;
223
+ }
181
224
  getAppendSystemPrompt() {
182
225
  return this.appendSystemPrompt;
183
226
  }
227
+ getAppendSystemPromptSources() {
228
+ return this.appendSystemPromptSourcePaths.map((path) => ({ path }));
229
+ }
184
230
  extendResources(paths) {
185
231
  const skillPaths = this.normalizeExtensionPaths(paths.skillPaths ?? []);
186
232
  const promptPaths = this.normalizeExtensionPaths(paths.promptPaths ?? []);
@@ -196,24 +242,44 @@ export class DefaultResourceLoader {
196
242
  }
197
243
  if (skillPaths.length > 0) {
198
244
  this.lastSkillPaths = this.mergePaths(this.lastSkillPaths, skillPaths.map((entry) => entry.path));
199
- this.updateSkillsFromPaths(this.lastSkillPaths);
245
+ this.updateSkillsFromPaths(this.lastSkillPaths, this.resourceMetadataByPath);
200
246
  }
201
247
  if (promptPaths.length > 0) {
202
248
  this.lastPromptPaths = this.mergePaths(this.lastPromptPaths, promptPaths.map((entry) => entry.path));
203
- this.updatePromptsFromPaths(this.lastPromptPaths);
249
+ this.updatePromptsFromPaths(this.lastPromptPaths, this.resourceMetadataByPath);
204
250
  }
205
251
  if (themePaths.length > 0) {
206
252
  this.lastThemePaths = this.mergePaths(this.lastThemePaths, themePaths.map((entry) => entry.path));
207
- this.updateThemesFromPaths(this.lastThemePaths);
253
+ this.updateThemesFromPaths(this.lastThemePaths, this.resourceMetadataByPath);
208
254
  }
209
255
  }
210
- async reload() {
256
+ async loadProjectTrustExtensions() {
257
+ // Force untrusted project settings for the bootstrap pass. This keeps project-local
258
+ // extensions/packages out while still loading user/global and temporary CLI extensions.
259
+ this.settingsManager.setProjectTrusted(false);
260
+ await this.settingsManager.reload();
261
+ return this.loadCurrentExtensionSet({ includeInlineFactories: true });
262
+ }
263
+ async reload(options) {
264
+ resetTimings("extensions");
265
+ if (this.loaded) {
266
+ clearExtensionCache();
267
+ }
268
+ let preTrustExtensions;
269
+ if (options?.resolveProjectTrust) {
270
+ preTrustExtensions = await this.loadProjectTrustExtensions();
271
+ const projectTrusted = await options.resolveProjectTrust({ extensionsResult: preTrustExtensions });
272
+ this.settingsManager.setProjectTrusted(projectTrusted);
273
+ }
274
+ // reload() preserves SettingsManager.projectTrusted and reloads settings for that trust state.
211
275
  await this.settingsManager.reload();
212
276
  const resolvedPaths = await this.packageManager.resolve();
213
277
  const cliExtensionPaths = await this.packageManager.resolveExtensionSources(this.additionalExtensionPaths, {
214
278
  temporary: true,
215
279
  });
216
- const metadataByPath = new Map();
280
+ // Kept on the instance so post-reload passes (extendResources) can still resolve package metadata.
281
+ this.resourceMetadataByPath = new Map();
282
+ const metadataByPath = this.resourceMetadataByPath;
217
283
  this.extensionSkillSourceInfos = new Map();
218
284
  this.extensionPromptSourceInfos = new Map();
219
285
  this.extensionThemeSourceInfos = new Map();
@@ -231,29 +297,7 @@ export class DefaultResourceLoader {
231
297
  const enabledSkillResources = getEnabledResources(resolvedPaths.skills);
232
298
  const enabledPrompts = getEnabledPaths(resolvedPaths.prompts);
233
299
  const enabledThemes = getEnabledPaths(resolvedPaths.themes);
234
- const mapSkillPath = (resource) => {
235
- if (resource.metadata.source !== "auto" && resource.metadata.origin !== "package") {
236
- return resource.path;
237
- }
238
- try {
239
- const stats = statSync(resource.path);
240
- if (!stats.isDirectory()) {
241
- return resource.path;
242
- }
243
- }
244
- catch {
245
- return resource.path;
246
- }
247
- const skillFile = join(resource.path, "SKILL.md");
248
- if (existsSync(skillFile)) {
249
- if (!metadataByPath.has(skillFile)) {
250
- metadataByPath.set(skillFile, resource.metadata);
251
- }
252
- return skillFile;
253
- }
254
- return resource.path;
255
- };
256
- const enabledSkills = enabledSkillResources.map(mapSkillPath);
300
+ const enabledSkills = enabledSkillResources.map((resource) => this.mapSkillPath(resource, metadataByPath));
257
301
  // Add CLI paths metadata
258
302
  for (const r of cliExtensionPaths.extensions) {
259
303
  if (!metadataByPath.has(r.path)) {
@@ -272,19 +316,13 @@ export class DefaultResourceLoader {
272
316
  const extensionPaths = this.noExtensions
273
317
  ? cliEnabledExtensions
274
318
  : this.mergePaths(cliEnabledExtensions, enabledExtensions);
275
- const extensionsResult = await loadExtensions(extensionPaths, this.cwd, this.eventBus);
276
- const inlineExtensions = await this.loadExtensionFactories(extensionsResult.runtime);
277
- extensionsResult.extensions.push(...inlineExtensions.extensions);
278
- extensionsResult.errors.push(...inlineExtensions.errors);
279
- // Detect extension conflicts (tools, commands, flags with same names from different extensions)
280
- // Keep all extensions loaded. Conflicts are reported as diagnostics, and precedence is handled by load order.
281
- const conflicts = this.detectExtensionConflicts(extensionsResult.extensions);
282
- for (const conflict of conflicts) {
283
- extensionsResult.errors.push({ path: conflict.path, error: conflict.message });
284
- }
319
+ const extensionsResult = await this.loadFinalExtensionSet(extensionPaths, preTrustExtensions);
285
320
  for (const p of this.additionalExtensionPaths) {
286
- if (isLocalPath(p) && !existsSync(p)) {
287
- extensionsResult.errors.push({ path: p, error: `Extension path does not exist: ${p}` });
321
+ if (isLocalPath(p)) {
322
+ const resolved = this.resolveResourcePath(p);
323
+ if (!existsSync(resolved)) {
324
+ extensionsResult.errors.push({ path: resolved, error: `Extension path does not exist: ${resolved}` });
325
+ }
288
326
  }
289
327
  }
290
328
  this.extensionsResult = this.extensionsOverride ? this.extensionsOverride(extensionsResult) : extensionsResult;
@@ -295,8 +333,11 @@ export class DefaultResourceLoader {
295
333
  this.lastSkillPaths = skillPaths;
296
334
  this.updateSkillsFromPaths(skillPaths, metadataByPath);
297
335
  for (const p of this.additionalSkillPaths) {
298
- if (isLocalPath(p) && !existsSync(p) && !this.skillDiagnostics.some((d) => d.path === p)) {
299
- this.skillDiagnostics.push({ type: "error", message: "Skill path does not exist", path: p });
336
+ if (isLocalPath(p)) {
337
+ const resolved = this.resolveResourcePath(p);
338
+ if (!existsSync(resolved) && !this.skillDiagnostics.some((d) => d.path === resolved)) {
339
+ this.skillDiagnostics.push({ type: "error", message: "Skill path does not exist", path: resolved });
340
+ }
300
341
  }
301
342
  }
302
343
  const promptPaths = this.noPromptTemplates
@@ -305,8 +346,15 @@ export class DefaultResourceLoader {
305
346
  this.lastPromptPaths = promptPaths;
306
347
  this.updatePromptsFromPaths(promptPaths, metadataByPath);
307
348
  for (const p of this.additionalPromptTemplatePaths) {
308
- if (isLocalPath(p) && !existsSync(p) && !this.promptDiagnostics.some((d) => d.path === p)) {
309
- this.promptDiagnostics.push({ type: "error", message: "Prompt template path does not exist", path: p });
349
+ if (isLocalPath(p)) {
350
+ const resolved = this.resolveResourcePath(p);
351
+ if (!existsSync(resolved) && !this.promptDiagnostics.some((d) => d.path === resolved)) {
352
+ this.promptDiagnostics.push({
353
+ type: "error",
354
+ message: "Prompt template path does not exist",
355
+ path: resolved,
356
+ });
357
+ }
310
358
  }
311
359
  }
312
360
  const themePaths = this.noThemes
@@ -315,31 +363,139 @@ export class DefaultResourceLoader {
315
363
  this.lastThemePaths = themePaths;
316
364
  this.updateThemesFromPaths(themePaths, metadataByPath);
317
365
  for (const p of this.additionalThemePaths) {
318
- if (!existsSync(p) && !this.themeDiagnostics.some((d) => d.path === p)) {
319
- this.themeDiagnostics.push({ type: "error", message: "Theme path does not exist", path: p });
366
+ const resolved = this.resolveResourcePath(p);
367
+ if (!existsSync(resolved) && !this.themeDiagnostics.some((d) => d.path === resolved)) {
368
+ this.themeDiagnostics.push({ type: "error", message: "Theme path does not exist", path: resolved });
320
369
  }
321
370
  }
322
371
  const agentsFiles = {
323
- agentsFiles: this.noContextFiles ? [] : loadProjectContextFiles({ cwd: this.cwd, agentDir: this.agentDir }),
372
+ agentsFiles: this.noContextFiles
373
+ ? []
374
+ : loadProjectContextFiles({
375
+ cwd: this.cwd,
376
+ agentDir: this.agentDir,
377
+ }),
324
378
  };
325
379
  const resolvedAgentsFiles = this.agentsFilesOverride ? this.agentsFilesOverride(agentsFiles) : agentsFiles;
326
380
  this.agentsFiles = resolvedAgentsFiles.agentsFiles;
327
- const baseSystemPrompt = resolvePromptInput(this.systemPromptSource ?? this.discoverSystemPromptFile(), "system prompt");
381
+ const systemPromptSource = this.systemPromptSource ?? this.discoverSystemPromptFile();
382
+ const baseSystemPrompt = resolvePromptInput(systemPromptSource, "system prompt");
328
383
  this.systemPrompt = this.systemPromptOverride ? this.systemPromptOverride(baseSystemPrompt) : baseSystemPrompt;
329
- const appendSources = this.appendSystemPromptSource ??
330
- (this.discoverAppendSystemPromptFile() ? [this.discoverAppendSystemPromptFile()] : []);
384
+ this.systemPromptSourcePath =
385
+ systemPromptSource && existsSync(systemPromptSource) ? resolvePath(systemPromptSource) : undefined;
386
+ let appendSources = this.appendSystemPromptSource;
387
+ if (!appendSources) {
388
+ const discoveredAppendSystemPromptFile = this.discoverAppendSystemPromptFile();
389
+ appendSources = discoveredAppendSystemPromptFile ? [discoveredAppendSystemPromptFile] : [];
390
+ }
331
391
  const baseAppend = appendSources
332
392
  .map((s) => resolvePromptInput(s, "append system prompt"))
333
393
  .filter((s) => s !== undefined);
334
394
  this.appendSystemPrompt = this.appendSystemPromptOverride
335
395
  ? this.appendSystemPromptOverride(baseAppend)
336
396
  : baseAppend;
397
+ this.appendSystemPromptSourcePaths = appendSources
398
+ .filter((source) => existsSync(source))
399
+ .map((source) => resolvePath(source));
400
+ this.loaded = true;
401
+ }
402
+ async loadCurrentExtensionSet(options) {
403
+ const resolvedPaths = await this.packageManager.resolve();
404
+ const cliExtensionPaths = await this.packageManager.resolveExtensionSources(this.additionalExtensionPaths, {
405
+ temporary: true,
406
+ });
407
+ const enabledExtensions = resolvedPaths.extensions.filter((r) => r.enabled).map((r) => r.path);
408
+ const cliEnabledExtensions = cliExtensionPaths.extensions.filter((r) => r.enabled).map((r) => r.path);
409
+ const extensionPaths = this.noExtensions
410
+ ? cliEnabledExtensions
411
+ : this.mergePaths(cliEnabledExtensions, enabledExtensions);
412
+ const extensionsResult = await loadExtensionsCached(extensionPaths, this.cwd, this.eventBus);
413
+ if (!options.includeInlineFactories) {
414
+ return extensionsResult;
415
+ }
416
+ const inlineExtensions = await this.loadExtensionFactories(extensionsResult.runtime);
417
+ extensionsResult.extensions.push(...inlineExtensions.extensions);
418
+ extensionsResult.errors.push(...inlineExtensions.errors);
419
+ return extensionsResult;
420
+ }
421
+ resolveExtensionLoadPath(path) {
422
+ return resolvePath(path, this.cwd, { normalizeUnicodeSpaces: true });
423
+ }
424
+ async loadFinalExtensionSet(extensionPaths, preTrustExtensions) {
425
+ if (!preTrustExtensions) {
426
+ const extensionsResult = await loadExtensionsCached(extensionPaths, this.cwd, this.eventBus);
427
+ const inlineExtensions = await this.loadExtensionFactories(extensionsResult.runtime);
428
+ extensionsResult.extensions.push(...inlineExtensions.extensions);
429
+ extensionsResult.errors.push(...inlineExtensions.errors);
430
+ this.addExtensionConflictDiagnostics(extensionsResult);
431
+ return extensionsResult;
432
+ }
433
+ const preloadedByPath = new Map(preTrustExtensions.extensions
434
+ .filter((extension) => !extension.path.startsWith("<inline:"))
435
+ .map((extension) => [extension.resolvedPath, extension]));
436
+ const failedPreloadPaths = new Set(preTrustExtensions.errors.map((error) => this.resolveExtensionLoadPath(error.path)));
437
+ const remainingPaths = extensionPaths.filter((path) => {
438
+ const resolvedPath = this.resolveExtensionLoadPath(path);
439
+ return !preloadedByPath.has(resolvedPath) && !failedPreloadPaths.has(resolvedPath);
440
+ });
441
+ const remainingExtensions = await loadExtensionsCached(remainingPaths, this.cwd, this.eventBus, preTrustExtensions.runtime);
442
+ const loadedByPath = new Map(preloadedByPath);
443
+ for (const extension of remainingExtensions.extensions) {
444
+ loadedByPath.set(extension.resolvedPath, extension);
445
+ }
446
+ const inlineExtensions = preTrustExtensions.extensions.filter((extension) => extension.path.startsWith("<inline:"));
447
+ const orderedExtensions = extensionPaths
448
+ .map((path) => loadedByPath.get(this.resolveExtensionLoadPath(path)))
449
+ .filter((extension) => extension !== undefined);
450
+ orderedExtensions.push(...inlineExtensions);
451
+ const extensionsResult = {
452
+ extensions: orderedExtensions,
453
+ errors: [...preTrustExtensions.errors, ...remainingExtensions.errors],
454
+ runtime: preTrustExtensions.runtime,
455
+ };
456
+ this.addExtensionConflictDiagnostics(extensionsResult);
457
+ return extensionsResult;
458
+ }
459
+ addExtensionConflictDiagnostics(extensionsResult) {
460
+ // Detect extension conflicts (tools, commands, flags with same names from different extensions)
461
+ // Keep all extensions loaded. Conflicts are reported as diagnostics, and precedence is handled by load order.
462
+ const conflicts = this.detectExtensionConflicts(extensionsResult.extensions);
463
+ for (const conflict of conflicts) {
464
+ extensionsResult.errors.push({ path: conflict.path, error: conflict.message });
465
+ }
466
+ }
467
+ mapSkillPath(resource, metadataByPath) {
468
+ if (resource.metadata.source !== "auto" && resource.metadata.origin !== "package") {
469
+ return resource.path;
470
+ }
471
+ try {
472
+ const stats = statSync(resource.path);
473
+ if (!stats.isDirectory()) {
474
+ return resource.path;
475
+ }
476
+ }
477
+ catch {
478
+ return resource.path;
479
+ }
480
+ const skillFile = join(resource.path, "SKILL.md");
481
+ if (existsSync(skillFile)) {
482
+ if (!metadataByPath.has(skillFile)) {
483
+ metadataByPath.set(skillFile, resource.metadata);
484
+ }
485
+ return skillFile;
486
+ }
487
+ return resource.path;
337
488
  }
338
489
  normalizeExtensionPaths(entries) {
339
- return entries.map((entry) => ({
340
- path: this.resolveResourcePath(entry.path),
341
- metadata: entry.metadata,
342
- }));
490
+ return entries.map((entry) => {
491
+ const metadata = entry.metadata.baseDir
492
+ ? { ...entry.metadata, baseDir: this.resolveResourcePath(entry.metadata.baseDir) }
493
+ : entry.metadata;
494
+ return {
495
+ path: this.resolveResourcePath(entry.path),
496
+ metadata,
497
+ };
498
+ });
343
499
  }
344
500
  updateSkillsFromPaths(skillPaths, metadataByPath) {
345
501
  let skillsResult;
@@ -498,26 +654,16 @@ export class DefaultResourceLoader {
498
654
  const seen = new Set();
499
655
  for (const p of [...primary, ...additional]) {
500
656
  const resolved = this.resolveResourcePath(p);
501
- if (seen.has(resolved))
657
+ const canonicalPath = canonicalizePath(resolved);
658
+ if (seen.has(canonicalPath))
502
659
  continue;
503
- seen.add(resolved);
660
+ seen.add(canonicalPath);
504
661
  merged.push(resolved);
505
662
  }
506
663
  return merged;
507
664
  }
508
665
  resolveResourcePath(p) {
509
- const trimmed = p.trim();
510
- let expanded = trimmed;
511
- if (trimmed === "~") {
512
- expanded = homedir();
513
- }
514
- else if (trimmed.startsWith("~/")) {
515
- expanded = join(homedir(), trimmed.slice(2));
516
- }
517
- else if (trimmed.startsWith("~")) {
518
- expanded = join(homedir(), trimmed.slice(1));
519
- }
520
- return resolve(this.cwd, expanded);
666
+ return resolvePath(p, this.cwd, { trim: true });
521
667
  }
522
668
  loadThemes(paths, includeDefaults = true) {
523
669
  const themes = [];
@@ -529,7 +675,7 @@ export class DefaultResourceLoader {
529
675
  }
530
676
  }
531
677
  for (const p of paths) {
532
- const resolved = resolve(this.cwd, p);
678
+ const resolved = this.resolveResourcePath(p);
533
679
  if (!existsSync(resolved)) {
534
680
  diagnostics.push({ type: "warning", message: "theme path does not exist", path: resolved });
535
681
  continue;
@@ -595,10 +741,13 @@ export class DefaultResourceLoader {
595
741
  async loadExtensionFactories(runtime) {
596
742
  const extensions = [];
597
743
  const errors = [];
598
- for (const [index, factory] of this.extensionFactories.entries()) {
599
- const extensionPath = `<inline:${index + 1}>`;
744
+ for (const [index, input] of this.extensionFactories.entries()) {
745
+ const isNamed = typeof input !== "function";
746
+ const factory = isNamed ? input.factory : input;
747
+ const extensionPath = `<inline:${isNamed ? input.name : index + 1}>`;
600
748
  try {
601
749
  const extension = await loadExtensionFromFactory(factory, this.cwd, this.eventBus, runtime, extensionPath);
750
+ extension.hidden = isNamed && input.hidden;
602
751
  extensions.push(extension);
603
752
  }
604
753
  catch (error) {
@@ -659,7 +808,7 @@ export class DefaultResourceLoader {
659
808
  }
660
809
  discoverSystemPromptFile() {
661
810
  const projectPath = join(this.cwd, CONFIG_DIR_NAME, "SYSTEM.md");
662
- if (existsSync(projectPath)) {
811
+ if (this.settingsManager.isProjectTrusted() && existsSync(projectPath)) {
663
812
  return projectPath;
664
813
  }
665
814
  const globalPath = join(this.agentDir, "SYSTEM.md");
@@ -670,7 +819,7 @@ export class DefaultResourceLoader {
670
819
  }
671
820
  discoverAppendSystemPromptFile() {
672
821
  const projectPath = join(this.cwd, CONFIG_DIR_NAME, "APPEND_SYSTEM.md");
673
- if (existsSync(projectPath)) {
822
+ if (this.settingsManager.isProjectTrusted() && existsSync(projectPath)) {
674
823
  return projectPath;
675
824
  }
676
825
  const globalPath = join(this.agentDir, "APPEND_SYSTEM.md");