@sema-agent/sdk 16.1.0 → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +62 -1
  2. package/dist/errors.d.ts +47 -11
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +26 -4
  5. package/dist/errors.js.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/resources/adoption.d.ts +2 -1
  10. package/dist/resources/adoption.d.ts.map +1 -1
  11. package/dist/resources/adoption.js +2 -1
  12. package/dist/resources/adoption.js.map +1 -1
  13. package/dist/resources/approvals.d.ts +10 -3
  14. package/dist/resources/approvals.d.ts.map +1 -1
  15. package/dist/resources/approvals.js +11 -3
  16. package/dist/resources/approvals.js.map +1 -1
  17. package/dist/resources/assistant.d.ts +4 -2
  18. package/dist/resources/assistant.d.ts.map +1 -1
  19. package/dist/resources/assistant.js.map +1 -1
  20. package/dist/resources/leader.d.ts +5 -4
  21. package/dist/resources/leader.d.ts.map +1 -1
  22. package/dist/resources/leader.js +5 -4
  23. package/dist/resources/leader.js.map +1 -1
  24. package/dist/resources/memory.d.ts +6 -2
  25. package/dist/resources/memory.d.ts.map +1 -1
  26. package/dist/resources/memory.js +3 -1
  27. package/dist/resources/memory.js.map +1 -1
  28. package/dist/resources/ops.d.ts +3 -0
  29. package/dist/resources/ops.d.ts.map +1 -1
  30. package/dist/resources/ops.js +3 -0
  31. package/dist/resources/ops.js.map +1 -1
  32. package/dist/resources/rules.d.ts +4 -3
  33. package/dist/resources/rules.d.ts.map +1 -1
  34. package/dist/resources/rules.js +3 -3
  35. package/dist/resources/rules.js.map +1 -1
  36. package/dist/resources/runs.d.ts +20 -6
  37. package/dist/resources/runs.d.ts.map +1 -1
  38. package/dist/resources/runs.js +3 -2
  39. package/dist/resources/runs.js.map +1 -1
  40. package/dist/resources/session-sync.d.ts +11 -7
  41. package/dist/resources/session-sync.d.ts.map +1 -1
  42. package/dist/resources/session-sync.js +9 -6
  43. package/dist/resources/session-sync.js.map +1 -1
  44. package/dist/resources/sessions.d.ts +9 -3
  45. package/dist/resources/sessions.d.ts.map +1 -1
  46. package/dist/resources/sessions.js +9 -3
  47. package/dist/resources/sessions.js.map +1 -1
  48. package/dist/resources/tasks.d.ts +7 -1
  49. package/dist/resources/tasks.d.ts.map +1 -1
  50. package/dist/resources/tasks.js +7 -1
  51. package/dist/resources/tasks.js.map +1 -1
  52. package/dist/resources/tool-approvals.d.ts +17 -3
  53. package/dist/resources/tool-approvals.d.ts.map +1 -1
  54. package/dist/resources/tool-approvals.js +4 -0
  55. package/dist/resources/tool-approvals.js.map +1 -1
  56. package/dist/resources/workflows.d.ts +5 -2
  57. package/dist/resources/workflows.d.ts.map +1 -1
  58. package/dist/resources/workflows.js +5 -2
  59. package/dist/resources/workflows.js.map +1 -1
  60. package/dist/settings.d.ts +7 -3
  61. package/dist/settings.d.ts.map +1 -1
  62. package/dist/sync.d.ts +19 -2
  63. package/dist/sync.d.ts.map +1 -1
  64. package/dist/sync.js +88 -2
  65. package/dist/sync.js.map +1 -1
  66. package/dist/types.d.ts +160 -19
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/types.js.map +1 -1
  69. package/openapi.yaml +318 -63
  70. package/package.json +1 -1
@@ -29,7 +29,10 @@ export class WorkflowsResource {
29
29
  * 在此之前 SDK 补了 `nextOffset` 字段却没补能用它的入口 —— 一个 21 个 agent 的 workflow 拿回 20 条 +
30
30
  * `nextOffset: 20`,消费方握着游标却发现没有任何参数能把它送回去,第 21 条 agent 的失败诊断在 SDK 通路上
31
31
  * **不可达**,只能绕过 SDK 裸拼 URL(而绕过 SDK 正是这个包存在的理由被否定的那一刻)。
32
- * 404 = run 不存在/非 owner(无存在性 oracle);501 = journal store 未接(self-orchestration off)。 */
32
+ * 404 = run 不存在/非 owner(无存在性 oracle);501 = journal store 未接(self-orchestration off)。
33
+ * 🔴 **server ≥7.116.0:journal 口的位是 `capabilities.workflowsJournal`**(= workflow 行店 ∧ journal 店),**不再是 `workflowsList`**(后者只说列表 / 详情 / 流三口;7.115.x 的
34
+ * `workflowsList` 广告 journal 口,而 journal 店缺席时那一口恒 501)。位为 `false` ⇒ 501 `capability.workflow_store_required`(对任何 id 同一句,先于属主判;行店缺席时是
35
+ * `capability.self_orchestration_required`);位缺席 = 老 server ⇒ 按 `workflowsList` 兜底(旧行为)。 */
33
36
  async journal(runId, opts) {
34
37
  const q = new URLSearchParams();
35
38
  if (opts?.session !== undefined)
@@ -80,7 +83,7 @@ export class WorkflowsResource {
80
83
  * `workflows: deps.workflowsCapable ?? Boolean(deps.workflowRunStore)` 与
81
84
  * `workflowsList: Boolean(deps.workflowRunStore)` 是**两个不同的量**(`routes/capabilities.ts` 中这两位旁的注
82
85
  * 逐字区分:`workflows` = ENGINE-CAN「引擎能不能自编排」,`workflowsList` = 能不能 durable 列 run)。
83
- * 同一判据也管着 `list`/`get`/`journal`/`stream` 四条读面。查错了键的后果双向都有:
86
+ * 同一判据也管着 `list`/`get`/`stream` 三条读面(`journal` 自 server ≥7.116.0 起另有位 `workflowsJournal`,见该 verb 注)。查错了键的后果双向都有:
84
87
  * `workflows:true, workflowsList:false` ⇒ 入口被点亮、每次点都吃 501;反过来则把一个能用的面藏起来。
85
88
  * Owner-scoped 404 (operator principals bypass). AT-MOST-ONCE (no retry). */
86
89
  async steerAgent(runId, label, message, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"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"}
@@ -97,10 +97,14 @@ export interface SettingsPermissions {
97
97
  * **未命中 = 不表态、照常判**(名单外的工具**不再被拒** —— ≤7.114.x 上名单在场 ⇒ 名单外一律拒,那一读法已翻)。
98
98
  * ⚠️ 与参照实现(CC)的 `permissions.allow` **不同**:CC 里 `allow: ["Edit"]` 会跳过编辑确认;这里写 `Write` / `Bash` 只是表态,`default` 模式下引擎自己的写门 / shell 检查**照问**,**deny / ask 照赢**
99
99
  * (要免掉那些问用 `permissionMode`)。要「**只许这些工具**」用真旋钮:会话规则 `PUT /v1/sessions/:id/policy` 的 `toolAllow`、每请求 `excludeTools` / `excludeAllTools`、或部署场景工具面。
100
- * 规则形与 deny / ask **同一只判据**:工具名规则(精确名,或 `mcp__<server>__*` / `a2a__<peer>__*`;`Bash(*)` 这类「工具名 + 通配内容」收下并编成整工具规则);退役名 / 无前缀短名 /
101
- * 缺段或两段 MCP 名 / 反斜杠 / 超 512 字符,以及**内容形**(`Bash(npm:*)` / `Read(./x)` / `WebFetch(domain:…)`)⇒ **整请求 422**(内容形的常设放行进持久规则店:`/v1/rules/cc-import`,或在卡上答 yes 时留规则;
100
+ * 规则形与 deny / ask **同一只判据**:工具名规则(精确名,或 `mcp__<server>__*` / `a2a__<peer>__*`;`Bash(*)` 这类「工具名 + 通配内容」收下并编成整工具规则;
101
+ * 🔴 server ≥7.116.0 另收**两段覆盖形** `mcp__<server>` / `a2a__<peer>`,读作整台服务器,与 `mcp__<server>__*` 同义 —— ≤7.115.x 上它是 422);退役名 / 无前缀短名 /
102
+ * 缺段名(`mcp__` / `mcp__<server>__`)/ **服务器段不是引擎铸出来的那一段**(例 `mcp__github.com__*`:引擎把服务器名归一成 `github_com`,规则逐字比 ⇒ 永不命中,
103
+ * 7.116.0 起 422 并给出正确写法 `mcp__github_com__*`,此前被收下)/ 反斜杠 / 超 512 字符,以及**内容形**(`Bash(npm:*)` / `Read(./x)` / `WebFetch(domain:…)`)⇒ **整请求 422**(内容形的常设放行进持久规则店:`/v1/rules/cc-import`,或在卡上答 yes 时留规则;
102
104
  * 🚧 那条 422 的句首仍写着 tighten-only —— server 已登记待收〔S-1085〕,别按句子分派)。
103
- * 🔴 **旧说法已作废**:本键旧注把它当「只许这些」的名单 —— 键名不变、读法翻了;把它当白名单用的调用方,升级后**收窄失效**(名单外的工具照常可用)。 */
105
+ * 🔴 **旧说法已作废**:本键旧注把它当「只许这些」的名单 —— 键名不变、读法翻了;把它当白名单用的调用方,升级后**收窄失效**(名单外的工具照常可用)。
106
+ * 🔴 **对照(server ≥7.116.0)**:请求自带技能的 {@link import("./types.js").SkillSpec.allowedTools 清单} + `userInvokedSkills` 点名**比本键宽** —— 它还清掉内置工具上引擎自己的写门 / shell 普通问
107
+ * (被认可的放宽,托管 / 多租户部署不设开关);本键在同版仍只是表态。两只请求级放行源的读法将在引擎的下一版收成一种。 */
104
108
  allow?: string[];
105
109
  /** Deny-list patterns (hard block; deny short-circuits). */
106
110
  deny?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/sync.d.ts CHANGED
@@ -24,7 +24,7 @@
24
24
  * round-trip. `srcIds`/`dstIds` are OLDEST-FIRST so the fork `commonAncestor` (the deepest shared id) and the
25
25
  * ordered exclusive/new lists come out correct.
26
26
  */
27
- import type { SessionManifest, SessionBundle, SyncConflictRelation, SyncRelation } from "./types.js";
27
+ import type { Capabilities, SessionManifest, SessionBundle, SyncConflictRelation, SyncRelation } from "./types.js";
28
28
  import type { SessionSyncResource } from "./resources/session-sync.js";
29
29
  /** §7 — classify how a SOURCE log (`srcIds`, oldest-first) relates to a DESTINATION log (`dstIds`, oldest-first, or
30
30
  * `null`/`[]` when the dst has no such session). Returns the {@link SyncRelation} discriminated union. */
@@ -34,6 +34,12 @@ export interface SessionSyncPeer {
34
34
  sessions: {
35
35
  sync: SessionSyncResource;
36
36
  };
37
+ /** 可选(`AgentClient` 天然满足):读这一端的能力位。**只有源 manifest 带着文件历史信封时才会被调用**,且只读 `sessionSyncFileHistory`(server ≥7.116.0 的 blob 面位)。
38
+ * 不提供 ⇒ 不拦(照旧尝试);提供而位缺席(老 server)⇒ 同样不拦;位为 `false` ⇒ 这一端搬不了 blob,编排 verb 只同步对话(见 {@link PushSessionResult.fileHistory})。
39
+ * 读失败(网络 / 401)原样抛出 —— 不猜。 */
40
+ capabilities?: (opts?: {
41
+ signal?: AbortSignal;
42
+ }) => Promise<Pick<Capabilities, "sessionSyncFileHistory">>;
37
43
  }
38
44
  export interface PushSessionOptions {
39
45
  /** Echoed into import Phase A. REQUIRED to apply a `fork`/`stale` push (dst history would be lost);
@@ -80,6 +86,13 @@ export interface PushSessionResult {
80
86
  entryCount: number;
81
87
  /** Content-addressed blobs uploaded to dst (idempotent PUTs; re-push re-PUTs harmlessly). */
82
88
  blobsPushed: number;
89
+ /** server ≥7.52 的文件历史怎么处置了(只在走到 Phase A 的路径上、且源 manifest **带了 `fileHistory` 键**时在场;≤7.51 的 `snapshots` 一代与本地短路 / 冲突返回路径上缺席):
90
+ * · `"carried"` —— 信封随 Phase A 推了过去,它引用的 blob 已 PUT(`blobsPushed` 数的就是它们);
91
+ * · `"none"` —— 源 manifest 的 `fileHistory` 是 `null`(没有历史 / 源店导不出),没有东西可带;
92
+ * · `"skipped"` —— **某一端的 `capabilities().sessionSyncFileHistory === false`**(server ≥7.116.0)⇒ **只同步了对话**:不取 blob、不 PUT、Phase A 不带 `fileHistory`
93
+ * (带过去会在 commit 后因缺 blob 422)。**调用方要把「文件历史没搬」告诉用户**,别当成同步完整。
94
+ * 位缺席(老 server)⇒ 不拦、照旧尝试(`"carried"`)。 */
95
+ fileHistory?: "carried" | "none" | "skipped";
83
96
  /** The src manifest the push was planned from (leafId → the caller's post-push sync watermark). */
84
97
  manifest: SessionManifest;
85
98
  /** The FULL dry-run plan relation (fast_forward's `newEntryIds` = the tail the dst lacked — the sema
@@ -110,6 +123,10 @@ export interface PullSessionOptions {
110
123
  signal?: AbortSignal;
111
124
  }
112
125
  export interface PulledSession {
126
+ /** 只在**拉取时源端明说没有文件历史 blob 面**(`capabilities().sessionSyncFileHistory === false`,server ≥7.116.0;且 `includeBlobs` 为真、manifest 带非空 `fileHistory`)时在场 =
127
+ * `"skipped"`:blob 取不到 ⇒ `bundle.fileHistory` 置 `null`(原信封仍在 `manifest.fileHistory`),{@link importSessionBundle} 据此只同步对话并报 `fileHistory: "skipped"`。
128
+ * 缺席 = 没有这回事(没拦 / 没读 / 位缺席 = 老 server)。 */
129
+ fileHistory?: "skipped";
113
130
  manifest: SessionManifest;
114
131
  /** The materialized portable state (entries verbatim, oldest-first). */
115
132
  bundle: SessionBundle;
@@ -133,5 +150,5 @@ export declare function pullSessionBundle(src: SessionSyncPeer, sessionId: strin
133
150
  * `blobs` map; a snapshot hash missing from the map is skipped — the dst may already hold it, and Phase A's
134
151
  * 422 `missing_blob` stays the honest gate) → import Phase A → Phase B from the in-memory entry array.
135
152
  */
136
- export declare function importSessionBundle(dst: SessionSyncPeer, pulled: Pick<PulledSession, "manifest" | "bundle" | "blobs">, opts?: PushSessionOptions): Promise<PushSessionResult>;
153
+ export declare function importSessionBundle(dst: SessionSyncPeer, pulled: Pick<PulledSession, "manifest" | "bundle" | "blobs" | "fileHistory">, opts?: PushSessionOptions): Promise<PushSessionResult>;
137
154
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EAEpB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE;2GAC2G;AAC3G,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,YAAY,CAkCrG;AAoBD,gHAAgH;AAChH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC;wFACoF;IACpF,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;;;;0EAOsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;8FAE0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,gHAAgH;IAChH,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC;;4DAEwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB;;;;8CAI0C;IAC1C,KAAK,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzD;;;;kFAI8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;8GAC0G;IAC1G,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,QAAQ,EAAE,eAAe,CAAC;IAC1B;sFACkF;IAClF,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA0E5B;AAED,MAAM,WAAW,kBAAkB;IACjC;6GACyG;IACzG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,wEAAwE;IACxE,MAAM,EAAE,aAAa,CAAC;IACtB,6EAA6E;IAC7E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CAyBxB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,EAC5D,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA8D5B"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/dist/sync.js CHANGED
@@ -33,6 +33,22 @@ export function classifySyncRelationshipByIds(srcIds, dstIds) {
33
33
  commonAncestor = id; // last shared id in src oldest-first order
34
34
  return { relation: "fork", commonAncestor, srcExclusive, dstExclusive };
35
35
  }
36
+ /** 这一端明说**没有**文件历史 blob 面(`sessionSyncFileHistory === false`)?peer 不暴露 `capabilities` / 位缺席 ⇒ `false`(不拦,照旧尝试)。 */
37
+ async function endLacksFileHistoryFace(peer, sopts) {
38
+ if (peer.capabilities === undefined)
39
+ return false;
40
+ const caps = await peer.capabilities(sopts);
41
+ return caps.sessionSyncFileHistory === false;
42
+ }
43
+ /** 文件历史信封引用的 blob hash(去重、保序;`blobHash: null` 的「当时不存在」标记不用搬)。 */
44
+ function fileHistoryBlobHashes(history) {
45
+ const seen = new Set();
46
+ for (const t of history.tracked)
47
+ for (const v of t.versions)
48
+ if (v.blobHash !== null)
49
+ seen.add(v.blobHash);
50
+ return [...seen];
51
+ }
36
52
  /**
37
53
  * PUSH one session from peer `src` into peer `dst` (same-id, cross-backend):
38
54
  * src manifest → dst dry-run plan (§7 classify) → [conflict? return, don't write] → blobs (content-addressed
@@ -77,6 +93,26 @@ export async function pushSessionBundle(src, dst, sessionId, opts) {
77
93
  // by N turn snapshots is one blob).
78
94
  const seen = new Set();
79
95
  let blobsPushed = 0;
96
+ // server ≥7.52:文件历史信封(取代 E19 snapshots)。两端都有 blob 面才搬;任一端明说没有 ⇒ 只同步对话(`"skipped"`)。
97
+ let carry = null;
98
+ let fileHistoryOutcome;
99
+ if (manifest.fileHistory === null)
100
+ fileHistoryOutcome = "none";
101
+ else if (manifest.fileHistory !== undefined) {
102
+ const lacking = (await endLacksFileHistoryFace(src, sopts)) || (await endLacksFileHistoryFace(dst, sopts));
103
+ if (lacking)
104
+ fileHistoryOutcome = "skipped";
105
+ else {
106
+ carry = manifest.fileHistory;
107
+ fileHistoryOutcome = "carried";
108
+ for (const hash of fileHistoryBlobHashes(carry)) {
109
+ seen.add(hash);
110
+ const bytes = await src.sessions.sync.getHistoryBlob(sessionId, hash, sopts);
111
+ await dst.sessions.sync.putBlob(sessionId, hash, bytes, sopts);
112
+ blobsPushed++;
113
+ }
114
+ }
115
+ }
80
116
  for (const snap of manifest.snapshots) {
81
117
  for (const [, hash] of snap.manifest) {
82
118
  if (seen.has(hash))
@@ -92,6 +128,7 @@ export async function pushSessionBundle(src, dst, sessionId, opts) {
92
128
  const staged = await dst.sessions.sync.import(sessionId, {
93
129
  entryIds: manifest.entryIds,
94
130
  snapshots: manifest.snapshots,
131
+ ...(carry !== null ? { fileHistory: carry } : {}),
95
132
  policy: manifest.policy,
96
133
  anchors: manifest.anchors,
97
134
  ...(opts?.resolution ? { resolution: opts.resolution } : {}),
@@ -103,6 +140,7 @@ export async function pushSessionBundle(src, dst, sessionId, opts) {
103
140
  // 最远消费端于是拿不到。("修复必须验到最远消费端"这条教训的又一次实例。)
104
141
  return {
105
142
  relation: staged.relation, pushed: true, entryCount: 0, blobsPushed, manifest, plan: rel,
143
+ ...(fileHistoryOutcome !== undefined ? { fileHistory: fileHistoryOutcome } : {}),
106
144
  ...(staged.basis !== undefined ? { basis: staged.basis } : {}),
107
145
  ...(staged.payloadVerified !== undefined ? { payloadVerified: staged.payloadVerified } : {}),
108
146
  };
@@ -110,7 +148,10 @@ export async function pushSessionBundle(src, dst, sessionId, opts) {
110
148
  // Phase B — the src entry stream into the staged import (async-iterable in, NDJSON out; `stream:true` makes it
111
149
  // a real constant-memory pipe, see PushSessionOptions.stream).
112
150
  const committed = await dst.sessions.sync.importEntries(sessionId, staged.stagingId, src.sessions.sync.entries(sessionId, undefined, sopts), { ...sopts, ...(opts?.stream === true ? { stream: true } : {}) });
113
- return { relation: committed.relation, pushed: true, entryCount: manifest.entryCount, blobsPushed, manifest, plan: rel };
151
+ return {
152
+ relation: committed.relation, pushed: true, entryCount: manifest.entryCount, blobsPushed, manifest, plan: rel,
153
+ ...(fileHistoryOutcome !== undefined ? { fileHistory: fileHistoryOutcome } : {}),
154
+ };
114
155
  }
115
156
  /**
116
157
  * PULL one session OUT of peer `src` into memory (manifest + full entry log [+ blobs]) for callers that land
@@ -127,6 +168,7 @@ export async function pullSessionBundle(src, sessionId, opts) {
127
168
  for await (const e of src.sessions.sync.entries(sessionId, undefined, sopts))
128
169
  entries.push(e);
129
170
  const blobs = new Map();
171
+ let fileHistorySkipped = false;
130
172
  if (opts?.includeBlobs) {
131
173
  for (const snap of manifest.snapshots) {
132
174
  for (const [, hash] of snap.manifest) {
@@ -135,6 +177,19 @@ export async function pullSessionBundle(src, sessionId, opts) {
135
177
  blobs.set(hash, await src.sessions.sync.getBlob(sessionId, snap.key, hash, sopts));
136
178
  }
137
179
  }
180
+ // server ≥7.52:文件历史的 blob 走 history 面;源端明说没有 blob 面(`sessionSyncFileHistory === false`)⇒ 取不到:不取、`bundle.fileHistory` 置 `null`、
181
+ // `PulledSession.fileHistory = "skipped"`(只同步对话)—— 不带着一份没有 blob 的信封去撞目的端的 422 `missing_blob`。
182
+ if (manifest.fileHistory != null) {
183
+ if (await endLacksFileHistoryFace(src, sopts))
184
+ fileHistorySkipped = true;
185
+ else {
186
+ for (const hash of fileHistoryBlobHashes(manifest.fileHistory)) {
187
+ if (blobs.has(hash))
188
+ continue;
189
+ blobs.set(hash, await src.sessions.sync.getHistoryBlob(sessionId, hash, sopts));
190
+ }
191
+ }
192
+ }
138
193
  }
139
194
  return {
140
195
  manifest,
@@ -142,10 +197,12 @@ export async function pullSessionBundle(src, sessionId, opts) {
142
197
  sessionId: manifest.sessionId,
143
198
  entries,
144
199
  snapshots: manifest.snapshots,
200
+ ...(manifest.fileHistory !== undefined ? { fileHistory: fileHistorySkipped ? null : manifest.fileHistory } : {}),
145
201
  policy: manifest.policy,
146
202
  anchors: manifest.anchors,
147
203
  },
148
204
  blobs,
205
+ ...(fileHistorySkipped ? { fileHistory: "skipped" } : {}),
149
206
  };
150
207
  }
151
208
  /**
@@ -179,6 +236,30 @@ export async function importSessionBundle(dst, pulled, opts) {
179
236
  }
180
237
  const seen = new Set();
181
238
  let blobsPushed = 0;
239
+ // server ≥7.52:文件历史信封;目的端明说没有 blob 面(`sessionSyncFileHistory === false`)⇒ 只同步对话(`"skipped"`,同 pushSessionBundle)。
240
+ // (源端那一半在拉取时已经读过:`pullSessionBundle` 在源端没有 blob 面时 `PulledSession.fileHistory = "skipped"`、`bundle.fileHistory = null`。)
241
+ let carry = null;
242
+ let fileHistoryOutcome;
243
+ if (pulled.fileHistory === "skipped")
244
+ fileHistoryOutcome = "skipped"; // 拉取时源端没有 blob 面(见 PulledSession.fileHistory)
245
+ else if (bundle.fileHistory === null)
246
+ fileHistoryOutcome = "none";
247
+ else if (bundle.fileHistory !== undefined) {
248
+ if (await endLacksFileHistoryFace(dst, sopts))
249
+ fileHistoryOutcome = "skipped";
250
+ else {
251
+ carry = bundle.fileHistory;
252
+ fileHistoryOutcome = "carried";
253
+ for (const hash of fileHistoryBlobHashes(carry)) {
254
+ seen.add(hash);
255
+ const bytes = blobs.get(hash);
256
+ if (!bytes)
257
+ continue; // not pulled (includeBlobs:false / partial) — Phase A 422s honestly if dst lacks it
258
+ await dst.sessions.sync.putBlob(sessionId, hash, bytes, sopts);
259
+ blobsPushed++;
260
+ }
261
+ }
262
+ }
182
263
  for (const snap of bundle.snapshots) {
183
264
  for (const [, hash] of snap.manifest) {
184
265
  if (seen.has(hash))
@@ -194,6 +275,7 @@ export async function importSessionBundle(dst, pulled, opts) {
194
275
  const staged = await dst.sessions.sync.import(sessionId, {
195
276
  entryIds: manifest.entryIds,
196
277
  snapshots: bundle.snapshots,
278
+ ...(carry !== null ? { fileHistory: carry } : {}),
197
279
  policy: bundle.policy,
198
280
  anchors: bundle.anchors,
199
281
  ...(opts?.resolution ? { resolution: opts.resolution } : {}),
@@ -204,6 +286,7 @@ export async function importSessionBundle(dst, pulled, opts) {
204
286
  // 最远消费端于是拿不到。("修复必须验到最远消费端"这条教训的又一次实例。)
205
287
  return {
206
288
  relation: staged.relation, pushed: true, entryCount: 0, blobsPushed, manifest, plan: rel,
289
+ ...(fileHistoryOutcome !== undefined ? { fileHistory: fileHistoryOutcome } : {}),
207
290
  ...(staged.basis !== undefined ? { basis: staged.basis } : {}),
208
291
  ...(staged.payloadVerified !== undefined ? { payloadVerified: staged.payloadVerified } : {}),
209
292
  };
@@ -212,6 +295,9 @@ export async function importSessionBundle(dst, pulled, opts) {
212
295
  ...sopts,
213
296
  ...(opts?.stream === true ? { stream: true } : {}),
214
297
  });
215
- return { relation: committed.relation, pushed: true, entryCount: bundle.entries.length, blobsPushed, manifest, plan: rel };
298
+ return {
299
+ relation: committed.relation, pushed: true, entryCount: bundle.entries.length, blobsPushed, manifest, plan: rel,
300
+ ...(fileHistoryOutcome !== undefined ? { fileHistory: fileHistoryOutcome } : {}),
301
+ };
216
302
  }
217
303
  //# sourceMappingURL=sync.js.map
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}