docs: update meta files for provider adapter implementation
This commit is contained in:
parent
11b00f18f8
commit
8f4faaafa3
6 changed files with 93 additions and 43 deletions
|
|
@ -23,3 +23,41 @@
|
|||
- PA-6: Providers section in SettingsTab scroll (not inner tabs)
|
||||
|
||||
**Status:** Planning complete. Ready for Phase 1 implementation.
|
||||
|
||||
### 2026-03-11 — Implementation (All 3 Phases)
|
||||
|
||||
**Duration:** ~60 min
|
||||
|
||||
**What happened:**
|
||||
|
||||
**Phase 1 — Core Abstraction Layer (16 tasks):**
|
||||
1. Created provider types (ProviderId, ProviderCapabilities, ProviderMeta, ProviderSettings)
|
||||
2. Created Svelte 5 rune-based provider registry (registry.svelte.ts)
|
||||
3. Created Claude provider meta constant (claude.ts)
|
||||
4. Renamed sdk-messages.ts → claude-messages.ts, updated 13+ import references
|
||||
5. Created message adapter registry (message-adapters.ts) with per-provider routing
|
||||
6. Updated Rust AgentQueryOptions with `provider` and `provider_config` fields (serde defaults for backward compat)
|
||||
7. Updated agent-bridge.ts TypeScript options
|
||||
8. Renamed agent-runner.ts → claude-runner.ts, rebuilt dist bundle
|
||||
9. Added provider field to ProjectConfig (groups.ts)
|
||||
10. Renamed ClaudeSession.svelte → AgentSession.svelte with provider awareness
|
||||
11. Updated agent-dispatcher.ts with sessionProviderMap for provider-based message routing
|
||||
12. Updated AgentPane.svelte with capability-driven rendering (hasProfiles, hasSkills, supportsResume gates)
|
||||
13. Created provider-bridge.ts (generic adapter delegating to provider-specific bridges)
|
||||
14. Registered CLAUDE_PROVIDER in App.svelte onMount
|
||||
15. Updated all test mocks (dispatcher test: adaptMessage mock with provider param)
|
||||
16. Verified: 202 vitest + 42 cargo tests pass
|
||||
|
||||
**Phase 2 — Settings UI (5 tasks):**
|
||||
1. Added "Providers" section to SettingsTab with collapsible per-provider config panels
|
||||
2. Each panel: enabled toggle, default model input, capabilities badge display
|
||||
3. Added per-project provider dropdown in project cards (conditional on >1 provider)
|
||||
4. Provider settings persisted as JSON blob via `provider_settings` settings key
|
||||
5. AgentPane already capability-aware from Phase 1
|
||||
|
||||
**Phase 3 — Sidecar Routing (3 tasks):**
|
||||
1. Refactored resolve_sidecar_command() → resolve_sidecar_for_provider(provider) — looks for `{provider}-runner.mjs`
|
||||
2. query() validates provider runner exists before sending message
|
||||
3. Extracted strip_provider_env_var() — strips CLAUDE*/CODEX*/OLLAMA* env vars (whitelists CLAUDE_CODE_EXPERIMENTAL_*)
|
||||
|
||||
**Status:** All 3 phases complete. 202 vitest + 42 cargo tests pass. Zero regression.
|
||||
|
|
|
|||
|
|
@ -23,40 +23,40 @@ Multi-provider agent support (Claude Code, Codex CLI, Ollama) via adapter patter
|
|||
|
||||
| # | Task | Files | Status |
|
||||
|---|------|-------|--------|
|
||||
| 1.1 | Create provider types | NEW: `src/lib/providers/types.ts` | pending |
|
||||
| 1.2 | Create provider registry | NEW: `src/lib/providers/registry.svelte.ts` | pending |
|
||||
| 1.3 | Create Claude provider meta | NEW: `src/lib/providers/claude.ts` | pending |
|
||||
| 1.4 | Rename sdk-messages.ts → claude-messages.ts | RENAME + update imports | pending |
|
||||
| 1.5 | Create message adapter registry | NEW: `src/lib/adapters/message-adapters.ts` | pending |
|
||||
| 1.6 | Update Rust AgentQueryOptions | MOD: `bterminal-core/src/sidecar.rs` | pending |
|
||||
| 1.7 | Update agent-bridge.ts options shape | MOD: `src/lib/adapters/agent-bridge.ts` | pending |
|
||||
| 1.8 | Rename agent-runner.ts → claude-runner.ts | RENAME + update build script | pending |
|
||||
| 1.9 | Add provider field to ProjectConfig | MOD: `src/lib/types/groups.ts` | pending |
|
||||
| 1.10 | Rename ClaudeSession.svelte → AgentSession.svelte | RENAME + update imports | pending |
|
||||
| 1.11 | Update agent-dispatcher provider routing | MOD: `src/lib/agent-dispatcher.ts` | pending |
|
||||
| 1.12 | Update AgentPane for capability-driven rendering | MOD: `src/lib/components/Agent/AgentPane.svelte` | pending |
|
||||
| 1.13 | Rename claude-bridge.ts → provider-bridge.ts | RENAME + genericize | pending |
|
||||
| 1.14 | Update Rust lib.rs commands | MOD: `src-tauri/src/lib.rs` | pending |
|
||||
| 1.15 | Update all tests | MOD: test files | pending |
|
||||
| 1.16 | Verify: 202 vitest + 42 cargo tests pass | — | pending |
|
||||
| 1.1 | Create provider types | NEW: `src/lib/providers/types.ts` | done |
|
||||
| 1.2 | Create provider registry | NEW: `src/lib/providers/registry.svelte.ts` | done |
|
||||
| 1.3 | Create Claude provider meta | NEW: `src/lib/providers/claude.ts` | done |
|
||||
| 1.4 | Rename sdk-messages.ts → claude-messages.ts | RENAME + update imports | done |
|
||||
| 1.5 | Create message adapter registry | NEW: `src/lib/adapters/message-adapters.ts` | done |
|
||||
| 1.6 | Update Rust AgentQueryOptions | MOD: `bterminal-core/src/sidecar.rs` | done |
|
||||
| 1.7 | Update agent-bridge.ts options shape | MOD: `src/lib/adapters/agent-bridge.ts` | done |
|
||||
| 1.8 | Rename agent-runner.ts → claude-runner.ts | RENAME + update build script | done |
|
||||
| 1.9 | Add provider field to ProjectConfig | MOD: `src/lib/types/groups.ts` | done |
|
||||
| 1.10 | Rename ClaudeSession.svelte → AgentSession.svelte | RENAME + update imports | done |
|
||||
| 1.11 | Update agent-dispatcher provider routing | MOD: `src/lib/agent-dispatcher.ts` | done |
|
||||
| 1.12 | Update AgentPane for capability-driven rendering | MOD: `src/lib/components/Agent/AgentPane.svelte` | done |
|
||||
| 1.13 | Rename claude-bridge.ts → provider-bridge.ts | RENAME + genericize | done |
|
||||
| 1.14 | Update Rust lib.rs commands | MOD: `src-tauri/src/lib.rs` | done |
|
||||
| 1.15 | Update all tests | MOD: test files | done |
|
||||
| 1.16 | Verify: 202 vitest + 42 cargo tests pass | — | done |
|
||||
|
||||
### Phase 2: Settings UI
|
||||
|
||||
| # | Task | Files | Status |
|
||||
|---|------|-------|--------|
|
||||
| 2.1 | Add Providers section to SettingsTab | MOD: `SettingsTab.svelte` | pending |
|
||||
| 2.2 | Per-provider collapsible config panels | MOD: `SettingsTab.svelte` | pending |
|
||||
| 2.3 | Per-project provider dropdown | MOD: `SettingsTab.svelte` | pending |
|
||||
| 2.4 | Persist provider settings | MOD: `settings-bridge.ts` | pending |
|
||||
| 2.5 | Provider-aware AgentPane | MOD: `AgentPane.svelte` | pending |
|
||||
| 2.1 | Add Providers section to SettingsTab | MOD: `SettingsTab.svelte` | done |
|
||||
| 2.2 | Per-provider collapsible config panels | MOD: `SettingsTab.svelte` | done |
|
||||
| 2.3 | Per-project provider dropdown | MOD: `SettingsTab.svelte` | done |
|
||||
| 2.4 | Persist provider settings | MOD: `settings-bridge.ts` | done |
|
||||
| 2.5 | Provider-aware AgentPane | MOD: `AgentPane.svelte` | done |
|
||||
|
||||
### Phase 3: Sidecar Routing
|
||||
|
||||
| # | Task | Files | Status |
|
||||
|---|------|-------|--------|
|
||||
| 3.1 | SidecarManager provider-based runner selection | MOD: `bterminal-core/src/sidecar.rs` | pending |
|
||||
| 3.2 | Per-provider runner discovery | MOD: `bterminal-core/src/sidecar.rs` | pending |
|
||||
| 3.3 | Provider-specific env var stripping | MOD: `bterminal-core/src/sidecar.rs` | pending |
|
||||
| 3.1 | SidecarManager provider-based runner selection | MOD: `bterminal-core/src/sidecar.rs` | done |
|
||||
| 3.2 | Per-provider runner discovery | MOD: `bterminal-core/src/sidecar.rs` | done |
|
||||
| 3.3 | Provider-specific env var stripping | MOD: `bterminal-core/src/sidecar.rs` | done |
|
||||
|
||||
## Type System
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue