Files
cline/proto/host/window.proto
T
097f8e6239 cline cli super alpha (#6644)
* super sketchy big merge with main

* gitignore

* gitignore

* Delete cli/bin/air

* Delete cli/bin directory

* Delete cli/cline-host

* Fix missing package.json in cli

Copy the package JSON into the dist-standalone dir during compilation.
Remove workaround for missing package.json

* Update scripts/build-cli.sh

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Remove reference to watchservice, it has been removed

* Update scripts/build-go-proto.mjs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix timestamp to string conversion

* diff.go ellipsis fix

* COMMON_TYPES

---------

Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-03 15:04:00 -07:00

165 lines
4.3 KiB
Protocol Buffer

syntax = "proto3";
package host;
option go_package = "github.com/cline/grpc-go/host";
option java_package = "bot.cline.host.proto";
option java_multiple_files = true;
// Provides methods for working with IDE windows and editors.
service WindowService {
// Opens a text document in the IDE editor and returns editor information.
rpc showTextDocument(ShowTextDocumentRequest) returns (TextEditorInfo);
// Shows the open file dialogue / file picker.
rpc showOpenDialogue(ShowOpenDialogueRequest) returns (SelectedResources);
// Shows a notification.
rpc showMessage(ShowMessageRequest) returns (SelectedResponse);
// Prompts the user for input and returns the response.
rpc showInputBox(ShowInputBoxRequest) returns (ShowInputBoxResponse);
// Shows the file save dialogue / file picker.
rpc showSaveDialog(ShowSaveDialogRequest) returns (ShowSaveDialogResponse);
// Opens a file in the IDE.
rpc openFile(OpenFileRequest) returns (OpenFileResponse);
// Opens the host settings UI, optionally focusing a specific query/section.
rpc openSettings(OpenSettingsRequest) returns (OpenSettingsResponse);
// Returns the open tabs.
rpc getOpenTabs(GetOpenTabsRequest) returns (GetOpenTabsResponse);
// Returns the visible tabs.
rpc getVisibleTabs(GetVisibleTabsRequest) returns (GetVisibleTabsResponse);
// Returns information about the current editor
rpc getActiveEditor(GetActiveEditorRequest) returns (GetActiveEditorResponse);
}
message ShowTextDocumentRequest {
string path = 2;
optional ShowTextDocumentOptions options = 3;
}
// See https://code.visualstudio.com/api/references/vscode-api#TextDocumentShowOptions
message ShowTextDocumentOptions {
optional bool preview = 1;
optional bool preserve_focus = 2;
optional int32 view_column = 3;
}
message TextEditorInfo {
string document_path = 1;
optional int32 view_column = 2;
bool is_active = 3;
}
message ShowOpenDialogueRequest {
optional bool can_select_many = 2;
optional string open_label = 3;
optional ShowOpenDialogueFilterOption filters = 4;
}
message ShowOpenDialogueFilterOption {
repeated string files = 1;
}
message SelectedResources {
repeated string paths = 1;
}
enum ShowMessageType {
ERROR = 0;
INFORMATION = 1;
WARNING = 2;
}
message ShowMessageRequest {
ShowMessageType type = 1;
string message = 2;
optional ShowMessageRequestOptions options = 3;
}
message ShowMessageRequestOptions {
repeated string items = 1;
optional bool modal = 2;
optional string detail = 3;
}
message SelectedResponse {
optional string selected_option = 1;
}
message ShowSaveDialogRequest {
optional ShowSaveDialogOptions options = 1;
}
message ShowSaveDialogOptions {
optional string default_path = 1;
// A map of file types to extensions, e.g
// "Text Files": { "extensions": ["txt", "md"] }
map<string, FileExtensionList> filters = 2;
}
message FileExtensionList {
// A list of file extension (without the dot).
repeated string extensions = 1;
}
message ShowSaveDialogResponse {
// If the user cancelled the dialog, this will be empty.
optional string selected_path = 1;
}
message ShowInputBoxRequest {
string title = 1;
optional string prompt = 2;
optional string value = 3;
}
message ShowInputBoxResponse {
optional string response = 1;
}
message OpenFileRequest {
string file_path = 1;
}
message OpenFileResponse {}
message OpenSettingsRequest {
// Optional query to focus a particular settings section/key.
// This value is host-specific. In VS Code, it is passed directly as the
// Settings search query to the "workbench.action.openSettings" command.
// Examples (VS Code, see - https://code.visualstudio.com/docs/getstarted/settings#settings-editor-filters.):
// - "telemetry.telemetryLevel" → focuses the Telemetry Level setting
// - "@id:telemetry.telemetryLevel" → navigates by exact setting id
// - "@modified", "@ext:publisher.extension"
// - Plain keywords/categories
// If not provided the host opens the settings UI without specific focus.
optional string query = 1;
}
message OpenSettingsResponse {}
message GetOpenTabsRequest {}
message GetOpenTabsResponse {
repeated string paths = 1;
}
message GetVisibleTabsRequest {}
message GetVisibleTabsResponse {
repeated string paths = 1;
}
message GetActiveEditorRequest {}
message GetActiveEditorResponse {
optional string file_path = 1;
}