@sema-agent/sdk 23.1.0 → 25.0.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 (84) hide show
  1. package/README.md +201 -4
  2. package/dist/client.d.ts +6 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +8 -1
  5. package/dist/client.js.map +1 -1
  6. package/dist/device/index.d.ts +76 -12
  7. package/dist/device/index.d.ts.map +1 -1
  8. package/dist/device/index.js +90 -31
  9. package/dist/device/index.js.map +1 -1
  10. package/dist/errors.d.ts +318 -6
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +121 -10
  13. package/dist/errors.js.map +1 -1
  14. package/dist/events.d.ts +165 -23
  15. package/dist/events.d.ts.map +1 -1
  16. package/dist/events.js +19 -0
  17. package/dist/events.js.map +1 -1
  18. package/dist/health.d.ts +29 -1
  19. package/dist/health.d.ts.map +1 -1
  20. package/dist/health.js.map +1 -1
  21. package/dist/index.d.ts +38 -12
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +25 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/model-route-env/index.d.ts +129 -0
  26. package/dist/model-route-env/index.d.ts.map +1 -0
  27. package/dist/model-route-env/index.js +131 -0
  28. package/dist/model-route-env/index.js.map +1 -0
  29. package/dist/registry/errors.d.ts +3 -0
  30. package/dist/registry/errors.d.ts.map +1 -1
  31. package/dist/registry/errors.js +3 -2
  32. package/dist/registry/errors.js.map +1 -1
  33. package/dist/registry/me-config.d.ts +1 -0
  34. package/dist/registry/me-config.d.ts.map +1 -1
  35. package/dist/registry/me-config.js +1 -1
  36. package/dist/registry/me-config.js.map +1 -1
  37. package/dist/registry/scope-config-feedback.d.ts +1 -0
  38. package/dist/registry/scope-config-feedback.d.ts.map +1 -1
  39. package/dist/registry/scope-config-feedback.js +1 -1
  40. package/dist/registry/scope-config-feedback.js.map +1 -1
  41. package/dist/resources/adoption.d.ts +8 -2
  42. package/dist/resources/adoption.d.ts.map +1 -1
  43. package/dist/resources/adoption.js.map +1 -1
  44. package/dist/resources/approvals.d.ts +22 -2
  45. package/dist/resources/approvals.d.ts.map +1 -1
  46. package/dist/resources/approvals.js +12 -2
  47. package/dist/resources/approvals.js.map +1 -1
  48. package/dist/resources/elicitations.d.ts +2 -1
  49. package/dist/resources/elicitations.d.ts.map +1 -1
  50. package/dist/resources/elicitations.js.map +1 -1
  51. package/dist/resources/fleet.d.ts +65 -6
  52. package/dist/resources/fleet.d.ts.map +1 -1
  53. package/dist/resources/fleet.js.map +1 -1
  54. package/dist/resources/ops.d.ts +113 -0
  55. package/dist/resources/ops.d.ts.map +1 -1
  56. package/dist/resources/ops.js +10 -0
  57. package/dist/resources/ops.js.map +1 -1
  58. package/dist/resources/principal-inbox.d.ts +62 -0
  59. package/dist/resources/principal-inbox.d.ts.map +1 -0
  60. package/dist/resources/principal-inbox.js +51 -0
  61. package/dist/resources/principal-inbox.js.map +1 -0
  62. package/dist/resources/questions.d.ts +2 -1
  63. package/dist/resources/questions.d.ts.map +1 -1
  64. package/dist/resources/questions.js.map +1 -1
  65. package/dist/resources/session-sync.d.ts +4 -2
  66. package/dist/resources/session-sync.d.ts.map +1 -1
  67. package/dist/resources/session-sync.js +4 -2
  68. package/dist/resources/session-sync.js.map +1 -1
  69. package/dist/resources/tool-approvals.d.ts +201 -22
  70. package/dist/resources/tool-approvals.d.ts.map +1 -1
  71. package/dist/resources/tool-approvals.js +183 -36
  72. package/dist/resources/tool-approvals.js.map +1 -1
  73. package/dist/settings.d.ts +73 -1
  74. package/dist/settings.d.ts.map +1 -1
  75. package/dist/sse.d.ts +8 -1
  76. package/dist/sse.d.ts.map +1 -1
  77. package/dist/sse.js +9 -5
  78. package/dist/sse.js.map +1 -1
  79. package/dist/types.d.ts +475 -113
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/types.js +11 -5
  82. package/dist/types.js.map +1 -1
  83. package/openapi.yaml +1296 -153
  84. package/package.json +6 -2
@@ -2,9 +2,10 @@
2
2
  * tool-approval.d.ts). `type` IS the SSE `event:` name AND is echoed in the payload. The shell renders the
3
3
  * `tool_approval` frame as an allow/deny dialog and dismisses it on `tool_approval_complete`.
4
4
  *
5
- * ⚠️ 与 {@link ApprovalRequestFrame}(design/172 流内审批协议,server ≥7.3.0 已上线)的关系:server 侧开关打开时
6
- * **同一只 ask 出两帧**,顺序钉死为「先本帧(逐字不变)、后 `approval_request`」,两帧同带 `approvalId`。
7
- * ⇒ 只认本帧的存量壳行为与今天字节一致;新壳按 `approvalId` 去重、优先渲染新帧。开关关闭 ⇒ 只有本帧。 */
5
+ * ⚠️ 与 {@link ApprovalRequestFrame}(design/172 流内审批协议,server ≥7.3.0 已上线)的关系:**一条腿一个帧族**(server ≥7.133.0,`capabilities.approvalFrameFamilies`)——
6
+ * 呈卡协议上场的腿(`["approval_request"]`)上一只 ask 只走 `approval_request` 族,**本帧(`tool_approval` / `tool_approval_complete`)一帧都不发**(补偿:该 worker 设 `STREAM_APPROVAL_ENABLED=false` 回到旧族腿);
7
+ * 协议没上场的腿(`["tool_approval"]`)只发本族,wire 逐字不变。≤7.132.x 的呈卡腿上两族并发:同一只 ask 先本帧(逐字不变)、后 `approval_request`,两帧同带 `approvalId`
8
+ * ⇒ 新壳按 `approvalId` 去重、优先渲染新帧。 */
8
9
  /**
9
10
  * auto 模式分类器「没判出来」的成因闭集 —— 引擎 `AUTO_MODE_FALLBACK_CAUSES`(core 7.43.0)逐字同序:`error` / `timeout`(分类器跑不了)· `parse_error`(答了却没有判词)。
10
11
  * server ≥7.118.0 上 {@link ToolApprovalFrame.classifierNoRuling} 与收件箱行同名位用它(server 用引擎谓词筛,集外不铸)。**闭集**:加词 = 引擎下一版 + 本常量与 spec enum 同批加。
@@ -229,6 +230,39 @@ export const PERSISTED_RULE_MANDATES = [
229
230
  "write_protection",
230
231
  "target_unresolved",
231
232
  ];
233
+ /**
234
+ * 活卡结局帧 `tool_approval_complete` 的 {@link ToolApprovalFrame.cause} 词表 —— 审批席「结局成因」一张闭集(server ≥7.124.0,十七词)里**非人结局**的十四词:
235
+ * 问账行能落的十词({@link AskRowEndingCause}:路由失败 / run 取消 / 承载腿退场 / 批撤 / 兄弟被撤卡连坐 / bind-once 落选 / adhoc 腿无对账域 / 遗孤兜底 / 进程崩溃 / 有序关停截断)
236
+ * 再加四个**不落问账行**的等待类词 —— `ttl_expired`(等待窗走完、没有人答)· `broadcast_lost`(两族帧都没送到任何连接,卡从未送达任何人)·
237
+ * `stream_disconnected`(承载这张卡的流断了,断连强转 park)· `undeliverable`(持久行不可用 / 身份不定 / 悬挂无行,卡没呈到任何投递面)。
238
+ * 另三个决断类词(`binding_changed` / `answer_invalid` / `outcome_cell_invalid`)只拒一次决议、不结束一张卡 ⇒ 不在这里(它们在 wire 上是决断口 409 的码,不是词)。
239
+ * 闭集:冻结的字面元组,成员型 {@link ApprovalSettleCause};{@link isApprovalCompleteFrameV1} 判 `cause` 成员读的就是这张表(型、常量、守卫一处定义)。
240
+ * 🔴 **词与序逐位 == server `SETTLE_CAUSE_WORDS` 的键序 == 随包 spec `ApprovalSettleCause` 枚举**(测试对着发布字节逐位核);这是 server 的另一张字面表 ——
241
+ * `ASK_ROW_ENDING_CAUSES`(十词,问账行序)与它是两张表、序不同,server 自己也是两张;「十词是这十四词的子集、余下四词是等待类词」由测试逐词核,不由类型保证。
242
+ */
243
+ export const APPROVAL_SETTLE_CAUSES = Object.freeze([
244
+ "ttl_expired",
245
+ "broadcast_lost",
246
+ "stream_disconnected",
247
+ "undeliverable",
248
+ "run_cancelled",
249
+ "run_exited",
250
+ "batch_aborted",
251
+ "batch_sibling_withdrawn",
252
+ "batch_bound_elsewhere",
253
+ "routing_failure_fail_closed",
254
+ "crashed_before_park",
255
+ "shutdown_before_park",
256
+ "orphan_ttl_exceeded",
257
+ "adhoc_leg_no_durable_domain",
258
+ ]);
259
+ /**
260
+ * 读根候选 {@link ToolApprovalFrame.readRootCandidate} 的 `covers` **词表**(引擎 `ReadRootGrantCandidate.covers`;server 的窄读铸点 `readReadRootCandidate` 对集外词整只丢)。
261
+ * 今天一词:`"exact"` —— `dir` 是命令点名的那一条路径本身,不是包含它的目录。闭集:冻结的字面元组,成员型 {@link ReadRootCover};
262
+ * 型、随包 spec 枚举、{@link isApprovalRequestFrameV1} 对 `covers` 的成员判读的都是这一张表(一处定义,守卫里没有内联词表)。
263
+ * 同源锚:测试对着 server 发布字节里铸点上的词(语法树读)与引擎 d.ts 里的字面量联合逐词核 —— 任一边加词 / 换词,这张表不跟就当场红。
264
+ */
265
+ export const READ_ROOT_COVERS = Object.freeze(["exact"]);
232
266
  /** 同源锚对账面(照 {@link TOOL_APPROVAL_FRAME_KEYS} 先例):`ApprovalRequestFrame` 的**字段名清单**,
233
267
  * 给下游值拷贝(client-core / web 各自持同名闭集 copy)做机器对账用。
234
268
  * **新增帧字段必须同步进本清单**(有测试钉)。 */
@@ -243,6 +277,36 @@ export const APPROVAL_REQUEST_FRAME_KEYS = [
243
277
  "expiresAtMs",
244
278
  "serverNowMs",
245
279
  "approvalId",
280
+ // server ≥7.133.0:十位**卡外的活面事实**(见 {@link APPROVAL_REQUEST_LIVE_FACT_KEYS}),只在活铸的呈卡帧上,断连重放帧恒缺席。
281
+ "mandated",
282
+ "mandate",
283
+ "origin",
284
+ "boundGrantDigest",
285
+ "boundGrants",
286
+ "classifierNoRuling",
287
+ "boundGrantAbsence",
288
+ "approvalCard",
289
+ "readRootCandidate",
290
+ "probeReason",
291
+ ];
292
+ /**
293
+ * 呈卡帧顶层**卡外活面事实座**的键名表(server ≥7.133.0;server `APPROVAL_REQUEST_LIVE_FACT_KEYS`,同名同序)。一问一帧族之后,呈卡腿的开卡帧是这只 ask 的**全部**开卡事实:
294
+ * 耐久的那张卡在 `card` 里,卡外那十位(强制位 / 强制词 / 出身 / 技能授予摘要与值 / 分类器未裁 / 授予缺席 / 引擎卡词 / 读根候选 / 探测原因)在帧顶层 ——
295
+ * 与旧族活卡帧 {@link ToolApprovalFrame} 上同名键**同一份素材**(型就是它的 `Pick`,不手抄第二份)。
296
+ * 🔴 **只有活铸的那一帧带**(durable 腿的账本记下的是铸帧当时的那一帧,所以账本重放里的历史帧带着铸帧时给到的那几位);断连重放帧(`buildReplayFrame` 从 `card_json` 回读)恒缺席这十位 ——
297
+ * 卡外事实不在耐久的卡里。缺席不是「没有」,是「这一帧不带」。
298
+ */
299
+ export const APPROVAL_REQUEST_LIVE_FACT_KEYS = [
300
+ "mandated",
301
+ "mandate",
302
+ "origin",
303
+ "boundGrantDigest",
304
+ "boundGrants",
305
+ "classifierNoRuling",
306
+ "boundGrantAbsence",
307
+ "approvalCard",
308
+ "readRootCandidate",
309
+ "probeReason",
246
310
  ];
247
311
  /** {@link ApprovalCard} 的字段名清单(同上,卡是嵌套结构,单独一份)。 */
248
312
  export const APPROVAL_CARD_KEYS = [
@@ -277,30 +341,38 @@ export const APPROVAL_CARD_KEYS = [
277
341
  "askClass",
278
342
  "classes",
279
343
  ];
344
+ /** {@link ApprovalCompleteFrame} 的字段名清单(同源锚对账面,照 {@link APPROVAL_REQUEST_FRAME_KEYS} 先例)。 */
345
+ export const APPROVAL_COMPLETE_FRAME_KEYS = ["type", "schemaVersion", "askId", "taskId", "approvalId", "outcome", "cause", "parked", "serverNowMs"];
280
346
  /** {@link ApprovalRevokeFrame} 的字段名清单(同源锚对账面)。 */
281
347
  export const APPROVAL_REVOKE_FRAME_KEYS = ["type", "schemaVersion", "batchId", "askIds", "reason", "serverNowMs", "taskId"];
282
348
  // ── v1 窄化谓词的逐键判据 ────────────────────────────────────────────────────────────────────────
283
349
  // 🔴 谓词一旦返回 true,类型就承诺**整个 interface**——包括可选键的类型。所以判据必须覆盖
284
350
  // 「**在场**的已知可选键类型是否正确」,不能只查必填键:`argsOmitted: false` / `risk.irreversible: "false"` /
285
351
  // `delegation.depth: "one"` 都会被窄化成「可信的安全元数据」,而这几个键恰恰是人在权限边界上据以决策的量。
286
- // 缺席的可选键**不**参与判否(缺席是合法 v1 —— 风险两轴的「未标注」正是靠缺席表达的)。
352
+ // 缺席的可选键**不**参与判否(缺席是合法 v1 —— 风险两轴的「未标注」正是靠缺席表达的);**在场的**可选键一律参与 —— 含键在场而值是显式 `undefined`(见 {@link optIs})。
287
353
  const isStr = (v) => typeof v === "string";
288
354
  const isNum = (v) => typeof v === "number";
289
- const optIs = (v, ok) => v === undefined || ok(v);
290
- const optTrue = (v) => v === undefined || v === true;
355
+ const isTrue = (v) => v === true;
356
+ /** 可选键的成形判,**全文件唯一一只**:`key` 不在 `o` 里(缺席)⇒ 合法;`key` 在 `o` 里(在场)⇒ 值必须过 `ok`。
357
+ * 🔴 显式 `undefined` 是**在场的一个非法值**,不是缺席 —— 与 `exactOptionalPropertyTypes` 下「可选位不收显式 `undefined`」的型同向。若把它当缺席放行,
358
+ * 守卫说真之后消费方的 `"k" in v` 窄化让型说是串、运行期却是 `undefined`(串方法 TypeError)。只对消费方自己拼的 JS 对象有影响:`JSON.parse` 出不来 `undefined` 值。
359
+ * 在场判用 `in`(与消费方 `"k" in v` 的窄化同一只读法)。 */
360
+ const optIs = (o, key, ok) => !(key in o) || ok(o[key]);
361
+ /** 闭集词座的成员判:`v` 是 `words` 里的一员。`words` 就是**导出的词表数组**(型、常量、守卫一处定义 —— 不在守卫里另抄一份词)。 */
362
+ const isWordOf = (words) => (v) => typeof v === "string" && words.includes(v);
291
363
  function isApprovalRiskAxesV1(v) {
292
364
  if (typeof v !== "object" || v === null)
293
365
  return false;
294
366
  const r = v;
295
367
  if (typeof r.requiresRealApproval !== "boolean")
296
368
  return false;
297
- return optIs(r.irreversible, (x) => typeof x === "boolean") && optIs(r.egress, (x) => typeof x === "boolean");
369
+ return optIs(r, "irreversible", (x) => typeof x === "boolean") && optIs(r, "egress", (x) => typeof x === "boolean");
298
370
  }
299
371
  function isApprovalCardDelegationV1(v) {
300
372
  if (typeof v !== "object" || v === null)
301
373
  return false;
302
374
  const d = v;
303
- return isStr(d.parentToolCallId) && isNum(d.depth) && optIs(d.agentName, isStr);
375
+ return isStr(d.parentToolCallId) && isNum(d.depth) && optIs(d, "agentName", isStr);
304
376
  }
305
377
  /** 一条候选的逐键判据。**`match` 必须是闭词表内的值**:一条 `match: "regex"` 的「候选」若被窄化成可信形,
306
378
  * 壳会渲出一格按下去必被 server 拒(`rule_not_offered`/`unknown-candidate`)的「不再询问」—— 而人已经
@@ -346,7 +418,7 @@ function isRuleOfferV1(v) {
346
418
  const x = d;
347
419
  return isStr(x.segment) && RULE_OFFER_UNCOVERED_REASONS.includes(x.reason);
348
420
  };
349
- return optIs(o.uncoveredDetail, (x) => Array.isArray(x) && x.every(detailOk));
421
+ return optIs(o, "uncoveredDetail", (x) => Array.isArray(x) && x.every(detailOk));
350
422
  }
351
423
  /** `probeCause` 的逐键判据 —— `{code, roots:{shown,total}, further?}`。`code` 是**开集**串(按 default 臂
352
424
  * 分支),两个操作数族的 `total` 必须是真实基数(`shown` 可能被 server 截短,`shown.length < total` 正是
@@ -361,7 +433,7 @@ function isProbeCauseV1(v) {
361
433
  if (typeof v !== "object" || v === null)
362
434
  return false;
363
435
  const c = v;
364
- return isStr(c.code) && isProbeCauseOperandsV1(c.roots) && optIs(c.further, isProbeCauseOperandsV1);
436
+ return isStr(c.code) && isProbeCauseOperandsV1(c.roots) && optIs(c, "further", isProbeCauseOperandsV1);
365
437
  }
366
438
  /** `ruleEvidence` 的判据 —— 🔴 **成员级开集**(顶注「窄读域纪律」逐字):**不认识的成员原样留着**,
367
439
  * 只对**认识的成员**查形。闭集白名单会让一个陌生的新成员把整只记录判假,**连坐吞掉兄弟成员的合法证据**
@@ -377,12 +449,12 @@ function isRuleEvidenceV1(v) {
377
449
  const x = d;
378
450
  return isStr(x.actor) && isNum(x.counter);
379
451
  };
380
- return (optIs(e.orgRevision, isNum) &&
381
- optIs(e.orgRevisionAbsent, isStr) &&
382
- optIs(e.orgRule, isStr) &&
383
- optIs(e.orgRuleAbsent, isStr) &&
384
- optIs(e.personalRuleDots, (x) => Array.isArray(x) && x.every(dotOk)) &&
385
- optIs(e.personalRuleDotsAbsent, isStr));
452
+ return (optIs(e, "orgRevision", isNum) &&
453
+ optIs(e, "orgRevisionAbsent", isStr) &&
454
+ optIs(e, "orgRule", isStr) &&
455
+ optIs(e, "orgRuleAbsent", isStr) &&
456
+ optIs(e, "personalRuleDots", (x) => Array.isArray(x) && x.every(dotOk)) &&
457
+ optIs(e, "personalRuleDotsAbsent", isStr));
386
458
  }
387
459
  /** `denialLimitFallback` 的判据 —— **四成员全必填**(core 形上没有可选位 ⇒「少一位」是坏值不是老 core)。
388
460
  * 半铸一张卡会让人读到一个错的拒次计数,所以形不合 ⇒ 整只判假。`limit` 按开集读(闭二词只给补全)。 */
@@ -401,9 +473,11 @@ function isAllowRuleShadowedV1(v) {
401
473
  if (typeof r !== "object" || r === null)
402
474
  return false;
403
475
  const x = r;
404
- return isStr(x.member) && Array.isArray(x.entries) && x.entries.every(isStr) && optIs(x.omitted, (n) => typeof n === "number" && Number.isInteger(n) && n > 0);
476
+ return isStr(x.member) && Array.isArray(x.entries) && x.entries.every(isStr) && optIs(x, "omitted", (n) => typeof n === "number" && Number.isInteger(n) && n > 0);
405
477
  });
406
478
  }
479
+ /** 整张卡的成形判。⚠️ 既有盲区(本版不动):`governanceForced` / `rememberRefused` / `askClass` / `classes` / `classifierUnavailable` 五位在场时**任何值都过**(没有进下面的合取)——
480
+ * 所以「在场必须成形」对这五位不成立;测试 🚧 钉住这份名单,哪天谓词补判它们,名单随之清空。 */
407
481
  function isApprovalCardV1(v) {
408
482
  if (typeof v !== "object" || v === null)
409
483
  return false;
@@ -411,29 +485,58 @@ function isApprovalCardV1(v) {
411
485
  if (!isStr(c.toolName) || !isStr(c.message) || !isApprovalRiskAxesV1(c.risk))
412
486
  return false;
413
487
  // `args` 是 `unknown` —— 任何 JSON 值都合法,没有可校验的形(帽/洗涤是 server 的责任)。
414
- return (optTrue(c.argsOmitted) &&
415
- optIs(c.toolCallId, isStr) &&
416
- optIs(c.ruleSuggestions, (x) => Array.isArray(x) && x.every(isRuleSuggestionV1)) &&
417
- optIs(c.ruleOffers, (x) => Array.isArray(x) && x.every(isRuleOfferV1)) &&
488
+ return (optIs(c, "argsOmitted", isTrue) &&
489
+ optIs(c, "toolCallId", isStr) &&
490
+ optIs(c, "ruleSuggestions", (x) => Array.isArray(x) && x.every(isRuleSuggestionV1)) &&
491
+ optIs(c, "ruleOffers", (x) => Array.isArray(x) && x.every(isRuleOfferV1)) &&
418
492
  // 在场形也校验(同 `ruleSuggestions` 那条纪律):这一格是**展示解释**,一个非串的值渲出来是
419
493
  // `[object Object]`,而人正指望这一行告诉他「你的规则怎么了」。
420
494
  // 新键 `allowRuleShadowed`(server ≥7.117.0)与退役旧键 `persistedRuleShadowed`(只有 ≤7.116.x 的旧 server 还发)各判各的形;两键不互相推。
421
- optIs(c.allowRuleShadowed, isAllowRuleShadowedV1) &&
422
- optIs(c.persistedRuleShadowed, isStr) &&
423
- optTrue(c.fromSubagent) &&
424
- optIs(c.sourceTaskId, isStr) &&
425
- optIs(c.sourceAgentName, isStr) &&
426
- optIs(c.delegation, isApprovalCardDelegationV1) &&
495
+ optIs(c, "allowRuleShadowed", isAllowRuleShadowedV1) &&
496
+ optIs(c, "persistedRuleShadowed", isStr) &&
497
+ optIs(c, "fromSubagent", isTrue) &&
498
+ optIs(c, "sourceTaskId", isStr) &&
499
+ optIs(c, "sourceAgentName", isStr) &&
500
+ optIs(c, "delegation", isApprovalCardDelegationV1) &&
427
501
  // ── S-139:把"在场可选键也校验"这条纪律**补齐到整只卡**(此前 3 位声明了却没进谓词)──────────
428
502
  // 顶注写的是「判据 = 协议判别位 + 全部必填键的类型 + **在场可选键的类型**」。`inputHasBidi` /
429
503
  // `probeCause` / `ruleEvidence` 三位声明在型面上却从来没进过这个谓词 ⇒ 那句话对它们是假的。
430
504
  // 本批补两位新键时按**类**一起补齐,而不是只给新键开一条特例(加特例会让规则集变大)。
431
- optTrue(c.inputHasBidi) &&
432
- optIs(c.probeCause, isProbeCauseV1) &&
433
- optIs(c.ruleEvidence, isRuleEvidenceV1) &&
505
+ optIs(c, "inputHasBidi", isTrue) &&
506
+ optIs(c, "probeCause", isProbeCauseV1) &&
507
+ optIs(c, "ruleEvidence", isRuleEvidenceV1) &&
434
508
  // 只判串(开集读):词表属主在引擎(server ≥7.129.0 闭四词),server 不透传未知词,但引擎加员时 server 随之放行 —— 加员不该让整张卡判假。
435
- optIs(c.ruleOffersAbsence, isStr) &&
436
- optIs(c.denialLimitFallback, isDenialLimitFallbackV1));
509
+ optIs(c, "ruleOffersAbsence", isStr) &&
510
+ optIs(c, "denialLimitFallback", isDenialLimitFallbackV1));
511
+ }
512
+ /** 呈卡帧顶层十位**活面事实**的成形判(server ≥7.133.0;键清单 = {@link APPROVAL_REQUEST_LIVE_FACT_KEYS}):在场必须成形、缺席合法(同整张卡的「在场可选键也校验」纪律 ——
513
+ * 谓词承诺整个 interface,含可选键的类型)。**闭集词座**(`mandate` / `classifierNoRuling` / `boundGrantAbsence` / `approvalCard`)按各自词表数组判**成员**
514
+ * ({@link PERSISTED_RULE_MANDATES} / {@link AUTO_MODE_FALLBACK_CAUSES} / {@link BOUND_GRANT_ABSENCES} / {@link TOOL_APPROVAL_CARD_WORDS}):型是闭集、spec 是闭枚举,守卫不比它们宽
515
+ * —— 集外词判否(走通用卡,不是拒绝);引擎加词时词表与 spec 同批加员。`origin` 是开集({@link AskOrigin}),只判串。`readRootCandidate.covers` 在场必须是 {@link READ_ROOT_COVERS} 的成员(同样读导出词表)。
516
+ * 「在场」含键在场而值是显式 `undefined`(判否,见 {@link optIs});键缺席合法。 */
517
+ function isApprovalRequestLiveFactsV1(x) {
518
+ const grants = (v) => {
519
+ if (typeof v !== "object" || v === null)
520
+ return false;
521
+ const g = v;
522
+ return (g.skill === null || isStr(g.skill)) && Array.isArray(g.allowedTools) && g.allowedTools.every(isStr) && Array.isArray(g.disallowedTools) && g.disallowedTools.every(isStr);
523
+ };
524
+ const candidate = (v) => {
525
+ if (typeof v !== "object" || v === null)
526
+ return false;
527
+ const c = v;
528
+ return isStr(c.dir) && c.clearsThisAsk === true && optIs(c, "covers", isWordOf(READ_ROOT_COVERS));
529
+ };
530
+ return (optIs(x, "mandated", isTrue) &&
531
+ optIs(x, "mandate", isWordOf(PERSISTED_RULE_MANDATES)) &&
532
+ optIs(x, "origin", isStr) &&
533
+ optIs(x, "boundGrantDigest", isStr) &&
534
+ optIs(x, "boundGrants", grants) &&
535
+ optIs(x, "classifierNoRuling", isWordOf(AUTO_MODE_FALLBACK_CAUSES)) &&
536
+ optIs(x, "boundGrantAbsence", isWordOf(BOUND_GRANT_ABSENCES)) &&
537
+ optIs(x, "approvalCard", isWordOf(TOOL_APPROVAL_CARD_WORDS)) &&
538
+ optIs(x, "readRootCandidate", candidate) &&
539
+ optIs(x, "probeReason", isStr));
437
540
  }
438
541
  /** 窄化谓词:给定值是否是**本包所描述的** v1 呈卡帧。
439
542
  *
@@ -451,7 +554,27 @@ export function isApprovalRequestFrameV1(f) {
451
554
  return false;
452
555
  if (!isNum(x.expiresInMs) || !isNum(x.expiresAtMs) || !isNum(x.serverNowMs))
453
556
  return false;
454
- return isApprovalCardV1(x.card);
557
+ return isApprovalCardV1(x.card) && isApprovalRequestLiveFactsV1(x);
558
+ }
559
+ /** 窄化谓词:给定值是否是**本包所描述的** v1 呈卡族消卡帧({@link ApprovalCompleteFrame};server ≥7.133.0)。
560
+ * `outcome` 查闭三词(它决定卡怎么收,不认识的词不能当已知);`cause` / `parked` 按「**在场必须成形**」查(缺席合法 —— 人答没有成因、非 park 路由没有 `parked`;
561
+ * 在场但形错 ⇒ 拒:谓词承诺整个 interface,含可选键的类型)。`cause` 查是不是 {@link APPROVAL_SETTLE_CAUSES}(型 {@link ApprovalSettleCause} 与 spec 都是闭集,守卫不比它们宽;
562
+ * 引擎 / server 加成因词时本表与 spec 同批加员)。判否 ⇒ 按 `askId`(若有)清卡,别猜结局。 */
563
+ export function isApprovalCompleteFrameV1(f) {
564
+ if (typeof f !== "object" || f === null)
565
+ return false;
566
+ const x = f;
567
+ if (x.type !== "approval_complete" || x.schemaVersion !== 1)
568
+ return false;
569
+ if (!isStr(x.askId) || !isStr(x.taskId) || !isStr(x.approvalId) || !isNum(x.serverNowMs))
570
+ return false;
571
+ if (x.outcome !== "allowed" && x.outcome !== "denied" && x.outcome !== "expired")
572
+ return false;
573
+ if (!optIs(x, "cause", isWordOf(APPROVAL_SETTLE_CAUSES)))
574
+ return false;
575
+ if (!optIs(x, "parked", isTrue))
576
+ return false;
577
+ return true;
455
578
  }
456
579
  /** 窄化谓词:给定值是否是**本包所描述的** v1 撤卡帧。`reason` 只查是不是串(值域开集,见
457
580
  * {@link ApprovalRevokeFrame.reason});`askIds` 必须真是串数组,否则「清哪些卡」无从谈起。
@@ -466,7 +589,7 @@ export function isApprovalRevokeFrameV1(f) {
466
589
  return false;
467
590
  if (!isStr(x.batchId) || !isStr(x.reason) || !isNum(x.serverNowMs))
468
591
  return false;
469
- if (x.taskId !== undefined && !isStr(x.taskId))
592
+ if (!optIs(x, "taskId", isStr))
470
593
  return false;
471
594
  return Array.isArray(x.askIds) && x.askIds.every(isStr);
472
595
  }
@@ -482,15 +605,39 @@ export const TOOL_APPROVAL_NOT_PENDING_CODE = "tool_approval.not_pending";
482
605
  export function isToolApprovalNotPending(err) {
483
606
  return typeof err === "object" && err !== null && err.errorCode === TOOL_APPROVAL_NOT_PENDING_CODE;
484
607
  }
485
- /** `ack` is the replayed arm of {@link ToolApprovalRespondAck}. */
608
+ /** `ack` is the replayed arm of {@link ToolApprovalRespondAck} (the first decision of an already-DECIDED ask replayed; a replayed PARKED redemption is its own arm — {@link isToolApprovalParkedRedeemed}). */
486
609
  export function isToolApprovalReplayed(ack) {
487
- return ack.idempotent === true;
610
+ const a = ack;
611
+ return a.idempotent === true && a.accepted !== "parked_redeemed";
612
+ }
613
+ /** `ack` is the parked-redemption arm of {@link ToolApprovalRespondAck} (server ≥7.133.0): the late answer redeemed a PARKED card through the durable redemption leg. */
614
+ export function isToolApprovalParkedRedeemed(ack) {
615
+ return ack.accepted === "parked_redeemed";
488
616
  }
617
+ /**
618
+ * `GET /v1/tool-approvals/:id` 应答体 `state` 的**闭集**(server ≥7.133.0;一只 ask 此刻在哪一态,读法与应答口逐条同源,穷举读):
619
+ * · `pending` —— 本副本上有在等它的活登记(应答口此刻收得下;体 = 列表面 {@link import("../types.js").LivePendingRow} 的同一只行投影 + `state`);
620
+ * · `decided` —— 行 `DECIDED`(有人 / 有策略决过;回执三键同晚答回放体:`decision` / `decidedAtMs` / `decisionNote?`);
621
+ * · `parked` —— 行 `PARKING` / `PARKED`(转后台候批;应答口走迟到受理 / 赎回,耐久回决口照收;`decidePath?` 指耐久回决路径);
622
+ * · `void` —— 行 `DENIED` / `VOID`(没有人决过它,答案无处兑现;`cause?` 同晚答 404 的成因词,见 {@link AskRowEndingCause})。
623
+ */
624
+ export const TOOL_APPROVAL_READ_STATES = Object.freeze(["pending", "decided", "parked", "void"]);
489
625
  export class ToolApprovalsResource {
490
626
  t;
491
627
  constructor(t) {
492
628
  this.t = t;
493
629
  }
630
+ /** GET /v1/tool-approvals/:id — **按问读口**(server ≥7.133.0):一只 ask 此刻在哪一态({@link ToolApprovalReadBody} 的 `state` 四词,{@link TOOL_APPROVAL_READ_STATES})。
631
+ * 与 {@link ToolApprovalsResource.respond} 同根同门(同一只鉴权 / 属主身份;属主不过与未知 id **同形** 404,无存在性谕示)。用途:拿着重放来的卡(或 `livePending` 行)的壳,在答之前
632
+ * / 重连之后问一句「这张卡还活着吗、被谁决过没有」,而不是靠 `respond` 的 404 反推。`approvalId` 恒等于 {@link ApprovalRequestFrame.askId}(64 位十六进制串,当不透明串)。
633
+ * 老 server(≤7.132.x)没有这一口 ⇒ 路由级 404 `not_found.route`(与本口的 404 `tool_approval.not_pending` 靠 `errorCode` 分,**别按状态码分**)。 */
634
+ async get(approvalId, opts) {
635
+ return this.t.request({
636
+ method: "GET",
637
+ path: `/v1/tool-approvals/${encodeURIComponent(approvalId)}`,
638
+ signal: opts?.signal,
639
+ });
640
+ }
494
641
  /** POST /v1/tool-approvals/:id/respond — settle a parked LIVE tool-approval gate with the human's decision.
495
642
  * The engine's suspended tool call resumes (allow) or is refused (deny) on the still-open task connection.
496
643
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,46 @@ export interface SettingsHookCommand {
32
32
  command: string;
33
33
  /** Per-command timeout in SECONDS (CC semantics). Omitted = the runner's default. */
34
34
  timeout?: number;
35
- /** Open: tolerate CC command-form keys deferred in v1 (`args`/`shell`/`once`/`async`/`statusMessage`/`if`/…). */
35
+ /**
36
+ * server ≥7.133.0 · **exec 形**:`command` 是可执行名、`args` 是它的参数数组(串数组、元素无 NUL)—— **不经 shell**,占位只在 server 的一趟扫描里替换(闭集三名:`${CLAUDE_PROJECT_DIR}` /
37
+ * `${CLAUDE_PLUGIN_ROOT}` / `${CLAUDE_PLUGIN_DATA}`,**替进去的值不再被扫**;闭集外的 `${NAME}` 原样留给 execve)。没有 `args` ⇒ shell 形(`command` 整串给 shell)。
38
+ * 🔴 **见位才发**:探 `capabilities.taskSettings.pluginHooks`(与 `hooks` 同谓词:单用户真、多租假);位缺席 / 假 = **老 server 静默剥掉 `args`**(只剩可执行名,不报错)。形错(非串数组 / 含 NUL)⇒ 400
39
+ * `request.field_invalid`,`detail: { reason: "wire_key_invalid", key, path }`(整份拒,不剥)。exec 形的命令行(`command` + 各 `args`)计入 `command` 帽。
40
+ */
41
+ args?: string[];
42
+ /**
43
+ * server ≥7.133.0 · **插件执行上下文**(仅 command 条目有义):这条 hook 属于哪个插件、插件根在哪、数据目录、用户配置选项 —— server 据此注入 `CLAUDE_PLUGIN_ROOT` / `CLAUDE_PLUGIN_DATA` / `CLAUDE_PLUGIN_OPTION_<键大写>`
44
+ * 环境变量并替换命令里的同名占位(条目带 `plugin` 才建数据目录)。🔴 **见位才发**(`capabilities.taskSettings.pluginHooks`;缺席 / 假 = 老 server 静默剥掉);形错 ⇒ 400 `request.field_invalid`(`reason: "wire_key_invalid"`);
45
+ * 插件上下文合计一道 **8192 字**的总字符帽(名 + 根 + 数据目录 + 各选项的键与值),超了 400 `over_cap`。引用 `${CLAUDE_PLUGIN_ROOT}` 却不带 `plugin` 的命令**起不来**(占位无值)。
46
+ */
47
+ plugin?: SettingsHookPluginContext;
48
+ /** Open: tolerate CC command-form keys deferred in v1 (`shell`/`once`/`async`/`statusMessage`/`if`/…). */
36
49
  [k: string]: unknown;
37
50
  }
51
+ /** `settings.hooks[].hooks[].plugin`(server ≥7.133.0):一条 command hook 的插件执行上下文。`root` / `dataDir` 是**宿主绝对路径**(绝对、无 `..` 段、无 NUL、有长度上限 —— 与 `skills[i].baseDir` 同一只判;
52
+ * server 不做存在性检查,那是执行面的事);`options` 是字符串到字符串的用户配置选项。 */
53
+ export interface SettingsHookPluginContext {
54
+ /** 插件名(非空)。 */
55
+ name: string;
56
+ /** 插件根(宿主绝对路径)。 */
57
+ root: string;
58
+ /** 插件数据目录(宿主绝对路径;缺席 ⇒ 不建 / 不注入 `CLAUDE_PLUGIN_DATA`)。 */
59
+ dataDir?: string;
60
+ /** 用户配置选项(键值都是串;注入为 `CLAUDE_PLUGIN_OPTION_<键>`)。 */
61
+ options?: Record<string, string>;
62
+ }
63
+ /**
64
+ * hook 组的**来源**闭集(server ≥7.133.0;`settings.hooks[event][i].source`):这一组是谁写的 —— 托管与否决定它跑哪条车道。词表(闭集;集外词 = 形错,整份 400 `request.field_invalid`,fail-closed):
65
+ * · `managedPolicy` —— 组织策略(托管设置)。**托管**,且是终判相;
66
+ * · `managedPlugin:<name>` —— 托管设置启用的插件。**托管**;
67
+ * · `user` / `project` / `local` / `flag` —— 设置文件的各层与启动时给的 `--settings`。**非托管**;
68
+ * · `plugin:<name>` —— 用户启用的插件。**非托管**(来源不可信)。
69
+ * `<name>` 非空、至多 128 字,**名只留痕、不作判据**(车道只看前缀)。**缺席 = 非托管**。
70
+ * 执行相的**固定次序**:非托管 → 托管插件 → 托管策略(终判);后一相在前一相的**最终输入**上跑,结果按信任序(倒序)读。托管同步条目没跑成 ⇒ `PreToolUse` 在没有否决时折 `ask` + 一帧 `hook_managed_unrun`
71
+ * (见 {@link import("./resources/fleet.js").FleetHookManagedUnrun});条目没拿到完整载荷 / 被超预算 matcher 按选中拉进来 ⇒ 否决算数、放行与改写不作数 + 一帧 `hook_verdict_untrusted`。
72
+ * 🔴 **见位才标**:探 `capabilities.taskSettings.managedHookGroups`;位缺席 / 假 = 老 server **静默剥掉 `source`** —— 一个你标成托管的组会落进非托管车道(**不报错**),所以别在没见位的服务器上依赖托管语义。
73
+ */
74
+ export type SettingsHookGroupSource = "managedPolicy" | "user" | "project" | "local" | "flag" | `managedPlugin:${string}` | `plugin:${string}`;
38
75
  /** One matcher entry: which tools (by name pattern) run which hook commands. */
39
76
  export interface SettingsHookMatcher {
40
77
  /** Tool-name pattern (e.g. `"Bash"`, `"Bash|Edit"`, `"Write"`). Omitted/empty ⇒ matches every tool.
@@ -68,11 +105,16 @@ export interface SettingsHookMatcher {
68
105
  * server ≥7.126.0 起按 `detail.reason` 分三臂:`{ reason: "dead_alias", event, alias, canonical }` / `{ reason: "over_budget", event, groupIndex, budgetMs }` / `{ reason: "invalid_regex", event, groupIndex }`
69
106
  * (`event` = 被拒那一组所在的工具事件,多事件配置取第一条被拒的;`alias` / `canonical` = 引擎目录里的别名与正名,闭集字符串、不含调用方原字节;`groupIndex` = 该事件下第几组,从 0 数)。
70
107
  * 7.115.0–7.125.x 的 `detail` 只有 `{ event, alias, canonical }` 三键、没有 `reason`。
108
+ * 🔴 **server ≥7.132.0**:matcher 拒多第四形 `{ reason: "budget_exceeded", event, groupIndex, totalMs }`(一次受理里所有已完成的正则形求值耗时之和超过受理总额度 `totalMs` 5 000 ms;
109
+ * 每次求值的额度仍是 1000 ms);`invalid_regex` 写在**任一**契约事件上都判(此前只判三个工具事件);**`settings.hooks` 的每一只拒**(matcher 四形之外还有配置读者的拒、不执行的条目类型、
110
+ * 服务侧上限)都带 `field: "settings.hooks"` 与对象形 `detail`,且**恒带 `detail.path`**(判决所在的坐标)。全部形见 {@link import("./errors.js").SettingsHooksRefusalDetail}。
71
111
  * 按 `field === "settings.hooks"` 把它与普通提交失败分流、提示改 matcher,**不要解析句子**。本包不为它们具名属性:从 `err.extra.field` / `err.extra.detail` 读(`APIError.extra`,原样)。
72
112
  * ⚠️ 同一个 `request.field_invalid` 上另有两句 `detail` 是**串**形(领养 principals 两句):**按 `field` 区分,不按 `detail` 的类型猜**。
73
113
  *
74
114
  * 别名表是引擎的工具目录,本包不抄;型不拦它(本字段仍是 `string`),拦的是 server 受理门。 */
75
115
  matcher?: string;
116
+ /** server ≥7.133.0 · 这一组的**来源**(托管 / 非托管车道),闭集见 {@link SettingsHookGroupSource}。缺席 = 非托管。**见位才发**(`capabilities.taskSettings.managedHookGroups`)。 */
117
+ source?: SettingsHookGroupSource;
76
118
  /** The hook commands to run when `matcher` hits (the runner handles dedup/parallel-precedence/timeout). */
77
119
  hooks: SettingsHookCommand[];
78
120
  }
@@ -134,6 +176,12 @@ export interface SettingsPermissions {
134
176
  deny?: string[];
135
177
  /** Ask-list patterns (prompt the human). */
136
178
  ask?: string[];
179
+ /**
180
+ * server ≥7.133.0 · **「只收紧」座位**:这些工具名**恒问真人**(命中的调用永不被自动车道 / 规则代答)。每座 = 部署表(`APPROVAL_NEVER_AUTO`)∪ 请求列表,**只增不减**;空数组 ≡ 没送;
181
+ * 条数 ≤1000(超了 400 `request.field_invalid`,`reason: "over_cap"` + `count` / `cap`);坏条目 400 `bad_entry` + 首个坏项下标;**永不匹配任何工具的名 ⇒ 422**(死条目响亮拒,不静默当没写)。
182
+ * 🔴 **见位才发**:`capabilities.taskSettings.tightenOnlySeats`(恒真);位缺席 = 老 server —— 对这个键 400 `request.body_shape`。续跑重放时这座坏了 ⇒ 409 `resume_blocked_by_policy`。
183
+ */
184
+ neverAuto?: string[];
137
185
  /** Extra directories added to the permission/fs scope (= CC `--add-dir`). posix-normalized before use. */
138
186
  additionalDirectories?: string[];
139
187
  /** 🔴 CC-parity permission MODE —— TS 类型层是 TOB-fleet server 受理面的闭集,与顶层
@@ -204,6 +252,30 @@ export interface SemaSettings {
204
252
  model?: string;
205
253
  /** Output style → appendSystemPrompt / RoleSpec.systemPrompt. */
206
254
  outputStyle?: string;
255
+ /**
256
+ * server ≥7.133.0 · **「只收紧」座位 ①:读拒模式** → core 任务层席 `TaskSpec.readDenyPatterns`(只增不减,与部署表 `READ_DENY_PATTERNS` 取并)。元素 = 裸串模式(≡ `{ pattern }`,大小写**默认不敏感**)或
257
+ * `{ pattern: string, caseSensitive?: boolean }`;模式文法与编译由引擎判(本包不抄)。🔴 **成本界**(每颗 `*` 都计,**进 spec 不折星**):**每段至多 2 颗 `*`、整表合计至多 16 颗、至多 32 条** ——
258
+ * 一律 400 `request.field_invalid`(`field: "settings.readDenyPatterns"`),但机读成因分两种:**整表**界(合计 `*` 超 16 / 条数超 32)⇒ `reason: "over_cap"` + `count` / `cap`;**单条**界(某一段超 2 颗 `*`)与坏条目 ⇒ `reason: "bad_entry"` + 下标 `index`。空数组 ≡ 没送。
259
+ * 🔴 **见位才发**:`capabilities.taskSettings.tightenOnlySeats`(位缺席 = 老 server:400 `request.body_shape`)。
260
+ */
261
+ readDenyPatterns?: Array<string | {
262
+ pattern: string;
263
+ caseSensitive?: boolean;
264
+ }>;
265
+ /**
266
+ * server ≥7.133.0 · **「只收紧」座位 ②:额外写保护项** → core 任务层席 `TaskSpec.writeProtectedAdditions`(只增不减,与部署表 `WRITE_PROTECTED_EXTRA` 取并)。元素 = 裸名(无 `/` ≡ `segment`:任一路径段等于它;含 `/` ≡ `segment-run`:
267
+ * 连续一串段)或 `{ name, kind: "basename" | "segment" | "segment-run" }`;以 `~/` 开头的名字被拒(表不在 home 下放行)。≤1000 条;坏条目 400 `bad_entry`。空数组 ≡ 没送。**见位才发**(`taskSettings.tightenOnlySeats`)。
268
+ */
269
+ writeProtectedExtra?: Array<string | {
270
+ name: string;
271
+ kind: "basename" | "segment" | "segment-run";
272
+ }>;
273
+ /**
274
+ * server ≥7.133.0 · **「只收紧」座位 ③:额外合规禁项** → core 任务层席 `TaskSpec.complianceAdditionalDenies`(只增不减,与部署表 `COMPLIANCE_ADDITIONAL_DENIES` 取并)。元素 = 引擎合规能力闭集之一:
275
+ * `mcp_servers` / `workflows` / `web_fetch` / `org_memory_mount`。🔴 合规禁项是「**拒**」不是「收窄」:禁 `web_fetch` 的提交,默认工具面里仍挂着 `WebFetch` 的部署(单用户默认就挂)上**整个任务被拒**;
276
+ * 先看你的工具面再发。≤1000 条;坏条目 400 `bad_entry`。空数组 ≡ 没送。**见位才发**(`taskSettings.tightenOnlySeats`)。
277
+ */
278
+ complianceAdditionalDenies?: Array<"mcp_servers" | "workflows" | "web_fetch" | "org_memory_mount">;
207
279
  /** WebSearch backend config → service `body.settings.webSearch` (per-request WINS over deploy env; single-user
208
280
  * gate). Lets the TOC shell pick the WebSearch provider/endpoint per request (e.g. a self-hosted SearXNG). */
209
281
  webSearch?: SettingsWebSearch;
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,SAAS,CAAC;IAChB;;wJAEoJ;IACpJ,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,0GAA0G;IAC1G,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;yDACyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,iBAAiB,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,CAAC;AAE/I,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAqC4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qJAAqJ;IACrJ,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,2GAA2G;IAC3G,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;yEAIyE;AACzE,MAAM,WAAW,aAAa;IAC5B;;;;;;mIAM+H;IAC/H,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,gIAAgI;IAChI,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,iIAAiI;IACjI,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACzC,oDAAoD;IACpD,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,EAAE,GAAG,SAAS,CAAC;CACpD;AAED;;;0LAG0L;AAC1L,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;oLA0BgL;IAChL,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0GAA0G;IAC1G,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;iEA0B6D;IAC7D,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5F,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,sHAAsH;AACtH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;;;;gHAMgH;AAChH,MAAM,WAAW,iBAAiB;IAChC,uHAAuH;IACvH,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,mHAAmH;IACnH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;wHAEwH;AACxH,MAAM,WAAW,YAAY;IAC3B,mOAAmO;IACnO,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,kHAAkH;IAClH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChF;;;OAGG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;KAAE,CAAC,CAAC;IACrG;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,kBAAkB,CAAC,CAAC;IACnG;mHAC+G;IAC/G,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;;;;;;yGASqG;IACrG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;;qEAaiE;IACjE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC;;;;oEAIgE;IAChE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;;2DAUuD;IACvD,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
package/dist/sse.d.ts CHANGED
@@ -24,6 +24,9 @@ import type { AgentEvent } from "./events.js";
24
24
  * `sessions.watch` therefore passes its own 60s grace rather than this constant. ([2400] CB-9: the previous
25
25
  * note said "service heartbeat is 30s", a number no writer in the server emits.) */
26
26
  export declare const HEARTBEAT_GRACE_MS = 45000;
27
+ /** server ≥7.133.0 `GET /v1/approvals/stream` 的**读失败提示帧**的码:流**留着**(下一拍照常再读),所以不是终帧、也**不是**重连信号 —— 读口 yield 之后继续读同一条连接。
28
+ * 这条码串在包里只有这一处字面量:终帧判据({@link isTerminalFrame})与对外的码表 `APPROVALS_STREAM_READ_ERROR_CODES`(`resources/approvals.ts`)读同一只常量。 */
29
+ export declare const STREAM_READ_ADVISORY_CODE = "approvals.read_unavailable";
27
30
  /**
28
31
  * 🔴 **订阅流终帧的唯一判据** —— 五只可续读读口同读这一只:`runs.events`(`parseSse`)· `trace.stream` / `bakes.events` / `sessions.watch`(`parseFrameStream`)·
29
32
  * `approvals.stream`(自带循环)。读口 yield 终帧之后结束本腿,**不重连**。
@@ -33,7 +36,8 @@ export declare const HEARTBEAT_GRACE_MS = 45000;
33
36
  * · `error`:除帽帧之外的**一切** `error` 帧 —— 排空 `draining`(server ≥7.122.0 在排空进入那一拍、与硬停起点对每条订阅流各发一次:
34
37
  * 实例要走了,重开交给调用方按自己的节奏与退避去替代实例 —— 本包此前把它当可重连的流控信号,一条连上就发终帧的对端会让读口零退避热重连)、
35
38
  * trace 腿的 `WORKER_DOWN`(run 失联 / 失败)、以及任何读不出的码(server 宣告的错,本包不替调用方静默重连)。
36
- * 唯一的例外是 15 分钟帽 `STREAM_MAX_DURATION`:流被服务端按时长截断而观察的对象还活着 ⇒ 读口自己带 `Last-Event-ID` 续读(一条已经跑满 15 分钟的腿,不是热循环)。
39
+ * 例外两个:15 分钟帽 `STREAM_MAX_DURATION`(流被服务端按时长截断而观察的对象还活着 ⇒ 读口自己带 `Last-Event-ID` 续读;一条已经跑满 15 分钟的腿,不是热循环);
40
+ * server ≥7.133.0 `/v1/approvals/stream` 的 `approvals.read_unavailable`(这一拍读失败、**流留着** ⇒ 不是终帧,读口 yield 之后继续读同一条连接,**不重连**;`approvals.read_corrupt` 帧后 server 收流 ⇒ 仍是终帧)。
37
41
  * 帧名取 SSE `event:`(缺席读载荷的 `type` —— 剥了事件名的中继之后仍判得出);没有 `data` / 载荷读不成 JSON ⇒ 不是终帧(读口自己的解析把契约违约报出来)。
38
42
  * ⚠️ 终帧是**连接面**的信号:排空帧不说 run 或审批此刻的状态(server 对每一条订阅流同发),要知道状态重开之后读 `runs.get` / `approvals.list`。
39
43
  */
@@ -47,6 +51,7 @@ export declare function isTerminalFrame(frame: {
47
51
  * grep stderr for it; change the type surface, never the words. (P0-2 S1, TB2.0 triage 2026-07-15.) */
48
52
  export declare class SseIdleError extends Error {
49
53
  readonly elapsedMs: number;
54
+ name: string;
50
55
  constructor(elapsedMs: number);
51
56
  }
52
57
  /** [2400] X-2 — the durable event stream ended WITHOUT a terminal frame ({@link isTerminalFrame}) and re-opening it produced
@@ -65,6 +70,7 @@ export declare class SseIdleError extends Error {
65
70
  export declare class StreamEndedWithoutTerminalError extends Error {
66
71
  /** Last durable `id:` seen on this stream (= `task_event.seq`), or undefined if none arrived. Resume cursor. */
67
72
  readonly lastEventId?: string | undefined;
73
+ name: string;
68
74
  constructor(
69
75
  /** Last durable `id:` seen on this stream (= `task_event.seq`), or undefined if none arrived. Resume cursor. */
70
76
  lastEventId?: string | undefined);
@@ -145,6 +151,7 @@ export declare function readSseFrames(res: Response, heartbeatGraceMs?: number,
145
151
  export declare class SyncTruncatedError extends Error {
146
152
  readonly received: number;
147
153
  readonly expected?: number | undefined;
154
+ name: string;
148
155
  constructor(message: string, received: number, expected?: number | undefined);
149
156
  }
150
157
  /** Parse a 2c session-sync NDJSON entry stream from a (200) Response into the entry objects, validating the
package/dist/sse.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}