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", ], }));