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

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 (38) hide show
  1. package/README.i18n.yaml +2 -2
  2. package/README.md +34 -9
  3. package/README.zh.md +34 -9
  4. package/lib/client.js +774 -641
  5. package/lib/index.js +318 -143
  6. package/lib/typert.host.js +384 -186
  7. package/lib/typert.remote-client.d.ts +10 -5
  8. package/lib/typert.remote-client.js +225 -125
  9. package/lib/types/archived-session-gate.d.ts +30 -0
  10. package/lib/types/archived-session-gate.js +52 -0
  11. package/lib/types/client/contract/session.d.ts +11 -4
  12. package/lib/types/client/contract/sessions.d.ts +11 -16
  13. package/lib/types/client/contract/snapshot.d.ts +1 -1
  14. package/lib/types/client/index.d.ts +1 -1
  15. package/lib/types/client/sessions/lineage.d.ts +4 -1
  16. package/lib/types/client/sessions/lineage.js +2 -1
  17. package/lib/types/client/sessions/manager.d.ts +66 -59
  18. package/lib/types/client/sessions/manager.js +249 -277
  19. package/lib/types/client/sessions/projection-store.d.ts +38 -13
  20. package/lib/types/client/sessions/projection-store.js +54 -13
  21. package/lib/types/client/sessions/remotes.d.ts +1 -2
  22. package/lib/types/client/sessions/service.d.ts +23 -35
  23. package/lib/types/client/sessions/service.js +35 -47
  24. package/lib/types/client/sessions/session.d.ts +23 -19
  25. package/lib/types/client/sessions/session.js +158 -59
  26. package/lib/types/client/transport.js +5 -2
  27. package/lib/types/commands.d.ts +4 -2
  28. package/lib/types/commands.js +72 -36
  29. package/lib/types/control.d.ts +2 -4
  30. package/lib/types/control.js +2 -44
  31. package/lib/types/history.js +25 -10
  32. package/lib/types/index.d.ts +32 -5
  33. package/lib/types/index.js +117 -13
  34. package/lib/types/list.js +24 -15
  35. package/lib/types/skill-catalog.js +60 -50
  36. package/lib/types/types.d.ts +45 -25
  37. package/lib/types/types.js +0 -1
  38. package/package.json +71 -76
@@ -1,46 +1,6 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
- let ContentBlockRemoteCodec$schema$value
5
- const ContentBlockRemoteCodec$schema = () => (ContentBlockRemoteCodec$schema$value ??= z.union([z.object({
6
- 'type': z.literal("file"),
7
- 'attachment': z.object({
8
- 'attachmentId': z.intersection(z.string(), z.unknown()),
9
- 'name': z.string(),
10
- 'bytes': z.number(),
11
- }),
12
- }), z.object({
13
- 'type': z.literal("text"),
14
- 'text': z.string(),
15
- }), z.object({
16
- 'type': z.literal("image"),
17
- 'attachment': z.object({
18
- 'attachmentId': z.intersection(z.string(), z.unknown()),
19
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
20
- 'bytes': z.number(),
21
- 'width': z.number(),
22
- 'height': z.number(),
23
- 'name': z.string().optional(),
24
- 'originalDimensions': z.object({
25
- 'width': z.number(),
26
- 'height': z.number(),
27
- }).optional(),
28
- }),
29
- 'offloaded': z.literal(true).optional(),
30
- }), z.object({
31
- 'type': z.literal("reasoning"),
32
- 'text': z.string(),
33
- }), z.object({
34
- 'type': z.literal("tool-call"),
35
- 'id': z.intersection(z.string(), z.unknown()),
36
- 'name': z.string(),
37
- 'arguments': z.string(),
38
- }), z.object({
39
- 'type': z.literal("tool-result"),
40
- 'toolCallId': z.intersection(z.string(), z.unknown()),
41
- 'content': z.array(z.lazy(() => ContentBlockRemoteCodec$schema())),
42
- 'isError': z.boolean().optional(),
43
- })]))
44
4
  let JsonValueRemoteCodec$schema$value
45
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()))]))
46
6
  let JsonValueRemoteCodec$schema2$value
@@ -49,6 +9,8 @@ let JsonValueRemoteCodec$schema3$value
49
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()))]))
50
10
  let JsonValueRemoteCodec$schema4$value
51
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()))]))
52
14
  let _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_0$schema$value
53
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()))
54
16
  let _deepseek_ai_dsh_api_session_controller_fileReferences_list_parameter_1$schema$value
@@ -93,27 +55,18 @@ let _deepseek_ai_dsh_api_session_controller_session_control_result$schema$value
93
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({
94
56
  'type': z.literal("baseline").readonly(),
95
57
  'value': z.object({
96
- 'jobs': z.record(z.intersection(z.string(), z.unknown()), z.array(z.object({
97
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
98
- 'kind': z.string().readonly(),
99
- 'label': z.string().readonly(),
100
- 'status': z.union([z.literal("completed"), z.literal("running"), z.literal("stopping"), z.literal("killed"), z.literal("failed")]).readonly(),
101
- 'detail': z.string().readonly().optional(),
102
- 'startedAt': z.number().readonly(),
103
- 'finishedAt': z.number().readonly().optional(),
104
- }))).readonly().readonly(),
105
58
  'projections': z.record(z.intersection(z.string(), z.unknown()), z.object({
106
59
  'asOfSeq': z.number().readonly(),
107
60
  'values': z.intersection(z.object({
108
61
  'inbox': z.object({
109
- '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(),
110
- '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(),
111
64
  }).optional(),
112
65
  'agentPreset': z.union([z.literal(null), z.string()]).optional(),
113
66
  'title': z.union([z.literal(null), z.string()]).optional(),
114
67
  'todos': z.union([z.literal(null), z.array(z.object({
115
68
  'content': z.string(),
116
- '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")]),
117
70
  }))]).optional(),
118
71
  'sessionListMetadata': z.object({
119
72
  'blank': z.boolean().readonly(),
@@ -154,6 +107,12 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = ()
154
107
  }), z.object({
155
108
  'mode': z.literal("continuable").readonly(),
156
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(),
157
116
  }))])).optional(),
158
117
  'subagentTiming': z.object({
159
118
  'settledMs': z.number(),
@@ -161,6 +120,7 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = ()
161
120
  'since': z.number(),
162
121
  'through': z.number(),
163
122
  }).optional(),
123
+ 'lastTurnCompleted': z.boolean().optional(),
164
124
  }).optional(),
165
125
  'subagent': z.union([z.literal(null), z.object({
166
126
  'mode': z.literal("one-shot"),
@@ -187,27 +147,15 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = ()
187
147
  'createdAt': z.number().readonly(),
188
148
  'updatedAt': z.number().readonly(),
189
149
  })]).optional(),
190
- }), 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(),
191
151
  })).readonly().readonly(),
192
152
  }).readonly(),
193
- }), z.object({
194
- 'type': z.literal("jobs").readonly(),
195
- 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
196
- 'jobs': z.array(z.object({
197
- 'id': z.intersection(z.string(), z.unknown()).readonly(),
198
- 'kind': z.string().readonly(),
199
- 'label': z.string().readonly(),
200
- 'status': z.union([z.literal("completed"), z.literal("running"), z.literal("stopping"), z.literal("killed"), z.literal("failed")]).readonly(),
201
- 'detail': z.string().readonly().optional(),
202
- 'startedAt': z.number().readonly(),
203
- 'finishedAt': z.number().readonly().optional(),
204
- })).readonly(),
205
153
  }), z.intersection(z.object({
206
154
  'type': z.literal("projection").readonly(),
207
155
  }), z.object({
208
156
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
209
157
  'key': z.string().readonly(),
210
- '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(),
211
159
  'seq': z.number().readonly(),
212
160
  }))]))
213
161
  let _deepseek_ai_dsh_api_session_controller_session_create_parameter_0$schema$value
@@ -231,10 +179,14 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_parameter_0$schema
231
179
  'kind': z.literal("subagent").readonly(),
232
180
  'parentSessionId': z.intersection(z.string(), z.unknown()).readonly(),
233
181
  'childSessionId': z.intersection(z.string(), z.unknown()).readonly(),
234
- '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(),
235
183
  })]).readonly(),
236
- 'maxMessages': z.number().readonly().optional(),
237
184
  'assistantStream': z.literal(true).readonly().optional(),
185
+ 'maxMessages': z.number().readonly().optional(),
186
+ 'turnWindow': z.object({
187
+ 'minMessages': z.number().readonly(),
188
+ 'minTurns': z.number().readonly(),
189
+ }).readonly().optional(),
238
190
  }))
239
191
  let _deepseek_ai_dsh_api_session_controller_session_follow_result$schema$value
240
192
  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({
@@ -286,7 +238,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = ()
286
238
  'title': z.union([z.literal(null), z.string()]).optional(),
287
239
  'todos': z.union([z.literal(null), z.array(z.object({
288
240
  'content': z.string(),
289
- 'status': z.union([z.literal("pending"), z.literal("in_progress"), z.literal("completed")]),
241
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
290
242
  }))]).optional(),
291
243
  'sessionListMetadata': z.object({
292
244
  'blank': z.boolean().readonly(),
@@ -327,6 +279,12 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = ()
327
279
  }), z.object({
328
280
  'mode': z.literal("continuable").readonly(),
329
281
  'label': z.string().readonly(),
282
+ })), z.intersection(z.object({
283
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
284
+ 'createdAt': z.number().readonly(),
285
+ }), z.object({
286
+ 'mode': z.literal("unknown").readonly(),
287
+ 'label': z.string().readonly().optional(),
330
288
  }))])).optional(),
331
289
  'subagentTiming': z.object({
332
290
  'settledMs': z.number(),
@@ -334,6 +292,7 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = ()
334
292
  'since': z.number(),
335
293
  'through': z.number(),
336
294
  }).optional(),
295
+ 'lastTurnCompleted': z.boolean().optional(),
337
296
  }).optional(),
338
297
  'subagent': z.union([z.literal(null), z.object({
339
298
  'mode': z.literal("one-shot"),
@@ -419,6 +378,7 @@ const _deepseek_ai_dsh_api_session_controller_session_list_parameter_0$schema =
419
378
  let _deepseek_ai_dsh_api_session_controller_session_list_result$schema$value
420
379
  const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_list_result$schema$value ??= z.object({
421
380
  'items': z.array(z.object({
381
+ 'agentAvailable': z.boolean().readonly(),
422
382
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
423
383
  'updatedAt': z.number().readonly(),
424
384
  'running': z.boolean().readonly(),
@@ -427,6 +387,7 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () =>
427
387
  'origin': z.literal("subagent").readonly().optional(),
428
388
  'cwd': z.string().readonly().optional(),
429
389
  'projections': z.object({
390
+ 'kind': z.union([z.literal("cached"), z.literal("sequenced")]).readonly(),
430
391
  'asOfSeq': z.number().readonly(),
431
392
  'values': z.intersection(z.object({
432
393
  'inbox': z.object({
@@ -437,7 +398,7 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () =>
437
398
  'title': z.union([z.literal(null), z.string()]).optional(),
438
399
  'todos': z.union([z.literal(null), z.array(z.object({
439
400
  'content': z.string(),
440
- 'status': z.union([z.literal("pending"), z.literal("in_progress"), z.literal("completed")]),
401
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
441
402
  }))]).optional(),
442
403
  'sessionListMetadata': z.object({
443
404
  'blank': z.boolean().readonly(),
@@ -478,6 +439,12 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () =>
478
439
  }), z.object({
479
440
  'mode': z.literal("continuable").readonly(),
480
441
  'label': z.string().readonly(),
442
+ })), z.intersection(z.object({
443
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
444
+ 'createdAt': z.number().readonly(),
445
+ }), z.object({
446
+ 'mode': z.literal("unknown").readonly(),
447
+ 'label': z.string().readonly().optional(),
481
448
  }))])).optional(),
482
449
  'subagentTiming': z.object({
483
450
  'settledMs': z.number(),
@@ -485,6 +452,7 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = () =>
485
452
  'since': z.number(),
486
453
  'through': z.number(),
487
454
  }).optional(),
455
+ 'lastTurnCompleted': z.boolean().optional(),
488
456
  }).optional(),
489
457
  'subagent': z.union([z.literal(null), z.object({
490
458
  'mode': z.literal("one-shot"),
@@ -549,6 +517,7 @@ const _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema
549
517
  let _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_parameter_0$schema$value
550
518
  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({
551
519
  'action': z.literal("reveal").readonly().optional(),
520
+ 'application': z.string().readonly().optional(),
552
521
  'path': z.string().readonly(),
553
522
  }))
554
523
  let _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema$value
@@ -564,11 +533,15 @@ const _deepseek_ai_dsh_api_session_controller_session_page_parameter_0$schema =
564
533
  'kind': z.literal("subagent").readonly(),
565
534
  'parentSessionId': z.intersection(z.string(), z.unknown()).readonly(),
566
535
  'childSessionId': z.intersection(z.string(), z.unknown()).readonly(),
567
- 'mode': z.union([z.literal("one-shot"), z.literal("continuable")]).readonly(),
536
+ 'mode': z.union([z.literal("one-shot"), z.literal("continuable"), z.literal("unknown")]).readonly(),
568
537
  })]).readonly(),
569
538
  'throughSeq': z.number().readonly(),
570
539
  'beforeSeq': z.number().readonly().optional(),
571
540
  'maxMessages': z.number().readonly().optional(),
541
+ 'turnWindow': z.object({
542
+ 'minMessages': z.number().readonly(),
543
+ 'minTurns': z.number().readonly(),
544
+ }).readonly().optional(),
572
545
  }))
573
546
  let _deepseek_ai_dsh_api_session_controller_session_page_result$schema$value
574
547
  const _deepseek_ai_dsh_api_session_controller_session_page_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_page_result$schema$value ??= z.object({
@@ -586,6 +559,105 @@ const _deepseek_ai_dsh_api_session_controller_session_page_result$schema = () =>
586
559
  })).readonly(),
587
560
  'hasMore': z.boolean().readonly(),
588
561
  }))
562
+ let _deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema$value
563
+ 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({
564
+ 'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
565
+ }))
566
+ let _deepseek_ai_dsh_api_session_controller_session_projections_result$schema$value
567
+ 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({
568
+ 'asOfSeq': z.number().readonly(),
569
+ 'values': z.intersection(z.object({
570
+ 'inbox': z.object({
571
+ '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(),
572
+ '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(),
573
+ }).optional(),
574
+ 'agentPreset': z.union([z.literal(null), z.string()]).optional(),
575
+ 'title': z.union([z.literal(null), z.string()]).optional(),
576
+ 'todos': z.union([z.literal(null), z.array(z.object({
577
+ 'content': z.string(),
578
+ 'status': z.union([z.literal("completed"), z.literal("pending"), z.literal("in_progress")]),
579
+ }))]).optional(),
580
+ 'sessionListMetadata': z.object({
581
+ 'blank': z.boolean().readonly(),
582
+ 'lastPromptAt': z.union([z.literal(null), z.number()]).readonly(),
583
+ }).optional(),
584
+ 'imageLimits': z.object({
585
+ 'maxImageBytes': z.number(),
586
+ 'maxImagesPerMessage': z.number(),
587
+ 'maxMessageImageBytes': z.number(),
588
+ 'maxImagePixels': z.number(),
589
+ 'maxImageDimension': z.number(),
590
+ 'mediaTypes': z.array(z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")])),
591
+ }).optional(),
592
+ 'modelSelection': z.object({
593
+ 'lastUsed': z.union([z.literal(null), z.object({
594
+ 'provider': z.string().readonly(),
595
+ 'model': z.string().readonly(),
596
+ 'reasoningEffort': z.string().readonly().optional(),
597
+ })]).readonly(),
598
+ 'next': z.union([z.literal(null), z.object({
599
+ 'provider': z.string().readonly(),
600
+ 'model': z.string().readonly(),
601
+ 'reasoningEffort': z.string().readonly().optional(),
602
+ })]).readonly(),
603
+ }).optional(),
604
+ 'permissions': z.object({
605
+ 'currentValue': z.string(),
606
+ }).optional(),
607
+ 'subagentCatalog': z.array(z.union([z.intersection(z.object({
608
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
609
+ 'createdAt': z.number().readonly(),
610
+ }), z.object({
611
+ 'mode': z.literal("one-shot").readonly(),
612
+ 'label': z.string().readonly().optional(),
613
+ })), z.intersection(z.object({
614
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
615
+ 'createdAt': z.number().readonly(),
616
+ }), z.object({
617
+ 'mode': z.literal("continuable").readonly(),
618
+ 'label': z.string().readonly(),
619
+ })), z.intersection(z.object({
620
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
621
+ 'createdAt': z.number().readonly(),
622
+ }), z.object({
623
+ 'mode': z.literal("unknown").readonly(),
624
+ 'label': z.string().readonly().optional(),
625
+ }))])).optional(),
626
+ 'subagentTiming': z.object({
627
+ 'settledMs': z.number(),
628
+ 'active': z.object({
629
+ 'since': z.number(),
630
+ 'through': z.number(),
631
+ }).optional(),
632
+ 'lastTurnCompleted': z.boolean().optional(),
633
+ }).optional(),
634
+ 'subagent': z.union([z.literal(null), z.object({
635
+ 'mode': z.literal("one-shot"),
636
+ 'label': z.string().optional(),
637
+ 'seq': z.intersection(z.number(), z.unknown()),
638
+ }), z.object({
639
+ 'mode': z.literal("continuable"),
640
+ 'label': z.string(),
641
+ 'seq': z.intersection(z.number(), z.unknown()),
642
+ })]).optional(),
643
+ 'goal': z.union([z.literal(null), z.object({
644
+ 'goal': z.object({
645
+ 'objective': z.string().readonly(),
646
+ 'phase': z.union([z.literal("active"), z.literal("paused"), z.literal("blocked"), z.literal("complete")]).readonly(),
647
+ 'blockedReason': z.object({
648
+ 'code': z.string().readonly(),
649
+ 'message': z.string().readonly(),
650
+ }).readonly().optional(),
651
+ 'maxGoalRounds': z.number().readonly(),
652
+ 'id': z.intersection(z.string(), z.unknown()).readonly(),
653
+ 'revision': z.number().readonly(),
654
+ }).readonly(),
655
+ 'roundsStarted': z.number().readonly(),
656
+ 'createdAt': z.number().readonly(),
657
+ 'updatedAt': z.number().readonly(),
658
+ })]).optional(),
659
+ }), 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(),
660
+ })]))
589
661
  let _deepseek_ai_dsh_api_session_controller_session_prompt_parameter_0$schema$value
590
662
  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({
591
663
  'requestId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -652,45 +724,10 @@ const _deepseek_ai_dsh_api_session_controller_session_updateQueue_parameter_0$sc
652
724
  'itemId': z.intersection(z.string(), z.unknown()).readonly(),
653
725
  'action': z.union([z.object({
654
726
  'kind': z.literal("edit").readonly(),
655
- 'content': z.array(z.union([z.object({
656
- 'type': z.literal("file"),
657
- 'attachment': z.object({
658
- 'attachmentId': z.intersection(z.string(), z.unknown()),
659
- 'name': z.string(),
660
- 'bytes': z.number(),
661
- }),
662
- }), z.object({
727
+ 'content': z.array(z.object({
663
728
  'type': z.literal("text"),
664
729
  'text': z.string(),
665
- }), z.object({
666
- 'type': z.literal("image"),
667
- 'attachment': z.object({
668
- 'attachmentId': z.intersection(z.string(), z.unknown()),
669
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
670
- 'bytes': z.number(),
671
- 'width': z.number(),
672
- 'height': z.number(),
673
- 'name': z.string().optional(),
674
- 'originalDimensions': z.object({
675
- 'width': z.number(),
676
- 'height': z.number(),
677
- }).optional(),
678
- }),
679
- 'offloaded': z.literal(true).optional(),
680
- }), z.object({
681
- 'type': z.literal("reasoning"),
682
- 'text': z.string(),
683
- }), z.object({
684
- 'type': z.literal("tool-call"),
685
- 'id': z.intersection(z.string(), z.unknown()),
686
- 'name': z.string(),
687
- 'arguments': z.string(),
688
- }), z.object({
689
- 'type': z.literal("tool-result"),
690
- 'toolCallId': z.intersection(z.string(), z.unknown()),
691
- 'content': z.array(z.lazy(() => ContentBlockRemoteCodec$schema())),
692
- 'isError': z.boolean().optional(),
693
- })])).readonly(),
730
+ })).readonly(),
694
731
  }), z.object({
695
732
  'kind': z.literal("remove").readonly(),
696
733
  }), z.object({
@@ -701,6 +738,17 @@ let _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema$va
701
738
  const _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema = () => (_deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema$value ??= z.object({
702
739
  'accepted': z.literal(true).readonly(),
703
740
  }))
741
+ let _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema$value
742
+ 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({
743
+ 'path': z.string().readonly(),
744
+ }))
745
+ let _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema$value
746
+ 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({
747
+ 'id': z.string().readonly(),
748
+ 'name': z.string().readonly(),
749
+ 'default': z.boolean().readonly(),
750
+ 'icon': z.union([z.literal(null), z.string()]).readonly(),
751
+ })))
704
752
  let _deepseek_ai_dsh_api_session_controller_skills_list_parameter_0$schema$value
705
753
  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({
706
754
  'sessionId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -783,7 +831,7 @@ export const TYPERT_REMOTE = {
783
831
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentValue',
784
832
  create: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
785
833
  },
786
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":358,"column":3},
834
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":419,"column":3},
787
835
  },
788
836
  {
789
837
  id: '@deepseek-ai/dsh-api-session-controller#session/cancel',
@@ -808,7 +856,7 @@ export const TYPERT_REMOTE = {
808
856
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelValue',
809
857
  create: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
810
858
  },
811
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":378,"column":3},
859
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":439,"column":3},
812
860
  },
813
861
  {
814
862
  id: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath',
@@ -823,7 +871,7 @@ export const TYPERT_REMOTE = {
823
871
  typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath:result',
824
872
  create: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
825
873
  },
826
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
874
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":301,"column":3},
827
875
  },
828
876
  {
829
877
  id: '@deepseek-ai/dsh-api-session-controller#session/control',
@@ -840,7 +888,7 @@ export const TYPERT_REMOTE = {
840
888
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionControlFrame',
841
889
  create: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
842
890
  },
843
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":411,"column":3},
891
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":502,"column":3},
844
892
  },
845
893
  {
846
894
  id: '@deepseek-ai/dsh-api-session-controller#session/create',
@@ -865,7 +913,7 @@ export const TYPERT_REMOTE = {
865
913
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateValue',
866
914
  create: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
867
915
  },
868
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":245,"column":3},
916
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":273,"column":3},
869
917
  },
870
918
  {
871
919
  id: '@deepseek-ai/dsh-api-session-controller#session/follow',
@@ -892,7 +940,7 @@ export const TYPERT_REMOTE = {
892
940
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowFrame',
893
941
  create: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
894
942
  },
895
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":401,"column":3},
943
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":462,"column":3},
896
944
  },
897
945
  {
898
946
  id: '@deepseek-ai/dsh-api-session-controller#session/fork',
@@ -917,7 +965,7 @@ export const TYPERT_REMOTE = {
917
965
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkValue',
918
966
  create: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
919
967
  },
920
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":336,"column":3},
968
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":397,"column":3},
921
969
  },
922
970
  {
923
971
  id: '@deepseek-ai/dsh-api-session-controller#session/list',
@@ -943,7 +991,7 @@ export const TYPERT_REMOTE = {
943
991
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListValue',
944
992
  create: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
945
993
  },
946
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":224,"column":9},
994
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":252,"column":9},
947
995
  },
948
996
  {
949
997
  id: '@deepseek-ai/dsh-api-session-controller#session/modelCatalog',
@@ -958,7 +1006,7 @@ export const TYPERT_REMOTE = {
958
1006
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#ModelCatalog',
959
1007
  create: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
960
1008
  },
961
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":264,"column":3},
1009
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":292,"column":3},
962
1010
  },
963
1011
  {
964
1012
  id: '@deepseek-ai/dsh-api-session-controller#session/openWorkspacePath',
@@ -984,7 +1032,7 @@ export const TYPERT_REMOTE = {
984
1032
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathValue',
985
1033
  create: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
986
1034
  },
987
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":294,"column":9},
1035
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":322,"column":9},
988
1036
  },
989
1037
  {
990
1038
  id: '@deepseek-ai/dsh-api-session-controller#session/page',
@@ -1010,7 +1058,33 @@ export const TYPERT_REMOTE = {
1010
1058
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPage',
1011
1059
  create: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
1012
1060
  },
1013
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":389,"column":3},
1061
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":450,"column":3},
1062
+ },
1063
+ {
1064
+ id: '@deepseek-ai/dsh-api-session-controller#session/projections',
1065
+ service: 'sessionController',
1066
+ namespace: 'session',
1067
+ method: 'projections',
1068
+ invocation: { kind: 'direct' },
1069
+ parameters: [
1070
+ {
1071
+ name: 'request',
1072
+ wire: 'request',
1073
+ source: 'json',
1074
+ codec: {
1075
+ mode: 'strict',
1076
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionProjectionsRequest',
1077
+ create: _deepseek_ai_dsh_api_session_controller_session_projections_parameter_0$schema,
1078
+ },
1079
+ },
1080
+ ],
1081
+ cancellation: { parameter: 'signal' },
1082
+ result: {
1083
+ mode: 'strict',
1084
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionProjectionsValue',
1085
+ create: _deepseek_ai_dsh_api_session_controller_session_projections_result$schema,
1086
+ },
1087
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":473,"column":9},
1014
1088
  },
1015
1089
  {
1016
1090
  id: '@deepseek-ai/dsh-api-session-controller#session/prompt',
@@ -1036,7 +1110,7 @@ export const TYPERT_REMOTE = {
1036
1110
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptValue',
1037
1111
  create: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
1038
1112
  },
1039
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":347,"column":3},
1113
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":408,"column":3},
1040
1114
  },
1041
1115
  {
1042
1116
  id: '@deepseek-ai/dsh-api-session-controller#session/rename',
@@ -1061,7 +1135,7 @@ export const TYPERT_REMOTE = {
1061
1135
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameValue',
1062
1136
  create: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
1063
1137
  },
1064
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":326,"column":3},
1138
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":385,"column":3},
1065
1139
  },
1066
1140
  {
1067
1141
  id: '@deepseek-ai/dsh-api-session-controller#session/search',
@@ -1087,7 +1161,7 @@ export const TYPERT_REMOTE = {
1087
1161
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchValue',
1088
1162
  create: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
1089
1163
  },
1090
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":235,"column":3},
1164
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":263,"column":3},
1091
1165
  },
1092
1166
  {
1093
1167
  id: '@deepseek-ai/dsh-api-session-controller#session/selectModel',
@@ -1112,7 +1186,7 @@ export const TYPERT_REMOTE = {
1112
1186
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelValue',
1113
1187
  create: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
1114
1188
  },
1115
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":255,"column":3},
1189
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":283,"column":3},
1116
1190
  },
1117
1191
  {
1118
1192
  id: '@deepseek-ai/dsh-api-session-controller#session/updateQueue',
@@ -1137,7 +1211,33 @@ export const TYPERT_REMOTE = {
1137
1211
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueValue',
1138
1212
  create: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
1139
1213
  },
1140
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":368,"column":3},
1214
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":429,"column":3},
1215
+ },
1216
+ {
1217
+ id: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications',
1218
+ service: 'sessionController',
1219
+ namespace: 'session',
1220
+ method: 'workspacePathApplications',
1221
+ invocation: { kind: 'direct' },
1222
+ parameters: [
1223
+ {
1224
+ name: 'request',
1225
+ wire: 'request',
1226
+ source: 'json',
1227
+ codec: {
1228
+ mode: 'strict',
1229
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications:request',
1230
+ create: _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_parameter_0$schema,
1231
+ },
1232
+ },
1233
+ ],
1234
+ cancellation: { parameter: 'signal' },
1235
+ result: {
1236
+ mode: 'strict',
1237
+ typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/workspacePathApplications:result',
1238
+ create: _deepseek_ai_dsh_api_session_controller_session_workspacePathApplications_result$schema,
1239
+ },
1240
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":352,"column":9},
1141
1241
  },
1142
1242
  {
1143
1243
  id: '@deepseek-ai/dsh-api-session-controller#skills/list',
@@ -1163,7 +1263,7 @@ export const TYPERT_REMOTE = {
1163
1263
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SkillListValue',
1164
1264
  create: _deepseek_ai_dsh_api_session_controller_skills_list_result$schema,
1165
1265
  },
1166
- sourceLocation: {"file":"packages/api/session-controller/src/skill-catalog.ts","line":36,"column":9},
1266
+ sourceLocation: {"file":"packages/api/session-controller/src/skill-catalog.ts","line":35,"column":9},
1167
1267
  },
1168
1268
  ],
1169
1269
  }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The controller's admission gate for archived Sessions: an archived
3
+ * Session, or a subagent descendant of one, must not run a model step until
4
+ * it is restored. The work a Session still runs is reported and stopped by
5
+ * its owners — the Agent registry (`turn`), the job registry seam (`job`),
6
+ * the Subagent runtime (`subagent`), and the Schedule plugin (`schedule`) —
7
+ * through the Workspace registry's archive-admission events.
8
+ */
9
+ import type { Context, Plugin } from '@deepseek-ai/cordis';
10
+ import type { Agent } from '@deepseek-ai/dsh-agent';
11
+ /**
12
+ * The gate as a plugin for `ctx.plugin(...)`: it loads once the Agent
13
+ * registry, Session store, and Workspace registry are available and unwinds
14
+ * with the plugin's fiber. A late waking delivery to an archived Session — a
15
+ * subagent settlement, a queued follow-up — proposes a step the gate rejects,
16
+ * which the loop ends as `blocked` without a request; unarchiving lifts the
17
+ * gate for the whole lineage.
18
+ */
19
+ export declare const ArchivedSessionGate: Plugin.Object<void>;
20
+ /**
21
+ * Whether the Agent's Session, or a Session above it in its subagent lineage,
22
+ * is archived. Lineage follows the durable header fields through
23
+ * subagent-origin Sessions only: a fork of an archived Session is an
24
+ * independent conversation.
25
+ * @param ctx - Host context.
26
+ * @param agent - the Agent proposing a step.
27
+ * @returns whether an archived Session owns the step.
28
+ */
29
+ export declare function underArchivedSession(ctx: Context, agent: Agent): boolean;
30
+ //# sourceMappingURL=archived-session-gate.d.ts.map