mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
Add IPC types to roo-code.d.ts (#3568)
This commit is contained in:
parent
836bbf75d0
commit
8def83192d
8 changed files with 2104 additions and 157 deletions
|
|
@ -1,9 +1,11 @@
|
|||
import fs from "fs/promises"
|
||||
import path from "path"
|
||||
import fs from "fs"
|
||||
|
||||
import { zodToTs, createTypeAlias, printNode } from "zod-to-ts"
|
||||
import { $ } from "execa"
|
||||
|
||||
import schemas from "../src/schemas"
|
||||
|
||||
const { typeDefinitions } = schemas
|
||||
|
||||
async function main() {
|
||||
|
|
@ -16,12 +18,16 @@ async function main() {
|
|||
types.push(`export type { ${identifier} }`)
|
||||
}
|
||||
|
||||
await fs.writeFile("src/exports/types.ts", types.join("\n\n"))
|
||||
fs.writeFileSync("src/exports/types.ts", types.join("\n\n"))
|
||||
|
||||
await $`npx tsup src/exports/interface.ts --dts-only -d out`
|
||||
await fs.copyFile('out/interface.d.ts', 'src/exports/roo-code.d.ts')
|
||||
fs.writeFileSync("out/interface.d.ts", "src/exports/roo-code.d.ts")
|
||||
|
||||
await $`npx prettier --write src/exports/types.ts src/exports/roo-code.d.ts`
|
||||
|
||||
if (fs.existsSync(path.join("..", "Roo-Code-Types"))) {
|
||||
fs.copyFileSync("src/exports/roo-code.d.ts", path.join("..", "Roo-Code-Types", "index.d.ts"))
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import {
|
|||
ProviderSettingsEntry,
|
||||
isSecretStateKey,
|
||||
} from "../schemas"
|
||||
import { IpcOrigin, IpcMessageType, TaskCommandName, TaskEvent } from "../schemas/ipc"
|
||||
import { IpcOrigin, IpcMessageType, TaskCommandName, TaskEvent } from "../schemas"
|
||||
|
||||
import { RooCodeAPI } from "./interface"
|
||||
import { IpcServer } from "./ipc"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
import { EventEmitter } from "events"
|
||||
import { Socket } from "node:net"
|
||||
|
||||
/**
|
||||
* Types
|
||||
*/
|
||||
|
||||
import type {
|
||||
GlobalSettings,
|
||||
|
|
@ -7,22 +12,36 @@ import type {
|
|||
ClineMessage,
|
||||
TokenUsage,
|
||||
RooCodeEvents,
|
||||
IpcMessage,
|
||||
TaskCommand,
|
||||
TaskEvent,
|
||||
} from "./types"
|
||||
|
||||
export type {
|
||||
RooCodeSettings,
|
||||
GlobalSettings,
|
||||
ProviderSettings,
|
||||
ProviderSettingsEntry,
|
||||
ClineMessage,
|
||||
TokenUsage,
|
||||
RooCodeEvents,
|
||||
IpcMessage,
|
||||
TaskCommand,
|
||||
TaskEvent,
|
||||
}
|
||||
|
||||
import { RooCodeEventName } from "../schemas"
|
||||
export type { RooCodeEventName }
|
||||
/**
|
||||
* Enums
|
||||
*/
|
||||
|
||||
type RooCodeSettings = GlobalSettings & ProviderSettings
|
||||
import { RooCodeEventName, IpcOrigin, IpcMessageType } from "../schemas"
|
||||
|
||||
export { RooCodeEventName, IpcOrigin, IpcMessageType }
|
||||
|
||||
/**
|
||||
* RooCodeAPI
|
||||
*/
|
||||
|
||||
export type RooCodeSettings = GlobalSettings & ProviderSettings
|
||||
|
||||
export interface RooCodeAPI extends EventEmitter<RooCodeEvents> {
|
||||
/**
|
||||
|
|
@ -169,3 +188,26 @@ export interface RooCodeAPI extends EventEmitter<RooCodeEvents> {
|
|||
*/
|
||||
setActiveProfile(name: string): Promise<string | undefined>
|
||||
}
|
||||
|
||||
/**
|
||||
* RooCodeIpcServer
|
||||
*/
|
||||
|
||||
export type IpcServerEvents = {
|
||||
[IpcMessageType.Connect]: [clientId: string]
|
||||
[IpcMessageType.Disconnect]: [clientId: string]
|
||||
[IpcMessageType.TaskCommand]: [clientId: string, data: TaskCommand]
|
||||
[IpcMessageType.TaskEvent]: [relayClientId: string | undefined, data: TaskEvent]
|
||||
}
|
||||
|
||||
export interface RooCodeIpcServer extends EventEmitter<IpcServerEvents> {
|
||||
listen(): void
|
||||
|
||||
broadcast(message: IpcMessage): void
|
||||
|
||||
send(client: string | Socket, message: IpcMessage): void
|
||||
|
||||
get socketPath(): string
|
||||
|
||||
get isListening(): boolean
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,20 +4,14 @@ import * as crypto from "node:crypto"
|
|||
|
||||
import ipc from "node-ipc"
|
||||
|
||||
import { IpcOrigin, IpcMessageType, IpcMessage, ipcMessageSchema, TaskCommand, TaskEvent } from "../schemas/ipc"
|
||||
import { IpcOrigin, IpcMessageType, type IpcMessage, ipcMessageSchema } from "../schemas"
|
||||
import type { IpcServerEvents, RooCodeIpcServer } from "./interface"
|
||||
|
||||
/**
|
||||
* IpcServer
|
||||
*/
|
||||
|
||||
type IpcServerEvents = {
|
||||
[IpcMessageType.Connect]: [clientId: string]
|
||||
[IpcMessageType.Disconnect]: [clientId: string]
|
||||
[IpcMessageType.TaskCommand]: [clientId: string, data: TaskCommand]
|
||||
[IpcMessageType.TaskEvent]: [relayClientId: string | undefined, data: TaskEvent]
|
||||
}
|
||||
|
||||
export class IpcServer extends EventEmitter<IpcServerEvents> {
|
||||
export class IpcServer extends EventEmitter<IpcServerEvents> implements RooCodeIpcServer {
|
||||
private readonly _socketPath: string
|
||||
private readonly _log: (...args: unknown[]) => void
|
||||
private readonly _clients: Map<string, Socket>
|
||||
|
|
|
|||
970
src/exports/roo-code.d.ts
vendored
970
src/exports/roo-code.d.ts
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -547,3 +547,938 @@ type RooCodeEvents = {
|
|||
}
|
||||
|
||||
export type { RooCodeEvents }
|
||||
|
||||
type IpcMessage =
|
||||
| {
|
||||
type: "Ack"
|
||||
origin: "server"
|
||||
data: {
|
||||
clientId: string
|
||||
pid: number
|
||||
ppid: number
|
||||
}
|
||||
}
|
||||
| {
|
||||
type: "TaskCommand"
|
||||
origin: "client"
|
||||
clientId: string
|
||||
data:
|
||||
| {
|
||||
commandName: "StartNewTask"
|
||||
data: {
|
||||
configuration: {
|
||||
apiProvider?:
|
||||
| (
|
||||
| "anthropic"
|
||||
| "glama"
|
||||
| "openrouter"
|
||||
| "bedrock"
|
||||
| "vertex"
|
||||
| "openai"
|
||||
| "ollama"
|
||||
| "vscode-lm"
|
||||
| "lmstudio"
|
||||
| "gemini"
|
||||
| "openai-native"
|
||||
| "mistral"
|
||||
| "deepseek"
|
||||
| "unbound"
|
||||
| "requesty"
|
||||
| "human-relay"
|
||||
| "fake-ai"
|
||||
| "xai"
|
||||
| "groq"
|
||||
| "chutes"
|
||||
| "litellm"
|
||||
)
|
||||
| undefined
|
||||
includeMaxTokens?: boolean | undefined
|
||||
reasoningEffort?: ("low" | "medium" | "high") | undefined
|
||||
diffEnabled?: boolean | undefined
|
||||
fuzzyMatchThreshold?: number | undefined
|
||||
modelTemperature?: (number | null) | undefined
|
||||
rateLimitSeconds?: number | undefined
|
||||
modelMaxTokens?: number | undefined
|
||||
modelMaxThinkingTokens?: number | undefined
|
||||
apiModelId?: string | undefined
|
||||
apiKey?: string | undefined
|
||||
anthropicBaseUrl?: string | undefined
|
||||
anthropicUseAuthToken?: boolean | undefined
|
||||
glamaModelId?: string | undefined
|
||||
glamaApiKey?: string | undefined
|
||||
openRouterApiKey?: string | undefined
|
||||
openRouterModelId?: string | undefined
|
||||
openRouterBaseUrl?: string | undefined
|
||||
openRouterSpecificProvider?: string | undefined
|
||||
openRouterUseMiddleOutTransform?: boolean | undefined
|
||||
awsAccessKey?: string | undefined
|
||||
awsSecretKey?: string | undefined
|
||||
awsSessionToken?: string | undefined
|
||||
awsRegion?: string | undefined
|
||||
awsUseCrossRegionInference?: boolean | undefined
|
||||
awsUsePromptCache?: boolean | undefined
|
||||
awsProfile?: string | undefined
|
||||
awsUseProfile?: boolean | undefined
|
||||
awsCustomArn?: string | undefined
|
||||
vertexKeyFile?: string | undefined
|
||||
vertexJsonCredentials?: string | undefined
|
||||
vertexProjectId?: string | undefined
|
||||
vertexRegion?: string | undefined
|
||||
openAiBaseUrl?: string | undefined
|
||||
openAiApiKey?: string | undefined
|
||||
openAiLegacyFormat?: boolean | undefined
|
||||
openAiR1FormatEnabled?: boolean | undefined
|
||||
openAiModelId?: string | undefined
|
||||
openAiCustomModelInfo?:
|
||||
| ({
|
||||
maxTokens?: (number | null) | undefined
|
||||
maxThinkingTokens?: (number | null) | undefined
|
||||
contextWindow: number
|
||||
supportsImages?: boolean | undefined
|
||||
supportsComputerUse?: boolean | undefined
|
||||
supportsPromptCache: boolean
|
||||
inputPrice?: number | undefined
|
||||
outputPrice?: number | undefined
|
||||
cacheWritesPrice?: number | undefined
|
||||
cacheReadsPrice?: number | undefined
|
||||
description?: string | undefined
|
||||
reasoningEffort?: ("low" | "medium" | "high") | undefined
|
||||
thinking?: boolean | undefined
|
||||
minTokensPerCachePoint?: number | undefined
|
||||
maxCachePoints?: number | undefined
|
||||
cachableFields?: string[] | undefined
|
||||
tiers?:
|
||||
| {
|
||||
contextWindow: number
|
||||
inputPrice?: number | undefined
|
||||
outputPrice?: number | undefined
|
||||
cacheWritesPrice?: number | undefined
|
||||
cacheReadsPrice?: number | undefined
|
||||
}[]
|
||||
| undefined
|
||||
} | null)
|
||||
| undefined
|
||||
openAiUseAzure?: boolean | undefined
|
||||
azureApiVersion?: string | undefined
|
||||
openAiStreamingEnabled?: boolean | undefined
|
||||
enableReasoningEffort?: boolean | undefined
|
||||
openAiHostHeader?: string | undefined
|
||||
openAiHeaders?:
|
||||
| {
|
||||
[x: string]: string
|
||||
}
|
||||
| undefined
|
||||
ollamaModelId?: string | undefined
|
||||
ollamaBaseUrl?: string | undefined
|
||||
vsCodeLmModelSelector?:
|
||||
| {
|
||||
vendor?: string | undefined
|
||||
family?: string | undefined
|
||||
version?: string | undefined
|
||||
id?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
lmStudioModelId?: string | undefined
|
||||
lmStudioBaseUrl?: string | undefined
|
||||
lmStudioDraftModelId?: string | undefined
|
||||
lmStudioSpeculativeDecodingEnabled?: boolean | undefined
|
||||
geminiApiKey?: string | undefined
|
||||
googleGeminiBaseUrl?: string | undefined
|
||||
openAiNativeApiKey?: string | undefined
|
||||
openAiNativeBaseUrl?: string | undefined
|
||||
mistralApiKey?: string | undefined
|
||||
mistralCodestralUrl?: string | undefined
|
||||
deepSeekBaseUrl?: string | undefined
|
||||
deepSeekApiKey?: string | undefined
|
||||
unboundApiKey?: string | undefined
|
||||
unboundModelId?: string | undefined
|
||||
requestyApiKey?: string | undefined
|
||||
requestyModelId?: string | undefined
|
||||
fakeAi?: unknown | undefined
|
||||
xaiApiKey?: string | undefined
|
||||
groqApiKey?: string | undefined
|
||||
chutesApiKey?: string | undefined
|
||||
litellmBaseUrl?: string | undefined
|
||||
litellmApiKey?: string | undefined
|
||||
litellmModelId?: string | undefined
|
||||
currentApiConfigName?: string | undefined
|
||||
listApiConfigMeta?:
|
||||
| {
|
||||
id: string
|
||||
name: string
|
||||
apiProvider?:
|
||||
| (
|
||||
| "anthropic"
|
||||
| "glama"
|
||||
| "openrouter"
|
||||
| "bedrock"
|
||||
| "vertex"
|
||||
| "openai"
|
||||
| "ollama"
|
||||
| "vscode-lm"
|
||||
| "lmstudio"
|
||||
| "gemini"
|
||||
| "openai-native"
|
||||
| "mistral"
|
||||
| "deepseek"
|
||||
| "unbound"
|
||||
| "requesty"
|
||||
| "human-relay"
|
||||
| "fake-ai"
|
||||
| "xai"
|
||||
| "groq"
|
||||
| "chutes"
|
||||
| "litellm"
|
||||
)
|
||||
| undefined
|
||||
}[]
|
||||
| undefined
|
||||
pinnedApiConfigs?:
|
||||
| {
|
||||
[x: string]: boolean
|
||||
}
|
||||
| undefined
|
||||
lastShownAnnouncementId?: string | undefined
|
||||
customInstructions?: string | undefined
|
||||
taskHistory?:
|
||||
| {
|
||||
id: string
|
||||
number: number
|
||||
ts: number
|
||||
task: string
|
||||
tokensIn: number
|
||||
tokensOut: number
|
||||
cacheWrites?: number | undefined
|
||||
cacheReads?: number | undefined
|
||||
totalCost: number
|
||||
size?: number | undefined
|
||||
workspace?: string | undefined
|
||||
}[]
|
||||
| undefined
|
||||
autoApprovalEnabled?: boolean | undefined
|
||||
alwaysAllowReadOnly?: boolean | undefined
|
||||
alwaysAllowReadOnlyOutsideWorkspace?: boolean | undefined
|
||||
alwaysAllowWrite?: boolean | undefined
|
||||
alwaysAllowWriteOutsideWorkspace?: boolean | undefined
|
||||
writeDelayMs?: number | undefined
|
||||
alwaysAllowBrowser?: boolean | undefined
|
||||
alwaysApproveResubmit?: boolean | undefined
|
||||
requestDelaySeconds?: number | undefined
|
||||
alwaysAllowMcp?: boolean | undefined
|
||||
alwaysAllowModeSwitch?: boolean | undefined
|
||||
alwaysAllowSubtasks?: boolean | undefined
|
||||
alwaysAllowExecute?: boolean | undefined
|
||||
allowedCommands?: string[] | undefined
|
||||
browserToolEnabled?: boolean | undefined
|
||||
browserViewportSize?: string | undefined
|
||||
screenshotQuality?: number | undefined
|
||||
remoteBrowserEnabled?: boolean | undefined
|
||||
remoteBrowserHost?: string | undefined
|
||||
cachedChromeHostUrl?: string | undefined
|
||||
enableCheckpoints?: boolean | undefined
|
||||
ttsEnabled?: boolean | undefined
|
||||
ttsSpeed?: number | undefined
|
||||
soundEnabled?: boolean | undefined
|
||||
soundVolume?: number | undefined
|
||||
maxOpenTabsContext?: number | undefined
|
||||
maxWorkspaceFiles?: number | undefined
|
||||
showRooIgnoredFiles?: boolean | undefined
|
||||
maxReadFileLine?: number | undefined
|
||||
terminalOutputLineLimit?: number | undefined
|
||||
terminalShellIntegrationTimeout?: number | undefined
|
||||
terminalShellIntegrationDisabled?: boolean | undefined
|
||||
terminalCommandDelay?: number | undefined
|
||||
terminalPowershellCounter?: boolean | undefined
|
||||
terminalZshClearEolMark?: boolean | undefined
|
||||
terminalZshOhMy?: boolean | undefined
|
||||
terminalZshP10k?: boolean | undefined
|
||||
terminalZdotdir?: boolean | undefined
|
||||
terminalCompressProgressBar?: boolean | undefined
|
||||
experiments?:
|
||||
| {
|
||||
powerSteering: boolean
|
||||
}
|
||||
| undefined
|
||||
language?:
|
||||
| (
|
||||
| "ca"
|
||||
| "de"
|
||||
| "en"
|
||||
| "es"
|
||||
| "fr"
|
||||
| "hi"
|
||||
| "it"
|
||||
| "ja"
|
||||
| "ko"
|
||||
| "nl"
|
||||
| "pl"
|
||||
| "pt-BR"
|
||||
| "ru"
|
||||
| "tr"
|
||||
| "vi"
|
||||
| "zh-CN"
|
||||
| "zh-TW"
|
||||
)
|
||||
| undefined
|
||||
telemetrySetting?: ("unset" | "enabled" | "disabled") | undefined
|
||||
mcpEnabled?: boolean | undefined
|
||||
enableMcpServerCreation?: boolean | undefined
|
||||
mode?: string | undefined
|
||||
modeApiConfigs?:
|
||||
| {
|
||||
[x: string]: string
|
||||
}
|
||||
| undefined
|
||||
customModes?:
|
||||
| {
|
||||
slug: string
|
||||
name: string
|
||||
roleDefinition: string
|
||||
customInstructions?: string | undefined
|
||||
groups: (
|
||||
| ("read" | "edit" | "browser" | "command" | "mcp" | "modes")
|
||||
| [
|
||||
"read" | "edit" | "browser" | "command" | "mcp" | "modes",
|
||||
{
|
||||
fileRegex?: string | undefined
|
||||
description?: string | undefined
|
||||
},
|
||||
]
|
||||
)[]
|
||||
source?: ("global" | "project") | undefined
|
||||
}[]
|
||||
| undefined
|
||||
customModePrompts?:
|
||||
| {
|
||||
[x: string]:
|
||||
| {
|
||||
roleDefinition?: string | undefined
|
||||
customInstructions?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
}
|
||||
| undefined
|
||||
customSupportPrompts?:
|
||||
| {
|
||||
[x: string]: string | undefined
|
||||
}
|
||||
| undefined
|
||||
enhancementApiConfigId?: string | undefined
|
||||
historyPreviewCollapsed?: boolean | undefined
|
||||
}
|
||||
text: string
|
||||
images?: string[] | undefined
|
||||
newTab?: boolean | undefined
|
||||
}
|
||||
}
|
||||
| {
|
||||
commandName: "CancelTask"
|
||||
data: string
|
||||
}
|
||||
| {
|
||||
commandName: "CloseTask"
|
||||
data: string
|
||||
}
|
||||
}
|
||||
| {
|
||||
type: "TaskEvent"
|
||||
origin: "server"
|
||||
relayClientId?: string | undefined
|
||||
data:
|
||||
| {
|
||||
eventName: "message"
|
||||
payload: [
|
||||
{
|
||||
taskId: string
|
||||
action: "created" | "updated"
|
||||
message: {
|
||||
ts: number
|
||||
type: "ask" | "say"
|
||||
ask?:
|
||||
| (
|
||||
| "followup"
|
||||
| "command"
|
||||
| "command_output"
|
||||
| "completion_result"
|
||||
| "tool"
|
||||
| "api_req_failed"
|
||||
| "resume_task"
|
||||
| "resume_completed_task"
|
||||
| "mistake_limit_reached"
|
||||
| "browser_action_launch"
|
||||
| "use_mcp_server"
|
||||
)
|
||||
| undefined
|
||||
say?:
|
||||
| (
|
||||
| "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"
|
||||
| "shell_integration_warning"
|
||||
| "browser_action"
|
||||
| "browser_action_result"
|
||||
| "mcp_server_request_started"
|
||||
| "mcp_server_response"
|
||||
| "subtask_result"
|
||||
| "checkpoint_saved"
|
||||
| "rooignore_error"
|
||||
| "diff_error"
|
||||
)
|
||||
| undefined
|
||||
text?: string | undefined
|
||||
images?: string[] | undefined
|
||||
partial?: boolean | undefined
|
||||
reasoning?: string | undefined
|
||||
conversationHistoryIndex?: number | undefined
|
||||
checkpoint?:
|
||||
| {
|
||||
[x: string]: unknown
|
||||
}
|
||||
| undefined
|
||||
progressStatus?:
|
||||
| {
|
||||
icon?: string | undefined
|
||||
text?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
| {
|
||||
eventName: "taskCreated"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskStarted"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskModeSwitched"
|
||||
payload: [string, string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskPaused"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskUnpaused"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskAskResponded"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskAborted"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskSpawned"
|
||||
payload: [string, string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskCompleted"
|
||||
payload: [
|
||||
string,
|
||||
{
|
||||
totalTokensIn: number
|
||||
totalTokensOut: number
|
||||
totalCacheWrites?: number | undefined
|
||||
totalCacheReads?: number | undefined
|
||||
totalCost: number
|
||||
contextTokens: number
|
||||
},
|
||||
{
|
||||
[x: string]: {
|
||||
attempts: number
|
||||
failures: number
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
| {
|
||||
eventName: "taskTokenUsageUpdated"
|
||||
payload: [
|
||||
string,
|
||||
{
|
||||
totalTokensIn: number
|
||||
totalTokensOut: number
|
||||
totalCacheWrites?: number | undefined
|
||||
totalCacheReads?: number | undefined
|
||||
totalCost: number
|
||||
contextTokens: number
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
export type { IpcMessage }
|
||||
|
||||
type TaskCommand =
|
||||
| {
|
||||
commandName: "StartNewTask"
|
||||
data: {
|
||||
configuration: {
|
||||
apiProvider?:
|
||||
| (
|
||||
| "anthropic"
|
||||
| "glama"
|
||||
| "openrouter"
|
||||
| "bedrock"
|
||||
| "vertex"
|
||||
| "openai"
|
||||
| "ollama"
|
||||
| "vscode-lm"
|
||||
| "lmstudio"
|
||||
| "gemini"
|
||||
| "openai-native"
|
||||
| "mistral"
|
||||
| "deepseek"
|
||||
| "unbound"
|
||||
| "requesty"
|
||||
| "human-relay"
|
||||
| "fake-ai"
|
||||
| "xai"
|
||||
| "groq"
|
||||
| "chutes"
|
||||
| "litellm"
|
||||
)
|
||||
| undefined
|
||||
includeMaxTokens?: boolean | undefined
|
||||
reasoningEffort?: ("low" | "medium" | "high") | undefined
|
||||
diffEnabled?: boolean | undefined
|
||||
fuzzyMatchThreshold?: number | undefined
|
||||
modelTemperature?: (number | null) | undefined
|
||||
rateLimitSeconds?: number | undefined
|
||||
modelMaxTokens?: number | undefined
|
||||
modelMaxThinkingTokens?: number | undefined
|
||||
apiModelId?: string | undefined
|
||||
apiKey?: string | undefined
|
||||
anthropicBaseUrl?: string | undefined
|
||||
anthropicUseAuthToken?: boolean | undefined
|
||||
glamaModelId?: string | undefined
|
||||
glamaApiKey?: string | undefined
|
||||
openRouterApiKey?: string | undefined
|
||||
openRouterModelId?: string | undefined
|
||||
openRouterBaseUrl?: string | undefined
|
||||
openRouterSpecificProvider?: string | undefined
|
||||
openRouterUseMiddleOutTransform?: boolean | undefined
|
||||
awsAccessKey?: string | undefined
|
||||
awsSecretKey?: string | undefined
|
||||
awsSessionToken?: string | undefined
|
||||
awsRegion?: string | undefined
|
||||
awsUseCrossRegionInference?: boolean | undefined
|
||||
awsUsePromptCache?: boolean | undefined
|
||||
awsProfile?: string | undefined
|
||||
awsUseProfile?: boolean | undefined
|
||||
awsCustomArn?: string | undefined
|
||||
vertexKeyFile?: string | undefined
|
||||
vertexJsonCredentials?: string | undefined
|
||||
vertexProjectId?: string | undefined
|
||||
vertexRegion?: string | undefined
|
||||
openAiBaseUrl?: string | undefined
|
||||
openAiApiKey?: string | undefined
|
||||
openAiLegacyFormat?: boolean | undefined
|
||||
openAiR1FormatEnabled?: boolean | undefined
|
||||
openAiModelId?: string | undefined
|
||||
openAiCustomModelInfo?:
|
||||
| ({
|
||||
maxTokens?: (number | null) | undefined
|
||||
maxThinkingTokens?: (number | null) | undefined
|
||||
contextWindow: number
|
||||
supportsImages?: boolean | undefined
|
||||
supportsComputerUse?: boolean | undefined
|
||||
supportsPromptCache: boolean
|
||||
inputPrice?: number | undefined
|
||||
outputPrice?: number | undefined
|
||||
cacheWritesPrice?: number | undefined
|
||||
cacheReadsPrice?: number | undefined
|
||||
description?: string | undefined
|
||||
reasoningEffort?: ("low" | "medium" | "high") | undefined
|
||||
thinking?: boolean | undefined
|
||||
minTokensPerCachePoint?: number | undefined
|
||||
maxCachePoints?: number | undefined
|
||||
cachableFields?: string[] | undefined
|
||||
tiers?:
|
||||
| {
|
||||
contextWindow: number
|
||||
inputPrice?: number | undefined
|
||||
outputPrice?: number | undefined
|
||||
cacheWritesPrice?: number | undefined
|
||||
cacheReadsPrice?: number | undefined
|
||||
}[]
|
||||
| undefined
|
||||
} | null)
|
||||
| undefined
|
||||
openAiUseAzure?: boolean | undefined
|
||||
azureApiVersion?: string | undefined
|
||||
openAiStreamingEnabled?: boolean | undefined
|
||||
enableReasoningEffort?: boolean | undefined
|
||||
openAiHostHeader?: string | undefined
|
||||
openAiHeaders?:
|
||||
| {
|
||||
[x: string]: string
|
||||
}
|
||||
| undefined
|
||||
ollamaModelId?: string | undefined
|
||||
ollamaBaseUrl?: string | undefined
|
||||
vsCodeLmModelSelector?:
|
||||
| {
|
||||
vendor?: string | undefined
|
||||
family?: string | undefined
|
||||
version?: string | undefined
|
||||
id?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
lmStudioModelId?: string | undefined
|
||||
lmStudioBaseUrl?: string | undefined
|
||||
lmStudioDraftModelId?: string | undefined
|
||||
lmStudioSpeculativeDecodingEnabled?: boolean | undefined
|
||||
geminiApiKey?: string | undefined
|
||||
googleGeminiBaseUrl?: string | undefined
|
||||
openAiNativeApiKey?: string | undefined
|
||||
openAiNativeBaseUrl?: string | undefined
|
||||
mistralApiKey?: string | undefined
|
||||
mistralCodestralUrl?: string | undefined
|
||||
deepSeekBaseUrl?: string | undefined
|
||||
deepSeekApiKey?: string | undefined
|
||||
unboundApiKey?: string | undefined
|
||||
unboundModelId?: string | undefined
|
||||
requestyApiKey?: string | undefined
|
||||
requestyModelId?: string | undefined
|
||||
fakeAi?: unknown | undefined
|
||||
xaiApiKey?: string | undefined
|
||||
groqApiKey?: string | undefined
|
||||
chutesApiKey?: string | undefined
|
||||
litellmBaseUrl?: string | undefined
|
||||
litellmApiKey?: string | undefined
|
||||
litellmModelId?: string | undefined
|
||||
currentApiConfigName?: string | undefined
|
||||
listApiConfigMeta?:
|
||||
| {
|
||||
id: string
|
||||
name: string
|
||||
apiProvider?:
|
||||
| (
|
||||
| "anthropic"
|
||||
| "glama"
|
||||
| "openrouter"
|
||||
| "bedrock"
|
||||
| "vertex"
|
||||
| "openai"
|
||||
| "ollama"
|
||||
| "vscode-lm"
|
||||
| "lmstudio"
|
||||
| "gemini"
|
||||
| "openai-native"
|
||||
| "mistral"
|
||||
| "deepseek"
|
||||
| "unbound"
|
||||
| "requesty"
|
||||
| "human-relay"
|
||||
| "fake-ai"
|
||||
| "xai"
|
||||
| "groq"
|
||||
| "chutes"
|
||||
| "litellm"
|
||||
)
|
||||
| undefined
|
||||
}[]
|
||||
| undefined
|
||||
pinnedApiConfigs?:
|
||||
| {
|
||||
[x: string]: boolean
|
||||
}
|
||||
| undefined
|
||||
lastShownAnnouncementId?: string | undefined
|
||||
customInstructions?: string | undefined
|
||||
taskHistory?:
|
||||
| {
|
||||
id: string
|
||||
number: number
|
||||
ts: number
|
||||
task: string
|
||||
tokensIn: number
|
||||
tokensOut: number
|
||||
cacheWrites?: number | undefined
|
||||
cacheReads?: number | undefined
|
||||
totalCost: number
|
||||
size?: number | undefined
|
||||
workspace?: string | undefined
|
||||
}[]
|
||||
| undefined
|
||||
autoApprovalEnabled?: boolean | undefined
|
||||
alwaysAllowReadOnly?: boolean | undefined
|
||||
alwaysAllowReadOnlyOutsideWorkspace?: boolean | undefined
|
||||
alwaysAllowWrite?: boolean | undefined
|
||||
alwaysAllowWriteOutsideWorkspace?: boolean | undefined
|
||||
writeDelayMs?: number | undefined
|
||||
alwaysAllowBrowser?: boolean | undefined
|
||||
alwaysApproveResubmit?: boolean | undefined
|
||||
requestDelaySeconds?: number | undefined
|
||||
alwaysAllowMcp?: boolean | undefined
|
||||
alwaysAllowModeSwitch?: boolean | undefined
|
||||
alwaysAllowSubtasks?: boolean | undefined
|
||||
alwaysAllowExecute?: boolean | undefined
|
||||
allowedCommands?: string[] | undefined
|
||||
browserToolEnabled?: boolean | undefined
|
||||
browserViewportSize?: string | undefined
|
||||
screenshotQuality?: number | undefined
|
||||
remoteBrowserEnabled?: boolean | undefined
|
||||
remoteBrowserHost?: string | undefined
|
||||
cachedChromeHostUrl?: string | undefined
|
||||
enableCheckpoints?: boolean | undefined
|
||||
ttsEnabled?: boolean | undefined
|
||||
ttsSpeed?: number | undefined
|
||||
soundEnabled?: boolean | undefined
|
||||
soundVolume?: number | undefined
|
||||
maxOpenTabsContext?: number | undefined
|
||||
maxWorkspaceFiles?: number | undefined
|
||||
showRooIgnoredFiles?: boolean | undefined
|
||||
maxReadFileLine?: number | undefined
|
||||
terminalOutputLineLimit?: number | undefined
|
||||
terminalShellIntegrationTimeout?: number | undefined
|
||||
terminalShellIntegrationDisabled?: boolean | undefined
|
||||
terminalCommandDelay?: number | undefined
|
||||
terminalPowershellCounter?: boolean | undefined
|
||||
terminalZshClearEolMark?: boolean | undefined
|
||||
terminalZshOhMy?: boolean | undefined
|
||||
terminalZshP10k?: boolean | undefined
|
||||
terminalZdotdir?: boolean | undefined
|
||||
terminalCompressProgressBar?: boolean | undefined
|
||||
experiments?:
|
||||
| {
|
||||
powerSteering: boolean
|
||||
}
|
||||
| undefined
|
||||
language?:
|
||||
| (
|
||||
| "ca"
|
||||
| "de"
|
||||
| "en"
|
||||
| "es"
|
||||
| "fr"
|
||||
| "hi"
|
||||
| "it"
|
||||
| "ja"
|
||||
| "ko"
|
||||
| "nl"
|
||||
| "pl"
|
||||
| "pt-BR"
|
||||
| "ru"
|
||||
| "tr"
|
||||
| "vi"
|
||||
| "zh-CN"
|
||||
| "zh-TW"
|
||||
)
|
||||
| undefined
|
||||
telemetrySetting?: ("unset" | "enabled" | "disabled") | undefined
|
||||
mcpEnabled?: boolean | undefined
|
||||
enableMcpServerCreation?: boolean | undefined
|
||||
mode?: string | undefined
|
||||
modeApiConfigs?:
|
||||
| {
|
||||
[x: string]: string
|
||||
}
|
||||
| undefined
|
||||
customModes?:
|
||||
| {
|
||||
slug: string
|
||||
name: string
|
||||
roleDefinition: string
|
||||
customInstructions?: string | undefined
|
||||
groups: (
|
||||
| ("read" | "edit" | "browser" | "command" | "mcp" | "modes")
|
||||
| [
|
||||
"read" | "edit" | "browser" | "command" | "mcp" | "modes",
|
||||
{
|
||||
fileRegex?: string | undefined
|
||||
description?: string | undefined
|
||||
},
|
||||
]
|
||||
)[]
|
||||
source?: ("global" | "project") | undefined
|
||||
}[]
|
||||
| undefined
|
||||
customModePrompts?:
|
||||
| {
|
||||
[x: string]:
|
||||
| {
|
||||
roleDefinition?: string | undefined
|
||||
customInstructions?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
}
|
||||
| undefined
|
||||
customSupportPrompts?:
|
||||
| {
|
||||
[x: string]: string | undefined
|
||||
}
|
||||
| undefined
|
||||
enhancementApiConfigId?: string | undefined
|
||||
historyPreviewCollapsed?: boolean | undefined
|
||||
}
|
||||
text: string
|
||||
images?: string[] | undefined
|
||||
newTab?: boolean | undefined
|
||||
}
|
||||
}
|
||||
| {
|
||||
commandName: "CancelTask"
|
||||
data: string
|
||||
}
|
||||
| {
|
||||
commandName: "CloseTask"
|
||||
data: string
|
||||
}
|
||||
|
||||
export type { TaskCommand }
|
||||
|
||||
type TaskEvent =
|
||||
| {
|
||||
eventName: "message"
|
||||
payload: [
|
||||
{
|
||||
taskId: string
|
||||
action: "created" | "updated"
|
||||
message: {
|
||||
ts: number
|
||||
type: "ask" | "say"
|
||||
ask?:
|
||||
| (
|
||||
| "followup"
|
||||
| "command"
|
||||
| "command_output"
|
||||
| "completion_result"
|
||||
| "tool"
|
||||
| "api_req_failed"
|
||||
| "resume_task"
|
||||
| "resume_completed_task"
|
||||
| "mistake_limit_reached"
|
||||
| "browser_action_launch"
|
||||
| "use_mcp_server"
|
||||
)
|
||||
| undefined
|
||||
say?:
|
||||
| (
|
||||
| "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"
|
||||
| "shell_integration_warning"
|
||||
| "browser_action"
|
||||
| "browser_action_result"
|
||||
| "mcp_server_request_started"
|
||||
| "mcp_server_response"
|
||||
| "subtask_result"
|
||||
| "checkpoint_saved"
|
||||
| "rooignore_error"
|
||||
| "diff_error"
|
||||
)
|
||||
| undefined
|
||||
text?: string | undefined
|
||||
images?: string[] | undefined
|
||||
partial?: boolean | undefined
|
||||
reasoning?: string | undefined
|
||||
conversationHistoryIndex?: number | undefined
|
||||
checkpoint?:
|
||||
| {
|
||||
[x: string]: unknown
|
||||
}
|
||||
| undefined
|
||||
progressStatus?:
|
||||
| {
|
||||
icon?: string | undefined
|
||||
text?: string | undefined
|
||||
}
|
||||
| undefined
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
| {
|
||||
eventName: "taskCreated"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskStarted"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskModeSwitched"
|
||||
payload: [string, string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskPaused"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskUnpaused"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskAskResponded"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskAborted"
|
||||
payload: [string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskSpawned"
|
||||
payload: [string, string]
|
||||
}
|
||||
| {
|
||||
eventName: "taskCompleted"
|
||||
payload: [
|
||||
string,
|
||||
{
|
||||
totalTokensIn: number
|
||||
totalTokensOut: number
|
||||
totalCacheWrites?: number | undefined
|
||||
totalCacheReads?: number | undefined
|
||||
totalCost: number
|
||||
contextTokens: number
|
||||
},
|
||||
{
|
||||
[x: string]: {
|
||||
attempts: number
|
||||
failures: number
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
| {
|
||||
eventName: "taskTokenUsageUpdated"
|
||||
payload: [
|
||||
string,
|
||||
{
|
||||
totalTokensIn: number
|
||||
totalTokensOut: number
|
||||
totalCacheWrites?: number | undefined
|
||||
totalCacheReads?: number | undefined
|
||||
totalCost: number
|
||||
contextTokens: number
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
export type { TaskEvent }
|
||||
|
|
|
|||
|
|
@ -1062,6 +1062,142 @@ export const rooCodeEventsSchema = z.object({
|
|||
|
||||
export type RooCodeEvents = z.infer<typeof rooCodeEventsSchema>
|
||||
|
||||
/**
|
||||
* Ack
|
||||
*/
|
||||
|
||||
export const ackSchema = z.object({
|
||||
clientId: z.string(),
|
||||
pid: z.number(),
|
||||
ppid: z.number(),
|
||||
})
|
||||
|
||||
export type Ack = z.infer<typeof ackSchema>
|
||||
|
||||
/**
|
||||
* TaskCommand
|
||||
*/
|
||||
|
||||
export enum TaskCommandName {
|
||||
StartNewTask = "StartNewTask",
|
||||
CancelTask = "CancelTask",
|
||||
CloseTask = "CloseTask",
|
||||
}
|
||||
|
||||
export const taskCommandSchema = z.discriminatedUnion("commandName", [
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.StartNewTask),
|
||||
data: z.object({
|
||||
configuration: rooCodeSettingsSchema,
|
||||
text: z.string(),
|
||||
images: z.array(z.string()).optional(),
|
||||
newTab: z.boolean().optional(),
|
||||
}),
|
||||
}),
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.CancelTask),
|
||||
data: z.string(),
|
||||
}),
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.CloseTask),
|
||||
data: z.string(),
|
||||
}),
|
||||
])
|
||||
|
||||
export type TaskCommand = z.infer<typeof taskCommandSchema>
|
||||
|
||||
/**
|
||||
* TaskEvent
|
||||
*/
|
||||
|
||||
export const taskEventSchema = z.discriminatedUnion("eventName", [
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.Message),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.Message],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskCreated),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCreated],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskStarted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskStarted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskModeSwitched),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskModeSwitched],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskPaused),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskPaused],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskUnpaused),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnpaused],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskAskResponded),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAskResponded],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskAborted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAborted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskSpawned),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskSpawned],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskCompleted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCompleted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskTokenUsageUpdated),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskTokenUsageUpdated],
|
||||
}),
|
||||
])
|
||||
|
||||
export type TaskEvent = z.infer<typeof taskEventSchema>
|
||||
|
||||
/**
|
||||
* IpcMessage
|
||||
*/
|
||||
|
||||
export enum IpcMessageType {
|
||||
Connect = "Connect",
|
||||
Disconnect = "Disconnect",
|
||||
Ack = "Ack",
|
||||
TaskCommand = "TaskCommand",
|
||||
TaskEvent = "TaskEvent",
|
||||
}
|
||||
|
||||
export enum IpcOrigin {
|
||||
Client = "client",
|
||||
Server = "server",
|
||||
}
|
||||
|
||||
export const ipcMessageSchema = z.discriminatedUnion("type", [
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.Ack),
|
||||
origin: z.literal(IpcOrigin.Server),
|
||||
data: ackSchema,
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskCommand),
|
||||
origin: z.literal(IpcOrigin.Client),
|
||||
clientId: z.string(),
|
||||
data: taskCommandSchema,
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskEvent),
|
||||
origin: z.literal(IpcOrigin.Server),
|
||||
relayClientId: z.string().optional(),
|
||||
data: taskEventSchema,
|
||||
}),
|
||||
])
|
||||
|
||||
export type IpcMessage = z.infer<typeof ipcMessageSchema>
|
||||
|
||||
/**
|
||||
* TypeDefinition
|
||||
*/
|
||||
|
|
@ -1078,7 +1214,10 @@ export const typeDefinitions: TypeDefinition[] = [
|
|||
{ schema: clineMessageSchema, identifier: "ClineMessage" },
|
||||
{ schema: tokenUsageSchema, identifier: "TokenUsage" },
|
||||
{ schema: rooCodeEventsSchema, identifier: "RooCodeEvents" },
|
||||
{ schema: ipcMessageSchema, identifier: "IpcMessage" },
|
||||
{ schema: taskCommandSchema, identifier: "TaskCommand" },
|
||||
{ schema: taskEventSchema, identifier: "TaskEvent" },
|
||||
]
|
||||
|
||||
// Also export as default for ESM compatibility
|
||||
// Also export as default for ESM compatibility.
|
||||
export default { typeDefinitions }
|
||||
|
|
|
|||
|
|
@ -1,139 +0,0 @@
|
|||
import { z } from "zod"
|
||||
|
||||
import { RooCodeEventName, rooCodeEventsSchema, rooCodeSettingsSchema } from "./index"
|
||||
|
||||
/**
|
||||
* Ack
|
||||
*/
|
||||
|
||||
export const ackSchema = z.object({
|
||||
clientId: z.string(),
|
||||
pid: z.number(),
|
||||
ppid: z.number(),
|
||||
})
|
||||
|
||||
export type Ack = z.infer<typeof ackSchema>
|
||||
|
||||
/**
|
||||
* TaskCommand
|
||||
*/
|
||||
|
||||
export enum TaskCommandName {
|
||||
StartNewTask = "StartNewTask",
|
||||
CancelTask = "CancelTask",
|
||||
CloseTask = "CloseTask",
|
||||
}
|
||||
|
||||
export const taskCommandSchema = z.discriminatedUnion("commandName", [
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.StartNewTask),
|
||||
data: z.object({
|
||||
configuration: rooCodeSettingsSchema,
|
||||
text: z.string(),
|
||||
images: z.array(z.string()).optional(),
|
||||
newTab: z.boolean().optional(),
|
||||
}),
|
||||
}),
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.CancelTask),
|
||||
data: z.string(),
|
||||
}),
|
||||
z.object({
|
||||
commandName: z.literal(TaskCommandName.CloseTask),
|
||||
data: z.string(),
|
||||
}),
|
||||
])
|
||||
|
||||
export type TaskCommand = z.infer<typeof taskCommandSchema>
|
||||
|
||||
/**
|
||||
* TaskEvent
|
||||
*/
|
||||
|
||||
export const taskEventSchema = z.discriminatedUnion("eventName", [
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.Message),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.Message],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskCreated),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCreated],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskStarted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskStarted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskModeSwitched),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskModeSwitched],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskPaused),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskPaused],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskUnpaused),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskUnpaused],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskAskResponded),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAskResponded],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskAborted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAborted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskSpawned),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskSpawned],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskCompleted),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskCompleted],
|
||||
}),
|
||||
z.object({
|
||||
eventName: z.literal(RooCodeEventName.TaskTokenUsageUpdated),
|
||||
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskTokenUsageUpdated],
|
||||
}),
|
||||
])
|
||||
|
||||
export type TaskEvent = z.infer<typeof taskEventSchema>
|
||||
|
||||
/**
|
||||
* IpcMessage
|
||||
*/
|
||||
|
||||
export enum IpcMessageType {
|
||||
Connect = "Connect",
|
||||
Disconnect = "Disconnect",
|
||||
Ack = "Ack",
|
||||
TaskCommand = "TaskCommand",
|
||||
TaskEvent = "TaskEvent",
|
||||
}
|
||||
|
||||
export enum IpcOrigin {
|
||||
Client = "client",
|
||||
Server = "server",
|
||||
}
|
||||
|
||||
export const ipcMessageSchema = z.discriminatedUnion("type", [
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.Ack),
|
||||
origin: z.literal(IpcOrigin.Server),
|
||||
data: ackSchema,
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskCommand),
|
||||
origin: z.literal(IpcOrigin.Client),
|
||||
clientId: z.string(),
|
||||
data: taskCommandSchema,
|
||||
}),
|
||||
z.object({
|
||||
type: z.literal(IpcMessageType.TaskEvent),
|
||||
origin: z.literal(IpcOrigin.Server),
|
||||
relayClientId: z.string().optional(),
|
||||
data: taskEventSchema,
|
||||
}),
|
||||
])
|
||||
|
||||
export type IpcMessage = z.infer<typeof ipcMessageSchema>
|
||||
Loading…
Add table
Reference in a new issue