This repo is now a publish artifact of Molecule-AI/molecule-core/workspace/. Runtime code edits go to the monorepo; the publish-runtime workflow regenerates this mirror + uploads to PyPI on every runtime-v* tag. Changes: - Delete .github/workflows/publish.yml. PyPI publishing now happens only from the monorepo's publish-runtime workflow. Without removing this, two different code shapes could reach PyPI depending on which workflow fired (the drift this lockdown is preventing). - Delete .github/workflows/auto-promote-staging.yml. The staging→main fast-forward dance has no purpose on a mirror repo — the mirror is rebuilt wholesale on each release. - Replace .github/workflows/ci.yml with a 'mirror-guard' job that fails on any pull_request event with a clear redirect message. Push events are still allowed (so existing in-flight branches don't all turn red while the migration finishes); that allowance becomes a follow-up removal once the auto-sync from monorepo is wired up. - Rewrite README.md with a prominent ⚠ banner pointing at the monorepo. - Add CONTRIBUTING.md with the explicit redirect table. What this does NOT do: - Wire up the auto-sync from monorepo → this repo. The publish-runtime workflow currently uploads to PyPI but doesn't push the rewritten tree back here. As a follow-up, extend that workflow with a step that commits the build dir to this repo's main. Until then this repo's contents will go stale relative to PyPI — but that's fine because no one should be reading code from here anyway. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
2.8 KiB
molecule-ai-workspace-runtime
⚠️ This repo is a publish artifact, not the source of truth.
Runtime code lives in
Molecule-AI/molecule-core→workspace/. This repo is regenerated and republished from there by thepublish-runtimeworkflow on everyruntime-v*tag.Don't edit files here directly. PRs against this repo will not be merged. Open them against
molecule-coreinstead.
Shared Python runtime infrastructure for all Molecule AI agent adapters.
This package provides the core machinery every Molecule AI workspace container needs:
- A2A server — registers with the platform, heartbeats, serves A2A JSON-RPC
- Adapter interface —
BaseAdapter/AdapterConfig/SetupResult - Built-in tools — delegation, memory, approvals, sandbox, telemetry
- Skill loader — loads and hot-reloads skill modules from
/configs/skills/ - Plugin system — per-workspace + shared plugin discovery and install
- Config / preflight — YAML config loading with validation
Installation
pip install molecule-ai-workspace-runtime
Adapter discovery
The runtime discovers adapters in two ways:
-
ADAPTER_MODULEenv var (standalone adapter repos):ADAPTER_MODULE=adapter molecule-runtimeThe runtime imports
adapterand callsadapter.Adapter. -
Subdirectory scan (monorepo local dev): falls back to scanning
molecule_runtime/adapters/<runtime>/and importing the matching subdir'sAdapterclass.
Contributing
Don't open PRs here. Send your change to
Molecule-AI/molecule-core
under the workspace/ directory. After your PR merges to main and a
runtime-v* tag is pushed, the publish-runtime
workflow rebuilds this mirror + uploads the new wheel to PyPI.
See docs/workspace-runtime-package.md
for the full publishing flow.
Why this split
The runtime needs to ship as a PyPI artifact (so the 8 workspace template
images can pip install it), but it also needs to evolve in lock-step
with the platform's wire protocol (queue shape, A2A metadata, event
payloads). A monorepo edit + auto-publish pipeline gives both: atomic
cross-cutting changes, plus a clean PyPI release on every tag.
For the back-history of why this repo previously was the source of truth
and the drift that caused: see issue Molecule-AI/molecule-core#2103.