Files
memind/scripts/goose-v149-real-llm-gate.mjs
T
john 67220a14ea fix(goose-v149): block unattended real LLM smokes by default
Prevent phase2/phase3/all reruns from burning DashScope tokens unless
GOOSE_V149_ALLOW_REAL_LLM=1 is explicitly set with human approval.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 22:08:39 +08:00

41 lines
1.4 KiB
JavaScript

/**
* Hard gate: block unattended Goose v1.49 smoke that calls real LLM providers.
* Bulk portal/page/memory smokes can consume 100M+ tokens/day on DashScope.
*
* Opt-in only:
* GOOSE_V149_ALLOW_REAL_LLM=1 node scripts/check-goosed-v149-all.mjs
*
* See docs/goose-v149-real-llm-gate.md
*/
export const REAL_LLM_GATE_ENV = 'GOOSE_V149_ALLOW_REAL_LLM';
export function isRealLlmAllowed(env = process.env) {
return String(env[REAL_LLM_GATE_ENV] ?? '') === '1';
}
export function realLlmGateMessage(source) {
return [
`GOOSE_V149_REAL_LLM_BLOCKED: ${source}`,
'Unattended v1.49 smokes that call real LLM providers are disabled by default.',
'They previously consumed ~150M tokens/day on local DashScope during phase3 reruns.',
`To run once with explicit approval: ${REAL_LLM_GATE_ENV}=1 <command>`,
'See docs/goose-v149-real-llm-gate.md',
].join('\n');
}
export function enforceRealLlmGate(source, env = process.env) {
if (isRealLlmAllowed(env)) return;
console.error(realLlmGateMessage(source));
process.exit(2);
}
/** Force skip flags for the heaviest portal/page smokes unless explicitly allowed. */
export function applyRealLlmSkipDefaults(env = process.env) {
if (isRealLlmAllowed(env)) return env;
env.GOOSE_V149_PORTAL_SMOKE_SKIP = '1';
env.GOOSE_V149_PAGE_E2E_SKIP = '1';
env.GOOSE_V149_PORTAL_RESUME_SKIP = env.GOOSE_V149_PORTAL_RESUME_SKIP ?? '1';
return env;
}