Q93: disconnect erases the secret here and revokes at the provider where it can

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-08 15:33:58 -04:00
1 parent 06eb2ce8dc
commit 7cd386a38c
15 files changed
+257 -29

No files matched your search

+2
View File
@@ -324,6 +324,8 @@ export interface ProviderCatalogEntry {
/** Set for user-configured OpenAI/Anthropic-compatible endpoints: the UI
* collects a base URL + API key + model instead of a fixed provider form. */
customEndpoint?: "openai" | "anthropic";
/** True when disconnecting also revokes the sign-in at the provider; otherwise it only erases it from this computer. */
revokesRemotely: boolean;
}
export interface SkillDefinitionRecord {
+5 -1
View File
@@ -1,7 +1,7 @@
import { PROVIDER_AUTH_TYPE, type ProviderCatalogEntry } from "./domain";
import { listProviderModels } from "./provider-models";
const RAW_CATALOG: Omit<ProviderCatalogEntry, "models" | "supportsLiveModels">[] = [
const RAW_CATALOG: Omit<ProviderCatalogEntry, "models" | "supportsLiveModels" | "revokesRemotely">[] = [
{
key: "openai",
label: "OpenAI",
@@ -192,8 +192,12 @@ const CURATED_MODEL_PROVIDERS = new Set([
"custom-anthropic",
]);
// Google documents a token revocation endpoint (RFC 7009); the others offer none for what we hold.
const REMOTE_REVOCATION = new Set(["google-antigravity"]);
export const PROVIDER_CATALOG: ProviderCatalogEntry[] = RAW_CATALOG.map((entry) => ({
...entry,
models: listProviderModels(entry.key),
supportsLiveModels: !CURATED_MODEL_PROVIDERS.has(entry.key),
revokesRemotely: REMOTE_REVOCATION.has(entry.key),
}));