Exposes --agent-host-port/--agent-host-path to specify an additional
port for them to listen on. This runs as a separate process mirroring
the architecture from main.
Does a 'hello world', I need to keep testing it some more. I honestly
don't know a lot about the import changes Opus is doing here. Without
them, there is an error:
```
import { CopilotClient } from "@github/copilot-sdk";
^^^^^^^^^^^^^
SyntaxError: The requested module '@github/copilot-sdk' does not provide an export named 'CopilotClient'
```
This was Copilot's explanation for why they're needed here but not in Electron:
>The agent host process itself didn't change — the issue is the **module resolution environment** differs between Electron and the server.
>
>**Electron (desktop):** `ElectronAgentHostStarter` spawns a utility process that inherits the main process's module resolution. It resolves packages from the **root** node_modules, where `@github/copilot-sdk`, `ws`, etc. are all installed. Everything just works.
>
>**Server:** `NodeAgentHostStarter` spawns a child via `bootstrap-fork.js`, which registers a custom ESM resolver hook (bootstrap-import.ts) that **redirects** all module lookups to node_modules instead of root node_modules. That's the `[bootstrap-import] Initialized node_modules redirector for: ...\remote\node_modules` log line. The remote folder has its own package.json with a curated set of server-specific dependencies.
>
>The problems were:
>1. **Missing deps** — `@github/copilot-sdk`, `@github/copilot`, and `ws` weren't in package.json because the agent host had never run in the server context before
>2. **Resolver bugs** — bootstrap-import.ts was written when all remote deps were CJS. It hardcoded `format: 'commonjs'`, didn't handle `exports` maps, didn't handle `.mjs` files, and didn't resolve subpath imports like `vscode-jsonrpc/node`. These are pre-existing limitations that never mattered until now because no server component previously depended on ESM-only npm packages.
>
>So in short: the agent host code is identical — it's the server's module resolution plumbing that needed updating to support the ESM packages the agent host depends on.
cc @bpasero as the expert in this area
* plugins: support plugin specific paths, adding a plugin directly
- Supports custom fields for commands/skills/agents/etc in plugins,
matching the new plugins spec.
- Support adding a plugin (without needing a repo) directly via
'Chat: Install Plugin from Source' in the command palette, installed
plugins view, or the chat customizations view.
Closes https://github.com/microsoft/vscode/issues/300945?reload=1
* comments
* /yolo -> switches to bypass mode, /autopilot switches to autopilot
* in collapsed mode, make sure headers are updated with more info
* Revert "in collapsed mode, make sure headers are updated with more info"
This reverts commit 104db3926e.
* Revert "/yolo -> switches to bypass mode, /autopilot switches to autopilot"
This reverts commit ded22eca4b.
* in collapsed mode, make sure headers are updated with more info
* better todos and fix comments
* Simplify chat auto-reply: skip questions instead of LLM-answering them
When `chat.autoReply` is enabled, the questions tool now returns the
same 'user is not available, use your best judgment' response used in
autopilot mode — instead of sending questions to a separate LLM call
for answer resolution.
This removes ~450 lines of LLM prompt engineering, JSON parsing with
retry, fuzzy option matching, fallback answer generation, and opt-in
dialog management.
* Address review: skip in-flight carousels when auto-reply is enabled mid-session
Listen for chat.autoReply config changes in chatListRenderer and skip
all pending question carousels when the setting becomes enabled. This
handles the edge case where a carousel is already awaiting user input
and the user enables auto-reply or switches to autopilot afterward.
* Browser Zoom
* Remove logic from editor
* Feedback
* Small comment change
* Zoom factors, not percentages
* Comment on keybinding
* Add keybindings back to actions
* Add browserZoomLabel helper for zoom percentage display
* First AI changes
* AI pass with zoom level hierarchy
* Fix zoom not applying to other origins after default zoom change
* Promote per-origin zoom to user setting workbench.browser.zoom.perOriginZoomLevels
* Remove unnecessary configuration migration for zoom setting
* Add 'Match VS Code' default zoom level option for Integrated Browser
* Add missing localize import to platform/browserView/common/browserView.ts
* Switch per-origin zoom tracking to per-host (http/https only)
* Rename zoom settings: defaultZoomLevel→pageZoom, perHostZoomLevels→zoomLevels; mark zoomLevels as advanced
* Update setting description and scope
* Improve zoom service: lazy synchronizer, pre-computed label map, RunOnceScheduler, always forceApply on navigate
* Remove self-evident and redundant comments
* Refactor zoom to two independent cascades (ephemeral/persistent each fall back to default independently)
* Use IStorageService for per-host browser zoom instead of settings
* Remove VS Code product name from browser zoom code
The askQuestions tool was defaulting allowFreeformInput to false when the
model omitted it, which meant users couldn't provide freeform text answers
unless the model explicitly opted in. This restores the previous behavior
where freeform input is shown by default alongside options.
Also updates the schema description and model description to reflect that
allowFreeformInput defaults to true and can be set to false to restrict
to predefined options only.