Plugin Packages¶
G6 distributes its components as cluster-based Poetry packages downloadable from the G6 server. This keeps the core install small (~15 MB) while letting users add capability clusters on demand.
Design Principles¶
- Core under 200 MB — the base install includes only essential components
- Cluster granularity — each package groups related components, not individual bricks
- Poetry-managed — standard
poetry add g6-<cluster>workflow - Server-hosted — packages distributed from the G6 package server, not PyPI
- Tier enforcement at import — components check the user's license tier before exposing tools
Package Catalog¶
| Package | Components | Est. Size | Key Dependencies |
|---|---|---|---|
g6-core | core, config, llm_router, navigator, guide | ~15 MB | pydantic, litellm, fastmcp |
g6-safety | csf, align_*, compliance, autonomy_governor, duty_of_care, professional_standards | ~25 MB | g6-core |
g6-planning | goal_engine, solver, autonomous_orchestrator | ~30 MB | g6-core, g6-safety |
g6-formal | formal_methods (17 sub-packages), lean_prover | ~20 MB | z3-solver |
g6-ml | sklearn, bayesian, autosklearn, pygad, optimisation, eurisko, experta, trm | ~40 MB | scikit-learn, pygad, scipy |
g6-dl | pytorch, keras, instructor | ~15 MB | torch (optional), keras (optional) |
g6-context | ctx_* (20 components), context_engine | ~30 MB | httpx, rank-bm25, markitdown |
g6-synthesis | cegis, meta_programming, auto_engineer, component_creator, polyglot | ~20 MB | g6-core |
g6-agents | agent_claude, agent_openai, agent_langchain, agent_langgraph, agent_autogen, agent_smolagents, nanoclaw, openclaw | ~25 MB | anthropic, openai, langchain |
g6-data | pandas, database, memory | ~10 MB | pandas, sqlite3 |
g6-media | audio, image, ffmpeg, blender, comfyui, generative_art, voice, creative_api | ~25 MB | pydub (optional), ffmpeg (external) |
g6-cogarch | cog_arch_actr, cog_arch_aixi, cog_arch_dgm, cog_arch_gps, cog_arch_soar, deep_understanding, embodiment, motor_control, sensory_fusion | ~20 MB | g6-core |
g6-infra | healing, workspace_manager, rq, cybersecurity, django, observability, self_debug | ~15 MB | redis (optional), django (optional) |
g6-viz | visualisation, diagrams, webpage, ui_design | ~10 MB | g6-core |
g6-jobs | job_framework + 39 job_* agents | ~40 MB | g6-core, g6-safety |
g6-optim | opt_speed, opt_cost, opt_quality, opt_meta, evoskill | ~10 MB | g6-core, g6-safety |
g6-grounding | grounding retrieval code, human_development | ~10 MB | sentence-transformers |
Dependency Graph¶
g6-core (required by all)
├── g6-safety
│ ├── g6-planning
│ ├── g6-jobs
│ └── g6-optim
├── g6-formal
├── g6-ml
├── g6-dl
├── g6-context
├── g6-synthesis
├── g6-agents
├── g6-data
├── g6-media
├── g6-cogarch
├── g6-infra
├── g6-viz
└── g6-grounding
All packages depend on g6-core. Some have additional inter-package dependencies:
| Package | Requires |
|---|---|
g6-planning | g6-core, g6-safety |
g6-jobs | g6-core, g6-safety |
g6-optim | g6-core, g6-safety |
| All others | g6-core only |
Download URL Scheme¶
Packages are hosted on the G6 package server:
Poetry configuration:
[[tool.poetry.source]]
name = "g6"
url = "https://packages.g6solver.com/simple/"
priority = "supplemental"
Install example:
poetry source add g6 https://packages.g6solver.com/simple/
poetry add g6-core g6-ml g6-context --source g6
Tier Enforcement¶
Each package checks the user's license tier at import time. If a component requires a higher tier than the user's license allows, the import succeeds but tool invocation returns a tier-upgrade message.
# Enforcement happens in the MCP gateway layer
from mvp.core.tier import check_tier
@server.tool()
async def decompose_goal(goal: str) -> dict:
check_tier("goal_engine", required_tier=1) # raises TierError if insufficient
...
| Tier | Available Packages |
|---|---|
| Free / Trial | g6-core |
| Basic | g6-core, g6-safety, g6-planning, g6-context |
| Premium | All packages |
Server-Side-Only Assets¶
Grounding Corpus¶
The grounding knowledge base corpus is over 4 GB and contains proprietary copyrighted material. It is:
- Never distributed in any package
- Never downloadable by end users
- Hosted exclusively on the G6 server
- Accessed only via the grounding MCP API
The g6-grounding package contains the retrieval and embedding code but not the corpus data.
Client (g6-grounding installed)
└── MCP call: grounding_search(query="...")
└── G6 Server
└── FAISS index + corpus (4GB+, server-only)
└── Returns: search results via MCP response
Future Server-Side Assets¶
Any future proprietary data assets (model weights, licensed datasets, curated knowledge bases) follow the same pattern: retrieval code in the package, data on the server.
Poetry Project Structure¶
Each package is a Poetry project under projects/:
projects/
g6_core/
pyproject.toml # [tool.poetry] name = "g6-core"
g6_core/__init__.py
g6_ml/
pyproject.toml # [tool.poetry] name = "g6-ml"
g6_ml/__init__.py
...
Each pyproject.toml declares its brick dependencies via the Polylith plugin and its inter-package dependencies:
[tool.poetry]
name = "g6-ml"
version = "1.0.0"
packages = [{include = "mvp/adapt_sklearn", from = "../../components"}]
[tool.poetry.dependencies]
python = "^3.12"
g6-core = "^1.0"
scikit-learn = "^1.5"
pygad = "^3.0"
External Dependencies¶
Some packages require external binaries or services not bundled in the package:
| Package | External Dependency | Notes |
|---|---|---|
g6-formal | Lean 4 binary | Optional, for lean_prover component |
g6-media | ffmpeg binary | Required for video/audio processing |
g6-media | Blender binary | Optional, for 3D rendering |
g6-media | ComfyUI server | Optional, for AI image generation |
g6-infra | Redis server | Optional, for RQ job queues |
g6-infra | Obsidian app | Optional, for workspace integration |
g6-context | Elasticsearch | Optional, for ctx_elastic component |
g6-agents | Anthropic API key | Required for agent_claude |
g6-agents | OpenAI API key | Required for agent_openai |
Users must install and configure these independently. Each component degrades gracefully when its external dependency is unavailable.
Pinned Python dependencies still need clean-install validation
The deployable MCP package pins fastmcp==2.14.6 and markitdown==0.1.5; g6-context document conversion depends on those pins for the MCP server and ctx_markitdown conversion path. This removes version drift, but it does not prove a user's existing Python environment is clean. Before first-user or paid-customer rollout, install from projects/g6_mcp/requirements-mcp.txt in a fresh virtual environment and run an MCP smoke test that starts the server, calls md_info, and converts one small allow-listed document.
See Also¶
- Deployment -- server deployment architecture
- Component Model -- how components are structured
- Polylith -- workspace layout and brick management
- Tools by Tier -- tier access matrix