How justinscitech/astrarisk works
Astra Risk is a human-reviewed commercial-property underwriting workspace, with a separate Federato triage queue and a public tenant/auto quoting assistant. The main case journey is submission intake, queued analysis and evidence gathering, broker follow-up when information is missing, then underwriter review and decision. The README documents these capabilities and the worker/storage roles; sampled routes confirm intake, queueing, source confirmation, and action handling. Some worker internals and UI wiring are not shown in the excerpts, so uncertain links are omitted.
Main entry points: cases/route.ts Case intake API · quote/route.ts Quote API · actions/route.ts Case actions API · jobs.ts Durable job queue
Components 27
Underwriting workspace
- Case workspace
src/app/(app)/cases/[id]/page.tsx - Case intake API
src/app/api/cases/route.ts - Case actions API
src/app/api/cases/[id]/actions/route.ts - Source confirmation API
src/app/api/cases/[id]/source/route.ts
Case review agent
- Analysis and appetite
src/agent/analysis.ts - Fact extraction
src/agent/model.ts - Property evidence
src/agent/context-sources.ts - Source discovery
src/agent/source-discovery.ts - Case activities
src/agent/activities.ts - Durable job queue
src/agent/jobs.ts - Agent worker
src/agent/worker.ts
Federato triage
- Triage queue
src/app/(app)/triage/page.tsx - Triage API
src/app/api/triage/route.ts - Federato planner
src/federato/triage.ts
Quoting assistant
- Quote page
src/app/(site)/quote/page.tsx - Quote API
src/app/api/quote/route.ts - Quote intake
src/quote/intake.ts - Quote rating
src/quote/rating.ts
Persistence and integrations
- PostgreSQL
src/lib/db.ts - MongoDB documents
src/lib/mongo.ts - Quote records
src/lib/quotes.ts
Other components
- Underwriter
- Broker
- Federato service
- Public property sources
- Browserbase
- Optional AI models
Connections 33
- Broker → Case intake API: submits case
- Case intake API → MongoDB documents: stores submission text
- Case intake API → PostgreSQL: creates case and job
- Case intake API → Durable job queue: enqueues analysis
- Durable job queue → Agent worker: provides jobs
- Agent worker → Case activities: runs activities
- Case activities → Analysis and appetite: analyzes case
- Analysis and appetite → Fact extraction: extracts facts
- Fact extraction → Optional AI models: optionally consults
- Analysis and appetite → Property evidence: gathers property evidence
- Property evidence → Public property sources: queries records
- Source confirmation API → Source discovery: validates selection
- Source confirmation API → PostgreSQL: records source and research job
- Source confirmation API → Durable job queue: enqueues research
- Source discovery → Browserbase: optionally searches pages
- Case actions API → PostgreSQL: records action and job
- Case actions API → MongoDB documents: stores broker response
- Case actions API → Durable job queue: enqueues follow-up or decision
- Case workspace → Case intake API: loads and submits cases
- Case workspace → Case actions API: sends review actions
- Underwriter → Case workspace: reviews case
- Broker → Case actions API: answers questions
- Triage queue → Triage API: loads or runs queue
- Triage API → Federato planner: runs triage
- Triage API → PostgreSQL: reads and saves report
- Federato planner → Federato service: queries submissions
- Triage queue → Case intake API: opens row as case
- Quote page → Quote API: requests estimate
- Quote API → Quote intake: parses request
- Quote API → Quote rating: calculates estimate
- Quote API → Optional AI models: optionally enriches facts
- Quote API → Quote records: saves conversation facts
- Quote page → Underwriter: advisor views referrals