mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 23:21:08 +02:00
docs(ai): mark Missions UI + input picker (Step 6) done; document resolver/indexer symmetry
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
41052f769e
commit
bf6b9cdd4b
2 changed files with 22 additions and 4 deletions
|
|
@ -167,15 +167,17 @@ pnpm test:e2e # Playwright
|
|||
|
||||
Svelte 5 runes are mandatory — no legacy `let count = 0; $: doubled = count * 2`. Always `$state`, `$derived`, `$effect`. See [`.claude/guidelines/sveltekit-web.md`](../../.claude/guidelines/sveltekit-web.md).
|
||||
|
||||
## AI Workbench (in progress)
|
||||
## AI Workbench
|
||||
|
||||
The companion is being rebuilt into a **second actor** that works alongside the human in every module. Foundation shipped 2026-04-14:
|
||||
The companion is a **second actor** that works alongside the human in every module. Foundation shipped 2026-04-14, end-to-end pipeline live:
|
||||
|
||||
- **Actor attribution** — every event, record, and sync row carries `{ kind: 'user' | 'ai' | 'system' }`. Code: `src/lib/data/events/actor.ts`.
|
||||
- **AI policy** — per-tool `auto | propose | deny`. AI-attributed tool calls default to `propose`, which stages an intent in `pendingProposals` instead of writing. Code: `src/lib/data/ai/policy.ts`.
|
||||
- **Proposal inbox** — drop `<AiProposalInbox module="todo" />` into any module page to render pending proposals inline as ghost cards with approve/reject. Wired in `/todo` as pilot.
|
||||
- **Missions** — long-lived autonomous work items. User creates at `/companion/missions` (title + objective + concept markdown + linked inputs + cadence). Foreground tick in `(app)/+layout.svelte` runs due missions; the Planner (LLM) generates a plan, each step stages a Proposal. Code: `src/lib/data/ai/missions/`.
|
||||
- **Input picker** — `<MissionInputPicker>` sources candidates from the `input-index` registry (notes / kontext / goals by default). The Runner resolves them via the parallel `input-resolvers` registry when building Planner prompts.
|
||||
|
||||
Full architecture + roadmap (Missions, Runner, Workbench lens, server-side runner): [`docs/architecture/COMPANION_BRAIN_ARCHITECTURE.md` §20](../../docs/architecture/COMPANION_BRAIN_ARCHITECTURE.md).
|
||||
Full architecture + still-open work (Workbench timeline lens, mana-sync actor field, server-side runner): [`docs/architecture/COMPANION_BRAIN_ARCHITECTURE.md` §20](../../docs/architecture/COMPANION_BRAIN_ARCHITECTURE.md).
|
||||
|
||||
## Reference Documents
|
||||
|
||||
|
|
|
|||
|
|
@ -1768,10 +1768,26 @@ Code:
|
|||
- `runMission(id, deps)` + `runDueMissions(now, deps)` — injiziert, testbar
|
||||
- Default-Input-Resolver für Notes / Kontext / Goals
|
||||
- 60-Sekunden-Tick, Overlap-Guard, idempotent
|
||||
- [ ] Schritt 6 — Missions-UI (Create/Edit-Form + Iteration-History)
|
||||
- [x] Schritt 6 — Missions-UI unter `/companion/missions`
|
||||
- Create-Form mit Konzept-Markdown + Objective + Cadence-Picker
|
||||
- List / Detail mit pause / resume / complete / delete / "Jetzt ausführen"
|
||||
- Iteration-History + pro-Iteration Freitext-Feedback-Textarea
|
||||
- `<MissionInputPicker>`-Komponente mit Indexer-Registry, Default-Indexer
|
||||
für notes / kontext / goals (symmetrisch zu den Resolvern)
|
||||
- [ ] Schritt 7 — Workbench-Timeline-Lens (cross-module AI-Aktivitaet)
|
||||
- [ ] Schritt 8 — Server-side `mana-ai` Bun-Service (offline-of-tab Runs)
|
||||
|
||||
### 20.5a Symmetrische Registries: Resolver vs. Indexer
|
||||
|
||||
Zwei parallele Module-Opt-in-Points für die AI-Layer:
|
||||
|
||||
| Registry | Richtung | Nutzer | Beispiel |
|
||||
|----------|----------|--------|----------|
|
||||
| `input-resolvers.ts` | `Ref → Prompt-Text` | Runner (Planner-Kontext) | `notes/abc-123 → "Titel\nContent…"` |
|
||||
| `input-index.ts` | `Module → Candidates[]` | UI (Picker) | `notes → [{label:"Idee", hint:"…"}]` |
|
||||
|
||||
Beide werden im selben `default-resolvers.ts` zusammen registriert, damit die Paare synchron bleiben. Neues Modul anbinden = `registerInputResolver(name, resolver) + registerInputIndexer(name, indexer)` — keine Änderungen am AI-Core nötig.
|
||||
|
||||
### 20.6 Offene Follow-ups
|
||||
|
||||
- **mana-sync (Go) + Postgres-Migration** fuer `actor`-Feld im pendingChange-Payload
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue