@otto-code/protocol 0.8.14 → 0.8.16

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/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, 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";
3
+ import { VisualizerVoiceCuesGenerateRequestSchema, VisualizerVoiceCuesGenerateResponseSchema, AgentProfileSpinnerSchema, 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";
@@ -72,10 +72,15 @@ const MutableMetadataGenerationConfigSchema = z
72
72
  // agent progress summaries, and other structured side-generations). Default
73
73
  // true preserves today's behavior. Read by the generation path (WP-B).
74
74
  enabled: z.boolean().default(true),
75
- // When true, metadata generation prefers a role-matched Writer personality
76
- // over the cheap default tier. Default false - cheap-tier routing is the
77
- // default. Read by the generation routing (WP-B).
75
+ // When true, metadata generation prefers a role-matched Writer profile over
76
+ // the cheap default tier. Default false - cheap-tier routing is the default.
77
+ //
78
+ // COMPAT(agentProfileFields): added in v0.8.13, remove after 2027-02-22.
79
+ // `preferWriterPersonalities` is the pre-rename spelling. This is persisted
80
+ // daemon config, so both keys are written and either is read; drop the
81
+ // legacy one when the floor passes v0.8.13.
78
82
  preferWriterPersonalities: z.boolean().default(false),
83
+ preferWriterProfiles: z.boolean().optional(),
79
84
  })
80
85
  .passthrough();
81
86
  export const TerminalProfileSchema = z
@@ -117,7 +122,7 @@ export const AgentProfileSchema = z
117
122
  personalityPrompt: z.string().optional(),
118
123
  respectGlobalAppendPrompt: z.boolean().optional(),
119
124
  roles: z.array(z.string().min(1)).optional(),
120
- spinner: AgentPersonalitySpinnerSchema.optional(),
125
+ spinner: AgentProfileSpinnerSchema.optional(),
121
126
  voice: AgentPersonalityVoiceSchema.optional(),
122
127
  voiceCues: AgentPersonalityVoiceCuesSchema.optional(),
123
128
  memoryEnabled: z.boolean().optional(),
@@ -1010,21 +1015,29 @@ export const AgentSnapshotPayloadSchema = z.object({
1010
1015
  // foreground, which is the pre-existing behavior. Drop the gate when daemon
1011
1016
  // floor >= v0.7.5. See docs/chat-lifecycle.md.
1012
1017
  backgrounded: z.boolean().optional(),
1013
- // Spinner colors from the Agent Personality this agent was spawned from, so
1014
- // its live thinking indicator renders in the personality's identity. Absent ⇒
1015
- // the client falls back to the theme's default spinner colors. Purely additive
1016
- // (no daemon floor needed). See docs/agent-personalities.md.
1017
- personalitySpinner: AgentPersonalitySpinnerSchema.optional(),
1018
- // Name of the Agent Personality this agent was spawned from, so the running
1019
- // agent's controls keep showing the personality identity (trigger label +
1020
- // effort hidden) instead of reverting to the raw model. Absent no bound
1021
- // personality. Purely additive. See docs/agent-personalities.md.
1018
+ // Spinner colors from the Agent Profile this agent was spawned from, so its
1019
+ // live thinking indicator renders in the profile's identity. Absent ⇒ the
1020
+ // client falls back to the theme's default spinner colors. Purely additive
1021
+ // (no daemon floor needed). See docs/agent-profiles.md.
1022
+ //
1023
+ // COMPAT(agentProfileFields): added in v0.8.13, remove after 2027-02-22.
1024
+ // The three personality-named fields below are the pre-rename spelling. The
1025
+ // daemon emits both spellings and the client prefers the profile-named one,
1026
+ // so an old client keeps reading what it knows and a new client keeps working
1027
+ // against an old daemon. Drop the legacy trio when the floor passes v0.8.13.
1028
+ personalitySpinner: AgentProfileSpinnerSchema.optional(),
1029
+ // Name of the Agent Profile this agent was spawned from, so the running
1030
+ // agent's controls keep showing the profile identity (trigger label + effort
1031
+ // hidden) instead of reverting to the raw model. Absent ⇒ no bound profile.
1022
1032
  personalityName: z.string().optional(),
1023
- // Stable id of the bound Agent Personality. The client keys roster selection
1024
- // on this (names can be renamed/duplicated); personalityName remains for
1025
- // display and as the selection fallback against daemons that predate this
1026
- // field. Purely additive. See docs/agent-personalities.md.
1033
+ // Stable id of the bound Agent Profile. The client keys roster selection on
1034
+ // this (names can be renamed or duplicated); the name remains for display and
1035
+ // as the selection fallback against daemons that predate this field.
1027
1036
  personalityId: z.string().optional(),
1037
+ // The profile-named twins of the trio above. Same values, current spelling.
1038
+ agentProfileSpinner: AgentProfileSpinnerSchema.optional(),
1039
+ agentProfileName: z.string().optional(),
1040
+ agentProfileId: z.string().optional(),
1028
1041
  });
1029
1042
  export const AgentListItemPayloadSchema = z.object({
1030
1043
  id: z.string(),
@@ -1614,12 +1627,17 @@ export const CreateAgentWorktreeTargetSchema = z.discriminatedUnion("mode", [
1614
1627
  export const CreateAgentRequestMessageSchema = z.object({
1615
1628
  type: z.literal("create_agent_request"),
1616
1629
  config: AgentSessionConfigSchema,
1617
- // Optional personality id. When present the daemon resolves the personality
1618
- // against this cwd's provider snapshot and snapshots its identity (spinner,
1619
- // voice, prompt) onto the agent - the brain (provider/model/mode/effort) still
1620
- // comes from `config`, so hand-deviations in the picker keep the identity.
1630
+ // Optional Agent Profile id. When present the daemon resolves it against this
1631
+ // cwd's provider snapshot and snapshots its identity (spinner, voice, prompt)
1632
+ // onto the agent - the brain (provider/model/mode/effort) still comes from
1633
+ // `config`, so hand-deviations in the picker keep the identity.
1621
1634
  // COMPAT(agentPersonalities): added in v0.5.0; gate lives in features.agentPersonalities.
1622
1635
  personality: z.string().optional(),
1636
+ // COMPAT(agentProfileFields): added in v0.8.13, remove after 2027-02-22.
1637
+ // Current spelling of the field above. The daemon reads whichever arrives,
1638
+ // preferring this one; clients keep sending `personality` until the floor
1639
+ // passes v0.8.13, so an old daemon still binds the identity.
1640
+ agentProfile: z.string().optional(),
1623
1641
  env: z.record(z.string(), z.string()).optional(),
1624
1642
  workspaceId: z.string().optional(),
1625
1643
  // Optional caller context lets managed CLI invocations use the same daemon-owned
@@ -1939,7 +1957,7 @@ export const AgentBackgroundTaskClearResponseMessageSchema = z.object({
1939
1957
  });
1940
1958
  // ---------------------------------------------------------------------------
1941
1959
  // Personality memory - the lessons a named personality accrues across sessions.
1942
- // See docs/agent-personalities.md § Memory.
1960
+ // See docs/agent-profiles.md § Memory.
1943
1961
  // ---------------------------------------------------------------------------
1944
1962
  // Switch a running agent to an Agent Personality (or clear with null). The
1945
1963
  // daemon re-resolves the id against the roster + the agent's cwd provider
@@ -1,9 +1,9 @@
1
1
  import { z } from "zod";
2
2
  /**
3
- * Otto agent-personality wire schemas. Kept out of agent-personalities.ts because that module imports from messages.ts, and out of messages.ts because personalities are a fork-only capability.
3
+ * Otto Personality wire schemas. Kept out of agent-profiles.ts because that module imports from messages.ts, and out of messages.ts because Personalities are a fork-only capability.
4
4
  */
5
- export declare const PERSONALITY_ROLES: readonly ["chatter", "artificer", "scheduler", "researcher", "planner", "judger", "advisor", "coder", "designer", "writer", "orchestrator"];
6
- export type PersonalityRole = (typeof PERSONALITY_ROLES)[number];
5
+ export declare const PROFILE_ROLES: readonly ["chatter", "artificer", "scheduler", "researcher", "planner", "judger", "advisor", "coder", "designer", "writer", "orchestrator"];
6
+ export type ProfileRole = (typeof PROFILE_ROLES)[number];
7
7
  export declare const PersonalityMemoryEntrySchema: z.ZodObject<{
8
8
  id: z.ZodString;
9
9
  text: z.ZodString;
@@ -145,7 +145,7 @@ export declare const AgentPersonalitiesGenerateProfileResponseSchema: z.ZodObjec
145
145
  export type AgentPersonalitiesGenerateProfileResult = z.infer<typeof AgentPersonalitiesGenerateProfileResponseSchema>["payload"];
146
146
  export declare const CUE_MOMENTS: readonly ["join", "thinking", "waiting", "done"];
147
147
  export type CueMoment = (typeof CUE_MOMENTS)[number];
148
- export declare const AgentPersonalitySpinnerSchema: z.ZodObject<{
148
+ export declare const AgentProfileSpinnerSchema: z.ZodObject<{
149
149
  glowA: z.ZodString;
150
150
  glowB: z.ZodString;
151
151
  }, z.core.$loose>;
@@ -1,15 +1,15 @@
1
1
  import { z } from "zod";
2
2
  /**
3
- * Otto agent-personality wire schemas. Kept out of agent-personalities.ts because that module imports from messages.ts, and out of messages.ts because personalities are a fork-only capability.
3
+ * Otto Personality wire schemas. Kept out of agent-profiles.ts because that module imports from messages.ts, and out of messages.ts because Personalities are a fork-only capability.
4
4
  */
5
5
  // Canonical personality roles, in display order. Kept as an exported const so
6
6
  // the daemon and app share one vocabulary, but the wire schema stores roles as
7
7
  // plain strings (below) - adding a role later must never break an older peer's
8
8
  // parsing. Consumers filter incoming role arrays to this known set. The retired
9
9
  // "worker" role is mapped to "coder" on the way in (see LEGACY_ROLE_ALIASES in
10
- // agent-personalities.ts) so personalities persisted before the split keep their
10
+ // agent-profiles.ts) so personalities persisted before the split keep their
11
11
  // role rather than silently losing it.
12
- export const PERSONALITY_ROLES = [
12
+ export const PROFILE_ROLES = [
13
13
  // Surfaces - the interactive / host-facing entry points.
14
14
  "chatter",
15
15
  "artificer",
@@ -231,7 +231,7 @@ export const AgentPersonalitiesGenerateProfileResponseSchema = z.object({
231
231
  // running; it DEFERS "done" rather than replacing it (see docs/visualizer.md).
232
232
  export const CUE_MOMENTS = ["join", "thinking", "waiting", "done"];
233
233
  // Two glow colors for the personality's thinking spinner (BlobLoader glowA/glowB).
234
- export const AgentPersonalitySpinnerSchema = z
234
+ export const AgentProfileSpinnerSchema = z
235
235
  .object({
236
236
  glowA: z.string().min(1),
237
237
  glowB: z.string().min(1),
@@ -291,7 +291,7 @@ export const AgentPersonalitySchema = z
291
291
  // the personality prompt. False = the personality prompt stands alone.
292
292
  respectGlobalAppendPrompt: z.boolean().optional(),
293
293
  roles: z.array(z.string().min(1)).optional(),
294
- spinner: AgentPersonalitySpinnerSchema.optional(),
294
+ spinner: AgentProfileSpinnerSchema.optional(),
295
295
  voice: AgentPersonalityVoiceSchema.optional(),
296
296
  voiceCues: AgentPersonalityVoiceCuesSchema.optional(),
297
297
  // Whether this personality accrues lessons across sessions (personality
@@ -299,7 +299,7 @@ export const AgentPersonalitySchema = z
299
299
  // and costs nothing, so an off-by-default switch would only mean the feature
300
300
  // never starts working for anyone who did not go looking for it. The switch
301
301
  // exists to stop a personality accruing, not to start it.
302
- // See docs/agent-personalities.md § Memory.
302
+ // See docs/agent-profiles.md § Memory.
303
303
  memoryEnabled: z.boolean().optional(),
304
304
  })
305
305
  .passthrough();
@@ -24,6 +24,7 @@ export declare const ScheduleCreateRequestSchema: z.ZodObject<{
24
24
  provider: z.ZodString;
25
25
  cwd: z.ZodString;
26
26
  personality: z.ZodOptional<z.ZodString>;
27
+ agentProfile: z.ZodOptional<z.ZodString>;
27
28
  modeId: z.ZodOptional<z.ZodString>;
28
29
  model: z.ZodOptional<z.ZodString>;
29
30
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -140,6 +141,7 @@ export declare const ScheduleCreateResponseSchema: z.ZodObject<{
140
141
  provider: z.ZodString;
141
142
  cwd: z.ZodString;
142
143
  personality: z.ZodOptional<z.ZodString>;
144
+ agentProfile: z.ZodOptional<z.ZodString>;
143
145
  modeId: z.ZodOptional<z.ZodString>;
144
146
  model: z.ZodOptional<z.ZodString>;
145
147
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -212,6 +214,7 @@ export declare const ScheduleListResponseSchema: z.ZodObject<{
212
214
  provider: z.ZodString;
213
215
  cwd: z.ZodString;
214
216
  personality: z.ZodOptional<z.ZodString>;
217
+ agentProfile: z.ZodOptional<z.ZodString>;
215
218
  modeId: z.ZodOptional<z.ZodString>;
216
219
  model: z.ZodOptional<z.ZodString>;
217
220
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -284,6 +287,7 @@ export declare const ScheduleInspectResponseSchema: z.ZodObject<{
284
287
  provider: z.ZodString;
285
288
  cwd: z.ZodString;
286
289
  personality: z.ZodOptional<z.ZodString>;
290
+ agentProfile: z.ZodOptional<z.ZodString>;
287
291
  modeId: z.ZodOptional<z.ZodString>;
288
292
  model: z.ZodOptional<z.ZodString>;
289
293
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -399,6 +403,7 @@ export declare const SchedulePauseResponseSchema: z.ZodObject<{
399
403
  provider: z.ZodString;
400
404
  cwd: z.ZodString;
401
405
  personality: z.ZodOptional<z.ZodString>;
406
+ agentProfile: z.ZodOptional<z.ZodString>;
402
407
  modeId: z.ZodOptional<z.ZodString>;
403
408
  model: z.ZodOptional<z.ZodString>;
404
409
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -471,6 +476,7 @@ export declare const ScheduleResumeResponseSchema: z.ZodObject<{
471
476
  provider: z.ZodString;
472
477
  cwd: z.ZodString;
473
478
  personality: z.ZodOptional<z.ZodString>;
479
+ agentProfile: z.ZodOptional<z.ZodString>;
474
480
  modeId: z.ZodOptional<z.ZodString>;
475
481
  model: z.ZodOptional<z.ZodString>;
476
482
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -551,6 +557,7 @@ export declare const ScheduleRunOnceResponseSchema: z.ZodObject<{
551
557
  provider: z.ZodString;
552
558
  cwd: z.ZodString;
553
559
  personality: z.ZodOptional<z.ZodString>;
560
+ agentProfile: z.ZodOptional<z.ZodString>;
554
561
  modeId: z.ZodOptional<z.ZodString>;
555
562
  model: z.ZodOptional<z.ZodString>;
556
563
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -641,6 +648,7 @@ export declare const ScheduleUpdateResponseSchema: z.ZodObject<{
641
648
  provider: z.ZodString;
642
649
  cwd: z.ZodString;
643
650
  personality: z.ZodOptional<z.ZodString>;
651
+ agentProfile: z.ZodOptional<z.ZodString>;
644
652
  modeId: z.ZodOptional<z.ZodString>;
645
653
  model: z.ZodOptional<z.ZodString>;
646
654
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -23,6 +23,7 @@ export declare const ScheduleTargetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
23
23
  provider: z.ZodString;
24
24
  cwd: z.ZodString;
25
25
  personality: z.ZodOptional<z.ZodString>;
26
+ agentProfile: z.ZodOptional<z.ZodString>;
26
27
  modeId: z.ZodOptional<z.ZodString>;
27
28
  model: z.ZodOptional<z.ZodString>;
28
29
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -87,6 +88,7 @@ export declare const StoredScheduleSchema: z.ZodObject<{
87
88
  provider: z.ZodString;
88
89
  cwd: z.ZodString;
89
90
  personality: z.ZodOptional<z.ZodString>;
91
+ agentProfile: z.ZodOptional<z.ZodString>;
90
92
  modeId: z.ZodOptional<z.ZodString>;
91
93
  model: z.ZodOptional<z.ZodString>;
92
94
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -171,6 +173,7 @@ export declare const ScheduleSummarySchema: z.ZodObject<{
171
173
  provider: z.ZodString;
172
174
  cwd: z.ZodString;
173
175
  personality: z.ZodOptional<z.ZodString>;
176
+ agentProfile: z.ZodOptional<z.ZodString>;
174
177
  modeId: z.ZodOptional<z.ZodString>;
175
178
  model: z.ZodOptional<z.ZodString>;
176
179
  thinkingOptionId: z.ZodOptional<z.ZodString>;
@@ -227,7 +230,9 @@ export interface CreateScheduleInput {
227
230
  }
228
231
  export interface UpdateScheduleNewAgentConfig {
229
232
  provider?: string;
233
+ /** COMPAT(agentProfileFields): pre-rename spelling of `agentProfile`. */
230
234
  personality?: string | null;
235
+ agentProfile?: string | null;
231
236
  model?: string | null;
232
237
  modeId?: string | null;
233
238
  thinkingOptionId?: string | null;
@@ -22,10 +22,16 @@ export const ScheduleTargetSchema = z.discriminatedUnion("type", [
22
22
  config: z.object({
23
23
  provider: AgentProviderSchema,
24
24
  cwd: z.string().trim().min(1),
25
- // Optional Agent Personality binding (by name). When set, each run
26
- // re-resolves the personality against the run cwd and hard-fails if it is
27
- // unavailable - so schedule runs pick up personality edits between runs.
25
+ // Optional Agent Profile binding, stored as the stable id. Each run
26
+ // re-resolves it against the run cwd and hard-fails if it is unavailable,
27
+ // so runs pick up profile edits between runs.
28
+ //
29
+ // COMPAT(agentProfileFields): added in v0.8.13, remove after 2027-02-22.
30
+ // `personality` is the pre-rename spelling and is both read and written
31
+ // for the compat window: schedules live on disk, so a daemon that predates
32
+ // the rename must still find the binding after a downgrade.
28
33
  personality: z.string().trim().min(1).optional(),
34
+ agentProfile: z.string().trim().min(1).optional(),
29
35
  modeId: z.string().trim().min(1).optional(),
30
36
  model: z.string().trim().min(1).optional(),
31
37
  thinkingOptionId: z.string().trim().min(1).optional(),
@@ -112,6 +112,12 @@ export declare const WSOutboundMessageSchema: {
112
112
  }, import("zod/v4/core").$loose>>;
113
113
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
114
114
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
115
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
116
+ glowA: import("zod").ZodString;
117
+ glowB: import("zod").ZodString;
118
+ }, import("zod/v4/core").$loose>>;
119
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
120
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
115
121
  }, import("zod/v4/core").$strip>>;
116
122
  success: import("zod").ZodBoolean;
117
123
  toolPolicyApplied: import("zod").ZodOptional<import("zod").ZodLiteral<true>>;
@@ -263,6 +269,12 @@ export declare const WSOutboundMessageSchema: {
263
269
  }, import("zod/v4/core").$loose>>;
264
270
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
265
271
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
272
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
273
+ glowA: import("zod").ZodString;
274
+ glowB: import("zod").ZodString;
275
+ }, import("zod/v4/core").$loose>>;
276
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
277
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
266
278
  }, import("zod/v4/core").$strip>;
267
279
  }, import("zod/v4/core").$strip>;
268
280
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -825,6 +837,12 @@ export declare const WSOutboundMessageSchema: {
825
837
  }, import("zod/v4/core").$loose>>;
826
838
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
827
839
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
840
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
841
+ glowA: import("zod").ZodString;
842
+ glowB: import("zod").ZodString;
843
+ }, import("zod/v4/core").$loose>>;
844
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
845
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
828
846
  }, import("zod/v4/core").$strip>;
829
847
  project: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
830
848
  projectKey: import("zod").ZodString;
@@ -1761,6 +1779,12 @@ export declare const WSOutboundMessageSchema: {
1761
1779
  }, import("zod/v4/core").$loose>>;
1762
1780
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
1763
1781
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
1782
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
1783
+ glowA: import("zod").ZodString;
1784
+ glowB: import("zod").ZodString;
1785
+ }, import("zod/v4/core").$loose>>;
1786
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
1787
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
1764
1788
  }, import("zod/v4/core").$strip>;
1765
1789
  }, import("zod/v4/core").$strip>;
1766
1790
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -1872,6 +1896,12 @@ export declare const WSOutboundMessageSchema: {
1872
1896
  }, import("zod/v4/core").$loose>>;
1873
1897
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
1874
1898
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
1899
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
1900
+ glowA: import("zod").ZodString;
1901
+ glowB: import("zod").ZodString;
1902
+ }, import("zod/v4/core").$loose>>;
1903
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
1904
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
1875
1905
  }, import("zod/v4/core").$strip>;
1876
1906
  project: import("zod").ZodObject<{
1877
1907
  projectKey: import("zod").ZodString;
@@ -2079,6 +2109,12 @@ export declare const WSOutboundMessageSchema: {
2079
2109
  }, import("zod/v4/core").$loose>>;
2080
2110
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
2081
2111
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
2112
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
2113
+ glowA: import("zod").ZodString;
2114
+ glowB: import("zod").ZodString;
2115
+ }, import("zod/v4/core").$loose>>;
2116
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
2117
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
2082
2118
  }, import("zod/v4/core").$strip>;
2083
2119
  project: import("zod").ZodObject<{
2084
2120
  projectKey: import("zod").ZodString;
@@ -4261,6 +4297,12 @@ export declare const WSOutboundMessageSchema: {
4261
4297
  }, import("zod/v4/core").$loose>>;
4262
4298
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
4263
4299
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
4300
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
4301
+ glowA: import("zod").ZodString;
4302
+ glowB: import("zod").ZodString;
4303
+ }, import("zod/v4/core").$loose>>;
4304
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
4305
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
4264
4306
  }, import("zod/v4/core").$strip>>;
4265
4307
  project: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
4266
4308
  projectKey: import("zod").ZodString;
@@ -4450,6 +4492,12 @@ export declare const WSOutboundMessageSchema: {
4450
4492
  }, import("zod/v4/core").$loose>>;
4451
4493
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
4452
4494
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
4495
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
4496
+ glowA: import("zod").ZodString;
4497
+ glowB: import("zod").ZodString;
4498
+ }, import("zod/v4/core").$loose>>;
4499
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
4500
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
4453
4501
  }, import("zod/v4/core").$strip>>;
4454
4502
  direction: import("zod").ZodEnum<{
4455
4503
  before: "before";
@@ -4774,6 +4822,12 @@ export declare const WSOutboundMessageSchema: {
4774
4822
  }, import("zod/v4/core").$loose>>;
4775
4823
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
4776
4824
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
4825
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
4826
+ glowA: import("zod").ZodString;
4827
+ glowB: import("zod").ZodString;
4828
+ }, import("zod/v4/core").$loose>>;
4829
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
4830
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
4777
4831
  }, import("zod/v4/core").$strip>>;
4778
4832
  cancelled: import("zod").ZodOptional<import("zod").ZodBoolean>;
4779
4833
  error: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
@@ -4886,6 +4940,12 @@ export declare const WSOutboundMessageSchema: {
4886
4940
  }, import("zod/v4/core").$loose>>;
4887
4941
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
4888
4942
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
4943
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
4944
+ glowA: import("zod").ZodString;
4945
+ glowB: import("zod").ZodString;
4946
+ }, import("zod/v4/core").$loose>>;
4947
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
4948
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
4889
4949
  }, import("zod/v4/core").$strip>>;
4890
4950
  }, import("zod/v4/core").$strip>;
4891
4951
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -5561,6 +5621,7 @@ export declare const WSOutboundMessageSchema: {
5561
5621
  }, import("zod/v4/core").$loose>>>;
5562
5622
  enabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
5563
5623
  preferWriterPersonalities: import("zod").ZodDefault<import("zod").ZodBoolean>;
5624
+ preferWriterProfiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
5564
5625
  }, import("zod/v4/core").$loose>>;
5565
5626
  autoArchiveAfterMerge: import("zod").ZodDefault<import("zod").ZodBoolean>;
5566
5627
  gitFetch: import("zod").ZodOptional<import("zod").ZodObject<{
@@ -5904,6 +5965,7 @@ export declare const WSOutboundMessageSchema: {
5904
5965
  }, import("zod/v4/core").$loose>>>;
5905
5966
  enabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
5906
5967
  preferWriterPersonalities: import("zod").ZodDefault<import("zod").ZodBoolean>;
5968
+ preferWriterProfiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
5907
5969
  }, import("zod/v4/core").$loose>>;
5908
5970
  autoArchiveAfterMerge: import("zod").ZodDefault<import("zod").ZodBoolean>;
5909
5971
  gitFetch: import("zod").ZodOptional<import("zod").ZodObject<{
@@ -7751,6 +7813,12 @@ export declare const WSOutboundMessageSchema: {
7751
7813
  }, import("zod/v4/core").$loose>>;
7752
7814
  personalityName: import("zod").ZodOptional<import("zod").ZodString>;
7753
7815
  personalityId: import("zod").ZodOptional<import("zod").ZodString>;
7816
+ agentProfileSpinner: import("zod").ZodOptional<import("zod").ZodObject<{
7817
+ glowA: import("zod").ZodString;
7818
+ glowB: import("zod").ZodString;
7819
+ }, import("zod/v4/core").$loose>>;
7820
+ agentProfileName: import("zod").ZodOptional<import("zod").ZodString>;
7821
+ agentProfileId: import("zod").ZodOptional<import("zod").ZodString>;
7754
7822
  }, import("zod/v4/core").$strip>>;
7755
7823
  error: import("zod").ZodNullable<import("zod").ZodString>;
7756
7824
  lastMessage: import("zod").ZodNullable<import("zod").ZodString>;
@@ -14217,6 +14285,7 @@ export declare const WSOutboundMessageSchema: {
14217
14285
  provider: import("zod").ZodString;
14218
14286
  cwd: import("zod").ZodString;
14219
14287
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14288
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14220
14289
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14221
14290
  model: import("zod").ZodOptional<import("zod").ZodString>;
14222
14291
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14288,6 +14357,7 @@ export declare const WSOutboundMessageSchema: {
14288
14357
  provider: import("zod").ZodString;
14289
14358
  cwd: import("zod").ZodString;
14290
14359
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14360
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14291
14361
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14292
14362
  model: import("zod").ZodOptional<import("zod").ZodString>;
14293
14363
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14359,6 +14429,7 @@ export declare const WSOutboundMessageSchema: {
14359
14429
  provider: import("zod").ZodString;
14360
14430
  cwd: import("zod").ZodString;
14361
14431
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14432
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14362
14433
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14363
14434
  model: import("zod").ZodOptional<import("zod").ZodString>;
14364
14435
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14472,6 +14543,7 @@ export declare const WSOutboundMessageSchema: {
14472
14543
  provider: import("zod").ZodString;
14473
14544
  cwd: import("zod").ZodString;
14474
14545
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14546
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14475
14547
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14476
14548
  model: import("zod").ZodOptional<import("zod").ZodString>;
14477
14549
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14543,6 +14615,7 @@ export declare const WSOutboundMessageSchema: {
14543
14615
  provider: import("zod").ZodString;
14544
14616
  cwd: import("zod").ZodString;
14545
14617
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14618
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14546
14619
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14547
14620
  model: import("zod").ZodOptional<import("zod").ZodString>;
14548
14621
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14621,6 +14694,7 @@ export declare const WSOutboundMessageSchema: {
14621
14694
  provider: import("zod").ZodString;
14622
14695
  cwd: import("zod").ZodString;
14623
14696
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14697
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14624
14698
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14625
14699
  model: import("zod").ZodOptional<import("zod").ZodString>;
14626
14700
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -14710,6 +14784,7 @@ export declare const WSOutboundMessageSchema: {
14710
14784
  provider: import("zod").ZodString;
14711
14785
  cwd: import("zod").ZodString;
14712
14786
  personality: import("zod").ZodOptional<import("zod").ZodString>;
14787
+ agentProfile: import("zod").ZodOptional<import("zod").ZodString>;
14713
14788
  modeId: import("zod").ZodOptional<import("zod").ZodString>;
14714
14789
  model: import("zod").ZodOptional<import("zod").ZodString>;
14715
14790
  thinkingOptionId: import("zod").ZodOptional<import("zod").ZodString>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-code/protocol",
3
- "version": "0.8.14",
3
+ "version": "0.8.16",
4
4
  "description": "Otto shared protocol schemas and wire types",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "files": [