Working title m2-market. Seeds: unified concept paper (work store, Solutions, credits, Solution Scout, cargstore-as-storefront) and a verified map of how m2-gpt (bifrost gateway, tenancy/metering), agent.memory.system (memory-api/ Qdrant/BGE-M3), and the m2o Coolify fleet (Hermes primary agent, herdr, RDP, openclaw-open) actually connect. specs/ awaits discovery output. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
86 lines
6.8 KiB
Markdown
86 lines
6.8 KiB
Markdown
# System Map — how the existing stack connects (verified 2026-07-01)
|
||
|
||
The marketplace composes three live systems plus the m2o fleet. All run as **Coolify apps on
|
||
the m2 host**, on the shared `coolify` Docker network — services reach each other by Docker
|
||
DNS alias, humans/external agents via Traefik-routed domains.
|
||
|
||
```
|
||
┌────────────────────────── m2 host (Coolify) ──────────────────────────┐
|
||
│ │
|
||
operator browser ──► Guacamole (m2o.machinemachine.ai) │
|
||
│ │ VNC/RDP via per-desktop guacd:4822 │
|
||
│ ▼ │
|
||
│ m2o desktops (primus: chris/matrix/m2bd/erlengrund · │
|
||
│ agent-latest: sdjs/nasr/parlobyg/peter/gunnar) │
|
||
│ │ each: Hermes gateway (supervised) + herdr + [openclaw on legacy] │
|
||
│ │ │
|
||
│ ├── LLM calls ──► m2-gpt gateway (gpt.machinemachine.ai/v1) │
|
||
│ │ Bifrost/FastAPI, multi-tenant keys, per-tenant │
|
||
│ │ budgets/metering, "subconscious" middleware: │
|
||
│ │ injects m2.* memory tools + ambient context ──┐ │
|
||
│ │ │ │
|
||
│ └── memory ops ──► memory-api:8000 (agent.memory.system) ◄──────┘ │
|
||
│ FastAPI + Qdrant (BGE-M3 hybrid) + memgraph │
|
||
│ + TEI embeddings + redis; agent_id partitions; │
|
||
│ public: memory.machinemachine.ai │
|
||
│ │
|
||
│ Forgejo (git.machinemachine.ai) — org m2; fedlearn m2/m2-core (WIP) │
|
||
└────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## The three repos
|
||
|
||
### 1. m2-gpt — github.com/machine-machine/m2-gpt (local: /home/m2/m2-gpt/m2-gpt)
|
||
Multi-tenant **OpenAI-compatible gateway with a subconscious layer**. Any OpenAI-speaking
|
||
harness (Hermes, OpenClaw, Claude Code) points `base_url` at `https://gpt.machinemachine.ai/v1`
|
||
with a tenant key; the gateway routes to upstreams (SGLang on spark cluster, OpenRouter, GLM)
|
||
and injects `m2.*` memory tool-calls + ambient sensation into the prompt. Live:
|
||
`{"status":"healthy","gateway":"bifrost"}`; two gateway containers (staging+prod pattern).
|
||
**Marketplace relevance:** tenant identity, per-tenant budgets and token metering (the natural
|
||
substrate/federation point for `m2-ledger`), admin APIs/UI (React/shadcn — reusable patterns
|
||
for a market admin), fleet_standards cascade resolver.
|
||
|
||
### 2. agent.memory.system — github.com/machine-machine/agent.memory.system (local: /home/m2/agent.memory.system)
|
||
The memory stack behind `memory-api`. Python FastAPI over **Qdrant (BGE-M3 dense+sparse
|
||
hybrid) + memgraph (graph) + TEI embeddings + redis**; working/episodic/semantic memory with
|
||
consolidation + importance scoring. Deployed twice via Coolify (stacks `z1rlou…` and `vc00o…`
|
||
— the known split-brain; fedlearn task T13 is resolving auth + live-endpoint discovery now).
|
||
Consumed by: desktops (m2-memory skill, openclaw memory-engine plugin), m2-gpt backings
|
||
(`backings/` HTTP client), fedlearn partitions (`fedlearn:submissions|clusters|core-index`).
|
||
**Marketplace relevance:** the semantic catalog (`market:catalog` partition), pricing-evidence
|
||
recall, Scout intent-matching — all one more partition on proven infra.
|
||
|
||
### 3. m2o — github.com/machine-machine/m2o (local: /home/m2/m2o)
|
||
The desktop platform: Guacamole gateway + primus image (`desktop/`) + provision.sh +
|
||
fleet.json. Every desktop ships **Hermes as primary agent** (supervised gateway, config
|
||
rendered on first boot pointing at m2-gpt with `M2_GPT_API_KEY` injected at provision) +
|
||
**herdr** baked fleet-wide (v4.4+) + **RDP standard** (v4.5). Legacy agent-latest desktops
|
||
additionally run **openclaw** (m2-custom fork) with the memory-engine plugin.
|
||
**Marketplace relevance:** the execution surface (installs land in `/agent_home` volumes via
|
||
the fedlearn sync path), the co-driving wedge (Guacamole VNC/RDP), Scout host, cargstore host.
|
||
|
||
## Agent posture
|
||
- **Hermes = the gateway-managed primary agent** (every primus desktop; supervised; m2-gpt
|
||
backed). The marketplace's conversational surface (`market-propose` skill) targets Hermes
|
||
FIRST.
|
||
- **OpenClaw = open option** (legacy desktops run it; m2-gpt explicitly serves both). Design
|
||
marketplace touchpoints harness-agnostic where cheap: anything speaking OpenAI-wire through
|
||
m2-gpt inherits the subconscious/memory layer, so Scout/propose logic should live behind the
|
||
gateway or as skills, not inside one harness.
|
||
|
||
## Related moving parts
|
||
- **fedlearn MVP (in herd execution now):** builds the rails the marketplace rides —
|
||
schemas, Forgejo `m2/m2-core`, memory-api auth hardening, capture CLI, curator+veto PRs,
|
||
`m2-core-sync` apply path. Plan: `/home/m2/m2o/.planning/federated-learning/PLAN.md`.
|
||
- **cargstore** (github.com/machine-machine/cargstore): Electron+React desktop app store
|
||
(Flatpak backend, JSON catalog, one-click installs, agent WebSocket) → evolve into M2 Store.
|
||
- **Coolify** (cool.machinemachine.ai): deploys everything above; new marketplace services
|
||
(m2-ledger, catalog indexer, Scout) should be Coolify apps on the `coolify` network. Gotcha:
|
||
the local registry route self-redirects (302), so primus-style images build local-only.
|
||
- **spark cluster** (spark1–6): SGLang upstreams for m2-gpt; future Resource inventory.
|
||
|
||
## Hard constraints inherited
|
||
- Tenant isolation (sdjs=GST etc.): client data never crosses into shared catalog/core.
|
||
- No secrets in repos/images; keys injected at runtime (M2_GPT_API_KEY pattern).
|
||
- Mixed images (primus vs agent-latest): runtime-sync is the only universal install path.
|
||
- Host fragility: canary-first rollouts, idempotent + reversible applies, no fleet-wide blast.
|