test/fixtures/plugin_manifest.json

58e6347eeb72 · 2 KB

{
  "manifest_version": 1,
  "name": "git_lost_work",
  "version": "0.1.0",
  "author": "OpenAgents",
  "description": "Scan a mounted .git directory for unreachable commits and stash entries. It reads HEAD, loose refs, packed-refs, reflogs, and loose objects directly. It does not shell out to git, write anything, or parse packfiles. Use it when asked what commits or stashes may have been lost from a local git repository.",
  "artifact": {
    "path": "git_lost_work.wasm",
    "digest": "sha256:366760578cb1d83ab49a0819150308014401972907a44c89618e74de3a906c36"
  },
  "abi": {
    "kind": "packet-v0",
    "entry": "handle_packet",
    "alloc": "packet_alloc"
  },
  "interface": {
    "input": {
      "type": "object",
      "properties": {
        "max_lost_commits": {
          "type": "integer",
          "description": "Maximum number of lost commits to report. Default 50, capped at 100."
        }
      },
      "required": [],
      "additionalProperties": false
    },
    "output": {
      "type": "object",
      "properties": {
        "ok": {
          "type": "object",
          "properties": {
            "head": {
              "type": "object",
              "properties": {
                "branch": { "type": ["string", "null"] },
                "sha": { "type": ["string", "null"] }
              }
            },
            "stash_entries": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "selector": { "type": "string" },
                  "sha": { "type": "string" },
                  "message": { "type": ["string", "null"] },
                  "timestamp": { "type": "integer" }
                }
              }
            },
            "lost_commits": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sha": { "type": "string" },
                  "action": { "type": ["string", "null"] },
                  "timestamp": { "type": "integer" },
                  "packed": { "type": "boolean" },
                  "subject": { "type": ["string", "null"] },
                  "author": { "type": ["string", "null"] },
                  "author_date": { "type": ["integer", "null"] }
                }
              }
            },
            "summary": {
              "type": "object",
              "properties": {
                "total_lost_candidates": { "type": "integer" },
                "stashes_count": { "type": "integer" }
              }
            }
          }
        },
        "refusal": {
          "type": "object",
          "properties": {
            "code": { "type": "string" },
            "reason": { "type": "string" }
          },
          "required": ["code", "reason"]
        }
      }
    }
  },
  "capabilities": {
    "mounts": [
      { "path": ".", "readonly": true }
    ],
    "hosts": [],
    "timeout_ms": 10000,
    "memory_max_mib": 128
  },
  "price_msats": null,
  "license": "Apache-2.0"
}