This project is split into two independent products:
App/: business logic and user-facing app UI.Platform/: generic deployment control plane.
The Platform must remain app-agnostic. The App must remain platform-portable.
- Define domain behavior only (agents, tools, orchestrator, models, services).
- Expose APIs required for orchestration.
- Serve the App web UI (dummy email input + response + trace).
- Provide
config.yamldescribing components and service base names (no host ports).
Agents/orinboxpilot/agents/: classify, fetch, respond.Tools/orinboxpilot/tools/: calendar, imap, draft (and future tools).Services/orservices/: HTTP runtime entrypoints per component.Models/: wrappers for LLM/cloud providers.
Concrete implementations inherit from base abstractions for consistent behavior.
- Orchestrator is the main entrypoint for end-user workflow.
- Agent-to-agent and orchestrator-to-agent calls use A2A-style HTTP communication.
- Event/trace flow can use Kafka.
- App code must run on
python:3.11-slim. - No platform-specific hardcoding in app logic.
- The App is uploaded as zip source.
- Docker build/deploy assets are produced by Platform during runtime.
Platform is a generic UI + backend to build, store, deploy, and operate uploaded apps.
- Upload App zip.
- Inspect
config.yamland discover orchestrator/agents/tools. - Ask operator for host ports per discovered component.
- Build images from uploaded source.
- Store build artifacts in MongoDB repository.
- Deploy selected build from repository.
- Show status, logs, endpoint URLs, and live instance state.
Focus: persistent artifact store for portability and multi-machine readiness.
- Store build metadata, compose payloads, and image archives.
- Use MongoDB + GridFS.
- Support lookup by
build_id(or latest bydeployment_id). - Deploy stage must consume repository artifacts, not source rebuild.
Focus: runtime materialization and execution environment.
- Generate runtime Dockerfile and compose specs from app config + selected ports.
- Keep host-port mappings platform-driven.
- Support Kafka sidecar where required for event routing.
- Keep runtime state files for active deployment and in-progress operation.
Focus: deterministic image build and artifact publication.
- Build images with Docker Compose build profile.
- Export built images (
docker save) and push archives to GridFS. - Persist deploy compose payload and component/port metadata.
- Emit explicit build checkpoints and logs.
Focus: operation lifecycle and system observability.
- Orchestrate inspect -> build -> deploy pipeline.
- Manage stop previous / start new deployment lifecycle.
- Provide API endpoints for status and recent logs.
- Surface command-level progress to UI for debugging clarity.
- Keep modules small and explicit.
- Prefer real failures over silent fallbacks.
- Keep code concise; use comments only for non-obvious logic.
- No test script requirement in this baseline.
- Single-machine operation is the default mode.
run.shstarts Platform and ensures MongoDB is available.
config.yamlwith app, agents, and tools sections.- Python source compatible with
python:3.11-slim. - Orchestrator API and App UI endpoint.
- Upload + inspect APIs.
- Build API (source -> images -> repo artifact).
- Deploy API (repo artifact -> running containers).
- Status/log APIs for UI observability.