@otto-code/client 0.8.9 → 0.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/daemon-client.d.ts +171 -4
- package/dist/daemon-client.js +311 -3
- package/package.json +3 -3
package/dist/daemon-client.d.ts
CHANGED
|
@@ -3,10 +3,10 @@ import type { z } from "zod";
|
|
|
3
3
|
import type { ProjectGithubCloneProtocol } from "@otto-code/protocol/messages";
|
|
4
4
|
import { type ClientCapability } from "@otto-code/protocol/client-capabilities";
|
|
5
5
|
import { AgentRefreshedStatusPayloadSchema, CheckoutRenameBranchResponseSchema, RenameTerminalResponseSchema, RestartRequestedStatusPayloadSchema, ShutdownRequestedStatusPayloadSchema, DaemonUpdateResponseSchema, type ServerInfoStatusPayload } from "@otto-code/protocol/messages";
|
|
6
|
-
import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreateOttoWorktreeRequest, CodeListFilesResponse, CodeSymbolLocation, CodeDefinitionLocation, CodeDefinitionStatus, CodeRenameApplyStatus, CodeRenameFileOutcome, CodeRenameUndoFile, CodeRenameUndoStatus, CodeHoverRange, CodeRenameEdit, CodeRenameFilePlan, LspLanguageState, LspRunningServer, CodeSolutionGetTreeResponse, CodeSolutionLoadProjectResponse, SolutionFormat, SolutionRef, SolutionTreeFolder, SolutionTreeProject, SolutionProjectNode, SolutionProjectStatus, SolutionPackageReference, FileCreateResult, FileDeleteResult, FileDownloadTokenResponse, FileEntryKind, FileEol, FileRenameResult, FileReplaceFileResult, FileReplaceRequest, FileReplaceResponse, FileSearchResultPayload, FileSearchSummary, FileUploadResponse, FileExplorerResponse, FileWatchEventPayload, FileWriteResult, FileRefineResult, FileRefineDocument, FileRefineReference, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutGitCommitResponse, CheckoutGitCommitAgentResponse, CheckoutGitRollbackResponse, CheckoutGitFileHistoryResponse, CheckoutGitFileCommitDiffResponse, CheckoutGitFileBlameResponse, CheckoutGitFileOriginResponse, CheckoutGitGetOperationLogResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, PreviewListConfigResponse, PreviewStartResponse, PreviewBindTabResponse, PreviewStopResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, FileVersion, CheckoutCommit, ParsedDiffFile, WorkspaceRecoveryState, CheckoutForgeGetCheckDetailsResponse, CheckoutForgeSetAutoMergeResponse, ProjectCreateDirectoryResponse, FsFileWriteResult, FsFileWriteBinaryResult, GitHubSearchResponse, GitHubSearchRequest, ForgeSearchResponse, ForgeSearchRequest, GitHostingProviderId, HostingSearchRequest, HostingSearchResponse, HostingAuthStatusResponse, DirectorySuggestionsResponse, OttoWorktreeListResponse, OttoWorktreeArchiveResponse, ProjectIconResponse, ContextCategory, ContextPromptPreviewGetResponseMessage, ContextReportGetResponseMessage, ContextEdgeConvertResponseMessage, ContextFindingsFixResponseMessage, PersonalityMemoryListResponseMessage, PersonalityMemoryUpdateResponseMessage, PersonalityMemoryTransferResponseMessage, PersonalityMemoryStatsResponseMessage, ProjectKnowledgeListResponseMessage, ProjectKnowledgeGetResponseMessage, ProjectKnowledgeCreateResponseMessage, ProjectKnowledgeApplyResponseMessage, ProjectKnowledgeStatusResponseMessage, ProjectKnowledgeProjectApplyResponseMessage, ProjectKnowledgeReferenceApplyResponseMessage, ProjectKnowledgeRootApplyResponseMessage, ProjectKnowledgeDeleteResponseMessage, ProjectAddResponse, ProjectResolveWorkspaceForPathResponse, ProjectScaffoldGit, ProjectScaffoldProgress, ProjectScaffoldResponse, HostingListRepositoriesResponse, HostingListOwnersResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceArchivePreflightResponse, WorktreeBaseRefSetResponse, WorktreeReattachListResponse, WorktreeReattachResponse, WorktreeReattachTarget, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, StatsActivityGetResponseMessage, StatsActivityResetResponseMessage, UsageLogGetResponseMessage, AgentContextGetUsageResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, AttachmentsImagesClearResponse, AttachmentsImagesStatsResponse, HistoryAgentsClearArchivedResponse, HistoryAgentsStorageStatsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalCompatibilityDiagnosticResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, AgentPromptDelivery, TasksSuggestedStartMode, OttoConfigRaw, OttoConfigRevision, WorkspaceCreateRequest } from "@otto-code/protocol/messages";
|
|
6
|
+
import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreateOttoWorktreeRequest, CodeListFilesResponse, CodeSymbolLocation, CodeDefinitionLocation, CodeDefinitionStatus, CodeRenameApplyStatus, CodeRenameFileOutcome, CodeRenameUndoFile, CodeRenameUndoStatus, CodeHoverRange, CodeRenameEdit, CodeRenameFilePlan, LspLanguageState, LspRunningServer, CodeSolutionGetTreeResponse, CodeSolutionLoadProjectResponse, SolutionFormat, SolutionRef, SolutionTreeFolder, SolutionTreeProject, SolutionProjectNode, SolutionProjectStatus, SolutionPackageReference, FileCreateResult, FileDeleteResult, FileDownloadTokenResponse, FileEntryKind, FileEol, FileRenameResult, FileReplaceFileResult, FileReplaceRequest, FileReplaceResponse, FileSearchResultPayload, FileSearchSummary, FileUploadResponse, FileExplorerResponse, FileWatchEventPayload, FileWriteResult, FileRefineResult, FileRefineDocument, FileRefineReference, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutGitCommitResponse, CheckoutGitCommitAgentResponse, CheckoutGitRollbackResponse, CheckoutGitFileHistoryResponse, CheckoutGitFileCommitDiffResponse, CheckoutGitFileBlameResponse, CheckoutGitFileOriginResponse, CheckoutGitGetOperationLogResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutGitFetchResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, PreviewListConfigResponse, PreviewStartResponse, PreviewBindTabResponse, PreviewStopResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, KanbanBoardsListResponse, ProjectKanbanTarget, KanbanBoardGetResponse, KanbanCardMoveResponse, KanbanCardCreateResponse, KanbanTaskLinkResponse, ValidateBranchResponse, BranchSuggestionsResponse, FileVersion, CheckoutCommit, ParsedDiffFile, WorkspaceRecoveryState, CheckoutForgeGetCheckDetailsResponse, CheckoutForgeSetAutoMergeResponse, ProjectCreateDirectoryResponse, FsFileWriteResult, FsFileWriteBinaryResult, GitHubSearchResponse, GitHubSearchRequest, ForgeSearchResponse, ForgeSearchRequest, GitHostingProviderId, HostingSearchRequest, HostingSearchResponse, HostingAuthStatusResponse, DirectorySuggestionsResponse, OttoWorktreeListResponse, OttoWorktreeArchiveResponse, ProjectIconResponse, ContextCategory, ContextPromptPreviewGetResponseMessage, ContextReportGetResponseMessage, ContextEdgeConvertResponseMessage, ContextFindingsFixResponseMessage, PersonalityMemoryListResponseMessage, PersonalityMemoryUpdateResponseMessage, PersonalityMemoryTransferResponseMessage, PersonalityMemoryStatsResponseMessage, ProjectKnowledgeListResponseMessage, ProjectKnowledgeGetResponseMessage, ProjectKnowledgeCreateResponseMessage, ProjectKnowledgeApplyResponseMessage, ProjectKnowledgeStatusResponseMessage, ProjectKnowledgeProjectApplyResponseMessage, ProjectKnowledgeReferenceApplyResponseMessage, ProjectKnowledgeRootApplyResponseMessage, ProjectKnowledgeDeleteResponseMessage, ProjectAddResponse, ProjectResolveWorkspaceForPathResponse, ProjectScaffoldGit, ProjectScaffoldProgress, ProjectScaffoldResponse, HostingListRepositoriesResponse, HostingListOwnersResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceArchivePreflightResponse, WorktreeBaseRefSetResponse, WorktreeReattachListResponse, WorktreeReattachResponse, WorktreeReattachTarget, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, StatsActivityGetResponseMessage, StatsActivityResetResponseMessage, UsageLogGetResponseMessage, AgentContextGetUsageResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, AttachmentsImagesClearResponse, AttachmentsImagesStatsResponse, HistoryAgentsClearArchivedResponse, HistoryAgentsStorageStatsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalCompatibilityDiagnosticResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, AgentPromptDelivery, TasksSuggestedStartMode, OttoConfigRaw, OttoConfigRevision, WorkspaceCreateRequest } from "@otto-code/protocol/messages";
|
|
7
7
|
import type { AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentProviderNotice, AgentProvider, AgentSessionConfig } from "@otto-code/protocol/agent-types";
|
|
8
8
|
import type { OrchestrationGraph, PromptTemplate, Run } from "@otto-code/protocol/orchestration";
|
|
9
|
-
import type { BrainCatalogModel, BrainDiskUsage, BrainEvals, BrainHfSearchResult, BrainHostStatus, BrainInstalledModel, BrainInventoryModel, BrainJob, BrainLogsTailResponse, BrainModelBudgetGetResponse, BrainModelDeleteResponse, BrainModelLoadResponse, BrainModelProfileGetResponse, BrainModelProfileSetResponse, BrainModelRenameResetResponse, BrainModelRenameResponse, BrainNetworkInfo, BrainRemoteConfig, BrainRepoQuant, BrainRuntime, ConnectorsListToolsResponse, ConnectorsOauthAuthorizeResponse, ConnectorsOauthDisconnectResponse, CueMoment, MutableDaemonConfig, MutableDaemonConfigPatch, ProjectLink, SpeechSettingsOptions, SpeechTtsPreviewResult, SpeechTtsSpeakResult, SpeechTtsSpeakCancelResult, VisualizerVoiceCuesResult, AgentPersonalitiesGenerateProfileResult } from "@otto-code/protocol/messages";
|
|
9
|
+
import type { BrainCatalogModel, BrainDiskUsage, BrainEvals, BrainHfSearchResult, BrainHostStatus, BrainInstalledModel, BrainInventoryModel, BrainJob, BrainLogsTailResponse, BrainLogsWatchResponse, BrainModelBudgetGetResponse, BrainModelDeleteResponse, BrainModelLoadResponse, BrainModelProfileGetResponse, BrainModelProfileSetResponse, BrainModelRenameResetResponse, BrainModelRenameResponse, BrainNetworkInfo, BrainRemoteConfig, BrainRepoQuant, BrainRuntime, ConnectorsListToolsResponse, ConnectorsOauthAuthorizeResponse, ConnectorsOauthDisconnectResponse, CommunicationsGetOverviewResponse, CommunicationsInboxGetHomeResponse, CommunicationsInboxNotificationsAcknowledgeResponse, CommunicationsInboxSearchResponse, CommunicationsInboxSetFavoriteResponse, CommunicationsInboxGetPresenceResponse, CommunicationsInboxGetMessagesResponse, CommunicationsInboxSetPresenceResponse, CommunicationsInboxSetEnabledResponse, CommunicationsInboxSendMessageResponse, CommunicationsRoomGetResponse, CommunicationsRoomThreadGetResponse, CommunicationsRoomMessageSendResponse, CommunicationsRoomReactionSetResponse, IntegrationsAuthorizationGetOverviewResponse, IntegrationsAuthorizationGetMethodsResponse, IntegrationsAuthorizationStartBrowserResponse, IntegrationsZoomStartAuthorizationResponse, CueMoment, MutableDaemonConfig, MutableDaemonConfigPatch, ProjectLink, SpeechSettingsOptions, SpeechTtsPreviewResult, SpeechTtsSpeakResult, SpeechTtsSpeakCancelResult, VisualizerVoiceCuesResult, AgentPersonalitiesGenerateProfileResult } from "@otto-code/protocol/messages";
|
|
10
10
|
import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
|
|
11
11
|
import { type DaemonClientTrafficHotspot, type DaemonClientTrafficTotals } from "./daemon-client-runtime-metrics.js";
|
|
12
12
|
import { type TerminalStreamEvent } from "./terminal-stream-router.js";
|
|
@@ -197,6 +197,7 @@ type CheckoutMergeFromBasePayload = CheckoutMergeFromBaseResponse["payload"];
|
|
|
197
197
|
type CheckoutPullPayload = CheckoutPullResponse["payload"];
|
|
198
198
|
type CheckoutPushPayload = CheckoutPushResponse["payload"];
|
|
199
199
|
type CheckoutRefreshPayload = CheckoutRefreshResponse["payload"];
|
|
200
|
+
type CheckoutGitFetchPayload = CheckoutGitFetchResponse["payload"];
|
|
200
201
|
type CheckoutPrCreatePayload = CheckoutPrCreateResponse["payload"];
|
|
201
202
|
type CheckoutPrMergePayload = CheckoutPrMergeResponse["payload"];
|
|
202
203
|
type CheckoutGithubSetAutoMergePayload = CheckoutGithubSetAutoMergeResponse["payload"];
|
|
@@ -1137,6 +1138,18 @@ export declare class DaemonClient {
|
|
|
1137
1138
|
renameProject(projectId: string, customName: string | null, requestId?: string): Promise<{
|
|
1138
1139
|
customName: string | null;
|
|
1139
1140
|
}>;
|
|
1141
|
+
/**
|
|
1142
|
+
* Sets (or with a null target, clears) which tracking board a project shows
|
|
1143
|
+
* on the Kanban screen. The daemon normalizes what it stores - a pasted board
|
|
1144
|
+
* URL comes back as the parsed id - so the caller should render the returned
|
|
1145
|
+
* target rather than its own draft.
|
|
1146
|
+
*/
|
|
1147
|
+
setKanbanProjectTarget(input: {
|
|
1148
|
+
projectId: string;
|
|
1149
|
+
target: ProjectKanbanTarget | null;
|
|
1150
|
+
}, requestId?: string): Promise<{
|
|
1151
|
+
target: ProjectKanbanTarget | null;
|
|
1152
|
+
}>;
|
|
1140
1153
|
removeProject(projectId: string, requestId?: string): Promise<{
|
|
1141
1154
|
removedWorkspaceIds: string[];
|
|
1142
1155
|
}>;
|
|
@@ -1180,6 +1193,42 @@ export declare class DaemonClient {
|
|
|
1180
1193
|
parentPath: string;
|
|
1181
1194
|
name: string;
|
|
1182
1195
|
}, requestId?: string): Promise<ProjectCreateDirectoryPayload>;
|
|
1196
|
+
/**
|
|
1197
|
+
* The provider-agnostic Kanban board surface. Each call names its provider
|
|
1198
|
+
* ("memory", "github", ...) - the daemon dispatches to the registered
|
|
1199
|
+
* KanbanProvider implementation and the wire never carries provider-native
|
|
1200
|
+
* identifiers beyond the opaque board/card/column ids.
|
|
1201
|
+
*
|
|
1202
|
+
* A project-scoped request is authoritative: the daemon resolves the
|
|
1203
|
+
* project's configured board target and overrides providerId from it. The
|
|
1204
|
+
* wire still carries providerId so older clients keep working; pass an inert
|
|
1205
|
+
* value (e.g. "github") when a project is supplied.
|
|
1206
|
+
*/
|
|
1207
|
+
kanbanListBoards(input: {
|
|
1208
|
+
providerId: string;
|
|
1209
|
+
projectId?: string;
|
|
1210
|
+
projectKey?: string;
|
|
1211
|
+
}, requestId?: string): Promise<KanbanBoardsListResponse["payload"]>;
|
|
1212
|
+
kanbanGetBoard(providerId: string, boardId: string, requestId?: string): Promise<KanbanBoardGetResponse["payload"]>;
|
|
1213
|
+
kanbanMoveCard(input: {
|
|
1214
|
+
providerId: string;
|
|
1215
|
+
boardId: string;
|
|
1216
|
+
cardId: string;
|
|
1217
|
+
targetColumnId: string;
|
|
1218
|
+
}, requestId?: string): Promise<KanbanCardMoveResponse["payload"]>;
|
|
1219
|
+
kanbanCreateCard(input: {
|
|
1220
|
+
providerId: string;
|
|
1221
|
+
boardId: string;
|
|
1222
|
+
columnId?: string;
|
|
1223
|
+
title: string;
|
|
1224
|
+
body?: string;
|
|
1225
|
+
}, requestId?: string): Promise<KanbanCardCreateResponse["payload"]>;
|
|
1226
|
+
kanbanLinkTask(input: {
|
|
1227
|
+
providerId: string;
|
|
1228
|
+
boardId: string;
|
|
1229
|
+
externalId: string;
|
|
1230
|
+
columnId?: string;
|
|
1231
|
+
}, requestId?: string): Promise<KanbanTaskLinkResponse["payload"]>;
|
|
1183
1232
|
getCommitFileDiff(cwd: string, sha: string, path: string, requestId?: string): Promise<{
|
|
1184
1233
|
file: ParsedDiffFile | null;
|
|
1185
1234
|
}>;
|
|
@@ -1324,6 +1373,7 @@ export declare class DaemonClient {
|
|
|
1324
1373
|
checkoutPull(cwd: string, requestId?: string): Promise<CheckoutPullPayload>;
|
|
1325
1374
|
checkoutPush(cwd: string, requestId?: string): Promise<CheckoutPushPayload>;
|
|
1326
1375
|
checkoutRefresh(cwd: string, requestId?: string): Promise<CheckoutRefreshPayload>;
|
|
1376
|
+
checkoutGitFetch(cwd: string, requestId?: string): Promise<CheckoutGitFetchPayload>;
|
|
1327
1377
|
checkoutPrCreate(cwd: string, input: {
|
|
1328
1378
|
title?: string;
|
|
1329
1379
|
body?: string;
|
|
@@ -1768,6 +1818,114 @@ export declare class DaemonClient {
|
|
|
1768
1818
|
connectorsOauthAuthorize(connectorId: string, scope?: string, requestId?: string): Promise<ConnectorsOauthAuthorizeResponse["payload"]>;
|
|
1769
1819
|
/** Drop a connector's stored authorization. */
|
|
1770
1820
|
connectorsOauthDisconnect(connectorId: string, requestId?: string): Promise<ConnectorsOauthDisconnectResponse["payload"]>;
|
|
1821
|
+
/**
|
|
1822
|
+
* Read the daemon-owned, provider-neutral communications inbox projection.
|
|
1823
|
+
* Requires server_info.features.communications; callers own that one gate.
|
|
1824
|
+
*/
|
|
1825
|
+
communicationsGetOverview(requestId?: string): Promise<CommunicationsGetOverviewResponse["payload"]["overview"]>;
|
|
1826
|
+
communicationsInboxGetHome(providerId: string, requestId?: string): Promise<CommunicationsInboxGetHomeResponse["payload"]["home"]>;
|
|
1827
|
+
communicationsInboxAcknowledgeNotifications(input: {
|
|
1828
|
+
providerId: string;
|
|
1829
|
+
notificationIds?: string[];
|
|
1830
|
+
conversationId?: string;
|
|
1831
|
+
clearAll?: boolean;
|
|
1832
|
+
}, requestId?: string): Promise<CommunicationsInboxNotificationsAcknowledgeResponse["payload"]["home"]>;
|
|
1833
|
+
communicationsInboxSearch(input: {
|
|
1834
|
+
providerId: string;
|
|
1835
|
+
query: string;
|
|
1836
|
+
}, requestId?: string): Promise<CommunicationsInboxSearchResponse["payload"]["results"]>;
|
|
1837
|
+
communicationsInboxSetFavorite(input: {
|
|
1838
|
+
providerId: string;
|
|
1839
|
+
conversationId: string;
|
|
1840
|
+
favorite: boolean;
|
|
1841
|
+
}, requestId?: string): Promise<CommunicationsInboxSetFavoriteResponse["payload"]["home"]>;
|
|
1842
|
+
communicationsInboxGetPresence(providerId: string, requestId?: string): Promise<CommunicationsInboxGetPresenceResponse["payload"]["presence"]>;
|
|
1843
|
+
communicationsInboxSetPresence(input: {
|
|
1844
|
+
providerId: string;
|
|
1845
|
+
status: "available" | "busy" | "do_not_disturb" | "away" | "out_of_office" | "unknown";
|
|
1846
|
+
}, requestId?: string): Promise<CommunicationsInboxSetPresenceResponse["payload"]["presence"]>;
|
|
1847
|
+
communicationsInboxSetEnabled(input: {
|
|
1848
|
+
providerId: string;
|
|
1849
|
+
enabled: boolean;
|
|
1850
|
+
}, requestId?: string): Promise<CommunicationsInboxSetEnabledResponse["payload"]["presence"]>;
|
|
1851
|
+
communicationsInboxGetMessages(input: {
|
|
1852
|
+
providerId: string;
|
|
1853
|
+
conversationId: string;
|
|
1854
|
+
}, requestId?: string): Promise<CommunicationsInboxGetMessagesResponse["payload"]["messages"]>;
|
|
1855
|
+
communicationsInboxSendMessage(input: {
|
|
1856
|
+
providerId: string;
|
|
1857
|
+
conversationId: string;
|
|
1858
|
+
text: string;
|
|
1859
|
+
}, requestId?: string): Promise<CommunicationsInboxSendMessageResponse["payload"]["message"]>;
|
|
1860
|
+
/** Requires server_info.features.communicationsRooms. */
|
|
1861
|
+
communicationsRoomGet(input: {
|
|
1862
|
+
providerId: string;
|
|
1863
|
+
conversationId: string;
|
|
1864
|
+
}, requestId?: string): Promise<CommunicationsRoomGetResponse["payload"]["room"]>;
|
|
1865
|
+
communicationsRoomThreadGet(input: {
|
|
1866
|
+
providerId: string;
|
|
1867
|
+
conversationId: string;
|
|
1868
|
+
parentMessageId: string;
|
|
1869
|
+
}, requestId?: string): Promise<CommunicationsRoomThreadGetResponse["payload"]["messages"]>;
|
|
1870
|
+
communicationsRoomMessageSend(input: {
|
|
1871
|
+
providerId: string;
|
|
1872
|
+
conversationId: string;
|
|
1873
|
+
text: string;
|
|
1874
|
+
parentMessageId?: string | null;
|
|
1875
|
+
}, requestId?: string): Promise<CommunicationsRoomMessageSendResponse["payload"]["message"]>;
|
|
1876
|
+
communicationsRoomReactionSet(input: {
|
|
1877
|
+
providerId: string;
|
|
1878
|
+
conversationId: string;
|
|
1879
|
+
messageId: string;
|
|
1880
|
+
emoji: string;
|
|
1881
|
+
active: boolean;
|
|
1882
|
+
}, requestId?: string): Promise<CommunicationsRoomReactionSetResponse["payload"]["message"]>;
|
|
1883
|
+
/**
|
|
1884
|
+
* Daemon-owned meeting transcript library. Requires
|
|
1885
|
+
* `server_info.features.meetingTranscripts`; callers own that capability gate.
|
|
1886
|
+
*/
|
|
1887
|
+
meetingsTranscriptsList(requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1888
|
+
type: "meetings.transcripts.list.response";
|
|
1889
|
+
}>["payload"]["records"]>;
|
|
1890
|
+
meetingsTranscriptsCreate(input: {
|
|
1891
|
+
provider: string;
|
|
1892
|
+
title: string;
|
|
1893
|
+
content: string;
|
|
1894
|
+
occurredAt?: string;
|
|
1895
|
+
}, requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1896
|
+
type: "meetings.transcripts.create.response";
|
|
1897
|
+
}>["payload"]["record"]>;
|
|
1898
|
+
meetingsTranscriptsUpdate(input: {
|
|
1899
|
+
id: string;
|
|
1900
|
+
title?: string;
|
|
1901
|
+
content?: string;
|
|
1902
|
+
}, requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1903
|
+
type: "meetings.transcripts.update.response";
|
|
1904
|
+
}>["payload"]["record"]>;
|
|
1905
|
+
meetingsTranscriptsDelete(id: string, requestId?: string): Promise<boolean>;
|
|
1906
|
+
/**
|
|
1907
|
+
* Read daemon-owned connection metadata for reusable integration settings.
|
|
1908
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
1909
|
+
* one capability gate.
|
|
1910
|
+
*/
|
|
1911
|
+
integrationsAuthorizationGetOverview(requestId?: string): Promise<IntegrationsAuthorizationGetOverviewResponse["payload"]["overview"]>;
|
|
1912
|
+
/**
|
|
1913
|
+
* List the daemon's nonsecret authorization choices for an integration.
|
|
1914
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
1915
|
+
* one capability gate.
|
|
1916
|
+
*/
|
|
1917
|
+
integrationsAuthorizationGetMethods(integrationId?: string, requestId?: string): Promise<IntegrationsAuthorizationGetMethodsResponse["payload"]["methods"]>;
|
|
1918
|
+
/**
|
|
1919
|
+
* Starts a daemon-owned browser sign-in through a registered integration
|
|
1920
|
+
* driver. Requires server_info.features.integrationAuthorizationBrowserFlow;
|
|
1921
|
+
* callers own that one capability gate.
|
|
1922
|
+
*/
|
|
1923
|
+
integrationsAuthorizationStartBrowser(input: {
|
|
1924
|
+
integrationId: string;
|
|
1925
|
+
connectionId: string;
|
|
1926
|
+
}, requestId?: string): Promise<IntegrationsAuthorizationStartBrowserResponse["payload"]>;
|
|
1927
|
+
/** Starts the daemon-owned Zoom Team Chat browser sign-in. */
|
|
1928
|
+
integrationsZoomStartAuthorization(requestId?: string): Promise<IntegrationsZoomStartAuthorizationResponse["payload"]>;
|
|
1771
1929
|
/**
|
|
1772
1930
|
* The brain's status. Pass `resources` only from a surface that renders the
|
|
1773
1931
|
* live CPU/RAM/GPU numbers: it costs an `nvidia-smi` spawn on the brain, and
|
|
@@ -1787,10 +1945,10 @@ export declare class DaemonClient {
|
|
|
1787
1945
|
brainModelsScan(requestId?: string): Promise<BrainInstalledModel[]>;
|
|
1788
1946
|
brainCatalogList(requestId?: string): Promise<BrainCatalogModel[]>;
|
|
1789
1947
|
brainRuntimeList(requestId?: string): Promise<BrainRuntime[]>;
|
|
1790
|
-
brainModelsPull(model: string, componentsOrRequestId?: string[] | string, quantOrRequestId?: string): Promise<BrainJob>;
|
|
1948
|
+
brainModelsPull(model: string, componentsOrRequestId?: string[] | string, quantOrRequestId?: string, expectedBytes?: number): Promise<BrainJob>;
|
|
1791
1949
|
brainHfSearch(query: string, limit?: number | null, requestId?: string): Promise<BrainHfSearchResult[]>;
|
|
1792
1950
|
brainHfQuants(repo: string, requestId?: string): Promise<BrainRepoQuant[]>;
|
|
1793
|
-
brainModelsAdd(repo: string, quant: string, components?: string[], requestId?: string): Promise<BrainJob>;
|
|
1951
|
+
brainModelsAdd(repo: string, quant: string, components?: string[], requestId?: string, expectedBytes?: number): Promise<BrainJob>;
|
|
1794
1952
|
brainRuntimeInstall(build?: string | null, requestId?: string): Promise<BrainJob>;
|
|
1795
1953
|
brainRuntimeRemove(name: string, requestId?: string): Promise<BrainJob>;
|
|
1796
1954
|
brainCalibrate(model: string, requestId?: string): Promise<BrainJob>;
|
|
@@ -1845,6 +2003,15 @@ export declare class DaemonClient {
|
|
|
1845
2003
|
brainModelRenameReset(modelId: string, requestId?: string): Promise<BrainModelRenameResetResponse["payload"]>;
|
|
1846
2004
|
/** Tail the brain's llama-server log. */
|
|
1847
2005
|
brainLogsTail(limit?: number | null, requestId?: string): Promise<BrainLogsTailResponse["payload"]>;
|
|
2006
|
+
/**
|
|
2007
|
+
* Turn the live Brain log feed on or off for this socket.
|
|
2008
|
+
*
|
|
2009
|
+
* Only meaningful against a daemon advertising `features.brainLogWatch`; older
|
|
2010
|
+
* daemons push every line regardless, and the request would go unrouted.
|
|
2011
|
+
* Watching is per socket, so this does not affect the same account's other
|
|
2012
|
+
* connected clients.
|
|
2013
|
+
*/
|
|
2014
|
+
brainLogsWatch(watching: boolean, requestId?: string): Promise<BrainLogsWatchResponse["payload"]>;
|
|
1848
2015
|
getSpeechSettingsOptions(requestId?: string): Promise<{
|
|
1849
2016
|
requestId: string;
|
|
1850
2017
|
options: SpeechSettingsOptions;
|
package/dist/daemon-client.js
CHANGED
|
@@ -1757,6 +1757,27 @@ export class DaemonClient {
|
|
|
1757
1757
|
}
|
|
1758
1758
|
return { customName: payload.customName };
|
|
1759
1759
|
}
|
|
1760
|
+
/**
|
|
1761
|
+
* Sets (or with a null target, clears) which tracking board a project shows
|
|
1762
|
+
* on the Kanban screen. The daemon normalizes what it stores - a pasted board
|
|
1763
|
+
* URL comes back as the parsed id - so the caller should render the returned
|
|
1764
|
+
* target rather than its own draft.
|
|
1765
|
+
*/
|
|
1766
|
+
async setKanbanProjectTarget(input, requestId) {
|
|
1767
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
1768
|
+
requestId,
|
|
1769
|
+
message: {
|
|
1770
|
+
type: "kanban.project.target.set.request",
|
|
1771
|
+
projectId: input.projectId,
|
|
1772
|
+
target: input.target,
|
|
1773
|
+
},
|
|
1774
|
+
responseType: "kanban.project.target.set.response",
|
|
1775
|
+
});
|
|
1776
|
+
if (!payload.accepted) {
|
|
1777
|
+
throw new Error(payload.error ?? "setKanbanProjectTarget rejected");
|
|
1778
|
+
}
|
|
1779
|
+
return { target: payload.target };
|
|
1780
|
+
}
|
|
1760
1781
|
async removeProject(projectId, requestId) {
|
|
1761
1782
|
const payload = await this.sendNamespacedCorrelatedSessionRequest({
|
|
1762
1783
|
requestId,
|
|
@@ -2004,6 +2025,58 @@ export class DaemonClient {
|
|
|
2004
2025
|
},
|
|
2005
2026
|
});
|
|
2006
2027
|
}
|
|
2028
|
+
/**
|
|
2029
|
+
* The provider-agnostic Kanban board surface. Each call names its provider
|
|
2030
|
+
* ("memory", "github", ...) - the daemon dispatches to the registered
|
|
2031
|
+
* KanbanProvider implementation and the wire never carries provider-native
|
|
2032
|
+
* identifiers beyond the opaque board/card/column ids.
|
|
2033
|
+
*
|
|
2034
|
+
* A project-scoped request is authoritative: the daemon resolves the
|
|
2035
|
+
* project's configured board target and overrides providerId from it. The
|
|
2036
|
+
* wire still carries providerId so older clients keep working; pass an inert
|
|
2037
|
+
* value (e.g. "github") when a project is supplied.
|
|
2038
|
+
*/
|
|
2039
|
+
async kanbanListBoards(input, requestId) {
|
|
2040
|
+
return this.sendNamespacedCorrelatedSessionRequest({
|
|
2041
|
+
requestId,
|
|
2042
|
+
message: {
|
|
2043
|
+
type: "kanban.boards.list.request",
|
|
2044
|
+
providerId: input.providerId,
|
|
2045
|
+
...(input.projectId ? { projectId: input.projectId } : {}),
|
|
2046
|
+
...(input.projectKey ? { projectKey: input.projectKey } : {}),
|
|
2047
|
+
requestId: "",
|
|
2048
|
+
},
|
|
2049
|
+
timeout: 60000,
|
|
2050
|
+
});
|
|
2051
|
+
}
|
|
2052
|
+
async kanbanGetBoard(providerId, boardId, requestId) {
|
|
2053
|
+
return this.sendNamespacedCorrelatedSessionRequest({
|
|
2054
|
+
requestId,
|
|
2055
|
+
message: { type: "kanban.board.get.request", providerId, boardId, requestId: "" },
|
|
2056
|
+
timeout: 60000,
|
|
2057
|
+
});
|
|
2058
|
+
}
|
|
2059
|
+
async kanbanMoveCard(input, requestId) {
|
|
2060
|
+
return this.sendNamespacedCorrelatedSessionRequest({
|
|
2061
|
+
requestId,
|
|
2062
|
+
message: { ...input, type: "kanban.card.move.request", requestId: "" },
|
|
2063
|
+
timeout: 60000,
|
|
2064
|
+
});
|
|
2065
|
+
}
|
|
2066
|
+
async kanbanCreateCard(input, requestId) {
|
|
2067
|
+
return this.sendNamespacedCorrelatedSessionRequest({
|
|
2068
|
+
requestId,
|
|
2069
|
+
message: { ...input, type: "kanban.card.create.request", requestId: "" },
|
|
2070
|
+
timeout: 60000,
|
|
2071
|
+
});
|
|
2072
|
+
}
|
|
2073
|
+
async kanbanLinkTask(input, requestId) {
|
|
2074
|
+
return this.sendNamespacedCorrelatedSessionRequest({
|
|
2075
|
+
requestId,
|
|
2076
|
+
message: { ...input, type: "kanban.task.link.request", requestId: "" },
|
|
2077
|
+
timeout: 60000,
|
|
2078
|
+
});
|
|
2079
|
+
}
|
|
2007
2080
|
async getCommitFileDiff(cwd, sha, path, requestId) {
|
|
2008
2081
|
const payload = await this.sendNamespacedCorrelatedSessionRequest({
|
|
2009
2082
|
requestId,
|
|
@@ -3140,6 +3213,16 @@ export class DaemonClient {
|
|
|
3140
3213
|
responseType: "checkout.refresh.response",
|
|
3141
3214
|
});
|
|
3142
3215
|
}
|
|
3216
|
+
async checkoutGitFetch(cwd, requestId) {
|
|
3217
|
+
return this.sendCorrelatedSessionRequest({
|
|
3218
|
+
requestId,
|
|
3219
|
+
message: {
|
|
3220
|
+
type: "checkout.git.fetch.request",
|
|
3221
|
+
cwd,
|
|
3222
|
+
},
|
|
3223
|
+
responseType: "checkout.git.fetch.response",
|
|
3224
|
+
});
|
|
3225
|
+
}
|
|
3143
3226
|
async checkoutPrCreate(cwd, input, requestId) {
|
|
3144
3227
|
return this.sendCorrelatedSessionRequest({
|
|
3145
3228
|
requestId,
|
|
@@ -4456,6 +4539,208 @@ export class DaemonClient {
|
|
|
4456
4539
|
responseType: "connectors.oauth.disconnect.response",
|
|
4457
4540
|
});
|
|
4458
4541
|
}
|
|
4542
|
+
/**
|
|
4543
|
+
* Read the daemon-owned, provider-neutral communications inbox projection.
|
|
4544
|
+
* Requires server_info.features.communications; callers own that one gate.
|
|
4545
|
+
*/
|
|
4546
|
+
async communicationsGetOverview(requestId) {
|
|
4547
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4548
|
+
requestId,
|
|
4549
|
+
message: { type: "communications.get_overview.request" },
|
|
4550
|
+
responseType: "communications.get_overview.response",
|
|
4551
|
+
});
|
|
4552
|
+
return payload.overview;
|
|
4553
|
+
}
|
|
4554
|
+
async communicationsInboxGetHome(providerId, requestId) {
|
|
4555
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4556
|
+
requestId,
|
|
4557
|
+
message: { type: "communications.inbox.get_home.request", providerId },
|
|
4558
|
+
responseType: "communications.inbox.get_home.response",
|
|
4559
|
+
});
|
|
4560
|
+
return payload.home;
|
|
4561
|
+
}
|
|
4562
|
+
async communicationsInboxAcknowledgeNotifications(input, requestId) {
|
|
4563
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4564
|
+
requestId,
|
|
4565
|
+
message: { type: "communications.inbox.notifications.acknowledge.request", ...input },
|
|
4566
|
+
responseType: "communications.inbox.notifications.acknowledge.response",
|
|
4567
|
+
});
|
|
4568
|
+
return payload.home;
|
|
4569
|
+
}
|
|
4570
|
+
async communicationsInboxSearch(input, requestId) {
|
|
4571
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4572
|
+
requestId,
|
|
4573
|
+
message: { type: "communications.inbox.search.request", ...input },
|
|
4574
|
+
responseType: "communications.inbox.search.response",
|
|
4575
|
+
});
|
|
4576
|
+
return payload.results;
|
|
4577
|
+
}
|
|
4578
|
+
async communicationsInboxSetFavorite(input, requestId) {
|
|
4579
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4580
|
+
requestId,
|
|
4581
|
+
message: { type: "communications.inbox.set_favorite.request", ...input },
|
|
4582
|
+
responseType: "communications.inbox.set_favorite.response",
|
|
4583
|
+
});
|
|
4584
|
+
return payload.home;
|
|
4585
|
+
}
|
|
4586
|
+
async communicationsInboxGetPresence(providerId, requestId) {
|
|
4587
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4588
|
+
requestId,
|
|
4589
|
+
message: { type: "communications.inbox.get_presence.request", providerId },
|
|
4590
|
+
responseType: "communications.inbox.get_presence.response",
|
|
4591
|
+
});
|
|
4592
|
+
return payload.presence;
|
|
4593
|
+
}
|
|
4594
|
+
async communicationsInboxSetPresence(input, requestId) {
|
|
4595
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4596
|
+
requestId,
|
|
4597
|
+
message: { type: "communications.inbox.set_presence.request", ...input },
|
|
4598
|
+
responseType: "communications.inbox.set_presence.response",
|
|
4599
|
+
});
|
|
4600
|
+
return payload.presence;
|
|
4601
|
+
}
|
|
4602
|
+
async communicationsInboxSetEnabled(input, requestId) {
|
|
4603
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4604
|
+
requestId,
|
|
4605
|
+
message: { type: "communications.inbox.set_enabled.request", ...input },
|
|
4606
|
+
responseType: "communications.inbox.set_enabled.response",
|
|
4607
|
+
});
|
|
4608
|
+
return payload.presence;
|
|
4609
|
+
}
|
|
4610
|
+
async communicationsInboxGetMessages(input, requestId) {
|
|
4611
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4612
|
+
requestId,
|
|
4613
|
+
message: { type: "communications.inbox.get_messages.request", ...input },
|
|
4614
|
+
responseType: "communications.inbox.get_messages.response",
|
|
4615
|
+
});
|
|
4616
|
+
return payload.messages;
|
|
4617
|
+
}
|
|
4618
|
+
async communicationsInboxSendMessage(input, requestId) {
|
|
4619
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4620
|
+
requestId,
|
|
4621
|
+
message: { type: "communications.inbox.send_message.request", ...input },
|
|
4622
|
+
responseType: "communications.inbox.send_message.response",
|
|
4623
|
+
});
|
|
4624
|
+
return payload.message;
|
|
4625
|
+
}
|
|
4626
|
+
/** Requires server_info.features.communicationsRooms. */
|
|
4627
|
+
async communicationsRoomGet(input, requestId) {
|
|
4628
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4629
|
+
requestId,
|
|
4630
|
+
message: { type: "communications.room.get.request", ...input },
|
|
4631
|
+
responseType: "communications.room.get.response",
|
|
4632
|
+
});
|
|
4633
|
+
return payload.room;
|
|
4634
|
+
}
|
|
4635
|
+
async communicationsRoomThreadGet(input, requestId) {
|
|
4636
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4637
|
+
requestId,
|
|
4638
|
+
message: { type: "communications.room.thread.get.request", ...input },
|
|
4639
|
+
responseType: "communications.room.thread.get.response",
|
|
4640
|
+
});
|
|
4641
|
+
return payload.messages;
|
|
4642
|
+
}
|
|
4643
|
+
async communicationsRoomMessageSend(input, requestId) {
|
|
4644
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4645
|
+
requestId,
|
|
4646
|
+
message: { type: "communications.room.message.send.request", ...input },
|
|
4647
|
+
responseType: "communications.room.message.send.response",
|
|
4648
|
+
});
|
|
4649
|
+
return payload.message;
|
|
4650
|
+
}
|
|
4651
|
+
async communicationsRoomReactionSet(input, requestId) {
|
|
4652
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4653
|
+
requestId,
|
|
4654
|
+
message: { type: "communications.room.reaction.set.request", ...input },
|
|
4655
|
+
responseType: "communications.room.reaction.set.response",
|
|
4656
|
+
});
|
|
4657
|
+
return payload.message;
|
|
4658
|
+
}
|
|
4659
|
+
/**
|
|
4660
|
+
* Daemon-owned meeting transcript library. Requires
|
|
4661
|
+
* `server_info.features.meetingTranscripts`; callers own that capability gate.
|
|
4662
|
+
*/
|
|
4663
|
+
async meetingsTranscriptsList(requestId) {
|
|
4664
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4665
|
+
requestId,
|
|
4666
|
+
message: { type: "meetings.transcripts.list.request" },
|
|
4667
|
+
responseType: "meetings.transcripts.list.response",
|
|
4668
|
+
});
|
|
4669
|
+
return payload.records;
|
|
4670
|
+
}
|
|
4671
|
+
async meetingsTranscriptsCreate(input, requestId) {
|
|
4672
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4673
|
+
requestId,
|
|
4674
|
+
message: { type: "meetings.transcripts.create.request", ...input },
|
|
4675
|
+
responseType: "meetings.transcripts.create.response",
|
|
4676
|
+
});
|
|
4677
|
+
return payload.record;
|
|
4678
|
+
}
|
|
4679
|
+
async meetingsTranscriptsUpdate(input, requestId) {
|
|
4680
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4681
|
+
requestId,
|
|
4682
|
+
message: { type: "meetings.transcripts.update.request", ...input },
|
|
4683
|
+
responseType: "meetings.transcripts.update.response",
|
|
4684
|
+
});
|
|
4685
|
+
return payload.record;
|
|
4686
|
+
}
|
|
4687
|
+
async meetingsTranscriptsDelete(id, requestId) {
|
|
4688
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4689
|
+
requestId,
|
|
4690
|
+
message: { type: "meetings.transcripts.delete.request", id },
|
|
4691
|
+
responseType: "meetings.transcripts.delete.response",
|
|
4692
|
+
});
|
|
4693
|
+
return payload.deleted;
|
|
4694
|
+
}
|
|
4695
|
+
/**
|
|
4696
|
+
* Read daemon-owned connection metadata for reusable integration settings.
|
|
4697
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
4698
|
+
* one capability gate.
|
|
4699
|
+
*/
|
|
4700
|
+
async integrationsAuthorizationGetOverview(requestId) {
|
|
4701
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4702
|
+
requestId,
|
|
4703
|
+
message: { type: "integrations.authorization.get_overview.request" },
|
|
4704
|
+
responseType: "integrations.authorization.get_overview.response",
|
|
4705
|
+
});
|
|
4706
|
+
return payload.overview;
|
|
4707
|
+
}
|
|
4708
|
+
/**
|
|
4709
|
+
* List the daemon's nonsecret authorization choices for an integration.
|
|
4710
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
4711
|
+
* one capability gate.
|
|
4712
|
+
*/
|
|
4713
|
+
async integrationsAuthorizationGetMethods(integrationId, requestId) {
|
|
4714
|
+
const payload = await this.sendCorrelatedSessionRequest({
|
|
4715
|
+
requestId,
|
|
4716
|
+
message: {
|
|
4717
|
+
type: "integrations.authorization.get_methods.request",
|
|
4718
|
+
...(integrationId ? { integrationId } : {}),
|
|
4719
|
+
},
|
|
4720
|
+
responseType: "integrations.authorization.get_methods.response",
|
|
4721
|
+
});
|
|
4722
|
+
return payload.methods;
|
|
4723
|
+
}
|
|
4724
|
+
/**
|
|
4725
|
+
* Starts a daemon-owned browser sign-in through a registered integration
|
|
4726
|
+
* driver. Requires server_info.features.integrationAuthorizationBrowserFlow;
|
|
4727
|
+
* callers own that one capability gate.
|
|
4728
|
+
*/
|
|
4729
|
+
async integrationsAuthorizationStartBrowser(input, requestId) {
|
|
4730
|
+
return this.sendCorrelatedSessionRequest({
|
|
4731
|
+
requestId,
|
|
4732
|
+
message: { type: "integrations.authorization.start_browser.request", ...input },
|
|
4733
|
+
responseType: "integrations.authorization.start_browser.response",
|
|
4734
|
+
});
|
|
4735
|
+
}
|
|
4736
|
+
/** Starts the daemon-owned Zoom Team Chat browser sign-in. */
|
|
4737
|
+
async integrationsZoomStartAuthorization(requestId) {
|
|
4738
|
+
return this.sendCorrelatedSessionRequest({
|
|
4739
|
+
requestId,
|
|
4740
|
+
message: { type: "integrations.zoom.start_authorization.request" },
|
|
4741
|
+
responseType: "integrations.zoom.start_authorization.response",
|
|
4742
|
+
});
|
|
4743
|
+
}
|
|
4459
4744
|
/**
|
|
4460
4745
|
* The brain's status. Pass `resources` only from a surface that renders the
|
|
4461
4746
|
* live CPU/RAM/GPU numbers: it costs an `nvidia-smi` spawn on the brain, and
|
|
@@ -4600,7 +4885,7 @@ export class DaemonClient {
|
|
|
4600
4885
|
}
|
|
4601
4886
|
return payload.runtimes;
|
|
4602
4887
|
}
|
|
4603
|
-
async brainModelsPull(model, componentsOrRequestId, quantOrRequestId) {
|
|
4888
|
+
async brainModelsPull(model, componentsOrRequestId, quantOrRequestId, expectedBytes) {
|
|
4604
4889
|
const components = Array.isArray(componentsOrRequestId) ? componentsOrRequestId : undefined;
|
|
4605
4890
|
const quant = Array.isArray(componentsOrRequestId) ? quantOrRequestId : undefined;
|
|
4606
4891
|
const correlationId = typeof componentsOrRequestId === "string" ? componentsOrRequestId : undefined;
|
|
@@ -4611,6 +4896,7 @@ export class DaemonClient {
|
|
|
4611
4896
|
model,
|
|
4612
4897
|
...(components ? { components } : {}),
|
|
4613
4898
|
...(quant ? { quant } : {}),
|
|
4899
|
+
...(expectedBytes !== undefined ? { expectedBytes } : {}),
|
|
4614
4900
|
},
|
|
4615
4901
|
responseType: "brain.models.pull.response",
|
|
4616
4902
|
});
|
|
@@ -4638,10 +4924,16 @@ export class DaemonClient {
|
|
|
4638
4924
|
}
|
|
4639
4925
|
return payload.quants;
|
|
4640
4926
|
}
|
|
4641
|
-
async brainModelsAdd(repo, quant, components, requestId) {
|
|
4927
|
+
async brainModelsAdd(repo, quant, components, requestId, expectedBytes) {
|
|
4642
4928
|
const payload = await this.sendCorrelatedSessionRequest({
|
|
4643
4929
|
requestId,
|
|
4644
|
-
message: {
|
|
4930
|
+
message: {
|
|
4931
|
+
type: "brain.models.add.request",
|
|
4932
|
+
repo,
|
|
4933
|
+
quant,
|
|
4934
|
+
components,
|
|
4935
|
+
...(expectedBytes !== undefined ? { expectedBytes } : {}),
|
|
4936
|
+
},
|
|
4645
4937
|
responseType: "brain.models.add.response",
|
|
4646
4938
|
});
|
|
4647
4939
|
return unwrapBrainJob(payload);
|
|
@@ -4862,6 +5154,21 @@ export class DaemonClient {
|
|
|
4862
5154
|
}
|
|
4863
5155
|
return payload;
|
|
4864
5156
|
}
|
|
5157
|
+
/**
|
|
5158
|
+
* Turn the live Brain log feed on or off for this socket.
|
|
5159
|
+
*
|
|
5160
|
+
* Only meaningful against a daemon advertising `features.brainLogWatch`; older
|
|
5161
|
+
* daemons push every line regardless, and the request would go unrouted.
|
|
5162
|
+
* Watching is per socket, so this does not affect the same account's other
|
|
5163
|
+
* connected clients.
|
|
5164
|
+
*/
|
|
5165
|
+
async brainLogsWatch(watching, requestId) {
|
|
5166
|
+
return this.sendCorrelatedSessionRequest({
|
|
5167
|
+
requestId,
|
|
5168
|
+
message: { type: "brain.logs.watch.request", watching },
|
|
5169
|
+
responseType: "brain.logs.watch.response",
|
|
5170
|
+
});
|
|
5171
|
+
}
|
|
4865
5172
|
async getSpeechSettingsOptions(requestId) {
|
|
4866
5173
|
return this.sendNamespacedCorrelatedSessionRequest({
|
|
4867
5174
|
requestId,
|
|
@@ -5797,6 +6104,7 @@ export class DaemonClient {
|
|
|
5797
6104
|
// The daemon gates project.updated.notification on this (session.ts),
|
|
5798
6105
|
// so dropping it silently kills cross-session project renames.
|
|
5799
6106
|
[CLIENT_CAPS.projectUpdates]: true,
|
|
6107
|
+
[CLIENT_CAPS.communicationsPresenceUpdates]: true,
|
|
5800
6108
|
...this.config.capabilities,
|
|
5801
6109
|
},
|
|
5802
6110
|
...(this.config.appVersion ? { appVersion: this.config.appVersion } : {}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@otto-code/client",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.12",
|
|
4
4
|
"description": "Otto client SDK package",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
6
|
"files": [
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"test": "vitest run"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@otto-code/protocol": "0.8.
|
|
40
|
-
"@otto-code/relay": "0.8.
|
|
39
|
+
"@otto-code/protocol": "0.8.12",
|
|
40
|
+
"@otto-code/relay": "0.8.12",
|
|
41
41
|
"zod": "^4.4.3"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|