use IPromptsService to provide customizations#309873
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR migrates prompt/customization plumbing to a unified IPromptsService backed by the VS Code vscode.chat APIs, updating runtime code and tests accordingly.
Changes:
- Introduces a VS Code–backed
PromptsServiceImplthat exposes agents/instructions/skills/hooks/plugins + change events viavscode.chat. - Expands
IPromptsServiceto include change events and accessors for agents/instructions/skills/hooks/plugins. - Updates Claude customization + Copilot CLI session code/tests to consume
IPromptsService, and removes now-redundant custom agent service code.
Show a summary per file
| File | Description |
|---|---|
| extensions/copilot/src/platform/promptFiles/vscode/promptsServiceImpl.ts | New VS Code implementation of IPromptsService (events + vscode.chat access + prompt parsing). |
| extensions/copilot/src/platform/promptFiles/test/common/mockPromptsService.ts | New test mock for IPromptsService. |
| extensions/copilot/src/platform/promptFiles/common/promptsService.ts | Extends the service contract with events + accessors for chat resources. |
| extensions/copilot/src/extension/chatSessions/vscode-node/claudeCustomizationProvider.ts | Switches Claude customization discovery to IPromptsService. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotcliSessionService.ts | Reads agent metadata/content via IPromptsService instead of parsed prompt files. |
| extensions/copilot/src/extension/extension/vscode/services.ts | Wires up the new VS Code prompts service implementation. |
| extensions/copilot/src/extension/test/vscode-node/services.ts | Updates test service wiring to the new implementation. |
| extensions/copilot/src/extension/chatSessions/vscode-node/test/claudeCustomizationProvider.spec.ts | Updates tests to use MockPromptsService. |
| extensions/copilot/src/extension/chatSessions/vscode-node/test/copilotCLIChatSessionParticipant.spec.ts | Updates tests to use MockPromptsService. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/test/copilotCliSessionService.spec.ts | Updates tests to use MockPromptsService. |
| extensions/copilot/src/extension/chatSessions/vscode-node/chatCustomAgentsService.ts | Removes redundant custom agents service implementation. |
| extensions/copilot/src/extension/chatSessions/common/chatCustomAgentsService.ts | Removes redundant custom agents service interface. |
| extensions/copilot/src/platform/promptFiles/common/promptsServiceImpl.ts | Deletes old non-VS Code prompts service implementation. |
| extensions/copilot/src/extension/chatSessions/copilotcli/vscode-node/test/testHelpers.ts | Removes the old prompt-file-service test helper. |
Copilot's findings
- Files reviewed: 14/14 changed files
- Comments generated: 3
Screenshot ChangesBase: Changed (14) |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR migrates chat customization discovery (agents, instructions, skills, hooks, plugins) from the bespoke IChatPromptFileService to the shared IPromptsService, aligning Copilot CLI/Claude customization providers with the VS Code vscode.chat.* APIs and consolidating test mocking around a single prompts service abstraction.
Changes:
- Expand
IPromptsServiceto expose customization lists + change events, and introduce a VS Code-backedPromptsServiceImpl. - Remove
IChatPromptFileService/ChatPromptFileServiceand update Copilot CLI + Claude customization providers and session service to useIPromptsService. - Add
MockPromptsServiceand update unit tests/e2e wiring accordingly.
Show a summary per file
| File | Description |
|---|---|
| extensions/copilot/test/e2e/cli.stest.ts | Removes IChatPromptFileService test wiring in favor of prompts service usage. |
| extensions/copilot/src/platform/promptFiles/vscode/promptsServiceImpl.ts | New VS Code-backed implementation providing customization lists/events + parsing. |
| extensions/copilot/src/platform/promptFiles/test/common/mockPromptsService.ts | New test mock for IPromptsService customizations + parse stubbing. |
| extensions/copilot/src/platform/promptFiles/common/promptsServiceImpl.ts | Removes the former common-only PromptsServiceImpl. |
| extensions/copilot/src/platform/promptFiles/common/promptsService.ts | Extends the IPromptsService API surface with customization getters + events. |
| extensions/copilot/src/extension/test/vscode-node/services.ts | Switches prompts service binding to the new VS Code implementation. |
| extensions/copilot/src/extension/extension/vscode/services.ts | Switches prompts service binding to the new VS Code implementation. |
| extensions/copilot/src/extension/chatSessions/vscode-node/copilotCLICustomizationProvider.ts | Uses IPromptsService for all customizations; parallelizes fetching and adds error isolation. |
| extensions/copilot/src/extension/chatSessions/vscode-node/claudeCustomizationProvider.ts | Uses IPromptsService for agents/skills instead of chat prompt file service. |
| extensions/copilot/src/extension/chatSessions/vscode-node/chatSessions.ts | Removes registration/usage of ChatPromptFileService. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotcliSessionService.ts | Reworks agent-mode-instructions lookup to use IPromptsService and lazy content parsing. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotCli.ts | Updates CopilotCLIAgents to consume IPromptsService ChatCustomAgent objects. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotCLISkills.ts | Makes getSkillsLocations async and sources skills from IPromptsService. |
| extensions/copilot/src/extension/chatSessions//test//*.spec.ts | Updates tests to use MockPromptsService and richer typed stubs. |
| extensions/copilot/src/extension/chatSessions/**/chatPromptFileService.ts | Deletes the old file-based chat prompt service implementation. |
| extensions/copilot/src/extension/chatSessions/common/chatPromptFileService.ts | Deletes the old IChatPromptFileService interface. |
Copilot's findings
- Files reviewed: 26/26 changed files
- Comments generated: 7
…omptsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
No description provided.