@otto-code/client 0.8.4 → 0.8.6

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.
@@ -3,7 +3,7 @@ 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, ProjectAddResponse, 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, KillTerminalResponse, CaptureTerminalResponse, 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, 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, KillTerminalResponse, CaptureTerminalResponse, 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
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";
@@ -814,6 +814,7 @@ export interface RenameBranchInput {
814
814
  export interface RenameTerminalInput {
815
815
  terminalId: string;
816
816
  title: string;
817
+ clear?: boolean;
817
818
  requestId?: string;
818
819
  }
819
820
  type OpenProjectPayload = OpenProjectResponseMessage["payload"];
@@ -963,6 +964,7 @@ export declare class DaemonClient {
963
964
  fetchWorkspaces(options?: FetchWorkspacesOptions): Promise<FetchWorkspacesPayload>;
964
965
  openProject(cwd: string, requestId?: string): Promise<OpenProjectPayload>;
965
966
  addProject(cwd: string, requestId?: string): Promise<ProjectAddPayload>;
967
+ resolveWorkspaceForPath(path: string, requestId?: string): Promise<ProjectResolveWorkspaceForPathResponse["payload"]>;
966
968
  scaffoldProject(options: {
967
969
  parentDirectory: string;
968
970
  folderName?: string;
@@ -1591,6 +1593,78 @@ export declare class DaemonClient {
1591
1593
  /** Assemble only this section; omitted means the whole prompt. */
1592
1594
  category?: ContextCategory;
1593
1595
  }, requestId?: string): Promise<ContextPromptPreviewGetResponseMessage["payload"]>;
1596
+ listProjectKnowledge(workspaceId: string, requestId?: string): Promise<ProjectKnowledgeListResponseMessage["payload"]>;
1597
+ getProjectKnowledge(input: {
1598
+ workspaceId: string;
1599
+ id: string;
1600
+ }, requestId?: string): Promise<ProjectKnowledgeGetResponseMessage["payload"]>;
1601
+ createProjectKnowledge(input: {
1602
+ workspaceId: string;
1603
+ id?: string;
1604
+ kind: "decision" | "constraint" | "requirement" | "architecture" | "project" | "reference";
1605
+ title: string;
1606
+ statement: string;
1607
+ evidence?: string;
1608
+ tags?: string[];
1609
+ affects?: string[];
1610
+ status?: "proposed" | "confirmed" | "superseded";
1611
+ deliveryStatus?: "charter" | "in_build" | "partial" | "blocked" | "complete" | "reference" | "deferred" | "cancelled";
1612
+ progress?: {
1613
+ completed: number;
1614
+ total: number;
1615
+ unit: string;
1616
+ };
1617
+ referenceDisposition?: "unevaluated" | "read" | "adopted" | "rejected" | "dependency";
1618
+ sourceUrl?: string;
1619
+ }, requestId?: string): Promise<ProjectKnowledgeCreateResponseMessage["payload"]>;
1620
+ applyProjectKnowledge(input: {
1621
+ workspaceId: string;
1622
+ id: string;
1623
+ title?: string;
1624
+ statement?: string;
1625
+ evidence?: string;
1626
+ provenanceText?: string;
1627
+ provenanceSource?: string;
1628
+ provenanceAffects?: string[];
1629
+ expectedUpdatedAt?: string;
1630
+ }, requestId?: string): Promise<ProjectKnowledgeApplyResponseMessage["payload"]>;
1631
+ setProjectKnowledgeStatus(input: {
1632
+ workspaceId: string;
1633
+ id: string;
1634
+ status: "proposed" | "confirmed" | "superseded";
1635
+ reason?: string;
1636
+ }, requestId?: string): Promise<ProjectKnowledgeStatusResponseMessage["payload"]>;
1637
+ applyProjectKnowledgeProject(input: {
1638
+ workspaceId: string;
1639
+ id: string;
1640
+ deliveryStatus?: "charter" | "in_build" | "partial" | "blocked" | "complete" | "reference" | "deferred" | "cancelled";
1641
+ progress?: {
1642
+ completed: number;
1643
+ total: number;
1644
+ unit: string;
1645
+ } | null;
1646
+ reason: string;
1647
+ expectedUpdatedAt?: string;
1648
+ }, requestId?: string): Promise<ProjectKnowledgeProjectApplyResponseMessage["payload"]>;
1649
+ applyProjectKnowledgeReference(input: {
1650
+ workspaceId: string;
1651
+ id: string;
1652
+ disposition?: "unevaluated" | "read" | "adopted" | "rejected" | "dependency";
1653
+ sourceUrl?: string | null;
1654
+ reason: string;
1655
+ expectedUpdatedAt?: string;
1656
+ }, requestId?: string): Promise<ProjectKnowledgeReferenceApplyResponseMessage["payload"]>;
1657
+ applyProjectKnowledgeRoot(input: {
1658
+ workspaceId: string;
1659
+ slug: string;
1660
+ body: string;
1661
+ }, requestId?: string): Promise<ProjectKnowledgeRootApplyResponseMessage["payload"]>;
1662
+ deleteProjectKnowledge(input: {
1663
+ workspaceId: string;
1664
+ id: string;
1665
+ reason: string;
1666
+ expectedUpdatedAt?: string;
1667
+ }, requestId?: string): Promise<ProjectKnowledgeDeleteResponseMessage["payload"]>;
1594
1668
  /**
1595
1669
  * A personality's accrued lessons plus the EXACT brief the daemon would inject
1596
1670
  * for `projectRoot`. The brief is returned rather than rebuilt client-side
@@ -1095,6 +1095,16 @@ export class DaemonClient {
1095
1095
  responseType: "project.add.response",
1096
1096
  });
1097
1097
  }
1098
+ async resolveWorkspaceForPath(path, requestId) {
1099
+ return this.sendCorrelatedSessionRequest({
1100
+ requestId,
1101
+ message: {
1102
+ type: "project.resolveWorkspaceForPath.request",
1103
+ path,
1104
+ },
1105
+ responseType: "project.resolveWorkspaceForPath.response",
1106
+ });
1107
+ }
1098
1108
  // Creates a project directory from scratch and registers it. Requires
1099
1109
  // server_info features.projectScaffold. `onProgress` is optional: the
1100
1110
  // resolved payload carries the authoritative step list either way.
@@ -4147,6 +4157,60 @@ export class DaemonClient {
4147
4157
  responseType: "context.prompt.preview.get.response",
4148
4158
  });
4149
4159
  }
4160
+ async listProjectKnowledge(workspaceId, requestId) {
4161
+ return this.sendNamespacedCorrelatedSessionRequest({
4162
+ requestId,
4163
+ message: { type: "project.knowledge.list.request", workspaceId },
4164
+ });
4165
+ }
4166
+ async getProjectKnowledge(input, requestId) {
4167
+ return this.sendNamespacedCorrelatedSessionRequest({
4168
+ requestId,
4169
+ message: { type: "project.knowledge.get.request", ...input },
4170
+ });
4171
+ }
4172
+ async createProjectKnowledge(input, requestId) {
4173
+ return this.sendNamespacedCorrelatedSessionRequest({
4174
+ requestId,
4175
+ message: { type: "project.knowledge.create.request", ...input },
4176
+ });
4177
+ }
4178
+ async applyProjectKnowledge(input, requestId) {
4179
+ return this.sendNamespacedCorrelatedSessionRequest({
4180
+ requestId,
4181
+ message: { type: "project.knowledge.apply.request", ...input },
4182
+ });
4183
+ }
4184
+ async setProjectKnowledgeStatus(input, requestId) {
4185
+ return this.sendNamespacedCorrelatedSessionRequest({
4186
+ requestId,
4187
+ message: { type: "project.knowledge.status.request", ...input },
4188
+ });
4189
+ }
4190
+ async applyProjectKnowledgeProject(input, requestId) {
4191
+ return this.sendNamespacedCorrelatedSessionRequest({
4192
+ requestId,
4193
+ message: { type: "project.knowledge.project.apply.request", ...input },
4194
+ });
4195
+ }
4196
+ async applyProjectKnowledgeReference(input, requestId) {
4197
+ return this.sendNamespacedCorrelatedSessionRequest({
4198
+ requestId,
4199
+ message: { type: "project.knowledge.reference.apply.request", ...input },
4200
+ });
4201
+ }
4202
+ async applyProjectKnowledgeRoot(input, requestId) {
4203
+ return this.sendNamespacedCorrelatedSessionRequest({
4204
+ requestId,
4205
+ message: { type: "project.knowledge.root.apply.request", ...input },
4206
+ });
4207
+ }
4208
+ async deleteProjectKnowledge(input, requestId) {
4209
+ return this.sendNamespacedCorrelatedSessionRequest({
4210
+ requestId,
4211
+ message: { type: "project.knowledge.delete.request", ...input },
4212
+ });
4213
+ }
4150
4214
  // ============================================================================
4151
4215
  // Personality memory
4152
4216
  // ============================================================================
@@ -5183,6 +5247,7 @@ export class DaemonClient {
5183
5247
  type: "terminal.rename.request",
5184
5248
  terminalId: input.terminalId,
5185
5249
  title: input.title,
5250
+ ...(input.clear ? { clear: true } : {}),
5186
5251
  },
5187
5252
  responseType: "terminal.rename.response",
5188
5253
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-code/client",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
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.4",
40
- "@otto-code/relay": "0.8.4",
39
+ "@otto-code/protocol": "0.8.6",
40
+ "@otto-code/relay": "0.8.6",
41
41
  "zod": "^4.4.3"
42
42
  },
43
43
  "devDependencies": {