Commit Graph

285 Commits

Author SHA1 Message Date
Henning Dieterichs
b533ee4b6e Updates component explorer & adopts rspack for fixture serving (#306484) 2026-04-01 03:25:14 +00:00
dependabot[bot]
ca702223ea Bump picomatch from 4.0.2 to 4.0.4 in /build/npm/gyp (#304913)
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.2 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.2...4.0.4)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
2026-03-26 14:45:21 -07:00
Benjamin Christopher Simmonds
bb77888173 Fix Windows agent harness links in postinstall (#304392)
* Fix Windows agent harness links in postinstall

* Update build/npm/postinstall.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-24 09:57:28 +01:00
Tyler James Leonhardt
8978366531 Move .claude creation for testing agent harness to postinstall (#304283)
* Move .claude creation for testing agent harness to postinstall

title says it all

* rest
2026-03-23 23:22:35 +01:00
Rob Lourens
6c52b71c9a Bump copilot-sdk (#304267)
Co-authored-by: Copilot <copilot@github.com>
2026-03-23 21:58:56 +00:00
Tyler James Leonhardt
56498ab932 fix: correct file extension check in update-localization-extension script (#303930)
this should fix loc process now.
2026-03-23 00:47:07 +00:00
Henning Dieterichs
c9335c2873 node_modules is stale -> ignore node-version changes 2026-03-20 22:04:20 +01:00
Rob Lourens
77c1d46b28 Merge remote-tracking branch 'origin/main' into connor4312/agent-host-server 2026-03-17 15:07:52 -07:00
Robo
8f136419bb chore: disallow node version untested for development (#302550)
* chore: disallow node version untested for development

* chore: wording feedback

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-17 21:00:39 +00:00
Rob Lourens
98f15b55ea Implement agentHost process (#296627)
* agent host init

* Agent host: Copilot SDK integration with chat UI

* Agent host: direct MessagePort, logging, SDK wrapper, env fix

* Refactoring and cleanup

* Copilot-authored message: Agent-host tool rendering, protocol, and session fixes

Tool invocation rendering:
- Emit tool_start/tool_complete as ChatToolInvocation (not progressMessage)
- Shell tools (bash/powershell) render as terminal command blocks with
  IChatTerminalToolInvocationData, output, and exit codes
- Non-shell tools render via invocationMessage/pastTenseMessage (markdown)
- Filter out report_intent (hidden internal tool)

Agent-agnostic protocol:
- IPC events carry display-ready fields (displayName, invocationMessage,
  pastTenseMessage, toolInput, toolOutput, toolKind, language)
- All Copilot CLI-specific logic in copilotToolDisplay.ts with typed
  interfaces for known tools (CopilotToolName enum, parameter types)
- Renderer never references specific SDK tool names

Session fixes:
- Resumed sessions show tool invocations in history (getSessionMessages
  now returns tool events alongside messages)
- Fixed 'already has a pending request' on resumed sessions by
  conditionally providing interruptActiveResponseCallback
- Fixed event filtering for resumed sessions (sessionId override in
  _trackSession)

Documentation:
- Split parity.md into design.md (decisions) and backlog.md (tasks)
- Updated architecture.md, sessions.md with cross-references
- Added maintenance notes to all docs

* Copilot-authored message: Model picker, session class, DI and test cleanup

* Cleanups

* stuff

* add diagram

* Add claude agent

* Clean up

* Copy some build script changes from #295817

* Simplify

* Update docs

* Register agent-host via chatSessions contribution API, reduce peripheral diff

* Cleanup

* Don't ship stuff in stable

* Dynamic agent discovery via listAgents() IPC

Replace hardcoded per-provider contributions with a single
AgentHostContribution that discovers available agents from the
agent host process at startup. Each IAgent backend now exposes
an IAgentDescriptor with display metadata and auth requirements.

- Add IAgentDescriptor interface and listAgents() to IPC contract
- CopilotAgent/ClaudeAgent return descriptors via getDescriptor()
- Single AgentHostContribution discovers + registers dynamically
- Remove agentHostConstants.ts (no more hardcoded session types)
- AgentHostSessionListController/LMProvider take params instead
- Rename AgentSessionProviders.AgentHost -> AgentHostCopilot
- Update architecture.md, sessions.md, backlog.md

(Written by Copilot)

* Fix review findings: proxy, disposal, filtering, tests

- Add listAgents() forwarding to AgentHostServiceClient
- Guard async discovery against disposal race
- Add provider field to IAgentModelInfo for per-provider filtering
- Filter models and sessions by provider in LM provider and list
  controller
- Update tests for new dynamic API and agent-host-copilot scheme

(Written by Copilot)

* Use DI for AgentHostLanguageModelProvider

(Written by Copilot)

* Strip @img/sharp native binaries from builds

sharp is a transitive dependency of the Claude Agent SDK used for
image processing. Its native .node binaries cause dpkg-shlibdeps
errors during Debian packaging due to $ORIGIN RPATH references.
Strip all @img/sharp-* platform packages since the agent host
doesn't need image processing at runtime.

(Written by Copilot)

* Strip Claude SDK vendored ripgrep binaries

The Claude Agent SDK bundles ripgrep binaries for all platforms
under vendor/ripgrep/. Wrong-architecture binaries cause macOS
Mach-O verification to fail. Strip them entirely via .moduleignore
(VS Code has its own ripgrep) and add to verify-macho skip list.

(Written by Copilot)

* Add tests for AgentSession, AgentService dispatcher, and workbench agent host components

(Written by Copilot)

* Add trace logging, IPC output channel, tool permissions, and attachment context

- Add Agent Host IPC output channel (only registered at trace log level) that
  logs all IPC method calls, results, and progress events with full JSON payloads
- Add trace-level logging in AgentService dispatcher for all method calls
- Add trace-level logging in session handler for all progress events and session
  resolution
- Wire up onPermissionRequest handler on CopilotClient.createSession and
  resumeSession to auto-approve tool permission requests
- Add IAgentAttachment type to IPC contract and thread attachments from chat
  variables (file, directory, selection) through sendMessage to the Copilot SDK

(Written by Copilot)

* Add tests for attachment context conversion and threading

(Written by Copilot)

* Add gap analysis docs for Copilot and Claude SDK implementations

(Written by Copilot)

* Sanitize env vars for Copilot CLI subprocess

Strip VSCODE_*, ELECTRON_* (except ELECTRON_RUN_AS_NODE), NODE_OPTIONS, and
other debug-related env vars that can interfere with the Node.js process the
SDK spawns. Matches the env sanitization from the extension implementation.
Also set useStdio and autoStart for proper CLI communication.

(Written by Copilot)

* Add error, usage, and title_changed event types to IPC contract

Add IAgentErrorEvent, IAgentUsageEvent, and IAgentTitleChangedEvent to the
progress event union. Wire up session.error and assistant.usage events from
the Copilot SDK to fire as IPC events instead of only logging. Handle error
events in the renderer session handler by rendering the error message. Usage
and title_changed events are logged at trace level.

(Written by Copilot)

* Add abortSession IPC method for proper cancellation

Add abortSession(session) to the IPC contract, implemented across AgentService,
CopilotAgent (calls session.abort()), ClaudeAgent (no-op, uses AbortController),
and the renderer proxy. Wire up cancellation in the session handler to call
abortSession before finishing, so the SDK actually stops processing.

(Written by Copilot)

* Address reviewer feedback: error finishes request, Claude abort, tests

- Error events now call finish() so the request doesn't hang if the SDK
  doesn't send idle after an error
- ClaudeAgent.abortSession calls ClaudeSession.abort() which signals the
  AbortController and creates a new one for future turns
- Add test: cancellation calls abortSession on the agent host service
- Add test: error event renders message and finishes the request
- Remove stale TODO in interruptActiveResponseCallback
- Use timeout() helper instead of raw setTimeout in test
- Update gap docs to reflect completed work

(Written by Copilot)

* Add permission request IPC round-trip (Written by Copilot)

* Remove Claude agent from agent-host process

Strip the Claude Agent SDK integration from the agent-host utility process
to focus on the Copilot SDK path.

- Delete src/vs/platform/agent/node/claude/ (claudeAgent, claudeSession, claudeToolDisplay)
- Remove @anthropic-ai/claude-agent-sdk from package.json
- Remove AgentHostClaude enum member and all switch cases
- Remove Claude command registration in electron-browser chat.contribution
- Clean up build scripts (.moduleignore, verify-macho, gulpfile.vscode)
- Narrow AgentProvider type to just 'copilot'
- Update tests and documentation

(Written by Copilot)

* Wire up permission confirmation UI with ChatToolInvocation (Written by Copilot)

* Fix reviewer feedback: safe permission serialization, deny on abort/dispose (Written by Copilot)

* Forward reasoning events as thinking blocks (Written by Copilot)

* Pass workspace folder as workingDirectory to Copilot SDK (Written by Copilot)

* Store and pass workingDirectory on session resume, update gap docs (Written by Copilot)

* Fix permission rendering, session-scoped permissions, and test gaps (Written by Copilot)

* Auto-approve read permissions inside workspace folder (Written by Copilot)

* Move read auto-approve into CopilotAgent where permission policy belongs (Written by Copilot)

* Update gap docs (Written by Copilot)

* Use log language for IPC output channel, add trace prefix (Written by Copilot)

* Add tool rendering gaps to docs (Written by Copilot)

* Stringify URIs in IPC output channel for readability (Written by Copilot)

* Fix IPC output channel: use log languageId with non-log channel for proper append + syntax highlighting (Written by Copilot)

* Fix build errors: add URI import, fix test mock types (Written by Copilot)

* Don't localize agent host provider strings (Written by Copilot)

* Remove claude-agent-sdk from eslint allowed imports (Written by Copilot)

* fix test

* initial thoughts

* Rename folder to agentHost

* Fix paths

* Fixes

* Fixes for copilot

* Fix moduleignore

* first working protocol version

align more closely with protocol

json rpc and some gaps

* cleanup

* Fix copilot pty.node packaging

* Fix test

* prebuild packaging

* Agenthost server fixes

* Update monaco.d.ts

* Update docs

* Fixes

* Build fix

* Fix build issues

* reduce duplication in side effecting code

* fix model switching not working

* reduce mock duplication

* Build fixes

* Copy vscode's node.pty

* And ripgrep

* And thsi

* Ripgrep goes to non-SDK

* Skip copy for stable build

* Remove outdated script

* Build fixes for asar

* fix

* Add some logging

* Fix for windows

* Fix

* Logs

* build: add glob diagnostic for copyCopilotNativeDeps

* build: check both node_modules/ and .asar.unpacked/ for source binaries

* Fix

* Remove excalidraw

---------

Co-authored-by: Connor Peet <connor@peet.io>
Co-authored-by: Connor Peet <copeet@microsoft.com>
2026-03-16 15:33:31 -07:00
Connor Peet
813d943aeb scary--; hacky++; 2026-03-12 16:20:56 -07:00
Rob Lourens
076b448ec0 Merge remote-tracking branch 'origin/main' into roblou/agent-host 2026-03-11 16:03:31 -07:00
dependabot[bot]
aaa3025b86 Bump tar from 7.5.10 to 7.5.11 in /build/npm/gyp (#300619)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.10 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.10...v7.5.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 09:32:19 -07:00
Rob Lourens
d42f19e59e Fixes for copilot 2026-03-10 19:42:30 -07:00
dependabot[bot]
e85cb66e53 Bump tar from 7.5.9 to 7.5.10 in /build/npm/gyp (#299352)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.9 to 7.5.10.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.9...v7.5.10)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 21:46:45 -08:00
Henning Dieterichs
a1ef9c86f2 fixes change detection in vscode-extras 2026-03-04 20:40:28 +01:00
Henning Dieterichs
06b198fdd9 improves npm cache logic 2026-03-03 15:16:52 +01:00
dependabot[bot]
a432b6a01d Bump minimatch from 9.0.5 to 9.0.9 in /build/npm/gyp (#298336)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 9.0.5 to 9.0.9.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 09:29:01 +01:00
Henning Dieterichs
f85c0b3c83 improves npm caching (#298608) 2026-03-01 18:35:08 -08:00
Henning Dieterichs
5b7dafcb12 Add vscode-extras extension with npm up-to-date feature and related configurations (#298295) 2026-02-27 17:16:26 +00:00
dependabot[bot]
9a403498a8 Bump tar from 7.5.7 to 7.5.9 in /build/npm/gyp (#295930)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.9.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.9)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 09:05:28 -08:00
dependabot[bot]
8936d7e785 Bump tar from 7.5.6 to 7.5.7 in /build/npm/gyp (#291362)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.6 to 7.5.7.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.6...v7.5.7)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 12:01:31 -08:00
Robo
9f5995dd3f ci: restore reliability of terrapin check (#291484)
* ci: remove continueOnError setting

* fix: misconfigured peerdepedency setting for subfolders during postinstall

* fix: restore package lock urls for reliable git check
2026-01-28 22:13:32 -08:00
Alex Ross
de6f371a92 Revert codicon change (#289683)
Revert "Copy codicons file as part of the build (#289411)"

This reverts commit 08d958aa2b.
2026-01-22 17:08:50 +00:00
Alex Ross
08d958aa2b Copy codicons file as part of the build (#289411)
* Copy codicons file as part of the build

Part of #283823

* Merge branch 'main' into alexr00/inadequate-skink

* Remove unneeded changes

* Add readme

* Merge branch 'main' into alexr00/inadequate-skink

* Error handling for copy

* Do copy for editor

* Merge branch 'main' into alexr00/inadequate-skink

* Bump codicon version
2026-01-22 15:57:44 +01:00
Raymond Zhao
6f6a479500 chore: bump tar (#289513) 2026-01-21 23:30:18 +00:00
Raymond Zhao
e03af17fbb Revert "Bump tar from 7.4.3 to 7.5.6 in /build/npm/gyp" (#289459)
Revert "Bump tar from 7.4.3 to 7.5.6 in /build/npm/gyp (#289415)"

This reverts commit 81f871e6aa.
2026-01-21 19:17:54 +00:00
dependabot[bot]
81f871e6aa Bump tar from 7.4.3 to 7.5.6 in /build/npm/gyp (#289415)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.4.3 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.6)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 09:41:48 -08:00
Benjamin Pasero
fe665a91f6 watcher - update to latest version (#286484) 2026-01-09 07:07:37 +01:00
Dmitriy Vasyura
c8fdd1650c Update TextMate grammars from upstream sources (#286560)
* Update TextMate grammars from upstream sources
* Fix integration test on Windows to run TypeScript file directly
* Baseline update
2026-01-08 16:24:04 +00:00
Benjamin Pasero
43b3987e74 debt - adopt @vscode/watcher with some newer fixes (#285247) 2025-12-29 03:57:05 -08:00
Raymond Zhao
41997d514d chore: npm audit fix (#279437)
* chore: npm audit fix

* chore: npm audit fix in extensions

* chore: npm audit fix in tests

* Catch last few
2025-11-25 20:29:09 +00:00
Matt Bierner
e779f86b17 Build script cleanup
For #277526

Quick cleanup pass after converting these scripts
2025-11-24 14:07:28 -08:00
Matt Bierner
72eee73887 Convert npm scripts to ts
For #277526

Converting last of the main build scripts to typescript
2025-11-24 11:05:23 -08:00
dependabot[bot]
6ab096b474 Bump glob from 10.4.5 to 10.5.0 in /build/npm/gyp (#278273)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 11:53:24 +01:00
Matt Bierner
2648263d3e Run our build scripts directly as typescript (#277567)
* Run our build scripts directly as typescript #277567

Follow up on #276864
For #277526

* Remove a few more ts-node references

* Fix linux and script reference

* Remove `_build-script` ref

* Fix script missing closing quote

* use type only import

* Fix export

* Make sure to run copy-policy-dto

* Make sure we run the copy-policy-dto script

* Enable `verbatimModuleSyntax`

* Pipelines fixes

* Try adding explicit ext to path

* Fix bad edit

* Revert extra `--`

---------

Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
2025-11-21 14:56:00 +01:00
Henning Dieterichs
a335d51f66 Adds hot reload launch config (#277123)
* Adds hot reload launch config

---------

Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
2025-11-21 11:18:47 +01:00
Matt Bierner
c2a92e5eec Get required node version from nvmrc
This makes sure the preinstall check stays in sync with the nvmrc file
2025-11-13 23:27:01 -08:00
Robo
f2531f1c56 chore: update to Electron 39 (#275786)
* chore: bump electron@39.0.0

* chore: update build

* chore: bump distro

* chore: update debian deps

* chore: exclude dlls from symbol scan

* chore: test with patch v8 headers

* chore: bump rpm dependencies

* chore: cleanup preinstall.js

* chore: bump electron@39.1.1

* chore: remove unsupported FontationsLinuxSystemFonts feature flag

* chore: bump electron@39.1.2

* chore: update nodejs build

* temp: update distro

* ci: fix location of preinstall invocation

* chore: bump distro
2025-11-13 08:25:14 +00:00
Henning Dieterichs
b6b78218fe adds monaco editor playground launch config 2025-11-11 18:32:36 +01:00
Matt Bierner
d2af782f2e Fix terminal-suggest not running npm install 2025-10-13 13:31:58 -07:00
João Moreno
d5b7cbacce fix alpine builds (#268164)
* fix alpine builds

make sure npmrc file is available in docker env

* bust cache

* Revert "bust cache"

This reverts commit 341112e426.
2025-09-24 13:58:54 +00:00
João Moreno
5a1b2a7929 use correct nodejs version, even in musl environments (#268116) 2025-09-24 09:11:29 +00:00
Matt Bierner
36713d57bf Merge branch 'main' into dev/mjbvz/mermaid-core 2025-09-22 12:44:19 -07:00
Tyler James Leonhardt
b20a91e37a Add data prompt (#267543)
For querying telemetry data. Uses the Azure MCP Server's kusto tool.
2025-09-19 16:00:11 -07:00
Matt Bierner
c7e7a779e8 Add basic mermaid rendering support in core
For #257761

Ports over extension sample + a few improvements to core
2025-09-10 18:22:39 -07:00
Copilot
966ec14154 Improve error message for Visual Studio detection in build process (#262879)
* Initial plan

* Improve Visual Studio detection for custom installation paths

Co-authored-by: deepak1556 <964386+deepak1556@users.noreply.github.com>

* chore: cleanup

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: deepak1556 <964386+deepak1556@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
2025-09-01 23:32:21 +00:00
Tyler James Leonhardt
bc9eaa3315 Install deps in mcp (#262591)
Gotta do this.
2025-08-20 22:31:55 +00:00
Matt Bierner
e51d57aa5c Update target for build and test scripts 2025-08-04 17:28:08 -07:00
Robo
eee3294912 build: update preinstall check for node@22.15.1 (#253248) 2025-07-01 13:13:53 +02:00