@otto-code/protocol 0.8.12 → 0.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-labels.d.ts +3 -0
- package/dist/agent-labels.js +10 -0
- package/dist/{agent-personalities.d.ts → agent-profiles.d.ts} +13 -3
- package/dist/{agent-personalities.js → agent-profiles.js} +27 -11
- package/dist/agent-teams.d.ts +5 -5
- package/dist/agent-teams.js +1 -1
- package/dist/agent-types.d.ts +24 -4
- package/dist/binary-frames/terminal.d.ts +4 -0
- package/dist/binary-frames/terminal.js +1 -0
- package/dist/brain.d.ts +91 -0
- package/dist/brain.js +19 -1
- package/dist/chat/rpc-schemas.js +1 -0
- package/dist/chat/types.js +1 -0
- package/dist/client-capabilities.d.ts +1 -0
- package/dist/client-capabilities.js +4 -0
- package/dist/daemon-config.d.ts +10 -0
- package/dist/daemon-config.js +6 -0
- package/dist/default-personalities.d.ts +2 -2
- package/dist/default-personalities.js +2 -2
- package/dist/generated/validation/ws-outbound.aot.js +65204 -60319
- package/dist/loop/rpc-schemas.js +1 -0
- package/dist/messages.d.ts +4146 -316
- package/dist/messages.js +483 -2
- package/dist/personality-schemas.d.ts +135 -0
- package/dist/personality-schemas.js +63 -0
- package/dist/provider-manifest.js +7 -0
- package/dist/provider-snapshot-codec.d.ts +18 -0
- package/dist/provider-snapshot-codec.js +71 -0
- package/dist/schedule/rpc-schemas.d.ts +16 -8
- package/dist/schedule/types.d.ts +6 -3
- package/dist/schedule/types.js +8 -1
- package/dist/search/text-match.d.ts +55 -0
- package/dist/search/text-match.js +262 -0
- package/dist/suggested-tasks.js +1 -1
- package/dist/terminal-input-mode.d.ts +4 -0
- package/dist/terminal-input-mode.js +35 -6
- package/dist/terminal-key-input.js +15 -6
- package/dist/terminal-profiles.d.ts +35 -0
- package/dist/terminal-profiles.js +246 -4
- package/dist/tool-call-display.d.ts +2 -2
- package/dist/tool-call-display.js +6 -6
- package/dist/validation/ws-outbound-schema-metadata.d.ts +677 -28
- package/package.json +1 -1
package/dist/messages.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { MutableAgentBehaviorsConfigSchema, MutableLspConfigSchema, MutableDotnetSolutionConfigSchema, MutableGitHostingConfigSchema, MutableKanbanConfigSchema, MutableAgentPersonalitiesConfigSchema, MutableAgentPersonalitiesConfigPatchSchema, MutableAgentTeamsConfigSchema, MutableAgentTeamsConfigPatchSchema, MutableBrainConfigSchema, MutableBrainConfigPatchSchema, MutableGitFetchConfigSchema, DEFAULT_MUTABLE_BRAIN_CONFIG, } from "./daemon-config.js";
|
|
3
|
-
import { VisualizerVoiceCuesGenerateRequestSchema, VisualizerVoiceCuesGenerateResponseSchema, AgentPersonalitySpinnerSchema, AgentPersonalitiesGetStatsRequestSchema, AgentPersonalitiesGenerateProfileRequestSchema, AgentPersonalitiesGetStatsResponseSchema, AgentPersonalitiesGenerateProfileResponseSchema, PersonalityMemoryListRequestMessageSchema, PersonalityMemoryListResponseMessageSchema, PersonalityMemoryUpdateRequestMessageSchema, PersonalityMemoryUpdateResponseMessageSchema, PersonalityMemoryTransferRequestMessageSchema, PersonalityMemoryTransferResponseMessageSchema, PersonalityMemoryStatsRequestMessageSchema, PersonalityMemoryStatsResponseMessageSchema, } from "./personality-schemas.js";
|
|
3
|
+
import { VisualizerVoiceCuesGenerateRequestSchema, VisualizerVoiceCuesGenerateResponseSchema, AgentPersonalitySpinnerSchema, AgentPersonalityVoiceSchema, AgentPersonalityVoiceCuesSchema, AgentPersonalitiesGetStatsRequestSchema, AgentPersonalitiesGenerateProfileRequestSchema, AgentPersonalitiesGetStatsResponseSchema, AgentPersonalitiesGenerateProfileResponseSchema, AgentProfileStatsRequestSchema, AgentProfileStatsResponseSchema, AgentProfileGeneratePromptRequestSchema, AgentProfileGeneratePromptResponseSchema, AgentProfileGenerateVoiceCuesRequestSchema, AgentProfileGenerateVoiceCuesResponseSchema, PersonalityMemoryListRequestMessageSchema, PersonalityMemoryListResponseMessageSchema, PersonalityMemoryUpdateRequestMessageSchema, PersonalityMemoryUpdateResponseMessageSchema, PersonalityMemoryTransferRequestMessageSchema, PersonalityMemoryTransferResponseMessageSchema, PersonalityMemoryStatsRequestMessageSchema, PersonalityMemoryStatsResponseMessageSchema, ProfileMemoryListRequestMessageSchema, ProfileMemoryListResponseMessageSchema, ProfileMemoryUpdateRequestMessageSchema, ProfileMemoryUpdateResponseMessageSchema, ProfileMemoryTransferRequestMessageSchema, ProfileMemoryTransferResponseMessageSchema, ProfileMemoryStatsRequestMessageSchema, ProfileMemoryStatsResponseMessageSchema, } from "./personality-schemas.js";
|
|
4
4
|
import { TerminalCompatibilityDiagnosticRequestSchema, TerminalCompatibilityDiagnosticResponseSchema, } from "./terminal-compatibility.js";
|
|
5
5
|
import { HostingPrAttachmentSchema, HostingIssueAttachmentSchema, HostingSearchRequestSchema, HostingAuthStatusRequestSchema, HostingListRepositoriesRequestSchema, HostingListOwnersRequestSchema, HostingListRepositoriesResponseSchema, HostingListOwnersResponseSchema, HostingAuthStatusResponseSchema, GitHostingCapabilitiesSchema, GitHostingProviderIdWireSchema, } from "./git-hosting.js";
|
|
6
6
|
import { ProjectKanbanTargetSchema, KanbanProjectTargetSetRequestSchema, KanbanProjectTargetSetResponseSchema, KanbanBoardsListRequestSchema, KanbanBoardsListResponseSchema, KanbanBoardGetRequestSchema, KanbanBoardGetResponseSchema, KanbanCardMoveRequestSchema, KanbanCardMoveResponseSchema, KanbanCardCreateRequestSchema, KanbanCardCreateResponseSchema, KanbanTaskLinkRequestSchema, KanbanTaskLinkResponseSchema, } from "./kanban.js";
|
|
@@ -87,6 +87,47 @@ export const TerminalProfileSchema = z
|
|
|
87
87
|
icon: z.string().optional(),
|
|
88
88
|
})
|
|
89
89
|
.passthrough();
|
|
90
|
+
/**
|
|
91
|
+
* A named launch bundle: a provider plus the agent-config values a client would
|
|
92
|
+
* otherwise set one control at a time. Field names mirror `AgentSessionConfig`
|
|
93
|
+
* so applying a profile is a copy rather than a translation table.
|
|
94
|
+
*
|
|
95
|
+
* There is deliberately no system prompt here. `AgentSessionConfig.systemPrompt`
|
|
96
|
+
* is creation-only, so a profile carrying one would apply when starting a new
|
|
97
|
+
* agent and silently do nothing when applied to a running one.
|
|
98
|
+
*/
|
|
99
|
+
export const AgentProfileSchema = z
|
|
100
|
+
.object({
|
|
101
|
+
id: z.string(),
|
|
102
|
+
name: z.string(),
|
|
103
|
+
/** A key into the client's icon registry, not a glyph. Unknown keys draw the default. */
|
|
104
|
+
icon: z.string().optional(),
|
|
105
|
+
/** An identity colour name shared with host badges. Unknown values draw unthemed. */
|
|
106
|
+
color: z.string().optional(),
|
|
107
|
+
provider: z.string(),
|
|
108
|
+
model: z.string().optional(),
|
|
109
|
+
modeId: z.string().optional(),
|
|
110
|
+
thinkingOptionId: z.string().optional(),
|
|
111
|
+
/** Legacy Otto effort alias retained while profile callers converge on thinkingOptionId. */
|
|
112
|
+
effortLevel: z.string().optional(),
|
|
113
|
+
featureValues: z.record(z.string(), z.unknown()).optional(),
|
|
114
|
+
/** Free text, surfaced to orchestrating agents by the `list_profiles` MCP tool. */
|
|
115
|
+
notes: z.string().optional(),
|
|
116
|
+
/** Otto behavior and identity fields. All remain optional for older v0.4 peers. */
|
|
117
|
+
personalityPrompt: z.string().optional(),
|
|
118
|
+
respectGlobalAppendPrompt: z.boolean().optional(),
|
|
119
|
+
roles: z.array(z.string().min(1)).optional(),
|
|
120
|
+
spinner: AgentPersonalitySpinnerSchema.optional(),
|
|
121
|
+
voice: AgentPersonalityVoiceSchema.optional(),
|
|
122
|
+
voiceCues: AgentPersonalityVoiceCuesSchema.optional(),
|
|
123
|
+
memoryEnabled: z.boolean().optional(),
|
|
124
|
+
})
|
|
125
|
+
.passthrough();
|
|
126
|
+
const MutableRelayConfigSchema = z
|
|
127
|
+
.object({
|
|
128
|
+
enabled: z.boolean(),
|
|
129
|
+
})
|
|
130
|
+
.passthrough();
|
|
90
131
|
const MutableBrowserToolsConfigSchema = z
|
|
91
132
|
.object({
|
|
92
133
|
enabled: z.boolean().default(false),
|
|
@@ -130,6 +171,8 @@ export const SavedProviderEndpointSchema = z
|
|
|
130
171
|
.passthrough();
|
|
131
172
|
export const MutableDaemonConfigSchema = z
|
|
132
173
|
.object({
|
|
174
|
+
// COMPAT(relayConfig): added in v0.2.6, remove after 2027-01-31 when old daemons are unsupported.
|
|
175
|
+
relay: MutableRelayConfigSchema.optional(),
|
|
133
176
|
mcp: z
|
|
134
177
|
.object({
|
|
135
178
|
injectIntoAgents: z.boolean(),
|
|
@@ -239,10 +282,12 @@ export const MutableDaemonConfigSchema = z
|
|
|
239
282
|
// Kanban board surface credentials (provider tokens). Gated by
|
|
240
283
|
// server_info features.kanbanBoard; absent on older daemons.
|
|
241
284
|
kanban: MutableKanbanConfigSchema.optional(),
|
|
285
|
+
agentProfiles: z.array(AgentProfileSchema).optional(),
|
|
242
286
|
})
|
|
243
287
|
.passthrough();
|
|
244
288
|
export const MutableDaemonConfigPatchSchema = z
|
|
245
289
|
.object({
|
|
290
|
+
relay: MutableRelayConfigSchema.partial().optional(),
|
|
246
291
|
mcp: MutableDaemonConfigSchema.shape.mcp.partial().optional(),
|
|
247
292
|
browserTools: MutableBrowserToolsConfigSchema.partial().optional(),
|
|
248
293
|
// Gated by server_info features.agentBehaviorToggles; patches deep-merge.
|
|
@@ -304,6 +349,7 @@ export const MutableDaemonConfigPatchSchema = z
|
|
|
304
349
|
// (read-modify-write), matching modelTierOverrides/savedProviderEndpoints, so
|
|
305
350
|
// enabling/disabling a connector or a tool is a whole-array rewrite.
|
|
306
351
|
connectors: z.array(ConnectorConfigSchema).optional(),
|
|
352
|
+
agentProfiles: z.array(AgentProfileSchema).optional(),
|
|
307
353
|
})
|
|
308
354
|
.partial()
|
|
309
355
|
.passthrough();
|
|
@@ -376,6 +422,8 @@ export const AgentFeatureSchema = z.discriminatedUnion("type", [
|
|
|
376
422
|
const AgentModelDefinitionSchema = z.object({
|
|
377
423
|
provider: AgentProviderSchema,
|
|
378
424
|
id: z.string(),
|
|
425
|
+
aliases: z.array(z.string()).optional(),
|
|
426
|
+
isSelectable: z.boolean().optional(),
|
|
379
427
|
label: z.string(),
|
|
380
428
|
description: z.string().optional(),
|
|
381
429
|
family: z.string().optional(),
|
|
@@ -404,6 +452,25 @@ export const ProviderSnapshotEntrySchema = z.object({
|
|
|
404
452
|
description: z.string().optional(),
|
|
405
453
|
defaultModeId: z.string().nullable().optional(),
|
|
406
454
|
});
|
|
455
|
+
export const CompactProviderSnapshotModelSchema = AgentModelDefinitionSchema.omit({
|
|
456
|
+
provider: true,
|
|
457
|
+
thinkingOptions: true,
|
|
458
|
+
}).extend({
|
|
459
|
+
thinkingSet: z.number().int().nonnegative().optional(),
|
|
460
|
+
});
|
|
461
|
+
export const ProviderSnapshotThinkingSetSchema = z.object({
|
|
462
|
+
options: z.array(AgentSelectOptionSchema),
|
|
463
|
+
defaultOptionId: z.string().optional(),
|
|
464
|
+
});
|
|
465
|
+
export const CompactProviderSnapshotEntrySchema = ProviderSnapshotEntrySchema.omit({
|
|
466
|
+
models: true,
|
|
467
|
+
}).extend({
|
|
468
|
+
models: z.array(CompactProviderSnapshotModelSchema).optional(),
|
|
469
|
+
});
|
|
470
|
+
export const CompactProviderSnapshotSchema = z.object({
|
|
471
|
+
entries: z.array(CompactProviderSnapshotEntrySchema),
|
|
472
|
+
thinkingSets: z.array(ProviderSnapshotThinkingSetSchema),
|
|
473
|
+
});
|
|
407
474
|
const AgentCapabilityFlagsSchema = z
|
|
408
475
|
.object({
|
|
409
476
|
supportsStreaming: z.boolean(),
|
|
@@ -453,6 +520,19 @@ const AgentUsageSchema = z.object({
|
|
|
453
520
|
// contextComposition; absent ⇒ fall back to the estimate, then to occupancy.
|
|
454
521
|
contextCategories: z.array(AgentContextCategorySchema).optional(),
|
|
455
522
|
});
|
|
523
|
+
const ProviderOptionsSchema = z.record(z.string(), z.json());
|
|
524
|
+
const McpToolRefSchema = z
|
|
525
|
+
.object({
|
|
526
|
+
kind: z.literal("mcp"),
|
|
527
|
+
server: z.string().trim().min(1),
|
|
528
|
+
tool: z.string().trim().min(1),
|
|
529
|
+
})
|
|
530
|
+
.strict();
|
|
531
|
+
const ToolPolicySchema = z
|
|
532
|
+
.object({
|
|
533
|
+
preapproved: z.array(McpToolRefSchema),
|
|
534
|
+
})
|
|
535
|
+
.strict();
|
|
456
536
|
const AgentSessionConfigSchema = z.object({
|
|
457
537
|
provider: AgentProviderSchema,
|
|
458
538
|
cwd: z.string(),
|
|
@@ -461,6 +541,13 @@ const AgentSessionConfigSchema = z.object({
|
|
|
461
541
|
thinkingOptionId: z.string().optional(),
|
|
462
542
|
featureValues: z.record(z.string(), z.unknown()).optional(),
|
|
463
543
|
title: z.string().trim().min(1).max(MAX_EXPLICIT_AGENT_TITLE_CHARS).optional().nullable(),
|
|
544
|
+
providerOptions: ProviderOptionsSchema.optional(),
|
|
545
|
+
toolPolicy: ToolPolicySchema.optional(),
|
|
546
|
+
// COMPAT(flatProviderConfigFields): pre-v0.4.0 clients and persisted state carry
|
|
547
|
+
// these flat provider fields instead of providerOptions, and Zod strips unknown
|
|
548
|
+
// keys, so dropping them silently discarded approval/sandbox/network settings.
|
|
549
|
+
// Re-added 2026-08-22; keep accepting until the client floor >= 0.8.13, then
|
|
550
|
+
// drop together with the schedule-target copies (target 2027-02-22).
|
|
464
551
|
approvalPolicy: z.string().optional(),
|
|
465
552
|
sandboxMode: z.string().optional(),
|
|
466
553
|
networkAccess: z.boolean().optional(),
|
|
@@ -686,6 +773,9 @@ export const AgentTimelineItemPayloadSchema = z.union([
|
|
|
686
773
|
items: z.array(z.object({
|
|
687
774
|
text: z.string(),
|
|
688
775
|
completed: z.boolean(),
|
|
776
|
+
id: z.string().optional(),
|
|
777
|
+
status: z.enum(["pending", "in_progress", "completed"]).optional(),
|
|
778
|
+
activeForm: z.string().optional(),
|
|
689
779
|
})),
|
|
690
780
|
}),
|
|
691
781
|
z.object({
|
|
@@ -714,15 +804,18 @@ export const AgentStreamEventPayloadSchema = z.discriminatedUnion("type", [
|
|
|
714
804
|
z.object({
|
|
715
805
|
type: z.literal("turn_started"),
|
|
716
806
|
provider: AgentProviderSchema,
|
|
807
|
+
turnId: z.string().optional(),
|
|
717
808
|
}),
|
|
718
809
|
z.object({
|
|
719
810
|
type: z.literal("turn_completed"),
|
|
720
811
|
provider: AgentProviderSchema,
|
|
812
|
+
turnId: z.string().optional(),
|
|
721
813
|
usage: AgentUsageSchema.optional(),
|
|
722
814
|
}),
|
|
723
815
|
z.object({
|
|
724
816
|
type: z.literal("turn_failed"),
|
|
725
817
|
provider: AgentProviderSchema,
|
|
818
|
+
turnId: z.string().optional(),
|
|
726
819
|
error: z.string(),
|
|
727
820
|
code: z.string().optional(),
|
|
728
821
|
diagnostic: z.string().optional(),
|
|
@@ -730,6 +823,7 @@ export const AgentStreamEventPayloadSchema = z.discriminatedUnion("type", [
|
|
|
730
823
|
z.object({
|
|
731
824
|
type: z.literal("turn_canceled"),
|
|
732
825
|
provider: AgentProviderSchema,
|
|
826
|
+
turnId: z.string().optional(),
|
|
733
827
|
reason: z.string(),
|
|
734
828
|
}),
|
|
735
829
|
z.object({
|
|
@@ -833,6 +927,10 @@ export const AgentCumulativeUsageSchema = z.object({
|
|
|
833
927
|
*/
|
|
834
928
|
costCoverage: z.enum(["complete", "partial", "none"]).optional(),
|
|
835
929
|
});
|
|
930
|
+
const AgentActiveTurnPayloadSchema = z.object({
|
|
931
|
+
turnId: z.string(),
|
|
932
|
+
startedAt: z.string().nullable(),
|
|
933
|
+
});
|
|
836
934
|
export const AgentSnapshotPayloadSchema = z.object({
|
|
837
935
|
id: z.string(),
|
|
838
936
|
provider: AgentProviderSchema,
|
|
@@ -846,6 +944,7 @@ export const AgentSnapshotPayloadSchema = z.object({
|
|
|
846
944
|
updatedAt: z.string(),
|
|
847
945
|
lastUserMessageAt: z.string().nullable(),
|
|
848
946
|
status: AgentStatusSchema,
|
|
947
|
+
activeTurn: AgentActiveTurnPayloadSchema.nullable().optional(),
|
|
849
948
|
capabilities: AgentCapabilityFlagsSchema,
|
|
850
949
|
currentModeId: z.string().nullable(),
|
|
851
950
|
availableModes: z.array(AgentModeSchema),
|
|
@@ -1020,6 +1119,12 @@ export const UpdateAgentRequestMessageSchema = z.object({
|
|
|
1020
1119
|
// correlated request/response; the download runs as a `pull` job. Gated by
|
|
1021
1120
|
// server_info.features.brainHfSearch. The brain resolves its own HF token (env
|
|
1022
1121
|
// HF_TOKEN or its config), so no secret crosses this boundary.
|
|
1122
|
+
// The daemon accepts only image bytes chosen or acquired by the client. It must
|
|
1123
|
+
// never fetch a user-provided URL on the host's network.
|
|
1124
|
+
export const ProjectIconSourceSchema = z.discriminatedUnion("type", [
|
|
1125
|
+
z.object({ type: z.literal("automatic") }),
|
|
1126
|
+
z.object({ type: z.literal("upload"), data: z.string() }),
|
|
1127
|
+
]);
|
|
1023
1128
|
export const ProjectRenameRequestSchema = z.object({
|
|
1024
1129
|
type: z.literal("project.rename.request"),
|
|
1025
1130
|
projectId: z.string(),
|
|
@@ -1027,6 +1132,12 @@ export const ProjectRenameRequestSchema = z.object({
|
|
|
1027
1132
|
customName: z.string().nullable(),
|
|
1028
1133
|
requestId: z.string(),
|
|
1029
1134
|
});
|
|
1135
|
+
export const ProjectIconSetRequestSchema = z.object({
|
|
1136
|
+
type: z.literal("project.icon.set.request"),
|
|
1137
|
+
projectId: z.string(),
|
|
1138
|
+
source: ProjectIconSourceSchema,
|
|
1139
|
+
requestId: z.string(),
|
|
1140
|
+
});
|
|
1030
1141
|
export const ProjectRemoveRequestSchema = z.object({
|
|
1031
1142
|
type: z.literal("project.remove.request"),
|
|
1032
1143
|
projectId: z.string(),
|
|
@@ -1264,6 +1375,10 @@ export const FetchAgentHistoryRequestMessageSchema = z.object({
|
|
|
1264
1375
|
type: z.literal("fetch_agent_history_request"),
|
|
1265
1376
|
requestId: z.string(),
|
|
1266
1377
|
filter: AgentDirectoryFilterSchema.optional(),
|
|
1378
|
+
// A ranked free-text query over agent title, workspace name, branch, and
|
|
1379
|
+
// project name. Present only on history: agent subscriptions filter on
|
|
1380
|
+
// structure, not on relevance. Ranking replaces `sort` when it is set.
|
|
1381
|
+
search: z.string().optional(),
|
|
1267
1382
|
sort: z
|
|
1268
1383
|
.array(z.object({
|
|
1269
1384
|
key: z.enum(["status_priority", "created_at", "updated_at", "title"]),
|
|
@@ -1541,6 +1656,8 @@ export const ListAvailableProvidersRequestMessageSchema = z.object({
|
|
|
1541
1656
|
export const GetProvidersSnapshotRequestMessageSchema = z.object({
|
|
1542
1657
|
type: z.literal("get_providers_snapshot_request"),
|
|
1543
1658
|
cwd: z.string().optional(),
|
|
1659
|
+
// COMPAT(compactProviderSnapshots): old daemons ignore this field and return a full snapshot.
|
|
1660
|
+
ifNoneMatch: z.string().optional(),
|
|
1544
1661
|
requestId: z.string(),
|
|
1545
1662
|
});
|
|
1546
1663
|
export const RefreshProvidersSnapshotRequestMessageSchema = z.object({
|
|
@@ -1618,6 +1735,13 @@ export const FetchAgentTimelineRequestMessageSchema = z.object({
|
|
|
1618
1735
|
limit: z.number().int().nonnegative().optional(),
|
|
1619
1736
|
// Default should be projected for app timeline loading.
|
|
1620
1737
|
projection: z.enum(["projected", "canonical"]).optional(),
|
|
1738
|
+
// Allow the client to merge this bounded page outside its contiguous loaded range.
|
|
1739
|
+
mergeWindow: z.boolean().optional(),
|
|
1740
|
+
});
|
|
1741
|
+
export const AgentTimelineListPromptsRequestMessageSchema = z.object({
|
|
1742
|
+
type: z.literal("agent.timeline.list_prompts.request"),
|
|
1743
|
+
agentId: z.string(),
|
|
1744
|
+
requestId: z.string(),
|
|
1621
1745
|
});
|
|
1622
1746
|
export const ProviderSubagentListRequestMessageSchema = z.object({
|
|
1623
1747
|
type: z.literal("agent.provider_subagents.list.request"),
|
|
@@ -1693,6 +1817,33 @@ export const SetAgentFeatureResponseMessageSchema = z.object({
|
|
|
1693
1817
|
type: z.literal("set_agent_feature_response"),
|
|
1694
1818
|
payload: AgentActionResponsePayloadSchema,
|
|
1695
1819
|
});
|
|
1820
|
+
/**
|
|
1821
|
+
* Every agent-config value a client can change in one shot. Each field is
|
|
1822
|
+
* optional and an omitted field is left alone; `null` on model and thinking
|
|
1823
|
+
* clears them, matching the single-field RPCs above.
|
|
1824
|
+
*/
|
|
1825
|
+
export const AgentConfigApplySchema = z.object({
|
|
1826
|
+
modelId: z.string().nullable().optional(),
|
|
1827
|
+
modeId: z.string().optional(),
|
|
1828
|
+
thinkingOptionId: z.string().nullable().optional(),
|
|
1829
|
+
featureValues: z.record(z.string(), z.unknown()).optional(),
|
|
1830
|
+
});
|
|
1831
|
+
/**
|
|
1832
|
+
* Applies a whole config bundle to one agent. The four single-field RPCs above
|
|
1833
|
+
* stay for individual control edits. One request prevents client interruption
|
|
1834
|
+
* and other mutations from interleaving between bundle steps; provider-level
|
|
1835
|
+
* rejection can still leave earlier steps applied.
|
|
1836
|
+
*/
|
|
1837
|
+
export const AgentConfigApplyRequestMessageSchema = z.object({
|
|
1838
|
+
type: z.literal("agent.config.apply.request"),
|
|
1839
|
+
agentId: z.string(),
|
|
1840
|
+
config: AgentConfigApplySchema,
|
|
1841
|
+
requestId: z.string(),
|
|
1842
|
+
});
|
|
1843
|
+
export const AgentConfigApplyResponseMessageSchema = z.object({
|
|
1844
|
+
type: z.literal("agent.config.apply.response"),
|
|
1845
|
+
payload: AgentActionResponsePayloadSchema,
|
|
1846
|
+
});
|
|
1696
1847
|
export const AgentDetachRequestMessageSchema = z.object({
|
|
1697
1848
|
type: z.literal("agent.detach.request"),
|
|
1698
1849
|
agentId: z.string(),
|
|
@@ -1807,6 +1958,15 @@ export const AgentPersonalitySetResponseMessageSchema = z.object({
|
|
|
1807
1958
|
type: z.literal("agent.personality.set.response"),
|
|
1808
1959
|
payload: AgentActionResponsePayloadSchema,
|
|
1809
1960
|
});
|
|
1961
|
+
// COMPAT(agentProfileRpcs): added in v0.8.13, drop the legacy pair above when
|
|
1962
|
+
// the daemon floor >= v0.8.13. The profile-named twin of the pair above; see the
|
|
1963
|
+
// block at the end of personality-schemas.ts for why both halves exist.
|
|
1964
|
+
export const AgentProfileSetRequestMessageSchema = AgentPersonalitySetRequestMessageSchema.omit({
|
|
1965
|
+
type: true,
|
|
1966
|
+
}).extend({ type: z.literal("agent.profile.set.request") });
|
|
1967
|
+
export const AgentProfileSetResponseMessageSchema = AgentPersonalitySetResponseMessageSchema.omit({
|
|
1968
|
+
type: true,
|
|
1969
|
+
}).extend({ type: z.literal("agent.profile.set.response") });
|
|
1810
1970
|
export const AgentRewindModeSchema = z.enum(["conversation", "files", "both"]);
|
|
1811
1971
|
export const AgentRewindRequestMessageSchema = z.object({
|
|
1812
1972
|
type: z.literal("agent.rewind.request"),
|
|
@@ -1839,6 +1999,15 @@ export const ProjectRenameResponseSchema = z.object({
|
|
|
1839
1999
|
type: z.literal("project.rename.response"),
|
|
1840
2000
|
payload: ProjectRenameResponsePayloadSchema,
|
|
1841
2001
|
});
|
|
2002
|
+
export const ProjectIconSetResponseSchema = z.object({
|
|
2003
|
+
type: z.literal("project.icon.set.response"),
|
|
2004
|
+
payload: z.object({
|
|
2005
|
+
requestId: z.string(),
|
|
2006
|
+
projectId: z.string(),
|
|
2007
|
+
accepted: z.boolean(),
|
|
2008
|
+
error: z.string().nullable(),
|
|
2009
|
+
}),
|
|
2010
|
+
});
|
|
1842
2011
|
export const ProjectRemoveResponsePayloadSchema = z.object({
|
|
1843
2012
|
requestId: z.string(),
|
|
1844
2013
|
projectId: z.string(),
|
|
@@ -2060,6 +2229,12 @@ export const CheckoutGitFetchRequestSchema = z.object({
|
|
|
2060
2229
|
cwd: z.string(),
|
|
2061
2230
|
requestId: z.string(),
|
|
2062
2231
|
});
|
|
2232
|
+
export const CheckoutDiscardChangesRequestSchema = z.object({
|
|
2233
|
+
type: z.literal("checkout.discard_changes.request"),
|
|
2234
|
+
cwd: z.string(),
|
|
2235
|
+
paths: z.array(z.string()).min(1),
|
|
2236
|
+
requestId: z.string(),
|
|
2237
|
+
});
|
|
2063
2238
|
export const CheckoutPrCreateRequestSchema = z.object({
|
|
2064
2239
|
type: z.literal("checkout_pr_create_request"),
|
|
2065
2240
|
cwd: z.string(),
|
|
@@ -2550,6 +2725,8 @@ const DiffHunkSchema = z.object({
|
|
|
2550
2725
|
});
|
|
2551
2726
|
const ParsedDiffFileSchema = z.object({
|
|
2552
2727
|
path: z.string(),
|
|
2728
|
+
// COMPAT(diffOldPath): added in v0.3.0, remove gate after 2027-02-09.
|
|
2729
|
+
oldPath: z.string().optional(),
|
|
2553
2730
|
isNew: z.boolean(),
|
|
2554
2731
|
isDeleted: z.boolean(),
|
|
2555
2732
|
additions: z.number(),
|
|
@@ -2692,11 +2869,43 @@ export const FsFileWriteBinaryRequestSchema = z.object({
|
|
|
2692
2869
|
overwrite: z.boolean().optional(),
|
|
2693
2870
|
requestId: z.string(),
|
|
2694
2871
|
});
|
|
2872
|
+
export const FileEntryCreateRequestSchema = z.object({
|
|
2873
|
+
type: z.literal("fs.entry.create.request"),
|
|
2874
|
+
cwd: z.string(),
|
|
2875
|
+
parentPath: z.string(),
|
|
2876
|
+
name: z.string(),
|
|
2877
|
+
kind: z.enum(["file", "directory"]),
|
|
2878
|
+
requestId: z.string(),
|
|
2879
|
+
});
|
|
2880
|
+
export const FileEntryRenameRequestSchema = z.object({
|
|
2881
|
+
type: z.literal("fs.entry.rename.request"),
|
|
2882
|
+
cwd: z.string(),
|
|
2883
|
+
path: z.string(),
|
|
2884
|
+
name: z.string(),
|
|
2885
|
+
requestId: z.string(),
|
|
2886
|
+
});
|
|
2887
|
+
export const FileEntryDuplicateRequestSchema = z.object({
|
|
2888
|
+
type: z.literal("fs.entry.duplicate.request"),
|
|
2889
|
+
cwd: z.string(),
|
|
2890
|
+
path: z.string(),
|
|
2891
|
+
requestId: z.string(),
|
|
2892
|
+
});
|
|
2893
|
+
export const FileEntryDeleteRequestSchema = z.object({
|
|
2894
|
+
type: z.literal("fs.entry.delete.request"),
|
|
2895
|
+
cwd: z.string(),
|
|
2896
|
+
path: z.string(),
|
|
2897
|
+
requestId: z.string(),
|
|
2898
|
+
});
|
|
2695
2899
|
export const ProjectIconRequestSchema = z.object({
|
|
2696
2900
|
type: z.literal("project_icon_request"),
|
|
2697
2901
|
cwd: z.string(),
|
|
2698
2902
|
requestId: z.string(),
|
|
2699
2903
|
});
|
|
2904
|
+
export const ProjectIconGetRequestSchema = z.object({
|
|
2905
|
+
type: z.literal("project.icon.get.request"),
|
|
2906
|
+
projectId: z.string(),
|
|
2907
|
+
requestId: z.string(),
|
|
2908
|
+
});
|
|
2700
2909
|
export const FileDownloadTokenRequestSchema = z.object({
|
|
2701
2910
|
type: z.literal("file_download_token_request"),
|
|
2702
2911
|
cwd: z.string(),
|
|
@@ -2775,6 +2984,17 @@ export const RegisterPushTokenMessageSchema = z.object({
|
|
|
2775
2984
|
type: z.literal("register_push_token"),
|
|
2776
2985
|
token: z.string(),
|
|
2777
2986
|
});
|
|
2987
|
+
export const PushUnregisterRequestSchema = z.object({
|
|
2988
|
+
type: z.literal("push.unregister.request"),
|
|
2989
|
+
token: z.string(),
|
|
2990
|
+
requestId: z.string(),
|
|
2991
|
+
});
|
|
2992
|
+
export const PushUnregisterResponseSchema = z.object({
|
|
2993
|
+
type: z.literal("push.unregister.response"),
|
|
2994
|
+
payload: z.object({
|
|
2995
|
+
requestId: z.string(),
|
|
2996
|
+
}),
|
|
2997
|
+
});
|
|
2778
2998
|
// ============================================================================
|
|
2779
2999
|
// Terminal Messages
|
|
2780
3000
|
// ============================================================================
|
|
@@ -2881,7 +3101,12 @@ export const UnsubscribeTerminalRequestSchema = z.object({
|
|
|
2881
3101
|
});
|
|
2882
3102
|
const TerminalClientMessageSchema = z.discriminatedUnion("type", [
|
|
2883
3103
|
z.object({ type: z.literal("input"), data: z.string() }),
|
|
2884
|
-
z.object({
|
|
3104
|
+
z.object({
|
|
3105
|
+
type: z.literal("resize"),
|
|
3106
|
+
rows: z.number(),
|
|
3107
|
+
cols: z.number(),
|
|
3108
|
+
intent: z.enum(["claim", "update"]).optional(),
|
|
3109
|
+
}),
|
|
2885
3110
|
z.object({
|
|
2886
3111
|
type: z.literal("mouse"),
|
|
2887
3112
|
row: z.number(),
|
|
@@ -2915,14 +3140,47 @@ export const HubExecutionAgentCreateRequestSchema = z.object({
|
|
|
2915
3140
|
provider: z.string(),
|
|
2916
3141
|
cwd: z.string(),
|
|
2917
3142
|
prompt: z.string(),
|
|
3143
|
+
// COMPAT(hubExecutionWorkspaceSelection): semantics retired in v0.3.1; remove after 2027-08-08 once the Hub floor no longer sends it.
|
|
2918
3144
|
workspaceId: z.string().optional(),
|
|
2919
3145
|
model: z.string().optional(),
|
|
2920
3146
|
modeId: z.string().optional(),
|
|
2921
3147
|
thinkingOptionId: z.string().optional(),
|
|
2922
3148
|
featureValues: z.record(z.string(), z.unknown()).optional(),
|
|
3149
|
+
providerOptions: ProviderOptionsSchema.optional(),
|
|
3150
|
+
toolPolicy: ToolPolicySchema.optional(),
|
|
2923
3151
|
env: z.record(z.string(), z.string()).optional(),
|
|
3152
|
+
mcpServers: z.record(z.string(), McpServerConfigSchema).optional(),
|
|
2924
3153
|
worktree: CreateAgentWorktreeTargetSchema.optional(),
|
|
2925
3154
|
});
|
|
3155
|
+
export const HubExecutionAgentValidateRequestSchema = z.object({
|
|
3156
|
+
type: z.literal("hub.execution.agent.validate.request"),
|
|
3157
|
+
requestId: z.string(),
|
|
3158
|
+
provider: z.string(),
|
|
3159
|
+
model: z.string().optional(),
|
|
3160
|
+
modeId: z.string().optional(),
|
|
3161
|
+
thinkingOptionId: z.string().optional(),
|
|
3162
|
+
providerOptions: ProviderOptionsSchema.optional(),
|
|
3163
|
+
});
|
|
3164
|
+
const HubExecutionAgentCreateErrorSchema = z.discriminatedUnion("code", [
|
|
3165
|
+
z.object({
|
|
3166
|
+
code: z.literal("provider_options_invalid"),
|
|
3167
|
+
provider: z.string(),
|
|
3168
|
+
issues: z.array(z.object({
|
|
3169
|
+
path: z.array(z.union([z.string(), z.number()])),
|
|
3170
|
+
message: z.string(),
|
|
3171
|
+
})),
|
|
3172
|
+
message: z.string(),
|
|
3173
|
+
}),
|
|
3174
|
+
z.object({
|
|
3175
|
+
code: z.literal("tool_policy_unsupported"),
|
|
3176
|
+
provider: z.string(),
|
|
3177
|
+
message: z.string(),
|
|
3178
|
+
}),
|
|
3179
|
+
z.object({
|
|
3180
|
+
code: z.literal("create_failed"),
|
|
3181
|
+
message: z.string(),
|
|
3182
|
+
}),
|
|
3183
|
+
]);
|
|
2926
3184
|
export const HubExecutionControlActionSchema = z.enum(["interrupt", "archive"]);
|
|
2927
3185
|
export const HubExecutionControlRequestSchema = z.object({
|
|
2928
3186
|
type: z.literal("hub.execution.control.request"),
|
|
@@ -2932,6 +3190,7 @@ export const HubExecutionControlRequestSchema = z.object({
|
|
|
2932
3190
|
});
|
|
2933
3191
|
export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
2934
3192
|
HubExecutionAgentCreateRequestSchema,
|
|
3193
|
+
HubExecutionAgentValidateRequestSchema,
|
|
2935
3194
|
HubExecutionControlRequestSchema,
|
|
2936
3195
|
BrowserAutomationExecuteResponseSchema,
|
|
2937
3196
|
VoiceAudioChunkMessageSchema,
|
|
@@ -2989,6 +3248,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
2989
3248
|
UpdateAgentRequestMessageSchema,
|
|
2990
3249
|
ProjectRenameRequestSchema,
|
|
2991
3250
|
KanbanProjectTargetSetRequestSchema,
|
|
3251
|
+
ProjectIconSetRequestSchema,
|
|
2992
3252
|
ProjectRemoveRequestSchema,
|
|
2993
3253
|
ProjectLinksListRequestSchema,
|
|
2994
3254
|
ProjectLinksSetRequestSchema,
|
|
@@ -3040,6 +3300,11 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3040
3300
|
VisualizerVoiceCuesGenerateRequestSchema,
|
|
3041
3301
|
AgentPersonalitiesGetStatsRequestSchema,
|
|
3042
3302
|
AgentPersonalitiesGenerateProfileRequestSchema,
|
|
3303
|
+
// COMPAT(agentProfileRpcs): added in v0.8.13, drop the legacy names above
|
|
3304
|
+
// when the daemon floor >= v0.8.13.
|
|
3305
|
+
AgentProfileStatsRequestSchema,
|
|
3306
|
+
AgentProfileGeneratePromptRequestSchema,
|
|
3307
|
+
AgentProfileGenerateVoiceCuesRequestSchema,
|
|
3043
3308
|
ReadProjectConfigRequestMessageSchema,
|
|
3044
3309
|
WriteProjectConfigRequestMessageSchema,
|
|
3045
3310
|
DictationStreamStartMessageSchema,
|
|
@@ -3073,6 +3338,10 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3073
3338
|
PersonalityMemoryUpdateRequestMessageSchema,
|
|
3074
3339
|
PersonalityMemoryTransferRequestMessageSchema,
|
|
3075
3340
|
PersonalityMemoryStatsRequestMessageSchema,
|
|
3341
|
+
ProfileMemoryListRequestMessageSchema,
|
|
3342
|
+
ProfileMemoryUpdateRequestMessageSchema,
|
|
3343
|
+
ProfileMemoryTransferRequestMessageSchema,
|
|
3344
|
+
ProfileMemoryStatsRequestMessageSchema,
|
|
3076
3345
|
StatsActivityResetRequestMessageSchema,
|
|
3077
3346
|
UsageLogGetRequestMessageSchema,
|
|
3078
3347
|
AgentContextGetUsageRequestMessageSchema,
|
|
@@ -3084,6 +3353,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3084
3353
|
RestartServerRequestMessageSchema,
|
|
3085
3354
|
DaemonUpdateRequestMessageSchema,
|
|
3086
3355
|
FetchAgentTimelineRequestMessageSchema,
|
|
3356
|
+
AgentTimelineListPromptsRequestMessageSchema,
|
|
3087
3357
|
ProviderSubagentListRequestMessageSchema,
|
|
3088
3358
|
ProviderSubagentTimelineRequestMessageSchema,
|
|
3089
3359
|
SetAgentTimelineSubscriptionRequestMessageSchema,
|
|
@@ -3092,6 +3362,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3092
3362
|
SetAgentModelRequestMessageSchema,
|
|
3093
3363
|
SetAgentThinkingRequestMessageSchema,
|
|
3094
3364
|
SetAgentFeatureRequestMessageSchema,
|
|
3365
|
+
AgentConfigApplyRequestMessageSchema,
|
|
3095
3366
|
AgentDetachRequestMessageSchema,
|
|
3096
3367
|
AgentWorkspaceTransferRequestMessageSchema,
|
|
3097
3368
|
AgentSubagentStopRequestMessageSchema,
|
|
@@ -3100,6 +3371,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3100
3371
|
TasksSuggestedStartRequestMessageSchema,
|
|
3101
3372
|
TasksSuggestedDismissRequestMessageSchema,
|
|
3102
3373
|
AgentPersonalitySetRequestMessageSchema,
|
|
3374
|
+
AgentProfileSetRequestMessageSchema,
|
|
3103
3375
|
AgentRewindRequestMessageSchema,
|
|
3104
3376
|
AgentQueueRemoveRequestMessageSchema,
|
|
3105
3377
|
AgentQueueReorderRequestMessageSchema,
|
|
@@ -3135,6 +3407,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3135
3407
|
CheckoutPushRequestSchema,
|
|
3136
3408
|
CheckoutRefreshRequestSchema,
|
|
3137
3409
|
CheckoutGitFetchRequestSchema,
|
|
3410
|
+
CheckoutDiscardChangesRequestSchema,
|
|
3138
3411
|
CheckoutPrCreateRequestSchema,
|
|
3139
3412
|
CheckoutPrMergeRequestSchema,
|
|
3140
3413
|
CheckoutForgeSetAutoMergeRequestSchema,
|
|
@@ -3192,7 +3465,12 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3192
3465
|
FileUnsubscribeRequestSchema,
|
|
3193
3466
|
FsFileWriteRequestSchema,
|
|
3194
3467
|
FsFileWriteBinaryRequestSchema,
|
|
3468
|
+
FileEntryCreateRequestSchema,
|
|
3469
|
+
FileEntryRenameRequestSchema,
|
|
3470
|
+
FileEntryDuplicateRequestSchema,
|
|
3471
|
+
FileEntryDeleteRequestSchema,
|
|
3195
3472
|
ProjectIconRequestSchema,
|
|
3473
|
+
ProjectIconGetRequestSchema,
|
|
3196
3474
|
FileDownloadTokenRequestSchema,
|
|
3197
3475
|
FileUploadRequestSchema,
|
|
3198
3476
|
FileWriteRequestSchema,
|
|
@@ -3225,6 +3503,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
3225
3503
|
PingMessageSchema,
|
|
3226
3504
|
ListCommandsRequestSchema,
|
|
3227
3505
|
RegisterPushTokenMessageSchema,
|
|
3506
|
+
PushUnregisterRequestSchema,
|
|
3228
3507
|
ListTerminalsRequestSchema,
|
|
3229
3508
|
SubscribeTerminalsRequestSchema,
|
|
3230
3509
|
UnsubscribeTerminalsRequestSchema,
|
|
@@ -3425,6 +3704,8 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3425
3704
|
features: z
|
|
3426
3705
|
.object({
|
|
3427
3706
|
providersSnapshot: z.boolean().optional(),
|
|
3707
|
+
// COMPAT(providersSnapshotCwd): added in v0.3.2, remove gate after 2027-02-10.
|
|
3708
|
+
providersSnapshotCwd: z.boolean().optional(),
|
|
3428
3709
|
// COMPAT(checkoutForgeSetAutoMerge): added in v0.1.106, remove old
|
|
3429
3710
|
// checkoutGithubSetAutoMerge fallback after 2026-12-28.
|
|
3430
3711
|
checkoutForgeSetAutoMerge: z.boolean().optional(),
|
|
@@ -3437,6 +3718,10 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3437
3718
|
forgeSearch: z.boolean().optional(),
|
|
3438
3719
|
// COMPAT(daemonStatusRpc): added in v0.1.76, remove gate after 2026-11-18.
|
|
3439
3720
|
daemonStatusRpc: z.boolean().optional(),
|
|
3721
|
+
// COMPAT(relayConfig): added in v0.2.6, remove gate after 2027-01-31.
|
|
3722
|
+
relayConfig: z.boolean().optional(),
|
|
3723
|
+
// COMPAT(pushTokenRevocation): added in v0.3.2, remove gate after 2027-02-10.
|
|
3724
|
+
pushTokenRevocation: z.boolean().optional(),
|
|
3440
3725
|
// COMPAT(terminalRestoreModes): added in v0.1.81, remove gate after 2026-11-23.
|
|
3441
3726
|
"terminal-restore-modes": z.boolean().optional(),
|
|
3442
3727
|
// COMPAT(terminalCompatibilityDiagnostic): added in v0.8.9, remove gate after 2027-02-12.
|
|
@@ -3444,8 +3729,16 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3444
3729
|
terminalEmbeddedPresentation: z.boolean().optional(),
|
|
3445
3730
|
// COMPAT(terminalTitleSettings): added in v0.8.5, remove gate after 2027-02-07.
|
|
3446
3731
|
terminalTitleSettings: z.boolean().optional(),
|
|
3732
|
+
// COMPAT(terminalInputModeReplay): added in v0.2.6, remove gate after 2027-02-02.
|
|
3733
|
+
"terminal-input-mode-replay": z.boolean().optional(),
|
|
3734
|
+
// COMPAT(terminalSizeOwnership): added in v0.2.6, remove gate after 2027-02-02.
|
|
3735
|
+
"terminal-size-ownership": z.boolean().optional(),
|
|
3447
3736
|
// COMPAT(rewind): added in v0.1.X, drop the gate when floor >= v0.1.X.
|
|
3448
3737
|
rewind: z.boolean().optional(),
|
|
3738
|
+
// COMPAT(agentTimelinePromptIndex): added in v0.2.X, drop the gate when floor >= v0.2.X.
|
|
3739
|
+
agentTimelinePromptIndex: z.boolean().optional(),
|
|
3740
|
+
// COMPAT(agentHistorySearch): added in v0.3.0, remove gate after 2027-02-07.
|
|
3741
|
+
agentHistorySearch: z.boolean().optional(),
|
|
3449
3742
|
// COMPAT(checkoutRefresh): added in v0.1.86, remove gate after 2026-11-29.
|
|
3450
3743
|
checkoutRefresh: z.boolean().optional(),
|
|
3451
3744
|
// COMPAT(gitFetchControl): added in v0.8.11, remove gate after 2027-02-14.
|
|
@@ -3493,6 +3786,10 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3493
3786
|
// older daemons, whose Brain config rejects the field.
|
|
3494
3787
|
// COMPAT(brainRuntimeLogVerbosity): added in v0.8.10, drop the gate when daemon floor >= v0.8.10.
|
|
3495
3788
|
brainRuntimeLogVerbosity: z.boolean().optional(),
|
|
3789
|
+
// The Brain host can keep multiple independent model processes resident
|
|
3790
|
+
// and exposes maxLoadedModels/lockedModels in local and remote settings.
|
|
3791
|
+
// COMPAT(brainModelProcessPool): added in v0.8.12, remove after 2027-02-21.
|
|
3792
|
+
brainModelProcessPool: z.boolean().optional(),
|
|
3496
3793
|
// Daemon streams the brain's live status/telemetry via
|
|
3497
3794
|
// subscribe_brain_status + brain_status_changed, and serves brain.evals.get.
|
|
3498
3795
|
// Separate from brainControl because status/eval watching can ship after
|
|
@@ -3661,6 +3958,12 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3661
3958
|
ttsSpeak: z.boolean().optional(),
|
|
3662
3959
|
// COMPAT(visualizerVoiceCues): added in v0.6.3, drop the gate when daemon floor >= v0.6.3.
|
|
3663
3960
|
visualizerVoiceCues: z.boolean().optional(),
|
|
3961
|
+
// The daemon accepts the profile-named halves of the personality RPCs
|
|
3962
|
+
// (agent.profile.*, profile.memory.*). Purely a rename: the legacy names
|
|
3963
|
+
// keep working, so this gates WHICH literal the client emits, never
|
|
3964
|
+
// whether the feature exists.
|
|
3965
|
+
// COMPAT(agentProfileRpcs): added in v0.8.13, drop the gate when daemon floor >= v0.8.13.
|
|
3966
|
+
agentProfileRpcs: z.boolean().optional(),
|
|
3664
3967
|
// COMPAT(personalityProfile): added in v0.7.5, drop the gate when daemon floor >= v0.7.5.
|
|
3665
3968
|
// Host can author a personality profile (the prompt prose) from a name,
|
|
3666
3969
|
// roles, and spinner colors.
|
|
@@ -3930,10 +4233,29 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
3930
4233
|
forgeProviders: z.boolean().optional(),
|
|
3931
4234
|
// COMPAT(selectiveAgentTimeline): added in v0.1.106, remove after 2027-01-12.
|
|
3932
4235
|
selectiveAgentTimeline: z.boolean().optional(),
|
|
4236
|
+
// COMPAT(canonicalSubmittedPrompts): added in v0.2.6, remove gate after 2027-01-30.
|
|
4237
|
+
canonicalSubmittedPrompts: z.boolean().optional(),
|
|
4238
|
+
// COMPAT(agentTurnIdentity): accept peers that observed pre-release v0.2.6 through 2027-01-31.
|
|
4239
|
+
agentTurnIdentity: z.boolean().optional(),
|
|
3933
4240
|
// COMPAT(stableProjectIdentity): added in v0.1.109, remove gate after 2027-01-15.
|
|
3934
4241
|
stableProjectIdentity: z.boolean().optional(),
|
|
3935
4242
|
// COMPAT(workspaceScriptManagement): added in v0.1.105, remove gate after 2027-01-10.
|
|
3936
4243
|
workspaceScriptManagement: z.boolean().optional(),
|
|
4244
|
+
// COMPAT(projectCustomIcon): added in v0.2.0, remove after 2027-01-20.
|
|
4245
|
+
projectCustomIcon: z.boolean().optional(),
|
|
4246
|
+
// COMPAT(fsEntryOps): added in v0.3.0, remove gate after 2027-02-08.
|
|
4247
|
+
fsEntryOps: z.boolean().optional(),
|
|
4248
|
+
// COMPAT(fsEntryDuplicate): added in v0.3.0, remove gate after 2027-02-09.
|
|
4249
|
+
fsEntryDuplicate: z.boolean().optional(),
|
|
4250
|
+
// COMPAT(checkoutDiscardChanges): added in v0.3.0, remove gate after 2027-02-08.
|
|
4251
|
+
checkoutDiscardChanges: z.boolean().optional(),
|
|
4252
|
+
// COMPAT(agentProfiles): added in v0.3.2, remove gate after 2027-02-11.
|
|
4253
|
+
// An older daemon parses its persisted config strictly, so writing
|
|
4254
|
+
// agentProfiles to one is silently dropped. The client hides the feature
|
|
4255
|
+
// rather than letting a save appear to succeed.
|
|
4256
|
+
agentProfiles: z.boolean().optional(),
|
|
4257
|
+
// COMPAT(agentConfigApply): added in v0.3.2, remove gate after 2027-02-11.
|
|
4258
|
+
agentConfigApply: z.boolean().optional(),
|
|
3937
4259
|
})
|
|
3938
4260
|
.optional(),
|
|
3939
4261
|
})
|
|
@@ -4226,8 +4548,14 @@ export const WorkspaceDescriptorPayloadSchema = z
|
|
|
4226
4548
|
// COMPAT(projectKanbanTarget): added in v0.8.11, drop the optional gate when
|
|
4227
4549
|
// floor >= v0.8.11.
|
|
4228
4550
|
projectKanban: ProjectKanbanTargetSchema.nullable().optional(),
|
|
4551
|
+
// Identifies the project's stored custom icon; null means automatic.
|
|
4552
|
+
// COMPAT(projectCustomIcon): added in v0.2.0, remove after 2027-01-20.
|
|
4553
|
+
projectCustomIconRevision: z.string().nullable().optional(),
|
|
4229
4554
|
projectRootPath: z.string(),
|
|
4230
4555
|
workspaceDirectory: z.string().optional(),
|
|
4556
|
+
// COMPAT(worktreeSlug): added in v0.2.6, remove optional after 2027-01-31.
|
|
4557
|
+
// Present only for Otto-owned worktrees; this is the basename of their root directory.
|
|
4558
|
+
worktreeSlug: z.string().optional(),
|
|
4231
4559
|
projectKind: z.enum(["git", "non_git", "directory"]),
|
|
4232
4560
|
// COMPAT(workspaces): keep the legacy "directory" workspace kind parseable.
|
|
4233
4561
|
// Persisted registries still carry it and there is no migration, so this
|
|
@@ -4328,9 +4656,25 @@ export const AgentListMessageSchema = z.object({
|
|
|
4328
4656
|
agents: z.array(AgentSnapshotPayloadSchema),
|
|
4329
4657
|
}),
|
|
4330
4658
|
});
|
|
4659
|
+
export const AgentSearchMatchFieldSchema = z.enum(["workspace", "title", "branch", "project"]);
|
|
4660
|
+
export const AgentSearchMatchSchema = z.object({
|
|
4661
|
+
field: AgentSearchMatchFieldSchema,
|
|
4662
|
+
ranges: z.array(z.object({
|
|
4663
|
+
start: z.number().int().nonnegative(),
|
|
4664
|
+
length: z.number().int().positive(),
|
|
4665
|
+
})),
|
|
4666
|
+
});
|
|
4331
4667
|
const AgentDirectoryResponseEntrySchema = z.object({
|
|
4332
4668
|
agent: AgentSnapshotPayloadSchema,
|
|
4333
4669
|
project: ProjectPlacementPayloadSchema,
|
|
4670
|
+
// Relevance of this entry to the request's `search`, lower being better.
|
|
4671
|
+
// Set only when the request carried a query; a client merging results from
|
|
4672
|
+
// several hosts needs it to interleave their separately ranked pages.
|
|
4673
|
+
searchScore: z.number().optional(),
|
|
4674
|
+
// Where the query matched, so the row can mark it. The ranker computes this
|
|
4675
|
+
// anyway; sending it keeps the client from re-deriving a second opinion that
|
|
4676
|
+
// could disagree with the ranking it is explaining.
|
|
4677
|
+
searchMatches: z.array(AgentSearchMatchSchema).optional(),
|
|
4334
4678
|
});
|
|
4335
4679
|
const AgentDirectoryPageInfoSchema = z.object({
|
|
4336
4680
|
nextCursor: z.string().nullable(),
|
|
@@ -4352,6 +4696,10 @@ export const FetchAgentHistoryResponseMessageSchema = z.object({
|
|
|
4352
4696
|
requestId: z.string(),
|
|
4353
4697
|
entries: z.array(AgentDirectoryResponseEntrySchema),
|
|
4354
4698
|
pageInfo: AgentDirectoryPageInfoSchema,
|
|
4699
|
+
// More sessions matched the request's `search` than the page could hold.
|
|
4700
|
+
// Distinct from `pageInfo.hasMore`, which promises a fetchable next page —
|
|
4701
|
+
// a ranked result set has none, and the way on is a narrower query.
|
|
4702
|
+
searchTruncated: z.boolean().optional(),
|
|
4355
4703
|
}),
|
|
4356
4704
|
});
|
|
4357
4705
|
export const FetchRecentProviderSessionsResponseMessageSchema = z.object({
|
|
@@ -4378,6 +4726,8 @@ export const WorkspaceProjectDescriptorPayloadSchema = z.object({
|
|
|
4378
4726
|
// COMPAT(projectKanbanTarget): added in v0.8.11, drop the optional gate when
|
|
4379
4727
|
// floor >= v0.8.11.
|
|
4380
4728
|
projectKanban: ProjectKanbanTargetSchema.nullable().optional(),
|
|
4729
|
+
// COMPAT(projectCustomIcon): added in v0.2.0, remove after 2027-01-20.
|
|
4730
|
+
projectCustomIconRevision: z.string().nullable().optional(),
|
|
4381
4731
|
projectRootPath: z.string(),
|
|
4382
4732
|
projectKind: z.enum(["git", "non_git", "directory"]),
|
|
4383
4733
|
});
|
|
@@ -4755,10 +5105,25 @@ export const FetchAgentTimelineResponseMessageSchema = z.object({
|
|
|
4755
5105
|
endCursor: AgentTimelineCursorSchema.nullable(),
|
|
4756
5106
|
hasOlder: z.boolean(),
|
|
4757
5107
|
hasNewer: z.boolean(),
|
|
5108
|
+
mergeWindow: z.boolean().optional(),
|
|
4758
5109
|
entries: z.array(AgentTimelineEntryPayloadSchema),
|
|
4759
5110
|
error: z.string().nullable(),
|
|
4760
5111
|
}),
|
|
4761
5112
|
});
|
|
5113
|
+
export const AgentTimelineListPromptsResponseMessageSchema = z.object({
|
|
5114
|
+
type: z.literal("agent.timeline.list_prompts.response"),
|
|
5115
|
+
payload: z.object({
|
|
5116
|
+
requestId: z.string(),
|
|
5117
|
+
agentId: z.string(),
|
|
5118
|
+
epoch: z.string(),
|
|
5119
|
+
prompts: z.array(z.object({
|
|
5120
|
+
seq: z.number().int().nonnegative(),
|
|
5121
|
+
timestamp: z.string(),
|
|
5122
|
+
preview: z.string(),
|
|
5123
|
+
})),
|
|
5124
|
+
error: z.string().nullable(),
|
|
5125
|
+
}),
|
|
5126
|
+
});
|
|
4762
5127
|
export const ProviderSubagentDescriptorPayloadSchema = z.object({
|
|
4763
5128
|
id: z.string(),
|
|
4764
5129
|
parentAgentId: z.string(),
|
|
@@ -4770,6 +5135,9 @@ export const ProviderSubagentDescriptorPayloadSchema = z.object({
|
|
|
4770
5135
|
updatedAt: z.string(),
|
|
4771
5136
|
toolCallId: z.string().nullable(),
|
|
4772
5137
|
cwd: z.string().nullable().optional(),
|
|
5138
|
+
// Compact provider-owned context for the shared track. Providers choose what belongs here and
|
|
5139
|
+
// format it for display; clients must not parse provider-specific facts out of this string.
|
|
5140
|
+
subtitle: z.string().nullable().optional(),
|
|
4773
5141
|
});
|
|
4774
5142
|
export const ProviderSubagentListResponseMessageSchema = z.object({
|
|
4775
5143
|
type: z.literal("agent.provider_subagents.list.response"),
|
|
@@ -5054,6 +5422,7 @@ export const ReadProjectConfigResponseMessageSchema = z.object({
|
|
|
5054
5422
|
ok: z.literal(true),
|
|
5055
5423
|
config: OttoConfigRawSchema.nullable(),
|
|
5056
5424
|
revision: OttoConfigRevisionSchema.nullable(),
|
|
5425
|
+
hasUncommittedWorktreeSetupChanges: z.boolean().optional(),
|
|
5057
5426
|
}),
|
|
5058
5427
|
z.object({
|
|
5059
5428
|
requestId: z.string(),
|
|
@@ -5074,6 +5443,7 @@ export const WriteProjectConfigResponseMessageSchema = z.object({
|
|
|
5074
5443
|
ok: z.literal(true),
|
|
5075
5444
|
config: OttoConfigRawSchema,
|
|
5076
5445
|
revision: OttoConfigRevisionSchema,
|
|
5446
|
+
hasUncommittedWorktreeSetupChanges: z.boolean().optional(),
|
|
5077
5447
|
}),
|
|
5078
5448
|
z.object({
|
|
5079
5449
|
requestId: z.string(),
|
|
@@ -5152,6 +5522,13 @@ const CheckoutStatusCommonSchema = z.object({
|
|
|
5152
5522
|
// client inferred from isOttoOwnedWorktree.
|
|
5153
5523
|
// COMPAT(checkoutDiffBaseAnyRepo): added in v0.7.4.
|
|
5154
5524
|
isBaseEditable: z.boolean().optional(),
|
|
5525
|
+
// The full ref currentBranch tracks, as git resolves `<branch>@{upstream}`:
|
|
5526
|
+
// "refs/remotes/origin/main", "refs/remotes/upstream/main" on a fork, or a
|
|
5527
|
+
// "refs/heads/..." ref for a branch tracking a local branch. Null when there is no
|
|
5528
|
+
// upstream. Clients use it verbatim — the remote is not necessarily origin and the
|
|
5529
|
+
// upstream branch name is not necessarily currentBranch, so composing one is wrong.
|
|
5530
|
+
// aheadOfOrigin/behindOfOrigin are measured against exactly this ref.
|
|
5531
|
+
upstreamRef: z.string().nullable().optional(),
|
|
5155
5532
|
});
|
|
5156
5533
|
const CheckoutStatusNotGitSchema = CheckoutStatusCommonSchema.extend({
|
|
5157
5534
|
isGit: z.literal(false),
|
|
@@ -5547,6 +5924,15 @@ export const CheckoutGithubSetAutoMergeResponseSchema = z.object({
|
|
|
5547
5924
|
requestId: z.string(),
|
|
5548
5925
|
}),
|
|
5549
5926
|
});
|
|
5927
|
+
export const CheckoutDiscardChangesResponseSchema = z.object({
|
|
5928
|
+
type: z.literal("checkout.discard_changes.response"),
|
|
5929
|
+
payload: z.object({
|
|
5930
|
+
cwd: z.string(),
|
|
5931
|
+
success: z.boolean(),
|
|
5932
|
+
error: CheckoutErrorSchema.nullable(),
|
|
5933
|
+
requestId: z.string(),
|
|
5934
|
+
}),
|
|
5935
|
+
});
|
|
5550
5936
|
export const CheckoutCommitsListResponseSchema = z.object({
|
|
5551
5937
|
type: z.literal("checkout.commits.list.response"),
|
|
5552
5938
|
payload: z.object({
|
|
@@ -5845,6 +6231,8 @@ export const BranchSuggestionsResponseSchema = z.object({
|
|
|
5845
6231
|
// older daemons, in which case pickers disable nothing (today's
|
|
5846
6232
|
// behavior).
|
|
5847
6233
|
checkedOutElsewhere: z.boolean().optional(),
|
|
6234
|
+
localAhead: z.number().int().nonnegative().optional(),
|
|
6235
|
+
localBehind: z.number().int().nonnegative().optional(),
|
|
5848
6236
|
}))
|
|
5849
6237
|
.optional(),
|
|
5850
6238
|
error: z.string().nullable(),
|
|
@@ -5996,6 +6384,49 @@ export const FsFileWriteBinaryResponseSchema = z.object({
|
|
|
5996
6384
|
requestId: z.string(),
|
|
5997
6385
|
}),
|
|
5998
6386
|
});
|
|
6387
|
+
export const FileEntryCreateResponseSchema = z.object({
|
|
6388
|
+
type: z.literal("fs.entry.create.response"),
|
|
6389
|
+
payload: z.object({
|
|
6390
|
+
cwd: z.string(),
|
|
6391
|
+
parentPath: z.string(),
|
|
6392
|
+
path: z.string().nullable(),
|
|
6393
|
+
success: z.boolean(),
|
|
6394
|
+
error: z.string().nullable(),
|
|
6395
|
+
requestId: z.string(),
|
|
6396
|
+
}),
|
|
6397
|
+
});
|
|
6398
|
+
export const FileEntryRenameResponseSchema = z.object({
|
|
6399
|
+
type: z.literal("fs.entry.rename.response"),
|
|
6400
|
+
payload: z.object({
|
|
6401
|
+
cwd: z.string(),
|
|
6402
|
+
path: z.string(),
|
|
6403
|
+
renamedPath: z.string().nullable(),
|
|
6404
|
+
success: z.boolean(),
|
|
6405
|
+
error: z.string().nullable(),
|
|
6406
|
+
requestId: z.string(),
|
|
6407
|
+
}),
|
|
6408
|
+
});
|
|
6409
|
+
export const FileEntryDuplicateResponseSchema = z.object({
|
|
6410
|
+
type: z.literal("fs.entry.duplicate.response"),
|
|
6411
|
+
payload: z.object({
|
|
6412
|
+
cwd: z.string(),
|
|
6413
|
+
path: z.string(),
|
|
6414
|
+
duplicatedPath: z.string().nullable(),
|
|
6415
|
+
success: z.boolean(),
|
|
6416
|
+
error: z.string().nullable(),
|
|
6417
|
+
requestId: z.string(),
|
|
6418
|
+
}),
|
|
6419
|
+
});
|
|
6420
|
+
export const FileEntryDeleteResponseSchema = z.object({
|
|
6421
|
+
type: z.literal("fs.entry.delete.response"),
|
|
6422
|
+
payload: z.object({
|
|
6423
|
+
cwd: z.string(),
|
|
6424
|
+
path: z.string(),
|
|
6425
|
+
success: z.boolean(),
|
|
6426
|
+
error: z.string().nullable(),
|
|
6427
|
+
requestId: z.string(),
|
|
6428
|
+
}),
|
|
6429
|
+
});
|
|
5999
6430
|
export const FileUpdateSchema = z.object({
|
|
6000
6431
|
type: z.literal("fs.file.update"),
|
|
6001
6432
|
payload: z.object({
|
|
@@ -6016,6 +6447,15 @@ export const ProjectIconResponseSchema = z.object({
|
|
|
6016
6447
|
requestId: z.string(),
|
|
6017
6448
|
}),
|
|
6018
6449
|
});
|
|
6450
|
+
export const ProjectIconGetResponseSchema = z.object({
|
|
6451
|
+
type: z.literal("project.icon.get.response"),
|
|
6452
|
+
payload: z.object({
|
|
6453
|
+
projectId: z.string(),
|
|
6454
|
+
icon: ProjectIconSchema.nullable(),
|
|
6455
|
+
error: z.string().nullable(),
|
|
6456
|
+
requestId: z.string(),
|
|
6457
|
+
}),
|
|
6458
|
+
});
|
|
6019
6459
|
export const FileDownloadTokenResponseSchema = z.object({
|
|
6020
6460
|
type: z.literal("file_download_token_response"),
|
|
6021
6461
|
payload: z.object({
|
|
@@ -6118,7 +6558,11 @@ export const ListAvailableProvidersResponseSchema = z.object({
|
|
|
6118
6558
|
export const GetProvidersSnapshotResponseMessageSchema = z.object({
|
|
6119
6559
|
type: z.literal("get_providers_snapshot_response"),
|
|
6120
6560
|
payload: z.object({
|
|
6561
|
+
cwd: z.string().optional(),
|
|
6121
6562
|
entries: z.array(ProviderSnapshotEntrySchema),
|
|
6563
|
+
compactSnapshot: CompactProviderSnapshotSchema.optional(),
|
|
6564
|
+
snapshotHash: z.string().optional(),
|
|
6565
|
+
notModified: z.boolean().optional(),
|
|
6122
6566
|
generatedAt: z.string(),
|
|
6123
6567
|
requestId: z.string(),
|
|
6124
6568
|
}),
|
|
@@ -6129,6 +6573,8 @@ export const ProvidersSnapshotUpdateMessageSchema = z.object({
|
|
|
6129
6573
|
payload: z.object({
|
|
6130
6574
|
cwd: z.string().optional(),
|
|
6131
6575
|
entries: z.array(ProviderSnapshotEntrySchema),
|
|
6576
|
+
compactSnapshot: CompactProviderSnapshotSchema.optional(),
|
|
6577
|
+
snapshotHash: z.string().optional(),
|
|
6132
6578
|
generatedAt: z.string(),
|
|
6133
6579
|
}),
|
|
6134
6580
|
});
|
|
@@ -6370,6 +6816,20 @@ export const HubExecutionAgentCreateResponseSchema = z.object({
|
|
|
6370
6816
|
agentId: z.string().nullable(),
|
|
6371
6817
|
agent: AgentSnapshotPayloadSchema.nullable(),
|
|
6372
6818
|
success: z.boolean(),
|
|
6819
|
+
toolPolicyApplied: z.literal(true).optional(),
|
|
6820
|
+
error: HubExecutionAgentCreateErrorSchema.nullable(),
|
|
6821
|
+
}),
|
|
6822
|
+
});
|
|
6823
|
+
export const HubExecutionAgentValidationIssueSchema = z.object({
|
|
6824
|
+
path: z.array(z.union([z.string(), z.number()])),
|
|
6825
|
+
message: z.string(),
|
|
6826
|
+
});
|
|
6827
|
+
export const HubExecutionAgentValidateResponseSchema = z.object({
|
|
6828
|
+
type: z.literal("hub.execution.agent.validate.response"),
|
|
6829
|
+
payload: z.object({
|
|
6830
|
+
requestId: z.string(),
|
|
6831
|
+
valid: z.boolean(),
|
|
6832
|
+
issues: z.array(HubExecutionAgentValidationIssueSchema),
|
|
6373
6833
|
error: z.string().nullable(),
|
|
6374
6834
|
}),
|
|
6375
6835
|
});
|
|
@@ -6401,6 +6861,7 @@ export const HubExecutionAgentStreamSchema = z.object({
|
|
|
6401
6861
|
});
|
|
6402
6862
|
export const HubExecutionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
6403
6863
|
HubExecutionAgentCreateResponseSchema,
|
|
6864
|
+
HubExecutionAgentValidateResponseSchema,
|
|
6404
6865
|
HubExecutionControlResponseSchema,
|
|
6405
6866
|
HubExecutionAgentUpdateSchema,
|
|
6406
6867
|
HubExecutionAgentStreamSchema,
|
|
@@ -6425,6 +6886,7 @@ export function parseHubExecutionOutboundMessage(value) {
|
|
|
6425
6886
|
}
|
|
6426
6887
|
export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
6427
6888
|
HubExecutionAgentCreateResponseSchema,
|
|
6889
|
+
HubExecutionAgentValidateResponseSchema,
|
|
6428
6890
|
HubExecutionControlResponseSchema,
|
|
6429
6891
|
HubExecutionAgentUpdateSchema,
|
|
6430
6892
|
HubExecutionAgentStreamSchema,
|
|
@@ -6441,6 +6903,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6441
6903
|
DictationStreamErrorMessageSchema,
|
|
6442
6904
|
StatusMessageSchema,
|
|
6443
6905
|
PongMessageSchema,
|
|
6906
|
+
PushUnregisterResponseSchema,
|
|
6444
6907
|
RpcErrorMessageSchema,
|
|
6445
6908
|
ArtifactMessageSchema,
|
|
6446
6909
|
ArtifactUpdateMessageSchema,
|
|
@@ -6478,6 +6941,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6478
6941
|
WorktreeReattachResponseSchema,
|
|
6479
6942
|
FetchAgentResponseMessageSchema,
|
|
6480
6943
|
FetchAgentTimelineResponseMessageSchema,
|
|
6944
|
+
AgentTimelineListPromptsResponseMessageSchema,
|
|
6481
6945
|
ProviderSubagentListResponseMessageSchema,
|
|
6482
6946
|
ProviderSubagentTimelineResponseMessageSchema,
|
|
6483
6947
|
ProviderSubagentUpdateMessageSchema,
|
|
@@ -6532,12 +6996,16 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6532
6996
|
VisualizerVoiceCuesGenerateResponseSchema,
|
|
6533
6997
|
AgentPersonalitiesGetStatsResponseSchema,
|
|
6534
6998
|
AgentPersonalitiesGenerateProfileResponseSchema,
|
|
6999
|
+
AgentProfileStatsResponseSchema,
|
|
7000
|
+
AgentProfileGeneratePromptResponseSchema,
|
|
7001
|
+
AgentProfileGenerateVoiceCuesResponseSchema,
|
|
6535
7002
|
ReadProjectConfigResponseMessageSchema,
|
|
6536
7003
|
WriteProjectConfigResponseMessageSchema,
|
|
6537
7004
|
SetAgentModeResponseMessageSchema,
|
|
6538
7005
|
SetAgentModelResponseMessageSchema,
|
|
6539
7006
|
SetAgentThinkingResponseMessageSchema,
|
|
6540
7007
|
SetAgentFeatureResponseMessageSchema,
|
|
7008
|
+
AgentConfigApplyResponseMessageSchema,
|
|
6541
7009
|
AgentDetachResponseMessageSchema,
|
|
6542
7010
|
AgentWorkspaceTransferResponseMessageSchema,
|
|
6543
7011
|
AgentQueueRemoveResponseMessageSchema,
|
|
@@ -6552,11 +7020,13 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6552
7020
|
SuggestedTasksChangedSchema,
|
|
6553
7021
|
ContextReportChangedSchema,
|
|
6554
7022
|
AgentPersonalitySetResponseMessageSchema,
|
|
7023
|
+
AgentProfileSetResponseMessageSchema,
|
|
6555
7024
|
AgentRewindResponseMessageSchema,
|
|
6556
7025
|
UpdateAgentResponseMessageSchema,
|
|
6557
7026
|
ProjectRenameResponseSchema,
|
|
6558
7027
|
KanbanProjectTargetSetResponseSchema,
|
|
6559
7028
|
ProjectUpdatedNotificationSchema,
|
|
7029
|
+
ProjectIconSetResponseSchema,
|
|
6560
7030
|
ProjectRemoveResponseSchema,
|
|
6561
7031
|
ProjectLinksListResponseSchema,
|
|
6562
7032
|
ProjectLinksSetResponseSchema,
|
|
@@ -6647,6 +7117,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6647
7117
|
CheckoutPushResponseSchema,
|
|
6648
7118
|
CheckoutRefreshResponseSchema,
|
|
6649
7119
|
CheckoutGitFetchResponseSchema,
|
|
7120
|
+
CheckoutDiscardChangesResponseSchema,
|
|
6650
7121
|
CheckoutPrCreateResponseSchema,
|
|
6651
7122
|
CheckoutPrMergeResponseSchema,
|
|
6652
7123
|
CheckoutForgeSetAutoMergeResponseSchema,
|
|
@@ -6688,8 +7159,13 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6688
7159
|
FileUnsubscribeResponseSchema,
|
|
6689
7160
|
FsFileWriteResponseSchema,
|
|
6690
7161
|
FsFileWriteBinaryResponseSchema,
|
|
7162
|
+
FileEntryCreateResponseSchema,
|
|
7163
|
+
FileEntryRenameResponseSchema,
|
|
7164
|
+
FileEntryDuplicateResponseSchema,
|
|
7165
|
+
FileEntryDeleteResponseSchema,
|
|
6691
7166
|
FileUpdateSchema,
|
|
6692
7167
|
ProjectIconResponseSchema,
|
|
7168
|
+
ProjectIconGetResponseSchema,
|
|
6693
7169
|
FileDownloadTokenResponseSchema,
|
|
6694
7170
|
FileUploadResponseSchema,
|
|
6695
7171
|
FileWriteResponseSchema,
|
|
@@ -6746,6 +7222,10 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
6746
7222
|
PersonalityMemoryUpdateResponseMessageSchema,
|
|
6747
7223
|
PersonalityMemoryTransferResponseMessageSchema,
|
|
6748
7224
|
PersonalityMemoryStatsResponseMessageSchema,
|
|
7225
|
+
ProfileMemoryListResponseMessageSchema,
|
|
7226
|
+
ProfileMemoryUpdateResponseMessageSchema,
|
|
7227
|
+
ProfileMemoryTransferResponseMessageSchema,
|
|
7228
|
+
ProfileMemoryStatsResponseMessageSchema,
|
|
6749
7229
|
StatsActivityResetResponseMessageSchema,
|
|
6750
7230
|
UsageLogGetResponseMessageSchema,
|
|
6751
7231
|
ActivityStatsChangedSchema,
|
|
@@ -6824,6 +7304,7 @@ export const WSHelloMessageSchema = z.object({
|
|
|
6824
7304
|
[CLIENT_CAPS.terminalReflowableSnapshot]: z.boolean().optional(),
|
|
6825
7305
|
[CLIENT_CAPS.providerSubagents]: z.boolean().optional(),
|
|
6826
7306
|
[CLIENT_CAPS.projectUpdates]: z.boolean().optional(),
|
|
7307
|
+
[CLIENT_CAPS.compactProviderSnapshots]: z.boolean().optional(),
|
|
6827
7308
|
[CLIENT_CAPS.browserHost]: BrowserAutomationHostCapabilitySchema.optional(),
|
|
6828
7309
|
})
|
|
6829
7310
|
.passthrough()
|