# satishvudata98/meridian-agent architecture

> Architecture diagram of the GitHub repository satishvudata98/meridian-agent, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-16). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/satishvudata98/meridian-agent
- Repository: https://github.com/satishvudata98/meridian-agent

## Overview

1. **System shape**
   - This is a split frontend/backend serverless application for an autonomous AI research agent.
   - The frontend is a Next.js app deployed separately from the AWS backend.
   - The backend is composed of multiple AWS Lambda functions behind API Gateway, with supporting AWS services for auth, data, memory, and observability.

2. **Frontend boundary**
   - `frontend/` is a Next.js app with pages for the main app, auth callback, run detail views, and digest views.
   - It uses `apiClient.ts` for HTTP calls and `useAgentRunStream.ts` for live run updates over WebSocket.
   - Cognito-specific client logic lives in `cognitoAuth.ts`, so authentication is handled in the browser and then propagated to backend calls.
   - The UI is deployed independently, with environment variables pointing to the backend HTTP API and WebSocket endpoint.

3. **Primary backend entrypoints**
   - `backend/lambdas/api/trigger.py` is the main entry point to start or trigger an agent run.
   - `backend/lambdas/api/get_digests.py` serves stored digest data to the UI.
   - `backend/lambdas/api/stream_ticket.py` likely issues the short-lived authorization or ticket used for streaming run events to the frontend.
   - These API Lambdas form the synchronous HTTP surface for the product.

4. **Orchestration layer**
   - `backend/lambdas/orchestrator/handler.py` is the central coordination point for agent execution.
   - It likely owns the run state machine: receiving triggers, selecting tools, calling the LLM, writing progress, and fan-out to other components.
   - This is the key boundary between request handling and the longer-running agent workflow.

5. **Execution and safety subsystems**
   - `backend/lambdas/code_executor/handler.py` isolates execution of generated code or tool actions.
   - `backend/lambdas/guardrail/handler.py` provides safety or policy checks before or during execution.
   - These are separate Lambdas, which creates a clean boundary between orchestration, model reasoning, and risky execution paths.

6. **Human-in-the-loop controls**
   - `backend/lambdas/hitl/resume.py` and `backend/lambdas/hitl/timeout.py` support human intervention and time-based continuation/failure handling.
   - This implies the agent can pause for approval or escalation, then resume later, rather than being purely fire-and-forget.
   - These functions are important for understanding non-linear run lifecycles.

7. **Real-time delivery**
   - `backend/lambdas/websocket/handler.py` powers the live streaming channel for run progress.
   - The frontend subscribes to this channel to receive incremental agent updates instead of waiting for a single final HTTP response.
   - This is the main real-time boundary in the architecture.

8. **Shared backend services**
   - `backend/shared/` contains cross-cutting logic used by all Lambdas.
   - `bedrock_client.py`, `openai_client.py`, and `llm_factory.py` abstract model-provider access; the system is centered on AWS Bedrock but also has OpenAI support.
   - `memory_store.py` encapsulates persistent memory/retrieval behavior.
   - `tool_executor.py` and `tool_schemas.py` define tool invocation boundaries.
   - `auth_context.py`, `run_access.py`, and `rate_limiter.py` handle request identity, authorization to specific runs, and throttling.
   - `metrics_publisher.py` centralizes operational telemetry.

9. **Data and infrastructure**
   - The README and infra files indicate AWS is the main runtime: Lambda, API Gateway, SQS, RDS/PostgreSQL, Bedrock, Cognito, and WebSocket API.
   - `infra/` is split into stack templates for auth, API, agent, data, memory, network, and observability, so infrastructure is modular rather than one monolithic template.
   - The project uses AWS Parameter Store for secrets such as the database password and Tavily API key.
   - RDS PostgreSQL is the durable storage layer; the memory stack suggests a dedicated memory/vector-related persistence path as well.

10. **Deployment and ops**
   - CI/CD is handled through GitHub Actions in `.github/workflows/`, including deployment and cleanup workflows.
   - Backend deployment is cloud-native and stack-based, while the frontend is deployed separately on Vercel.
   - Operationally, the system expects CloudWatch logs, SQS queues/DLQs, and AWS observability tooling for debugging long-running agent runs.

11. **End-to-end data flow**
   - A user signs in via Cognito, the frontend receives auth state, then calls the HTTP API to trigger a run.
   - The orchestrator coordinates the run, uses shared LLM/tool/memory services, and may hand off work to guardrail, code execution, or HITL Lambdas.
   - Progress is streamed back over WebSocket to the frontend.
   - Final artifacts such as digests and run records are then fetched through the API and rendered in the UI.

12. **Architectural takeaway**
   - The main diagram should show three big zones: the Next.js client, the AWS Lambda/API orchestration layer, and the persistent AWS services behind it.
   - The critical boundaries are auth, run orchestration, tool/code execution, human intervention, and streaming updates.
   - This is a modular serverless agent platform rather than a single monolithic backend.

Main entry points: [`backend/lambdas/orchestrator/handler.py`](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/orchestrator/handler.py) (Orchestrator), [`.github/workflows/deploy.yml`](https://github.com/satishvudata98/meridian-agent/blob/main/.github/workflows/deploy.yml) (Deploy Workflow), [`infra/stacks/agent.yaml`](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/agent.yaml) (Agent Stack), [`infra/stacks/api.yaml`](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/api.yaml) (API Stack)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend"]
  node_frontend_app["Next.js App<br/>ui shell"]
  node_frontend_api_client["API Client<br/>http client<br/>[apiClient.ts]"]
  node_frontend_auth["Cognito Auth<br/>client auth<br/>[cognitoAuth.ts]"]
  node_frontend_stream["Run Stream<br/>websocket client"]
end

subgraph group_backend_api["API Lambdas"]
  node_api_trigger["Trigger Run<br/>api lambda<br/>[trigger.py]"]
  node_api_digests["Get Digests<br/>api lambda<br/>[get_digests.py]"]
  node_api_ticket["Stream Ticket<br/>api lambda<br/>[stream_ticket.py]"]
end

subgraph group_backend_core["Orchestration"]
  node_orchestrator["Orchestrator<br/>workflow lambda<br/>[handler.py]"]
  node_code_executor["Code Executor<br/>execution lambda<br/>[handler.py]"]
  node_guardrail["Guardrail<br/>safety lambda<br/>[handler.py]"]
  node_hitl_resume["HITL Resume<br/>human-loop lambda<br/>[resume.py]"]
  node_hitl_timeout["HITL Timeout<br/>human-loop lambda<br/>[timeout.py]"]
  node_ws_handler["WebSocket API<br/>stream lambda<br/>[handler.py]"]
end

subgraph group_backend_shared["Shared Backend"]
  node_llm_factory["LLM Factory<br/>model routing<br/>[llm_factory.py]"]
  node_bedrock_client["Bedrock Client<br/>llm adapter<br/>[bedrock_client.py]"]
  node_openai_client["OpenAI Client<br/>llm adapter<br/>[openai_client.py]"]
  node_memory_store["Memory Store<br/>persistence helper<br/>[memory_store.py]"]
  node_tool_executor["Tool Executor<br/>tool runtime<br/>[tool_executor.py]"]
  node_auth_context["Auth Context<br/>identity helper<br/>[auth_context.py]"]
  node_run_access["Run Access<br/>access control<br/>[run_access.py]"]
  node_metrics_publisher["Metrics<br/>telemetry"]
end

subgraph group_infra["Infrastructure"]
  node_api_stack["API Stack<br/>infra stack<br/>[api.yaml]"]
  node_agent_stack["Agent Stack<br/>infra stack<br/>[agent.yaml]"]
  node_auth_stack["Auth Stack<br/>infra stack<br/>[auth.yaml]"]
  node_data_stack["Data Stack<br/>infra stack<br/>[data.yaml]"]
  node_memory_stack["Memory Stack<br/>infra stack<br/>[memory.yaml]"]
  node_observability_stack["Observability Stack<br/>infra stack<br/>[observability.yaml]"]
end

subgraph group_ops["Delivery Ops"]
  node_deploy_workflow["Deploy Workflow<br/>github actions<br/>[deploy.yml]"]
  node_cleanup_workflow["Cleanup Workflow<br/>github actions"]
end

node_frontend_app -->|"sign in"| node_frontend_auth
node_frontend_app -->|"calls"| node_frontend_api_client
node_frontend_app -->|"subscribes"| node_frontend_stream
node_frontend_api_client -->|"trigger run"| node_api_trigger
node_frontend_api_client -->|"fetch digests"| node_api_digests
node_frontend_api_client -->|"get ticket"| node_api_ticket
node_frontend_stream -->|"connects"| node_ws_handler
node_api_trigger -->|"start run"| node_orchestrator
node_api_ticket -->|"authorize stream"| node_ws_handler
node_orchestrator -->|"select model"| node_llm_factory
node_orchestrator -->|"run tools"| node_tool_executor
node_orchestrator -->|"read/write memory"| node_memory_store
node_orchestrator -->|"check safety"| node_guardrail
node_orchestrator -->|"execute code"| node_code_executor
node_orchestrator -->|"pause/resume"| node_hitl_resume
node_orchestrator -->|"timeout handling"| node_hitl_timeout
node_orchestrator -->|"emit events"| node_ws_handler
node_llm_factory -->|"uses"| node_bedrock_client
node_llm_factory -->|"fallback"| node_openai_client
node_tool_executor -->|"verify caller"| node_auth_context
node_tool_executor -->|"authorize run"| node_run_access
node_orchestrator -->|"telemetry"| node_metrics_publisher
node_auth_stack -->|"identity source"| node_frontend_auth
node_api_stack -->|"hosts"| node_api_trigger
node_api_stack -->|"hosts"| node_api_digests
node_api_stack -->|"hosts"| node_api_ticket
node_api_stack -->|"hosts"| node_ws_handler
node_agent_stack -->|"runs"| node_orchestrator
node_agent_stack -->|"runs"| node_code_executor
node_agent_stack -->|"runs"| node_guardrail
node_agent_stack -->|"runs"| node_hitl_resume
node_agent_stack -->|"runs"| node_hitl_timeout
node_data_stack -->|"persists"| node_memory_store
node_memory_stack -->|"persists"| node_memory_store
node_observability_stack -->|"collects"| node_metrics_publisher
node_deploy_workflow -->|"deploys"| node_api_stack
node_deploy_workflow -->|"deploys"| node_agent_stack
node_deploy_workflow -->|"deploys"| node_auth_stack
node_deploy_workflow -->|"deploys"| node_data_stack
node_deploy_workflow -->|"deploys"| node_memory_stack
node_deploy_workflow -->|"deploys"| node_observability_stack
node_cleanup_workflow -->|"cleans"| node_memory_stack

click node_frontend_app "https://github.com/satishvudata98/meridian-agent/tree/main/frontend/src/app"
click node_frontend_api_client "https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/apiClient.ts"
click node_frontend_auth "https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/cognitoAuth.ts"
click node_frontend_stream "https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/useAgentRunStream.ts"
click node_api_trigger "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/trigger.py"
click node_api_digests "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/get_digests.py"
click node_api_ticket "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/stream_ticket.py"
click node_orchestrator "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/orchestrator/handler.py"
click node_code_executor "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/code_executor/handler.py"
click node_guardrail "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/guardrail/handler.py"
click node_hitl_resume "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/hitl/resume.py"
click node_hitl_timeout "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/hitl/timeout.py"
click node_ws_handler "https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/websocket/handler.py"
click node_llm_factory "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/llm_factory.py"
click node_bedrock_client "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/bedrock_client.py"
click node_openai_client "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/openai_client.py"
click node_memory_store "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/memory_store.py"
click node_tool_executor "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/tool_executor.py"
click node_auth_context "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/auth_context.py"
click node_run_access "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/run_access.py"
click node_metrics_publisher "https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/metrics_publisher.py"
click node_api_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/api.yaml"
click node_agent_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/agent.yaml"
click node_auth_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/auth.yaml"
click node_data_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/data.yaml"
click node_memory_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/memory.yaml"
click node_observability_stack "https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/observability.yaml"
click node_deploy_workflow "https://github.com/satishvudata98/meridian-agent/blob/main/.github/workflows/deploy.yml"
click node_cleanup_workflow "https://github.com/satishvudata98/meridian-agent/blob/main/.github/workflows/cleanup-memory-artifacts.yml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend_app,node_frontend_api_client,node_frontend_auth,node_frontend_stream toneBlue
class node_api_trigger,node_api_digests,node_api_ticket toneAmber
class node_orchestrator,node_code_executor,node_guardrail,node_hitl_resume,node_hitl_timeout,node_ws_handler toneMint
class node_llm_factory,node_bedrock_client,node_openai_client,node_memory_store,node_tool_executor,node_auth_context,node_run_access,node_metrics_publisher toneRose
class node_api_stack,node_agent_stack,node_auth_stack,node_data_stack,node_memory_stack,node_observability_stack toneIndigo
class node_deploy_workflow,node_cleanup_workflow toneTeal
```

## Components

### Frontend

Next.js client deployed separately from the backend

- [Next.js App](https://github.com/satishvudata98/meridian-agent/tree/main/frontend/src/app): ui shell · Browser client for runs, digests, and auth callback · `frontend/src/app`
- [API Client](https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/apiClient.ts): http client · HTTP wrapper for backend API calls · `frontend/src/lib/apiClient.ts`
- [Cognito Auth](https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/cognitoAuth.ts): client auth · Browser-side Cognito authentication and session handling · `frontend/src/lib/cognitoAuth.ts`
- [Run Stream](https://github.com/satishvudata98/meridian-agent/blob/main/frontend/src/lib/useAgentRunStream.ts): websocket client · Subscribes to live agent run updates · `frontend/src/lib/useAgentRunStream.ts`

### API Lambdas

Synchronous HTTP entrypoints for the agent platform

- [Trigger Run](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/trigger.py): api lambda · Starts or triggers an agent run · `backend/lambdas/api/trigger.py`
- [Get Digests](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/get_digests.py): api lambda · Serves stored digest data to the UI · `backend/lambdas/api/get_digests.py`
- [Stream Ticket](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/api/stream_ticket.py): api lambda · Issues short-lived streaming authorization · `backend/lambdas/api/stream_ticket.py`

### Orchestration

Core agent execution and safety workflow

- [Orchestrator](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/orchestrator/handler.py): workflow lambda · Coordinates runs, tools, model calls, and state transitions · `backend/lambdas/orchestrator/handler.py`
- [Code Executor](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/code_executor/handler.py): execution lambda · Runs generated code or risky tool actions in isolation · `backend/lambdas/code_executor/handler.py`
- [Guardrail](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/guardrail/handler.py): safety lambda · Applies policy and safety checks · `backend/lambdas/guardrail/handler.py`
- [HITL Resume](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/hitl/resume.py): human-loop lambda · Resumes paused runs after approval or intervention · `backend/lambdas/hitl/resume.py`
- [HITL Timeout](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/hitl/timeout.py): human-loop lambda · Handles pause expiry and continuation failure · `backend/lambdas/hitl/timeout.py`
- [WebSocket API](https://github.com/satishvudata98/meridian-agent/blob/main/backend/lambdas/websocket/handler.py): stream lambda · Publishes live run events to connected clients · `backend/lambdas/websocket/handler.py`

### Shared Backend

Cross-cutting runtime helpers used by multiple Lambdas

- [LLM Factory](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/llm_factory.py): model routing · Selects and configures model providers · `backend/shared/llm_factory.py`
- [Bedrock Client](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/bedrock_client.py): llm adapter · AWS Bedrock provider integration · `backend/shared/bedrock_client.py`
- [OpenAI Client](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/openai_client.py): llm adapter · Fallback or alternate OpenAI provider integration · `backend/shared/openai_client.py`
- [Memory Store](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/memory_store.py): persistence helper · Persistent memory and retrieval access · `backend/shared/memory_store.py`
- [Tool Executor](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/tool_executor.py): tool runtime · Invokes tools from the orchestrator · `backend/shared/tool_executor.py`
- [Auth Context](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/auth_context.py): identity helper · Normalizes caller identity for backend authorization · `backend/shared/auth_context.py`
- [Run Access](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/run_access.py): access control · Authorization checks for specific runs · `backend/shared/run_access.py`
- [Metrics](https://github.com/satishvudata98/meridian-agent/blob/main/backend/shared/metrics_publisher.py): telemetry · Centralizes operational metric emission · `backend/shared/metrics_publisher.py`

### Infrastructure

Modular AWS stack definitions

- [API Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/api.yaml): infra stack · API Gateway and Lambda wiring · `infra/stacks/api.yaml`
- [Agent Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/agent.yaml): infra stack · Core agent runtime and workflow resources · `infra/stacks/agent.yaml`
- [Auth Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/auth.yaml): infra stack · Cognito and authentication resources · `infra/stacks/auth.yaml`
- [Data Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/data.yaml): infra stack · Durable storage and database resources · `infra/stacks/data.yaml`
- [Memory Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/memory.yaml): infra stack · Memory-oriented persistence resources · `infra/stacks/memory.yaml`
- [Observability Stack](https://github.com/satishvudata98/meridian-agent/blob/main/infra/stacks/observability.yaml): infra stack · Logs, metrics, and monitoring resources · `infra/stacks/observability.yaml`

### Delivery Ops

Deployment and maintenance workflows

- [Deploy Workflow](https://github.com/satishvudata98/meridian-agent/blob/main/.github/workflows/deploy.yml): github actions · Main deployment pipeline · `.github/workflows/deploy.yml`
- [Cleanup Workflow](https://github.com/satishvudata98/meridian-agent/blob/main/.github/workflows/cleanup-memory-artifacts.yml): github actions · Memory-artifact cleanup pipeline · `.github/workflows/cleanup-memory-artifacts.yml`

## Connections

- Next.js App → Cognito Auth: sign in · Browser auth flow begins in Cognito
- Next.js App → API Client: calls · UI fetches backend data and triggers runs
- Next.js App → Run Stream: subscribes · UI listens for live agent updates
- API Client → Trigger Run: trigger run · Starts or resumes agent execution
- API Client → Get Digests: fetch digests · Loads saved digest views
- API Client → Stream Ticket: get ticket · Requests streaming authorization
- Run Stream → WebSocket API: connects · Consumes the live websocket feed
- Trigger Run → Orchestrator: start run · Hands off request to run coordination
- Stream Ticket → WebSocket API: authorize stream · Binds short-lived ticket to websocket access
- Orchestrator → LLM Factory: select model · Chooses provider and model configuration
- Orchestrator → Tool Executor: run tools · Delegates tool invocation boundaries
- Orchestrator → Memory Store: read/write memory · Persists and retrieves run context
- Orchestrator → Guardrail: check safety · Routes sensitive actions through policy checks
- Orchestrator → Code Executor: execute code · Offloads generated code or risky work
- Orchestrator → HITL Resume: pause/resume · Supports human approval loops
- Orchestrator → HITL Timeout: timeout handling · Handles paused run expiry
- Orchestrator → WebSocket API: emit events · Publishes progress to streaming clients
- LLM Factory → Bedrock Client: uses · Primary model provider integration
- LLM Factory → OpenAI Client: fallback · Alternate provider integration
- Tool Executor → Auth Context: verify caller · Checks request identity before tool use
- Tool Executor → Run Access: authorize run · Ensures caller can act on the run
- Orchestrator → Metrics: telemetry · Emits operational metrics for runs
- Auth Stack → Cognito Auth: identity source · Provides Cognito-based sign-in
- API Stack → Trigger Run: hosts · Deploys HTTP trigger endpoint
- API Stack → Get Digests: hosts · Deploys digest retrieval endpoint
- API Stack → Stream Ticket: hosts · Deploys streaming ticket endpoint
- API Stack → WebSocket API: hosts · Deploys websocket entrypoint
- Agent Stack → Orchestrator: runs · Defines core agent workflow resources
- Agent Stack → Code Executor: runs · Defines isolated execution resources
- Agent Stack → Guardrail: runs · Defines safety function resources
- Agent Stack → HITL Resume: runs · Defines approval-resume resources
- Agent Stack → HITL Timeout: runs · Defines pause-timeout resources
- Data Stack → Memory Store: persists · Backs durable run and artifact storage
- Memory Stack → Memory Store: persists · Backs memory-specific persistence
- Observability Stack → Metrics: collects · Receives logs and metrics for operations
- Deploy Workflow → API Stack: deploys · CI/CD applies backend API infrastructure
- Deploy Workflow → Agent Stack: deploys · CI/CD applies core agent infrastructure
- Deploy Workflow → Auth Stack: deploys · CI/CD applies auth infrastructure
- Deploy Workflow → Data Stack: deploys · CI/CD applies data infrastructure
- Deploy Workflow → Memory Stack: deploys · CI/CD applies memory infrastructure
- Deploy Workflow → Observability Stack: deploys · CI/CD applies monitoring infrastructure
- Cleanup Workflow → Memory Stack: cleans · Removes stale memory artifacts
