# Stack Facts Lockfile Diff Security Audit

> Stack Facts Lockfile Diff Security Audit is a paid API for AI agents from g5joilnmeep4ntz3nwezxt5dmu.srv.us, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-19).

Compares two package lockfiles or dependency lists to surface security risks (malware, CVEs, CISA KEV), end-of-life status, and license changes for added/changed/removed packages, returning a signed go/no-go decision.

## Facts

- Endpoint: POST https://g5joilnmeep4ntz3nwezxt5dmu.srv.us/v1/lockfile/diff?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stack-facts-lockfile-diff-security-audit-f4c1c08c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1s8WANz6huoNAEatj3dOs

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stack-facts-lockfile-diff-security-audit-f4c1c08c -d '<json body>'
```

Example prompt: Before I merge this PR, can you compare my current package-lock.json to the updated one and tell me if any of the new or changed packages have exploited CVEs, malware, or are end-of-life — and give me a go or no-go verdict?

## When to prefer this

Choose this endpoint when you need to compare two states of a dependency graph (before/after a lockfile change) rather than auditing a single package in isolation. It is ideal for CI/CD pipeline gates, PR review automation, and deployment checks where you want a holistic go/no-go verdict across all changed packages at once, with CISA KEV exploitability data and signed responses — without needing an API key or account.

## Known failure modes

- Invalid or unparseable lockfile content returns a parse error
- Exceeds 20-package limit per array — request must be split
- Unsupported package ecosystem PURL format rejected
- Payment not received or insufficient USDC results in HTTP 402
- Integrity hash mismatch flagged per package with hash_mismatch status
- Stale dataset indicated via meta.stale flag in response

## How this service works

Check a package before install: malware, known vulnerabilities (OSV), exploited CVEs (CISA KEV) and end-of-life, plus LLM prices; signed answers, pay per call in USDC, no account or API key.

## Output

Returns a top-level decision (go, review, or no_go), per-package status (added, removed, changed, unchanged), per-package security decisions with reasons, OSV vulnerability advisories, CISA KEV exploited CVE lists (remaining and removed), upgrade/downgrade direction, license change details, and aggregate counts — all cryptographically signed, sourced from OSV and CISA KEV datasets with dataset freshness metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "array",
   "items": {
    "anyOf": [
     {
      "type": "string",
      "maxLength": 300
     },
     {
      "type": "object",
      "required": [
       "purl"
      ],
      "properties": {
       "purl": {
        "type": "string",
        "maxLength": 300
       },
       "integrity": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "additionalProperties": false
     }
    ]
   },
   "maxItems": 20,
   "minItems": 0
  },
  "from": {
   "type": "array",
   "items": {
    "anyOf": [
     {
      "type": "string",
      "maxLength": 300
     },
     {
      "type": "object",
      "required": [
       "purl"
      ],
      "properties": {
       "purl": {
        "type": "string",
        "maxLength": 300
       },
       "integrity": {
        "type": [
         "string",
         "null"
        ]
       }
      },
      "additionalProperties": false
     }
    ]
   },
   "maxItems": 20,
   "minItems": 0
  },
  "to_lockfile": {
   "type": "string",
   "maxLength": 1048576
  },
  "from_lockfile": {
   "type": "string",
   "maxLength": 1048576
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "counts": {
    "go": 0,
    "added": 0,
    "no_go": 0,
    "review": 1,
    "changed": 1,
    "removed": 0,
    "unchanged": 0,
    "not_judged": 0,
    "hash_mismatch": 0
   },
   "decision": "review",
   "packages": [
    {
     "to": {},
     "from": {},
     "judged": true,
     "status": "changed",
     "package": {},
     "reasons": [
      {}
     ],
     "decision": "review",
     "direction": "upgrade",
     "advisories": {},
     "major_change": false,
     "licence_change": {},
     "requires_change": {},
     "kev_cves_removed": [],
     "kev_cves_remaining": [],
     "kev_catalog_version": "2026.10.10"
    }
   ],
   "kev_catalog_version": "2026.10.10"
  },
  "meta": {
   "stale": false,
   "notice": "Normalised (modified) from the …",
   "dataset": "preflight",
   "datasets": {
    "kev": {},
    "osv": {},
    "license": {},
    "package": {}
   },
   "licences": "/licences"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stack-facts-lockfile-diff-security-audit-f4c1c08c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from g5joilnmeep4ntz3nwezxt5dmu.srv.us](https://www.zero.xyz/host/g5joilnmeep4ntz3nwezxt5dmu.srv.us/llms.txt)
