Skip to content

Add Agent Machine executor adapter and evidence contract #78

Description

@mdheller

Context

AgentPlane already owns the evidence-forward execution lifecycle: Bundle -> Validate -> Place -> Run -> Evidence -> Replay.

The SourceOS Agent Machine workspace should become a first-class executor target so local Mac/Windows/Linux operator machines can run governed agent bundles inside a Podman-backed Linux workspace while emitting existing AgentPlane artifacts.

Scope

Add an executor adapter concept for Agent Machine:

  • executor.kind = agent-machine
  • executor.runtime = podman-machine | podman-native | wsl-podman | lima | qemu
  • workspace.profileRef = AgentMachineProfile URI/hash
  • workspace.fingerprintRef = AgentMachineFingerprint URI/hash
  • workspace.mounts[] explicit repo/cache mounts
  • workspace.toolSurface[] declared tool grants

Required behavior v0

  • Validate bundle compatibility with AgentMachineProfile.
  • Place only when host fingerprint and policy match the bundle requirements.
  • Run via a delegated local CLI (sourceosctl agent-machine run ...) or equivalent adapter boundary.
  • Emit normal Validation, Placement, Run, Replay artifacts.
  • Add AgentMachine-specific evidence fields without breaking existing schemas.
  • Record image digest, container ID/name, Podman machine name, git ref, mounted paths, tool surface, and policy hash.

Acceptance criteria

  • Docs updated under docs/executors.md or integration docs.
  • Schema patch or example demonstrates agent-machine executor placement.
  • Demo bundle can target the adapter in dry-run mode.
  • No host credentials or local paths outside examples are committed.

Non-goals

  • Do not implement the local Podman CLI engine here if it belongs in sourceos-devtools.
  • Do not bypass existing Validate/Place/Run/Evidence/Replay lifecycle.
  • Do not treat arbitrary host shell execution as an AgentPlane run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions