System Overview
Last verified: 2026-03-29 | Sources: All repository package.json files, deployment configs, and server entry points cited inline below
Integrated Equa Vision
Equa is a commercial equity management platform spanning multiple repositories that are all modules of a single integrated application. The repositories are not independent products — they are components in different stages of integration building toward one seamless Equa App experience. The build path is: local development (all services on one machine) → Mac/iOS Desktop App (native container) →equa.cc production deployment (cloud hosting, TBD).
Component Diagram
Service Inventory
Source: Each repository’s
package.json for framework versions; port numbers from dev server configs and server.ts entry points.
Frontend Modules (equa-web)
Documented frontend modules inequa-web/src/modules/:
Source:
equa-web/src/modules/ directory listing.
Backend Modules (equa-server)
20 Yarn workspace packages inequa-server/modules/ (plus the mattermost submodule inside agent):
Source:
equa-server/modules/ directory listing and each module’s package.json.
Integration Points
equa-web ↔ equa-server
The frontend communicates with the backend via a reverse proxy:- Development: Webpack dev server proxies
/apitohttp://localhost:3000(equa-server) - Production: Nginx proxies
/api/tohttps://equa-server-so-production.up.railway.app/ - API base URL:
/api/v1(configurable viaAPI_URLenv var) - Authentication: Session-based — cookies with
credentials: 'include'on all fetch requests - Endpoint framework: vineyard-lawn (custom Express routing layer)
/api/v1 path; the hostname api.equa.cc may exist for direct callers, but it is not the proxy target declared in the committed nginx config.
Sources:
equa-web/nginx.conf, Lines: 21-29equa-web/webpack.config.js, Lines: 95-103, 262-266equa-server/modules/api/src/server.ts, Line: 180
equa-web ↔ equa-patternlib
The design system is consumed as a direct GitHub dependency:equa-web/src/shared/components/ (tooltip, toggle, toast, tabs, tables, switch).
Source: equa-web/package.json (dependency), equa-web/webpack.config.js (babel-loader rules for patternlib).
Command Center ↔ Equabot Gateway
The Command Center is the expanded full-page Equanaut mode inside equa-web. Locally it opens fromhttp://localhost:8080/prime?openEquanaut=true or from the Equanaut rail on /fleet, /admin, /ai, and /equabotz. The old http://localhost:3001/command-center split-origin app is frozen source material, not the supported local route.
- Gateway URL:
EQUABOT_GATEWAY_URLenv var (default:http://localhost:18789) - Authentication: Bearer token via
EQUABOT_GATEWAY_TOKENenv var - Chat endpoint: Gateway’s
/v1/responses(OpenResponses API) - Fallback routes: Command Center can call OpenAI API and Ollama directly, bypassing the gateway
- System prompt: Built from workspace files (
SOUL.md,USER.md,IDENTITY.md,AGENTS.md,TOOLS.md,MEMORY.md, etc.) cached for 5 minutes
equa-web/specs/060-command-center-fleet-management-shell/spec.md, equa-web/src/modules/equanaut/index.tsx, equa-web/src/modules/equanaut/components/CommandCenterPanel.tsx, and frozen source material in command-center-so/src/app/api/chat/route.ts.
Attachment Support by Route
The frozencommand-center-so source app documented the attachment behavior below. Treat it as source material for parity checks until each route is verified in the current equa-web Command Center surface:
Source:
command-center-so/src/app/api/chat/route.ts (attachment routing logic), command-center-so/src/app/page.tsx line 1046 (capability detection).
Command Center ↔ GitHub Projects
The Command Center ingests Task Thread data from a GitHub Project (24-field schema) through the priority-stack adapter exposed to equa-web status surfaces. Priority, Status, Stack Rank, and Urgency values from the project are authoritative — the UI computes display-only decorations but does not override the normalized API payload. See Command Center — Task Stack Contract for the full field inventory, identity model, blocker convention, and runtime mapping. Source:equa-web/src/modules/equanaut/hooks/useOrchestration.ts, command-center-so/src/app/api/tasks/stack/route.ts (frozen adapter source material), command-center-so/src/lib/types.ts (TaskThread type).
Gateway ↔ Equa Platform (Future Integration)
The Equabot gateway is currently a self-contained local-first system with no direct connection to equa-server or equa-web. The gateway manages its own messaging channels (Telegram, Google Chat, Discord, etc.), AI providers, and tool execution independently. Integration between the gateway and the Equa platform is planned but not yet implemented. The desktop app will serve as the native container that unifies both systems.Data Flow: User Request Lifecycle
Source:equa-server/modules/api/src/server.ts lines 180-198 (startApi initialization order: sessions → Google auth redirect → endpoints → file serving → health → root ping → 404).
Data Flow: Authentication
Source:equa-server/modules/api/src/server.ts lines 142-178 (initializeGoogleAuthRedirect), equa-server/modules/auth/src/google-auth.ts.
External Services Map
Source: Each service verified from import statements and configuration in the respective modules.
Build Path
Phase 1: Local Development (Current)
All services run on a single development machine:
The Webpack dev server proxies
/api to localhost:3000. The Command Center opens inside the existing equa-web process and reaches the gateway through the same-origin API/BFF paths.
Phase 2: Mac/iOS Desktop App (Planned)
A native SwiftUI container app (equa-desktop-app-mac-ios) that integrates:
- The Equa web app (embedded WebView or rebuilt in SwiftUI)
- The Equabot gateway (local service)
- The Command Center (agent management UI)
Phase 3: Production Cloud Deployment (Future)
Redeployment toequa.cc (or alternative hosting) once the integrated local version is perfected. Hosting platform TBD — options include GCP Cloud Run (prior deployment), Railway (configs already exist), or alternative.
Redeployment triggers: Feature-complete local version, paying customer pipeline ready, funding available for hosting, hosting platform decision finalized.
Source: Wind-down context from equabot/threads/wind-down-equa-cc-public-instance/CONTEXT.md.