🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@openparachute/surface-client

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@openparachute/surface-client - npm Package Compare versions

Comparing version
0.3.3
to
0.3.4
+67
dist/ws-transport.d.ts
/**
* Live-query WebSocket transport — the **WS-only** client side of vault's
* `GET /vault/<name>/api/subscribe` (an `Upgrade: websocket` request selects the
* WebSocket binding). It sits behind the `startWsSubscription` seam that
* `VaultClient.subscribe()` drives; `createLiveList`, the reconcilers, and
* notes-ui all sit above it and are transport-agnostic.
*
* Phase 2 of the SSE → Hibernatable-WebSockets migration (team-vault
* `Decisions/2026-07-04-live-query-ws-hibernation`; wire contract
* `parachute-cloud/workers/vault/docs/live-query-ws.md`). A held-open SSE stream
* pins the per-vault Cloudflare Durable Object awake and bills duration; a
* Hibernatable WebSocket lets an idle-but-open socket evict the DO → ~$0 idle.
*
* ## Live is an augmentation; polling is the floor (the degradation model)
*
* There is **no SSE fallback** — SSE is being retired, so the client never
* speaks it. Instead the model is two-state: **WebSocket-or-polling**. The
* consumer (notes-ui via `createLiveList` → react-query) always has a polling
* cadence underneath; a live subscription is a *fresher-than-polling*
* augmentation on top. So when WS can't be established — an old server without
* the binding, a network that blocks WebSockets, or a drop mid-session — the
* transport does NOT surface a terminal error or hang. It stays in a non-`live`
* status (so the consumer keeps polling) and runs a **capped-backoff reconnect
* in the background**, re-establishing the live augmentation the moment WS
* becomes reachable again (server upgraded / network recovered). Only genuinely
* unrecoverable conditions (a protocol bug, a scope denial, or exhausted auth)
* stop the reconnect loop — and even those just leave the consumer on polling.
*
* ## WS wire contract (the load-bearing invariant)
*
* The inner payloads are **byte-identical to what the SSE binding emitted** in
* its `data:` bodies; the event name folds into a `type` discriminator and the
* snapshot is chunked:
*
* - `{"type":"snapshot","notes":[…],"done":<bool>}` — chunked; accumulate
* `notes` across frames until `done:true`, then emit ONE `onSnapshot`
* (replaces the set — self-correcting-reconnect semantics).
* - `{"type":"upsert","note":{…}}` / `{"type":"remove","id":"…"}` — same
* shape/guards the consumer already expects.
*
* ## Auth handshake (first-message, not header)
*
* Browsers can't set headers on a WebSocket, so auth is the FIRST frame
* (`{"type":"auth","token":"…"}`, sent on `open`); the token is re-sent on the
* OPEN socket when it rotates (no reconnect, no re-snapshot). Close codes
* (application range, visible to JS): 4400 protocol → terminal, 4401
* unauthorized → refresh-once-then-reconnect, 4403 forbidden → terminal, 4408
* auth-timeout → reconnect.
*
* ## Liveness
*
* The client sends the literal string `"ping"` every ~30s and expects a
* `"pong"` (the DO's no-wake auto-response) — or any other server frame —
* within ~10s, else it terminates the socket and reconnects (fresh snapshot;
* the no-replay self-healing is preserved).
*/
import type { SubscribeHandlers, SubscribeOptions, SubscribeTransport } from "./subscribe.js";
/**
* Run the live subscription over a WebSocket, degrading to the consumer's
* polling floor (never SSE) when WS is unavailable — see the module header.
* Drop-in shape for the consumer seam: `(transport, handlers, opts) =>
* unsubscribe`. `onSnapshot` / `onUpsert` / `onRemove` dispatch, capped
* backoff, and one-refresh-per-auth-failure-streak match what the consumer
* expects.
*/
export declare function startWsSubscription(transport: SubscribeTransport, handlers: SubscribeHandlers, opts?: SubscribeOptions): () => void;
//# sourceMappingURL=ws-transport.d.ts.map
{"version":3,"file":"ws-transport.d.ts","sourceRoot":"","sources":["../src/ws-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AA4CxB;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,GAAE,gBAAqB,GAC1B,MAAM,IAAI,CAgWZ"}
/**
* Live-query WebSocket transport — the **WS-only** client side of vault's
* `GET /vault/<name>/api/subscribe` (an `Upgrade: websocket` request selects the
* WebSocket binding). It sits behind the `startWsSubscription` seam that
* `VaultClient.subscribe()` drives; `createLiveList`, the reconcilers, and
* notes-ui all sit above it and are transport-agnostic.
*
* Phase 2 of the SSE → Hibernatable-WebSockets migration (team-vault
* `Decisions/2026-07-04-live-query-ws-hibernation`; wire contract
* `parachute-cloud/workers/vault/docs/live-query-ws.md`). A held-open SSE stream
* pins the per-vault Cloudflare Durable Object awake and bills duration; a
* Hibernatable WebSocket lets an idle-but-open socket evict the DO → ~$0 idle.
*
* ## Live is an augmentation; polling is the floor (the degradation model)
*
* There is **no SSE fallback** — SSE is being retired, so the client never
* speaks it. Instead the model is two-state: **WebSocket-or-polling**. The
* consumer (notes-ui via `createLiveList` → react-query) always has a polling
* cadence underneath; a live subscription is a *fresher-than-polling*
* augmentation on top. So when WS can't be established — an old server without
* the binding, a network that blocks WebSockets, or a drop mid-session — the
* transport does NOT surface a terminal error or hang. It stays in a non-`live`
* status (so the consumer keeps polling) and runs a **capped-backoff reconnect
* in the background**, re-establishing the live augmentation the moment WS
* becomes reachable again (server upgraded / network recovered). Only genuinely
* unrecoverable conditions (a protocol bug, a scope denial, or exhausted auth)
* stop the reconnect loop — and even those just leave the consumer on polling.
*
* ## WS wire contract (the load-bearing invariant)
*
* The inner payloads are **byte-identical to what the SSE binding emitted** in
* its `data:` bodies; the event name folds into a `type` discriminator and the
* snapshot is chunked:
*
* - `{"type":"snapshot","notes":[…],"done":<bool>}` — chunked; accumulate
* `notes` across frames until `done:true`, then emit ONE `onSnapshot`
* (replaces the set — self-correcting-reconnect semantics).
* - `{"type":"upsert","note":{…}}` / `{"type":"remove","id":"…"}` — same
* shape/guards the consumer already expects.
*
* ## Auth handshake (first-message, not header)
*
* Browsers can't set headers on a WebSocket, so auth is the FIRST frame
* (`{"type":"auth","token":"…"}`, sent on `open`); the token is re-sent on the
* OPEN socket when it rotates (no reconnect, no re-snapshot). Close codes
* (application range, visible to JS): 4400 protocol → terminal, 4401
* unauthorized → refresh-once-then-reconnect, 4403 forbidden → terminal, 4408
* auth-timeout → reconnect.
*
* ## Liveness
*
* The client sends the literal string `"ping"` every ~30s and expects a
* `"pong"` (the DO's no-wake auto-response) — or any other server frame —
* within ~10s, else it terminates the socket and reconnects (fresh snapshot;
* the no-replay self-healing is preserved).
*/
import { VaultAuthError, VaultPermissionError, VaultUnreachableError } from "./vault-client.js";
const DEFAULT_INITIAL_BACKOFF_MS = 1_000;
const DEFAULT_MAX_BACKOFF_MS = 30_000;
const DEFAULT_PING_INTERVAL_MS = 30_000;
const DEFAULT_PONG_TIMEOUT_MS = 10_000;
/** WebSocket `readyState` OPEN (avoid depending on a static on the ctor/fake). */
const WS_OPEN = 1;
function resolveWsCtor(transport) {
if (transport.webSocketImpl)
return transport.webSocketImpl;
// The DOM `WebSocket` isn't structurally `WebSocketLike` under strict
// function types (its event params are the concrete DOM event types), so
// route it through `unknown` — we only ever construct it + read `ev.data`.
const g = globalThis.WebSocket;
return typeof g === "function" ? g : undefined;
}
/** Map an `http(s)://` subscribe URL to its `ws(s)://` equivalent. */
function toWsUrl(httpUrl) {
if (/^https:/i.test(httpUrl))
return `wss:${httpUrl.slice("https:".length)}`;
if (/^http:/i.test(httpUrl))
return `ws:${httpUrl.slice("http:".length)}`;
return httpUrl; // already ws/wss (or relative — let the ctor decide)
}
function isRecord(v) {
return typeof v === "object" && v !== null;
}
/**
* Run the live subscription over a WebSocket, degrading to the consumer's
* polling floor (never SSE) when WS is unavailable — see the module header.
* Drop-in shape for the consumer seam: `(transport, handlers, opts) =>
* unsubscribe`. `onSnapshot` / `onUpsert` / `onRemove` dispatch, capped
* backoff, and one-refresh-per-auth-failure-streak match what the consumer
* expects.
*/
export function startWsSubscription(transport, handlers, opts = {}) {
const initialBackoffMs = opts.initialBackoffMs ?? DEFAULT_INITIAL_BACKOFF_MS;
const maxBackoffMs = opts.maxBackoffMs ?? DEFAULT_MAX_BACKOFF_MS;
const pingIntervalMs = opts.pingIntervalMs ?? DEFAULT_PING_INTERVAL_MS;
const pongTimeoutMs = opts.pongTimeoutMs ?? DEFAULT_PONG_TIMEOUT_MS;
const controller = new AbortController();
let closed = false;
/** The socket for the in-flight attempt (so `close()` can tear it down). */
let activeSocket = null;
const emitStatus = (s) => {
try {
handlers.onStatus?.(s);
}
catch {
// A throwing status handler must not kill the loop.
}
};
const backoff = (attempt) => Math.min(initialBackoffMs * 2 ** attempt, maxBackoffMs);
/** Idempotent terminal close — the ONLY place "closed" is emitted. */
const close = () => {
if (closed)
return;
closed = true;
controller.abort();
try {
activeSocket?.close();
}
catch {
// socket already closing / closed
}
emitStatus("closed");
};
if (opts.signal) {
if (opts.signal.aborted) {
close();
return close;
}
opts.signal.addEventListener("abort", close, { once: true });
}
const wsCtor = resolveWsCtor(transport);
if (!wsCtor) {
// No WebSocket in this runtime → the live augmentation can't run. Signal
// "live unavailable" (terminal, non-error) so the consumer stays on its
// polling floor. Not a hang, not an error UI.
handlers.onError?.(new VaultUnreachableError("subscribe: WebSocket unavailable — live disabled, polling only", 0));
close();
return close;
}
/** Abortable sleep — resolves early (without throwing) on close/abort. */
const sleep = (ms) => new Promise((resolve) => {
const timer = setTimeout(() => {
controller.signal.removeEventListener("abort", onAbort);
resolve();
}, ms);
const onAbort = () => {
clearTimeout(timer);
resolve();
};
controller.signal.addEventListener("abort", onAbort, { once: true });
});
/** One WebSocket connection; resolves when it closes / errors / is aborted. */
const runOneConnection = (token) => new Promise((resolve) => {
let opened = false;
let gotMessage = false;
let settled = false;
let sessionToken = token; // the token last sent in an `auth` message
let pingTimer = null;
let pongTimer = null;
// Snapshot chunk accumulator (reset per connection — a snapshot is sent
// once per authenticated (re)connect).
let snapshotAcc = [];
let snapshotOpen = false;
let ws;
try {
ws = new wsCtor(toWsUrl(transport.url));
}
catch {
// Constructor threw (bad URL / no WS support) → handshake failure.
resolve({ opened: false, gotMessage: false, closeCode: null });
return;
}
activeSocket = ws;
const clearTimers = () => {
if (pingTimer) {
clearInterval(pingTimer);
pingTimer = null;
}
if (pongTimer) {
clearTimeout(pongTimer);
pongTimer = null;
}
};
const settle = (r) => {
if (settled)
return;
settled = true;
clearTimers();
controller.signal.removeEventListener("abort", onAbort);
if (activeSocket === ws)
activeSocket = null;
resolve(r);
};
function onAbort() {
try {
ws.close();
}
catch {
// already closing
}
settle({ opened, gotMessage, closeCode: null });
}
controller.signal.addEventListener("abort", onAbort, { once: true });
/** Any server frame proves liveness — clear the pending pong deadline. */
const markActivity = () => {
if (pongTimer) {
clearTimeout(pongTimer);
pongTimer = null;
}
};
const armPong = () => {
if (pongTimer)
clearTimeout(pongTimer);
pongTimer = setTimeout(() => {
// No liveness response in time → the socket is wedged. Close it; the
// reconnect re-snapshots (preserving the no-replay self-healing).
try {
ws.close();
}
catch {
// ignore
}
settle({ opened, gotMessage, closeCode: null });
}, pongTimeoutMs);
};
const onPingTick = async () => {
if (closed || ws.readyState !== WS_OPEN)
return;
// Re-auth on the OPEN socket if the token rotated (no reconnect, no
// re-snapshot) — keeps hours-long sockets authed across ~15-min JWTs.
try {
const tok = await transport.resolveToken();
if (!closed && tok !== sessionToken && ws.readyState === WS_OPEN) {
ws.send(JSON.stringify({ type: "auth", token: tok }));
sessionToken = tok;
}
}
catch {
// token resolution hiccup — still probe liveness below
}
if (closed || ws.readyState !== WS_OPEN)
return;
try {
ws.send("ping");
}
catch {
return;
}
armPong();
};
/** Route one parsed server message — guards match the consumer contract. */
const dispatch = (raw) => {
let parsed;
try {
parsed = typeof raw === "string" ? JSON.parse(raw) : JSON.parse(String(raw));
}
catch (err) {
// One malformed frame must not kill a healthy socket.
handlers.onError?.(err);
return;
}
const body = isRecord(parsed) ? parsed : {};
const type = body.type;
if (type === "snapshot") {
const notes = Array.isArray(body.notes) ? body.notes : [];
snapshotAcc = snapshotOpen ? snapshotAcc.concat(notes) : notes.slice();
snapshotOpen = true;
// `done` is always present per the contract; treat a missing flag as
// a complete (non-chunked) snapshot rather than buffering forever.
if (body.done === true || body.done === undefined) {
handlers.onSnapshot(snapshotAcc);
snapshotAcc = [];
snapshotOpen = false;
}
}
else if (type === "upsert") {
if (body.note && typeof body.note === "object")
handlers.onUpsert(body.note);
}
else if (type === "remove") {
if (typeof body.id === "string")
handlers.onRemove(body.id);
}
// Unknown type: ignored (forward compatibility).
};
ws.onopen = () => {
opened = true;
try {
ws.send(JSON.stringify({ type: "auth", token: sessionToken }));
}
catch {
// send-on-open failed — the close/error handler drives recovery
}
pingTimer = setInterval(() => {
void onPingTick();
}, pingIntervalMs);
};
ws.onmessage = (ev) => {
const data = isRecord(ev) ? ev.data : undefined;
markActivity();
// A `pong` is liveness only — it must NOT count as "auth succeeded".
// Check it BEFORE the open flip so the "open only after a real (post-
// auth) data frame" invariant holds regardless of ping cadence (a pong
// can precede the snapshot when pingInterval < the server's auth
// deadline — not at the 30s/10s defaults, but possible in tests).
if (typeof data === "string" && data === "pong")
return; // liveness ack
if (!gotMessage) {
// First real frame confirms auth passed + the socket works. This is
// the analog of the old SSE "open" (auth already validated by then).
gotMessage = true;
emitStatus("open");
}
dispatch(data);
};
ws.onerror = () => {
// An error is almost always followed by close (which settles). Don't
// settle here — let onclose carry the code.
};
ws.onclose = (ev) => {
const code = isRecord(ev) && typeof ev.code === "number" ? ev.code : null;
const reason = isRecord(ev) && typeof ev.reason === "string" && ev.reason ? ev.reason : undefined;
settle(reason !== undefined
? { opened, gotMessage, closeCode: code, reason }
: { opened, gotMessage, closeCode: code });
};
});
void (async () => {
let attempt = 0; // backoff exponent; reset on a working session
let firstConnect = true;
let refreshedThisStreak = false;
while (!closed) {
emitStatus(firstConnect ? "connecting" : "reconnecting");
firstConnect = false;
let token;
try {
token = await transport.resolveToken();
}
catch (err) {
if (closed)
return;
const message = err instanceof Error ? err.message : String(err);
handlers.onError?.(new VaultUnreachableError(`subscribe ws token resolution failed: ${message}`, 0));
await sleep(backoff(attempt));
attempt++;
continue;
}
const result = await runOneConnection(token);
if (closed)
return;
const code = result.closeCode;
// ---- Terminal conditions (a reconnect can't heal them) ----
// Even these degrade gracefully: the consumer just stays on its polling
// floor; we only stop the background reconnect because retrying is futile.
// 4400 protocol error (mirrors the old SSE 400=terminal).
if (code === 4400) {
handlers.onError?.(new Error(`subscribe ws rejected (4400 protocol error)${result.reason ? `: ${result.reason}` : ""}`));
close();
return;
}
// 4403 forbidden — scope mismatch / a re-auth that would widen scope.
// Refresh can't grant more scope → terminal (VaultPermissionError).
if (code === 4403) {
handlers.onError?.(new VaultPermissionError(`subscribe ws forbidden (4403)`, result.reason ? { body: result.reason } : {}));
close();
return;
}
// 4401 unauthorized (expired / revoked) — refresh once per auth-failure
// streak, then reconnect; exhausted → terminal.
if (code === 4401) {
if (!refreshedThisStreak && transport.refreshToken) {
let fresh = null;
try {
fresh = await transport.refreshToken();
}
catch {
fresh = null;
}
if (fresh !== null && !closed) {
refreshedThisStreak = true;
continue; // immediate reconnect with the fresh token
}
}
handlers.onError?.(new VaultAuthError(`subscribe ws rejected (4401)`, 401, result.reason ? { body: result.reason } : {}));
close();
return;
}
// ---- Non-terminal: transient → capped-backoff reconnect FOREVER ----
// This IS the graceful-degradation path. Handshake failure (an old server
// without the WS binding, or a network that blocks WebSockets), a network
// error, 4408 auth-timeout, 1006/1011, a clean drop, our ping-timeout, or
// an opened-but-silent socket all land here. The subscription stays
// non-`live` (the consumer keeps polling) while we keep probing, so live
// re-establishes the moment WS is reachable again.
refreshedThisStreak = false;
if (result.gotMessage) {
// A working session dropped → reconnect fast; the fresh snapshot
// reconciles anything missed.
attempt = 0;
}
else if (!result.opened) {
// Never even upgraded — the common "WS not available here" case.
// Observational only (the consumer keeps polling); backoff grows to the
// ceiling so a permanently-SSE-only server is probed at most ~every 30s.
handlers.onError?.(new VaultUnreachableError(`subscribe ws: connection did not open (live unavailable — polling)`, 0));
}
await sleep(backoff(attempt));
attempt++;
}
})();
return close;
}
//# sourceMappingURL=ws-transport.js.map
{"version":3,"file":"ws-transport.js","sourceRoot":"","sources":["../src/ws-transport.ts"],"names":[],"mappings":"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"}
+45
-0
# Changelog
## [0.3.4] - 2026-07-05
### Changed — live-query is now WebSocket-only (no SSE; the fallback is polling)
Phase 2 of the SSE → Hibernatable-WebSockets migration (team-vault
`Decisions/2026-07-04-live-query-ws-hibernation`; wire contract
`parachute-cloud/workers/vault/docs/live-query-ws.md`). A held-open SSE stream
pins the per-vault Cloudflare Durable Object awake and bills duration; a
Hibernatable WebSocket lets an idle-but-open socket evict the DO → ~$0 idle.
**SSE is being retired, so the client no longer speaks it** — the model is
two-state: **WebSocket-or-polling**, where polling (the consumer's react-query
cadence) is the floor and a live socket is a fresher-than-polling augmentation
on top.
- **`VaultClient.subscribe()` is WebSocket-only** (`ws-transport.ts`). The
previous fetch-stream SSE transport (`startSubscription` / `parseSSEStream`)
is removed. `createLiveList`, the reconcilers, and consumers (notes-ui) are
untouched — they sit above the transport seam.
- **Graceful degradation to polling (never an error, never a hang).** When WS
can't be established — an old server without the binding, a WS-blocked
network, or a drop — the subscription stays in a non-`live` status (so the
consumer keeps polling) and runs a **capped-backoff reconnect in the
background**, re-establishing the live augmentation the moment WS is reachable
again. A runtime with no `WebSocket` signals "live unavailable" once and the
consumer polls. Only a protocol bug (4400), a scope denial (4403), or
exhausted auth stop the reconnect loop — and even those just leave the
consumer on polling.
- **First-message auth handshake.** Browsers can't set headers on a WebSocket,
so auth is the first frame (`{"type":"auth","token":"…"}`); the token is
re-sent on the OPEN socket when it rotates (no reconnect, no re-snapshot).
- **Wire parity.** Payloads are byte-identical to what the SSE `data:` bodies
carried (`upsert` / `remove`); the snapshot is chunked and accumulated until
`done:true`, then emitted as the single `onSnapshot` the consumer expects.
- **Liveness.** Client-driven raw `"ping"` every ~30s, expecting `"pong"` (the
DO's no-wake auto-response) or any frame within ~10s, else the socket is
terminated and reconnected (fresh snapshot — the no-replay self-healing is
preserved).
- **Close-code map:** 4400 protocol → terminal; 4401 unauthorized →
refresh-once-then-reconnect; 4403 forbidden → terminal
(`VaultPermissionError`); 4408 auth-timeout → reconnect.
BREAKING (pre-1.0, live-query API only): the `parseSSEStream`,
`startSubscription`, and `SSEEvent` exports are gone; `VaultClient.subscribe`'s
consumer surface (`onSnapshot`/`onUpsert`/`onRemove`/`onStatus`) is unchanged.
## [0.3.3-rc.1] - 2026-06-24

@@ -4,0 +49,0 @@

+4
-3

@@ -35,5 +35,6 @@ /**

export { buildNotesQuery, isNotesQuery, toNotesSearchParams, type MetadataFilter, type MetadataOps, type MetadataScalar, type NotesDateFilter, type NotesQuery, type NotesQueryInput, type RawNotesQuery, } from "./notes-query.js";
export { parseSSEStream, startSubscription, assertSubscribableQuery, type SSEEvent, type SubscribeHandlers, type SubscribeOptions, type SubscribeStatus, type SubscribeTransport, } from "./subscribe.js";
export { assertSubscribableQuery, type SubscribeHandlers, type SubscribeOptions, type SubscribeStatus, type SubscribeTransport, type WebSocketLike, type WebSocketCtor, } from "./subscribe.js";
export { startWsSubscription } from "./ws-transport.js";
export { createLiveList, reconcileUpsert, reconcileRemove, isSubscribableParams, toLiveListStatus, type LiveList, type LiveListClient, type LiveListState, type LiveListStatus, type CreateLiveListOptions, } from "./live-list.js";
export type { TagExpandMode, VaultInfo, Note, NoteSummary, NoteLink, NoteAttachment, TagSummary, TagFieldSchema, TagRecord, TagUpsertPayload, UpdateNotePayload, CreateNotePayload, NoteLinkAddPayload, NoteLinkRemovePayload, FindPathResult, StorageUploadResult, UploadProgress, ReachabilitySignal, } from "./vault-types.js";
export type { TagExpandMode, TranscriptionCapability, VaultInfo, Note, NoteSummary, NoteLink, NoteAttachment, TagSummary, TagFieldSchema, TagRecord, TagUpsertPayload, UpdateNotePayload, CreateNotePayload, NoteLinkAddPayload, NoteLinkRemovePayload, FindPathResult, StorageUploadResult, UploadProgress, ReachabilitySignal, } from "./vault-types.js";
export { loadToken, saveToken, clearToken, clearAllTokensForApp, storedFromTokenResponse, tokenKey, TOKEN_KEY_PREFIX, type TokenStorageOpts, } from "./token-storage.js";

@@ -59,3 +60,3 @@ export { reloadAfterServiceWorkerUpdate, SW_RELOAD_FALLBACK_MS, __resetReloadArmedForTests, type ReloadAfterSWUpdateOpts, } from "./sw-reload.js";

*/
export declare const APP_CLIENT_VERSION = "0.3.3";
export declare const APP_CLIENT_VERSION = "0.3.4";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,EACL,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOxD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,aAAa,EACb,uBAAuB,EACvB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGlF,YAAY,EACV,UAAU,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKtD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UAAyB,CAAC"}

@@ -47,5 +47,10 @@ /**

export { buildNotesQuery, isNotesQuery, toNotesSearchParams, } from "./notes-query.js";
// Live-query SSE subscription — `VaultClient.subscribe()` is the consumer
// API; the parser + loop primitives are exported for advanced/raw use.
export { parseSSEStream, startSubscription, assertSubscribableQuery, } from "./subscribe.js";
// Live-query subscription contract — `VaultClient.subscribe()` is the consumer
// API. The transport is WebSocket-only; these are the shared types + the
// client-side query guard.
export { assertSubscribableQuery, } from "./subscribe.js";
// Live-query WebSocket transport — the WS-only subscription loop behind
// `VaultClient.subscribe`. When WS is unavailable it degrades to the consumer's
// polling floor (never SSE). Exported for advanced/raw use.
export { startWsSubscription } from "./ws-transport.js";
// Live-list — framework-light reconciler over `VaultClient.subscribe()`.

@@ -67,3 +72,3 @@ // `createLiveList` maintains an ordered note list from the snapshot + delta

// regex-parsing the DOM themselves. See
// `parachute-patterns/patterns/runtime-tenancy-contract.md`.
// `../../../docs/contracts/runtime-tenancy-contract.md`.
export { getMountBase, getTenantId, getHubOrigin, getVaultUrl } from "./mount.js";

@@ -70,0 +75,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sEAAsE;AACtE,wEAAwE;AACxE,6EAA6E;AAC7E,uCAAuC;AACvC,OAAO,EACL,kBAAkB,GAQnB,MAAM,2BAA2B,CAAC;AAEnC,qDAAqD;AACrD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GAOpB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,wEAAwE;AACxE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AAE7F,yCAAyC;AACzC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,GAQpB,MAAM,kBAAkB,CAAC;AAE1B,0EAA0E;AAC1E,uEAAuE;AACvE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GAMxB,MAAM,gBAAgB,CAAC;AAExB,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GAMjB,MAAM,gBAAgB,CAAC;AAwBxB,qBAAqB;AACrB,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,gDAAgD;AAChD,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,0BAA0B,GAE3B,MAAM,gBAAgB,CAAC;AAExB,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElE,4EAA4E;AAC5E,wEAAwE;AACxE,wEAAwE;AACxE,wCAAwC;AACxC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAclF;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,gFAAgF;AAChF,2EAA2E;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sEAAsE;AACtE,wEAAwE;AACxE,6EAA6E;AAC7E,uCAAuC;AACvC,OAAO,EACL,kBAAkB,GAQnB,MAAM,2BAA2B,CAAC;AAEnC,qDAAqD;AACrD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GAOpB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,4CAA4C;AAC5C,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,wEAAwE;AACxE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC;AAE7F,yCAAyC;AACzC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,wEAAwE;AACxE,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,GAQpB,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EACL,uBAAuB,GAOxB,MAAM,gBAAgB,CAAC;AAExB,wEAAwE;AACxE,gFAAgF;AAChF,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GAMjB,MAAM,gBAAgB,CAAC;AAyBxB,qBAAqB;AACrB,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,gDAAgD;AAChD,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,0BAA0B,GAE3B,MAAM,gBAAgB,CAAC;AAExB,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElE,4EAA4E;AAC5E,wEAAwE;AACxE,wEAAwE;AACxE,wCAAwC;AACxC,yDAAyD;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAclF;;;;;;;GAOG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,gFAAgF;AAChF,2EAA2E;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}

@@ -6,3 +6,3 @@ /**

* injects into every served `index.html` (see
* `parachute-patterns/patterns/runtime-tenancy-contract.md` and the
* `../../../docs/contracts/runtime-tenancy-contract.md` and the
* producer-side reference at

@@ -9,0 +9,0 @@ * `parachute-surface/packages/app-host/src/tenancy-injection.ts`). Apps that

@@ -6,3 +6,3 @@ /**

* injects into every served `index.html` (see
* `parachute-patterns/patterns/runtime-tenancy-contract.md` and the
* `../../../docs/contracts/runtime-tenancy-contract.md` and the
* producer-side reference at

@@ -9,0 +9,0 @@ * `parachute-surface/packages/app-host/src/tenancy-injection.ts`). Apps that

/**
* Live-query SSE subscription — the client side of vault's
* `GET /vault/<name>/api/subscribe` (vault design
* `2026-06-08-live-query-sse.md`). Upstreamed from my-vault-ui's
* `src/vault/sse.ts` (which carried the literal comment "to be upstreamed
* as VaultClient.subscribe()"), redesigned around fetch-stream transport.
* Live-query subscription contract — the shared types + query guard for
* vault's `GET /vault/<name>/api/subscribe`. The **transport is WebSocket-only**
* ({@link ./ws-transport.ts}); `VaultClient.subscribe()` is the consumer API.
*
* The server sends one `snapshot` event (the currently-matching note set),
* then `upsert` / `remove` events as notes change, plus `:` comment
* keepalives every ~25s. The same query grammar as `GET /api/notes`
* applies, minus the shapes that can't be evaluated live (`search`,
* `near`, `cursor` — vault rejects them with 400; we reject them
* client-side before opening a stream).
* The server sends one `snapshot` (the currently-matching note set), then
* `upsert` / `remove` messages as notes change. The same query grammar as
* `GET /api/notes` applies, minus the shapes that can't be evaluated live
* (`search`, `near`, `cursor` — vault rejects them with 400; we reject them
* client-side, see {@link assertSubscribableQuery}).
*
* **Why fetch-stream, not EventSource.** `EventSource` cannot set request
* headers, which forces the bearer into a `?key=` query param — a token in
* proxy logs, browser history, and Referer headers. That was flagged as the
* design trap when this was upstreamed. We instead `fetch()` the stream
* with `Authorization: Bearer <token>` and parse the SSE wire format off
* the response `ReadableStream` ourselves ({@link parseSSEStream}). Bonus:
* fetch works identically in Bun/Node server contexts (no `EventSource`
* global needed), which matters because surface-host's `ScopedVaultClient`
* runs this server-side.
* **Live is an augmentation; polling is the floor.** There is no SSE fallback —
* SSE is being retired and the client never speaks it. When WS is unavailable
* the live subscription degrades to the consumer's polling cadence rather than
* erroring; see the `ws-transport.ts` header for the degradation model.
*
* **Reconnection model (self-correcting).** Vault's MVP has no
* `Last-Event-ID` replay: on reconnect the client simply re-subscribes and
* receives a **fresh snapshot**, which replaces the consumer's whole set —
* any events missed while disconnected are reconciled by the snapshot, so
* a dropped connection can never leave the consumer permanently stale.
* Reconnects use capped exponential backoff
* ({@link SubscribeOptions.initialBackoffMs} / `maxBackoffMs`).
*
* **Auth.** The token is resolved per connection attempt via the client's
* token resolution (static token or `tokenProvider`). A 401/403 on connect
* (including reconnect-after-token-expiry — the common case for ~15-min hub
* JWTs) drives the client's refresh-on-401 seam (`onAuthError`) once, then
* resubscribes with the fresh token. If refresh isn't possible (or the
* refreshed token is rejected too), the subscription terminates:
* `onError(VaultAuthError)` then `onStatus("closed")`.
* **Reconnection is self-correcting.** Vault has no event replay: a reconnect
* re-delivers a fresh snapshot that replaces the consumer's whole set, so a
* dropped connection can never leave the consumer permanently stale. Reconnects
* use capped exponential backoff ({@link SubscribeOptions.initialBackoffMs} /
* `maxBackoffMs`).
*/
import type { Note } from "./vault-types.js";
/** A single parsed SSE event (named event + joined data payload). */
export interface SSEEvent {
/** The `event:` field; `"message"` when the server didn't name one. */
event: string;
/** The `data:` payload — multi-line `data:` fields joined with `\n`. */
data: string;
}
/** Lifecycle signal for a live subscription. */

@@ -53,5 +28,5 @@ export type SubscribeStatus =

"connecting"
/** Stream is open; snapshot has been (or is about to be) delivered. */
/** Socket is open + authed; snapshot has been (or is about to be) delivered. */
| "open"
/** Stream dropped; a reconnect attempt is scheduled / in flight. */
/** Connection dropped; a reconnect attempt is scheduled / in flight. */
| "reconnecting"

@@ -76,5 +51,7 @@ /** Terminal: unsubscribed, aborted, or an unrecoverable error. */

* Invoked on every error the subscription encounters — transient
* (network drop, 5xx; reconnection continues) and terminal alike. A
* terminal error is always followed by `onStatus("closed")`; without
* that, the subscription is still retrying.
* (connection drop, WS unavailable; reconnection continues) and terminal
* alike. A terminal error is always followed by `onStatus("closed")`;
* without that, the subscription is still retrying. Observational only —
* a live-transport error must never become the consumer's data-error state
* (that would make live worse than polling).
*/

@@ -92,26 +69,17 @@ onError?: (err: unknown) => void;

maxBackoffMs?: number;
/**
* Interval between client-driven liveness pings (the literal `"ping"`
* frame). Default 30000.
*/
pingIntervalMs?: number;
/**
* How long to wait for a `"pong"` (or any other server frame) after a ping
* before treating the socket as dead and reconnecting. Default 10000.
*/
pongTimeoutMs?: number;
}
/**
* Parse the SSE wire format off a `ReadableStream<Uint8Array>` (the
* response body of a `text/event-stream` fetch). Yields one
* {@link SSEEvent} per dispatched event. Implements the parts of the
* WHATWG SSE grammar the vault emits, faithfully:
*
* - `event:` names the next dispatch; resets after each dispatch.
* - `data:` lines accumulate; multi-line data joins with `\n`.
* - A blank line dispatches. Per spec, an event with an EMPTY data
* buffer is dropped (this is how `event:`-only frames behave).
* - Lines starting with `:` are comments (vault's keepalive) — ignored.
* - `id:` / `retry:` fields are tolerated and ignored (vault doesn't
* send them; reconnection here is snapshot-based, not cursor-based).
* - CRLF / CR line endings are normalized.
*
* Exported for direct use/testing; `VaultClient.subscribe()` is the
* consumer-facing API.
*/
export declare function parseSSEStream(stream: ReadableStream<Uint8Array>): AsyncGenerator<SSEEvent, void, undefined>;
/**
* Query shapes vault's `/api/subscribe` rejects with 400 — checked
* client-side so a bad subscription throws synchronously instead of
* opening a doomed stream. Mirrors `parachute-vault/src/subscribe.ts`:
* opening a doomed connection. Mirrors `parachute-vault/src/subscribe.ts`:
* `search` (FTS) and `near` (graph BFS) can't be evaluated against a

@@ -122,3 +90,23 @@ * single changed note; `cursor` (paging) is meaningless for a live set.

/**
* Transport seam between `VaultClient` and the subscription loop. Keeps
* The minimal WebSocket surface the WS transport (`ws-transport.ts`) drives.
* Typed structurally (rather than as the DOM `WebSocket`) so a test fake is
* trivial and so the transport works under any runtime that ships a
* WHATWG-shaped WebSocket global (browser, Bun, Node ≥ 22). Event params are
* `any` on purpose — the DOM `WebSocket` is then structurally assignable to
* this without a strict-function-types clash, and the transport reads only
* `ev.data` / `ev.code` / `ev.reason` defensively.
*/
export interface WebSocketLike {
readonly readyState: number;
send(data: string): void;
close(code?: number, reason?: string): void;
onopen: ((ev: any) => void) | null;
onmessage: ((ev: any) => void) | null;
onerror: ((ev: any) => void) | null;
onclose: ((ev: any) => void) | null;
}
/** Constructor for a {@link WebSocketLike} (the global `WebSocket`, or a fake). */
export type WebSocketCtor = new (url: string) => WebSocketLike;
/**
* Transport seam between `VaultClient` and the WS subscription loop. Keeps
* the loop independently testable and keeps token custody inside the

@@ -129,21 +117,20 @@ * client — the loop sees a resolver + refresh callback, never a stored

export interface SubscribeTransport {
/** Fully-built subscribe URL (`<vaultUrl>/api/subscribe?<query>`). */
/** Fully-built subscribe URL (`<vaultUrl>/api/subscribe?<query>`, http(s)). */
url: string;
/** Resolve the bearer for the next connection attempt. */
/** Resolve the bearer for the next connection attempt / re-auth. */
resolveToken: () => Promise<string>;
/**
* The client's refresh-on-401 seam. Returns a fresh token (the loop
* resubscribes with it) or null when refresh isn't possible (the loop
* terminates with `VaultAuthError`). Absent = no refresh path.
* The client's refresh-on-auth-failure seam. Returns a fresh token (the loop
* re-auths / reconnects with it) or null when refresh isn't possible (the
* loop terminates with `VaultAuthError`). Absent = no refresh path.
*/
refreshToken?: (() => Promise<string | null>) | undefined;
fetchImpl: typeof fetch;
/**
* WebSocket constructor used to open the live socket. Defaults to the
* runtime's global `WebSocket` when omitted; when neither is available the
* subscription signals "live unavailable" (the consumer keeps polling).
* Injected in tests.
*/
webSocketImpl?: WebSocketCtor | undefined;
}
/**
* Run the subscription loop: connect → deliver events → reconnect with
* capped exponential backoff. Returns the unsubscribe function. See the
* module header for the full lifecycle contract; `VaultClient.subscribe()`
* is the consumer-facing wrapper.
*/
export declare function startSubscription(transport: SubscribeTransport, handlers: SubscribeHandlers, opts?: SubscribeOptions): () => void;
//# sourceMappingURL=subscribe.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gDAAgD;AAChD,MAAM,MAAM,eAAe;AACzB,6CAA6C;AAC3C,YAAY;AACd,uEAAuE;GACrE,MAAM;AACR,oEAAoE;GAClE,cAAc;AAChB,kEAAkE;GAChE,QAAQ,CAAC;AAEb,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,yDAAyD;IACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAuB,cAAc,CACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAqD3C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAkBrE;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1D,SAAS,EAAE,OAAO,KAAK,CAAC;CACzB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,GAAE,gBAAqB,GAC1B,MAAM,IAAI,CA2KZ"}
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,gDAAgD;AAChD,MAAM,MAAM,eAAe;AACzB,6CAA6C;AAC3C,YAAY;AACd,gFAAgF;GAC9E,MAAM;AACR,wEAAwE;GACtE,cAAc;AAChB,kEAAkE;GAChE,QAAQ,CAAC;AAEb,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,yDAAyD;IACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAkBrE;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEnC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEtC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACrC;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C"}
/**
* Live-query SSE subscription — the client side of vault's
* `GET /vault/<name>/api/subscribe` (vault design
* `2026-06-08-live-query-sse.md`). Upstreamed from my-vault-ui's
* `src/vault/sse.ts` (which carried the literal comment "to be upstreamed
* as VaultClient.subscribe()"), redesigned around fetch-stream transport.
* Live-query subscription contract — the shared types + query guard for
* vault's `GET /vault/<name>/api/subscribe`. The **transport is WebSocket-only**
* ({@link ./ws-transport.ts}); `VaultClient.subscribe()` is the consumer API.
*
* The server sends one `snapshot` event (the currently-matching note set),
* then `upsert` / `remove` events as notes change, plus `:` comment
* keepalives every ~25s. The same query grammar as `GET /api/notes`
* applies, minus the shapes that can't be evaluated live (`search`,
* `near`, `cursor` — vault rejects them with 400; we reject them
* client-side before opening a stream).
* The server sends one `snapshot` (the currently-matching note set), then
* `upsert` / `remove` messages as notes change. The same query grammar as
* `GET /api/notes` applies, minus the shapes that can't be evaluated live
* (`search`, `near`, `cursor` — vault rejects them with 400; we reject them
* client-side, see {@link assertSubscribableQuery}).
*
* **Why fetch-stream, not EventSource.** `EventSource` cannot set request
* headers, which forces the bearer into a `?key=` query param — a token in
* proxy logs, browser history, and Referer headers. That was flagged as the
* design trap when this was upstreamed. We instead `fetch()` the stream
* with `Authorization: Bearer <token>` and parse the SSE wire format off
* the response `ReadableStream` ourselves ({@link parseSSEStream}). Bonus:
* fetch works identically in Bun/Node server contexts (no `EventSource`
* global needed), which matters because surface-host's `ScopedVaultClient`
* runs this server-side.
* **Live is an augmentation; polling is the floor.** There is no SSE fallback —
* SSE is being retired and the client never speaks it. When WS is unavailable
* the live subscription degrades to the consumer's polling cadence rather than
* erroring; see the `ws-transport.ts` header for the degradation model.
*
* **Reconnection model (self-correcting).** Vault's MVP has no
* `Last-Event-ID` replay: on reconnect the client simply re-subscribes and
* receives a **fresh snapshot**, which replaces the consumer's whole set —
* any events missed while disconnected are reconciled by the snapshot, so
* a dropped connection can never leave the consumer permanently stale.
* Reconnects use capped exponential backoff
* ({@link SubscribeOptions.initialBackoffMs} / `maxBackoffMs`).
*
* **Auth.** The token is resolved per connection attempt via the client's
* token resolution (static token or `tokenProvider`). A 401/403 on connect
* (including reconnect-after-token-expiry — the common case for ~15-min hub
* JWTs) drives the client's refresh-on-401 seam (`onAuthError`) once, then
* resubscribes with the fresh token. If refresh isn't possible (or the
* refreshed token is rejected too), the subscription terminates:
* `onError(VaultAuthError)` then `onStatus("closed")`.
* **Reconnection is self-correcting.** Vault has no event replay: a reconnect
* re-delivers a fresh snapshot that replaces the consumer's whole set, so a
* dropped connection can never leave the consumer permanently stale. Reconnects
* use capped exponential backoff ({@link SubscribeOptions.initialBackoffMs} /
* `maxBackoffMs`).
*/
import { VaultAuthError, VaultPermissionError, VaultServerError, VaultUnreachableError } from "./vault-client.js";
const DEFAULT_INITIAL_BACKOFF_MS = 1_000;
const DEFAULT_MAX_BACKOFF_MS = 30_000;
/**
* Parse the SSE wire format off a `ReadableStream<Uint8Array>` (the
* response body of a `text/event-stream` fetch). Yields one
* {@link SSEEvent} per dispatched event. Implements the parts of the
* WHATWG SSE grammar the vault emits, faithfully:
*
* - `event:` names the next dispatch; resets after each dispatch.
* - `data:` lines accumulate; multi-line data joins with `\n`.
* - A blank line dispatches. Per spec, an event with an EMPTY data
* buffer is dropped (this is how `event:`-only frames behave).
* - Lines starting with `:` are comments (vault's keepalive) — ignored.
* - `id:` / `retry:` fields are tolerated and ignored (vault doesn't
* send them; reconnection here is snapshot-based, not cursor-based).
* - CRLF / CR line endings are normalized.
*
* Exported for direct use/testing; `VaultClient.subscribe()` is the
* consumer-facing API.
*/
export async function* parseSSEStream(stream) {
const reader = stream.getReader();
const decoder = new TextDecoder();
let buffer = "";
let eventName = "";
let dataLines = [];
const takeEvent = () => {
// Spec: empty data buffer → reset the event name, dispatch nothing.
if (dataLines.length === 0) {
eventName = "";
return null;
}
const ev = { event: eventName || "message", data: dataLines.join("\n") };
eventName = "";
dataLines = [];
return ev;
};
const handleLine = (line) => {
if (line === "")
return takeEvent();
if (line.startsWith(":"))
return null; // comment / keepalive
const colon = line.indexOf(":");
const field = colon === -1 ? line : line.slice(0, colon);
let value = colon === -1 ? "" : line.slice(colon + 1);
if (value.startsWith(" "))
value = value.slice(1);
if (field === "event")
eventName = value;
else if (field === "data")
dataLines.push(value);
// id / retry / unknown fields: ignored.
return null;
};
try {
while (true) {
const { done, value } = await reader.read();
if (done)
break;
buffer += decoder.decode(value, { stream: true });
// Normalize CRLF/CR → LF once per chunk, then emit complete lines.
buffer = buffer.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
let nl = buffer.indexOf("\n");
while (nl !== -1) {
const line = buffer.slice(0, nl);
buffer = buffer.slice(nl + 1);
const ev = handleLine(line);
if (ev)
yield ev;
nl = buffer.indexOf("\n");
}
}
// Stream ended; a trailing un-terminated line or un-dispatched event is
// dropped per spec (no final blank line = no dispatch).
}
finally {
reader.releaseLock();
}
}
/**
* Query shapes vault's `/api/subscribe` rejects with 400 — checked
* client-side so a bad subscription throws synchronously instead of
* opening a doomed stream. Mirrors `parachute-vault/src/subscribe.ts`:
* opening a doomed connection. Mirrors `parachute-vault/src/subscribe.ts`:
* `search` (FTS) and `near` (graph BFS) can't be evaluated against a

@@ -141,178 +43,2 @@ * single changed note; `cursor` (paging) is meaningless for a live set.

}
function isAbortError(err) {
return err instanceof DOMException && err.name === "AbortError";
}
/**
* Run the subscription loop: connect → deliver events → reconnect with
* capped exponential backoff. Returns the unsubscribe function. See the
* module header for the full lifecycle contract; `VaultClient.subscribe()`
* is the consumer-facing wrapper.
*/
export function startSubscription(transport, handlers, opts = {}) {
const initialBackoffMs = opts.initialBackoffMs ?? DEFAULT_INITIAL_BACKOFF_MS;
const maxBackoffMs = opts.maxBackoffMs ?? DEFAULT_MAX_BACKOFF_MS;
const controller = new AbortController();
let closed = false;
const emitStatus = (s) => {
try {
handlers.onStatus?.(s);
}
catch {
// A throwing status handler must not kill the loop.
}
};
/** Idempotent terminal close — the ONLY place "closed" is emitted. */
const close = () => {
if (closed)
return;
closed = true;
controller.abort();
emitStatus("closed");
};
if (opts.signal) {
if (opts.signal.aborted) {
// Already aborted: never open a connection. Emit the terminal status
// for consistency with a post-open abort.
close();
return close;
}
opts.signal.addEventListener("abort", close, { once: true });
}
/** Abortable sleep — resolves early (without throwing) on unsubscribe. */
const sleep = (ms) => new Promise((resolve) => {
const timer = setTimeout(() => {
controller.signal.removeEventListener("abort", onAbort);
resolve();
}, ms);
const onAbort = () => {
clearTimeout(timer);
resolve();
};
controller.signal.addEventListener("abort", onAbort, { once: true });
});
const dispatch = (ev) => {
let parsed;
try {
parsed = JSON.parse(ev.data);
}
catch (err) {
// One malformed frame must not kill a healthy stream.
handlers.onError?.(err);
return;
}
const body = (parsed ?? {});
if (ev.event === "snapshot") {
handlers.onSnapshot(Array.isArray(body.notes) ? body.notes : []);
}
else if (ev.event === "upsert") {
if (body.note && typeof body.note === "object")
handlers.onUpsert(body.note);
}
else if (ev.event === "remove") {
if (typeof body.id === "string")
handlers.onRemove(body.id);
}
// Unknown event names: ignored (forward compatibility).
};
void (async () => {
let attempt = 0; // backoff exponent; reset on every successful open
let firstConnect = true;
// One refresh per consecutive-auth-failure streak: a 401 right after a
// successful refresh means the fresh token is ALSO rejected — terminate
// instead of spinning refresh→401→refresh forever.
let refreshedThisStreak = false;
while (!closed) {
emitStatus(firstConnect ? "connecting" : "reconnecting");
firstConnect = false;
let res;
try {
const token = await transport.resolveToken();
res = await transport.fetchImpl(transport.url, {
headers: {
Authorization: `Bearer ${token}`,
Accept: "text/event-stream",
},
signal: controller.signal,
});
}
catch (err) {
if (closed || isAbortError(err))
return;
const message = err instanceof Error ? err.message : String(err);
handlers.onError?.(new VaultUnreachableError(`subscribe connect failed: ${message}`, 0));
await sleep(Math.min(initialBackoffMs * 2 ** attempt, maxBackoffMs));
attempt++;
continue;
}
if (res.status === 401 || res.status === 403) {
const bodyText = await res.text().catch(() => "");
if (!refreshedThisStreak && transport.refreshToken) {
let fresh = null;
try {
fresh = await transport.refreshToken();
}
catch {
fresh = null;
}
if (fresh !== null && !closed) {
refreshedThisStreak = true;
continue; // resubscribe immediately with the fresh token
}
}
// Unrecoverable: no refresh path, refresh failed, or the refreshed
// token was rejected too.
handlers.onError?.(res.status === 403
? new VaultPermissionError(`subscribe rejected (403)`, bodyText ? { body: bodyText } : {})
: new VaultAuthError(`subscribe rejected (401)`, 401, bodyText ? { body: bodyText } : {}));
close();
return;
}
if (res.status === 400) {
// Invalid/unsupported query — retrying can't heal it.
const bodyText = await res.text().catch(() => "");
handlers.onError?.(new Error(`subscribe rejected (400): ${bodyText}`));
close();
return;
}
if (!res.ok || !res.body) {
// 5xx / 503-cap / bodyless response — transient; back off and retry.
// A non-auth response also ends any 401 streak: the next 401 gets a
// fresh refresh attempt. Deliberate consequence: 401→5xx→401 spends
// TWO refreshes — one per streak — because the intervening 5xx
// proves the second 401 is not "the refreshed token was rejected
// too"; the guard only caps refreshes per CONSECUTIVE auth-failure
// streak, which is what prevents a refresh→401→refresh spin.
refreshedThisStreak = false;
const bodyText = await res.text().catch(() => "");
handlers.onError?.(new VaultServerError(`subscribe → ${res.status}`, res.status, bodyText || undefined));
await sleep(Math.min(initialBackoffMs * 2 ** attempt, maxBackoffMs));
attempt++;
continue;
}
// ---- Stream open ----
attempt = 0;
refreshedThisStreak = false;
emitStatus("open");
try {
for await (const ev of parseSSEStream(res.body)) {
if (closed)
return;
dispatch(ev);
}
// Server closed the stream — treat as transient; the reconnect's
// fresh snapshot reconciles anything missed.
}
catch (err) {
if (closed || isAbortError(err))
return;
handlers.onError?.(err);
}
if (closed)
return;
await sleep(Math.min(initialBackoffMs * 2 ** attempt, maxBackoffMs));
attempt++;
}
})();
return close;
}
//# sourceMappingURL=subscribe.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../src/subscribe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA6DH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAuB;IAC7D,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CACjB,iHAAiH,CAClH,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CACjB,+HAA+H,CAChI,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CACjB,2HAA2H,CAC5H,CAAC;IACJ,CAAC;AACH,CAAC"}

@@ -12,3 +12,4 @@ /**

* OAuth scope strings are whitespace-separated lists per RFC 6749 §3.3.
* The vocabulary follows `parachute-patterns/oauth-scopes.md` —
* The vocabulary follows the hub's oauth-scopes contract
* (https://github.com/ParachuteComputer/parachute-hub/blob/main/docs/contracts/oauth-scopes.md) —
* `<service>:<verb>` (`vault:read vault:write`). Type stays open: the

@@ -15,0 +16,0 @@ * parser is liberal; unknown scopes pass through.

@@ -1,1 +0,1 @@

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,gCAAgC,EAAE,MAAM,EAAE,CAAC;IAC3C,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qCAAqC,EAAE,MAAM,EAAE,CAAC;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAChD;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,gCAAgC,EAAE,MAAM,EAAE,CAAC;IAC3C,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qCAAqC,EAAE,MAAM,EAAE,CAAC;IAChD,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAChD;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}

@@ -41,3 +41,3 @@ /**

import { type NotesQueryInput } from "./notes-query.js";
import { type SubscribeHandlers, type SubscribeOptions } from "./subscribe.js";
import { type SubscribeHandlers, type SubscribeOptions, type WebSocketCtor } from "./subscribe.js";
import type { CreateNotePayload, FindPathResult, Note, NoteAttachment, ReachabilitySignal, StorageUploadResult, TagRecord, TagSummary, TagUpsertPayload, UpdateNotePayload, UploadProgress, VaultInfo } from "./vault-types.js";

@@ -210,2 +210,9 @@ /**

onReachability?: (signal: ReachabilitySignal, reason?: string) => void;
/**
* WebSocket constructor for {@link VaultClient.subscribe}'s live transport.
* Defaults to the runtime global `WebSocket`; when neither exists the
* subscription signals "live unavailable" and the consumer keeps polling.
* Primarily a test seam.
*/
webSocketImpl?: WebSocketCtor;
}

@@ -228,2 +235,3 @@ export declare class VaultClient {

private readonly onReachability?;
private readonly webSocketImpl?;
constructor(opts: VaultClientOptions);

@@ -336,8 +344,15 @@ /**

/**
* Live-query subscription over vault's `GET /api/subscribe` SSE endpoint
* (vault's live-query SSE design, 2026-06-08). Delivers one
* `onSnapshot(notes)` — the complete matching set — then `onUpsert(note)` /
* `onRemove(id)` as notes enter/change/leave the set. Returns the
* unsubscribe function.
* Live-query subscription over vault's `GET /api/subscribe` endpoint.
* Delivers one `onSnapshot(notes)` — the complete matching set — then
* `onUpsert(note)` / `onRemove(id)` as notes enter/change/leave the set.
* Returns the unsubscribe function.
*
* - **Transport is WebSocket-only** (`ws-transport.ts`). A Hibernatable
* WebSocket lets an idle-but-open socket evict the cloud vault DO → ~$0
* idle. There is **no SSE fallback** — SSE is being retired; when WS is
* unavailable (an old server without the binding, a WS-blocked network, or
* a drop) the subscription degrades to the consumer's **polling floor**
* (`isLive` stays false, no error UI, no hang) while a capped-backoff
* reconnect keeps trying in the background and re-establishes live the
* moment WS is reachable again.
* - **Query grammar** is the same as `queryNotes` (same server-side

@@ -347,6 +362,7 @@ * parser), except `search`, `near`, and `cursor` are not

* vault would 400).
* - **Transport is fetch-stream, not EventSource** — the bearer rides
* the `Authorization` header instead of a `?key=` query param
* (no token in proxy logs / browser history), and the method works
* server-side (Bun/Node) where `EventSource` may not exist.
* - **Auth rides a first-message handshake, never a `?key=` query param** —
* browsers can't header-auth a socket, so the client sends
* `{type:"auth",token}` as the first frame and re-auths on the open socket
* when the token rotates (no reconnect, no re-snapshot). No token in proxy
* logs.
* - **Reconnects are self-correcting**: vault has no event replay, so a

@@ -357,7 +373,7 @@ * reconnect re-delivers a *fresh snapshot* that replaces the

* {@link SubscribeOptions}).
* - **Auth expiry**: a 401/403 on (re)connect drives the client's
* `onAuthError` refresh seam once, then resubscribes with the fresh
* token (also rotated into the client). Unrecoverable auth → the
* subscription terminates with `onError(VaultAuthError)` +
* `onStatus("closed")`.
* - **Auth expiry**: a WS close 4401 (expired/revoked) drives the client's
* `onAuthError` refresh seam once, then reconnects with the fresh token
* (also rotated into the client). Unrecoverable auth → the subscription
* terminates with `onError(VaultAuthError)` + `onStatus("closed")` (and the
* consumer falls back to polling).
*

@@ -364,0 +380,0 @@ * @example

@@ -1,1 +0,1 @@

{"version":3,"file":"vault-client.d.ts","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"vault-client.d.ts","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}

@@ -41,3 +41,4 @@ /**

import { toNotesSearchParams } from "./notes-query.js";
import { assertSubscribableQuery, startSubscription, } from "./subscribe.js";
import { assertSubscribableQuery, } from "./subscribe.js";
import { startWsSubscription } from "./ws-transport.js";
/**

@@ -188,2 +189,3 @@ * Common base class for every `VaultClient` error.

onReachability;
webSocketImpl;
constructor(opts) {

@@ -213,2 +215,4 @@ if (opts.accessToken === undefined && opts.tokenProvider === undefined) {

this.onReachability = opts.onReachability;
if (opts.webSocketImpl !== undefined)
this.webSocketImpl = opts.webSocketImpl;
}

@@ -514,8 +518,15 @@ /**

/**
* Live-query subscription over vault's `GET /api/subscribe` SSE endpoint
* (vault's live-query SSE design, 2026-06-08). Delivers one
* `onSnapshot(notes)` — the complete matching set — then `onUpsert(note)` /
* `onRemove(id)` as notes enter/change/leave the set. Returns the
* unsubscribe function.
* Live-query subscription over vault's `GET /api/subscribe` endpoint.
* Delivers one `onSnapshot(notes)` — the complete matching set — then
* `onUpsert(note)` / `onRemove(id)` as notes enter/change/leave the set.
* Returns the unsubscribe function.
*
* - **Transport is WebSocket-only** (`ws-transport.ts`). A Hibernatable
* WebSocket lets an idle-but-open socket evict the cloud vault DO → ~$0
* idle. There is **no SSE fallback** — SSE is being retired; when WS is
* unavailable (an old server without the binding, a WS-blocked network, or
* a drop) the subscription degrades to the consumer's **polling floor**
* (`isLive` stays false, no error UI, no hang) while a capped-backoff
* reconnect keeps trying in the background and re-establishes live the
* moment WS is reachable again.
* - **Query grammar** is the same as `queryNotes` (same server-side

@@ -525,6 +536,7 @@ * parser), except `search`, `near`, and `cursor` are not

* vault would 400).
* - **Transport is fetch-stream, not EventSource** — the bearer rides
* the `Authorization` header instead of a `?key=` query param
* (no token in proxy logs / browser history), and the method works
* server-side (Bun/Node) where `EventSource` may not exist.
* - **Auth rides a first-message handshake, never a `?key=` query param** —
* browsers can't header-auth a socket, so the client sends
* `{type:"auth",token}` as the first frame and re-auths on the open socket
* when the token rotates (no reconnect, no re-snapshot). No token in proxy
* logs.
* - **Reconnects are self-correcting**: vault has no event replay, so a

@@ -535,7 +547,7 @@ * reconnect re-delivers a *fresh snapshot* that replaces the

* {@link SubscribeOptions}).
* - **Auth expiry**: a 401/403 on (re)connect drives the client's
* `onAuthError` refresh seam once, then resubscribes with the fresh
* token (also rotated into the client). Unrecoverable auth → the
* subscription terminates with `onError(VaultAuthError)` +
* `onStatus("closed")`.
* - **Auth expiry**: a WS close 4401 (expired/revoked) drives the client's
* `onAuthError` refresh seam once, then reconnects with the fresh token
* (also rotated into the client). Unrecoverable auth → the subscription
* terminates with `onError(VaultAuthError)` + `onStatus("closed")` (and the
* consumer falls back to polling).
*

@@ -560,7 +572,7 @@ * @example

const s = qs.toString();
return startSubscription({
const transport = {
url: `${this.baseUrl}/api/subscribe${s ? `?${s}` : ""}`,
resolveToken: () => this.resolveToken(),
// Reuse the request path's refresh-on-401 seam; rotate the cached
// token the same way `requestWithRetry` does on a successful refresh.
// Reuse the request path's refresh-on-auth-failure seam; rotate the
// cached token the same way `requestWithRetry` does on a refresh.
refreshToken: this.onAuthError

@@ -574,4 +586,5 @@ ? async () => {

: undefined,
fetchImpl: this.fetchImpl,
}, handlers, opts);
webSocketImpl: this.webSocketImpl,
};
return startWsSubscription(transport, handlers, opts);
}

@@ -578,0 +591,0 @@ async getNote(id, opts = {}) {

@@ -1,1 +0,1 @@

{"version":3,"file":"vault-client.js","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"vault-client.js","sourceRoot":"","sources":["../src/vault-client.ts"],"names":[],"mappings":"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"}

@@ -18,5 +18,32 @@ /**

export type TagExpandMode = "subtypes" | "namespace" | "both" | "exact";
/**
* Voice-transcription capability flag — whether the vault can actually
* transcribe audio, which is what a surface gates its mic affordance on.
* Distinct from the `auto_transcribe` POLICY toggle in vault config.
*
* Where each door serves it (they differ — verified 2026-07-03):
* - self-host vault: `GET /vault/<name>/api/vault` →
* `{ enabled, provider? }` (parachute-vault vault#529,
* `src/transcription/capability.ts`)
* - cloud vault: the BARE landing `GET /vault/<name>` →
* `{ enabled, minutes_remaining }` (parachute-cloud cloud#56,
* `workers/vault/src/vault-do.ts`); cloud's `/api/vault` does NOT
* carry it.
*
* Absent everywhere = an older vault that predates the flag — treat as
* "undeclared", not "disabled".
*/
export interface TranscriptionCapability {
/** True when the vault can transcribe (provider configured/plan entitled). */
enabled: boolean;
/** Self-host: the active provider's name (e.g. "scribe-http"). Omitted when disabled. */
provider?: string;
/** Cloud: monthly voice-minutes remaining on the plan meter (0 when disabled). */
minutes_remaining?: number;
}
export interface VaultInfo {
name: string;
description: string;
/** Present on self-host vaults ≥ vault#529; absent on older vaults and on cloud's `/api/vault`. */
transcription?: TranscriptionCapability;
stats?: {

@@ -23,0 +50,0 @@ noteCount: number;

@@ -1,1 +0,1 @@

{"version":3,"file":"vault-types.d.ts","sourceRoot":"","sources":["../src/vault-types.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"vault-types.d.ts","sourceRoot":"","sources":["../src/vault-types.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

export declare const SURFACE_CLIENT_VERSION = "0.3.3";
export declare const SURFACE_CLIENT_VERSION = "0.3.4";
//# sourceMappingURL=version.d.ts.map
// AUTO-GENERATED by scripts/gen-version.ts — do not edit by hand.
// Source of truth: package.json "version". Regenerated on every build
// (prebuild). See #57 — keeps SURFACE_CLIENT_VERSION from drifting.
export const SURFACE_CLIENT_VERSION = "0.3.3";
export const SURFACE_CLIENT_VERSION = "0.3.4";
//# sourceMappingURL=version.js.map
{
"name": "@openparachute/surface-client",
"version": "0.3.3",
"version": "0.3.4",
"description": "Shared browser-side library for Parachute apps \u2014 OAuth (PKCE + DCR), vault REST client, token storage, service-worker reload helper, vault-id + runtime tenancy helpers.",

@@ -5,0 +5,0 @@ "license": "AGPL-3.0",