Files
vscode/package.json
T
Tyler James Leonhardt c9b1f88ce7 agentHost/claude: Phase 5 + Phase 6 — IAgent provider, sendMessage (re-land) (#314533)
* agentHost/claude: post-Phase-4 cleanup

- roadmap.md: mark Phase 4 as DONE, link merged PR #313780.
- phase4-plan.md: record live-system smoke completion in §7.8;
  disabled-gate run skipped (covered by unit tests + env-var guard).
- claudeAgent.test.ts: drop gratuitous 'as unknown as' cast in the
  CCAModel fixture (literal already matches CCAModelBilling exactly;
  plan §7.4 forbids unsafe casts in tests).

* agentHost/claude: lock Phase 5 implementation plan

Handoff plan for Phase 5 (replace 7 throwing stubs in claudeAgent.ts).
Locked against post-PR-#313841 reality (provisional sessions,
onDidMaterializeSession, 30s empty-session GC) and the IAgent contract
on origin/main.

Decisions captured:
- Non-fork createSession is synchronous and in-memory; fork deferred
  to Phase 6 (throws TODO).
- IClaudeAgentSdkService surface mirrors IAgent (no dir parameter on
  listSessions); SDK loader caches resolved module, retries on
  failure, logs once.
- listSessions joins SDK enumeration with workbench session DB
  metadata via ISessionDataService; per-entry try/catch resilience.
- shutdown() routes per-session teardown through the same
  SequencerByKey<string> used by disposeSession() so concurrent
  shutdown/disposeSession cannot double-dispose a wrapper in Phase 6.
- 14 unit tests defined (12 lifecycle + 2 resolved-config), including
  log-once contract and shutdown/disposeSession race guard.

* agentHost/claude: Phase 5 — IAgent provider skeleton

Lands the ClaudeAgent IAgent provider behind the
'chat.agentHost.claudeAgent.enabled' setting (env gate
VSCODE_AGENT_HOST_ENABLE_CLAUDE=1). Pins
@anthropic-ai/claude-agent-sdk@0.2.112 in workspace + remote/.

Implemented in this phase:
* createSession - non-fork, in-memory wrapper only. Honors
  config.session for restore. The fork path and SDK session
  creation are deferred to Phase 6.
* listSessions - SDK is source of truth; per-session DB read
  is a best-effort overlay (failure never excludes an entry).
* disposeSession / shutdown - routed through a per-session
  SequencerByKey to serialize teardown.
* getDescriptor, getProtectedResources, models,
  onDidSessionProgress, setClientCustomizations,
  setClientTools, onClientToolCallComplete,
  setCustomizationEnabled, authenticate, respondTo*Request -
  minimal Phase-5 wiring.

Stubbed for Phase 6 (throw async 'TODO: Phase 6'):
sendMessage, abortSession, changeModel, getSessionMessages,
plus the createSession fork path.

Tests: 29 unit tests in claudeAgent.test.ts cover the
createSession restore-id path, listSessions overlay resilience,
dispose serialization, and stub surfaces.

Note: provisional / onDidMaterializeSession is intentionally
omitted in Phase 5 (see plan section 3.3.1) - the workbench needs
an immediate sessionAdded until the agent has real materialization
work, which arrives in Phase 6 alongside SDK query() startup.

* agentHost/claude: Phase 6 — sendMessage, single-turn, no tools

Implements the Phase 6 plan: provisional sessions materialize on first sendMessage, route a single-turn prompt through the Anthropic Claude Agent SDK's WarmQuery, and stream SDKMessages back as protocol AgentSignals via a pure mapSDKMessageToAgentSignals reducer.

Tools remain denied (canUseTool: 'deny'); fork moves to Phase 6.5; Plan Mode UI moves to Phase 7.

Highlights:

- ClaudeAgent.sendMessage routes through _sessionSequencer to collapse concurrent first sends into one materialize + N ordered sends.

- _materializeProvisional has two abort gates (post-startup + post-customizationDirectory write) so disposeSession landing mid-materialize cannot leak a WarmQuery subprocess.

- ClaudeAgentSession owns the prompt iterator + per-turn deferreds; mapSDKMessageToAgentSignals is a pure reducer with state owned by the session.

- IClaudeAgentSdkService gains startup() alongside listSessions().

Tests: 43 unit + 2 proxy-backed integration. Council-review fixes (C1 dispose race, C2 missing integration test, S1 cwd-less ratification) included.

* agentHost/claude: address PR review (listSessions resilience, dispose abort)

Two Copilot-reviewer comments on #314216:

1. listSessions: wrap _sdkService.listSessions() in try/catch. AgentService.listSessions fans out across providers via Promise.all; an SDK dynamic-import failure would otherwise nuke every other provider's session list. Now logs and returns [].

2. dispose: abort _provisionalSessions AbortControllers before super.dispose(). Previously a racing first sendMessage parked inside _writeCustomizationDirectory could pass the materialize abort gates and call _sessions.set on a disposed DisposableMap, orphaning the WarmQuery. Aborting first triggers the existing post-customization-write abort gate, which asyncDisposes the WarmQuery.

Tests: 2 new regressions (listSessions empty on SDK throw; agent.dispose() during racing materialize disposes the WarmQuery). 45/45 unit + 2/2 integration pass.

* Drop stale @anthropic-ai/sandbox-runtime dep from merge resolution

* Bump @anthropic-ai/claude-agent-sdk 0.2.112 → 0.2.128

The new SDK no longer vendors native binaries inside the main package.
It now ships a ~200MB `claude` executable per platform via 8 optional
platform-specific packages, mirroring the @github/copilot pattern:

  @anthropic-ai/claude-agent-sdk-{darwin,win32}-{x64,arm64}
  @anthropic-ai/claude-agent-sdk-linux-{x64,arm64}{,-musl}

The SDK loader picks the right package at runtime via process.platform
/process.arch (and tries -musl first on linux).

To strip off-target packages from the build output:
- build/lib/claudeAgentSdk.ts mirrors build/lib/copilot.ts
- gulpfile.vscode.ts and gulpfile.reh.ts apply the filter alongside
  the existing copilot one
- gulpfile.vscode.ts asar-unpacks @anthropic-ai/claude-agent-sdk-* so
  the executable stays on disk (asar would break exec permissions)
- alpine-{arch} maps to linux-{arch}-musl (claude is statically linked
  against libc and must match the host)

cglicenses.json gets 8 new entries mirroring the parent SDK's
"© Anthropic PBC. All rights reserved." text.

The new SDK Query interface adds a `readFile` method; FakeQuery and
RoundTripQuery test doubles get matching stubs.

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

* build: cross-copy @anthropic-ai/claude-agent-sdk darwin packages for universal app

Mirror the existing @github/copilot pattern in create-universal-app.ts.
Each darwin arch build only contains its own platform package (npm only
installs the optionalDependency matching the host CPU), so the universal
merger fails with files unique to one side.

Cross-copy node_modules/@anthropic-ai/claude-agent-sdk-{darwin-x64,darwin-arm64}/
between the two builds, skip them from the equality comparison, and tag
the per-arch `claude` executable as arch-specific so the merger keeps both.

Also extend verify-macho's skip list to ignore the single-arch `claude`
binaries inside the universal app.

* agentHost/claude: address PR review

- claudeAgent: rewrite `rgPath` from node_modules.asar →
  node_modules.asar.unpacked before putting it on the Claude subprocess
  PATH. Mirrors copilotAgent.ts and the workbench search engine helpers;
  without this, packaged builds advertise a path that doesn't exist on
  disk.
- cglicenses.json: add "// Reason: …" justification comments to the
  parent @anthropic-ai/claude-agent-sdk entry and each of the 8 new
  platform sub-packages, matching the file's convention.

* build: bump DMG volume size from 1g to 2g

The universal macOS app now carries platform-specific binaries for both
x64 and arm64 — @github/copilot-darwin-* (~128MB each) and the new
@anthropic-ai/claude-agent-sdk-darwin-* (~207MB each) — so the source
filesystem the DMG is built from has crossed 1GB. dmgbuild fails with
`No space left on device` when ditto can't fit the app inside the
volume.

Output DMG is LZMA-compressed (format = 'ULMO') so this only changes
the build-time staging size, not the shipped artifact size.

* agentHost/claude: don't bundle claude-agent-sdk; load it from a user-specified path

Move `@anthropic-ai/claude-agent-sdk` from `dependencies` to
`devDependencies` so the ~200MB-per-arch platform binaries are no longer
shipped with VS Code. The SDK becomes opt-in and externally-installed.

User-facing surface:
  - Replace boolean setting `chat.agentHost.claudeAgent.enabled` with
    string setting `chat.agentHost.claudeAgent.path`. When the setting
    is non-empty, the Claude provider registers; when empty (the default),
    it does not.
  - The setting value is forwarded to the agent host via the
    `VSCODE_AGENT_HOST_CLAUDE_SDK_PATH` env var (replacing the previous
    `VSCODE_AGENT_HOST_ENABLE_CLAUDE` flag).
  - `agentHostServerMain` exposes a `--claude-sdk-path <path>` CLI flag
    in place of the previous `--enable-claude-agent` flag.

Runtime loader:
  - `ClaudeAgentSdkService._loadSdk()` now reads the env var and
    dynamic-imports from there. If the path is a directory, the package's
    main entry is resolved from `package.json` (`exports['.']` /
    `main`) before the import — Node ESM does not support directory
    imports of `file://` URLs.

Build/packaging cleanup (no longer needed once the SDK is gone from
production deps):
  - Drop `build/lib/claudeAgentSdk.ts` and its callers in
    `gulpfile.{vscode,reh}.ts`.
  - Drop the `@anthropic-ai/claude-agent-sdk-*` glob from the
    asar-unpack list in `gulpfile.vscode.ts`.
  - Revert universal-app cross-copy + filesToSkip + x64ArchFiles entries
    in `build/darwin/create-universal-app.ts` and the corresponding
    skip patterns in `build/darwin/verify-macho.ts`.
  - Revert DMG volume size from 2g back to 1g in
    `build/darwin/dmg-settings.py.template` (was bumped earlier in
    this branch to fit the bundled SDK; no longer needed).
  - Remove the 9 `@anthropic-ai/claude-agent-sdk*` entries from
    `cglicenses.json` (no longer shipped, no manifest to license).

Type imports of `@anthropic-ai/claude-agent-sdk` continue to work via
the devDependency, so source code that does `import type` from the
package still typechecks.

* revert cglicenses change

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-06 16:48:32 -07:00

275 lines
13 KiB
JSON

{
"name": "code-oss-dev",
"version": "1.120.0",
"distro": "adf5d4ef5d36b1829d04e2a6f5255c5344cb0316",
"author": {
"name": "Microsoft Corporation"
},
"license": "MIT",
"main": "./out/main.js",
"type": "module",
"private": true,
"scripts": {
"test": "echo Please run any of the test scripts from the scripts folder.",
"test-browser": "npx playwright install && node test/unit/browser/index.js",
"test-browser-no-install": "node test/unit/browser/index.js",
"test-node": "mocha test/unit/node/index.js --delay --ui=tdd --timeout=5000 --exit",
"test-extension": "vscode-test",
"test-build-scripts": "cd build && npm run test",
"check-cyclic-dependencies": "node build/lib/checkCyclicDependencies.ts out",
"preinstall": "node build/npm/preinstall.ts",
"postinstall": "node build/npm/postinstall.ts",
"compile": "npm run gulp compile",
"compile-check-ts-native": "tsgo --project ./src/tsconfig.json --noEmit --skipLibCheck",
"watch": "npm-run-all2 -lp watch-client-transpile watch-client watch-extensions watch-copilot",
"watchd": "deemon npm run watch",
"watch-webd": "deemon npm run watch-web",
"kill-watchd": "deemon --kill npm run watch",
"kill-watch-webd": "deemon --kill npm run watch-web",
"restart-watchd": "deemon --restart npm run watch",
"restart-watch-webd": "deemon --restart npm run watch-web",
"watch-client": "npm run gulp watch-client",
"watch-clientd": "deemon npm run watch-client",
"kill-watch-clientd": "deemon --kill npm run watch-client",
"transpile-client": "node build/next/index.ts transpile",
"watch-client-transpile": "node build/next/index.ts transpile --watch",
"watch-client-transpiled": "deemon npm run watch-client-transpile",
"kill-watch-client-transpiled": "deemon --kill npm run watch-client-transpile",
"watch-extensions": "npm run gulp watch-extensions watch-extension-media",
"watch-extensionsd": "deemon npm run watch-extensions",
"kill-watch-extensionsd": "deemon --kill npm run watch-extensions",
"watch-copilot": "npm --prefix extensions/copilot run watch",
"watch-copilotd": "deemon npm run watch-copilot",
"kill-watch-copilotd": "deemon --kill npm run watch-copilot",
"precommit": "node --experimental-strip-types build/hygiene.ts",
"gulp": "node --experimental-strip-types --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js",
"electron": "node build/lib/electron.ts",
"7z": "7z",
"update-grammars": "node build/npm/update-all-grammars.ts",
"update-localization-extension": "node build/npm/update-localization-extension.ts",
"mixin-telemetry-docs": "node build/npm/mixin-telemetry-docs.ts",
"smoketest": "node build/lib/preLaunch.ts && cd test/smoke && npm run compile && node test/index.js",
"smoketest-no-compile": "cd test/smoke && node test/index.js",
"download-builtin-extensions": "node build/lib/builtInExtensions.ts",
"download-builtin-extensions-cg": "node build/lib/builtInExtensionsCG.ts",
"monaco-compile-check": "tsgo --project src/tsconfig.monaco.json --noEmit",
"tsec-compile-check": "node node_modules/tsec/bin/tsec -p src/tsconfig.tsec.json",
"vscode-dts-compile-check": "tsgo --project src/tsconfig.vscode-dts.json && tsgo --project src/tsconfig.vscode-proposed-dts.json",
"valid-layers-check": "node build/checker/layersChecker.ts && tsgo --project build/checker/tsconfig.browser.json && tsgo --project build/checker/tsconfig.worker.json && tsgo --project build/checker/tsconfig.node.json && tsgo --project build/checker/tsconfig.electron-browser.json && tsgo --project build/checker/tsconfig.electron-main.json && tsgo --project build/checker/tsconfig.electron-utility.json",
"define-class-fields-check": "node build/lib/propertyInitOrderChecker.ts && tsgo --project src/tsconfig.defineClassFields.json",
"update-distro": "node build/npm/update-distro.ts",
"export-policy-data": "node build/lib/policies/exportPolicyData.ts",
"web": "echo 'npm run web' is replaced by './scripts/code-server' or './scripts/code-web'",
"compile-cli": "npm run gulp compile-cli",
"compile-web": "npm run gulp compile-web",
"serve-out-rspack": "cd build/rspack && npx rspack serve --config rspack.serve-out.config.mts",
"watch-web": "npm run gulp watch-web",
"watch-cli": "npm run gulp watch-cli",
"eslint": "node build/eslint.ts",
"stylelint": "node build/stylelint.ts",
"playwright-install": "npm exec playwright install",
"compile-build": "npm run gulp compile-build-with-mangling",
"compile-extensions-build": "npm run gulp compile-extensions-build",
"minify-vscode": "npm run gulp minify-vscode",
"minify-vscode-reh": "npm run gulp minify-vscode-reh",
"minify-vscode-reh-web": "npm run gulp minify-vscode-reh-web",
"hygiene": "npm run gulp hygiene",
"core-ci": "npm run gulp core-ci",
"extensions-ci": "npm run gulp extensions-ci",
"perf": "node scripts/code-perf.js",
"perf:chat": "node scripts/chat-simulation/test-chat-perf-regression.js",
"perf:chat-leak": "node scripts/chat-simulation/test-chat-mem-leaks.js",
"copilot:setup": "npm --prefix extensions/copilot run setup",
"copilot:get_token": "npm --prefix extensions/copilot run get_token",
"update-build-ts-version": "npm install -D typescript@next && npm install -D @typescript/native-preview && (cd build && npm run typecheck)",
"install-local-component-explorer": "npm install ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-0.1.0.tgz ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-cli-0.1.0.tgz --no-save && cd build/rspack && npm install ../../../vscode-packages/js-component-explorer/dist/vscode-component-explorer-webpack-plugin-0.1.0.tgz --no-save && cd ../vite && npm install ../../../vscode-packages/js-component-explorer/dist/vscode-component-explorer-vite-plugin-0.1.0.tgz --no-save",
"symlink-local-component-explorer": "npm install ../vscode-packages/js-component-explorer/packages/explorer ../vscode-packages/js-component-explorer/packages/cli --no-save && cd build/rspack && npm install ../../../vscode-packages/js-component-explorer/packages/webpack-plugin ../../../vscode-packages/js-component-explorer/packages/explorer --no-save && cd ../vite && npm install ../../../vscode-packages/js-component-explorer/packages/vite-plugin ../../../vscode-packages/js-component-explorer/packages/explorer --no-save",
"install-latest-component-explorer": "npm install @vscode/component-explorer@next @vscode/component-explorer-cli@next && cd build/rspack && npm install @vscode/component-explorer-webpack-plugin@next @vscode/component-explorer@next && cd ../vite && npm install @vscode/component-explorer-vite-plugin@next @vscode/component-explorer@next"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.82.0",
"@github/copilot": "1.0.39",
"@github/copilot-sdk": "^0.3.0",
"@microsoft/1ds-core-js": "^3.2.13",
"@microsoft/1ds-post-js": "^3.2.13",
"@microsoft/dev-tunnels-connections": "^1.3.41",
"@microsoft/dev-tunnels-contracts": "^1.3.41",
"@microsoft/dev-tunnels-management": "^1.3.41",
"@microsoft/dev-tunnels-ssh": "^3.12.22",
"@microsoft/dev-tunnels-ssh-tcp": "^3.12.22",
"@parcel/watcher": "^2.5.6",
"@types/semver": "^7.5.8",
"@vscode/codicons": "^0.0.46-6",
"@vscode/copilot-api": "^0.3.0",
"@vscode/deviceid": "^0.1.1",
"@vscode/iconv-lite-umd": "0.7.1",
"@vscode/native-watchdog": "^1.4.6",
"@vscode/policy-watcher": "^1.3.2",
"@vscode/proxy-agent": "^0.41.0",
"@vscode/ripgrep": "^1.17.1",
"@vscode/sandbox-runtime": "0.0.1",
"@vscode/spdlog": "^0.15.8",
"@vscode/sqlite3": "5.1.12-vscode",
"@vscode/sudo-prompt": "9.3.2",
"@vscode/tree-sitter-wasm": "^0.3.1",
"@vscode/vscode-languagedetection": "1.0.23",
"@vscode/windows-mutex": "^0.5.0",
"@vscode/windows-process-tree": "^0.7.0",
"@vscode/windows-registry": "^1.2.0",
"@xterm/addon-clipboard": "^0.3.0-beta.213",
"@xterm/addon-image": "^0.10.0-beta.213",
"@xterm/addon-ligatures": "^0.11.0-beta.213",
"@xterm/addon-progress": "^0.3.0-beta.213",
"@xterm/addon-search": "^0.17.0-beta.213",
"@xterm/addon-serialize": "^0.15.0-beta.213",
"@xterm/addon-unicode11": "^0.10.0-beta.213",
"@xterm/addon-webgl": "^0.20.0-beta.212",
"@xterm/headless": "^6.1.0-beta.213",
"@xterm/xterm": "^6.1.0-beta.213",
"chrome-remote-interface": "^0.33.0",
"http-proxy-agent": "^7.0.0",
"https-proxy-agent": "^7.0.2",
"jschardet": "3.1.4",
"katex": "^0.16.22",
"kerberos": "2.1.1",
"minimist": "^1.2.8",
"native-is-elevated": "0.9.0",
"native-keymap": "^3.3.5",
"node-pty": "^1.2.0-beta.12",
"open": "^10.1.2",
"playwright-core": "1.59.1",
"ssh2": "^1.16.0",
"tas-client": "0.3.1",
"undici": "^7.24.0",
"vscode-oniguruma": "1.7.0",
"vscode-regexpp": "^3.1.0",
"vscode-textmate": "^9.3.2",
"ws": "^8.19.0",
"yauzl": "^3.0.0",
"yazl": "^2.4.3"
},
"devDependencies": {
"@anthropic-ai/claude-agent-sdk": "0.2.128",
"@playwright/cli": "^0.1.9",
"@playwright/test": "^1.56.1",
"@stylistic/eslint-plugin-ts": "^2.8.0",
"@types/chrome-remote-interface": "^0.33.0",
"@types/cookie": "^0.3.3",
"@types/debug": "^4.1.5",
"@types/eslint": "^9.6.1",
"@types/gulp-svgmin": "^1.2.1",
"@types/http-proxy-agent": "^2.0.1",
"@types/kerberos": "^1.1.2",
"@types/minimist": "^1.2.1",
"@types/mocha": "^10.0.10",
"@types/node": "^22.18.10",
"@types/sinon": "^10.0.2",
"@types/sinon-test": "^2.4.2",
"@types/source-map-support": "^0.5.10",
"@types/ssh2": "^1.15.4",
"@types/trusted-types": "^2.0.7",
"@types/vscode-notebook-renderer": "^1.72.0",
"@types/wicg-file-system-access": "^2023.10.7",
"@types/windows-foreground-love": "^0.3.0",
"@types/winreg": "^1.2.30",
"@types/ws": "^8.18.1",
"@types/yauzl": "^2.10.0",
"@types/yazl": "^2.4.2",
"@typescript-eslint/utils": "^8.45.0",
"@typescript/native-preview": "^7.0.0-dev.20260429",
"@vscode/component-explorer": "^0.2.1-26",
"@vscode/component-explorer-cli": "^0.2.1-26",
"@vscode/gulp-electron": "1.41.2",
"@vscode/l10n-dev": "0.0.35",
"@vscode/telemetry-extractor": "^1.20.2",
"@vscode/test-cli": "^0.0.6",
"@vscode/test-electron": "^2.4.0",
"@vscode/test-web": "^0.0.76",
"@vscode/v8-heap-parser": "^0.1.0",
"@vscode/vscode-perf": "^0.0.19",
"@webgpu/types": "^0.1.66",
"ansi-colors": "^3.2.3",
"asar": "^3.0.3",
"chromium-pickle-js": "^0.2.0",
"cookie": "^0.7.2",
"debounce": "^1.0.0",
"deemon": "^1.13.6",
"electron": "39.8.8",
"eslint": "^9.36.0",
"eslint-formatter-compact": "^8.40.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsdoc": "^50.3.1",
"event-stream": "3.3.4",
"fancy-log": "^1.3.3",
"glob": "^5.0.13",
"gulp": "^4.0.0",
"gulp-azure-storage": "^0.12.1",
"gulp-bom": "^3.0.0",
"gulp-buffer": "0.0.2",
"gulp-filter": "^5.1.0",
"gulp-flatmap": "^1.0.2",
"gulp-gunzip": "^1.0.0",
"gulp-gzip": "^1.4.2",
"gulp-json-editor": "^2.5.0",
"gulp-plumber": "^1.2.0",
"gulp-rename": "^1.2.0",
"gulp-replace": "^0.5.4",
"gulp-sourcemaps": "^3.0.0",
"gulp-svgmin": "^4.1.0",
"husky": "^0.13.1",
"innosetup": "^6.4.1",
"istanbul-lib-coverage": "^3.2.0",
"istanbul-lib-instrument": "^6.0.1",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.1",
"istanbul-reports": "^3.1.5",
"lazy.js": "^0.4.2",
"merge-options": "^1.0.1",
"mime": "^1.4.1",
"minimatch": "^3.1.5",
"mocha": "^10.8.2",
"mocha-junit-reporter": "^2.2.1",
"mocha-multi-reporters": "^1.5.1",
"npm-run-all2": "^8.0.4",
"os-browserify": "^0.3.0",
"p-all": "^1.0.0",
"path-browserify": "^1.0.1",
"pump": "^1.0.1",
"rcedit": "^1.1.0",
"rimraf": "^2.2.8",
"sinon": "^12.0.1",
"sinon-test": "^3.1.3",
"source-map": "0.6.1",
"source-map-support": "^0.5.21",
"tar": "^7.5.9",
"tsec": "0.2.7",
"tslib": "^2.6.3",
"typescript": "^6.0.0-dev.20260416",
"typescript-eslint": "^8.45.0",
"util": "^0.12.4",
"xml2js": "^0.5.0",
"yaserver": "^0.4.0"
},
"overrides": {
"node-gyp-build": "4.8.1",
"kerberos@2.1.1": {
"node-addon-api": "7.1.0"
},
"serialize-javascript": "^7.0.3",
"ssh2": {
"cpu-features": "0.0.0"
}
},
"repository": {
"type": "git",
"url": "https://github.com/microsoft/vscode.git"
},
"bugs": {
"url": "https://github.com/microsoft/vscode/issues"
},
"optionalDependencies": {
"windows-foreground-love": "0.6.1"
}
}