Hoppa till innehållet

Devportalen /portal/dev

Startsideportalens ekosystem för människa och agent

Dokumentationen / Modul

felanmalan

dok · felanmalan
id: felanmalan
namn: felanmalan
sammanfattning: Det första samtalsflödet: användaren beskriver felet i fri text och ser i realtid vad assistenten uppfattat.
uppdaterad: 2026-08-30

ansvar:
- Äga fokusrutten /flode/felanmalan och hela vyn bakom den.
- Beskriva flödet som data i flow.ts, så att motorn kan lyftas i M4 utan omskrivning.
- Hålla samtalstillståndet i klienten och skicka historiken till serverändan.
- Hålla regelmotorn som kör flödet när AI_PROVIDER=mock, så att demon fungerar utan nyckel.
- Aldrig skapa ett ärende själv – servern avgör.

filer:
- modules/felanmalan/src/manifest.ts — routes med mode focus och ai.intents. Ingen nav-post: ingången är IT-supportsidans snabbväg Felanmäl (ADR-022).
- modules/felanmalan/src/flow.ts — felanmalanFlow: grupper, autoFalt, fragaFalt, mål. KARNFALT.
- modules/felanmalan/src/components/FelanmalanFlode.tsx — Vyn: chatt till vänster, formulärspegel till höger.
- modules/felanmalan/src/components/ChatPane.tsx — Samtalet. Nya bubblor animeras med animate-msg-in.
- modules/felanmalan/src/components/FormMirror.tsx — Kvittot: AI-tonad kant och ✦ per fält assistenten fyllt.
- modules/felanmalan/src/store.ts — Zustand: bubblor, fältvärden, signaturen och anropet mot route handlern.
- modules/felanmalan/src/motor/index.ts — koraTur och spelaUpp: regelmotorn bakom AI_PROVIDER=mock.
- modules/felanmalan/test/motor.test.ts — 18 tester på regelmotorn. Plockas upp av vitest.config.mts i roten.

api:
- felanmalanFlow: FlowDefinition
  Flödet som data. Systemprompten, formulärspegeln och turkontraktet genereras alla ur den.
- koraTur / spelaUpp: regelmotorn
  Deterministisk tur för offline-demo. Samma kontrakt som modellen.
- KARNFALT: readonly ["problem", "plats", "datornamn"]
  De fält som måste finnas innan ett ärende ens kan övervägas.

kontrakt:
- Samtalet är inmatningen, formuläret är kvittot. Användaren ska se vad som uppfattats innan något skapas.
- Ärendet skapas aldrig utan uttrycklig bekräftelse, och farSkapas kräver tre villkor samtidigt.
- Klienten skickar meddelanden plus fältvärdena och serverns signatur över dem. Prompt, profil och beslut bor i route handlern.
- Fälten skickas tillbaka för att assistenten ska återge dem ordagrant. Ett fält som byter lydelse medan användaren tittar på formulärspegeln läses som ett fel (ADR-013).

beroenden: module-sdk, ui, api-felanmalan, flow-engine
beslut: ADR-004

kvarstår:
- M3: ärendeadaptern. Ett skapat ärende landar ingenstans ännu.
- M4: motorn ska lyftas till packages/flow-engine, och ett andra flöde definieras deklarativt.
- Flödet är det enda som finns – generaliseringen är obevisad tills ett andra flöde byggts.