This commit is contained in:
Cline Evaluation
2025-05-22 13:33:08 -07:00
parent d4eeaade87
commit 2ee3b82508
38 changed files with 7475 additions and 7461 deletions
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleAccountServiceStreamingRequest = accountService.handleStreami
export const isStreamingMethod = accountService.isStreamingMethod
// Register all account methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -11,4 +11,4 @@ export function registerAllMethods(): void {
// Register each method with the registry
registerMethod("accountLoginClicked", accountLoginClicked)
registerMethod("accountLogoutClicked", accountLogoutClicked)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleBrowserServiceStreamingRequest = browserService.handleStreami
export const isStreamingMethod = browserService.isStreamingMethod
// Register all browser methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -19,4 +19,4 @@ export function registerAllMethods(): void {
registerMethod("relaunchChromeDebugMode", relaunchChromeDebugMode)
registerMethod("testBrowserConnection", testBrowserConnection)
registerMethod("updateBrowserSettings", updateBrowserSettings)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleCheckpointsServiceStreamingRequest = checkpointsService.handl
export const isStreamingMethod = checkpointsService.isStreamingMethod
// Register all checkpoints methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -11,4 +11,4 @@ export function registerAllMethods(): void {
// Register each method with the registry
registerMethod("checkpointDiff", checkpointDiff)
registerMethod("checkpointRestore", checkpointRestore)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleFileServiceStreamingRequest = fileService.handleStreamingRequ
export const isStreamingMethod = fileService.isStreamingMethod
// Register all file methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -35,4 +35,4 @@ export function registerAllMethods(): void {
registerMethod("toggleClineRule", toggleClineRule)
registerMethod("toggleCursorRule", toggleCursorRule)
registerMethod("toggleWindsurfRule", toggleWindsurfRule)
}
}
+47 -53
View File
@@ -19,62 +19,56 @@ import { handleUiServiceRequest, handleUiServiceStreamingRequest } from "./ui/in
* Configuration for a service handler
*/
export interface ServiceHandlerConfig {
requestHandler: (controller: Controller, method: string, message: any) => Promise<any>
streamingHandler: (
controller: Controller,
method: string,
message: any,
responseStream: StreamingResponseHandler,
requestId?: string,
) => Promise<void>
requestHandler: (controller: Controller, method: string, message: any) => Promise<any>;
streamingHandler: (controller: Controller, method: string, message: any, responseStream: StreamingResponseHandler, requestId?: string) => Promise<void>;
}
/**
* Map of service names to their handler configurations
*/
export const serviceHandlers: Record<string, ServiceHandlerConfig> = {
"cline.AccountService": {
requestHandler: handleAccountServiceRequest,
streamingHandler: handleAccountServiceStreamingRequest,
},
"cline.BrowserService": {
requestHandler: handleBrowserServiceRequest,
streamingHandler: handleBrowserServiceStreamingRequest,
},
"cline.CheckpointsService": {
requestHandler: handleCheckpointsServiceRequest,
streamingHandler: handleCheckpointsServiceStreamingRequest,
},
"cline.FileService": {
requestHandler: handleFileServiceRequest,
streamingHandler: handleFileServiceStreamingRequest,
},
"cline.McpService": {
requestHandler: handleMcpServiceRequest,
streamingHandler: handleMcpServiceStreamingRequest,
},
"cline.StateService": {
requestHandler: handleStateServiceRequest,
streamingHandler: handleStateServiceStreamingRequest,
},
"cline.TaskService": {
requestHandler: handleTaskServiceRequest,
streamingHandler: handleTaskServiceStreamingRequest,
},
"cline.WebService": {
requestHandler: handleWebServiceRequest,
streamingHandler: handleWebServiceStreamingRequest,
},
"cline.ModelsService": {
requestHandler: handleModelsServiceRequest,
streamingHandler: handleModelsServiceStreamingRequest,
},
"cline.SlashService": {
requestHandler: handleSlashServiceRequest,
streamingHandler: handleSlashServiceStreamingRequest,
},
"cline.UiService": {
requestHandler: handleUiServiceRequest,
streamingHandler: handleUiServiceStreamingRequest,
},
}
"cline.AccountService": {
requestHandler: handleAccountServiceRequest,
streamingHandler: handleAccountServiceStreamingRequest
},
"cline.BrowserService": {
requestHandler: handleBrowserServiceRequest,
streamingHandler: handleBrowserServiceStreamingRequest
},
"cline.CheckpointsService": {
requestHandler: handleCheckpointsServiceRequest,
streamingHandler: handleCheckpointsServiceStreamingRequest
},
"cline.FileService": {
requestHandler: handleFileServiceRequest,
streamingHandler: handleFileServiceStreamingRequest
},
"cline.McpService": {
requestHandler: handleMcpServiceRequest,
streamingHandler: handleMcpServiceStreamingRequest
},
"cline.StateService": {
requestHandler: handleStateServiceRequest,
streamingHandler: handleStateServiceStreamingRequest
},
"cline.TaskService": {
requestHandler: handleTaskServiceRequest,
streamingHandler: handleTaskServiceStreamingRequest
},
"cline.WebService": {
requestHandler: handleWebServiceRequest,
streamingHandler: handleWebServiceStreamingRequest
},
"cline.ModelsService": {
requestHandler: handleModelsServiceRequest,
streamingHandler: handleModelsServiceStreamingRequest
},
"cline.SlashService": {
requestHandler: handleSlashServiceRequest,
streamingHandler: handleSlashServiceStreamingRequest
},
"cline.UiService": {
requestHandler: handleUiServiceRequest,
streamingHandler: handleUiServiceStreamingRequest
}
};
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleMcpServiceStreamingRequest = mcpService.handleStreamingReques
export const isStreamingMethod = mcpService.isStreamingMethod
// Register all mcp methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -23,4 +23,4 @@ export function registerAllMethods(): void {
registerMethod("toggleMcpServer", toggleMcpServer)
registerMethod("toggleToolAutoApprove", toggleToolAutoApprove)
registerMethod("updateMcpTimeout", updateMcpTimeout)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleModelsServiceStreamingRequest = modelsService.handleStreaming
export const isStreamingMethod = modelsService.isStreamingMethod
// Register all models methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -19,4 +19,4 @@ export function registerAllMethods(): void {
registerMethod("refreshOpenAiModels", refreshOpenAiModels)
registerMethod("refreshOpenRouterModels", refreshOpenRouterModels)
registerMethod("refreshRequestyModels", refreshRequestyModels)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleSlashServiceStreamingRequest = slashService.handleStreamingRe
export const isStreamingMethod = slashService.isStreamingMethod
// Register all slash methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -11,4 +11,4 @@ export function registerAllMethods(): void {
// Register each method with the registry
registerMethod("condense", condense)
registerMethod("reportBug", reportBug)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleStateServiceStreamingRequest = stateService.handleStreamingRe
export const isStreamingMethod = stateService.isStreamingMethod
// Register all state methods
registerAllMethods()
registerAllMethods()
+4 -2
View File
@@ -12,7 +12,9 @@ import { updateAutoApprovalSettings } from "./updateAutoApprovalSettings"
import { updateTerminalConnectionTimeout } from "./updateTerminalConnectionTimeout"
// Streaming methods for this service
export const streamingMethods = ["subscribeToState"]
export const streamingMethods = [
"subscribeToState"
]
// Register all state service methods
export function registerAllMethods(): void {
@@ -24,4 +26,4 @@ export function registerAllMethods(): void {
registerMethod("togglePlanActMode", togglePlanActMode)
registerMethod("updateAutoApprovalSettings", updateAutoApprovalSettings)
registerMethod("updateTerminalConnectionTimeout", updateTerminalConnectionTimeout)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleTaskServiceStreamingRequest = taskService.handleStreamingRequ
export const isStreamingMethod = taskService.isStreamingMethod
// Register all task methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -31,4 +31,4 @@ export function registerAllMethods(): void {
registerMethod("taskCompletionViewChanges", taskCompletionViewChanges)
registerMethod("taskFeedback", taskFeedback)
registerMethod("toggleTaskFavorite", toggleTaskFavorite)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleUiServiceStreamingRequest = uiService.handleStreamingRequest
export const isStreamingMethod = uiService.isStreamingMethod
// Register all ui methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -11,4 +11,4 @@ export function registerAllMethods(): void {
// Register each method with the registry
registerMethod("onDidShowAnnouncement", onDidShowAnnouncement)
registerMethod("scrollToSettings", scrollToSettings)
}
}
+1 -1
View File
@@ -19,4 +19,4 @@ export const handleWebServiceStreamingRequest = webService.handleStreamingReques
export const isStreamingMethod = webService.isStreamingMethod
// Register all web methods
registerAllMethods()
registerAllMethods()
+1 -1
View File
@@ -11,4 +11,4 @@ export function registerAllMethods(): void {
// Register each method with the registry
registerMethod("checkIsImageUrl", checkIsImageUrl)
registerMethod("fetchOpenGraphData", fetchOpenGraphData)
}
}
+33 -33
View File
@@ -5,40 +5,40 @@
// source: account.proto
/* eslint-disable */
import { Empty, EmptyRequest, String } from "./common"
import { Empty, EmptyRequest, String } from "./common";
export const protobufPackage = "cline"
export const protobufPackage = "cline";
/** Service for account-related operations */
export type AccountServiceDefinition = typeof AccountServiceDefinition
export type AccountServiceDefinition = typeof AccountServiceDefinition;
export const AccountServiceDefinition = {
name: "AccountService",
fullName: "cline.AccountService",
methods: {
/**
* Handles the user clicking the login link in the UI.
* Generates a secure nonce for state validation, stores it in secrets,
* and opens the authentication URL in the external browser.
*/
accountLoginClicked: {
name: "accountLoginClicked",
requestType: EmptyRequest,
requestStream: false,
responseType: String,
responseStream: false,
options: {},
},
/**
* Handles the user clicking the logout button in the UI.
* Clears API keys and user state.
*/
accountLogoutClicked: {
name: "accountLogoutClicked",
requestType: EmptyRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const
name: "AccountService",
fullName: "cline.AccountService",
methods: {
/**
* Handles the user clicking the login link in the UI.
* Generates a secure nonce for state validation, stores it in secrets,
* and opens the authentication URL in the external browser.
*/
accountLoginClicked: {
name: "accountLoginClicked",
requestType: EmptyRequest,
requestStream: false,
responseType: String,
responseStream: false,
options: {},
},
/**
* Handles the user clicking the logout button in the UI.
* Clears API keys and user state.
*/
accountLogoutClicked: {
name: "accountLogoutClicked",
requestType: EmptyRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const;
File diff suppressed because it is too large Load Diff
+150 -154
View File
@@ -5,188 +5,184 @@
// source: checkpoints.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"
import { Empty, Int64Request, Metadata } from "./common"
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { Empty, Int64Request, Metadata } from "./common";
export const protobufPackage = "cline"
export const protobufPackage = "cline";
export interface CheckpointRestoreRequest {
metadata?: Metadata | undefined
number: number
restoreType: string
offset?: number | undefined
metadata?: Metadata | undefined;
number: number;
restoreType: string;
offset?: number | undefined;
}
function createBaseCheckpointRestoreRequest(): CheckpointRestoreRequest {
return { metadata: undefined, number: 0, restoreType: "", offset: undefined }
return { metadata: undefined, number: 0, restoreType: "", offset: undefined };
}
export const CheckpointRestoreRequest: MessageFns<CheckpointRestoreRequest> = {
encode(message: CheckpointRestoreRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.metadata !== undefined) {
Metadata.encode(message.metadata, writer.uint32(10).fork()).join()
}
if (message.number !== 0) {
writer.uint32(16).int64(message.number)
}
if (message.restoreType !== "") {
writer.uint32(26).string(message.restoreType)
}
if (message.offset !== undefined) {
writer.uint32(32).int64(message.offset)
}
return writer
},
encode(message: CheckpointRestoreRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.metadata !== undefined) {
Metadata.encode(message.metadata, writer.uint32(10).fork()).join();
}
if (message.number !== 0) {
writer.uint32(16).int64(message.number);
}
if (message.restoreType !== "") {
writer.uint32(26).string(message.restoreType);
}
if (message.offset !== undefined) {
writer.uint32(32).int64(message.offset);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): CheckpointRestoreRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input)
let end = length === undefined ? reader.len : reader.pos + length
const message = createBaseCheckpointRestoreRequest()
while (reader.pos < end) {
const tag = reader.uint32()
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break
}
decode(input: BinaryReader | Uint8Array, length?: number): CheckpointRestoreRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCheckpointRestoreRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.metadata = Metadata.decode(reader, reader.uint32())
continue
}
case 2: {
if (tag !== 16) {
break
}
message.metadata = Metadata.decode(reader, reader.uint32());
continue;
}
case 2: {
if (tag !== 16) {
break;
}
message.number = longToNumber(reader.int64())
continue
}
case 3: {
if (tag !== 26) {
break
}
message.number = longToNumber(reader.int64());
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.restoreType = reader.string()
continue
}
case 4: {
if (tag !== 32) {
break
}
message.restoreType = reader.string();
continue;
}
case 4: {
if (tag !== 32) {
break;
}
message.offset = longToNumber(reader.int64())
continue
}
}
if ((tag & 7) === 4 || tag === 0) {
break
}
reader.skip(tag & 7)
}
return message
},
message.offset = longToNumber(reader.int64());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): CheckpointRestoreRequest {
return {
metadata: isSet(object.metadata) ? Metadata.fromJSON(object.metadata) : undefined,
number: isSet(object.number) ? globalThis.Number(object.number) : 0,
restoreType: isSet(object.restoreType) ? globalThis.String(object.restoreType) : "",
offset: isSet(object.offset) ? globalThis.Number(object.offset) : undefined,
}
},
fromJSON(object: any): CheckpointRestoreRequest {
return {
metadata: isSet(object.metadata) ? Metadata.fromJSON(object.metadata) : undefined,
number: isSet(object.number) ? globalThis.Number(object.number) : 0,
restoreType: isSet(object.restoreType) ? globalThis.String(object.restoreType) : "",
offset: isSet(object.offset) ? globalThis.Number(object.offset) : undefined,
};
},
toJSON(message: CheckpointRestoreRequest): unknown {
const obj: any = {}
if (message.metadata !== undefined) {
obj.metadata = Metadata.toJSON(message.metadata)
}
if (message.number !== 0) {
obj.number = Math.round(message.number)
}
if (message.restoreType !== "") {
obj.restoreType = message.restoreType
}
if (message.offset !== undefined) {
obj.offset = Math.round(message.offset)
}
return obj
},
toJSON(message: CheckpointRestoreRequest): unknown {
const obj: any = {};
if (message.metadata !== undefined) {
obj.metadata = Metadata.toJSON(message.metadata);
}
if (message.number !== 0) {
obj.number = Math.round(message.number);
}
if (message.restoreType !== "") {
obj.restoreType = message.restoreType;
}
if (message.offset !== undefined) {
obj.offset = Math.round(message.offset);
}
return obj;
},
create<I extends Exact<DeepPartial<CheckpointRestoreRequest>, I>>(base?: I): CheckpointRestoreRequest {
return CheckpointRestoreRequest.fromPartial(base ?? ({} as any))
},
fromPartial<I extends Exact<DeepPartial<CheckpointRestoreRequest>, I>>(object: I): CheckpointRestoreRequest {
const message = createBaseCheckpointRestoreRequest()
message.metadata =
object.metadata !== undefined && object.metadata !== null ? Metadata.fromPartial(object.metadata) : undefined
message.number = object.number ?? 0
message.restoreType = object.restoreType ?? ""
message.offset = object.offset ?? undefined
return message
},
}
create<I extends Exact<DeepPartial<CheckpointRestoreRequest>, I>>(base?: I): CheckpointRestoreRequest {
return CheckpointRestoreRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<CheckpointRestoreRequest>, I>>(object: I): CheckpointRestoreRequest {
const message = createBaseCheckpointRestoreRequest();
message.metadata = (object.metadata !== undefined && object.metadata !== null)
? Metadata.fromPartial(object.metadata)
: undefined;
message.number = object.number ?? 0;
message.restoreType = object.restoreType ?? "";
message.offset = object.offset ?? undefined;
return message;
},
};
export type CheckpointsServiceDefinition = typeof CheckpointsServiceDefinition
export type CheckpointsServiceDefinition = typeof CheckpointsServiceDefinition;
export const CheckpointsServiceDefinition = {
name: "CheckpointsService",
fullName: "cline.CheckpointsService",
methods: {
checkpointDiff: {
name: "checkpointDiff",
requestType: Int64Request,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
checkpointRestore: {
name: "checkpointRestore",
requestType: CheckpointRestoreRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const
name: "CheckpointsService",
fullName: "cline.CheckpointsService",
methods: {
checkpointDiff: {
name: "checkpointDiff",
requestType: Int64Request,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
checkpointRestore: {
name: "checkpointRestore",
requestType: CheckpointRestoreRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin
? T
: T extends globalThis.Array<infer U>
? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U>
? ReadonlyArray<DeepPartial<U>>
: T extends {}
? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>
export type DeepPartial<T> = T extends Builtin ? T
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never
export type Exact<P, I extends P> = P extends Builtin
? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never }
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function longToNumber(int64: { toString(): string }): number {
const num = globalThis.Number(int64.toString())
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER")
}
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER")
}
return num
const num = globalThis.Number(int64.toString());
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
}
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
}
return num;
}
function isSet(value: any): boolean {
return value !== null && value !== undefined
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter
decode(input: BinaryReader | Uint8Array, length?: number): T
fromJSON(object: any): T
toJSON(message: T): unknown
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
+745 -742
View File
File diff suppressed because it is too large Load Diff
+1555 -1537
View File
File diff suppressed because it is too large Load Diff
+1421 -1418
View File
File diff suppressed because it is too large Load Diff
+652 -653
View File
File diff suppressed because it is too large Load Diff
+25 -25
View File
@@ -5,32 +5,32 @@
// source: slash.proto
/* eslint-disable */
import { Empty, StringRequest } from "./common"
import { Empty, StringRequest } from "./common";
export const protobufPackage = "cline"
export const protobufPackage = "cline";
/** SlashService provides methods for managing slash */
export type SlashServiceDefinition = typeof SlashServiceDefinition
export type SlashServiceDefinition = typeof SlashServiceDefinition;
export const SlashServiceDefinition = {
name: "SlashService",
fullName: "cline.SlashService",
methods: {
/** Sends button click message */
reportBug: {
name: "reportBug",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
condense: {
name: "condense",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const
name: "SlashService",
fullName: "cline.SlashService",
methods: {
/** Sends button click message */
reportBug: {
name: "reportBug",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
condense: {
name: "condense",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
},
} as const;
+732 -734
View File
File diff suppressed because it is too large Load Diff
+1079 -1076
View File
File diff suppressed because it is too large Load Diff
+26 -26
View File
@@ -5,33 +5,33 @@
// source: ui.proto
/* eslint-disable */
import { Boolean, Empty, EmptyRequest, StringRequest } from "./common"
import { Boolean, Empty, EmptyRequest, StringRequest } from "./common";
export const protobufPackage = "cline"
export const protobufPackage = "cline";
/** UiService provides methods for managing UI interactions */
export type UiServiceDefinition = typeof UiServiceDefinition
export type UiServiceDefinition = typeof UiServiceDefinition;
export const UiServiceDefinition = {
name: "UiService",
fullName: "cline.UiService",
methods: {
/** Scrolls to a specific settings section in the settings view */
scrollToSettings: {
name: "scrollToSettings",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
/** Marks the current announcement as shown and returns whether an announcement should still be shown */
onDidShowAnnouncement: {
name: "onDidShowAnnouncement",
requestType: EmptyRequest,
requestStream: false,
responseType: Boolean,
responseStream: false,
options: {},
},
},
} as const
name: "UiService",
fullName: "cline.UiService",
methods: {
/** Scrolls to a specific settings section in the settings view */
scrollToSettings: {
name: "scrollToSettings",
requestType: StringRequest,
requestStream: false,
responseType: Empty,
responseStream: false,
options: {},
},
/** Marks the current announcement as shown and returns whether an announcement should still be shown */
onDidShowAnnouncement: {
name: "onDidShowAnnouncement",
requestType: EmptyRequest,
requestStream: false,
responseType: Boolean,
responseStream: false,
options: {},
},
},
} as const;
+239 -244
View File
@@ -5,291 +5,286 @@
// source: web.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"
import { StringRequest } from "./common"
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { StringRequest } from "./common";
export const protobufPackage = "cline"
export const protobufPackage = "cline";
export interface IsImageUrl {
isImage: boolean
url: string
isImage: boolean;
url: string;
}
export interface OpenGraphData {
title: string
description: string
image: string
url: string
siteName: string
type: string
title: string;
description: string;
image: string;
url: string;
siteName: string;
type: string;
}
function createBaseIsImageUrl(): IsImageUrl {
return { isImage: false, url: "" }
return { isImage: false, url: "" };
}
export const IsImageUrl: MessageFns<IsImageUrl> = {
encode(message: IsImageUrl, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.isImage !== false) {
writer.uint32(8).bool(message.isImage)
}
if (message.url !== "") {
writer.uint32(18).string(message.url)
}
return writer
},
encode(message: IsImageUrl, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.isImage !== false) {
writer.uint32(8).bool(message.isImage);
}
if (message.url !== "") {
writer.uint32(18).string(message.url);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): IsImageUrl {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input)
let end = length === undefined ? reader.len : reader.pos + length
const message = createBaseIsImageUrl()
while (reader.pos < end) {
const tag = reader.uint32()
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break
}
decode(input: BinaryReader | Uint8Array, length?: number): IsImageUrl {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseIsImageUrl();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.isImage = reader.bool()
continue
}
case 2: {
if (tag !== 18) {
break
}
message.isImage = reader.bool();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.url = reader.string()
continue
}
}
if ((tag & 7) === 4 || tag === 0) {
break
}
reader.skip(tag & 7)
}
return message
},
message.url = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): IsImageUrl {
return {
isImage: isSet(object.isImage) ? globalThis.Boolean(object.isImage) : false,
url: isSet(object.url) ? globalThis.String(object.url) : "",
}
},
fromJSON(object: any): IsImageUrl {
return {
isImage: isSet(object.isImage) ? globalThis.Boolean(object.isImage) : false,
url: isSet(object.url) ? globalThis.String(object.url) : "",
};
},
toJSON(message: IsImageUrl): unknown {
const obj: any = {}
if (message.isImage !== false) {
obj.isImage = message.isImage
}
if (message.url !== "") {
obj.url = message.url
}
return obj
},
toJSON(message: IsImageUrl): unknown {
const obj: any = {};
if (message.isImage !== false) {
obj.isImage = message.isImage;
}
if (message.url !== "") {
obj.url = message.url;
}
return obj;
},
create<I extends Exact<DeepPartial<IsImageUrl>, I>>(base?: I): IsImageUrl {
return IsImageUrl.fromPartial(base ?? ({} as any))
},
fromPartial<I extends Exact<DeepPartial<IsImageUrl>, I>>(object: I): IsImageUrl {
const message = createBaseIsImageUrl()
message.isImage = object.isImage ?? false
message.url = object.url ?? ""
return message
},
}
create<I extends Exact<DeepPartial<IsImageUrl>, I>>(base?: I): IsImageUrl {
return IsImageUrl.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<IsImageUrl>, I>>(object: I): IsImageUrl {
const message = createBaseIsImageUrl();
message.isImage = object.isImage ?? false;
message.url = object.url ?? "";
return message;
},
};
function createBaseOpenGraphData(): OpenGraphData {
return { title: "", description: "", image: "", url: "", siteName: "", type: "" }
return { title: "", description: "", image: "", url: "", siteName: "", type: "" };
}
export const OpenGraphData: MessageFns<OpenGraphData> = {
encode(message: OpenGraphData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.title !== "") {
writer.uint32(10).string(message.title)
}
if (message.description !== "") {
writer.uint32(18).string(message.description)
}
if (message.image !== "") {
writer.uint32(26).string(message.image)
}
if (message.url !== "") {
writer.uint32(34).string(message.url)
}
if (message.siteName !== "") {
writer.uint32(42).string(message.siteName)
}
if (message.type !== "") {
writer.uint32(50).string(message.type)
}
return writer
},
encode(message: OpenGraphData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.title !== "") {
writer.uint32(10).string(message.title);
}
if (message.description !== "") {
writer.uint32(18).string(message.description);
}
if (message.image !== "") {
writer.uint32(26).string(message.image);
}
if (message.url !== "") {
writer.uint32(34).string(message.url);
}
if (message.siteName !== "") {
writer.uint32(42).string(message.siteName);
}
if (message.type !== "") {
writer.uint32(50).string(message.type);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): OpenGraphData {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input)
let end = length === undefined ? reader.len : reader.pos + length
const message = createBaseOpenGraphData()
while (reader.pos < end) {
const tag = reader.uint32()
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break
}
decode(input: BinaryReader | Uint8Array, length?: number): OpenGraphData {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOpenGraphData();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.title = reader.string()
continue
}
case 2: {
if (tag !== 18) {
break
}
message.title = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.description = reader.string()
continue
}
case 3: {
if (tag !== 26) {
break
}
message.description = reader.string();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.image = reader.string()
continue
}
case 4: {
if (tag !== 34) {
break
}
message.image = reader.string();
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.url = reader.string()
continue
}
case 5: {
if (tag !== 42) {
break
}
message.url = reader.string();
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.siteName = reader.string()
continue
}
case 6: {
if (tag !== 50) {
break
}
message.siteName = reader.string();
continue;
}
case 6: {
if (tag !== 50) {
break;
}
message.type = reader.string()
continue
}
}
if ((tag & 7) === 4 || tag === 0) {
break
}
reader.skip(tag & 7)
}
return message
},
message.type = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): OpenGraphData {
return {
title: isSet(object.title) ? globalThis.String(object.title) : "",
description: isSet(object.description) ? globalThis.String(object.description) : "",
image: isSet(object.image) ? globalThis.String(object.image) : "",
url: isSet(object.url) ? globalThis.String(object.url) : "",
siteName: isSet(object.siteName) ? globalThis.String(object.siteName) : "",
type: isSet(object.type) ? globalThis.String(object.type) : "",
}
},
fromJSON(object: any): OpenGraphData {
return {
title: isSet(object.title) ? globalThis.String(object.title) : "",
description: isSet(object.description) ? globalThis.String(object.description) : "",
image: isSet(object.image) ? globalThis.String(object.image) : "",
url: isSet(object.url) ? globalThis.String(object.url) : "",
siteName: isSet(object.siteName) ? globalThis.String(object.siteName) : "",
type: isSet(object.type) ? globalThis.String(object.type) : "",
};
},
toJSON(message: OpenGraphData): unknown {
const obj: any = {}
if (message.title !== "") {
obj.title = message.title
}
if (message.description !== "") {
obj.description = message.description
}
if (message.image !== "") {
obj.image = message.image
}
if (message.url !== "") {
obj.url = message.url
}
if (message.siteName !== "") {
obj.siteName = message.siteName
}
if (message.type !== "") {
obj.type = message.type
}
return obj
},
toJSON(message: OpenGraphData): unknown {
const obj: any = {};
if (message.title !== "") {
obj.title = message.title;
}
if (message.description !== "") {
obj.description = message.description;
}
if (message.image !== "") {
obj.image = message.image;
}
if (message.url !== "") {
obj.url = message.url;
}
if (message.siteName !== "") {
obj.siteName = message.siteName;
}
if (message.type !== "") {
obj.type = message.type;
}
return obj;
},
create<I extends Exact<DeepPartial<OpenGraphData>, I>>(base?: I): OpenGraphData {
return OpenGraphData.fromPartial(base ?? ({} as any))
},
fromPartial<I extends Exact<DeepPartial<OpenGraphData>, I>>(object: I): OpenGraphData {
const message = createBaseOpenGraphData()
message.title = object.title ?? ""
message.description = object.description ?? ""
message.image = object.image ?? ""
message.url = object.url ?? ""
message.siteName = object.siteName ?? ""
message.type = object.type ?? ""
return message
},
}
create<I extends Exact<DeepPartial<OpenGraphData>, I>>(base?: I): OpenGraphData {
return OpenGraphData.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<OpenGraphData>, I>>(object: I): OpenGraphData {
const message = createBaseOpenGraphData();
message.title = object.title ?? "";
message.description = object.description ?? "";
message.image = object.image ?? "";
message.url = object.url ?? "";
message.siteName = object.siteName ?? "";
message.type = object.type ?? "";
return message;
},
};
export type WebServiceDefinition = typeof WebServiceDefinition
export type WebServiceDefinition = typeof WebServiceDefinition;
export const WebServiceDefinition = {
name: "WebService",
fullName: "cline.WebService",
methods: {
checkIsImageUrl: {
name: "checkIsImageUrl",
requestType: StringRequest,
requestStream: false,
responseType: IsImageUrl,
responseStream: false,
options: {},
},
fetchOpenGraphData: {
name: "fetchOpenGraphData",
requestType: StringRequest,
requestStream: false,
responseType: OpenGraphData,
responseStream: false,
options: {},
},
},
} as const
name: "WebService",
fullName: "cline.WebService",
methods: {
checkIsImageUrl: {
name: "checkIsImageUrl",
requestType: StringRequest,
requestStream: false,
responseType: IsImageUrl,
responseStream: false,
options: {},
},
fetchOpenGraphData: {
name: "fetchOpenGraphData",
requestType: StringRequest,
requestStream: false,
responseType: OpenGraphData,
responseStream: false,
options: {},
},
},
} as const;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin
? T
: T extends globalThis.Array<infer U>
? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U>
? ReadonlyArray<DeepPartial<U>>
: T extends {}
? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>
export type DeepPartial<T> = T extends Builtin ? T
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never
export type Exact<P, I extends P> = P extends Builtin
? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never }
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function isSet(value: any): boolean {
return value !== null && value !== undefined
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter
decode(input: BinaryReader | Uint8Array, length?: number): T
fromJSON(object: any): T
toJSON(message: T): unknown
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
+98 -96
View File
@@ -89,6 +89,7 @@ import { onDidShowAnnouncement } from "../core/controller/ui/onDidShowAnnounceme
import { checkIsImageUrl } from "../core/controller/web/checkIsImageUrl"
import { fetchOpenGraphData } from "../core/controller/web/fetchOpenGraphData"
export function addServices(
server: grpc.Server,
proto: any,
@@ -96,110 +97,111 @@ export function addServices(
wrapper: GrpcHandlerWrapper,
wrapStreamingResponse: GrpcStreamingResponseHandlerWrapper,
): void {
// Account Service
server.addService(proto.cline.AccountService.service, {
accountLoginClicked: wrapper(accountLoginClicked, controller),
accountLogoutClicked: wrapper(accountLogoutClicked, controller),
})
// Account Service
server.addService(proto.cline.AccountService.service, {
accountLoginClicked: wrapper(accountLoginClicked, controller),
accountLogoutClicked: wrapper(accountLogoutClicked, controller),
});
// Browser Service
server.addService(proto.cline.BrowserService.service, {
getBrowserConnectionInfo: wrapper(getBrowserConnectionInfo, controller),
testBrowserConnection: wrapper(testBrowserConnection, controller),
discoverBrowser: wrapper(discoverBrowser, controller),
getDetectedChromePath: wrapper(getDetectedChromePath, controller),
updateBrowserSettings: wrapper(updateBrowserSettings, controller),
relaunchChromeDebugMode: wrapper(relaunchChromeDebugMode, controller),
})
// Browser Service
server.addService(proto.cline.BrowserService.service, {
getBrowserConnectionInfo: wrapper(getBrowserConnectionInfo, controller),
testBrowserConnection: wrapper(testBrowserConnection, controller),
discoverBrowser: wrapper(discoverBrowser, controller),
getDetectedChromePath: wrapper(getDetectedChromePath, controller),
updateBrowserSettings: wrapper(updateBrowserSettings, controller),
relaunchChromeDebugMode: wrapper(relaunchChromeDebugMode, controller),
});
// Checkpoints Service
server.addService(proto.cline.CheckpointsService.service, {
checkpointDiff: wrapper(checkpointDiff, controller),
checkpointRestore: wrapper(checkpointRestore, controller),
})
// Checkpoints Service
server.addService(proto.cline.CheckpointsService.service, {
checkpointDiff: wrapper(checkpointDiff, controller),
checkpointRestore: wrapper(checkpointRestore, controller),
});
// File Service
server.addService(proto.cline.FileService.service, {
copyToClipboard: wrapper(copyToClipboard, controller),
openFile: wrapper(openFile, controller),
openImage: wrapper(openImage, controller),
openMention: wrapper(openMention, controller),
deleteRuleFile: wrapper(deleteRuleFile, controller),
createRuleFile: wrapper(createRuleFile, controller),
searchCommits: wrapper(searchCommits, controller),
selectImages: wrapper(selectImages, controller),
getRelativePaths: wrapper(getRelativePaths, controller),
searchFiles: wrapper(searchFiles, controller),
toggleClineRule: wrapper(toggleClineRule, controller),
toggleCursorRule: wrapper(toggleCursorRule, controller),
toggleWindsurfRule: wrapper(toggleWindsurfRule, controller),
refreshRules: wrapper(refreshRules, controller),
})
// File Service
server.addService(proto.cline.FileService.service, {
copyToClipboard: wrapper(copyToClipboard, controller),
openFile: wrapper(openFile, controller),
openImage: wrapper(openImage, controller),
openMention: wrapper(openMention, controller),
deleteRuleFile: wrapper(deleteRuleFile, controller),
createRuleFile: wrapper(createRuleFile, controller),
searchCommits: wrapper(searchCommits, controller),
selectImages: wrapper(selectImages, controller),
getRelativePaths: wrapper(getRelativePaths, controller),
searchFiles: wrapper(searchFiles, controller),
toggleClineRule: wrapper(toggleClineRule, controller),
toggleCursorRule: wrapper(toggleCursorRule, controller),
toggleWindsurfRule: wrapper(toggleWindsurfRule, controller),
refreshRules: wrapper(refreshRules, controller),
});
// Mcp Service
server.addService(proto.cline.McpService.service, {
toggleMcpServer: wrapper(toggleMcpServer, controller),
updateMcpTimeout: wrapper(updateMcpTimeout, controller),
addRemoteMcpServer: wrapper(addRemoteMcpServer, controller),
downloadMcp: wrapper(downloadMcp, controller),
restartMcpServer: wrapper(restartMcpServer, controller),
deleteMcpServer: wrapper(deleteMcpServer, controller),
toggleToolAutoApprove: wrapper(toggleToolAutoApprove, controller),
refreshMcpMarketplace: wrapper(refreshMcpMarketplace, controller),
})
// Mcp Service
server.addService(proto.cline.McpService.service, {
toggleMcpServer: wrapper(toggleMcpServer, controller),
updateMcpTimeout: wrapper(updateMcpTimeout, controller),
addRemoteMcpServer: wrapper(addRemoteMcpServer, controller),
downloadMcp: wrapper(downloadMcp, controller),
restartMcpServer: wrapper(restartMcpServer, controller),
deleteMcpServer: wrapper(deleteMcpServer, controller),
toggleToolAutoApprove: wrapper(toggleToolAutoApprove, controller),
refreshMcpMarketplace: wrapper(refreshMcpMarketplace, controller),
});
// Models Service
server.addService(proto.cline.ModelsService.service, {
getOllamaModels: wrapper(getOllamaModels, controller),
getLmStudioModels: wrapper(getLmStudioModels, controller),
getVsCodeLmModels: wrapper(getVsCodeLmModels, controller),
refreshOpenRouterModels: wrapper(refreshOpenRouterModels, controller),
refreshOpenAiModels: wrapper(refreshOpenAiModels, controller),
refreshRequestyModels: wrapper(refreshRequestyModels, controller),
})
// Models Service
server.addService(proto.cline.ModelsService.service, {
getOllamaModels: wrapper(getOllamaModels, controller),
getLmStudioModels: wrapper(getLmStudioModels, controller),
getVsCodeLmModels: wrapper(getVsCodeLmModels, controller),
refreshOpenRouterModels: wrapper(refreshOpenRouterModels, controller),
refreshOpenAiModels: wrapper(refreshOpenAiModels, controller),
refreshRequestyModels: wrapper(refreshRequestyModels, controller),
});
// Slash Service
server.addService(proto.cline.SlashService.service, {
reportBug: wrapper(reportBug, controller),
condense: wrapper(condense, controller),
})
// Slash Service
server.addService(proto.cline.SlashService.service, {
reportBug: wrapper(reportBug, controller),
condense: wrapper(condense, controller),
});
// State Service
server.addService(proto.cline.StateService.service, {
getLatestState: wrapper(getLatestState, controller),
subscribeToState: wrapStreamingResponse(subscribeToState, controller),
toggleFavoriteModel: wrapper(toggleFavoriteModel, controller),
resetState: wrapper(resetState, controller),
togglePlanActMode: wrapper(togglePlanActMode, controller),
updateTerminalConnectionTimeout: wrapper(updateTerminalConnectionTimeout, controller),
updateAutoApprovalSettings: wrapper(updateAutoApprovalSettings, controller),
})
// State Service
server.addService(proto.cline.StateService.service, {
getLatestState: wrapper(getLatestState, controller),
subscribeToState: wrapStreamingResponse(subscribeToState, controller),
toggleFavoriteModel: wrapper(toggleFavoriteModel, controller),
resetState: wrapper(resetState, controller),
togglePlanActMode: wrapper(togglePlanActMode, controller),
updateTerminalConnectionTimeout: wrapper(updateTerminalConnectionTimeout, controller),
updateAutoApprovalSettings: wrapper(updateAutoApprovalSettings, controller),
});
// Task Service
server.addService(proto.cline.TaskService.service, {
cancelTask: wrapper(cancelTask, controller),
clearTask: wrapper(clearTask, controller),
deleteTasksWithIds: wrapper(deleteTasksWithIds, controller),
newTask: wrapper(newTask, controller),
showTaskWithId: wrapper(showTaskWithId, controller),
exportTaskWithId: wrapper(exportTaskWithId, controller),
toggleTaskFavorite: wrapper(toggleTaskFavorite, controller),
deleteNonFavoritedTasks: wrapper(deleteNonFavoritedTasks, controller),
getTaskHistory: wrapper(getTaskHistory, controller),
askResponse: wrapper(askResponse, controller),
taskFeedback: wrapper(taskFeedback, controller),
taskCompletionViewChanges: wrapper(taskCompletionViewChanges, controller),
})
// Task Service
server.addService(proto.cline.TaskService.service, {
cancelTask: wrapper(cancelTask, controller),
clearTask: wrapper(clearTask, controller),
deleteTasksWithIds: wrapper(deleteTasksWithIds, controller),
newTask: wrapper(newTask, controller),
showTaskWithId: wrapper(showTaskWithId, controller),
exportTaskWithId: wrapper(exportTaskWithId, controller),
toggleTaskFavorite: wrapper(toggleTaskFavorite, controller),
deleteNonFavoritedTasks: wrapper(deleteNonFavoritedTasks, controller),
getTaskHistory: wrapper(getTaskHistory, controller),
askResponse: wrapper(askResponse, controller),
taskFeedback: wrapper(taskFeedback, controller),
taskCompletionViewChanges: wrapper(taskCompletionViewChanges, controller),
});
// Ui Service
server.addService(proto.cline.UiService.service, {
scrollToSettings: wrapper(scrollToSettings, controller),
onDidShowAnnouncement: wrapper(onDidShowAnnouncement, controller),
})
// Ui Service
server.addService(proto.cline.UiService.service, {
scrollToSettings: wrapper(scrollToSettings, controller),
onDidShowAnnouncement: wrapper(onDidShowAnnouncement, controller),
});
// Web Service
server.addService(proto.cline.WebService.service, {
checkIsImageUrl: wrapper(checkIsImageUrl, controller),
fetchOpenGraphData: wrapper(fetchOpenGraphData, controller),
});
// Web Service
server.addService(proto.cline.WebService.service, {
checkIsImageUrl: wrapper(checkIsImageUrl, controller),
fetchOpenGraphData: wrapper(fetchOpenGraphData, controller),
})
}
@@ -18,7 +18,6 @@ export const SectionHeader = ({ description, children, className, ...props }: Se
{...props}
style={{ zIndex: OPENROUTER_MODEL_PICKER_Z_INDEX + 20 }}>
<h4 className="m-0">{children}</h4>
sty
{description && <p className="text-[var(--vscode-descriptionForeground)] text-sm mt-2 mb-0">{description}</p>}
</div>
)
+2 -2
View File
@@ -37,5 +37,5 @@ export {
WebServiceClient,
ModelsServiceClient,
SlashServiceClient,
UiServiceClient,
}
UiServiceClient
}