How sashantnipate/nitiassist works
NitiAssist is an authenticated assistant for financial-policy questions, with chat, web research, document analysis, and personalized scheme discovery. The principal workflow runs from the chat UI through Convex message storage and an Inngest event to agent processing, optional Firecrawl research, and a saved response that Convex updates reactively. The graph also preserves document upload/analysis, onboarding, and scheme-discovery capabilities. Some feature wiring is documented in the README or function registration; unverified links are dashed. Unsampled implementations are represented only at supported paths.
Main entry points: schema.ts Convex data · Chat.tsx Chat interface · analyze-images.ts Document analysis · route.ts Event endpoint
Components 26
User experience
- App shell
app/(app)/layout.tsx - Chat interface
features/chat/components/Chat.tsx - Message renderer
features/chat/components/ChatMessages.tsx - Prompt composer
features/chat/components/ChatPrompt.tsx - Conversation sidebar
features/side-layout/components/Sidebar.tsx
Identity and data
- Clerk auth
app/(auth)/sign-in/[[...sign-in]]/page.tsx - Convex client
components/ConvexClientProvider.tsx - Conversation hooks
hooks/useConversation.ts - Document hooks
hooks/useDocuments.ts - Convex data
convex/schema.ts
Assistant workflows
- Message actions
features/chat/actions/process-message.ts - Event endpoint
app/api/inngest/route.ts - Chat agent network
features/chat/inngest/process-message.ts - Web research tools
features/chat/inngest/tools/firecrawl-search.ts
Documents and schemes
- Document library
features/chat/components/Library.tsx - Document upload
features/documents/upload-document.ts - R2 upload API
app/api/uploads/r2/route.ts - Document analysis
features/chat/inngest/analyze-images.ts - Onboarding
features/onboarding/components/OnboardingFlow.tsx - Scheme dashboard
features/schemes/components/SchemesDashboard.tsx - Scheme discovery
features/schemes/inngest/discover-schemes.ts - Scheme search
features/schemes/inngest/tools/search-schemes.ts
Other components
- User
- Firecrawl
- Cloudflare R2
- OpenAI
Connections 35
- User → Clerk auth: signs in
- User → Chat interface: asks question
- App shell → Chat interface: opens
- Chat interface → Prompt composer: renders
features/chat/components/Chat.tsx - Chat interface → Message renderer: renders
features/chat/components/Chat.tsx - App shell → Conversation sidebar: shows
- Chat interface → Conversation hooks: uses
features/chat/components/Chat.tsx - Conversation sidebar → Conversation hooks: uses
- Convex client → Clerk auth: uses identity
components/ConvexClientProvider.tsx - Conversation hooks → Convex data: queries and mutates
hooks/useConversation.ts - Chat interface → Message actions: submits message
features/chat/components/Chat.tsx - Message actions → Event endpoint: emits event
- Event endpoint → Chat agent network: dispatches
app/api/inngest/route.ts - Chat agent network → Convex data: loads and saves messages
- Chat agent network → Web research tools: uses tools
features/chat/inngest/process-message.ts - Web research tools → Firecrawl: searches and scrapes
- Message renderer → Convex data: shows reactive updates
- User → Document library: manages documents
- Document library → Document hooks: uses
features/chat/components/Library.tsx - Document hooks → Convex data: queries and mutates
hooks/useDocuments.ts - Document library → Document upload: uploads
features/chat/components/Library.tsx - Document upload → R2 upload API: requests signed URL
features/documents/upload-document.ts - R2 upload API → Cloudflare R2: signs storage operations
app/api/uploads/r2/route.ts - Document upload → Convex data: registers document
- Document upload → Document analysis: triggers analysis
features/documents/upload-document.ts - Event endpoint → Document analysis: dispatches
app/api/inngest/route.ts - Document analysis → Cloudflare R2: reads document
features/chat/inngest/analyze-images.ts - Document analysis → Convex data: loads and saves description
features/chat/inngest/analyze-images.ts - Document analysis → OpenAI: analyzes content
features/chat/inngest/analyze-images.ts - User → Onboarding: provides profile
- Onboarding → Scheme dashboard: starts discovery
features/onboarding/components/OnboardingFlow.tsx - Scheme dashboard → Scheme discovery: requests discovery
- Event endpoint → Scheme discovery: dispatches
app/api/inngest/route.ts - Scheme discovery → Scheme search: uses search tool
- Scheme discovery → Convex data: stores discovered schemes