@humain/terminal 0.0.3-beta.3 → 0.0.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (737) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -0
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js.map +1 -1
  5. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  6. package/dist/bun/restore-sandbox-env.js.map +1 -1
  7. package/dist/cli/args.d.ts +1 -0
  8. package/dist/cli/args.d.ts.map +1 -1
  9. package/dist/cli/args.js +11 -0
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/auth-check.d.ts.map +1 -1
  12. package/dist/cli/auth-check.js.map +1 -1
  13. package/dist/cli/auth-command.d.ts.map +1 -1
  14. package/dist/cli/auth-command.js.map +1 -1
  15. package/dist/cli/config-selector.d.ts.map +1 -1
  16. package/dist/cli/config-selector.js.map +1 -1
  17. package/dist/cli/credential-print.d.ts.map +1 -1
  18. package/dist/cli/credential-print.js.map +1 -1
  19. package/dist/cli/experimental/auth.d.ts.map +1 -1
  20. package/dist/cli/experimental/auth.js.map +1 -1
  21. package/dist/cli/experimental/cli.d.ts.map +1 -1
  22. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  23. package/dist/cli/experimental/command-options.js.map +1 -1
  24. package/dist/cli/experimental/command.d.ts.map +1 -1
  25. package/dist/cli/experimental/command.js +2 -5
  26. package/dist/cli/experimental/command.js.map +1 -1
  27. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  28. package/dist/cli/experimental/commands/client.js.map +1 -1
  29. package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
  30. package/dist/cli/experimental/commands/pi.js.map +1 -1
  31. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  32. package/dist/cli/experimental/commands/server.js.map +1 -1
  33. package/dist/cli/experimental/transport-address.d.ts.map +1 -1
  34. package/dist/cli/experimental/transport-address.js.map +1 -1
  35. package/dist/cli/file-processor.d.ts.map +1 -1
  36. package/dist/cli/file-processor.js.map +1 -1
  37. package/dist/cli/initial-message.d.ts +1 -1
  38. package/dist/cli/initial-message.d.ts.map +1 -1
  39. package/dist/cli/initial-message.js.map +1 -1
  40. package/dist/cli/list-models.d.ts.map +1 -1
  41. package/dist/cli/list-models.js.map +1 -1
  42. package/dist/cli/project-trust.d.ts.map +1 -1
  43. package/dist/cli/project-trust.js.map +1 -1
  44. package/dist/cli/session-picker.d.ts.map +1 -1
  45. package/dist/cli/session-picker.js.map +1 -1
  46. package/dist/cli/startup-ui.d.ts.map +1 -1
  47. package/dist/cli/startup-ui.js.map +1 -1
  48. package/dist/cli.d.ts.map +1 -1
  49. package/dist/cli.js.map +1 -1
  50. package/dist/client/index.d.ts.map +1 -1
  51. package/dist/client/remote-session.d.ts.map +1 -1
  52. package/dist/client/remote-session.js.map +1 -1
  53. package/dist/client/transcript.d.ts.map +1 -1
  54. package/dist/client/transcript.js +1 -1
  55. package/dist/client/transcript.js.map +1 -1
  56. package/dist/config.d.ts.map +1 -1
  57. package/dist/config.js.map +1 -1
  58. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  59. package/dist/core/agent-session-runtime.js +0 -8
  60. package/dist/core/agent-session-runtime.js.map +1 -1
  61. package/dist/core/agent-session-services.d.ts.map +1 -1
  62. package/dist/core/agent-session-services.js.map +1 -1
  63. package/dist/core/agent-session.d.ts +36 -2
  64. package/dist/core/agent-session.d.ts.map +1 -1
  65. package/dist/core/agent-session.js +107 -129
  66. package/dist/core/agent-session.js.map +1 -1
  67. package/dist/core/auth-guidance.d.ts.map +1 -1
  68. package/dist/core/auth-guidance.js.map +1 -1
  69. package/dist/core/auth-storage.d.ts.map +1 -1
  70. package/dist/core/auth-storage.js +3 -8
  71. package/dist/core/auth-storage.js.map +1 -1
  72. package/dist/core/bash-executor.d.ts.map +1 -1
  73. package/dist/core/bash-executor.js.map +1 -1
  74. package/dist/core/cache-stats.d.ts.map +1 -1
  75. package/dist/core/cache-stats.js.map +1 -1
  76. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  77. package/dist/core/compaction/branch-summarization.js.map +1 -1
  78. package/dist/core/compaction/compaction.d.ts.map +1 -1
  79. package/dist/core/compaction/compaction.js.map +1 -1
  80. package/dist/core/compaction/index.d.ts.map +1 -1
  81. package/dist/core/compaction/utils.d.ts.map +1 -1
  82. package/dist/core/compaction/utils.js.map +1 -1
  83. package/dist/core/defaults.d.ts.map +1 -1
  84. package/dist/core/diagnostics.d.ts.map +1 -1
  85. package/dist/core/event-bus.d.ts.map +1 -1
  86. package/dist/core/event-bus.js.map +1 -1
  87. package/dist/core/exec.d.ts.map +1 -1
  88. package/dist/core/exec.js.map +1 -1
  89. package/dist/core/experimental.d.ts +4 -0
  90. package/dist/core/experimental.d.ts.map +1 -1
  91. package/dist/core/experimental.js +4 -0
  92. package/dist/core/experimental.js.map +1 -1
  93. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  94. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  95. package/dist/core/export-html/index.d.ts.map +1 -1
  96. package/dist/core/export-html/index.js.map +1 -1
  97. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  98. package/dist/core/export-html/tool-renderer.js.map +1 -1
  99. package/dist/core/extensions/index.d.ts.map +1 -1
  100. package/dist/core/extensions/loader.d.ts.map +1 -1
  101. package/dist/core/extensions/loader.js.map +1 -1
  102. package/dist/core/extensions/runner.d.ts.map +1 -1
  103. package/dist/core/extensions/runner.js +22 -30
  104. package/dist/core/extensions/runner.js.map +1 -1
  105. package/dist/core/extensions/types.d.ts +4 -0
  106. package/dist/core/extensions/types.d.ts.map +1 -1
  107. package/dist/core/extensions/types.js.map +1 -1
  108. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  109. package/dist/core/extensions/wrapper.js.map +1 -1
  110. package/dist/core/footer-data-provider.d.ts.map +1 -1
  111. package/dist/core/footer-data-provider.js +17 -18
  112. package/dist/core/footer-data-provider.js.map +1 -1
  113. package/dist/core/http-dispatcher.d.ts.map +1 -1
  114. package/dist/core/http-dispatcher.js.map +1 -1
  115. package/dist/core/index.d.ts.map +1 -1
  116. package/dist/core/keybindings.d.ts +24 -0
  117. package/dist/core/keybindings.d.ts.map +1 -1
  118. package/dist/core/keybindings.js +0 -1
  119. package/dist/core/keybindings.js.map +1 -1
  120. package/dist/core/messages.d.ts.map +1 -1
  121. package/dist/core/messages.js.map +1 -1
  122. package/dist/core/model-config.d.ts +5 -0
  123. package/dist/core/model-config.d.ts.map +1 -1
  124. package/dist/core/model-config.js +1 -2
  125. package/dist/core/model-config.js.map +1 -1
  126. package/dist/core/model-registry.d.ts.map +1 -1
  127. package/dist/core/model-registry.js +0 -1
  128. package/dist/core/model-registry.js.map +1 -1
  129. package/dist/core/model-resolver.d.ts.map +1 -1
  130. package/dist/core/model-resolver.js.map +1 -1
  131. package/dist/core/model-runtime.d.ts.map +1 -1
  132. package/dist/core/model-runtime.js +15 -25
  133. package/dist/core/model-runtime.js.map +1 -1
  134. package/dist/core/models-store.d.ts.map +1 -1
  135. package/dist/core/models-store.js +3 -4
  136. package/dist/core/models-store.js.map +1 -1
  137. package/dist/core/output-guard.d.ts.map +1 -1
  138. package/dist/core/output-guard.js.map +1 -1
  139. package/dist/core/package-manager.d.ts.map +1 -1
  140. package/dist/core/package-manager.js +0 -7
  141. package/dist/core/package-manager.js.map +1 -1
  142. package/dist/core/pi-manifest.d.ts.map +1 -1
  143. package/dist/core/pi-manifest.js.map +1 -1
  144. package/dist/core/project-trust.d.ts.map +1 -1
  145. package/dist/core/project-trust.js.map +1 -1
  146. package/dist/core/prompt-templates.d.ts.map +1 -1
  147. package/dist/core/prompt-templates.js.map +1 -1
  148. package/dist/core/provider-attribution.d.ts.map +1 -1
  149. package/dist/core/provider-attribution.js.map +1 -1
  150. package/dist/core/provider-composer.d.ts.map +1 -1
  151. package/dist/core/provider-composer.js.map +1 -1
  152. package/dist/core/radius.d.ts.map +1 -1
  153. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  154. package/dist/core/remote-catalog-provider.js.map +1 -1
  155. package/dist/core/resolve-config-value.d.ts.map +1 -1
  156. package/dist/core/resolve-config-value.js.map +1 -1
  157. package/dist/core/resource-loader.d.ts.map +1 -1
  158. package/dist/core/resource-loader.js +0 -44
  159. package/dist/core/resource-loader.js.map +1 -1
  160. package/dist/core/runtime-credentials.d.ts.map +1 -1
  161. package/dist/core/runtime-credentials.js +1 -2
  162. package/dist/core/runtime-credentials.js.map +1 -1
  163. package/dist/core/sdk.d.ts +5 -3
  164. package/dist/core/sdk.d.ts.map +1 -1
  165. package/dist/core/sdk.js +3 -2
  166. package/dist/core/sdk.js.map +1 -1
  167. package/dist/core/session-cwd.d.ts.map +1 -1
  168. package/dist/core/session-cwd.js +0 -1
  169. package/dist/core/session-cwd.js.map +1 -1
  170. package/dist/core/session-manager.d.ts +4 -0
  171. package/dist/core/session-manager.d.ts.map +1 -1
  172. package/dist/core/session-manager.js +55 -35
  173. package/dist/core/session-manager.js.map +1 -1
  174. package/dist/core/settings-manager.d.ts +6 -0
  175. package/dist/core/settings-manager.d.ts.map +1 -1
  176. package/dist/core/settings-manager.js +19 -17
  177. package/dist/core/settings-manager.js.map +1 -1
  178. package/dist/core/skills.d.ts.map +1 -1
  179. package/dist/core/skills.js.map +1 -1
  180. package/dist/core/slash-commands.d.ts.map +1 -1
  181. package/dist/core/source-info.d.ts.map +1 -1
  182. package/dist/core/source-info.js.map +1 -1
  183. package/dist/core/system-prompt.d.ts.map +1 -1
  184. package/dist/core/system-prompt.js +1 -1
  185. package/dist/core/system-prompt.js.map +1 -1
  186. package/dist/core/telemetry.d.ts.map +1 -1
  187. package/dist/core/telemetry.js.map +1 -1
  188. package/dist/core/timings.d.ts.map +1 -1
  189. package/dist/core/timings.js.map +1 -1
  190. package/dist/core/tools/bash.d.ts.map +1 -1
  191. package/dist/core/tools/bash.js +10 -5
  192. package/dist/core/tools/bash.js.map +1 -1
  193. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  194. package/dist/core/tools/edit-diff.js.map +1 -1
  195. package/dist/core/tools/edit.d.ts.map +1 -1
  196. package/dist/core/tools/edit.js +2 -0
  197. package/dist/core/tools/edit.js.map +1 -1
  198. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  199. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  200. package/dist/core/tools/find.d.ts +1 -1
  201. package/dist/core/tools/find.d.ts.map +1 -1
  202. package/dist/core/tools/find.js +1 -1
  203. package/dist/core/tools/find.js.map +1 -1
  204. package/dist/core/tools/grep.d.ts.map +1 -1
  205. package/dist/core/tools/grep.js +1 -1
  206. package/dist/core/tools/grep.js.map +1 -1
  207. package/dist/core/tools/index.d.ts +2 -1
  208. package/dist/core/tools/index.d.ts.map +1 -1
  209. package/dist/core/tools/index.js +9 -1
  210. package/dist/core/tools/index.js.map +1 -1
  211. package/dist/core/tools/ls.d.ts.map +1 -1
  212. package/dist/core/tools/ls.js.map +1 -1
  213. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  214. package/dist/core/tools/output-accumulator.js +12 -18
  215. package/dist/core/tools/output-accumulator.js.map +1 -1
  216. package/dist/core/tools/path-utils.d.ts.map +1 -1
  217. package/dist/core/tools/path-utils.js.map +1 -1
  218. package/dist/core/tools/read.d.ts.map +1 -1
  219. package/dist/core/tools/read.js +2 -0
  220. package/dist/core/tools/read.js.map +1 -1
  221. package/dist/core/tools/render-utils.d.ts.map +1 -1
  222. package/dist/core/tools/render-utils.js.map +1 -1
  223. package/dist/core/tools/subagent.d.ts +82 -0
  224. package/dist/core/tools/subagent.d.ts.map +1 -0
  225. package/dist/core/tools/subagent.js +980 -0
  226. package/dist/core/tools/subagent.js.map +1 -0
  227. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  228. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  229. package/dist/core/tools/truncate.d.ts.map +1 -1
  230. package/dist/core/tools/truncate.js.map +1 -1
  231. package/dist/core/tools/write.d.ts.map +1 -1
  232. package/dist/core/tools/write.js +2 -1
  233. package/dist/core/tools/write.js.map +1 -1
  234. package/dist/core/trust-manager.d.ts.map +1 -1
  235. package/dist/core/trust-manager.js +0 -1
  236. package/dist/core/trust-manager.js.map +1 -1
  237. package/dist/core/usage-totals.d.ts.map +1 -1
  238. package/dist/core/usage-totals.js.map +1 -1
  239. package/dist/extensions/index.d.ts.map +1 -1
  240. package/dist/extensions/llama/client.d.ts.map +1 -1
  241. package/dist/extensions/llama/client.js +0 -2
  242. package/dist/extensions/llama/client.js.map +1 -1
  243. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  244. package/dist/extensions/llama/huggingface.js +0 -2
  245. package/dist/extensions/llama/huggingface.js.map +1 -1
  246. package/dist/extensions/llama/index.d.ts.map +1 -1
  247. package/dist/extensions/llama/index.js.map +1 -1
  248. package/dist/extensions/llama/provider.d.ts.map +1 -1
  249. package/dist/extensions/llama/provider.js.map +1 -1
  250. package/dist/extensions/llama/ui.d.ts.map +1 -1
  251. package/dist/extensions/llama/ui.js +12 -28
  252. package/dist/extensions/llama/ui.js.map +1 -1
  253. package/dist/humain/agent-execution-protocol.d.ts.map +1 -1
  254. package/dist/humain/agent-execution-protocol.js.map +1 -1
  255. package/dist/humain/agent-execution-runtime.d.ts.map +1 -1
  256. package/dist/humain/agent-execution-runtime.js.map +1 -1
  257. package/dist/humain/bedrock-provider/vendor/index.bundle.mjs +127 -7
  258. package/dist/humain/brand-logo.d.ts.map +1 -1
  259. package/dist/humain/index.d.ts.map +1 -1
  260. package/dist/humain/index.js.map +1 -1
  261. package/dist/humain/legacy-workflow-tiers.d.ts.map +1 -1
  262. package/dist/humain/legacy-workflow-tiers.js.map +1 -1
  263. package/dist/humain/mcp-adapter/vendor/CHANGELOG.md +36 -0
  264. package/dist/humain/mcp-adapter/vendor/README.md +47 -5
  265. package/dist/humain/mcp-adapter/vendor/cli.js +163 -1
  266. package/dist/humain/mcp-adapter/vendor/commands.ts +128 -22
  267. package/dist/humain/mcp-adapter/vendor/config.ts +25 -7
  268. package/dist/humain/mcp-adapter/vendor/direct-tools.ts +5 -4
  269. package/dist/humain/mcp-adapter/vendor/index.bundle.mjs +1663 -458
  270. package/dist/humain/mcp-adapter/vendor/index.ts +219 -32
  271. package/dist/humain/mcp-adapter/vendor/init.ts +36 -4
  272. package/dist/humain/mcp-adapter/vendor/lifecycle.ts +315 -24
  273. package/dist/humain/mcp-adapter/vendor/mcp-auth-flow.ts +39 -6
  274. package/dist/humain/mcp-adapter/vendor/mcp-bearer-store.ts +387 -0
  275. package/dist/humain/mcp-adapter/vendor/mcp-callback-server.ts +27 -3
  276. package/dist/humain/mcp-adapter/vendor/mcp-code.ts +4 -0
  277. package/dist/humain/mcp-adapter/vendor/mcp-panel.ts +42 -13
  278. package/dist/humain/mcp-adapter/vendor/metadata-cache.ts +32 -21
  279. package/dist/humain/mcp-adapter/vendor/package-mcp-loader.ts +168 -0
  280. package/dist/humain/mcp-adapter/vendor/package.json +179 -177
  281. package/dist/humain/mcp-adapter/vendor/proxy-modes.ts +5 -4
  282. package/dist/humain/mcp-adapter/vendor/request-headers-command.ts +31 -37
  283. package/dist/humain/mcp-adapter/vendor/search-ranking.ts +92 -22
  284. package/dist/humain/mcp-adapter/vendor/server-manager.ts +140 -2
  285. package/dist/humain/mcp-adapter/vendor/session-recovery.ts +7 -0
  286. package/dist/humain/mcp-adapter/vendor/tool-approval.ts +15 -2
  287. package/dist/humain/mcp-adapter/vendor/tool-result-renderer.ts +44 -4
  288. package/dist/humain/mcp-adapter/vendor/types.ts +2 -0
  289. package/dist/humain/mcp-adapter/vendor/ui-server.ts +18 -16
  290. package/dist/humain/mcp-adapter/vendor/utils.ts +70 -0
  291. package/dist/humain/mcp-adapter.d.ts.map +1 -1
  292. package/dist/humain/mcp-adapter.js.map +1 -1
  293. package/dist/humain/pi-agent-execution-host.d.ts.map +1 -1
  294. package/dist/humain/pi-agent-execution-host.js.map +1 -1
  295. package/dist/humain/web-access/host.d.ts.map +1 -1
  296. package/dist/humain/web-access/index.d.ts.map +1 -1
  297. package/dist/humain/web-access/index.js.map +1 -1
  298. package/dist/humain/web-access/vendor/activity.d.ts.map +1 -1
  299. package/dist/humain/web-access/vendor/activity.js +7 -5
  300. package/dist/humain/web-access/vendor/activity.js.map +1 -1
  301. package/dist/humain/web-access/vendor/anysearch.d.ts.map +1 -1
  302. package/dist/humain/web-access/vendor/anysearch.js +3 -2
  303. package/dist/humain/web-access/vendor/anysearch.js.map +1 -1
  304. package/dist/humain/web-access/vendor/auth-fetch.d.ts.map +1 -1
  305. package/dist/humain/web-access/vendor/auth-fetch.js.map +1 -1
  306. package/dist/humain/web-access/vendor/bocha.d.ts.map +1 -1
  307. package/dist/humain/web-access/vendor/bocha.js.map +1 -1
  308. package/dist/humain/web-access/vendor/brave.d.ts.map +1 -1
  309. package/dist/humain/web-access/vendor/brave.js +14 -4
  310. package/dist/humain/web-access/vendor/brave.js.map +1 -1
  311. package/dist/humain/web-access/vendor/brightdata-unlocker.d.ts.map +1 -1
  312. package/dist/humain/web-access/vendor/brightdata-unlocker.js.map +1 -1
  313. package/dist/humain/web-access/vendor/brightdata.d.ts.map +1 -1
  314. package/dist/humain/web-access/vendor/brightdata.js.map +1 -1
  315. package/dist/humain/web-access/vendor/chrome-cookies.d.ts.map +1 -1
  316. package/dist/humain/web-access/vendor/chrome-cookies.js +92 -14
  317. package/dist/humain/web-access/vendor/chrome-cookies.js.map +1 -1
  318. package/dist/humain/web-access/vendor/content-find.d.ts.map +1 -1
  319. package/dist/humain/web-access/vendor/content-find.js.map +1 -1
  320. package/dist/humain/web-access/vendor/credential-source.d.ts.map +1 -1
  321. package/dist/humain/web-access/vendor/credential-source.js +0 -2
  322. package/dist/humain/web-access/vendor/credential-source.js.map +1 -1
  323. package/dist/humain/web-access/vendor/curator-page.d.ts +3 -0
  324. package/dist/humain/web-access/vendor/curator-page.d.ts.map +1 -1
  325. package/dist/humain/web-access/vendor/curator-page.js +4 -1
  326. package/dist/humain/web-access/vendor/curator-page.js.map +1 -1
  327. package/dist/humain/web-access/vendor/curator-server.d.ts +3 -0
  328. package/dist/humain/web-access/vendor/curator-server.d.ts.map +1 -1
  329. package/dist/humain/web-access/vendor/curator-server.js +6 -0
  330. package/dist/humain/web-access/vendor/curator-server.js.map +1 -1
  331. package/dist/humain/web-access/vendor/data-uri-sanitize.d.ts +21 -0
  332. package/dist/humain/web-access/vendor/data-uri-sanitize.d.ts.map +1 -0
  333. package/dist/humain/web-access/vendor/data-uri-sanitize.js +373 -0
  334. package/dist/humain/web-access/vendor/data-uri-sanitize.js.map +1 -0
  335. package/dist/humain/web-access/vendor/datalab-pdf-extract.d.ts.map +1 -1
  336. package/dist/humain/web-access/vendor/datalab-pdf-extract.js.map +1 -1
  337. package/dist/humain/web-access/vendor/declared-web-links.d.ts.map +1 -1
  338. package/dist/humain/web-access/vendor/declared-web-links.js.map +1 -1
  339. package/dist/humain/web-access/vendor/duckduckgo.d.ts.map +1 -1
  340. package/dist/humain/web-access/vendor/duckduckgo.js.map +1 -1
  341. package/dist/humain/web-access/vendor/exa.d.ts.map +1 -1
  342. package/dist/humain/web-access/vendor/exa.js +16 -7
  343. package/dist/humain/web-access/vendor/exa.js.map +1 -1
  344. package/dist/humain/web-access/vendor/extract.d.ts.map +1 -1
  345. package/dist/humain/web-access/vendor/extract.js +45 -5
  346. package/dist/humain/web-access/vendor/extract.js.map +1 -1
  347. package/dist/humain/web-access/vendor/feature-config.d.ts.map +1 -1
  348. package/dist/humain/web-access/vendor/feature-config.js.map +1 -1
  349. package/dist/humain/web-access/vendor/fetch-params.d.ts.map +1 -1
  350. package/dist/humain/web-access/vendor/fetch-params.js.map +1 -1
  351. package/dist/humain/web-access/vendor/firecrawl.d.ts.map +1 -1
  352. package/dist/humain/web-access/vendor/firecrawl.js +15 -2
  353. package/dist/humain/web-access/vendor/firecrawl.js.map +1 -1
  354. package/dist/humain/web-access/vendor/gemini-api.d.ts.map +1 -1
  355. package/dist/humain/web-access/vendor/gemini-api.js.map +1 -1
  356. package/dist/humain/web-access/vendor/gemini-pdf-extract.d.ts.map +1 -1
  357. package/dist/humain/web-access/vendor/gemini-pdf-extract.js.map +1 -1
  358. package/dist/humain/web-access/vendor/gemini-search.d.ts +2 -2
  359. package/dist/humain/web-access/vendor/gemini-search.d.ts.map +1 -1
  360. package/dist/humain/web-access/vendor/gemini-search.js +25 -8
  361. package/dist/humain/web-access/vendor/gemini-search.js.map +1 -1
  362. package/dist/humain/web-access/vendor/gemini-url-context.d.ts.map +1 -1
  363. package/dist/humain/web-access/vendor/gemini-url-context.js.map +1 -1
  364. package/dist/humain/web-access/vendor/gemini-web-config.d.ts.map +1 -1
  365. package/dist/humain/web-access/vendor/gemini-web-config.js.map +1 -1
  366. package/dist/humain/web-access/vendor/gemini-web.d.ts.map +1 -1
  367. package/dist/humain/web-access/vendor/gemini-web.js.map +1 -1
  368. package/dist/humain/web-access/vendor/github-api.d.ts.map +1 -1
  369. package/dist/humain/web-access/vendor/github-api.js.map +1 -1
  370. package/dist/humain/web-access/vendor/github-extract.d.ts.map +1 -1
  371. package/dist/humain/web-access/vendor/github-extract.js +69 -35
  372. package/dist/humain/web-access/vendor/github-extract.js.map +1 -1
  373. package/dist/humain/web-access/vendor/index.d.ts.map +1 -1
  374. package/dist/humain/web-access/vendor/index.js +58 -54
  375. package/dist/humain/web-access/vendor/index.js.map +1 -1
  376. package/dist/humain/web-access/vendor/jina-search.d.ts.map +1 -1
  377. package/dist/humain/web-access/vendor/jina-search.js.map +1 -1
  378. package/dist/humain/web-access/vendor/kagi.d.ts.map +1 -1
  379. package/dist/humain/web-access/vendor/kagi.js.map +1 -1
  380. package/dist/humain/web-access/vendor/ollama.d.ts.map +1 -1
  381. package/dist/humain/web-access/vendor/ollama.js.map +1 -1
  382. package/dist/humain/web-access/vendor/openai-search.d.ts +1 -1
  383. package/dist/humain/web-access/vendor/openai-search.d.ts.map +1 -1
  384. package/dist/humain/web-access/vendor/openai-search.js +15 -5
  385. package/dist/humain/web-access/vendor/openai-search.js.map +1 -1
  386. package/dist/humain/web-access/vendor/page-query.d.ts +1 -2
  387. package/dist/humain/web-access/vendor/page-query.d.ts.map +1 -1
  388. package/dist/humain/web-access/vendor/page-query.js +5 -2
  389. package/dist/humain/web-access/vendor/page-query.js.map +1 -1
  390. package/dist/humain/web-access/vendor/parallel-mcp.d.ts +10 -0
  391. package/dist/humain/web-access/vendor/parallel-mcp.d.ts.map +1 -0
  392. package/dist/humain/web-access/vendor/parallel-mcp.js +224 -0
  393. package/dist/humain/web-access/vendor/parallel-mcp.js.map +1 -0
  394. package/dist/humain/web-access/vendor/parallel.d.ts +1 -0
  395. package/dist/humain/web-access/vendor/parallel.d.ts.map +1 -1
  396. package/dist/humain/web-access/vendor/parallel.js +2 -2
  397. package/dist/humain/web-access/vendor/parallel.js.map +1 -1
  398. package/dist/humain/web-access/vendor/pdf-extract.d.ts +1 -0
  399. package/dist/humain/web-access/vendor/pdf-extract.d.ts.map +1 -1
  400. package/dist/humain/web-access/vendor/pdf-extract.js +15 -5
  401. package/dist/humain/web-access/vendor/pdf-extract.js.map +1 -1
  402. package/dist/humain/web-access/vendor/perplexity.d.ts.map +1 -1
  403. package/dist/humain/web-access/vendor/perplexity.js.map +1 -1
  404. package/dist/humain/web-access/vendor/querit.d.ts.map +1 -1
  405. package/dist/humain/web-access/vendor/querit.js.map +1 -1
  406. package/dist/humain/web-access/vendor/query-rewrite.d.ts +3 -0
  407. package/dist/humain/web-access/vendor/query-rewrite.d.ts.map +1 -0
  408. package/dist/humain/web-access/vendor/query-rewrite.js +42 -0
  409. package/dist/humain/web-access/vendor/query-rewrite.js.map +1 -0
  410. package/dist/humain/web-access/vendor/render-search-error.d.ts.map +1 -1
  411. package/dist/humain/web-access/vendor/render-search-error.js.map +1 -1
  412. package/dist/humain/web-access/vendor/rsc-extract.d.ts.map +1 -1
  413. package/dist/humain/web-access/vendor/rsc-extract.js.map +1 -1
  414. package/dist/humain/web-access/vendor/search1api.d.ts.map +1 -1
  415. package/dist/humain/web-access/vendor/search1api.js.map +1 -1
  416. package/dist/humain/web-access/vendor/searchinfinity.d.ts.map +1 -1
  417. package/dist/humain/web-access/vendor/searchinfinity.js.map +1 -1
  418. package/dist/humain/web-access/vendor/searxng.d.ts.map +1 -1
  419. package/dist/humain/web-access/vendor/searxng.js.map +1 -1
  420. package/dist/humain/web-access/vendor/serpbase.d.ts.map +1 -1
  421. package/dist/humain/web-access/vendor/serpbase.js.map +1 -1
  422. package/dist/humain/web-access/vendor/serpdive.d.ts.map +1 -1
  423. package/dist/humain/web-access/vendor/serpdive.js.map +1 -1
  424. package/dist/humain/web-access/vendor/serper.d.ts +4 -0
  425. package/dist/humain/web-access/vendor/serper.d.ts.map +1 -0
  426. package/dist/humain/web-access/vendor/serper.js +206 -0
  427. package/dist/humain/web-access/vendor/serper.js.map +1 -0
  428. package/dist/humain/web-access/vendor/source-check.d.ts.map +1 -1
  429. package/dist/humain/web-access/vendor/source-check.js.map +1 -1
  430. package/dist/humain/web-access/vendor/ssrf-protection.d.ts +2 -0
  431. package/dist/humain/web-access/vendor/ssrf-protection.d.ts.map +1 -1
  432. package/dist/humain/web-access/vendor/ssrf-protection.js +11 -2
  433. package/dist/humain/web-access/vendor/ssrf-protection.js.map +1 -1
  434. package/dist/humain/web-access/vendor/storage.d.ts.map +1 -1
  435. package/dist/humain/web-access/vendor/storage.js.map +1 -1
  436. package/dist/humain/web-access/vendor/summary-model-scope.d.ts +5 -0
  437. package/dist/humain/web-access/vendor/summary-model-scope.d.ts.map +1 -1
  438. package/dist/humain/web-access/vendor/summary-model-scope.js +10 -5
  439. package/dist/humain/web-access/vendor/summary-model-scope.js.map +1 -1
  440. package/dist/humain/web-access/vendor/summary-review.d.ts.map +1 -1
  441. package/dist/humain/web-access/vendor/summary-review.js +40 -14
  442. package/dist/humain/web-access/vendor/summary-review.js.map +1 -1
  443. package/dist/humain/web-access/vendor/tavily.d.ts.map +1 -1
  444. package/dist/humain/web-access/vendor/tavily.js +14 -4
  445. package/dist/humain/web-access/vendor/tavily.js.map +1 -1
  446. package/dist/humain/web-access/vendor/tinyfish.d.ts.map +1 -1
  447. package/dist/humain/web-access/vendor/tinyfish.js.map +1 -1
  448. package/dist/humain/web-access/vendor/utils.d.ts +10 -0
  449. package/dist/humain/web-access/vendor/utils.d.ts.map +1 -1
  450. package/dist/humain/web-access/vendor/utils.js +70 -0
  451. package/dist/humain/web-access/vendor/utils.js.map +1 -1
  452. package/dist/humain/web-access/vendor/valyu.d.ts +6 -0
  453. package/dist/humain/web-access/vendor/valyu.d.ts.map +1 -0
  454. package/dist/humain/web-access/vendor/valyu.js +194 -0
  455. package/dist/humain/web-access/vendor/valyu.js.map +1 -0
  456. package/dist/humain/web-access/vendor/video-extract.d.ts.map +1 -1
  457. package/dist/humain/web-access/vendor/video-extract.js.map +1 -1
  458. package/dist/humain/web-access/vendor/xai-search.d.ts.map +1 -1
  459. package/dist/humain/web-access/vendor/xai-search.js.map +1 -1
  460. package/dist/humain/web-access/vendor/youtube-extract.d.ts.map +1 -1
  461. package/dist/humain/web-access/vendor/youtube-extract.js.map +1 -1
  462. package/dist/index.d.ts +1 -1
  463. package/dist/index.d.ts.map +1 -1
  464. package/dist/index.js.map +1 -1
  465. package/dist/main.d.ts.map +1 -1
  466. package/dist/main.js +4 -0
  467. package/dist/main.js.map +1 -1
  468. package/dist/migrations.d.ts.map +1 -1
  469. package/dist/migrations.js.map +1 -1
  470. package/dist/modes/agent-exec-mode.d.ts.map +1 -1
  471. package/dist/modes/agent-exec-mode.js.map +1 -1
  472. package/dist/modes/index.d.ts.map +1 -1
  473. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  474. package/dist/modes/interactive/components/armin.js +6 -10
  475. package/dist/modes/interactive/components/armin.js.map +1 -1
  476. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  477. package/dist/modes/interactive/components/assistant-message.js +2 -9
  478. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  479. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  480. package/dist/modes/interactive/components/bash-execution.js +4 -9
  481. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  482. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  483. package/dist/modes/interactive/components/bordered-loader.js +0 -3
  484. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  485. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  486. package/dist/modes/interactive/components/branch-summary-message.js +1 -3
  487. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  488. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  489. package/dist/modes/interactive/components/compaction-summary-message.js +1 -3
  490. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  491. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  492. package/dist/modes/interactive/components/config-selector.js +5 -22
  493. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  494. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  495. package/dist/modes/interactive/components/countdown-timer.js +0 -5
  496. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  497. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  498. package/dist/modes/interactive/components/custom-editor.js +1 -8
  499. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  500. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  501. package/dist/modes/interactive/components/custom-entry.js +1 -4
  502. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  503. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  504. package/dist/modes/interactive/components/custom-message.js +1 -7
  505. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  506. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  507. package/dist/modes/interactive/components/daxnuts.js +6 -8
  508. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  509. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  510. package/dist/modes/interactive/components/diff.js +2 -2
  511. package/dist/modes/interactive/components/diff.js.map +1 -1
  512. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  513. package/dist/modes/interactive/components/dynamic-border.js +0 -1
  514. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  515. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  516. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  517. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  518. package/dist/modes/interactive/components/extension-editor.js +1 -7
  519. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  520. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  521. package/dist/modes/interactive/components/extension-input.js +2 -8
  522. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  523. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  524. package/dist/modes/interactive/components/extension-selector.js +1 -9
  525. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  526. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  527. package/dist/modes/interactive/components/first-time-setup.js +2 -4
  528. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  529. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  530. package/dist/modes/interactive/components/footer.js +1 -3
  531. package/dist/modes/interactive/components/footer.js.map +1 -1
  532. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  533. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  534. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  535. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  536. package/dist/modes/interactive/components/login-dialog.js +3 -9
  537. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  538. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  539. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  540. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  541. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  542. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  543. package/dist/modes/interactive/components/model-selector.js +14 -26
  544. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  545. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  546. package/dist/modes/interactive/components/oauth-selector.js +3 -11
  547. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  548. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  549. package/dist/modes/interactive/components/scoped-models-selector.js +9 -14
  550. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  551. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  552. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  553. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  554. package/dist/modes/interactive/components/session-selector.js +33 -57
  555. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  556. package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  557. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  558. package/dist/modes/interactive/components/settings-selector.js +10 -14
  559. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  560. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  561. package/dist/modes/interactive/components/show-images-selector.js +0 -1
  562. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  563. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  564. package/dist/modes/interactive/components/skill-invocation-message.js +1 -3
  565. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  566. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  567. package/dist/modes/interactive/components/status-indicator.js +0 -2
  568. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  569. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  570. package/dist/modes/interactive/components/theme-selector.js +0 -2
  571. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  572. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  573. package/dist/modes/interactive/components/thinking-selector.js +0 -1
  574. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  575. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  576. package/dist/modes/interactive/components/tool-execution.js +19 -25
  577. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  578. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  579. package/dist/modes/interactive/components/tree-selector.js +18 -34
  580. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  581. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  582. package/dist/modes/interactive/components/trust-selector.js +0 -6
  583. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  584. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  585. package/dist/modes/interactive/components/user-message-selector.js +3 -6
  586. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  587. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  588. package/dist/modes/interactive/components/user-message.js +0 -4
  589. package/dist/modes/interactive/components/user-message.js.map +1 -1
  590. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  591. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  592. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  593. package/dist/modes/interactive/external-editor.js.map +1 -1
  594. package/dist/modes/interactive/interactive-mode.d.ts +18 -2
  595. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  596. package/dist/modes/interactive/interactive-mode.js +147 -137
  597. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  598. package/dist/modes/interactive/model-catalog-refresh.d.ts +7 -0
  599. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  600. package/dist/modes/interactive/model-catalog-refresh.js +36 -0
  601. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -0
  602. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  603. package/dist/modes/interactive/model-search.js.map +1 -1
  604. package/dist/modes/interactive/theme/dark.json +2 -0
  605. package/dist/modes/interactive/theme/light.json +2 -0
  606. package/dist/modes/interactive/theme/theme-controller.d.ts +10 -2
  607. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  608. package/dist/modes/interactive/theme/theme-controller.js +25 -18
  609. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  610. package/dist/modes/interactive/theme/theme-schema.json +9 -1
  611. package/dist/modes/interactive/theme/theme.d.ts +7 -5
  612. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  613. package/dist/modes/interactive/theme/theme.js +12 -8
  614. package/dist/modes/interactive/theme/theme.js.map +1 -1
  615. package/dist/modes/json-event.d.ts +4 -1
  616. package/dist/modes/json-event.d.ts.map +1 -1
  617. package/dist/modes/json-event.js +5 -2
  618. package/dist/modes/json-event.js.map +1 -1
  619. package/dist/modes/print-mode.d.ts.map +1 -1
  620. package/dist/modes/print-mode.js.map +1 -1
  621. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  622. package/dist/modes/rpc/jsonl.js.map +1 -1
  623. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  624. package/dist/modes/rpc/rpc-client.js +9 -10
  625. package/dist/modes/rpc/rpc-client.js.map +1 -1
  626. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  627. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  628. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  629. package/dist/package-manager-cli.d.ts.map +1 -1
  630. package/dist/package-manager-cli.js.map +1 -1
  631. package/dist/rpc-entry.d.ts.map +1 -1
  632. package/dist/rpc-entry.js.map +1 -1
  633. package/dist/server/create-harness.d.ts.map +1 -1
  634. package/dist/server/create-harness.js +2 -0
  635. package/dist/server/create-harness.js.map +1 -1
  636. package/dist/utils/abort.d.ts.map +1 -1
  637. package/dist/utils/abort.js.map +1 -1
  638. package/dist/utils/ansi.d.ts.map +1 -1
  639. package/dist/utils/ansi.js.map +1 -1
  640. package/dist/utils/changelog.d.ts.map +1 -1
  641. package/dist/utils/changelog.js.map +1 -1
  642. package/dist/utils/child-process.d.ts.map +1 -1
  643. package/dist/utils/child-process.js.map +1 -1
  644. package/dist/utils/clipboard-image.d.ts.map +1 -1
  645. package/dist/utils/clipboard-image.js +1 -1
  646. package/dist/utils/clipboard-image.js.map +1 -1
  647. package/dist/utils/clipboard-native.d.ts.map +1 -1
  648. package/dist/utils/clipboard-native.js.map +1 -1
  649. package/dist/utils/clipboard.d.ts.map +1 -1
  650. package/dist/utils/clipboard.js.map +1 -1
  651. package/dist/utils/deprecation.d.ts.map +1 -1
  652. package/dist/utils/deprecation.js.map +1 -1
  653. package/dist/utils/exif-orientation.d.ts.map +1 -1
  654. package/dist/utils/exif-orientation.js.map +1 -1
  655. package/dist/utils/frontmatter.d.ts.map +1 -1
  656. package/dist/utils/frontmatter.js.map +1 -1
  657. package/dist/utils/fs-watch.d.ts.map +1 -1
  658. package/dist/utils/fs-watch.js.map +1 -1
  659. package/dist/utils/git.d.ts.map +1 -1
  660. package/dist/utils/git.js.map +1 -1
  661. package/dist/utils/html.d.ts.map +1 -1
  662. package/dist/utils/html.js.map +1 -1
  663. package/dist/utils/image-convert.d.ts.map +1 -1
  664. package/dist/utils/image-convert.js.map +1 -1
  665. package/dist/utils/image-process.d.ts.map +1 -1
  666. package/dist/utils/image-process.js.map +1 -1
  667. package/dist/utils/image-resize-core.d.ts.map +1 -1
  668. package/dist/utils/image-resize-core.js.map +1 -1
  669. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  670. package/dist/utils/image-resize-worker.js.map +1 -1
  671. package/dist/utils/image-resize.d.ts.map +1 -1
  672. package/dist/utils/image-resize.js.map +1 -1
  673. package/dist/utils/json.d.ts.map +1 -1
  674. package/dist/utils/json.js.map +1 -1
  675. package/dist/utils/management-http.d.ts.map +1 -1
  676. package/dist/utils/management-http.js.map +1 -1
  677. package/dist/utils/mime.d.ts.map +1 -1
  678. package/dist/utils/mime.js.map +1 -1
  679. package/dist/utils/open-browser.d.ts.map +1 -1
  680. package/dist/utils/open-browser.js.map +1 -1
  681. package/dist/utils/paths.d.ts.map +1 -1
  682. package/dist/utils/paths.js.map +1 -1
  683. package/dist/utils/photon.d.ts.map +1 -1
  684. package/dist/utils/photon.js.map +1 -1
  685. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  686. package/dist/utils/pi-user-agent.js.map +1 -1
  687. package/dist/utils/shell.d.ts.map +1 -1
  688. package/dist/utils/shell.js.map +1 -1
  689. package/dist/utils/sleep.d.ts.map +1 -1
  690. package/dist/utils/sleep.js.map +1 -1
  691. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  692. package/dist/utils/syntax-highlight.js +1 -1
  693. package/dist/utils/syntax-highlight.js.map +1 -1
  694. package/dist/utils/tool-result-images.d.ts.map +1 -1
  695. package/dist/utils/tool-result-images.js.map +1 -1
  696. package/dist/utils/tools-manager.d.ts +10 -1
  697. package/dist/utils/tools-manager.d.ts.map +1 -1
  698. package/dist/utils/tools-manager.js +14 -19
  699. package/dist/utils/tools-manager.js.map +1 -1
  700. package/dist/utils/version-check.d.ts.map +1 -1
  701. package/dist/utils/version-check.js.map +1 -1
  702. package/dist/utils/windows-self-update.d.ts.map +1 -1
  703. package/dist/utils/windows-self-update.js.map +1 -1
  704. package/docs/compaction.md +3 -3
  705. package/docs/custom-provider.md +1 -1
  706. package/docs/environment-variables.md +1 -0
  707. package/docs/extensions.md +5 -1
  708. package/docs/json.md +6 -4
  709. package/docs/keybindings.md +8 -2
  710. package/docs/rpc.md +15 -4
  711. package/docs/sdk.md +9 -0
  712. package/docs/settings.md +31 -0
  713. package/docs/terminal-setup.md +23 -2
  714. package/docs/themes.md +23 -3
  715. package/docs/tui.md +2 -2
  716. package/docs/usage.md +3 -2
  717. package/examples/extensions/README.md +1 -1
  718. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  719. package/examples/extensions/custom-provider-anthropic/package.json +2 -2
  720. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  721. package/examples/extensions/gondolin/package-lock.json +2 -2
  722. package/examples/extensions/gondolin/package.json +1 -1
  723. package/examples/extensions/minimal-mode.ts +6 -6
  724. package/examples/extensions/sandbox/package-lock.json +2 -2
  725. package/examples/extensions/sandbox/package.json +2 -2
  726. package/examples/extensions/subagent/README.md +24 -147
  727. package/examples/extensions/with-deps/package-lock.json +2 -2
  728. package/examples/extensions/with-deps/package.json +1 -1
  729. package/npm-shrinkwrap.json +853 -661
  730. package/package.json +33 -33
  731. package/src/humain/mcp-adapter/UPSTREAM.md +1 -1
  732. package/src/humain/mcp-adapter/upstream.json +3 -3
  733. package/src/humain/mcp-adapter/vendor/CHANGELOG.md +36 -0
  734. package/src/humain/web-access/UPSTREAM.md +1 -1
  735. package/src/humain/web-access/upstream.json +4 -4
  736. package/examples/extensions/subagent/agents.ts +0 -126
  737. package/examples/extensions/subagent/index.ts +0 -1015
@@ -73,6 +73,11 @@ function printHelp(log = console.log) {
73
73
  log(" pi-mcp-adapter init Detect host configs and scaffold Pi imports");
74
74
  log(" pi-mcp-adapter init --dry-run");
75
75
  log(" pi-mcp-adapter init --discover-host-configs Opt in to host config fallback discovery");
76
+ log("");
77
+ log("Bearer token storage (servers configured with auth: \"bearer\" and bearerTokenStore: true):");
78
+ log(" pi-mcp-adapter token set <server> Store a token read from stdin (masked prompt or pipe; never argv)");
79
+ log(" pi-mcp-adapter token status <server> Report whether a stored token matches the configured URL");
80
+ log(" pi-mcp-adapter token remove <server> Remove the stored token");
76
81
  }
77
82
 
78
83
  function readJsonFile(filePath) {
@@ -194,7 +199,160 @@ async function runInit(argv, log = console.log) {
194
199
  return 0;
195
200
  }
196
201
 
197
- export async function main(argv = process.argv.slice(2), log = console.log, error = console.error) {
202
+ async function importTokenModules(error) {
203
+ try {
204
+ const [store, config, utils] = await Promise.all([
205
+ import("./mcp-bearer-store.ts"),
206
+ import("./config.ts"),
207
+ import("./utils.ts"),
208
+ ]);
209
+ return { store, config, utils };
210
+ } catch (err) {
211
+ error("Token commands need a Node.js version that can load TypeScript modules (Node 22.18+ or 23+).");
212
+ error(`Import failed: ${err instanceof Error ? err.message : String(err)}`);
213
+ return undefined;
214
+ }
215
+ }
216
+
217
+ function readTokenFromStdin(stdin) {
218
+ if (stdin.isTTY) return readTokenMasked(stdin);
219
+ return new Promise((resolve, reject) => {
220
+ let data = "";
221
+ stdin.setEncoding("utf8");
222
+ stdin.on("data", (chunk) => {
223
+ data += chunk;
224
+ });
225
+ stdin.on("end", () => resolve(data.replace(/[\r\n]+$/, "")));
226
+ stdin.on("error", reject);
227
+ });
228
+ }
229
+
230
+ // Raw-mode masked prompt: the token never echoes to the terminal.
231
+ function readTokenMasked(stdin) {
232
+ return new Promise((resolve, reject) => {
233
+ process.stderr.write("Enter bearer token (input hidden): ");
234
+ stdin.setRawMode(true);
235
+ stdin.resume();
236
+ stdin.setEncoding("utf8");
237
+ let token = "";
238
+ const onData = (chunk) => {
239
+ for (const char of chunk) {
240
+ if (char === "\u0003") {
241
+ cleanup();
242
+ reject(new Error("Token entry cancelled"));
243
+ return;
244
+ }
245
+ if (char === "\r" || char === "\n") {
246
+ cleanup();
247
+ resolve(token);
248
+ return;
249
+ }
250
+ if (char === "\u007f" || char === "\b") {
251
+ token = token.slice(0, -1);
252
+ continue;
253
+ }
254
+ token += char;
255
+ }
256
+ };
257
+ const cleanup = () => {
258
+ stdin.setRawMode(false);
259
+ stdin.pause();
260
+ stdin.off("data", onData);
261
+ process.stderr.write("\n");
262
+ };
263
+ stdin.on("data", onData);
264
+ });
265
+ }
266
+
267
+ async function runToken(argv, log, error, stdin) {
268
+ const [action, serverName, ...extra] = argv;
269
+ if (!["set", "status", "remove"].includes(action) || !serverName) {
270
+ error("Usage: pi-mcp-adapter token <set|status|remove> <server>");
271
+ error("`token set` reads the token from stdin only. Never pass the token as an argument.");
272
+ return 1;
273
+ }
274
+ if (extra.length > 0) {
275
+ error("Unexpected extra arguments. The token must not be passed on the command line; pipe it on stdin or use the interactive prompt.");
276
+ return 1;
277
+ }
278
+
279
+ const modules = await importTokenModules(error);
280
+ if (!modules) return 1;
281
+
282
+ // Argv-derived text is sanitized before terminal output, and the resolved
283
+ // URL is never printed: it can embed userinfo or interpolated secrets.
284
+ const safeName = modules.utils.sanitizeTerminalText(serverName);
285
+ const definition = modules.config.loadMcpConfig(undefined, process.cwd()).mcpServers[serverName];
286
+ if (!definition) {
287
+ error(`Server "${safeName}" not found in the effective MCP config.`);
288
+ return 1;
289
+ }
290
+ if (definition.auth !== "bearer" || definition.bearerTokenStore !== true) {
291
+ error(`Server "${safeName}" is not configured for bearerTokenStore. Set "auth": "bearer" and "bearerTokenStore": true.`);
292
+ return 1;
293
+ }
294
+ // resolveServerUrl embeds the interpolated URL in its exceptions, so catch
295
+ // and redact: the URL can carry userinfo or interpolated secrets.
296
+ let serverUrl;
297
+ try {
298
+ serverUrl = modules.utils.resolveServerUrl(definition);
299
+ } catch {
300
+ error(`Server "${safeName}" has an invalid or unresolvable URL. Fix the server's url in the MCP config and retry.`);
301
+ return 1;
302
+ }
303
+ if (!serverUrl) {
304
+ error(`Server "${safeName}" has no URL configured.`);
305
+ return 1;
306
+ }
307
+
308
+ if (action === "set") {
309
+ const token = await readTokenFromStdin(stdin);
310
+ if (!token) {
311
+ error("No token provided on stdin.");
312
+ return 1;
313
+ }
314
+ try {
315
+ modules.store.saveBearerTokenForUrl(serverName, token, serverUrl);
316
+ } catch (err) {
317
+ error(modules.utils.sanitizeTerminalText(err instanceof Error ? err.message : String(err)));
318
+ return 1;
319
+ }
320
+ log(`Bearer token stored for "${safeName}" and bound to the configured server URL.`);
321
+ if (definition.bearerToken !== undefined || definition.bearerTokenEnv !== undefined) {
322
+ log("Note: this server also configures bearerToken or bearerTokenEnv, which take precedence over the stored token.");
323
+ }
324
+ return 0;
325
+ }
326
+
327
+ if (action === "status") {
328
+ const status = modules.store.inspectBearerTokenForUrl(serverName, serverUrl);
329
+ if (status.status === "present") {
330
+ log(`Bearer token is stored for "${safeName}".`);
331
+ return 0;
332
+ }
333
+ if (status.status === "url-mismatch") {
334
+ log(`Bearer token is stored for "${safeName}", but its URL does not match the current server URL. Run \`pi-mcp-adapter token set ${safeName}\` to rebind it.`);
335
+ return 1;
336
+ }
337
+ if (status.status === "unavailable") {
338
+ error(status.message);
339
+ return 1;
340
+ }
341
+ log(`No bearer token is stored for "${safeName}".`);
342
+ return 1;
343
+ }
344
+
345
+ try {
346
+ modules.store.removeBearerToken(serverName);
347
+ } catch (err) {
348
+ error(modules.utils.sanitizeTerminalText(err instanceof Error ? err.message : String(err)));
349
+ return 1;
350
+ }
351
+ log(`Bearer token removed for "${safeName}".`);
352
+ return 0;
353
+ }
354
+
355
+ export async function main(argv = process.argv.slice(2), log = console.log, error = console.error, stdin = process.stdin) {
198
356
  const [command, ...rest] = argv;
199
357
 
200
358
  if (!command || command === "help" || command === "--help" || command === "-h") {
@@ -202,6 +360,10 @@ export async function main(argv = process.argv.slice(2), log = console.log, erro
202
360
  return 0;
203
361
  }
204
362
 
363
+ if (command === "token") {
364
+ return runToken(rest, log, error, stdin);
365
+ }
366
+
205
367
  if (command === "install") {
206
368
  error("The custom downloader has been retired.");
207
369
  error("Use `pi install npm:pi-mcp-adapter` instead, then optionally run `pi-mcp-adapter init`.");
@@ -1,4 +1,5 @@
1
1
  import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
2
+ import type { OverlayHandle } from "@earendil-works/pi-tui";
2
3
  import type { McpExtensionState } from "./state.ts";
3
4
  import { isServerDisabled, type McpAuthResult, type McpConfig, type McpPanelCallbacks, type McpPanelResult, type ImportKind } from "./types.ts";
4
5
  import {
@@ -20,6 +21,7 @@ import { loadMetadataCache, reconstructPromptMetadata } from "./metadata-cache.t
20
21
  import { buildToolMetadata } from "./tool-metadata.ts";
21
22
  import { supportsOAuth, authenticate, removeAuth, type McpOAuthRuntime } from "./mcp-auth-flow.ts";
22
23
  import { getAuthStorageOptions, inspectAuthForUrl } from "./mcp-auth.ts";
24
+ import { inspectBearerTokenForUrl, removeBearerToken } from "./mcp-bearer-store.ts";
23
25
  import { loadOnboardingState, markSetupCompleted as persistSetupCompleted, markSharedConfigHintShown } from "./onboarding-state.ts";
24
26
  import { openPath, resolveServerUrl, sanitizeTerminalText } from "./utils.ts";
25
27
  import { isAbortError } from "./runtime-owner.ts";
@@ -28,6 +30,19 @@ function terminalHyperlink(label: string, url: string): string {
28
30
  return `\u001B]8;;${sanitizeTerminalText(url)}\u001B\\${sanitizeTerminalText(label)}\u001B]8;;\u001B\\`;
29
31
  }
30
32
 
33
+ /**
34
+ * True when this run mode can display a `ctx.ui.custom()` overlay.
35
+ *
36
+ * `ctx.hasUI` only reports that *some* UI context is bound. In rpc/print mode
37
+ * that context is a headless stub whose `custom()` returns immediately without
38
+ * ever invoking the factory or the `done` callback, so a panel awaited through
39
+ * `new Promise(resolve => ctx.ui.custom(...))` never settles and the command
40
+ * hangs. Overlay panels therefore additionally require `ctx.mode === "tui"`.
41
+ */
42
+ function canRenderPanel(ctx: ExtensionContext): boolean {
43
+ return ctx.hasUI && ctx.mode === "tui";
44
+ }
45
+
31
46
  export async function showStatus(state: McpExtensionState, ctx: ExtensionContext): Promise<void> {
32
47
  if (!ctx.hasUI) return;
33
48
 
@@ -274,25 +289,14 @@ export async function authenticateServer(
274
289
  const authStorageOptions = getAuthStorageOptions(config.settings?.oauthDir, cwd);
275
290
  const status = await authenticate(serverName, serverUrl, definition, {
276
291
  ...(authStorageOptions.baseDir ? { authStorageOptions } : {}),
277
- onAuthorizationUrl: (authorizationUrl) => {
278
- ui.notify(
279
- `Open this URL to authenticate ${serverName}:\n\n${terminalHyperlink(authorizationUrl, authorizationUrl)}\n\n` +
280
- "After approving, Pi will complete automatically if the browser can reach its localhost callback. " +
281
- "On a remote machine, copy the full localhost URL from the browser address bar and paste it into Pi.",
282
- "info"
283
- );
284
- },
292
+ onAuthorizationUrl: () => {},
285
293
  onAuthorizationInput: async (authorizationUrl, inputSignal) => {
286
- const readyToPaste = await ui.confirm(
287
- `Authorize ${serverName}`,
288
- `Open this link in your browser:\n${terminalHyperlink(authorizationUrl, authorizationUrl)}\n\n` +
289
- "After approving access, select Yes to paste the callback URL.",
290
- { signal: inputSignal },
291
- );
292
- if (!readyToPaste || inputSignal.aborted) return undefined;
294
+ if (inputSignal.aborted) return undefined;
293
295
  return ui.input(
294
- `Complete ${serverName} OAuth`,
295
- "Paste the full callback URL",
296
+ `Complete ${serverName} OAuth\n\n` +
297
+ `${terminalHyperlink("Open authorization page", authorizationUrl)}\n${authorizationUrl}\n\n` +
298
+ "Approve access, then paste the full localhost callback URL below.",
299
+ undefined,
296
300
  { signal: inputSignal },
297
301
  );
298
302
  },
@@ -368,6 +372,75 @@ export async function logoutServer(
368
372
  return { ok: true, message };
369
373
  }
370
374
 
375
+ function validateBearerTokenStoreServer(
376
+ serverName: string,
377
+ state: McpExtensionState,
378
+ ): { ok: true; serverUrl: string } | { ok: false; message: string; type: "error" | "warning" } {
379
+ const safeName = sanitizeTerminalText(serverName);
380
+ const definition = state.config.mcpServers[serverName];
381
+ if (!definition) return { ok: false, message: `Server "${safeName}" not found in config`, type: "error" };
382
+ if (isServerDisabled(definition)) return { ok: false, message: `Server "${safeName}" is disabled. Run /mcp enable ${safeName}, then /reload.`, type: "warning" };
383
+ if (definition.auth !== "bearer" || definition.bearerTokenStore !== true) {
384
+ return { ok: false, message: `Server "${safeName}" is not configured for bearerTokenStore.`, type: "error" };
385
+ }
386
+ // resolveServerUrl embeds the interpolated URL in its exceptions; redact it
387
+ // because the URL can carry userinfo or interpolated secrets.
388
+ let serverUrl: string | undefined;
389
+ try {
390
+ serverUrl = resolveServerUrl(definition);
391
+ } catch {
392
+ return { ok: false, message: `Server "${safeName}" has an invalid or unresolvable URL.`, type: "error" };
393
+ }
394
+ if (!serverUrl) return { ok: false, message: `Server "${safeName}" has no URL configured.`, type: "error" };
395
+ return { ok: true, serverUrl };
396
+ }
397
+
398
+ export async function manageBearerToken(
399
+ action: "set" | "remove" | "status",
400
+ serverName: string,
401
+ state: McpExtensionState,
402
+ ctx: ExtensionContext,
403
+ ): Promise<{ ok: boolean; message: string }> {
404
+ const ui = ctx.hasUI ? ctx.ui : undefined;
405
+ const safeName = sanitizeTerminalText(serverName);
406
+ const validation = validateBearerTokenStoreServer(serverName, state);
407
+ if (!validation.ok) {
408
+ if (ui) ui.notify(validation.message, validation.type);
409
+ return { ok: false, message: validation.message };
410
+ }
411
+
412
+ if (action === "set") {
413
+ const message = `Cannot store bearer token here: Pi extension UI has no masked secret input primitive. Run \`pi-mcp-adapter token set ${safeName}\` in a terminal; it reads the token from stdin only.`;
414
+ if (ui) ui.notify(message, "error");
415
+ return { ok: false, message };
416
+ }
417
+
418
+ if (action === "status") {
419
+ const status = inspectBearerTokenForUrl(serverName, validation.serverUrl);
420
+ const message = status.status === "present"
421
+ ? `Bearer token is stored for "${safeName}".`
422
+ : status.status === "url-mismatch"
423
+ ? `Bearer token is stored for "${safeName}", but its URL does not match the current server URL.`
424
+ : status.status === "unavailable"
425
+ ? status.message
426
+ : `No bearer token is stored for "${safeName}".`;
427
+ if (ui) ui.notify(message, status.status === "unavailable" ? "error" : "info");
428
+ return { ok: status.status !== "unavailable", message };
429
+ }
430
+
431
+ try {
432
+ removeBearerToken(serverName);
433
+ } catch (error) {
434
+ const message = error instanceof Error ? error.message : String(error);
435
+ if (ui) ui.notify(`Failed to remove bearer token for "${safeName}": ${sanitizeTerminalText(message)}`, "error");
436
+ return { ok: false, message };
437
+ }
438
+
439
+ const message = `Bearer token removed for "${safeName}".`;
440
+ if (ui) ui.notify(message, "info");
441
+ return { ok: true, message };
442
+ }
443
+
371
444
  export interface PanelFlowResult {
372
445
  configChanged: boolean;
373
446
  }
@@ -399,6 +472,10 @@ export async function openMcpSetup(
399
472
  options: { includeHostConfigs?: boolean } = {},
400
473
  ): Promise<PanelFlowResult> {
401
474
  if (!ctx.hasUI) return { configChanged: false };
475
+ if (!canRenderPanel(ctx)) {
476
+ ctx.ui.notify(`The interactive MCP setup panel is only available in the terminal UI (current mode: ${ctx.mode}). Edit .mcp.json directly, or run /mcp status to review servers.`, "info");
477
+ return { configChanged: false };
478
+ }
402
479
  if (state.programmaticConfig) {
403
480
  ctx.ui.notify("MCP setup is unavailable when config is supplied by createMcpAdapter().", "info");
404
481
  return { configChanged: false };
@@ -467,6 +544,7 @@ function buildMcpPanelCallbacks(
467
544
  state: McpExtensionState,
468
545
  config: McpConfig,
469
546
  ctx: ExtensionContext,
547
+ getOverlayHandle?: () => OverlayHandle | undefined,
470
548
  ): McpPanelCallbacks {
471
549
  // Panel-only diagnostics keep status inspection from mutating connection
472
550
  // failure state while allowing the existing panel failure UI to show why the
@@ -479,7 +557,16 @@ function buildMcpPanelCallbacks(
479
557
  const definition = config.mcpServers[serverName];
480
558
  return definition ? !isServerDisabled(definition) && supportsOAuth(definition) : false;
481
559
  },
482
- authenticate: (serverName: string) => authenticateServer(serverName, config, ctx, state.owner?.signal, state.oauthRuntime),
560
+ authenticate: async (serverName: string) => {
561
+ const overlay = getOverlayHandle?.();
562
+ overlay?.setHidden(true);
563
+ try {
564
+ return await authenticateServer(serverName, config, ctx, state.owner?.signal, state.oauthRuntime);
565
+ } finally {
566
+ overlay?.setHidden(false);
567
+ overlay?.focus();
568
+ }
569
+ },
483
570
  getConnectionStatus: (serverName: string) => {
484
571
  authStatusFailures.delete(serverName);
485
572
  const definition = config.mcpServers[serverName];
@@ -533,6 +620,11 @@ export async function openMcpPanel(
533
620
  }
534
621
  return { configChanged: false };
535
622
  }
623
+ if (!canRenderPanel(ctx)) {
624
+ // No overlay here, but the same information is available as text.
625
+ await showStatus(state, ctx);
626
+ return { configChanged: false };
627
+ }
536
628
  if (Object.keys(state.config.mcpServers).length === 0) {
537
629
  return openMcpSetup(state, pi, ctx, configOverridePath, "empty", { includeHostConfigs: false });
538
630
  }
@@ -543,7 +635,8 @@ export async function openMcpPanel(
543
635
  const provenanceMap = getServerProvenance(configPath, ctx.cwd);
544
636
  const { lines: noticeLines, fingerprint } = buildSharedConfigNoticeLines(configPath, ctx.cwd);
545
637
 
546
- const callbacks = buildMcpPanelCallbacks(state, config, ctx);
638
+ let overlayHandle: OverlayHandle | undefined;
639
+ const callbacks = buildMcpPanelCallbacks(state, config, ctx, () => overlayHandle);
547
640
 
548
641
  const { createMcpPanel } = await import("./mcp-panel.ts");
549
642
  let configChanged = false;
@@ -569,7 +662,11 @@ export async function openMcpPanel(
569
662
  });
570
663
  }, { noticeLines, keybindings });
571
664
  },
572
- { overlay: true, overlayOptions: { anchor: "center", width: 82 } },
665
+ {
666
+ overlay: true,
667
+ overlayOptions: { anchor: "center", width: 82 },
668
+ onHandle: (handle) => { overlayHandle = handle; },
669
+ },
573
670
  );
574
671
  });
575
672
 
@@ -587,6 +684,10 @@ export async function openMcpAuthPanel(
587
684
  configOverridePath?: string,
588
685
  ): Promise<PanelFlowResult> {
589
686
  if (!ctx.hasUI) return { configChanged: false };
687
+ if (!canRenderPanel(ctx)) {
688
+ ctx.ui.notify(`The interactive MCP auth panel is only available in the terminal UI (current mode: ${ctx.mode}). Use /mcp-auth <server> to authenticate a specific server.`, "info");
689
+ return { configChanged: false };
690
+ }
590
691
  if (state.programmaticConfig) {
591
692
  ctx.ui.notify("Use /mcp-auth <server> to authenticate a server from the in-memory SDK config.", "info");
592
693
  return { configChanged: false };
@@ -604,7 +705,8 @@ export async function openMcpAuthPanel(
604
705
  const cache = loadMetadataCache();
605
706
  const configPath = pi.getFlag("mcp-config") as string | undefined ?? configOverridePath;
606
707
  const provenanceMap = getServerProvenance(configPath, ctx.cwd);
607
- const callbacks = buildMcpPanelCallbacks(state, config, ctx);
708
+ let overlayHandle: OverlayHandle | undefined;
709
+ const callbacks = buildMcpPanelCallbacks(state, config, ctx, () => overlayHandle);
608
710
  const { createMcpPanel } = await import("./mcp-panel.ts");
609
711
 
610
712
  await new Promise<void>((resolve) => {
@@ -619,7 +721,11 @@ export async function openMcpAuthPanel(
619
721
  noticeLines: ["Select an OAuth MCP server and press Enter or ctrl+a to authenticate."],
620
722
  });
621
723
  },
622
- { overlay: true, overlayOptions: { anchor: "center", width: 82 } },
724
+ {
725
+ overlay: true,
726
+ overlayOptions: { anchor: "center", width: 82 },
727
+ onHandle: (handle) => { overlayHandle = handle; },
728
+ },
623
729
  );
624
730
  });
625
731
 
@@ -6,6 +6,7 @@ import { parse as parseToml } from "smol-toml";
6
6
  import stripJsonComments from "strip-json-comments";
7
7
  import { getAgentPath, getConfigDirName } from "./agent-dir.ts";
8
8
  import { getAgentPluginSummaries, loadAgentPluginConfigs, type AgentPluginSummary } from "./agent-plugin-loader.ts";
9
+ import { loadPackageMcpConfigs } from "./package-mcp-loader.ts";
9
10
  import { isServerDisabled, type HostConfigDiscovery, type McpConfig, type ServerEntry, type McpSettings, type ImportKind, type ServerProvenance } from "./types.ts";
10
11
  import { toStringRecord } from "./utils.ts";
11
12
 
@@ -306,8 +307,12 @@ export function loadMcpConfig(overridePath?: string, cwd = process.cwd()): McpCo
306
307
  config = mergeConfigs(config, expandImports(loaded, cwd));
307
308
  }
308
309
 
310
+ const packageConfig = loadPackageMcpConfigs(cwd);
309
311
  const pluginConfig = loadAgentPluginConfigs(config.settings?.agentPluginPaths, cwd);
310
- return mergeConfigs(pluginConfig, config);
312
+ const packageServers = Object.fromEntries(
313
+ Object.entries(packageConfig.mcpServers).filter(([name]) => !Object.hasOwn(pluginConfig.mcpServers, name)),
314
+ );
315
+ return mergeConfigs({ mcpServers: packageServers }, mergeConfigs(pluginConfig, config));
311
316
  }
312
317
 
313
318
  function getMergedSettings(overridePath?: string, cwd = process.cwd()): McpSettings | undefined {
@@ -471,7 +476,7 @@ function mergeConfigs(base: McpConfig, next: McpConfig): McpConfig {
471
476
  // different url, these MUST NOT be inherited from the lower-precedence entry —
472
477
  // otherwise the original endpoint's credentials would be shipped to the new
473
478
  // url. See the SECURITY note in mergeServerMaps.
474
- const URL_BOUND_AUTH_FIELDS = ["headers", "bearerToken", "bearerTokenEnv", "requestHeadersCommand"] as const;
479
+ const URL_BOUND_AUTH_FIELDS = ["headers", "bearerToken", "bearerTokenEnv", "bearerTokenStore", "requestHeadersCommand"] as const;
475
480
 
476
481
  function mergeServerMaps(
477
482
  base: Record<string, ServerEntry>,
@@ -491,17 +496,30 @@ function mergeServerMaps(
491
496
  // applies (it is spread last). Behaviour is unchanged when the url is
492
497
  // identical or the override omits `url` (partial overrides still inherit).
493
498
  let baseEntry: ServerEntry = existing ?? {};
494
- if (existing && typeof definition.socket === "string") {
499
+ if (existing && typeof definition.command === "string") {
495
500
  baseEntry = { ...existing };
496
501
  for (const field of [
497
- "command", "args", "env", "cwd", "url", "headers", "auth",
498
- "bearerToken", "bearerTokenEnv", "oauth",
502
+ "url", "headers", "requestHeadersCommand", "auth", "bearerToken",
503
+ "bearerTokenEnv", "oauth", "httpTransport", "socket",
499
504
  ] as const) {
500
505
  delete baseEntry[field];
501
506
  }
502
- } else if (existing?.socket && (typeof definition.command === "string" || typeof definition.url === "string")) {
507
+ } else if (existing && typeof definition.url === "string") {
503
508
  baseEntry = { ...existing };
504
- delete baseEntry.socket;
509
+ for (const field of [
510
+ "command", "args", "env", "cwd", "pluginDataDir", "literalEnv", "socket",
511
+ ] as const) {
512
+ delete baseEntry[field];
513
+ }
514
+ } else if (existing && typeof definition.socket === "string") {
515
+ baseEntry = { ...existing };
516
+ for (const field of [
517
+ "command", "args", "env", "cwd", "pluginDataDir", "literalEnv", "url",
518
+ "headers", "requestHeadersCommand", "auth", "bearerToken", "bearerTokenEnv",
519
+ "oauth", "httpTransport",
520
+ ] as const) {
521
+ delete baseEntry[field];
522
+ }
505
523
  }
506
524
  if (existing && typeof definition.url === "string" && definition.url !== existing.url) {
507
525
  if (baseEntry === existing) baseEntry = { ...existing };
@@ -15,7 +15,7 @@ import { createToolSelectorCandidateIndex, formatToolName, getToolNameCandidates
15
15
  import { isUiToolVisibleToModel } from "./ui-tool-visibility.ts";
16
16
  import { resourceNameToToolName } from "./resource-tools.ts";
17
17
  import { authenticate, supportsOAuth } from "./mcp-auth-flow.ts";
18
- import { formatAuthRequiredMessage, resolveServerUrl, truncateAtWord } from "./utils.ts";
18
+ import { formatAuthRequiredMessage, normalizeToolArguments, resolveServerUrl, truncateAtWord } from "./utils.ts";
19
19
  import { SessionRecoveryAuthRequiredError, withSessionRecovery } from "./session-recovery.ts";
20
20
  import { combineAbortSignals, isAbortError } from "./runtime-owner.ts";
21
21
  import { ensureToolCallApproved } from "./tool-approval.ts";
@@ -429,6 +429,7 @@ export function createDirectToolExecutor(
429
429
  };
430
430
  }
431
431
 
432
+ const normalizedParams = spec.resourceUri ? params : normalizeToolArguments(params);
432
433
  const approval = await ensureToolCallApproved(state, spec.serverName, {
433
434
  name: spec.prefixedName,
434
435
  originalName: spec.originalName,
@@ -437,7 +438,7 @@ export function createDirectToolExecutor(
437
438
  ...(spec.resourceUri !== undefined ? { resourceUri: spec.resourceUri } : {}),
438
439
  ...(spec.uiResourceUri !== undefined ? { uiResourceUri: spec.uiResourceUri } : {}),
439
440
  ...(spec.uiStreamMode !== undefined ? { uiStreamMode: spec.uiStreamMode } : {}),
440
- }, params, ownedSignal, spec.resourceUri ? "resource" : "direct");
441
+ }, normalizedParams, ownedSignal, spec.resourceUri ? "resource" : "direct");
441
442
  if (approval.ok === false) {
442
443
  const denied = approval.reason === "denied";
443
444
  const message = denied
@@ -509,7 +510,7 @@ export function createDirectToolExecutor(
509
510
  ? await maybeStartUiSession(state, {
510
511
  serverName: spec.serverName,
511
512
  toolName: spec.originalName,
512
- toolArgs: params ?? {},
513
+ toolArgs: normalizedParams,
513
514
  uiResourceUri: spec.uiResourceUri!,
514
515
  ...(spec.uiStreamMode !== undefined ? { streamMode: spec.uiStreamMode } : {}),
515
516
  ...(signal ? { signal } : {}),
@@ -527,7 +528,7 @@ export function createDirectToolExecutor(
527
528
  spec.serverName,
528
529
  (conn) => abortable(conn.client.callTool({
529
530
  name: spec.originalName,
530
- arguments: params ?? {},
531
+ arguments: normalizedParams,
531
532
  _meta: uiSession?.requestMeta,
532
533
  }, requestOptions), ownedSignal),
533
534
  );