import type { ThinkingLevel } from "@earendil-works/pi-agent-core"; import type { MessagingBot, ConversationContext, PlatformName } from "../adapter.js"; import type { DockerContainerManager } from "../provisioner.js"; import type { SandboxConfig } from "../sandbox/index.js"; import type { VaultManager } from "../vault/index.js"; export interface LinkTokenStoreLike { create(platform: PlatformName, platformUserId: string, conversationId: string, vaultId: string, providerId: string): { token: string; }; } export interface SessionViewTokenStoreLike { create(platform: PlatformName, platformUserId: string, conversationId: string, sessionKey: string, sessionFile: string, platformUserName?: string): { token: string; }; } interface AdminTokenStoreLike { create(args: { platform: PlatformName; platformUserId: string; conversationId: string; platformUserName?: string; }): { token: string; }; } interface CommandRuntimeBridge { handleNewCommand(sessionKey: string, conversationId: string, bot: MessagingBot): Promise; switchConversationModel(conversationId: string, provider: string, model: string): boolean; refreshConversationEnvironment(conversationId: string): boolean; } export interface CommandServices { workingDir: string; runtime?: CommandRuntimeBridge; sandbox: SandboxConfig; vaultManager: VaultManager; provisioner?: DockerContainerManager; linkTokenStore: LinkTokenStoreLike; sessionViewTokenStore: SessionViewTokenStoreLike; adminTokenStore: AdminTokenStoreLike; portalBaseUrl?: string; } export interface CommandContext { bot: MessagingBot; responder: ConversationContext["responder"]; platform: PlatformName; platformUserId: string; conversationId: string; vaultConversationId?: string; sessionKey: string; commandText: string; privateConversation: boolean; services: CommandServices; } export interface CommandHandler { tryHandle(context: CommandContext): Promise; } export interface ParsedModelCommand { provider?: string; model?: string; thinkingLevel?: ThinkingLevel; } export interface ParsedSandboxCommand { action?: "boost" | "private" | "full"; } export {}; //# sourceMappingURL=types.d.ts.map