Type contract exists at components/tools/full-call/types.ts (commit 6e4f48be or successor). Defines FullCallGenerateInput, FullCallGenerateResult, per-subsystem status types.
Implementation scope:
server/routers/tools/full-call.ts — fan-out procedure calling existing tools.radioReport.generate, tools.handoff.generate, tools.epcr.draft (single Claude call with 3-output system prompt, or parallel calls with shared PHI-redact)
app/tools/full-call.tsx — route
components/tools/full-call/FullCallWorkflow.tsx — UI: one narrative input, 3-tab result view (Radio | Handoff | ePCR)
- Shared rate limit: 10/hour/user
- Partial-failure handling via
warnings[] + status object
Plus Demo Mode:
app/demo.tsx — 6 curated scenario showcase (no LLM calls, hardcoded sample data)
- Scenarios: Cardiac Arrest, Peds Fever, STEMI, Refusal/AMA, Trauma MVC, Stroke
Branch autonomous-2026-04-22-night already has the 3 individual agents merged. This PR just composes them.
Related planning docs
Acceptance
Type contract exists at
components/tools/full-call/types.ts(commit 6e4f48be or successor). DefinesFullCallGenerateInput,FullCallGenerateResult, per-subsystem status types.Implementation scope:
server/routers/tools/full-call.ts— fan-out procedure calling existingtools.radioReport.generate,tools.handoff.generate,tools.epcr.draft(single Claude call with 3-output system prompt, or parallel calls with shared PHI-redact)app/tools/full-call.tsx— routecomponents/tools/full-call/FullCallWorkflow.tsx— UI: one narrative input, 3-tab result view (Radio | Handoff | ePCR)warnings[]+statusobjectPlus Demo Mode:
app/demo.tsx— 6 curated scenario showcase (no LLM calls, hardcoded sample data)Branch
autonomous-2026-04-22-nightalready has the 3 individual agents merged. This PR just composes them.Related planning docs
~/.claude/plans/pg-ultra-plan-2026-04-22.md(not in repo)Acceptance
tools.fullCall.generatemutation exists + returns typed shape