/** * Shared onboarding contracts. */ import type { WalletConfigUpdateRequest } from "./wallet"; export interface StylePreset { catchphrase: string; hint: string; bio: string[]; system: string; adjectives: string[]; style: { all: string[]; chat: string[]; post: string[]; }; postExamples: string[]; postExamples_zhCN?: string[]; messageExamples: Array>; } export type OnboardingProviderFamily = "anthropic" | "deepseek" | "elizacloud" | "gemini" | "grok" | "groq" | "mistral" | "ollama" | "openai" | "openrouter" | "pi-ai" | "together" | "zai"; export type OnboardingProviderId = "anthropic" | "anthropic-subscription" | "deepseek" | "elizacloud" | "gemini" | "grok" | "groq" | "mistral" | "ollama" | "openai" | "openai-subscription" | "openrouter" | "pi-ai" | "together" | "zai"; export type OnboardingProviderAuthMode = "api-key" | "cloud" | "credentials" | "local" | "subscription"; export type OnboardingProviderGroup = "cloud" | "local" | "subscription"; export interface ProviderOption { id: OnboardingProviderId; name: string; envKey: string | null; pluginName: string; keyPrefix: string | null; description: string; family: OnboardingProviderFamily; authMode: OnboardingProviderAuthMode; group: OnboardingProviderGroup; order: number; recommended?: boolean; labelKey?: string; storedProvider?: string; supportsPrimaryModelOverride?: boolean; } export interface CloudProviderOption { id: "elizacloud"; name: string; description: string; } export interface ModelOption { id: string; name: string; provider: string; description: string; } export interface OpenRouterModelOption { id: string; name: string; description: string; } export interface PiAiModelOption { id: string; name: string; provider: string; isDefault: boolean; } export interface MessageExampleContent { text: string; actions?: string[]; } export interface MessageExample { user: string; content: MessageExampleContent; } export interface ConnectorConfig { enabled?: boolean; botToken?: string; token?: string; apiKey?: string; [key: string]: string | boolean | number | string[] | Record | undefined; } export interface RpcProviderOption { id: string; label: string; envKey?: string | null; requiresKey?: boolean; } export interface InventoryProviderOption { id: string; name: string; description: string; rpcProviders: RpcProviderOption[]; } export type SubscriptionProviderSelectionId = "anthropic-subscription" | "openai-subscription"; export type StoredSubscriptionProviderId = "anthropic-subscription" | "openai-codex"; export declare const SUBSCRIPTION_PROVIDER_SELECTIONS: readonly [{ readonly id: "anthropic-subscription"; readonly storedProvider: "anthropic-subscription"; readonly family: "anthropic"; readonly labelKey: "providerswitcher.claudeSubscription"; }, { readonly id: "openai-subscription"; readonly storedProvider: "openai-codex"; readonly family: "openai"; readonly labelKey: "providerswitcher.chatgptSubscription"; }]; export declare const ONBOARDING_PROVIDER_CATALOG: readonly [{ readonly id: "elizacloud"; readonly name: "Eliza Cloud"; readonly envKey: null; readonly pluginName: "@elizaos/plugin-elizacloud"; readonly keyPrefix: null; readonly description: "Managed hosting for Milady agents and bundled infrastructure."; readonly family: "elizacloud"; readonly authMode: "cloud"; readonly group: "cloud"; readonly order: 10; readonly recommended: true; }, { readonly id: "anthropic-subscription"; readonly name: "Claude Subscription"; readonly envKey: null; readonly pluginName: "@elizaos/plugin-anthropic"; readonly keyPrefix: null; readonly description: "Use your Claude Pro or Max subscription via OAuth or setup token."; readonly family: "anthropic"; readonly authMode: "subscription"; readonly group: "subscription"; readonly order: 20; readonly recommended: true; readonly labelKey: "providerswitcher.claudeSubscription"; readonly storedProvider: "anthropic-subscription"; }, { readonly id: "openai-subscription"; readonly name: "ChatGPT Subscription"; readonly envKey: null; readonly pluginName: "@elizaos/plugin-openai"; readonly keyPrefix: null; readonly description: "Use your ChatGPT Plus or Pro subscription via OAuth."; readonly family: "openai"; readonly authMode: "subscription"; readonly group: "subscription"; readonly order: 30; readonly recommended: true; readonly labelKey: "providerswitcher.chatgptSubscription"; readonly storedProvider: "openai-codex"; }, { readonly id: "pi-ai"; readonly name: "Pi Credentials"; readonly envKey: null; readonly pluginName: "@elizaos/plugin-pi-ai"; readonly keyPrefix: null; readonly description: "Use credentials from ~/.pi/agent/auth.json (API keys or OAuth)."; readonly family: "pi-ai"; readonly authMode: "credentials"; readonly group: "local"; readonly order: 40; readonly supportsPrimaryModelOverride: true; }, { readonly id: "anthropic"; readonly name: "Anthropic"; readonly envKey: "ANTHROPIC_API_KEY"; readonly pluginName: "@elizaos/plugin-anthropic"; readonly keyPrefix: "sk-ant-"; readonly description: "Claude models via API key."; readonly family: "anthropic"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 50; }, { readonly id: "openai"; readonly name: "OpenAI"; readonly envKey: "OPENAI_API_KEY"; readonly pluginName: "@elizaos/plugin-openai"; readonly keyPrefix: "sk-"; readonly description: "GPT models via API key."; readonly family: "openai"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 60; }, { readonly id: "openrouter"; readonly name: "OpenRouter"; readonly envKey: "OPENROUTER_API_KEY"; readonly pluginName: "@elizaos/plugin-openrouter"; readonly keyPrefix: "sk-or-"; readonly description: "Access multiple models via one API key."; readonly family: "openrouter"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 70; readonly supportsPrimaryModelOverride: true; }, { readonly id: "gemini"; readonly name: "Gemini"; readonly envKey: "GOOGLE_GENERATIVE_AI_API_KEY"; readonly pluginName: "@elizaos/plugin-google-genai"; readonly keyPrefix: null; readonly description: "Google's Gemini models."; readonly family: "gemini"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 80; }, { readonly id: "grok"; readonly name: "xAI (Grok)"; readonly envKey: "XAI_API_KEY"; readonly pluginName: "@elizaos/plugin-xai"; readonly keyPrefix: "xai-"; readonly description: "xAI's Grok models."; readonly family: "grok"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 90; }, { readonly id: "groq"; readonly name: "Groq"; readonly envKey: "GROQ_API_KEY"; readonly pluginName: "@elizaos/plugin-groq"; readonly keyPrefix: "gsk_"; readonly description: "Fast inference."; readonly family: "groq"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 100; }, { readonly id: "deepseek"; readonly name: "DeepSeek"; readonly envKey: "DEEPSEEK_API_KEY"; readonly pluginName: "@elizaos/plugin-deepseek"; readonly keyPrefix: "sk-"; readonly description: "DeepSeek models."; readonly family: "deepseek"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 110; }, { readonly id: "mistral"; readonly name: "Mistral"; readonly envKey: "MISTRAL_API_KEY"; readonly pluginName: "@elizaos/plugin-mistral"; readonly keyPrefix: null; readonly description: "Mistral AI models."; readonly family: "mistral"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 120; }, { readonly id: "together"; readonly name: "Together AI"; readonly envKey: "TOGETHER_API_KEY"; readonly pluginName: "@elizaos/plugin-together"; readonly keyPrefix: null; readonly description: "Open-source model hosting."; readonly family: "together"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 130; }, { readonly id: "ollama"; readonly name: "Ollama"; readonly envKey: null; readonly pluginName: "@elizaos/plugin-ollama"; readonly keyPrefix: null; readonly description: "Local models, no API key needed."; readonly family: "ollama"; readonly authMode: "local"; readonly group: "local"; readonly order: 140; }, { readonly id: "zai"; readonly name: "z.ai"; readonly envKey: "ZAI_API_KEY"; readonly pluginName: "@homunculuslabs/plugin-zai"; readonly keyPrefix: null; readonly description: "GLM models via z.ai Coding Plan."; readonly family: "zai"; readonly authMode: "api-key"; readonly group: "local"; readonly order: 150; }]; export declare const ONBOARDING_CLOUD_PROVIDER_OPTIONS: readonly [{ readonly id: "elizacloud"; readonly name: "Eliza Cloud"; readonly description: "Managed cloud infrastructure. Wallets, LLMs, and RPCs included."; }]; export type OnboardingLocalProviderId = Exclude; export interface OnboardingCloudManagedConnection { kind: "cloud-managed"; cloudProvider: "elizacloud"; apiKey?: string; smallModel?: string; largeModel?: string; } export interface OnboardingLocalProviderConnection { kind: "local-provider"; provider: OnboardingLocalProviderId; apiKey?: string; primaryModel?: string; } export interface OnboardingRemoteProviderConnection { kind: "remote-provider"; remoteApiBase: string; remoteAccessToken?: string; provider?: OnboardingLocalProviderId; apiKey?: string; primaryModel?: string; } export type OnboardingConnection = OnboardingCloudManagedConnection | OnboardingLocalProviderConnection | OnboardingRemoteProviderConnection; export interface OnboardingOptions { names: string[]; styles: StylePreset[]; providers: ProviderOption[]; cloudProviders: CloudProviderOption[]; models: { small: ModelOption[]; large: ModelOption[]; }; openrouterModels?: OpenRouterModelOption[]; piAiModels?: PiAiModelOption[]; piAiDefaultModel?: string | null; inventoryProviders: InventoryProviderOption[]; sharedStyleRules: string; githubOAuthAvailable?: boolean; } export interface OnboardingData { name: string; sandboxMode?: "off" | "light" | "standard" | "max"; bio: string[]; systemPrompt: string; style?: { all: string[]; chat: string[]; post: string[]; }; adjectives?: string[]; postExamples?: string[]; messageExamples?: MessageExample[][]; connection: OnboardingConnection; channels?: Record; walletConfig?: WalletConfigUpdateRequest; inventoryProviders?: Array<{ chain: string; rpcProvider: string; rpcApiKey?: string; }>; connectors?: Record; telegramToken?: string; discordToken?: string; whatsappSessionPath?: string; twilioAccountSid?: string; twilioAuthToken?: string; twilioPhoneNumber?: string; blooioApiKey?: string; blooioPhoneNumber?: string; githubToken?: string; } export interface SubscriptionProviderStatus { provider: string; configured: boolean; valid: boolean; expiresAt: number | null; } export interface SubscriptionStatusResponse { providers: SubscriptionProviderStatus[]; } export declare function isSubscriptionProviderSelectionId(value: unknown): value is SubscriptionProviderSelectionId; export declare function normalizeSubscriptionProviderSelectionId(value: unknown): SubscriptionProviderSelectionId | null; export declare function getStoredSubscriptionProvider(selectionId: SubscriptionProviderSelectionId): StoredSubscriptionProviderId; export declare function getSubscriptionProviderFamily(selectionId: SubscriptionProviderSelectionId): "anthropic" | "openai"; export declare function normalizeOnboardingProviderId(value: unknown): OnboardingProviderId | null; export declare function getOnboardingProviderOption(providerId: unknown): ProviderOption | null; export declare function getOnboardingProviderFamily(providerId: unknown): OnboardingProviderFamily | null; export declare function getStoredOnboardingProviderId(providerId: unknown): string | null; export declare function sortOnboardingProviders(providers: readonly ProviderOption[]): ProviderOption[]; export declare function isCloudManagedConnection(connection: OnboardingConnection | null | undefined): connection is OnboardingCloudManagedConnection; export declare function isRemoteProviderConnection(connection: OnboardingConnection | null | undefined): connection is OnboardingRemoteProviderConnection; export declare function isLocalProviderConnection(connection: OnboardingConnection | null | undefined): connection is OnboardingLocalProviderConnection; //# sourceMappingURL=onboarding.d.ts.map