Loopback-first local CLI room for humans, Claude Code, and Codex with mention-based routing.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 3 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
catch_up
-
send_message
-
who
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit eacdb49 · analyzer v33 · 6d ago
danger signals2
- committed secret private key AliceLJY-agent-room-cli-eacdb49/tests/redaction.test.ts :78
PEM private key block (redacted) - committed secret OpenAI key AliceLJY-agent-room-cli-eacdb49/tests/redaction.test.ts :80
sk-pro…(39 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 25
filesystem 9
- fs (weak) AliceLJY-agent-room-cli-eacdb49/scripts/package-smoke.mjs :2
import { readFileSync } from "node:fs"; - fs AliceLJY-agent-room-cli-eacdb49/src/archive.ts :1
import { mkdir, readdir, stat, writeFile } from "node:fs/promises"; - fs AliceLJY-agent-room-cli-eacdb49/src/cli.ts :6
import { readFileSync } from "node:fs"; - fs AliceLJY-agent-room-cli-eacdb49/src/launcher.ts :2
import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; - fs AliceLJY-agent-room-cli-eacdb49/src/mcp-server.ts :4
import { readFileSync } from "node:fs"; - fs AliceLJY-agent-room-cli-eacdb49/src/store.ts :1
import { appendFile, mkdir, open } from "node:fs/promises"; - fs (weak) AliceLJY-agent-room-cli-eacdb49/tests/archive.test.ts :1
import { mkdtemp, readFile, rm } from "node:fs/promises"; - fs (weak) AliceLJY-agent-room-cli-eacdb49/tests/room-server.test.ts :2
import { mkdtempSync, rmSync } from "node:fs"; - fs (weak) AliceLJY-agent-room-cli-eacdb49/tests/store.test.ts :1
import { mkdtemp, rm, writeFile } from "node:fs/promises";
shell / exec 4
- shell (weak) AliceLJY-agent-room-cli-eacdb49/scripts/package-smoke.mjs :1
import { execFileSync } from "node:child_process"; - shell AliceLJY-agent-room-cli-eacdb49/src/launcher.ts :1
import { execFileSync } from "node:child_process"; - shell AliceLJY-agent-room-cli-eacdb49/src/tmux.ts :1
import { execFileSync, spawn } from "node:child_process"; - shell AliceLJY-agent-room-cli-eacdb49/src/trio.ts :1
import { execFileSync } from "node:child_process";
network 5
- net AliceLJY-agent-room-cli-eacdb49/src/client.ts :107
const res = await fetch(url, { signal }); - net AliceLJY-agent-room-cli-eacdb49/src/room-server.ts :1
import { createServer, type IncomingMessage, type ServerResponse } from "node:http"; - net AliceLJY-agent-room-cli-eacdb49/src/trio.ts :142
const response = await fetch(`${serverUrl}/health`); - net (weak) AliceLJY-agent-room-cli-eacdb49/tests/client.test.ts :1
import { createServer, type Server } from "node:http"; - net (weak) AliceLJY-agent-room-cli-eacdb49/tests/room-server.test.ts :3
import type { ServerResponse } from "node:http";
tool registrations 3
- send_message AliceLJY-agent-room-cli-eacdb49/src/mcp-server.ts :28
- catch_up AliceLJY-agent-room-cli-eacdb49/src/mcp-server.ts :47
- who AliceLJY-agent-room-cli-eacdb49/src/mcp-server.ts :64
install hooks 1
- prepare AliceLJY-agent-room-cli-eacdb49/package.json :41
npm run build
declared dependencies 7
- @modelcontextprotocol/sdk@^1.24.0
- commander@^14.0.2
- zod@^4.1.13
- @types/node@^25.0.0
- tsx@^4.21.0
- typescript@^5.9.3
- vitest@^4.0.16
transport_posture 1
- network-listening, binds all interfaces, no auth detected AliceLJY-agent-room-cli-eacdb49/tests/room-server.test.ts :455
await expect(startRoomServer({ hub, port: 0, host: "0.0.0.0" })).rejects.toThrow(