mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-17 04:12:17 +03:00
Restores ChatGPT Web on a clean-room browser transport, merged on the operator's explicit decision. Worth stating precisely, because this touches a provenance decision: the PR does not revert #11754. It narrows RETIRED_COMMON_CHATGPT_WEB_PROVIDER_IDS to the single GPL-derived alias cgpt-web and registers chatgpt-web as a separate clean-room id. The old implementation stays retired and blocked; the retirement machinery, its error code and its 410 contract are untouched. All four retirement suites agree with that distinction and pass unchanged. The 44 protected agent-instruction surfaces this PR touches (AGENTS.md, llm.txt and its 42 mirrors, README) were verified rather than trusted: masking digits and comparing the removed and added line sets gives 264 lines on each side, identical — every change is a provider-count substitution, with no sentence added, removed or reworded. Reconciled on merge: clean against the tip, with the two chat chokepoints this PR grows (src/sse/handlers/chat.ts +40, open-sse/handlers/chatCore.ts +30) recorded in the file-size baseline under an annotation. Verified that exactly those two caps move and nothing else, so the #12411 ratchet holds. The rebaseline is carried on this branch rather than left in a validation worktree — the propagation mistake that put the 2026-09-02 merge waves base-red in #12434. Verified: 504/504 across the PR's 44 test files plus all four chatgpt-web retirement suites, check:provider-consistency OK (272 REGISTRY entries, 355 canonical providers), check-file-size OK, and every changed TypeScript file parses. Thanks @backryun — separating the clean-room id from the retired alias, instead of reopening the old one, is what made this reviewable.
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import test from "node:test";
|
|
|
|
test("legacy common ChatGPT Web derived implementation files remain absent", () => {
|
|
const removedPaths = [
|
|
"open-sse/executors/chatgpt-web/citations.ts",
|
|
"open-sse/executors/chatgpt-web/handoff.ts",
|
|
"open-sse/executors/chatgpt-web/models.ts",
|
|
"open-sse/executors/chatgptWebErrors.ts",
|
|
"open-sse/handlers/imageGeneration/providers/chatgptWeb.ts",
|
|
"open-sse/services/chatgptImageCache.ts",
|
|
"open-sse/services/chatgptTlsClient.ts",
|
|
"open-sse/utils/sha3-512.ts",
|
|
"src/app/api/v1/chatgpt-web/image/[id]/route.ts",
|
|
];
|
|
|
|
for (const relativePath of removedPaths) {
|
|
assert.equal(
|
|
fs.existsSync(path.join(process.cwd(), relativePath)),
|
|
false,
|
|
`${relativePath} must not ship`
|
|
);
|
|
}
|
|
|
|
for (const relativePath of [
|
|
"open-sse/config/providers/registry/chatgpt-web/index.ts",
|
|
"open-sse/executors/chatgpt-web.ts",
|
|
"open-sse/utils/chatgptWebBrowserSession.ts",
|
|
"open-sse/utils/chatgptWebDeltaV1.ts",
|
|
"open-sse/utils/chatgptWebExecutorAdapter.ts",
|
|
"open-sse/utils/chatgptWebTransport.ts",
|
|
]) {
|
|
assert.equal(fs.existsSync(relativePath), true, `${relativePath} must ship`);
|
|
}
|
|
|
|
assert.equal(fs.existsSync("open-sse/executors/chatgpt-web-codex.ts"), true);
|
|
assert.equal(fs.existsSync("open-sse/vendor/codex-chatgpt-web/bridge.ts"), true);
|
|
});
|