@otto-code/protocol 0.8.17 → 0.8.19

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,8 +1,8 @@
1
1
  import { z } from "zod";
2
- import { MutableAgentBehaviorsConfigSchema, MutableLspConfigSchema, MutableDotnetSolutionConfigSchema, MutableGitHostingConfigSchema, MutableKanbanConfigSchema, MutableAgentPersonalitiesConfigSchema, MutableAgentPersonalitiesConfigPatchSchema, MutableAgentTeamsConfigSchema, MutableAgentTeamsConfigPatchSchema, MutableBrainConfigSchema, MutableBrainConfigPatchSchema, MutableGitFetchConfigSchema, DEFAULT_MUTABLE_BRAIN_CONFIG, } from "./daemon-config.js";
2
+ import { MutableAgentBehaviorsConfigSchema, MutableLspConfigSchema, MutableDotnetSolutionConfigSchema, MutableGitHostingConfigSchema, MutableKanbanConfigSchema, MutableProjectKnowledgeConfigSchema, MutableAgentPersonalitiesConfigSchema, MutableAgentPersonalitiesConfigPatchSchema, MutableAgentTeamsConfigSchema, MutableAgentTeamsConfigPatchSchema, MutableBrainConfigSchema, MutableBrainConfigPatchSchema, MutableGitFetchConfigSchema, DEFAULT_MUTABLE_BRAIN_CONFIG, } from "./daemon-config.js";
3
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
- import { HostingPrAttachmentSchema, HostingIssueAttachmentSchema, HostingSearchRequestSchema, HostingAuthStatusRequestSchema, HostingListRepositoriesRequestSchema, HostingListOwnersRequestSchema, HostingListRepositoriesResponseSchema, HostingListOwnersResponseSchema, HostingAuthStatusResponseSchema, GitHostingCapabilitiesSchema, GitHostingProviderIdWireSchema, } from "./git-hosting.js";
5
+ import { HostingPrAttachmentSchema, HostingIssueAttachmentSchema, HostingSearchRequestSchema, HostingAuthStatusRequestSchema, HostingListRepositoriesRequestSchema, HostingListOwnersRequestSchema, HostingListRepositoriesResponseSchema, HostingListOwnersResponseSchema, HostingAuthStatusResponseSchema, HostingPullRequestThreadSetResolvedRequestSchema, HostingPullRequestThreadSetResolvedResponseSchema, HostingPullRequestCommentSetReactionRequestSchema, HostingPullRequestCommentSetReactionResponseSchema, 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";
7
7
  import { WorkspaceArchivePreflightRequestSchema, CheckoutBaseSourceSchema, WorktreeBaseRefSetRequestSchema, WorkspaceArchivePreflightResponseSchema, WorktreeBaseRefSetResponseSchema, } from "./worktree-ops.js";
8
8
  import { SuggestedTasksChangedSchema, TasksSuggestedStartRequestMessageSchema, TasksSuggestedStartResponseMessageSchema, TasksSuggestedDismissRequestMessageSchema, TasksSuggestedDismissResponseMessageSchema, } from "./suggested-tasks.js";
@@ -13,8 +13,7 @@ import { QueuedAgentMessagePayloadSchema, AgentQueueRemoveRequestMessageSchema,
13
13
  import { FileEolSchema, FileCreateRequestSchema, FileDeleteRequestSchema, FileRenameRequestSchema, FileWatchSubscribeRequestSchema, FileWatchUnsubscribeRequestSchema, FileSearchRequestSchema, FileReplaceRequestSchema, FileCreateResponseSchema, FileDeleteResponseSchema, FileRenameResponseSchema, FileWatchSubscribeResponseSchema, FileWatchUnsubscribeResponseSchema, FileSearchResultEventSchema, FileSearchResponseSchema, FileReplaceResponseSchema, FileWatchEventSchema, } from "./file-operations.js";
14
14
  import { FileRefineRequestSchema, FileRefineResponseSchema } from "./refine.js";
15
15
  import { MutableSpeechConfigSchema, SpeechSettingsGetOptionsRequestSchema, SpeechTtsPreviewRequestSchema, SpeechTtsSpeakRequestSchema, SpeechTtsSpeakCancelRequestSchema, SpeechSettingsGetOptionsResponseSchema, SpeechTtsPreviewResponseSchema, SpeechTtsSpeakResponseSchema, SpeechTtsSpeakCancelResponseSchema, } from "./speech.js";
16
- import { ProjectLinksListRequestSchema, ProjectLinksSetRequestSchema, ProjectLinksUnsetRequestSchema, ProjectLinksListResponseSchema, ProjectLinksSetResponseSchema, ProjectLinksUnsetResponseSchema, ProjectLinksChangedSchema, } from "./project-links.js";
17
- import { ProjectKnowledgeListRequestMessageSchema, ProjectKnowledgeListResponseMessageSchema, ProjectKnowledgeGetRequestMessageSchema, ProjectKnowledgeGetResponseMessageSchema, ProjectKnowledgeCreateRequestMessageSchema, ProjectKnowledgeCreateResponseMessageSchema, ProjectKnowledgeApplyRequestMessageSchema, ProjectKnowledgeApplyResponseMessageSchema, ProjectKnowledgeStatusRequestMessageSchema, ProjectKnowledgeStatusResponseMessageSchema, ProjectKnowledgeProjectApplyRequestMessageSchema, ProjectKnowledgeProjectApplyResponseMessageSchema, ProjectKnowledgeReferenceApplyRequestMessageSchema, ProjectKnowledgeReferenceApplyResponseMessageSchema, ProjectKnowledgeRootApplyRequestMessageSchema, ProjectKnowledgeRootApplyResponseMessageSchema, ProjectKnowledgeDeleteRequestMessageSchema, ProjectKnowledgeDeleteResponseMessageSchema, } from "./project-knowledge.js";
16
+ import { ProjectKnowledgeListRequestMessageSchema, ProjectKnowledgeListResponseMessageSchema, ProjectKnowledgeGetRequestMessageSchema, ProjectKnowledgeGetResponseMessageSchema, ProjectKnowledgeCreateRequestMessageSchema, ProjectKnowledgeCreateResponseMessageSchema, ProjectKnowledgeApplyRequestMessageSchema, ProjectKnowledgeApplyResponseMessageSchema, ProjectKnowledgeStatusRequestMessageSchema, ProjectKnowledgeStatusResponseMessageSchema, ProjectKnowledgeProjectApplyRequestMessageSchema, ProjectKnowledgeProjectApplyResponseMessageSchema, ProjectKnowledgeReferenceApplyRequestMessageSchema, ProjectKnowledgeReferenceApplyResponseMessageSchema, ProjectKnowledgeRootApplyRequestMessageSchema, ProjectKnowledgeRootApplyResponseMessageSchema, ProjectKnowledgeRefineApplyRequestMessageSchema, ProjectKnowledgeRefineApplyResponseMessageSchema, ProjectKnowledgeRefinementProposeRequestMessageSchema, ProjectKnowledgeRefinementProposeResponseMessageSchema, ProjectKnowledgeDeleteRequestMessageSchema, ProjectKnowledgeStoreLocationValueSchema, ProjectKnowledgeStoreGetRequestMessageSchema, ProjectKnowledgeStoreGetResponseMessageSchema, ProjectKnowledgeStoreSetRequestMessageSchema, ProjectKnowledgeStoreSetResponseMessageSchema, ProjectKnowledgeDeleteResponseMessageSchema, } from "./project-knowledge.js";
18
17
  import { CheckoutGitGetOperationLogRequestSchema, CheckoutGitGetOperationLogResponseSchema, CheckoutGitLogAppendedNotificationSchema, CheckoutGitCommitRequestSchema, CheckoutGitCommitAgentRequestSchema, CheckoutGitRollbackRequestSchema, CheckoutGitCommitResponseSchema, CheckoutGitCommitAgentResponseSchema, CheckoutGitRollbackResponseSchema, GitFileHistoryEntrySchema, GitBlameLineSchema, GitBlameCommitSchema, } from "./git-operations.js";
19
18
  import { LspServersListRequestSchema, LspServerStopRequestSchema, LspActivityChangedStatusPayloadSchema, LspDiagnosticsChangedStatusPayloadSchema, LspServersListResponseSchema, LspServerStopResponseSchema, CodeListFilesRequestSchema, CodeSymbolsRequestSchema, CodeOutlineRequestSchema, CodeDefinitionRequestSchema, CodeDocumentSyncRequestSchema, CodeDocumentCloseRequestSchema, CodeHoverRequestSchema, CodeReferencesRequestSchema, CodeRenamePreviewRequestSchema, CodeRenameApplyRequestSchema, CodeRenameUndoRequestSchema, CodeSolutionListRequestSchema, CodeSolutionGetTreeRequestSchema, CodeSolutionLoadProjectRequestSchema, CodeListFilesResponseSchema, CodeSymbolsResponseSchema, CodeDefinitionResponseSchema, CodeDocumentSyncResponseSchema, CodeDocumentCloseResponseSchema, CodeHoverResponseSchema, CodeReferencesResponseSchema, CodeRenamePreviewResponseSchema, CodeRenameUndoResponseSchema, CodeRenameApplyResponseSchema, CodeSolutionListResponseSchema, CodeSolutionGetTreeResponseSchema, CodeSolutionLoadProjectResponseSchema, CodeOutlineResponseSchema, } from "./code-intelligence.js";
20
19
  import { CommunicationsGetOverviewRequestSchema, CommunicationsGetOverviewResponseSchema, CommunicationsInboxGetHomeRequestSchema, CommunicationsInboxGetHomeResponseSchema, CommunicationsInboxSearchRequestSchema, CommunicationsInboxSearchResponseSchema, CommunicationsInboxSetFavoriteRequestSchema, CommunicationsInboxSetFavoriteResponseSchema, CommunicationsInboxNotificationsAcknowledgeRequestSchema, CommunicationsInboxNotificationsAcknowledgeResponseSchema, CommunicationsInboxGetPresenceRequestSchema, CommunicationsInboxGetPresenceResponseSchema, CommunicationsInboxPresenceChangedNotificationSchema, CommunicationsInboxSetPresenceRequestSchema, CommunicationsInboxSetPresenceResponseSchema, CommunicationsInboxSetEnabledRequestSchema, CommunicationsInboxSetEnabledResponseSchema, CommunicationsInboxGetMessagesRequestSchema, CommunicationsInboxGetMessagesResponseSchema, CommunicationsInboxSendMessageRequestSchema, CommunicationsInboxSendMessageResponseSchema, CommunicationsRoomGetRequestSchema, CommunicationsRoomGetResponseSchema, CommunicationsRoomThreadGetRequestSchema, CommunicationsRoomThreadGetResponseSchema, CommunicationsRoomMessageSendRequestSchema, CommunicationsRoomMessageSendResponseSchema, CommunicationsRoomReactionSetRequestSchema, CommunicationsRoomReactionSetResponseSchema, } from "./communications.js";
@@ -30,7 +29,7 @@ import { CLIENT_CAPS } from "./client-capabilities.js";
30
29
  import { AGENT_LIFECYCLE_STATUSES } from "./agent-lifecycle.js";
31
30
  import { MAX_EXPLICIT_AGENT_TITLE_CHARS } from "./agent-title-limits.js";
32
31
  import { AgentProviderSchema } from "./provider-manifest.js";
33
- import { ConnectorConfigSchema, McpServerConfigSchema, OTTO_TOOL_GROUPS, STALL_GUARD_DEFAULT_THRESHOLD, } from "./provider-config.js";
32
+ import { ConnectorConfigSchema, McpServerConfigSchema, STALL_GUARD_DEFAULT_THRESHOLD, } from "./provider-config.js";
34
33
  import { TOOL_CALL_ICON_NAMES } from "./agent-types.js";
35
34
  import { ChatCreateRequestSchema, ChatListRequestSchema, ChatInspectRequestSchema, ChatDeleteRequestSchema, ChatPostRequestSchema, ChatReadRequestSchema, ChatWaitRequestSchema, ChatCreateResponseSchema, ChatListResponseSchema, ChatInspectResponseSchema, ChatDeleteResponseSchema, ChatPostResponseSchema, ChatReadResponseSchema, ChatWaitResponseSchema, } from "./chat/rpc-schemas.js";
36
35
  import { ScheduleCreateRequestSchema, ScheduleListRequestSchema, ScheduleInspectRequestSchema, ScheduleLogsRequestSchema, SchedulePauseRequestSchema, ScheduleResumeRequestSchema, ScheduleDeleteRequestSchema, ScheduleRunOnceRequestSchema, ScheduleUpdateRequestSchema, ScheduleCreateResponseSchema, ScheduleListResponseSchema, ScheduleInspectResponseSchema, ScheduleLogsResponseSchema, SchedulePauseResponseSchema, ScheduleResumeResponseSchema, ScheduleDeleteResponseSchema, ScheduleRunOnceResponseSchema, ScheduleUpdateResponseSchema, } from "./schedule/rpc-schemas.js";
@@ -55,7 +54,12 @@ const MutableDaemonProviderConfigSchema = z
55
54
  .object({
56
55
  enabled: z.boolean().optional(),
57
56
  additionalModels: z.array(MutableDaemonProviderModelSchema).optional(),
58
- ottoToolGroups: z.array(z.enum(OTTO_TOOL_GROUPS)).optional(),
57
+ // COMPAT(ottoToolGroupsV2): added in v0.8.20. Legacy projection plus the
58
+ // authoritative v2 key; both are string[] rather than an enum so an older
59
+ // peer drops unknown group names instead of failing the whole config
60
+ // message. Read through resolveStoredOttoToolGroups.
61
+ ottoToolGroups: z.array(z.string().min(1)).optional(),
62
+ ottoToolGroupsV2: z.array(z.string().min(1)).optional(),
59
63
  })
60
64
  .passthrough();
61
65
  const MutableStructuredGenerationProviderSchema = z
@@ -151,6 +155,15 @@ export const ModelTierOverrideSchema = z
151
155
  tier: ModelTierSchema,
152
156
  })
153
157
  .passthrough();
158
+ // A host-owned model-picker visibility choice. Stored as an array so a patch
159
+ // replaces it wholesale and removing the final hidden-model entry sticks.
160
+ export const ModelVisibilityOverrideSchema = z
161
+ .object({
162
+ provider: z.string().min(1),
163
+ modelId: z.string().min(1),
164
+ visible: z.boolean(),
165
+ })
166
+ .passthrough();
154
167
  // A remembered provider endpoint: a base URL together with the credential it
155
168
  // was saved with, so pointing a provider back at a previous endpoint is one
156
169
  // pick instead of re-typing the key. Entries are scoped by the connection
@@ -185,7 +198,14 @@ export const MutableDaemonConfigSchema = z
185
198
  // undefined = all groups enabled (mirrors openai-compat's per-provider
186
199
  // ottoToolGroups semantics). An empty array = no Otto tools. Read by the
187
200
  // MCP catalog gating (WP-A).
188
- toolGroups: z.array(z.enum(OTTO_TOOL_GROUPS)).optional(),
201
+ //
202
+ // COMPAT(ottoToolGroupsV2): added in v0.8.20. `toolGroups` is the legacy
203
+ // projection kept for older peers, `toolGroupsV2` is authoritative, and
204
+ // both are string[] rather than an enum so an older peer drops group
205
+ // names it does not know instead of failing the whole config message.
206
+ // Read through resolveStoredOttoToolGroups, never directly.
207
+ toolGroups: z.array(z.string().min(1)).optional(),
208
+ toolGroupsV2: z.array(z.string().min(1)).optional(),
189
209
  })
190
210
  .passthrough(),
191
211
  // Defaults off, matching the daemon's own resolution - browser tools are an
@@ -252,6 +272,9 @@ export const MutableDaemonConfigSchema = z
252
272
  // Gated by the modelTierOverrides feature; defaults empty so a new client
253
273
  // parsing an old daemon's config still sees a well-formed array.
254
274
  modelTierOverrides: z.array(ModelTierOverrideSchema).default([]),
275
+ // Per-host model-picker visibility. Gated by modelVisibilityOverrides;
276
+ // absent on an old host means every selectable model remains visible.
277
+ modelVisibilityOverrides: z.array(ModelVisibilityOverrideSchema).default([]),
255
278
  // Per-host remembered provider endpoints (base URL + credential), pooled by
256
279
  // env-var family. Gated by the savedProviderEndpoints feature; defaults
257
280
  // empty so a new client parsing an old daemon's config still sees a
@@ -287,6 +310,11 @@ export const MutableDaemonConfigSchema = z
287
310
  // Kanban board surface credentials (provider tokens). Gated by
288
311
  // server_info features.kanbanBoard; absent on older daemons.
289
312
  kanban: MutableKanbanConfigSchema.optional(),
313
+ // Host-wide default for where a project's Knowledge store lives. Gated by
314
+ // server_info features.projectKnowledgeStoreLocation. Optional rather than
315
+ // defaulted, matching `kanban`: absent reads as the historical repository
316
+ // location, which is exactly what an old daemon does.
317
+ projectKnowledge: MutableProjectKnowledgeConfigSchema.optional(),
290
318
  agentProfiles: z.array(AgentProfileSchema).optional(),
291
319
  })
292
320
  .passthrough();
@@ -326,6 +354,9 @@ export const MutableDaemonConfigPatchSchema = z
326
354
  speech: MutableSpeechConfigSchema.optional(),
327
355
  // Gated by server_info features.gitHostingProviders; patches deep-merge.
328
356
  gitHosting: MutableGitHostingConfigSchema.optional(),
357
+ // Gated by server_info features.projectKnowledgeStoreLocation; patches
358
+ // deep-merge.
359
+ projectKnowledge: MutableProjectKnowledgeConfigSchema.partial().optional(),
329
360
  // Gated by server_info features.agentPersonalities. A patch replaces the
330
361
  // full roster (read-modify-write the array), matching how terminalProfiles
331
362
  // and metadataGeneration.providers patch.
@@ -337,6 +368,9 @@ export const MutableDaemonConfigPatchSchema = z
337
368
  // Gated by server_info features.modelTierOverrides. Replaces the full array
338
369
  // (read-modify-write), so removing an entry clears that model's tag.
339
370
  modelTierOverrides: z.array(ModelTierOverrideSchema).optional(),
371
+ // Gated by server_info features.modelVisibilityOverrides. Replaces the
372
+ // full array so checking the last hidden model clears the stored policy.
373
+ modelVisibilityOverrides: z.array(ModelVisibilityOverrideSchema).optional(),
340
374
  // Gated by server_info features.savedProviderEndpoints. Replaces the full
341
375
  // array (read-modify-write), so forgetting an endpoint drops it from disk.
342
376
  savedProviderEndpoints: z.array(SavedProviderEndpointSchema).optional(),
@@ -440,6 +474,9 @@ const AgentModelDefinitionSchema = z.object({
440
474
  // Daemon-stamped capability tier (deep/standard/fast). Optional: absent on old
441
475
  // daemons and on models neither classified nor user-tagged.
442
476
  tier: ModelTierSchema.optional(),
477
+ // Host-owned model-picker visibility. Optional for backward compatibility;
478
+ // absent means visible.
479
+ isVisible: z.boolean().optional(),
443
480
  // False when the model can't run the provider's "auto" permission mode.
444
481
  // Optional: absent on old daemons and when supported/unknown.
445
482
  supportsAutoMode: z.boolean().optional(),
@@ -786,6 +823,7 @@ export const AgentTimelineItemPayloadSchema = z.union([
786
823
  z.object({
787
824
  type: z.literal("error"),
788
825
  message: z.string(),
826
+ details: z.array(z.string()).optional(),
789
827
  }),
790
828
  z.object({
791
829
  type: z.literal("compaction"),
@@ -3268,9 +3306,6 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
3268
3306
  KanbanProjectTargetSetRequestSchema,
3269
3307
  ProjectIconSetRequestSchema,
3270
3308
  ProjectRemoveRequestSchema,
3271
- ProjectLinksListRequestSchema,
3272
- ProjectLinksSetRequestSchema,
3273
- ProjectLinksUnsetRequestSchema,
3274
3309
  WorkspaceTitleSetRequestSchema,
3275
3310
  WorkspacePinSetRequestSchema,
3276
3311
  WorkspaceRecoveryInspectRequestSchema,
@@ -3349,7 +3384,11 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
3349
3384
  ProjectKnowledgeProjectApplyRequestMessageSchema,
3350
3385
  ProjectKnowledgeReferenceApplyRequestMessageSchema,
3351
3386
  ProjectKnowledgeRootApplyRequestMessageSchema,
3387
+ ProjectKnowledgeRefineApplyRequestMessageSchema,
3388
+ ProjectKnowledgeRefinementProposeRequestMessageSchema,
3352
3389
  ProjectKnowledgeDeleteRequestMessageSchema,
3390
+ ProjectKnowledgeStoreGetRequestMessageSchema,
3391
+ ProjectKnowledgeStoreSetRequestMessageSchema,
3353
3392
  ContextEdgeConvertRequestMessageSchema,
3354
3393
  ContextFindingsFixRequestMessageSchema,
3355
3394
  PersonalityMemoryListRequestMessageSchema,
@@ -3440,6 +3479,8 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
3440
3479
  PreviewStopRequestSchema,
3441
3480
  CheckoutPrStatusRequestSchema,
3442
3481
  PullRequestTimelineRequestSchema,
3482
+ HostingPullRequestThreadSetResolvedRequestSchema,
3483
+ HostingPullRequestCommentSetReactionRequestSchema,
3443
3484
  CheckoutSwitchBranchRequestSchema,
3444
3485
  CheckoutRenameBranchRequestSchema,
3445
3486
  StashSaveRequestSchema,
@@ -3732,6 +3773,9 @@ export const ServerInfoStatusPayloadSchema = z
3732
3773
  githubCheckDetails: z.boolean().optional(),
3733
3774
  // COMPAT(forgeCheckDetails): added in v0.1.106, remove githubCheckDetails fallback after 2026-12-28.
3734
3775
  forgeCheckDetails: z.boolean().optional(),
3776
+ // COMPAT(forgeReviewThreads): added in v0.8.15, remove gate after 2027-02-27.
3777
+ // The daemon accepts the provider-neutral discussion mutations.
3778
+ forgeReviewThreads: z.boolean().optional(),
3735
3779
  // COMPAT(forgeSearch): added in v0.1.106, remove github_search fallback after 2026-12-28.
3736
3780
  forgeSearch: z.boolean().optional(),
3737
3781
  // COMPAT(daemonStatusRpc): added in v0.1.76, remove gate after 2026-11-18.
@@ -3926,6 +3970,24 @@ export const ServerInfoStatusPayloadSchema = z
3926
3970
  personalityMemory: z.boolean().optional(),
3927
3971
  // COMPAT(projectKnowledge): added in v0.8.5, drop the gate when daemon floor >= v0.8.5.
3928
3972
  projectKnowledge: z.boolean().optional(),
3973
+ // COMPAT(projectKnowledgeRefinement): added in v0.8.19, drop the gate
3974
+ // when floor >= v0.8.19.
3975
+ projectKnowledgeRefinement: z.boolean().optional(),
3976
+ // COMPAT(projectKnowledgeReviewedRefinement): added in v0.8.20, remove
3977
+ // the gate after 2027-02-26. The dedicated reviewed-Knowledge proposal
3978
+ // RPC is not supported by hosts that only expose the original apply RPC.
3979
+ projectKnowledgeReviewedRefinement: z.boolean().optional(),
3980
+ // COMPAT(projectKnowledgeAnchoredRefinement): added in v0.8.21, remove
3981
+ // the gate after 2027-02-27.
3982
+ projectKnowledgeAnchoredRefinement: z.boolean().optional(),
3983
+ // COMPAT(projectKnowledgeTagEditing): added in v0.8.21, remove the
3984
+ // gate after 2027-02-27.
3985
+ projectKnowledgeTagEditing: z.boolean().optional(),
3986
+ // COMPAT(projectKnowledgeStoreLocation): added in v0.8.18, drop the gate
3987
+ // when daemon floor >= v0.8.18. A project's Knowledge store can live
3988
+ // host-local instead of in the repository: the project.knowledge.store.*
3989
+ // RPCs, the per-project override, and the host default setting.
3990
+ projectKnowledgeStoreLocation: z.boolean().optional(),
3929
3991
  // Script discovery - the daemon scans a workspace for the Scripts its
3930
3992
  // project files already declare (package.json scripts, and later
3931
3993
  // Makefile targets, .NET launch profiles) and serves them from
@@ -4034,6 +4096,8 @@ export const ServerInfoStatusPayloadSchema = z
4034
4096
  agentTeams: z.boolean().optional(),
4035
4097
  // COMPAT(modelTierOverrides): added in v0.5.2, drop the gate when daemon floor >= v0.5.2.
4036
4098
  modelTierOverrides: z.boolean().optional(),
4099
+ // COMPAT(modelVisibilityOverrides): added in v0.8.18, drop the gate when daemon floor >= v0.8.18.
4100
+ modelVisibilityOverrides: z.boolean().optional(),
4037
4101
  // COMPAT(savedProviderEndpoints): added in v0.6.5, drop the gate when daemon floor >= v0.6.5.
4038
4102
  savedProviderEndpoints: z.boolean().optional(),
4039
4103
  // COMPAT(agentOrchestration): added in v0.5.3, drop the gate when daemon floor >= v0.5.3.
@@ -4050,13 +4114,11 @@ export const ServerInfoStatusPayloadSchema = z
4050
4114
  runsDraftEdit: z.boolean().optional(),
4051
4115
  // COMPAT(orchestrationGraphs): added in v0.6.7, drop the gate when daemon floor >= v0.6.7.
4052
4116
  orchestrationGraphs: z.boolean().optional(),
4053
- // COMPAT(projectLinks): added in v0.5.6, drop the gate when daemon floor >= v0.5.6.
4054
- projectLinks: z.boolean().optional(),
4055
4117
  // COMPAT(fileOutsideWorkspace): added in v0.5.8, drop the gate when daemon floor >= v0.5.8.
4056
4118
  // Set when the daemon will serve single-file read/write/watch for paths
4057
4119
  // outside every known workspace (bounded only by OS filesystem
4058
- // permissions). The client gates this behind an "edit anyway" warning;
4059
- // an old daemon leaves the flag unset and out-of-project files are not offered.
4120
+ // permissions). An old daemon leaves the flag unset, so the client does
4121
+ // not route external files through this access path.
4060
4122
  fileOutsideWorkspace: z.boolean().optional(),
4061
4123
  // COMPAT(promptSuggestions): added in v0.6.3, drop the gate when daemon floor >= v0.6.3.
4062
4124
  // Set when the daemon emits agent_stream `prompt_suggestion` events (native
@@ -4744,6 +4806,13 @@ export const WorkspaceProjectDescriptorPayloadSchema = z.object({
4744
4806
  // COMPAT(projectKanbanTarget): added in v0.8.11, drop the optional gate when
4745
4807
  // floor >= v0.8.11.
4746
4808
  projectKanban: ProjectKanbanTargetSchema.nullable().optional(),
4809
+ // The project's Knowledge store override. Rides the project channel for the
4810
+ // same reason the Kanban target does: Project Settings must show it for a
4811
+ // project with no active workspaces, where no session-scoped RPC applies.
4812
+ // Null means "inherit the host default".
4813
+ // COMPAT(projectKnowledgeStoreLocation): added in v0.8.18, drop the optional
4814
+ // gate when floor >= v0.8.18.
4815
+ projectKnowledgeLocation: ProjectKnowledgeStoreLocationValueSchema.nullable().optional(),
4747
4816
  // COMPAT(projectCustomIcon): added in v0.2.0, remove after 2027-01-20.
4748
4817
  projectCustomIconRevision: z.string().nullable().optional(),
4749
4818
  projectRootPath: z.string(),
@@ -6113,6 +6182,24 @@ const PullRequestTimelineCommentItemSchema = z.object({
6113
6182
  body: z.string().optional().default(""),
6114
6183
  createdAt: z.number().optional().default(0),
6115
6184
  url: z.string().optional().default(""),
6185
+ // Provider-neutral aggregate reaction state. Absent on forges that do not
6186
+ // expose comment reactions and on daemons that predate discussion support.
6187
+ reactions: z
6188
+ .array(z.object({
6189
+ content: z.enum([
6190
+ "THUMBS_UP",
6191
+ "THUMBS_DOWN",
6192
+ "LAUGH",
6193
+ "HOORAY",
6194
+ "CONFUSED",
6195
+ "HEART",
6196
+ "ROCKET",
6197
+ "EYES",
6198
+ ]),
6199
+ count: z.number().int().nonnegative(),
6200
+ viewerHasReacted: z.boolean(),
6201
+ }))
6202
+ .optional(),
6116
6203
  // GitHub review id this inline comment belongs to; lets clients nest review
6117
6204
  // threads under their parent review. Absent on issue comments and on
6118
6205
  // timelines from daemons that predate the field.
@@ -6158,6 +6245,7 @@ export const PullRequestTimelineResponseSchema = z.object({
6158
6245
  cwd: z.string().optional().default(""),
6159
6246
  prNumber: z.number().nullable().optional().default(null),
6160
6247
  items: z.array(PullRequestTimelineItemSchema).optional().default([]),
6248
+ commentReactionsSupported: z.boolean().optional(),
6161
6249
  truncated: z.boolean().optional().default(false),
6162
6250
  error: PullRequestTimelineErrorSchema.nullable().optional().default(null),
6163
6251
  requestId: z.string().optional().default(""),
@@ -7046,10 +7134,6 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
7046
7134
  ProjectUpdatedNotificationSchema,
7047
7135
  ProjectIconSetResponseSchema,
7048
7136
  ProjectRemoveResponseSchema,
7049
- ProjectLinksListResponseSchema,
7050
- ProjectLinksSetResponseSchema,
7051
- ProjectLinksUnsetResponseSchema,
7052
- ProjectLinksChangedSchema,
7053
7137
  WorkspaceTitleSetResponseSchema,
7054
7138
  WorkspacePinSetResponseSchema,
7055
7139
  WorkspaceRecoveryInspectResponseSchema,
@@ -7150,6 +7234,8 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
7150
7234
  PreviewStopResponseSchema,
7151
7235
  CheckoutPrStatusResponseSchema,
7152
7236
  PullRequestTimelineResponseSchema,
7237
+ HostingPullRequestThreadSetResolvedResponseSchema,
7238
+ HostingPullRequestCommentSetReactionResponseSchema,
7153
7239
  CheckoutSwitchBranchResponseSchema,
7154
7240
  CheckoutRenameBranchResponseSchema,
7155
7241
  StashSaveResponseSchema,
@@ -7233,7 +7319,11 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
7233
7319
  ProjectKnowledgeProjectApplyResponseMessageSchema,
7234
7320
  ProjectKnowledgeReferenceApplyResponseMessageSchema,
7235
7321
  ProjectKnowledgeRootApplyResponseMessageSchema,
7322
+ ProjectKnowledgeRefineApplyResponseMessageSchema,
7323
+ ProjectKnowledgeRefinementProposeResponseMessageSchema,
7236
7324
  ProjectKnowledgeDeleteResponseMessageSchema,
7325
+ ProjectKnowledgeStoreGetResponseMessageSchema,
7326
+ ProjectKnowledgeStoreSetResponseMessageSchema,
7237
7327
  ContextEdgeConvertResponseMessageSchema,
7238
7328
  ContextFindingsFixResponseMessageSchema,
7239
7329
  PersonalityMemoryListResponseMessageSchema,
@@ -7395,7 +7485,6 @@ export * from "./context.js";
7395
7485
  export * from "./code-intelligence.js";
7396
7486
  export * from "./git-operations.js";
7397
7487
  export * from "./project-knowledge.js";
7398
- export * from "./project-links.js";
7399
7488
  export * from "./speech.js";
7400
7489
  export * from "./refine.js";
7401
7490
  export * from "./file-operations.js";
@@ -7405,5 +7494,5 @@ export * from "./storage.js";
7405
7494
  export * from "./suggested-tasks.js";
7406
7495
  export * from "./worktree-ops.js";
7407
7496
  export * from "./terminal-compatibility.js";
7408
- export { MutableAgentBehaviorsConfigSchema, MutableLspConfigSchema, MutableDotnetSolutionConfigSchema, MutableGitHostingBitbucketCloudConfigSchema, MutableGitHostingAtlassianConfigSchema, MutableGitHostingProvidersConfigSchema, MutableGitHostingConfigSchema, MutableKanbanConfigSchema, MutableAgentPersonalitiesConfigSchema, MutableAgentPersonalitiesConfigPatchSchema, MutableAgentTeamsConfigSchema, MutableAgentTeamsConfigPatchSchema, MutableBrainTlsConfigSchema, MutableBrainRemoteConfigSchema, MutableBrainConfigSchema, MutableBrainTlsPatchSchema, MutableBrainRemotePatchSchema, MutableBrainListenPatchSchema, MutableBrainConfigPatchSchema, MutableGitFetchConfigSchema, DEFAULT_MUTABLE_BRAIN_CONFIG, DEFAULT_MUTABLE_GIT_FETCH_CONFIG, GIT_FETCH_INTERVAL_SECONDS, } from "./daemon-config.js";
7497
+ export { MutableAgentBehaviorsConfigSchema, MutableLspConfigSchema, MutableDotnetSolutionConfigSchema, MutableGitHostingBitbucketCloudConfigSchema, MutableGitHostingAtlassianConfigSchema, MutableGitHostingProvidersConfigSchema, MutableGitHostingConfigSchema, MutableKanbanConfigSchema, ProjectKnowledgeStoreLocationSchema, MutableProjectKnowledgeConfigSchema, MutableAgentPersonalitiesConfigSchema, MutableAgentPersonalitiesConfigPatchSchema, MutableAgentTeamsConfigSchema, MutableAgentTeamsConfigPatchSchema, MutableBrainTlsConfigSchema, MutableBrainRemoteConfigSchema, MutableBrainConfigSchema, MutableBrainTlsPatchSchema, MutableBrainRemotePatchSchema, MutableBrainListenPatchSchema, MutableBrainConfigPatchSchema, MutableGitFetchConfigSchema, DEFAULT_MUTABLE_BRAIN_CONFIG, DEFAULT_MUTABLE_GIT_FETCH_CONFIG, GIT_FETCH_INTERVAL_SECONDS, } from "./daemon-config.js";
7409
7498
  //# sourceMappingURL=messages.js.map