mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-18 23:59:43 +01:00
* component explorer fixture for chat customization tabs * chat customizations: full editor fixture + developer skill * Refine AI customization management editor fixtures * fix: update DOM element creation to use shorthand syntax --------- Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
---
|
|
name: chat-customizations-editor
|
|
description: Use when working on the Chat Customizations editor — the management UI for agents, skills, instructions, hooks, prompts, MCP servers, and plugins.
|
|
---
|
|
|
|
# Chat Customizations Editor
|
|
|
|
Split-view management pane for AI customization items across workspace, user, extension, and plugin storage. Supports harness-based filtering (Local, Copilot CLI, Claude).
|
|
|
|
## Spec
|
|
|
|
**`src/vs/sessions/AI_CUSTOMIZATIONS.md`** — always read before making changes, always update after.
|
|
|
|
## Key Folders
|
|
|
|
| Folder | What |
|
|
|--------|------|
|
|
| `src/vs/workbench/contrib/chat/common/` | `ICustomizationHarnessService`, `ISectionOverride`, `IStorageSourceFilter` — shared interfaces and filter helpers |
|
|
| `src/vs/workbench/contrib/chat/browser/aiCustomization/` | Management editor, list widgets (prompts, MCP, plugins), harness service registration |
|
|
| `src/vs/sessions/contrib/chat/browser/` | Sessions-window overrides (harness service, workspace service) |
|
|
| `src/vs/sessions/contrib/sessions/browser/` | Sessions tree view counts and toolbar |
|
|
|
|
When changing harness descriptor interfaces or factory functions, verify both core and sessions registrations compile.
|
|
|
|
## Key Interfaces
|
|
|
|
- **`IHarnessDescriptor`** — drives all UI behavior declaratively (hidden sections, button overrides, file filters, agent gating). See spec for full field reference.
|
|
- **`ISectionOverride`** — per-section button customization (command invocation, root file creation, type labels, file extensions).
|
|
- **`IStorageSourceFilter`** — controls which storage sources and user roots are visible per harness/type.
|
|
|
|
Principle: the UI widgets read everything from the descriptor — no harness-specific conditionals in widget code.
|
|
|
|
## Testing
|
|
|
|
Component explorer fixtures (see `component-fixtures` skill): `aiCustomizationListWidget.fixture.ts`, `aiCustomizationManagementEditor.fixture.ts` under `src/vs/workbench/test/browser/componentFixtures/`.
|
|
|
|
```bash
|
|
./scripts/test.sh --grep "applyStorageSourceFilter|customizationCounts"
|
|
npm run compile-check-ts-native && npm run valid-layers-check
|
|
```
|
|
|
|
See the `sessions` skill for sessions-window specific guidance.
|