dsh-plugin-guide 0.3.2 → 0.3.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.
Files changed (142) hide show
  1. package/README.es.md +5 -1
  2. package/README.hi.md +5 -1
  3. package/README.md +5 -1
  4. package/README.pt.md +5 -1
  5. package/README.zh.md +5 -1
  6. package/dist/dsh-plugin-dev.js +3 -3
  7. package/guide/plugin-dev-guide.md +2 -2
  8. package/guide/quick-reference.es.md +2 -2
  9. package/guide/quick-reference.hi.md +1 -1
  10. package/guide/quick-reference.md +2 -2
  11. package/guide/quick-reference.pt.md +2 -2
  12. package/guide/quick-reference.zh-CN.md +2 -2
  13. package/package.json +3 -3
  14. package/references/official-docs/AGENTS.md +3 -3
  15. package/references/official-docs/SNAPSHOT.md +4 -4
  16. package/references/official-docs/THIRD_PARTY_NOTICES.md +4 -6
  17. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  18. package/references/official-docs/docs/agent-lifecycle.md +5 -3
  19. package/references/official-docs/docs/agent-lifecycle.zh.md +5 -3
  20. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  21. package/references/official-docs/docs/architecture.md +9 -4
  22. package/references/official-docs/docs/architecture.zh.md +9 -4
  23. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  24. package/references/official-docs/docs/capability-seams.md +8 -1
  25. package/references/official-docs/docs/capability-seams.zh.md +8 -1
  26. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  27. package/references/official-docs/docs/config-catalog.md +104 -68
  28. package/references/official-docs/docs/config-catalog.zh.md +101 -65
  29. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
  30. package/references/official-docs/docs/cookbook/adding-a-package.md +1 -1
  31. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +1 -1
  32. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  33. package/references/official-docs/docs/cookbook/extension-cookbook.md +12 -10
  34. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +12 -10
  35. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +2 -2
  36. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +16 -12
  37. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +16 -12
  38. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  39. package/references/official-docs/docs/event-producer-consumer.md +30 -29
  40. package/references/official-docs/docs/event-producer-consumer.zh.md +35 -34
  41. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  42. package/references/official-docs/docs/module-graph.md +214 -360
  43. package/references/official-docs/docs/module-graph.zh.md +214 -360
  44. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  45. package/references/official-docs/docs/persistence-catalog.md +74 -64
  46. package/references/official-docs/docs/persistence-catalog.zh.md +72 -62
  47. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +2 -2
  48. package/references/official-docs/docs/subsystems/agent-team.md +4 -3
  49. package/references/official-docs/docs/subsystems/agent-team.zh.md +4 -3
  50. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  51. package/references/official-docs/docs/subsystems/attachment.md +157 -4
  52. package/references/official-docs/docs/subsystems/attachment.zh.md +157 -4
  53. package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
  54. package/references/official-docs/docs/subsystems/code-runtime.md +7 -3
  55. package/references/official-docs/docs/subsystems/code-runtime.zh.md +7 -3
  56. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  57. package/references/official-docs/docs/subsystems/commands.md +25 -16
  58. package/references/official-docs/docs/subsystems/commands.zh.md +25 -16
  59. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  60. package/references/official-docs/docs/subsystems/compaction.md +9 -9
  61. package/references/official-docs/docs/subsystems/compaction.zh.md +9 -9
  62. package/references/official-docs/docs/subsystems/conversation.i18n.yaml +2 -2
  63. package/references/official-docs/docs/subsystems/conversation.md +4 -4
  64. package/references/official-docs/docs/subsystems/conversation.zh.md +4 -4
  65. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  66. package/references/official-docs/docs/subsystems/core.md +66 -4
  67. package/references/official-docs/docs/subsystems/core.zh.md +66 -4
  68. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  69. package/references/official-docs/docs/subsystems/feedback.md +2 -2
  70. package/references/official-docs/docs/subsystems/feedback.zh.md +2 -2
  71. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  72. package/references/official-docs/docs/subsystems/llm-streaming.md +23 -2
  73. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +23 -2
  74. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  75. package/references/official-docs/docs/subsystems/persistence.md +183 -191
  76. package/references/official-docs/docs/subsystems/persistence.zh.md +183 -191
  77. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  78. package/references/official-docs/docs/subsystems/schedule.md +1 -1
  79. package/references/official-docs/docs/subsystems/schedule.zh.md +1 -1
  80. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  81. package/references/official-docs/docs/subsystems/session-projection.md +40 -17
  82. package/references/official-docs/docs/subsystems/session-projection.zh.md +40 -17
  83. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  84. package/references/official-docs/docs/subsystems/session-query.md +19 -13
  85. package/references/official-docs/docs/subsystems/session-query.zh.md +19 -13
  86. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  87. package/references/official-docs/docs/subsystems/session-reference.md +25 -1
  88. package/references/official-docs/docs/subsystems/session-reference.zh.md +25 -1
  89. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  90. package/references/official-docs/docs/subsystems/session-telemetry.md +6 -5
  91. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +6 -5
  92. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  93. package/references/official-docs/docs/subsystems/session-title.md +5 -5
  94. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  95. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  96. package/references/official-docs/docs/subsystems/session.md +143 -71
  97. package/references/official-docs/docs/subsystems/session.zh.md +143 -71
  98. package/references/official-docs/docs/subsystems/slots.i18n.yaml +2 -2
  99. package/references/official-docs/docs/subsystems/slots.md +1 -0
  100. package/references/official-docs/docs/subsystems/slots.zh.md +1 -0
  101. package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
  102. package/references/official-docs/docs/subsystems/storage.md +28 -5
  103. package/references/official-docs/docs/subsystems/storage.zh.md +28 -5
  104. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  105. package/references/official-docs/docs/subsystems/subagent.md +32 -88
  106. package/references/official-docs/docs/subsystems/subagent.zh.md +31 -87
  107. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  108. package/references/official-docs/docs/subsystems/token-meter.md +2 -2
  109. package/references/official-docs/docs/subsystems/token-meter.zh.md +2 -2
  110. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +2 -2
  111. package/references/official-docs/docs/subsystems/web-client.md +1 -1
  112. package/references/official-docs/docs/subsystems/web-client.zh.md +1 -1
  113. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  114. package/references/official-docs/docs/subsystems/workspace.md +8 -8
  115. package/references/official-docs/docs/subsystems/workspace.zh.md +8 -8
  116. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  117. package/references/official-docs/docs/testing.md +2 -2
  118. package/references/official-docs/docs/testing.zh.md +2 -2
  119. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  120. package/references/official-docs/docs/tool-catalog.md +9 -63
  121. package/references/official-docs/docs/tool-catalog.zh.md +8 -62
  122. package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +6 -0
  123. package/references/official-docs/docs/user/guide/network-proxy.md +85 -0
  124. package/references/official-docs/docs/user/guide/network-proxy.zh.md +85 -0
  125. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  126. package/references/official-docs/docs/user/guide/providers.md +70 -17
  127. package/references/official-docs/docs/user/guide/providers.zh.md +70 -17
  128. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  129. package/references/official-docs/docs/web-styling.md +4 -0
  130. package/references/official-docs/docs/web-styling.zh.md +4 -0
  131. package/references/official-docs/packages/AGENTS.md +2 -2
  132. package/references/official-docs/website-docs.ts +8 -0
  133. package/templates/js/README.es.md +1 -1
  134. package/templates/js/README.hi.md +1 -1
  135. package/templates/js/README.md +1 -1
  136. package/templates/js/README.pt.md +1 -1
  137. package/templates/js/README.zh.md +1 -1
  138. package/templates/ts/README.es.md +1 -1
  139. package/templates/ts/README.hi.md +1 -1
  140. package/templates/ts/README.md +1 -1
  141. package/templates/ts/README.pt.md +1 -1
  142. package/templates/ts/README.zh.md +1 -1
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/persistence-catalog.md
5
- persistence-catalog.md: a15b796e78de525874f8c28867e6748ba8779db8
6
- persistence-catalog.zh.md: f98485343e73b1bc777f6517a05cade49c77a15f
5
+ persistence-catalog.md: 0b52801083498542c814d06171942f33d013efe2
6
+ persistence-catalog.zh.md: eda29e00c9dfaff6c5d35afba55f2a8cfb95f075
@@ -7,7 +7,7 @@ Every event type that can appear in a session's durable event log: the complete
7
7
 
8
8
  This file is GENERATED from source (`scripts/gen-persistence-catalog.ts`) and verified fresh by `pnpm run verify-persistence-catalog` (part of `doc-sync`) — do not edit it by hand. Declaration blocks retain the source declaration and nested property JSDoc, removing only the indentation imposed by a containing interface/module, and use a `ts persistence-catalog` fence (skipped by doc-typecheck because declarations reference types from their owning modules). Type names in a payload link to the page that documents them. See [the persistence-log-catalog Agent Note](../.agents/notes/archived/process/2026-07-04-persistence-log-catalog.md).
9
9
 
10
- The envelope declarations below compose each event's `type`, monotonic `seq`, epoch-ms `time`, `data`, the optional `ignorable` unknown-type skip marker, and the conditional `surfaceOp`/`sourceEventSeqs` fields. **surface** marks a `SurfaceEventType` member: it produces an LLM message and declares how it joins the surface list. **log-only** marks everything else: a durable, replayable record with no derived-history contribution. Every payload is JSON-serializable (enforced at `Session.append`), and the whole format is pinned at `SESSION_FORMAT_VERSION = 0` pre-release, no compatibility implied ([the version stance](subsystems/persistence.md)). Scope: the packages in this repo; a downstream plugin can merge further event types, which are outside this catalog by construction.
10
+ The envelope declarations below compose each event's `type`, monotonic `seq`, epoch-ms `time`, `data`, the optional `ignorable` unknown-type skip marker, and the conditional `surfaceOp`/`sourceEventSeqs` fields. **surface** marks a `SurfaceEventType` member: it produces an LLM message and declares how it joins the surface list. **log-only** marks everything else: a durable, replayable record with no derived-history contribution. Every payload is JSON-serializable (enforced at `Session.append`). Current writers stamp `SESSION_FORMAT_VERSION`; supported historical artifacts reach this current vocabulary through the build-static adjacent migration catalog ([the version lifecycle](subsystems/persistence.md)). Scope: the packages in this repo; a downstream plugin can merge further current-version event types, which are outside this catalog by construction and require an explicit disposition at a later format edge.
11
11
 
12
12
  ## Event envelope
13
13
 
@@ -18,7 +18,8 @@ export type SessionEventType = keyof SessionEventMap
18
18
  /**
19
19
  * The subset of {@link SessionEventType} values whose events produce LLM
20
20
  * messages and are eligible to appear on the ordered surface. Only these
21
- * event types may carry {@link SurfaceOp} and {@link SessionEvent.sourceEventSeqs}.
21
+ * event types may carry {@link SurfaceOp}; user and tool events may also cite
22
+ * earlier sources through {@link SessionEvent.sourceEventSeqs}.
22
23
  */
23
24
  export type SurfaceEventType =
24
25
  | 'user/message'
@@ -40,7 +41,7 @@ export type SurfaceEventType =
40
41
  */
41
42
  export type SurfaceOp =
42
43
  | 'append'
43
- | { op: 'replace'; start: number; end: number }
44
+ | { op: 'replace'; start: SessionSeq; end: SessionSeq }
44
45
 
45
46
  /**
46
47
  * One immutable entry in the session log.
@@ -51,7 +52,7 @@ export type SurfaceOp =
51
52
  * The {@link sourceEventSeqs} and {@link surfaceOp} fields are conditional:
52
53
  * they only exist on {@link SurfaceEventType} variants (`user/message`,
53
54
  * `assistant/message`, `tool/result`).
54
- * Non-surface events (boundary markers, chunks, usage, errors) never carry
55
+ * Non-surface events (boundary markers, attempts, errors) never carry
55
56
  * surface metadata — the compiler enforces this at `Session.append()`
56
57
  * call sites.
57
58
  */
@@ -59,7 +60,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
59
60
  [K in SessionEventType]: {
60
61
  type: K
61
62
  /** Monotonic sequence number within the session. */
62
- seq: number
63
+ seq: SessionSeq
63
64
  /** Unix epoch milliseconds. */
64
65
  time: number
65
66
  data: SessionEventMap[K]
@@ -76,21 +77,18 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
76
77
  ignorable?: true
77
78
  } & (K extends SurfaceEventType ? {
78
79
  /**
79
- * Seq numbers of earlier events that this event cites as sources
80
- * (e.g. the `assistant/chunk` seqs that built an `assistant/message`,
81
- * or the surface nodes shadowed by a compaction replace node). An
82
- * `assistant/message` may carry a present empty array for a known empty
83
- * provider stream; when the field is absent, the event does not record which
84
- * earlier events produced the message.
80
+ * Seq numbers of earlier events that this event cites as sources, such as
81
+ * the surface nodes shadowed by a compaction replacement. A v2
82
+ * `assistant/message` embeds its provider stream and cannot carry this field.
85
83
  */
86
- sourceEventSeqs?: number[]
84
+ sourceEventSeqs?: SessionSeq[]
87
85
  /** How this event entered the surface; absent for non-surface events. */
88
86
  surfaceOp?: SurfaceOp
89
87
  } : object)
90
88
  }[T]
91
89
  ```
92
90
 
93
- Sources: [`packages/core/session/src/types.ts:323`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:330`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:359`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:391`](../packages/core/session/src/types.ts)
91
+ Sources: [`packages/core/session/src/types.ts:379`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:387`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:416`](../packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:447`](../packages/core/session/src/types.ts)
94
92
 
95
93
  ## Events
96
94
 
@@ -189,7 +187,7 @@ Source: [`packages/interaction/user-approval/src/types.ts:55`](../packages/inter
189
187
  * The session's approval policy was switched — log-only, durable,
190
188
  * replayable, never in the model transcript (the model learns the policy
191
189
  * from the runtime-context snapshot and live switch notices). The LAST
192
- * such event is the session's override ({@link effectiveApprovalPolicy}).
190
+ * such event is the session's override.
193
191
  * `source: 'delegation'` marks an override seeded into a child; an absent
194
192
  * source is a runtime switch.
195
193
  */
@@ -200,22 +198,24 @@ Source: [`packages/interaction/user-approval/src/types.ts:55`](../packages/inter
200
198
  }
201
199
  ```
202
200
 
203
- Source: [`packages/interaction/user-approval/src/index.ts:32`](../packages/interaction/user-approval/src/index.ts)
201
+ Source: [`packages/interaction/user-approval/src/index.ts:33`](../packages/interaction/user-approval/src/index.ts)
204
202
 
205
203
  ### `assistant/*`
206
204
 
207
- <a id="assistantchunk--log-only"></a>
205
+ <a id="assistantattempt--log-only"></a>
208
206
 
209
- #### `assistant/chunk` — log-only
207
+ #### `assistant/attempt` — log-only
210
208
 
211
209
  ```ts persistence-catalog
212
- /** Raw stream chunk — token-level replay fidelity. */
213
- 'assistant/chunk': { turn: number; step: number; chunk: StreamChunk }
210
+ /**
211
+ * One model attempt that committed no surface message. The embedded stream
212
+ * preserves a failed, retried, cancelled, or stream-error attempt that
213
+ * reached settlement without fabricating model-visible history.
214
+ */
215
+ 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[] }
214
216
  ```
215
217
 
216
- Types: [StreamChunk](subsystems/llm-streaming.md)
217
-
218
- Source: [`packages/core/session/src/types.ts:246`](../packages/core/session/src/types.ts)
218
+ Source: [`packages/core/session/src/types.ts:313`](../packages/core/session/src/types.ts)
219
219
 
220
220
  <a id="assistantmessage--surface"></a>
221
221
 
@@ -232,12 +232,20 @@ Source: [`packages/core/session/src/types.ts:246`](../packages/core/session/src/
232
232
  * marker distinguishes that prefix without re-deriving interruption from turn
233
233
  * boundaries. An aborted turn with no such event streamed no visible content.
234
234
  */
235
- 'assistant/message': { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage; interrupted?: true }
235
+ 'assistant/message': {
236
+ turn: number
237
+ step: number
238
+ message: AssistantMessage
239
+ /** Exact timed model stream, compacted without joining delta boundaries. */
240
+ stream: AssistantStreamRecord[]
241
+ usage?: TokenUsage
242
+ interrupted?: true
243
+ }
236
244
  ```
237
245
 
238
246
  Types: [TokenUsage](subsystems/llm-streaming.md)
239
247
 
240
- Source: [`packages/core/session/src/types.ts:257`](../packages/core/session/src/types.ts)
248
+ Source: [`packages/core/session/src/types.ts:299`](../packages/core/session/src/types.ts)
241
249
 
242
250
  ### `command/*`
243
251
 
@@ -256,11 +264,11 @@ Source: [`packages/core/session/src/types.ts:257`](../packages/core/session/src/
256
264
  commandId: CommandId
257
265
  kind: 'success' | 'error'
258
266
  text?: string
259
- sourceEventSeq?: number
267
+ sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq
260
268
  }
261
269
  ```
262
270
 
263
- Source: [`packages/interaction/commands/src/types.ts:103`](../packages/interaction/commands/src/types.ts)
271
+ Source: [`packages/interaction/commands/src/types.ts:110`](../packages/interaction/commands/src/types.ts)
264
272
 
265
273
  <a id="commandrun--log-only"></a>
266
274
 
@@ -280,7 +288,7 @@ Source: [`packages/interaction/commands/src/types.ts:103`](../packages/interacti
280
288
  'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource }
281
289
  ```
282
290
 
283
- Source: [`packages/interaction/commands/src/types.ts:96`](../packages/interaction/commands/src/types.ts)
291
+ Source: [`packages/interaction/commands/src/types.ts:103`](../packages/interaction/commands/src/types.ts)
284
292
 
285
293
  ### `compaction/*`
286
294
 
@@ -296,7 +304,7 @@ Source: [`packages/interaction/commands/src/types.ts:96`](../packages/interactio
296
304
  'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string }
297
305
  ```
298
306
 
299
- Source: [`packages/compaction/compaction/src/types.ts:71`](../packages/compaction/compaction/src/types.ts)
307
+ Source: [`packages/compaction/compaction/src/types.ts:72`](../packages/compaction/compaction/src/types.ts)
300
308
 
301
309
  <a id="compactionprune--log-only"></a>
302
310
 
@@ -314,15 +322,15 @@ Source: [`packages/compaction/compaction/src/types.ts:71`](../packages/compactio
314
322
  */
315
323
  'compaction/prune': {
316
324
  /** The replaced range's first and last surface-node seqs (a surface-position span, like {@link CompactionResult.shadowedRange}). */
317
- shadowedRange: { start: number; end: number }
325
+ shadowedRange: { start: SessionSeq; end: SessionSeq }
318
326
  /** The seqs of all shadowed surface nodes, in surface order. */
319
- shadowedSeqs: number[]
327
+ shadowedSeqs: SessionSeq[]
320
328
  /** Heuristic price of the shadowed content under the token-meter's fixed estimator. */
321
329
  shadowedTokenCount: number
322
330
  }
323
331
  ```
324
332
 
325
- Source: [`packages/compaction/compaction/src/types.ts:81`](../packages/compaction/compaction/src/types.ts)
333
+ Source: [`packages/compaction/compaction/src/types.ts:82`](../packages/compaction/compaction/src/types.ts)
326
334
 
327
335
  <a id="compactionstart--log-only"></a>
328
336
 
@@ -337,7 +345,7 @@ Source: [`packages/compaction/compaction/src/types.ts:81`](../packages/compactio
337
345
  'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null }
338
346
  ```
339
347
 
340
- Source: [`packages/compaction/compaction/src/types.ts:23`](../packages/compaction/compaction/src/types.ts)
348
+ Source: [`packages/compaction/compaction/src/types.ts:24`](../packages/compaction/compaction/src/types.ts)
341
349
 
342
350
  <a id="compactionsummary--log-only"></a>
343
351
 
@@ -357,8 +365,8 @@ Source: [`packages/compaction/compaction/src/types.ts:23`](../packages/compactio
357
365
  compactionId: CompactionId
358
366
  sourceCommandId?: CommandId
359
367
  summary: ContentBlock[]
360
- shadowedRange: { start: number; end: number }
361
- shadowedSeqs: number[]
368
+ shadowedRange: { start: SessionSeq; end: SessionSeq }
369
+ shadowedSeqs: SessionSeq[]
362
370
  shadowedTokenCount: number
363
371
  /** The provider route that wrote the summary. */
364
372
  provider: string
@@ -391,7 +399,7 @@ Source: [`packages/compaction/compaction/src/types.ts:23`](../packages/compactio
391
399
 
392
400
  Types: [ContentBlock](subsystems/core.md) · [TokenUsage](subsystems/llm-streaming.md)
393
401
 
394
- Source: [`packages/compaction/compaction/src/types.ts:33`](../packages/compaction/compaction/src/types.ts)
402
+ Source: [`packages/compaction/compaction/src/types.ts:34`](../packages/compaction/compaction/src/types.ts)
395
403
 
396
404
  ### `feedback/*`
397
405
 
@@ -512,7 +520,7 @@ Source: [`packages/llm/llm-retry/src/types.ts:11`](../packages/llm/llm-retry/src
512
520
  'model/selection': ModelSelection
513
521
  ```
514
522
 
515
- Source: [`packages/api/session-controller/src/types.ts:41`](../packages/api/session-controller/src/types.ts)
523
+ Source: [`packages/api/session-controller/src/types.ts:40`](../packages/api/session-controller/src/types.ts)
516
524
 
517
525
  ### `permission/*`
518
526
 
@@ -563,7 +571,7 @@ Source: [`packages/plan/plan-mode/src/index.ts:46`](../packages/plan/plan-mode/s
563
571
  'request/context': RequestContext
564
572
  ```
565
573
 
566
- Source: [`packages/core/session/src/types.ts:296`](../packages/core/session/src/types.ts)
574
+ Source: [`packages/core/session/src/types.ts:352`](../packages/core/session/src/types.ts)
567
575
 
568
576
  <a id="requestheader--log-only"></a>
569
577
 
@@ -582,7 +590,7 @@ Source: [`packages/core/session/src/types.ts:296`](../packages/core/session/src/
582
590
  }
583
591
  ```
584
592
 
585
- Source: [`packages/core/session/src/types.ts:286`](../packages/core/session/src/types.ts)
593
+ Source: [`packages/core/session/src/types.ts:342`](../packages/core/session/src/types.ts)
586
594
 
587
595
  ### `sandbox/*`
588
596
 
@@ -636,12 +644,12 @@ Source: [`packages/schedule/schedule/src/types.ts:219`](../packages/schedule/sch
636
644
  * Marks the end of a constructor seed. Events before it have smaller seq
637
645
  * values and came from the seed (resume, fork, or replay); this lifecycle
638
646
  * produced none of them. This log-only event is the durable projection of
639
- * {@link Session.firstLiveSeq}. Its payload is empty — position and `time`
640
- * carry the meaning.
647
+ * {@link Session.firstLiveSeq}.
641
648
  *
642
- * Locate the LAST one in stored history. A seed already ending in one is not
643
- * re-marked, so reopening an untouched session does not grow its log per
644
- * pickup and the event need not be at the current `firstLiveSeq`.
649
+ * A fresh fork child owns one `{ inherited: true }` marker at its exact
650
+ * inherited-prefix cut, even when that prefix ends in an ancestor marker.
651
+ * The last tagged marker is the current Session's cut; untagged markers keep
652
+ * ordinary restore and replay lifecycle boundaries.
645
653
  *
646
654
  * `Session`'s constructor is the only legitimate writer. The invariant
647
655
  * companion deliberately constrains nothing here, so a plugin appending one
@@ -654,10 +662,10 @@ Source: [`packages/schedule/schedule/src/types.ts:219`](../packages/schedule/sch
654
662
  * writers — a concurrently live session holds its own boundary elsewhere,
655
663
  * so tolerating concurrent writers needs a signal beyond the log.
656
664
  */
657
- 'session/end-seed': Record<string, never>
665
+ 'session/end-seed': { inherited?: true }
658
666
  ```
659
667
 
660
- Source: [`packages/core/session/src/types.ts:319`](../packages/core/session/src/types.ts)
668
+ Source: [`packages/core/session/src/types.ts:375`](../packages/core/session/src/types.ts)
661
669
 
662
670
  <a id="sessiontitle--log-only"></a>
663
671
 
@@ -673,7 +681,7 @@ Source: [`packages/core/session/src/types.ts:319`](../packages/core/session/src/
673
681
 
674
682
  Types: [SessionTitleEventData](subsystems/session-title.md)
675
683
 
676
- Source: [`packages/session/session-title/src/index.ts:76`](../packages/session/session-title/src/index.ts)
684
+ Source: [`packages/session/session-title/src/index.ts:77`](../packages/session/session-title/src/index.ts)
677
685
 
678
686
  <a id="sessiontitle-llm-request--log-only"></a>
679
687
 
@@ -686,7 +694,7 @@ Source: [`packages/session/session-title/src/index.ts:76`](../packages/session/s
686
694
 
687
695
  Types: [SessionTitleLlmRequestEventData](subsystems/session-title.md)
688
696
 
689
- Source: [`packages/session/session-title-llm/src/index.ts:44`](../packages/session/session-title-llm/src/index.ts)
697
+ Source: [`packages/session/session-title-llm/src/index.ts:45`](../packages/session/session-title-llm/src/index.ts)
690
698
 
691
699
  ### `session-log-deepseek/*`
692
700
 
@@ -699,12 +707,14 @@ Source: [`packages/session/session-title-llm/src/index.ts:44`](../packages/sessi
699
707
  'session-log-deepseek/delivery-accepted': {
700
708
  /** Session identity the accepted delivery carried; inherited fork markers retain the parent's id. */
701
709
  sessionId: import('@deepseek-ai/dsh-session/types').SessionId
710
+ /** Accepted Session format generation; absence identifies version 0. */
711
+ sessionFormatVersion?: number
702
712
  /** Last canonical event included in the accepted request. */
703
- throughSeq: number
713
+ throughSeq: import('@deepseek-ai/dsh-session/types').SessionSeq
704
714
  }
705
715
  ```
706
716
 
707
- Source: [`packages/session/session-log-deepseek/src/types.ts:26`](../packages/session/session-log-deepseek/src/types.ts)
717
+ Source: [`packages/session/session-log-deepseek/src/types.ts:59`](../packages/session/session-log-deepseek/src/types.ts)
708
718
 
709
719
  ### `step/*`
710
720
 
@@ -717,7 +727,7 @@ Source: [`packages/session/session-log-deepseek/src/types.ts:26`](../packages/se
717
727
  'step/end': { turn: number; step: number }
718
728
  ```
719
729
 
720
- Source: [`packages/core/session/src/types.ts:236`](../packages/core/session/src/types.ts)
730
+ Source: [`packages/core/session/src/types.ts:280`](../packages/core/session/src/types.ts)
721
731
 
722
732
  <a id="stepstart--log-only"></a>
723
733
 
@@ -728,7 +738,7 @@ Source: [`packages/core/session/src/types.ts:236`](../packages/core/session/src/
728
738
  'step/start': { turn: number; step: number }
729
739
  ```
730
740
 
731
- Source: [`packages/core/session/src/types.ts:234`](../packages/core/session/src/types.ts)
741
+ Source: [`packages/core/session/src/types.ts:278`](../packages/core/session/src/types.ts)
732
742
 
733
743
  ### `subagent/*`
734
744
 
@@ -776,12 +786,12 @@ Source: [`packages/subagent/tool-subagent/src/model-selection-state.ts:17`](../p
776
786
 
777
787
  ```ts persistence-catalog
778
788
  /** Whole teammate lifecycle value, stored only in the Team Lead Session. */
779
- 'team/member': { version: 1; teamId: TeamId; member: TeamMemberSnapshot }
789
+ 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot }
780
790
  ```
781
791
 
782
792
  Types: [TeamId](subsystems/agent-team.md) · [TeamMemberSnapshot](subsystems/agent-team.md)
783
793
 
784
- Source: [`packages/experimental/agent-team/src/types.ts:223`](../packages/experimental/agent-team/src/types.ts)
794
+ Source: [`packages/experimental/agent-team/src/types.ts:221`](../packages/experimental/agent-team/src/types.ts)
785
795
 
786
796
  <a id="teammessagedelivered--log-only"></a>
787
797
 
@@ -790,7 +800,7 @@ Source: [`packages/experimental/agent-team/src/types.ts:223`](../packages/experi
790
800
  ```ts persistence-catalog
791
801
  /** Durable acknowledgement that the target Session recorded the message. */
792
802
  'team/message/delivered': {
793
- version: 1
803
+ version: 2
794
804
  teamId: TeamId
795
805
  messageId: TeamMessageId
796
806
  targetId: SessionId
@@ -799,7 +809,7 @@ Source: [`packages/experimental/agent-team/src/types.ts:223`](../packages/experi
799
809
 
800
810
  Types: [TeamId](subsystems/agent-team.md) · [TeamMessageId](subsystems/agent-team.md)
801
811
 
802
- Source: [`packages/experimental/agent-team/src/types.ts:229`](../packages/experimental/agent-team/src/types.ts)
812
+ Source: [`packages/experimental/agent-team/src/types.ts:227`](../packages/experimental/agent-team/src/types.ts)
803
813
 
804
814
  <a id="teammessagequeued--log-only"></a>
805
815
 
@@ -807,12 +817,12 @@ Source: [`packages/experimental/agent-team/src/types.ts:229`](../packages/experi
807
817
 
808
818
  ```ts persistence-catalog
809
819
  /** Durable mailbox enqueue, stored before delivery is attempted. */
810
- 'team/message/queued': { version: 1; teamId: TeamId; message: TeamMessageSnapshot }
820
+ 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot }
811
821
  ```
812
822
 
813
823
  Types: [TeamId](subsystems/agent-team.md) · [TeamMessageSnapshot](subsystems/agent-team.md)
814
824
 
815
- Source: [`packages/experimental/agent-team/src/types.ts:227`](../packages/experimental/agent-team/src/types.ts)
825
+ Source: [`packages/experimental/agent-team/src/types.ts:225`](../packages/experimental/agent-team/src/types.ts)
816
826
 
817
827
  <a id="teamtask--log-only"></a>
818
828
 
@@ -820,12 +830,12 @@ Source: [`packages/experimental/agent-team/src/types.ts:227`](../packages/experi
820
830
 
821
831
  ```ts persistence-catalog
822
832
  /** Whole shared-task value, stored only in the Team Lead Session. */
823
- 'team/task': { version: 1; teamId: TeamId; task: TeamTaskSnapshot }
833
+ 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot }
824
834
  ```
825
835
 
826
836
  Types: [TeamId](subsystems/agent-team.md) · [TeamTaskSnapshot](subsystems/agent-team.md)
827
837
 
828
- Source: [`packages/experimental/agent-team/src/types.ts:225`](../packages/experimental/agent-team/src/types.ts)
838
+ Source: [`packages/experimental/agent-team/src/types.ts:223`](../packages/experimental/agent-team/src/types.ts)
829
839
 
830
840
  ### `todo/*`
831
841
 
@@ -859,7 +869,7 @@ Source: [`packages/todo/tool-todo/src/types.ts:31`](../packages/todo/tool-todo/s
859
869
 
860
870
  Types: [ToolCallId](subsystems/core.md)
861
871
 
862
- Source: [`packages/core/session/src/types.ts:263`](../packages/core/session/src/types.ts)
872
+ Source: [`packages/core/session/src/types.ts:319`](../packages/core/session/src/types.ts)
863
873
 
864
874
  <a id="toolcode-dispatch--log-only"></a>
865
875
 
@@ -934,7 +944,7 @@ Source: [`packages/core/tools/src/types.ts:40`](../packages/core/tools/src/types
934
944
  }
935
945
  ```
936
946
 
937
- Source: [`packages/core/session/src/types.ts:275`](../packages/core/session/src/types.ts)
947
+ Source: [`packages/core/session/src/types.ts:331`](../packages/core/session/src/types.ts)
938
948
 
939
949
  ### `tool-workflow/*`
940
950
 
@@ -1014,7 +1024,7 @@ Source: [`packages/workflow/tool-workflow/src/types.ts:47`](../packages/workflow
1014
1024
 
1015
1025
  Types: [TurnEndReason](subsystems/session.md)
1016
1026
 
1017
- Source: [`packages/core/session/src/types.ts:232`](../packages/core/session/src/types.ts)
1027
+ Source: [`packages/core/session/src/types.ts:276`](../packages/core/session/src/types.ts)
1018
1028
 
1019
1029
  <a id="turnstart--log-only"></a>
1020
1030
 
@@ -1030,7 +1040,7 @@ Source: [`packages/core/session/src/types.ts:232`](../packages/core/session/src/
1030
1040
  'turn/start': { turn: number }
1031
1041
  ```
1032
1042
 
1033
- Source: [`packages/core/session/src/types.ts:223`](../packages/core/session/src/types.ts)
1043
+ Source: [`packages/core/session/src/types.ts:267`](../packages/core/session/src/types.ts)
1034
1044
 
1035
1045
  ### `user/*`
1036
1046
 
@@ -1049,7 +1059,7 @@ Source: [`packages/core/session/src/types.ts:223`](../packages/core/session/src/
1049
1059
  'user/message': UserMessage
1050
1060
  ```
1051
1061
 
1052
- Source: [`packages/core/session/src/types.ts:244`](../packages/core/session/src/types.ts)
1062
+ Source: [`packages/core/session/src/types.ts:288`](../packages/core/session/src/types.ts)
1053
1063
 
1054
1064
  ### `web/*`
1055
1065