pyro-mcp/runtime_sources
Thales Maciel ab02ae46c7 Add model-native workspace file operations
Remove shell-escaped file mutation from the stable workspace flow by adding explicit file and patch tools across the CLI, SDK, and MCP surfaces.

This adds workspace file list/read/write plus unified text patch application, backed by new guest and manager file primitives that stay scoped to started workspaces and /workspace only. Patch application is preflighted on the host, file writes stay text-only and bounded, and the existing diff/export/reset semantics remain intact.

The milestone also updates the 3.2.0 roadmap, public contract, docs, examples, and versioning, and includes focused coverage for the new helper module and dispatch paths.

Validation:
- uv lock
- UV_CACHE_DIR=.uv-cache make check
- UV_CACHE_DIR=.uv-cache make dist-check
- real guest-backed smoke for workspace file read, patch apply, exec, export, and delete
2026-03-12 22:03:25 -03:00
..
linux-x86_64 Add model-native workspace file operations 2026-03-12 22:03:25 -03:00
NOTICE Add real runtime materialization pipeline and bundle artifacts 2026-03-06 19:26:29 -03:00
README.md Add seeded task workspace creation 2026-03-11 21:45:38 -03:00

runtime_sources

Source-of-truth inputs for make runtime-bundle.

Current state:

  • build/runtime_sources/ contains the real materialized runtime inputs used to build the packaged bundle.
  • the checked-in tracked files under runtime_sources/linux-x86_64/ are build recipes and lock metadata, not the materialized binaries/images.
  • guest/pyro_guest_agent.py is the guest agent source artifact that is installed into each built rootfs.
  • real source materialization now writes into build/runtime_sources/, not back into the tracked placeholder files.
  • the packaged runtime images under src/pyro_mcp/runtime_bundle/ are stored via Git LFS, so contributor clones need git lfs install and LFS-enabled checkout.

Materialization workflow:

  1. make runtime-fetch-binaries
  2. make runtime-build-kernel-real
  3. make runtime-build-rootfs-real
  4. make runtime-bundle

Official environment publication workflow:

  1. make runtime-materialize
  2. DOCKERHUB_USERNAME=... DOCKERHUB_TOKEN=... make runtime-publish-official-environments-oci
  3. if your uplink is slow, tune publishing with PYRO_OCI_UPLOAD_TIMEOUT_SECONDS, PYRO_OCI_UPLOAD_CHUNK_SIZE_BYTES, and PYRO_OCI_REQUEST_TIMEOUT_SECONDS

Official end-user pulls are anonymous; registry credentials are only required for publishing.

Build requirements for the real path:

  • docker
  • outbound network access to the pinned upstream release hosts and Debian snapshot mirrors
  • enough disk for a kernel build plus 2G ext4 images per source profile

Kernel build note:

  • the kernel builder now defaults to conservative parallelism to avoid compiler crashes on memory-constrained hosts
  • if you still need to force a lower setting, use PYRO_KERNEL_BUILD_JOBS=1 make runtime-build-kernel-real or PYRO_KERNEL_BUILD_JOBS=1 make runtime-materialize

Current status:

  1. Firecracker and Jailer are materialized from pinned official release artifacts.
  2. The kernel and rootfs images are built from pinned inputs into build/runtime_sources/.
  3. The guest agent is installed into each rootfs and used for vsock exec plus workspace archive imports.
  4. runtime.lock.json now advertises real guest capabilities.

Safety rule:

  • The build pipeline should never emit vm_boot=true, guest_exec=true, or guest_network=true while any source artifact is still a shim or placeholder.