@sema-agent/sdk 4.1.0 → 4.3.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 (111) hide show
  1. package/README.md +34 -1
  2. package/dist/client.d.ts +10 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +7 -2
  5. package/dist/client.js.map +1 -1
  6. package/dist/control-types.d.ts +22 -4
  7. package/dist/control-types.d.ts.map +1 -1
  8. package/dist/control-types.js +3 -1
  9. package/dist/control-types.js.map +1 -1
  10. package/dist/errors.d.ts +42 -5
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/errors.js +81 -7
  13. package/dist/errors.js.map +1 -1
  14. package/dist/events.d.ts +63 -1
  15. package/dist/events.d.ts.map +1 -1
  16. package/dist/events.js.map +1 -1
  17. package/dist/health.d.ts +76 -7
  18. package/dist/health.d.ts.map +1 -1
  19. package/dist/health.js +40 -2
  20. package/dist/health.js.map +1 -1
  21. package/dist/idempotency.d.ts +11 -1
  22. package/dist/idempotency.d.ts.map +1 -1
  23. package/dist/idempotency.js +11 -1
  24. package/dist/idempotency.js.map +1 -1
  25. package/dist/index.d.ts +18 -4
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +11 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/registry/health.d.ts +6 -1
  30. package/dist/registry/health.d.ts.map +1 -1
  31. package/dist/registry/health.js +6 -4
  32. package/dist/registry/health.js.map +1 -1
  33. package/dist/registry/index.d.ts +7 -1
  34. package/dist/registry/index.d.ts.map +1 -1
  35. package/dist/registry/index.js +7 -1
  36. package/dist/registry/index.js.map +1 -1
  37. package/dist/resources/approvals.d.ts +43 -13
  38. package/dist/resources/approvals.d.ts.map +1 -1
  39. package/dist/resources/approvals.js +35 -12
  40. package/dist/resources/approvals.js.map +1 -1
  41. package/dist/resources/assistant.d.ts +21 -4
  42. package/dist/resources/assistant.d.ts.map +1 -1
  43. package/dist/resources/assistant.js +10 -3
  44. package/dist/resources/assistant.js.map +1 -1
  45. package/dist/resources/attachments.d.ts +9 -2
  46. package/dist/resources/attachments.d.ts.map +1 -1
  47. package/dist/resources/attachments.js.map +1 -1
  48. package/dist/resources/control/secrets.d.ts +10 -1
  49. package/dist/resources/control/secrets.d.ts.map +1 -1
  50. package/dist/resources/control/secrets.js +10 -1
  51. package/dist/resources/control/secrets.js.map +1 -1
  52. package/dist/resources/fleet.d.ts +11 -5
  53. package/dist/resources/fleet.d.ts.map +1 -1
  54. package/dist/resources/fleet.js +2 -1
  55. package/dist/resources/fleet.js.map +1 -1
  56. package/dist/resources/images.d.ts +10 -1
  57. package/dist/resources/images.d.ts.map +1 -1
  58. package/dist/resources/images.js +20 -5
  59. package/dist/resources/images.js.map +1 -1
  60. package/dist/resources/leader.d.ts +7 -3
  61. package/dist/resources/leader.d.ts.map +1 -1
  62. package/dist/resources/leader.js +7 -3
  63. package/dist/resources/leader.js.map +1 -1
  64. package/dist/resources/ops.d.ts +29 -2
  65. package/dist/resources/ops.d.ts.map +1 -1
  66. package/dist/resources/ops.js +6 -1
  67. package/dist/resources/ops.js.map +1 -1
  68. package/dist/resources/runs.d.ts +89 -18
  69. package/dist/resources/runs.d.ts.map +1 -1
  70. package/dist/resources/runs.js +53 -17
  71. package/dist/resources/runs.js.map +1 -1
  72. package/dist/resources/session-sync.d.ts +77 -17
  73. package/dist/resources/session-sync.d.ts.map +1 -1
  74. package/dist/resources/session-sync.js +81 -20
  75. package/dist/resources/session-sync.js.map +1 -1
  76. package/dist/resources/sessions.d.ts +82 -13
  77. package/dist/resources/sessions.d.ts.map +1 -1
  78. package/dist/resources/sessions.js +39 -7
  79. package/dist/resources/sessions.js.map +1 -1
  80. package/dist/resources/tool-approvals.d.ts +8 -5
  81. package/dist/resources/tool-approvals.d.ts.map +1 -1
  82. package/dist/resources/tool-approvals.js +2 -1
  83. package/dist/resources/tool-approvals.js.map +1 -1
  84. package/dist/resources/trace.d.ts +17 -3
  85. package/dist/resources/trace.d.ts.map +1 -1
  86. package/dist/resources/trace.js +25 -5
  87. package/dist/resources/trace.js.map +1 -1
  88. package/dist/resources/workflows.d.ts +42 -10
  89. package/dist/resources/workflows.d.ts.map +1 -1
  90. package/dist/resources/workflows.js +46 -9
  91. package/dist/resources/workflows.js.map +1 -1
  92. package/dist/resources/workspace.d.ts +36 -11
  93. package/dist/resources/workspace.d.ts.map +1 -1
  94. package/dist/resources/workspace.js.map +1 -1
  95. package/dist/sse.d.ts +58 -14
  96. package/dist/sse.d.ts.map +1 -1
  97. package/dist/sse.js +88 -15
  98. package/dist/sse.js.map +1 -1
  99. package/dist/sync.d.ts +37 -8
  100. package/dist/sync.d.ts.map +1 -1
  101. package/dist/sync.js +24 -8
  102. package/dist/sync.js.map +1 -1
  103. package/dist/transport.d.ts +31 -4
  104. package/dist/transport.d.ts.map +1 -1
  105. package/dist/transport.js +38 -6
  106. package/dist/transport.js.map +1 -1
  107. package/dist/types.d.ts +156 -51
  108. package/dist/types.d.ts.map +1 -1
  109. package/openapi.yaml +377 -59
  110. package/package.json +2 -2
  111. package/registry-openapi.yaml +34 -3
@@ -67,13 +67,54 @@ export type SessionNotifyStatus = "completed" | "failed" | "killed" | "cancelled
67
67
  * 且这份形状此前只手抄在上面的 JSDoc 里,和这里各自维护一份——两处漂移风险。类型即文档:字段语义见
68
68
  * `SessionsResource.notify` 的 JSDoc,此处不重复第二份手抄。 */
69
69
  export interface SessionNotifyBody {
70
+ /** ≤190 字符非空串(server `routes/notify-wake.ts:61-64` 的列宽门)。 */
70
71
  task_id: string;
71
72
  status: SessionNotifyStatus;
72
73
  summary: string;
73
74
  result?: string;
75
+ /** ⚠️ server 要的是**正整数**(`Number.isInteger(n) && n >= 1`,`notify-wake.ts:75`)——`0` / 负数 / 小数
76
+ * 一律 400 `request.field_invalid`。TS 侧表达不了这个下限,别当成任意 number。 */
74
77
  seq?: number;
78
+ /** ≤190 字符(同 `task_id` 的列宽门)。 */
75
79
  source?: string;
76
80
  }
81
+ /** POST /v1/sessions/:id/notify 的**判别联合**响应(server `routes/notify-wake.ts:98` / `:116` 两个出口)。
82
+ *
83
+ * 🔴 承重语义:server 用**状态码 + `delivery` 双载**表达同一件事 —— 200 `live` = 会话有活流、通知**已送达**;
84
+ * 202 `parked` = 没有活流,通知**排队等下次开流**才 drain。SDK 只把 body 交出来(拿不到状态码),所以
85
+ * `delivery` 是消费方唯一的判据。此前返回型是裸 `Record<string, unknown>`,这层区别在 TS 侧整个丢失,
86
+ * UI 只能强转或者向用户谎报"已通知"。 */
87
+ export type SessionNotifyResult = {
88
+ sessionId: string;
89
+ delivery: "live";
90
+ [k: string]: unknown;
91
+ } | {
92
+ sessionId: string;
93
+ delivery: "parked";
94
+ note: string;
95
+ [k: string]: unknown;
96
+ }
97
+ /** 老 server(无 `delivery` 键)/ 将来的第三态 —— 开集兜底,`delivery` 缺席时按"不确定"处理。 */
98
+ | {
99
+ sessionId?: string;
100
+ delivery?: undefined;
101
+ [k: string]: unknown;
102
+ };
103
+ /** POST /v1/sessions/:id/wake 的 200 形(server 直接下发 `resumeWake` 腿的 body;spec `openapi.yaml` wake 段
104
+ * 声明 required `[sessionId, status]` + 可选 `taskId`/`errorCode`/`errorMessage`/`retriable`)。
105
+ * `errorCode` 在场 = core 侧拒了(`wake.gate_pending` / `wake.nothing_to_deliver` 等),按码分支、别锚文案。 */
106
+ export interface SessionWakeResult {
107
+ sessionId: string;
108
+ status: string;
109
+ /** 续跑真的起来了才有 —— 这是新 run 的 id。 */
110
+ taskId?: string;
111
+ /** core 的机器码(`wake.*` 族)。在场 ⇒ 没续跑成。 */
112
+ errorCode?: string;
113
+ errorMessage?: string;
114
+ /** `true` = 换个时机重试有意义(如门未决);`false`/缺席 = 别自动重试。 */
115
+ retriable?: boolean;
116
+ [k: string]: unknown;
117
+ }
77
118
  export declare class SessionsResource {
78
119
  private readonly t;
79
120
  /** 2c session-sync (P1d) — `client.sessions.sync.*`: PULL a cloud session's whole state (manifest + NDJSON entry
@@ -101,10 +142,29 @@ export declare class SessionsResource {
101
142
  leafId?: string | null;
102
143
  }>;
103
144
  /** GET /v1/sessions/:id/events — session 级 SSE 真订阅(server ≥1.230,[1196] S1):`event: head`
104
- * 帧流(latest-wins;server 侧 25s 心跳)。轮询→订阅的换轨面:每帧=`{ sessionId, leafId }` 新水位,
145
+ * 帧流(latest-wins)。
146
+ *
147
+ * 🔴 [2400] CB-8/CB-9 —— 这条腿的保活是**裸注释行**,与其它 SSE 面不同,别照搬:server
148
+ * `routes/sessions.ts:355-379` 开流先写 `: connected\n\n`,之后每拍写 `: hb\n\n`;拍长 =
149
+ * `deps.sessionEventsHeartbeatMs ?? 25_000`(**运维可调**,不是固定 25s)。其它面(task/run/trace/
150
+ * workflow/fleet)写的是命名真帧 `event: heartbeat\ndata: {}` @15s —— 两种形状**都**要能吞:本 verb
151
+ * 用 `parseFrameStream` + `frame.event !== "head"` 过滤(裸注释行本就没有 `event`/`data`,天然滤掉),
152
+ * 并因为拍更慢而自带 60s grace(不是全局的 `HEARTBEAT_GRACE_MS`)。
153
+ *
154
+ * 轮询→订阅的换轨面:每帧=`{ sessionId, leafId }` 新水位,
105
155
  * 拿到即拉 tail 增量(内容职责仍在 tail/turns 面)。`lastLeafId` 传上次水位=命中现值时无首帧
106
- * (304 同义);断线自动重连并以最近水位续(重复帧被服务端抑制)。503=帽满(消费方回落 head 轮询,
107
- * `capabilities.sessionEvents` 预判);会话被删/换主时 server 主动断流,重连将 404 → 迭代器抛出。 */
156
+ * (304 同义);断线自动重连并以最近水位续(重复帧被服务端抑制)。
157
+ * 探测位 `capabilities.sessionEvents`(与本路由 501 同谓词)—— 别 trial-by-501。
158
+ * 会话被删/换主时 server 主动断流,重连将 404 → 迭代器抛出。
159
+ *
160
+ * 🔴 **503 有四个不同的机器码,回退方式不同**(server 在 `routes/sessions.ts:234-236` 专门解释了为什么
161
+ * 必须带码:它与 drain 的 503 走同一条流,没有码消费端只能靠自由文本区分)。别对 503 统一回退:
162
+ * - `state.sse_connection_cap`(`:238`)—— 连接帽满。**自愈**:回落 `/head` 轮询,稍后重试订阅。
163
+ * - `state.sse_probe_cap`(`:352`)—— 探针帽。同上,自愈。
164
+ * - `state.sse_owner_lookup_cap`(`:263`)—— 存储并发许可耗尽。退避重试,别热循环。
165
+ * - `state.sse_owner_lookup_stalled`(`:284`)—— 存储**悬死**。这个不自愈:该报警/换副本,
166
+ * 把它当"帽满"去永远轮询就是把一个需要人介入的故障静默掉。
167
+ * `parseFrameStream` 对非 2xx 直接抛(不重连),所以 503 不会变成热循环——异常到手后按上表分支。 */
108
168
  watch(sessionId: string, opts?: {
109
169
  lastLeafId?: string | null;
110
170
  signal?: AbortSignal;
@@ -127,22 +187,23 @@ export declare class SessionsResource {
127
187
  }): Promise<SessionSettingsResponse>;
128
188
  /** POST /v1/sessions/:id/notify — 会话外事件注入(daemon 终态回报等;src/http/routes/notify-wake.ts 实拆)。
129
189
  * body: {@link SessionNotifyBody}(`task_id, status, summary, result?, seq?, source?`);
130
- * 坏形 400 typed;owner 门 fail-closed(未知/他人 session=404 无 oracle;env-only 无 ownerOf=501)。 */
190
+ * 坏形 400 typed;owner 门 fail-closed(未知/他人 session=404 无 oracle;env-only 无 ownerOf=501;
191
+ * 无 inbox 无法 park=501 `capability.workflow_store_required`)。
192
+ * 返回 {@link SessionNotifyResult} —— **分支 `delivery`**:`"live"`(200,已送达)vs `"parked"`(202,
193
+ * 排队等下次开流)。别把两者都渲染成"已通知"。 */
131
194
  notify(sessionId: string, body: SessionNotifyBody, opts?: {
132
195
  signal?: AbortSignal;
133
- }): Promise<{
134
- [k: string]: unknown;
135
- }>;
196
+ }): Promise<SessionNotifyResult>;
136
197
  /** POST /v1/sessions/:id/wake — 唤醒 task_done 纯 park 的会话续跑(design/144 §3,core 1.283 wake 臂;
137
198
  * src/http/routes/notify-wake.ts 实拆)。非门决策:绝不 allow/deny 任何 pending 动作——有未决门=core `wake.gate_pending`
138
- * 拒;空 park 且无 message=`wake.nothing_to_deliver` 拒。`message` 作续跑首轮输入(可省=送 pendingSteer)。 */
199
+ * 拒;空 park 且无 message=`wake.nothing_to_deliver` 拒。`message` 作续跑首轮输入(可省=送 pendingSteer);
200
+ * ⚠️ 给了就必须是**非空**串(server `notify-wake.ts:139-142`,空串 400)。
201
+ * 返回 {@link SessionWakeResult} —— 200 也可能带 `errorCode`(core 拒了),按码分支、别只看 HTTP 码。 */
139
202
  wake(sessionId: string, body?: {
140
203
  message?: string;
141
204
  }, opts?: {
142
205
  signal?: AbortSignal;
143
- }): Promise<{
144
- [k: string]: unknown;
145
- }>;
206
+ }): Promise<SessionWakeResult>;
146
207
  /** GET /v1/sessions/:id?message=<index> — the single-message expand leg (server ≥1.162,
147
208
  * the companion of a `blobCap`-truncated windowed read): full body of ONE message by its
148
209
  * stable index within the current floorEntryId generation. Out-of-range → 404 (typed
@@ -173,8 +234,16 @@ export declare class SessionsResource {
173
234
  sessionId: string;
174
235
  }>;
175
236
  /** E21 — DELETE /v1/sessions/:id → `{ deleted }` (idempotent: `false` when nothing existed). Purges the
176
- * session's conversation history + the service-owned run-ledger/checkpoint/tool-result rows. Owner-scoped
177
- * (non-owner → 404). 🔴 409 (typed ConflictError, body `activeTaskId`) while a run is LIVE on the session —
237
+ * session's conversation history + the service-owned run-ledger/checkpoint/tool-result rows.
238
+ *
239
+ * 🔴 **A non-owner gets 200 `{deleted:false}`, NOT 404** (server `routes/sessions.ts:498`, with the reason
240
+ * written down at `:495-497`: a 404-vs-200 split would be an existence oracle, while `deleted:false` is both
241
+ * honest and idempotent-shaped). This is the OPPOSITE of `fork`, which really does 404 a non-owner — the two
242
+ * verbs have different postures and this JSDoc used to claim they were the same. So
243
+ * `try { await delete() } catch (NotFoundError) {…}` NEVER fires for someone else's session: the promise
244
+ * RESOLVES and the UI happily reports "deleted" having deleted nothing. Branch on `deleted` instead.
245
+ *
246
+ * 🔴 409 (typed ConflictError, body `activeTaskId`) while a run is LIVE on the session —
178
247
  * cancel it first (don't orphan the session lock). 501 without a durable session store. Server-idempotent;
179
248
  * not a submit → no SDK retry. */
180
249
  delete(sessionId: string, opts?: {
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"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"}
@@ -57,10 +57,29 @@ export class SessionsResource {
57
57
  return { changed: true, etag: res.headers.get("etag") ?? `"${body.leafId ?? "empty"}"`, leafId: body.leafId };
58
58
  }
59
59
  /** GET /v1/sessions/:id/events — session 级 SSE 真订阅(server ≥1.230,[1196] S1):`event: head`
60
- * 帧流(latest-wins;server 侧 25s 心跳)。轮询→订阅的换轨面:每帧=`{ sessionId, leafId }` 新水位,
60
+ * 帧流(latest-wins)。
61
+ *
62
+ * 🔴 [2400] CB-8/CB-9 —— 这条腿的保活是**裸注释行**,与其它 SSE 面不同,别照搬:server
63
+ * `routes/sessions.ts:355-379` 开流先写 `: connected\n\n`,之后每拍写 `: hb\n\n`;拍长 =
64
+ * `deps.sessionEventsHeartbeatMs ?? 25_000`(**运维可调**,不是固定 25s)。其它面(task/run/trace/
65
+ * workflow/fleet)写的是命名真帧 `event: heartbeat\ndata: {}` @15s —— 两种形状**都**要能吞:本 verb
66
+ * 用 `parseFrameStream` + `frame.event !== "head"` 过滤(裸注释行本就没有 `event`/`data`,天然滤掉),
67
+ * 并因为拍更慢而自带 60s grace(不是全局的 `HEARTBEAT_GRACE_MS`)。
68
+ *
69
+ * 轮询→订阅的换轨面:每帧=`{ sessionId, leafId }` 新水位,
61
70
  * 拿到即拉 tail 增量(内容职责仍在 tail/turns 面)。`lastLeafId` 传上次水位=命中现值时无首帧
62
- * (304 同义);断线自动重连并以最近水位续(重复帧被服务端抑制)。503=帽满(消费方回落 head 轮询,
63
- * `capabilities.sessionEvents` 预判);会话被删/换主时 server 主动断流,重连将 404 → 迭代器抛出。 */
71
+ * (304 同义);断线自动重连并以最近水位续(重复帧被服务端抑制)。
72
+ * 探测位 `capabilities.sessionEvents`(与本路由 501 同谓词)—— 别 trial-by-501。
73
+ * 会话被删/换主时 server 主动断流,重连将 404 → 迭代器抛出。
74
+ *
75
+ * 🔴 **503 有四个不同的机器码,回退方式不同**(server 在 `routes/sessions.ts:234-236` 专门解释了为什么
76
+ * 必须带码:它与 drain 的 503 走同一条流,没有码消费端只能靠自由文本区分)。别对 503 统一回退:
77
+ * - `state.sse_connection_cap`(`:238`)—— 连接帽满。**自愈**:回落 `/head` 轮询,稍后重试订阅。
78
+ * - `state.sse_probe_cap`(`:352`)—— 探针帽。同上,自愈。
79
+ * - `state.sse_owner_lookup_cap`(`:263`)—— 存储并发许可耗尽。退避重试,别热循环。
80
+ * - `state.sse_owner_lookup_stalled`(`:284`)—— 存储**悬死**。这个不自愈:该报警/换副本,
81
+ * 把它当"帽满"去永远轮询就是把一个需要人介入的故障静默掉。
82
+ * `parseFrameStream` 对非 2xx 直接抛(不重连),所以 503 不会变成热循环——异常到手后按上表分支。 */
64
83
  async *watch(sessionId, opts) {
65
84
  let cursor = opts?.lastLeafId;
66
85
  const open = () => this.t.openRaw({
@@ -90,13 +109,18 @@ export class SessionsResource {
90
109
  }
91
110
  /** POST /v1/sessions/:id/notify — 会话外事件注入(daemon 终态回报等;src/http/routes/notify-wake.ts 实拆)。
92
111
  * body: {@link SessionNotifyBody}(`task_id, status, summary, result?, seq?, source?`);
93
- * 坏形 400 typed;owner 门 fail-closed(未知/他人 session=404 无 oracle;env-only 无 ownerOf=501)。 */
112
+ * 坏形 400 typed;owner 门 fail-closed(未知/他人 session=404 无 oracle;env-only 无 ownerOf=501;
113
+ * 无 inbox 无法 park=501 `capability.workflow_store_required`)。
114
+ * 返回 {@link SessionNotifyResult} —— **分支 `delivery`**:`"live"`(200,已送达)vs `"parked"`(202,
115
+ * 排队等下次开流)。别把两者都渲染成"已通知"。 */
94
116
  async notify(sessionId, body, opts) {
95
117
  return this.t.request({ method: "POST", path: `/v1/sessions/${encodeURIComponent(sessionId)}/notify`, body, signal: opts?.signal });
96
118
  }
97
119
  /** POST /v1/sessions/:id/wake — 唤醒 task_done 纯 park 的会话续跑(design/144 §3,core 1.283 wake 臂;
98
120
  * src/http/routes/notify-wake.ts 实拆)。非门决策:绝不 allow/deny 任何 pending 动作——有未决门=core `wake.gate_pending`
99
- * 拒;空 park 且无 message=`wake.nothing_to_deliver` 拒。`message` 作续跑首轮输入(可省=送 pendingSteer)。 */
121
+ * 拒;空 park 且无 message=`wake.nothing_to_deliver` 拒。`message` 作续跑首轮输入(可省=送 pendingSteer);
122
+ * ⚠️ 给了就必须是**非空**串(server `notify-wake.ts:139-142`,空串 400)。
123
+ * 返回 {@link SessionWakeResult} —— 200 也可能带 `errorCode`(core 拒了),按码分支、别只看 HTTP 码。 */
100
124
  async wake(sessionId, body, opts) {
101
125
  return this.t.request({ method: "POST", path: `/v1/sessions/${encodeURIComponent(sessionId)}/wake`, body: body ?? {}, signal: opts?.signal });
102
126
  }
@@ -146,8 +170,16 @@ export class SessionsResource {
146
170
  });
147
171
  }
148
172
  /** E21 — DELETE /v1/sessions/:id → `{ deleted }` (idempotent: `false` when nothing existed). Purges the
149
- * session's conversation history + the service-owned run-ledger/checkpoint/tool-result rows. Owner-scoped
150
- * (non-owner → 404). 🔴 409 (typed ConflictError, body `activeTaskId`) while a run is LIVE on the session —
173
+ * session's conversation history + the service-owned run-ledger/checkpoint/tool-result rows.
174
+ *
175
+ * 🔴 **A non-owner gets 200 `{deleted:false}`, NOT 404** (server `routes/sessions.ts:498`, with the reason
176
+ * written down at `:495-497`: a 404-vs-200 split would be an existence oracle, while `deleted:false` is both
177
+ * honest and idempotent-shaped). This is the OPPOSITE of `fork`, which really does 404 a non-owner — the two
178
+ * verbs have different postures and this JSDoc used to claim they were the same. So
179
+ * `try { await delete() } catch (NotFoundError) {…}` NEVER fires for someone else's session: the promise
180
+ * RESOLVES and the UI happily reports "deleted" having deleted nothing. Branch on `deleted` instead.
181
+ *
182
+ * 🔴 409 (typed ConflictError, body `activeTaskId`) while a run is LIVE on the session —
151
183
  * cancel it first (don't orphan the session lock). 501 without a durable session store. Server-idempotent;
152
184
  * not a submit → no SDK retry. */
153
185
  async delete(sessionId, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/resources/sessions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyBxD,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAgG/E,SAAS,eAAe,CAAC,MAAyB;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,gBAAgB;IAME;IAL7B;;0EAEsE;IAC7D,IAAI,CAAsB;IAEnC,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;sFAIkF;IAClF,KAAK,CAAC,GAAG,CACP,SAAiB,EACjB,IAAkD;QAElD,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAgB;YACnC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE;YAC7E,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;wEAEoE;IACpE,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAA8C;QAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,OAAO;YAC1D,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAK,CAAC,IAAK,EAAE,CAAC;QACrE,kCAAkC;QAClC,qGAAqG;QACrG,gFAAgF;QAChF,oFAAoF;QACpF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiD,CAAC;QAChF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAChH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;yEAuBqE;IACrE,KAAK,CAAC,CAAC,KAAK,CACV,SAAiB,EACjB,IAAsF;QAEtF,IAAI,MAAM,GAA8B,IAAI,EAAE,UAAU,CAAC;QACzD,MAAM,IAAI,GAAG,GAAsB,EAAE,CACnC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACb,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,UAAU,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,kBAAkB,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAChJ,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;QACL,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;YACxK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS,CAAC,UAAU;YAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAiD,CAAC;YACpF,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO;YAC7B,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IAED;;oCAEgC;IAChC,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAA+B;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7H,CAAC;IAED;;uEAEmE;IACnE,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,IAA+B;QAC/D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACjI,CAAC;IAED;;;;;kCAK8B;IAC9B,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,IAAuB,EACvB,IAA+B;QAE/B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtI,CAAC;IAED;;;;yFAIqF;IACrF,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAA2B,EAAE,IAA+B;QACxF,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChJ,CAAC;IAED;;;+EAG2E;IAC3E,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,KAAa,EACb,IAA+B;QAE/B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAyB;YAC5C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAClG,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;6DAIyD;IACzD,KAAK,CAAC,IAAI,CACR,MAAwE,EACxE,IAA+B;QAE/B,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,EAAE,MAAM;YAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,KAAK;YAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,uGAAuG;QACvG,IAAI,MAAM,EAAE,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAkB;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;2FAGuF;IACvF,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,IAA+B;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAwB;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,OAAO;YAC1D,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;uCAYmC;IACnC,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,IAA+B;QAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAuB;YAC1C,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE;YACrD,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;mBAIe;IACf,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,IAA+B;QAChE,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAgC;YACnD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,SAAS;YAC5D,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;wBAKoB;IACpB,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,IAA6D,EAC7D,IAA+B;QAE/B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAgC;YACnD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,SAAS;YAC5D,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;oHAIgH;IAChH,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,IAA+B;QAC1D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAiB;YACpC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,MAAM;YACzD,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /** tool-approvals — [830]① live-stream TOOL-APPROVAL HITL (server 1.191+ `ToolApprovalCoordinator`, gated on
2
- * `TOOL_APPROVAL_ENABLED`; server 1.214 tool-approval.js:113 `respond`). The THIRD sibling of
2
+ * `TOOL_APPROVAL_ENABLED`; server `src/tool-approval.ts:490` `ToolApprovalCoordinator.respond`). The THIRD sibling of
3
3
  * {@link import("./questions.js").QuestionsResource} / {@link import("./elicitations.js").ElicitationsResource}:
4
4
  * elicitation = an inbound-MCP-server ask, question = the agent's own AskUserQuestion, THIS = the ENGINE's
5
5
  * permission gate ("may I run this tool?") surfaced to a live human — the suspended↔overlay bridge's decide面.
@@ -18,8 +18,9 @@
18
18
  * 🔴 UNTRUSTED for display: `message`/`args` are service secret-redacted (+ args size-bounded, >16 KiB →
19
19
  * `argsOmitted:true`) but remain model/tool-authored — render only, never re-feed to a model. */
20
20
  import type { Transport } from "../transport.js";
21
- /** The human's decision (server `parseToolApprovalDecision`, tool-approval.js:15 — closed 3-word set; anything
22
- * else is a 400). `allow_session` = allow AND remember for this session's category (fs-write tools share ONE
21
+ /** The human's decision (server `parseToolApprovalResponse`, `src/tool-approval.ts:131` — closed 3-word set;
22
+ * anything else is a 400. [2400] HITL-10: the function name was written `parseToolApprovalDecision`, which does
23
+ * not exist in the server — grepping for it finds nothing. `allow_session` = allow AND remember for this session's category (fs-write tools share ONE
23
24
  * category: approving Write covers Edit/NotebookEdit; other tools are per-tool) — the CC "don't ask again this
24
25
  * session" semantic. */
25
26
  export type ToolApprovalDecision = "allow" | "allow_session" | "deny";
@@ -74,7 +75,8 @@ export interface ToolApprovalFrame {
74
75
  outcome?: "allowed" | "denied" | "expired";
75
76
  [k: string]: unknown;
76
77
  }
77
- /** The 200 ack from a successful respond (server tool-approval.js:133 — exact shape, `decision` echoed). */
78
+ /** The 200 ack from a successful respond (server `src/tool-approval.ts:520` 起的 ack 组装 — exact shape,
79
+ * `decision` echoed). */
78
80
  export interface ToolApprovalRespondAck {
79
81
  approvalId: string;
80
82
  delivery: "applied";
@@ -94,7 +96,8 @@ export declare class ToolApprovalsResource {
94
96
  /** POST /v1/tool-approvals/:id/respond — settle a parked LIVE tool-approval gate with the human's decision.
95
97
  * The engine's suspended tool call resumes (allow) or is refused (deny) on the still-open task connection.
96
98
  *
97
- * 🔴 OWNER-GATED with a 404 (NO existence oracle, server tool-approval.js:118): a non-owner AND an
99
+ * 🔴 OWNER-GATED with a 404 (NO existence oracle, server `src/tool-approval.ts:496` — errorCode
100
+ * `tool_approval.not_pending`): a non-owner AND an
98
101
  * unknown/settled/expired/wrong-replica id both get the same 404 — never branch existence off the status.
99
102
  * A malformed body (`decision` outside the 3-word set) is a 400 (existence-independent). A worker without
100
103
  * `TOOL_APPROVAL_ENABLED` → 501 (probe `capabilities.toolApproval` instead of trial-by-501); missing
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approvals.d.ts","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;kGAkBkG;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;yBAGyB;AACzB,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;AAEtE;;kGAEkG;AAClG;;;uCAGuC;AACvC,eAAO,MAAM,wBAAwB,2JAY3B,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,GAAG,wBAAwB,CAAC;IACjD,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;qGAMiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;+DAK2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;oCAIgC;IAChC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB;;;qCAGiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8GAA8G;IAC9G,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;mEAC+D;IAC/D,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,4GAA4G;AAC5G,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;;yCAEqC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;0CAEsC;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;;;;uGASmG;IAC7F,OAAO,CACX,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;QACJ,QAAQ,EAAE,oBAAoB,CAAC;QAC/B;;uCAE+B;QAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,EACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,sBAAsB,CAAC;CAQnC"}
1
+ {"version":3,"file":"tool-approvals.d.ts","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;kGAkBkG;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;yBAIyB;AACzB,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;AAEtE;;kGAEkG;AAClG;;;uCAGuC;AACvC,eAAO,MAAM,wBAAwB,2JAY3B,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,GAAG,wBAAwB,CAAC;IACjD,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;qGAMiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;+DAK2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;oCAIgC;IAChC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB;;;qCAGiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8GAA8G;IAC9G,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;mEAC+D;IAC/D,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;0BAC0B;AAC1B,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;;yCAEqC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;0CAEsC;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;;;;;uGAUmG;IAC7F,OAAO,CACX,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;QACJ,QAAQ,EAAE,oBAAoB,CAAC;QAC/B;;uCAE+B;QAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,EACD,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,sBAAsB,CAAC;CAQnC"}
@@ -26,7 +26,8 @@ export class ToolApprovalsResource {
26
26
  /** POST /v1/tool-approvals/:id/respond — settle a parked LIVE tool-approval gate with the human's decision.
27
27
  * The engine's suspended tool call resumes (allow) or is refused (deny) on the still-open task connection.
28
28
  *
29
- * 🔴 OWNER-GATED with a 404 (NO existence oracle, server tool-approval.js:118): a non-owner AND an
29
+ * 🔴 OWNER-GATED with a 404 (NO existence oracle, server `src/tool-approval.ts:496` — errorCode
30
+ * `tool_approval.not_pending`): a non-owner AND an
30
31
  * unknown/settled/expired/wrong-replica id both get the same 404 — never branch existence off the status.
31
32
  * A malformed body (`decision` outside the 3-word set) is a 400 (existence-independent). A worker without
32
33
  * `TOOL_APPROVAL_ENABLED` → 501 (probe `capabilities.toolApproval` instead of trial-by-501); missing
@@ -1 +1 @@
1
- {"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"AA2BA;;kGAEkG;AAClG;;;uCAGuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,SAAS;IACT,MAAM;IACN,aAAa;IACb,SAAS;CACD,CAAC;AA6DX,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;;;;;;;;;uGASmG;IACnG,KAAK,CAAC,OAAO,CACX,EAAU,EACV,IAMC,EACD,IAA+B;QAE/B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAyB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,UAAU;YAC5D,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"tool-approvals.js","sourceRoot":"","sources":["../../src/resources/tool-approvals.ts"],"names":[],"mappings":"AA4BA;;kGAEkG;AAClG;;;uCAGuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,SAAS;IACT,MAAM;IACN,aAAa;IACb,SAAS;CACD,CAAC;AA8DX,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,CAAY;QAAZ,MAAC,GAAD,CAAC,CAAW;IAAG,CAAC;IAE7C;;;;;;;;;;uGAUmG;IACnG,KAAK,CAAC,OAAO,CACX,EAAU,EACV,IAMC,EACD,IAA+B;QAE/B,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAyB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,UAAU;YAC5D,IAAI;YACJ,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -22,7 +22,13 @@ export declare class TraceResource {
22
22
  nextCursor?: string;
23
23
  }>;
24
24
  /** GET /v1/tasks/source-summary?sinceSec= — per-door usage rollup `{rows:[{source,status,count}]}`
25
- * (the pinned wire contract; trace-auth surface). The web usage overview's data source. */
25
+ * (the pinned wire contract; trace-auth surface).
26
+ *
27
+ * 🔴 **ops-only** (server `routes/trace-usage.ts:51-54`): `if (!isFleetWide(req)) → 401 auth.unauthorized`.
28
+ * This is a CROSS-TENANT aggregate with no owner-scoped variant, so a plain principal caller gets 401 —
29
+ * ALWAYS, with a perfectly valid credential. Do NOT wire it behind an end-user JWT (the symptom reads as a
30
+ * login/credential problem and sends the investigation the wrong way); it is a fleet-console data source.
31
+ * `sinceSec` is clamped server-side to `[60 s, 30 d]`; absent ⇒ 24 h. */
26
32
  sourceSummary(opts?: {
27
33
  sinceSec?: number;
28
34
  signal?: AbortSignal;
@@ -34,9 +40,17 @@ export declare class TraceResource {
34
40
  count: number;
35
41
  }[];
36
42
  }>;
37
- /** GET /v1/tasks/:id/turns — the full turn trace (the workspace action timeline). Envelope
38
- * `{ turns, nextCursor?, retainedFrom }` (pinned wire contract); turn item shape draft. */
43
+ /** GET /v1/tasks/:id/turns[?limit=&cursor=] — the turn trace (the workspace action timeline). Envelope
44
+ * `{ turns, nextCursor?, retainedFrom }` (pinned wire contract); turn item shape draft.
45
+ *
46
+ * 🔴 **PAGED, newest-first** (server `routes/trace-usage.ts:223-232`): `limit` is clamped to 1..100 and
47
+ * DEFAULTS TO 20 — a 500-turn run does not come back whole. `cursor` is an opaque turn-seq: pass back the
48
+ * `nextCursor` of the previous page to walk BACKWARD (older). `nextCursor` is present only while more
49
+ * eligible turns remain. Until 4.3.0 this method took no query args at all, so the `nextCursor` it returned
50
+ * could not be sent anywhere — the older pages were unreachable through the SDK. */
39
51
  turns(taskId: string, opts?: {
52
+ limit?: number;
53
+ cursor?: string;
40
54
  signal?: AbortSignal;
41
55
  }): Promise<{
42
56
  turns: TraceTurn[];
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/resources/trace.ts"],"names":[],"mappings":"AAAA;;iGAEiG;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGtF,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;4DAEwD;IAClD,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYtM;gGAC4F;IAGtF,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAKxK;gGAC4F;IACtF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzI;2HACuH;IACjH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IASpG;;;;;;;;;;kFAU8E;IACvE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC;CA6BvH"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/resources/trace.ts"],"names":[],"mappings":"AAAA;;iGAEiG;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGtF,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;4DAEwD;IAClD,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYtM;;;;;;;8EAO0E;IAGpE,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAOxK;;;;;;;yFAOqF;IAC/E,KAAK,CACT,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC/D,OAAO,CAAC;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ9E;2HACuH;IACjH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IASpG;;;;;;;;;;kFAU8E;IACvE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC;CA6BvH"}
@@ -25,17 +25,37 @@ export class TraceResource {
25
25
  return this.t.request({ method: "GET", path: `/v1/tasks${qs ? `?${qs}` : ""}`, signal: opts?.signal });
26
26
  }
27
27
  /** GET /v1/tasks/source-summary?sinceSec= — per-door usage rollup `{rows:[{source,status,count}]}`
28
- * (the pinned wire contract; trace-auth surface). The web usage overview's data source. */
28
+ * (the pinned wire contract; trace-auth surface).
29
+ *
30
+ * 🔴 **ops-only** (server `routes/trace-usage.ts:51-54`): `if (!isFleetWide(req)) → 401 auth.unauthorized`.
31
+ * This is a CROSS-TENANT aggregate with no owner-scoped variant, so a plain principal caller gets 401 —
32
+ * ALWAYS, with a perfectly valid credential. Do NOT wire it behind an end-user JWT (the symptom reads as a
33
+ * login/credential problem and sends the investigation the wrong way); it is a fleet-console data source.
34
+ * `sinceSec` is clamped server-side to `[60 s, 30 d]`; absent ⇒ 24 h. */
29
35
  // 2.1.4:返回型对齐 server 实况(trace-usage.ts:61)——顶层恒发 sinceSec(生效窗口秒);store 三实现的
30
36
  // source 签名均为 string|null(census 批2 三段发现的 spec 谎同源修)。
31
37
  async sourceSummary(opts) {
32
- const qs = opts?.sinceSec ? `?sinceSec=${opts.sinceSec}` : "";
38
+ // `!== undefined`,不是真值判断:`sinceSec: 0` 曾被 falsy-drop 成"没传"⇒ 落默认 24h,而调用方的本意是
39
+ // 让 server 把它夹到下限 60s。显式传了就发,值域由 server 判。
40
+ const qs = opts?.sinceSec !== undefined ? `?sinceSec=${encodeURIComponent(String(opts.sinceSec))}` : "";
33
41
  return this.t.request({ method: "GET", path: `/v1/tasks/source-summary${qs}`, signal: opts?.signal });
34
42
  }
35
- /** GET /v1/tasks/:id/turns — the full turn trace (the workspace action timeline). Envelope
36
- * `{ turns, nextCursor?, retainedFrom }` (pinned wire contract); turn item shape draft. */
43
+ /** GET /v1/tasks/:id/turns[?limit=&cursor=] — the turn trace (the workspace action timeline). Envelope
44
+ * `{ turns, nextCursor?, retainedFrom }` (pinned wire contract); turn item shape draft.
45
+ *
46
+ * 🔴 **PAGED, newest-first** (server `routes/trace-usage.ts:223-232`): `limit` is clamped to 1..100 and
47
+ * DEFAULTS TO 20 — a 500-turn run does not come back whole. `cursor` is an opaque turn-seq: pass back the
48
+ * `nextCursor` of the previous page to walk BACKWARD (older). `nextCursor` is present only while more
49
+ * eligible turns remain. Until 4.3.0 this method took no query args at all, so the `nextCursor` it returned
50
+ * could not be sent anywhere — the older pages were unreachable through the SDK. */
37
51
  async turns(taskId, opts) {
38
- return this.t.request({ method: "GET", path: `/v1/tasks/${encodeURIComponent(taskId)}/turns`, signal: opts?.signal });
52
+ const q = new URLSearchParams();
53
+ if (opts?.limit !== undefined)
54
+ q.set("limit", String(opts.limit));
55
+ if (opts?.cursor !== undefined)
56
+ q.set("cursor", opts.cursor);
57
+ const qs = q.toString();
58
+ return this.t.request({ method: "GET", path: `/v1/tasks/${encodeURIComponent(taskId)}/turns${qs ? `?${qs}` : ""}`, signal: opts?.signal });
39
59
  }
40
60
  /** GET /v1/tasks/:id/artifacts — workspace artifacts (projection of the persisted trace; co-signed
41
61
  * the pinned wire contract). Job-level aggregation = list by jobId then fetch per run (each carries taskId+jobId). */
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/resources/trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/resources/trace.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@
9
9
  * 不复用 `parseSse`(其硬编码 AgentEvent + 自动重连,与 workflow 帧/无-resume 语义冲突)→ 留**专用 reader follow-on**。 */
10
10
  import type { Transport } from "../transport.js";
11
11
  import type { WorkflowRunSummary, WorkflowRun, WorkflowStreamEvent } from "../types.js";
12
- /** workflow-agent steer 200 receipt (server 1.214 server.js:1755 — exact literal: `status:"running"`,
13
- * `delivery:"applied"`, `marker` = the engine-minted delivery marker; NO `note`, unlike the run-subagent verb). */
12
+ /** workflow-agent steer 200 receipt (server 5.3.0 `src/http/routes/workflows.ts:279` — exact literal:
13
+ * `status:"running"`, `delivery:"applied"`, `marker` = the engine-minted delivery marker; NO `note`, unlike the
14
+ * run-subagent verb). (4.3.0 坐标刷新:此前写的是 `server 1.214 server.js:1755`,那是 routes 拆分前的门牌。) */
14
15
  export interface WorkflowAgentSteerReceipt {
15
16
  runId: string;
16
17
  label: string;
@@ -73,9 +74,16 @@ export declare class WorkflowsResource {
73
74
  * 批次①-5:此前单一必填-status 形状不诚实,截断行现网真的没有 status)。`nextOffset` = the pagination
74
75
  * cursor, present only when the page came back exactly `limit`-sized (more may exist) — 🔴 此前类型上
75
76
  * 完全没有这个字段,消费方读不到分页续读钩子。
77
+ *
78
+ * 🔴 **分页入参(4.3.0,FW-2)**:`limit` 缺省 20、**上限 50**;`offset` >= 0(server `routes/workflows.ts:123-124`)。
79
+ * 在此之前 SDK 补了 `nextOffset` 字段却没补能用它的入口 —— 一个 21 个 agent 的 workflow 拿回 20 条 +
80
+ * `nextOffset: 20`,消费方握着游标却发现没有任何参数能把它送回去,第 21 条 agent 的失败诊断在 SDK 通路上
81
+ * **不可达**,只能绕过 SDK 裸拼 URL(而绕过 SDK 正是这个包存在的理由被否定的那一刻)。
76
82
  * 404 = run 不存在/非 owner(无存在性 oracle);501 = journal store 未接(self-orchestration off)。 */
77
83
  journal(runId: string, opts?: {
78
84
  session?: string;
85
+ limit?: number;
86
+ offset?: number;
79
87
  signal?: AbortSignal;
80
88
  }): Promise<WorkflowJournalPage>;
81
89
  /** `session` filter semantics(distinct from the per-id accept-phase): present = strict-equality filter
@@ -95,24 +103,39 @@ export declare class WorkflowsResource {
95
103
  session?: string;
96
104
  signal?: AbortSignal;
97
105
  }): Promise<WorkflowRun>;
98
- /** server 1.214 (server.js:1706 WORKFLOW_AGENT_STEER_RE region) — STEER a RUNNING AGENT of a WORKFLOW run
106
+ /** server 5.3.0 (`src/http/routes/workflows.ts:25` 的 `WORKFLOW_AGENT_STEER_RE` 常量 / `:194` 的处理段)
107
+ * — STEER a RUNNING AGENT of a WORKFLOW run
99
108
  * (the S8 self-orchestration sibling of `runs.steerSubagent`): inject `content` into the labelled live agent;
100
109
  * it drains at the agent's next tool round. `label` = the workflow-graph agent label (NOT a toolCallId);
101
110
  * a label shared by >1 live agents → 409 `steering.ambiguous_label`. Body `{ content }` (non-empty, else 400).
102
111
  * 200 {@link WorkflowAgentSteerReceipt} (`marker`, no `note`).
103
112
  *
104
113
  * 🔴 REPLICA-LOCAL live handle: 409 `steering.not_running` = agent settled / workflow not running / live on
105
- * another replica (cross-replica live-steer unsupported). 501 = worker without SELF_ORCHESTRATION_ENABLED
106
- * (gate on `capabilities.workflows`). Owner-scoped 404 (operator principals bypass). AT-MOST-ONCE (no retry). */
114
+ * another replica (cross-replica live-steer unsupported).
115
+ *
116
+ * 🔴 **413 `steer.content_too_large`**(4.3.0 补,FW-12):`content` 超过 `STEER_IN_MAX_REQUEST_CHARS` 时
117
+ * server **拒收**(`routes/workflows.ts:232-240`),而不是先截断再投递 —— `:229-231` 写明了为什么必须是拒:
118
+ * 先截会让引擎的 `[+N chars]` 披露低报,且脱敏门要同步、还烧事件循环。消费方应当分出这条臂并提示
119
+ * 「内容太长,请缩短」,而不是落进「未知错误 / 服务异常」兜底(用户根本不知道该怎么办)。
120
+ *
121
+ * 🔴 **501 的门是 `capabilities.workflowsList`,不是 `capabilities.workflows`**(4.3.0 更正,FW-5):
122
+ * 501 的真判据是 `!deps.workflowRunStore`(`routes/workflows.ts:197-200`),而
123
+ * `workflows: deps.workflowsCapable ?? Boolean(deps.workflowRunStore)` 与
124
+ * `workflowsList: Boolean(deps.workflowRunStore)` 是**两个不同的量**(`routes/capabilities.ts:276-289` 的注
125
+ * 逐字区分:`workflows` = ENGINE-CAN「引擎能不能自编排」,`workflowsList` = 能不能 durable 列 run)。
126
+ * 同一判据也管着 `list`/`get`/`journal`/`stream` 四条读面。查错了键的后果双向都有:
127
+ * `workflows:true, workflowsList:false` ⇒ 入口被点亮、每次点都吃 501;反过来则把一个能用的面藏起来。
128
+ * Owner-scoped 404 (operator principals bypass). AT-MOST-ONCE (no retry). */
107
129
  steerAgent(runId: string, label: string, message: {
108
130
  content: string;
109
131
  }, opts?: {
110
132
  session?: string;
111
133
  signal?: AbortSignal;
112
134
  }): Promise<WorkflowAgentSteerReceipt>;
113
- /** GET /v1/workflows/:id/stream — LIVE S8 self-orchestration progress (`streamWorkflowRun` +
114
- * core `subscribeWorkflow`, server.ts). SSE; FIRST frame is `meta` `{version, runId}`, then each subsequent
115
- * frame carries a core `WorkflowEvent` (its `type` becomes the SSE `event` name; see `WorkflowStreamEvent`).
135
+ /** GET /v1/workflows/:id/stream — LIVE S8 self-orchestration progress (`streamWorkflowRun`,
136
+ * server 5.3.0 `src/http/routes/workflows.ts:483` + core `subscribeWorkflow`). SSE; FIRST frame is `meta`
137
+ * `{type:"meta", version, runId}`, then each subsequent frame carries a core `WorkflowEvent` (its `type`
138
+ * becomes the SSE `event` name; see `WorkflowStreamEvent`).
116
139
  *
117
140
  * 🔴 NOT RESUMABLE (unlike `runs.events`/`trace.stream`): the source is REPLICA-LOCAL + in-process — there is
118
141
  * NO durable seq / Last-Event-ID, so a drop is a FULL restart (re-`get()` for the snapshot), not a resume.
@@ -120,8 +143,17 @@ export declare class WorkflowsResource {
120
143
  * would silently lose/duplicate frames here). TRANSIENT: a disconnect just ends the iterator. S8 flag-gated
121
144
  * off → the route returns 501 (typed error) before any frame; owner-gated (non-owner → 404).
122
145
  *
123
- * No explicit terminal frame is guaranteed (the core subscription simply ends) — the generator returns when the
124
- * server closes the stream; `get()` for the authoritative terminal `status`. */
146
+ * 🔴 **There IS one terminal frame, and it means FAILURE** (4.3.0 更正,FW-3): if the core subscription
147
+ * throws mid-stream the server emits `event: error` with
148
+ * `data: {type:"error", errorCode:"workflow.stream_error", message:"workflow stream error"}`
149
+ * (`routes/workflows.ts:517`; `:515-516` 写明了加 `errorCode` 的理由 —— 此前只发人话 message,消费端要么
150
+ * 锚文案、要么把「流断了」和「流正常结束」混为一谈)。这条注释此前写的是「没有终态帧保证」,照它写的消费方
151
+ * 会把一个**失败的** workflow 报成跑完了。正确姿势:分支
152
+ * `if (f.event === "error" && f.data.errorCode === "workflow.stream_error")`,别锚 `message`。
153
+ * 除这条之外没有正常终态帧 —— 迭代器自然结束 ⇒ 用 `get()` 取权威终态 `status`。
154
+ *
155
+ * 保活是**真帧** `event: heartbeat\ndata: {}` @15s(`routes/workflows.ts:496`,旁注写明**故意不用 SSE 注释**:
156
+ * 逐帧解析的 BFF 会把注释丢掉,下游于是看到一个零帧窗口)。别按「跳过以 `:` 开头的行」实现读端。 */
125
157
  stream(runId: string, opts?: {
126
158
  session?: string;
127
159
  signal?: AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;sGAQsG;AACtG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGxF;oHACoH;AACpH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;0FAG0F;AAC1F,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;mFAEmF;AACnF,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;2DAG2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,6BAA6B,CAAC;AAEtF;8BAC8B;AAC9B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAAD,CAAC,EAAE,SAAS;IAEzC;;;;;;+EAM2E;IAC3E,OAAO,CAAC,SAAS;IAIjB,gGAAgG;IAChG;;;;;;;;;6FASyF;IACnF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7G;;;2FAGuF;IACjF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAS5I,uFAAuF;IACjF,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjG;;;;;;;;sHAQkH;IAC5G,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAC5B,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAChD,OAAO,CAAC,yBAAyB,CAAC;IASrC;;;;;;;;;;;qFAWiF;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,cAAc,CAAC,mBAAmB,CAAC;CAoBrH"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"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"}