#!/usr/bin/env node /** * DeepSeek :18036 no-think proxy vs v1.49 native parity evidence (local loopback). */ import { spawnSync } from 'node:child_process'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { DEFAULT_DEEPSEEK_NO_THINK_PORT, deepseekDisableThinkingEnabled, resolveDeepseekNoThinkListenPort, } from '../deepseek-no-think-proxy.mjs'; import { loadMemindEnvFiles } from './memind-runtime-profile.mjs'; const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..'); loadMemindEnvFiles(root, process.env); const port = resolveDeepseekNoThinkListenPort(process.env); const skip = process.env.GOOSE_V149_NO_THINK_EVIDENCE_SKIP === '1'; async function probeHealth(url) { try { const response = await fetch(url, { signal: AbortSignal.timeout(3000) }); return response.ok; } catch { return false; } } async function main() { if (skip) { console.log('GOOSE_V149_NO_THINK_EVIDENCE_OK: skipped'); return; } const proxyHealthUrl = `http://127.0.0.1:${port}/health`; const proxyUp = await probeHealth(proxyHealthUrl); const thinkingDisabled = deepseekDisableThinkingEnabled(process.env); const parity = spawnSync( process.execPath, ['--test', 'release-gate/deepseek-production-parity.test.mjs'], { cwd: root, encoding: 'utf8' }, ); if (parity.status !== 0) { throw new Error(parity.stderr?.trim() || parity.stdout?.trim() || 'deepseek parity unit failed'); } const preservation = spawnSync( process.execPath, [path.join(root, 'scripts', 'check-goosed-v149-thinking-preservation.mjs')], { cwd: root, encoding: 'utf8' }, ); if (preservation.status !== 0) { throw new Error(preservation.stderr?.trim() || 'thinking-preservation smoke failed'); } console.log('GOOSE_V149_NO_THINK_EVIDENCE_OK:'); console.log(` proxyPort=${port} proxyHealth=${proxyUp ? 'up' : 'down'}`); console.log(` MEMIND_DEEPSEEK_DISABLE_THINKING=${thinkingDisabled}`); console.log(` defaultPort=${DEFAULT_DEEPSEEK_NO_THINK_PORT}`); console.log(' parity=release-gate/deepseek-production-parity.test.mjs'); console.log(' note=:18036 retirement blocked until prod tool-round parity on native v1.49'); if (!proxyUp) { console.log(' warn=proxy not running locally; prod still relies on :18036 pass-through'); } } main().catch((error) => { console.error(`GOOSE_V149_NO_THINK_EVIDENCE_FAIL: ${error.message}`); process.exit(1); });