import type { ProviderBrand } from "@intentic/constants"; import type { AgentLoop } from "../schemas/agent.js"; import { type AgentCapabilities } from "./agent-runtimes.js"; export type AccessKind = "free" | "subscription"; export interface ProviderAccess { readonly kind: AccessKind; readonly requirement: string; readonly runs: string; } export declare const ACCESS_COST: Record; export type ProviderAuth = { readonly kind: "oauth"; } | { readonly kind: "translator"; readonly cliProxy: string; } | { readonly kind: "minted"; readonly variants: readonly MintedVariant[]; }; export interface MintedVariant { readonly id: string; readonly label: string; readonly flow: "device" | "redirect"; readonly anthropicBase: string; readonly catalogBase: string; readonly responsesBase?: string; } export interface LoopTerms { readonly status: "unlisted" | "against-terms"; readonly note: string; readonly source: string; } export interface LoopOffer { readonly capabilities: AgentCapabilities; readonly terms?: LoopTerms; readonly label?: string; readonly door?: string; } export interface ProviderLoops { readonly default: AgentLoop; readonly offered: Partial>; } export interface ProviderSpec { readonly id: string; readonly label: string; readonly vendor: string; readonly accountLabel: string; readonly destination: string; readonly brand: ProviderBrand; readonly access: ProviderAccess; readonly auth: ProviderAuth; readonly planLimits: boolean; readonly loops: ProviderLoops; } export declare const PROVIDER_SPECS: readonly [{ readonly id: "claude"; readonly label: "Claude Code"; readonly vendor: "Claude"; readonly accountLabel: "Claude"; readonly destination: "Anthropic"; readonly brand: "claude"; readonly access: { readonly kind: "subscription"; readonly requirement: "Claude subscription"; readonly runs: "Claude Code"; }; readonly auth: { readonly kind: "oauth"; }; readonly planLimits: true; readonly loops: { readonly default: "claude-code"; readonly offered: { readonly "claude-code": { readonly capabilities: AgentCapabilities; }; }; }; }, { readonly id: "codex"; readonly label: "Codex"; readonly vendor: "ChatGPT"; readonly accountLabel: "ChatGPT"; readonly destination: "ChatGPT"; readonly brand: "codex"; readonly access: { readonly kind: "subscription"; readonly requirement: "ChatGPT subscription"; readonly runs: "Codex"; }; readonly auth: { readonly kind: "translator"; readonly cliProxy: "codex"; }; readonly planLimits: true; readonly loops: { readonly default: "codex"; readonly offered: { readonly codex: { readonly capabilities: AgentCapabilities; }; readonly "claude-code": { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "unlisted"; readonly note: "OpenAI lets a ChatGPT plan run in Codex and in the apps it lists for Sign in with ChatGPT (OpenCode, Pi, T3 and others). Claude Code, reached here through a translator, isn't among them."; readonly source: "https://help.openai.com/en/articles/20001542"; }; }; readonly opencode: { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "unlisted"; readonly note: "OpenAI lists OpenCode among the apps a ChatGPT plan may sign in to, through OpenCode's own sign-in. Here OpenCode reaches the plan through a translator instead, which OpenAI doesn't list."; readonly source: "https://help.openai.com/en/articles/20001542"; }; }; }; }; }, { readonly id: "grok"; readonly label: "Grok"; readonly vendor: "xAI"; readonly accountLabel: "Grok"; readonly destination: "x.ai"; readonly brand: "grok"; readonly access: { readonly kind: "subscription"; readonly requirement: "SuperGrok subscription"; readonly runs: "Grok"; }; readonly auth: { readonly kind: "translator"; readonly cliProxy: "xai"; }; readonly planLimits: false; readonly loops: { readonly default: "opencode"; readonly offered: { readonly opencode: { readonly capabilities: AgentCapabilities; }; readonly vendor: { readonly capabilities: AgentCapabilities; readonly label: "Grok Build"; readonly door: "grok-build"; }; readonly "claude-code": { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "unlisted"; readonly note: "xAI turns SuperGrok sign-in on for OpenCode, Hermes, OpenClaw and Kilo Code. Claude Code, reached here through a translator, isn't among them."; readonly source: "https://x.ai/news/grok-opencode"; }; }; readonly codex: { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "unlisted"; readonly note: "xAI turns SuperGrok sign-in on for OpenCode, Hermes, OpenClaw and Kilo Code. Codex, reached here through a translator, isn't among them."; readonly source: "https://x.ai/news/grok-opencode"; }; }; }; }; }, { readonly id: "kimi"; readonly label: "Kimi Code"; readonly vendor: "Kimi Code"; readonly accountLabel: "Kimi Code"; readonly destination: "Kimi Code"; readonly brand: "kimi"; readonly access: { readonly kind: "subscription"; readonly requirement: "Kimi Code subscription"; readonly runs: "Kimi Code"; }; readonly auth: { readonly kind: "translator"; readonly cliProxy: "kimi"; }; readonly planLimits: true; readonly loops: { readonly default: "claude-code"; readonly offered: { readonly "claude-code": { readonly capabilities: AgentCapabilities; }; readonly vendor: { readonly capabilities: AgentCapabilities; readonly label: "Kimi CLI"; readonly door: "kimi-cli"; }; readonly codex: { readonly capabilities: AgentCapabilities; readonly terms: LoopTerms; }; readonly opencode: { readonly capabilities: AgentCapabilities; readonly terms: LoopTerms; }; }; }; }, { readonly id: "gemini"; readonly label: "Google"; readonly vendor: "Google"; readonly accountLabel: "Google"; readonly destination: "Google"; readonly brand: "gemini"; readonly access: { readonly kind: "free"; readonly requirement: "Google sign-in"; readonly runs: "Gemini, Claude and GPT-OSS under Claude Code"; }; readonly auth: { readonly kind: "translator"; readonly cliProxy: "antigravity"; }; readonly planLimits: true; readonly loops: { readonly default: "opencode"; readonly offered: { readonly opencode: { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "against-terms"; readonly note: "Google's Antigravity terms don't allow its sign-in in third-party clients such as OpenCode, and Google has suspended accounts for it."; readonly source: "https://antigravity.google/terms/"; }; }; }; }; }, { readonly id: "cursor"; readonly label: "Cursor"; readonly vendor: "Cursor"; readonly accountLabel: "Cursor"; readonly destination: "Cursor"; readonly brand: "cursor"; readonly access: { readonly kind: "subscription"; readonly requirement: "Cursor Pro subscription"; readonly runs: "Cursor Agent"; }; readonly auth: { readonly kind: "oauth"; }; readonly planLimits: false; readonly loops: { readonly default: "vendor"; readonly offered: { readonly vendor: { readonly capabilities: AgentCapabilities; }; }; }; }, { readonly id: "devin"; readonly label: "Devin"; readonly vendor: "Devin"; readonly accountLabel: "Devin"; readonly destination: "Devin"; readonly brand: "devin"; readonly access: { readonly kind: "free"; readonly requirement: "Devin account"; readonly runs: "Devin's agent on the models your plan offers"; }; readonly auth: { readonly kind: "oauth"; }; readonly planLimits: false; readonly loops: { readonly default: "vendor"; readonly offered: { readonly vendor: { readonly capabilities: AgentCapabilities; }; }; }; }, { readonly id: "meta"; readonly label: "Meta"; readonly vendor: "Meta"; readonly accountLabel: "Meta"; readonly destination: "Meta"; readonly brand: "meta"; readonly access: { readonly kind: "subscription"; readonly requirement: "Muse Code subscription"; readonly runs: "Muse Spark in Muse Code"; }; readonly auth: { readonly kind: "minted"; readonly variants: readonly [{ readonly id: "meta"; readonly label: "Meta"; readonly flow: "device"; readonly anthropicBase: "https://api.meta.ai"; readonly catalogBase: "https://api.meta.ai/v1"; }]; }; readonly planLimits: false; readonly loops: { readonly default: "muse"; readonly offered: { readonly muse: { readonly capabilities: AgentCapabilities; }; readonly "claude-code": { readonly capabilities: AgentCapabilities; readonly terms: { readonly status: "against-terms"; readonly note: "Meta's terms say a Muse Code subscription key is for use with Muse Code only. Here it runs under Claude Code."; readonly source: "https://dev.meta.ai/docs/muse-code/subscriptions"; }; }; }; }; }, { readonly id: "zai"; readonly label: "Z.ai"; readonly vendor: "Z.ai"; readonly accountLabel: "Z.ai"; readonly destination: "Z.ai"; readonly brand: "zai"; readonly access: { readonly kind: "subscription"; readonly requirement: "Z.ai GLM Coding Plan"; readonly runs: "GLM under Claude Code"; }; readonly auth: { readonly kind: "minted"; readonly variants: readonly [{ readonly id: "zai"; readonly label: "Z.ai international"; readonly flow: "device"; readonly anthropicBase: "https://api.z.ai/api/anthropic"; readonly catalogBase: "https://api.z.ai/api/coding/paas/v4"; readonly responsesBase: "https://api.z.ai/api/v1"; }, { readonly id: "bigmodel"; readonly label: "BigModel (中国大陆)"; readonly flow: "redirect"; readonly anthropicBase: "https://open.bigmodel.cn/api/anthropic"; readonly catalogBase: "https://open.bigmodel.cn/api/coding/paas/v4"; readonly responsesBase: "https://open.bigmodel.cn/api/v1"; }]; }; readonly planLimits: false; readonly loops: { readonly default: "claude-code"; readonly offered: { readonly "claude-code": { readonly capabilities: AgentCapabilities; }; readonly codex: { readonly capabilities: AgentCapabilities; }; readonly opencode: { readonly capabilities: AgentCapabilities; }; }; }; }]; type Spec = (typeof PROVIDER_SPECS)[number]; export type NativeProvider = Spec["id"]; export declare const NATIVE_PROVIDERS: readonly NativeProvider[]; export declare const providerSpec: (provider: string) => ProviderSpec | undefined; export declare const nativeProvidersIn: (value: string | readonly (string | null)[] | null | undefined) => NativeProvider[]; export type TranslatorProvider = Extract["id"]; export declare const TRANSLATOR_PROVIDERS: readonly TranslatorProvider[]; export type MintedProvider = Extract["id"]; export declare const MINTED_PROVIDERS: readonly MintedProvider[]; export declare const cliProxyIdOf: (provider: string) => string | undefined; export declare const mintedVariants: (provider: string) => readonly MintedVariant[] | undefined; export declare const mintedVariant: (provider: string, variant?: string) => MintedVariant | undefined; export {}; //# sourceMappingURL=provider-specs.d.ts.map