revert: keep existing Agent attribution for Team messages
This commit is contained in:
1 parent
3948bffd46
commit
43dd2bdeac
31 files changed
+33712
-45959
No files matched your search
@@ -9,8 +9,8 @@
|
||||
en: 83296699f94c77d3
|
||||
zh: e681a426bf0a703a
|
||||
/agent-note-team-messages-use-the-target-inbox/decision:
|
||||
en: 2eaa9439ace9f36d
|
||||
zh: 07d8da76d2dce484
|
||||
en: 8d5fed34f19c7302
|
||||
zh: 25417793d3797775
|
||||
/agent-note-team-messages-use-the-target-inbox/alternatives-considered:
|
||||
en: e847556d8e9f1071
|
||||
zh: bf1abe2f0e201eac
|
||||
|
||||
@@ -10,7 +10,7 @@ A second Team outbox duplicates Agent inbox ownership with separate identities,
|
||||
|
||||
## Decision
|
||||
|
||||
New Team sends return the accepted inbox `MessageId` or throw. They use live Lead Steer or the host-only subagent Steer adapter, retaining the actual sender and member name through Team-owned `team-relay` source and the member name in content. Team attribution belongs to the Team source type; the delivery adapter accepts it through the existing `MessageSource` union. Acceptance follows ordinary Agent persistence; it neither confirms model processing nor adds a synchronous flush guarantee. Team does not retain unaccepted intent, retry it after restart, or deduplicate explicit resends.
|
||||
New Team sends return the accepted inbox `MessageId` or throw. They use live Lead Steer or the host-only subagent Steer adapter, retaining the actual sender through the existing `agent-message` source and the member name in content. Acceptance follows ordinary Agent persistence; it neither confirms model processing nor adds a synchronous flush guarantee. Team does not retain unaccepted intent, retry it after restart, or deduplicate explicit resends.
|
||||
|
||||
Historical mailbox records stay decodable and projected so existing Lead logs replay, but Team never delivers or acknowledges them. The package is experimental with no stability promise, and a second dispatch path with receipt inspection, per-target ordering, and its own disposal wait costs more than the undelivered old messages it would recover. This partially supersedes the mailbox decision in [Agent Teams](../feature/2026-08-05-agent-teams.md); roster and task decisions remain there. The [package reference](../../../../packages/experimental/agent-team/README.md#understand-the-implementation) owns the resulting limitation.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Status: implemented
|
||||
|
||||
## 决策
|
||||
|
||||
新的 Team 发送返回获准 inbox 的 `MessageId` 或抛出错误。它们使用 live Lead Steer 或 host-only subagent Steer adapter,通过 Team 所属的 `team-relay` source 保留真实发送者和成员名称,并在正文中保留成员名称。Team 归属信息属于 Team source 类型;投递 adapter 通过现有 `MessageSource` 联合类型接受它。接收遵循普通 Agent 的持久化策略,既不确认模型已处理,也不增加同步 flush 保证。Team 不保留尚未接收的发送意图,不在重启后重试,也不对显式重发去重。
|
||||
新的 Team 发送返回获准 inbox 的 `MessageId` 或抛出错误。它们使用 live Lead Steer 或 host-only subagent Steer adapter,通过现有 `agent-message` source 保留真实发送者,并在正文中保留成员名称。接收遵循普通 Agent 的持久化策略,既不确认模型已处理,也不增加同步 flush 保证。Team 不保留尚未接收的发送意图,不在重启后重试,也不对显式重发去重。
|
||||
|
||||
历史 mailbox 记录继续可解码并参与投影,使现有 Lead 日志能够回放,但 Team 不再投递或确认它们。该包是实验性的,没有稳定性承诺;另设一条带回执检查、同目标排序和独立 dispose 等待的投递路径,其代价高于它能补回的未投递旧消息。这部分取代了 [Agent Teams](../feature/2026-08-05-agent-teams.zh.md) 的 mailbox 决策;roster 和任务决策仍由原记录负责。[包参考](../../../../packages/experimental/agent-team/README.zh.md#understand-the-implementation)定义由此产生的限制。
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ describe('dsh run with Agent Teams enabled', () => {
|
||||
expect(eventTypes).not.toContain('team/message/queued')
|
||||
expect(eventTypes).not.toContain('team/message/delivered')
|
||||
const peerMessages = parsed.flatMap(log => log.filter(record => record.type === 'user/message'
|
||||
&& (record.data as { source: { kind: string } }).source.kind === 'team-relay'))
|
||||
&& (record.data as { source: { kind: string } }).source.kind === 'agent-message'))
|
||||
expect(peerMessages).toHaveLength(2)
|
||||
const taskEvents = root!.filter(record => record.type === 'team/task')
|
||||
expect(taskEvents.filter((record) => {
|
||||
|
||||
@@ -788,14 +788,14 @@ describe('headless stream-json snapshots', () => {
|
||||
if (typeof message !== 'object' || message === null || Array.isArray(message)) return false
|
||||
const source = (message as JsonObject).source
|
||||
return typeof source === 'object' && source !== null && !Array.isArray(source)
|
||||
&& (source as JsonObject).kind === 'team-relay'
|
||||
&& (source as JsonObject).kind === 'agent-message'
|
||||
})
|
||||
})
|
||||
const steeredMessageIndex = implementerRows.findIndex((row) => {
|
||||
if (row.type !== 'user/message') return false
|
||||
const source = (row.data as JsonObject).source
|
||||
return typeof source === 'object' && source !== null && !Array.isArray(source)
|
||||
&& (source as JsonObject).kind === 'team-relay'
|
||||
&& (source as JsonObject).kind === 'agent-message'
|
||||
})
|
||||
const openTurnStart = implementerRows.findLastIndex((row, index) => (
|
||||
index < steeredMessageIndex && row.type === 'turn/start'
|
||||
|
||||
@@ -827,7 +827,7 @@ export interface Config {
|
||||
## `@deepseek-ai/dsh-experimental-agent-team`
|
||||
|
||||
- `inject`: `agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
|
||||
- `source`: [`packages/experimental/agent-team/src/types.ts:162`](../packages/experimental/agent-team/src/types.ts)
|
||||
- `source`: [`packages/experimental/agent-team/src/types.ts:153`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
```ts config-catalog
|
||||
/** Team-service deployment limits. */
|
||||
|
||||
@@ -829,7 +829,7 @@ export interface Config {
|
||||
## `@deepseek-ai/dsh-experimental-agent-team`
|
||||
|
||||
- `inject`: `agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
|
||||
- `source`: [`packages/experimental/agent-team/src/types.ts:162`](../packages/experimental/agent-team/src/types.ts)
|
||||
- `source`: [`packages/experimental/agent-team/src/types.ts:153`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
```ts config-catalog
|
||||
/** Team-service deployment limits. */
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
en: e7c80d1de4d328b4
|
||||
zh: d9f368c27fd9f998
|
||||
/session-persistence-event-catalog/persistence-type-fingerprints:
|
||||
en: 89c10f956f3255e0
|
||||
zh: 668abe049d156e47
|
||||
en: 0254fc43535dfaad
|
||||
zh: 2f592cfae60e10ac
|
||||
/session-persistence-event-catalog/event-envelope:
|
||||
en: 7ebb1a2e0dd1f916
|
||||
zh: 8946f415dda5c1b8
|
||||
@@ -216,17 +216,17 @@
|
||||
en: a640800a38b3c874
|
||||
zh: a640800a38b3c874
|
||||
/session-persistence-event-catalog/events/team/team-member-log-only:
|
||||
en: 1b61ae72660c98bc
|
||||
zh: 003fe48a37e0f7bb
|
||||
en: a2fe5b8582ef5f46
|
||||
zh: 42bfffcde3f3d886
|
||||
/session-persistence-event-catalog/events/team/team-message-delivered-log-only:
|
||||
en: d9a59f5719145fb7
|
||||
zh: 8d831e4f6ea0dac3
|
||||
en: 4a716b14e33eab18
|
||||
zh: dcde26e4dc40b62e
|
||||
/session-persistence-event-catalog/events/team/team-message-queued-log-only:
|
||||
en: d96801713a18fa80
|
||||
zh: cfe5bfc08994c00b
|
||||
en: 05bf873244099da5
|
||||
zh: 8a0b62912087f4aa
|
||||
/session-persistence-event-catalog/events/team/team-task-log-only:
|
||||
en: 3f16e581eaaf67d8
|
||||
zh: 964294fec32b5d52
|
||||
en: 5ffeb64225feda2a
|
||||
zh: d58129e189a726fb
|
||||
/session-persistence-event-catalog/events/todo:
|
||||
en: 308d4bb4b6b96e35
|
||||
zh: 308d4bb4b6b96e35
|
||||
@@ -759,11 +759,8 @@
|
||||
en: 1fa929a15e4a96ea
|
||||
zh: 1fa929a15e4a96ea
|
||||
/session-persistence-event-catalog/resolved-persistence-types/team-message:
|
||||
en: ebf5638b515116e8
|
||||
zh: ebf5638b515116e8
|
||||
/session-persistence-event-catalog/resolved-persistence-types/team-relay:
|
||||
en: 2381ca4055c1043e
|
||||
zh: 2381ca4055c1043e
|
||||
en: b2c69bdf83f09bdf
|
||||
zh: b2c69bdf83f09bdf
|
||||
/session-persistence-event-catalog/resolved-persistence-types/team-member:
|
||||
en: 8cf0f09cbf885f71
|
||||
zh: 8cf0f09cbf885f71
|
||||
@@ -954,11 +951,11 @@
|
||||
en: 586743dfeab78c55
|
||||
zh: 26ccef4a02dd7a58
|
||||
/session-persistence-event-catalog/resolved-persistence-types/deepseeksearchllmrequest:
|
||||
en: b0eb3474dc8e3e5f
|
||||
zh: 3bd51444c68073b3
|
||||
en: b3df6dce576b01a2
|
||||
zh: f9c67e338cc6e449
|
||||
/session-persistence-event-catalog/resolved-persistence-types/developermessage:
|
||||
en: c3bf99efbd57dcd0
|
||||
zh: 8258f69a1643b141
|
||||
en: 3df6e6aaeb92c0fa
|
||||
zh: 29988ebcdd9e62e1
|
||||
/session-persistence-event-catalog/resolved-persistence-types/epochheader:
|
||||
en: d31020fa1fda6fa4
|
||||
zh: 77984c4bf09443fb
|
||||
@@ -1056,11 +1053,11 @@
|
||||
en: 6dbe099c62f7c226
|
||||
zh: 6fd788f63c038c91
|
||||
/session-persistence-event-catalog/resolved-persistence-types/llmretrystartedeventdata:
|
||||
en: 2559b0a407634187
|
||||
zh: a113f3168423b87b
|
||||
en: 7854b9694cc84c3a
|
||||
zh: 319ec2e2e6ffdaec
|
||||
/session-persistence-event-catalog/resolved-persistence-types/message:
|
||||
en: c580203c6047c3d5
|
||||
zh: 522fc25123e36702
|
||||
en: 45a296c31664de87
|
||||
zh: 8f235285b2f985f9
|
||||
/session-persistence-event-catalog/resolved-persistence-types/messagefeedbackdelete:
|
||||
en: c582953270d4ca44
|
||||
zh: 966ccfe2e7660a2a
|
||||
@@ -1071,14 +1068,14 @@
|
||||
en: f58575a1fc96df42
|
||||
zh: 9f0c6ed9033e5c9d
|
||||
/session-persistence-event-catalog/resolved-persistence-types/messagefeedbackrating:
|
||||
en: 63ef28c7210a20ff
|
||||
zh: 14478a48bca9ae64
|
||||
en: 490a91f1da1fc870
|
||||
zh: 2f2b9e972e22d51f
|
||||
/session-persistence-event-catalog/resolved-persistence-types/messagesource:
|
||||
en: 4dbdcf9ef21b3e2b
|
||||
zh: deff28371eb277ef
|
||||
en: 7d0eda01d2c3076f
|
||||
zh: ce3dbfc1bd7fd176
|
||||
/session-persistence-event-catalog/resolved-persistence-types/message~2:
|
||||
en: 0b609fe9e561f4dc
|
||||
zh: 53a3420b05172691
|
||||
en: 8e53b2a339808ffc
|
||||
zh: d453e93e45f9e752
|
||||
/session-persistence-event-catalog/resolved-persistence-types/modelmessagesource:
|
||||
en: 3b677f021d7dd4d3
|
||||
zh: 2a875742b22879a2
|
||||
@@ -1137,11 +1134,11 @@
|
||||
en: 9a54c4478ad3b620
|
||||
zh: 02c4c1fd7e252770
|
||||
/session-persistence-event-catalog/resolved-persistence-types/sessiontitleeventdata:
|
||||
en: 51d7e3f1b996e5d0
|
||||
zh: 5a955c48473db8c2
|
||||
en: 415ce281c096b4c3
|
||||
zh: 39c5bf9dfaa95579
|
||||
/session-persistence-event-catalog/resolved-persistence-types/sessiontitlellmrequesteventdata:
|
||||
en: 71c01199c777c527
|
||||
zh: 3e1120ba6e6f6212
|
||||
en: 0e539718e4bc8ed8
|
||||
zh: 060007f55759f065
|
||||
/session-persistence-event-catalog/resolved-persistence-types/sessiontitlemodelidentity:
|
||||
en: 9531468264499498
|
||||
zh: 9da23c0ad2776563
|
||||
@@ -1248,14 +1245,14 @@
|
||||
en: 544292eddeff5faa
|
||||
zh: 4e36e575a5030fb2
|
||||
/session-persistence-event-catalog/resolved-persistence-types/turnendreason:
|
||||
en: 4391ef607f1070aa
|
||||
zh: f8674649511391de
|
||||
en: 083f0fef130bb976
|
||||
zh: dafd261a95708bec
|
||||
/session-persistence-event-catalog/resolved-persistence-types/usermessage:
|
||||
en: ee0568ac146e7dde
|
||||
zh: 1bebe8ecc5f96361
|
||||
en: 88b294a9b0bdf0e4
|
||||
zh: 0597f465b9d45b27
|
||||
/session-persistence-event-catalog/resolved-persistence-types/usermessage~2:
|
||||
en: 37701fa982f8d5dd
|
||||
zh: c725cf60b19f229e
|
||||
en: 31aaab9c9f53ed9c
|
||||
zh: c5cd866b3f2b27e0
|
||||
/session-persistence-event-catalog/resolved-persistence-types/workflowagentoutcome:
|
||||
en: d0a3f9aab18c3de5
|
||||
zh: 76ac69a835ca4e29
|
||||
@@ -1425,11 +1422,11 @@
|
||||
en: 51af619ed8532a43
|
||||
zh: a5ad878c63d0e046
|
||||
/session-persistence-event-catalog/resolved-persistence-types/header-reason-startsseries:
|
||||
en: 6e33e5c0e18b6a0a
|
||||
zh: e2a22c228e459bf5
|
||||
en: 62ca405eba4d2757
|
||||
zh: c6a8861533363ae9
|
||||
/session-persistence-event-catalog/resolved-persistence-types/headerseq-message-step-turn:
|
||||
en: f075afc903e3de53
|
||||
zh: 871457f173ae4fe3
|
||||
en: 76e7be9a80a4082c
|
||||
zh: c06aaa42a8488aea
|
||||
/session-persistence-event-catalog/resolved-persistence-types/height-width:
|
||||
en: a5df50710083ac25
|
||||
zh: aad3ccf6f6de70e4
|
||||
@@ -1446,11 +1443,11 @@
|
||||
en: 41f73c58a77dfa28
|
||||
zh: af77f4aee3cb4a40
|
||||
/session-persistence-event-catalog/resolved-persistence-types/inherited:
|
||||
en: 316972892136b7f9
|
||||
zh: 3a9475a1aee20afa
|
||||
en: f538b60f99becc0a
|
||||
zh: 0c8efa059a1e6569
|
||||
/session-persistence-event-catalog/resolved-persistence-types/inserted-outcome-removedcount-start:
|
||||
en: 2c23937fee151ba8
|
||||
zh: e50db054ac113dfa
|
||||
en: 3985827b3ead1d92
|
||||
zh: c535166ccae6c8a3
|
||||
/session-persistence-event-catalog/resolved-persistence-types/interrupted-message-step-stream:
|
||||
en: f460572284c92755
|
||||
zh: bae7561ce887b040
|
||||
@@ -1665,11 +1662,8 @@
|
||||
en: c99d8a67438771ff
|
||||
zh: 070f6160fc419fa5
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-stop:
|
||||
en: a64980e04d797552
|
||||
zh: ee66b5a6aed7ffc4
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-team-relay-form-relay:
|
||||
en: 8a7c120f2a2156bb
|
||||
zh: b963b594e27a7fdb
|
||||
en: 09ce6f3196938ccf
|
||||
zh: 1b8d5540f47fd3aa
|
||||
/session-persistence-event-catalog/resolved-persistence-types/kind-time-context:
|
||||
en: 5733addfc8b12a47
|
||||
zh: aaf60d5396e30971
|
||||
@@ -1791,17 +1785,17 @@
|
||||
en: afedf4a31a67eb14
|
||||
zh: 98d3bc882f2b61c3
|
||||
/session-persistence-event-catalog/resolved-persistence-types/member-teamid-version:
|
||||
en: c5d8c3bdd23b402b
|
||||
zh: 02de0bba9445fd09
|
||||
en: 82b0989dad6bbfc0
|
||||
zh: 0789b63f1d59b2ed
|
||||
/session-persistence-event-catalog/resolved-persistence-types/message-step-turn:
|
||||
en: 7cc30865737643f2
|
||||
zh: 512c6c81ed10a9b6
|
||||
/session-persistence-event-catalog/resolved-persistence-types/message-teamid-version:
|
||||
en: 01e98cdbb65399f3
|
||||
zh: 766c7a3691cddcfd
|
||||
en: f778769acb264dd5
|
||||
zh: eba9b81d04e9f57b
|
||||
/session-persistence-event-catalog/resolved-persistence-types/messageid-targetid-teamid-version:
|
||||
en: 9e04283bb1c229a8
|
||||
zh: ee2fc1587d8342b3
|
||||
en: 91a948ede28ebcb5
|
||||
zh: 8a2b0ac6bb68a09e
|
||||
/session-persistence-event-catalog/resolved-persistence-types/mode-source:
|
||||
en: 3028b222670ce5ad
|
||||
zh: cae4c9437e560d61
|
||||
@@ -1833,8 +1827,8 @@
|
||||
en: 5360af614fe753e3
|
||||
zh: 96427c489cc71de6
|
||||
/session-persistence-event-catalog/resolved-persistence-types/task-teamid-version:
|
||||
en: bdab6f64ef7efe66
|
||||
zh: b2b681924df93077
|
||||
en: a2fcd46e54b14120
|
||||
zh: d9a6e0e50bbff9ad
|
||||
/session-persistence-event-catalog/resolved-persistence-types/todos:
|
||||
en: 06e6c1837e2b5d50
|
||||
zh: 37cebfe3e41294ec
|
||||
@@ -1842,11 +1836,11 @@
|
||||
en: a79b2ab16b9ed215
|
||||
zh: 764cd1400ee8db63
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-agent-preset-selected:
|
||||
en: 7f83c82fb627a54a
|
||||
zh: 8a42bd15c8cc671b
|
||||
en: d59bb505610b862f
|
||||
zh: e2637fbbb8365bdf
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-agent-inbox-spliced:
|
||||
en: 9619813dfbf7bc17
|
||||
zh: 93110784e13f3d0b
|
||||
en: 109d942de30d9227
|
||||
zh: 6c6fc06634ad7945
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-approval-asked:
|
||||
en: 9c77f18b0dad22f0
|
||||
zh: 8894cf2878fe90db
|
||||
@@ -1890,11 +1884,11 @@
|
||||
en: ba73fb10b7e2ffc9
|
||||
zh: 8d5c97e63e5f16da
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-deliverables-presented:
|
||||
en: d58679c990e26669
|
||||
zh: 9476184de3c72c24
|
||||
en: 49de6f547778d916
|
||||
zh: ce2a1af1ae934f68
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-developer-message:
|
||||
en: b1d12846e8b42be7
|
||||
zh: ce14a0ce914da4c9
|
||||
en: 686d26ced9945d4b
|
||||
zh: 535b9e92eb7535fb
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-feedback-message-delete:
|
||||
en: 204561e2311db97e
|
||||
zh: 77264396bd5e25c4
|
||||
@@ -1959,11 +1953,11 @@
|
||||
en: acf7e21e4d21ebff
|
||||
zh: fb83a853634d204a
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-session-title:
|
||||
en: 8b663a9bed3d6d02
|
||||
zh: 6e94250a6765ff54
|
||||
en: ba2f901c9981835f
|
||||
zh: ce0358c7d16b0beb
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-session-title-llm-request:
|
||||
en: ab5f000b3356856b
|
||||
zh: 178664249c06dd65
|
||||
en: 7515d391badb4d0a
|
||||
zh: 9eb19def7a3ed752
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-step-end:
|
||||
en: 7fc233c4a569dae2
|
||||
zh: bc2b3fed4a397c00
|
||||
@@ -2040,11 +2034,11 @@
|
||||
en: 1b045de96172be4b
|
||||
zh: 8a15c6f35b576b37
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-usage:
|
||||
en: a52e1f433bb4d37e
|
||||
zh: f4a9bc2875013f8e
|
||||
en: a01e61480accb34b
|
||||
zh: 6387a3cc7666aa7e
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-user-message:
|
||||
en: 2e0b6943f08ce6b4
|
||||
zh: 8414f682acae08e0
|
||||
en: 58d3e616db84f840
|
||||
zh: 9aed64a03347caad
|
||||
/session-persistence-event-catalog/resolved-persistence-types/type-web-deepseek-search-llm-request:
|
||||
en: f109997e295af37d
|
||||
zh: b2dcfd599f73b61c
|
||||
|
||||
+53
-77
@@ -21,7 +21,7 @@ The [format references](persistence-changes/historical-formats/README.md) cover
|
||||
| `JsonlHeaderLine` | header | `18ee62b8900a4c3d046700f05d7a4d49d6cab2a660a020c87481d1603dd8bd4f` | [`HeaderLine`](#persistence-type-sha256-18ee62b8900a4c3d046700f05d7a4d49d6cab2a660a020c87481d1603dd8bd4f) |
|
||||
| `SessionEventEnvelope` | envelope | `5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc` | [`union (3 variants)`](#persistence-type-sha256-5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc) |
|
||||
| `event:agent-preset/selected` | event | `a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b` | [`{ type: "agent-preset/selected" }`](#persistence-type-sha256-a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b) |
|
||||
| `event:agent/inbox/spliced` | event | `069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4` | [`{ type: "agent/inbox/spliced" }`](#persistence-type-sha256-069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4) |
|
||||
| `event:agent/inbox/spliced` | event | `1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c` | [`{ type: "agent/inbox/spliced" }`](#persistence-type-sha256-1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c) |
|
||||
| `event:approval/asked` | event | `3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1` | [`{ type: "approval/asked" }`](#persistence-type-sha256-3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1) |
|
||||
| `event:approval/decided` | event | `bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3` | [`{ type: "approval/decided" }`](#persistence-type-sha256-bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3) |
|
||||
| `event:approval/policy` | event | `26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78` | [`{ type: "approval/policy" }`](#persistence-type-sha256-26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78) |
|
||||
@@ -34,7 +34,7 @@ The [format references](persistence-changes/historical-formats/README.md) cover
|
||||
| `event:compaction/start` | event | `db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965` | [`{ type: "compaction/start" }`](#persistence-type-sha256-db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965) |
|
||||
| `event:compaction/summary` | event | `e2f9a41e0989f54ed8cee80f8db2bcf9d60a5c810dc9d45b83fa050b9dce7602` | [`{ type: "compaction/summary" }`](#persistence-type-sha256-e2f9a41e0989f54ed8cee80f8db2bcf9d60a5c810dc9d45b83fa050b9dce7602) |
|
||||
| `event:deliverables/presented` | event | `13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176` | [`{ type: "deliverables/presented" }`](#persistence-type-sha256-13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176) |
|
||||
| `event:developer/message` | event | `3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e` | [`{ type: "developer/message" }`](#persistence-type-sha256-3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e) |
|
||||
| `event:developer/message` | event | `eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80` | [`{ type: "developer/message" }`](#persistence-type-sha256-eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80) |
|
||||
| `event:feedback/message-delete` | event | `3ee93b06f3a125850337602bcdf155d2538c43a5c944ec55b1b3c365152d6796` | [`{ type: "feedback/message-delete" }`](#persistence-type-sha256-3ee93b06f3a125850337602bcdf155d2538c43a5c944ec55b1b3c365152d6796) |
|
||||
| `event:feedback/message-put` | event | `b5086d249e8502e9ead1d39156bb8d559bde7951cac0f14ce150345b4e42a2bf` | [`{ type: "feedback/message-put" }`](#persistence-type-sha256-b5086d249e8502e9ead1d39156bb8d559bde7951cac0f14ce150345b4e42a2bf) |
|
||||
| `event:feedback/record` | event | `b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8` | [`{ type: "feedback/record" }`](#persistence-type-sha256-b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8) |
|
||||
@@ -54,7 +54,7 @@ The [format references](persistence-changes/historical-formats/README.md) cover
|
||||
| `event:session-log-deepseek/delivery-accepted` | event | `d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9` | [`{ type: "session-log-deepseek/delivery-accepted" }`](#persistence-type-sha256-d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9) |
|
||||
| `event:session/end-seed` | event | `5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e` | [`{ type: "session/end-seed" }`](#persistence-type-sha256-5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e) |
|
||||
| `event:session/title` | event | `1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5` | [`{ type: "session/title" }`](#persistence-type-sha256-1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5) |
|
||||
| `event:session/title-llm-request` | event | `d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7` | [`{ type: "session/title-llm-request" }`](#persistence-type-sha256-d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7) |
|
||||
| `event:session/title-llm-request` | event | `fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d` | [`{ type: "session/title-llm-request" }`](#persistence-type-sha256-fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d) |
|
||||
| `event:step/end` | event | `e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05` | [`{ type: "step/end" }`](#persistence-type-sha256-e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05) |
|
||||
| `event:step/start` | event | `4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986` | [`{ type: "step/start" }`](#persistence-type-sha256-4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986) |
|
||||
| `event:subagent/catalog` | event | `3abae7324356f155cb42450c00b806d134ec93bd6439d2063b8d724162d58604` | [`{ type: "subagent/catalog" }`](#persistence-type-sha256-3abae7324356f155cb42450c00b806d134ec93bd6439d2063b8d724162d58604) |
|
||||
@@ -76,7 +76,7 @@ The [format references](persistence-changes/historical-formats/README.md) cover
|
||||
| `event:tool/result` | event | `7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397` | [`{ type: "tool/result" }`](#persistence-type-sha256-7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397) |
|
||||
| `event:turn/end` | event | `0f8512903d94f57a4748fa1a2092e64342856796684e6b8343db685b192745ce` | [`{ type: "turn/end" }`](#persistence-type-sha256-0f8512903d94f57a4748fa1a2092e64342856796684e6b8343db685b192745ce) |
|
||||
| `event:turn/start` | event | `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8` | [`{ type: "turn/start" }`](#persistence-type-sha256-aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8) |
|
||||
| `event:user/message` | event | `0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58` | [`{ type: "user/message" }`](#persistence-type-sha256-0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58) |
|
||||
| `event:user/message` | event | `3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761` | [`{ type: "user/message" }`](#persistence-type-sha256-3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761) |
|
||||
| `event:web/deepseek-search-llm-request` | event | `cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331` | [`{ type: "web/deepseek-search-llm-request" }`](#persistence-type-sha256-cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331) |
|
||||
| `event:workspace/changes` | event | `e308ccf867a5398e316e0af8cb6ce238a8d33a63b9b384c8250a686786285f72` | [`{ type: "workspace/changes" }`](#persistence-type-sha256-e308ccf867a5398e316e0af8cb6ce238a8d33a63b9b384c8250a686786285f72) |
|
||||
|
||||
@@ -975,7 +975,7 @@ Source: [`packages/core/session/src/types.ts:330`](../packages/core/session/src/
|
||||
|
||||
Types: [TeamId](subsystems/agent-team.md) · [TeamMemberSnapshot](subsystems/agent-team.md)
|
||||
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:239`](../packages/experimental/agent-team/src/types.ts)
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:230`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teammessagedelivered--log-only"></a>
|
||||
|
||||
@@ -993,7 +993,7 @@ Source: [`packages/experimental/agent-team/src/types.ts:239`](../packages/experi
|
||||
|
||||
Types: [TeamId](subsystems/agent-team.md) · [TeamMessageId](subsystems/agent-team.md)
|
||||
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:245`](../packages/experimental/agent-team/src/types.ts)
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:236`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teammessagequeued--log-only"></a>
|
||||
|
||||
@@ -1006,7 +1006,7 @@ Source: [`packages/experimental/agent-team/src/types.ts:245`](../packages/experi
|
||||
|
||||
Types: [TeamId](subsystems/agent-team.md) · [TeamMessageSnapshot](subsystems/agent-team.md)
|
||||
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:243`](../packages/experimental/agent-team/src/types.ts)
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:234`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teamtask--log-only"></a>
|
||||
|
||||
@@ -1019,7 +1019,7 @@ Source: [`packages/experimental/agent-team/src/types.ts:243`](../packages/experi
|
||||
|
||||
Types: [TeamId](subsystems/agent-team.md) · [TeamTaskSnapshot](subsystems/agent-team.md)
|
||||
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:241`](../packages/experimental/agent-team/src/types.ts)
|
||||
Source: [`packages/experimental/agent-team/src/types.ts:232`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
### `todo/*`
|
||||
|
||||
@@ -2539,14 +2539,6 @@ SHA-256: `2e4debca12f2c449f96dc6574f3fbf2fb346193443114a241d01a236362ec48c`
|
||||
|
||||
`"team-message"`
|
||||
|
||||
<a id="persistence-type-sha256-c91852e53038618e7869f3e436acdb3f319c4f31b516c71a4b816e7387e3df2f"></a>
|
||||
|
||||
### `"team-relay"`
|
||||
|
||||
SHA-256: `c91852e53038618e7869f3e436acdb3f319c4f31b516c71a4b816e7387e3df2f`
|
||||
|
||||
`"team-relay"`
|
||||
|
||||
<a id="persistence-type-sha256-18fcdd273a2f2f9d813a3be5e71df5903a963a5c88e46b90b14de6e2db890da0"></a>
|
||||
|
||||
### `"team/member"`
|
||||
@@ -3215,7 +3207,7 @@ Sources: [`packages/web/web-search-deepseek/src/provider.ts:55`](../packages/web
|
||||
| `body` | required | [`{ max_tokens, messages, model, tools }`](#persistence-type-sha256-930a6567a10bb62ddd157bd8abdf4b182810c8c3b49d91309b3b009a5fed9731) |
|
||||
| `endpoint` | required | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba"></a>
|
||||
<a id="persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b"></a>
|
||||
|
||||
<a id="persistence-type-developermessage"></a>
|
||||
|
||||
@@ -3223,7 +3215,7 @@ Sources: [`packages/web/web-search-deepseek/src/provider.ts:55`](../packages/web
|
||||
|
||||
### `DeveloperMessage`
|
||||
|
||||
SHA-256: `46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba`
|
||||
SHA-256: `f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b`
|
||||
|
||||
Sources: [`packages/llm/llm/src/message.ts:157`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -3232,11 +3224,11 @@ Sources: [`packages/llm/llm/src/message.ts:157`](../packages/llm/llm/src/message
|
||||
| `content` | required | [`ContentBlock[]`](#persistence-type-sha256-b52f215a6cd691058a3413c12f161fa3b563a2f4895adb3df6f744ec4b0a6ef1) |
|
||||
| `id` | required | `string` |
|
||||
| `role` | required | `"developer"` |
|
||||
| `source` | required | [`MessageSource`](#persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624) |
|
||||
| `source` | required | [`MessageSource`](#persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945) |
|
||||
|
||||
Source compatibility: `source` — `session-source-attribution` v1; `session.developer-message.source`; `kind`; `preserve`.
|
||||
|
||||
Attribution-only additions: `team-relay`, `tmux-context`.
|
||||
Attribution-only additions: `tmux-context`.
|
||||
|
||||
<a id="persistence-type-sha256-9a930283b91d493d6347146f2475bb107294b379415ca02162354f46a64164f7"></a>
|
||||
|
||||
@@ -3849,7 +3841,7 @@ Sources: [`packages/llm/llm-retry/src/types.ts:43`](../packages/llm/llm-retry/sr
|
||||
| `step` | required | `number` |
|
||||
| `turn` | required | `number` |
|
||||
|
||||
<a id="persistence-type-sha256-139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2"></a>
|
||||
<a id="persistence-type-sha256-691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6"></a>
|
||||
|
||||
<a id="persistence-type-message"></a>
|
||||
|
||||
@@ -3857,15 +3849,15 @@ Sources: [`packages/llm/llm-retry/src/types.ts:43`](../packages/llm/llm-retry/sr
|
||||
|
||||
### `Message`
|
||||
|
||||
SHA-256: `139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2`
|
||||
SHA-256: `691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6`
|
||||
|
||||
Sources: [`packages/llm/llm/src/message.ts:196`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
One of:
|
||||
|
||||
- [`ToolResultMessage`](#persistence-type-sha256-4b259f7f8f0a44ad5e90b70a73553ced1df27012d126921d397ff403b6c86731)
|
||||
- [`DeveloperMessage`](#persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba)
|
||||
- [`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47)
|
||||
- [`DeveloperMessage`](#persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b)
|
||||
- [`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586)
|
||||
- [`AssistantMessage`](#persistence-type-sha256-fa87537f4a9c1e25602990a8bf686b383e9e00352ec8946e16ae24ba7c1625be)
|
||||
- [`SystemMessage`](#persistence-type-sha256-09f3f8dc417f278257202714132f98ba7b52957d7b558c4a04456603890eb363)
|
||||
|
||||
@@ -3942,7 +3934,7 @@ One of:
|
||||
- `"negative"`
|
||||
- `"positive"`
|
||||
|
||||
<a id="persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624"></a>
|
||||
<a id="persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945"></a>
|
||||
|
||||
<a id="persistence-type-messagesource"></a>
|
||||
|
||||
@@ -3950,7 +3942,7 @@ One of:
|
||||
|
||||
### `MessageSource`
|
||||
|
||||
SHA-256: `bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624`
|
||||
SHA-256: `40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945`
|
||||
|
||||
Sources: [`packages/llm/llm/src/message.ts:136`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -4025,7 +4017,6 @@ Sources: [`packages/llm/llm/src/message.ts:136`](../packages/llm/llm/src/message
|
||||
| `subagent-settled` | `"notice"` | `senderSessionId`: `string`; `summary`: `string` | [`SubagentSettledMessageSource`](#persistence-type-sha256-4e97c3d85c0fc817ee58873c38c25a2474abaaa0af4839311b50b68db3b8cf1a) |
|
||||
| `system-prompt` | not declared | none | [`SystemPromptMessageSource`](#persistence-type-sha256-65a8400e451e667e5b6e34df72ceb81fca8c12330330fa72083ad40279b189ad) |
|
||||
| `team-message` | not declared | `messageId`: `string`; `senderId`: `string`; `senderName`: `string`; `teamId`: `string` | [`TeamMessageSource`](#persistence-type-sha256-2152caf1a71e588e4df2358a806dea24936c1c47131134f01a12939d12cdc0c0) |
|
||||
| `team-relay` | `"relay"` | `senderName`: `string`; `senderSessionId`: `string` | [`{ kind: "team-relay", form: "relay" }`](#persistence-type-sha256-a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe) |
|
||||
| `time-context` | `"catalog"` | none | [`{ kind: "time-context", form: "catalog" }`](#persistence-type-sha256-85fe96bf15d5c7559eec3bae4d6cf1a76fda9f5be05a29c2830cff560cab0c0d) |
|
||||
| `time-context` | `"instructions"` | none | [`{ kind: "time-context", form: "instructions" }`](#persistence-type-sha256-f6afe41e3926f422fe849debe90819fddd739f0f59e20be9c71018b9554a7f09) |
|
||||
| `time-context` | `"notice"` | `summary`: `string` | [`{ kind: "time-context", form: "notice" }`](#persistence-type-sha256-ee577a0cc18664c9daee50e9455153321155604f8f1817362f8f4a4b6fb9e1ad) |
|
||||
@@ -4067,13 +4058,13 @@ Sources: [`packages/llm/llm/src/message.ts:136`](../packages/llm/llm/src/message
|
||||
| `user-approval` | not declared | none | [`{ kind: "user-approval" }`](#persistence-type-sha256-6292bcbedaa97feaec5b48a03bb8144b581b93309d9d6c905f26da7a6a7a0a4f) |
|
||||
| `webhook` | `"notice"` | `deliveryId`: `string`; `provider`: `string`; `ruleId`: `string`; `source`: `string`; `summary`: `string` | [`{ kind: "webhook", form: "notice" }`](#persistence-type-sha256-9edc162949abf93bd5ff049191b345454ba104f583937ce5580fb50f067d2b94) |
|
||||
|
||||
<a id="persistence-type-sha256-9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f"></a>
|
||||
<a id="persistence-type-sha256-fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83"></a>
|
||||
|
||||
### `Message[]`
|
||||
|
||||
SHA-256: `9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f`
|
||||
SHA-256: `fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83`
|
||||
|
||||
Array of [`Message`](#persistence-type-sha256-139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2).
|
||||
Array of [`Message`](#persistence-type-sha256-691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6).
|
||||
|
||||
<a id="persistence-type-sha256-719c51f67074f97034a6c94297fe1f4b5d3c8d392c57586dab732aa5398c7a91"></a>
|
||||
|
||||
@@ -4440,7 +4431,7 @@ Sources: [`packages/session/session-title/src/types.ts:41`](../packages/session/
|
||||
| `source` | required | [`SessionTitleSource`](#persistence-type-sha256-30d5a537b296685770b1241c4b4bbde19d5a31ff81aa23df73fab5e90b8fc65f) |
|
||||
| `title` | required | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407"></a>
|
||||
<a id="persistence-type-sha256-9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd"></a>
|
||||
|
||||
<a id="persistence-type-packagessessionsession-title-llmsrcindextssessiontitlellmrequesteventdata"></a>
|
||||
|
||||
@@ -4448,7 +4439,7 @@ Sources: [`packages/session/session-title/src/types.ts:41`](../packages/session/
|
||||
|
||||
### `SessionTitleLlmRequestEventData`
|
||||
|
||||
SHA-256: `4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407`
|
||||
SHA-256: `9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd`
|
||||
|
||||
Sources: [`packages/session/session-title-llm/src/index.ts:34`](../packages/session/session-title-llm/src/index.ts)
|
||||
|
||||
@@ -4456,7 +4447,7 @@ Sources: [`packages/session/session-title-llm/src/index.ts:34`](../packages/sess
|
||||
|---|---|---|
|
||||
| `maxTokens` | required | `number` |
|
||||
| `messageSeqs` | required | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
| `messages` | required | [`Message[]`](#persistence-type-sha256-9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f) |
|
||||
| `messages` | required | [`Message[]`](#persistence-type-sha256-fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83) |
|
||||
| `route` | required | [`SessionTitleModelIdentity`](#persistence-type-sha256-07e1a58c58b593f507b8e7f25723bb0aa42baae6e00f5ecfddf28cb1e64d3235) |
|
||||
| `system` | required | `string` |
|
||||
| `titleProvider` | required | `string` |
|
||||
@@ -5110,7 +5101,7 @@ Sources: [`packages/core/session/src/types.ts:232`](../packages/core/session/src
|
||||
| `interrupted` | not declared | none | [`{ kind: "interrupted" }`](#persistence-type-sha256-56b7c047694875a843ba020dfea3c8380d54ae4ff88ab349e72004dc21e07c23) |
|
||||
| `max-tokens` | not declared | none | [`{ kind: "max-tokens" }`](#persistence-type-sha256-ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7) |
|
||||
|
||||
<a id="persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47"></a>
|
||||
<a id="persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586"></a>
|
||||
|
||||
<a id="persistence-type-packagesllmllmsrcmessagetsusermessage"></a>
|
||||
|
||||
@@ -5118,7 +5109,7 @@ Sources: [`packages/core/session/src/types.ts:232`](../packages/core/session/src
|
||||
|
||||
### `UserMessage`
|
||||
|
||||
SHA-256: `2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47`
|
||||
SHA-256: `64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586`
|
||||
|
||||
Sources: [`packages/llm/llm/src/message.ts:162`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -5127,19 +5118,19 @@ Sources: [`packages/llm/llm/src/message.ts:162`](../packages/llm/llm/src/message
|
||||
| `content` | required | [`ContentBlock[]`](#persistence-type-sha256-b52f215a6cd691058a3413c12f161fa3b563a2f4895adb3df6f744ec4b0a6ef1) |
|
||||
| `id` | required | `string` |
|
||||
| `role` | required | `"user"` |
|
||||
| `source` | required | [`MessageSource`](#persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624) |
|
||||
| `source` | required | [`MessageSource`](#persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945) |
|
||||
|
||||
Source compatibility: `source` — `session-source-attribution` v1; `session.user-message.source`; `kind`; `preserve`.
|
||||
|
||||
Attribution-only additions: `team-relay`, `tmux-context`.
|
||||
Attribution-only additions: `tmux-context`.
|
||||
|
||||
<a id="persistence-type-sha256-e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f"></a>
|
||||
<a id="persistence-type-sha256-d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621"></a>
|
||||
|
||||
### `UserMessage[]`
|
||||
|
||||
SHA-256: `e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f`
|
||||
SHA-256: `d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621`
|
||||
|
||||
Array of [`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47).
|
||||
Array of [`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586).
|
||||
|
||||
<a id="persistence-type-sha256-c2deb7c9183735d4e0fffddf5c623f4e34daa1c8e96b111982e957dfcbbcf896"></a>
|
||||
|
||||
@@ -5982,18 +5973,18 @@ Sources: [`packages/core/session/src/types.ts:390`](../packages/core/session/src
|
||||
| `reason` | required | [`RequestHeaderReason`](#persistence-type-sha256-530da6c0267813bb4511af72883cc518834e624e3b3220a7062955fd57a788a6) |
|
||||
| `startsSeries` | optional | `true` |
|
||||
|
||||
<a id="persistence-type-sha256-766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194"></a>
|
||||
<a id="persistence-type-sha256-51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f"></a>
|
||||
|
||||
### `{ headerSeq?, message, step, turn }`
|
||||
|
||||
SHA-256: `766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194`
|
||||
SHA-256: `51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f`
|
||||
|
||||
Sources: [`packages/core/session/src/types.ts:311`](../packages/core/session/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `headerSeq` | optional | `number` |
|
||||
| `message` | required | [`DeveloperMessage`](#persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba) |
|
||||
| `message` | required | [`DeveloperMessage`](#persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b) |
|
||||
| `step` | required | `number` |
|
||||
| `turn` | required | `number` |
|
||||
|
||||
@@ -6077,17 +6068,17 @@ Sources: [`packages/core/session/src/types.ts:427`](../packages/core/session/src
|
||||
|---|---|---|
|
||||
| `inherited` | optional | `true` |
|
||||
|
||||
<a id="persistence-type-sha256-f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283"></a>
|
||||
<a id="persistence-type-sha256-dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130"></a>
|
||||
|
||||
### `{ inserted, outcome?, removedCount?, start, … }`
|
||||
|
||||
SHA-256: `f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283`
|
||||
SHA-256: `dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130`
|
||||
|
||||
Sources: [`packages/core/agent/src/types.ts:96`](../packages/core/agent/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `inserted` | required | [`UserMessage[]`](#persistence-type-sha256-e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f) |
|
||||
| `inserted` | required | [`UserMessage[]`](#persistence-type-sha256-d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621) |
|
||||
| `outcome` | optional | `"canceled"` |
|
||||
| `removedCount` | optional | `number` |
|
||||
| `start` | required | `number` |
|
||||
@@ -6918,21 +6909,6 @@ Sources: [`packages/llm/llm/src/types.ts:157`](../packages/llm/llm/src/types.ts)
|
||||
|---|---|---|
|
||||
| `kind` | required | `"stop"` |
|
||||
|
||||
<a id="persistence-type-sha256-a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe"></a>
|
||||
|
||||
### `{ kind: "team-relay", form: "relay" }`
|
||||
|
||||
SHA-256: `a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe`
|
||||
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:151`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `form` | required | `"relay"` |
|
||||
| `kind` | required | `"team-relay"` |
|
||||
| `senderName` | required | `string` |
|
||||
| `senderSessionId` | required | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-b79641a9d25e756636dc0c706fdf3c4583ccb7d4920e009e6e86c0759cf4de4c"></a>
|
||||
|
||||
### `{ kind: "time-context" }`
|
||||
@@ -7400,7 +7376,7 @@ Sources: [`packages/web/web-search-deepseek/src/provider.ts:61`](../packages/web
|
||||
|
||||
SHA-256: `b1ebd5cda47d90d980bb05bffc3f970c51537b9aff15b3bc3d639811727741b1`
|
||||
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:239`](../packages/experimental/agent-team/src/types.ts)
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:230`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7428,7 +7404,7 @@ Sources: [`packages/core/session/src/types.ts:330`](../packages/core/session/src
|
||||
|
||||
SHA-256: `ea08ec1df0c33108fd03345b9af199cf04dea450aa045d3c683f216311403403`
|
||||
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:243`](../packages/experimental/agent-team/src/types.ts)
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:234`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7442,7 +7418,7 @@ Sources: [`packages/experimental/agent-team/src/types.ts:243`](../packages/exper
|
||||
|
||||
SHA-256: `0bcfaf5566d271028429ac7b562cb59053c9d78b8ae14708c35fac835108d1b1`
|
||||
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:245`](../packages/experimental/agent-team/src/types.ts)
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:236`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7588,7 +7564,7 @@ Sources: [`packages/compaction/compaction-image-offload/src/projection.ts:25`](.
|
||||
|
||||
SHA-256: `a40d12070f6f4a124f32fb3cc86e7857554702e32f0eda3080a25c4b9ac9b18c`
|
||||
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:241`](../packages/experimental/agent-team/src/types.ts)
|
||||
Sources: [`packages/experimental/agent-team/src/types.ts:232`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
@@ -7636,17 +7612,17 @@ SHA-256: `a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b`
|
||||
| `time` | required | `number` |
|
||||
| `type` | required | `"agent-preset/selected"` |
|
||||
|
||||
<a id="persistence-type-sha256-069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4"></a>
|
||||
<a id="persistence-type-sha256-1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c"></a>
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliced"></a>
|
||||
|
||||
### `{ type: "agent/inbox/spliced" }`
|
||||
|
||||
SHA-256: `069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4`
|
||||
SHA-256: `1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `data` | required | [`{ inserted, outcome?, removedCount?, start, … }`](#persistence-type-sha256-f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283) |
|
||||
| `data` | required | [`{ inserted, outcome?, removedCount?, start, … }`](#persistence-type-sha256-dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130) |
|
||||
| `ignorable` | optional | `true` |
|
||||
| `seq` | required | `number` |
|
||||
| `time` | required | `number` |
|
||||
@@ -7887,17 +7863,17 @@ SHA-256: `13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176`
|
||||
| `time` | required | `number` |
|
||||
| `type` | required | `"deliverables/presented"` |
|
||||
|
||||
<a id="persistence-type-sha256-3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e"></a>
|
||||
<a id="persistence-type-sha256-eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80"></a>
|
||||
|
||||
<a id="persistence-type-eventdevelopermessage"></a>
|
||||
|
||||
### `{ type: "developer/message" }`
|
||||
|
||||
SHA-256: `3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e`
|
||||
SHA-256: `eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `data` | required | [`{ headerSeq?, message, step, turn }`](#persistence-type-sha256-766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194) |
|
||||
| `data` | required | [`{ headerSeq?, message, step, turn }`](#persistence-type-sha256-51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f) |
|
||||
| `ignorable` | optional | `true` |
|
||||
| `seq` | required | `number` |
|
||||
| `sourceEventSeqs` | optional | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
@@ -8253,17 +8229,17 @@ SHA-256: `1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5`
|
||||
| `time` | required | `number` |
|
||||
| `type` | required | `"session/title"` |
|
||||
|
||||
<a id="persistence-type-sha256-d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7"></a>
|
||||
<a id="persistence-type-sha256-fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d"></a>
|
||||
|
||||
<a id="persistence-type-eventsessiontitle-llm-request"></a>
|
||||
|
||||
### `{ type: "session/title-llm-request" }`
|
||||
|
||||
SHA-256: `d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7`
|
||||
SHA-256: `fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `data` | required | [`SessionTitleLlmRequestEventData`](#persistence-type-sha256-4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407) |
|
||||
| `data` | required | [`SessionTitleLlmRequestEventData`](#persistence-type-sha256-9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd) |
|
||||
| `ignorable` | optional | `true` |
|
||||
| `seq` | required | `number` |
|
||||
| `time` | required | `number` |
|
||||
@@ -8686,17 +8662,17 @@ Sources: [`packages/llm/llm/src/types.ts:458`](../packages/llm/llm/src/types.ts)
|
||||
| `type` | required | `"usage"` |
|
||||
| `usage` | required | [`TokenUsage`](#persistence-type-sha256-fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394) |
|
||||
|
||||
<a id="persistence-type-sha256-0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58"></a>
|
||||
<a id="persistence-type-sha256-3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761"></a>
|
||||
|
||||
<a id="persistence-type-eventusermessage"></a>
|
||||
|
||||
### `{ type: "user/message" }`
|
||||
|
||||
SHA-256: `0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58`
|
||||
SHA-256: `3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761`
|
||||
|
||||
| Property | Presence | Type |
|
||||
|---|---|---|
|
||||
| `data` | required | [`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47) |
|
||||
| `data` | required | [`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586) |
|
||||
| `ignorable` | optional | `true` |
|
||||
| `seq` | required | `number` |
|
||||
| `sourceEventSeqs` | optional | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
| `JsonlHeaderLine` | header | `18ee62b8900a4c3d046700f05d7a4d49d6cab2a660a020c87481d1603dd8bd4f` | [`HeaderLine`](#persistence-type-sha256-18ee62b8900a4c3d046700f05d7a4d49d6cab2a660a020c87481d1603dd8bd4f) |
|
||||
| `SessionEventEnvelope` | envelope | `5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc` | [`union (3 variants)`](#persistence-type-sha256-5776e5553ff2dfe3f5bc202dbb1e7c9f93e35a531aebb7764c23b2b6153b2ccc) |
|
||||
| `event:agent-preset/selected` | event | `a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b` | [`{ type: "agent-preset/selected" }`](#persistence-type-sha256-a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b) |
|
||||
| `event:agent/inbox/spliced` | event | `069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4` | [`{ type: "agent/inbox/spliced" }`](#persistence-type-sha256-069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4) |
|
||||
| `event:agent/inbox/spliced` | event | `1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c` | [`{ type: "agent/inbox/spliced" }`](#persistence-type-sha256-1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c) |
|
||||
| `event:approval/asked` | event | `3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1` | [`{ type: "approval/asked" }`](#persistence-type-sha256-3bfeb47b58606f4661904bc723da612782214c463d01e6d61cd6d6193d7374e1) |
|
||||
| `event:approval/decided` | event | `bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3` | [`{ type: "approval/decided" }`](#persistence-type-sha256-bb1ab3d08f49a9f3b265f844cd78d5c49813062a7b34b54904b426f85d0ff6e3) |
|
||||
| `event:approval/policy` | event | `26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78` | [`{ type: "approval/policy" }`](#persistence-type-sha256-26718e15e7e395bce9642dba5bbe09b3b1a4ce2213d20d566cd9207d7fc5fb78) |
|
||||
@@ -36,7 +36,7 @@
|
||||
| `event:compaction/start` | event | `db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965` | [`{ type: "compaction/start" }`](#persistence-type-sha256-db874d463b0fdec77e9da1c4568f37cb70bd6596781eb93800db44fb8a116965) |
|
||||
| `event:compaction/summary` | event | `e2f9a41e0989f54ed8cee80f8db2bcf9d60a5c810dc9d45b83fa050b9dce7602` | [`{ type: "compaction/summary" }`](#persistence-type-sha256-e2f9a41e0989f54ed8cee80f8db2bcf9d60a5c810dc9d45b83fa050b9dce7602) |
|
||||
| `event:deliverables/presented` | event | `13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176` | [`{ type: "deliverables/presented" }`](#persistence-type-sha256-13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176) |
|
||||
| `event:developer/message` | event | `3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e` | [`{ type: "developer/message" }`](#persistence-type-sha256-3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e) |
|
||||
| `event:developer/message` | event | `eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80` | [`{ type: "developer/message" }`](#persistence-type-sha256-eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80) |
|
||||
| `event:feedback/message-delete` | event | `3ee93b06f3a125850337602bcdf155d2538c43a5c944ec55b1b3c365152d6796` | [`{ type: "feedback/message-delete" }`](#persistence-type-sha256-3ee93b06f3a125850337602bcdf155d2538c43a5c944ec55b1b3c365152d6796) |
|
||||
| `event:feedback/message-put` | event | `b5086d249e8502e9ead1d39156bb8d559bde7951cac0f14ce150345b4e42a2bf` | [`{ type: "feedback/message-put" }`](#persistence-type-sha256-b5086d249e8502e9ead1d39156bb8d559bde7951cac0f14ce150345b4e42a2bf) |
|
||||
| `event:feedback/record` | event | `b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8` | [`{ type: "feedback/record" }`](#persistence-type-sha256-b54940ff095c17e874c5be03815f4c2145a256cf3a1d34dae4ab2f7769dfffe8) |
|
||||
@@ -56,7 +56,7 @@
|
||||
| `event:session-log-deepseek/delivery-accepted` | event | `d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9` | [`{ type: "session-log-deepseek/delivery-accepted" }`](#persistence-type-sha256-d63b8b8ffad9c02fd80c43a17df4f240c1fe8118ecca9de34f9d5871838ab5b9) |
|
||||
| `event:session/end-seed` | event | `5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e` | [`{ type: "session/end-seed" }`](#persistence-type-sha256-5e6db6e24948d4a853c71cb9fabd252ad051ce93d4672c1266cf837c1c17b84e) |
|
||||
| `event:session/title` | event | `1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5` | [`{ type: "session/title" }`](#persistence-type-sha256-1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5) |
|
||||
| `event:session/title-llm-request` | event | `d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7` | [`{ type: "session/title-llm-request" }`](#persistence-type-sha256-d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7) |
|
||||
| `event:session/title-llm-request` | event | `fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d` | [`{ type: "session/title-llm-request" }`](#persistence-type-sha256-fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d) |
|
||||
| `event:step/end` | event | `e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05` | [`{ type: "step/end" }`](#persistence-type-sha256-e0a787e6ec76c7c94fecbc501b489164ab0293db05bc947914077ad01e674f05) |
|
||||
| `event:step/start` | event | `4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986` | [`{ type: "step/start" }`](#persistence-type-sha256-4513e088d43e6c68425be30451b9f961cc264fe7318ca62681c41d4d78615986) |
|
||||
| `event:subagent/catalog` | event | `3abae7324356f155cb42450c00b806d134ec93bd6439d2063b8d724162d58604` | [`{ type: "subagent/catalog" }`](#persistence-type-sha256-3abae7324356f155cb42450c00b806d134ec93bd6439d2063b8d724162d58604) |
|
||||
@@ -78,7 +78,7 @@
|
||||
| `event:tool/result` | event | `7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397` | [`{ type: "tool/result" }`](#persistence-type-sha256-7c9f44e90a0058f4cc532ae20dad0c10afa6eba22e70a6c79fc79490bad64397) |
|
||||
| `event:turn/end` | event | `0f8512903d94f57a4748fa1a2092e64342856796684e6b8343db685b192745ce` | [`{ type: "turn/end" }`](#persistence-type-sha256-0f8512903d94f57a4748fa1a2092e64342856796684e6b8343db685b192745ce) |
|
||||
| `event:turn/start` | event | `aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8` | [`{ type: "turn/start" }`](#persistence-type-sha256-aa0957eca50aeb28bcd2e6930b95809926edacb550c8c340ba526ba6b861b3d8) |
|
||||
| `event:user/message` | event | `0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58` | [`{ type: "user/message" }`](#persistence-type-sha256-0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58) |
|
||||
| `event:user/message` | event | `3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761` | [`{ type: "user/message" }`](#persistence-type-sha256-3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761) |
|
||||
| `event:web/deepseek-search-llm-request` | event | `cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331` | [`{ type: "web/deepseek-search-llm-request" }`](#persistence-type-sha256-cf6e3aaf1e2de6480aa0157730a41b9a492108a55304100b0f7e112711dd4331) |
|
||||
| `event:workspace/changes` | event | `e308ccf867a5398e316e0af8cb6ce238a8d33a63b9b384c8250a686786285f72` | [`{ type: "workspace/changes" }`](#persistence-type-sha256-e308ccf867a5398e316e0af8cb6ce238a8d33a63b9b384c8250a686786285f72) |
|
||||
|
||||
@@ -977,7 +977,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
||||
|
||||
类型:[TeamId](subsystems/agent-team.zh.md) · [TeamMemberSnapshot](subsystems/agent-team.zh.md)
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:239`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:230`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teammessagedelivered--log-only"></a>
|
||||
|
||||
@@ -995,7 +995,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
||||
|
||||
类型:[TeamId](subsystems/agent-team.zh.md) · [TeamMessageId](subsystems/agent-team.zh.md)
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:245`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:236`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teammessagequeued--log-only"></a>
|
||||
|
||||
@@ -1008,7 +1008,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
||||
|
||||
类型:[TeamId](subsystems/agent-team.zh.md) · [TeamMessageSnapshot](subsystems/agent-team.zh.md)
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:243`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:234`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
<a id="teamtask--log-only"></a>
|
||||
|
||||
@@ -1021,7 +1021,7 @@ export type SessionEvent<T extends SessionEventType = SessionEventType> = {
|
||||
|
||||
类型:[TeamId](subsystems/agent-team.zh.md) · [TeamTaskSnapshot](subsystems/agent-team.zh.md)
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:241`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:232`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
### `todo/*`
|
||||
|
||||
@@ -2541,14 +2541,6 @@ SHA-256: `2e4debca12f2c449f96dc6574f3fbf2fb346193443114a241d01a236362ec48c`
|
||||
|
||||
`"team-message"`
|
||||
|
||||
<a id="persistence-type-sha256-c91852e53038618e7869f3e436acdb3f319c4f31b516c71a4b816e7387e3df2f"></a>
|
||||
|
||||
### `"team-relay"`
|
||||
|
||||
SHA-256: `c91852e53038618e7869f3e436acdb3f319c4f31b516c71a4b816e7387e3df2f`
|
||||
|
||||
`"team-relay"`
|
||||
|
||||
<a id="persistence-type-sha256-18fcdd273a2f2f9d813a3be5e71df5903a963a5c88e46b90b14de6e2db890da0"></a>
|
||||
|
||||
### `"team/member"`
|
||||
@@ -3217,7 +3209,7 @@ SHA-256: `2517ba143a271508d3ca35126d5aca8f7f1facf5aaddce4adf011832042fa2b9`
|
||||
| `body` | 必需 | [`{ max_tokens, messages, model, tools }`](#persistence-type-sha256-930a6567a10bb62ddd157bd8abdf4b182810c8c3b49d91309b3b009a5fed9731) |
|
||||
| `endpoint` | 必需 | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba"></a>
|
||||
<a id="persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b"></a>
|
||||
|
||||
<a id="persistence-type-developermessage"></a>
|
||||
|
||||
@@ -3225,7 +3217,7 @@ SHA-256: `2517ba143a271508d3ca35126d5aca8f7f1facf5aaddce4adf011832042fa2b9`
|
||||
|
||||
### `DeveloperMessage`
|
||||
|
||||
SHA-256: `46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba`
|
||||
SHA-256: `f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b`
|
||||
|
||||
来源:[`packages/llm/llm/src/message.ts:157`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -3234,11 +3226,11 @@ SHA-256: `46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba`
|
||||
| `content` | 必需 | [`ContentBlock[]`](#persistence-type-sha256-b52f215a6cd691058a3413c12f161fa3b563a2f4895adb3df6f744ec4b0a6ef1) |
|
||||
| `id` | 必需 | `string` |
|
||||
| `role` | 必需 | `"developer"` |
|
||||
| `source` | 必需 | [`MessageSource`](#persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624) |
|
||||
| `source` | 必需 | [`MessageSource`](#persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945) |
|
||||
|
||||
消息源兼容策略:`source` — `session-source-attribution` v1; `session.developer-message.source`; `kind`; `preserve`.
|
||||
|
||||
仅表示归属的新增 kind:`team-relay`, `tmux-context`.
|
||||
仅表示归属的新增 kind:`tmux-context`.
|
||||
|
||||
<a id="persistence-type-sha256-9a930283b91d493d6347146f2475bb107294b379415ca02162354f46a64164f7"></a>
|
||||
|
||||
@@ -3851,7 +3843,7 @@ SHA-256: `6f72ece8f317cd080c4f20a93f1bf709965f5b81ac4669528f5a023191cfcf20`
|
||||
| `step` | 必需 | `number` |
|
||||
| `turn` | 必需 | `number` |
|
||||
|
||||
<a id="persistence-type-sha256-139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2"></a>
|
||||
<a id="persistence-type-sha256-691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6"></a>
|
||||
|
||||
<a id="persistence-type-message"></a>
|
||||
|
||||
@@ -3859,15 +3851,15 @@ SHA-256: `6f72ece8f317cd080c4f20a93f1bf709965f5b81ac4669528f5a023191cfcf20`
|
||||
|
||||
### `Message`
|
||||
|
||||
SHA-256: `139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2`
|
||||
SHA-256: `691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6`
|
||||
|
||||
来源:[`packages/llm/llm/src/message.ts:196`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
- [`ToolResultMessage`](#persistence-type-sha256-4b259f7f8f0a44ad5e90b70a73553ced1df27012d126921d397ff403b6c86731)
|
||||
- [`DeveloperMessage`](#persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba)
|
||||
- [`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47)
|
||||
- [`DeveloperMessage`](#persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b)
|
||||
- [`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586)
|
||||
- [`AssistantMessage`](#persistence-type-sha256-fa87537f4a9c1e25602990a8bf686b383e9e00352ec8946e16ae24ba7c1625be)
|
||||
- [`SystemMessage`](#persistence-type-sha256-09f3f8dc417f278257202714132f98ba7b52957d7b558c4a04456603890eb363)
|
||||
|
||||
@@ -3944,7 +3936,7 @@ SHA-256: `390eed1028aba02774f14408647acec10ec5516e97d4f15ecde2b9989d5a69f2`
|
||||
- `"negative"`
|
||||
- `"positive"`
|
||||
|
||||
<a id="persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624"></a>
|
||||
<a id="persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945"></a>
|
||||
|
||||
<a id="persistence-type-messagesource"></a>
|
||||
|
||||
@@ -3952,7 +3944,7 @@ SHA-256: `390eed1028aba02774f14408647acec10ec5516e97d4f15ecde2b9989d5a69f2`
|
||||
|
||||
### `MessageSource`
|
||||
|
||||
SHA-256: `bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624`
|
||||
SHA-256: `40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945`
|
||||
|
||||
来源:[`packages/llm/llm/src/message.ts:136`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -4027,7 +4019,6 @@ SHA-256: `bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624`
|
||||
| `subagent-settled` | `"notice"` | `senderSessionId`: `string`; `summary`: `string` | [`SubagentSettledMessageSource`](#persistence-type-sha256-4e97c3d85c0fc817ee58873c38c25a2474abaaa0af4839311b50b68db3b8cf1a) |
|
||||
| `system-prompt` | 未声明 | 无 | [`SystemPromptMessageSource`](#persistence-type-sha256-65a8400e451e667e5b6e34df72ceb81fca8c12330330fa72083ad40279b189ad) |
|
||||
| `team-message` | 未声明 | `messageId`: `string`; `senderId`: `string`; `senderName`: `string`; `teamId`: `string` | [`TeamMessageSource`](#persistence-type-sha256-2152caf1a71e588e4df2358a806dea24936c1c47131134f01a12939d12cdc0c0) |
|
||||
| `team-relay` | `"relay"` | `senderName`: `string`; `senderSessionId`: `string` | [`{ kind: "team-relay", form: "relay" }`](#persistence-type-sha256-a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe) |
|
||||
| `time-context` | `"catalog"` | 无 | [`{ kind: "time-context", form: "catalog" }`](#persistence-type-sha256-85fe96bf15d5c7559eec3bae4d6cf1a76fda9f5be05a29c2830cff560cab0c0d) |
|
||||
| `time-context` | `"instructions"` | 无 | [`{ kind: "time-context", form: "instructions" }`](#persistence-type-sha256-f6afe41e3926f422fe849debe90819fddd739f0f59e20be9c71018b9554a7f09) |
|
||||
| `time-context` | `"notice"` | `summary`: `string` | [`{ kind: "time-context", form: "notice" }`](#persistence-type-sha256-ee577a0cc18664c9daee50e9455153321155604f8f1817362f8f4a4b6fb9e1ad) |
|
||||
@@ -4069,13 +4060,13 @@ SHA-256: `bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624`
|
||||
| `user-approval` | 未声明 | 无 | [`{ kind: "user-approval" }`](#persistence-type-sha256-6292bcbedaa97feaec5b48a03bb8144b581b93309d9d6c905f26da7a6a7a0a4f) |
|
||||
| `webhook` | `"notice"` | `deliveryId`: `string`; `provider`: `string`; `ruleId`: `string`; `source`: `string`; `summary`: `string` | [`{ kind: "webhook", form: "notice" }`](#persistence-type-sha256-9edc162949abf93bd5ff049191b345454ba104f583937ce5580fb50f067d2b94) |
|
||||
|
||||
<a id="persistence-type-sha256-9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f"></a>
|
||||
<a id="persistence-type-sha256-fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83"></a>
|
||||
|
||||
### `Message[]`
|
||||
|
||||
SHA-256: `9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f`
|
||||
SHA-256: `fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83`
|
||||
|
||||
[`Message`](#persistence-type-sha256-139bcc0c4019840db40b45e3e23dbcf44d93821ff5ebc064b8934a0a51d8b1b2) 的数组。
|
||||
[`Message`](#persistence-type-sha256-691c0f641cd3e8072fdacd6fa8c400253cf75a0ce9285d8ce89141bbb24f2fb6) 的数组。
|
||||
|
||||
<a id="persistence-type-sha256-719c51f67074f97034a6c94297fe1f4b5d3c8d392c57586dab732aa5398c7a91"></a>
|
||||
|
||||
@@ -4442,7 +4433,7 @@ SHA-256: `b56f6a885da3dc394c69a3e3cc5c0cfc4da15601b63fda4989eee8f40efc5be4`
|
||||
| `source` | 必需 | [`SessionTitleSource`](#persistence-type-sha256-30d5a537b296685770b1241c4b4bbde19d5a31ff81aa23df73fab5e90b8fc65f) |
|
||||
| `title` | 必需 | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407"></a>
|
||||
<a id="persistence-type-sha256-9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd"></a>
|
||||
|
||||
<a id="persistence-type-packagessessionsession-title-llmsrcindextssessiontitlellmrequesteventdata"></a>
|
||||
|
||||
@@ -4450,7 +4441,7 @@ SHA-256: `b56f6a885da3dc394c69a3e3cc5c0cfc4da15601b63fda4989eee8f40efc5be4`
|
||||
|
||||
### `SessionTitleLlmRequestEventData`
|
||||
|
||||
SHA-256: `4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407`
|
||||
SHA-256: `9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd`
|
||||
|
||||
来源:[`packages/session/session-title-llm/src/index.ts:34`](../packages/session/session-title-llm/src/index.ts)
|
||||
|
||||
@@ -4458,7 +4449,7 @@ SHA-256: `4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407`
|
||||
|---|---|---|
|
||||
| `maxTokens` | 必需 | `number` |
|
||||
| `messageSeqs` | 必需 | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
| `messages` | 必需 | [`Message[]`](#persistence-type-sha256-9bc19580d3abd950c7e00aa4d1885c4de20c1a56e8a65df721ae88a11437211f) |
|
||||
| `messages` | 必需 | [`Message[]`](#persistence-type-sha256-fc8242857caf7450d7f68a1f509dce83e237bd21571666006895124cb2246a83) |
|
||||
| `route` | 必需 | [`SessionTitleModelIdentity`](#persistence-type-sha256-07e1a58c58b593f507b8e7f25723bb0aa42baae6e00f5ecfddf28cb1e64d3235) |
|
||||
| `system` | 必需 | `string` |
|
||||
| `titleProvider` | 必需 | `string` |
|
||||
@@ -5112,7 +5103,7 @@ SHA-256: `f1687f982fa3d41ef29e159feed154ecd13af4dd209acaee16038f223f2e9402`
|
||||
| `interrupted` | 未声明 | 无 | [`{ kind: "interrupted" }`](#persistence-type-sha256-56b7c047694875a843ba020dfea3c8380d54ae4ff88ab349e72004dc21e07c23) |
|
||||
| `max-tokens` | 未声明 | 无 | [`{ kind: "max-tokens" }`](#persistence-type-sha256-ab7ec5f9eb2c6dfacca5da4c37cf7ba85d04172053ee6b1ebf1709ffcd99c1a7) |
|
||||
|
||||
<a id="persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47"></a>
|
||||
<a id="persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586"></a>
|
||||
|
||||
<a id="persistence-type-packagesllmllmsrcmessagetsusermessage"></a>
|
||||
|
||||
@@ -5120,7 +5111,7 @@ SHA-256: `f1687f982fa3d41ef29e159feed154ecd13af4dd209acaee16038f223f2e9402`
|
||||
|
||||
### `UserMessage`
|
||||
|
||||
SHA-256: `2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47`
|
||||
SHA-256: `64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586`
|
||||
|
||||
来源:[`packages/llm/llm/src/message.ts:162`](../packages/llm/llm/src/message.ts)
|
||||
|
||||
@@ -5129,19 +5120,19 @@ SHA-256: `2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47`
|
||||
| `content` | 必需 | [`ContentBlock[]`](#persistence-type-sha256-b52f215a6cd691058a3413c12f161fa3b563a2f4895adb3df6f744ec4b0a6ef1) |
|
||||
| `id` | 必需 | `string` |
|
||||
| `role` | 必需 | `"user"` |
|
||||
| `source` | 必需 | [`MessageSource`](#persistence-type-sha256-bc01b8b489de8b58fd355dae5ff5d74f8a9a852a0f3c8e569781cf75d8dc4624) |
|
||||
| `source` | 必需 | [`MessageSource`](#persistence-type-sha256-40e314bd88730b4bff04a2083cc540ef8659ee2240eeaae0132cac974784b945) |
|
||||
|
||||
消息源兼容策略:`source` — `session-source-attribution` v1; `session.user-message.source`; `kind`; `preserve`.
|
||||
|
||||
仅表示归属的新增 kind:`team-relay`, `tmux-context`.
|
||||
仅表示归属的新增 kind:`tmux-context`.
|
||||
|
||||
<a id="persistence-type-sha256-e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f"></a>
|
||||
<a id="persistence-type-sha256-d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621"></a>
|
||||
|
||||
### `UserMessage[]`
|
||||
|
||||
SHA-256: `e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f`
|
||||
SHA-256: `d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621`
|
||||
|
||||
[`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47) 的数组。
|
||||
[`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586) 的数组。
|
||||
|
||||
<a id="persistence-type-sha256-c2deb7c9183735d4e0fffddf5c623f4e34daa1c8e96b111982e957dfcbbcf896"></a>
|
||||
|
||||
@@ -5984,18 +5975,18 @@ SHA-256: `ad0c38a0adb82a94c925456df41586d9b5f9202fca18593eae2213d4445b4585`
|
||||
| `reason` | 必需 | [`RequestHeaderReason`](#persistence-type-sha256-530da6c0267813bb4511af72883cc518834e624e3b3220a7062955fd57a788a6) |
|
||||
| `startsSeries` | 可选 | `true` |
|
||||
|
||||
<a id="persistence-type-sha256-766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194"></a>
|
||||
<a id="persistence-type-sha256-51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f"></a>
|
||||
|
||||
### `{ headerSeq?, message, step, turn }`
|
||||
|
||||
SHA-256: `766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194`
|
||||
SHA-256: `51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f`
|
||||
|
||||
来源:[`packages/core/session/src/types.ts:311`](../packages/core/session/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `headerSeq` | 可选 | `number` |
|
||||
| `message` | 必需 | [`DeveloperMessage`](#persistence-type-sha256-46a72c9e650cc0179669cc826b3fa02a98be6152cd2fc626b0ba6eccd6440fba) |
|
||||
| `message` | 必需 | [`DeveloperMessage`](#persistence-type-sha256-f61313bd96ed95b72eb16a4a5a77ad94a0da1756d428d3d660ff6e23c9e6342b) |
|
||||
| `step` | 必需 | `number` |
|
||||
| `turn` | 必需 | `number` |
|
||||
|
||||
@@ -6079,17 +6070,17 @@ SHA-256: `17d1afb770d9941936130996da00dc86782cfef731d8d6526162c301256a4ac3`
|
||||
|---|---|---|
|
||||
| `inherited` | 可选 | `true` |
|
||||
|
||||
<a id="persistence-type-sha256-f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283"></a>
|
||||
<a id="persistence-type-sha256-dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130"></a>
|
||||
|
||||
### `{ inserted, outcome?, removedCount?, start, … }`
|
||||
|
||||
SHA-256: `f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283`
|
||||
SHA-256: `dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130`
|
||||
|
||||
来源:[`packages/core/agent/src/types.ts:96`](../packages/core/agent/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `inserted` | 必需 | [`UserMessage[]`](#persistence-type-sha256-e2f0d22d8ab1e6f72ab1c373cc6298cb264a48c7a669e6b9e3fb583dbc15274f) |
|
||||
| `inserted` | 必需 | [`UserMessage[]`](#persistence-type-sha256-d1f27cf1650e5f59d5d6e95ce6dfd92b31757af076a8ab6418a70b6dbdd53621) |
|
||||
| `outcome` | 可选 | `"canceled"` |
|
||||
| `removedCount` | 可选 | `number` |
|
||||
| `start` | 必需 | `number` |
|
||||
@@ -6920,21 +6911,6 @@ SHA-256: `1d76406cbb2ddadb0dbbb51e9d8bc6cf678fed455cf8eb512f36f7c86d37a62f`
|
||||
|---|---|---|
|
||||
| `kind` | 必需 | `"stop"` |
|
||||
|
||||
<a id="persistence-type-sha256-a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe"></a>
|
||||
|
||||
### `{ kind: "team-relay", form: "relay" }`
|
||||
|
||||
SHA-256: `a005283d8ee3046e3f7dadfc1364813834802abae0551fc9bf72c352381f7bfe`
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:151`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `form` | 必需 | `"relay"` |
|
||||
| `kind` | 必需 | `"team-relay"` |
|
||||
| `senderName` | 必需 | `string` |
|
||||
| `senderSessionId` | 必需 | `string` |
|
||||
|
||||
<a id="persistence-type-sha256-b79641a9d25e756636dc0c706fdf3c4583ccb7d4920e009e6e86c0759cf4de4c"></a>
|
||||
|
||||
### `{ kind: "time-context" }`
|
||||
@@ -7402,7 +7378,7 @@ SHA-256: `930a6567a10bb62ddd157bd8abdf4b182810c8c3b49d91309b3b009a5fed9731`
|
||||
|
||||
SHA-256: `b1ebd5cda47d90d980bb05bffc3f970c51537b9aff15b3bc3d639811727741b1`
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:239`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:230`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7430,7 +7406,7 @@ SHA-256: `6bc8e51124d0874bc89e1d0ceff381a9c3cd0fc240667d69f841ce4f60f65fe5`
|
||||
|
||||
SHA-256: `ea08ec1df0c33108fd03345b9af199cf04dea450aa045d3c683f216311403403`
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:243`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:234`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7444,7 +7420,7 @@ SHA-256: `ea08ec1df0c33108fd03345b9af199cf04dea450aa045d3c683f216311403403`
|
||||
|
||||
SHA-256: `0bcfaf5566d271028429ac7b562cb59053c9d78b8ae14708c35fac835108d1b1`
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:245`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:236`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7590,7 +7566,7 @@ SHA-256: `477614bca595a9e7adb5a1870be446b9a8684f3ba8950259d6289f2d3b74f028`
|
||||
|
||||
SHA-256: `a40d12070f6f4a124f32fb3cc86e7857554702e32f0eda3080a25c4b9ac9b18c`
|
||||
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:241`](../packages/experimental/agent-team/src/types.ts)
|
||||
来源:[`packages/experimental/agent-team/src/types.ts:232`](../packages/experimental/agent-team/src/types.ts)
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
@@ -7638,17 +7614,17 @@ SHA-256: `a10c17474eaf2ddab7095a099e0fe3d046fc18e56c3e344fc8894c05ff9ef97b`
|
||||
| `time` | 必需 | `number` |
|
||||
| `type` | 必需 | `"agent-preset/selected"` |
|
||||
|
||||
<a id="persistence-type-sha256-069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4"></a>
|
||||
<a id="persistence-type-sha256-1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c"></a>
|
||||
|
||||
<a id="persistence-type-eventagentinboxspliced"></a>
|
||||
|
||||
### `{ type: "agent/inbox/spliced" }`
|
||||
|
||||
SHA-256: `069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4`
|
||||
SHA-256: `1506a9b8224986c83015ae99d2cb5ede705538c58c063d6a48ef6d761a31ba6c`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `data` | 必需 | [`{ inserted, outcome?, removedCount?, start, … }`](#persistence-type-sha256-f38b6f0dd53606c1b2ba04a4bb91224c55d2000c0e8c969476d197e28a920283) |
|
||||
| `data` | 必需 | [`{ inserted, outcome?, removedCount?, start, … }`](#persistence-type-sha256-dc4bd7ac827f4b1f9236f9a157a4b4cc171a0588064a611e43edd95f62c68130) |
|
||||
| `ignorable` | 可选 | `true` |
|
||||
| `seq` | 必需 | `number` |
|
||||
| `time` | 必需 | `number` |
|
||||
@@ -7889,17 +7865,17 @@ SHA-256: `13d3d180f977bf78081d487ffa0ecb75857349bcab29a5a3fb48189fca2a6176`
|
||||
| `time` | 必需 | `number` |
|
||||
| `type` | 必需 | `"deliverables/presented"` |
|
||||
|
||||
<a id="persistence-type-sha256-3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e"></a>
|
||||
<a id="persistence-type-sha256-eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80"></a>
|
||||
|
||||
<a id="persistence-type-eventdevelopermessage"></a>
|
||||
|
||||
### `{ type: "developer/message" }`
|
||||
|
||||
SHA-256: `3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e`
|
||||
SHA-256: `eef4ef54dc7a133d47448a4ee822e45a351314923ef5f66db34c8b24e4b32d80`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `data` | 必需 | [`{ headerSeq?, message, step, turn }`](#persistence-type-sha256-766237c2b1b772edd4cad02080938565b64dbf317899e3268e32ff67aded0194) |
|
||||
| `data` | 必需 | [`{ headerSeq?, message, step, turn }`](#persistence-type-sha256-51c78ccc9023ce6642d07fb9a10cbf942ff7e313d5b304ddc77218df71da708f) |
|
||||
| `ignorable` | 可选 | `true` |
|
||||
| `seq` | 必需 | `number` |
|
||||
| `sourceEventSeqs` | 可选 | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
@@ -8255,17 +8231,17 @@ SHA-256: `1b912703e2d64f91c99c675b8f805b01076c8325b905c1218ad81ef0b24909d5`
|
||||
| `time` | 必需 | `number` |
|
||||
| `type` | 必需 | `"session/title"` |
|
||||
|
||||
<a id="persistence-type-sha256-d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7"></a>
|
||||
<a id="persistence-type-sha256-fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d"></a>
|
||||
|
||||
<a id="persistence-type-eventsessiontitle-llm-request"></a>
|
||||
|
||||
### `{ type: "session/title-llm-request" }`
|
||||
|
||||
SHA-256: `d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7`
|
||||
SHA-256: `fa8f7d3ebf08a76c7f7a8b0781873c4d819b964da5dbb52cd3cdfa5da34f452d`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `data` | 必需 | [`SessionTitleLlmRequestEventData`](#persistence-type-sha256-4acc335429a47b513bcd92c688cc856459b90a344d27fbaccb2a524560113407) |
|
||||
| `data` | 必需 | [`SessionTitleLlmRequestEventData`](#persistence-type-sha256-9bc85364d1f37d9c837db6a3bdd3d1d007d923cdc7401a3322be9f12fdc225fd) |
|
||||
| `ignorable` | 可选 | `true` |
|
||||
| `seq` | 必需 | `number` |
|
||||
| `time` | 必需 | `number` |
|
||||
@@ -8688,17 +8664,17 @@ SHA-256: `f1a96afe7503ac1817de769cd0ba13d9b80111c7034c50106b3344ecc14cc515`
|
||||
| `type` | 必需 | `"usage"` |
|
||||
| `usage` | 必需 | [`TokenUsage`](#persistence-type-sha256-fec5442b9ee4122e10514d81d5a43648003fe8bfb7ee2ba50c0cdbdd383ed394) |
|
||||
|
||||
<a id="persistence-type-sha256-0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58"></a>
|
||||
<a id="persistence-type-sha256-3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761"></a>
|
||||
|
||||
<a id="persistence-type-eventusermessage"></a>
|
||||
|
||||
### `{ type: "user/message" }`
|
||||
|
||||
SHA-256: `0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58`
|
||||
SHA-256: `3f72db3d87a0c5c43e68be467b4cca728eaf5adc1d5d2b6975ff42bfbd961761`
|
||||
|
||||
| 属性 | 存在性 | 类型 |
|
||||
|---|---|---|
|
||||
| `data` | 必需 | [`UserMessage`](#persistence-type-sha256-2424473dd6f2b538034fbb91c9e07af863fdf550c0d2fe4c75119e6e0872ce47) |
|
||||
| `data` | 必需 | [`UserMessage`](#persistence-type-sha256-64ea5653002834c44f29bea4620e9c42aeb6024ae5b1d58d69f95158006b2586) |
|
||||
| `ignorable` | 可选 | `true` |
|
||||
| `seq` | 必需 | `number` |
|
||||
| `sourceEventSeqs` | 可选 | [`number[]`](#persistence-type-sha256-5d03ba38734809bcbd2a55221bd938b3b3fc34b49bb686c6113e9e4931e3aa78) |
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# Bilingual-pair consistency record for 2026-09-27-team-relay-source.md (docs/i18n/README.md): per heading
|
||||
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
|
||||
# After editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/persistence-changes/2026-09-27-team-relay-source.md
|
||||
/:
|
||||
en: 3d5a424ae7d7e46b
|
||||
zh: c22a8e4a62d8cc1a
|
||||
/2026-09-27-team-relay-source:
|
||||
en: e0c1ab3f13e8273e
|
||||
zh: bb1e786065a69390
|
||||
/2026-09-27-team-relay-source/summary:
|
||||
en: a6b6694a082889f1
|
||||
zh: 2ffcc7e2ca682aae
|
||||
/2026-09-27-team-relay-source/table-of-contents:
|
||||
en: 6cf314a069ceb451
|
||||
zh: 9adff678e9ecab3b
|
||||
/2026-09-27-team-relay-source/declaration:
|
||||
en: 6907136f28e48c90
|
||||
zh: 02f8298485f3d8e7
|
||||
/2026-09-27-team-relay-source/compatibility:
|
||||
en: 495a00731d6363b7
|
||||
zh: 03a17f27249df4ec
|
||||
/2026-09-27-team-relay-source/verification:
|
||||
en: 4f1b64efd9a6455a
|
||||
zh: 3bafc76582930927
|
||||
/2026-09-27-team-relay-source/dev-note:
|
||||
en: b75c8458928b72b9
|
||||
zh: 003ba4e17b4b5269
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
description: "Records a persistence type transition and its compatibility acknowledgement."
|
||||
kind: persistence-change
|
||||
---
|
||||
|
||||
# 2026-09-27-team-relay-source
|
||||
|
||||
English | [中文](2026-09-27-team-relay-source.zh.md)
|
||||
|
||||
## Summary
|
||||
|
||||
Adds the Team-owned team-relay attribution source to persisted user and developer message slots without changing the Session format version.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Declaration](#declaration)
|
||||
- [Compatibility](#compatibility)
|
||||
- [Verification](#verification)
|
||||
- [Dev Note](#dev-note)
|
||||
|
||||
<a id="declaration"></a>
|
||||
## Declaration
|
||||
|
||||
```yaml persistence-change
|
||||
schemaVersion: 1
|
||||
id: 2026-09-27-team-relay-source
|
||||
baseline: false
|
||||
changes:
|
||||
- root: "event:agent/inbox/spliced"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4"
|
||||
decision: same-version
|
||||
- root: "event:developer/message"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e"
|
||||
decision: same-version
|
||||
- root: "event:session/title-llm-request"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7"
|
||||
decision: same-version
|
||||
- root: "event:user/message"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58"
|
||||
decision: same-version
|
||||
```
|
||||
|
||||
<a id="compatibility"></a>
|
||||
## Compatibility
|
||||
|
||||
Existing agent-message and historical team-message records remain unchanged. The new kind records senderSessionId, senderName, and relay form only; it imposes no replay, validation, or authority requirement. Current V4 readers preserve unknown attribution and its JSON metadata without the Team producer. Older clients can display the recorded content with generic source presentation.
|
||||
|
||||
<a id="verification"></a>
|
||||
## Verification
|
||||
|
||||
pnpm exec vitest run packages/experimental/agent-team packages/experimental/tool-agent-team packages/client/ui-chat/tests/turn-trigger.client.spec.tsx: 129 tests passed. pnpm exec vitest run packages/experimental/agent-team/tests/persistence.spec.ts packages/session/session-format-v3-to-v4/tests/attribution.spec.ts packages/session/session-format-v3-to-v4/tests/message-sources.spec.ts: 16 tests passed, including target inbox recovery with Team disposed. pnpm run test:snapshot -t 'team-direct-inbox|team-targets': 2 scenarios passed.
|
||||
|
||||
<a id="dev-note"></a>
|
||||
## Dev Note
|
||||
|
||||
None.
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,60 +0,0 @@
|
||||
---
|
||||
description: "记录持久化类型更改及其兼容性确认。"
|
||||
kind: persistence-change
|
||||
---
|
||||
|
||||
# 2026-09-27-team-relay-source
|
||||
|
||||
[English](2026-09-27-team-relay-source.md) | 中文
|
||||
|
||||
## 概述
|
||||
|
||||
为持久化的 user 和 developer 消息位置添加 Team 所属的 team-relay 归属来源,不改变 Session 格式版本。
|
||||
|
||||
## 目录
|
||||
|
||||
- [声明](#declaration)
|
||||
- [兼容性](#compatibility)
|
||||
- [验证](#verification)
|
||||
- [开发备注](#dev-note)
|
||||
|
||||
<a id="declaration"></a>
|
||||
## 声明
|
||||
|
||||
```yaml persistence-change
|
||||
schemaVersion: 1
|
||||
id: 2026-09-27-team-relay-source
|
||||
baseline: false
|
||||
changes:
|
||||
- root: "event:agent/inbox/spliced"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "069fe0ac1098edd8c2582179e19aa1168db48efcbc41052d0b8a8d4a29d09dd4"
|
||||
decision: same-version
|
||||
- root: "event:developer/message"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "3891652446c8d1e35ba97bf0205f5f8d60a08b9e4bc3213665a4921ae9c6484e"
|
||||
decision: same-version
|
||||
- root: "event:session/title-llm-request"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "d36d44ef7e257e6fb64aa4fcda3b106b5e3d4afdca5227e5b6a8b721f1f2bbb7"
|
||||
decision: same-version
|
||||
- root: "event:user/message"
|
||||
previous: "2026-09-16-session-format-v4"
|
||||
after: "0ba8d5b72bf31a4148e9d1fabf661869806ec32fe0d86d92c49cdef691b22d58"
|
||||
decision: same-version
|
||||
```
|
||||
|
||||
<a id="compatibility"></a>
|
||||
## 兼容性
|
||||
|
||||
已有 agent-message 和历史 team-message 记录保持不变。新 kind 仅记录 senderSessionId、senderName 和 relay form,不增加回放、校验或权限要求。当前 V4 读取方在没有 Team 生产者时仍保留未知归属类型及其 JSON 元数据。旧客户端可以使用通用来源展示已记录的正文。
|
||||
|
||||
<a id="verification"></a>
|
||||
## 验证
|
||||
|
||||
pnpm exec vitest run packages/experimental/agent-team packages/experimental/tool-agent-team packages/client/ui-chat/tests/turn-trigger.client.spec.tsx:129 个测试通过。pnpm exec vitest run packages/experimental/agent-team/tests/persistence.spec.ts packages/session/session-format-v3-to-v4/tests/attribution.spec.ts packages/session/session-format-v3-to-v4/tests/message-sources.spec.ts:16 个测试通过,包含卸载 Team 后的目标 inbox 恢复。pnpm run test:snapshot -t 'team-direct-inbox|team-targets':2 个场景通过。
|
||||
|
||||
<a id="dev-note"></a>
|
||||
## 开发备注
|
||||
|
||||
无。
|
||||
@@ -15,8 +15,8 @@
|
||||
en: 14c57f30e676f6e3
|
||||
zh: b1a0ccf26fab3727
|
||||
/session-persistence-formats/format-references:
|
||||
en: 4fd2ce623e49ee0c
|
||||
zh: 205db03929396361
|
||||
en: 45dba01dd6d69c80
|
||||
zh: c366d1a3991118c9
|
||||
/session-persistence-formats/scope-and-evidence:
|
||||
en: b220062139ddac1e
|
||||
zh: 7c4c0efe05dafa9c
|
||||
|
||||
@@ -32,7 +32,7 @@ The index is generated from validated snapshots and the current writer constant.
|
||||
| 1 | PR #3349 | [V1](v1.md) | [JSON](v1.schema.json) | 54 / 415 |
|
||||
| 2 | `dsh-v0.1.3-alpha.2` | [V2](v2.md) | [JSON](v2.schema.json) | 56 / 435 |
|
||||
| 3 | PR #4320 | [V3](v3.md) | [JSON](v3.schema.json) | 60 / 467 |
|
||||
| 4 | Current checkout | [Current catalog](../../persistence-catalog.md) | [JSON](../../persistence-schema.json) | 62 / 589 |
|
||||
| 4 | Current checkout | [Current catalog](../../persistence-catalog.md) | [JSON](../../persistence-schema.json) | 62 / 587 |
|
||||
|
||||
<!-- persistence-format-index:end -->
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ description: "查找从 V0 到工作区写入器版本的每个 Session 格式
|
||||
| 1 | PR #3349 | [V1](v1.zh.md) | [JSON](v1.schema.json) | 54 / 415 |
|
||||
| 2 | `dsh-v0.1.3-alpha.2` | [V2](v2.zh.md) | [JSON](v2.schema.json) | 56 / 435 |
|
||||
| 3 | PR #4320 | [V3](v3.zh.md) | [JSON](v3.schema.json) | 60 / 467 |
|
||||
| 4 | 当前工作树 | [当前目录](../../persistence-catalog.zh.md) | [JSON](../../persistence-schema.json) | 62 / 589 |
|
||||
| 4 | 当前工作树 | [当前目录](../../persistence-catalog.zh.md) | [JSON](../../persistence-schema.json) | 62 / 587 |
|
||||
|
||||
<!-- persistence-format-index:end -->
|
||||
|
||||
|
||||
Generated
+33503
-34115
File diff suppressed because it is too large.
Load diff
@@ -9,8 +9,8 @@
|
||||
en: df72d9409b89714d
|
||||
zh: 982934dd18864ca2
|
||||
/agent-teams/messages-and-historical-mailbox:
|
||||
en: 31add73bb0520fd4
|
||||
zh: 18c92eaadb3607fd
|
||||
en: 2aed7dd369f47747
|
||||
zh: 4f080e50c584ad37
|
||||
/agent-teams/shared-task-dag:
|
||||
en: 4515005d07e4d2a3
|
||||
zh: 26811b31f69009d6
|
||||
|
||||
@@ -25,7 +25,7 @@ Every member starts in `provisioning` and reaches exactly one terminal roster ph
|
||||
|
||||
## Messages and historical mailbox
|
||||
|
||||
New sends return inbox acceptance or reject. The target stores Team-owned `team-relay` source with the real sender Session id and member name. The content prefix also names the sender for the model. Team has no new-message outbox or resend deduplication. The [package contract](../../packages/experimental/agent-team/README.md#understand-the-implementation) defines persistence. The following mailbox types remain readable so historical Lead logs still replay; Team does not deliver their pending records.
|
||||
New sends return inbox acceptance or reject. The target stores the existing `agent-message` source with the real sender Session id and a sender-name content prefix. Team has no new-message outbox or resend deduplication. The [package contract](../../packages/experimental/agent-team/README.md#understand-the-implementation) defines persistence. The following mailbox types remain readable so historical Lead logs still replay; Team does not deliver their pending records.
|
||||
|
||||
```ts type-equiv
|
||||
/** One peer message recorded by the historical Team mailbox. */
|
||||
|
||||
@@ -25,7 +25,7 @@ interface TeamMemberSnapshot {
|
||||
|
||||
## 消息与历史 mailbox
|
||||
|
||||
新发送返回 inbox 接收结果或拒绝。目标保存 Team 所属的 `team-relay` source,包含真实发送者 Session id 和成员名称。正文前缀也向模型标明发送者。Team 不为新消息提供 outbox 或重发去重。[包约定](../../packages/experimental/agent-team/README.zh.md#understand-the-implementation)定义持久化。以下 mailbox 类型继续可读,以便历史 Lead 日志仍能回放;Team 不投递其中的 pending 记录。
|
||||
新发送返回 inbox 接收结果或拒绝。目标保存现有 `agent-message` source,包含真实发送者 Session id 和发送者名称正文前缀。Team 不为新消息提供 outbox 或重发去重。[包约定](../../packages/experimental/agent-team/README.zh.md#understand-the-implementation)定义持久化。以下 mailbox 类型继续可读,以便历史 Lead 日志仍能回放;Team 不投递其中的 pending 记录。
|
||||
|
||||
```ts type-equiv
|
||||
/** One peer message recorded by the historical Team mailbox. */
|
||||
|
||||
@@ -37,7 +37,6 @@ export function turnTriggerDetails(node: ContextMessageNode): {
|
||||
icon = 'agent'
|
||||
break
|
||||
case 'team-message':
|
||||
case 'team-relay':
|
||||
title = 'message.trigger.team'
|
||||
icon = 'team'
|
||||
break
|
||||
|
||||
@@ -31,7 +31,6 @@ describe('Turn trigger notices', () => {
|
||||
[{ kind: 'goal' }, 'goal', 'Continuing goal'],
|
||||
[{ kind: 'agent-message' }, 'agent', 'Task message received'],
|
||||
[{ kind: 'team-message' }, 'team', 'Team message received'],
|
||||
[{ kind: 'team-relay' }, 'team', 'Team message received'],
|
||||
[{ kind: 'subagent-settled' }, 'subagent', 'Subtask status updated'],
|
||||
[{ kind: 'webhook', provider: 'github' }, 'github', 'GitHub event received'],
|
||||
[{ kind: 'webhook', provider: 'custom' }, 'webhook', 'External event received'],
|
||||
@@ -48,24 +47,18 @@ describe('Turn trigger notices', () => {
|
||||
})
|
||||
|
||||
it.each([
|
||||
[en, 'Team message received'],
|
||||
[zh, '收到团队消息'],
|
||||
])('presents Team relays from their recorded source while retaining the sender name', (locale, title) => {
|
||||
const node = trigger({ kind: 'team-relay', form: 'relay', senderSessionId: 'sender', senderName: 'reviewer-2' })
|
||||
[en, 'Task message received'],
|
||||
[zh, '收到任务消息'],
|
||||
])('presents Team relays as Agent messages while retaining the sender name', (locale, title) => {
|
||||
const node = trigger({ kind: 'agent-message', form: 'relay', senderSessionId: 'sender' })
|
||||
node.data.content = [{ type: 'text', text: 'Team message from reviewer-2:' }, { type: 'text', text: 'Ready.' }]
|
||||
expect(turnTriggerDetails(node.data)).toEqual({ title: 'message.trigger.team', icon: 'team' })
|
||||
expect(turnTriggerDetails(node.data)).toEqual({ title: 'message.trigger.agent', icon: 'agent' })
|
||||
const view = render(<TurnTriggerNodeView node={node} t={makeTranslate(locale)} />)
|
||||
expect(view.getByRole('button').textContent).toContain(title)
|
||||
fireEvent.click(view.getByRole('button'))
|
||||
expect(view.container.querySelector('[data-context-text]')?.textContent).toContain('Team message from reviewer-2:')
|
||||
})
|
||||
|
||||
it('does not classify Agent messages by Team-looking content', () => {
|
||||
const node = trigger({ kind: 'agent-message', form: 'relay', senderSessionId: 'sender' })
|
||||
node.data.content = [{ type: 'text', text: 'Team message from reviewer-2:' }]
|
||||
expect(turnTriggerDetails(node.data)).toEqual({ title: 'message.trigger.agent', icon: 'agent' })
|
||||
})
|
||||
|
||||
it.each([
|
||||
{ locale: en, title: 'Automation task' },
|
||||
{ locale: zh, title: '自动化任务' },
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
en: 2389048c1a494ed3
|
||||
zh: 7e72acd6b83ea248
|
||||
/deepseek-ai-dsh-experimental-agent-team/understand-the-implementation/direct-messages-and-historical-compatibility:
|
||||
en: 634f799f560f58c3
|
||||
zh: beec22b4100ac53c
|
||||
en: 67cc4e92adda8baa
|
||||
zh: 5abdb2415e414b9d
|
||||
/deepseek-ai-dsh-experimental-agent-team/understand-the-implementation/shared-task-board:
|
||||
en: 2dc37ba97a8a7178
|
||||
zh: 96bd24033030e19d
|
||||
|
||||
@@ -128,7 +128,7 @@ Every ordinary runtime root is the implicit Lead of a Team whose `TeamId` equals
|
||||
|
||||
### Direct messages and historical compatibility
|
||||
|
||||
`sendMessage()` checks exact caller membership, rejects self-messaging, and bounds the complete sender-framed UTF-8 content. It returns the existing inbox identity and emits Team activity only after acceptance. The target stores Team-owned `team-relay` source with the actual `senderSessionId` and `senderName`; the first content block is `Team message from <name>:`. No new `team/message/queued` or `team/message/delivered` records are written for these sends. Team adds no per-target send ordering; delivery order belongs to the target inbox. The client selects the Team title and icon from `source.kind`; the message body retains the sender name.
|
||||
`sendMessage()` checks exact caller membership, rejects self-messaging, and bounds the complete sender-framed UTF-8 content. It returns the existing inbox identity and emits Team activity only after acceptance. The target stores `agent-message` source with the actual `senderSessionId`; the first content block is `Team message from <name>:`. No new `team/message/queued` or `team/message/delivered` records are written for these sends. Team adds no per-target send ordering; delivery order belongs to the target inbox. The client presents these messages with the ordinary Agent title and icon; the message body retains the sender name.
|
||||
|
||||
Lead delivery calls `Agent.steer()` directly. Teammate delivery uses the continuation owner's host-only Steer path, which preserves the Team sender source while authorizing the Lead-to-child edge and cold-resuming inactive targets. Sibling messages never impersonate the Lead through the public adjacent-Agent messaging operation.
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ Lead 可以停止 teammate 的当前轮次,而不会删除其排队的消息
|
||||
|
||||
### 直接消息与历史兼容
|
||||
|
||||
`sendMessage()` 检查确切调用方的成员身份,拒绝自发消息,并限制包含发送者前缀的完整 UTF-8 内容大小。它返回现有 inbox 身份,并仅在接收后发出 Team activity。目标保存 Team 所属的 `team-relay` source,包含真实 `senderSessionId` 和 `senderName`;首个内容块为 `Team message from <name>:`。这些发送不写入新的 `team/message/queued` 或 `team/message/delivered` 记录。Team 不额外保证同目标发送顺序;投递顺序由目标 inbox 管理。客户端依据 `source.kind` 选择 Team 标题和图标;正文保留发送者名称。
|
||||
`sendMessage()` 检查确切调用方的成员身份,拒绝自发消息,并限制包含发送者前缀的完整 UTF-8 内容大小。它返回现有 inbox 身份,并仅在接收后发出 Team activity。目标保存带真实 `senderSessionId` 的 `agent-message` source;首个内容块为 `Team message from <name>:`。这些发送不写入新的 `team/message/queued` 或 `team/message/delivered` 记录。Team 不额外保证同目标发送顺序;投递顺序由目标 inbox 管理。客户端使用普通 Agent 消息标题和图标展示这些消息;正文保留发送者名称。
|
||||
|
||||
投递给 Lead 时直接调用 `Agent.steer()`。投递给 teammate 时使用 continuation owner 的 host-only Steer 路径;该路径会保留 Team 发送者 source,同时授权 Lead-to-child edge 并冷恢复 inactive target。sibling 消息绝不会通过公开的相邻 Agent 消息操作伪装成 Lead。
|
||||
|
||||
|
||||
@@ -234,12 +234,7 @@ export class TeamService extends Service {
|
||||
if (Buffer.byteLength(JSON.stringify(content), 'utf8') > this.config.maxMessageBytes) {
|
||||
throw new TeamError(`team message exceeds ${this.config.maxMessageBytes} bytes`, 'TEAM_MESSAGE_TOO_LARGE')
|
||||
}
|
||||
const source = {
|
||||
kind: 'team-relay' as const,
|
||||
form: 'relay' as const,
|
||||
senderSessionId: caller.id,
|
||||
senderName: membership.name,
|
||||
}
|
||||
const source = { kind: 'agent-message' as const, form: 'relay' as const, senderSessionId: caller.id }
|
||||
let messageId
|
||||
if (target.id === root.id) {
|
||||
const input = createUserMessage({ content, source })
|
||||
|
||||
@@ -145,15 +145,6 @@ export interface TeamMessageSource {
|
||||
|
||||
declare module '@deepseek-ai/dsh-llm' {
|
||||
interface MessageSourceMap {
|
||||
/** Sender attribution survives reading without the Team producer.
|
||||
* @persistenceAttribution
|
||||
*/
|
||||
'team-relay': {
|
||||
readonly kind: 'team-relay'
|
||||
readonly form: 'relay'
|
||||
readonly senderSessionId: SessionId
|
||||
readonly senderName: string
|
||||
}
|
||||
'team-message': TeamMessageSource
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,13 +106,12 @@ async function stack(
|
||||
await ctx.plugin(AgentLoop, { agents: [] })
|
||||
await ctx.plugin(SubagentService)
|
||||
await ctx.plugin(SubagentSpawn, { providerName: 'spawn' })
|
||||
const teamFiber = await ctx.plugin(TeamService)
|
||||
await ctx.plugin(TeamService)
|
||||
const adapter = new MockAdapter(script)
|
||||
ctx.llm.registerAdapter(['mock'], adapter)
|
||||
return {
|
||||
ctx,
|
||||
adapter,
|
||||
teamFiber,
|
||||
dispose: async () => { await disposeContext(ctx) },
|
||||
}
|
||||
}
|
||||
@@ -160,7 +159,7 @@ async function persistedChild(
|
||||
|
||||
for (const backend of backends) {
|
||||
describe(`${backend.name} Agent Teams recovery`, () => {
|
||||
it('restores a directly accepted target inbox and sender attribution without the Team producer', async () => {
|
||||
it('restores a directly accepted target inbox from its flushed crash prefix without Team intent', async () => {
|
||||
const liveRoot = mkdtempSync(join(tmpdir(), 'dsh-team-live-'))
|
||||
const crashRoot = mkdtempSync(join(tmpdir(), 'dsh-team-crash-'))
|
||||
roots.push(liveRoot, crashRoot)
|
||||
@@ -181,14 +180,13 @@ for (const backend of backends) {
|
||||
expect(lead.session.snapshotEvents().some(event => event.type.startsWith('team/message/'))).toBe(false)
|
||||
await first.dispose()
|
||||
const second = await stack(backend, crashRoot, [textResponse('recovered')])
|
||||
await second.teamFiber.dispose()
|
||||
const writer = await second.ctx.sessionPersistence.create(prefix.header)
|
||||
try { await writer.append(prefix.events) } finally { await writer.close() }
|
||||
const resumed = await second.ctx.agents.resume({
|
||||
resumeSessionId: child.id, agentOptions: { provider: 'mock', model: 'mock' },
|
||||
})
|
||||
expect(resumed.agent.inbox.nextStep.find(message => message.id === receipt.messageId)).toMatchObject({
|
||||
source: { kind: 'team-relay', form: 'relay', senderSessionId: lead.id, senderName: 'lead' },
|
||||
source: { kind: 'agent-message', form: 'relay', senderSessionId: lead.id },
|
||||
content: [{ type: 'text', text: 'Team message from lead:' }, { type: 'text', text: 'accepted before crash' }],
|
||||
})
|
||||
await resumed.dispose()
|
||||
|
||||
@@ -890,7 +890,7 @@ describe('Team direct messages and waiting', () => {
|
||||
expect(Object.keys(result)).toEqual(['messageId'])
|
||||
expect(result.messageId).toBeTypeOf('string')
|
||||
expect(agent.inbox.nextStep.find(message => message.id === result.messageId)).toMatchObject({
|
||||
source: { kind: 'team-relay', form: 'relay', senderSessionId: alpha.id, senderName: 'alpha' },
|
||||
source: { kind: 'agent-message', form: 'relay', senderSessionId: alpha.id },
|
||||
content: [{ type: 'text', text: 'Team message from alpha:' }, { type: 'text', text: 'update' }],
|
||||
})
|
||||
}
|
||||
@@ -913,7 +913,7 @@ describe('Team direct messages and waiting', () => {
|
||||
for (const [id, receipt] of [[lead.id, leadResult], [beta.member.id, peerResult]] as const) {
|
||||
const messages = (await storedEvents(ctx, id)).flatMap(event => event.type === 'user/message' ? [event.data] : [])
|
||||
expect(messages.find(message => message.id === receipt.messageId)).toMatchObject({
|
||||
source: { kind: 'team-relay', senderSessionId: alpha.id, senderName: 'alpha' },
|
||||
source: { kind: 'agent-message', senderSessionId: alpha.id },
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{"type":"session/title","data":{"title":"<system-reminder> You are teammate \"revi","messageSeqs":[9],"source":{"kind":"fallback"}}}
|
||||
{"type":"assistant/message","data":{"turn":1,"step":1,"message":{"role":"assistant","content":[{"type":"tool-call","id":"direct-1","name":"bash","arguments":"{\"command\":\"touch team-ready; while :; do sleep 1; done\",\"description\":\"Signal readiness and wait for interruption\",\"timeoutMs\":60000}"}],"source":{"kind":"model","provider":"deepseek-official","model":"deepseek-v4-flash"},"id":"{{message:16}}"},"usage":{"inputTokens":3,"outputTokens":3},"stream":[{"type":"chunk","time":1790429365968,"chunk":{"type":"block-start","index":0,"blockType":"tool-call"}},{"type":"tool-call-chunks","time0":1790429365968,"index":0,"dt":[],"id":"direct-1","name":"bash","args":["{\"command\":\"touch team-ready; while :; do sleep 1; done\",\"description\":\"Signal readiness and wait for interruption\",\"timeoutMs\":60000}"]},{"type":"chunk","time":1790429365968,"chunk":{"type":"block-end","index":0,"block":{"type":"tool-call","id":"direct-1","name":"bash","arguments":"{\"command\":\"touch team-ready; while :; do sleep 1; done\",\"description\":\"Signal readiness and wait for interruption\",\"timeoutMs\":60000}"}}},{"type":"chunk","time":1790429365968,"chunk":{"type":"usage","usage":{"inputTokens":3,"outputTokens":3}}},{"type":"chunk","time":1790429365969,"chunk":{"type":"finish","reason":{"kind":"tool-calls"}}}]},"surfaceOp":"append"}
|
||||
{"type":"tool/call","data":{"turn":1,"step":1,"callId":"direct-1","name":"bash","arguments":"{\"command\":\"touch team-ready; while :; do sleep 1; done\",\"description\":\"Signal readiness and wait for interruption\",\"timeoutMs\":60000}"}}
|
||||
{"type":"agent/inbox/spliced","data":{"target":"next-step","start":0,"inserted":[{"content":[{"type":"text","text":"Team message from lead:"},{"type":"text","text":"Review the direct inbox delivery."}],"source":{"kind":"team-relay","form":"relay","senderSessionId":"{{session:1}}","senderName":"lead"},"role":"user","id":"{{message:17}}"}]}}
|
||||
{"type":"agent/inbox/spliced","data":{"target":"next-step","start":0,"inserted":[{"content":[{"type":"text","text":"Team message from lead:"},{"type":"text","text":"Review the direct inbox delivery."}],"source":{"kind":"agent-message","form":"relay","senderSessionId":"{{session:1}}"},"role":"user","id":"{{message:17}}"}]}}
|
||||
{"type":"tool/result","data":{"turn":1,"step":1,"message":{"role":"tool","source":{"kind":"tool","callId":"direct-1"},"toolCallId":"direct-1","content":[{"type":"text","text":"Error: tool call aborted"}],"isError":true,"id":"{{message:18}}"},"error":{"name":"AbortError","code":"ABORTED"}},"sourceEventSeqs":[15],"surfaceOp":"append"}
|
||||
{"type":"step/end","data":{"turn":1,"step":1}}
|
||||
{"type":"turn/end","data":{"turn":1,"reason":{"kind":"aborted","reason":{"kind":"parent"}}}}
|
||||
|
||||
Reference in new issue
Block a user