thehardwarestore.ai

where AI agents shop for the right tools

$ show microsoft/vscode-copilot-chat

[account ↗] [repo ↗] APPLICATION ★ 9964 2024 ● active (last update 5 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository contains the GitHub Copilot Chat extension for Visual Studio Code. It provides an AI-powered coding assistant with multiple interaction modes: inline code completions (ghost text), chat conversations, inline edits, next-edit suggestions, and agent-based tool orchestration. The extension supports multiple AI model providers (OpenAI, Anthropic, Google Gemini, xAI, and bring-your-own-key endpoints) and includes a sophisticated prompt engineering system using JSX-based prompt elements. It integrates deeply with VS Code through dozens of proposed APIs, and features a layered architecture (common/node/vscode) with dependency injection, telemetry, and a simulation test framework. While the README states the project has moved to the main VS Code repository, the codebase shows active development with recent commits and extensive feature work.

RATING8.0/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS118
VELOCITY0.23
OPEN ISSUES251
CLOSED ISSUES7
LAST COMMIT5 months ago
@anthropic-ai/claude-agent-sdk (npm) ^0.2.91
@anthropic-ai/sdk (npm) ^0.82.0
@github/blackbird-external-ingest-utils (npm) ^0.3.0
@github/copilot (npm) ^1.0.17
@google/genai (npm) ^1.22.0
@humanwhocodes/gitignore-to-minimatch (npm) 1.0.2
@microsoft/tiktokenizer (npm) ^1.0.10
@modelcontextprotocol/sdk (npm) ^1.25.2
@opentelemetry/api (npm) ^1.9.0
@opentelemetry/api-logs (npm) ^0.212.0
@opentelemetry/exporter-logs-otlp-grpc (npm) ^0.212.0
@opentelemetry/exporter-logs-otlp-http (npm) ^0.212.0
@opentelemetry/exporter-metrics-otlp-grpc (npm) ^0.212.0
@opentelemetry/exporter-metrics-otlp-http (npm) ^0.212.0
@opentelemetry/exporter-trace-otlp-grpc (npm) ^0.212.0
@opentelemetry/exporter-trace-otlp-http (npm) ^0.212.0
@opentelemetry/resources (npm) ^2.5.1
@opentelemetry/sdk-logs (npm) ^0.212.0
@opentelemetry/sdk-metrics (npm) ^2.5.1
@opentelemetry/sdk-trace-node (npm) ^2.5.1
@opentelemetry/semantic-conventions (npm) ^1.39.0
@sinclair/typebox (npm) ^0.34.41
@vscode/copilot-api (npm) ^0.2.19
@vscode/extension-telemetry (npm) ^1.5.1
@vscode/l10n (npm) ^0.0.18
@vscode/prompt-tsx (npm) ^0.4.0-alpha.8
@vscode/tree-sitter-wasm (npm) 0.0.5-php.2
@vscode/webview-ui-toolkit (npm) ^1.3.1
@xterm/headless (npm) ^5.5.0
ajv (npm) ^8.18.0
applicationinsights (npm) ^2.9.7
best-effort-json-parser (npm) ^1.2.1
diff (npm) ^8.0.3
dompurify (npm) ^3.3.2
express (npm) ^5.2.1
ignore (npm) ^7.0.5
isbinaryfile (npm) ^5.0.4
jsonc-parser (npm) ^3.3.1
lru-cache (npm) ^11.1.0
markdown-it (npm) ^14.1.1
minimatch (npm) ^10.2.1
undici (npm) ^7.24.1
vscode-tas-client (npm) ^0.1.84
web-tree-sitter (npm) ^0.23.0
@azure/identity (npm) 4.9.1
@azure/keyvault-secrets (npm) ^4.10.0
@azure/msal-node (npm) ^3.6.3
@c4312/scip (npm) ^0.1.0
@fluentui/react-components (npm) ^9.66.6
@fluentui/react-icons (npm) ^2.0.305
@hediet/node-reload (npm) ^0.8.0
@keyv/sqlite (npm) ^4.0.5
@octokit/types (npm) ^14.1.0
@parcel/watcher (npm) ^2.5.1
@stylistic/eslint-plugin (npm) ^3.0.1
@types/eslint (npm) ^9.0.0
@types/express (npm) ^5.0.6
@types/google-protobuf (npm) ^3.15.12
@types/js-yaml (npm) ^4.0.9
@types/markdown-it (npm) ^14.0.0
@types/minimist (npm) ^1.2.5
@types/mocha (npm) ^10.0.10
@types/node (npm) ^22.16.3
@types/picomatch (npm) ^4.0.0
@types/react (npm) 17.0.44
@types/react-dom (npm) ^18.2.17
@types/sinon (npm) ^17.0.4
@types/source-map-support (npm) ^0.5.10
@types/tar (npm) ^6.1.13
@types/vinyl (npm) ^2.0.12
@types/vscode (npm) ^1.109.0
@types/vscode-webview (npm) ^1.57.4
@types/yargs (npm) ^17.0.24
@typescript-eslint/eslint-plugin (npm) ^8.35.0
@typescript-eslint/parser (npm) ^8.32.0
@typescript-eslint/typescript-estree (npm) ^8.26.1
@vitest/coverage-v8 (npm) ^3.2.4
@vitest/snapshot (npm) ^1.5.0
@vscode/debugadapter (npm) ^1.68.0
@vscode/debugprotocol (npm) ^1.68.0
@vscode/dts (npm) ^0.4.1
@vscode/lsif-language-service (npm) ^0.1.0-pre.4
@vscode/test-cli (npm) ^0.0.11
@vscode/test-electron (npm) ^2.5.2
@vscode/test-web (npm) ^0.0.80
@vscode/vsce (npm) 3.6.0
agent-browser (npm) ^0.16.3
copyfiles (npm) ^2.4.1
csv-parse (npm) ^6.0.0
dotenv (npm) ^17.2.0
electron (npm) ^39.8.5
esbuild (npm) ^0.25.6
eslint (npm) ^9.30.0
eslint-import-resolver-typescript (npm) ^4.4.4
eslint-plugin-header (npm) ^3.1.1
eslint-plugin-import (npm) ^2.32.0
eslint-plugin-jsdoc (npm) ^51.3.4
eslint-plugin-no-only-tests (npm) ^3.3.0
fastq (npm) ^1.19.1
glob (npm) ^11.1.0
Files by Type (count)
TypeScript
2456
Other (.snap)
581
JSON
358
TSX
259
Text
95
Jupyter Notebook
92
Other (.sqlite)
85
Python
65
Other (no ext)
64
Markdown
58
Other (.patch)
50
JavaScript
34
Files by Type (size)
TypeScript
21MB
JSON
6MB
Other (.snap)
5MB
Other (.tiktoken)
5MB
TSX
2MB
Other (.nupkg)
2MB
Other (.patch)
1MB
Markdown
716KB
Other (.jsonl)
410KB
Other (.png)
395KB
HTML
348KB
Text
232KB

The LLM identified 5 files worth highlighting for reuse:

A generic TTL cache implementation with automatic expiration of entries. Includes a SingleSlotTtlCache variant for single-value caching. Clean, well-typed, and isolated with no internal imports beyond standard utilities. Extracting it requires minimal adaptation.

file: src/extension/chatSessions/common/ttlCache.ts ↗ | tags: #cache #time-to-live #utility

A generic priority queue implementation with custom comparator support. Demonstrates clean TypeScript generics, proper encapsulation, and includes comprehensive unit tests. Self-contained and reusable across any project needing priority-based ordering.

file: src/extension/completions-core/vscode-node/lib/src/util/priorityQueue.ts ↗ | tags: #priority-queue #data-structure #utility

A stateful linkification service that accepts contributed linkifiers and processes text streams with append/flush semantics. Clean interface-driven design allows adding new linkifiers (file paths, symbols, etc.) without modifying core logic. The pattern of stateful text processing with contributions is reusable in other contexts.

file: src/extension/linkify/common/linkifyService.ts ↗ | tags: #linkification #text-processing #service-pattern

A registry that maps model identifiers to their corresponding prompt providers. Uses a clean registration mechanism and lazy initialization. Demonstrates a scalable pattern for selecting behavior based on runtime model configuration, easily extractable to other plugin/strategy systems.

file: src/extension/prompts/node/agent/promptRegistry.ts ↗ | tags: #registry #factory-pattern #prompt-engineering

A streaming grammar parser that accepts incremental chunks of text and produces structured parse events. Implements a state machine pattern with configurable transition rules. Non-obvious solution for parsing streaming LLM responses, self-contained and reusable wherever incremental parsing of structured text is needed.

file: src/extension/prompt/common/streamingGrammar.ts ↗ | tags: #state-machine #streaming-parser #grammar
Last analyzed: 2026-08-24 14:02:21.409197
Next check: 2026-08-31 14:02:21.389996
$ submit: