Signed receipts and Cedar policies for AI agent tool calls. Claude Code hooks, MCP gateway.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 8 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
delete_file
-
deploy
-
github_create_pr
-
pms_book_fill
-
read_file
-
send_email
-
web_search
-
write_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 35a77c7 · analyzer v28 · 3d ago
skills & prompt files 1
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 105
filesystem 26
- fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-5AYAOZ34.mjs :10
import { readFileSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-5WH4VGW2.mjs :11
import { readFileSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-FGCNKEEW.mjs :7
import { readFileSync, readdirSync, existsSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-SOJBLPPX.mjs :6
import { readFileSync, existsSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-YJPBADHC.mjs :28
import { appendFileSync, readFileSync, existsSync, readdirSync, statSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-ZX7MTVDL.mjs :19
import { readFileSync, writeFileSync, existsSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.js :213
import_node_fs = require("fs"); - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.mjs :43
import { readFileSync as readFileSyncCli, existsSync as existsSyncCli, appendFileSync as appendFileSyncCli, mkdirSync as mkdirSyncCli, readdirSync as readdirSyncCli, writeFileSync as writeFileSyncCli - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/hook-server.js :28
var import_node_fs6 = require("fs"); - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/mcp-server.js :30
var import_node_fs2 = require("fs"); - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/receipt-registry-6CAOY6RP.mjs :5
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/dist/sample-O3KYZWOX.mjs :7
import { existsSync, mkdirSync, writeFileSync } from "fs"; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/cedar-evaluator.ts :13
import { readFileSync, readdirSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/cli.ts :44
import { readFileSync as readFileSyncCli, existsSync as existsSyncCli, appendFileSync as appendFileSyncCli, mkdirSync as mkdirSyncCli, readdirSync as readdirSyncCli, writeFileSync as writeFileSyncCli - fs ScopeBlind-scopeblind-gateway-35a77c7/src/connector-pilots.ts :1
import { chmodSync, existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/evidence-store.ts :12
import { readFileSync, writeFileSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/gateway.ts :4
import { appendFileSync, readFileSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/hook-server.ts :29
import { appendFileSync, readFileSync, existsSync, readdirSync, statSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/http-server.ts :18
import { readFileSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/policy-digest.ts :32
import { readFileSync, readdirSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/policy.ts :2
import { readFileSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/receipt-registry.ts :2
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/report.ts :12
import { readFileSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/sample.ts :18
import { existsSync, mkdirSync, writeFileSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/signing.ts :12
import { readFileSync, existsSync } from 'node:fs'; - fs ScopeBlind-scopeblind-gateway-35a77c7/src/simulate.ts :12
import { readFileSync } from 'node:fs';
shell / exec 8
- shell ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-ZX7MTVDL.mjs :592
import { spawn } from "child_process"; - shell ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.js :1591
import_node_child_process = require("child_process"); - shell ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.mjs :1242
const { execFile } = await import("child_process"); - shell ScopeBlind-scopeblind-gateway-35a77c7/dist/index.mjs :1106
const { execSync } = await import("child_process"); - shell ScopeBlind-scopeblind-gateway-35a77c7/src/cli.ts :1406
const { execFile } = await import('node:child_process'); - shell ScopeBlind-scopeblind-gateway-35a77c7/src/gateway.ts :1
import { spawn, type ChildProcess } from 'node:child_process'; - shell ScopeBlind-scopeblind-gateway-35a77c7/src/sandbox.ts :221
const { execSync } = await import('node:child_process'); - shell ScopeBlind-scopeblind-gateway-35a77c7/src/types.ts :320
/** Command to spawn (first element of child process) */
network 19
- net ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-5AYAOZ34.mjs :230
import { createServer } from "http"; - net ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-YJPBADHC.mjs :26
import { createServer } from "http"; - net ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-ZX7MTVDL.mjs :258
const response = await fetch(config.endpoint, { - net ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.js :709
const response = await fetch(config.endpoint, { - net ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.mjs :1039
state = await fetch('/api/summary').then(function(r){ return r.json(); }); - net ScopeBlind-scopeblind-gateway-35a77c7/dist/hook-server.js :26
var import_node_http2 = require("http"); - net ScopeBlind-scopeblind-gateway-35a77c7/dist/http-transport-TTVNALF4.mjs :10
import { createServer } from "http"; - net ScopeBlind-scopeblind-gateway-35a77c7/dist/index.mjs :528
const response = await fetch(`${REKOR_API}/log/entries`, { - net ScopeBlind-scopeblind-gateway-35a77c7/dist/receipt-registry-6CAOY6RP.mjs :171
const res = await fetch(endpoint, { - net ScopeBlind-scopeblind-gateway-35a77c7/src/cli.ts :1202
state = await fetch('/api/summary').then(function(r){ return r.json(); }); - net ScopeBlind-scopeblind-gateway-35a77c7/src/external-pdp.ts :38
const response = await fetch(config.endpoint, { - net ScopeBlind-scopeblind-gateway-35a77c7/src/hook-server.ts :27
import { createServer, type IncomingMessage, type ServerResponse, type Server } from 'node:http'; - net ScopeBlind-scopeblind-gateway-35a77c7/src/http-server.ts :17
import { createServer, type Server, type IncomingMessage, type ServerResponse } from 'node:http'; - net ScopeBlind-scopeblind-gateway-35a77c7/src/http-transport.ts :16
import { createServer, type IncomingMessage, type ServerResponse } from 'node:http'; - net ScopeBlind-scopeblind-gateway-35a77c7/src/notifications.ts :90
const response = await fetch( - net ScopeBlind-scopeblind-gateway-35a77c7/src/receipt-registry.ts :288
const res = await fetch(endpoint, { - net ScopeBlind-scopeblind-gateway-35a77c7/src/rekor-anchor.ts :86
const response = await fetch(`${REKOR_API}/log/entries`, { - net ScopeBlind-scopeblind-gateway-35a77c7/src/sandbox.ts :237
const response = await fetch('https://api.e2b.dev/sandboxes', { - net ScopeBlind-scopeblind-gateway-35a77c7/src/scopeblind-bridge.ts :117
const res = await fetch(`${this.base}/fn/console/${slug}/receipts`, {
secrets 7
- secrets ScopeBlind-scopeblind-gateway-35a77c7/dist/chunk-ZX7MTVDL.mjs :569
const twilioToken = process.env.TWILIO_AUTH_TOKEN; - secrets ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.js :1233
const twilioToken = process.env.TWILIO_AUTH_TOKEN; - secrets ScopeBlind-scopeblind-gateway-35a77c7/dist/cli.mjs :1321
token: typeof body.token === "string" && body.token.trim() ? body.token.trim() : process.env.SCOPEBLIND_TOKEN, - secrets ScopeBlind-scopeblind-gateway-35a77c7/dist/index.mjs :1043
const runtime = config.runtime || (config.apiKey || process.env.E2B_API_KEY ? "e2b" : "docker"); - secrets ScopeBlind-scopeblind-gateway-35a77c7/src/cli.ts :1486
token: typeof body.token === 'string' && body.token.trim() ? body.token.trim() : process.env.SCOPEBLIND_TOKEN, - secrets ScopeBlind-scopeblind-gateway-35a77c7/src/notifications.ts :241
const twilioToken = process.env.TWILIO_AUTH_TOKEN; - secrets ScopeBlind-scopeblind-gateway-35a77c7/src/sandbox.ts :128
const runtime = config.runtime || (config.apiKey || process.env.E2B_API_KEY ? 'e2b' : 'docker');
tool registrations 8
- read_file ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :249
- write_file ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :252
- delete_file ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :255
- web_search ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :258
- deploy ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :261
- github_create_pr ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :264
- send_email ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :272
- pms_book_fill ScopeBlind-scopeblind-gateway-35a77c7/src/demo-server.ts :280
install hooks 1
- prepublishOnly ScopeBlind-scopeblind-gateway-35a77c7/package.json :23
npm run build
declared dependencies 10
- @modelcontextprotocol/sdk@^1.29.0
- @veritasacta/artifacts@^0.2.2
- @veritasacta/protocol@^0.1.0
- @noble/curves@^1.9.7
- @noble/hashes@^1.8.0
- @types/node@^20.0.0
- tsup@^8.0.0
- typescript@^5.0.0
- vitest@^2.1.9
- @cedar-policy/cedar-wasm@^4.9.1