molecule-ai-workspace-runtime/README.md
Hongming Wang 96864263bb chore: lock down as publish artifact; source-of-truth is monorepo
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)
2026-04-26 12:03:12 -07:00

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-coreworkspace/. This repo is regenerated and republished from there by the publish-runtime workflow on every runtime-v* tag.

Don't edit files here directly. PRs against this repo will not be merged. Open them against molecule-core instead.


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 interfaceBaseAdapter / 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:

  1. ADAPTER_MODULE env var (standalone adapter repos):

    ADAPTER_MODULE=adapter molecule-runtime
    

    The runtime imports adapter and calls adapter.Adapter.

  2. Subdirectory scan (monorepo local dev): falls back to scanning molecule_runtime/adapters/<runtime>/ and importing the matching subdir's Adapter class.

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.