| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- import { EventEmitter } from "events"
- export interface RooCodeEvents {
- message: [{ taskId: string; action: "created" | "updated"; message: ClineMessage }]
- taskStarted: [taskId: string]
- taskPaused: [taskId: string]
- taskUnpaused: [taskId: string]
- taskAborted: [taskId: string]
- taskSpawned: [taskId: string, childTaskId: string]
- }
- export interface RooCodeAPI extends EventEmitter<RooCodeEvents> {
- /**
- * Starts a new task with an optional initial message and images.
- * @param task Optional initial task message.
- * @param images Optional array of image data URIs (e.g., "data:image/webp;base64,...").
- * @returns The ID of the new task.
- */
- startNewTask(task?: string, images?: string[]): Promise<string>
- /**
- * Clears the current task.
- */
- clearCurrentTask(lastMessage?: string): Promise<void>
- /**
- * Cancels the current task.
- */
- cancelCurrentTask(): Promise<void>
- /**
- * Sends a message to the current task.
- * @param message Optional message to send.
- * @param images Optional array of image data URIs (e.g., "data:image/webp;base64,...").
- */
- sendMessage(message?: string, images?: string[]): Promise<void>
- /**
- * Simulates pressing the primary button in the chat interface.
- */
- pressPrimaryButton(): Promise<void>
- /**
- * Simulates pressing the secondary button in the chat interface.
- */
- pressSecondaryButton(): Promise<void>
- /**
- * Sets the configuration for the current task.
- * @param values An object containing key-value pairs to set.
- */
- setConfiguration(values: Partial<ConfigurationValues>): Promise<void>
- /**
- * Returns true if the API is ready to use.
- */
- isReady(): boolean
- /**
- * Returns the messages for a given task.
- * @param taskId The ID of the task.
- * @returns An array of ClineMessage objects.
- */
- getMessages(taskId: string): ClineMessage[]
- }
- export type ClineAsk =
- | "followup"
- | "command"
- | "command_output"
- | "completion_result"
- | "tool"
- | "api_req_failed"
- | "resume_task"
- | "resume_completed_task"
- | "mistake_limit_reached"
- | "browser_action_launch"
- | "use_mcp_server"
- | "finishTask"
- export type ClineSay =
- | "task"
- | "error"
- | "api_req_started"
- | "api_req_finished"
- | "api_req_retried"
- | "api_req_retry_delayed"
- | "api_req_deleted"
- | "text"
- | "reasoning"
- | "completion_result"
- | "user_feedback"
- | "user_feedback_diff"
- | "command_output"
- | "tool"
- | "shell_integration_warning"
- | "browser_action"
- | "browser_action_result"
- | "command"
- | "mcp_server_request_started"
- | "mcp_server_response"
- | "new_task_started"
- | "new_task"
- | "checkpoint_saved"
- | "rooignore_error"
- export interface ClineMessage {
- ts: number
- type: "ask" | "say"
- ask?: ClineAsk
- say?: ClineSay
- text?: string
- images?: string[]
- partial?: boolean
- reasoning?: string
- conversationHistoryIndex?: number
- checkpoint?: Record<string, unknown>
- progressStatus?: ToolProgressStatus
- }
- export type SecretKey =
- | "apiKey"
- | "glamaApiKey"
- | "openRouterApiKey"
- | "awsAccessKey"
- | "awsSecretKey"
- | "awsSessionToken"
- | "openAiApiKey"
- | "geminiApiKey"
- | "openAiNativeApiKey"
- | "deepSeekApiKey"
- | "mistralApiKey"
- | "unboundApiKey"
- | "requestyApiKey"
- export type GlobalStateKey =
- | "apiProvider"
- | "apiModelId"
- | "glamaModelId"
- | "glamaModelInfo"
- | "awsRegion"
- | "awsUseCrossRegionInference"
- | "awsProfile"
- | "awsUseProfile"
- | "awsCustomArn"
- | "vertexKeyFile"
- | "vertexJsonCredentials"
- | "vertexProjectId"
- | "vertexRegion"
- | "lastShownAnnouncementId"
- | "customInstructions"
- | "alwaysAllowReadOnly"
- | "alwaysAllowWrite"
- | "alwaysAllowExecute"
- | "alwaysAllowBrowser"
- | "alwaysAllowMcp"
- | "alwaysAllowModeSwitch"
- | "alwaysAllowSubtasks"
- | "taskHistory"
- | "openAiBaseUrl"
- | "openAiModelId"
- | "openAiCustomModelInfo"
- | "openAiUseAzure"
- | "ollamaModelId"
- | "ollamaBaseUrl"
- | "lmStudioModelId"
- | "lmStudioBaseUrl"
- | "anthropicBaseUrl"
- | "modelMaxThinkingTokens"
- | "azureApiVersion"
- | "openAiStreamingEnabled"
- | "openRouterModelId"
- | "openRouterModelInfo"
- | "openRouterBaseUrl"
- | "openRouterUseMiddleOutTransform"
- | "googleGeminiBaseUrl"
- | "allowedCommands"
- | "soundEnabled"
- | "soundVolume"
- | "diffEnabled"
- | "enableCheckpoints"
- | "checkpointStorage"
- | "browserViewportSize"
- | "screenshotQuality"
- | "remoteBrowserHost"
- | "fuzzyMatchThreshold"
- | "writeDelayMs"
- | "terminalOutputLineLimit"
- | "mcpEnabled"
- | "enableMcpServerCreation"
- | "alwaysApproveResubmit"
- | "requestDelaySeconds"
- | "rateLimitSeconds"
- | "currentApiConfigName"
- | "listApiConfigMeta"
- | "vsCodeLmModelSelector"
- | "mode"
- | "modeApiConfigs"
- | "customModePrompts"
- | "customSupportPrompts"
- | "enhancementApiConfigId"
- | "experiments" // Map of experiment IDs to their enabled state
- | "autoApprovalEnabled"
- | "enableCustomModeCreation" // Enable the ability for Roo to create custom modes
- | "customModes" // Array of custom modes
- | "unboundModelId"
- | "requestyModelId"
- | "requestyModelInfo"
- | "unboundModelInfo"
- | "modelTemperature"
- | "modelMaxTokens"
- | "mistralCodestralUrl"
- | "maxOpenTabsContext"
- | "maxWorkspaceFiles"
- | "browserToolEnabled"
- | "lmStudioSpeculativeDecodingEnabled"
- | "lmStudioDraftModelId"
- | "telemetrySetting"
- | "showRooIgnoredFiles"
- | "remoteBrowserEnabled"
- | "language"
- export type ConfigurationKey = GlobalStateKey | SecretKey
- export type ConfigurationValues = Record<ConfigurationKey, any>
|