@deepseek-ai/dsh-api-session-controller 0.1.6-alpha.1 → 0.1.7-alpha.1

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.
Files changed (44) hide show
  1. package/README.i18n.yaml +2 -2
  2. package/README.md +42 -7
  3. package/README.zh.md +42 -7
  4. package/lib/client.js +1037 -992
  5. package/lib/index.js +314 -183
  6. package/lib/typert.host.js +539 -331
  7. package/lib/typert.remote-client.d.ts +10 -5
  8. package/lib/typert.remote-client.js +374 -264
  9. package/lib/types/agent.d.ts +1 -1
  10. package/lib/types/agent.js +8 -1
  11. package/lib/types/archived-session-gate.d.ts +30 -0
  12. package/lib/types/archived-session-gate.js +52 -0
  13. package/lib/types/client/contract/session.d.ts +2 -0
  14. package/lib/types/client/contract/sessions.d.ts +65 -35
  15. package/lib/types/client/contract/snapshot.d.ts +0 -14
  16. package/lib/types/client/index.d.ts +12 -3
  17. package/lib/types/client/index.js +16 -5
  18. package/lib/types/client/scope.d.ts +13 -3
  19. package/lib/types/client/scope.js +15 -22
  20. package/lib/types/client/sessions/lineage.d.ts +5 -5
  21. package/lib/types/client/sessions/lineage.js +3 -4
  22. package/lib/types/client/sessions/manager.d.ts +91 -105
  23. package/lib/types/client/sessions/manager.js +307 -434
  24. package/lib/types/client/sessions/projection-store.d.ts +34 -21
  25. package/lib/types/client/sessions/projection-store.js +48 -24
  26. package/lib/types/client/sessions/remotes.d.ts +1 -2
  27. package/lib/types/client/sessions/service.d.ts +53 -150
  28. package/lib/types/client/sessions/service.js +267 -264
  29. package/lib/types/client/sessions/session.d.ts +24 -35
  30. package/lib/types/client/sessions/session.js +131 -73
  31. package/lib/types/commands.d.ts +6 -4
  32. package/lib/types/commands.js +82 -40
  33. package/lib/types/control.d.ts +2 -4
  34. package/lib/types/control.js +2 -84
  35. package/lib/types/history.js +1 -1
  36. package/lib/types/index.d.ts +34 -7
  37. package/lib/types/index.js +118 -14
  38. package/lib/types/list.js +24 -15
  39. package/lib/types/skill-catalog.js +60 -50
  40. package/lib/types/types.d.ts +40 -40
  41. package/lib/types/types.js +0 -1
  42. package/package.json +71 -76
  43. package/lib/types/client/sessions/queue-mirror.d.ts +0 -26
  44. package/lib/types/client/sessions/queue-mirror.js +0 -61
@@ -1,60 +1,32 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
- const ContentBlockRemoteCodec$schema = z.union([z.object({
5
- 'type': z.literal("file"),
6
- 'attachment': z.object({
7
- 'attachmentId': z.intersection(z.string(), z.unknown()),
8
- 'name': z.string(),
9
- 'bytes': z.number(),
10
- }),
11
- }), z.object({
12
- 'type': z.literal("text"),
13
- 'text': z.string(),
14
- }), z.object({
15
- 'type': z.literal("image"),
16
- 'attachment': z.object({
17
- 'attachmentId': z.intersection(z.string(), z.unknown()),
18
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
19
- 'bytes': z.number(),
20
- 'width': z.number(),
21
- 'height': z.number(),
22
- 'name': z.string().optional(),
23
- 'originalDimensions': z.object({
24
- 'width': z.number(),
25
- 'height': z.number(),
26
- }).optional(),
27
- }),
28
- 'offloaded': z.literal(true).optional(),
29
- }), z.object({
30
- 'type': z.literal("reasoning"),
31
- 'text': z.string(),
32
- }), z.object({
33
- 'type': z.literal("tool-call"),
34
- 'id': z.intersection(z.string(), z.unknown()),
35
- 'name': z.string(),
36
- 'arguments': z.string(),
37
- }), z.object({
38
- 'type': z.literal("tool-result"),
39
- 'toolCallId': z.intersection(z.string(), z.unknown()),
40
- 'content': z.array(z.lazy(() => ContentBlockRemoteCodec$schema)),
41
- 'isError': z.boolean().optional(),
42
- })])
43
- const JsonValueRemoteCodec$schema = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema))])
44
- const JsonValueRemoteCodec$schema2 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2))])
45
- const JsonValueRemoteCodec$schema3 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))])
46
- const JsonValueRemoteCodec$schema4 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])
47
- const _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema = z.intersection(z.string(), z.unknown())
48
- const _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema = z.string()
49
- const _deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema = z.array(z.object({
4
+ let JsonValueRemoteCodec$schema$value
5
+ const JsonValueRemoteCodec$schema = () => (JsonValueRemoteCodec$schema$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema()))]))
6
+ let JsonValueRemoteCodec$schema2$value
7
+ const JsonValueRemoteCodec$schema2 = () => (JsonValueRemoteCodec$schema2$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2()))]))
8
+ let JsonValueRemoteCodec$schema3$value
9
+ const JsonValueRemoteCodec$schema3 = () => (JsonValueRemoteCodec$schema3$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]))
10
+ let JsonValueRemoteCodec$schema4$value
11
+ const JsonValueRemoteCodec$schema4 = () => (JsonValueRemoteCodec$schema4$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4()))]))
12
+ let JsonValueRemoteCodec$schema5$value
13
+ const JsonValueRemoteCodec$schema5 = () => (JsonValueRemoteCodec$schema5$value ??= z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5()))]))
14
+ let _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema$value
15
+ const _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
16
+ let _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema$value
17
+ const _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema = () => (_deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema$value ??= z.string())
18
+ let _deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema$value
19
+ const _deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema = () => (_deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema$value ??= z.array(z.object({
50
20
  'path': z.string(),
51
21
  'kind': z.union([z.literal("file"), z.literal("directory")]),
52
- }))
53
- const _deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema = z.object({
22
+ })))
23
+ let _deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema$value
24
+ const _deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema$value ??= z.object({
54
25
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
55
26
  'attachmentId': z.intersection(z.string(), z.unknown()).readonly(),
56
- })
57
- const _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema = z.object({
27
+ }))
28
+ let _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema$value
29
+ const _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_attachment_result$schema$value ??= z.object({
58
30
  'attachment': z.object({
59
31
  'attachmentId': z.intersection(z.string(), z.unknown()),
60
32
  'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
@@ -68,47 +40,33 @@ const _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema =
68
40
  }).optional(),
69
41
  }).readonly(),
70
42
  'data': z.string().readonly(),
71
- })
72
- const _deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema = z.object({
43
+ }))
44
+ let _deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema$value
45
+ const _deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema$value ??= z.object({
73
46
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
74
- })
75
- const _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema = z.object({
47
+ }))
48
+ let _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema$value
49
+ const _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_cancel_result$schema$value ??= z.object({
76
50
  'accepted': z.literal(true).readonly(),
77
- })
78
- const _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema = z.boolean()
79
- const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.union([z.object({
51
+ }))
52
+ let _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema$value
53
+ const _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema$value ??= z.boolean())
54
+ let _deepseek_ai_dsh_api_session_controller_session_control_result$schema$value
55
+ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_control_result$schema$value ??= z.union([z.object({
80
56
  'type': z.literal("baseline").readonly(),
81
57
  'value': z.object({
82
- 'queues': z.record(z.intersection(z.string(), z.unknown()), z.array(z.object({
83
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
84
- 'placement': z.union([z.literal("queued"), z.literal("steering"), z.literal("context")]).readonly(),
85
- 'rpcId': z.intersection(z.string(), z.unknown()).readonly().optional(),
86
- 'message': z.object({
87
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
88
- 'content': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])).readonly(),
89
- }).readonly(),
90
- }))).readonly().readonly(),
91
- 'jobs': z.record(z.intersection(z.string(), z.unknown()), z.array(z.object({
92
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
93
- 'kind': z.string().readonly(),
94
- 'label': z.string().readonly(),
95
- 'status': z.union([z.literal("completed"), z.literal("running"), z.literal("stopping"), z.literal("killed"), z.literal("failed")]).readonly(),
96
- 'detail': z.string().readonly().optional(),
97
- 'startedAt': z.number().readonly(),
98
- 'finishedAt': z.number().readonly().optional(),
99
- }))).readonly().readonly(),
100
58
  'projections': z.record(z.intersection(z.string(), z.unknown()), z.object({
101
59
  'asOfSeq': z.number().readonly(),
102
60
  'values': z.intersection(z.object({
103
61
  'inbox': z.object({
104
- 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])).readonly(),
105
- 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])).readonly(),
62
+ 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5()))])).readonly(),
63
+ 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5()))])).readonly(),
106
64
  }).optional(),
107
65
  'agentPreset': z.union([z.literal(null), z.string()]).optional(),
108
66
  'title': z.union([z.literal(null), z.string()]).optional(),
109
67
  'todos': z.union([z.literal(null), z.array(z.object({
110
68
  'content': z.string(),
111
- 'status': z.union([z.literal("pending"), z.literal("in_progress"), z.literal("completed")]),
69
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
112
70
  }))]).optional(),
113
71
  'sessionListMetadata': z.object({
114
72
  'blank': z.boolean().readonly(),
@@ -149,6 +107,12 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
149
107
  }), z.object({
150
108
  'mode': z.literal("continuable").readonly(),
151
109
  'label': z.string().readonly(),
110
+ })), z.intersection(z.object({
111
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
112
+ 'createdAt': z.number().readonly(),
113
+ }), z.object({
114
+ 'mode': z.literal("unknown").readonly(),
115
+ 'label': z.string().readonly().optional(),
152
116
  }))])).optional(),
153
117
  'subagentTiming': z.object({
154
118
  'settledMs': z.number(),
@@ -156,6 +120,7 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
156
120
  'since': z.number(),
157
121
  'through': z.number(),
158
122
  }).optional(),
123
+ 'lastTurnCompleted': z.boolean().optional(),
159
124
  }).optional(),
160
125
  'subagent': z.union([z.literal(null), z.object({
161
126
  'mode': z.literal("one-shot"),
@@ -182,52 +147,31 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
182
147
  'createdAt': z.number().readonly(),
183
148
  'updatedAt': z.number().readonly(),
184
149
  })]).optional(),
185
- }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])).readonly()).readonly(),
150
+ }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5()))])).readonly()).readonly(),
186
151
  })).readonly().readonly(),
187
152
  }).readonly(),
188
- }), z.object({
189
- 'type': z.literal("queue").readonly(),
190
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
191
- 'items': z.array(z.object({
192
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
193
- 'placement': z.union([z.literal("queued"), z.literal("steering"), z.literal("context")]).readonly(),
194
- 'rpcId': z.intersection(z.string(), z.unknown()).readonly().optional(),
195
- 'message': z.object({
196
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
197
- 'content': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))])).readonly(),
198
- }).readonly(),
199
- })).readonly(),
200
- }), z.object({
201
- 'type': z.literal("jobs").readonly(),
202
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
203
- 'jobs': z.array(z.object({
204
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
205
- 'kind': z.string().readonly(),
206
- 'label': z.string().readonly(),
207
- 'status': z.union([z.literal("completed"), z.literal("running"), z.literal("stopping"), z.literal("killed"), z.literal("failed")]).readonly(),
208
- 'detail': z.string().readonly().optional(),
209
- 'startedAt': z.number().readonly(),
210
- 'finishedAt': z.number().readonly().optional(),
211
- })).readonly(),
212
153
  }), z.intersection(z.object({
213
154
  'type': z.literal("projection").readonly(),
214
155
  }), z.object({
215
156
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
216
157
  'key': z.string().readonly(),
217
- 'value': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4))]).readonly(),
158
+ 'value': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5()))]).readonly(),
218
159
  'seq': z.number().readonly(),
219
- }))])
220
- const _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema = z.object({
160
+ }))]))
161
+ let _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema$value
162
+ const _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema$value ??= z.object({
221
163
  'workspaceId': z.intersection(z.string(), z.unknown()).readonly().optional(),
222
164
  'cwd': z.string().readonly().optional(),
223
165
  'sessionId': z.intersection(z.string(), z.unknown()).readonly().optional(),
224
166
  'agentPreset': z.string().readonly().optional(),
225
- })
226
- const _deepseek_ai_dsh_api_session_controller_session_create_result$schema = z.object({
167
+ }))
168
+ let _deepseek_ai_dsh_api_session_controller_session_create_result$schema$value
169
+ const _deepseek_ai_dsh_api_session_controller_session_create_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_create_result$schema$value ??= z.object({
227
170
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
228
171
  'agentPreset': z.string().readonly().optional(),
229
- })
230
- const _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema = z.object({
172
+ }))
173
+ let _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema$value
174
+ const _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema$value ??= z.object({
231
175
  'address': z.union([z.object({
232
176
  'kind': z.literal("session").readonly(),
233
177
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -235,21 +179,22 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema
235
179
  'kind': z.literal("subagent").readonly(),
236
180
  'parentSessionId': z.intersection(z.string(), z.unknown()).readonly(),
237
181
  'childSessionId': z.intersection(z.string(), z.unknown()).readonly(),
238
- 'mode': z.union([z.literal("one-shot"), z.literal("continuable")]).readonly(),
182
+ 'mode': z.union([z.literal("one-shot"), z.literal("continuable"), z.literal("unknown")]).readonly(),
239
183
  })]).readonly(),
240
184
  'maxMessages': z.number().readonly().optional(),
241
185
  'assistantStream': z.literal(true).readonly().optional(),
242
- })
243
- const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.union([z.object({
186
+ }))
187
+ let _deepseek_ai_dsh_api_session_controller_session_follow_result$schema$value
188
+ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_follow_result$schema$value ??= z.union([z.object({
244
189
  'type': z.literal("event").readonly(),
245
190
  'event': z.object({
246
191
  'type': z.string().readonly(),
247
192
  'seq': z.number().readonly(),
248
193
  'time': z.number().readonly(),
249
- 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly(),
194
+ 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly(),
250
195
  'ignorable': z.literal(true).readonly().optional(),
251
- 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly().optional(),
252
- 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly().optional(),
196
+ 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly().optional(),
197
+ 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly().optional(),
253
198
  }).readonly(),
254
199
  }), z.object({
255
200
  'type': z.literal("snapshot").readonly(),
@@ -271,10 +216,10 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
271
216
  'type': z.string().readonly(),
272
217
  'seq': z.number().readonly(),
273
218
  'time': z.number().readonly(),
274
- 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly(),
219
+ 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly(),
275
220
  'ignorable': z.literal(true).readonly().optional(),
276
- 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly().optional(),
277
- 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly().optional(),
221
+ 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly().optional(),
222
+ 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly().optional(),
278
223
  }).readonly(),
279
224
  })).readonly(),
280
225
  'hasMore': z.boolean().readonly(),
@@ -282,14 +227,14 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
282
227
  'asOfSeq': z.number().readonly(),
283
228
  'values': z.intersection(z.object({
284
229
  'inbox': z.object({
285
- 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))])).readonly(),
286
- 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))])).readonly(),
230
+ 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))])).readonly(),
231
+ 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))])).readonly(),
287
232
  }).optional(),
288
233
  'agentPreset': z.union([z.literal(null), z.string()]).optional(),
289
234
  'title': z.union([z.literal(null), z.string()]).optional(),
290
235
  'todos': z.union([z.literal(null), z.array(z.object({
291
236
  'content': z.string(),
292
- 'status': z.union([z.literal("pending"), z.literal("in_progress"), z.literal("completed")]),
237
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
293
238
  }))]).optional(),
294
239
  'sessionListMetadata': z.object({
295
240
  'blank': z.boolean().readonly(),
@@ -330,6 +275,12 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
330
275
  }), z.object({
331
276
  'mode': z.literal("continuable").readonly(),
332
277
  'label': z.string().readonly(),
278
+ })), z.intersection(z.object({
279
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
280
+ 'createdAt': z.number().readonly(),
281
+ }), z.object({
282
+ 'mode': z.literal("unknown").readonly(),
283
+ 'label': z.string().readonly().optional(),
333
284
  }))])).optional(),
334
285
  'subagentTiming': z.object({
335
286
  'settledMs': z.number(),
@@ -337,6 +288,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
337
288
  'since': z.number(),
338
289
  'through': z.number(),
339
290
  }).optional(),
291
+ 'lastTurnCompleted': z.boolean().optional(),
340
292
  }).optional(),
341
293
  'subagent': z.union([z.literal(null), z.object({
342
294
  'mode': z.literal("one-shot"),
@@ -363,7 +315,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
363
315
  'createdAt': z.number().readonly(),
364
316
  'updatedAt': z.number().readonly(),
365
317
  })]).optional(),
366
- }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))])).readonly()).readonly(),
318
+ }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))])).readonly()).readonly(),
367
319
  }).readonly(),
368
320
  'assistantStream': z.object({
369
321
  'revision': z.number().readonly(),
@@ -373,7 +325,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
373
325
  'turn': z.number().readonly(),
374
326
  'step': z.number().readonly(),
375
327
  'nextIndex': z.number().readonly(),
376
- 'stream': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))])).readonly(),
328
+ 'stream': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))])).readonly(),
377
329
  }).readonly().optional(),
378
330
  }).readonly().optional(),
379
331
  }), z.object({
@@ -391,7 +343,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
391
343
  'revision': z.number().readonly(),
392
344
  'index': z.number().readonly(),
393
345
  'time': z.number().readonly(),
394
- 'chunk': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3))]).readonly(),
346
+ 'chunk': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3()))]).readonly(),
395
347
  }), z.object({
396
348
  'type': z.literal("end").readonly(),
397
349
  'attemptId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -405,19 +357,24 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
405
357
  'kind': z.literal("abandoned").readonly(),
406
358
  })]).readonly(),
407
359
  })]).readonly(),
408
- })])
409
- const _deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema = z.object({
360
+ })]))
361
+ let _deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema$value
362
+ const _deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema$value ??= z.object({
410
363
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
411
364
  'atSeq': z.number().readonly().optional(),
412
- })
413
- const _deepseek_ai_dsh_api_session_controller_session_fork_result$schema = z.object({
365
+ }))
366
+ let _deepseek_ai_dsh_api_session_controller_session_fork_result$schema$value
367
+ const _deepseek_ai_dsh_api_session_controller_session_fork_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_fork_result$schema$value ??= z.object({
414
368
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
415
- })
416
- const _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema = z.object({
369
+ }))
370
+ let _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema$value
371
+ const _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema$value ??= z.object({
417
372
  'cursor': z.string().readonly().optional(),
418
- })
419
- const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.object({
373
+ }))
374
+ let _deepseek_ai_dsh_api_session_controller_session_list_result$schema$value
375
+ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_list_result$schema$value ??= z.object({
420
376
  'items': z.array(z.object({
377
+ 'agentAvailable': z.boolean().readonly(),
421
378
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
422
379
  'updatedAt': z.number().readonly(),
423
380
  'running': z.boolean().readonly(),
@@ -426,17 +383,18 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
426
383
  'origin': z.literal("subagent").readonly().optional(),
427
384
  'cwd': z.string().readonly().optional(),
428
385
  'projections': z.object({
386
+ 'kind': z.union([z.literal("cached"), z.literal("sequenced")]).readonly(),
429
387
  'asOfSeq': z.number().readonly(),
430
388
  'values': z.intersection(z.object({
431
389
  'inbox': z.object({
432
- 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema))])).readonly(),
433
- 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema))])).readonly(),
390
+ 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema()))])).readonly(),
391
+ 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema()))])).readonly(),
434
392
  }).optional(),
435
393
  'agentPreset': z.union([z.literal(null), z.string()]).optional(),
436
394
  'title': z.union([z.literal(null), z.string()]).optional(),
437
395
  'todos': z.union([z.literal(null), z.array(z.object({
438
396
  'content': z.string(),
439
- 'status': z.union([z.literal("pending"), z.literal("in_progress"), z.literal("completed")]),
397
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
440
398
  }))]).optional(),
441
399
  'sessionListMetadata': z.object({
442
400
  'blank': z.boolean().readonly(),
@@ -477,6 +435,12 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
477
435
  }), z.object({
478
436
  'mode': z.literal("continuable").readonly(),
479
437
  'label': z.string().readonly(),
438
+ })), z.intersection(z.object({
439
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
440
+ 'createdAt': z.number().readonly(),
441
+ }), z.object({
442
+ 'mode': z.literal("unknown").readonly(),
443
+ 'label': z.string().readonly().optional(),
480
444
  }))])).optional(),
481
445
  'subagentTiming': z.object({
482
446
  'settledMs': z.number(),
@@ -484,6 +448,7 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
484
448
  'since': z.number(),
485
449
  'through': z.number(),
486
450
  }).optional(),
451
+ 'lastTurnCompleted': z.boolean().optional(),
487
452
  }).optional(),
488
453
  'subagent': z.union([z.literal(null), z.object({
489
454
  'mode': z.literal("one-shot"),
@@ -510,11 +475,12 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
510
475
  'createdAt': z.number().readonly(),
511
476
  'updatedAt': z.number().readonly(),
512
477
  })]).optional(),
513
- }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema))])).readonly()).readonly(),
478
+ }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema()))])).readonly()).readonly(),
514
479
  }).readonly().optional(),
515
480
  })).readonly(),
516
- })
517
- const _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema = z.object({
481
+ }))
482
+ let _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema$value
483
+ const _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema$value ??= z.object({
518
484
  'default': z.object({
519
485
  'provider': z.string().readonly(),
520
486
  'model': z.string().readonly(),
@@ -543,15 +509,19 @@ const _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema
543
509
  'name': z.string().readonly(),
544
510
  'message': z.string().readonly(),
545
511
  })).readonly(),
546
- })
547
- const _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema = z.object({
512
+ }))
513
+ let _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema$value
514
+ const _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema$value ??= z.object({
548
515
  'action': z.literal("reveal").readonly().optional(),
516
+ 'application': z.string().readonly().optional(),
549
517
  'path': z.string().readonly(),
550
- })
551
- const _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema = z.object({
518
+ }))
519
+ let _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema$value
520
+ const _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema$value ??= z.object({
552
521
  'opened': z.literal(true).readonly(),
553
- })
554
- const _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema = z.object({
522
+ }))
523
+ let _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema$value
524
+ const _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema$value ??= z.object({
555
525
  'address': z.union([z.object({
556
526
  'kind': z.literal("session").readonly(),
557
527
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -559,28 +529,129 @@ const _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema =
559
529
  'kind': z.literal("subagent").readonly(),
560
530
  'parentSessionId': z.intersection(z.string(), z.unknown()).readonly(),
561
531
  'childSessionId': z.intersection(z.string(), z.unknown()).readonly(),
562
- 'mode': z.union([z.literal("one-shot"), z.literal("continuable")]).readonly(),
532
+ 'mode': z.union([z.literal("one-shot"), z.literal("continuable"), z.literal("unknown")]).readonly(),
563
533
  })]).readonly(),
564
534
  'throughSeq': z.number().readonly(),
565
535
  'beforeSeq': z.number().readonly().optional(),
566
536
  'maxMessages': z.number().readonly().optional(),
567
- })
568
- const _deepseek_ai_dsh_api_session_controller_session_page_result$schema = z.object({
537
+ }))
538
+ let _deepseek_ai_dsh_api_session_controller_session_page_result$schema$value
539
+ const _deepseek_ai_dsh_api_session_controller_session_page_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_page_result$schema$value ??= z.object({
569
540
  'records': z.array(z.object({
570
541
  'type': z.literal("event").readonly(),
571
542
  'event': z.object({
572
543
  'type': z.string().readonly(),
573
544
  'seq': z.number().readonly(),
574
545
  'time': z.number().readonly(),
575
- 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2))]).readonly(),
546
+ 'data': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2()))]).readonly(),
576
547
  'ignorable': z.literal(true).readonly().optional(),
577
- 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2))]).readonly().optional(),
578
- 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2))]).readonly().optional(),
548
+ 'sourceEventSeqs': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2()))]).readonly().optional(),
549
+ 'surfaceOp': z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2()))]).readonly().optional(),
579
550
  }).readonly(),
580
551
  })).readonly(),
581
552
  'hasMore': z.boolean().readonly(),
582
- })
583
- const _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema = z.object({
553
+ }))
554
+ let _deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema$value
555
+ const _deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema$value ??= z.object({
556
+ 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
557
+ }))
558
+ let _deepseek_ai_dsh_api_session_controller_session_projections_result$schema$value
559
+ const _deepseek_ai_dsh_api_session_controller_session_projections_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_projections_result$schema$value ??= z.union([z.literal(null), z.object({
560
+ 'asOfSeq': z.number().readonly(),
561
+ 'values': z.intersection(z.object({
562
+ 'inbox': z.object({
563
+ 'next-turn': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4()))])).readonly(),
564
+ 'next-step': z.array(z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4()))])).readonly(),
565
+ }).optional(),
566
+ 'agentPreset': z.union([z.literal(null), z.string()]).optional(),
567
+ 'title': z.union([z.literal(null), z.string()]).optional(),
568
+ 'todos': z.union([z.literal(null), z.array(z.object({
569
+ 'content': z.string(),
570
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
571
+ }))]).optional(),
572
+ 'sessionListMetadata': z.object({
573
+ 'blank': z.boolean().readonly(),
574
+ 'lastPromptAt': z.union([z.literal(null), z.number()]).readonly(),
575
+ }).optional(),
576
+ 'imageLimits': z.object({
577
+ 'maxImageBytes': z.number(),
578
+ 'maxImagesPerMessage': z.number(),
579
+ 'maxMessageImageBytes': z.number(),
580
+ 'maxImagePixels': z.number(),
581
+ 'maxImageDimension': z.number(),
582
+ 'mediaTypes': z.array(z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")])),
583
+ }).optional(),
584
+ 'modelSelection': z.object({
585
+ 'lastUsed': z.union([z.literal(null), z.object({
586
+ 'provider': z.string().readonly(),
587
+ 'model': z.string().readonly(),
588
+ 'reasoningEffort': z.string().readonly().optional(),
589
+ })]).readonly(),
590
+ 'next': z.union([z.literal(null), z.object({
591
+ 'provider': z.string().readonly(),
592
+ 'model': z.string().readonly(),
593
+ 'reasoningEffort': z.string().readonly().optional(),
594
+ })]).readonly(),
595
+ }).optional(),
596
+ 'permissions': z.object({
597
+ 'currentValue': z.string(),
598
+ }).optional(),
599
+ 'subagentCatalog': z.array(z.union([z.intersection(z.object({
600
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
601
+ 'createdAt': z.number().readonly(),
602
+ }), z.object({
603
+ 'mode': z.literal("one-shot").readonly(),
604
+ 'label': z.string().readonly().optional(),
605
+ })), z.intersection(z.object({
606
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
607
+ 'createdAt': z.number().readonly(),
608
+ }), z.object({
609
+ 'mode': z.literal("continuable").readonly(),
610
+ 'label': z.string().readonly(),
611
+ })), z.intersection(z.object({
612
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
613
+ 'createdAt': z.number().readonly(),
614
+ }), z.object({
615
+ 'mode': z.literal("unknown").readonly(),
616
+ 'label': z.string().readonly().optional(),
617
+ }))])).optional(),
618
+ 'subagentTiming': z.object({
619
+ 'settledMs': z.number(),
620
+ 'active': z.object({
621
+ 'since': z.number(),
622
+ 'through': z.number(),
623
+ }).optional(),
624
+ 'lastTurnCompleted': z.boolean().optional(),
625
+ }).optional(),
626
+ 'subagent': z.union([z.literal(null), z.object({
627
+ 'mode': z.literal("one-shot"),
628
+ 'label': z.string().optional(),
629
+ 'seq': z.intersection(z.number(), z.unknown()),
630
+ }), z.object({
631
+ 'mode': z.literal("continuable"),
632
+ 'label': z.string(),
633
+ 'seq': z.intersection(z.number(), z.unknown()),
634
+ })]).optional(),
635
+ 'goal': z.union([z.literal(null), z.object({
636
+ 'goal': z.object({
637
+ 'objective': z.string().readonly(),
638
+ 'phase': z.union([z.literal("active"), z.literal("paused"), z.literal("blocked"), z.literal("complete")]).readonly(),
639
+ 'blockedReason': z.object({
640
+ 'code': z.string().readonly(),
641
+ 'message': z.string().readonly(),
642
+ }).readonly().optional(),
643
+ 'maxGoalRounds': z.number().readonly(),
644
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
645
+ 'revision': z.number().readonly(),
646
+ }).readonly(),
647
+ 'roundsStarted': z.number().readonly(),
648
+ 'createdAt': z.number().readonly(),
649
+ 'updatedAt': z.number().readonly(),
650
+ })]).optional(),
651
+ }), z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4())), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4()))])).readonly()).readonly(),
652
+ })]))
653
+ let _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema$value
654
+ const _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema$value ??= z.object({
584
655
  'requestId': z.intersection(z.string(), z.unknown()).readonly(),
585
656
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
586
657
  'mode': z.union([z.literal("queue"), z.literal("steer")]).readonly(),
@@ -597,98 +668,85 @@ const _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema
597
668
  'receiptId': z.intersection(z.string(), z.unknown()).readonly(),
598
669
  })])).readonly(),
599
670
  'clientTimeZone': z.string().readonly().optional(),
600
- })
601
- const _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema = z.object({
671
+ }))
672
+ let _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema$value
673
+ const _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_prompt_result$schema$value ??= z.object({
602
674
  'accepted': z.literal(true).readonly(),
603
- })
604
- const _deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema = z.object({
675
+ }))
676
+ let _deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema$value
677
+ const _deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema$value ??= z.object({
605
678
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
606
679
  'title': z.string().readonly(),
607
- })
608
- const _deepseek_ai_dsh_api_session_controller_session_rename_result$schema = z.object({
680
+ }))
681
+ let _deepseek_ai_dsh_api_session_controller_session_rename_result$schema$value
682
+ const _deepseek_ai_dsh_api_session_controller_session_rename_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_rename_result$schema$value ??= z.object({
609
683
  'title': z.string().readonly(),
610
684
  'seq': z.number().readonly(),
611
- })
612
- const _deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema = z.object({
685
+ }))
686
+ let _deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema$value
687
+ const _deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema$value ??= z.object({
613
688
  'query': z.string().readonly(),
614
- })
615
- const _deepseek_ai_dsh_api_session_controller_session_search_result$schema = z.object({
689
+ }))
690
+ let _deepseek_ai_dsh_api_session_controller_session_search_result$schema$value
691
+ const _deepseek_ai_dsh_api_session_controller_session_search_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_search_result$schema$value ??= z.object({
616
692
  'items': z.array(z.object({
617
693
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
618
694
  'snippet': z.string().readonly(),
619
695
  })).readonly(),
620
696
  'hasMore': z.boolean().readonly(),
621
- })
622
- const _deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema = z.object({
697
+ }))
698
+ let _deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema$value
699
+ const _deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema$value ??= z.object({
623
700
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
624
701
  'provider': z.string().readonly(),
625
702
  'model': z.string().readonly(),
626
703
  'reasoningEffort': z.string().readonly().optional(),
627
- })
628
- const _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema = z.object({
704
+ }))
705
+ let _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema$value
706
+ const _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema$value ??= z.object({
629
707
  'selected': z.object({
630
708
  'provider': z.string().readonly(),
631
709
  'model': z.string().readonly(),
632
710
  'reasoningEffort': z.string().readonly().optional(),
633
711
  }).readonly(),
634
- })
635
- const _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema = z.object({
712
+ }))
713
+ let _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema$value
714
+ const _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema$value ??= z.object({
636
715
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
637
716
  'itemId': z.intersection(z.string(), z.unknown()).readonly(),
638
717
  'action': z.union([z.object({
639
718
  'kind': z.literal("edit").readonly(),
640
- 'content': z.array(z.union([z.object({
641
- 'type': z.literal("file"),
642
- 'attachment': z.object({
643
- 'attachmentId': z.intersection(z.string(), z.unknown()),
644
- 'name': z.string(),
645
- 'bytes': z.number(),
646
- }),
647
- }), z.object({
719
+ 'content': z.array(z.object({
648
720
  'type': z.literal("text"),
649
721
  'text': z.string(),
650
- }), z.object({
651
- 'type': z.literal("image"),
652
- 'attachment': z.object({
653
- 'attachmentId': z.intersection(z.string(), z.unknown()),
654
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
655
- 'bytes': z.number(),
656
- 'width': z.number(),
657
- 'height': z.number(),
658
- 'name': z.string().optional(),
659
- 'originalDimensions': z.object({
660
- 'width': z.number(),
661
- 'height': z.number(),
662
- }).optional(),
663
- }),
664
- 'offloaded': z.literal(true).optional(),
665
- }), z.object({
666
- 'type': z.literal("reasoning"),
667
- 'text': z.string(),
668
- }), z.object({
669
- 'type': z.literal("tool-call"),
670
- 'id': z.intersection(z.string(), z.unknown()),
671
- 'name': z.string(),
672
- 'arguments': z.string(),
673
- }), z.object({
674
- 'type': z.literal("tool-result"),
675
- 'toolCallId': z.intersection(z.string(), z.unknown()),
676
- 'content': z.array(z.lazy(() => ContentBlockRemoteCodec$schema)),
677
- 'isError': z.boolean().optional(),
678
- })])).readonly(),
722
+ })).readonly(),
679
723
  }), z.object({
680
724
  'kind': z.literal("remove").readonly(),
681
725
  }), z.object({
682
726
  'kind': z.literal("steer").readonly(),
683
727
  })]).readonly(),
684
- })
685
- const _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema = z.object({
728
+ }))
729
+ let _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema$value
730
+ const _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema$value ??= z.object({
686
731
  'accepted': z.literal(true).readonly(),
687
- })
688
- const _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema = z.object({
732
+ }))
733
+ let _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema$value
734
+ const _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema$value ??= z.object({
735
+ 'path': z.string().readonly(),
736
+ }))
737
+ let _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema$value
738
+ const _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema$value ??= z.array(z.object({
739
+ 'id': z.string().readonly(),
740
+ 'name': z.string().readonly(),
741
+ 'default': z.boolean().readonly(),
742
+ 'icon': z.union([z.literal(null), z.string()]).readonly(),
743
+ })))
744
+ let _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema$value
745
+ const _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema = () => (_deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema$value ??= z.object({
689
746
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
690
- })
691
- const _deepseek_ai_dsh_api_session_controller_skills_list_result$schema = z.object({
747
+ }))
748
+ let _deepseek_ai_dsh_api_session_controller_skills_list_result$schema$value
749
+ const _deepseek_ai_dsh_api_session_controller_skills_list_result$schema = () => (_deepseek_ai_dsh_api_session_controller_skills_list_result$schema$value ??= z.object({
692
750
  'skills': z.array(z.object({
693
751
  'path': z.string().readonly().optional(),
694
752
  'name': z.string().readonly(),
@@ -696,7 +754,7 @@ const _deepseek_ai_dsh_api_session_controller_skills_list_result$schema = z.obje
696
754
  'whenToUse': z.string().readonly().optional(),
697
755
  'modelInvocable': z.boolean().readonly(),
698
756
  })).readonly(),
699
- })
757
+ }))
700
758
 
701
759
  export const TYPERT = {
702
760
  package: '@deepseek-ai/dsh-api-session-controller',
@@ -723,7 +781,7 @@ export const TYPERT = {
723
781
  codec: {
724
782
  mode: 'strict',
725
783
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
726
- schema: _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema,
784
+ create: _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema,
727
785
  },
728
786
  },
729
787
  {
@@ -733,7 +791,7 @@ export const TYPERT = {
733
791
  codec: {
734
792
  mode: 'strict',
735
793
  typeSymbol: '@deepseek-ai/dsh-api-session-controller#fileReferences/list:query',
736
- schema: _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema,
794
+ create: _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema,
737
795
  },
738
796
  },
739
797
  ],
@@ -741,7 +799,7 @@ export const TYPERT = {
741
799
  result: {
742
800
  mode: 'strict',
743
801
  typeSymbol: '@deepseek-ai/dsh-api-session-controller#fileReferences/list:result',
744
- schema: _deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema,
802
+ create: _deepseek_ai_dsh_api_session_controller_fileReferences_list_result$schema,
745
803
  },
746
804
  sourceLocation: {"file":"packages/api/session-controller/src/file-references.ts","line":33,"column":3},
747
805
  },
@@ -759,16 +817,16 @@ export const TYPERT = {
759
817
  codec: {
760
818
  mode: 'strict',
761
819
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentRequest',
762
- schema: _deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema,
820
+ create: _deepseek_ai_dsh_api_session_controller_session_attachment_parameter_0$schema,
763
821
  },
764
822
  },
765
823
  ],
766
824
  result: {
767
825
  mode: 'strict',
768
826
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentValue',
769
- schema: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
827
+ create: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
770
828
  },
771
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":358,"column":3},
829
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":419,"column":3},
772
830
  },
773
831
  {
774
832
  id: '@deepseek-ai/dsh-api-session-controller#session/cancel',
@@ -784,16 +842,16 @@ export const TYPERT = {
784
842
  codec: {
785
843
  mode: 'strict',
786
844
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelRequest',
787
- schema: _deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema,
845
+ create: _deepseek_ai_dsh_api_session_controller_session_cancel_parameter_0$schema,
788
846
  },
789
847
  },
790
848
  ],
791
849
  result: {
792
850
  mode: 'strict',
793
851
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelValue',
794
- schema: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
852
+ create: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
795
853
  },
796
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":378,"column":3},
854
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":439,"column":3},
797
855
  },
798
856
  {
799
857
  id: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath',
@@ -806,9 +864,9 @@ export const TYPERT = {
806
864
  result: {
807
865
  mode: 'strict',
808
866
  typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath:result',
809
- schema: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
867
+ create: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
810
868
  },
811
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
869
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":301,"column":3},
812
870
  },
813
871
  {
814
872
  id: '@deepseek-ai/dsh-api-session-controller#session/control',
@@ -823,9 +881,9 @@ export const TYPERT = {
823
881
  result: {
824
882
  mode: 'strict',
825
883
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionControlFrame',
826
- schema: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
884
+ create: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
827
885
  },
828
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":411,"column":3},
886
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":502,"column":3},
829
887
  },
830
888
  {
831
889
  id: '@deepseek-ai/dsh-api-session-controller#session/create',
@@ -841,16 +899,16 @@ export const TYPERT = {
841
899
  codec: {
842
900
  mode: 'strict',
843
901
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateRequest',
844
- schema: _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema,
902
+ create: _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema,
845
903
  },
846
904
  },
847
905
  ],
848
906
  result: {
849
907
  mode: 'strict',
850
908
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateValue',
851
- schema: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
909
+ create: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
852
910
  },
853
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":245,"column":3},
911
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
854
912
  },
855
913
  {
856
914
  id: '@deepseek-ai/dsh-api-session-controller#session/follow',
@@ -867,7 +925,7 @@ export const TYPERT = {
867
925
  codec: {
868
926
  mode: 'strict',
869
927
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowRequest',
870
- schema: _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema,
928
+ create: _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema,
871
929
  },
872
930
  },
873
931
  ],
@@ -875,9 +933,9 @@ export const TYPERT = {
875
933
  result: {
876
934
  mode: 'strict',
877
935
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowFrame',
878
- schema: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
936
+ create: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
879
937
  },
880
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":401,"column":3},
938
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":462,"column":3},
881
939
  },
882
940
  {
883
941
  id: '@deepseek-ai/dsh-api-session-controller#session/fork',
@@ -893,16 +951,16 @@ export const TYPERT = {
893
951
  codec: {
894
952
  mode: 'strict',
895
953
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkRequest',
896
- schema: _deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema,
954
+ create: _deepseek_ai_dsh_api_session_controller_session_fork_parameter_0$schema,
897
955
  },
898
956
  },
899
957
  ],
900
958
  result: {
901
959
  mode: 'strict',
902
960
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkValue',
903
- schema: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
961
+ create: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
904
962
  },
905
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":336,"column":3},
963
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":397,"column":3},
906
964
  },
907
965
  {
908
966
  id: '@deepseek-ai/dsh-api-session-controller#session/list',
@@ -918,7 +976,7 @@ export const TYPERT = {
918
976
  codec: {
919
977
  mode: 'strict',
920
978
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListRequest',
921
- schema: _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema,
979
+ create: _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema,
922
980
  },
923
981
  },
924
982
  ],
@@ -926,9 +984,9 @@ export const TYPERT = {
926
984
  result: {
927
985
  mode: 'strict',
928
986
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListValue',
929
- schema: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
987
+ create: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
930
988
  },
931
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":224,"column":9},
989
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":252,"column":9},
932
990
  },
933
991
  {
934
992
  id: '@deepseek-ai/dsh-api-session-controller#session/modelCatalog',
@@ -941,9 +999,9 @@ export const TYPERT = {
941
999
  result: {
942
1000
  mode: 'strict',
943
1001
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#ModelCatalog',
944
- schema: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
1002
+ create: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
945
1003
  },
946
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":264,"column":3},
1004
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":292,"column":3},
947
1005
  },
948
1006
  {
949
1007
  id: '@deepseek-ai/dsh-api-session-controller#session/openWorkspacePath',
@@ -959,7 +1017,7 @@ export const TYPERT = {
959
1017
  codec: {
960
1018
  mode: 'strict',
961
1019
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathRequest',
962
- schema: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema,
1020
+ create: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema,
963
1021
  },
964
1022
  },
965
1023
  ],
@@ -967,9 +1025,9 @@ export const TYPERT = {
967
1025
  result: {
968
1026
  mode: 'strict',
969
1027
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathValue',
970
- schema: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
1028
+ create: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
971
1029
  },
972
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":294,"column":9},
1030
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":322,"column":9},
973
1031
  },
974
1032
  {
975
1033
  id: '@deepseek-ai/dsh-api-session-controller#session/page',
@@ -985,7 +1043,7 @@ export const TYPERT = {
985
1043
  codec: {
986
1044
  mode: 'strict',
987
1045
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPageRequest',
988
- schema: _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema,
1046
+ create: _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema,
989
1047
  },
990
1048
  },
991
1049
  ],
@@ -993,9 +1051,35 @@ export const TYPERT = {
993
1051
  result: {
994
1052
  mode: 'strict',
995
1053
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPage',
996
- schema: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
1054
+ create: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
1055
+ },
1056
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":450,"column":3},
1057
+ },
1058
+ {
1059
+ id: '@deepseek-ai/dsh-api-session-controller#session/projections',
1060
+ service: 'sessionController',
1061
+ namespace: 'session',
1062
+ method: 'projections',
1063
+ invocation: { kind: 'direct' },
1064
+ parameters: [
1065
+ {
1066
+ name: 'request',
1067
+ wire: 'request',
1068
+ source: 'json',
1069
+ codec: {
1070
+ mode: 'strict',
1071
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionProjectionsRequest',
1072
+ create: _deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema,
1073
+ },
1074
+ },
1075
+ ],
1076
+ cancellation: { parameter: 'signal' },
1077
+ result: {
1078
+ mode: 'strict',
1079
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionProjectionsValue',
1080
+ create: _deepseek_ai_dsh_api_session_controller_session_projections_result$schema,
997
1081
  },
998
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":389,"column":3},
1082
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":473,"column":9},
999
1083
  },
1000
1084
  {
1001
1085
  id: '@deepseek-ai/dsh-api-session-controller#session/prompt',
@@ -1011,7 +1095,7 @@ export const TYPERT = {
1011
1095
  codec: {
1012
1096
  mode: 'strict',
1013
1097
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptRequest',
1014
- schema: _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema,
1098
+ create: _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema,
1015
1099
  },
1016
1100
  },
1017
1101
  ],
@@ -1019,9 +1103,9 @@ export const TYPERT = {
1019
1103
  result: {
1020
1104
  mode: 'strict',
1021
1105
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptValue',
1022
- schema: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
1106
+ create: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
1023
1107
  },
1024
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":347,"column":3},
1108
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":408,"column":3},
1025
1109
  },
1026
1110
  {
1027
1111
  id: '@deepseek-ai/dsh-api-session-controller#session/rename',
@@ -1037,16 +1121,16 @@ export const TYPERT = {
1037
1121
  codec: {
1038
1122
  mode: 'strict',
1039
1123
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameRequest',
1040
- schema: _deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema,
1124
+ create: _deepseek_ai_dsh_api_session_controller_session_rename_parameter_0$schema,
1041
1125
  },
1042
1126
  },
1043
1127
  ],
1044
1128
  result: {
1045
1129
  mode: 'strict',
1046
1130
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameValue',
1047
- schema: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
1131
+ create: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
1048
1132
  },
1049
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":326,"column":3},
1133
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":385,"column":3},
1050
1134
  },
1051
1135
  {
1052
1136
  id: '@deepseek-ai/dsh-api-session-controller#session/search',
@@ -1062,7 +1146,7 @@ export const TYPERT = {
1062
1146
  codec: {
1063
1147
  mode: 'strict',
1064
1148
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchRequest',
1065
- schema: _deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema,
1149
+ create: _deepseek_ai_dsh_api_session_controller_session_search_parameter_0$schema,
1066
1150
  },
1067
1151
  },
1068
1152
  ],
@@ -1070,9 +1154,9 @@ export const TYPERT = {
1070
1154
  result: {
1071
1155
  mode: 'strict',
1072
1156
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchValue',
1073
- schema: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
1157
+ create: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
1074
1158
  },
1075
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":235,"column":3},
1159
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":263,"column":3},
1076
1160
  },
1077
1161
  {
1078
1162
  id: '@deepseek-ai/dsh-api-session-controller#session/selectModel',
@@ -1088,16 +1172,16 @@ export const TYPERT = {
1088
1172
  codec: {
1089
1173
  mode: 'strict',
1090
1174
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelRequest',
1091
- schema: _deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema,
1175
+ create: _deepseek_ai_dsh_api_session_controller_session_selectModel_parameter_0$schema,
1092
1176
  },
1093
1177
  },
1094
1178
  ],
1095
1179
  result: {
1096
1180
  mode: 'strict',
1097
1181
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelValue',
1098
- schema: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
1182
+ create: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
1099
1183
  },
1100
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":255,"column":3},
1184
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":283,"column":3},
1101
1185
  },
1102
1186
  {
1103
1187
  id: '@deepseek-ai/dsh-api-session-controller#session/updateQueue',
@@ -1113,16 +1197,42 @@ export const TYPERT = {
1113
1197
  codec: {
1114
1198
  mode: 'strict',
1115
1199
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueRequest',
1116
- schema: _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema,
1200
+ create: _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$schema,
1117
1201
  },
1118
1202
  },
1119
1203
  ],
1120
1204
  result: {
1121
1205
  mode: 'strict',
1122
1206
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueValue',
1123
- schema: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
1207
+ create: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
1124
1208
  },
1125
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":368,"column":3},
1209
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":429,"column":3},
1210
+ },
1211
+ {
1212
+ id: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications',
1213
+ service: 'sessionController',
1214
+ namespace: 'session',
1215
+ method: 'workspacePathApplications',
1216
+ invocation: { kind: 'direct' },
1217
+ parameters: [
1218
+ {
1219
+ name: 'request',
1220
+ wire: 'request',
1221
+ source: 'json',
1222
+ codec: {
1223
+ mode: 'strict',
1224
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications:request',
1225
+ create: _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema,
1226
+ },
1227
+ },
1228
+ ],
1229
+ cancellation: { parameter: 'signal' },
1230
+ result: {
1231
+ mode: 'strict',
1232
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications:result',
1233
+ create: _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema,
1234
+ },
1235
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":352,"column":9},
1126
1236
  },
1127
1237
  {
1128
1238
  id: '@deepseek-ai/dsh-api-session-controller#skills/list',
@@ -1138,7 +1248,7 @@ export const TYPERT = {
1138
1248
  codec: {
1139
1249
  mode: 'strict',
1140
1250
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SkillListRequest',
1141
- schema: _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema,
1251
+ create: _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema,
1142
1252
  },
1143
1253
  },
1144
1254
  ],
@@ -1146,9 +1256,9 @@ export const TYPERT = {
1146
1256
  result: {
1147
1257
  mode: 'strict',
1148
1258
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SkillListValue',
1149
- schema: _deepseek_ai_dsh_api_session_controller_skills_list_result$schema,
1259
+ create: _deepseek_ai_dsh_api_session_controller_skills_list_result$schema,
1150
1260
  },
1151
- sourceLocation: {"file":"packages/api/session-controller/src/skill-catalog.ts","line":36,"column":9},
1261
+ sourceLocation: {"file":"packages/api/session-controller/src/skill-catalog.ts","line":35,"column":9},
1152
1262
  },
1153
1263
  ],
1154
1264
  model: {
@@ -1228,8 +1338,15 @@ export const TYPERT = {
1228
1338
  "kind": "method",
1229
1339
  "name": "openWorkspacePath",
1230
1340
  "signature": "@Remote('openWorkspacePath') async openWorkspacePath( request: SessionOpenWorkspacePathRequest, signal: AbortSignal, ): Promise<SessionOpenWorkspacePathValue>",
1231
- "summary": "Open one path prepared by a Session-aware caller on the Host desktop.",
1232
- "jsDoc": "/**\n * Open one path prepared by a Session-aware caller on the Host desktop.\n * @param request - path after best-effort Session workspace resolution.\n * @param signal - caller lifetime; abort terminates the native command.\n * @returns confirmation after the native opener accepts the path.\n * @throws RemoteError when the request is invalid, cancelled, or the opener fails.\n */"
1341
+ "summary": "Verify one path through the composed filesystem and open it on the Host desktop.",
1342
+ "jsDoc": "/**\n * Verify one path through the composed filesystem and open it on the Host desktop.\n * @param request - path after best-effort Session workspace resolution.\n * @param signal - caller lifetime; abort terminates the native command.\n * @returns confirmation after the native opener accepts the path.\n * @throws RemoteError when the request is invalid, has no verified Host mapping, is cancelled, or the opener fails.\n */"
1343
+ },
1344
+ {
1345
+ "kind": "method",
1346
+ "name": "workspacePathApplications",
1347
+ "signature": "@Remote('workspacePathApplications') async workspacePathApplications( request: { readonly path: string }, signal: AbortSignal, ): Promise<readonly SessionWorkspacePathApplication[]>",
1348
+ "summary": "Query current file handlers on the serving desktop without activating an Agent.",
1349
+ "jsDoc": "/**\n * Query current file handlers on the serving desktop without activating an Agent.\n * @param request - file path in Host filesystem syntax.\n * @param signal - caller lifetime, propagated to filesystem and desktop queries.\n * @returns OS application names, icons, and default selection; empty when desktop opening is unavailable.\n * @throws RemoteError when the path is invalid, the query is cancelled, or native discovery fails.\n */"
1233
1350
  },
1234
1351
  {
1235
1352
  "kind": "method",
@@ -1242,8 +1359,8 @@ export const TYPERT = {
1242
1359
  "kind": "method",
1243
1360
  "name": "fork",
1244
1361
  "signature": "@Remote('fork') fork(request: SessionForkRequest): Promise<SessionForkValue>",
1245
- "summary": "Fork one cold-readable completed-turn prefix into a new Session.",
1246
- "jsDoc": "/**\n * Fork one cold-readable completed-turn prefix into a new Session.\n * @param request - source Session and optional event anchor.\n * @returns the new Session identity.\n */"
1362
+ "summary": "Fork one cold-readable exact event prefix into a new Session.",
1363
+ "jsDoc": "/**\n * Fork one cold-readable exact event prefix into a new Session. An omitted\n * boundary selects the latest completed-turn prefix; an open cut receives\n * synthetic fork closers.\n * @param request - source Session and optional exact inclusive event boundary.\n * @returns the new Session identity.\n */"
1247
1364
  },
1248
1365
  {
1249
1366
  "kind": "method",
@@ -1262,9 +1379,9 @@ export const TYPERT = {
1262
1379
  {
1263
1380
  "kind": "method",
1264
1381
  "name": "updateQueue",
1265
- "signature": "@Remote('updateQueue') updateQueue(request: SessionUpdateQueueRequest): SessionUpdateQueueValue",
1266
- "summary": "Mutate one still-pending queue occurrence on a live Agent.",
1267
- "jsDoc": "/**\n * Mutate one still-pending queue occurrence on a live Agent.\n * @param request - Session, queue item, and requested mutation.\n * @returns acknowledgement that the queue mutation was applied.\n */"
1382
+ "signature": "@Remote('updateQueue') updateQueue(request: SessionUpdateQueueRequest): Promise<SessionUpdateQueueValue>",
1383
+ "summary": "Mutate one still-pending queue occurrence, resuming a cold Agent first.",
1384
+ "jsDoc": "/**\n * Mutate one still-pending queue occurrence, resuming a cold Agent first.\n * @param request - Session, queue item, and requested mutation.\n * @returns acknowledgement that the queue mutation was applied.\n */"
1268
1385
  },
1269
1386
  {
1270
1387
  "kind": "method",
@@ -1287,6 +1404,13 @@ export const TYPERT = {
1287
1404
  "summary": "Follow one Session log from its opening or resume cursor.",
1288
1405
  "jsDoc": "/**\n * Follow one Session log from its opening or resume cursor.\n * @param request - durable address and last committed sequence already held by the caller.\n * @param signal - cancellation owned by the Remote stream carrier.\n * @returns a complete opening snapshot followed by gap-free durable event\n * frames and optional cursorless assistant-stream frames.\n */"
1289
1406
  },
1407
+ {
1408
+ "kind": "method",
1409
+ "name": "projections",
1410
+ "signature": "@Remote('projections') async projections(request: SessionProjectionsRequest, signal: AbortSignal): Promise<SessionProjectionsValue>",
1411
+ "summary": "Read all registered projections without activating an Agent.",
1412
+ "jsDoc": "/**\n * Read all registered projections without activating an Agent.\n * @param request - Session whose current values are required.\n * @param signal - cancellation for the Session observation.\n * @returns complete baseline, or null when the Session does not exist.\n */"
1413
+ },
1290
1414
  {
1291
1415
  "kind": "method",
1292
1416
  "name": "control",
@@ -1318,7 +1442,7 @@ export const TYPERT = {
1318
1442
  },
1319
1443
  {
1320
1444
  "name": "ApiSessionAgentError",
1321
- "declaration": "export type ApiSessionAgentError = RemoteError<'session/not-found' | 'session/agent-busy' | 'gateway/internal'>;"
1445
+ "declaration": "export type ApiSessionAgentError = RemoteError<'session/not-found' | 'session/agent-busy' | 'session/writer-held' | 'gateway/internal'>;"
1322
1446
  },
1323
1447
  {
1324
1448
  "name": "ApiSessionAgentResult",
@@ -1338,7 +1462,7 @@ export const TYPERT = {
1338
1462
  },
1339
1463
  {
1340
1464
  "name": "AssistantMessage",
1341
- "declaration": "export interface AssistantMessage extends Message {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
1465
+ "declaration": "export interface AssistantMessage extends MessageBase {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
1342
1466
  },
1343
1467
  {
1344
1468
  "name": "AssistantProviderMetadata",
@@ -1376,6 +1500,10 @@ export const TYPERT = {
1376
1500
  "name": "CommandSourceMap",
1377
1501
  "declaration": "export interface CommandSourceMap {\n user: { kind: 'user'; };\n}"
1378
1502
  },
1503
+ {
1504
+ "name": "CompactionCheckpointSource",
1505
+ "declaration": "export type CompactionCheckpointSource = typeof COMPACT_CHECKPOINT_MARKER & { readonly compactionId: CompactionId; readonly sourceCommandId?: CommandId; };"
1506
+ },
1379
1507
  {
1380
1508
  "name": "CompactionId",
1381
1509
  "declaration": "export type CompactionId = Branded<'CompactionId'>;"
@@ -1386,7 +1514,7 @@ export const TYPERT = {
1386
1514
  },
1387
1515
  {
1388
1516
  "name": "ContentBlockMap",
1389
- "declaration": "export interface ContentBlockMap {\n text: TextBlock;\n reasoning: ReasoningBlock;\n image: ImageBlock;\n file: FileBlock;\n 'tool-call': ToolCallBlock;\n 'tool-result': ToolResultBlock;\n}"
1517
+ "declaration": "export interface ContentBlockMap {\n text: TextBlock;\n reasoning: ReasoningBlock;\n image: ImageBlock;\n file: FileBlock;\n 'tool-call': ToolCallBlock;\n 'tool-addition': ToolAdditionBlock;\n 'tool-removal': ToolRemovalBlock;\n}"
1390
1518
  },
1391
1519
  {
1392
1520
  "name": "ContentBlockType",
@@ -1404,9 +1532,13 @@ export const TYPERT = {
1404
1532
  "name": "ContinuableSubagentDescriptorData",
1405
1533
  "declaration": "export interface ContinuableSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'continuable';\n readonly label: string;\n readonly agentProvider?: string;\n readonly agentModel?: string;\n readonly agentReasoningEffort?: ReasoningEffortId;\n readonly persona?: string;\n readonly toolFilter?: ToolRestriction;\n}"
1406
1534
  },
1535
+ {
1536
+ "name": "DeveloperMessage",
1537
+ "declaration": "export interface DeveloperMessage extends MessageBase {\n readonly role: 'developer';\n}"
1538
+ },
1407
1539
  {
1408
1540
  "name": "EpochHeader",
1409
- "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n}"
1541
+ "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n system?: never;\n}"
1410
1542
  },
1411
1543
  {
1412
1544
  "name": "FeedbackCategory",
@@ -1516,6 +1648,10 @@ export const TYPERT = {
1516
1648
  "name": "JsonValue",
1517
1649
  "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
1518
1650
  },
1651
+ {
1652
+ "name": "KnownCatalogMode",
1653
+ "declaration": "export type KnownCatalogMode = { readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; };"
1654
+ },
1519
1655
  {
1520
1656
  "name": "LlmAttemptId",
1521
1657
  "declaration": "export type LlmAttemptId = Branded<'LlmAttemptId'>;"
@@ -1534,7 +1670,11 @@ export const TYPERT = {
1534
1670
  },
1535
1671
  {
1536
1672
  "name": "Message",
1537
- "declaration": "export interface Message {\n readonly id: MessageId;\n readonly role: 'system' | 'user' | 'assistant';\n readonly content: ContentBlock[];\n readonly source: MessageSource;\n}"
1673
+ "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
1674
+ },
1675
+ {
1676
+ "name": "MessageBase",
1677
+ "declaration": "export interface MessageBase {\n readonly id: MessageId;\n readonly content: readonly ContentBlock[];\n readonly source: MessageSource;\n}"
1538
1678
  },
1539
1679
  {
1540
1680
  "name": "MessageFeedbackDelete",
@@ -1560,13 +1700,17 @@ export const TYPERT = {
1560
1700
  "name": "MessageId",
1561
1701
  "declaration": "export type MessageId = Branded<'MessageId'>;"
1562
1702
  },
1703
+ {
1704
+ "name": "MessageRoleMap",
1705
+ "declaration": "export interface MessageRoleMap {\n system: SystemMessage;\n developer: DeveloperMessage;\n user: UserMessage;\n assistant: AssistantMessage;\n tool: ToolResultMessage;\n}"
1706
+ },
1563
1707
  {
1564
1708
  "name": "MessageSource",
1565
1709
  "declaration": "export type MessageSource = MessageSourceMap[keyof MessageSourceMap];"
1566
1710
  },
1567
1711
  {
1568
1712
  "name": "MessageSourceMap",
1569
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n plugin: { kind: 'plugin'; plugin: string; } & ContextFormed;\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'session-reference': SessionReferenceSource;\n}"
1713
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'session-reference': SessionReferenceSource;\n}"
1570
1714
  },
1571
1715
  {
1572
1716
  "name": "ModelCatalog",
@@ -1604,6 +1748,14 @@ export const TYPERT = {
1604
1748
  "name": "ModelSelectionProjection",
1605
1749
  "declaration": "export interface ModelSelectionProjection {\n readonly lastUsed: ModelSelection | null;\n readonly next: ModelSelection | null;\n}"
1606
1750
  },
1751
+ {
1752
+ "name": "NativeFileApplication",
1753
+ "declaration": "export interface NativeFileApplication {\n readonly id: string;\n readonly name: string;\n readonly default: boolean;\n readonly icon: string | null;\n}"
1754
+ },
1755
+ {
1756
+ "name": "OfficeToPdfErrorCode",
1757
+ "declaration": "export type OfficeToPdfErrorCode = 'input-too-large' | 'output-too-large' | 'invalid-document' | 'unsupported-format' | 'invalid-output' | 'timeout' | 'unavailable' | 'failed' | 'busy' | 'source-changed';"
1758
+ },
1607
1759
  {
1608
1760
  "name": "OneShotSubagentDescriptorData",
1609
1761
  "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'one-shot';\n readonly label?: string;\n}"
@@ -1634,7 +1786,7 @@ export const TYPERT = {
1634
1786
  },
1635
1787
  {
1636
1788
  "name": "QueueAction",
1637
- "declaration": "export type QueueAction = { readonly kind: 'edit'; readonly content: readonly ContentBlock[]; } | { readonly kind: 'remove'; } | { readonly kind: 'steer'; };"
1789
+ "declaration": "export type QueueAction = { readonly kind: 'edit'; readonly content: readonly TextBlock[]; } | { readonly kind: 'remove'; } | { readonly kind: 'steer'; };"
1638
1790
  },
1639
1791
  {
1640
1792
  "name": "ReasoningBlock",
@@ -1654,7 +1806,7 @@ export const TYPERT = {
1654
1806
  },
1655
1807
  {
1656
1808
  "name": "RemoteErrorDetailsMap",
1657
- "declaration": "export interface RemoteErrorDetailsMap {\n 'gateway/bad-request': { readonly issues?: readonly object[]; };\n 'gateway/cancelled': {};\n 'gateway/internal': {};\n 'llm/model-discovery-rejected': { readonly settingsNs: string; readonly baseURL?: string; };\n 'session/not-found': { readonly sessionId: SessionId; };\n 'agent-preset/not-found': { readonly agentPreset: string; readonly available: readonly string[]; };\n 'agent-preset/invalid': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/read-only': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/locked': { readonly sessionId: SessionId; readonly agentPreset: string; };\n 'workspace/not-found': { readonly workspaceId: WorkspaceId; };\n 'session/model-unavailable': { readonly provider: string; readonly model: string; };\n 'session/conflict': { readonly sessionId: SessionId; readonly requestedCwd: string; readonly existingCwd?: string; };\n 'session/agent-busy': { readonly reason: string; };\n 'session/invalid-time-zone': { readonly value: string; };\n 'session/workspace-attach-failed': { readonly sessionId: SessionId; readonly workspaceId: string; };\n 'agent-preset/conflict': { readonly sessionId: SessionId; readonly requestedPreset: string; readonly existingPreset?: string; };\n 'session/attachment-invalid': { readonly reason: string; };\n 'session/queue-item-not-found': { readonly itemId: MessageId; };\n 'session/steer-unavailable': { readonly itemId: MessageId; };\n 'session/title-invalid': { readonly sessionId: SessionId; };\n 'session/fork-unavailable': { readonly sessionId: SessionId; };\n 'subagent/not-found': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; };\n 'subagent/catalog-diagnostic': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly reason: 'corrupt' | 'unsupported' | 'unavailable'; };\n 'subagent/invalid-time-zone': { readonly value: string; };\n 'subagent/parent-unavailable': { readonly parentSessionId: SessionId; };\n 'subagent/not-resumable': { readonly childSessionId: SessionId; };\n 'subagent/unauthorized': { readonly childSessionId: SessionId; };\n 'subagent/attachment-invalid': { readonly reason: string; };\n 'subagent/delivery-unavailable': { readonly childSessionId: SessionId; };\n 'subagent/projections-unavailable': {};\n 'settings/rejected': { readonly ns: string; };\n 'settings/conflict': { readonly ns: string; readonly expected: number; readonly actual: number; };\n 'credential/rejected': { readonly ref: string; };\n 'terminal/control-unavailable': { readonly reason: 'read-only' | 'not-running'; };\n 'terminal/limit-reached': { readonly limit: number; };\n 'workspace/invalid-path': { readonly path: string; };\n 'workspace/name-conflict': { readonly name: string; };\n 'workspace/move-invalid': { readonly workspaceId: WorkspaceId; readonly sessionId: SessionId; readonly beforeSessionId?: SessionId; };\n 'directory-picker/unavailable': { readonly capability: string; };\n 'directory-picker/unreadable': { readonly path: string; };\n 'directory-picker/exists': { readonly path: string; };\n 'directory-picker/create-failed': { readonly path: string; };\n 'workspace-file/not-found': { readonly path: string; };\n 'workspace-file/outside-workspace': { readonly path: string; };\n 'workspace-file/too-large': { readonly path: string; readonly limit: number; };\n 'workspace-file/not-text': { readonly path: string; };\n 'workspace-file/not-regular-file': { readonly path: string; readonly kind: 'directory' | 'symlink' | 'other'; };\n 'workspace-file/not-directory': { readonly path: string; readonly kind: 'file' | 'symlink' | 'other'; };\n}"
1809
+ "declaration": "export interface RemoteErrorDetailsMap {\n 'gateway/bad-request': { readonly issues?: readonly object[]; };\n 'gateway/cancelled': {};\n 'gateway/internal': {};\n 'llm/model-discovery-rejected': { readonly settingsNs: string; readonly baseURL?: string; };\n 'session/not-found': { readonly sessionId: SessionId; };\n 'workspace/not-found': { readonly workspaceId: WorkspaceId; };\n 'agent-preset/not-found': { readonly agentPreset: string; readonly available: readonly string[]; };\n 'agent-preset/invalid': { readonly agentPreset: string; readonly reason: string; };\n 'agent-preset/locked': { readonly sessionId: SessionId; readonly agentPreset: string; };\n 'job/not-found': { readonly sessionId: SessionId; readonly jobId: JobId; };\n 'session/model-unavailable': { readonly provider: string; readonly model: string; };\n 'session/conflict': { readonly sessionId: SessionId; readonly requestedCwd: string; readonly existingCwd?: string; };\n 'session/projections-unavailable': Record<string, never>;\n 'session/writer-held': { readonly sessionId: SessionId; };\n 'session/agent-busy': { readonly reason: string; };\n 'session/invalid-time-zone': { readonly value: string; };\n 'session/workspace-attach-failed': { readonly sessionId: SessionId; readonly workspaceId: string; };\n 'agent-preset/conflict': { readonly sessionId: SessionId; readonly requestedPreset: string; readonly existingPreset?: string; };\n 'session/attachment-invalid': { readonly reason: string; };\n 'session/queue-item-not-found': { readonly itemId: MessageId; };\n 'session/steer-unavailable': { readonly itemId: MessageId; };\n 'session/title-invalid': { readonly sessionId: SessionId; };\n 'session/fork-unavailable': { readonly sessionId: SessionId; };\n 'subagent/not-found': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; };\n 'subagent/catalog-diagnostic': { readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly reason: 'corrupt' | 'unsupported' | 'unavailable'; };\n 'subagent/invalid-time-zone': { readonly value: string; };\n 'subagent/parent-unavailable': { readonly parentSessionId: SessionId; };\n 'subagent/not-resumable': { readonly childSessionId: SessionId; };\n 'subagent/unauthorized': { readonly childSessionId: SessionId; };\n 'subagent/attachment-invalid': { readonly reason: string; };\n 'subagent/delivery-unavailable': { readonly childSessionId: SessionId; };\n 'settings/rejected': { readonly ns: string; };\n 'settings/conflict': { readonly ns: string; readonly expected: number; readonly actual: number; };\n 'credential/rejected': { readonly ref: string; };\n 'terminal/unavailable': Record<string, never>;\n 'terminal/control-unavailable': { readonly reason: 'read-only' | 'not-running'; };\n 'terminal/limit-reached': { readonly limit: number; };\n 'workspace/invalid-path': { readonly path: string; };\n 'workspace/name-conflict': { readonly name: string; };\n 'workspace/session-active': { readonly sessionId: SessionId; readonly activity: readonly SessionActivity[]; };\n 'workspace/move-invalid': { readonly workspaceId: WorkspaceId; readonly sessionId: SessionId; readonly beforeSessionId?: SessionId; };\n 'directory-picker/unavailable': { readonly capability: string; };\n 'directory-picker/unreadable': { readonly path: string; };\n 'directory-picker/exists': { readonly path: string; };\n 'directory-picker/create-failed': { readonly path: string; };\n 'workspace-file/watch-unsupported': { readonly path: string; };\n 'workspace-file/not-found': { readonly path: string; };\n 'workspace-file/outside-workspace': { readonly path: string; };\n 'workspace-file/too-large': { readonly path: string; readonly limit: number; };\n 'workspace-file/not-text': { readonly path: string; };\n 'workspace-file/not-regular-file': { readonly path: string; readonly kind: 'directory' | 'symlink' | 'other'; };\n 'workspace-file/not-directory': { readonly path: string; readonly kind: 'file' | 'symlink' | 'other'; };\n 'speech/invalid-audio': { readonly reason: string; };\n 'speech/transcription-failed': { readonly reason: string; };\n 'document-render/failed': { readonly reason: OfficeToPdfErrorCode; };\n}"
1658
1810
  },
1659
1811
  {
1660
1812
  "name": "ReplayEnvelope",
@@ -1674,11 +1826,27 @@ export const TYPERT = {
1674
1826
  },
1675
1827
  {
1676
1828
  "name": "Session",
1677
- "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n get id(): SessionId;\n readonly firstLiveSeq: SessionLogOffset;\n eventAt(seq: SessionSeq): SessionEvent | undefined;\n snapshotEvents(fromSeq: SessionLogOffset = SessionLogOffset(0), toSeqExclusive: SessionLogOffset = this.seq): readonly SessionEvent[];\n ownEvents(): readonly SessionEvent[];\n isOwnSeq(seq: SessionSeq): boolean;\n get seq(): SessionLogOffset;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent<T>] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
1829
+ "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n get id(): SessionId;\n readonly firstLiveSeq: SessionLogOffset;\n readonly firstLifecycleSeq: SessionLogOffset;\n eventAt(seq: SessionSeq): SessionEvent | undefined;\n snapshotEvents(fromSeq: SessionLogOffset = SessionLogOffset(0), toSeqExclusive: SessionLogOffset = this.seq): readonly SessionEvent[];\n ownEvents(): readonly SessionEvent[];\n isOwnSeq(seq: SessionSeq): boolean;\n get seq(): SessionLogOffset;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent<T>] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
1830
+ },
1831
+ {
1832
+ "name": "SessionActivity",
1833
+ "declaration": "export interface SessionActivity {\n readonly kind: SessionActivityKind;\n readonly items?: readonly SessionActivityItem[];\n}"
1834
+ },
1835
+ {
1836
+ "name": "SessionActivityItem",
1837
+ "declaration": "export interface SessionActivityItem {\n readonly id: string;\n readonly label?: string;\n}"
1838
+ },
1839
+ {
1840
+ "name": "SessionActivityKind",
1841
+ "declaration": "export type SessionActivityKind = keyof SessionActivityKindMap;"
1842
+ },
1843
+ {
1844
+ "name": "SessionActivityKindMap",
1845
+ "declaration": "export interface SessionActivityKindMap {\n turn: true;\n job: true;\n subagent: true;\n}"
1678
1846
  },
1679
1847
  {
1680
1848
  "name": "SessionAddress",
1681
- "declaration": "export type SessionAddress = { readonly kind: 'session'; readonly sessionId: SessionId; } | { readonly kind: 'subagent'; readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly mode: 'one-shot' | 'continuable'; };"
1849
+ "declaration": "export type SessionAddress = { readonly kind: 'session'; readonly sessionId: SessionId; } | { readonly kind: 'subagent'; readonly parentSessionId: SessionId; readonly childSessionId: SessionId; readonly mode: 'one-shot' | 'continuable' | 'unknown'; };"
1682
1850
  },
1683
1851
  {
1684
1852
  "name": "SessionAssistantStreamAttempt",
@@ -1710,11 +1878,11 @@ export const TYPERT = {
1710
1878
  },
1711
1879
  {
1712
1880
  "name": "SessionControlBaseline",
1713
- "declaration": "export interface SessionControlBaseline {\n readonly queues: Readonly<Record<SessionId, readonly SessionQueuedItem[]>>;\n readonly jobs: Readonly<Record<SessionId, readonly SessionJob[]>>;\n readonly projections: Readonly<Record<SessionId, SessionProjectionBaseline>>;\n}"
1881
+ "declaration": "export interface SessionControlBaseline {\n readonly projections: Readonly<Record<SessionId, SessionProjectionBaseline>>;\n}"
1714
1882
  },
1715
1883
  {
1716
1884
  "name": "SessionControlFrame",
1717
- "declaration": "export type SessionControlFrame = { readonly type: 'baseline'; readonly value: SessionControlBaseline; } | { readonly type: 'queue'; readonly sessionId: SessionId; readonly items: readonly SessionQueuedItem[]; } | { readonly type: 'jobs'; readonly sessionId: SessionId; readonly jobs: readonly SessionJob[]; } | ({ readonly type: 'projection'; } & SessionProjectionUpdate);"
1885
+ "declaration": "export type SessionControlFrame = { readonly type: 'baseline'; readonly value: SessionControlBaseline; } | ({ readonly type: 'projection'; } & SessionProjectionUpdate);"
1718
1886
  },
1719
1887
  {
1720
1888
  "name": "SessionCreateRequest",
@@ -1734,7 +1902,7 @@ export const TYPERT = {
1734
1902
  },
1735
1903
  {
1736
1904
  "name": "SessionEventMap",
1737
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
1905
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
1738
1906
  },
1739
1907
  {
1740
1908
  "name": "SessionEventType",
@@ -1772,10 +1940,6 @@ export const TYPERT = {
1772
1940
  "name": "SessionInspection",
1773
1941
  "declaration": "export interface SessionInspection extends SessionStorageMetadata {\n readonly events: readonly SessionEvent[];\n}"
1774
1942
  },
1775
- {
1776
- "name": "SessionJob",
1777
- "declaration": "export interface SessionJob {\n readonly id: JobId;\n readonly kind: string;\n readonly label: string;\n readonly status: 'running' | 'stopping' | 'completed' | 'killed' | 'failed';\n readonly detail?: string;\n readonly startedAt: number;\n readonly finishedAt?: number;\n}"
1778
- },
1779
1943
  {
1780
1944
  "name": "SessionListMetadata",
1781
1945
  "declaration": "export interface SessionListMetadata {\n readonly blank: boolean;\n readonly lastPromptAt: number | null;\n}"
@@ -1794,7 +1958,7 @@ export const TYPERT = {
1794
1958
  },
1795
1959
  {
1796
1960
  "name": "SessionOpenWorkspacePathRequest",
1797
- "declaration": "export interface SessionOpenWorkspacePathRequest {\n readonly action?: 'reveal';\n readonly path: string;\n}"
1961
+ "declaration": "export interface SessionOpenWorkspacePathRequest {\n readonly action?: 'reveal';\n readonly application?: string;\n readonly path: string;\n}"
1798
1962
  },
1799
1963
  {
1800
1964
  "name": "SessionOpenWorkspacePathValue",
@@ -1814,12 +1978,20 @@ export const TYPERT = {
1814
1978
  },
1815
1979
  {
1816
1980
  "name": "SessionProjectionHints",
1817
- "declaration": "export interface SessionProjectionHints {\n readonly asOfSeq: number;\n readonly values: SessionProjectionValues;\n}"
1981
+ "declaration": "export interface SessionProjectionHints {\n readonly kind: 'cached' | 'sequenced';\n readonly asOfSeq: number;\n readonly values: SessionProjectionValues;\n}"
1818
1982
  },
1819
1983
  {
1820
1984
  "name": "SessionProjectionMap",
1821
1985
  "declaration": "export interface SessionProjectionMap {\n inbox: InboxWireState;\n agentPreset: string | null;\n title: string | null;\n todos: TodoItem[] | null;\n sessionListMetadata: SessionListMetadata;\n imageLimits: ImageAttachmentLimits;\n modelSelection: ModelSelectionProjection;\n permissions: PermissionSelection;\n subagentCatalog: SubagentCatalogEntry[];\n subagentTiming: SubagentTimingProjection;\n subagent: SubagentIdentityProjection | null;\n goal: GoalProjection | null;\n}"
1822
1986
  },
1987
+ {
1988
+ "name": "SessionProjectionsRequest",
1989
+ "declaration": "export interface SessionProjectionsRequest {\n readonly sessionId: SessionId;\n}"
1990
+ },
1991
+ {
1992
+ "name": "SessionProjectionsValue",
1993
+ "declaration": "export type SessionProjectionsValue = SessionProjectionBaseline | null;"
1994
+ },
1823
1995
  {
1824
1996
  "name": "SessionProjectionUpdate",
1825
1997
  "declaration": "export interface SessionProjectionUpdate {\n readonly sessionId: SessionId;\n readonly key: string;\n readonly value: JsonValue;\n readonly seq: number;\n}"
@@ -1840,10 +2012,6 @@ export const TYPERT = {
1840
2012
  "name": "SessionPromptValue",
1841
2013
  "declaration": "export interface SessionPromptValue {\n readonly accepted: true;\n}"
1842
2014
  },
1843
- {
1844
- "name": "SessionQueuedItem",
1845
- "declaration": "export interface SessionQueuedItem {\n readonly id: MessageId;\n readonly placement: 'queued' | 'steering' | 'context';\n readonly rpcId?: SessionRequestId;\n readonly message: { readonly id: MessageId; readonly content: readonly JsonValue[]; };\n}"
1846
- },
1847
2015
  {
1848
2016
  "name": "SessionReferenceSource",
1849
2017
  "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedFormatVersion?: number; capturedThroughSeq: OptionalSessionSeq; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
@@ -1894,7 +2062,7 @@ export const TYPERT = {
1894
2062
  },
1895
2063
  {
1896
2064
  "name": "SessionSummary",
1897
- "declaration": "export interface SessionSummary {\n readonly sessionId: SessionId;\n readonly updatedAt: number;\n readonly running: boolean;\n readonly blank: boolean;\n readonly parentSessionId?: SessionId;\n readonly origin?: 'subagent';\n readonly cwd?: string;\n readonly projections?: SessionProjectionHints;\n}"
2065
+ "declaration": "export interface SessionSummary {\n readonly agentAvailable: boolean;\n readonly sessionId: SessionId;\n readonly updatedAt: number;\n readonly running: boolean;\n readonly blank: boolean;\n readonly parentSessionId?: SessionId;\n readonly origin?: 'subagent';\n readonly cwd?: string;\n readonly projections?: SessionProjectionHints;\n}"
1898
2066
  },
1899
2067
  {
1900
2068
  "name": "SessionSurface",
@@ -1932,6 +2100,10 @@ export const TYPERT = {
1932
2100
  "name": "SessionWireHeader",
1933
2101
  "declaration": "export interface SessionWireHeader {\n readonly version: number;\n readonly id: SessionId;\n readonly createdAt: number;\n readonly cwd?: string;\n readonly parentSession?: SessionId;\n readonly isSeeded: boolean;\n readonly origin?: 'subagent';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}"
1934
2102
  },
2103
+ {
2104
+ "name": "SessionWorkspacePathApplication",
2105
+ "declaration": "export type SessionWorkspacePathApplication = NativeFileApplication;"
2106
+ },
1935
2107
  {
1936
2108
  "name": "SkillInvocationSource",
1937
2109
  "declaration": "export interface SkillInvocationSource {\n readonly kind: 'skill-invocation';\n readonly name: string;\n readonly form: 'instructions';\n}"
@@ -1942,11 +2114,11 @@ export const TYPERT = {
1942
2114
  },
1943
2115
  {
1944
2116
  "name": "SubagentCatalogEntry",
1945
- "declaration": "export type SubagentCatalogEntry = { readonly id: SessionId; readonly createdAt: number; } & ({ readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; });"
2117
+ "declaration": "export type SubagentCatalogEntry = { readonly id: SessionId; readonly createdAt: number; } & ({ readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; } | { readonly mode: 'unknown'; readonly label?: string; });"
1946
2118
  },
1947
2119
  {
1948
2120
  "name": "SubagentCatalogEvent",
1949
- "declaration": "export type SubagentCatalogEvent = { readonly version: 0; readonly childId: SessionId; readonly childCreatedAt: number; } & ({ readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; });"
2121
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })));"
1950
2122
  },
1951
2123
  {
1952
2124
  "name": "SubagentDescriptorBase",
@@ -1966,11 +2138,11 @@ export const TYPERT = {
1966
2138
  },
1967
2139
  {
1968
2140
  "name": "SubagentTimingProjection",
1969
- "declaration": "export interface SubagentTimingProjection {\n settledMs: number;\n active?: { since: number; through: number; };\n}"
2141
+ "declaration": "export interface SubagentTimingProjection {\n settledMs: number;\n active?: { since: number; through: number; };\n lastTurnCompleted?: boolean;\n}"
1970
2142
  },
1971
2143
  {
1972
2144
  "name": "SurfaceEventType",
1973
- "declaration": "export type SurfaceEventType = 'system/message' | 'user/message' | 'assistant/message' | 'tool/result';"
2145
+ "declaration": "export type SurfaceEventType = 'system/message' | 'developer/message' | 'user/message' | 'assistant/message' | 'tool/result';"
1974
2146
  },
1975
2147
  {
1976
2148
  "name": "SurfaceIntent",
@@ -1982,7 +2154,11 @@ export const TYPERT = {
1982
2154
  },
1983
2155
  {
1984
2156
  "name": "SystemMessage",
1985
- "declaration": "export interface SystemMessage extends Message {\n readonly role: 'system';\n readonly source: MessageSourceMap['plugin'];\n}"
2157
+ "declaration": "export interface SystemMessage extends MessageBase {\n readonly role: 'system';\n readonly source: MessageSourceMap['system-prompt'];\n}"
2158
+ },
2159
+ {
2160
+ "name": "SystemPromptMessageSource",
2161
+ "declaration": "export interface SystemPromptMessageSource {\n kind: 'system-prompt';\n}"
1986
2162
  },
1987
2163
  {
1988
2164
  "name": "SystemPromptUpdate",
@@ -2036,6 +2212,10 @@ export const TYPERT = {
2036
2212
  "name": "TokenUsage",
2037
2213
  "declaration": "export interface TokenUsage {\n inputTokens: number;\n outputTokens: number;\n totalTokens?: number;\n cacheReadTokens?: number;\n cacheWriteTokens?: number;\n reasoningTokens?: number;\n}"
2038
2214
  },
2215
+ {
2216
+ "name": "ToolAdditionBlock",
2217
+ "declaration": "export interface ToolAdditionBlock {\n type: 'tool-addition';\n toolName: string;\n tool?: never;\n}"
2218
+ },
2039
2219
  {
2040
2220
  "name": "ToolCallBlock",
2041
2221
  "declaration": "export interface ToolCallBlock {\n type: 'tool-call';\n id: ToolCallId;\n name: string;\n arguments: string;\n}"
@@ -2049,20 +2229,20 @@ export const TYPERT = {
2049
2229
  "declaration": "export interface ToolMessageSource {\n kind: 'tool';\n callId: ToolCallId;\n}"
2050
2230
  },
2051
2231
  {
2052
- "name": "ToolRestriction",
2053
- "declaration": "export interface ToolRestriction {\n readonly allow?: readonly string[];\n readonly deny?: readonly string[];\n}"
2232
+ "name": "ToolRemovalBlock",
2233
+ "declaration": "export interface ToolRemovalBlock {\n type: 'tool-removal';\n toolName: string;\n}"
2054
2234
  },
2055
2235
  {
2056
- "name": "ToolResultBlock",
2057
- "declaration": "export interface ToolResultBlock {\n type: 'tool-result';\n toolCallId: ToolCallId;\n content: ContentBlock[];\n isError?: boolean;\n}"
2236
+ "name": "ToolRestriction",
2237
+ "declaration": "export interface ToolRestriction {\n readonly allow?: readonly string[];\n readonly deny?: readonly string[];\n}"
2058
2238
  },
2059
2239
  {
2060
2240
  "name": "ToolResultMessage",
2061
- "declaration": "export interface ToolResultMessage extends Message {\n readonly role: 'user';\n readonly content: [ToolResultBlock];\n readonly source: ToolMessageSource;\n}"
2241
+ "declaration": "export interface ToolResultMessage extends MessageBase {\n readonly role: 'tool';\n readonly source: ToolMessageSource;\n readonly toolCallId: ToolCallId;\n readonly isError?: boolean;\n}"
2062
2242
  },
2063
2243
  {
2064
2244
  "name": "ToolSchema",
2065
- "declaration": "export interface ToolSchema {\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}"
2245
+ "declaration": "export interface ToolSchema {\n deferLoading?: true;\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}"
2066
2246
  },
2067
2247
  {
2068
2248
  "name": "TurnEndCancelCause",
@@ -2074,11 +2254,11 @@ export const TYPERT = {
2074
2254
  },
2075
2255
  {
2076
2256
  "name": "TurnEndReasonMap",
2077
- "declaration": "export interface TurnEndReasonMap {\n completed: { kind: 'completed'; };\n aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n blocked: { kind: 'blocked'; };\n error: { kind: 'error'; error: LlmFailure; };\n 'max-tokens': { kind: 'max-tokens'; };\n interrupted: { kind: 'interrupted'; };\n}"
2257
+ "declaration": "export interface TurnEndReasonMap {\n completed: { kind: 'completed'; };\n aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n blocked: { kind: 'blocked'; };\n error: { kind: 'error'; error: LlmFailure; };\n 'max-tokens': { kind: 'max-tokens'; };\n interrupted: { kind: 'interrupted'; };\n forked: { kind: 'forked'; };\n}"
2078
2258
  },
2079
2259
  {
2080
2260
  "name": "UserMessage",
2081
- "declaration": "export interface UserMessage extends Message {\n readonly role: 'user';\n}"
2261
+ "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
2082
2262
  },
2083
2263
  {
2084
2264
  "name": "WorkspaceId",
@@ -2137,7 +2317,7 @@ export const TYPERT = {
2137
2317
  },
2138
2318
  {
2139
2319
  "name": "AssistantMessage",
2140
- "declaration": "export interface AssistantMessage extends Message {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
2320
+ "declaration": "export interface AssistantMessage extends MessageBase {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
2141
2321
  },
2142
2322
  {
2143
2323
  "name": "AssistantProviderMetadata",
@@ -2175,6 +2355,10 @@ export const TYPERT = {
2175
2355
  "name": "CommandSourceMap",
2176
2356
  "declaration": "export interface CommandSourceMap {\n user: { kind: 'user'; };\n}"
2177
2357
  },
2358
+ {
2359
+ "name": "CompactionCheckpointSource",
2360
+ "declaration": "export type CompactionCheckpointSource = typeof COMPACT_CHECKPOINT_MARKER & { readonly compactionId: CompactionId; readonly sourceCommandId?: CommandId; };"
2361
+ },
2178
2362
  {
2179
2363
  "name": "CompactionId",
2180
2364
  "declaration": "export type CompactionId = Branded<'CompactionId'>;"
@@ -2185,7 +2369,7 @@ export const TYPERT = {
2185
2369
  },
2186
2370
  {
2187
2371
  "name": "ContentBlockMap",
2188
- "declaration": "export interface ContentBlockMap {\n text: TextBlock;\n reasoning: ReasoningBlock;\n image: ImageBlock;\n file: FileBlock;\n 'tool-call': ToolCallBlock;\n 'tool-result': ToolResultBlock;\n}"
2372
+ "declaration": "export interface ContentBlockMap {\n text: TextBlock;\n reasoning: ReasoningBlock;\n image: ImageBlock;\n file: FileBlock;\n 'tool-call': ToolCallBlock;\n 'tool-addition': ToolAdditionBlock;\n 'tool-removal': ToolRemovalBlock;\n}"
2189
2373
  },
2190
2374
  {
2191
2375
  "name": "ContentBlockType",
@@ -2203,9 +2387,13 @@ export const TYPERT = {
2203
2387
  "name": "ContinuableSubagentDescriptorData",
2204
2388
  "declaration": "export interface ContinuableSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'continuable';\n readonly label: string;\n readonly agentProvider?: string;\n readonly agentModel?: string;\n readonly agentReasoningEffort?: ReasoningEffortId;\n readonly persona?: string;\n readonly toolFilter?: ToolRestriction;\n}"
2205
2389
  },
2390
+ {
2391
+ "name": "DeveloperMessage",
2392
+ "declaration": "export interface DeveloperMessage extends MessageBase {\n readonly role: 'developer';\n}"
2393
+ },
2206
2394
  {
2207
2395
  "name": "EpochHeader",
2208
- "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n}"
2396
+ "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n system?: never;\n}"
2209
2397
  },
2210
2398
  {
2211
2399
  "name": "FeedbackCategory",
@@ -2303,6 +2491,10 @@ export const TYPERT = {
2303
2491
  "name": "JsonValue",
2304
2492
  "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
2305
2493
  },
2494
+ {
2495
+ "name": "KnownCatalogMode",
2496
+ "declaration": "export type KnownCatalogMode = { readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; };"
2497
+ },
2306
2498
  {
2307
2499
  "name": "LlmCallConfig",
2308
2500
  "declaration": "export interface LlmCallConfig {\n provider: string;\n model: string;\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
@@ -2317,7 +2509,11 @@ export const TYPERT = {
2317
2509
  },
2318
2510
  {
2319
2511
  "name": "Message",
2320
- "declaration": "export interface Message {\n readonly id: MessageId;\n readonly role: 'system' | 'user' | 'assistant';\n readonly content: ContentBlock[];\n readonly source: MessageSource;\n}"
2512
+ "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
2513
+ },
2514
+ {
2515
+ "name": "MessageBase",
2516
+ "declaration": "export interface MessageBase {\n readonly id: MessageId;\n readonly content: readonly ContentBlock[];\n readonly source: MessageSource;\n}"
2321
2517
  },
2322
2518
  {
2323
2519
  "name": "MessageFeedbackDelete",
@@ -2343,13 +2539,17 @@ export const TYPERT = {
2343
2539
  "name": "MessageId",
2344
2540
  "declaration": "export type MessageId = Branded<'MessageId'>;"
2345
2541
  },
2542
+ {
2543
+ "name": "MessageRoleMap",
2544
+ "declaration": "export interface MessageRoleMap {\n system: SystemMessage;\n developer: DeveloperMessage;\n user: UserMessage;\n assistant: AssistantMessage;\n tool: ToolResultMessage;\n}"
2545
+ },
2346
2546
  {
2347
2547
  "name": "MessageSource",
2348
2548
  "declaration": "export type MessageSource = MessageSourceMap[keyof MessageSourceMap];"
2349
2549
  },
2350
2550
  {
2351
2551
  "name": "MessageSourceMap",
2352
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n plugin: { kind: 'plugin'; plugin: string; } & ContextFormed;\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'session-reference': SessionReferenceSource;\n}"
2552
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'session-reference': SessionReferenceSource;\n}"
2353
2553
  },
2354
2554
  {
2355
2555
  "name": "ModelMessageSource",
@@ -2405,7 +2605,7 @@ export const TYPERT = {
2405
2605
  },
2406
2606
  {
2407
2607
  "name": "Session",
2408
- "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n get id(): SessionId;\n readonly firstLiveSeq: SessionLogOffset;\n eventAt(seq: SessionSeq): SessionEvent | undefined;\n snapshotEvents(fromSeq: SessionLogOffset = SessionLogOffset(0), toSeqExclusive: SessionLogOffset = this.seq): readonly SessionEvent[];\n ownEvents(): readonly SessionEvent[];\n isOwnSeq(seq: SessionSeq): boolean;\n get seq(): SessionLogOffset;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent<T>] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
2608
+ "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n get id(): SessionId;\n readonly firstLiveSeq: SessionLogOffset;\n readonly firstLifecycleSeq: SessionLogOffset;\n eventAt(seq: SessionSeq): SessionEvent | undefined;\n snapshotEvents(fromSeq: SessionLogOffset = SessionLogOffset(0), toSeqExclusive: SessionLogOffset = this.seq): readonly SessionEvent[];\n ownEvents(): readonly SessionEvent[];\n isOwnSeq(seq: SessionSeq): boolean;\n get seq(): SessionLogOffset;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent<T>] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
2409
2609
  },
2410
2610
  {
2411
2611
  "name": "SessionEvent",
@@ -2413,7 +2613,7 @@ export const TYPERT = {
2413
2613
  },
2414
2614
  {
2415
2615
  "name": "SessionEventMap",
2416
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
2616
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
2417
2617
  },
2418
2618
  {
2419
2619
  "name": "SessionEventType",
@@ -2473,7 +2673,7 @@ export const TYPERT = {
2473
2673
  },
2474
2674
  {
2475
2675
  "name": "SubagentCatalogEvent",
2476
- "declaration": "export type SubagentCatalogEvent = { readonly version: 0; readonly childId: SessionId; readonly childCreatedAt: number; } & ({ readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; });"
2676
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })));"
2477
2677
  },
2478
2678
  {
2479
2679
  "name": "SubagentDescriptorBase",
@@ -2489,7 +2689,7 @@ export const TYPERT = {
2489
2689
  },
2490
2690
  {
2491
2691
  "name": "SurfaceEventType",
2492
- "declaration": "export type SurfaceEventType = 'system/message' | 'user/message' | 'assistant/message' | 'tool/result';"
2692
+ "declaration": "export type SurfaceEventType = 'system/message' | 'developer/message' | 'user/message' | 'assistant/message' | 'tool/result';"
2493
2693
  },
2494
2694
  {
2495
2695
  "name": "SurfaceIntent",
@@ -2501,7 +2701,11 @@ export const TYPERT = {
2501
2701
  },
2502
2702
  {
2503
2703
  "name": "SystemMessage",
2504
- "declaration": "export interface SystemMessage extends Message {\n readonly role: 'system';\n readonly source: MessageSourceMap['plugin'];\n}"
2704
+ "declaration": "export interface SystemMessage extends MessageBase {\n readonly role: 'system';\n readonly source: MessageSourceMap['system-prompt'];\n}"
2705
+ },
2706
+ {
2707
+ "name": "SystemPromptMessageSource",
2708
+ "declaration": "export interface SystemPromptMessageSource {\n kind: 'system-prompt';\n}"
2505
2709
  },
2506
2710
  {
2507
2711
  "name": "SystemPromptUpdate",
@@ -2555,6 +2759,10 @@ export const TYPERT = {
2555
2759
  "name": "TokenUsage",
2556
2760
  "declaration": "export interface TokenUsage {\n inputTokens: number;\n outputTokens: number;\n totalTokens?: number;\n cacheReadTokens?: number;\n cacheWriteTokens?: number;\n reasoningTokens?: number;\n}"
2557
2761
  },
2762
+ {
2763
+ "name": "ToolAdditionBlock",
2764
+ "declaration": "export interface ToolAdditionBlock {\n type: 'tool-addition';\n toolName: string;\n tool?: never;\n}"
2765
+ },
2558
2766
  {
2559
2767
  "name": "ToolCallBlock",
2560
2768
  "declaration": "export interface ToolCallBlock {\n type: 'tool-call';\n id: ToolCallId;\n name: string;\n arguments: string;\n}"
@@ -2568,20 +2776,20 @@ export const TYPERT = {
2568
2776
  "declaration": "export interface ToolMessageSource {\n kind: 'tool';\n callId: ToolCallId;\n}"
2569
2777
  },
2570
2778
  {
2571
- "name": "ToolRestriction",
2572
- "declaration": "export interface ToolRestriction {\n readonly allow?: readonly string[];\n readonly deny?: readonly string[];\n}"
2779
+ "name": "ToolRemovalBlock",
2780
+ "declaration": "export interface ToolRemovalBlock {\n type: 'tool-removal';\n toolName: string;\n}"
2573
2781
  },
2574
2782
  {
2575
- "name": "ToolResultBlock",
2576
- "declaration": "export interface ToolResultBlock {\n type: 'tool-result';\n toolCallId: ToolCallId;\n content: ContentBlock[];\n isError?: boolean;\n}"
2783
+ "name": "ToolRestriction",
2784
+ "declaration": "export interface ToolRestriction {\n readonly allow?: readonly string[];\n readonly deny?: readonly string[];\n}"
2577
2785
  },
2578
2786
  {
2579
2787
  "name": "ToolResultMessage",
2580
- "declaration": "export interface ToolResultMessage extends Message {\n readonly role: 'user';\n readonly content: [ToolResultBlock];\n readonly source: ToolMessageSource;\n}"
2788
+ "declaration": "export interface ToolResultMessage extends MessageBase {\n readonly role: 'tool';\n readonly source: ToolMessageSource;\n readonly toolCallId: ToolCallId;\n readonly isError?: boolean;\n}"
2581
2789
  },
2582
2790
  {
2583
2791
  "name": "ToolSchema",
2584
- "declaration": "export interface ToolSchema {\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}"
2792
+ "declaration": "export interface ToolSchema {\n deferLoading?: true;\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}"
2585
2793
  },
2586
2794
  {
2587
2795
  "name": "TurnEndCancelCause",
@@ -2593,11 +2801,11 @@ export const TYPERT = {
2593
2801
  },
2594
2802
  {
2595
2803
  "name": "TurnEndReasonMap",
2596
- "declaration": "export interface TurnEndReasonMap {\n completed: { kind: 'completed'; };\n aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n blocked: { kind: 'blocked'; };\n error: { kind: 'error'; error: LlmFailure; };\n 'max-tokens': { kind: 'max-tokens'; };\n interrupted: { kind: 'interrupted'; };\n}"
2804
+ "declaration": "export interface TurnEndReasonMap {\n completed: { kind: 'completed'; };\n aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n blocked: { kind: 'blocked'; };\n error: { kind: 'error'; error: LlmFailure; };\n 'max-tokens': { kind: 'max-tokens'; };\n interrupted: { kind: 'interrupted'; };\n forked: { kind: 'forked'; };\n}"
2597
2805
  },
2598
2806
  {
2599
2807
  "name": "UserMessage",
2600
- "declaration": "export interface UserMessage extends Message {\n readonly role: 'user';\n}"
2808
+ "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
2601
2809
  }
2602
2810
  ]
2603
2811
  },
@@ -2670,8 +2878,8 @@ export const TYPERT = {
2670
2878
  "signature": "'api-session/activity'(sessionId: SessionId, updatedAt: number): void"
2671
2879
  },
2672
2880
  {
2673
- "description": "A Session became visible to Session list consumers.",
2674
- "summary": "A Session became visible to Session list consumers.",
2881
+ "description": "A Session became visible or its Agent was created or disposed. Consumers upsert the summary and replace its current running and availability state.",
2882
+ "summary": "A Session became visible or its Agent was created or disposed.",
2675
2883
  "tags": [
2676
2884
  {
2677
2885
  "name": "mode",
@@ -2681,11 +2889,11 @@ export const TYPERT = {
2681
2889
  {
2682
2890
  "name": "param",
2683
2891
  "argument": "summary",
2684
- "comment": "- initial list row for the Session.",
2685
- "text": "@param summary - initial list row for the Session."
2892
+ "comment": "- current list row for the Session.",
2893
+ "text": "@param summary - current list row for the Session."
2686
2894
  }
2687
2895
  ],
2688
- "jsDoc": "/**\n * A Session became visible to Session list consumers.\n * @mode emit\n * @param summary - initial list row for the Session.\n */",
2896
+ "jsDoc": "/**\n * A Session became visible or its Agent was created or disposed.\n * Consumers upsert the summary and replace its current running and availability state.\n * @mode emit\n * @param summary - current list row for the Session.\n */",
2689
2897
  "name": "api-session/added",
2690
2898
  "mode": "emit",
2691
2899
  "signature": "'api-session/added'(summary: SessionSummary): void"