A permission layer for AI coding agents: role-scoped folders and keys, enforced by the OS, and when it blocks it tells you whose file it was.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 5 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
seisin_activity
-
seisin_draft_grant
-
seisin_explain
-
seisin_requests
-
seisin_state
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 4e87716 · analyzer v33 · 6d ago
danger signals1
- committed secret Google API key carlostapiaolguin3-stack-seisin-4e87716/test/unit.test.js :233
AIzaAA…(39 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 28
filesystem 14
- fs carlostapiaolguin3-stack-seisin-4e87716/adapters/equipo-conf.js :18
import { readFileSync, existsSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/cli.js :15
import { readFileSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/commands/init.js :14
import { existsSync, readdirSync, readFileSync, writeFileSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/commands/log.js :8
import { createReadStream, watch as watchDir } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/commands/requests.js :9
import { readFileSync, writeFileSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/commands/run.js :11
import { mkdirSync, writeFileSync, existsSync, readFileSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/config.js :11
import { readFileSync, existsSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/inspect.js :12
import { realpathSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/log.js :13
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/requests.js :14
import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/serve.js :15
import { readFileSync, writeFileSync, existsSync } from "node:fs"; - fs carlostapiaolguin3-stack-seisin-4e87716/src/srt.js :19
import { realpathSync } from "node:fs";
show 2 more
- fs (weak) carlostapiaolguin3-stack-seisin-4e87716/test/sandbox.test.js :14
import { mkdtempSync, mkdirSync, writeFileSync, rmSync, existsSync } from "node:fs"; - fs (weak) carlostapiaolguin3-stack-seisin-4e87716/test/unit.test.js :10
import { realpathSync, mkdtempSync, mkdirSync, writeFileSync, readFileSync, rmSync } from "node:fs";
shell / exec 3
- shell carlostapiaolguin3-stack-seisin-4e87716/src/commands/run.js :10
import { spawn } from "node:child_process"; - shell carlostapiaolguin3-stack-seisin-4e87716/src/commands/ui.js :9
import { spawnSync } from "node:child_process"; - shell (weak) carlostapiaolguin3-stack-seisin-4e87716/test/sandbox.test.js :13
import { execFileSync, spawnSync } from "node:child_process";
network 2
- net carlostapiaolguin3-stack-seisin-4e87716/src/serve.js :13
import { createServer } from "node:http"; - net (weak) carlostapiaolguin3-stack-seisin-4e87716/test/unit.test.js :514
const page = await (await fetch(`http://127.0.0.1:${port}/`)).text();
secrets 1
- secrets (weak) carlostapiaolguin3-stack-seisin-4e87716/test/unit.test.js :207
writeFileSync(join(box, "good.ts"), "const API_TOKEN = process.env.API_TOKEN;\n");
tool registrations 5
- seisin_state carlostapiaolguin3-stack-seisin-4e87716/src/mcp.js :51
- seisin_explain carlostapiaolguin3-stack-seisin-4e87716/src/mcp.js :61
- seisin_requests carlostapiaolguin3-stack-seisin-4e87716/src/mcp.js :76
- seisin_activity carlostapiaolguin3-stack-seisin-4e87716/src/mcp.js :83
- seisin_draft_grant carlostapiaolguin3-stack-seisin-4e87716/src/mcp.js :95
declared dependencies 1
- @anthropic-ai/sandbox-runtime@^0.0.76
perm:untrusted 1
- untrusted (weak) carlostapiaolguin3-stack-seisin-4e87716/test/unit.test.js :514
const page = await (await fetch(`http://127.0.0.1:${port}/`)).text();