@otto-code/protocol 0.8.5 → 0.8.7
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/generated/validation/ws-outbound.aot.js +46798 -44824
- package/dist/messages.d.ts +2944 -75
- package/dist/messages.js +313 -6
- package/dist/validation/ws-outbound-schema-metadata.d.ts +533 -18
- package/package.json +1 -1
package/dist/messages.js
CHANGED
|
@@ -608,6 +608,15 @@ export const MutableDaemonConfigSchema = z
|
|
|
608
608
|
attachmentImageMaxAgeDays: z.number().int().min(0).default(30),
|
|
609
609
|
attachmentImageMaxTotalMb: z.number().int().min(0).default(512),
|
|
610
610
|
enableTerminalAgentHooks: z.boolean().default(false),
|
|
611
|
+
// Gated by server_info.features.terminalTitleSettings. The daemon owns
|
|
612
|
+
// title policy because terminals can be created from any connected client.
|
|
613
|
+
terminalTitleMode: z.enum(["auto", "default"]).optional(),
|
|
614
|
+
terminalTitleIncludePaths: z.boolean().optional(),
|
|
615
|
+
// Windows-only preference for ordinary interactive terminals. Absent keeps
|
|
616
|
+
// the operating system's normal default shell on every platform.
|
|
617
|
+
defaultTerminalShell: z
|
|
618
|
+
.enum(["command-prompt", "windows-powershell", "powershell-7"])
|
|
619
|
+
.optional(),
|
|
611
620
|
appendSystemPrompt: z.string().default(""),
|
|
612
621
|
terminalProfiles: z.array(TerminalProfileSchema).optional(),
|
|
613
622
|
// Absent on daemons without the speechSettings feature.
|
|
@@ -681,6 +690,11 @@ export const MutableDaemonConfigPatchSchema = z
|
|
|
681
690
|
attachmentImageMaxAgeDays: z.number().int().min(0).optional(),
|
|
682
691
|
attachmentImageMaxTotalMb: z.number().int().min(0).optional(),
|
|
683
692
|
enableTerminalAgentHooks: z.boolean().optional(),
|
|
693
|
+
terminalTitleMode: z.enum(["auto", "default"]).optional(),
|
|
694
|
+
terminalTitleIncludePaths: z.boolean().optional(),
|
|
695
|
+
defaultTerminalShell: z
|
|
696
|
+
.enum(["command-prompt", "windows-powershell", "powershell-7"])
|
|
697
|
+
.optional(),
|
|
684
698
|
appendSystemPrompt: z.string().optional(),
|
|
685
699
|
terminalProfiles: z.array(TerminalProfileSchema).optional(),
|
|
686
700
|
// Gated by server_info features.speechSettings; every field is optional so
|
|
@@ -1323,6 +1337,9 @@ export const AgentSnapshotPayloadSchema = z.object({
|
|
|
1323
1337
|
attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
|
|
1324
1338
|
attentionTimestamp: z.string().nullable().optional(),
|
|
1325
1339
|
archivedAt: z.string().nullable().optional(),
|
|
1340
|
+
// Bytes in Otto's record captured at archive time. This is a projection,
|
|
1341
|
+
// never a transcript rescan during rendering.
|
|
1342
|
+
archiveBytes: z.number().int().nonnegative().optional(),
|
|
1326
1343
|
providerUnavailable: z.boolean().optional(),
|
|
1327
1344
|
// Attendability. "observed" marks a provider-managed subagent (Claude Task /
|
|
1328
1345
|
// ultracode fan-out) that the user can watch but not prompt or reconfigure -
|
|
@@ -1430,12 +1447,8 @@ export const CloseItemsRequestMessageSchema = z.object({
|
|
|
1430
1447
|
// to be server-side because the history list is cursor-paginated across hosts,
|
|
1431
1448
|
// so the client never holds the whole archived set.
|
|
1432
1449
|
//
|
|
1433
|
-
// Deleting a chat removes
|
|
1434
|
-
//
|
|
1435
|
-
// OpenCode sessions) is deliberately left in place: Otto never created it,
|
|
1436
|
-
// another tool still reads it, and silently deleting another tool's state is not
|
|
1437
|
-
// ours to do. There is intentionally **no** opt-in flag for provider data on the
|
|
1438
|
-
// wire - the UI discloses what stays behind instead. See docs/chat-lifecycle.md.
|
|
1450
|
+
// Deleting a chat removes Otto's record only. Provider-owned session data is
|
|
1451
|
+
// deliberately left in place. See docs/chat-lifecycle.md.
|
|
1439
1452
|
// Gated by server_info.features.historyDelete.
|
|
1440
1453
|
export const HistoryAgentsClearArchivedRequestSchema = z.object({
|
|
1441
1454
|
type: z.literal("history.agents.clear_archived.request"),
|
|
@@ -1461,6 +1474,21 @@ export const HistoryAgentsClearArchivedResponseSchema = z.object({
|
|
|
1461
1474
|
dryRun: z.boolean(),
|
|
1462
1475
|
error: z.string().nullable(),
|
|
1463
1476
|
requestId: z.string(),
|
|
1477
|
+
ottoBytes: z.number().int().nonnegative().optional(),
|
|
1478
|
+
reclaimedBytes: z.number().int().nonnegative().optional(),
|
|
1479
|
+
}),
|
|
1480
|
+
});
|
|
1481
|
+
export const HistoryAgentsStorageStatsRequestSchema = z.object({
|
|
1482
|
+
type: z.literal("history.agents.get_storage_stats.request"),
|
|
1483
|
+
requestId: z.string(),
|
|
1484
|
+
});
|
|
1485
|
+
export const HistoryAgentsStorageStatsResponseSchema = z.object({
|
|
1486
|
+
type: z.literal("history.agents.get_storage_stats.response"),
|
|
1487
|
+
payload: z.object({
|
|
1488
|
+
archivedCount: z.number().int().nonnegative(),
|
|
1489
|
+
totalBytes: z.number().nonnegative(),
|
|
1490
|
+
error: z.string().nullable(),
|
|
1491
|
+
requestId: z.string(),
|
|
1464
1492
|
}),
|
|
1465
1493
|
});
|
|
1466
1494
|
export const UpdateAgentRequestMessageSchema = z.object({
|
|
@@ -1561,6 +1589,10 @@ export const BrainCapabilitiesSchema = z
|
|
|
1561
1589
|
liveInference: z.boolean().default(false),
|
|
1562
1590
|
/** Whether writes are permitted right now (the brain's allowRemoteConfig). */
|
|
1563
1591
|
writable: z.boolean().default(false),
|
|
1592
|
+
/** The remote brain owns benchmark jobs and can list/cancel them. */
|
|
1593
|
+
jobs: z.boolean().default(false),
|
|
1594
|
+
/** The brain can ask its owning daemon to restart it. */
|
|
1595
|
+
restart: z.boolean().default(false),
|
|
1564
1596
|
})
|
|
1565
1597
|
.passthrough();
|
|
1566
1598
|
// The brain's host status, as the daemon derives it: liveness plus the fields
|
|
@@ -2707,6 +2739,11 @@ export const ProjectListRequestMessageSchema = z.object({
|
|
|
2707
2739
|
type: z.literal("project.list.request"),
|
|
2708
2740
|
requestId: z.string(),
|
|
2709
2741
|
});
|
|
2742
|
+
export const ProjectResolveWorkspaceForPathRequestSchema = z.object({
|
|
2743
|
+
type: z.literal("project.resolveWorkspaceForPath.request"),
|
|
2744
|
+
requestId: z.string(),
|
|
2745
|
+
path: z.string(),
|
|
2746
|
+
});
|
|
2710
2747
|
export const FetchAgentHistoryRequestMessageSchema = z.object({
|
|
2711
2748
|
type: z.literal("fetch_agent_history_request"),
|
|
2712
2749
|
requestId: z.string(),
|
|
@@ -3706,6 +3743,9 @@ export const ContextReportSchema = z.object({
|
|
|
3706
3743
|
// is a z.enum travelling daemon->client, so a new member would make a new
|
|
3707
3744
|
// daemon's report unparseable by an older client.
|
|
3708
3745
|
personalityMemoryTokens: z.number().optional(),
|
|
3746
|
+
// COMPAT(projectKnowledge): additive; repo-owned knowledge is folded into
|
|
3747
|
+
// otto_injected, while this field keeps its recurring cost inspectable.
|
|
3748
|
+
projectKnowledgeTokens: z.number().optional(),
|
|
3709
3749
|
});
|
|
3710
3750
|
// Pushed with the full current report whenever a watched context file changes.
|
|
3711
3751
|
// Full-report reconciliation, same idiom as suggested_tasks_changed.
|
|
@@ -3773,6 +3813,226 @@ export const ContextPromptPreviewGetResponseMessageSchema = z.object({
|
|
|
3773
3813
|
preview: ContextPromptPreviewSchema.nullable(),
|
|
3774
3814
|
}),
|
|
3775
3815
|
});
|
|
3816
|
+
// Repo-owned project knowledge is canonical Markdown under `.otto/knowledge`,
|
|
3817
|
+
// with daemon-owned writes so worktrees resolve to one store and every truth
|
|
3818
|
+
// change retains its timeline evidence.
|
|
3819
|
+
export const ProjectKnowledgeKindSchema = z.enum([
|
|
3820
|
+
"decision",
|
|
3821
|
+
"constraint",
|
|
3822
|
+
"requirement",
|
|
3823
|
+
"architecture",
|
|
3824
|
+
"project",
|
|
3825
|
+
"reference",
|
|
3826
|
+
]);
|
|
3827
|
+
export const ProjectKnowledgeStatusSchema = z.enum(["proposed", "confirmed", "superseded"]);
|
|
3828
|
+
export const ProjectDeliveryStatusSchema = z.enum([
|
|
3829
|
+
"charter",
|
|
3830
|
+
"in_build",
|
|
3831
|
+
"partial",
|
|
3832
|
+
"blocked",
|
|
3833
|
+
"complete",
|
|
3834
|
+
"reference",
|
|
3835
|
+
"deferred",
|
|
3836
|
+
"cancelled",
|
|
3837
|
+
]);
|
|
3838
|
+
export const ProjectReferenceDispositionSchema = z.enum([
|
|
3839
|
+
"unevaluated",
|
|
3840
|
+
"read",
|
|
3841
|
+
"adopted",
|
|
3842
|
+
"rejected",
|
|
3843
|
+
"dependency",
|
|
3844
|
+
]);
|
|
3845
|
+
export const ProjectProgressSchema = z.object({
|
|
3846
|
+
completed: z.number().int().nonnegative(),
|
|
3847
|
+
total: z.number().int().positive(),
|
|
3848
|
+
unit: z.string().min(1).max(48),
|
|
3849
|
+
});
|
|
3850
|
+
export const ProjectKnowledgeRecordSchema = z.object({
|
|
3851
|
+
id: z.string(),
|
|
3852
|
+
kind: ProjectKnowledgeKindSchema,
|
|
3853
|
+
title: z.string(),
|
|
3854
|
+
statement: z.string(),
|
|
3855
|
+
statementDigest: z.string().optional(),
|
|
3856
|
+
evidence: z.string().optional(),
|
|
3857
|
+
tags: z.array(z.string()),
|
|
3858
|
+
status: ProjectKnowledgeStatusSchema,
|
|
3859
|
+
deliveryStatus: ProjectDeliveryStatusSchema.optional(),
|
|
3860
|
+
progress: ProjectProgressSchema.optional(),
|
|
3861
|
+
referenceDisposition: ProjectReferenceDispositionSchema.optional(),
|
|
3862
|
+
sourceUrl: z.string().optional(),
|
|
3863
|
+
createdAt: z.string(),
|
|
3864
|
+
updatedAt: z.string(),
|
|
3865
|
+
provenance: z
|
|
3866
|
+
.array(z.object({
|
|
3867
|
+
text: z.string(),
|
|
3868
|
+
recordedAt: z.string(),
|
|
3869
|
+
source: z.string().optional(),
|
|
3870
|
+
kind: z.string().optional(),
|
|
3871
|
+
affects: z.array(z.string()).optional(),
|
|
3872
|
+
}))
|
|
3873
|
+
.optional(),
|
|
3874
|
+
path: z.string().optional(),
|
|
3875
|
+
});
|
|
3876
|
+
export const ProjectKnowledgeFindingSchema = z.object({
|
|
3877
|
+
kind: z.enum(["stale", "overlapping_tags", "overlapping_statement"]),
|
|
3878
|
+
recordId: z.string(),
|
|
3879
|
+
relatedRecordId: z.string().optional(),
|
|
3880
|
+
message: z.string(),
|
|
3881
|
+
});
|
|
3882
|
+
export const ProjectKnowledgeRootPageSchema = z.object({
|
|
3883
|
+
slug: z.string(),
|
|
3884
|
+
title: z.string(),
|
|
3885
|
+
path: z.string(),
|
|
3886
|
+
body: z.string(),
|
|
3887
|
+
});
|
|
3888
|
+
export const ProjectKnowledgeListRequestMessageSchema = z.object({
|
|
3889
|
+
type: z.literal("project.knowledge.list.request"),
|
|
3890
|
+
requestId: z.string(),
|
|
3891
|
+
workspaceId: z.string(),
|
|
3892
|
+
});
|
|
3893
|
+
export const ProjectKnowledgeListResponseMessageSchema = z.object({
|
|
3894
|
+
type: z.literal("project.knowledge.list.response"),
|
|
3895
|
+
payload: z.object({
|
|
3896
|
+
requestId: z.string(),
|
|
3897
|
+
records: z.array(ProjectKnowledgeRecordSchema),
|
|
3898
|
+
rootPages: z.array(ProjectKnowledgeRootPageSchema).optional(),
|
|
3899
|
+
findings: z.array(ProjectKnowledgeFindingSchema),
|
|
3900
|
+
brief: z.string(),
|
|
3901
|
+
briefTokens: z.number(),
|
|
3902
|
+
includedIds: z.array(z.string()),
|
|
3903
|
+
omittedCount: z.number(),
|
|
3904
|
+
}),
|
|
3905
|
+
});
|
|
3906
|
+
export const ProjectKnowledgeGetRequestMessageSchema = z.object({
|
|
3907
|
+
type: z.literal("project.knowledge.get.request"),
|
|
3908
|
+
requestId: z.string(),
|
|
3909
|
+
workspaceId: z.string(),
|
|
3910
|
+
id: z.string(),
|
|
3911
|
+
});
|
|
3912
|
+
export const ProjectKnowledgeGetResponseMessageSchema = z.object({
|
|
3913
|
+
type: z.literal("project.knowledge.get.response"),
|
|
3914
|
+
payload: z.object({ requestId: z.string(), record: ProjectKnowledgeRecordSchema.nullable() }),
|
|
3915
|
+
});
|
|
3916
|
+
export const ProjectKnowledgeCreateRequestMessageSchema = z.object({
|
|
3917
|
+
type: z.literal("project.knowledge.create.request"),
|
|
3918
|
+
requestId: z.string(),
|
|
3919
|
+
workspaceId: z.string(),
|
|
3920
|
+
id: z.string().optional(),
|
|
3921
|
+
kind: ProjectKnowledgeKindSchema,
|
|
3922
|
+
title: z.string().max(160),
|
|
3923
|
+
statement: z.string(),
|
|
3924
|
+
evidence: z.string().optional(),
|
|
3925
|
+
tags: z.array(z.string().max(48)).max(32).optional(),
|
|
3926
|
+
affects: z.array(z.string()).optional(),
|
|
3927
|
+
status: ProjectKnowledgeStatusSchema.optional(),
|
|
3928
|
+
deliveryStatus: ProjectDeliveryStatusSchema.optional(),
|
|
3929
|
+
progress: ProjectProgressSchema.optional(),
|
|
3930
|
+
referenceDisposition: ProjectReferenceDispositionSchema.optional(),
|
|
3931
|
+
sourceUrl: z.string().optional(),
|
|
3932
|
+
});
|
|
3933
|
+
export const ProjectKnowledgeCreateResponseMessageSchema = z.object({
|
|
3934
|
+
type: z.literal("project.knowledge.create.response"),
|
|
3935
|
+
payload: z.object({ requestId: z.string(), record: ProjectKnowledgeRecordSchema }),
|
|
3936
|
+
});
|
|
3937
|
+
export const ProjectKnowledgeApplyRequestMessageSchema = z.object({
|
|
3938
|
+
type: z.literal("project.knowledge.apply.request"),
|
|
3939
|
+
requestId: z.string(),
|
|
3940
|
+
workspaceId: z.string(),
|
|
3941
|
+
id: z.string(),
|
|
3942
|
+
title: z.string().max(160).optional(),
|
|
3943
|
+
statement: z.string().optional(),
|
|
3944
|
+
evidence: z.string().optional(),
|
|
3945
|
+
provenanceText: z.string().optional(),
|
|
3946
|
+
provenanceSource: z.string().max(160).optional(),
|
|
3947
|
+
provenanceAffects: z.array(z.string()).optional(),
|
|
3948
|
+
expectedUpdatedAt: z.string().optional(),
|
|
3949
|
+
});
|
|
3950
|
+
export const ProjectKnowledgeApplyResponseMessageSchema = z.object({
|
|
3951
|
+
type: z.literal("project.knowledge.apply.response"),
|
|
3952
|
+
payload: z.object({
|
|
3953
|
+
requestId: z.string(),
|
|
3954
|
+
record: ProjectKnowledgeRecordSchema.nullable(),
|
|
3955
|
+
error: z.string().optional(),
|
|
3956
|
+
}),
|
|
3957
|
+
});
|
|
3958
|
+
export const ProjectKnowledgeStatusRequestMessageSchema = z.object({
|
|
3959
|
+
type: z.literal("project.knowledge.status.request"),
|
|
3960
|
+
requestId: z.string(),
|
|
3961
|
+
workspaceId: z.string(),
|
|
3962
|
+
id: z.string(),
|
|
3963
|
+
status: ProjectKnowledgeStatusSchema,
|
|
3964
|
+
reason: z.string().optional(),
|
|
3965
|
+
});
|
|
3966
|
+
export const ProjectKnowledgeStatusResponseMessageSchema = z.object({
|
|
3967
|
+
type: z.literal("project.knowledge.status.response"),
|
|
3968
|
+
payload: z.object({ requestId: z.string(), record: ProjectKnowledgeRecordSchema.nullable() }),
|
|
3969
|
+
});
|
|
3970
|
+
export const ProjectKnowledgeProjectApplyRequestMessageSchema = z.object({
|
|
3971
|
+
type: z.literal("project.knowledge.project.apply.request"),
|
|
3972
|
+
requestId: z.string(),
|
|
3973
|
+
workspaceId: z.string(),
|
|
3974
|
+
id: z.string(),
|
|
3975
|
+
deliveryStatus: ProjectDeliveryStatusSchema.optional(),
|
|
3976
|
+
progress: ProjectProgressSchema.nullable().optional(),
|
|
3977
|
+
reason: z.string(),
|
|
3978
|
+
expectedUpdatedAt: z.string().optional(),
|
|
3979
|
+
});
|
|
3980
|
+
export const ProjectKnowledgeProjectApplyResponseMessageSchema = z.object({
|
|
3981
|
+
type: z.literal("project.knowledge.project.apply.response"),
|
|
3982
|
+
payload: z.object({
|
|
3983
|
+
requestId: z.string(),
|
|
3984
|
+
record: ProjectKnowledgeRecordSchema.nullable(),
|
|
3985
|
+
error: z.string().optional(),
|
|
3986
|
+
}),
|
|
3987
|
+
});
|
|
3988
|
+
export const ProjectKnowledgeReferenceApplyRequestMessageSchema = z.object({
|
|
3989
|
+
type: z.literal("project.knowledge.reference.apply.request"),
|
|
3990
|
+
requestId: z.string(),
|
|
3991
|
+
workspaceId: z.string(),
|
|
3992
|
+
id: z.string(),
|
|
3993
|
+
disposition: ProjectReferenceDispositionSchema.optional(),
|
|
3994
|
+
sourceUrl: z.string().nullable().optional(),
|
|
3995
|
+
reason: z.string(),
|
|
3996
|
+
expectedUpdatedAt: z.string().optional(),
|
|
3997
|
+
});
|
|
3998
|
+
export const ProjectKnowledgeReferenceApplyResponseMessageSchema = z.object({
|
|
3999
|
+
type: z.literal("project.knowledge.reference.apply.response"),
|
|
4000
|
+
payload: z.object({
|
|
4001
|
+
requestId: z.string(),
|
|
4002
|
+
record: ProjectKnowledgeRecordSchema.nullable(),
|
|
4003
|
+
error: z.string().optional(),
|
|
4004
|
+
}),
|
|
4005
|
+
});
|
|
4006
|
+
export const ProjectKnowledgeRootApplyRequestMessageSchema = z.object({
|
|
4007
|
+
type: z.literal("project.knowledge.root.apply.request"),
|
|
4008
|
+
requestId: z.string(),
|
|
4009
|
+
workspaceId: z.string(),
|
|
4010
|
+
slug: z.string(),
|
|
4011
|
+
body: z.string(),
|
|
4012
|
+
});
|
|
4013
|
+
export const ProjectKnowledgeRootApplyResponseMessageSchema = z.object({
|
|
4014
|
+
type: z.literal("project.knowledge.root.apply.response"),
|
|
4015
|
+
payload: z.object({
|
|
4016
|
+
requestId: z.string(),
|
|
4017
|
+
page: ProjectKnowledgeRootPageSchema.nullable(),
|
|
4018
|
+
}),
|
|
4019
|
+
});
|
|
4020
|
+
export const ProjectKnowledgeDeleteRequestMessageSchema = z.object({
|
|
4021
|
+
type: z.literal("project.knowledge.delete.request"),
|
|
4022
|
+
requestId: z.string(),
|
|
4023
|
+
workspaceId: z.string(),
|
|
4024
|
+
id: z.string(),
|
|
4025
|
+
reason: z.string(),
|
|
4026
|
+
expectedUpdatedAt: z.string().optional(),
|
|
4027
|
+
});
|
|
4028
|
+
export const ProjectKnowledgeDeleteResponseMessageSchema = z.object({
|
|
4029
|
+
type: z.literal("project.knowledge.delete.response"),
|
|
4030
|
+
payload: z.object({
|
|
4031
|
+
requestId: z.string(),
|
|
4032
|
+
deleted: z.boolean(),
|
|
4033
|
+
error: z.string().optional(),
|
|
4034
|
+
}),
|
|
4035
|
+
});
|
|
3776
4036
|
// Converts one edge between "always loaded" and "link only". Server-side
|
|
3777
4037
|
// because the parent file may live outside the workspace root.
|
|
3778
4038
|
export const ContextEdgeConvertRequestMessageSchema = z.object({
|
|
@@ -5787,6 +6047,9 @@ export const RenameTerminalRequestSchema = z.object({
|
|
|
5787
6047
|
type: z.literal("terminal.rename.request"),
|
|
5788
6048
|
terminalId: z.string(),
|
|
5789
6049
|
title: z.string(),
|
|
6050
|
+
// COMPAT(terminalTitleSettings): old daemons ignore this field and retain
|
|
6051
|
+
// their existing rename behavior.
|
|
6052
|
+
clear: z.boolean().optional(),
|
|
5790
6053
|
requestId: z.string(),
|
|
5791
6054
|
});
|
|
5792
6055
|
export const StartWorkspaceScriptRequestSchema = z.object({
|
|
@@ -5904,11 +6167,13 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
5904
6167
|
FetchRecentProviderSessionsRequestMessageSchema,
|
|
5905
6168
|
FetchWorkspacesRequestMessageSchema,
|
|
5906
6169
|
ProjectListRequestMessageSchema,
|
|
6170
|
+
ProjectResolveWorkspaceForPathRequestSchema,
|
|
5907
6171
|
FetchAgentRequestMessageSchema,
|
|
5908
6172
|
DeleteAgentRequestMessageSchema,
|
|
5909
6173
|
ArchiveAgentRequestMessageSchema,
|
|
5910
6174
|
CloseItemsRequestMessageSchema,
|
|
5911
6175
|
HistoryAgentsClearArchivedRequestSchema,
|
|
6176
|
+
HistoryAgentsStorageStatsRequestSchema,
|
|
5912
6177
|
AttachmentsImagesStatsRequestSchema,
|
|
5913
6178
|
AttachmentsImagesClearRequestSchema,
|
|
5914
6179
|
BrainHostStatusRequestSchema,
|
|
@@ -5992,6 +6257,15 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
5992
6257
|
StatsActivityGetRequestMessageSchema,
|
|
5993
6258
|
ContextReportGetRequestMessageSchema,
|
|
5994
6259
|
ContextPromptPreviewGetRequestMessageSchema,
|
|
6260
|
+
ProjectKnowledgeListRequestMessageSchema,
|
|
6261
|
+
ProjectKnowledgeGetRequestMessageSchema,
|
|
6262
|
+
ProjectKnowledgeCreateRequestMessageSchema,
|
|
6263
|
+
ProjectKnowledgeApplyRequestMessageSchema,
|
|
6264
|
+
ProjectKnowledgeStatusRequestMessageSchema,
|
|
6265
|
+
ProjectKnowledgeProjectApplyRequestMessageSchema,
|
|
6266
|
+
ProjectKnowledgeReferenceApplyRequestMessageSchema,
|
|
6267
|
+
ProjectKnowledgeRootApplyRequestMessageSchema,
|
|
6268
|
+
ProjectKnowledgeDeleteRequestMessageSchema,
|
|
5995
6269
|
ContextEdgeConvertRequestMessageSchema,
|
|
5996
6270
|
ContextFindingsFixRequestMessageSchema,
|
|
5997
6271
|
PersonalityMemoryListRequestMessageSchema,
|
|
@@ -6327,6 +6601,15 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
6327
6601
|
serverId: z.string().trim().min(1),
|
|
6328
6602
|
hostname: ServerInfoHostnameSchema.optional(),
|
|
6329
6603
|
version: ServerInfoVersionSchema.optional(),
|
|
6604
|
+
// The daemon's OS and detected interactive shells. Optional so older hosts
|
|
6605
|
+
// remain parseable; only Windows hosts advertise terminalShells.
|
|
6606
|
+
platform: z.string().optional(),
|
|
6607
|
+
terminalShells: z
|
|
6608
|
+
.array(z.object({
|
|
6609
|
+
id: z.enum(["command-prompt", "windows-powershell", "powershell-7"]),
|
|
6610
|
+
label: z.string(),
|
|
6611
|
+
}))
|
|
6612
|
+
.optional(),
|
|
6330
6613
|
// COMPAT(desktopManaged): added in v0.1.X, remove optional parsing after 2027-01-16.
|
|
6331
6614
|
desktopManaged: z.boolean().optional(),
|
|
6332
6615
|
capabilities: ServerCapabilitiesFromUnknownSchema.optional(),
|
|
@@ -6348,6 +6631,8 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
6348
6631
|
daemonStatusRpc: z.boolean().optional(),
|
|
6349
6632
|
// COMPAT(terminalRestoreModes): added in v0.1.81, remove gate after 2026-11-23.
|
|
6350
6633
|
"terminal-restore-modes": z.boolean().optional(),
|
|
6634
|
+
// COMPAT(terminalTitleSettings): added in v0.8.5, remove gate after 2027-02-07.
|
|
6635
|
+
terminalTitleSettings: z.boolean().optional(),
|
|
6351
6636
|
// COMPAT(rewind): added in v0.1.X, drop the gate when floor >= v0.1.X.
|
|
6352
6637
|
rewind: z.boolean().optional(),
|
|
6353
6638
|
// COMPAT(checkoutRefresh): added in v0.1.86, remove gate after 2026-11-29.
|
|
@@ -6493,6 +6778,8 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
6493
6778
|
// client-side fallback could read.
|
|
6494
6779
|
// COMPAT(personalityMemory): added in v0.7.0, drop the gate when daemon floor >= v0.7.0.
|
|
6495
6780
|
personalityMemory: z.boolean().optional(),
|
|
6781
|
+
// COMPAT(projectKnowledge): added in v0.8.5, drop the gate when daemon floor >= v0.8.5.
|
|
6782
|
+
projectKnowledge: z.boolean().optional(),
|
|
6496
6783
|
// Script discovery - the daemon scans a workspace for the Scripts its
|
|
6497
6784
|
// project files already declare (package.json scripts, and later
|
|
6498
6785
|
// Makefile targets, .NET launch profiles) and serves them from
|
|
@@ -6715,6 +7002,8 @@ export const ServerInfoStatusPayloadSchema = z
|
|
|
6715
7002
|
// the daemon half of the Storage section; the app-side preview cache row
|
|
6716
7003
|
// is local and always shown.
|
|
6717
7004
|
attachmentStorage: z.boolean().optional(),
|
|
7005
|
+
// COMPAT(historyStorage): added in v0.7.2, drop the gate when daemon floor >= v0.7.2.
|
|
7006
|
+
historyStorage: z.boolean().optional(),
|
|
6718
7007
|
// COMPAT(agentWorkspaceTransfer): added in v0.7.4, drop the gate when
|
|
6719
7008
|
// daemon floor >= v0.7.4. Set when the daemon serves
|
|
6720
7009
|
// `agent.workspace.transfer` - moving a chat to another workspace over
|
|
@@ -7327,6 +7616,13 @@ export const ProjectListResponseMessageSchema = z.object({
|
|
|
7327
7616
|
projects: z.array(WorkspaceProjectDescriptorPayloadSchema),
|
|
7328
7617
|
}),
|
|
7329
7618
|
});
|
|
7619
|
+
export const ProjectResolveWorkspaceForPathResponseSchema = z.object({
|
|
7620
|
+
type: z.literal("project.resolveWorkspaceForPath.response"),
|
|
7621
|
+
payload: z.object({
|
|
7622
|
+
requestId: z.string(),
|
|
7623
|
+
workspaceId: z.string().nullable(),
|
|
7624
|
+
}),
|
|
7625
|
+
});
|
|
7330
7626
|
export const ScriptStatusUpdateMessageSchema = z.object({
|
|
7331
7627
|
type: z.literal("script_status_update"),
|
|
7332
7628
|
payload: z.object({
|
|
@@ -10396,6 +10692,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
10396
10692
|
WorkspaceUpdateMessageSchema,
|
|
10397
10693
|
ProjectUpdateMessageSchema,
|
|
10398
10694
|
ProjectListResponseMessageSchema,
|
|
10695
|
+
ProjectResolveWorkspaceForPathResponseSchema,
|
|
10399
10696
|
ScriptStatusUpdateMessageSchema,
|
|
10400
10697
|
WorkspaceSetupProgressMessageSchema,
|
|
10401
10698
|
WorkspaceSetupStatusResponseMessageSchema,
|
|
@@ -10494,6 +10791,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
10494
10791
|
AgentPermissionResolvedMessageSchema,
|
|
10495
10792
|
AgentDeletedMessageSchema,
|
|
10496
10793
|
HistoryAgentsClearArchivedResponseSchema,
|
|
10794
|
+
HistoryAgentsStorageStatsResponseSchema,
|
|
10497
10795
|
AttachmentsImagesStatsResponseSchema,
|
|
10498
10796
|
AttachmentsImagesClearResponseSchema,
|
|
10499
10797
|
BrainHostStatusResponseSchema,
|
|
@@ -10644,6 +10942,15 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
|
|
10644
10942
|
StatsActivityGetResponseMessageSchema,
|
|
10645
10943
|
ContextReportGetResponseMessageSchema,
|
|
10646
10944
|
ContextPromptPreviewGetResponseMessageSchema,
|
|
10945
|
+
ProjectKnowledgeListResponseMessageSchema,
|
|
10946
|
+
ProjectKnowledgeGetResponseMessageSchema,
|
|
10947
|
+
ProjectKnowledgeCreateResponseMessageSchema,
|
|
10948
|
+
ProjectKnowledgeApplyResponseMessageSchema,
|
|
10949
|
+
ProjectKnowledgeStatusResponseMessageSchema,
|
|
10950
|
+
ProjectKnowledgeProjectApplyResponseMessageSchema,
|
|
10951
|
+
ProjectKnowledgeReferenceApplyResponseMessageSchema,
|
|
10952
|
+
ProjectKnowledgeRootApplyResponseMessageSchema,
|
|
10953
|
+
ProjectKnowledgeDeleteResponseMessageSchema,
|
|
10647
10954
|
ContextEdgeConvertResponseMessageSchema,
|
|
10648
10955
|
ContextFindingsFixResponseMessageSchema,
|
|
10649
10956
|
PersonalityMemoryListResponseMessageSchema,
|