@deepseek-ai/dsh-api-session-controller 0.1.2-alpha.2 → 0.1.2-alpha.4

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.
@@ -132,11 +132,11 @@ const _deepseek_ai_dsh_api_session_controller_session_control_result$schema = z.
132
132
  'subagent': z.union([z.literal(null), z.object({
133
133
  'mode': z.literal("one-shot"),
134
134
  'label': z.string().optional(),
135
- 'seq': z.number(),
135
+ 'seq': z.intersection(z.number(), z.unknown()),
136
136
  }), z.object({
137
137
  'mode': z.literal("continuable"),
138
138
  'label': z.string(),
139
- 'seq': z.number(),
139
+ 'seq': z.intersection(z.number(), z.unknown()),
140
140
  })]).optional(),
141
141
  'goal': z.union([z.literal(null), z.object({
142
142
  'goal': z.object({
@@ -221,9 +221,9 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
221
221
  'ignorable': z.literal(true).readonly().optional(),
222
222
  'sourceEventSeqs': z.array(z.number()).readonly().optional(),
223
223
  'surfaceOp': z.union([z.literal("append"), z.object({
224
- 'op': z.literal("replace"),
225
- 'start': z.number(),
226
- 'end': z.number(),
224
+ 'op': z.literal("replace").readonly(),
225
+ 'start': z.number().readonly(),
226
+ 'end': z.number().readonly(),
227
227
  })]).readonly().optional(),
228
228
  }).readonly(),
229
229
  }), z.object({
@@ -250,9 +250,9 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
250
250
  'ignorable': z.literal(true).readonly().optional(),
251
251
  'sourceEventSeqs': z.array(z.number()).readonly().optional(),
252
252
  'surfaceOp': z.union([z.literal("append"), z.object({
253
- 'op': z.literal("replace"),
254
- 'start': z.number(),
255
- 'end': z.number(),
253
+ 'op': z.literal("replace").readonly(),
254
+ 'start': z.number().readonly(),
255
+ 'end': z.number().readonly(),
256
256
  })]).readonly().optional(),
257
257
  }).readonly(),
258
258
  }), z.object({
@@ -338,11 +338,11 @@ const _deepseek_ai_dsh_api_session_controller_session_follow_result$schema = z.u
338
338
  'subagent': z.union([z.literal(null), z.object({
339
339
  'mode': z.literal("one-shot"),
340
340
  'label': z.string().optional(),
341
- 'seq': z.number(),
341
+ 'seq': z.intersection(z.number(), z.unknown()),
342
342
  }), z.object({
343
343
  'mode': z.literal("continuable"),
344
344
  'label': z.string(),
345
- 'seq': z.number(),
345
+ 'seq': z.intersection(z.number(), z.unknown()),
346
346
  })]).optional(),
347
347
  'goal': z.union([z.literal(null), z.object({
348
348
  'goal': z.object({
@@ -425,11 +425,11 @@ const _deepseek_ai_dsh_api_session_controller_session_list_result$schema = z.obj
425
425
  'subagent': z.union([z.literal(null), z.object({
426
426
  'mode': z.literal("one-shot"),
427
427
  'label': z.string().optional(),
428
- 'seq': z.number(),
428
+ 'seq': z.intersection(z.number(), z.unknown()),
429
429
  }), z.object({
430
430
  'mode': z.literal("continuable"),
431
431
  'label': z.string(),
432
- 'seq': z.number(),
432
+ 'seq': z.intersection(z.number(), z.unknown()),
433
433
  })]).optional(),
434
434
  'goal': z.union([z.literal(null), z.object({
435
435
  'goal': z.object({
@@ -512,9 +512,9 @@ const _deepseek_ai_dsh_api_session_controller_session_page_result$schema = z.obj
512
512
  'ignorable': z.literal(true).readonly().optional(),
513
513
  'sourceEventSeqs': z.array(z.number()).readonly().optional(),
514
514
  'surfaceOp': z.union([z.literal("append"), z.object({
515
- 'op': z.literal("replace"),
516
- 'start': z.number(),
517
- 'end': z.number(),
515
+ 'op': z.literal("replace").readonly(),
516
+ 'start': z.number().readonly(),
517
+ 'end': z.number().readonly(),
518
518
  })]).readonly().optional(),
519
519
  }).readonly(),
520
520
  }), z.object({
@@ -734,7 +734,7 @@ export const TYPERT = {
734
734
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionAttachmentValue',
735
735
  schema: _deepseek_ai_dsh_api_session_controller_session_attachment_result$schema,
736
736
  },
737
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":333,"column":3},
737
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":338,"column":3},
738
738
  },
739
739
  {
740
740
  id: '@deepseek-ai/dsh-api-session-controller#session/cancel',
@@ -759,7 +759,7 @@ export const TYPERT = {
759
759
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCancelValue',
760
760
  schema: _deepseek_ai_dsh_api_session_controller_session_cancel_result$schema,
761
761
  },
762
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":353,"column":3},
762
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":358,"column":3},
763
763
  },
764
764
  {
765
765
  id: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath',
@@ -774,7 +774,7 @@ export const TYPERT = {
774
774
  typeSymbol: '@deepseek-ai/dsh-api-session-controller#session/canOpenWorkspacePath:result',
775
775
  schema: _deepseek_ai_dsh_api_session_controller_session_canOpenWorkspacePath_result$schema,
776
776
  },
777
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":258,"column":3},
777
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":263,"column":3},
778
778
  },
779
779
  {
780
780
  id: '@deepseek-ai/dsh-api-session-controller#session/control',
@@ -791,7 +791,7 @@ export const TYPERT = {
791
791
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionControlFrame',
792
792
  schema: _deepseek_ai_dsh_api_session_controller_session_control_result$schema,
793
793
  },
794
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":385,"column":3},
794
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":390,"column":3},
795
795
  },
796
796
  {
797
797
  id: '@deepseek-ai/dsh-api-session-controller#session/create',
@@ -816,7 +816,7 @@ export const TYPERT = {
816
816
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionCreateValue',
817
817
  schema: _deepseek_ai_dsh_api_session_controller_session_create_result$schema,
818
818
  },
819
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":230,"column":3},
819
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":235,"column":3},
820
820
  },
821
821
  {
822
822
  id: '@deepseek-ai/dsh-api-session-controller#session/follow',
@@ -843,7 +843,7 @@ export const TYPERT = {
843
843
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionFollowFrame',
844
844
  schema: _deepseek_ai_dsh_api_session_controller_session_follow_result$schema,
845
845
  },
846
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":375,"column":3},
846
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":380,"column":3},
847
847
  },
848
848
  {
849
849
  id: '@deepseek-ai/dsh-api-session-controller#session/fork',
@@ -868,7 +868,7 @@ export const TYPERT = {
868
868
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionForkValue',
869
869
  schema: _deepseek_ai_dsh_api_session_controller_session_fork_result$schema,
870
870
  },
871
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":311,"column":3},
871
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":316,"column":3},
872
872
  },
873
873
  {
874
874
  id: '@deepseek-ai/dsh-api-session-controller#session/list',
@@ -894,7 +894,7 @@ export const TYPERT = {
894
894
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionListValue',
895
895
  schema: _deepseek_ai_dsh_api_session_controller_session_list_result$schema,
896
896
  },
897
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":209,"column":9},
897
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":214,"column":9},
898
898
  },
899
899
  {
900
900
  id: '@deepseek-ai/dsh-api-session-controller#session/modelCatalog',
@@ -909,7 +909,7 @@ export const TYPERT = {
909
909
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#ModelCatalog',
910
910
  schema: _deepseek_ai_dsh_api_session_controller_session_modelCatalog_result$schema,
911
911
  },
912
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":249,"column":3},
912
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":254,"column":3},
913
913
  },
914
914
  {
915
915
  id: '@deepseek-ai/dsh-api-session-controller#session/openWorkspacePath',
@@ -935,7 +935,7 @@ export const TYPERT = {
935
935
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionOpenWorkspacePathValue',
936
936
  schema: _deepseek_ai_dsh_api_session_controller_session_openWorkspacePath_result$schema,
937
937
  },
938
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":270,"column":9},
938
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":275,"column":9},
939
939
  },
940
940
  {
941
941
  id: '@deepseek-ai/dsh-api-session-controller#session/page',
@@ -961,7 +961,7 @@ export const TYPERT = {
961
961
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPage',
962
962
  schema: _deepseek_ai_dsh_api_session_controller_session_page_result$schema,
963
963
  },
964
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":364,"column":3},
964
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":369,"column":3},
965
965
  },
966
966
  {
967
967
  id: '@deepseek-ai/dsh-api-session-controller#session/prompt',
@@ -987,7 +987,7 @@ export const TYPERT = {
987
987
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionPromptValue',
988
988
  schema: _deepseek_ai_dsh_api_session_controller_session_prompt_result$schema,
989
989
  },
990
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":322,"column":3},
990
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":327,"column":3},
991
991
  },
992
992
  {
993
993
  id: '@deepseek-ai/dsh-api-session-controller#session/rename',
@@ -1012,7 +1012,7 @@ export const TYPERT = {
1012
1012
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionRenameValue',
1013
1013
  schema: _deepseek_ai_dsh_api_session_controller_session_rename_result$schema,
1014
1014
  },
1015
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":301,"column":3},
1015
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":306,"column":3},
1016
1016
  },
1017
1017
  {
1018
1018
  id: '@deepseek-ai/dsh-api-session-controller#session/search',
@@ -1038,7 +1038,7 @@ export const TYPERT = {
1038
1038
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSearchValue',
1039
1039
  schema: _deepseek_ai_dsh_api_session_controller_session_search_result$schema,
1040
1040
  },
1041
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":220,"column":3},
1041
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":225,"column":3},
1042
1042
  },
1043
1043
  {
1044
1044
  id: '@deepseek-ai/dsh-api-session-controller#session/selectModel',
@@ -1063,7 +1063,7 @@ export const TYPERT = {
1063
1063
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionSelectModelValue',
1064
1064
  schema: _deepseek_ai_dsh_api_session_controller_session_selectModel_result$schema,
1065
1065
  },
1066
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":240,"column":3},
1066
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":245,"column":3},
1067
1067
  },
1068
1068
  {
1069
1069
  id: '@deepseek-ai/dsh-api-session-controller#session/updateQueue',
@@ -1088,7 +1088,7 @@ export const TYPERT = {
1088
1088
  typeSymbol: '@deepseek-ai/dsh-api-session-controller/types#SessionUpdateQueueValue',
1089
1089
  schema: _deepseek_ai_dsh_api_session_controller_session_updateQueue_result$schema,
1090
1090
  },
1091
- sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":343,"column":3},
1091
+ sourceLocation: {"file":"packages/api/session-controller/src/index.ts","line":348,"column":3},
1092
1092
  },
1093
1093
  {
1094
1094
  id: '@deepseek-ai/dsh-api-session-controller#skills/list',
@@ -1137,7 +1137,7 @@ export const TYPERT = {
1137
1137
  {
1138
1138
  "kind": "method",
1139
1139
  "name": "inspect",
1140
- "signature": "inspect( sessionId: SessionId, signal?: AbortSignal, ): Promise<{ meta: SessionHeader; events: SessionEvent[] }>",
1140
+ "signature": "inspect( sessionId: SessionId, signal?: AbortSignal, ): Promise<SessionInspection>",
1141
1141
  "summary": "Inspect one attached or persisted Session without activating its Agent.",
1142
1142
  "jsDoc": "/**\n * Inspect one attached or persisted Session without activating its Agent.\n * @param sessionId - durable Session identity.\n * @param signal - optional caller cancellation for persistence reads.\n * @returns the current attached state or persisted header and event prefix.\n */"
1143
1143
  },
@@ -1263,6 +1263,10 @@ export const TYPERT = {
1263
1263
  "name": "AgentCancelCause",
1264
1264
  "declaration": "export type AgentCancelCause = { readonly kind: 'user'; } | { readonly kind: 'parent'; } | { readonly kind: 'hook'; readonly reason: string; } | { readonly kind: 'disposed'; };"
1265
1265
  },
1266
+ {
1267
+ "name": "AgentMessageSource",
1268
+ "declaration": "export interface AgentMessageSource {\n readonly kind: 'agent-message';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
1269
+ },
1266
1270
  {
1267
1271
  "name": "AgentOptions",
1268
1272
  "declaration": "export interface AgentOptions {\n provider?: string;\n model?: string;\n reasoningEffort?: ReasoningEffortId;\n maxTokens?: number;\n subagentDepth?: number;\n}"
@@ -1307,13 +1311,17 @@ export const TYPERT = {
1307
1311
  "name": "Branded",
1308
1312
  "declaration": "export type Branded<B extends string> = string & { readonly [BRAND]: B; };"
1309
1313
  },
1314
+ {
1315
+ "name": "BrandedNumber",
1316
+ "declaration": "export type BrandedNumber<B extends string> = number & { readonly [BRAND]: B; };"
1317
+ },
1310
1318
  {
1311
1319
  "name": "CancelOptions",
1312
1320
  "declaration": "export interface CancelOptions {\n keepInbox?: boolean | undefined;\n}"
1313
1321
  },
1314
1322
  {
1315
1323
  "name": "ChunkRow",
1316
- "declaration": "export type ChunkRow = { type: 'text-chunks'; seq0: number; time0: number; data: TextRunData; } | { type: 'reasoning-chunks'; seq0: number; time0: number; data: TextRunData; } | { type: 'tool-call-chunks'; seq0: number; time0: number; data: ToolCallRunData; };"
1324
+ "declaration": "export type ChunkRow = { type: 'text-chunks'; seq0: SessionSeqType; time0: number; data: TextRunData; } | { type: 'reasoning-chunks'; seq0: SessionSeqType; time0: number; data: TextRunData; } | { type: 'tool-call-chunks'; seq0: SessionSeqType; time0: number; data: ToolCallRunData; };"
1317
1325
  },
1318
1326
  {
1319
1327
  "name": "ChunkRowEvent",
@@ -1359,10 +1367,6 @@ export const TYPERT = {
1359
1367
  "name": "ContinuableSubagentDescriptorData",
1360
1368
  "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}"
1361
1369
  },
1362
- {
1363
- "name": "CoordinatorMessageSource",
1364
- "declaration": "export interface CoordinatorMessageSource {\n readonly kind: 'coordinator';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
1365
- },
1366
1370
  {
1367
1371
  "name": "EpochHeader",
1368
1372
  "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n system?: string;\n tools?: ToolSchema[];\n}"
@@ -1477,7 +1481,7 @@ export const TYPERT = {
1477
1481
  },
1478
1482
  {
1479
1483
  "name": "MessageSourceMap",
1480
- "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 coordinator: CoordinatorMessageSource;\n 'subagent-report': SubagentReportMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'session-reference': SessionReferenceSource;\n}"
1484
+ "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}"
1481
1485
  },
1482
1486
  {
1483
1487
  "name": "ModelCatalog",
@@ -1519,6 +1523,10 @@ export const TYPERT = {
1519
1523
  "name": "OneShotSubagentDescriptorData",
1520
1524
  "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'one-shot';\n readonly label?: string;\n}"
1521
1525
  },
1526
+ {
1527
+ "name": "OptionalSessionSeq",
1528
+ "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
1529
+ },
1522
1530
  {
1523
1531
  "name": "PromptContentPart",
1524
1532
  "declaration": "export type PromptContentPart = { readonly type: 'text'; readonly text: string; } | { readonly type: 'image'; readonly mediaType: ImageMediaType; readonly data: string; readonly name?: string; };"
@@ -1557,7 +1565,7 @@ export const TYPERT = {
1557
1565
  },
1558
1566
  {
1559
1567
  "name": "RemoteErrorDetailsMap",
1560
- "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-unsupported': { readonly childSessionId: SessionId; 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 '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}"
1568
+ "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 '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}"
1561
1569
  },
1562
1570
  {
1563
1571
  "name": "ReplayEnvelope",
@@ -1581,7 +1589,7 @@ export const TYPERT = {
1581
1589
  },
1582
1590
  {
1583
1591
  "name": "Session",
1584
- "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n get id(): SessionId;\n readonly firstLiveSeq: number;\n get events(): readonly SessionEvent[];\n get seq(): number;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
1592
+ "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] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
1585
1593
  },
1586
1594
  {
1587
1595
  "name": "SessionAddress",
@@ -1625,7 +1633,7 @@ export const TYPERT = {
1625
1633
  },
1626
1634
  {
1627
1635
  "name": "SessionEvent",
1628
- "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: number; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? { sourceEventSeqs?: number[]; surfaceOp?: SurfaceOp; } : object) }[T];"
1636
+ "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? { sourceEventSeqs?: SessionSeq[]; surfaceOp?: SurfaceOp; } : object) }[T];"
1629
1637
  },
1630
1638
  {
1631
1639
  "name": "SessionEventEntry",
@@ -1633,7 +1641,7 @@ export const TYPERT = {
1633
1641
  },
1634
1642
  {
1635
1643
  "name": "SessionEventMap",
1636
- "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 'assistant/chunk': { turn: number; step: number; chunk: StreamChunk; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; };\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; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': Record<string, never>;\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\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/code-dispatch-start': PtcDispatchStartEventData;\n 'tool/code-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: number; };\n 'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: number; end: number; }; shadowedSeqs: number[]; 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: number; end: number; }; shadowedSeqs: number[]; shadowedTokenCount: number; };\n}"
1644
+ "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 'assistant/chunk': { turn: number; step: number; chunk: StreamChunk; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; };\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; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': Record<string, never>;\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\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/code-dispatch-start': PtcDispatchStartEventData;\n 'tool/code-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\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 'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\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}"
1637
1645
  },
1638
1646
  {
1639
1647
  "name": "SessionEventType",
@@ -1641,7 +1649,7 @@ export const TYPERT = {
1641
1649
  },
1642
1650
  {
1643
1651
  "name": "SessionFollowFrame",
1644
- "declaration": "export type SessionFollowFrame = { readonly type: 'snapshot'; readonly header: SessionHeader; readonly cursor: number; readonly records: readonly SessionHistoryRecord[]; readonly hasMore: boolean; readonly projections: SessionProjectionBaseline; } | SessionEventEntry;"
1652
+ "declaration": "export type SessionFollowFrame = { readonly type: 'snapshot'; readonly header: SessionWireHeader; readonly cursor: number; readonly records: readonly SessionHistoryRecord[]; readonly hasMore: boolean; readonly projections: SessionProjectionBaseline; } | SessionEventEntry;"
1645
1653
  },
1646
1654
  {
1647
1655
  "name": "SessionFollowRequest",
@@ -1657,7 +1665,7 @@ export const TYPERT = {
1657
1665
  },
1658
1666
  {
1659
1667
  "name": "SessionHeader",
1660
- "declaration": "export interface SessionHeader {\n readonly version: number;\n readonly id: SessionId;\n readonly createdAt: number;\n readonly cwd?: string;\n readonly parentSession?: SessionId;\n readonly seedLength?: number;\n readonly origin?: 'subagent';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}"
1668
+ "declaration": "export interface SessionHeader {\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}"
1661
1669
  },
1662
1670
  {
1663
1671
  "name": "SessionHistoryRecord",
@@ -1667,6 +1675,10 @@ export const TYPERT = {
1667
1675
  "name": "SessionId",
1668
1676
  "declaration": "export type SessionId = Branded<'SessionId'>;"
1669
1677
  },
1678
+ {
1679
+ "name": "SessionInspection",
1680
+ "declaration": "export interface SessionInspection extends SessionStorageMetadata {\n readonly events: readonly SessionEvent[];\n}"
1681
+ },
1670
1682
  {
1671
1683
  "name": "SessionJob",
1672
1684
  "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}"
@@ -1683,6 +1695,10 @@ export const TYPERT = {
1683
1695
  "name": "SessionListValue",
1684
1696
  "declaration": "export interface SessionListValue {\n readonly items: readonly SessionSummary[];\n}"
1685
1697
  },
1698
+ {
1699
+ "name": "SessionLogOffset",
1700
+ "declaration": "export type SessionLogOffset = BrandedNumber<'SessionLogOffset'>;"
1701
+ },
1686
1702
  {
1687
1703
  "name": "SessionOpenWorkspacePathRequest",
1688
1704
  "declaration": "export interface SessionOpenWorkspacePathRequest {\n readonly path: string;\n}"
@@ -1737,7 +1753,7 @@ export const TYPERT = {
1737
1753
  },
1738
1754
  {
1739
1755
  "name": "SessionReferenceSource",
1740
- "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedThroughSeq: number | null; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
1756
+ "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedThroughSeq: OptionalSessionSeq; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
1741
1757
  },
1742
1758
  {
1743
1759
  "name": "SessionRenameRequest",
@@ -1771,17 +1787,25 @@ export const TYPERT = {
1771
1787
  "name": "SessionSelectModelValue",
1772
1788
  "declaration": "export interface SessionSelectModelValue {\n readonly selected: ModelSelection;\n}"
1773
1789
  },
1790
+ {
1791
+ "name": "SessionSeq",
1792
+ "declaration": "export type SessionSeq = BrandedNumber<'SessionSeq'>;"
1793
+ },
1794
+ {
1795
+ "name": "SessionStorageMetadata",
1796
+ "declaration": "export interface SessionStorageMetadata {\n readonly meta: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n}"
1797
+ },
1774
1798
  {
1775
1799
  "name": "SessionSummary",
1776
1800
  "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}"
1777
1801
  },
1778
1802
  {
1779
1803
  "name": "SessionSurface",
1780
- "declaration": "export interface SessionSurface {\n readonly nodes: readonly number[];\n readonly replaceGeneration: number;\n}"
1804
+ "declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n}"
1781
1805
  },
1782
1806
  {
1783
1807
  "name": "SessionTitleEventData",
1784
- "declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: number[];\n readonly source: SessionTitleSource;\n}"
1808
+ "declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: SessionSeq[];\n readonly source: SessionTitleSource;\n}"
1785
1809
  },
1786
1810
  {
1787
1811
  "name": "SessionTitleModelProvenance",
@@ -1805,7 +1829,15 @@ export const TYPERT = {
1805
1829
  },
1806
1830
  {
1807
1831
  "name": "SessionWireEvent",
1808
- "declaration": "export interface SessionWireEvent {\n readonly type: string;\n readonly seq: number;\n readonly time: number;\n readonly data: JsonValue;\n readonly ignorable?: true;\n readonly sourceEventSeqs?: number[];\n readonly surfaceOp?: SurfaceOp;\n}"
1832
+ "declaration": "export interface SessionWireEvent {\n readonly type: string;\n readonly seq: number;\n readonly time: number;\n readonly data: JsonValue;\n readonly ignorable?: true;\n readonly sourceEventSeqs?: number[];\n readonly surfaceOp?: SessionWireSurfaceOp;\n}"
1833
+ },
1834
+ {
1835
+ "name": "SessionWireHeader",
1836
+ "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 seedLength?: number;\n readonly origin?: 'subagent';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}"
1837
+ },
1838
+ {
1839
+ "name": "SessionWireSurfaceOp",
1840
+ "declaration": "export type SessionWireSurfaceOp = 'append' | { readonly op: 'replace'; readonly start: number; readonly end: number; };"
1809
1841
  },
1810
1842
  {
1811
1843
  "name": "SkillInvocationSource",
@@ -1825,11 +1857,7 @@ export const TYPERT = {
1825
1857
  },
1826
1858
  {
1827
1859
  "name": "SubagentIdentityProjection",
1828
- "declaration": "export type SubagentIdentityProjection = { mode: 'one-shot'; label?: string; seq: number; } | { mode: 'continuable'; label: string; seq: number; };"
1829
- },
1830
- {
1831
- "name": "SubagentReportMessageSource",
1832
- "declaration": "export interface SubagentReportMessageSource {\n readonly kind: 'subagent-report';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
1860
+ "declaration": "export type SubagentIdentityProjection = { mode: 'one-shot'; label?: string; seq: SessionSeq; } | { mode: 'continuable'; label: string; seq: SessionSeq; };"
1833
1861
  },
1834
1862
  {
1835
1863
  "name": "SubagentSettledMessageSource",
@@ -1845,11 +1873,11 @@ export const TYPERT = {
1845
1873
  },
1846
1874
  {
1847
1875
  "name": "SurfaceIntent",
1848
- "declaration": "export interface SurfaceIntent {\n surfaceOp: SurfaceOp;\n sourceEventSeqs?: number[];\n}"
1876
+ "declaration": "export interface SurfaceIntent {\n surfaceOp: SurfaceOp;\n sourceEventSeqs?: SessionSeq[];\n}"
1849
1877
  },
1850
1878
  {
1851
1879
  "name": "SurfaceOp",
1852
- "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; start: number; end: number; };"
1880
+ "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; start: SessionSeq; end: SessionSeq; };"
1853
1881
  },
1854
1882
  {
1855
1883
  "name": "TeamId",
@@ -1982,6 +2010,10 @@ export const TYPERT = {
1982
2010
  "name": "AgentCancelCause",
1983
2011
  "declaration": "export type AgentCancelCause = { readonly kind: 'user'; } | { readonly kind: 'parent'; } | { readonly kind: 'hook'; readonly reason: string; } | { readonly kind: 'disposed'; };"
1984
2012
  },
2013
+ {
2014
+ "name": "AgentMessageSource",
2015
+ "declaration": "export interface AgentMessageSource {\n readonly kind: 'agent-message';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
2016
+ },
1985
2017
  {
1986
2018
  "name": "AgentOptions",
1987
2019
  "declaration": "export interface AgentOptions {\n provider?: string;\n model?: string;\n reasoningEffort?: ReasoningEffortId;\n maxTokens?: number;\n subagentDepth?: number;\n}"
@@ -2018,6 +2050,10 @@ export const TYPERT = {
2018
2050
  "name": "Branded",
2019
2051
  "declaration": "export type Branded<B extends string> = string & { readonly [BRAND]: B; };"
2020
2052
  },
2053
+ {
2054
+ "name": "BrandedNumber",
2055
+ "declaration": "export type BrandedNumber<B extends string> = number & { readonly [BRAND]: B; };"
2056
+ },
2021
2057
  {
2022
2058
  "name": "CancelOptions",
2023
2059
  "declaration": "export interface CancelOptions {\n keepInbox?: boolean | undefined;\n}"
@@ -2062,10 +2098,6 @@ export const TYPERT = {
2062
2098
  "name": "ContinuableSubagentDescriptorData",
2063
2099
  "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}"
2064
2100
  },
2065
- {
2066
- "name": "CoordinatorMessageSource",
2067
- "declaration": "export interface CoordinatorMessageSource {\n readonly kind: 'coordinator';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
2068
- },
2069
2101
  {
2070
2102
  "name": "EpochHeader",
2071
2103
  "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n system?: string;\n tools?: ToolSchema[];\n}"
@@ -2172,7 +2204,7 @@ export const TYPERT = {
2172
2204
  },
2173
2205
  {
2174
2206
  "name": "MessageSourceMap",
2175
- "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 coordinator: CoordinatorMessageSource;\n 'subagent-report': SubagentReportMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'session-reference': SessionReferenceSource;\n}"
2207
+ "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}"
2176
2208
  },
2177
2209
  {
2178
2210
  "name": "ModelMessageSource",
@@ -2186,6 +2218,10 @@ export const TYPERT = {
2186
2218
  "name": "OneShotSubagentDescriptorData",
2187
2219
  "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'one-shot';\n readonly label?: string;\n}"
2188
2220
  },
2221
+ {
2222
+ "name": "OptionalSessionSeq",
2223
+ "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
2224
+ },
2189
2225
  {
2190
2226
  "name": "ProviderRequestId",
2191
2227
  "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
@@ -2224,15 +2260,15 @@ export const TYPERT = {
2224
2260
  },
2225
2261
  {
2226
2262
  "name": "Session",
2227
- "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n get id(): SessionId;\n readonly firstLiveSeq: number;\n get events(): readonly SessionEvent[];\n get seq(): number;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
2263
+ "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] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
2228
2264
  },
2229
2265
  {
2230
2266
  "name": "SessionEvent",
2231
- "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: number; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? { sourceEventSeqs?: number[]; surfaceOp?: SurfaceOp; } : object) }[T];"
2267
+ "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? { sourceEventSeqs?: SessionSeq[]; surfaceOp?: SurfaceOp; } : object) }[T];"
2232
2268
  },
2233
2269
  {
2234
2270
  "name": "SessionEventMap",
2235
- "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 'assistant/chunk': { turn: number; step: number; chunk: StreamChunk; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; };\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; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': Record<string, never>;\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\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/code-dispatch-start': PtcDispatchStartEventData;\n 'tool/code-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: number; };\n 'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: number; end: number; }; shadowedSeqs: number[]; 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: number; end: number; }; shadowedSeqs: number[]; shadowedTokenCount: number; };\n}"
2271
+ "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 'assistant/chunk': { turn: number; step: number; chunk: StreamChunk; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true; };\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; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': Record<string, never>;\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\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/code-dispatch-start': PtcDispatchStartEventData;\n 'tool/code-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\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 'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 1; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\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}"
2236
2272
  },
2237
2273
  {
2238
2274
  "name": "SessionEventType",
@@ -2240,27 +2276,35 @@ export const TYPERT = {
2240
2276
  },
2241
2277
  {
2242
2278
  "name": "SessionHeader",
2243
- "declaration": "export interface SessionHeader {\n readonly version: number;\n readonly id: SessionId;\n readonly createdAt: number;\n readonly cwd?: string;\n readonly parentSession?: SessionId;\n readonly seedLength?: number;\n readonly origin?: 'subagent';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}"
2279
+ "declaration": "export interface SessionHeader {\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}"
2244
2280
  },
2245
2281
  {
2246
2282
  "name": "SessionId",
2247
2283
  "declaration": "export type SessionId = Branded<'SessionId'>;"
2248
2284
  },
2285
+ {
2286
+ "name": "SessionLogOffset",
2287
+ "declaration": "export type SessionLogOffset = BrandedNumber<'SessionLogOffset'>;"
2288
+ },
2249
2289
  {
2250
2290
  "name": "SessionReferenceSource",
2251
- "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedThroughSeq: number | null; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
2291
+ "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedThroughSeq: OptionalSessionSeq; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
2252
2292
  },
2253
2293
  {
2254
2294
  "name": "SessionRequestId",
2255
2295
  "declaration": "export type SessionRequestId = Branded<'session-request-id'>;"
2256
2296
  },
2297
+ {
2298
+ "name": "SessionSeq",
2299
+ "declaration": "export type SessionSeq = BrandedNumber<'SessionSeq'>;"
2300
+ },
2257
2301
  {
2258
2302
  "name": "SessionSurface",
2259
- "declaration": "export interface SessionSurface {\n readonly nodes: readonly number[];\n readonly replaceGeneration: number;\n}"
2303
+ "declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n}"
2260
2304
  },
2261
2305
  {
2262
2306
  "name": "SessionTitleEventData",
2263
- "declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: number[];\n readonly source: SessionTitleSource;\n}"
2307
+ "declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: SessionSeq[];\n readonly source: SessionTitleSource;\n}"
2264
2308
  },
2265
2309
  {
2266
2310
  "name": "SessionTitleModelProvenance",
@@ -2290,10 +2334,6 @@ export const TYPERT = {
2290
2334
  "name": "SubagentDescriptorData",
2291
2335
  "declaration": "export type SubagentDescriptorData = OneShotSubagentDescriptorData | ContinuableSubagentDescriptorData;"
2292
2336
  },
2293
- {
2294
- "name": "SubagentReportMessageSource",
2295
- "declaration": "export interface SubagentReportMessageSource {\n readonly kind: 'subagent-report';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
2296
- },
2297
2337
  {
2298
2338
  "name": "SubagentSettledMessageSource",
2299
2339
  "declaration": "export interface SubagentSettledMessageSource {\n readonly kind: 'subagent-settled';\n readonly form: 'notice';\n readonly summary: string;\n readonly senderSessionId: SessionId;\n}"
@@ -2304,11 +2344,11 @@ export const TYPERT = {
2304
2344
  },
2305
2345
  {
2306
2346
  "name": "SurfaceIntent",
2307
- "declaration": "export interface SurfaceIntent {\n surfaceOp: SurfaceOp;\n sourceEventSeqs?: number[];\n}"
2347
+ "declaration": "export interface SurfaceIntent {\n surfaceOp: SurfaceOp;\n sourceEventSeqs?: SessionSeq[];\n}"
2308
2348
  },
2309
2349
  {
2310
2350
  "name": "SurfaceOp",
2311
- "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; start: number; end: number; };"
2351
+ "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; start: SessionSeq; end: SessionSeq; };"
2312
2352
  },
2313
2353
  {
2314
2354
  "name": "TeamId",