Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
e0ddb22
feat: add MCP server mode with --mcp flag for IDE integration
diegosouzapw Mar 3, 2026
09a1748
feat: add Phase 3 advanced MCP tools and A2A smart routing skill
diegosouzapw Mar 3, 2026
1e1a9c9
feat: migrate tests to TypeScript and add MCP advanced tools test suite
diegosouzapw Mar 4, 2026
ab77452
feat: normalize quota and combos API responses with shared contracts
diegosouzapw Mar 4, 2026
88ad4cc
feat: add MCP server, A2A protocol, auto-combo engine & VS Code exten…
diegosouzapw Mar 4, 2026
cc429d4
feat: add TypeScript types and modularize translator registry
diegosouzapw Mar 4, 2026
adc8fdf
feat: add A2A protocol support and refactor API validation layer
diegosouzapw Mar 4, 2026
500cae3
refactor: replace `any` types with generics and add Zod validation sc…
diegosouzapw Mar 4, 2026
889e2ba
feat: add error pages, harden DB layer and compliance module
diegosouzapw Mar 4, 2026
cbd0b1c
refactor: harden open-sse services, eliminate any casts, add dashboar…
diegosouzapw Mar 4, 2026
b33a853
feat: Introduce A2A lifecycle management, add type safety to ComfyUI …
diegosouzapw Mar 5, 2026
a1a2610
feat: v2.0.0 - MCP server, A2A agent, proxy improvements and docs update
diegosouzapw Mar 5, 2026
d615ca5
feat: configurable tool name prefix (#199) and custom rpm/tpm rate li…
diegosouzapw Mar 5, 2026
6d8868b
fix: extract validation helpers to fix webpack barrel-file resolution…
diegosouzapw Mar 5, 2026
2dcd72b
Potential fix for code scanning alert no. 54: Insecure randomness
diegosouzapw Mar 5, 2026
0ecee97
Update src/app/api/auth/login/route.ts
diegosouzapw Mar 5, 2026
eb48ba5
Update docs/openapi.yaml
diegosouzapw Mar 5, 2026
e19fbb5
Update open-sse/mcp-server/server.ts
diegosouzapw Mar 5, 2026
a998a57
chore: update lockfile to fix CI
diegosouzapw Mar 5, 2026
bc2e60c
feat: Introduce new A2A and MCP API routes, enhance dashboard UI, upd…
diegosouzapw Mar 5, 2026
79c23df
feat: Add i18n for new media and themes features, enhance combos with…
diegosouzapw Mar 5, 2026
2490ba5
feat: Introduce combo readiness checks and strategy recommendations, …
diegosouzapw Mar 5, 2026
48dda26
fix: CORS headers on early-return error responses + auto-combo valida…
diegosouzapw Mar 5, 2026
078a42b
feat: consolidate Endpoint, MCP, A2A into tabbed Endpoints page
diegosouzapw Mar 5, 2026
0725b9f
docs: update AGENTS.md, README, CHANGELOG and all 30 i18n locales for…
diegosouzapw Mar 5, 2026
6f1e6a0
feat: add MCP/A2A enable/disable toggle switches on Endpoints page
diegosouzapw Mar 5, 2026
bb9d85b
fix: extract updateSettingsSchema to bypass webpack barrel-file bug
diegosouzapw Mar 5, 2026
cc7e1a0
feat: add MCP multi-transport (stdio + SSE + Streamable HTTP)
diegosouzapw Mar 5, 2026
10ee2af
docs: update CHANGELOG and AGENTS.md with MCP multi-transport
diegosouzapw Mar 5, 2026
61a9022
feat(release): v2.0.1 — MCP multi-transport (stdio/SSE/Streamable HTT…
diegosouzapw Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 6 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ jobs:
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run check:cycles
- run: npm run check:route-validation:t06
- run: npm run check:any-budget:t11
- run: npm run check:docs-sync
- run: npm run typecheck:core
- run: npm run typecheck:noimplicit:core

security:
name: Security Audit
Expand Down Expand Up @@ -127,7 +133,6 @@ jobs:
cache: npm
- run: npm ci
- run: npm run test:integration
continue-on-error: true

test-security:
name: Security Tests
Expand All @@ -144,4 +149,3 @@ jobs:
cache: npm
- run: npm ci
- run: npm run test:security
continue-on-error: true
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ docs/*
!docs/TASK_NEBIUS_BACKEND_ENABLEMENT.md
!docs/frontend-backend-provider-gap-report.md
!docs/openapi.yaml
!docs/RELEASE_CHECKLIST.md
!docs/PLANO-IMPLANTACAO.md
!docs/TASKS.md
!docs/FASE-*.md
Expand Down Expand Up @@ -106,10 +107,13 @@ app.__qa_backup/
# Production standalone build (created by scripts/prepublish.mjs)
# Conflicts with Next.js App Router detection in dev (root app/ shadows src/app/)
# npm publish still includes it via package.json "files" field
app/
/app/

# Electron (subproject dependency lock and build artifacts)
electron/package-lock.json
electron/dist-electron/
electron/node_modules/
icon.iconset/

# VS Code Extension (independent Git repo)
vscode-extension/
56 changes: 55 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

Unified AI proxy/router — route any LLM through one endpoint. Multi-provider support
(OpenAI, Anthropic, Gemini, DeepSeek, Groq, xAI, Mistral, Fireworks, Cohere, etc.)
with **MCP Server** (16 tools for agent control) and **A2A v0.3 Protocol** (Agent-to-Agent orchestration).

## Stack

Expand All @@ -13,6 +14,7 @@ Unified AI proxy/router — route any LLM through one endpoint. Multi-provider s
- **Streaming**: SSE via `open-sse` internal package
- **Styling**: Tailwind CSS v4
- **Docker**: Multi-stage Dockerfile, 3 profiles (base / cli / host)
- **i18n**: next-intl with 30 languages (`src/i18n/messages/`)

## Architecture

Expand Down Expand Up @@ -47,6 +49,56 @@ but the real logic lives in `src/lib/db/`.

Translation between provider formats: `open-sse/translator/`

### MCP Server (`open-sse/mcp-server/`)

16 tools for AI agent control via **3 transport modes**:
- **stdio** — Local IDE integration (Claude Desktop, Cursor, VS Code)
- **SSE** — Remote Server-Sent Events at `/api/mcp/sse`
- **Streamable HTTP** — Modern bidirectional HTTP at `/api/mcp/stream`

HTTP transports run in-process via `httpTransport.ts` singleton using `WebStandardStreamableHTTPServerTransport`.

| Category | Tools |
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| Essential | `get_health`, `list_combos`, `get_combo_metrics`, `switch_combo`, `check_quota`, `route_request`, `cost_report`, `list_models_catalog` |
| Advanced | `simulate_route`, `set_budget_guard`, `set_resilience_profile`, `test_combo`, `get_provider_metrics`, `best_combo_for_task`, `explain_route`, `get_session_snapshot` |

- Scoped authorization (9 scopes), audit logging, Zod schemas
- IDE configs for Claude Desktop, Cursor, VS Code Copilot

### A2A Server (`src/lib/a2a/`)

Agent-to-Agent v0.3 protocol:

- JSON-RPC 2.0: `message/send`, `message/stream`, `tasks/get`, `tasks/cancel`
- Agent Card at `/.well-known/agent.json`
- Skills: `smart-routing`, `quota-management`
- SSE streaming with 15s heartbeat
- Task Manager with state machine and TTL-based cleanup

### Auto-Combo Engine (`open-sse/services/autoCombo/`)

Self-healing routing optimization:
- 6-factor scoring, 4 mode packs, bandit exploration
- Progressive cooldown, probe-based re-admission

### Dashboard (`src/app/(dashboard)/`)

| Page | Description |
| ---------------------------- | -------------------------------------------------------------- |
| `/dashboard` | Home with quick start, provider overview |
| `/dashboard/endpoint` | **Endpoints** (tabbed): Endpoint Proxy, MCP, A2A, API Endpoints |
| `/dashboard/providers` | Provider management and connections |
| `/dashboard/combos` | Combo configurations with routing strategies |
| `/dashboard/logs` | Request, Proxy, Audit, Console logs (tabbed) |
| `/dashboard/analytics` | Usage analytics and evaluations |
| `/dashboard/costs` | Cost tracking and breakdown |
| `/dashboard/health` | Uptime, circuit breakers, latency |
| `/dashboard/cli-tools` | CLI tool integrations (Claude, Codex, Antigravity, etc.) |
| `/dashboard/media` | Image, Video, Music generation playground |
| `/dashboard/settings` | System settings with multiple tabs |
| `/dashboard/api-manager` | API key management with model permissions |

### OAuth & Tokens (`src/lib/oauth/`)

18 modules handling OAuth flows, token refresh, and provider credentials.
Expand Down Expand Up @@ -76,7 +128,7 @@ overridable via env vars or `data/provider-credentials.json`.

- No hardcoded API keys or secrets in commits
- Auth middleware on all API routes
- Input validation on user-facing endpoints
- Input validation on user-facing endpoints (Zod schemas)
- SQLite encryption key must not be logged

### Architecture
Expand All @@ -85,13 +137,15 @@ overridable via env vars or `data/provider-credentials.json`.
- Provider requests flow through `open-sse/handlers/`
- Translations use `open-sse/translator/` modules
- `localDb.ts` is re-exports only — add new functions to the proper `db/*.ts` module
- MCP and A2A pages are embedded as tabs inside `/dashboard/endpoint`, not standalone routes

### Code Quality

- Consistent error handling with try/catch
- Proper HTTP status codes
- No memory leaks in SSE streams (abort signals, cleanup)
- Rate limit headers must be parsed correctly
- All API inputs validated with Zod schemas

### Docker

Expand Down
Loading
Loading