mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 04:11:10 -05:00
166 lines
3.7 KiB
TypeScript
166 lines
3.7 KiB
TypeScript
// 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"
|
|
| "glamaModels"
|
|
| "openRouterModels"
|
|
| "openAiModels"
|
|
| "mcpServers"
|
|
| "enhancedPrompt"
|
|
text?: string
|
|
action?:
|
|
| "chatButtonClicked"
|
|
| "mcpButtonClicked"
|
|
| "settingsButtonClicked"
|
|
| "historyButtonClicked"
|
|
| "didBecomeVisible"
|
|
invoke?: "sendMessage" | "primaryButtonClick" | "secondaryButtonClick"
|
|
state?: ExtensionState
|
|
images?: string[]
|
|
ollamaModels?: string[]
|
|
lmStudioModels?: string[]
|
|
filePaths?: string[]
|
|
partialMessage?: ClineMessage
|
|
glamaModels?: Record<string, ModelInfo>
|
|
openRouterModels?: Record<string, ModelInfo>
|
|
openAiModels?: string[]
|
|
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
|
|
browserViewportSize?: string
|
|
screenshotQuality?: number
|
|
fuzzyMatchThreshold?: number
|
|
preferredLanguage: string
|
|
writeDelayMs: number
|
|
terminalOutputLineLimit?: number
|
|
mcpEnabled: 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"
|