dsh-plugin-dev-kb 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.en.md +6 -6
- package/README.md +6 -6
- package/kb/INDEX.md +21 -5
- package/kb/README.md +11 -10
- package/kb/extra/AGENTS.md +4 -4
- package/kb/extra/cookbook/adding-a-remote-api.md +197 -0
- package/kb/extra/cookbook/adding-a-remote-api.zh.md +197 -0
- package/kb/extra/cookbook/adding-a-vendored-package.md +2 -2
- package/kb/extra/cookbook/adding-a-vendored-package.zh.md +2 -2
- package/kb/extra/deepseek-llm-api-wire-extensions.md +163 -0
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +163 -0
- package/kb/extra/development.md +8 -14
- package/kb/extra/development.zh.md +8 -14
- package/kb/extra/event-producer-consumer.md +55 -48
- package/kb/extra/event-producer-consumer.zh.md +58 -51
- package/kb/extra/glossary.md +1 -1
- package/kb/extra/glossary.zh.md +1 -1
- package/kb/extra/graph-atlas.md +0 -2
- package/kb/extra/graph-atlas.zh.md +0 -2
- package/kb/extra/i18n/README.md +4 -4
- package/kb/extra/i18n/README.zh.md +4 -4
- package/kb/extra/i18n/style-samples.md +2 -2
- package/kb/extra/module-graph.md +646 -926
- package/kb/extra/module-graph.zh.md +648 -928
- package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +2 -2
- package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +2 -2
- package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
- package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
- package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
- package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
- package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
- package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +1 -1
- package/kb/extra/rescope.md +2 -2
- package/kb/extra/rescope.zh.md +2 -2
- package/kb/extra/subsystems/agent-team.md +28 -4
- package/kb/extra/subsystems/agent-team.zh.md +28 -4
- package/kb/extra/subsystems/attachment.md +168 -7
- package/kb/extra/subsystems/attachment.zh.md +168 -7
- package/kb/extra/subsystems/extensions.md +18 -0
- package/kb/extra/subsystems/extensions.zh.md +18 -0
- package/kb/extra/subsystems/feedback.md +4 -4
- package/kb/extra/subsystems/feedback.zh.md +4 -4
- package/kb/extra/subsystems/todo.md +32 -0
- package/kb/extra/subsystems/todo.zh.md +32 -0
- package/kb/extra/subsystems/webhook.md +70 -0
- package/kb/extra/subsystems/webhook.zh.md +70 -0
- package/kb/extra/testing.md +15 -10
- package/kb/extra/testing.zh.md +13 -8
- package/kb/extra/web-styling.md +4 -0
- package/kb/extra/web-styling.zh.md +4 -0
- package/kb/meta/search-index.json +309 -177
- package/kb/meta/site-pages.txt +183 -167
- package/kb/meta/source.json +5 -5
- package/kb/meta/topics.md +14 -6
- package/kb/site/develop/basic/publish.md +2 -2
- package/kb/site/develop/basic/tool.md +1 -1
- package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +5 -4
- package/kb/site/develop/framework/events.md +1 -1
- package/kb/site/develop/practice/dynamic-cordis.md +17 -0
- package/kb/site/develop/practice/llm-adapter.md +4 -3
- package/kb/site/en/develop/basic/publish.md +2 -2
- package/kb/site/en/develop/basic/tool.md +1 -1
- package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +5 -4
- package/kb/site/en/develop/framework/events.md +1 -1
- package/kb/site/en/develop/practice/dynamic-cordis.md +17 -0
- package/kb/site/en/develop/practice/llm-adapter.md +4 -3
- package/kb/site/en/guide/github-review.md +104 -0
- package/kb/site/en/guide/mcp-memory.md +103 -0
- package/kb/site/en/guide/network-proxy.md +87 -0
- package/kb/site/en/guide/providers.md +70 -17
- package/kb/site/en/guide/python-sdk.md +80 -34
- package/kb/site/en/guide/schedule.md +23 -0
- package/kb/site/en/reference/agent-lifecycle.md +6 -4
- package/kb/{extra → site/en/reference}/api-gateway.md +12 -10
- package/kb/site/en/reference/capability-seams.md +128 -73
- package/kb/site/en/reference/config-catalog.md +481 -360
- package/kb/site/en/reference/cookbook/adding-a-package.md +3 -4
- package/kb/site/en/reference/cookbook/adding-a-settings-card.md +12 -10
- package/kb/site/en/reference/cookbook/adding-a-tool.md +11 -4
- package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +1 -1
- package/kb/site/en/reference/cookbook/extension-cookbook.md +20 -17
- package/kb/site/en/reference/cordis-api/inherited.md +1 -1
- package/kb/site/en/reference/cordis-primer.md +2 -1
- package/kb/site/en/reference/index.md +30 -11
- package/kb/site/en/reference/persistence-catalog.md +148 -80
- package/kb/site/en/reference/subsystems/approval.md +10 -10
- package/kb/site/en/reference/subsystems/client-modules.md +58 -16
- package/kb/site/en/reference/subsystems/code-runtime.md +10 -6
- package/kb/site/en/reference/subsystems/commands.md +25 -16
- package/kb/site/en/reference/subsystems/compaction.md +11 -11
- package/kb/site/en/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +50 -24
- package/kb/site/en/reference/subsystems/core.md +156 -17
- package/kb/site/en/reference/subsystems/credentials.md +44 -3
- package/kb/site/en/reference/subsystems/filesystem.md +12 -2
- package/kb/site/en/reference/subsystems/goal.md +1 -1
- package/kb/site/en/reference/subsystems/index.md +7 -2
- package/kb/site/en/reference/subsystems/jobs.md +1 -1
- package/kb/site/en/reference/subsystems/llm-streaming.md +154 -12
- package/kb/site/en/reference/subsystems/permission-presets.md +6 -6
- package/kb/site/en/reference/subsystems/persistence.md +185 -175
- package/kb/site/en/reference/subsystems/plan.md +2 -2
- package/kb/site/en/reference/subsystems/sandbox.md +2 -0
- package/kb/site/en/reference/subsystems/schedule.md +9 -3
- package/kb/site/en/reference/subsystems/session-projection.md +115 -48
- package/kb/site/en/reference/subsystems/session-query.md +28 -14
- package/kb/site/en/reference/subsystems/session-reference.md +53 -8
- package/kb/site/en/reference/subsystems/session-telemetry.md +8 -8
- package/kb/site/en/reference/subsystems/session-title.md +6 -6
- package/kb/site/en/reference/subsystems/session.md +401 -99
- package/kb/site/en/reference/subsystems/settings.md +101 -6
- package/kb/site/en/reference/subsystems/skills.md +23 -0
- package/kb/site/en/reference/subsystems/slots.md +178 -0
- package/kb/site/en/reference/subsystems/spill.md +2 -2
- package/kb/site/en/reference/subsystems/storage.md +34 -3
- package/kb/site/en/reference/subsystems/subagent.md +122 -109
- package/kb/site/en/reference/subsystems/system-prompt.md +17 -4
- package/kb/site/en/reference/subsystems/token-meter.md +27 -12
- package/kb/site/en/reference/subsystems/tools.md +39 -39
- package/kb/site/en/reference/subsystems/typert.md +62 -55
- package/kb/site/en/reference/subsystems/user-questions.md +33 -33
- package/kb/site/en/reference/subsystems/web-client.md +98 -0
- package/kb/site/en/reference/subsystems/web-server.md +11 -5
- package/kb/site/en/reference/subsystems/web.md +7 -1
- package/kb/site/en/reference/subsystems/workspace.md +102 -9
- package/kb/site/en/reference/tool-catalog.md +86 -82
- package/kb/site/en/reference/tool-execution-pipeline.md +1 -1
- package/kb/site/guide/github-review.md +104 -0
- package/kb/site/guide/mcp-memory.md +103 -0
- package/kb/site/guide/network-proxy.md +87 -0
- package/kb/site/guide/providers.md +70 -17
- package/kb/site/guide/python-sdk.md +87 -41
- package/kb/site/guide/schedule.md +23 -0
- package/kb/site/reference/agent-lifecycle.md +6 -4
- package/kb/{extra/api-gateway.zh.md → site/reference/api-gateway.md} +12 -10
- package/kb/site/reference/capability-seams.md +128 -73
- package/kb/site/reference/config-catalog.md +481 -360
- package/kb/site/reference/cookbook/adding-a-package.md +3 -4
- package/kb/site/reference/cookbook/adding-a-settings-card.md +12 -10
- package/kb/site/reference/cookbook/adding-a-tool.md +11 -4
- package/kb/site/reference/cookbook/adding-an-llm-adapter.md +1 -1
- package/kb/site/reference/cookbook/extension-cookbook.md +20 -17
- package/kb/site/reference/cordis-api/inherited.md +1 -1
- package/kb/site/reference/cordis-primer.md +2 -1
- package/kb/site/reference/index.md +30 -11
- package/kb/site/reference/persistence-catalog.md +148 -80
- package/kb/site/reference/subsystems/approval.md +10 -10
- package/kb/site/reference/subsystems/client-modules.md +58 -16
- package/kb/site/reference/subsystems/code-runtime.md +10 -6
- package/kb/site/reference/subsystems/commands.md +25 -16
- package/kb/site/reference/subsystems/compaction.md +11 -11
- package/kb/site/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +50 -24
- package/kb/site/reference/subsystems/core.md +156 -17
- package/kb/site/reference/subsystems/credentials.md +44 -3
- package/kb/site/reference/subsystems/filesystem.md +12 -2
- package/kb/site/reference/subsystems/goal.md +1 -1
- package/kb/site/reference/subsystems/index.md +7 -2
- package/kb/site/reference/subsystems/jobs.md +1 -1
- package/kb/site/reference/subsystems/llm-streaming.md +154 -12
- package/kb/site/reference/subsystems/permission-presets.md +5 -5
- package/kb/site/reference/subsystems/persistence.md +184 -174
- package/kb/site/reference/subsystems/plan.md +2 -2
- package/kb/site/reference/subsystems/schedule.md +9 -3
- package/kb/site/reference/subsystems/session-projection.md +115 -48
- package/kb/site/reference/subsystems/session-query.md +28 -14
- package/kb/site/reference/subsystems/session-reference.md +53 -8
- package/kb/site/reference/subsystems/session-telemetry.md +8 -8
- package/kb/site/reference/subsystems/session-title.md +6 -6
- package/kb/site/reference/subsystems/session.md +401 -99
- package/kb/site/reference/subsystems/settings.md +101 -6
- package/kb/site/reference/subsystems/skills.md +23 -0
- package/kb/site/reference/subsystems/slots.md +178 -0
- package/kb/site/reference/subsystems/spill.md +2 -2
- package/kb/site/reference/subsystems/storage.md +34 -3
- package/kb/site/reference/subsystems/subagent.md +122 -109
- package/kb/site/reference/subsystems/system-prompt.md +17 -4
- package/kb/site/reference/subsystems/token-meter.md +27 -12
- package/kb/site/reference/subsystems/tools.md +39 -39
- package/kb/site/reference/subsystems/typert.md +62 -55
- package/kb/site/reference/subsystems/user-questions.md +33 -33
- package/kb/site/reference/subsystems/web-client.md +98 -0
- package/kb/site/reference/subsystems/web-server.md +11 -5
- package/kb/site/reference/subsystems/web.md +7 -1
- package/kb/site/reference/subsystems/workspace.md +102 -9
- package/kb/site/reference/tool-catalog.md +85 -81
- package/kb/site/reference/tool-execution-pipeline.md +1 -1
- package/package.json +2 -2
- package/skills/dsh-plugin-dev-kb.md +8 -6
|
@@ -12,7 +12,7 @@ outline: "deep"
|
|
|
12
12
|
|
|
13
13
|
英文源文件根据源码生成(`scripts/gen-persistence-catalog.ts`),并由 `pnpm run verify-persistence-catalog`(`doc-sync`(文档同步门禁)的一部分)验证新鲜度;本中文文件作为经评审对侧通过双语配对维护。声明块保留源码声明和嵌套属性的 JSDoc,只移除其所在接口/模块带来的缩进,并使用 `ts persistence-catalog` 围栏(doc-typecheck 会跳过这些围栏,因为声明引用了其所属模块中的类型)。payload 中的类型名称会链接到记录该类型的页面。参见 [persistence-log-catalog Agent Note](https://github.com/deepseek-ai/deepseek-harness/blob/master/.agents/notes/archived/process/2026-07-04-persistence-log-catalog.md)。
|
|
14
14
|
|
|
15
|
-
以下信封声明组合了每个事件的 `type`、单调递增的 `seq`、以 epoch 毫秒表示的 `time`、`data`、可选的未知类型跳过标记 `ignorable`,以及条件字段 `surfaceOp`/`sourceEventSeqs`。**surface** 表示 `SurfaceEventType` 成员:它会生成一条 LLM(大语言模型)消息,并声明该事件如何加入 surface 列表。**log-only** 表示其他所有事件:这类记录可持久化、可回放,但不参与派生历史。每个 payload 均可进行 JSON 序列化(在 `Session.append`
|
|
15
|
+
以下信封声明组合了每个事件的 `type`、单调递增的 `seq`、以 epoch 毫秒表示的 `time`、`data`、可选的未知类型跳过标记 `ignorable`,以及条件字段 `surfaceOp`/`sourceEventSeqs`。**surface** 表示 `SurfaceEventType` 成员:它会生成一条 LLM(大语言模型)消息,并声明该事件如何加入 surface 列表。**log-only** 表示其他所有事件:这类记录可持久化、可回放,但不参与派生历史。每个 payload 均可进行 JSON 序列化(在 `Session.append` 处强制执行)。当前 writer 会写入 `SESSION_FORMAT_VERSION`;受支持的历史产物通过构建期静态相邻迁移目录进入这套当前词汇(参见[版本生命周期](./subsystems/persistence.md))。范围仅限本仓库中的包;下游插件可以继续合并其他当前版本事件类型,这些类型按设计不属于本目录,并且在后续格式迁移边中需要显式 disposition。
|
|
16
16
|
|
|
17
17
|
## 事件信封
|
|
18
18
|
|
|
@@ -23,7 +23,8 @@ export type SessionEventType = keyof SessionEventMap
|
|
|
23
23
|
/**
|
|
24
24
|
* The subset of {@link SessionEventType} values whose events produce LLM
|
|
25
25
|
* messages and are eligible to appear on the ordered surface. Only these
|
|
26
|
-
* event types may carry {@link SurfaceOp} and
|
|
26
|
+
* event types may carry {@link SurfaceOp}; user and tool events may also cite
|
|
27
|
+
* earlier sources through {@link SessionEvent.sourceEventSeqs}.
|
|
27
28
|
*/
|
|
28
29
|
export type SurfaceEventType =
|
|
29
30
|
| 'user/message'
|
|
@@ -45,7 +46,7 @@ export type SurfaceEventType =
|
|
|
45
46
|
*/
|
|
46
47
|
export type SurfaceOp =
|
|
47
48
|
| 'append'
|
|
48
|
-
| { op: 'replace'; start:
|
|
49
|
+
| { op: 'replace'; start: SessionSeq; end: SessionSeq }
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* One immutable entry in the session log.
|
|
@@ -56,7 +57,7 @@ export type SurfaceOp =
|
|
|
56
57
|
* The {@link sourceEventSeqs} and {@link surfaceOp} fields are conditional:
|
|
57
58
|
* they only exist on {@link SurfaceEventType} variants (`user/message`,
|
|
58
59
|
* `assistant/message`, `tool/result`).
|
|
59
|
-
* Non-surface events (boundary markers,
|
|
60
|
+
* Non-surface events (boundary markers, attempts, errors) never carry
|
|
60
61
|
* surface metadata — the compiler enforces this at `Session.append()`
|
|
61
62
|
* call sites.
|
|
62
63
|
*/
|
|
@@ -64,7 +65,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
64
65
|
[K in SessionEventType]: {
|
|
65
66
|
type: K
|
|
66
67
|
/** Monotonic sequence number within the session. */
|
|
67
|
-
seq:
|
|
68
|
+
seq: SessionSeq
|
|
68
69
|
/** Unix epoch milliseconds. */
|
|
69
70
|
time: number
|
|
70
71
|
data: SessionEventMap[K]
|
|
@@ -81,21 +82,18 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
81
82
|
ignorable?: true
|
|
82
83
|
} & (K extends SurfaceEventType ? {
|
|
83
84
|
/**
|
|
84
|
-
* Seq numbers of earlier events that this event cites as sources
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* `assistant/message` may carry a present empty array for a known empty
|
|
88
|
-
* provider stream; when the field is absent, the event does not record which
|
|
89
|
-
* earlier events produced the message.
|
|
85
|
+
* Seq numbers of earlier events that this event cites as sources, such as
|
|
86
|
+
* the surface nodes shadowed by a compaction replacement. A v2
|
|
87
|
+
* `assistant/message` embeds its provider stream and cannot carry this field.
|
|
90
88
|
*/
|
|
91
|
-
sourceEventSeqs?:
|
|
89
|
+
sourceEventSeqs?: SessionSeq[]
|
|
92
90
|
/** How this event entered the surface; absent for non-surface events. */
|
|
93
91
|
surfaceOp?: SurfaceOp
|
|
94
92
|
} : object)
|
|
95
93
|
}[T]
|
|
96
94
|
```
|
|
97
95
|
|
|
98
|
-
来源:[`packages/core/session/src/types.ts:
|
|
96
|
+
来源:[`packages/core/session/src/types.ts:379`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:387`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:416`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts) · [`packages/core/session/src/types.ts:447`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
99
97
|
|
|
100
98
|
## 事件
|
|
101
99
|
|
|
@@ -120,7 +118,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
120
118
|
}
|
|
121
119
|
```
|
|
122
120
|
|
|
123
|
-
来源:[`packages/core/agent/src/types.ts:
|
|
121
|
+
来源:[`packages/core/agent/src/types.ts:58`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/agent/src/types.ts)
|
|
124
122
|
|
|
125
123
|
### `agent-preset/*`
|
|
126
124
|
|
|
@@ -138,7 +136,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
138
136
|
'agent-preset/selected': { agentPreset: string }
|
|
139
137
|
```
|
|
140
138
|
|
|
141
|
-
来源:[`packages/preset/agent-presets/src/session.ts:
|
|
139
|
+
来源:[`packages/preset/agent-presets/src/session.ts:28`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/preset/agent-presets/src/session.ts)
|
|
142
140
|
|
|
143
141
|
### `approval/*`
|
|
144
142
|
|
|
@@ -158,14 +156,14 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
158
156
|
'approval/asked': {
|
|
159
157
|
id: ApprovalRequestId
|
|
160
158
|
toolName: string
|
|
161
|
-
callId?:
|
|
159
|
+
callId?: ToolCallId
|
|
162
160
|
reason?: string
|
|
163
161
|
}
|
|
164
162
|
```
|
|
165
163
|
|
|
166
|
-
类型:[
|
|
164
|
+
类型:[ToolCallId](./subsystems/core.md)
|
|
167
165
|
|
|
168
|
-
来源:[`packages/interaction/user-approval/src/
|
|
166
|
+
来源:[`packages/interaction/user-approval/src/types.ts:44`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/types.ts)
|
|
169
167
|
|
|
170
168
|
<a id="approvaldecided--log-only"></a>
|
|
171
169
|
|
|
@@ -183,7 +181,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
183
181
|
}
|
|
184
182
|
```
|
|
185
183
|
|
|
186
|
-
来源:[`packages/interaction/user-approval/src/
|
|
184
|
+
来源:[`packages/interaction/user-approval/src/types.ts:55`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/types.ts)
|
|
187
185
|
|
|
188
186
|
<a id="approvalpolicy--log-only"></a>
|
|
189
187
|
|
|
@@ -194,7 +192,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
194
192
|
* The session's approval policy was switched — log-only, durable,
|
|
195
193
|
* replayable, never in the model transcript (the model learns the policy
|
|
196
194
|
* from the runtime-context snapshot and live switch notices). The LAST
|
|
197
|
-
* such event is the session's override
|
|
195
|
+
* such event is the session's override.
|
|
198
196
|
* `source: 'delegation'` marks an override seeded into a child; an absent
|
|
199
197
|
* source is a runtime switch.
|
|
200
198
|
*/
|
|
@@ -205,22 +203,24 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
205
203
|
}
|
|
206
204
|
```
|
|
207
205
|
|
|
208
|
-
来源:[`packages/interaction/user-approval/src/index.ts:
|
|
206
|
+
来源:[`packages/interaction/user-approval/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/index.ts)
|
|
209
207
|
|
|
210
208
|
### `assistant/*`
|
|
211
209
|
|
|
212
|
-
<a id="
|
|
210
|
+
<a id="assistantattempt--log-only"></a>
|
|
213
211
|
|
|
214
|
-
#### `assistant/
|
|
212
|
+
#### `assistant/attempt` — log-only
|
|
215
213
|
|
|
216
214
|
```ts persistence-catalog
|
|
217
|
-
/**
|
|
218
|
-
|
|
215
|
+
/**
|
|
216
|
+
* One model attempt that committed no surface message. The embedded stream
|
|
217
|
+
* preserves a failed, retried, cancelled, or stream-error attempt that
|
|
218
|
+
* reached settlement without fabricating model-visible history.
|
|
219
|
+
*/
|
|
220
|
+
'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[] }
|
|
219
221
|
```
|
|
220
222
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
来源:[`packages/core/session/src/types.ts:266`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
223
|
+
来源:[`packages/core/session/src/types.ts:313`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
224
224
|
|
|
225
225
|
<a id="assistantmessage--surface"></a>
|
|
226
226
|
|
|
@@ -237,12 +237,20 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
237
237
|
* marker distinguishes that prefix without re-deriving interruption from turn
|
|
238
238
|
* boundaries. An aborted turn with no such event streamed no visible content.
|
|
239
239
|
*/
|
|
240
|
-
'assistant/message': {
|
|
240
|
+
'assistant/message': {
|
|
241
|
+
turn: number
|
|
242
|
+
step: number
|
|
243
|
+
message: AssistantMessage
|
|
244
|
+
/** Exact timed model stream, compacted without joining delta boundaries. */
|
|
245
|
+
stream: AssistantStreamRecord[]
|
|
246
|
+
usage?: TokenUsage
|
|
247
|
+
interrupted?: true
|
|
248
|
+
}
|
|
241
249
|
```
|
|
242
250
|
|
|
243
251
|
类型:[TokenUsage](./subsystems/llm-streaming.md)
|
|
244
252
|
|
|
245
|
-
来源:[`packages/core/session/src/types.ts:
|
|
253
|
+
来源:[`packages/core/session/src/types.ts:299`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
246
254
|
|
|
247
255
|
### `command/*`
|
|
248
256
|
|
|
@@ -261,11 +269,11 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
261
269
|
commandId: CommandId
|
|
262
270
|
kind: 'success' | 'error'
|
|
263
271
|
text?: string
|
|
264
|
-
sourceEventSeq?:
|
|
272
|
+
sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq
|
|
265
273
|
}
|
|
266
274
|
```
|
|
267
275
|
|
|
268
|
-
来源:[`packages/interaction/commands/src/types.ts:
|
|
276
|
+
来源:[`packages/interaction/commands/src/types.ts:110`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/commands/src/types.ts)
|
|
269
277
|
|
|
270
278
|
<a id="commandrun--log-only"></a>
|
|
271
279
|
|
|
@@ -285,7 +293,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
285
293
|
'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource }
|
|
286
294
|
```
|
|
287
295
|
|
|
288
|
-
来源:[`packages/interaction/commands/src/types.ts:
|
|
296
|
+
来源:[`packages/interaction/commands/src/types.ts:103`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/commands/src/types.ts)
|
|
289
297
|
|
|
290
298
|
### `compaction/*`
|
|
291
299
|
|
|
@@ -301,7 +309,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
301
309
|
'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string }
|
|
302
310
|
```
|
|
303
311
|
|
|
304
|
-
来源:[`packages/compaction/compaction/src/types.ts:
|
|
312
|
+
来源:[`packages/compaction/compaction/src/types.ts:72`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction/src/types.ts)
|
|
305
313
|
|
|
306
314
|
<a id="compactionprune--log-only"></a>
|
|
307
315
|
|
|
@@ -319,15 +327,15 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
319
327
|
*/
|
|
320
328
|
'compaction/prune': {
|
|
321
329
|
/** The replaced range's first and last surface-node seqs (a surface-position span, like {@link CompactionResult.shadowedRange}). */
|
|
322
|
-
shadowedRange: { start:
|
|
330
|
+
shadowedRange: { start: SessionSeq; end: SessionSeq }
|
|
323
331
|
/** The seqs of all shadowed surface nodes, in surface order. */
|
|
324
|
-
shadowedSeqs:
|
|
332
|
+
shadowedSeqs: SessionSeq[]
|
|
325
333
|
/** Heuristic price of the shadowed content under the token-meter's fixed estimator. */
|
|
326
334
|
shadowedTokenCount: number
|
|
327
335
|
}
|
|
328
336
|
```
|
|
329
337
|
|
|
330
|
-
来源:[`packages/compaction/compaction/src/types.ts:
|
|
338
|
+
来源:[`packages/compaction/compaction/src/types.ts:82`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction/src/types.ts)
|
|
331
339
|
|
|
332
340
|
<a id="compactionstart--log-only"></a>
|
|
333
341
|
|
|
@@ -342,7 +350,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
342
350
|
'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null }
|
|
343
351
|
```
|
|
344
352
|
|
|
345
|
-
来源:[`packages/compaction/compaction/src/types.ts:
|
|
353
|
+
来源:[`packages/compaction/compaction/src/types.ts:24`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction/src/types.ts)
|
|
346
354
|
|
|
347
355
|
<a id="compactionsummary--log-only"></a>
|
|
348
356
|
|
|
@@ -362,8 +370,8 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
362
370
|
compactionId: CompactionId
|
|
363
371
|
sourceCommandId?: CommandId
|
|
364
372
|
summary: ContentBlock[]
|
|
365
|
-
shadowedRange: { start:
|
|
366
|
-
shadowedSeqs:
|
|
373
|
+
shadowedRange: { start: SessionSeq; end: SessionSeq }
|
|
374
|
+
shadowedSeqs: SessionSeq[]
|
|
367
375
|
shadowedTokenCount: number
|
|
368
376
|
/** The provider route that wrote the summary. */
|
|
369
377
|
provider: string
|
|
@@ -396,7 +404,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
396
404
|
|
|
397
405
|
类型:[ContentBlock](./subsystems/core.md) · [TokenUsage](./subsystems/llm-streaming.md)
|
|
398
406
|
|
|
399
|
-
来源:[`packages/compaction/compaction/src/types.ts:
|
|
407
|
+
来源:[`packages/compaction/compaction/src/types.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction/src/types.ts)
|
|
400
408
|
|
|
401
409
|
### `feedback/*`
|
|
402
410
|
|
|
@@ -503,6 +511,22 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
503
511
|
|
|
504
512
|
来源:[`packages/llm/llm-retry/src/types.ts:11`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-retry/src/types.ts)
|
|
505
513
|
|
|
514
|
+
### `model/*`
|
|
515
|
+
|
|
516
|
+
<a id="modelselection--log-only"></a>
|
|
517
|
+
|
|
518
|
+
#### `model/selection` — log-only
|
|
519
|
+
|
|
520
|
+
```ts persistence-catalog
|
|
521
|
+
/**
|
|
522
|
+
* Complete validated model selection requested for subsequent prompt
|
|
523
|
+
* assembly. Log-only: it never enters derived model history.
|
|
524
|
+
*/
|
|
525
|
+
'model/selection': ModelSelection
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
来源:[`packages/api/session-controller/src/types.ts:41`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/session-controller/src/types.ts)
|
|
529
|
+
|
|
506
530
|
### `permission/*`
|
|
507
531
|
|
|
508
532
|
<a id="permissionpreset--log-only"></a>
|
|
@@ -513,13 +537,13 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
513
537
|
/**
|
|
514
538
|
* Records the selected preset as durable, log-only user intent. The knob
|
|
515
539
|
* events follow in the same turn and control execution; this event stays
|
|
516
|
-
* out of the model transcript and lets
|
|
540
|
+
* out of the model transcript and lets the permission projection unit
|
|
517
541
|
* preserve a selection when bundles match.
|
|
518
542
|
*/
|
|
519
543
|
'permission/preset': { preset: string }
|
|
520
544
|
```
|
|
521
545
|
|
|
522
|
-
来源:[`packages/interaction/permission-presets/src/index.ts:
|
|
546
|
+
来源:[`packages/interaction/permission-presets/src/index.ts:53`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/permission-presets/src/index.ts)
|
|
523
547
|
|
|
524
548
|
### `plan/*`
|
|
525
549
|
|
|
@@ -531,12 +555,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
531
555
|
/**
|
|
532
556
|
* Whether plan mode is in force from this point on: log-only, non-surface,
|
|
533
557
|
* whole-value replace. The last `plan/mode` wins; a log with none folds to
|
|
534
|
-
* inactive through
|
|
558
|
+
* inactive through the projection unit's fold.
|
|
535
559
|
*/
|
|
536
560
|
'plan/mode': { active: boolean }
|
|
537
561
|
```
|
|
538
562
|
|
|
539
|
-
来源:[`packages/plan/plan-mode/src/index.ts:
|
|
563
|
+
来源:[`packages/plan/plan-mode/src/index.ts:46`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/plan/plan-mode/src/index.ts)
|
|
540
564
|
|
|
541
565
|
### `request/*`
|
|
542
566
|
|
|
@@ -552,7 +576,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
552
576
|
'request/context': RequestContext
|
|
553
577
|
```
|
|
554
578
|
|
|
555
|
-
来源:[`packages/core/session/src/types.ts:
|
|
579
|
+
来源:[`packages/core/session/src/types.ts:341`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
556
580
|
|
|
557
581
|
<a id="requestheader--log-only"></a>
|
|
558
582
|
|
|
@@ -563,10 +587,15 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
563
587
|
* Full header for the next request, appended inside its step before dispatch.
|
|
564
588
|
* It is log-only; the latest snapshot reconstructs the request header.
|
|
565
589
|
*/
|
|
566
|
-
'request/header': {
|
|
590
|
+
'request/header': {
|
|
591
|
+
header: EpochHeader
|
|
592
|
+
reason: RequestHeaderReason
|
|
593
|
+
/** A changed header also begins a distinct model-message series. */
|
|
594
|
+
startsSeries?: true
|
|
595
|
+
}
|
|
567
596
|
```
|
|
568
597
|
|
|
569
|
-
来源:[`packages/core/session/src/types.ts:
|
|
598
|
+
来源:[`packages/core/session/src/types.ts:331`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
570
599
|
|
|
571
600
|
### `sandbox/*`
|
|
572
601
|
|
|
@@ -579,7 +608,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
579
608
|
* The session's sandbox mode was switched — log-only (like `approval/*`;
|
|
580
609
|
* NOT a surface event, carries no `surfaceOp`): durable and replayable,
|
|
581
610
|
* never in the model transcript. The LAST such event is the session's
|
|
582
|
-
* override (
|
|
611
|
+
* override (folded by the sandboxMode projection unit). `source: 'delegation'` marks
|
|
583
612
|
* an override seeded into a child; an absent source is a runtime switch.
|
|
584
613
|
*/
|
|
585
614
|
'sandbox/mode': {
|
|
@@ -620,12 +649,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
620
649
|
* Marks the end of a constructor seed. Events before it have smaller seq
|
|
621
650
|
* values and came from the seed (resume, fork, or replay); this lifecycle
|
|
622
651
|
* produced none of them. This log-only event is the durable projection of
|
|
623
|
-
* {@link Session.firstLiveSeq}.
|
|
624
|
-
* carry the meaning.
|
|
652
|
+
* {@link Session.firstLiveSeq}.
|
|
625
653
|
*
|
|
626
|
-
*
|
|
627
|
-
*
|
|
628
|
-
*
|
|
654
|
+
* A fresh fork child owns one `{ inherited: true }` marker at its exact
|
|
655
|
+
* inherited-prefix cut, even when that prefix ends in an ancestor marker.
|
|
656
|
+
* The last tagged marker is the current Session's cut; untagged markers keep
|
|
657
|
+
* ordinary restore and replay lifecycle boundaries.
|
|
629
658
|
*
|
|
630
659
|
* `Session`'s constructor is the only legitimate writer. The invariant
|
|
631
660
|
* companion deliberately constrains nothing here, so a plugin appending one
|
|
@@ -638,10 +667,10 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
638
667
|
* writers — a concurrently live session holds its own boundary elsewhere,
|
|
639
668
|
* so tolerating concurrent writers needs a signal beyond the log.
|
|
640
669
|
*/
|
|
641
|
-
'session/end-seed':
|
|
670
|
+
'session/end-seed': { inherited?: true }
|
|
642
671
|
```
|
|
643
672
|
|
|
644
|
-
来源:[`packages/core/session/src/types.ts:
|
|
673
|
+
来源:[`packages/core/session/src/types.ts:375`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
645
674
|
|
|
646
675
|
<a id="sessiontitle--log-only"></a>
|
|
647
676
|
|
|
@@ -657,7 +686,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
657
686
|
|
|
658
687
|
类型:[SessionTitleEventData](./subsystems/session-title.md)
|
|
659
688
|
|
|
660
|
-
来源:[`packages/session/session-title/src/index.ts:
|
|
689
|
+
来源:[`packages/session/session-title/src/index.ts:77`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title/src/index.ts)
|
|
661
690
|
|
|
662
691
|
<a id="sessiontitle-llm-request--log-only"></a>
|
|
663
692
|
|
|
@@ -670,7 +699,27 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
670
699
|
|
|
671
700
|
类型:[SessionTitleLlmRequestEventData](./subsystems/session-title.md)
|
|
672
701
|
|
|
673
|
-
来源:[`packages/session/session-title-llm/src/index.ts:
|
|
702
|
+
来源:[`packages/session/session-title-llm/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title-llm/src/index.ts)
|
|
703
|
+
|
|
704
|
+
### `session-log-deepseek/*`
|
|
705
|
+
|
|
706
|
+
<a id="session-log-deepseekdelivery-accepted--log-only"></a>
|
|
707
|
+
|
|
708
|
+
#### `session-log-deepseek/delivery-accepted` — log-only
|
|
709
|
+
|
|
710
|
+
```ts persistence-catalog
|
|
711
|
+
/** Records that the configured endpoint accepted one delivery through `throughSeq`. */
|
|
712
|
+
'session-log-deepseek/delivery-accepted': {
|
|
713
|
+
/** Session identity the accepted delivery carried; inherited fork markers retain the parent's id. */
|
|
714
|
+
sessionId: import('@deepseek-ai/dsh-session/types').SessionId
|
|
715
|
+
/** Accepted Session format generation; absence identifies version 0. */
|
|
716
|
+
sessionFormatVersion?: number
|
|
717
|
+
/** Last canonical event included in the accepted request. */
|
|
718
|
+
throughSeq: import('@deepseek-ai/dsh-session/types').SessionSeq
|
|
719
|
+
}
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
来源:[`packages/session/session-log-deepseek/src/types.ts:59`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-log-deepseek/src/types.ts)
|
|
674
723
|
|
|
675
724
|
### `step/*`
|
|
676
725
|
|
|
@@ -683,7 +732,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
683
732
|
'step/end': { turn: number; step: number }
|
|
684
733
|
```
|
|
685
734
|
|
|
686
|
-
来源:[`packages/core/session/src/types.ts:
|
|
735
|
+
来源:[`packages/core/session/src/types.ts:281`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
687
736
|
|
|
688
737
|
<a id="stepstart--log-only"></a>
|
|
689
738
|
|
|
@@ -694,7 +743,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
694
743
|
'step/start': { turn: number; step: number }
|
|
695
744
|
```
|
|
696
745
|
|
|
697
|
-
来源:[`packages/core/session/src/types.ts:
|
|
746
|
+
来源:[`packages/core/session/src/types.ts:279`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
698
747
|
|
|
699
748
|
### `subagent/*`
|
|
700
749
|
|
|
@@ -713,7 +762,26 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
713
762
|
'subagent/descriptor': SubagentDescriptorData
|
|
714
763
|
```
|
|
715
764
|
|
|
716
|
-
来源:[`packages/subagent/subagent/src/descriptor.ts:
|
|
765
|
+
来源:[`packages/subagent/subagent/src/descriptor.ts:38`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/src/descriptor.ts)
|
|
766
|
+
|
|
767
|
+
<a id="subagentmodel-selection-policy--log-only"></a>
|
|
768
|
+
|
|
769
|
+
#### `subagent/model-selection-policy` — 仅日志
|
|
770
|
+
|
|
771
|
+
```ts persistence-catalog
|
|
772
|
+
/**
|
|
773
|
+
* Records that this session's delegation tool exposes child provider,
|
|
774
|
+
* model, and reasoning-effort selection. Appended before the first model
|
|
775
|
+
* request; absence means the fixed-route definition. Log-only: it carries
|
|
776
|
+
* no `surfaceOp` and never enters model history.
|
|
777
|
+
*/
|
|
778
|
+
'subagent/model-selection-policy': {
|
|
779
|
+
/** Exact routes this Session may select explicitly for a child. */
|
|
780
|
+
allowedModels: AllowedModelRoute[]
|
|
781
|
+
}
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
来源:[`packages/subagent/tool-subagent/src/model-selection-state.ts:17`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent/src/model-selection-state.ts)
|
|
717
785
|
|
|
718
786
|
### `team/*`
|
|
719
787
|
|
|
@@ -723,12 +791,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
723
791
|
|
|
724
792
|
```ts persistence-catalog
|
|
725
793
|
/** Whole teammate lifecycle value, stored only in the Team Lead Session. */
|
|
726
|
-
'team/member': { version:
|
|
794
|
+
'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot }
|
|
727
795
|
```
|
|
728
796
|
|
|
729
797
|
类型:[TeamId](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md) · [TeamMemberSnapshot](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md)
|
|
730
798
|
|
|
731
|
-
来源:[`packages/experimental/agent-team/src/types.ts:
|
|
799
|
+
来源:[`packages/experimental/agent-team/src/types.ts:204`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
|
|
732
800
|
|
|
733
801
|
<a id="teammessagedelivered--log-only"></a>
|
|
734
802
|
|
|
@@ -737,7 +805,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
737
805
|
```ts persistence-catalog
|
|
738
806
|
/** Durable acknowledgement that the target Session recorded the message. */
|
|
739
807
|
'team/message/delivered': {
|
|
740
|
-
version:
|
|
808
|
+
version: 2
|
|
741
809
|
teamId: TeamId
|
|
742
810
|
messageId: TeamMessageId
|
|
743
811
|
targetId: SessionId
|
|
@@ -746,7 +814,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
746
814
|
|
|
747
815
|
类型:[TeamId](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md) · [TeamMessageId](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md)
|
|
748
816
|
|
|
749
|
-
来源:[`packages/experimental/agent-team/src/types.ts:
|
|
817
|
+
来源:[`packages/experimental/agent-team/src/types.ts:210`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
|
|
750
818
|
|
|
751
819
|
<a id="teammessagequeued--log-only"></a>
|
|
752
820
|
|
|
@@ -754,12 +822,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
754
822
|
|
|
755
823
|
```ts persistence-catalog
|
|
756
824
|
/** Durable mailbox enqueue, stored before delivery is attempted. */
|
|
757
|
-
'team/message/queued': { version:
|
|
825
|
+
'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot }
|
|
758
826
|
```
|
|
759
827
|
|
|
760
828
|
类型:[TeamId](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md) · [TeamMessageSnapshot](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md)
|
|
761
829
|
|
|
762
|
-
来源:[`packages/experimental/agent-team/src/types.ts:
|
|
830
|
+
来源:[`packages/experimental/agent-team/src/types.ts:208`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
|
|
763
831
|
|
|
764
832
|
<a id="teamtask--log-only"></a>
|
|
765
833
|
|
|
@@ -767,12 +835,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
767
835
|
|
|
768
836
|
```ts persistence-catalog
|
|
769
837
|
/** Whole shared-task value, stored only in the Team Lead Session. */
|
|
770
|
-
'team/task': { version:
|
|
838
|
+
'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot }
|
|
771
839
|
```
|
|
772
840
|
|
|
773
841
|
类型:[TeamId](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md) · [TeamTaskSnapshot](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/agent-team.zh.md)
|
|
774
842
|
|
|
775
|
-
来源:[`packages/experimental/agent-team/src/types.ts:
|
|
843
|
+
来源:[`packages/experimental/agent-team/src/types.ts:206`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
|
|
776
844
|
|
|
777
845
|
### `todo/*`
|
|
778
846
|
|
|
@@ -785,9 +853,9 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
785
853
|
'todo/write': { todos: TodoItem[] }
|
|
786
854
|
```
|
|
787
855
|
|
|
788
|
-
类型:[TodoItem](
|
|
856
|
+
类型:[TodoItem](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/todo.zh.md)
|
|
789
857
|
|
|
790
|
-
来源:[`packages/
|
|
858
|
+
来源:[`packages/todo/tool-todo/src/types.ts:31`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/todo/tool-todo/src/types.ts)
|
|
791
859
|
|
|
792
860
|
### `tool/*`
|
|
793
861
|
|
|
@@ -801,12 +869,12 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
801
869
|
* JSON string exactly as the model produced it (unparsed). `callId` pairs the
|
|
802
870
|
* call with its `tool/result`.
|
|
803
871
|
*/
|
|
804
|
-
'tool/call': { turn: number; step: number; callId:
|
|
872
|
+
'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string }
|
|
805
873
|
```
|
|
806
874
|
|
|
807
|
-
类型:[
|
|
875
|
+
类型:[ToolCallId](./subsystems/core.md)
|
|
808
876
|
|
|
809
|
-
来源:[`packages/core/session/src/types.ts:
|
|
877
|
+
来源:[`packages/core/session/src/types.ts:308`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
810
878
|
|
|
811
879
|
<a id="toolcode-dispatch--log-only"></a>
|
|
812
880
|
|
|
@@ -828,7 +896,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
828
896
|
* before returning), so its execution-enclosure relation holds by
|
|
829
897
|
* construction.
|
|
830
898
|
*/
|
|
831
|
-
'tool/code-dispatch':
|
|
899
|
+
'tool/code-dispatch': PtcDispatchEventData
|
|
832
900
|
```
|
|
833
901
|
|
|
834
902
|
来源:[`packages/core/tools/src/types.ts:56`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/types.ts)
|
|
@@ -851,7 +919,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
851
919
|
* with `tool/code-dispatch` by `subCallId` (timing = the two events'
|
|
852
920
|
* `time` fields).
|
|
853
921
|
*/
|
|
854
|
-
'tool/code-dispatch-start':
|
|
922
|
+
'tool/code-dispatch-start': PtcDispatchStartEventData
|
|
855
923
|
```
|
|
856
924
|
|
|
857
925
|
来源:[`packages/core/tools/src/types.ts:40`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/types.ts)
|
|
@@ -881,7 +949,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
881
949
|
}
|
|
882
950
|
```
|
|
883
951
|
|
|
884
|
-
来源:[`packages/core/session/src/types.ts:
|
|
952
|
+
来源:[`packages/core/session/src/types.ts:320`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
885
953
|
|
|
886
954
|
### `tool-workflow/*`
|
|
887
955
|
|
|
@@ -961,7 +1029,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
961
1029
|
|
|
962
1030
|
类型:[TurnEndReason](./subsystems/session.md)
|
|
963
1031
|
|
|
964
|
-
来源:[`packages/core/session/src/types.ts:
|
|
1032
|
+
来源:[`packages/core/session/src/types.ts:277`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
965
1033
|
|
|
966
1034
|
<a id="turnstart--log-only"></a>
|
|
967
1035
|
|
|
@@ -977,7 +1045,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
977
1045
|
'turn/start': { turn: number }
|
|
978
1046
|
```
|
|
979
1047
|
|
|
980
|
-
来源:[`packages/core/session/src/types.ts:
|
|
1048
|
+
来源:[`packages/core/session/src/types.ts:268`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
981
1049
|
|
|
982
1050
|
### `user/*`
|
|
983
1051
|
|
|
@@ -996,7 +1064,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
|
|
996
1064
|
'user/message': UserMessage
|
|
997
1065
|
```
|
|
998
1066
|
|
|
999
|
-
来源:[`packages/core/session/src/types.ts:
|
|
1067
|
+
来源:[`packages/core/session/src/types.ts:289`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/types.ts)
|
|
1000
1068
|
|
|
1001
1069
|
### `web/*`
|
|
1002
1070
|
|