Files
memind/scripts/start-headroom-proxy-local.mjs
T
john 26ce1241c6 fix(context): repair headroom probe routing and add portal E2E gate
Use the default headroom health probe instead of the goosed fetch adapter
so active mode routes deepseek-no-think through the proxy, and add an E2E
script that verifies goosed pong via headroom with fail-open portal checks.

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

64 lines
1.8 KiB
JavaScript

#!/usr/bin/env node
/**
* Start headroom proxy for local MeMind loopback dev.
*
* Usage:
* node scripts/start-headroom-proxy-local.mjs
*
* Requires:
* - headroom-ai installed (uv tool install headroom-ai[proxy])
* - deepseek-no-think compat proxy on :18036
*/
import { spawn } from 'node:child_process';
import {
resolveDeepseekNoThinkProxyBaseUrl,
} from '../deepseek-no-think-proxy.mjs';
import {
probeHeadroomProxyReachable,
resolveHeadroomProxyBaseUrl,
resolveHeadroomProxyPort,
resolveHeadroomUpstreamBaseUrl,
} from '../memind-headroom-policy.mjs';
const upstream = resolveHeadroomUpstreamBaseUrl();
const port = resolveHeadroomProxyPort();
const proxyBase = resolveHeadroomProxyBaseUrl();
async function main() {
const reachable = await probeHeadroomProxyReachable({ baseUrl: proxyBase });
if (reachable) {
console.log(`HEADROOM_LOCAL_ALREADY_RUNNING: ${proxyBase}`);
console.log(` upstream=${upstream}`);
return;
}
console.log('HEADROOM_LOCAL_START:');
console.log(` proxy=${proxyBase}`);
console.log(` upstream=${upstream}`);
console.log(` compat=${resolveDeepseekNoThinkProxyBaseUrl()}`);
console.log(' constraints: HEADROOM_OUTPUT_SHAPER=0, no wrap/learn');
const child = spawn(
'headroom',
['proxy', '--port', String(port), '--openai-api-url', upstream.replace(/\/v1\/?$/, '')],
{
stdio: 'inherit',
env: {
...process.env,
OPENAI_TARGET_API_URL: upstream,
HEADROOM_OUTPUT_SHAPER: '0',
MEMIND_HEADROOM_MODE: process.env.MEMIND_HEADROOM_MODE ?? 'shadow',
},
},
);
child.on('exit', (code, signal) => {
process.exit(code ?? (signal ? 1 : 0));
});
}
main().catch((error) => {
console.error(`HEADROOM_LOCAL_FAIL: ${error.message}`);
process.exit(1);
});