@otto-code/client 0.6.2 → 0.6.4

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.
@@ -1,10 +1,10 @@
1
1
  import type { z } from "zod";
2
2
  import { type ClientCapability } from "@otto-code/protocol/client-capabilities";
3
3
  import { AgentRefreshedStatusPayloadSchema, CheckoutRenameBranchResponseSchema, RenameTerminalResponseSchema, RestartRequestedStatusPayloadSchema, ShutdownRequestedStatusPayloadSchema, DaemonUpdateResponseSchema, type ServerInfoStatusPayload } from "@otto-code/protocol/messages";
4
- import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreateOttoWorktreeRequest, CodeListFilesResponse, CodeSymbolLocation, FileDownloadTokenResponse, FileEol, FileReplaceFileResult, FileReplaceRequest, FileReplaceResponse, FileSearchResultPayload, FileSearchSummary, FileUploadResponse, FileExplorerResponse, FileWatchEventPayload, FileWriteResult, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutGitCommitResponse, CheckoutGitCommitAgentResponse, CheckoutGitRollbackResponse, CheckoutGitGetOperationLogResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, PreviewListConfigResponse, PreviewStartResponse, PreviewBindTabResponse, PreviewStopResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, GitHubSearchResponse, GitHubSearchRequest, GitHostingProviderId, HostingSearchRequest, HostingSearchResponse, HostingAuthStatusResponse, DirectorySuggestionsResponse, OttoWorktreeListResponse, OttoWorktreeArchiveResponse, ProjectIconResponse, ProjectAddResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, StatsActivityGetResponseMessage, AgentContextGetUsageResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, TasksSuggestedStartMode, OttoConfigRaw, OttoConfigRevision, WorkspaceCreateRequest } from "@otto-code/protocol/messages";
4
+ import type { AgentStreamEventPayload, AgentSnapshotPayload, ProjectPlacementPayload, AgentPermissionResolvedMessage, CreateAgentRequestMessage, CreateOttoWorktreeRequest, CodeListFilesResponse, CodeSymbolLocation, FileDownloadTokenResponse, FileEol, FileReplaceFileResult, FileReplaceRequest, FileReplaceResponse, FileSearchResultPayload, FileSearchSummary, FileUploadResponse, FileExplorerResponse, FileWatchEventPayload, FileWriteResult, FetchAgentTimelineResponseMessage, AgentForkContextResponseMessage, GitSetupOptions, CheckoutStatusResponse, CheckoutCommitResponse, CheckoutGitCommitResponse, CheckoutGitCommitAgentResponse, CheckoutGitRollbackResponse, CheckoutGitGetOperationLogResponse, CheckoutMergeResponse, CheckoutMergeFromBaseResponse, CheckoutPullResponse, CheckoutPushResponse, CheckoutRefreshResponse, CheckoutPrCreateResponse, CheckoutPrMergeResponse, CheckoutPrMergeMethod, CheckoutGithubSetAutoMergeResponse, CheckoutGithubGetCheckDetailsResponse, PreviewListConfigResponse, PreviewStartResponse, PreviewBindTabResponse, PreviewStopResponse, CheckoutPrStatusResponse, PullRequestTimelineResponse, CheckoutSwitchBranchResponse, StashSaveResponse, StashPopResponse, StashListResponse, ValidateBranchResponse, BranchSuggestionsResponse, GitHubSearchResponse, GitHubSearchRequest, GitHostingProviderId, HostingSearchRequest, HostingSearchResponse, HostingAuthStatusResponse, DirectorySuggestionsResponse, OttoWorktreeListResponse, OttoWorktreeArchiveResponse, ProjectIconResponse, ContextReportGetResponseMessage, ContextEdgeConvertResponseMessage, ProjectAddResponse, OpenProjectResponseMessage, ArchiveWorkspaceResponseMessage, WorkspaceSetupStatusResponseMessage, ListCommandsResponse, ListProviderFeaturesResponseMessage, ListProviderModelsResponseMessage, ListProviderModesResponseMessage, ListAvailableProvidersResponse, GetProvidersSnapshotResponseMessage, RefreshProvidersSnapshotResponseMessage, ProviderDiagnosticResponseMessage, ProviderUsageListResponseMessage, StatsActivityGetResponseMessage, StatsActivityResetResponseMessage, UsageLogGetResponseMessage, AgentContextGetUsageResponseMessage, DaemonGetStatusResponse, DaemonGetPairingOfferResponse, DiagnosticsResponse, AgentRewindResponseMessage, ListTerminalsResponse, CreateTerminalResponse, SubscribeTerminalResponse, SubscribeTerminalRequest, CloseItemsResponse, KillTerminalResponse, CaptureTerminalResponse, TerminalInput, SessionInboundMessage, SessionOutboundMessage, SendAgentMessageRequest, TasksSuggestedStartMode, OttoConfigRaw, OttoConfigRevision, WorkspaceCreateRequest } from "@otto-code/protocol/messages";
5
5
  import type { AgentPermissionRequest, AgentPermissionResponse, AgentPersistenceHandle, AgentProviderNotice, AgentProvider, AgentSessionConfig } from "@otto-code/protocol/agent-types";
6
6
  import type { Run } from "@otto-code/protocol/orchestration";
7
- import type { MutableDaemonConfig, MutableDaemonConfigPatch, ProjectLink, SpeechSettingsOptions, SpeechTtsPreviewResult } from "@otto-code/protocol/messages";
7
+ import type { MutableDaemonConfig, MutableDaemonConfigPatch, ProjectLink, SpeechSettingsOptions, SpeechTtsPreviewResult, VisualizerVoiceCuesResult } from "@otto-code/protocol/messages";
8
8
  import { type DaemonTransportFactory, type WebSocketFactory } from "./daemon-client-transport.js";
9
9
  import { type TerminalStreamEvent } from "./terminal-stream-router.js";
10
10
  import type { BrowserAutomationExecuteRequest, BrowserAutomationExecuteResponse } from "@otto-code/protocol/browser-automation/rpc-schemas";
@@ -1039,6 +1039,27 @@ export declare class DaemonClient {
1039
1039
  uploadFile(input: FileUploadInput): Promise<FileUploadResult>;
1040
1040
  requestDownloadToken(cwd: string, path: string, requestId?: string): Promise<FileDownloadTokenPayload>;
1041
1041
  requestProjectIcon(cwd: string, requestId?: string): Promise<ProjectIconResponse["payload"]>;
1042
+ /**
1043
+ * Everything the workspace's provider sends before the user types. `provider`
1044
+ * and `windowTokens` are what-if overrides for the Context Management tab's
1045
+ * pickers; omit both to evaluate the active agent's real setup.
1046
+ */
1047
+ requestContextReport(input: {
1048
+ workspaceId: string;
1049
+ provider?: string;
1050
+ windowTokens?: number;
1051
+ }, requestId?: string): Promise<ContextReportGetResponseMessage["payload"]>;
1052
+ /** Rewrites one reference between "always loaded" and "link only". */
1053
+ requestContextEdgeConvert(input: {
1054
+ workspaceId: string;
1055
+ filePath: string;
1056
+ rawTarget: string;
1057
+ range: {
1058
+ start: number;
1059
+ end: number;
1060
+ };
1061
+ target: "import" | "reference";
1062
+ }, requestId?: string): Promise<ContextEdgeConvertResponseMessage["payload"]>;
1042
1063
  listProviderModels(provider: AgentProvider, options?: {
1043
1064
  cwd?: string;
1044
1065
  requestId?: string;
@@ -1080,6 +1101,13 @@ export declare class DaemonClient {
1080
1101
  name: string;
1081
1102
  };
1082
1103
  }, requestId?: string): Promise<SpeechTtsPreviewResult>;
1104
+ generateVisualizerVoiceCues(params: {
1105
+ name: string;
1106
+ prompt?: string;
1107
+ cwd?: string;
1108
+ roles?: string[];
1109
+ moment?: "join" | "thinking" | "done";
1110
+ }, requestId?: string): Promise<VisualizerVoiceCuesResult>;
1083
1111
  getPersonalityStats(requestId?: string): Promise<{
1084
1112
  requestId: string;
1085
1113
  stats: Record<string, number>;
@@ -1102,6 +1130,16 @@ export declare class DaemonClient {
1102
1130
  getActivityStats(options?: {
1103
1131
  requestId?: string;
1104
1132
  }): Promise<StatsActivityGetResponseMessage["payload"]>;
1133
+ /** Wipe all usage counters AND the itemized ledger back to zero (Metrics "Reset"). */
1134
+ resetActivityStats(options?: {
1135
+ requestId?: string;
1136
+ }): Promise<StatsActivityResetResponseMessage["payload"]>;
1137
+ /** Itemized usage ledger — the scrollable rows behind the stats tiles (usage-ledger). */
1138
+ getUsageLog(options?: {
1139
+ limit?: number;
1140
+ before?: number;
1141
+ requestId?: string;
1142
+ }): Promise<UsageLogGetResponseMessage["payload"]>;
1105
1143
  getAgentContextUsage(agentId: string, options?: {
1106
1144
  requestId?: string;
1107
1145
  }): Promise<AgentContextGetUsagePayload>;
@@ -2931,6 +2931,41 @@ export class DaemonClient {
2931
2931
  });
2932
2932
  }
2933
2933
  // ============================================================================
2934
+ // Context Management
2935
+ // ============================================================================
2936
+ /**
2937
+ * Everything the workspace's provider sends before the user types. `provider`
2938
+ * and `windowTokens` are what-if overrides for the Context Management tab's
2939
+ * pickers; omit both to evaluate the active agent's real setup.
2940
+ */
2941
+ async requestContextReport(input, requestId) {
2942
+ return this.sendCorrelatedSessionRequest({
2943
+ requestId,
2944
+ message: {
2945
+ type: "context.report.get.request",
2946
+ workspaceId: input.workspaceId,
2947
+ ...(input.provider ? { provider: input.provider } : {}),
2948
+ ...(typeof input.windowTokens === "number" ? { windowTokens: input.windowTokens } : {}),
2949
+ },
2950
+ responseType: "context.report.get.response",
2951
+ });
2952
+ }
2953
+ /** Rewrites one reference between "always loaded" and "link only". */
2954
+ async requestContextEdgeConvert(input, requestId) {
2955
+ return this.sendCorrelatedSessionRequest({
2956
+ requestId,
2957
+ message: {
2958
+ type: "context.edge.convert.request",
2959
+ workspaceId: input.workspaceId,
2960
+ filePath: input.filePath,
2961
+ rawTarget: input.rawTarget,
2962
+ range: input.range,
2963
+ target: input.target,
2964
+ },
2965
+ responseType: "context.edge.convert.response",
2966
+ });
2967
+ }
2968
+ // ============================================================================
2934
2969
  // Provider Models / Commands
2935
2970
  // ============================================================================
2936
2971
  async listProviderModels(provider, options) {
@@ -3058,6 +3093,26 @@ export class DaemonClient {
3058
3093
  },
3059
3094
  });
3060
3095
  }
3096
+ // Author short spoken cue lines (join / thinking / done) for a persona,
3097
+ // described inline (name + prompt) so it works for an unsaved editor draft.
3098
+ // Routed through the Writer chain; the caller stores the result on the
3099
+ // personality's `voiceCues`.
3100
+ async generateVisualizerVoiceCues(params, requestId) {
3101
+ return this.sendNamespacedCorrelatedSessionRequest({
3102
+ requestId,
3103
+ message: {
3104
+ type: "visualizer.voiceCues.generate.request",
3105
+ name: params.name,
3106
+ ...(params.prompt ? { prompt: params.prompt } : {}),
3107
+ ...(params.cwd ? { cwd: params.cwd } : {}),
3108
+ ...(params.roles && params.roles.length > 0 ? { roles: params.roles } : {}),
3109
+ ...(params.moment ? { moment: params.moment } : {}),
3110
+ },
3111
+ // The daemon spawns a structured-generation agent for this; provider SDK
3112
+ // cold starts can blow well past the 60s default.
3113
+ timeout: 180000,
3114
+ });
3115
+ }
3061
3116
  async getPersonalityStats(requestId) {
3062
3117
  return this.sendNamespacedCorrelatedSessionRequest({
3063
3118
  requestId,
@@ -3131,6 +3186,26 @@ export class DaemonClient {
3131
3186
  },
3132
3187
  });
3133
3188
  }
3189
+ /** Wipe all usage counters AND the itemized ledger back to zero (Metrics "Reset"). */
3190
+ async resetActivityStats(options) {
3191
+ return this.sendNamespacedCorrelatedSessionRequest({
3192
+ requestId: options?.requestId,
3193
+ message: {
3194
+ type: "stats.activity.reset.request",
3195
+ },
3196
+ });
3197
+ }
3198
+ /** Itemized usage ledger — the scrollable rows behind the stats tiles (usage-ledger). */
3199
+ async getUsageLog(options) {
3200
+ return this.sendNamespacedCorrelatedSessionRequest({
3201
+ requestId: options?.requestId,
3202
+ message: {
3203
+ type: "usage.log.get.request",
3204
+ ...(options?.limit !== undefined ? { limit: options.limit } : {}),
3205
+ ...(options?.before !== undefined ? { before: options.before } : {}),
3206
+ },
3207
+ });
3208
+ }
3134
3209
  async getAgentContextUsage(agentId, options) {
3135
3210
  return this.sendNamespacedCorrelatedSessionRequest({
3136
3211
  requestId: options?.requestId,
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@otto-code/client",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "Otto client SDK package",
5
+ "license": "AGPL-3.0-or-later",
5
6
  "files": [
6
7
  "dist",
7
8
  "!dist/**/*.map",
@@ -35,8 +36,8 @@
35
36
  "test": "vitest run"
36
37
  },
37
38
  "dependencies": {
38
- "@otto-code/protocol": "0.6.2",
39
- "@otto-code/relay": "0.6.2",
39
+ "@otto-code/protocol": "0.6.4",
40
+ "@otto-code/relay": "0.6.4",
40
41
  "zod": "^4.4.3"
41
42
  },
42
43
  "devDependencies": {