79 lines
2.7 KiB
JavaScript
79 lines
2.7 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import { spawnSync } from 'node:child_process';
|
|
import path from 'node:path';
|
|
import process from 'node:process';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
import {
|
|
exitForSkippedPreflight,
|
|
preflightOpenCodeLiveEnvironment,
|
|
} from './lib/opencode-live-preflight.mjs';
|
|
|
|
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
|
|
const repoRoot = path.resolve(scriptDir, '..');
|
|
const orchestratorRoot = process.env.CLAUDE_DEV_RUNTIME_ROOT?.trim();
|
|
const siblingOrchestrator = path.resolve(repoRoot, '..', 'agent_teams_orchestrator');
|
|
const order = process.env.PROVIDER_LAUNCH_STRESS_ORDER?.trim() || 'anthropic,codex,opencode,mixed';
|
|
|
|
const env = {
|
|
...process.env,
|
|
PROVIDER_LAUNCH_STRESS_LIVE: '1',
|
|
PROVIDER_LAUNCH_STRESS_ORDER: order,
|
|
PROVIDER_LAUNCH_STRESS_MEMBER_COUNT:
|
|
process.env.PROVIDER_LAUNCH_STRESS_MEMBER_COUNT?.trim() || '5',
|
|
PROVIDER_LAUNCH_STRESS_ANTHROPIC_AUTH:
|
|
process.env.PROVIDER_LAUNCH_STRESS_ANTHROPIC_AUTH?.trim() ||
|
|
(process.env.ANTHROPIC_API_KEY?.trim() ? 'api-key' : 'subscription'),
|
|
OPENCODE_E2E: '1',
|
|
OPENCODE_E2E_USE_REAL_APP_CREDENTIALS: '1',
|
|
OPENCODE_DISABLE_AUTOUPDATE: process.env.OPENCODE_DISABLE_AUTOUPDATE ?? '1',
|
|
};
|
|
|
|
if (!env.CLAUDE_AGENT_TEAMS_ORCHESTRATOR_CLI_PATH?.trim()) {
|
|
const runtimeRoot = orchestratorRoot ? path.resolve(orchestratorRoot) : siblingOrchestrator;
|
|
env.CLAUDE_AGENT_TEAMS_ORCHESTRATOR_CLI_PATH = path.join(runtimeRoot, 'cli');
|
|
}
|
|
|
|
console.log('Running provider launch stress live smoke');
|
|
console.log(`Order: ${env.PROVIDER_LAUNCH_STRESS_ORDER}`);
|
|
console.log(`Members per scenario: ${env.PROVIDER_LAUNCH_STRESS_MEMBER_COUNT}`);
|
|
console.log(`Anthropic auth: ${env.PROVIDER_LAUNCH_STRESS_ANTHROPIC_AUTH}`);
|
|
console.log(
|
|
`Models: anthropic=${env.PROVIDER_LAUNCH_STRESS_ANTHROPIC_MODEL || 'haiku'}, codex=${
|
|
env.PROVIDER_LAUNCH_STRESS_CODEX_MODEL || 'gpt-5.4-mini'
|
|
}, opencode=${env.PROVIDER_LAUNCH_STRESS_OPENCODE_MODEL || 'openai/gpt-5.4-mini'}`
|
|
);
|
|
console.log(`Orchestrator CLI: ${env.CLAUDE_AGENT_TEAMS_ORCHESTRATOR_CLI_PATH}`);
|
|
|
|
if (order.split(',').some((item) => ['opencode', 'mixed'].includes(item.trim()))) {
|
|
const preflight = await preflightOpenCodeLiveEnvironment({ repoRoot });
|
|
exitForSkippedPreflight(preflight);
|
|
}
|
|
|
|
const result = spawnSync(
|
|
'pnpm',
|
|
[
|
|
'exec',
|
|
'vitest',
|
|
'run',
|
|
'--maxWorkers',
|
|
'1',
|
|
'--minWorkers',
|
|
'1',
|
|
'test/main/services/team/ProviderLaunchStress.live-e2e.test.ts',
|
|
],
|
|
{
|
|
cwd: repoRoot,
|
|
env,
|
|
stdio: 'inherit',
|
|
shell: process.platform === 'win32',
|
|
}
|
|
);
|
|
|
|
if (result.error) {
|
|
console.error(`Failed to run provider launch stress smoke: ${result.error.message}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
process.exit(result.status ?? 1);
|