| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- import {
- ModelInfo,
- GlobalSettings,
- ApiConfigMeta,
- ProviderSettings as ApiConfiguration,
- HistoryItem,
- ModeConfig,
- CheckpointStorage,
- TelemetrySetting,
- ExperimentId,
- ClineAsk,
- ClineSay,
- ToolProgressStatus,
- ClineMessage,
- } from "../schemas"
- import { McpServer } from "./mcp"
- import { GitCommit } from "../utils/git"
- import { Mode } from "./modes"
- export type { ApiConfigMeta, ToolProgressStatus }
- export interface LanguageModelChatSelector {
- vendor?: string
- family?: string
- version?: string
- id?: string
- }
- // Represents JSON data that is sent from extension to webview, called
- // ExtensionMessage and has 'type' enum which can be 'plusButtonClicked' or
- // 'settingsButtonClicked' or 'hello'. Webview will hold state.
- export interface ExtensionMessage {
- type:
- | "action"
- | "state"
- | "selectedImages"
- | "ollamaModels"
- | "lmStudioModels"
- | "theme"
- | "workspaceUpdated"
- | "invoke"
- | "partialMessage"
- | "openRouterModels"
- | "glamaModels"
- | "unboundModels"
- | "requestyModels"
- | "openAiModels"
- | "mcpServers"
- | "enhancedPrompt"
- | "commitSearchResults"
- | "listApiConfig"
- | "vsCodeLmModels"
- | "vsCodeLmApiAvailable"
- | "requestVsCodeLmModels"
- | "updatePrompt"
- | "systemPrompt"
- | "autoApprovalEnabled"
- | "updateCustomMode"
- | "deleteCustomMode"
- | "currentCheckpointUpdated"
- | "showHumanRelayDialog"
- | "humanRelayResponse"
- | "humanRelayCancel"
- | "browserToolEnabled"
- | "browserConnectionResult"
- | "remoteBrowserEnabled"
- | "ttsStart"
- | "ttsStop"
- | "maxReadFileLine"
- | "fileSearchResults"
- | "toggleApiConfigPin"
- text?: string
- action?:
- | "chatButtonClicked"
- | "mcpButtonClicked"
- | "settingsButtonClicked"
- | "historyButtonClicked"
- | "promptsButtonClicked"
- | "didBecomeVisible"
- | "focusInput"
- invoke?: "newChat" | "sendMessage" | "primaryButtonClick" | "secondaryButtonClick" | "setChatBoxMessage"
- state?: ExtensionState
- images?: string[]
- ollamaModels?: string[]
- lmStudioModels?: string[]
- vsCodeLmModels?: { vendor?: string; family?: string; version?: string; id?: string }[]
- filePaths?: string[]
- openedTabs?: Array<{
- label: string
- isActive: boolean
- path?: string
- }>
- partialMessage?: ClineMessage
- openRouterModels?: Record<string, ModelInfo>
- glamaModels?: Record<string, ModelInfo>
- unboundModels?: Record<string, ModelInfo>
- requestyModels?: Record<string, ModelInfo>
- openAiModels?: string[]
- mcpServers?: McpServer[]
- commits?: GitCommit[]
- listApiConfig?: ApiConfigMeta[]
- mode?: Mode
- customMode?: ModeConfig
- slug?: string
- success?: boolean
- values?: Record<string, any>
- requestId?: string
- promptText?: string
- results?: Array<{
- path: string
- type: "file" | "folder"
- label?: string
- }>
- error?: string
- }
- export type ExtensionState = Pick<
- GlobalSettings,
- | "currentApiConfigName"
- | "listApiConfigMeta"
- | "pinnedApiConfigs"
- // | "lastShownAnnouncementId"
- | "customInstructions"
- // | "taskHistory" // Optional in GlobalSettings, required here.
- | "autoApprovalEnabled"
- | "alwaysAllowReadOnly"
- | "alwaysAllowReadOnlyOutsideWorkspace"
- | "alwaysAllowWrite"
- | "alwaysAllowWriteOutsideWorkspace"
- // | "writeDelayMs" // Optional in GlobalSettings, required here.
- | "alwaysAllowBrowser"
- | "alwaysApproveResubmit"
- // | "requestDelaySeconds" // Optional in GlobalSettings, required here.
- | "alwaysAllowMcp"
- | "alwaysAllowModeSwitch"
- | "alwaysAllowSubtasks"
- | "alwaysAllowExecute"
- | "allowedCommands"
- | "browserToolEnabled"
- | "browserViewportSize"
- | "screenshotQuality"
- | "remoteBrowserEnabled"
- | "remoteBrowserHost"
- // | "enableCheckpoints" // Optional in GlobalSettings, required here.
- // | "checkpointStorage" // Optional in GlobalSettings, required here.
- | "ttsEnabled"
- | "ttsSpeed"
- | "soundEnabled"
- | "soundVolume"
- // | "maxOpenTabsContext" // Optional in GlobalSettings, required here.
- // | "maxWorkspaceFiles" // Optional in GlobalSettings, required here.
- // | "showRooIgnoredFiles" // Optional in GlobalSettings, required here.
- // | "maxReadFileLine" // Optional in GlobalSettings, required here.
- | "terminalOutputLineLimit"
- | "terminalShellIntegrationTimeout"
- | "terminalCommandDelay"
- | "terminalPowershellCounter"
- | "terminalZshClearEolMark"
- | "terminalZshOhMy"
- | "terminalZshP10k"
- | "diffEnabled"
- | "fuzzyMatchThreshold"
- // | "experiments" // Optional in GlobalSettings, required here.
- | "language"
- // | "telemetrySetting" // Optional in GlobalSettings, required here.
- // | "mcpEnabled" // Optional in GlobalSettings, required here.
- // | "enableMcpServerCreation" // Optional in GlobalSettings, required here.
- // | "mode" // Optional in GlobalSettings, required here.
- | "modeApiConfigs"
- // | "customModes" // Optional in GlobalSettings, required here.
- | "customModePrompts"
- | "customSupportPrompts"
- | "enhancementApiConfigId"
- > & {
- version: string
- clineMessages: ClineMessage[]
- currentTaskItem?: HistoryItem
- apiConfiguration?: ApiConfiguration
- uriScheme?: string
- shouldShowAnnouncement: boolean
- taskHistory: HistoryItem[]
- writeDelayMs: number
- requestDelaySeconds: number
- enableCheckpoints: boolean
- checkpointStorage: CheckpointStorage
- maxOpenTabsContext: number // Maximum number of VSCode open tabs to include in context (0-500)
- maxWorkspaceFiles: number // Maximum number of files to include in current working directory details (0-500)
- showRooIgnoredFiles: boolean // Whether to show .rooignore'd files in listings
- maxReadFileLine: number // Maximum number of lines to read from a file before truncating
- experiments: Record<ExperimentId, boolean> // Map of experiment IDs to their enabled state
- mcpEnabled: boolean
- enableMcpServerCreation: boolean
- mode: Mode
- customModes: ModeConfig[]
- toolRequirements?: Record<string, boolean> // Map of tool names to their requirements (e.g. {"apply_diff": true} if diffEnabled)
- cwd?: string // Current working directory
- telemetrySetting: TelemetrySetting
- telemetryKey?: string
- machineId?: string
- renderContext: "sidebar" | "editor"
- settingsImportedAt?: number
- }
- export type { ClineMessage, ClineAsk, ClineSay }
- export interface ClineSayTool {
- tool:
- | "editedExistingFile"
- | "appliedDiff"
- | "newFileCreated"
- | "readFile"
- | "fetchInstructions"
- | "listFilesTopLevel"
- | "listFilesRecursive"
- | "listCodeDefinitionNames"
- | "searchFiles"
- | "switchMode"
- | "newTask"
- | "finishTask"
- path?: string
- diff?: string
- content?: string
- regex?: string
- filePattern?: string
- mode?: string
- reason?: string
- isOutsideWorkspace?: boolean
- }
- // Must keep in sync with system prompt.
- export const browserActions = [
- "launch",
- "click",
- "hover",
- "type",
- "scroll_down",
- "scroll_up",
- "resize",
- "close",
- ] as const
- export type BrowserAction = (typeof browserActions)[number]
- export interface ClineSayBrowserAction {
- action: BrowserAction
- coordinate?: string
- size?: 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"
|