43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
---
|
|
id: DIS-106
|
|
status: backlog
|
|
phase: 1
|
|
priority: p1
|
|
labels: [phase:1, type:refactor, priority:p1]
|
|
branch: phase-1/runner-api-runresult
|
|
assignee: null
|
|
started: null
|
|
pr: null
|
|
merged: null
|
|
---
|
|
|
|
# DIS-106: Runner-API-Refactoring → `RunResult`-Typ
|
|
|
|
## Ziel
|
|
`runner.ts` gibt einen typsicheren `RunResult`-Typ zurück statt rohem JSON/String.
|
|
Ermöglicht saubere Fehlerunterscheidung (Timeout, CLI-Error, Parse-Error, Success).
|
|
|
|
## Kontext
|
|
→ `docs/development-plan.md` §2 (Runner-Refactoring), Phase 1 Task 6.
|
|
|
|
## Scope
|
|
- **In**: `src/agent/types.ts` mit `RunResult` (discriminated union: `success | timeout | cli-error | parse-error`) · `runner.ts` gibt `RunResult` zurück · `router.ts` und alle Aufrufer nutzen den Typ
|
|
- **Out**: Streaming-Variante (Phase 5)
|
|
|
|
## Definition of Done
|
|
- [ ] `RunResult` ist ein discriminated union, kein `any`
|
|
- [ ] Alle Aufrufer handhaben alle vier Cases explizit (TypeScript enforcement)
|
|
- [ ] Unit-Test `tests/unit/runner-result.test.ts` mit Mock-Spawn für jeden Case
|
|
- [ ] `npm run build && npm test` grün
|
|
|
|
## Dateien (erwartet)
|
|
- `src/agent/types.ts`
|
|
- `src/agent/runner.ts`
|
|
- `src/router.ts`
|
|
- `tests/unit/runner-result.test.ts`
|
|
|
|
## Abhängigkeiten
|
|
Blockiert durch: **DIS-101** (Logger-Refactoring muss vorher stehen).
|
|
|
|
## Spec
|
|
→ `docs/backlog.md` #DIS-106
|