@sema-agent/sdk 4.0.1 → 4.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.
- package/README.md +38 -1
- package/dist/client.d.ts +10 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -2
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +42 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +81 -7
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +76 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/health.d.ts +2 -2
- package/dist/health.js +1 -1
- package/dist/idempotency.d.ts +11 -1
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +11 -1
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/approvals.d.ts +43 -13
- package/dist/resources/approvals.d.ts.map +1 -1
- package/dist/resources/approvals.js +35 -12
- package/dist/resources/approvals.js.map +1 -1
- package/dist/resources/assistant.d.ts +21 -4
- package/dist/resources/assistant.d.ts.map +1 -1
- package/dist/resources/assistant.js +10 -3
- package/dist/resources/assistant.js.map +1 -1
- package/dist/resources/fleet.d.ts +8 -3
- package/dist/resources/fleet.d.ts.map +1 -1
- package/dist/resources/fleet.js +2 -1
- package/dist/resources/fleet.js.map +1 -1
- package/dist/resources/runs.d.ts +89 -18
- package/dist/resources/runs.d.ts.map +1 -1
- package/dist/resources/runs.js +53 -17
- package/dist/resources/runs.js.map +1 -1
- package/dist/resources/sessions.d.ts +10 -1
- package/dist/resources/sessions.d.ts.map +1 -1
- package/dist/resources/sessions.js +10 -1
- package/dist/resources/sessions.js.map +1 -1
- package/dist/resources/tool-approvals.d.ts +8 -5
- package/dist/resources/tool-approvals.d.ts.map +1 -1
- package/dist/resources/tool-approvals.js +2 -1
- package/dist/resources/tool-approvals.js.map +1 -1
- package/dist/sse.d.ts +58 -14
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +88 -15
- package/dist/sse.js.map +1 -1
- package/dist/transport.d.ts +14 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +20 -5
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +139 -44
- package/dist/types.d.ts.map +1 -1
- package/openapi.yaml +316 -12
- package/package.json +1 -1
|
@@ -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
|
|
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 `
|
|
22
|
-
* else is a 400
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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":"
|
|
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"}
|
package/dist/sse.d.ts
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SSE parser (fetch ReadableStream, Node/browser同源) + Last-Event-ID resume loop, normalizing both stream
|
|
3
3
|
* sources into the AgentEvent union (events.ts). On a server-window eviction the server returns 416 with
|
|
4
|
-
* `{ error, retainedFrom }` (
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `{ error, errorCode: "limit.retention_evicted", retainedFrom }` ([2400] CB-7 — the code IS on the wire, server
|
|
5
|
+
* `src/http/sse-log.ts:41`; this loop still keys on the STATUS because what it needs is `retainedFrom`, but a
|
|
6
|
+
* consumer may branch on the code and the SDK maps it via the `limit.` family) → full-sync via the trace turns
|
|
7
|
+
* API (GET /v1/tasks/:id/turns) then resume events from `retainedFrom` (no event lost, only possibly re-seen;
|
|
8
|
+
* consumer is event-id idempotent). See the pinned SSE re-delivery contract.
|
|
9
|
+
* Heartbeat-timeout (service keep-alive = 15s on the task/run/trace/workflow/fleet writers; SDK grace 45s =
|
|
10
|
+
* three missed beats) → treat as a drop, enter the resume loop.
|
|
8
11
|
*
|
|
9
12
|
* STATUS: M2 — implemented. `open(lastEventId?)` is the connection factory (the caller binds path/transport);
|
|
10
13
|
* the resume loop feeds back the last seen event id. Terminal events (done/failed) end the generator.
|
|
11
14
|
*/
|
|
12
15
|
import type { AgentEvent } from "./events.js";
|
|
16
|
+
/** Idle watchdog: declare a drop after this much silence. Sized off the service's own keep-alive cadence —
|
|
17
|
+
* **15s** on every task/run/trace/workflow/fleet SSE writer (`setInterval(…, 15_000)` at
|
|
18
|
+
* `routes/tasks.ts:67` & `:173`, `routes/runs.ts:1006`, `routes/workflows.ts:496`, `routes/fleet.ts:223`,
|
|
19
|
+
* and the `Date.now() - lastBeat > 15_000` tails in `routes/trace-usage.ts:294` / `sse-log.ts:92`) —
|
|
20
|
+
* so 45s = **three** missed beats before we call it dead, not one.
|
|
21
|
+
* ⚠️ ONE writer beats slower: `GET /v1/sessions/:id/events` uses `deps.sessionEventsHeartbeatMs ?? 25_000`
|
|
22
|
+
* (server `routes/sessions.ts:359`, operator-tunable) AND writes BARE COMMENT lines (`: hb`), not named frames —
|
|
23
|
+
* `sessions.watch` therefore passes its own 60s grace rather than this constant. ([2400] CB-9: the previous
|
|
24
|
+
* note said "service heartbeat is 30s", a number no writer in the server emits.) */
|
|
13
25
|
export declare const HEARTBEAT_GRACE_MS = 45000;
|
|
14
26
|
/** Heartbeat-silence watchdog fired: no bytes arrived within the grace window. Typed so a caller (shell
|
|
15
27
|
* liveClient tear-verdict) can DIAGNOSE "engine alive but stream idle" apart from other stream errors.
|
|
@@ -19,8 +31,29 @@ export declare class SseIdleError extends Error {
|
|
|
19
31
|
readonly elapsedMs: number;
|
|
20
32
|
constructor(elapsedMs: number);
|
|
21
33
|
}
|
|
34
|
+
/** [2400] X-2 — the durable event stream ended WITHOUT a terminal (`done`/`failed`) and re-opening it produced
|
|
35
|
+
* nothing, repeatedly. The overwhelmingly common cause is a **parked run**: when a run is `suspended` /
|
|
36
|
+
* `needs_review`, the server's tail sees a non-`running` row and closes the leg immediately — connection fine,
|
|
37
|
+
* zero frames, forever. It is NOT a transport failure and NOT a terminal.
|
|
38
|
+
*
|
|
39
|
+
* 🔴 Consumer action: `await client.runs.get(taskId)` and branch on the row — a `suspended` / `needs_review`
|
|
40
|
+
* status means a human decision is owed (`approvals.decide` / `assistant.planReview` / `assistant.resume`);
|
|
41
|
+
* a terminal status means the tail simply outlived the run; anything else = a genuine transport problem.
|
|
42
|
+
* `lastEventId` is the resume cursor to hand back to `runs.events({ lastEventId })` once the park is resolved.
|
|
43
|
+
*
|
|
44
|
+
* ⚠️ The SDK deliberately does NOT call `runs.get()` for you here: `sse.ts` is the byte-level parser and holds
|
|
45
|
+
* no `AgentClient` / no auth closure. Giving it one to auto-diagnose would invert the layering (the parser would
|
|
46
|
+
* start issuing authenticated requests of its own) — the typed error is the seam instead. */
|
|
47
|
+
export declare class StreamEndedWithoutTerminalError extends Error {
|
|
48
|
+
/** Last durable `id:` seen on this stream (= `task_event.seq`), or undefined if none arrived. Resume cursor. */
|
|
49
|
+
readonly lastEventId?: string | undefined;
|
|
50
|
+
constructor(
|
|
51
|
+
/** Last durable `id:` seen on this stream (= `task_event.seq`), or undefined if none arrived. Resume cursor. */
|
|
52
|
+
lastEventId?: string | undefined);
|
|
53
|
+
}
|
|
22
54
|
/** Resumable stream: (re)opens via `open(lastEventId)`, parses SSE frames into AgentEvents, resumes on drops
|
|
23
|
-
* and heartbeat silences, handles 416 eviction by resuming from `retainedFrom`. Ends on done/failed.
|
|
55
|
+
* and heartbeat silences, handles 416 eviction by resuming from `retainedFrom`. Ends on done/failed.
|
|
56
|
+
* A run that PARKS (the tail keeps re-opening empty) surfaces as {@link StreamEndedWithoutTerminalError}. */
|
|
24
57
|
export declare function parseSse(open: (lastEventId?: string) => Promise<Response>, opts?: {
|
|
25
58
|
heartbeatGraceMs?: number;
|
|
26
59
|
signal?: AbortSignal;
|
|
@@ -63,15 +96,26 @@ export declare class SyncTruncatedError extends Error {
|
|
|
63
96
|
* contract breach. The caller owns the Response (already status-checked: a non-200 is a JSON error body, handled
|
|
64
97
|
* before this is called). `T` defaults to `unknown` — the cloud re-validates the tree, so the SDK keeps entries opaque. */
|
|
65
98
|
export declare function parseNdjsonEntries<T = unknown>(res: Response, signal?: AbortSignal): AsyncGenerator<T>;
|
|
66
|
-
/** Serialize a `StampedAgentEvent` generator into a live `text/event-stream` `Response
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
99
|
+
/** Serialize a `StampedAgentEvent` generator into a live `text/event-stream` `Response`.
|
|
100
|
+
*
|
|
101
|
+
* Frame shape = the server's own, byte-for-byte in ordering: `id: <seq>\n` (omitted when the event carries no
|
|
102
|
+
* `id` — the bare-frame shape of a non-resumable leg) then `event: <type>\n` then `data: <json>\n\n`.
|
|
103
|
+
* 🔴 [2400] X-22 fixed two losses here: the `event:` line was MISSING entirely (a downstream dispatching on the
|
|
104
|
+
* SSE event name — a browser `addEventListener("tool_end", …)`, a name-routing relay — saw only unnamed frames
|
|
105
|
+
* after passing through this helper), and `id` was written to the `id:` line yet ALSO left inside the JSON
|
|
106
|
+
* payload (it is the SDK's transport cursor stamped by `parseSse`, not a wire field of the event body).
|
|
107
|
+
*
|
|
108
|
+
* Emits a real named `event: heartbeat\ndata: {}\n\n` frame every `heartbeatMs` (default 15000 — the cadence of
|
|
109
|
+
* every task/run/trace/workflow/fleet SSE writer in @sema-agent/server: `routes/tasks.ts:67` & `:173`,
|
|
110
|
+
* `routes/runs.ts:1006`, `routes/workflows.ts:496`, `routes/fleet.ts:223`, and the `lastBeat > 15_000` tails in
|
|
111
|
+
* `routes/trace-usage.ts:294` / `sse-log.ts:92`, all 15s). ⚠️ Not universal: `GET /v1/sessions/:id/events` beats
|
|
112
|
+
* at `sessionEventsHeartbeatMs ?? 25_000` and writes BARE `: hb` comment lines instead — that one leg is the
|
|
113
|
+
* exception to "the server never uses `:`-comments"; on the frame legs a comment is deliberately avoided because
|
|
114
|
+
* a per-frame-parsing BFF drops comment lines, leaving a silent gap downstream.
|
|
115
|
+
*
|
|
116
|
+
* `signal` abort closes the stream and calls the source generator's `return()` so it can release whatever it's
|
|
117
|
+
* holding (e.g. `parseSse`'s open connection) — mirrors `tasks.stream`'s disconnect-cancels contract, just on
|
|
118
|
+
* the write side. */
|
|
75
119
|
export declare function toSseResponse(gen: AsyncGenerator<StampedAgentEvent>, opts?: {
|
|
76
120
|
heartbeatMs?: number;
|
|
77
121
|
signal?: AbortSignal;
|
package/dist/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C;;;;;;;;qFAQqF;AACrF,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAOzC;;;wGAGwG;AACxG,qBAAa,YAAa,SAAQ,KAAK;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAIvC;AAED;;;;;;;;;;;;8FAY8F;AAC9F,qBAAa,+BAAgC,SAAQ,KAAK;IAEtD,gHAAgH;IAChH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;;IAD7B,gHAAgH;IACvG,WAAW,CAAC,EAAE,MAAM,YAAA;CAKhC;AAED;;8GAE8G;AAC9G,wBAAuB,QAAQ,CAC7B,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EACjD,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACzD,cAAc,CAAC,UAAU,CAAC,CAwE5B;AAED;yFACyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;;;4GAM4G;AAC5G,wBAAuB,gBAAgB,CACrC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EACjD,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,EACxC,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACzD,cAAc,CAAC,QAAQ,CAAC,CA4C1B;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;0GAC0G;AAC1G,wBAAuB,aAAa,CAClC,GAAG,EAAE,QAAQ,EACb,gBAAgB,SAAqB,EACrC,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,QAAQ,CAAC,CA4C1B;AAcD;;+GAE+G;AAC/G,qBAAa,kBAAmB,SAAQ,KAAK;IACd,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;gBAAtE,OAAO,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,QAAQ,CAAC,EAAE,MAAM,YAAA;CAInF;AAED;;;;4HAI4H;AAC5H,wBAAuB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EACnD,GAAG,EAAE,QAAQ,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,CAAC,CAAC,CAuDnB;AAUD;;;;;;;;;;;;;;;;;;;sBAmBsB;AACtB,wBAAgB,aAAa,CAC3B,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,EACtC,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACpD,QAAQ,CA4DV"}
|
package/dist/sse.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { toApiError } from "./errors.js";
|
|
2
2
|
import { errorFromResponse } from "./transport.js";
|
|
3
|
-
|
|
3
|
+
/** Idle watchdog: declare a drop after this much silence. Sized off the service's own keep-alive cadence —
|
|
4
|
+
* **15s** on every task/run/trace/workflow/fleet SSE writer (`setInterval(…, 15_000)` at
|
|
5
|
+
* `routes/tasks.ts:67` & `:173`, `routes/runs.ts:1006`, `routes/workflows.ts:496`, `routes/fleet.ts:223`,
|
|
6
|
+
* and the `Date.now() - lastBeat > 15_000` tails in `routes/trace-usage.ts:294` / `sse-log.ts:92`) —
|
|
7
|
+
* so 45s = **three** missed beats before we call it dead, not one.
|
|
8
|
+
* ⚠️ ONE writer beats slower: `GET /v1/sessions/:id/events` uses `deps.sessionEventsHeartbeatMs ?? 25_000`
|
|
9
|
+
* (server `routes/sessions.ts:359`, operator-tunable) AND writes BARE COMMENT lines (`: hb`), not named frames —
|
|
10
|
+
* `sessions.watch` therefore passes its own 60s grace rather than this constant. ([2400] CB-9: the previous
|
|
11
|
+
* note said "service heartbeat is 30s", a number no writer in the server emits.) */
|
|
12
|
+
export const HEARTBEAT_GRACE_MS = 45_000;
|
|
4
13
|
const MAX_CONSECUTIVE_FAILURES = 5;
|
|
14
|
+
/** [2400] X-2 — how many CONSECUTIVE "connected fine, zero frames, ended" legs mean "this run is parked".
|
|
15
|
+
* Two, not five: a park is a STEADY state (the server closes the tail because the run is not `running`), so the
|
|
16
|
+
* extra three round-trips only delay the moment the consumer can go ask `runs.get()`. */
|
|
17
|
+
const EMPTY_LEGS_BEFORE_PARK_VERDICT = 2;
|
|
5
18
|
/** Heartbeat-silence watchdog fired: no bytes arrived within the grace window. Typed so a caller (shell
|
|
6
19
|
* liveClient tear-verdict) can DIAGNOSE "engine alive but stream idle" apart from other stream errors.
|
|
7
20
|
* 🔴 The message is a FROZEN literal (`SSE: no data for ${ms}ms (heartbeat silence)`) — downstream scripts
|
|
@@ -14,12 +27,37 @@ export class SseIdleError extends Error {
|
|
|
14
27
|
this.name = "SseIdleError";
|
|
15
28
|
}
|
|
16
29
|
}
|
|
30
|
+
/** [2400] X-2 — the durable event stream ended WITHOUT a terminal (`done`/`failed`) and re-opening it produced
|
|
31
|
+
* nothing, repeatedly. The overwhelmingly common cause is a **parked run**: when a run is `suspended` /
|
|
32
|
+
* `needs_review`, the server's tail sees a non-`running` row and closes the leg immediately — connection fine,
|
|
33
|
+
* zero frames, forever. It is NOT a transport failure and NOT a terminal.
|
|
34
|
+
*
|
|
35
|
+
* 🔴 Consumer action: `await client.runs.get(taskId)` and branch on the row — a `suspended` / `needs_review`
|
|
36
|
+
* status means a human decision is owed (`approvals.decide` / `assistant.planReview` / `assistant.resume`);
|
|
37
|
+
* a terminal status means the tail simply outlived the run; anything else = a genuine transport problem.
|
|
38
|
+
* `lastEventId` is the resume cursor to hand back to `runs.events({ lastEventId })` once the park is resolved.
|
|
39
|
+
*
|
|
40
|
+
* ⚠️ The SDK deliberately does NOT call `runs.get()` for you here: `sse.ts` is the byte-level parser and holds
|
|
41
|
+
* no `AgentClient` / no auth closure. Giving it one to auto-diagnose would invert the layering (the parser would
|
|
42
|
+
* start issuing authenticated requests of its own) — the typed error is the seam instead. */
|
|
43
|
+
export class StreamEndedWithoutTerminalError extends Error {
|
|
44
|
+
lastEventId;
|
|
45
|
+
constructor(
|
|
46
|
+
/** Last durable `id:` seen on this stream (= `task_event.seq`), or undefined if none arrived. Resume cursor. */
|
|
47
|
+
lastEventId) {
|
|
48
|
+
super("SSE: stream keeps ending without progress or a terminal event");
|
|
49
|
+
this.lastEventId = lastEventId;
|
|
50
|
+
this.name = "StreamEndedWithoutTerminalError";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
17
53
|
/** Resumable stream: (re)opens via `open(lastEventId)`, parses SSE frames into AgentEvents, resumes on drops
|
|
18
|
-
* and heartbeat silences, handles 416 eviction by resuming from `retainedFrom`. Ends on done/failed.
|
|
54
|
+
* and heartbeat silences, handles 416 eviction by resuming from `retainedFrom`. Ends on done/failed.
|
|
55
|
+
* A run that PARKS (the tail keeps re-opening empty) surfaces as {@link StreamEndedWithoutTerminalError}. */
|
|
19
56
|
export async function* parseSse(open, opts) {
|
|
20
57
|
const grace = opts?.heartbeatGraceMs ?? HEARTBEAT_GRACE_MS;
|
|
21
58
|
let lastId;
|
|
22
59
|
let failures = 0;
|
|
60
|
+
let emptyLegs = 0; // [2400] X-2: consecutive "opened fine, zero frames" legs — the park signature.
|
|
23
61
|
for (;;) {
|
|
24
62
|
if (opts?.signal?.aborted)
|
|
25
63
|
return;
|
|
@@ -34,8 +72,13 @@ export async function* parseSse(open, opts) {
|
|
|
34
72
|
continue;
|
|
35
73
|
}
|
|
36
74
|
if (res.status === 416) {
|
|
37
|
-
// evicted past retention:
|
|
75
|
+
// evicted past retention: 416 + `retainedFrom` in the body; read retainedFrom and resume from there.
|
|
38
76
|
// The consumer full-syncs missed ground truth via trace.turns (pinned SSE contract).
|
|
77
|
+
// ⚠️ [2400] CB-7: the body DOES carry a machine code — `errorCode: "limit.retention_evicted"`
|
|
78
|
+
// (server `src/http/sse-log.ts:41` / `routes/trace-usage.ts:251`). The old note here said "match the
|
|
79
|
+
// STATUS — there is NO code field", which was simply false; matching the status is still what this loop
|
|
80
|
+
// does (it needs `retainedFrom`, not the code), but a consumer MAY branch on the code, and the SDK's
|
|
81
|
+
// `limit.` prefix family maps it to LimitExceededError.
|
|
39
82
|
const body = (await res.json().catch(() => ({})));
|
|
40
83
|
// Last-Event-ID = "replay AFTER this seq" → ask from retainedFrom-1 so retainedFrom itself is replayed
|
|
41
84
|
// (and the server's `retainedFrom > from+1` eviction check is false → no 416 loop).
|
|
@@ -49,9 +92,11 @@ export async function* parseSse(open, opts) {
|
|
|
49
92
|
if (!res.ok)
|
|
50
93
|
throw await errorFromResponse(res);
|
|
51
94
|
let sawTerminal = false;
|
|
95
|
+
let sawFrame = false;
|
|
52
96
|
try {
|
|
53
97
|
for await (const frame of readSseFrames(res, grace, opts?.signal)) {
|
|
54
98
|
failures = 0; // progress = a frame arrived (NOT just a connection accepted) — prevents an accept/drop loop
|
|
99
|
+
sawFrame = true;
|
|
55
100
|
if (frame.id)
|
|
56
101
|
lastId = frame.id;
|
|
57
102
|
// 🔴 facade 审计(2026-07-24,批次①-3):server 的 keep-alive 是一个真命名帧
|
|
@@ -80,8 +125,15 @@ export async function* parseSse(open, opts) {
|
|
|
80
125
|
if (!sawTerminal)
|
|
81
126
|
res.body?.cancel().catch(() => { });
|
|
82
127
|
}
|
|
128
|
+
// [2400] X-2 — park 感知,排在空转熔断之前:一条「开得成、零帧、就结束」的腿连续出现 2 次,
|
|
129
|
+
// 压倒性可能是 run 已 park(server 的 tail 见到非 `running` 的行就收流)。抛 typed 类而不是裸 Error,
|
|
130
|
+
// 消费方才有一个可分支的东西去 `runs.get()` 判 park(见 StreamEndedWithoutTerminalError 顶注)。
|
|
131
|
+
if (sawFrame)
|
|
132
|
+
emptyLegs = 0;
|
|
133
|
+
else if (++emptyLegs >= EMPTY_LEGS_BEFORE_PARK_VERDICT)
|
|
134
|
+
throw new StreamEndedWithoutTerminalError(lastId);
|
|
83
135
|
if (++failures >= MAX_CONSECUTIVE_FAILURES)
|
|
84
|
-
throw new
|
|
136
|
+
throw new StreamEndedWithoutTerminalError(lastId);
|
|
85
137
|
if (opts?.signal?.aborted)
|
|
86
138
|
return;
|
|
87
139
|
// stream ended without a terminal event → reconnect and tail on
|
|
@@ -302,15 +354,26 @@ export async function* parseNdjsonEntries(res, signal) {
|
|
|
302
354
|
// what the native `EventSource` already understands (including its own built-in Last-Event-ID reconnect),
|
|
303
355
|
// so shipping a symmetric browser-side parser here would be a redundant second implementation of what the
|
|
304
356
|
// platform gives for free.
|
|
305
|
-
/** Serialize a `StampedAgentEvent` generator into a live `text/event-stream` `Response
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
357
|
+
/** Serialize a `StampedAgentEvent` generator into a live `text/event-stream` `Response`.
|
|
358
|
+
*
|
|
359
|
+
* Frame shape = the server's own, byte-for-byte in ordering: `id: <seq>\n` (omitted when the event carries no
|
|
360
|
+
* `id` — the bare-frame shape of a non-resumable leg) then `event: <type>\n` then `data: <json>\n\n`.
|
|
361
|
+
* 🔴 [2400] X-22 fixed two losses here: the `event:` line was MISSING entirely (a downstream dispatching on the
|
|
362
|
+
* SSE event name — a browser `addEventListener("tool_end", …)`, a name-routing relay — saw only unnamed frames
|
|
363
|
+
* after passing through this helper), and `id` was written to the `id:` line yet ALSO left inside the JSON
|
|
364
|
+
* payload (it is the SDK's transport cursor stamped by `parseSse`, not a wire field of the event body).
|
|
365
|
+
*
|
|
366
|
+
* Emits a real named `event: heartbeat\ndata: {}\n\n` frame every `heartbeatMs` (default 15000 — the cadence of
|
|
367
|
+
* every task/run/trace/workflow/fleet SSE writer in @sema-agent/server: `routes/tasks.ts:67` & `:173`,
|
|
368
|
+
* `routes/runs.ts:1006`, `routes/workflows.ts:496`, `routes/fleet.ts:223`, and the `lastBeat > 15_000` tails in
|
|
369
|
+
* `routes/trace-usage.ts:294` / `sse-log.ts:92`, all 15s). ⚠️ Not universal: `GET /v1/sessions/:id/events` beats
|
|
370
|
+
* at `sessionEventsHeartbeatMs ?? 25_000` and writes BARE `: hb` comment lines instead — that one leg is the
|
|
371
|
+
* exception to "the server never uses `:`-comments"; on the frame legs a comment is deliberately avoided because
|
|
372
|
+
* a per-frame-parsing BFF drops comment lines, leaving a silent gap downstream.
|
|
373
|
+
*
|
|
374
|
+
* `signal` abort closes the stream and calls the source generator's `return()` so it can release whatever it's
|
|
375
|
+
* holding (e.g. `parseSse`'s open connection) — mirrors `tasks.stream`'s disconnect-cancels contract, just on
|
|
376
|
+
* the write side. */
|
|
314
377
|
export function toSseResponse(gen, opts) {
|
|
315
378
|
const heartbeatMs = opts?.heartbeatMs ?? 15_000;
|
|
316
379
|
const encoder = new TextEncoder();
|
|
@@ -352,8 +415,18 @@ export function toSseResponse(gen, opts) {
|
|
|
352
415
|
for await (const ev of gen) {
|
|
353
416
|
if (closed)
|
|
354
417
|
break;
|
|
355
|
-
|
|
356
|
-
|
|
418
|
+
// 🔴 [2400] X-22:`id` 是 SDK 贴在 StampedAgentEvent 上的**传输层游标**(parseSse 的
|
|
419
|
+
// `ev.id = frame.id`),不是 wire 上事件体的字段 —— 写成 `id:` 行之后必须从序列化对象里剥离,
|
|
420
|
+
// 否则下游解出的事件多一个 wire 上不存在的键(还会与它自己的 `eventId` 撞脸)。
|
|
421
|
+
const { id, ...payload } = ev;
|
|
422
|
+
const idLine = id !== undefined ? `id: ${id}\n` : "";
|
|
423
|
+
// 🔴 [2400] X-22:补 `event:` 行。server 的每个 SSE 写点都写命名帧(`routes/tasks.ts:677` /
|
|
424
|
+
// `routes/workflows.ts:512` / `sse-log.ts:56`,顺序 id → event → data),而这里此前只写 `data:` ⇒
|
|
425
|
+
// 一个按 `event:` 名分派的下游(浏览器 `addEventListener("tool_end", …)`)过一遍中继就再也收不到
|
|
426
|
+
// 命名帧。判别位在载荷里也有(`type`),但那不是「保真转发」——中继不该让下游少一条分派路。
|
|
427
|
+
const name = typeof payload.type === "string" ? payload.type : undefined;
|
|
428
|
+
const eventLine = name !== undefined ? `event: ${name}\n` : "";
|
|
429
|
+
controller.enqueue(encoder.encode(`${idLine}${eventLine}data: ${JSON.stringify(payload)}\n\n`));
|
|
357
430
|
}
|
|
358
431
|
}
|
|
359
432
|
finally {
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.d.ts
CHANGED
|
@@ -18,6 +18,11 @@ export interface TransportOptions {
|
|
|
18
18
|
* The retry MATRIX is unchanged (RETRYABLE_STATUS) — only the typed surface differs, so the control plane's
|
|
19
19
|
* CAS 409 / validation 400 are surfaced (never retried), identical to how the worker treats its 409. */
|
|
20
20
|
mapError?: ErrorMapper;
|
|
21
|
+
/** [2400] CB-4 — the header name `buildHeaders` writes the principal into (lowercase). Default
|
|
22
|
+
* `x-agent-principal`. It is threaded here for ONE reason: the RESERVED-header guard below must reserve the
|
|
23
|
+
* name actually in use, otherwise renaming the header silently hands caller extras the power to forge the
|
|
24
|
+
* identity header. */
|
|
25
|
+
principalHeader?: string;
|
|
21
26
|
}
|
|
22
27
|
/** Statuses the SDK retries (with backoff). 409 is NOT here — it's a semantic conflict, surfaced typed. */
|
|
23
28
|
export declare const RETRYABLE_STATUS: Set<number>;
|
|
@@ -48,12 +53,20 @@ export interface RequestOptions {
|
|
|
48
53
|
}
|
|
49
54
|
export declare class Transport {
|
|
50
55
|
private readonly o;
|
|
56
|
+
/** [2400] CB-4 — the effective reserved set for THIS transport: the constant set plus whatever name the
|
|
57
|
+
* principal header was configured to use (so renaming it never opens a forge-the-identity hole). */
|
|
58
|
+
private readonly reserved;
|
|
51
59
|
constructor(o: TransportOptions);
|
|
52
60
|
headers(idempotencyKey?: string | null): Record<string, string>;
|
|
53
61
|
/** JSON request with timeout + retry matrix + typed errors. */
|
|
54
62
|
request<T>(opts: RequestOptions): Promise<T>;
|
|
55
63
|
/** Raw streaming fetch (returns the Response for sse.ts to parse). NO per-attempt timeout (a stream lives
|
|
56
|
-
* long); heartbeat watchdog lives in sse.ts.
|
|
64
|
+
* long); heartbeat watchdog lives in sse.ts.
|
|
65
|
+
* 🔴 [2400] X-16 — SINGLE-SHOT by construction: this method issues **exactly one** `fetch` and returns whatever
|
|
66
|
+
* it gets. It does NOT consult {@link RETRYABLE_STATUS}, does not back off, and does not retry — a 503 here is
|
|
67
|
+
* handed straight back. Resume/retry on a stream is the CALLER's loop (`parseSse` / `parseFrameStream` /
|
|
68
|
+
* `approvals.stream`), because "retry" on a stream means "re-open from Last-Event-ID", which only the caller's
|
|
69
|
+
* cursor knows. Do not read the request-side retry matrix as applying here.
|
|
57
70
|
* `headers` = generic caller extras (e.g. a shell's `x-detach-on-disconnect` — the SDK carries NO detach
|
|
58
71
|
* semantics; the caller assembles them). 🔴 Merge order: caller extras first, BUILT-INS ALWAYS WIN —
|
|
59
72
|
* authorization / x-agent-principal / idempotency-key / content-type / accept / last-event-id can never be
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAeA;;sGAEsG;AACtG,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB;;;;;4GAKwG;IACxG,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE;;6GAEyG;IACzG,QAAQ,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAeA;;sGAEsG;AACtG,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB;;;;;4GAKwG;IACxG,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE;;6GAEyG;IACzG,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;2BAGuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,aAA0C,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAE,WAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,CAGzG;AAgBD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,qBAAa,SAAS;IAKR,OAAO,CAAC,QAAQ,CAAC,CAAC;IAJ9B;yGACqG;IACrG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;gBAEV,CAAC,EAAE,gBAAgB;IAIhD,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI/D,+DAA+D;IACzD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IA8ClD;;;;;;;;;;;4GAWwG;IAClG,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAetH;;;;;gHAK4G;IACtG,OAAO,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC;QACb,2GAA2G;QAC3G,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;4FACoF;QACpF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;KAClC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmBrB;;;;2CAIuC;IACvC,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAIxC;8CAC0C;IAC1C,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK;IAKlD,8FAA8F;IAC9F,OAAO,CAAC,aAAa;CAatB"}
|
package/dist/transport.js
CHANGED
|
@@ -33,16 +33,26 @@ export async function errorFromResponse(res, mapError = toApiError) {
|
|
|
33
33
|
const retryAfterMs = parseRetryAfter(res.headers.get("retry-after"));
|
|
34
34
|
return mapError(res.status, await safeJson(res), retryAfterMs);
|
|
35
35
|
}
|
|
36
|
-
/** Header keys a caller-supplied `headers` extra may NEVER set (openStream merge): auth +
|
|
37
|
-
* protocol headers are the transport's alone. Lowercase (extras are lowercased before the check).
|
|
36
|
+
/** Header keys a caller-supplied `headers` extra may NEVER set (openStream merge): auth + identity + idempotency
|
|
37
|
+
* + protocol headers are the transport's alone. Lowercase (extras are lowercased before the check).
|
|
38
|
+
*
|
|
39
|
+
* 🔴 CLOSED SET, by design ([2400] X-16 wording fix): a header not on this list is passed through verbatim.
|
|
40
|
+
* The set is exactly "what the transport itself asserts" — widening it would start silently dropping legitimate
|
|
41
|
+
* caller headers (a mesh tag, a tracing header), which is the opposite failure. The one MOVING member is the
|
|
42
|
+
* principal header: [2400] CB-4 made its NAME configurable, so the effective set is computed per Transport
|
|
43
|
+
* instance ({@link Transport.reserved}) rather than read off this constant. */
|
|
38
44
|
const RESERVED_HEADERS = new Set(["authorization", "x-agent-principal", "content-type", "idempotency-key", "accept", "last-event-id"]);
|
|
39
45
|
const BACKOFF_BASE_MS = 250;
|
|
40
46
|
const BACKOFF_CAP_MS = 10_000;
|
|
41
47
|
const RETRY_AFTER_CAP_MS = 60_000;
|
|
42
48
|
export class Transport {
|
|
43
49
|
o;
|
|
50
|
+
/** [2400] CB-4 — the effective reserved set for THIS transport: the constant set plus whatever name the
|
|
51
|
+
* principal header was configured to use (so renaming it never opens a forge-the-identity hole). */
|
|
52
|
+
reserved;
|
|
44
53
|
constructor(o) {
|
|
45
54
|
this.o = o;
|
|
55
|
+
this.reserved = o.principalHeader ? new Set([...RESERVED_HEADERS, o.principalHeader.toLowerCase()]) : RESERVED_HEADERS;
|
|
46
56
|
}
|
|
47
57
|
headers(idempotencyKey) {
|
|
48
58
|
return this.o.buildHeaders(idempotencyKey);
|
|
@@ -95,7 +105,12 @@ export class Transport {
|
|
|
95
105
|
throw lastErr; // exhausted retries
|
|
96
106
|
}
|
|
97
107
|
/** Raw streaming fetch (returns the Response for sse.ts to parse). NO per-attempt timeout (a stream lives
|
|
98
|
-
* long); heartbeat watchdog lives in sse.ts.
|
|
108
|
+
* long); heartbeat watchdog lives in sse.ts.
|
|
109
|
+
* 🔴 [2400] X-16 — SINGLE-SHOT by construction: this method issues **exactly one** `fetch` and returns whatever
|
|
110
|
+
* it gets. It does NOT consult {@link RETRYABLE_STATUS}, does not back off, and does not retry — a 503 here is
|
|
111
|
+
* handed straight back. Resume/retry on a stream is the CALLER's loop (`parseSse` / `parseFrameStream` /
|
|
112
|
+
* `approvals.stream`), because "retry" on a stream means "re-open from Last-Event-ID", which only the caller's
|
|
113
|
+
* cursor knows. Do not read the request-side retry matrix as applying here.
|
|
99
114
|
* `headers` = generic caller extras (e.g. a shell's `x-detach-on-disconnect` — the SDK carries NO detach
|
|
100
115
|
* semantics; the caller assembles them). 🔴 Merge order: caller extras first, BUILT-INS ALWAYS WIN —
|
|
101
116
|
* authorization / x-agent-principal / idempotency-key / content-type / accept / last-event-id can never be
|
|
@@ -105,7 +120,7 @@ export class Transport {
|
|
|
105
120
|
const extras = {};
|
|
106
121
|
for (const [k, v] of Object.entries(opts.headers ?? {})) {
|
|
107
122
|
const key = k.toLowerCase();
|
|
108
|
-
if (!
|
|
123
|
+
if (!this.reserved.has(key))
|
|
109
124
|
extras[key] = v;
|
|
110
125
|
}
|
|
111
126
|
const h = { ...extras, ...this.headers(opts.submit ? resolveIdempotencyKey(opts.idempotencyKey) : null) };
|
|
@@ -129,7 +144,7 @@ export class Transport {
|
|
|
129
144
|
const extras = {};
|
|
130
145
|
for (const [k, v] of Object.entries(opts.headers ?? {})) {
|
|
131
146
|
const key = k.toLowerCase();
|
|
132
|
-
if (!
|
|
147
|
+
if (!this.reserved.has(key))
|
|
133
148
|
extras[key] = v;
|
|
134
149
|
}
|
|
135
150
|
const h = { ...extras, ...this.headers(null) };
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|