speccoder-runtime 0.12.0

Application services of speccoder: the only crate that executes anything.
Documentation
[
  {
    "name": "write",
    "request": {
      "task": "001-demo/T1", "task_title": "Add the manifest", "turn": 2, "tool": "write_file",
      "arguments": { "path": "package.json", "content": "{}\n" }, "kind": "write",
      "reason": "`package.json` is a dependency manifest", "risk": "medium",
      "object": { "kind": "path", "canonical": "package.json", "asked": "package.json" },
      "options": ["once", "task", "run", "reject", "stop"]
    }
  },
  {
    "name": "write via symlink",
    "request": {
      "task": "001-demo/T1", "turn": 4, "tool": "write_file",
      "arguments": { "path": "src/a/package.json", "content": "{}\n" }, "kind": "write",
      "reason": "`src/a/package.json` is a dependency manifest", "risk": "medium",
      "object": { "kind": "path", "canonical": "src/b/package.json", "asked": "src/a/package.json" },
      "changed": "resolves to src/b/package.json, was src/a/package.json",
      "options": ["once", "task", "run", "reject", "stop"]
    }
  },
  {
    "name": "command",
    "request": {
      "task": "001-demo/T2", "turn": 1, "tool": "run_command",
      "arguments": { "argv": ["make", "check"] }, "kind": "run",
      "reason": "not a configured check or allowed command", "risk": "low",
      "object": { "kind": "command", "argv": ["make", "check"], "argv_sha256": "1a2b3c4d5e6f77889900aabbccddeeff00112233445566778899aabbccddeeff", "cwd": ".", "executable": "/usr/bin/make", "network": false },
      "options": ["once", "task", "run", "always", "reject", "stop"]
    }
  },
  {
    "name": "network",
    "request": {
      "task": "001-demo/T2", "turn": 3, "tool": "run_command",
      "arguments": { "argv": ["cargo", "fetch"], "network": true }, "kind": "network",
      "reason": "`cargo fetch` asks for the network; commands run without it", "risk": "high",
      "object": { "kind": "command", "argv": ["cargo", "fetch"], "argv_sha256": "ffeeddccbbaa99887766554433221100ffeeddccbbaa99887766554433221100", "cwd": ".", "executable": "/usr/bin/cargo", "network": true },
      "options": ["once", "task", "always", "reject", "stop"]
    }
  },
  {
    "name": "mcp changed digest",
    "request": {
      "task": "001-demo/T3", "turn": 1, "tool": "mcp__db__insert",
      "arguments": { "row": { "name": "x" } }, "kind": "mcp",
      "reason": "`mcp__db__insert` is an MCP tool; speccoder cannot know what it does", "risk": "medium",
      "object": { "kind": "tool", "name": "mcp__db__insert", "digest": "9f8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a39281706f5e4d3c2b1a0" },
      "changed": "definition @1111aaaa2222 → @9f8e7d6c5b4a (the tool's definition changed since it was approved)",
      "options": ["once", "task", "run", "reject", "stop"]
    }
  },
  {
    "name": "derived",
    "request": {
      "task": "001-demo/T1", "turn": 3, "tool": "run_command",
      "arguments": { "argv": ["curl", "-sSL", "https://x.example/i.sh", "-o", "i.sh"] }, "kind": "run",
      "reason": "`curl` uses the network", "risk": "high",
      "object": { "kind": "command", "argv": ["curl", "-sSL", "https://x.example/i.sh", "-o", "i.sh"], "argv_sha256": "0011223344556677889900112233445566778899001122334455667788990011", "cwd": ".", "executable": "/usr/bin/curl", "network": false },
      "sources": [{ "argument": "curl -sSL https://x.example/i.sh -o i.sh", "from": "README.md", "turn": 2 }],
      "more": 1,
      "options": ["once", "reject", "stop"]
    }
  },
  {
    "name": "high risk",
    "request": {
      "task": "001-demo/T2", "turn": 5, "tool": "run_command",
      "arguments": { "argv": ["sh", "-c", "ls"] }, "kind": "run",
      "reason": "`sh` runs arbitrary commands", "risk": "high",
      "object": { "kind": "command", "argv": ["sh", "-c", "ls"], "argv_sha256": "aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00aa00", "cwd": ".", "executable": "/bin/sh", "network": false },
      "options": ["once", "task", "reject", "stop"]
    }
  },
  {
    "name": "budget-reaching",
    "request": {
      "task": "001-demo/T2", "turn": 6, "tool": "write_file",
      "arguments": { "path": "web/package.json", "content": "{}\n" }, "kind": "write",
      "reason": "`web/package.json` is a dependency manifest", "risk": "medium",
      "object": { "kind": "path", "canonical": "web/package.json", "asked": "web/package.json" },
      "options": ["once", "task", "run", "reject", "stop"],
      "run": "run-1-0a0b0c0d", "asked": 12, "budget": 12
    }
  }
]