| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- // type that represents json data that is sent from extension to webview, called ExtensionMessage and has 'type' enum which can be 'plusButtonClicked' or 'settingsButtonClicked' or 'hello'
- import { ApiConfiguration, ModelInfo } from "./api"
- import { HistoryItem } from "./HistoryItem"
- import { McpServer } from "./mcp"
- // webview will hold state
- export interface ExtensionMessage {
- type:
- | "action"
- | "state"
- | "selectedImages"
- | "ollamaModels"
- | "lmStudioModels"
- | "theme"
- | "workspaceUpdated"
- | "invoke"
- | "partialMessage"
- | "openRouterModels"
- | "mcpServers"
- text?: string
- action?:
- | "chatButtonClicked"
- | "mcpButtonClicked"
- | "settingsButtonClicked"
- | "historyButtonClicked"
- | "didBecomeVisible"
- invoke?: "sendMessage" | "primaryButtonClick" | "secondaryButtonClick"
- state?: ExtensionState
- images?: string[]
- ollamaModels?: string[]
- lmStudioModels?: string[]
- filePaths?: string[]
- partialMessage?: ClineMessage
- openRouterModels?: Record<string, ModelInfo>
- mcpServers?: McpServer[]
- }
- export interface ExtensionState {
- version: string
- clineMessages: ClineMessage[]
- taskHistory: HistoryItem[]
- shouldShowAnnouncement: boolean
- apiConfiguration?: ApiConfiguration
- customInstructions?: string
- alwaysAllowReadOnly?: boolean
- alwaysAllowWrite?: boolean
- alwaysAllowExecute?: boolean
- alwaysAllowBrowser?: boolean
- alwaysAllowMcp?: boolean
- uriScheme?: string
- allowedCommands?: string[]
- soundEnabled?: boolean
- soundVolume?: number
- diffEnabled?: boolean
- debugDiffEnabled?: boolean
- }
- export interface ClineMessage {
- ts: number
- type: "ask" | "say"
- ask?: ClineAsk
- say?: ClineSay
- text?: string
- images?: string[]
- partial?: boolean
- }
- 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"
- export type ClineSay =
- | "task"
- | "error"
- | "api_req_started"
- | "api_req_finished"
- | "text"
- | "completion_result"
- | "user_feedback"
- | "user_feedback_diff"
- | "api_req_retried"
- | "command_output"
- | "tool"
- | "shell_integration_warning"
- | "browser_action"
- | "browser_action_result"
- | "command"
- | "mcp_server_request_started"
- | "mcp_server_response"
- export interface ClineSayTool {
- tool:
- | "editedExistingFile"
- | "appliedDiff"
- | "newFileCreated"
- | "readFile"
- | "listFilesTopLevel"
- | "listFilesRecursive"
- | "listCodeDefinitionNames"
- | "searchFiles"
- path?: string
- diff?: string
- content?: string
- regex?: string
- filePattern?: string
- }
- // must keep in sync with system prompt
- export const browserActions = ["launch", "click", "type", "scroll_down", "scroll_up", "close"] as const
- export type BrowserAction = (typeof browserActions)[number]
- export interface ClineSayBrowserAction {
- action: BrowserAction
- coordinate?: string
- text?: string
- }
- export type BrowserActionResult = {
- screenshot?: string
- logs?: string
- currentUrl?: string
- currentMousePosition?: string
- }
- export interface ClineAskUseMcpServer {
- serverName: string
- type: "use_mcp_tool" | "access_mcp_resource"
- toolName?: string
- arguments?: string
- uri?: string
- }
- export interface ClineApiReqInfo {
- request?: string
- tokensIn?: number
- tokensOut?: number
- cacheWrites?: number
- cacheReads?: number
- cost?: number
- cancelReason?: ClineApiReqCancelReason
- streamingFailedMessage?: string
- }
- export type ClineApiReqCancelReason = "streaming_failed" | "user_cancelled"
|