import * as Schema from "effect/Schema"; import * as Rpc from "effect/unstable/rpc/Rpc"; import * as RpcGroup from "effect/unstable/rpc/RpcGroup"; import { ExternalLauncherError, LaunchEditorInput } from "./editor.ts"; import { AuthAccessStreamError, AuthAccessStreamEvent, EnvironmentAuthorizationError, } from "./auth.ts"; import { BackgroundPolicySnapshot, ClientActivityReportInput, HostPowerSnapshot, } from "./background.ts"; import { FilesystemBrowseInput, FilesystemBrowseResult, FilesystemBrowseError, } from "./filesystem.ts"; import { AssetAccessError, AssetCreateUrlInput, AssetCreateUrlResult } from "./assets.ts"; import { GitActionProgressEvent, VcsSwitchRefInput, VcsSwitchRefResult, GitCommandError, VcsCreateRefInput, VcsCreateRefResult, VcsCreateWorktreeInput, VcsCreateWorktreeResult, VcsInitInput, VcsListRefsInput, VcsListRefsResult, GitManagerServiceError, GitPreparePullRequestThreadInput, GitPreparePullRequestThreadResult, VcsPullInput, GitPullRequestRefInput, VcsPullResult, VcsRemoveWorktreeInput, GitResolvePullRequestResult, GitRunStackedActionInput, VcsStatusInput, VcsStatusResult, VcsStatusStreamEvent, } from "./git.ts"; import { ReviewDiffFileContentsInput, ReviewDiffFileContentsResult, ReviewDiffPreviewError, ReviewDiffPreviewInput, ReviewDiffPreviewResult, } from "./review.ts"; import { KeybindingsConfigError } from "./keybindings.ts"; import { ClientOrchestrationCommand, ORCHESTRATION_WS_METHODS, OrchestrationDispatchCommandError, OrchestrationGetFullThreadDiffError, OrchestrationGetFullThreadDiffInput, OrchestrationGetSnapshotError, OrchestrationSearchThreadsError, OrchestrationSearchThreadsInput, OrchestrationGetTurnDiffError, OrchestrationGetTurnDiffInput, OrchestrationRpcSchemas, OrchestrationGetWorkflowScriptError, } from "./orchestration.ts"; import { ProviderInstanceId } from "./providerInstance.ts"; import { PluginCommandCatalog, PluginCommandCatalogChangedError, PluginCommandInvocationError, PluginCommandInvocationResult, PluginCommandInvokeInput, PluginCommandNotFoundError, } from "./pluginCommands.ts"; import { PullRequestActionInput, PullRequestActivity, PullRequestCommentInput, PullRequestCommentUpdateInput, PullRequestDetail, PullRequestDiffFileContentsInput, PullRequestDiffFileContentsResult, PullRequestInvalidateInput, PullRequestListInput, PullRequestListResult, PullRequestListStatsInput, PullRequestListStatsResult, PullRequestOperationError, PullRequestReactionInput, PullRequestRef, PullRequestReviewerCandidateList, PullRequestReviewerRequestInput, PullRequestSubmitReviewInput, PullRequestThreadCommentsInput, PullRequestThreadCommentsResult, PullRequestThreadReplyInput, PullRequestThreadResolutionInput, PullRequestUnavailableError, PullRequestUpdateInput, } from "./pullRequest.ts"; import { RelayClientInstallFailedError, RelayClientInstallProgressEventSchema, RelayClientStatusSchema, } from "./relayClient.ts"; import { ProjectListEntriesError, ProjectListEntriesInput, ProjectListEntriesResult, ProjectReadFileError, ProjectReadFileInput, ProjectReadFileResult, ProjectSearchContentsError, ProjectSearchContentsInput, ProjectSearchContentsResult, ProjectSearchEntriesError, ProjectSearchEntriesInput, ProjectSearchEntriesResult, ProjectWriteFileError, ProjectWriteFileInput, ProjectWriteFileResult, } from "./project.ts"; import { TerminalAttachInput, TerminalAttachStreamEvent, TerminalClearInput, TerminalCloseInput, TerminalError, TerminalEvent, TerminalMetadataStreamEvent, TerminalOpenInput, TerminalResizeInput, TerminalRestartInput, TerminalSessionSnapshot, TerminalWriteInput, } from "./terminal.ts"; import { DiscoveredLocalServerList, ConfiguredLocalServerUrls, PreviewCloseInput, PreviewError, PreviewEvent, PreviewListInput, PreviewListResult, PreviewNavigateInput, PreviewOpenInput, PreviewRefreshInput, PreviewReportStatusInput, PreviewResizeInput, PreviewSessionSnapshot, } from "./preview.ts"; import { PreviewAutomationError, PreviewAutomationHost, PreviewAutomationHostFocus, PreviewAutomationResponse, PreviewAutomationStreamEvent, } from "./previewAutomation.ts"; import { ServerConfigStreamEvent, ServerConfig, ServerProviderUpdateError, ServerProviderUpdateInput, ServerLifecycleStreamEvent, ServerRemoveKeybindingInput, ServerRemoveKeybindingResult, ServerProviderUpdatedPayload, ServerSelfUpdateError, ServerSelfUpdateInput, ServerSelfUpdateProgressEvent, ServerSelfUpdateResult, ServerTraceDiagnosticsResult, ServerProcessDiagnosticsResult, ServerProcessResourceHistoryInput, ServerProcessResourceHistoryResult, ServerSignalProcessInput, ServerSignalProcessResult, ServerUpsertKeybindingInput, ServerUpsertKeybindingResult, } from "./server.ts"; import { ResourceTelemetryHistory, ResourceTelemetryHistoryInput, ResourceTelemetryRetryResult, ResourceTelemetrySnapshot, } from "./resourceTelemetry.ts"; import { UsageReadError, UsageSummary, UsageSummaryInput } from "./usage.ts"; import { ServerSettings, ServerSettingsError, ServerSettingsPatch } from "./settings.ts"; import { SourceControlCloneRepositoryInput, SourceControlCloneRepositoryResult, SourceControlDiscoveryResult, SourceControlPublishRepositoryInput, SourceControlPublishRepositoryResult, SourceControlRepositoryError, SourceControlRepositoryInfo, SourceControlRepositoryLookupInput, } from "./sourceControl.ts"; import { VcsError } from "./vcs.ts"; export const WS_METHODS = { // Project registry methods projectsList: "projects.list", projectsAdd: "projects.add", projectsRemove: "projects.remove", projectsListEntries: "projects.listEntries", projectsReadFile: "projects.readFile", projectsSearchContents: "projects.searchContents", projectsSearchEntries: "projects.searchEntries", projectsWriteFile: "projects.writeFile", // Shell methods shellOpenInEditor: "shell.openInEditor", // Filesystem methods filesystemBrowse: "filesystem.browse", assetsCreateUrl: "assets.createUrl", // VCS methods vcsPull: "vcs.pull", vcsRefreshStatus: "vcs.refreshStatus", vcsListRefs: "vcs.listRefs", vcsCreateWorktree: "vcs.createWorktree", vcsRemoveWorktree: "vcs.removeWorktree", vcsCreateRef: "vcs.createRef", vcsSwitchRef: "vcs.switchRef", vcsInit: "vcs.init", // Git workflow methods gitRunStackedAction: "git.runStackedAction", gitResolvePullRequest: "git.resolvePullRequest", gitPreparePullRequestThread: "git.preparePullRequestThread", // Review methods reviewGetDiffPreview: "review.getDiffPreview", reviewGetDiffFileContents: "review.getDiffFileContents", // Terminal methods terminalOpen: "terminal.open", terminalAttach: "terminal.attach", terminalWrite: "terminal.write", terminalResize: "terminal.resize", terminalClear: "terminal.clear", terminalRestart: "terminal.restart", terminalClose: "terminal.close", // Preview methods previewOpen: "preview.open", previewNavigate: "preview.navigate", previewResize: "preview.resize", previewRefresh: "preview.refresh", previewClose: "preview.close", previewList: "preview.list", previewReportStatus: "preview.reportStatus", previewAutomationConnect: "previewAutomation.connect", previewAutomationRespond: "previewAutomation.respond", previewAutomationFocusHost: "previewAutomation.focusHost", // Server meta serverProbe: "server.probe", serverGetConfig: "server.getConfig", serverRefreshProviders: "server.refreshProviders", serverUpdateProvider: "server.updateProvider", serverUpdateServer: "server.updateServer", serverUpdateServerWithProgress: "server.updateServerWithProgress", serverUpsertKeybinding: "server.upsertKeybinding", serverRemoveKeybinding: "server.removeKeybinding", serverGetSettings: "server.getSettings", serverUpdateSettings: "server.updateSettings", serverDiscoverSourceControl: "server.discoverSourceControl", serverGetTraceDiagnostics: "server.getTraceDiagnostics", serverGetProcessDiagnostics: "server.getProcessDiagnostics", serverGetProcessResourceHistory: "server.getProcessResourceHistory", serverGetResourceTelemetryHistory: "server.getResourceTelemetryHistory", serverRetryResourceTelemetry: "server.retryResourceTelemetry", serverSignalProcess: "server.signalProcess", serverReportClientActivity: "server.reportClientActivity", serverReportHostPowerState: "server.reportHostPowerState", serverGetBackgroundPolicy: "server.getBackgroundPolicy", serverGetUsageSummary: "server.getUsageSummary", // Plugin command methods pluginCommandsList: "pluginCommands.list", pluginCommandsInvoke: "pluginCommands.invoke", // Cloud environment methods cloudGetRelayClientStatus: "cloud.getRelayClientStatus", cloudInstallRelayClient: "cloud.installRelayClient", // Pull request methods pullRequestsList: "pullRequests.list", pullRequestsListStats: "pullRequests.listStats", pullRequestsDetail: "pullRequests.detail", pullRequestsActivity: "pullRequests.activity", pullRequestsThreadComments: "pullRequests.threadComments", pullRequestsDiffFileContents: "pullRequests.diffFileContents", pullRequestsRunAction: "pullRequests.runAction", pullRequestsUpdate: "pullRequests.update", pullRequestsComment: "pullRequests.comment", pullRequestsUpdateComment: "pullRequests.updateComment", pullRequestsSubmitReview: "pullRequests.submitReview", pullRequestsReplyToThread: "pullRequests.replyToThread", pullRequestsSetThreadResolution: "pullRequests.setThreadResolution", pullRequestsSetReaction: "pullRequests.setReaction", pullRequestsInvalidate: "pullRequests.invalidate", pullRequestsReviewerCandidates: "pullRequests.reviewerCandidates", pullRequestsRequestReviewers: "pullRequests.requestReviewers", // Source control methods sourceControlLookupRepository: "sourceControl.lookupRepository", sourceControlCloneRepository: "sourceControl.cloneRepository", sourceControlPublishRepository: "sourceControl.publishRepository", // Streaming subscriptions subscribeVcsStatus: "subscribeVcsStatus", subscribeTerminalEvents: "subscribeTerminalEvents", subscribeTerminalMetadata: "subscribeTerminalMetadata", subscribePreviewEvents: "subscribePreviewEvents", subscribeDiscoveredLocalServers: "subscribeDiscoveredLocalServers", subscribeServerConfig: "subscribeServerConfig", subscribeServerLifecycle: "subscribeServerLifecycle", subscribeAuthAccess: "subscribeAuthAccess", subscribeBackgroundPolicy: "subscribeBackgroundPolicy", subscribeResourceTelemetry: "subscribeResourceTelemetry", subscribePluginCommands: "subscribePluginCommands", } as const; export const WsServerUpsertKeybindingRpc = Rpc.make(WS_METHODS.serverUpsertKeybinding, { payload: ServerUpsertKeybindingInput, success: ServerUpsertKeybindingResult, error: Schema.Union([KeybindingsConfigError, EnvironmentAuthorizationError]), }); export const WsServerRemoveKeybindingRpc = Rpc.make(WS_METHODS.serverRemoveKeybinding, { payload: ServerRemoveKeybindingInput, success: ServerRemoveKeybindingResult, error: Schema.Union([KeybindingsConfigError, EnvironmentAuthorizationError]), }); export const WsServerProbeRpc = Rpc.make(WS_METHODS.serverProbe, { payload: Schema.Struct({}), success: Schema.Struct({}), error: EnvironmentAuthorizationError, }); export const WsServerGetConfigRpc = Rpc.make(WS_METHODS.serverGetConfig, { payload: Schema.Struct({}), success: ServerConfig, error: Schema.Union([KeybindingsConfigError, ServerSettingsError, EnvironmentAuthorizationError]), }); export const WsPluginCommandsListRpc = Rpc.make(WS_METHODS.pluginCommandsList, { payload: Schema.Struct({}), success: PluginCommandCatalog, error: EnvironmentAuthorizationError, }); export const WsPluginCommandsInvokeRpc = Rpc.make(WS_METHODS.pluginCommandsInvoke, { payload: PluginCommandInvokeInput, success: PluginCommandInvocationResult, error: Schema.Union([ PluginCommandCatalogChangedError, PluginCommandInvocationError, PluginCommandNotFoundError, EnvironmentAuthorizationError, ]), }); export const WsServerRefreshProvidersRpc = Rpc.make(WS_METHODS.serverRefreshProviders, { payload: Schema.Struct({ /** * When supplied, only refresh this specific provider instance. When * omitted, refresh all configured instances — the legacy `refresh()` * behaviour retained for transports that still dispatch untargeted * refreshes. */ instanceId: Schema.optional(ProviderInstanceId), }), success: ServerProviderUpdatedPayload, error: EnvironmentAuthorizationError, }); export const WsServerUpdateProviderRpc = Rpc.make(WS_METHODS.serverUpdateProvider, { payload: ServerProviderUpdateInput, success: ServerProviderUpdatedPayload, error: Schema.Union([ServerProviderUpdateError, EnvironmentAuthorizationError]), }); export const WsServerUpdateServerRpc = Rpc.make(WS_METHODS.serverUpdateServer, { payload: ServerSelfUpdateInput, success: ServerSelfUpdateResult, error: Schema.Union([ServerSelfUpdateError, EnvironmentAuthorizationError]), }); export const WsServerUpdateServerWithProgressRpc = Rpc.make( WS_METHODS.serverUpdateServerWithProgress, { payload: ServerSelfUpdateInput, success: ServerSelfUpdateProgressEvent, error: Schema.Union([ServerSelfUpdateError, EnvironmentAuthorizationError]), stream: true, }, ); export const WsServerGetSettingsRpc = Rpc.make(WS_METHODS.serverGetSettings, { payload: Schema.Struct({}), success: ServerSettings, error: Schema.Union([ServerSettingsError, EnvironmentAuthorizationError]), }); export const WsServerUpdateSettingsRpc = Rpc.make(WS_METHODS.serverUpdateSettings, { payload: Schema.Struct({ patch: ServerSettingsPatch }), success: ServerSettings, error: Schema.Union([ServerSettingsError, EnvironmentAuthorizationError]), }); export const WsServerDiscoverSourceControlRpc = Rpc.make(WS_METHODS.serverDiscoverSourceControl, { payload: Schema.Struct({}), success: SourceControlDiscoveryResult, error: EnvironmentAuthorizationError, }); export const WsServerGetTraceDiagnosticsRpc = Rpc.make(WS_METHODS.serverGetTraceDiagnostics, { payload: Schema.Struct({}), success: ServerTraceDiagnosticsResult, error: EnvironmentAuthorizationError, }); export const WsServerGetProcessDiagnosticsRpc = Rpc.make(WS_METHODS.serverGetProcessDiagnostics, { payload: Schema.Struct({}), success: ServerProcessDiagnosticsResult, error: EnvironmentAuthorizationError, }); export const WsServerGetProcessResourceHistoryRpc = Rpc.make( WS_METHODS.serverGetProcessResourceHistory, { payload: ServerProcessResourceHistoryInput, success: ServerProcessResourceHistoryResult, error: EnvironmentAuthorizationError, }, ); export const WsServerGetResourceTelemetryHistoryRpc = Rpc.make( WS_METHODS.serverGetResourceTelemetryHistory, { payload: ResourceTelemetryHistoryInput, success: ResourceTelemetryHistory, error: EnvironmentAuthorizationError, }, ); export const WsServerRetryResourceTelemetryRpc = Rpc.make(WS_METHODS.serverRetryResourceTelemetry, { payload: Schema.Struct({}), success: ResourceTelemetryRetryResult, error: EnvironmentAuthorizationError, }); export const WsServerGetUsageSummaryRpc = Rpc.make(WS_METHODS.serverGetUsageSummary, { payload: UsageSummaryInput, success: UsageSummary, error: Schema.Union([EnvironmentAuthorizationError, UsageReadError]), }); export const WsServerSignalProcessRpc = Rpc.make(WS_METHODS.serverSignalProcess, { payload: ServerSignalProcessInput, success: ServerSignalProcessResult, error: EnvironmentAuthorizationError, }); export const WsCloudGetRelayClientStatusRpc = Rpc.make(WS_METHODS.cloudGetRelayClientStatus, { payload: Schema.Struct({}), success: RelayClientStatusSchema, error: EnvironmentAuthorizationError, }); export const WsCloudInstallRelayClientRpc = Rpc.make(WS_METHODS.cloudInstallRelayClient, { payload: Schema.Struct({}), success: RelayClientInstallProgressEventSchema, error: Schema.Union([RelayClientInstallFailedError, EnvironmentAuthorizationError]), stream: true, }); export const WsServerReportClientActivityRpc = Rpc.make(WS_METHODS.serverReportClientActivity, { payload: ClientActivityReportInput, error: EnvironmentAuthorizationError, }); export const WsServerReportHostPowerStateRpc = Rpc.make(WS_METHODS.serverReportHostPowerState, { payload: HostPowerSnapshot, error: EnvironmentAuthorizationError, }); export const WsServerGetBackgroundPolicyRpc = Rpc.make(WS_METHODS.serverGetBackgroundPolicy, { payload: Schema.Struct({}), success: BackgroundPolicySnapshot, error: EnvironmentAuthorizationError, }); const PullRequestRpcError = Schema.Union([ PullRequestUnavailableError, PullRequestOperationError, EnvironmentAuthorizationError, ]); export const WsPullRequestsListRpc = Rpc.make(WS_METHODS.pullRequestsList, { payload: PullRequestListInput, success: PullRequestListResult, error: PullRequestRpcError, }); /** * The line counts for rows already on the page. Its own call because on GitHub the pair costs * 40-60% of the listing read that answers everything else on the row, so the rows arrive first * and their stats a moment later. */ export const WsPullRequestsListStatsRpc = Rpc.make(WS_METHODS.pullRequestsListStats, { payload: PullRequestListStatsInput, success: PullRequestListStatsResult, error: PullRequestRpcError, }); export const WsPullRequestsDetailRpc = Rpc.make(WS_METHODS.pullRequestsDetail, { payload: PullRequestRef, success: PullRequestDetail, error: PullRequestRpcError, }); export const WsPullRequestsActivityRpc = Rpc.make(WS_METHODS.pullRequestsActivity, { payload: PullRequestRef, success: PullRequestActivity, error: PullRequestRpcError, }); export const WsPullRequestsThreadCommentsRpc = Rpc.make(WS_METHODS.pullRequestsThreadComments, { payload: PullRequestThreadCommentsInput, success: PullRequestThreadCommentsResult, error: PullRequestRpcError, }); export const WsPullRequestsDiffFileContentsRpc = Rpc.make(WS_METHODS.pullRequestsDiffFileContents, { payload: PullRequestDiffFileContentsInput, success: PullRequestDiffFileContentsResult, error: PullRequestRpcError, }); export const WsPullRequestsRunActionRpc = Rpc.make(WS_METHODS.pullRequestsRunAction, { payload: PullRequestActionInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsUpdateRpc = Rpc.make(WS_METHODS.pullRequestsUpdate, { payload: PullRequestUpdateInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsCommentRpc = Rpc.make(WS_METHODS.pullRequestsComment, { payload: PullRequestCommentInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsUpdateCommentRpc = Rpc.make(WS_METHODS.pullRequestsUpdateComment, { payload: PullRequestCommentUpdateInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsSubmitReviewRpc = Rpc.make(WS_METHODS.pullRequestsSubmitReview, { payload: PullRequestSubmitReviewInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsReplyToThreadRpc = Rpc.make(WS_METHODS.pullRequestsReplyToThread, { payload: PullRequestThreadReplyInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsSetThreadResolutionRpc = Rpc.make( WS_METHODS.pullRequestsSetThreadResolution, { payload: PullRequestThreadResolutionInput, success: Schema.Void, error: PullRequestRpcError, }, ); export const WsPullRequestsSetReactionRpc = Rpc.make(WS_METHODS.pullRequestsSetReaction, { payload: PullRequestReactionInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsPullRequestsInvalidateRpc = Rpc.make(WS_METHODS.pullRequestsInvalidate, { payload: PullRequestInvalidateInput, success: Schema.Void, error: PullRequestRpcError, }); /** * Read on its own rather than as part of the detail: the people who may be asked are only wanted * once somebody opens the menu, and reading them with every change request would spend a request * per host on a list nobody looked at. */ export const WsPullRequestsReviewerCandidatesRpc = Rpc.make( WS_METHODS.pullRequestsReviewerCandidates, { payload: PullRequestRef, success: PullRequestReviewerCandidateList, error: PullRequestRpcError, }, ); export const WsPullRequestsRequestReviewersRpc = Rpc.make(WS_METHODS.pullRequestsRequestReviewers, { payload: PullRequestReviewerRequestInput, success: Schema.Void, error: PullRequestRpcError, }); export const WsSourceControlLookupRepositoryRpc = Rpc.make( WS_METHODS.sourceControlLookupRepository, { payload: SourceControlRepositoryLookupInput, success: SourceControlRepositoryInfo, error: Schema.Union([SourceControlRepositoryError, EnvironmentAuthorizationError]), }, ); export const WsSourceControlCloneRepositoryRpc = Rpc.make(WS_METHODS.sourceControlCloneRepository, { payload: SourceControlCloneRepositoryInput, success: SourceControlCloneRepositoryResult, error: Schema.Union([SourceControlRepositoryError, EnvironmentAuthorizationError]), }); export const WsSourceControlPublishRepositoryRpc = Rpc.make( WS_METHODS.sourceControlPublishRepository, { payload: SourceControlPublishRepositoryInput, success: SourceControlPublishRepositoryResult, error: Schema.Union([SourceControlRepositoryError, EnvironmentAuthorizationError]), }, ); export const WsProjectsSearchEntriesRpc = Rpc.make(WS_METHODS.projectsSearchEntries, { payload: ProjectSearchEntriesInput, success: ProjectSearchEntriesResult, error: Schema.Union([ProjectSearchEntriesError, EnvironmentAuthorizationError]), }); export const WsProjectsSearchContentsRpc = Rpc.make(WS_METHODS.projectsSearchContents, { payload: ProjectSearchContentsInput, success: ProjectSearchContentsResult, error: Schema.Union([ProjectSearchContentsError, EnvironmentAuthorizationError]), }); export const WsProjectsListEntriesRpc = Rpc.make(WS_METHODS.projectsListEntries, { payload: ProjectListEntriesInput, success: ProjectListEntriesResult, error: Schema.Union([ProjectListEntriesError, EnvironmentAuthorizationError]), }); export const WsProjectsReadFileRpc = Rpc.make(WS_METHODS.projectsReadFile, { payload: ProjectReadFileInput, success: ProjectReadFileResult, error: Schema.Union([ProjectReadFileError, EnvironmentAuthorizationError]), }); export const WsProjectsWriteFileRpc = Rpc.make(WS_METHODS.projectsWriteFile, { payload: ProjectWriteFileInput, success: ProjectWriteFileResult, error: Schema.Union([ProjectWriteFileError, EnvironmentAuthorizationError]), }); export const WsShellOpenInEditorRpc = Rpc.make(WS_METHODS.shellOpenInEditor, { payload: LaunchEditorInput, error: Schema.Union([ExternalLauncherError, EnvironmentAuthorizationError]), }); export const WsFilesystemBrowseRpc = Rpc.make(WS_METHODS.filesystemBrowse, { payload: FilesystemBrowseInput, success: FilesystemBrowseResult, error: Schema.Union([FilesystemBrowseError, EnvironmentAuthorizationError]), }); export const WsAssetsCreateUrlRpc = Rpc.make(WS_METHODS.assetsCreateUrl, { payload: AssetCreateUrlInput, success: AssetCreateUrlResult, error: Schema.Union([AssetAccessError, EnvironmentAuthorizationError]), }); export const WsSubscribeVcsStatusRpc = Rpc.make(WS_METHODS.subscribeVcsStatus, { payload: VcsStatusInput, success: VcsStatusStreamEvent, error: Schema.Union([GitManagerServiceError, EnvironmentAuthorizationError]), stream: true, }); export const WsVcsPullRpc = Rpc.make(WS_METHODS.vcsPull, { payload: VcsPullInput, success: VcsPullResult, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsRefreshStatusRpc = Rpc.make(WS_METHODS.vcsRefreshStatus, { payload: VcsStatusInput, success: VcsStatusResult, error: Schema.Union([GitManagerServiceError, EnvironmentAuthorizationError]), }); export const WsGitRunStackedActionRpc = Rpc.make(WS_METHODS.gitRunStackedAction, { payload: GitRunStackedActionInput, success: GitActionProgressEvent, error: Schema.Union([GitManagerServiceError, EnvironmentAuthorizationError]), stream: true, }); export const WsGitResolvePullRequestRpc = Rpc.make(WS_METHODS.gitResolvePullRequest, { payload: GitPullRequestRefInput, success: GitResolvePullRequestResult, error: Schema.Union([GitManagerServiceError, EnvironmentAuthorizationError]), }); export const WsGitPreparePullRequestThreadRpc = Rpc.make(WS_METHODS.gitPreparePullRequestThread, { payload: GitPreparePullRequestThreadInput, success: GitPreparePullRequestThreadResult, error: Schema.Union([GitManagerServiceError, EnvironmentAuthorizationError]), }); export const WsVcsListRefsRpc = Rpc.make(WS_METHODS.vcsListRefs, { payload: VcsListRefsInput, success: VcsListRefsResult, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsCreateWorktreeRpc = Rpc.make(WS_METHODS.vcsCreateWorktree, { payload: VcsCreateWorktreeInput, success: VcsCreateWorktreeResult, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsRemoveWorktreeRpc = Rpc.make(WS_METHODS.vcsRemoveWorktree, { payload: VcsRemoveWorktreeInput, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsCreateRefRpc = Rpc.make(WS_METHODS.vcsCreateRef, { payload: VcsCreateRefInput, success: VcsCreateRefResult, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsSwitchRefRpc = Rpc.make(WS_METHODS.vcsSwitchRef, { payload: VcsSwitchRefInput, success: VcsSwitchRefResult, error: Schema.Union([GitCommandError, EnvironmentAuthorizationError]), }); export const WsVcsInitRpc = Rpc.make(WS_METHODS.vcsInit, { payload: VcsInitInput, error: Schema.Union([VcsError, EnvironmentAuthorizationError]), }); /** * Ephemeral live diff preview for compact/mobile surfaces. * Not the persisted T3 Review model. Future review sessions should use * review.open* + review.getSnapshot. */ export const WsReviewGetDiffPreviewRpc = Rpc.make(WS_METHODS.reviewGetDiffPreview, { payload: ReviewDiffPreviewInput, success: ReviewDiffPreviewResult, error: Schema.Union([ReviewDiffPreviewError, EnvironmentAuthorizationError]), }); export const WsReviewGetDiffFileContentsRpc = Rpc.make(WS_METHODS.reviewGetDiffFileContents, { payload: ReviewDiffFileContentsInput, success: ReviewDiffFileContentsResult, error: Schema.Union([ReviewDiffPreviewError, EnvironmentAuthorizationError]), }); export const WsTerminalOpenRpc = Rpc.make(WS_METHODS.terminalOpen, { payload: TerminalOpenInput, success: TerminalSessionSnapshot, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsTerminalAttachRpc = Rpc.make(WS_METHODS.terminalAttach, { payload: TerminalAttachInput, success: TerminalAttachStreamEvent, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), stream: true, }); export const WsTerminalWriteRpc = Rpc.make(WS_METHODS.terminalWrite, { payload: TerminalWriteInput, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsTerminalResizeRpc = Rpc.make(WS_METHODS.terminalResize, { payload: TerminalResizeInput, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsTerminalClearRpc = Rpc.make(WS_METHODS.terminalClear, { payload: TerminalClearInput, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsTerminalRestartRpc = Rpc.make(WS_METHODS.terminalRestart, { payload: TerminalRestartInput, success: TerminalSessionSnapshot, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsTerminalCloseRpc = Rpc.make(WS_METHODS.terminalClose, { payload: TerminalCloseInput, error: Schema.Union([TerminalError, EnvironmentAuthorizationError]), }); export const WsPreviewOpenRpc = Rpc.make(WS_METHODS.previewOpen, { payload: PreviewOpenInput, success: PreviewSessionSnapshot, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewNavigateRpc = Rpc.make(WS_METHODS.previewNavigate, { payload: PreviewNavigateInput, success: PreviewSessionSnapshot, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewResizeRpc = Rpc.make(WS_METHODS.previewResize, { payload: PreviewResizeInput, success: PreviewSessionSnapshot, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewRefreshRpc = Rpc.make(WS_METHODS.previewRefresh, { payload: PreviewRefreshInput, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewCloseRpc = Rpc.make(WS_METHODS.previewClose, { payload: PreviewCloseInput, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewListRpc = Rpc.make(WS_METHODS.previewList, { payload: PreviewListInput, success: PreviewListResult, error: EnvironmentAuthorizationError, }); export const WsPreviewReportStatusRpc = Rpc.make(WS_METHODS.previewReportStatus, { payload: PreviewReportStatusInput, error: Schema.Union([PreviewError, EnvironmentAuthorizationError]), }); export const WsPreviewAutomationConnectRpc = Rpc.make(WS_METHODS.previewAutomationConnect, { payload: PreviewAutomationHost, success: PreviewAutomationStreamEvent, error: Schema.Union([PreviewAutomationError, EnvironmentAuthorizationError]), stream: true, }); export const WsPreviewAutomationRespondRpc = Rpc.make(WS_METHODS.previewAutomationRespond, { payload: PreviewAutomationResponse, error: Schema.Union([PreviewAutomationError, EnvironmentAuthorizationError]), }); export const WsPreviewAutomationFocusHostRpc = Rpc.make(WS_METHODS.previewAutomationFocusHost, { payload: PreviewAutomationHostFocus, error: EnvironmentAuthorizationError, }); export const WsSubscribePreviewEventsRpc = Rpc.make(WS_METHODS.subscribePreviewEvents, { payload: Schema.Struct({}), success: PreviewEvent, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribeDiscoveredLocalServersRpc = Rpc.make( WS_METHODS.subscribeDiscoveredLocalServers, { payload: Schema.Struct({ configuredUrls: Schema.optional(ConfiguredLocalServerUrls), }), success: DiscoveredLocalServerList, error: EnvironmentAuthorizationError, stream: true, }, ); export const WsOrchestrationDispatchCommandRpc = Rpc.make( ORCHESTRATION_WS_METHODS.dispatchCommand, { payload: ClientOrchestrationCommand, success: OrchestrationRpcSchemas.dispatchCommand.output, error: Schema.Union([OrchestrationDispatchCommandError, EnvironmentAuthorizationError]), }, ); export const WsOrchestrationGetWorkflowScriptRpc = Rpc.make( ORCHESTRATION_WS_METHODS.getWorkflowScript, { payload: OrchestrationRpcSchemas.getWorkflowScript.input, success: OrchestrationRpcSchemas.getWorkflowScript.output, error: Schema.Union([OrchestrationGetWorkflowScriptError, EnvironmentAuthorizationError]), }, ); export const WsOrchestrationGetTurnDiffRpc = Rpc.make(ORCHESTRATION_WS_METHODS.getTurnDiff, { payload: OrchestrationGetTurnDiffInput, success: OrchestrationRpcSchemas.getTurnDiff.output, error: Schema.Union([OrchestrationGetTurnDiffError, EnvironmentAuthorizationError]), }); export const WsOrchestrationGetFullThreadDiffRpc = Rpc.make( ORCHESTRATION_WS_METHODS.getFullThreadDiff, { payload: OrchestrationGetFullThreadDiffInput, success: OrchestrationRpcSchemas.getFullThreadDiff.output, error: Schema.Union([OrchestrationGetFullThreadDiffError, EnvironmentAuthorizationError]), }, ); export const WsOrchestrationSearchThreadsRpc = Rpc.make(ORCHESTRATION_WS_METHODS.searchThreads, { payload: OrchestrationSearchThreadsInput, success: OrchestrationRpcSchemas.searchThreads.output, error: Schema.Union([OrchestrationSearchThreadsError, EnvironmentAuthorizationError]), }); export const WsOrchestrationGetArchivedShellSnapshotRpc = Rpc.make( ORCHESTRATION_WS_METHODS.getArchivedShellSnapshot, { payload: OrchestrationRpcSchemas.getArchivedShellSnapshot.input, success: OrchestrationRpcSchemas.getArchivedShellSnapshot.output, error: Schema.Union([OrchestrationGetSnapshotError, EnvironmentAuthorizationError]), }, ); export const WsOrchestrationSubscribeShellRpc = Rpc.make(ORCHESTRATION_WS_METHODS.subscribeShell, { payload: OrchestrationRpcSchemas.subscribeShell.input, success: OrchestrationRpcSchemas.subscribeShell.output, error: Schema.Union([OrchestrationGetSnapshotError, EnvironmentAuthorizationError]), stream: true, }); export const WsOrchestrationSubscribeThreadRpc = Rpc.make( ORCHESTRATION_WS_METHODS.subscribeThread, { payload: OrchestrationRpcSchemas.subscribeThread.input, success: OrchestrationRpcSchemas.subscribeThread.output, error: Schema.Union([OrchestrationGetSnapshotError, EnvironmentAuthorizationError]), stream: true, }, ); export const WsSubscribeTerminalEventsRpc = Rpc.make(WS_METHODS.subscribeTerminalEvents, { payload: Schema.Struct({}), success: TerminalEvent, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribeTerminalMetadataRpc = Rpc.make(WS_METHODS.subscribeTerminalMetadata, { payload: Schema.Struct({}), success: TerminalMetadataStreamEvent, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribeServerConfigRpc = Rpc.make(WS_METHODS.subscribeServerConfig, { payload: Schema.Struct({}), success: ServerConfigStreamEvent, error: Schema.Union([KeybindingsConfigError, ServerSettingsError, EnvironmentAuthorizationError]), stream: true, }); export const WsSubscribeServerLifecycleRpc = Rpc.make(WS_METHODS.subscribeServerLifecycle, { payload: Schema.Struct({}), success: ServerLifecycleStreamEvent, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribeAuthAccessRpc = Rpc.make(WS_METHODS.subscribeAuthAccess, { payload: Schema.Struct({}), success: AuthAccessStreamEvent, error: Schema.Union([AuthAccessStreamError, EnvironmentAuthorizationError]), stream: true, }); export const WsSubscribeBackgroundPolicyRpc = Rpc.make(WS_METHODS.subscribeBackgroundPolicy, { payload: Schema.Struct({}), success: BackgroundPolicySnapshot, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribeResourceTelemetryRpc = Rpc.make(WS_METHODS.subscribeResourceTelemetry, { payload: Schema.Struct({}), success: ResourceTelemetrySnapshot, error: EnvironmentAuthorizationError, stream: true, }); export const WsSubscribePluginCommandsRpc = Rpc.make(WS_METHODS.subscribePluginCommands, { payload: Schema.Struct({}), success: PluginCommandCatalog, error: EnvironmentAuthorizationError, stream: true, }); export const WsRpcGroup = RpcGroup.make( WsServerProbeRpc, WsServerGetConfigRpc, WsPluginCommandsListRpc, WsPluginCommandsInvokeRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpdateServerRpc, WsServerUpdateServerWithProgressRpc, WsServerUpsertKeybindingRpc, WsServerRemoveKeybindingRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerDiscoverSourceControlRpc, WsServerGetTraceDiagnosticsRpc, WsServerGetProcessDiagnosticsRpc, WsServerGetProcessResourceHistoryRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerGetUsageSummaryRpc, WsServerSignalProcessRpc, WsServerReportClientActivityRpc, WsServerReportHostPowerStateRpc, WsServerGetBackgroundPolicyRpc, WsCloudGetRelayClientStatusRpc, WsCloudInstallRelayClientRpc, WsPullRequestsListRpc, WsPullRequestsListStatsRpc, WsPullRequestsDetailRpc, WsPullRequestsActivityRpc, WsPullRequestsThreadCommentsRpc, WsPullRequestsDiffFileContentsRpc, WsPullRequestsRunActionRpc, WsPullRequestsUpdateRpc, WsPullRequestsCommentRpc, WsPullRequestsUpdateCommentRpc, WsPullRequestsSubmitReviewRpc, WsPullRequestsReplyToThreadRpc, WsPullRequestsSetThreadResolutionRpc, WsPullRequestsSetReactionRpc, WsPullRequestsInvalidateRpc, WsPullRequestsReviewerCandidatesRpc, WsPullRequestsRequestReviewersRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsProjectsListEntriesRpc, WsProjectsReadFileRpc, WsProjectsSearchContentsRpc, WsProjectsSearchEntriesRpc, WsProjectsWriteFileRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsAssetsCreateUrlRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsReviewGetDiffPreviewRpc, WsReviewGetDiffFileContentsRpc, WsTerminalOpenRpc, WsTerminalAttachRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeTerminalMetadataRpc, WsPreviewOpenRpc, WsPreviewNavigateRpc, WsPreviewResizeRpc, WsPreviewRefreshRpc, WsPreviewCloseRpc, WsPreviewListRpc, WsPreviewReportStatusRpc, WsPreviewAutomationConnectRpc, WsPreviewAutomationRespondRpc, WsPreviewAutomationFocusHostRpc, WsSubscribePreviewEventsRpc, WsSubscribeDiscoveredLocalServersRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsSubscribeBackgroundPolicyRpc, WsSubscribeResourceTelemetryRpc, WsSubscribePluginCommandsRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadsRpc, WsOrchestrationGetArchivedShellSnapshotRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, );