pyro-mcp/runtime_sources/linux-x86_64/runtime.lock.json
Thales Maciel aa886b346e Add seeded task workspace creation
Current persistent tasks started with an empty workspace, which blocked the first useful host-to-task workflow in the task roadmap. This change lets task creation start from a host directory or tar archive without changing the one-shot VM surfaces.

Expose source_path on task create across the CLI, SDK, and MCP, add safe archive upload and extraction support for guest and host-compat backends, persist workspace_seed metadata, and patch the per-task rootfs with the bundled guest agent before boot so seeded guest tasks work without republishing environments. Also switch post--- command reconstruction to shlex.join() so documented sh -lc task examples preserve argument boundaries.

Validation:
- uv lock
- UV_CACHE_DIR=.uv-cache uv run pytest --no-cov tests/test_vm_guest.py tests/test_vm_manager.py tests/test_cli.py tests/test_api.py tests/test_server.py tests/test_public_contract.py
- UV_CACHE_DIR=.uv-cache make check
- UV_CACHE_DIR=.uv-cache make dist-check
- real guest-backed smoke: task create --source-path, task exec -- cat note.txt, task delete
2026-03-11 21:45:38 -03:00

71 lines
2.4 KiB
JSON

{
"bundle_version": "1.0.0",
"platform": "linux-x86_64",
"component_versions": {
"firecracker": "1.12.1",
"jailer": "1.12.1",
"kernel": "5.10.210",
"guest_agent": "0.2.0-dev",
"base_distro": "debian-bookworm-20250210"
},
"capabilities": {
"vm_boot": true,
"guest_exec": true,
"guest_network": true
},
"binaries": {
"firecracker": "bin/firecracker",
"jailer": "bin/jailer"
},
"guest": {
"agent": {
"path": "guest/pyro_guest_agent.py"
}
},
"profiles": {
"debian-base": {
"description": "Minimal Debian userspace for shell and core Unix tooling.",
"kernel": "profiles/debian-base/vmlinux",
"rootfs": "profiles/debian-base/rootfs.ext4"
},
"debian-git": {
"description": "Debian base environment with Git preinstalled.",
"kernel": "profiles/debian-git/vmlinux",
"rootfs": "profiles/debian-git/rootfs.ext4"
},
"debian-build": {
"description": "Debian Git environment with common build tools for source builds.",
"kernel": "profiles/debian-build/vmlinux",
"rootfs": "profiles/debian-build/rootfs.ext4"
}
},
"upstream": {
"firecracker_release": {
"version": "v1.12.1",
"archive_url": "https://github.com/firecracker-microvm/firecracker/releases/download/v1.12.1/firecracker-v1.12.1-x86_64.tgz",
"archive_sha256": "0a75e67ef6e4c540a2cf248b06822b0be9820cbba9fe19f9e0321200fe76ff6b",
"firecracker_member": "release-v1.12.1-x86_64/firecracker-v1.12.1-x86_64",
"jailer_member": "release-v1.12.1-x86_64/jailer-v1.12.1-x86_64"
},
"kernel_build": {
"script": "scripts/build_microvm_kernel.sh",
"builder_image": "debian:12-slim",
"linux_version": "5.10.210",
"source_url": "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.210.tar.xz",
"config_url": "https://raw.githubusercontent.com/firecracker-microvm/firecracker/v1.12.1/resources/guest_configs/microvm-kernel-ci-x86_64-5.10.config"
},
"rootfs_build": {
"script": "scripts/build_debian_rootfs.sh",
"builder_image": "debian:12-slim",
"debian_release": "bookworm",
"debian_snapshot": "20250210T000000Z",
"guest_init": "scripts/pyro-init",
"agent_service": "scripts/pyro-guest-agent.service",
"package_files": {
"debian-base": "packages/debian-base.txt",
"debian-git": "packages/debian-git.txt",
"debian-build": "packages/debian-build.txt"
}
}
}
}