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.