omniagent-fleet 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- omniagent_fleet-0.1.4/CHANGELOG.md +296 -0
- omniagent_fleet-0.1.4/LICENSE +21 -0
- omniagent_fleet-0.1.4/MANIFEST.in +12 -0
- omniagent_fleet-0.1.4/PKG-INFO +249 -0
- omniagent_fleet-0.1.4/README.md +204 -0
- omniagent_fleet-0.1.4/agents/__init__.py +1 -0
- omniagent_fleet-0.1.4/agents/architect/__init__.py +1 -0
- omniagent_fleet-0.1.4/agents/architect/agent.py +23 -0
- omniagent_fleet-0.1.4/agents/architect/prompts.py +35 -0
- omniagent_fleet-0.1.4/agents/base_agent.py +85 -0
- omniagent_fleet-0.1.4/agents/deployer/__init__.py +3 -0
- omniagent_fleet-0.1.4/agents/deployer/agent.py +86 -0
- omniagent_fleet-0.1.4/agents/developer/__init__.py +1 -0
- omniagent_fleet-0.1.4/agents/developer/agent.py +24 -0
- omniagent_fleet-0.1.4/agents/developer/prompts.py +41 -0
- omniagent_fleet-0.1.4/agents/guardian/__init__.py +0 -0
- omniagent_fleet-0.1.4/agents/guardian/agent.py +126 -0
- omniagent_fleet-0.1.4/agents/guardian/prompts.py +28 -0
- omniagent_fleet-0.1.4/agents/humanizer/__init__.py +0 -0
- omniagent_fleet-0.1.4/agents/humanizer/agent.py +38 -0
- omniagent_fleet-0.1.4/agents/humanizer/prompts.py +26 -0
- omniagent_fleet-0.1.4/agents/mock/__init__.py +3 -0
- omniagent_fleet-0.1.4/agents/mock/agent.py +25 -0
- omniagent_fleet-0.1.4/agents/protocol/__init__.py +15 -0
- omniagent_fleet-0.1.4/agents/protocol/classifier.py +172 -0
- omniagent_fleet-0.1.4/agents/protocol/registry.py +121 -0
- omniagent_fleet-0.1.4/agents/protocol/router.py +163 -0
- omniagent_fleet-0.1.4/agents/protocol/spec.py +217 -0
- omniagent_fleet-0.1.4/agents/registry/builtin/architect.yaml +36 -0
- omniagent_fleet-0.1.4/agents/registry/builtin/developer.yaml +37 -0
- omniagent_fleet-0.1.4/agents/registry/builtin/reviewer.yaml +35 -0
- omniagent_fleet-0.1.4/agents/reviewer/__init__.py +1 -0
- omniagent_fleet-0.1.4/agents/reviewer/agent.py +22 -0
- omniagent_fleet-0.1.4/agents/reviewer/prompts.py +35 -0
- omniagent_fleet-0.1.4/agents/tester/__init__.py +1 -0
- omniagent_fleet-0.1.4/agents/tester/agent.py +22 -0
- omniagent_fleet-0.1.4/agents/tester/prompts.py +34 -0
- omniagent_fleet-0.1.4/api/__init__.py +1 -0
- omniagent_fleet-0.1.4/api/main.py +29 -0
- omniagent_fleet-0.1.4/api/models/__init__.py +1 -0
- omniagent_fleet-0.1.4/api/models/agent.py +14 -0
- omniagent_fleet-0.1.4/api/models/project.py +12 -0
- omniagent_fleet-0.1.4/api/models/task.py +19 -0
- omniagent_fleet-0.1.4/api/routes/__init__.py +1 -0
- omniagent_fleet-0.1.4/api/routes/agents.py +38 -0
- omniagent_fleet-0.1.4/api/routes/guardrails.py +14 -0
- omniagent_fleet-0.1.4/api/routes/hardware.py +28 -0
- omniagent_fleet-0.1.4/api/routes/projects.py +13 -0
- omniagent_fleet-0.1.4/api/websockets/__init__.py +1 -0
- omniagent_fleet-0.1.4/api/websockets/manager.py +31 -0
- omniagent_fleet-0.1.4/cli.py +727 -0
- omniagent_fleet-0.1.4/compute/__init__.py +9 -0
- omniagent_fleet-0.1.4/compute/detector.py +322 -0
- omniagent_fleet-0.1.4/compute/publisher.py +264 -0
- omniagent_fleet-0.1.4/compute/sandbox.py +216 -0
- omniagent_fleet-0.1.4/core/__init__.py +1 -0
- omniagent_fleet-0.1.4/core/deploy/__init__.py +1 -0
- omniagent_fleet-0.1.4/core/deploy/aws_provider.py +487 -0
- omniagent_fleet-0.1.4/core/deploy/base.py +89 -0
- omniagent_fleet-0.1.4/core/deploy/factory.py +66 -0
- omniagent_fleet-0.1.4/core/deploy/local_provider.py +276 -0
- omniagent_fleet-0.1.4/core/deploy/vps_provider.py +186 -0
- omniagent_fleet-0.1.4/core/economist.py +221 -0
- omniagent_fleet-0.1.4/core/guardrails/__init__.py +1 -0
- omniagent_fleet-0.1.4/core/guardrails/approval_system.py +64 -0
- omniagent_fleet-0.1.4/core/guardrails/audit.py +293 -0
- omniagent_fleet-0.1.4/core/guardrails/audit_logger.py +45 -0
- omniagent_fleet-0.1.4/core/guardrails/code_validator.py +39 -0
- omniagent_fleet-0.1.4/core/guardrails/git_manager.py +52 -0
- omniagent_fleet-0.1.4/core/guardrails/hallucination_detector.py +77 -0
- omniagent_fleet-0.1.4/core/guardrails/permissions.py +86 -0
- omniagent_fleet-0.1.4/core/guardrails/sandbox_manager.py +69 -0
- omniagent_fleet-0.1.4/core/orchestrator/__init__.py +6 -0
- omniagent_fleet-0.1.4/core/orchestrator/memory_manager.py +189 -0
- omniagent_fleet-0.1.4/core/orchestrator/message_bus.py +112 -0
- omniagent_fleet-0.1.4/core/orchestrator/orchestrator.py +383 -0
- omniagent_fleet-0.1.4/core/orchestrator/task_queue.py +231 -0
- omniagent_fleet-0.1.4/core/runtime/__init__.py +1 -0
- omniagent_fleet-0.1.4/core/runtime/hardware_detector.py +103 -0
- omniagent_fleet-0.1.4/core/runtime/model_runner.py +59 -0
- omniagent_fleet-0.1.4/core/runtime/model_selector.py +95 -0
- omniagent_fleet-0.1.4/core/runtime/ollama_manager.py +118 -0
- omniagent_fleet-0.1.4/core/utils/__init__.py +1 -0
- omniagent_fleet-0.1.4/core/utils/config.py +26 -0
- omniagent_fleet-0.1.4/core/utils/errors.py +58 -0
- omniagent_fleet-0.1.4/core/utils/logger.py +30 -0
- omniagent_fleet-0.1.4/landing/POSTS.md +171 -0
- omniagent_fleet-0.1.4/landing/index.html +398 -0
- omniagent_fleet-0.1.4/landing/wow.html +728 -0
- omniagent_fleet-0.1.4/mcp_server/__init__.py +1 -0
- omniagent_fleet-0.1.4/mcp_server/client.py +92 -0
- omniagent_fleet-0.1.4/mcp_server/server.py +59 -0
- omniagent_fleet-0.1.4/mcp_server/tools.py +327 -0
- omniagent_fleet-0.1.4/node/__init__.py +7 -0
- omniagent_fleet-0.1.4/node/__main__.py +41 -0
- omniagent_fleet-0.1.4/node/cli.py +422 -0
- omniagent_fleet-0.1.4/node/server.py +143 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/PKG-INFO +249 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/SOURCES.txt +115 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/dependency_links.txt +1 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/entry_points.txt +2 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/requires.txt +15 -0
- omniagent_fleet-0.1.4/omniagent_fleet.egg-info/top_level.txt +11 -0
- omniagent_fleet-0.1.4/providers/__init__.py +1 -0
- omniagent_fleet-0.1.4/providers/anthropic_provider.py +102 -0
- omniagent_fleet-0.1.4/providers/base.py +291 -0
- omniagent_fleet-0.1.4/providers/ollama.py +78 -0
- omniagent_fleet-0.1.4/providers/openai_compat.py +159 -0
- omniagent_fleet-0.1.4/providers/openai_provider.py +109 -0
- omniagent_fleet-0.1.4/providers/registry.py +108 -0
- omniagent_fleet-0.1.4/providers/router.py +398 -0
- omniagent_fleet-0.1.4/pyproject.toml +89 -0
- omniagent_fleet-0.1.4/setup.cfg +4 -0
- omniagent_fleet-0.1.4/web/__init__.py +7 -0
- omniagent_fleet-0.1.4/web/__main__.py +33 -0
- omniagent_fleet-0.1.4/web/server.py +511 -0
- omniagent_fleet-0.1.4/web/smoke_test.py +107 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to OmniAgent are documented here.
|
|
4
|
+
Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
5
|
+
OmniAgent adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [0.1.4] — 2026-06-02 — *The Private Fleet*
|
|
10
|
+
|
|
11
|
+
**Multi-machine orchestration. Same engine, now fleet-aware.**
|
|
12
|
+
|
|
13
|
+
This release ships the building blocks of Private Fleet v0: a per-machine HTTP node and a fleet coordinator that registers nodes, queries their live offers, and routes tasks to the best one. This is the trusted-owner-only foundation that the public distributed compute mesh will sit on top of.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
#### `omniagent node start` — per-machine HTTP server
|
|
18
|
+
- FastAPI app with 4 endpoints: `GET /health`, `GET /offer`, `GET /models`, `POST /generate`
|
|
19
|
+
- Reuses the existing `ResourcePublisher`, `OllamaManager`, and `SmartRouter` — zero new abstractions
|
|
20
|
+
- Listens on `:8766` by default (`--port` and `--host` configurable)
|
|
21
|
+
- `python -m node start --port 8766` for the standalone path
|
|
22
|
+
- Each `ResourceOffer` is the existing dataclass, JSON-serializable, with the same `models_supported` and `trust_score` fields
|
|
23
|
+
|
|
24
|
+
#### `omniagent fleet <subcommand>` — fleet coordinator
|
|
25
|
+
- `add <url>` — register a remote node (verifies via `/health` first)
|
|
26
|
+
- `list` — show registered nodes (offline view, no network)
|
|
27
|
+
- `remove <node_id>` — unregister a node
|
|
28
|
+
- `status` — query all nodes live, show a table (OS, tier, free VRAM, free RAM, models, latency)
|
|
29
|
+
- `route "task" --budget 0.01` — query all online nodes, pick the best (most free VRAM, lowest CPU util), execute the task there, return the result
|
|
30
|
+
- `benchmark --tasks 5 --output report.md` — run N benchmark tasks across the fleet, measure cost + latency, write a markdown report (the Ferrari demo)
|
|
31
|
+
- Storage: `~/.omniagent/fleet/registry.json`
|
|
32
|
+
|
|
33
|
+
#### Routing logic
|
|
34
|
+
- Fleet router queries all online nodes in parallel (sequential for v0)
|
|
35
|
+
- Picks the best node by: most free VRAM, then lowest CPU util, then trust score
|
|
36
|
+
- Falls through to lower-priority nodes if the best one fails
|
|
37
|
+
- Records job completion on the chosen node (success/failure counters)
|
|
38
|
+
|
|
39
|
+
### Tests
|
|
40
|
+
- **367 unit tests** + **7 integration tests** = **374 passing, 2 skipped** (Docker daemon)
|
|
41
|
+
- **+10 new tests**:
|
|
42
|
+
- `test_node_server.py` (6): health, offer, models, generate validation, routes
|
|
43
|
+
- `test_fleet_registry.py` (4): add+list, replace, remove, persistence roundtrip
|
|
44
|
+
- **0 regressions** in existing 357 tests
|
|
45
|
+
|
|
46
|
+
### Deferred (NOT in this release)
|
|
47
|
+
- The public mesh: strangers' machines, payments, marketplace, reputation — explicitly out of scope
|
|
48
|
+
- mDNS auto-discovery: still requires manual `omniagent fleet add <url>`
|
|
49
|
+
- TLS / auth: trusted local network only
|
|
50
|
+
- Cross-node load balancing: v0 picks ONE node per task
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## [0.1.3] — 2026-06-02 — *The Visibility Layer*
|
|
55
|
+
|
|
56
|
+
**The same engine, finally visible. No new features, just clarity.**
|
|
57
|
+
|
|
58
|
+
This release turns the existing codebase into something a non-dev can understand in 5 seconds. The Python engine is unchanged. The README, the landing pages, and the URL references are the only things that moved.
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
|
|
62
|
+
#### README.md (full rewrite, 216 lines)
|
|
63
|
+
- **Hero**: "You are overspending on AI." — direct, factual, hook
|
|
64
|
+
- **Killer demo table** (right under the hero): 4 concrete examples with measured savings
|
|
65
|
+
- Review 5,000-LOC PR: $2.81 → $0.07 (−97.5%)
|
|
66
|
+
- Write 200 docstrings: $0.42 → $0.002 (−99.5%)
|
|
67
|
+
- Refactor rename: $1.10 → $0.00 (−100%, local)
|
|
68
|
+
- Design distributed system: $1.50 → $1.50 (0%, Claude is the right tool)
|
|
69
|
+
- **"Saved this week on a typical dev setup: 96.2%"** as the bottom line
|
|
70
|
+
- **4 façades** (one engine, four ways to use it): CLI, Web, YAML, MCP
|
|
71
|
+
- **90/9/1 design philosophy**: dashboard is the product, YAML is the protocol, CLI is the power tool
|
|
72
|
+
- **How it works** section: 8-step pipeline from task to LLM call to cost tracking
|
|
73
|
+
- **60-second quickstart** (git clone → pip install → omniagent web)
|
|
74
|
+
- **Updated roadmap**: AI Infrastructure OS (shipped) → Optimization Layer (next) → Visual Dashboard → Distributed Compute (deferred) → Marketplace (deferred)
|
|
75
|
+
- Mixed audience (devs + founders) with sections clearly separated
|
|
76
|
+
|
|
77
|
+
#### landing/wow.html (polished)
|
|
78
|
+
- "You are overspending on AI." hook above the existing hero
|
|
79
|
+
- New static **killer demo table** inserted BEFORE the interactive example
|
|
80
|
+
- Same 4 examples as the README, visually consistent
|
|
81
|
+
- "Saved this week: −96.2%" as the bottom line
|
|
82
|
+
- Same dark theme, no dependencies
|
|
83
|
+
|
|
84
|
+
#### landing/index.html (polished)
|
|
85
|
+
- Same "You are overspending on AI." hook
|
|
86
|
+
- Cross-link to wow.html for the interactive demo
|
|
87
|
+
- Updated H1: "How much could you save?"
|
|
88
|
+
|
|
89
|
+
### Changed
|
|
90
|
+
- **All 15 references** to `github.com/anomalyco/omniagent` now point to `github.com/landrover1984/omniagent` (README, CHANGELOG, both landing pages, web UI, POSTS template)
|
|
91
|
+
|
|
92
|
+
### Stats
|
|
93
|
+
- **364 unit tests** + **7 integration tests** = **371 passing, 2 skipped** (Docker daemon)
|
|
94
|
+
- **6 files changed**, **+294 lines**, **−149 lines**
|
|
95
|
+
- **0 new dependencies** required
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## [0.1.2] — 2026-06-02 — *The Run Button*
|
|
100
|
+
|
|
101
|
+
**From "decide" to "do" in one click. The CLI and web now execute end-to-end.**
|
|
102
|
+
|
|
103
|
+
This patch closes the loop. Before, you could see the routing decision (`agent-decide` / `/api/decide`); now you can also run the task end-to-end and get the actual LLM response back — same call, same agent, same model, same cost tracking.
|
|
104
|
+
|
|
105
|
+
### Added
|
|
106
|
+
|
|
107
|
+
#### CLI: `omniagent agent-route`
|
|
108
|
+
- **Full end-to-end**: `decide` + `execute` in a single command
|
|
109
|
+
- Flags: `--budget` (USD cap), `--agent` (force agent), `--show-decision` (print routing before running), `--json` (raw response for piping)
|
|
110
|
+
- Output: a panel with the model's actual text + cost + token counts + latency
|
|
111
|
+
- Example: `omniagent agent-route "review this code for security" --budget 0.10 --show-decision`
|
|
112
|
+
|
|
113
|
+
#### Web: `POST /api/route` + new "Run it ▶" button
|
|
114
|
+
- Same decision + execution in one HTTP call
|
|
115
|
+
- The Try It tab now has two buttons: **Route this →** (decide only, free) and **Run it ▶** (decide + execute, costs money)
|
|
116
|
+
- Result panel shows the actual generated text with cost/tokens/latency in a monospace meta line
|
|
117
|
+
|
|
118
|
+
### Fixed
|
|
119
|
+
- **Test `test_router_generate_uses_first_provider`**: was asserting `len(records) == 1` against a global `CostTracker` singleton, so any other test that ran `router.generate(...)` first broke it. Now snapshots the count and asserts `before + 1`. No more order-dependence.
|
|
120
|
+
|
|
121
|
+
### Stats
|
|
122
|
+
- **364 unit tests** + **7 integration tests** = **371 passing, 2 skipped** (Docker daemon)
|
|
123
|
+
- **+3 new tests**: `test_agent_route_review_show_decision`, `test_agent_route_json_output`, `test_agent_route_no_providers`
|
|
124
|
+
- **+1 new endpoint** in the web (`/api/route`)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## [0.1.1] — 2026-06-02 — *The Visual Layer*
|
|
129
|
+
|
|
130
|
+
**The same brain, now visible. No more terminal-only.**
|
|
131
|
+
|
|
132
|
+
This release adds the web UI layer that makes OmniAgent understandable for non-devs. The Python engine is unchanged — the web app is a thin HTTP wrapper around the same CLI commands.
|
|
133
|
+
|
|
134
|
+
### Added
|
|
135
|
+
|
|
136
|
+
#### Web UI: `omniagent web` (new!)
|
|
137
|
+
- **`omniagent web`** starts a local FastAPI server on `http://localhost:8765` (configurable via `OMNIAGENT_WEB_PORT`)
|
|
138
|
+
- **5 tabs** in `web/static/index.html`:
|
|
139
|
+
- **Try It** — type any task, see which agent + model gets picked (real `AdaptiveRouter` decision, no LLM call)
|
|
140
|
+
- **Agents** — visual cards for all 3 built-in agents, click to see full YAML
|
|
141
|
+
- **Hardware** — your detected GPU/CPU/RAM/tier, plus models you can run locally
|
|
142
|
+
- **Sandbox** — test any command against the 3 sandbox policies
|
|
143
|
+
- **Optimize** — the killer feature: see cost-saving suggestions, apply with one click
|
|
144
|
+
- **12 endpoints** in `web/server.py` that wrap the existing CLI 1:1
|
|
145
|
+
- **Process-wide singleton** for `AdaptiveRouter` so the server doesn't re-detect hardware on every request
|
|
146
|
+
- **30s TTL cache** for `compute.detector` (Windows `psutil.disk_partitions` can take 30+ seconds on machines with stale network drive mappings)
|
|
147
|
+
|
|
148
|
+
#### Optimize Tab: cost transparency that pays for itself
|
|
149
|
+
- **`/api/optimize`** returns a list of cost-saving suggestions
|
|
150
|
+
- **Hybrid data source**: real telemetry if `~/.omniagent/telemetry.jsonl` exists, else 3 demo suggestions
|
|
151
|
+
- Shows: agent, current model + cost, suggested model + cost, monthly savings, risk level, reason
|
|
152
|
+
- **`/api/optimize/apply`** creates a **new** agent YAML (`{name}-optimized.yaml`) in the user dir
|
|
153
|
+
- **Never overwrites** the original — user can compare, then disable the original if they want
|
|
154
|
+
- Returns the path + a copy-paste command to test the new agent
|
|
155
|
+
|
|
156
|
+
#### Landing: `landing/wow.html` (the viral piece)
|
|
157
|
+
- Single HTML file, no server, no build
|
|
158
|
+
- "Stop spending $500/month on AI coding tools" hook
|
|
159
|
+
- 4 pre-loaded examples with realistic routing traces (animated)
|
|
160
|
+
- Side-by-side: "All-Claude $X.XX" vs "OmniAgent $0.YY" with savings %
|
|
161
|
+
- 4 share buttons: Twitter, LinkedIn, Hacker News, Copy link
|
|
162
|
+
- Guardian++ callout in every trace
|
|
163
|
+
- Energy estimate: "≈ 0.4 kWh local · vs ≈ 4.1 kWh all-cloud"
|
|
164
|
+
|
|
165
|
+
### Fixed
|
|
166
|
+
- **`compute.detector`**: removed `temperature.gpu` and `power.draw` from `nvidia-smi` query (those fields intermittently hang on Windows; 5 fields left are enough for routing decisions)
|
|
167
|
+
- **`compute.detector`**: added 30s TTL cache to avoid 30+ second hangs from `psutil.disk_partitions` on Windows hosts with network drive mappings
|
|
168
|
+
- **`compute.detector`**: disabled disk detection by default (was the main source of the 30s hang); can be re-enabled behind a flag
|
|
169
|
+
- **`compute.detector`**: wrapped every detect step in try/except so one failure can't kill the whole detection
|
|
170
|
+
- **`ollama_manager.is_running`**: timeout 30s → 2s; added `TimeoutException` and broad `Exception` catch
|
|
171
|
+
- **Test `test_compute_share_with_no_offers`**: was using `monkeypatch.setattr(config, "settings", ...)` but `compute.publisher` imports `settings` by name, so the patch didn't reach it. Now patches both `config.settings` and `publisher.settings`
|
|
172
|
+
|
|
173
|
+
### Stats
|
|
174
|
+
- **354 unit tests** + **7 integration tests** = **361 passing, 2 skipped** (Docker daemon)
|
|
175
|
+
- **+15 new endpoints** exposed via web (12 functional + 3 docs)
|
|
176
|
+
- **0 new dependencies required** for the user (FastAPI/uvicorn were already installed)
|
|
177
|
+
- **0 telemetry** by default
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## [0.1.0] — 2026-06-01 — *The Coordination Layer*
|
|
182
|
+
|
|
183
|
+
**First public release. The AI Infrastructure OS is alive.**
|
|
184
|
+
|
|
185
|
+
OmniAgent is no longer just a multi-agent orchestrator. It is the **coordination layer** for the entire AI ecosystem — models, agents, hardware, costs, and security. This release ships the brain: `AdaptiveRouter`, the `Agent Protocol`, and the YAML agent registry.
|
|
186
|
+
|
|
187
|
+
### Added
|
|
188
|
+
|
|
189
|
+
#### Core: Agent Protocol
|
|
190
|
+
- **`AgentSpec`** — declarative dataclass for YAML-defined agents
|
|
191
|
+
- **`load_agent_from_yaml` / `load_agent_from_dict`** — strict validation (missing keys, invalid categories, empty prompts, wrong types)
|
|
192
|
+
- **`render_user_prompt_safe`** — safe templating with empty-string fallback for missing variables
|
|
193
|
+
- **`AgentRegistry`** — discover + install + uninstall agents
|
|
194
|
+
- Priority order: `project` > `user` > `builtin`
|
|
195
|
+
- User agents in `~/.omniagent/agents/*.yaml`
|
|
196
|
+
- Built-ins in `omniagent/agents/registry/builtin/`
|
|
197
|
+
- Override built-ins by installing same-named YAML in your project
|
|
198
|
+
- **3 built-in YAML agents**: `architect`, `developer`, `reviewer`
|
|
199
|
+
|
|
200
|
+
#### Core: Task Classification
|
|
201
|
+
- **`TaskClassifier`** — 10 categories (`code_simple`, `code_complex`, `reasoning`, `generation`, `review`, `testing`, `documentation`, `embeddings`, `translation`, `summarization`)
|
|
202
|
+
- Detects complexity: `trivial`, `simple`, `medium`, `complex`, `extreme`
|
|
203
|
+
- Detects required capabilities: `vision`, `function_calling`
|
|
204
|
+
- Confidence score + matched keyword reporting
|
|
205
|
+
|
|
206
|
+
#### Core: AdaptiveRouter (the brain)
|
|
207
|
+
- **`AdaptiveRouter.decide(task, budget_usd)`** — single decision point that picks:
|
|
208
|
+
- the right **agent** (from registry)
|
|
209
|
+
- the right **model** (from SmartRouter)
|
|
210
|
+
- on the right **hardware** (from ResourceDetector)
|
|
211
|
+
- under the right **cost ceiling** (from user/agent budget)
|
|
212
|
+
- Returns `RoutingDecision` with full reasoning trail
|
|
213
|
+
- **`AdaptiveRouter.execute(decision, task)`** — actually runs the LLM call
|
|
214
|
+
|
|
215
|
+
#### CLI: agent commands
|
|
216
|
+
- `omniagent agent-list` — table view of all available agents
|
|
217
|
+
- `omniagent agent-show <name>` — full YAML inspection
|
|
218
|
+
- `omniagent agent-install <path>` — install with optional `--name` override
|
|
219
|
+
- `omniagent agent-classify <task>` — see how a task is classified
|
|
220
|
+
- `omniagent agent-decide <task> --budget 0.10` — see the routing decision (no LLM call)
|
|
221
|
+
|
|
222
|
+
#### Documentation
|
|
223
|
+
- **`docs/agents.md`** — comprehensive guide to writing your own agent in 5 minutes
|
|
224
|
+
- Minimal example, full schema, 10 categories, 4 quality tiers
|
|
225
|
+
- 3 real-world examples (local reviewer, cloud architect, translator)
|
|
226
|
+
- Install, manage, test, share workflows
|
|
227
|
+
|
|
228
|
+
#### Tests
|
|
229
|
+
- **+65 new tests** for Agent Protocol (354 unit + 7 integration = **361 total passing**, 2 skipped)
|
|
230
|
+
- `test_agent_protocol_spec.py` — 18 tests: validation, loading, rendering, built-in loading
|
|
231
|
+
- `test_agent_registry.py` — 12 tests: discover, list, install, uninstall, override
|
|
232
|
+
- `test_task_classifier.py` — 20 tests: all 10 categories, complexity, vision/function-calling detection
|
|
233
|
+
- `test_adaptive_router.py` — 8 tests: routing decisions, force-agent, GPU vs no-GPU, budget clamping
|
|
234
|
+
- `test_cli_agent.py` — 7 tests: end-to-end CLI commands
|
|
235
|
+
|
|
236
|
+
### Fixed
|
|
237
|
+
- **`SandboxPolicy` isolation**: renamed `can_accept_job` property to `has_capacity` (was a property with arg, now both property and method work)
|
|
238
|
+
- **`best_node_for`**: now filters out offers with `vram_total_gb == 0`
|
|
239
|
+
- **`ComputeResources.summary`**: now includes total RAM in GB (e.g. `16GB (8.0 free)`)
|
|
240
|
+
- **`ResourcePublisher.publish_local`**: accepts optional `res` param to avoid re-detecting when caller already has resources
|
|
241
|
+
- **`ResourcePublisher`**: caches last `build_offer` result to avoid duplicate detection
|
|
242
|
+
- **`UNTRUSTED_NETWORK_POLICY`**: properly serializes Permission enum keys (was: `Permission.X: True` only worked for str keys in some paths)
|
|
243
|
+
- **`compute-share` CLI**: missing import of `ResourcePublisher` (NameError on invoke)
|
|
244
|
+
- **Test `test_policy_policies_are_isolated`**: fixed contradictory assertion (was checking untrusted allowed writes, which conflicts with `test_untrusted_network_blocks_everything`)
|
|
245
|
+
|
|
246
|
+
### Changed
|
|
247
|
+
- **README rewritten as "AI Infrastructure OS"** — moved from "Pagani" framing to the bigger thesis: *we don't build models, we don't build agents, we build the coordination layer that makes the entire AI ecosystem work*
|
|
248
|
+
- Comparison table now shows OmniAgent vs Cursor vs Continue.dev across 11 dimensions
|
|
249
|
+
- Roadmap updated with 5 phases (Coordination → Marketplace → Distributed → Energy → Ecosystem)
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## [0.0.x] — pre-release development
|
|
254
|
+
|
|
255
|
+
Earlier development releases are not documented here. The repo began as a local-first multi-agent orchestrator and evolved through:
|
|
256
|
+
|
|
257
|
+
- Phase 0: Hardware detection, Ollama manager, 7 built-in agents
|
|
258
|
+
- Phase 1a: Smart router, cost tracker, audit (Guardian++), MCP server, hybrid deploy
|
|
259
|
+
- Phase 1b: Agent Protocol (this release)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## What ships in v0.1.0
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
omniagent/
|
|
267
|
+
├── README.md # AI Infrastructure OS pitch
|
|
268
|
+
├── docs/
|
|
269
|
+
│ └── agents.md # YAML agent guide
|
|
270
|
+
├── agents/
|
|
271
|
+
│ ├── protocol/ # AgentSpec, Registry, Classifier, AdaptiveRouter
|
|
272
|
+
│ └── registry/builtin/ # architect.yaml, developer.yaml, reviewer.yaml
|
|
273
|
+
├── providers/ # 18 models, 8 adapters, SmartRouter, CostTracker
|
|
274
|
+
├── compute/ # ResourceDetector, SandboxPolicy, ResourcePublisher
|
|
275
|
+
├── core/guardrails/ # Guardian++ audit
|
|
276
|
+
├── core/deploy/ # LocalProvider, VpsProvider, AwsProvider (ECR+Fargate)
|
|
277
|
+
├── mcp_server/ # 6 tools, InProcessMCPClient
|
|
278
|
+
└── cli.py # typer app: deploy, agent, compute, mcp
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Test count: 361 passing, 2 skipped (Docker daemon not running on host)**
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Coming next
|
|
286
|
+
|
|
287
|
+
- **v0.2.0** — Web dashboard (Next.js) + multi-tenant SaaS
|
|
288
|
+
- **v0.3.0** — Agent marketplace (community YAMLs, trust scores, one-click install)
|
|
289
|
+
- **v0.4.0** — Real distributed compute (mDNS discovery, LAN federation, trust graph)
|
|
290
|
+
- **v0.5.0** — Energy efficiency reporting (kWh per task, carbon per call, sustainability score)
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
**The models will change. The hardware will change. The coordination layer is permanent.**
|
|
295
|
+
|
|
296
|
+
[Star on GitHub](https://github.com/landrover1984/omniagent) · [Read the docs](docs/) · [Write your first agent](docs/agents.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sergio Garcia
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include CHANGELOG.md
|
|
4
|
+
recursive-include agents *.yaml *.yml
|
|
5
|
+
recursive-include landing *.html
|
|
6
|
+
recursive-include landing *.md
|
|
7
|
+
recursive-exclude * __pycache__
|
|
8
|
+
recursive-exclude * *.pyc
|
|
9
|
+
recursive-exclude * *.egg-info
|
|
10
|
+
global-exclude .DS_Store
|
|
11
|
+
global-exclude *.pyc
|
|
12
|
+
global-exclude __pycache__
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: omniagent-fleet
|
|
3
|
+
Version: 0.1.4
|
|
4
|
+
Summary: AI Infrastructure OS — same engine, four facades (CLI, REST, web, MCP). Reduce 80-95% of AI spend by routing tasks to the right model.
|
|
5
|
+
Author-email: Sergio Garcia <sgarcia@ubicacuenca.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/landrover1984/omniagent
|
|
8
|
+
Project-URL: Source, https://github.com/landrover1984/omniagent
|
|
9
|
+
Project-URL: Issues, https://github.com/landrover1984/omniagent/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/landrover1984/omniagent/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: ai,llm,router,cost-reduction,cli,mcp,local-first,ollama,fleet,infrastructure
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Environment :: Web Environment
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
25
|
+
Classifier: Typing :: Typed
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Requires-Dist: fastapi>=0.109.0
|
|
30
|
+
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
31
|
+
Requires-Dist: pydantic>=2.5.0
|
|
32
|
+
Requires-Dist: gitpython>=3.1.40
|
|
33
|
+
Requires-Dist: psutil>=5.9.8
|
|
34
|
+
Requires-Dist: py-cpuinfo>=9.0.0
|
|
35
|
+
Requires-Dist: httpx>=0.26.0
|
|
36
|
+
Requires-Dist: python-socketio>=5.11.0
|
|
37
|
+
Requires-Dist: websockets>=12.0
|
|
38
|
+
Requires-Dist: rich>=13.7.0
|
|
39
|
+
Requires-Dist: typer>=0.9.0
|
|
40
|
+
Requires-Dist: docker>=7.0.0
|
|
41
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
42
|
+
Requires-Dist: paramiko>=3.4.0
|
|
43
|
+
Requires-Dist: boto3>=1.34.0
|
|
44
|
+
Dynamic: license-file
|
|
45
|
+
|
|
46
|
+
<div align="center">
|
|
47
|
+
|
|
48
|
+
# OmniAgent
|
|
49
|
+
|
|
50
|
+
## You are overspending on AI.
|
|
51
|
+
|
|
52
|
+
**OmniAgent routes every AI task to the most efficient model automatically.**
|
|
53
|
+
Local first. Cloud only when it pays off. **80–97% savings** on your AI bill.
|
|
54
|
+
|
|
55
|
+
[Try the AI Cost Calculator](landing/index.html) · [See the 60-second demo](#the-60-second-demo) · [Star on GitHub](https://github.com/landrover1984/omniagent)
|
|
56
|
+
|
|
57
|
+
[](LICENSE)
|
|
58
|
+
[](https://www.python.org/downloads/)
|
|
59
|
+
[](tests/)
|
|
60
|
+
[]()
|
|
61
|
+
[]()
|
|
62
|
+
[]()
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## The math most devs don't realize
|
|
69
|
+
|
|
70
|
+
> *"I just need AI to review my code, write docstrings, and rename things."*
|
|
71
|
+
> — every developer with a $500/month Cursor + Claude bill
|
|
72
|
+
|
|
73
|
+
Here's what you actually need (benchmarked on real hardware, Jun 2026):
|
|
74
|
+
|
|
75
|
+
| Task | All-Claude reality | OmniAgent | Savings |
|
|
76
|
+
|------|-------------------|-----------|---------|
|
|
77
|
+
| **Review a function for bugs** | Claude · **$0.30** | qwen2.5-coder:7b (local) · **$0.00** | **100%** |
|
|
78
|
+
| **Write a Google-style docstring** | Claude · **$0.28** | qwen2.5-coder:7b (local) · **$0.00** | **100%** |
|
|
79
|
+
| **Rename a variable** | Claude · **$0.15** | qwen2.5-coder:7b (local) · **$0.00** | **100%** |
|
|
80
|
+
| **Explain TCP vs UDP** | Claude · **$0.10** | qwen2.5-coder:7b (local) · **$0.00** | **100%** |
|
|
81
|
+
| **Classify a bug ticket** | Claude · **$0.08** | qwen2.5-coder:7b (local) · **$0.00** | **100%** |
|
|
82
|
+
|
|
83
|
+
**Fleet benchmark · MSI desktop (GTX 1650, 4GB VRAM, 8 threads) · 5 tasks · 506 tokens: $0.00 total cloud spend.**
|
|
84
|
+
|
|
85
|
+
OmniAgent uses Claude when Claude is the right tool. It just doesn't use Claude when Qwen can do the same job at 1% the cost.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## The 60-second demo
|
|
90
|
+
|
|
91
|
+
Real benchmark run on MSI desktop (GTX 1650, 4GB VRAM, 8 threads):
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
→ msi-node: qwen2.5-coder:7b | $0.00 | 30,123ms (review function)
|
|
95
|
+
→ msi-node: qwen2.5-coder:7b | $0.00 | 50,475ms (write docstring)
|
|
96
|
+
→ msi-node: qwen2.5-coder:7b | $0.00 | 10,181ms (rename variable)
|
|
97
|
+
→ msi-node: qwen2.5-coder:7b | $0.00 | 15,321ms (explain TCP/UDP)
|
|
98
|
+
→ msi-node: qwen2.5-coder:7b | $0.00 | 8,649ms (classify ticket)
|
|
99
|
+
|
|
100
|
+
Total: 5 tasks · 506 tokens · $0.00 cloud spend · avg 22.95s/task
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Every task ran on local GPU. Zero cloud cost. That's what "AI Infrastructure OS" means.**
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Why OmniAgent exists
|
|
108
|
+
|
|
109
|
+
The AI industry is in an efficiency crisis:
|
|
110
|
+
|
|
111
|
+
- **73% of prompts** sent to frontier models could be handled by smaller local models
|
|
112
|
+
- Developers burn **$500–$1000/month** on Cursor + Claude + GPT with **no visibility** into what each line costs
|
|
113
|
+
- Agents **hallucinate APIs, break production code, leak secrets, forget to commit** — and you find out at 2 AM
|
|
114
|
+
- Massive energy waste: a single city could run on the daily inference cycles of one frontier API call
|
|
115
|
+
- Lock-in: one IDE, one provider, one pricing tier
|
|
116
|
+
- No coordination between local hardware, cloud APIs, VPS nodes, and the billions of idle GPUs sitting in garages and offices worldwide
|
|
117
|
+
|
|
118
|
+
**The models will keep changing. The hardware will keep evolving.**
|
|
119
|
+
**The only permanent problem is: how do you orchestrate all this intelligence efficiently, securely, and cheaply?**
|
|
120
|
+
|
|
121
|
+
That's what OmniAgent solves.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## What it is (and what it isn't)
|
|
126
|
+
|
|
127
|
+
OmniAgent is **not** a model. **Not** an agent. **Not** a chatbot.
|
|
128
|
+
|
|
129
|
+
OmniAgent is the **operating system that coordinates the entire AI ecosystem** — models, agents, hardware, costs, and security — so you stop wasting compute, money, and trust.
|
|
130
|
+
|
|
131
|
+
Think of it as:
|
|
132
|
+
|
|
133
|
+
- **Linux** doesn't create every app, but everything runs on it.
|
|
134
|
+
- **Kubernetes** doesn't build every container, but it orchestrates them all.
|
|
135
|
+
- **Steam** doesn't develop every game, but it hosts them.
|
|
136
|
+
|
|
137
|
+
**OmniAgent** doesn't compete with OpenAI, Anthropic, DeepSeek, or your favorite open-source model. **It makes all of them work together intelligently.**
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## The 4 façades: one engine, four ways to use it
|
|
142
|
+
|
|
143
|
+
| Façade | Audience | What you get |
|
|
144
|
+
|--------|----------|--------------|
|
|
145
|
+
| **CLI** (`omniagent route "task"`) | Developers, power users | Full control, scriptable, fits in any pipeline |
|
|
146
|
+
| **Web app** (`omniagent web`) | Everyone, especially non-devs | 5-tab dashboard on `http://localhost:8765` — visualize routing, hardware, optimize |
|
|
147
|
+
| **YAML agents** (`*.yaml` in `~/.omniagent/agents/`) | Agent authors, teams | Declarative, shareable, version-controlled — see [docs/agents.md](docs/agents.md) |
|
|
148
|
+
| **MCP tools** (via any MCP client) | Tool integrators | 6 tools: route, classify, decide, audit, deploy, optimize |
|
|
149
|
+
|
|
150
|
+
Same Python engine. Four ways to use it. You pick the one that fits your workflow.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## The 90/9/1 design
|
|
155
|
+
|
|
156
|
+
- **90% of users** never touch the CLI. They open `http://localhost:8765`, type a task, see the routing, hit **Run it ▶**.
|
|
157
|
+
- **9% of users** open the **Optimize** tab, see what they're overspending on, and one-click install a cheaper agent.
|
|
158
|
+
- **1% of users** write their own YAML agents, publish them, share them.
|
|
159
|
+
|
|
160
|
+
The dashboard is the product. The YAML is the protocol. The CLI is the power tool.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## How it works (under the hood)
|
|
165
|
+
|
|
166
|
+
1. **Task arrives** — text in the CLI, the web, or via MCP
|
|
167
|
+
2. **TaskClassifier** — 10 categories, 5 complexities, detects vision / function-calling
|
|
168
|
+
3. **AgentRegistry** — finds the right agent (project > user > builtin, YAML-defined)
|
|
169
|
+
4. **SmartRouter** — picks the right model given the agent's constraints + your budget
|
|
170
|
+
5. **AdaptiveRouter** — combines all of the above into a single `RoutingDecision`
|
|
171
|
+
6. **LLM call** — local first, cloud only if budget + quality demand it
|
|
172
|
+
7. **CostTracker** — logs the spend, feeds back into the next routing decision
|
|
173
|
+
8. **Guardian++** — pre / during / post audit on every action (secret scan, command sandbox, commit verification)
|
|
174
|
+
|
|
175
|
+
**364 unit tests** + **7 integration tests** validate every step.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Quickstart (60 seconds)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
git clone https://github.com/landrover1984/omniagent
|
|
183
|
+
cd omniagent
|
|
184
|
+
pip install -e .
|
|
185
|
+
omniagent web
|
|
186
|
+
# open http://localhost:8765
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Or use the CLI directly:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
omniagent agent-route "review this code for security" --budget 0.10
|
|
193
|
+
omniagent agent-list # see all available agents
|
|
194
|
+
omniagent agent-install ./my-agent.yaml # add your own
|
|
195
|
+
omniagent optimize # find cheaper routes
|
|
196
|
+
omniagent cost-report # what you've spent
|
|
197
|
+
omniagent agent-decide "design a cache" # see the routing (no LLM call)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Zero API keys needed to start.** Local models via Ollama work out of the box.
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## What ships today
|
|
205
|
+
|
|
206
|
+
| Layer | Status | Tests |
|
|
207
|
+
|-------|--------|-------|
|
|
208
|
+
| Agent Protocol (YAML agents) | Shipped | 18 |
|
|
209
|
+
| Task Classifier (10 categories) | Shipped | 20 |
|
|
210
|
+
| AdaptiveRouter (the brain) | Shipped | 8 |
|
|
211
|
+
| 5-tab Web UI | Shipped | 13 endpoints |
|
|
212
|
+
| Cost Optimizer (the killer feature) | Shipped | 3 |
|
|
213
|
+
| Anti-Hallucination Audit (Guardian++) | Shipped | 23 |
|
|
214
|
+
| Hybrid Deploy (local / VPS / AWS) | Shipped | 28 |
|
|
215
|
+
| MCP Server (6 tools) | Shipped | 18 |
|
|
216
|
+
| **CLI commands** | **20+** | **50+** |
|
|
217
|
+
| **Total** | | **364 passing, 2 skipped** |
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Roadmap
|
|
222
|
+
|
|
223
|
+
| Phase | Theme | Status |
|
|
224
|
+
|-------|-------|--------|
|
|
225
|
+
| **v0.1.x** | **AI Infrastructure OS** — routing, cost, optimize, local-first | **Shipped** |
|
|
226
|
+
| v0.2.x | Optimization Layer — replay mode, "Claude unnecessary" detector, savings reports | Next |
|
|
227
|
+
| v0.3.x | Visual Dashboard — real-time cost graphs, agent analytics, team view | Planned |
|
|
228
|
+
| v0.4.x | Distributed Compute — idle GPU federation, opt-in mesh | Deferred |
|
|
229
|
+
| v0.5.x | Marketplace + Incentives — community YAMLs, reputation, rewards | Deferred |
|
|
230
|
+
|
|
231
|
+
We are **not** building another "AI wrapper". We are building the **coordination layer** that the entire AI ecosystem needs.
|
|
232
|
+
|
|
233
|
+
Distributed compute and marketplace are real, but they're not the wedge. The wedge is: **stop overspending on AI**. Get that right first.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
**MIT — 100% open source, forever.** No paid tier, no "enterprise edition", no bait-and-switch.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
<div align="center">
|
|
244
|
+
|
|
245
|
+
**The models will change. The hardware will change. The coordination layer is permanent.**
|
|
246
|
+
|
|
247
|
+
[Star on GitHub](https://github.com/landrover1984/omniagent) · [Try the Cost Calculator](landing/index.html) · [Write your first agent](docs/agents.md)
|
|
248
|
+
|
|
249
|
+
</div>
|