Files
pikasTech-unidesk/scripts/platform-infra-sub2api-codex-local-config-contract-test.ts
T
2026-06-09 07:18:35 +00:00

59 lines
2.6 KiB
TypeScript

import { renderCodexLocalConsumerToml } from "./src/platform-infra-sub2api-codex";
function assertCondition(condition: unknown, message: string, detail: unknown = {}): void {
if (!condition) throw new Error(`${message}: ${JSON.stringify(detail)}`);
}
const baseOptions = {
providerName: "OpenAI",
baseUrl: "http://127.0.0.1:21880",
wireApi: "responses",
supportsWebSockets: true,
responsesWebSocketsV2: true,
};
const existing = [
'model_provider = "Legacy"',
"",
"[model_providers.OpenAI]",
'name = "OpenAI"',
'base_url = "https://old.example"',
'wire_api = "responses"',
"requires_openai_auth = false",
"supports_websockets = false",
'env_key = "OLD_OPENAI_API_KEY"',
'extra_setting = "kept"',
"",
"[features]",
"goals = true",
"responses_websockets_v2 = false",
"",
].join("\n");
const updated = renderCodexLocalConsumerToml(existing, baseOptions);
assertCondition(updated.includes('model_provider = "OpenAI"'), "model_provider must point at the configured provider", updated);
assertCondition(updated.includes('base_url = "http://127.0.0.1:21880"'), "provider base_url must use the Sub2API consumer endpoint", updated);
assertCondition(updated.includes("requires_openai_auth = true"), "provider must require OpenAI auth", updated);
assertCondition(updated.includes("supports_websockets = true"), "provider must enable WebSocket transport", updated);
assertCondition(updated.includes("responses_websockets_v2 = true"), "features must enable Responses WebSocket v2", updated);
assertCondition(updated.includes("goals = true"), "existing feature flags must be preserved", updated);
assertCondition(updated.includes('extra_setting = "kept"'), "unknown provider settings must be preserved", updated);
assertCondition(!updated.includes("env_key"), "stale provider env_key must be removed", updated);
assertCondition(updated.endsWith("\n"), "rendered TOML must end with newline", updated);
const fresh = renderCodexLocalConsumerToml("", baseOptions);
assertCondition(fresh.includes("[model_providers.OpenAI]"), "fresh TOML must create the provider section", fresh);
assertCondition(fresh.includes("[features]"), "fresh TOML must create the features section", fresh);
assertCondition(fresh.includes("supports_websockets = true"), "fresh TOML must enable WebSocket transport", fresh);
assertCondition(fresh.includes("responses_websockets_v2 = true"), "fresh TOML must enable Responses WebSocket v2", fresh);
console.log(JSON.stringify({
ok: true,
checks: [
"existing Codex TOML is upgraded to the Sub2API WSv2 consumer settings",
"fresh Codex TOML creates provider and feature sections with WSv2 enabled",
],
}));