--- id: DIS-152 status: in-progress phase: 1.5 priority: p2 labels: [phase:1.5, type:feat, priority:p2] branch: refinement/mapped-project-paths assignee: developer-agent started: 2026-04-13 pr: null merged: null --- # DIS-152: Gemappte Projektpfade für Agents (host:virtual) ## Ziel Beim Erstellen eines Agents kann ein zusätzlicher Host-Pfad angegeben werden, auf den der Agent zugreifen kann. Im Discord-Output erscheint immer nur der konfigurierte virtuelle Pfad — nie der echte Host-Pfad. ## Kontext Agents sollen auf bestehende Projektverzeichnisse zugreifen können (z.B. ein laufendes Codeprojekt) ohne dass der absolute Host-Pfad in Discord-Nachrichten durchsickert. **Wichtiger Hinweis**: Es handelt sich um *keine* echte Isolation/Containerisierung. Claude Code sieht den echten Pfad intern. Die Sanitisierung ersetzt den Host-Pfad in allen Discord-Ausgaben durch den konfigurierten virtuellen Pfad. ## Scope ### `agent.yaml` Erweiterung ```yaml name: my-agent channel_id: "123456789" role: Developer model: claude-sonnet-4-6 path_mappings: - host: "C:/Code/side/testProject" virtual: "~/testProject" ``` ### `/new-agent`-Command Erweiterung - Neuer optionaler Parameter `path` im Format `host:virtual` (z.B. `C:\Code\side\testProject:~/testProject`) - Wird in `agent.yaml` unter `path_mappings` gespeichert - Validierung: Host-Pfad muss existieren ### CLAUDE.md-Template Erweiterung Beim Erstellen des Agents wird in die CLAUDE.md geschrieben: ``` ## Verfügbare Pfade - ~/testProject → dein Projekt-Workspace (verwende immer diesen Pfad in Antworten) Nenne niemals absolute Host-Pfade. Verwende ausschließlich die oben gelisteten virtuellen Pfade. ``` ### `sanitizeForDiscord` Erweiterung (`src/runtime/sanitize.ts`) - `path_mappings` aus `agent.yaml` werden beim Routing geladen - Host-Pfad (beide Slash-Varianten) → virtueller Pfad ersetzen - Reihenfolge: spezifischste Pfade zuerst (längste zuerst sortieren) ### `src/router.ts` - `sanitizeOpts` bekommt zusätzlich `pathMappings: Array<{host: string, virtual: string}>` ## Definition of Done - [ ] `agent.yaml` unterstützt `path_mappings`-Feld (Zod-Schema aktualisiert) - [ ] `/new-agent` akzeptiert optionalen `path`-Parameter - [ ] Host-Pfade erscheinen nicht in Discord-Ausgaben - [ ] Agent-CLAUDE.md enthält Hinweis auf virtuelle Pfade - [ ] Unit-Test: Sanitisierung ersetzt Host- durch virtuellen Pfad (beide Slash-Stile) - [ ] `npm run build && npm test` grün ## Dateien (erwartet) - `src/agent/schema.ts` (path_mappings Feld) - `src/agent/identity.ts` (CLAUDE.md-Template) - `src/commands/new-agent.ts` (path-Parameter) - `src/runtime/sanitize.ts` (pathMappings Support) - `src/router.ts` (sanitizeOpts erweitern) - `tests/unit/sanitize-for-discord.test.ts` (neue Cases) ## Abhängigkeiten DIS-151 empfohlen (aber kein harter Blocker).