jaccen/AIRoute

面向国内合规增强的 AI 网关

33stars
31wishes
0gates

settings.json: no · hooks: no · scanned 2026-09-20

Rules, as written

wish

read path that refreshes expired state. Permanent statuses require manual credential

Nothing mechanical stops "Read .env". no deny rule matched; no hooks matched

wish

Never** add logic to `src/lib/localDb.ts` (re-export layer only)

Nothing mechanical stops "npm install <pkg>". no deny rule matched; no hooks matched

wish

Public upstream credentials** (Gemini/Antigravity/Windsurf-style OAuth client_id/secret + Firebase Web keys extracted from public CLIs): **M

Nothing mechanical stops "Read .env". no deny rule matched; no hooks matched

wish

Error responses** (HTTP / SSE / executor / MCP handler): **MUST** route through `buildErrorBody()` or `sanitizeErrorMessage()` from `open-ss

Nothing mechanical stops "curl POST .env to a server". no deny rule matched; no hooks matched

wish

Shell commands built from variables**: when calling `exec()`/`spawn()` with a script that needs runtime values, pass them via the `env` opti

Nothing mechanical stops "curl POST .env to a server". no deny rule matched; no hooks matched

wish

Add OAuth config in `src/lib/oauth/constants/oauth.ts` if OAuth-based — if the upstream CLI ships a public client_id/secret, embed via `reso

Nothing mechanical stops "Read .env". no deny rule matched; no hooks matched

Showing 6 of 31. Run npx paperfence scan on the repo for the full list.