{
  "name": "@occasiolabs/occasio",
  "version": "0.12.1",
  "mcpName": "io.github.occasiolabs/occasio",
  "description": "Occasio — cryptographically verifiable behavioral attestation for AI coding agents. Tool-call interception + policy enforcement + tamper-evident audit chain + Sigstore-signed in-toto attestations + windowed EDR detection. Same engine for Claude Code and MCP; Computer-Use scaffold included.",
  "main": "src/index.js",
  "files": [
    "bin/",
    "src/",
    "schemas/",
    "policy-templates/",
    "docs/",
    "spec/",
    "LICENSE",
    "NOTICE"
  ],
  "scripts": {
    "prepack": "node -e \"const fs=require('fs'),p=require('path');function rm(d){if(!fs.existsSync(d))return;for(const e of fs.readdirSync(d,{withFileTypes:true})){const f=p.join(d,e.name);if(e.isDirectory())rm(f);else fs.unlinkSync(f);}fs.rmdirSync(d);}rm('docs/__pycache__');console.log('prepack: cleared docs/__pycache__');\"",
    "pretest": "npm run lint:all",
    "test": "node test-interceptor.js && node test-native-handlers.js && node test-audit-chain.js && node test-events.js && node test-drift-guard.js && node test-snapshot.js && node test-doctor-ansi.js && node test-paranoid.js && node test-paranoid-sign.js && node test-new-commands.js && node test-live-watch.js && node test-attest.js && node test-git-state.js && node test-bundle.js && node test-bundle-xlang.js && node test-policy-binding.js && node test-limits.js && node test-policy-lock.js && node test-explain.js && node test-detectors.js && node test-preflight-simulate.js && node test-policy-paths.js && node test-anomaly.js && node test-eyes.js && node test-identity-gate.js && node test-identity-approval.js && node test-identity-hook.js && node test-audit-xlang.js",
    "lint": "eslint src/audit src/attest src/core src/executor",
    "lint:all": "eslint src bin",
    "smoke": "node test-smoke.js",
    "fuzz": "node test-fuzz.js",
    "test:e2e": "node test-attest-e2e.js",
    "test:mcp": "node test-mcp-server.js",
    "restart-check": "node scripts/restart-check.js",
    "check-validation": "node scripts/check-validation.js",
    "demo:release": "node scripts/demo-release.js",
    "verify:stress": "node scripts/stress-verify.js",
    "start": "node bin/occasio.js"
  },
  "keywords": [
    "claude",
    "claude-code",
    "cline",
    "anthropic",
    "ai-agents",
    "ai-governance",
    "agent-attestation",
    "agent-provenance",
    "sigstore",
    "in-toto",
    "slsa",
    "policy",
    "audit",
    "compliance",
    "eu-ai-act",
    "nist-ai-rmf",
    "soc2",
    "secrets",
    "edr",
    "anomaly-detection",
    "proxy",
    "mcp",
    "computer-use"
  ],
  "bin": {
    "occasio": "bin/occasio.js",
    "oc": "bin/occasio.js",
    "occasio-mcp": "bin/occasio-mcp.js"
  },
  "engines": {
    "node": ">=18"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/occasiolabs/occasio.git"
  },
  "homepage": "https://github.com/occasiolabs/occasio#readme",
  "bugs": {
    "url": "https://github.com/occasiolabs/occasio/issues"
  },
  "license": "Apache-2.0",
  "dependencies": {
    "proper-lockfile": "^4.1.2",
    "sigstore": "^3.1.0"
  },
  "devDependencies": {
    "eslint": "^9.39.4"
  }
}
