@otto-code/client 0.8.19 → 0.9.0

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.
@@ -2,10 +2,10 @@ import type { AgentAttentionNotificationPayload } from "@otto-code/protocol/agen
2
2
  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
- 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, 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, HostingPullRequestThreadSetResolvedResponse, HostingPullRequestCommentSetReactionResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, KanbanBoardsListResponse, ProjectKanbanTarget, ProjectKnowledgeStoreDescriptor, ProjectKnowledgeStoreLocationValue, 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, ProjectKnowledgeRefineApplyResponseMessage, ProjectKnowledgeRefinementProposeResponseMessage, 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";
5
+ import { AgentRefreshedStatusPayloadSchema, CheckoutRenameBranchResponseSchema, RenameTerminalResponseSchema, RestartRequestedStatusPayloadSchema, ShutdownRequestedStatusPayloadSchema, DaemonUpdateResponseSchema, type ActiveTurnBehavior, 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, 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, HostingPullRequestThreadSetResolvedResponse, HostingPullRequestCommentSetReactionResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, KanbanBoardsListResponse, ProjectKanbanTarget, ProjectKnowledgeStoreDescriptor, ProjectKnowledgeStoreLocationValue, 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, ProjectKnowledgeRefineApplyResponseMessage, ProjectKnowledgeRefinementProposeResponseMessage, 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, DaemonConfigReloadResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, AttachmentsImagesClearResponse, AttachmentsImagesStatsResponse, HistoryAgentsClearArchivedResponse, HistoryAgentsStorageStatsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalCompatibilityDiagnosticResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, AgentPromptDelivery, TasksSuggestedStartMode, OttoConfigRaw, OttoConfigRevision, WorkspaceCreateRequest, PluginListItem, PluginLogEntry, AgentSkillSelection, AgentSkillsStatus, AgentSkillsSaveResult } from "@otto-code/protocol/messages";
7
7
  import type { AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentProviderNotice, AgentProvider, AgentSessionConfig } from "@otto-code/protocol/agent-types";
8
- import type { OrchestrationGraph, PromptTemplate, Run } from "@otto-code/protocol/orchestration";
8
+ import type { OrchestrationGraph, PromptTemplate, Run, WorkflowStartConfirmation } from "@otto-code/protocol/workflow";
9
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, SpeechSettingsOptions, SpeechTtsPreviewResult, SpeechTtsSpeakResult, SpeechTtsSpeakCancelResult, VisualizerVoiceCuesResult, AgentPersonalitiesGenerateProfileResult } from "@otto-code/protocol/messages";
10
10
  import type { AgentConfigApply } from "@otto-code/protocol/messages";
11
11
  import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
@@ -139,6 +139,7 @@ export interface DaemonClientTrace {
139
139
  }
140
140
  export interface SendMessageOptions {
141
141
  messageId?: string;
142
+ activeTurnBehavior?: ActiveTurnBehavior;
142
143
  images?: Array<{
143
144
  data: string;
144
145
  mimeType: string;
@@ -166,6 +167,10 @@ export interface CreateAgentRequestOptions extends AgentConfigOverrides {
166
167
  personality?: CreateAgentRequestMessage["personality"];
167
168
  env?: CreateAgentRequestMessage["env"];
168
169
  workspaceId?: string;
170
+ architecturalViewDraft?: {
171
+ viewId: string;
172
+ draftId: string;
173
+ };
169
174
  /**
170
175
  * Caller agent making this request. The daemon resolves the caller's own
171
176
  * workspace and parentage from it, so a managed CLI run nests under its
@@ -229,9 +234,6 @@ type GitHubSearchPayload = GitHubSearchResponse["payload"];
229
234
  type CheckoutForgeGetCheckDetailsPayload = CheckoutForgeGetCheckDetailsResponse["payload"];
230
235
  type CheckoutForgeSetAutoMergePayload = CheckoutForgeSetAutoMergeResponse["payload"];
231
236
  export type ProjectCreateDirectoryPayload = ProjectCreateDirectoryResponse["payload"];
232
- export type ProjectListPayload = Extract<SessionOutboundMessage, {
233
- type: "project.list.response";
234
- }>["payload"];
235
237
  export type WorkspaceGithubSearchRepositoriesPayload = Extract<SessionOutboundMessage, {
236
238
  type: "workspace.github.search_repositories.response";
237
239
  }>["payload"];
@@ -542,6 +544,42 @@ type ArtifactStarPayload = Extract<SessionOutboundMessage, {
542
544
  type ArtifactGetContentPayload = Extract<SessionOutboundMessage, {
543
545
  type: "artifact.get-content.response";
544
546
  }>["payload"];
547
+ type ArtifactRepairPayload = Extract<SessionOutboundMessage, {
548
+ type: "artifact.repair.response";
549
+ }>["payload"];
550
+ type ArtifactDataGetPayload = Extract<SessionOutboundMessage, {
551
+ type: "artifact.data.get.response";
552
+ }>["payload"];
553
+ type ArtifactDataUpdatePayload = Extract<SessionOutboundMessage, {
554
+ type: "artifact.data.update.response";
555
+ }>["payload"];
556
+ type ArtifactStoreMovePayload = Extract<SessionOutboundMessage, {
557
+ type: "artifact.store.move.response";
558
+ }>["payload"];
559
+ type ArchitecturalViewsDeliverPayload = Extract<SessionOutboundMessage, {
560
+ type: "architectural-views.deliver.response";
561
+ }>["payload"];
562
+ type ArchitecturalViewsListPayload = Extract<SessionOutboundMessage, {
563
+ type: "architectural-views.list.response";
564
+ }>["payload"];
565
+ type ArchitecturalViewsGetContentPayload = Extract<SessionOutboundMessage, {
566
+ type: "architectural-views.get-content.response";
567
+ }>["payload"];
568
+ type ArchitecturalViewsDraftCreatePayload = Extract<SessionOutboundMessage, {
569
+ type: "architectural-views.draft.create.response";
570
+ }>["payload"];
571
+ type ArchitecturalViewsDraftUpdatePayload = Extract<SessionOutboundMessage, {
572
+ type: "architectural-views.draft.update.response";
573
+ }>["payload"];
574
+ type ArchitecturalViewsDraftPublishPayload = Extract<SessionOutboundMessage, {
575
+ type: "architectural-views.draft.publish.response";
576
+ }>["payload"];
577
+ type ArchitecturalViewsDraftDiscardPayload = Extract<SessionOutboundMessage, {
578
+ type: "architectural-views.draft.discard.response";
579
+ }>["payload"];
580
+ type ArchitecturalViewsDraftGetContentPayload = Extract<SessionOutboundMessage, {
581
+ type: "architectural-views.draft.get-content.response";
582
+ }>["payload"];
545
583
  export type FetchAgentTimelinePayload = FetchAgentTimelineResponseMessage["payload"];
546
584
  export type AgentForkContextPayload = AgentForkContextResponseMessage["payload"];
547
585
  export type FetchAgentTimelineDirection = FetchAgentTimelinePayload["direction"];
@@ -643,6 +681,30 @@ export type FetchWorkspacesOptions = Omit<FetchWorkspacesRequest, "type" | "requ
643
681
  };
644
682
  export type FetchWorkspacesEntry = FetchWorkspacesPayload["entries"][number];
645
683
  export type FetchWorkspacesPageInfo = FetchWorkspacesPayload["pageInfo"];
684
+ export type WorkspaceLabelListPayload = Extract<SessionOutboundMessage, {
685
+ type: "workspace.label.list.response";
686
+ }>["payload"];
687
+ export type WorkspaceLabelAssignmentPayload = Extract<SessionOutboundMessage, {
688
+ type: "workspace.label.assignment.set.response";
689
+ }>["payload"];
690
+ export type WorkspaceLabelUpdatePayload = Extract<SessionOutboundMessage, {
691
+ type: "workspace.label.update.response";
692
+ }>["payload"];
693
+ export type WorkspaceLabelDeletePayload = Extract<SessionOutboundMessage, {
694
+ type: "workspace.label.delete.response";
695
+ }>["payload"];
696
+ export type WorkspaceLabelDeleteInspectPayload = Extract<SessionOutboundMessage, {
697
+ type: "workspace.label.delete.inspect.response";
698
+ }>["payload"];
699
+ export type ProjectListPayload = Extract<SessionOutboundMessage, {
700
+ type: "project.list.response";
701
+ }>["payload"];
702
+ type ProjectListRequest = Extract<SessionInboundMessage, {
703
+ type: "project.list.request";
704
+ }>;
705
+ export type ProjectListOptions = Omit<ProjectListRequest, "type" | "requestId"> & {
706
+ requestId?: string;
707
+ };
646
708
  export interface CreateScheduleOptions {
647
709
  prompt: string;
648
710
  name?: string | null;
@@ -677,6 +739,10 @@ export interface CreateScheduleOptions {
677
739
  systemPrompt?: string;
678
740
  mcpServers?: AgentSessionConfig["mcpServers"];
679
741
  };
742
+ } | {
743
+ type: "workflow";
744
+ definitionId: string;
745
+ projectRoot: string;
680
746
  };
681
747
  maxRuns?: number;
682
748
  expiresAt?: string;
@@ -768,6 +834,30 @@ type CorrelatedResponsePayload<TType extends CorrelatedResponseType> = Extract<C
768
834
  type ProjectGithubClonePayload = Extract<SessionOutboundMessage, {
769
835
  type: "project.github.clone.response";
770
836
  }>["payload"];
837
+ export interface StartWorkflowInput {
838
+ flavor: "ai" | "graph";
839
+ cwd: string;
840
+ workspaceId?: string;
841
+ title?: string;
842
+ description?: string;
843
+ orchestratorPersonalityId?: string;
844
+ orchestratorProvider?: string;
845
+ orchestratorModel?: string;
846
+ orchestratorThinkingOptionId?: string;
847
+ prompt?: string;
848
+ graphId?: string;
849
+ graphInputs?: Record<string, string>;
850
+ startConfirmationToken?: string;
851
+ draft?: boolean;
852
+ runId?: string;
853
+ }
854
+ export interface WorkflowStartResult {
855
+ runId?: string;
856
+ agentId?: string;
857
+ workspaceId?: string;
858
+ confirmation?: WorkflowStartConfirmation;
859
+ confirmationToken?: string;
860
+ }
771
861
  export declare class DaemonClient {
772
862
  private config;
773
863
  private transport;
@@ -896,6 +986,39 @@ export declare class DaemonClient {
896
986
  getHistoryStorageStats(requestId?: string): Promise<HistoryAgentsStorageStatsResponse["payload"]>;
897
987
  fetchRecentProviderSessions(options?: FetchRecentProviderSessionsOptions): Promise<FetchRecentProviderSessionsPayload>;
898
988
  fetchWorkspaces(options?: FetchWorkspacesOptions): Promise<FetchWorkspacesPayload>;
989
+ listWorkspaceLabels(options: {
990
+ subscriptionId: string;
991
+ sync?: {
992
+ generation: string;
993
+ afterSeq: number;
994
+ };
995
+ requestId?: string;
996
+ }): Promise<WorkspaceLabelListPayload>;
997
+ setWorkspaceLabel(options: {
998
+ workspaceId: string;
999
+ label: Extract<SessionInboundMessage, {
1000
+ type: "workspace.label.assignment.set.request";
1001
+ }>["label"];
1002
+ assigned: boolean;
1003
+ requestId?: string;
1004
+ }): Promise<WorkspaceLabelAssignmentPayload>;
1005
+ updateWorkspaceLabel(options: {
1006
+ name: string;
1007
+ newName?: string;
1008
+ color?: Extract<SessionInboundMessage, {
1009
+ type: "workspace.label.update.request";
1010
+ }>["color"];
1011
+ requestId?: string;
1012
+ }): Promise<WorkspaceLabelUpdatePayload>;
1013
+ deleteWorkspaceLabel(options: {
1014
+ name: string;
1015
+ requestId?: string;
1016
+ }): Promise<WorkspaceLabelDeletePayload>;
1017
+ inspectWorkspaceLabelDelete(options: {
1018
+ name: string;
1019
+ requestId?: string;
1020
+ }): Promise<WorkspaceLabelDeleteInspectPayload>;
1021
+ listProjects(options?: string | ProjectListOptions): Promise<ProjectListPayload>;
899
1022
  openProject(cwd: string, requestId?: string): Promise<OpenProjectPayload>;
900
1023
  addProject(cwd: string, requestId?: string): Promise<ProjectAddPayload>;
901
1024
  resolveWorkspaceForPath(path: string, requestId?: string): Promise<ProjectResolveWorkspaceForPathResponse["payload"]>;
@@ -1028,40 +1151,46 @@ export declare class DaemonClient {
1028
1151
  deleteRun(runId: string): Promise<string>;
1029
1152
  /** Orchestration: list the host's reusable graph templates. */
1030
1153
  listOrchestrationGraphs(): Promise<OrchestrationGraph[]>;
1154
+ /** List saved Workflow Graphs for one project, never the legacy host library. */
1155
+ listProjectWorkflowGraphs(cwd: string): Promise<OrchestrationGraph[]>;
1156
+ /** Persist a Graph in the selected project Workflow store. */
1157
+ saveProjectWorkflowGraph(cwd: string, graph: OrchestrationGraph): Promise<OrchestrationGraph>;
1031
1158
  /** Orchestration: upsert a graph template. Returns the persisted graph. */
1032
1159
  saveOrchestrationGraph(graph: OrchestrationGraph): Promise<OrchestrationGraph>;
1033
1160
  /** Orchestration: delete a graph template (built-in starters refuse). */
1034
1161
  deleteOrchestrationGraph(graphId: string): Promise<boolean>;
1162
+ exportWorkflowGraph(graphId: string): Promise<import("@otto-code/protocol/workflow").WorkflowGraphExport>;
1163
+ importWorkflowGraph(input: {
1164
+ cwd: string;
1165
+ export: import("@otto-code/protocol/workflow").WorkflowGraphExport;
1166
+ confirmed: boolean;
1167
+ }): Promise<import("@otto-code/protocol/workflow").WorkflowGraphImportResult>;
1035
1168
  /** Orchestration: list the host's reusable prompt templates and snippets. */
1036
1169
  listPromptTemplates(): Promise<PromptTemplate[]>;
1170
+ listProjectWorkflowTemplates(cwd: string): Promise<PromptTemplate[]>;
1171
+ saveProjectWorkflowTemplate(cwd: string, template: PromptTemplate): Promise<PromptTemplate>;
1172
+ transferProjectWorkflowRecord(input: {
1173
+ cwd: string;
1174
+ recordKind: "graph" | "template" | "run";
1175
+ recordId: string;
1176
+ source: "legacy-host-library" | "repository" | "host";
1177
+ destination: "repository" | "host";
1178
+ mode: "copy" | "move";
1179
+ }): Promise<import("@otto-code/protocol/workflow").WorkflowTransferReceipt>;
1037
1180
  /** Orchestration: upsert a prompt template. Returns the persisted template. */
1038
1181
  savePromptTemplate(template: PromptTemplate): Promise<PromptTemplate>;
1039
1182
  /** Orchestration: delete a prompt template (built-in starters refuse). */
1040
1183
  deletePromptTemplate(templateId: string): Promise<boolean>;
1041
1184
  /**
1042
- * Orchestration: start (or draft) a user-initiated orchestration. Returns the
1043
- * run id (graph flavor) and the orchestrator chat's agent id to navigate to.
1185
+ * Workflow: start (or draft) a user-initiated Workflow. Returns the workflow
1186
+ * id (graph flavor) and the orchestrator chat's agent id to navigate to.
1044
1187
  */
1045
- startOrchestration(input: {
1046
- flavor: "ai" | "graph";
1047
- cwd: string;
1048
- workspaceId?: string;
1049
- title?: string;
1050
- description?: string;
1051
- orchestratorPersonalityId?: string;
1052
- orchestratorProvider?: string;
1053
- orchestratorModel?: string;
1054
- orchestratorThinkingOptionId?: string;
1055
- prompt?: string;
1056
- graphId?: string;
1057
- graphInputs?: Record<string, string>;
1058
- draft?: boolean;
1059
- runId?: string;
1060
- }): Promise<{
1061
- runId?: string;
1062
- agentId?: string;
1063
- workspaceId?: string;
1064
- }>;
1188
+ startWorkflow(input: StartWorkflowInput): Promise<WorkflowStartResult>;
1189
+ /** Answer a daemon-owned AI Workflow start confirmation. */
1190
+ respondToWorkflowStartConfirmation(input: {
1191
+ runId: string;
1192
+ approved: boolean;
1193
+ }): Promise<boolean>;
1065
1194
  updateAgent(agentId: string, updates: {
1066
1195
  name?: string;
1067
1196
  labels?: Record<string, string>;
@@ -1190,7 +1319,6 @@ export declare class DaemonClient {
1190
1319
  baseRef: string | null;
1191
1320
  commits: CheckoutCommit[];
1192
1321
  }>;
1193
- listProjects(requestId?: string): Promise<ProjectListPayload>;
1194
1322
  onAgentAttentionRequired(handler: (notification: AgentAttentionRequiredNotification) => void): () => void;
1195
1323
  restoreWorkspace(workspaceId: string, requestId?: string): Promise<void>;
1196
1324
  searchGithubRepositories(input: {
@@ -1452,7 +1580,7 @@ export declare class DaemonClient {
1452
1580
  }, requestId?: string): Promise<DirectorySuggestionsPayload>;
1453
1581
  private requestFileExplorer;
1454
1582
  listDirectory(cwd: string, path: string, requestId?: string): Promise<FileExplorerDirectoryPayload>;
1455
- readFile(cwd: string, path: string, requestId?: string): Promise<FileReadResult>;
1583
+ readFile(cwd: string, path: string, requestId?: string, maxBytes?: number): Promise<FileReadResult>;
1456
1584
  /**
1457
1585
  * Text-editor read: inline JSON path so the payload carries the editor's
1458
1586
  * save-precondition baseline (modifiedAt, eol, hash) alongside the content.
@@ -1813,6 +1941,41 @@ export declare class DaemonClient {
1813
1941
  config: MutableDaemonConfig;
1814
1942
  }>;
1815
1943
  getDaemonStatus(options?: DaemonStatusOptions): Promise<DaemonStatusPayload>;
1944
+ reloadDaemonConfig(requestId?: string): Promise<DaemonConfigReloadResponse["payload"]>;
1945
+ connectHub(hubUrl: string, token: string, requestId?: string): Promise<{
1946
+ requestId: string;
1947
+ status: {
1948
+ state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
1949
+ daemonId: string | null;
1950
+ hubOrigin: string | null;
1951
+ scopes: string[];
1952
+ connectedAt: string | null;
1953
+ lastError: string | null;
1954
+ };
1955
+ }>;
1956
+ getHubStatus(requestId?: string): Promise<{
1957
+ requestId: string;
1958
+ status: {
1959
+ state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
1960
+ daemonId: string | null;
1961
+ hubOrigin: string | null;
1962
+ scopes: string[];
1963
+ connectedAt: string | null;
1964
+ lastError: string | null;
1965
+ };
1966
+ }>;
1967
+ disconnectHub(force?: boolean, requestId?: string): Promise<{
1968
+ requestId: string;
1969
+ status: {
1970
+ state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
1971
+ daemonId: string | null;
1972
+ hubOrigin: string | null;
1973
+ scopes: string[];
1974
+ connectedAt: string | null;
1975
+ lastError: string | null;
1976
+ };
1977
+ warning?: string | undefined;
1978
+ }>;
1816
1979
  getDaemonPairingOffer(options?: DaemonPairingOfferOptions): Promise<DaemonPairingOfferPayload>;
1817
1980
  collectDiagnostics(requestId?: string): Promise<DiagnosticsPayload>;
1818
1981
  patchDaemonConfig(config: MutableDaemonConfigPatch, requestId?: string): Promise<{
@@ -2120,6 +2283,30 @@ export declare class DaemonClient {
2120
2283
  listCommands(agentId: string, requestId?: string): Promise<ListCommandsPayload>;
2121
2284
  listCommands(agentId: string, options?: LegacyListCommandsOptions): Promise<ListCommandsPayload>;
2122
2285
  respondToPermission(agentId: string, requestId: string, response: AgentPermissionResponse): Promise<void>;
2286
+ getPluginCatalog(): Promise<Array<{
2287
+ id: string;
2288
+ clientBundle: string;
2289
+ }>>;
2290
+ listPlugins(): Promise<PluginListItem[]>;
2291
+ getPluginLogs(pluginId: string): Promise<PluginLogEntry[]>;
2292
+ getAgentSkillsStatus(): Promise<AgentSkillsStatus>;
2293
+ reconcileAgentSkills(): Promise<AgentSkillsStatus>;
2294
+ uninstallAgentSkills(): Promise<AgentSkillsStatus>;
2295
+ saveAgentSkillsSelection(selection: AgentSkillSelection, confirmedRemovals?: readonly string[]): Promise<AgentSkillsSaveResult>;
2296
+ importLegacyAgentSkillsSelection(selection: AgentSkillSelection): Promise<{
2297
+ imported: boolean;
2298
+ selection: AgentSkillSelection;
2299
+ }>;
2300
+ installDirectoryPlugin(path: string, id?: string): Promise<PluginListItem>;
2301
+ inspectDirectoryPlugin(path: string): Promise<{
2302
+ id: string;
2303
+ }>;
2304
+ reloadPlugin(pluginId: string): Promise<PluginListItem>;
2305
+ enablePlugin(pluginId: string): Promise<PluginListItem>;
2306
+ disablePlugin(pluginId: string): Promise<PluginListItem>;
2307
+ removePlugin(pluginId: string): Promise<void>;
2308
+ private managePlugin;
2309
+ invokePluginRpc(pluginId: string, method: string, input: unknown): Promise<unknown>;
2123
2310
  respondToPermissionAndWait(agentId: string, requestId: string, response: AgentPermissionResponse, timeout?: number): Promise<AgentPermissionResolvedPayload>;
2124
2311
  waitForAgentUpsert(agentId: string, predicate: (snapshot: AgentSnapshotPayload) => boolean, timeout?: number): Promise<AgentSnapshotPayload>;
2125
2312
  waitForFinish(agentId: string, timeout?: number): Promise<WaitForFinishResult>;
@@ -2173,6 +2360,17 @@ export declare class DaemonClient {
2173
2360
  projectId?: string;
2174
2361
  requestId?: string;
2175
2362
  }): Promise<ArtifactListPayload>;
2363
+ setProjectArtifactStoreLocation(input: {
2364
+ projectId: string;
2365
+ location: "repository" | "host" | null;
2366
+ requestId?: string;
2367
+ }): Promise<void>;
2368
+ /** Requires server_info.features.categoryStorageResolver for Workflows. */
2369
+ setProjectWorkflowStoreLocation(input: {
2370
+ projectId: string;
2371
+ location: "repository" | "host" | null;
2372
+ requestId?: string;
2373
+ }): Promise<void>;
2176
2374
  artifactCreate(options: {
2177
2375
  name: string;
2178
2376
  description: string;
@@ -2220,6 +2418,88 @@ export declare class DaemonClient {
2220
2418
  artifactId: string;
2221
2419
  requestId?: string;
2222
2420
  }): Promise<ArtifactGetContentPayload>;
2421
+ artifactRepair(options: {
2422
+ artifactId: string;
2423
+ requestId?: string;
2424
+ }): Promise<ArtifactRepairPayload>;
2425
+ artifactGetData(options: {
2426
+ artifactId: string;
2427
+ requestId?: string;
2428
+ }): Promise<ArtifactDataGetPayload>;
2429
+ artifactUpdateData(options: {
2430
+ artifactId: string;
2431
+ data: unknown;
2432
+ requestId?: string;
2433
+ }): Promise<ArtifactDataUpdatePayload>;
2434
+ artifactMoveStore(options: {
2435
+ artifactId: string;
2436
+ destination: "repository" | "host";
2437
+ requestId?: string;
2438
+ }): Promise<ArtifactStoreMovePayload>;
2439
+ deliverArchitecturalView(options: {
2440
+ workspaceId: string;
2441
+ viewId: string;
2442
+ title: string;
2443
+ knowledgeReferences: Array<{
2444
+ kind: "root" | "record";
2445
+ id: string;
2446
+ }>;
2447
+ sourcePath: string;
2448
+ quality?: "standard" | "showcase";
2449
+ requestId?: string;
2450
+ }): Promise<ArchitecturalViewsDeliverPayload>;
2451
+ listArchitecturalViews(options: {
2452
+ workspaceId: string;
2453
+ knowledgeReference?: {
2454
+ kind: "root" | "record";
2455
+ id: string;
2456
+ };
2457
+ requestId?: string;
2458
+ }): Promise<ArchitecturalViewsListPayload>;
2459
+ getArchitecturalViewContent(options: {
2460
+ workspaceId: string;
2461
+ viewId: string;
2462
+ requestId?: string;
2463
+ }): Promise<ArchitecturalViewsGetContentPayload>;
2464
+ createArchitecturalViewDraft(options: {
2465
+ workspaceId: string;
2466
+ viewId: string;
2467
+ draftId: string;
2468
+ title: string;
2469
+ knowledgeReferences: Array<{
2470
+ kind: "root" | "record";
2471
+ id: string;
2472
+ }>;
2473
+ sourcePath?: string;
2474
+ quality?: "standard" | "showcase";
2475
+ requestId?: string;
2476
+ }): Promise<ArchitecturalViewsDraftCreatePayload>;
2477
+ publishArchitecturalViewDraft(options: {
2478
+ workspaceId: string;
2479
+ viewId: string;
2480
+ draftId: string;
2481
+ requestId?: string;
2482
+ }): Promise<ArchitecturalViewsDraftPublishPayload>;
2483
+ updateArchitecturalViewDraft(options: {
2484
+ workspaceId: string;
2485
+ viewId: string;
2486
+ draftId: string;
2487
+ sourcePath: string;
2488
+ quality?: "standard" | "showcase";
2489
+ requestId?: string;
2490
+ }): Promise<ArchitecturalViewsDraftUpdatePayload>;
2491
+ discardArchitecturalViewDraft(options: {
2492
+ workspaceId: string;
2493
+ viewId: string;
2494
+ draftId: string;
2495
+ requestId?: string;
2496
+ }): Promise<ArchitecturalViewsDraftDiscardPayload>;
2497
+ getArchitecturalViewDraftContent(options: {
2498
+ workspaceId: string;
2499
+ viewId: string;
2500
+ draftId: string;
2501
+ requestId?: string;
2502
+ }): Promise<ArchitecturalViewsDraftGetContentPayload>;
2223
2503
  onTerminalStreamEvent(handler: (event: TerminalStreamEvent) => void): () => void;
2224
2504
  waitForTerminalStreamEvent(predicate: (event: TerminalStreamEvent) => boolean, timeout?: number): Promise<TerminalStreamEvent>;
2225
2505
  private createRequestId;
@@ -2238,6 +2518,7 @@ export declare class DaemonClient {
2238
2518
  * not a protocol surface.
2239
2519
  */
2240
2520
  getInboundDispatchTimings(sinceMs?: number): DaemonClientInboundDispatchTiming[];
2521
+ private requireDaemonConfigReloadSupport;
2241
2522
  private resolveTransportUrlForAttempt;
2242
2523
  private sendHelloMessage;
2243
2524
  private disposeTransport;
@@ -2285,40 +2566,6 @@ export declare class DaemonClient {
2285
2566
  stopWorkspaceScript(workspaceId: string, scriptName: string, requestId?: string): Promise<Extract<SessionOutboundMessage, {
2286
2567
  type: "workspace.script.stop.response";
2287
2568
  }>["payload"]>;
2288
- connectHub(hubUrl: string, token: string, requestId?: string): Promise<{
2289
- requestId: string;
2290
- status: {
2291
- state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
2292
- daemonId: string | null;
2293
- hubOrigin: string | null;
2294
- scopes: string[];
2295
- connectedAt: string | null;
2296
- lastError: string | null;
2297
- };
2298
- }>;
2299
- getHubStatus(requestId?: string): Promise<{
2300
- requestId: string;
2301
- status: {
2302
- state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
2303
- daemonId: string | null;
2304
- hubOrigin: string | null;
2305
- scopes: string[];
2306
- connectedAt: string | null;
2307
- lastError: string | null;
2308
- };
2309
- }>;
2310
- disconnectHub(force?: boolean, requestId?: string): Promise<{
2311
- requestId: string;
2312
- status: {
2313
- state: "connected" | "connecting" | "not_connected" | "reconnecting" | "disconnecting" | "revoked";
2314
- daemonId: string | null;
2315
- hubOrigin: string | null;
2316
- scopes: string[];
2317
- connectedAt: string | null;
2318
- lastError: string | null;
2319
- };
2320
- warning?: string | undefined;
2321
- }>;
2322
2569
  private requireHubRelationshipSupport;
2323
2570
  }
2324
2571
  //# sourceMappingURL=daemon-client.d.ts.map