How arpitve560/codepilot works
AI Pair Programmer is a browser-based coding workspace: users sign in, edit code in Monaco, ask an AI for streamed help that can be applied to the editor, and optionally collaborate in private or link-accessible rooms. Room edits and presence sync live over Socket.IO; room documents persist in MongoDB. The tree also includes a code-execution service and routes, though the README marks execution as next, so its detailed provider behavior is not established here. Connections for unsampled client and collaboration internals follow the README; uncertain provider wiring is omitted.
Main entry points: index.js HTTP server · ai.controller.js Chat controller · App.jsx App gate · Workspace.jsx Workspace
Components 34
Coding workspace
- App gate
client/src/App.jsx - Auth interface
client/src/auth/AuthPage.jsx - Auth state
client/src/auth/AuthProvider.jsx - Workspace
client/src/Workspace.jsx - Monaco editor
client/src/components/editor/EditorPane.jsx - AI chat
client/src/components/chat/ChatPanel.jsx - Chat input
client/src/components/chat/ChatInput.jsx
Accounts and rooms
- Room controls
client/src/components/rooms/RoomsMenu.jsx - Collaboration client
client/src/hooks/useCollab.js - Auth controller
server/src/controllers/auth.controller.js - User records
server/src/models/User.js - Room management
server/src/controllers/room.controller.js - Room records
server/src/models/Room.js - Socket gateway
server/src/collab/socket.js - Room documents
server/src/collab/rooms.js
AI assistance
- Chat client
client/src/hooks/useChat.js - Reply parser
client/src/lib/parseMessage.js - Code blocks
client/src/components/chat/CodeBlock.jsx - Chat controller
server/src/controllers/ai.controller.js - Prompt builder
server/src/prompts/pairProgrammer.js - Groq stream client
server/src/services/groq.service.js
Application backend
- API client
client/src/lib/api.js - Auth routes
server/src/routes/auth.routes.js - Room routes
server/src/routes/room.routes.js - AI route
server/src/routes/ai.routes.js - Run routes
server/src/routes/run.routes.js - Run controller
server/src/controllers/run.controller.js - Execution dispatcher
server/src/services/execution/index.js - HTTP server
server/src/index.js
Other components
- Developer
- Groq model API
- Execution provider
- MongoDB
- Collaborator
Connections 43
- Developer → App gate: opens
- App gate → Auth state: checks session
- App gate → Auth interface: shows signed out
- App gate → Workspace: opens signed in
- Auth interface → Auth state: submits credentials
- Auth state → API client: sends requests
- Workspace → Monaco editor: hosts editor
- Workspace → AI chat: hosts chat
- AI chat → Chat input: collects prompt
- Chat input → Chat client: submits chat
- Chat client → API client: posts chat
- API client → AI route: requests
- AI route → Chat controller: dispatches
- Chat controller → Prompt builder: builds context
- Chat controller → Groq stream client: streams completion
- Groq stream client → Groq model API: requests stream
- Chat controller → Chat client: SSE tokens
- Chat client → Reply parser: parses reply
- Reply parser → Code blocks: extracts code
- Code blocks → Monaco editor: applies edits
- Workspace → Room controls: manages rooms
- Room controls → API client: room requests
- Room controls → Collaboration client: joins room
- Collaboration client → Socket gateway: syncs document
- Collaborator → Collaboration client: edits document
- Socket gateway → Room documents: updates room document
- Room documents → MongoDB: persists snapshots
- HTTP server → Socket gateway: attaches socket
- HTTP server → Auth routes: mounts routes
- HTTP server → Room routes: mounts routes
- HTTP server → AI route: mounts routes
- HTTP server → Run routes: mounts routes
- Auth routes → Auth controller: dispatches
- Auth controller → User records: reads and writes
- Room routes → Room management: dispatches
- Room management → Room records: reads and writes
- Room management → User records: looks up invitee
- Auth controller → MongoDB: stores users
- Room records → MongoDB: persists rooms
- AI route → Chat controller: dispatches
- Run routes → Run controller: dispatches
- Run controller → Execution dispatcher: requests execution
- Execution dispatcher → Execution provider: runs code