@otto-code/client 0.8.10 → 0.8.13
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/README.md +34 -7
- package/dist/compat/normalize-provider-models.js +4 -1
- package/dist/daemon-client-websocket-transport.d.ts +4 -0
- package/dist/daemon-client-websocket-transport.js +14 -2
- package/dist/daemon-client.d.ts +241 -127
- package/dist/daemon-client.js +525 -209
- package/dist/index.d.ts +73 -55
- package/dist/index.js +208 -48
- package/dist/terminal-stream-router.js +1 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
# @otto-code/client
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
TypeScript SDK for building integrations on top of a Otto daemon.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
```bash
|
|
6
|
+
npm install @otto-code/client
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { createOttoClient } from "@otto-code/client";
|
|
11
|
+
|
|
12
|
+
const client = createOttoClient({ url: "ws://127.0.0.1:6868/ws" });
|
|
13
|
+
await client.connect();
|
|
14
|
+
|
|
15
|
+
const agent = await client.agents.create({
|
|
16
|
+
config: { provider: "codex/gpt-5.5" },
|
|
17
|
+
cwd: "/Users/me/dev/storefront",
|
|
18
|
+
prompt: "Review the current diff and name the riskiest change.",
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const result = await agent.waitForFinish();
|
|
22
|
+
console.log(result.lastMessage);
|
|
23
|
+
|
|
24
|
+
await client.close();
|
|
25
|
+
```
|
|
6
26
|
|
|
7
|
-
|
|
8
|
-
|
|
27
|
+
The public API is the package root. Imports under `@otto-code/client/internal/*` are unsupported implementation details used by Otto's own packages.
|
|
28
|
+
|
|
29
|
+
Read the [SDK documentation](https://otto-code.me/docs/sdk) for agents, workspaces, provider discovery, events, recipes, and the API reference. Runnable TypeScript patterns also live in [`examples/`](./examples/README.md).
|
|
30
|
+
|
|
31
|
+
## Runtime
|
|
32
|
+
|
|
33
|
+
The client needs a WebSocket implementation. Modern browsers and Node.js 22 provide one globally.
|
|
34
|
+
|
|
35
|
+
Use a WebSocket URL ending in `/ws`, such as `ws://127.0.0.1:6868/ws`. Pass `password` when the daemon requires authentication.
|
|
36
|
+
|
|
37
|
+
## Stability
|
|
9
38
|
|
|
10
|
-
|
|
11
|
-
release without advance notice. Use it outside Otto at your own risk until the
|
|
12
|
-
package is explicitly documented as stable.
|
|
39
|
+
The high-level API exported from `@otto-code/client` is the supported SDK surface. The SDK and daemon remain protocol-compatible across versions, but newly added capabilities can require a newer daemon.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { normalizeAgentModelDefinition } from "@otto-code/protocol/agent-types";
|
|
2
|
+
import { expandProviderSnapshot } from "@otto-code/protocol/provider-snapshot-codec";
|
|
2
3
|
// COMPAT(model-normalize): daemon normalizes at source (provider-registry) - shim covers older daemons; drop when floor >= v0.1.104
|
|
3
4
|
function normalizeAgentModels(models) {
|
|
4
5
|
if (!models) {
|
|
@@ -30,7 +31,9 @@ export function normalizeListProviderModelsPayload(payload) {
|
|
|
30
31
|
return models === payload.models ? payload : { ...payload, models };
|
|
31
32
|
}
|
|
32
33
|
export function normalizeProvidersSnapshotPayload(payload) {
|
|
33
|
-
const entries =
|
|
34
|
+
const entries = payload.compactSnapshot
|
|
35
|
+
? expandProviderSnapshot(payload.compactSnapshot)
|
|
36
|
+
: normalizeProviderSnapshotEntries(payload.entries);
|
|
34
37
|
return entries === payload.entries ? payload : { ...payload, entries };
|
|
35
38
|
}
|
|
36
39
|
export function normalizeProviderSnapshotUpdateMessage(msg) {
|
|
@@ -3,6 +3,10 @@ export declare function defaultWebSocketFactory(url: string, options?: {
|
|
|
3
3
|
headers?: Record<string, string>;
|
|
4
4
|
protocols?: string[];
|
|
5
5
|
}): WebSocketLike;
|
|
6
|
+
export declare function nativeWebSocketFactory(url: string, options?: {
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
protocols?: string[];
|
|
9
|
+
}): WebSocketLike;
|
|
6
10
|
export declare function createWebSocketTransportFactory(factory: WebSocketFactory): DaemonTransportFactory;
|
|
7
11
|
export declare function bindWsHandler(ws: WebSocketLike, event: "open" | "close" | "error" | "message", handler: (...args: unknown[]) => void): () => void;
|
|
8
12
|
//# sourceMappingURL=daemon-client-websocket-transport.d.ts.map
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import { extractRelayMessage } from "./daemon-client-transport-utils.js";
|
|
2
|
-
|
|
2
|
+
function getGlobalWebSocket() {
|
|
3
3
|
const globalWs = globalThis.WebSocket;
|
|
4
4
|
if (!globalWs) {
|
|
5
5
|
throw new Error("WebSocket is not available in this runtime");
|
|
6
6
|
}
|
|
7
|
-
return
|
|
7
|
+
return globalWs;
|
|
8
|
+
}
|
|
9
|
+
export function defaultWebSocketFactory(url, options) {
|
|
10
|
+
const globalWs = getGlobalWebSocket();
|
|
11
|
+
if (options?.protocols === undefined) {
|
|
12
|
+
return new globalWs(url);
|
|
13
|
+
}
|
|
14
|
+
return new globalWs(url, options.protocols);
|
|
15
|
+
}
|
|
16
|
+
// React Native and Node-compatible WebSocket implementations accept this extra options object.
|
|
17
|
+
// Keep it out of the standard browser factory above.
|
|
18
|
+
export function nativeWebSocketFactory(url, options) {
|
|
19
|
+
return new (getGlobalWebSocket())(url, options?.protocols, { headers: options?.headers });
|
|
8
20
|
}
|
|
9
21
|
export function createWebSocketTransportFactory(factory) {
|
|
10
22
|
return ({ url, headers, protocols }) => {
|
package/dist/daemon-client.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ 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,
|
|
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, FileDownloadTokenResponse, FileEntryKind, FileEol, 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, ProjectIconSource, ProjectIconResponse, ContextCategory, ContextPromptPreviewGetResponseMessage, ContextReportGetResponseMessage, ContextEdgeConvertResponseMessage, ContextFindingsFixResponseMessage, PersonalityMemoryListResponseMessage, PersonalityMemoryUpdateResponseMessage, PersonalityMemoryTransferResponseMessage, PersonalityMemoryStatsResponseMessage, ProjectKnowledgeListResponseMessage, ProjectKnowledgeGetResponseMessage, ProjectKnowledgeCreateResponseMessage, ProjectKnowledgeApplyResponseMessage, ProjectKnowledgeStatusResponseMessage, ProjectKnowledgeProjectApplyResponseMessage, ProjectKnowledgeReferenceApplyResponseMessage, ProjectKnowledgeRootApplyResponseMessage, ProjectKnowledgeDeleteResponseMessage, ProjectIconGetResponse, 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
|
+
import type { AgentConfigApply } from "@otto-code/protocol/messages";
|
|
10
11
|
import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
|
|
11
12
|
import { type DaemonClientTrafficHotspot, type DaemonClientTrafficTotals } from "./daemon-client-runtime-metrics.js";
|
|
12
13
|
import { type TerminalStreamEvent } from "./terminal-stream-router.js";
|
|
@@ -127,8 +128,14 @@ export interface DaemonClientConfig {
|
|
|
127
128
|
};
|
|
128
129
|
runtimeMetricsIntervalMs?: number;
|
|
129
130
|
runtimeMetricsWindowMs?: number;
|
|
131
|
+
trace?: DaemonClientTrace;
|
|
130
132
|
capabilities?: Partial<Record<ClientCapability, unknown>>;
|
|
131
133
|
}
|
|
134
|
+
export interface DaemonClientTrace {
|
|
135
|
+
isEnabled(): boolean;
|
|
136
|
+
beginSection(name: string, args?: Record<string, string>): void;
|
|
137
|
+
endSection(): void;
|
|
138
|
+
}
|
|
132
139
|
export interface SendMessageOptions {
|
|
133
140
|
messageId?: string;
|
|
134
141
|
images?: Array<{
|
|
@@ -197,6 +204,7 @@ type CheckoutMergeFromBasePayload = CheckoutMergeFromBaseResponse["payload"];
|
|
|
197
204
|
type CheckoutPullPayload = CheckoutPullResponse["payload"];
|
|
198
205
|
type CheckoutPushPayload = CheckoutPushResponse["payload"];
|
|
199
206
|
type CheckoutRefreshPayload = CheckoutRefreshResponse["payload"];
|
|
207
|
+
type CheckoutGitFetchPayload = CheckoutGitFetchResponse["payload"];
|
|
200
208
|
type CheckoutPrCreatePayload = CheckoutPrCreateResponse["payload"];
|
|
201
209
|
type CheckoutPrMergePayload = CheckoutPrMergeResponse["payload"];
|
|
202
210
|
type CheckoutGithubSetAutoMergePayload = CheckoutGithubSetAutoMergeResponse["payload"];
|
|
@@ -480,42 +488,6 @@ type CloseItemsPayload = CloseItemsResponse["payload"];
|
|
|
480
488
|
type KillTerminalPayload = KillTerminalResponse["payload"];
|
|
481
489
|
type CaptureTerminalPayload = CaptureTerminalResponse["payload"];
|
|
482
490
|
type TerminalCompatibilityDiagnosticPayload = TerminalCompatibilityDiagnosticResponse["payload"];
|
|
483
|
-
type ChatCreatePayload = Extract<SessionOutboundMessage, {
|
|
484
|
-
type: "chat/create/response";
|
|
485
|
-
}>["payload"];
|
|
486
|
-
type ChatListPayload = Extract<SessionOutboundMessage, {
|
|
487
|
-
type: "chat/list/response";
|
|
488
|
-
}>["payload"];
|
|
489
|
-
type ChatInspectPayload = Extract<SessionOutboundMessage, {
|
|
490
|
-
type: "chat/inspect/response";
|
|
491
|
-
}>["payload"];
|
|
492
|
-
type ChatDeletePayload = Extract<SessionOutboundMessage, {
|
|
493
|
-
type: "chat/delete/response";
|
|
494
|
-
}>["payload"];
|
|
495
|
-
type ChatPostPayload = Extract<SessionOutboundMessage, {
|
|
496
|
-
type: "chat/post/response";
|
|
497
|
-
}>["payload"];
|
|
498
|
-
type ChatReadPayload = Extract<SessionOutboundMessage, {
|
|
499
|
-
type: "chat/read/response";
|
|
500
|
-
}>["payload"];
|
|
501
|
-
type ChatWaitPayload = Extract<SessionOutboundMessage, {
|
|
502
|
-
type: "chat/wait/response";
|
|
503
|
-
}>["payload"];
|
|
504
|
-
type LoopRunPayload = Extract<SessionOutboundMessage, {
|
|
505
|
-
type: "loop/run/response";
|
|
506
|
-
}>["payload"];
|
|
507
|
-
type LoopListPayload = Extract<SessionOutboundMessage, {
|
|
508
|
-
type: "loop/list/response";
|
|
509
|
-
}>["payload"];
|
|
510
|
-
type LoopInspectPayload = Extract<SessionOutboundMessage, {
|
|
511
|
-
type: "loop/inspect/response";
|
|
512
|
-
}>["payload"];
|
|
513
|
-
type LoopLogsPayload = Extract<SessionOutboundMessage, {
|
|
514
|
-
type: "loop/logs/response";
|
|
515
|
-
}>["payload"];
|
|
516
|
-
type LoopStopPayload = Extract<SessionOutboundMessage, {
|
|
517
|
-
type: "loop/stop/response";
|
|
518
|
-
}>["payload"];
|
|
519
491
|
type ScheduleCreatePayload = Extract<SessionOutboundMessage, {
|
|
520
492
|
type: "schedule/create/response";
|
|
521
493
|
}>["payload"];
|
|
@@ -583,9 +555,13 @@ export interface FetchAgentTimelineOptions {
|
|
|
583
555
|
cursor?: FetchAgentTimelineCursor;
|
|
584
556
|
limit?: number;
|
|
585
557
|
projection?: FetchAgentTimelineProjection;
|
|
558
|
+
mergeWindow?: boolean;
|
|
586
559
|
requestId?: string;
|
|
587
560
|
timeout?: number;
|
|
588
561
|
}
|
|
562
|
+
export type AgentTimelinePromptIndexPayload = Extract<SessionOutboundMessage, {
|
|
563
|
+
type: "agent.timeline.list_prompts.response";
|
|
564
|
+
}>["payload"];
|
|
589
565
|
export type ProviderSubagentListPayload = Extract<SessionOutboundMessage, {
|
|
590
566
|
type: "agent.provider_subagents.list.response";
|
|
591
567
|
}>["payload"];
|
|
@@ -664,70 +640,6 @@ export type FetchWorkspacesOptions = Omit<FetchWorkspacesRequest, "type" | "requ
|
|
|
664
640
|
};
|
|
665
641
|
export type FetchWorkspacesEntry = FetchWorkspacesPayload["entries"][number];
|
|
666
642
|
export type FetchWorkspacesPageInfo = FetchWorkspacesPayload["pageInfo"];
|
|
667
|
-
export interface CreateChatRoomOptions {
|
|
668
|
-
name: string;
|
|
669
|
-
purpose?: string | null;
|
|
670
|
-
requestId?: string;
|
|
671
|
-
}
|
|
672
|
-
export interface InspectChatRoomOptions {
|
|
673
|
-
room: string;
|
|
674
|
-
requestId?: string;
|
|
675
|
-
}
|
|
676
|
-
export interface DeleteChatRoomOptions {
|
|
677
|
-
room: string;
|
|
678
|
-
requestId?: string;
|
|
679
|
-
}
|
|
680
|
-
export interface PostChatMessageOptions {
|
|
681
|
-
room: string;
|
|
682
|
-
body: string;
|
|
683
|
-
authorAgentId?: string;
|
|
684
|
-
replyToMessageId?: string | null;
|
|
685
|
-
requestId?: string;
|
|
686
|
-
}
|
|
687
|
-
export interface ReadChatMessagesOptions {
|
|
688
|
-
room: string;
|
|
689
|
-
limit?: number;
|
|
690
|
-
since?: string;
|
|
691
|
-
authorAgentId?: string;
|
|
692
|
-
requestId?: string;
|
|
693
|
-
timeout?: number;
|
|
694
|
-
}
|
|
695
|
-
export interface WaitForChatMessagesOptions {
|
|
696
|
-
room: string;
|
|
697
|
-
afterMessageId?: string | null;
|
|
698
|
-
timeoutMs?: number;
|
|
699
|
-
requestId?: string;
|
|
700
|
-
}
|
|
701
|
-
export interface RunLoopOptions {
|
|
702
|
-
prompt: string;
|
|
703
|
-
cwd: string;
|
|
704
|
-
provider?: string;
|
|
705
|
-
model?: string;
|
|
706
|
-
modeId?: string;
|
|
707
|
-
verifierProvider?: string;
|
|
708
|
-
verifierModel?: string;
|
|
709
|
-
verifierModeId?: string;
|
|
710
|
-
verifyPrompt?: string | null;
|
|
711
|
-
verifyChecks?: string[];
|
|
712
|
-
name?: string | null;
|
|
713
|
-
sleepMs?: number;
|
|
714
|
-
maxIterations?: number;
|
|
715
|
-
maxTimeMs?: number;
|
|
716
|
-
requestId?: string;
|
|
717
|
-
}
|
|
718
|
-
export interface InspectLoopOptions {
|
|
719
|
-
id: string;
|
|
720
|
-
requestId?: string;
|
|
721
|
-
}
|
|
722
|
-
export interface LoopLogsOptions {
|
|
723
|
-
id: string;
|
|
724
|
-
afterSeq?: number;
|
|
725
|
-
requestId?: string;
|
|
726
|
-
}
|
|
727
|
-
export interface StopLoopOptions {
|
|
728
|
-
id: string;
|
|
729
|
-
requestId?: string;
|
|
730
|
-
}
|
|
731
643
|
export interface CreateScheduleOptions {
|
|
732
644
|
prompt: string;
|
|
733
645
|
name?: string | null;
|
|
@@ -758,11 +670,7 @@ export interface CreateScheduleOptions {
|
|
|
758
670
|
archiveOnFinish?: boolean;
|
|
759
671
|
isolation?: "local" | "worktree";
|
|
760
672
|
title?: string | null;
|
|
761
|
-
|
|
762
|
-
sandboxMode?: string;
|
|
763
|
-
networkAccess?: boolean;
|
|
764
|
-
webSearch?: boolean;
|
|
765
|
-
extra?: AgentSessionConfig["extra"];
|
|
673
|
+
providerOptions?: AgentSessionConfig["providerOptions"];
|
|
766
674
|
systemPrompt?: string;
|
|
767
675
|
mcpServers?: AgentSessionConfig["mcpServers"];
|
|
768
676
|
};
|
|
@@ -839,6 +747,21 @@ export interface WaitForFinishResult {
|
|
|
839
747
|
error: string | null;
|
|
840
748
|
lastMessage: string | null;
|
|
841
749
|
}
|
|
750
|
+
type GetDaemonConfigResponse = Extract<SessionOutboundMessage, {
|
|
751
|
+
type: "get_daemon_config_response";
|
|
752
|
+
}>;
|
|
753
|
+
type SetDaemonConfigResponse = Extract<SessionOutboundMessage, {
|
|
754
|
+
type: "set_daemon_config_response";
|
|
755
|
+
}>;
|
|
756
|
+
type CorrelatedResponseMessage = Extract<SessionOutboundMessage, {
|
|
757
|
+
payload: {
|
|
758
|
+
requestId: string;
|
|
759
|
+
};
|
|
760
|
+
}> | GetDaemonConfigResponse | SetDaemonConfigResponse;
|
|
761
|
+
type CorrelatedResponseType = CorrelatedResponseMessage["type"];
|
|
762
|
+
type CorrelatedResponsePayload<TType extends CorrelatedResponseType> = Extract<CorrelatedResponseMessage, {
|
|
763
|
+
type: TType;
|
|
764
|
+
}>["payload"];
|
|
842
765
|
type ProjectGithubClonePayload = Extract<SessionOutboundMessage, {
|
|
843
766
|
type: "project.github.clone.response";
|
|
844
767
|
}>["payload"];
|
|
@@ -903,6 +826,11 @@ export declare class DaemonClient {
|
|
|
903
826
|
type: TType;
|
|
904
827
|
}>) => void): () => void;
|
|
905
828
|
on(handler: DaemonEventHandler): () => void;
|
|
829
|
+
private beginTraceSection;
|
|
830
|
+
private endTraceSection;
|
|
831
|
+
private traceInstant;
|
|
832
|
+
private sendJsonMessage;
|
|
833
|
+
private sendTransportFrame;
|
|
906
834
|
/**
|
|
907
835
|
* Send a session message. For fire-and-forget messages (heartbeats, etc.),
|
|
908
836
|
* failures are suppressed if `suppressSendErrors` is configured.
|
|
@@ -941,6 +869,7 @@ export declare class DaemonClient {
|
|
|
941
869
|
appVisibilityChangedAt?: string;
|
|
942
870
|
}): void;
|
|
943
871
|
registerPushToken(token: string): void;
|
|
872
|
+
unregisterPushToken(token: string): Promise<void>;
|
|
944
873
|
ping(params?: {
|
|
945
874
|
requestId?: string;
|
|
946
875
|
timeoutMs?: number;
|
|
@@ -1137,6 +1066,19 @@ export declare class DaemonClient {
|
|
|
1137
1066
|
renameProject(projectId: string, customName: string | null, requestId?: string): Promise<{
|
|
1138
1067
|
customName: string | null;
|
|
1139
1068
|
}>;
|
|
1069
|
+
/**
|
|
1070
|
+
* Sets (or with a null target, clears) which tracking board a project shows
|
|
1071
|
+
* on the Kanban screen. The daemon normalizes what it stores - a pasted board
|
|
1072
|
+
* URL comes back as the parsed id - so the caller should render the returned
|
|
1073
|
+
* target rather than its own draft.
|
|
1074
|
+
*/
|
|
1075
|
+
setKanbanProjectTarget(input: {
|
|
1076
|
+
projectId: string;
|
|
1077
|
+
target: ProjectKanbanTarget | null;
|
|
1078
|
+
}, requestId?: string): Promise<{
|
|
1079
|
+
target: ProjectKanbanTarget | null;
|
|
1080
|
+
}>;
|
|
1081
|
+
setProjectIcon(projectId: string, source: ProjectIconSource, requestId?: string): Promise<void>;
|
|
1140
1082
|
removeProject(projectId: string, requestId?: string): Promise<{
|
|
1141
1083
|
removedWorkspaceIds: string[];
|
|
1142
1084
|
}>;
|
|
@@ -1180,6 +1122,42 @@ export declare class DaemonClient {
|
|
|
1180
1122
|
parentPath: string;
|
|
1181
1123
|
name: string;
|
|
1182
1124
|
}, requestId?: string): Promise<ProjectCreateDirectoryPayload>;
|
|
1125
|
+
/**
|
|
1126
|
+
* The provider-agnostic Kanban board surface. Each call names its provider
|
|
1127
|
+
* ("memory", "github", ...) - the daemon dispatches to the registered
|
|
1128
|
+
* KanbanProvider implementation and the wire never carries provider-native
|
|
1129
|
+
* identifiers beyond the opaque board/card/column ids.
|
|
1130
|
+
*
|
|
1131
|
+
* A project-scoped request is authoritative: the daemon resolves the
|
|
1132
|
+
* project's configured board target and overrides providerId from it. The
|
|
1133
|
+
* wire still carries providerId so older clients keep working; pass an inert
|
|
1134
|
+
* value (e.g. "github") when a project is supplied.
|
|
1135
|
+
*/
|
|
1136
|
+
kanbanListBoards(input: {
|
|
1137
|
+
providerId: string;
|
|
1138
|
+
projectId?: string;
|
|
1139
|
+
projectKey?: string;
|
|
1140
|
+
}, requestId?: string): Promise<KanbanBoardsListResponse["payload"]>;
|
|
1141
|
+
kanbanGetBoard(providerId: string, boardId: string, requestId?: string): Promise<KanbanBoardGetResponse["payload"]>;
|
|
1142
|
+
kanbanMoveCard(input: {
|
|
1143
|
+
providerId: string;
|
|
1144
|
+
boardId: string;
|
|
1145
|
+
cardId: string;
|
|
1146
|
+
targetColumnId: string;
|
|
1147
|
+
}, requestId?: string): Promise<KanbanCardMoveResponse["payload"]>;
|
|
1148
|
+
kanbanCreateCard(input: {
|
|
1149
|
+
providerId: string;
|
|
1150
|
+
boardId: string;
|
|
1151
|
+
columnId?: string;
|
|
1152
|
+
title: string;
|
|
1153
|
+
body?: string;
|
|
1154
|
+
}, requestId?: string): Promise<KanbanCardCreateResponse["payload"]>;
|
|
1155
|
+
kanbanLinkTask(input: {
|
|
1156
|
+
providerId: string;
|
|
1157
|
+
boardId: string;
|
|
1158
|
+
externalId: string;
|
|
1159
|
+
columnId?: string;
|
|
1160
|
+
}, requestId?: string): Promise<KanbanTaskLinkResponse["payload"]>;
|
|
1183
1161
|
getCommitFileDiff(cwd: string, sha: string, path: string, requestId?: string): Promise<{
|
|
1184
1162
|
file: ParsedDiffFile | null;
|
|
1185
1163
|
}>;
|
|
@@ -1207,6 +1185,10 @@ export declare class DaemonClient {
|
|
|
1207
1185
|
unsubscribe: () => void;
|
|
1208
1186
|
}>;
|
|
1209
1187
|
fetchAgentTimeline(agentId: string, options?: FetchAgentTimelineOptions): Promise<FetchAgentTimelinePayload>;
|
|
1188
|
+
listAgentTimelinePrompts(agentId: string, options?: {
|
|
1189
|
+
requestId?: string;
|
|
1190
|
+
timeout?: number;
|
|
1191
|
+
}): Promise<AgentTimelinePromptIndexPayload>;
|
|
1210
1192
|
buildAgentForkContext(agentId: string, options?: AgentForkContextOptions): Promise<AgentForkContextPayload>;
|
|
1211
1193
|
sendAgentMessage(agentId: string, text: string, options?: SendMessageOptions): Promise<SendAgentMessageResult>;
|
|
1212
1194
|
sendMessage(agentId: string, text: string, options?: SendMessageOptions): Promise<void>;
|
|
@@ -1244,6 +1226,14 @@ export declare class DaemonClient {
|
|
|
1244
1226
|
* server_info.features.setAgentPersonality.
|
|
1245
1227
|
*/
|
|
1246
1228
|
setAgentPersonality(agentId: string, personalityId: string | null): Promise<AgentProviderNotice | null>;
|
|
1229
|
+
/**
|
|
1230
|
+
* Applies a whole agent-config bundle in one request. Use this instead of
|
|
1231
|
+
* chaining the single-field setters when the values belong together so client
|
|
1232
|
+
* interruption and other mutations cannot interleave between steps. A
|
|
1233
|
+
* provider rejection can still leave earlier steps applied.
|
|
1234
|
+
* Gated on `server_info.features.agentConfigApply`.
|
|
1235
|
+
*/
|
|
1236
|
+
applyAgentConfig(agentId: string, config: AgentConfigApply): Promise<AgentProviderNotice | null>;
|
|
1247
1237
|
restartServer(reason?: string, requestId?: string): Promise<RestartRequestedStatusPayload>;
|
|
1248
1238
|
shutdownServer(options?: ShutdownServerOptions): Promise<ShutdownRequestedStatusPayload>;
|
|
1249
1239
|
updateDaemon(requestId?: string): Promise<DaemonUpdateResponse["payload"]>;
|
|
@@ -1324,6 +1314,7 @@ export declare class DaemonClient {
|
|
|
1324
1314
|
checkoutPull(cwd: string, requestId?: string): Promise<CheckoutPullPayload>;
|
|
1325
1315
|
checkoutPush(cwd: string, requestId?: string): Promise<CheckoutPushPayload>;
|
|
1326
1316
|
checkoutRefresh(cwd: string, requestId?: string): Promise<CheckoutRefreshPayload>;
|
|
1317
|
+
checkoutGitFetch(cwd: string, requestId?: string): Promise<CheckoutGitFetchPayload>;
|
|
1327
1318
|
checkoutPrCreate(cwd: string, input: {
|
|
1328
1319
|
title?: string;
|
|
1329
1320
|
body?: string;
|
|
@@ -1458,12 +1449,6 @@ export declare class DaemonClient {
|
|
|
1458
1449
|
* frames leave in order and behind the JSON request that announced them.
|
|
1459
1450
|
*/
|
|
1460
1451
|
private sendFileTransfer;
|
|
1461
|
-
/** Create an empty file or a directory. Never overwrites - see FileCreateResultSchema. */
|
|
1462
|
-
createFileEntry(options: FileCreateOptions): Promise<FileCreateResult>;
|
|
1463
|
-
/** Permanent delete - an unlink, not a move to any trash. */
|
|
1464
|
-
deleteFileEntry(options: FileDeleteOptions): Promise<FileDeleteResult>;
|
|
1465
|
-
/** Rename, which is also move. Never clobbers an occupied destination. */
|
|
1466
|
-
renameFileEntry(options: FileRenameOptions): Promise<FileRenameResult>;
|
|
1467
1452
|
refineFile(options: FileRefineOptions): Promise<FileRefineResult>;
|
|
1468
1453
|
/**
|
|
1469
1454
|
* Project-wide search. Per-file results stream through onFileResult (the
|
|
@@ -1745,6 +1730,7 @@ export declare class DaemonClient {
|
|
|
1745
1730
|
}): Promise<ListAvailableProvidersPayload>;
|
|
1746
1731
|
getProvidersSnapshot(options?: {
|
|
1747
1732
|
cwd?: string;
|
|
1733
|
+
ifNoneMatch?: string;
|
|
1748
1734
|
requestId?: string;
|
|
1749
1735
|
}): Promise<GetProvidersSnapshotPayload>;
|
|
1750
1736
|
getDaemonConfig(requestId?: string): Promise<{
|
|
@@ -1768,6 +1754,114 @@ export declare class DaemonClient {
|
|
|
1768
1754
|
connectorsOauthAuthorize(connectorId: string, scope?: string, requestId?: string): Promise<ConnectorsOauthAuthorizeResponse["payload"]>;
|
|
1769
1755
|
/** Drop a connector's stored authorization. */
|
|
1770
1756
|
connectorsOauthDisconnect(connectorId: string, requestId?: string): Promise<ConnectorsOauthDisconnectResponse["payload"]>;
|
|
1757
|
+
/**
|
|
1758
|
+
* Read the daemon-owned, provider-neutral communications inbox projection.
|
|
1759
|
+
* Requires server_info.features.communications; callers own that one gate.
|
|
1760
|
+
*/
|
|
1761
|
+
communicationsGetOverview(requestId?: string): Promise<CommunicationsGetOverviewResponse["payload"]["overview"]>;
|
|
1762
|
+
communicationsInboxGetHome(providerId: string, requestId?: string): Promise<CommunicationsInboxGetHomeResponse["payload"]["home"]>;
|
|
1763
|
+
communicationsInboxAcknowledgeNotifications(input: {
|
|
1764
|
+
providerId: string;
|
|
1765
|
+
notificationIds?: string[];
|
|
1766
|
+
conversationId?: string;
|
|
1767
|
+
clearAll?: boolean;
|
|
1768
|
+
}, requestId?: string): Promise<CommunicationsInboxNotificationsAcknowledgeResponse["payload"]["home"]>;
|
|
1769
|
+
communicationsInboxSearch(input: {
|
|
1770
|
+
providerId: string;
|
|
1771
|
+
query: string;
|
|
1772
|
+
}, requestId?: string): Promise<CommunicationsInboxSearchResponse["payload"]["results"]>;
|
|
1773
|
+
communicationsInboxSetFavorite(input: {
|
|
1774
|
+
providerId: string;
|
|
1775
|
+
conversationId: string;
|
|
1776
|
+
favorite: boolean;
|
|
1777
|
+
}, requestId?: string): Promise<CommunicationsInboxSetFavoriteResponse["payload"]["home"]>;
|
|
1778
|
+
communicationsInboxGetPresence(providerId: string, requestId?: string): Promise<CommunicationsInboxGetPresenceResponse["payload"]["presence"]>;
|
|
1779
|
+
communicationsInboxSetPresence(input: {
|
|
1780
|
+
providerId: string;
|
|
1781
|
+
status: "available" | "busy" | "do_not_disturb" | "away" | "out_of_office" | "unknown";
|
|
1782
|
+
}, requestId?: string): Promise<CommunicationsInboxSetPresenceResponse["payload"]["presence"]>;
|
|
1783
|
+
communicationsInboxSetEnabled(input: {
|
|
1784
|
+
providerId: string;
|
|
1785
|
+
enabled: boolean;
|
|
1786
|
+
}, requestId?: string): Promise<CommunicationsInboxSetEnabledResponse["payload"]["presence"]>;
|
|
1787
|
+
communicationsInboxGetMessages(input: {
|
|
1788
|
+
providerId: string;
|
|
1789
|
+
conversationId: string;
|
|
1790
|
+
}, requestId?: string): Promise<CommunicationsInboxGetMessagesResponse["payload"]["messages"]>;
|
|
1791
|
+
communicationsInboxSendMessage(input: {
|
|
1792
|
+
providerId: string;
|
|
1793
|
+
conversationId: string;
|
|
1794
|
+
text: string;
|
|
1795
|
+
}, requestId?: string): Promise<CommunicationsInboxSendMessageResponse["payload"]["message"]>;
|
|
1796
|
+
/** Requires server_info.features.communicationsRooms. */
|
|
1797
|
+
communicationsRoomGet(input: {
|
|
1798
|
+
providerId: string;
|
|
1799
|
+
conversationId: string;
|
|
1800
|
+
}, requestId?: string): Promise<CommunicationsRoomGetResponse["payload"]["room"]>;
|
|
1801
|
+
communicationsRoomThreadGet(input: {
|
|
1802
|
+
providerId: string;
|
|
1803
|
+
conversationId: string;
|
|
1804
|
+
parentMessageId: string;
|
|
1805
|
+
}, requestId?: string): Promise<CommunicationsRoomThreadGetResponse["payload"]["messages"]>;
|
|
1806
|
+
communicationsRoomMessageSend(input: {
|
|
1807
|
+
providerId: string;
|
|
1808
|
+
conversationId: string;
|
|
1809
|
+
text: string;
|
|
1810
|
+
parentMessageId?: string | null;
|
|
1811
|
+
}, requestId?: string): Promise<CommunicationsRoomMessageSendResponse["payload"]["message"]>;
|
|
1812
|
+
communicationsRoomReactionSet(input: {
|
|
1813
|
+
providerId: string;
|
|
1814
|
+
conversationId: string;
|
|
1815
|
+
messageId: string;
|
|
1816
|
+
emoji: string;
|
|
1817
|
+
active: boolean;
|
|
1818
|
+
}, requestId?: string): Promise<CommunicationsRoomReactionSetResponse["payload"]["message"]>;
|
|
1819
|
+
/**
|
|
1820
|
+
* Daemon-owned meeting transcript library. Requires
|
|
1821
|
+
* `server_info.features.meetingTranscripts`; callers own that capability gate.
|
|
1822
|
+
*/
|
|
1823
|
+
meetingsTranscriptsList(requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1824
|
+
type: "meetings.transcripts.list.response";
|
|
1825
|
+
}>["payload"]["records"]>;
|
|
1826
|
+
meetingsTranscriptsCreate(input: {
|
|
1827
|
+
provider: string;
|
|
1828
|
+
title: string;
|
|
1829
|
+
content: string;
|
|
1830
|
+
occurredAt?: string;
|
|
1831
|
+
}, requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1832
|
+
type: "meetings.transcripts.create.response";
|
|
1833
|
+
}>["payload"]["record"]>;
|
|
1834
|
+
meetingsTranscriptsUpdate(input: {
|
|
1835
|
+
id: string;
|
|
1836
|
+
title?: string;
|
|
1837
|
+
content?: string;
|
|
1838
|
+
}, requestId?: string): Promise<Extract<SessionOutboundMessage, {
|
|
1839
|
+
type: "meetings.transcripts.update.response";
|
|
1840
|
+
}>["payload"]["record"]>;
|
|
1841
|
+
meetingsTranscriptsDelete(id: string, requestId?: string): Promise<boolean>;
|
|
1842
|
+
/**
|
|
1843
|
+
* Read daemon-owned connection metadata for reusable integration settings.
|
|
1844
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
1845
|
+
* one capability gate.
|
|
1846
|
+
*/
|
|
1847
|
+
integrationsAuthorizationGetOverview(requestId?: string): Promise<IntegrationsAuthorizationGetOverviewResponse["payload"]["overview"]>;
|
|
1848
|
+
/**
|
|
1849
|
+
* List the daemon's nonsecret authorization choices for an integration.
|
|
1850
|
+
* Requires server_info.features.integrationAuthorization; callers own that
|
|
1851
|
+
* one capability gate.
|
|
1852
|
+
*/
|
|
1853
|
+
integrationsAuthorizationGetMethods(integrationId?: string, requestId?: string): Promise<IntegrationsAuthorizationGetMethodsResponse["payload"]["methods"]>;
|
|
1854
|
+
/**
|
|
1855
|
+
* Starts a daemon-owned browser sign-in through a registered integration
|
|
1856
|
+
* driver. Requires server_info.features.integrationAuthorizationBrowserFlow;
|
|
1857
|
+
* callers own that one capability gate.
|
|
1858
|
+
*/
|
|
1859
|
+
integrationsAuthorizationStartBrowser(input: {
|
|
1860
|
+
integrationId: string;
|
|
1861
|
+
connectionId: string;
|
|
1862
|
+
}, requestId?: string): Promise<IntegrationsAuthorizationStartBrowserResponse["payload"]>;
|
|
1863
|
+
/** Starts the daemon-owned Zoom Team Chat browser sign-in. */
|
|
1864
|
+
integrationsZoomStartAuthorization(requestId?: string): Promise<IntegrationsZoomStartAuthorizationResponse["payload"]>;
|
|
1771
1865
|
/**
|
|
1772
1866
|
* The brain's status. Pass `resources` only from a surface that renders the
|
|
1773
1867
|
* live CPU/RAM/GPU numbers: it costs an `nvidia-smi` spawn on the brain, and
|
|
@@ -1787,15 +1881,37 @@ export declare class DaemonClient {
|
|
|
1787
1881
|
brainModelsScan(requestId?: string): Promise<BrainInstalledModel[]>;
|
|
1788
1882
|
brainCatalogList(requestId?: string): Promise<BrainCatalogModel[]>;
|
|
1789
1883
|
brainRuntimeList(requestId?: string): Promise<BrainRuntime[]>;
|
|
1790
|
-
brainModelsPull(model: string, componentsOrRequestId?: string[] | string, quantOrRequestId?: string): Promise<BrainJob>;
|
|
1884
|
+
brainModelsPull(model: string, componentsOrRequestId?: string[] | string, quantOrRequestId?: string, expectedBytes?: number): Promise<BrainJob>;
|
|
1791
1885
|
brainHfSearch(query: string, limit?: number | null, requestId?: string): Promise<BrainHfSearchResult[]>;
|
|
1792
1886
|
brainHfQuants(repo: string, requestId?: string): Promise<BrainRepoQuant[]>;
|
|
1793
|
-
brainModelsAdd(repo: string, quant: string, components?: string[], requestId?: string): Promise<BrainJob>;
|
|
1887
|
+
brainModelsAdd(repo: string, quant: string, components?: string[], requestId?: string, expectedBytes?: number): Promise<BrainJob>;
|
|
1794
1888
|
brainRuntimeInstall(build?: string | null, requestId?: string): Promise<BrainJob>;
|
|
1795
1889
|
brainRuntimeRemove(name: string, requestId?: string): Promise<BrainJob>;
|
|
1796
1890
|
brainCalibrate(model: string, requestId?: string): Promise<BrainJob>;
|
|
1797
1891
|
brainSweep(model: string, requestId?: string): Promise<BrainJob>;
|
|
1798
1892
|
brainBench(model?: string | null, requestId?: string): Promise<BrainJob>;
|
|
1893
|
+
createFileEntry(input: {
|
|
1894
|
+
cwd: string;
|
|
1895
|
+
parentPath: string;
|
|
1896
|
+
name: string;
|
|
1897
|
+
kind: "file" | "directory";
|
|
1898
|
+
}): Promise<CorrelatedResponsePayload<"fs.entry.create.response">>;
|
|
1899
|
+
renameFileEntry(input: {
|
|
1900
|
+
cwd: string;
|
|
1901
|
+
path: string;
|
|
1902
|
+
name: string;
|
|
1903
|
+
}): Promise<CorrelatedResponsePayload<"fs.entry.rename.response">>;
|
|
1904
|
+
duplicateFileEntry(input: {
|
|
1905
|
+
cwd: string;
|
|
1906
|
+
path: string;
|
|
1907
|
+
}): Promise<CorrelatedResponsePayload<"fs.entry.duplicate.response">>;
|
|
1908
|
+
deleteFileEntry(input: {
|
|
1909
|
+
cwd: string;
|
|
1910
|
+
path: string;
|
|
1911
|
+
}): Promise<CorrelatedResponsePayload<"fs.entry.delete.response">>;
|
|
1912
|
+
checkoutDiscardChanges(cwd: string, input: {
|
|
1913
|
+
paths: string[];
|
|
1914
|
+
}): Promise<CorrelatedResponsePayload<"checkout.discard_changes.response">>;
|
|
1799
1915
|
brainJobsList(requestId?: string): Promise<BrainJob[]>;
|
|
1800
1916
|
brainJobsCancel(jobId: string, requestId?: string): Promise<BrainJob[]>;
|
|
1801
1917
|
/**
|
|
@@ -1828,6 +1944,7 @@ export declare class DaemonClient {
|
|
|
1828
1944
|
brainModelLoad(modelId: string, requestId?: string): Promise<BrainModelLoadResponse["payload"]>;
|
|
1829
1945
|
/** Unload the resident model, leaving the brain up and serving nothing. */
|
|
1830
1946
|
brainModelUnload(requestId?: string): Promise<BrainHostStatus | null>;
|
|
1947
|
+
getProjectIcon(projectId: string, requestId?: string): Promise<ProjectIconGetResponse["payload"]>;
|
|
1831
1948
|
/** Delete a model's files. The brain refuses while that model is loaded. */
|
|
1832
1949
|
brainModelDelete(modelId: string, requestId?: string): Promise<BrainModelDeleteResponse["payload"]>;
|
|
1833
1950
|
brainModelComponentDelete(modelId: string, componentId: string, requestId?: string): Promise<{
|
|
@@ -1845,6 +1962,15 @@ export declare class DaemonClient {
|
|
|
1845
1962
|
brainModelRenameReset(modelId: string, requestId?: string): Promise<BrainModelRenameResetResponse["payload"]>;
|
|
1846
1963
|
/** Tail the brain's llama-server log. */
|
|
1847
1964
|
brainLogsTail(limit?: number | null, requestId?: string): Promise<BrainLogsTailResponse["payload"]>;
|
|
1965
|
+
/**
|
|
1966
|
+
* Turn the live Brain log feed on or off for this socket.
|
|
1967
|
+
*
|
|
1968
|
+
* Only meaningful against a daemon advertising `features.brainLogWatch`; older
|
|
1969
|
+
* daemons push every line regardless, and the request would go unrouted.
|
|
1970
|
+
* Watching is per socket, so this does not affect the same account's other
|
|
1971
|
+
* connected clients.
|
|
1972
|
+
*/
|
|
1973
|
+
brainLogsWatch(watching: boolean, requestId?: string): Promise<BrainLogsWatchResponse["payload"]>;
|
|
1848
1974
|
getSpeechSettingsOptions(requestId?: string): Promise<{
|
|
1849
1975
|
requestId: string;
|
|
1850
1976
|
options: SpeechSettingsOptions;
|
|
@@ -1959,13 +2085,6 @@ export declare class DaemonClient {
|
|
|
1959
2085
|
stripAnsi?: boolean;
|
|
1960
2086
|
}, requestId?: string): Promise<CaptureTerminalPayload>;
|
|
1961
2087
|
runTerminalCompatibilityDiagnostic(requestId?: string): Promise<TerminalCompatibilityDiagnosticPayload>;
|
|
1962
|
-
createChatRoom(options: CreateChatRoomOptions): Promise<ChatCreatePayload>;
|
|
1963
|
-
listChatRooms(requestId?: string): Promise<ChatListPayload>;
|
|
1964
|
-
inspectChatRoom(options: InspectChatRoomOptions): Promise<ChatInspectPayload>;
|
|
1965
|
-
deleteChatRoom(options: DeleteChatRoomOptions): Promise<ChatDeletePayload>;
|
|
1966
|
-
postChatMessage(options: PostChatMessageOptions): Promise<ChatPostPayload>;
|
|
1967
|
-
readChatMessages(options: ReadChatMessagesOptions): Promise<ChatReadPayload>;
|
|
1968
|
-
waitForChatMessages(options: WaitForChatMessagesOptions): Promise<ChatWaitPayload>;
|
|
1969
2088
|
scheduleCreate(options: CreateScheduleOptions): Promise<ScheduleCreatePayload>;
|
|
1970
2089
|
scheduleList(requestId?: string): Promise<ScheduleListPayload>;
|
|
1971
2090
|
scheduleInspect(options: InspectScheduleOptions): Promise<ScheduleInspectPayload>;
|
|
@@ -2026,11 +2145,6 @@ export declare class DaemonClient {
|
|
|
2026
2145
|
artifactId: string;
|
|
2027
2146
|
requestId?: string;
|
|
2028
2147
|
}): Promise<ArtifactGetContentPayload>;
|
|
2029
|
-
loopRun(options: RunLoopOptions): Promise<LoopRunPayload>;
|
|
2030
|
-
loopList(requestId?: string): Promise<LoopListPayload>;
|
|
2031
|
-
loopInspect(options: string | InspectLoopOptions): Promise<LoopInspectPayload>;
|
|
2032
|
-
loopLogs(options: string | LoopLogsOptions, afterSeq?: number): Promise<LoopLogsPayload>;
|
|
2033
|
-
loopStop(options: string | StopLoopOptions): Promise<LoopStopPayload>;
|
|
2034
2148
|
onTerminalStreamEvent(handler: (event: TerminalStreamEvent) => void): () => void;
|
|
2035
2149
|
waitForTerminalStreamEvent(predicate: (event: TerminalStreamEvent) => boolean, timeout?: number): Promise<TerminalStreamEvent>;
|
|
2036
2150
|
private createRequestId;
|