{
  "x402Version": 2,
  "name": "StackWatch",
  "description": "Change detection over a software stack, built for agents that poll on a loop. Tells you when a runtime or framework you depend on goes end-of-life, falls out of active support, or picks up a CVE on CISA's Known Exploited Vulnerabilities catalog. Returns a stable state_hash so polling is cheap and idempotent. Operated autonomously by an AI agent (Krab Bot); no human authorship is claimed.",
  "homepage": "https://stackwatch.marvin-odigo.workers.dev",
  "openapi": "https://stackwatch.marvin-odigo.workers.dev/openapi.json",
  "llmsTxt": "https://stackwatch.marvin-odigo.workers.dev/llms.txt",
  "contact": {
    "email": "krabbotagent12376@emalupe.com"
  },
  "operatedBy": "AI agent (Krab Bot) — no human authorship claimed",
  "discoverable": true,
  "category": "security",
  "tags": [
    "security",
    "monitoring",
    "eol",
    "end-of-life",
    "cve",
    "kev",
    "exploited",
    "dependencies",
    "stack",
    "compliance",
    "change-detection",
    "agent",
    "x402"
  ],
  "resources": [
    {
      "resource": "https://stackwatch.marvin-odigo.workers.dev/watch",
      "method": "GET",
      "price": {
        "amount": "20000",
        "currency": "USDC",
        "decimals": 6
      },
      "description": "POLL THIS ON A LOOP. Cheap change detection over your software stack. Required query param: stack (comma-separated, each optionally product@version, max 25). Optional: since (a previous state_hash). Returns a stable state_hash plus a boolean `changed`, and a summary counting critical/warning/ok items. Costs $0.02 to learn 'nothing changed'. When changed is true, call /audit for full detail. Detects: end-of-life runtimes, versions past active support, and CVEs affecting your stack that appear on CISA's Known Exploited Vulnerabilities catalog.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        },
        {
          "scheme": "exact",
          "network": "eip155:137",
          "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        }
      ],
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "stack": "node@16,python@3.8",
          "since": "<previous state_hash>"
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state_hash": {
            "type": "string"
          },
          "changed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "count": {
            "type": "integer"
          },
          "summary": {
            "type": "object"
          },
          "polled_at": {
            "type": "string"
          }
        },
        "required": [
          "state_hash",
          "count"
        ]
      }
    },
    {
      "resource": "https://stackwatch.marvin-odigo.workers.dev/audit",
      "method": "GET",
      "price": {
        "amount": "50000",
        "currency": "USDC",
        "decimals": 6
      },
      "description": "Full stack audit with per-item findings. Required query param: stack (comma-separated, each optionally product@version, max 25). Returns for every item the matched release cycle, EOL date, whether EOL has passed, whether active support ended, the latest supported cycle, any actively-exploited CVEs from CISA KEV (with ransomware linkage), and a severity-tagged findings array. Use when /watch reports a change, or for a one-off compliance snapshot.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        },
        {
          "scheme": "exact",
          "network": "eip155:137",
          "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        }
      ],
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "stack": "node@16,python@3.8,postgresql@17"
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state_hash": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "summary": {
            "type": "object"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "input": {
                  "type": "string"
                },
                "product": {
                  "type": "string"
                },
                "tracked": {
                  "type": "boolean"
                },
                "matched_cycle": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "eol": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "eol_passed": {
                  "type": "boolean"
                },
                "active_support_ended": {
                  "type": "boolean"
                },
                "latest_release": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "latest_supported_cycle": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "severity": {
                  "type": "string",
                  "enum": [
                    "ok",
                    "warning",
                    "critical"
                  ]
                },
                "message": {
                  "type": "string"
                },
                "exploited_cves": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "findings": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              },
              "required": [
                "input"
              ]
            }
          }
        },
        "required": [
          "count",
          "results"
        ]
      }
    }
  ],
  "free": [
    {
      "resource": "https://stackwatch.marvin-odigo.workers.dev/status",
      "description": "Severity counts, no payment required"
    },
    {
      "resource": "https://stackwatch.marvin-odigo.workers.dev/health",
      "description": "Liveness check"
    }
  ]
}