Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 102 additions & 40 deletions extensions/copilot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -1111,7 +1111,7 @@
"toolReferenceName": "switchAgent",
"displayName": "%copilot.tools.switchAgent.name%",
"userDescription": "%copilot.tools.switchAgent.description%",
"modelDescription": "Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n✓ Switch to Plan:\n- \"Add authentication to the app\" → architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" → must understand component dependencies first\n- \"Migrate from X to Y\" → requires understanding current structure\n\n✗ Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc → context already provided\n- You already started editing files in this conversation → too late to switch\n- Single obvious change like fixing a typo or renaming → just do it\n- User gave explicit step-by-step instructions → follow them directly",
"modelDescription": "Switch to the Plan agent to align on approach before implementing. Plan will explore the codebase, gathers context, clarifies requirements with the user, and creates an actionable implementation plan.\n\nSWITCH TO PLAN when ANY of these apply:\n1. Adding new functionality - where should it go? What patterns to follow?\n2. Multiple valid approaches exist - choosing between technologies, patterns, or strategies\n3. Modifying existing behavior - unclear what should change or what side effects exist\n4. Architectural decisions required - choosing between design patterns or integration approaches\n5. Changes span multiple files - refactoring, migrations, or cross-cutting concerns\n6. Requirements are underspecified - need to explore before understanding scope\n\nEXAMPLES:\n\u2713 Switch to Plan:\n- \"Add authentication to the app\" \u2192 architectural decisions needed (session vs JWT, middleware)\n- \"Refactor this data flow\" \u2192 must understand component dependencies first\n- \"Migrate from X to Y\" \u2192 requires understanding current structure\n\n\u2717 Do NOT switch to Plan:\n- User attached a detailed spec, plan, or requirements doc \u2192 context already provided\n- You already started editing files in this conversation \u2192 too late to switch\n- Single obvious change like fixing a typo or renaming \u2192 just do it\n- User gave explicit step-by-step instructions \u2192 follow them directly",
"when": "config.github.copilot.chat.switchAgent.enabled",
"icon": "$(arrow-swap)",
"inputSchema": {
Expand All @@ -1135,7 +1135,7 @@
"displayName": "Memory",
"toolReferenceName": "memory",
"userDescription": "Manage persistent memory across conversations",
"modelDescription": "Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` — User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` — Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` — Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.",
"modelDescription": "Manage a persistent memory system with three scopes for storing notes and information across conversations.\n\nMemory is organized under /memories/ with three tiers:\n- `/memories/` \u2014 User memory: persistent notes that survive across all workspaces and conversations. Store preferences, patterns, and general insights here.\n- `/memories/session/` \u2014 Session memory: notes scoped to the current conversation. Store task-specific context and in-progress notes here. Cleared after the conversation ends.\n- `/memories/repo/` \u2014 Repository memory: repository-scoped notes stored locally in the workspace. Store codebase conventions, build commands, project structure facts, and verified practices here.\n\nIMPORTANT: Before creating new memory files, first view the /memories/ directory to understand what already exists. This helps avoid duplicates and maintain organized notes.\n\nCommands:\n- `view`: View contents of a file or list directory contents. Can be used on files or directories (e.g., \"/memories/\" to see all top-level items).\n- `create`: Create a new file at the specified path with the given content. Fails if the file already exists.\n- `str_replace`: Replace an exact string in a file with a new string. The old_str must appear exactly once in the file.\n- `insert`: Insert text at a specific line number in a file. Line 0 inserts at the beginning.\n- `delete`: Delete a file or directory (and all its contents).\n- `rename`: Rename or move a file or directory from path to new_path. Cannot rename across scopes.",
"inputSchema": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -1235,7 +1235,7 @@
"toolReferenceName": "sessionStoreSql",
"when": "github.copilot.sessionSearch.enabled",
"userDescription": "Query your Copilot session history using SQL",
"modelDescription": "Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).",
"modelDescription": "Query the local session store containing history from past coding sessions. Uses SQLite syntax (NOT DuckDB or Postgres). SQL queries are read-only \u2014 only SELECT and WITH are allowed. Use `datetime('now', '-1 day')` for date math (NOT `now() - INTERVAL '1 day'`), FTS5 `MATCH` for text search.\n\nTables: `sessions`, `turns`, `session_files`, `session_refs`, `checkpoints`, `search_index`. For column details and query patterns, use the **chronicle** skill.\n\nActions: 'query' (execute SQL \u2014 supports JOINs, FTS5 MATCH, aggregations), 'reindex' (rebuild index from debug logs).",
"tags": [],
"canBeReferencedInPrompt": false,
"inputSchema": {
Expand All @@ -1251,7 +1251,7 @@
},
"query": {
"type": "string",
"description": "A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call do not combine multiple queries with semicolons."
"description": "A single read-only SQL query to execute. Required when action is 'query'. Supports SELECT, WITH, JOINs, aggregations, and FTS5 MATCH. Only one statement per call \u2014 do not combine multiple queries with semicolons."
},
"force": {
"type": "boolean",
Expand All @@ -1271,7 +1271,7 @@
"improve",
"reindex"
],
"description": "The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only pass this whenever the call originates from a /chronicle slash command."
"description": "The chronicle subcommand that triggered this call (e.g. 'tips' for /chronicle tips). Used for telemetry attribution only \u2014 pass this whenever the call originates from a /chronicle slash command."
}
},
"required": [
Expand Down Expand Up @@ -1871,11 +1871,11 @@
"secret": true,
"description": "API key for the models",
"title": "API Key",
"markdownDeprecationMessage": "**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API selectable per model via the `apiType` property."
"markdownDeprecationMessage": "**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API \u2014 selectable per model via the `apiType` property."
},
"models": {
"type": "array",
"markdownDeprecationMessage": "**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API selectable per model via the `apiType` property.",
"markdownDeprecationMessage": "**Deprecated.** Use the `customendpoint` provider (\"Custom Endpoint\") instead. It supports the Chat Completions API, the Responses API, and the Messages API \u2014 selectable per model via the `apiType` property.",
"defaultSnippets": [
{
"label": "New Model",
Expand Down Expand Up @@ -1970,7 +1970,7 @@
"responses",
"messages"
],
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` nested, `/messages` `output_config.effort`, otherwise top-level."
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` \u2192 nested, `/messages` \u2192 `output_config.effort`, otherwise top-level."
},
"requestHeaders": {
"type": "object",
Expand Down Expand Up @@ -2157,7 +2157,7 @@
"responses",
"messages"
],
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` nested, `/messages` `output_config.effort`, otherwise top-level."
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` \u2192 nested, `/messages` \u2192 `output_config.effort`, otherwise top-level."
},
"requestHeaders": {
"type": "object",
Expand Down Expand Up @@ -2189,29 +2189,91 @@
}
},
"additionalProperties": false
},
"description": {
"type": "string",
"description": "Model description shown on hover."
},
"icon": {
"type": "string",
"description": "Model icon URL."
},
"maxTokens": {
"type": "number",
"description": "Total context window size"
},
"credits": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cacheRead": {
"type": "number"
}
}
}
},
"required": [
"id",
"name",
"url",
"toolCalling",
"vision",
"maxOutputTokens"
],
"anyOf": [
{
"required": [
"maxInputTokens"
]
},
{
"required": [
"contextWindow"
]
}
"id"
]
}
},
"url": {
"type": "string",
"pattern": "^https?://.+",
"patternErrorMessage": "URL must start with http:// or https://",
"markdownDescription": "Base URL for the models."
},
"autoFetch": {
"type": "boolean",
"default": true,
"description": "Auto-fetch models. If not configured, defaults to true when `models` is empty."
},
"global": {
"type": "object",
"description": "Global settings for models. Can be overridden by per-model settings.",
"properties": {
"description": {
"type": "string"
},
"icon": {
"type": "string"
},
"toolCalling": {
"type": "boolean"
},
"vision": {
"type": "boolean"
},
"maxInputTokens": {
"type": "number"
},
"maxOutputTokens": {
"type": "number"
},
"maxTokens": {
"type": "number",
"description": "Total context window size"
},
"credits": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cacheRead": {
"type": "number"
}
}
}
}
}
}
}
Expand Down Expand Up @@ -2311,7 +2373,7 @@
"responses",
"messages"
],
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` nested, `/messages` `output_config.effort`, otherwise top-level."
"markdownDescription": "Body shape used to forward the reasoning effort to the model. `chat-completions` sends a top-level `reasoning_effort` string. `responses` sends a nested `reasoning.effort` object. `messages` sends the Anthropic Messages `output_config.effort` field. When unset the format follows the URL: `/responses` \u2192 nested, `/messages` \u2192 `output_config.effort`, otherwise top-level."
},
"requestHeaders": {
"type": "object",
Expand Down Expand Up @@ -3284,18 +3346,18 @@
"enumDescriptions": [
"Use VS Code's configured display language",
"English",
"français",
"fran\u00e7ais",
"italiano",
"Deutsch",
"español",
"русский",
"中文(简体)",
"中文(繁體)",
"日本語",
"한국어",
"čeština",
"português",
"Türkçe",
"espa\u00f1ol",
"\u0440\u0443\u0441\u0441\u043a\u0438\u0439",
"\u4e2d\u6587(\u7b80\u4f53)",
"\u4e2d\u6587(\u7e41\u9ad4)",
"\u65e5\u672c\u8a9e",
"\ud55c\uad6d\uc5b4",
"\u010de\u0161tina",
"portugu\u00eas",
"T\u00fcrk\u00e7e",
"polski"
],
"default": "auto",
Expand Down Expand Up @@ -5485,7 +5547,7 @@
"default": 0,
"minimum": 0,
"scope": "application",
"markdownDescription": "Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.",
"markdownDescription": "Maximum size **in characters** for free-form OTel content attributes (prompts, responses, tool arguments/results, hook input/output). `0` (the default) disables truncation so backends without per-attribute size limits receive full JSON payloads. Set to a positive value when your OTel backend caps attribute size \u2014 consult your backend's documentation for its per-attribute limit. Truncated values are suffixed with `...[truncated, original N chars]`. Configurable in user settings only. Env var `COPILOT_OTEL_MAX_ATTRIBUTE_SIZE_CHARS` takes precedence. Requires window reload.",
"tags": [
"advanced"
]
Expand Down Expand Up @@ -7321,4 +7383,4 @@
},
"publisherDisplayName": "GitHub"
}
}
}
Loading