Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/anassagd432_agdi.json
T

1 line
10 KiB
JSON

{"repo": "anassagd432/agdi", "files": {"extensions/minimax/index.ts": {"e02e5cdcf70867227b46f2f75b7b2ebc238cf627": {"t": 1785674027.3059957, "n": 9966, "h": "47dac988f226d90d", "c": "import {\n definePluginEntry,\n type ProviderAuthContext,\n type ProviderAuthResult,\n type ProviderCatalogContext,\n} from \"agdi/plugin-sdk/plugin-entry\";\nimport {\n MINIMAX_OAUTH_MARKER,\n createProviderApiKeyAuthMethod,\n ensureAuthProfileStore,\n listProfilesForProvider,\n} from \"agdi/plugin-sdk/provider-auth\";\nimport { buildOauthProviderAuthResult } from \"agdi/plugin-sdk/provider-auth\";\nimport {\n isMiniMaxModernModelId,\n MINIMAX_DEFAULT_MODEL_ID,\n} from \"agdi/plugin-sdk/provider-models\";\nimport { fetchMinimaxUsage } from \"agdi/plugin-sdk/provider-usage\";\nimport {\n buildMinimaxImageGenerationProvider,\n buildMinimaxPortalImageGenerationProvider,\n} from \"./image-generation-provider.js\";\nimport {\n minimaxMediaUnderstandingProvider,\n minimaxPortalMediaUnderstandingProvider,\n} from \"./media-understanding-provider.js\";\nimport type { MiniMaxRegion } from \"./oauth.js\";\nimport { applyMinimaxApiConfig, applyMinimaxApiConfigCn } from \"./onboard.js\";\nimport { buildMinimaxPortalProvider, buildMinimaxProvider } from \"./provider-catalog.js\";\n\nconst API_PROVIDER_ID = \"minimax\";\nconst PORTAL_PROVIDER_ID = \"minimax-portal\";\nconst PROVIDER_LABEL = \"MiniMax\";\nconst DEFAULT_MODEL = MINIMAX_DEFAULT_MODEL_ID;\nconst DEFAULT_BASE_URL_CN = \"https://api.minimaxi.com/anthropic\";\nconst DEFAULT_BASE_URL_GLOBAL = \"https://api.minimax.io/anthropic\";\n\nfunction getDefaultBaseUrl(region: MiniMaxRegion): string {\n return region === \"cn\" ? DEFAULT_BASE_URL_CN : DEFAULT_BASE_URL_GLOBAL;\n}\n\nfunction apiModelRef(modelId: string): string {\n return `${API_PROVIDER_ID}/${modelId}`;\n}\n\nfunction portalModelRef(modelId: string): string {\n return `${PORTAL_PROVIDER_ID}/${modelId}`;\n}\n\nfunction buildPortalProviderCatalog(params: { baseUrl: string; apiKey: string }) {\n return {\n ...buildMinimaxPortalProvider(),\n baseUrl: params.baseUrl,\n apiKey: params.apiKey,\n };\n}\n\nfunction resolveApiCatalog(ctx: ProviderCatalogContext) {\n const apiKey = ctx.resolveProviderApiKey(API_PROVIDER_ID).apiKey;\n if (!apiKey) {\n return null;\n }\n return {\n provider: {\n ...buildMinimaxProvider(),\n apiKey,\n },\n };\n}\n\nfunction resolvePortalCatalog(ctx: ProviderCatalogContext) {\n const explicitProvider = ctx.config.models?.providers?.[PORTAL_PROVIDER_ID];\n const envApiKey = ctx.resolveProviderApiKey(PORTAL_PROVIDER_ID).apiKey;\n const authStore = ensureAuthProfileStore(ctx.agentDir, {\n allowKeychainPrompt: false,\n });\n const hasProfiles = listProfilesForProvider(authStore, PORTAL_PROVIDER_ID).length > 0;\n const explicitApiKey =\n typeof explicitProvider?.apiKey === \"string\" ? explicitProvider.apiKey.trim() : undefined;\n const apiKey = envApiKey ?? explicitApiKey ?? (hasProfiles ? MINIMAX_OAUTH_MARKER : undefined);\n if (!apiKey) {\n return null;\n }\n\n const explicitBaseUrl =\n typeof explicitProvider?.baseUrl === \"string\" ? explicitProvider.baseUrl.trim() : undefined;\n\n return {\n provider: buildPortalProviderCatalog({\n baseUrl: explicitBaseUrl || DEFAULT_BASE_URL_GLOBAL,\n apiKey,\n }),\n };\n}\n\nfunction createOAuthHandler(region: MiniMaxRegion) {\n const defaultBaseUrl = getDefaultBaseUrl(region);\n const regionLabel = region === \"cn\" ? \"CN\" : \"Global\";\n\n return async (ctx: ProviderAuthContext): Promise<ProviderAuthResult> => {\n const progress = ctx.prompter.progress(`Starting MiniMax OAuth (${regionLabel})…`);\n try {\n const { loginMiniMaxPortalOAuth } = await import(\"./oauth.runtime.js\");\n const result = await loginMiniMaxPortalOAuth({\n openUrl: ctx.openUrl,\n note: ctx.prompter.note,\n progress,\n region,\n });\n\n progress.stop(\"MiniMax OAuth complete\");\n\n if (result.notification_message) {\n await ctx.prompter.note(result.notification_message, \"MiniMax OAuth\");\n }\n\n const baseUrl = result.resourceUrl || defaultBaseUrl;\n\n return buildOauthProviderAuthResult({\n providerId: PORTAL_PROVIDER_ID,\n defaultModel: portalModelRef(DEFAULT_MODEL),\n access: result.access,\n refresh: result.refresh,\n expires: result.expires,\n configPatch: {\n models: {\n providers: {\n [PORTAL_PROVIDER_ID]: {\n baseUrl,\n models: [],\n },\n },\n },\n agents: {\n defaults: {\n models: {\n [portalModelRef(\"MiniMax-M2.7\")]: { alias: \"minimax-m2.7\" },\n [portalModelRef(\"MiniMax-M2.7-highspeed\")]: {\n alias: \"minimax-m2.7-highspeed\",\n },\n },\n },\n },\n },\n notes: [\n \"MiniMax OAuth tokens auto-refresh. Re-run login if refresh fails or access is revoked.\",\n `Base URL defaults to ${defaultBaseUrl}. Override models.providers.${PORTAL_PROVIDER_ID}.baseUrl if needed.`,\n ...(result.notification_message ? [result.notification_message] : []),\n ],\n });\n } catch (err) {\n const errorMsg = err instanceof Error ? err.message : String(err);\n progress.stop(`MiniMax OAuth failed: ${errorMsg}`);\n await ctx.prompter.note(\n \"If OAuth fails, verify your MiniMax account has portal access and try again.\",\n \"MiniMax OAuth\",\n );\n throw err;\n }\n };\n}\n\nexport default definePluginEntry({\n id: API_PROVIDER_ID,\n name: \"MiniMax\",\n description: \"Bundled MiniMax API-key and OAuth provider plugin\",\n register(api) {\n api.registerProvider({\n id: API_PROVIDER_ID,\n label: PROVIDER_LABEL,\n docsPath: \"/providers/minimax\",\n envVars: [\"MINIMAX_API_KEY\"],\n auth: [\n createProviderApiKeyAuthMethod({\n providerId: API_PROVIDER_ID,\n methodId: \"api-global\",\n label: \"MiniMax API key (Global)\",\n hint: \"Global endpoint - api.minimax.io\",\n optionKey: \"minimaxApiKey\",\n flagName: \"--minimax-api-key\",\n envVar: \"MINIMAX_API_KEY\",\n promptMessage:\n \"Enter MiniMax API key (sk-api- or sk-cp-)\\nhttps://platform.minimax.io/user-center/basic-information/interface-key\",\n profileId: \"minimax:global\",\n allowProfile: false,\n defaultModel: apiModelRef(DEFAULT_MODEL),\n expectedProviders: [\"minimax\"],\n applyConfig: (cfg) => applyMinimaxApiConfig(cfg),\n wizard: {\n choiceId: \"minimax-global-api\",\n choiceLabel: \"MiniMax API key (Global)\",\n choiceHint: \"Global endpoint - api.minimax.io\",\n groupId: \"minimax\",\n groupLabel: \"MiniMax\",\n groupHint: \"M2.7 (recommended)\",\n },\n }),\n createProviderApiKeyAuthMethod({\n providerId: API_PROVIDER_ID,\n methodId: \"api-cn\",\n label: \"MiniMax API key (CN)\",\n hint: \"CN endpoint - api.minimaxi.com\",\n optionKey: \"minimaxApiKey\",\n flagName: \"--minimax-api-key\",\n envVar: \"MINIMAX_API_KEY\",\n promptMessage:\n \"Enter MiniMax CN API key (sk-api- or sk-cp-)\\nhttps://platform.minimaxi.com/user-center/basic-information/interface-key\",\n profileId: \"minimax:cn\",\n allowProfile: false,\n defaultModel: apiModelRef(DEFAULT_MODEL),\n expectedProviders: [\"minimax\", \"minimax-cn\"],\n applyConfig: (cfg) => applyMinimaxApiConfigCn(cfg),\n wizard: {\n choiceId: \"minimax-cn-api\",\n choiceLabel: \"MiniMax API key (CN)\",\n choiceHint: \"CN endpoint - api.minimaxi.com\",\n groupId: \"minimax\",\n groupLabel: \"MiniMax\",\n groupHint: \"M2.7 (recommended)\",\n },\n }),\n ],\n catalog: {\n order: \"simple\",\n run: async (ctx) => resolveApiCatalog(ctx),\n },\n resolveUsageAuth: async (ctx) => {\n const apiKey = ctx.resolveApiKeyFromConfigAndStore({\n envDirect: [ctx.env.MINIMAX_CODE_PLAN_KEY, ctx.env.MINIMAX_API_KEY],\n });\n return apiKey ? { token: apiKey } : null;\n },\n isModernModelRef: ({ modelId }) => isMiniMaxModernModelId(modelId),\n fetchUsageSnapshot: async (ctx) =>\n await fetchMinimaxUsage(ctx.token, ctx.timeoutMs, ctx.fetchFn),\n });\n\n api.registerMediaUnderstandingProvider(minimaxMediaUnderstandingProvider);\n api.registerMediaUnderstandingProvider(minimaxPortalMediaUnderstandingProvider);\n\n api.registerProvider({\n id: PORTAL_PROVIDER_ID,\n label: PROVIDER_LABEL,\n docsPath: \"/providers/minimax\",\n envVars: [\"MINIMAX_OAUTH_TOKEN\", \"MINIMAX_API_KEY\"],\n catalog: {\n run: async (ctx) => resolvePortalCatalog(ctx),\n },\n auth: [\n {\n id: \"oauth\",\n label: \"MiniMax OAuth (Global)\",\n hint: \"Global endpoint - api.minimax.io\",\n kind: \"device_code\",\n wizard: {\n choiceId: \"minimax-global-oauth\",\n choiceLabel: \"MiniMax OAuth (Global)\",\n choiceHint: \"Global endpoint - api.minimax.io\",\n groupId: \"minimax\",\n groupLabel: \"MiniMax\",\n groupHint: \"M2.7 (recommended)\",\n },\n run: createOAuthHandler(\"global\"),\n },\n {\n id: \"oauth-cn\",\n label: \"MiniMax OAuth (CN)\",\n hint: \"CN endpoint - api.minimaxi.com\",\n kind: \"device_code\",\n wizard: {\n choiceId: \"minimax-cn-oauth\",\n choiceLabel: \"MiniMax OAuth (CN)\",\n choiceHint: \"CN endpoint - api.minimaxi.com\",\n groupId: \"minimax\",\n groupLabel: \"MiniMax\",\n groupHint: \"M2.7 (recommended)\",\n },\n run: createOAuthHandler(\"cn\"),\n },\n ],\n isModernModelRef: ({ modelId }) => isMiniMaxModernModelId(modelId),\n });\n api.registerImageGenerationProvider(buildMinimaxImageGenerationProvider());\n api.registerImageGenerationProvider(buildMinimaxPortalImageGenerationProvider());\n },\n});\n"}}}}