@pouchy_ai/companion-sdk 0.29.1 → 0.32.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/CHANGELOG.md +117 -1
- package/README.md +65 -4
- package/dist/adapter-core.d.ts +58 -0
- package/dist/adapter-core.d.ts.map +1 -0
- package/dist/adapter-core.js +126 -0
- package/dist/adapter-core.js.map +1 -0
- package/dist/call.d.ts +1 -0
- package/dist/call.d.ts.map +1 -0
- package/dist/call.js +1 -0
- package/dist/call.js.map +1 -0
- package/dist/client.d.ts +91 -5
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +138 -14
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +15 -1
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +8 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -0
- package/dist/protocol.d.ts +58 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +12 -0
- package/dist/protocol.js.map +1 -0
- package/dist/scopes.d.ts +1 -0
- package/dist/scopes.d.ts.map +1 -0
- package/dist/scopes.js +1 -0
- package/dist/scopes.js.map +1 -0
- package/dist/sse.d.ts +1 -0
- package/dist/sse.d.ts.map +1 -0
- package/dist/sse.js +1 -0
- package/dist/sse.js.map +1 -0
- package/dist/svelte.d.ts +16 -0
- package/dist/svelte.d.ts.map +1 -0
- package/dist/svelte.js +25 -0
- package/dist/svelte.js.map +1 -0
- package/dist/vue.d.ts +15 -0
- package/dist/vue.d.ts.map +1 -0
- package/dist/vue.js +27 -0
- package/dist/vue.js.map +1 -0
- package/dist/ws-transport.d.ts +1 -0
- package/dist/ws-transport.d.ts.map +1 -0
- package/dist/ws-transport.js +1 -0
- package/dist/ws-transport.js.map +1 -0
- package/package.json +24 -6
- package/src/adapter-core.ts +193 -0
- package/src/call.ts +699 -0
- package/src/client.ts +1959 -0
- package/src/errors.ts +77 -0
- package/src/index.ts +104 -0
- package/src/protocol.ts +316 -0
- package/src/scopes.ts +94 -0
- package/src/sse.ts +41 -0
- package/src/svelte.ts +47 -0
- package/src/vue.ts +46 -0
- package/src/ws-transport.ts +70 -0
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { AudioClipPayload, CompanionEnvelope, ConfirmRequestPayload, ExpressionPayload, InterfaceUpdatePayload, OutboundType, PendingConfirm, RenderInterfacePayload, SocialMessagePayload, ToolCallPayload, TypingPayload, UsagePayload, VoiceInjectPayload, WorldStateEvent } from './protocol.js';
|
|
1
|
+
import type { AudioClipPayload, CompanionEnvelope, ConfirmRequestPayload, ExpressionPayload, InterfaceUpdatePayload, OutboundPayloadMap, OutboundType, PendingConfirm, RenderInterfacePayload, SocialMessagePayload, ToolCallPayload, TypingPayload, UsagePayload, VoiceInjectPayload, WorldStateEvent } from './protocol.js';
|
|
2
2
|
/** Ergonomic world-state input: a WorldStateEvent with the CloudEvents plumbing
|
|
3
3
|
* (specversion / id / source) optional — sendWorldState fills them. */
|
|
4
4
|
export type WorldStateInput<D = unknown> = Omit<WorldStateEvent<D>, 'specversion' | 'id' | 'source'> & Partial<Pick<WorldStateEvent<D>, 'specversion' | 'id' | 'source'>>;
|
|
5
|
+
import { type ControlErrorCodeValue } from './errors.js';
|
|
5
6
|
import { type CompanionCall, type CompanionCallOptions } from './call.js';
|
|
6
7
|
export interface CompanionClientOptions {
|
|
7
8
|
/** Origin of the Pouchy deployment, e.g. "https://pouchy.ai". */
|
|
@@ -39,6 +40,14 @@ export interface CompanionClientOptions {
|
|
|
39
40
|
};
|
|
40
41
|
/** Injectable fetch (for Node < 18 / tests). Defaults to global fetch. */
|
|
41
42
|
fetch?: typeof fetch;
|
|
43
|
+
/** Instrumentation (0.32.0). `true` logs structured events via
|
|
44
|
+
* console.debug('[pouchy-sdk]', …); a function receives every
|
|
45
|
+
* `CompanionDebugEvent` (HTTP request/response, delivered envelope,
|
|
46
|
+
* stream-state transition, synthesized error) for your own logger /
|
|
47
|
+
* devtools / test recorder. Events never carry the token or any header —
|
|
48
|
+
* method, path, status, timing, envelope type/id only. Zero cost when
|
|
49
|
+
* unset. */
|
|
50
|
+
debug?: boolean | ((event: CompanionDebugEvent) => void);
|
|
42
51
|
/** Receive transport for the reply stream. 'sse' (default) works on every
|
|
43
52
|
* deploy; 'websocket' opts into the lower-latency WS plane when the host
|
|
44
53
|
* supports it (adapter-node / a WS gateway) and falls back to SSE if the
|
|
@@ -198,6 +207,51 @@ type Handler = (envelope: CompanionEnvelope) => void;
|
|
|
198
207
|
type DeltaHandler = (chunk: string, meta: {
|
|
199
208
|
reset?: boolean;
|
|
200
209
|
}) => void;
|
|
210
|
+
/** Structured instrumentation event (0.32.0) — see `debug` in
|
|
211
|
+
* CompanionClientOptions. `at` is Date.now(). Deliberately free of secrets:
|
|
212
|
+
* no token, no headers, no bodies — safe to pipe to any logger. */
|
|
213
|
+
export type CompanionDebugEvent = {
|
|
214
|
+
kind: 'request';
|
|
215
|
+
at: number;
|
|
216
|
+
method: string;
|
|
217
|
+
path: string;
|
|
218
|
+
} | {
|
|
219
|
+
kind: 'response';
|
|
220
|
+
at: number;
|
|
221
|
+
method: string;
|
|
222
|
+
path: string;
|
|
223
|
+
status: number;
|
|
224
|
+
/** Wall-clock ms from request start to headers. */
|
|
225
|
+
ms: number;
|
|
226
|
+
} | {
|
|
227
|
+
kind: 'envelope';
|
|
228
|
+
at: number;
|
|
229
|
+
type: string;
|
|
230
|
+
id: string;
|
|
231
|
+
} | {
|
|
232
|
+
kind: 'stream';
|
|
233
|
+
at: number;
|
|
234
|
+
state: CompanionStreamState;
|
|
235
|
+
prev: CompanionStreamState;
|
|
236
|
+
} | {
|
|
237
|
+
kind: 'error';
|
|
238
|
+
at: number;
|
|
239
|
+
message: string;
|
|
240
|
+
code?: string;
|
|
241
|
+
status?: number;
|
|
242
|
+
};
|
|
243
|
+
/** Lifecycle of the receive event stream (0.30.0) — observable via
|
|
244
|
+
* `client.streamState` + `onStreamStateChange`, so a host can render a
|
|
245
|
+
* connection indicator without hand-rolling its own enum.
|
|
246
|
+
* - `idle` — before start()
|
|
247
|
+
* - `connecting` — start() called; first connection being established
|
|
248
|
+
* - `connected` — the event stream is live (WS or SSE as configured)
|
|
249
|
+
* - `reconnecting`— connection lost / closed; backing off before the next try
|
|
250
|
+
* - `degraded_sse`— the WebSocket transport errored and delivery continues on
|
|
251
|
+
* the SSE fallback (still live — replies keep arriving)
|
|
252
|
+
* - `stopped` — stop()/close() was called, or a permanent stream failure
|
|
253
|
+
* (the `stream_unauthorized` control.error) ended the loop */
|
|
254
|
+
export type CompanionStreamState = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'degraded_sse' | 'stopped';
|
|
201
255
|
export declare class CompanionClient {
|
|
202
256
|
private readonly opts;
|
|
203
257
|
private readonly doFetch;
|
|
@@ -210,9 +264,26 @@ export declare class CompanionClient {
|
|
|
210
264
|
private readonly seen;
|
|
211
265
|
private readonly deltaHandlers;
|
|
212
266
|
private readonly pendingVoiceTools;
|
|
267
|
+
private _streamState;
|
|
268
|
+
private readonly streamStateHandlers;
|
|
269
|
+
private readonly debugSink;
|
|
213
270
|
constructor(opts: CompanionClientOptions);
|
|
271
|
+
/** Fire an instrumentation event. A throwing sink must never break the
|
|
272
|
+
* request/stream path it observes. */
|
|
273
|
+
private dbg;
|
|
214
274
|
/** The active session id, or null before connect(). */
|
|
215
275
|
get sessionId(): string | null;
|
|
276
|
+
/** Current lifecycle of the receive event stream (0.30.0) — `idle` before
|
|
277
|
+
* start(), then `connecting` / `connected` / `reconnecting` /
|
|
278
|
+
* `degraded_sse` (WS errored, SSE fallback carrying delivery) / `stopped`.
|
|
279
|
+
* Subscribe to transitions with `onStreamStateChange`. */
|
|
280
|
+
get streamState(): CompanionStreamState;
|
|
281
|
+
/** Subscribe to receive-stream lifecycle transitions (0.30.0) — drive a
|
|
282
|
+
* connection indicator: `client.onStreamStateChange((s) => setStatus(s))`.
|
|
283
|
+
* Fires only on change, with the previous state as the second argument.
|
|
284
|
+
* Returns an unsubscribe function. */
|
|
285
|
+
onStreamStateChange(handler: (state: CompanionStreamState, prev: CompanionStreamState) => void): () => void;
|
|
286
|
+
private setStreamState;
|
|
216
287
|
/** Swap the bearer token used by every subsequent request and stream
|
|
217
288
|
* reconnect. Session tokens expire (default 1h) — call this when your
|
|
218
289
|
* backend re-mints one, or wire `onAuthError` to do it on demand. */
|
|
@@ -407,9 +478,12 @@ export declare class CompanionClient {
|
|
|
407
478
|
onToolCall(handler: (call: ToolCallEvent, envelope: CompanionEnvelope) => void): () => void;
|
|
408
479
|
/** Convenience: subscribe to errors the companion surfaces — server-side agent
|
|
409
480
|
* errors and stream failures (e.g. a permanent `stream_unauthorized`) both
|
|
410
|
-
* arrive as `control.error`.
|
|
481
|
+
* arrive as `control.error`. Since 0.30.0 `code` is typed as
|
|
482
|
+
* `ControlErrorCodeValue` (the CONTROL_ERROR_CODES vocabulary + the
|
|
483
|
+
* SDK-synthesized stream codes, open for newer servers) so a `switch` on it
|
|
484
|
+
* autocompletes. Returns an unsubscribe fn. */
|
|
411
485
|
onError(handler: (err: {
|
|
412
|
-
code:
|
|
486
|
+
code: ControlErrorCodeValue;
|
|
413
487
|
message: string;
|
|
414
488
|
}, envelope: CompanionEnvelope) => void): () => void;
|
|
415
489
|
/** Recall the memory this token is authorized to see. Without `query` the
|
|
@@ -533,8 +607,12 @@ export declare class CompanionClient {
|
|
|
533
607
|
* the companion's app tile, etc. Sizes: 256 | 512 | 1024 (default 512). */
|
|
534
608
|
brandIconUrl(size?: BrandIconSize): string;
|
|
535
609
|
/** Subscribe to outbound events of a given type, or "*" for all. Returns an
|
|
536
|
-
* unsubscribe function.
|
|
537
|
-
|
|
610
|
+
* unsubscribe function. Since 0.30.0 the envelope payload is NARROWED per
|
|
611
|
+
* event name (OutboundPayloadMap) — e.g. `on('companion.typing', (env) =>
|
|
612
|
+
* env.payload.active)` type-checks without a cast; `'*'` keeps the untyped
|
|
613
|
+
* envelope. Type-only: runtime behavior is unchanged. */
|
|
614
|
+
on<T extends OutboundType>(type: T, handler: (envelope: CompanionEnvelope<OutboundPayloadMap[T]>) => void): () => void;
|
|
615
|
+
on(type: '*', handler: Handler): () => void;
|
|
538
616
|
/** Convenience: subscribe to assistant text replies. */
|
|
539
617
|
onMessage(handler: (text: string, envelope: CompanionEnvelope) => void): () => void;
|
|
540
618
|
/** Convenience: subscribe to Instant UI render surfaces (companion.ui_action).
|
|
@@ -627,7 +705,15 @@ export declare class CompanionClient {
|
|
|
627
705
|
stop(): void;
|
|
628
706
|
private emit;
|
|
629
707
|
private handleFrame;
|
|
708
|
+
/** SSE receive loop. `degraded` marks that this loop is the WS transport's
|
|
709
|
+
* fallback, so its healthy state reads `degraded_sse` (still live) instead
|
|
710
|
+
* of `connected` — the host can tell "fine" from "fine, but on plan B". */
|
|
630
711
|
private loop;
|
|
631
712
|
private consume;
|
|
632
713
|
private sleep;
|
|
714
|
+
/** Backoff sleep with additive jitter (0–25%, 0.30.0) so a fleet of embeds
|
|
715
|
+
* doesn't reconnect in lockstep after a server deploy/restart (thundering
|
|
716
|
+
* herd) — every reconnect path sleeps through here, never bare sleep(). */
|
|
717
|
+
private backoffSleep;
|
|
633
718
|
}
|
|
719
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,MAAM,YAAY,CAAC;AAGpB;wEACwE;AACxE,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAC9C,eAAe,CAAC,CAAC,CAAC,EAClB,aAAa,GAAG,IAAI,GAAG,QAAQ,CAC/B,GACA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;AAEpE,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAMzB,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,sBAAsB;IACtC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iFAAiF;IACjF,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B;;0BAEsB;IACtB,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;;;;;;;iCAO6B;IAC7B,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;;;iBAMa;IACb,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC;IACzD;;;4EAGwE;IACxE,MAAM,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC7B;iEAC6D;IAC7D,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC;;;;;;oDAMgD;IAChD,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB;kEAC8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB;;6DAEyD;IACzD,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;;8BAG8B;AAC9B,MAAM,WAAW,aAAc,SAAQ,eAAe;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAYD,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GACxB;IACA,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB;4EACwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;6EACyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;qFACiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACA,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEL,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;uDAEuD;AACvD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACX;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC/B,gEAAgE;IAChE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wDAAwD;IACxD,SAAS,EAAE,YAAY,GAAG,WAAW,GAAG,KAAK,CAAC;IAC9C,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;8EAC0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;mFAC+E;IAC/E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC7B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CACf;AACD;oFACoF;AACpF,MAAM,WAAW,eAAe;IAC/B,sEAAsE;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAE7C;;iDAEiD;AACjD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAmB,GAAG,MAAM,CAErF;AAED;;;;;;;yBAOyB;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;yDAGyD;AACzD,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;qCAGqC;AACrC,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;CAC5B;AAED,KAAK,OAAO,GAAG,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAErD;;;;;mDAKmD;AACnD,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,CAAC;AAGvE;;oEAEoE;AACpE,MAAM,MAAM,mBAAmB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7D;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;CACV,GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF;;;;;;;;;;iFAUiF;AACjF,MAAM,MAAM,oBAAoB,GAC7B,MAAM,GACN,YAAY,GACZ,WAAW,GACX,cAAc,GACd,cAAc,GACd,SAAS,CAAC;AAEb,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAgC;IAK7C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAG1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IAEzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4C;IAE9E,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEhC;IAIJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgD;gBAE9D,IAAI,EAAE,sBAAsB;IAexC;2CACuC;IACvC,OAAO,CAAC,GAAG;IASX,uDAAuD;IACvD,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED;;;+DAG2D;IAC3D,IAAI,WAAW,IAAI,oBAAoB,CAEtC;IAED;;;2CAGuC;IACvC,mBAAmB,CAClB,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI,GACxE,MAAM,IAAI;IAKb,OAAO,CAAC,cAAc;IAgBtB;;0EAEsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM7B,OAAO,CAAC,UAAU,CAAuC;IAEzD;;6BAEyB;YACX,eAAe;IAe7B;;wBAEoB;IAGpB,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;2EACuE;IACvE,OAAO,CAAC,mBAAmB;YAQb,WAAW;IAyDzB;;;oCAGgC;IAChC,OAAO,CAAC,gBAAgB;IAOxB,8EAA8E;YAChE,WAAW;IASzB,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAMtB;;uEAEmE;IACnE,OAAO,CAAC,cAAc;YAiBR,QAAQ;IA2BtB,+DAA+D;IACzD,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0BjE;;;;;;;kFAO8E;IACxE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAiB5G;;;;;;;;;;;;;;;;;;;;gDAoB4C;IACtC,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QAAE,UAAU,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC5G,OAAO,CAAC,aAAa,CAAC;IACnB,QAAQ,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjH,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAyBlC;;;;sCAIkC;YACpB,qBAAqB;IAuGnC;;;;6DAIyD;YAC3C,iBAAiB;IAiH/B;;;yEAGqE;IACrE,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAK1C;;;;;;0EAMsE;IAChE,cAAc,CACnB,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,EAC1C,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAyBrF,OAAO,CAAC,QAAQ;IAKhB;;;;;;;;;;OAUG;IACG,SAAS,CACd,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9D,OAAO,CAAC,eAAe,CAAC;IAS3B;;;;yBAIqB;IACf,WAAW,CAChB,IAAI,CAAC,EAAE,oBAAoB,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC,aAAa,CAAC;IAgFzB;;;;;;;;;;;;8EAY0E;IACpE,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC9C,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAsBpC;;;;;2DAKuD;IACjD,KAAK,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAK/C;;gFAE4E;IACtE,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAC1C,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAiBhC;;;;yBAIqB;IACrB,OAAO,CAAC,eAAe;IAyEvB;;;wDAGoD;IACpD,UAAU,CACT,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GACjE,MAAM,IAAI;IAUb;;;;;oDAKgD;IAChD,OAAO,CACN,OAAO,EAAE,CACR,GAAG,EAAE;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACrD,QAAQ,EAAE,iBAAiB,KACvB,IAAI,GACP,MAAM,IAAI;IAab;;;;8DAI0D;IACpD,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmBxG;;;;wDAIoD;IAC9C,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmBxF;;;6CAGyC;IACnC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAuB7G;;wFAEoF;IAC9E,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D;wFACoF;IAC9E,QAAQ,CAAC,IAAI,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;mFAC2E;QAC3E,QAAQ,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;KACpC,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAIpF;;;;;;;;;;;;;gEAa4D;IACtD,eAAe,CAAC,GAAG,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ9F;;;;;;;4CAOwC;IAClC,UAAU,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ9F;;;;;kFAK8E;IACxE,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAoB1E;;;;qBAIiB;IACX,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB1E;;;gFAG4E;IAC5E,YAAY,CAAC,IAAI,GAAE,aAAmB,GAAG,MAAM;IAI/C;;;;8DAI0D;IAC1D,EAAE,CAAC,CAAC,SAAS,YAAY,EACxB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GACnE,MAAM,IAAI;IACb,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI;IAW3C,wDAAwD;IACxD,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAOnF;;;;kFAI8E;IAC9E,QAAQ,CACP,OAAO,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAC7E,MAAM,IAAI;IAOb;sEACkE;IAClE,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAS9F;4EACwE;IACxE,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAIpG;gCAC4B;IAC5B,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAI1F;;;;;;;;;;;;;gEAa4D;IAC5D,gBAAgB,CACf,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAC5E,MAAM,IAAI;IAOb;;;;;;;;;;;;;iDAa6C;IACvC,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC7B,OAAO,CAAC;QACV,EAAE,EAAE,OAAO,CAAC;QACZ,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAUF;;;qDAGiD;IAC3C,eAAe,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBjF;;2DAEuD;IACvD,iBAAiB,CAChB,OAAO,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAC7E,MAAM,IAAI;IAOb;;uFAEmF;IACnF,eAAe,CACd,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAC3E,MAAM,IAAI;IAOb;;;;oFAIgF;IAChF,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAO5F;;;2DAGuD;IACvD,aAAa,CACZ,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,GACzE,MAAM,IAAI;IAOb;+DAC2D;IAC3D,KAAK,IAAI,IAAI;IAcb;;;sEAGkE;YACpD,MAAM;IA+EpB,6BAA6B;IAC7B,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,IAAI;IAwDZ,OAAO,CAAC,WAAW;IAwBnB;;gFAE4E;YAC9D,IAAI;YA4DJ,OAAO;IAcrB,OAAO,CAAC,KAAK;IAIb;;gFAE4E;IAC5E,OAAO,CAAC,YAAY;CAGpB"}
|
package/dist/client.js
CHANGED
|
@@ -62,6 +62,12 @@ export class CompanionClient {
|
|
|
62
62
|
deltaHandlers = new Set();
|
|
63
63
|
// Voice tool-calls awaiting the app's sendToolResult, keyed by a synthetic id.
|
|
64
64
|
pendingVoiceTools = new Map();
|
|
65
|
+
// Receive-stream lifecycle (0.30.0) — see CompanionStreamState.
|
|
66
|
+
_streamState = 'idle';
|
|
67
|
+
streamStateHandlers = new Set();
|
|
68
|
+
// Instrumentation sink (0.32.0) — null when `debug` is unset, so the hot
|
|
69
|
+
// paths pay one falsy check.
|
|
70
|
+
debugSink;
|
|
65
71
|
constructor(opts) {
|
|
66
72
|
if (!opts.baseUrl)
|
|
67
73
|
throw new CompanionError('CompanionClient: baseUrl is required', 0, 'missing_option');
|
|
@@ -69,11 +75,61 @@ export class CompanionClient {
|
|
|
69
75
|
throw new CompanionError('CompanionClient: token is required', 0, 'missing_option');
|
|
70
76
|
this.opts = opts;
|
|
71
77
|
this.doFetch = opts.fetch ?? globalThis.fetch.bind(globalThis);
|
|
78
|
+
this.debugSink =
|
|
79
|
+
opts.debug === true
|
|
80
|
+
? (e) => console.debug('[pouchy-sdk]', e.kind, e)
|
|
81
|
+
: typeof opts.debug === 'function'
|
|
82
|
+
? opts.debug
|
|
83
|
+
: null;
|
|
84
|
+
}
|
|
85
|
+
/** Fire an instrumentation event. A throwing sink must never break the
|
|
86
|
+
* request/stream path it observes. */
|
|
87
|
+
dbg(event) {
|
|
88
|
+
if (!this.debugSink)
|
|
89
|
+
return;
|
|
90
|
+
try {
|
|
91
|
+
this.debugSink(event);
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* observer errors are the observer's problem */
|
|
95
|
+
}
|
|
72
96
|
}
|
|
73
97
|
/** The active session id, or null before connect(). */
|
|
74
98
|
get sessionId() {
|
|
75
99
|
return this._session;
|
|
76
100
|
}
|
|
101
|
+
/** Current lifecycle of the receive event stream (0.30.0) — `idle` before
|
|
102
|
+
* start(), then `connecting` / `connected` / `reconnecting` /
|
|
103
|
+
* `degraded_sse` (WS errored, SSE fallback carrying delivery) / `stopped`.
|
|
104
|
+
* Subscribe to transitions with `onStreamStateChange`. */
|
|
105
|
+
get streamState() {
|
|
106
|
+
return this._streamState;
|
|
107
|
+
}
|
|
108
|
+
/** Subscribe to receive-stream lifecycle transitions (0.30.0) — drive a
|
|
109
|
+
* connection indicator: `client.onStreamStateChange((s) => setStatus(s))`.
|
|
110
|
+
* Fires only on change, with the previous state as the second argument.
|
|
111
|
+
* Returns an unsubscribe function. */
|
|
112
|
+
onStreamStateChange(handler) {
|
|
113
|
+
this.streamStateHandlers.add(handler);
|
|
114
|
+
return () => this.streamStateHandlers.delete(handler);
|
|
115
|
+
}
|
|
116
|
+
setStreamState(next) {
|
|
117
|
+
if (next === this._streamState)
|
|
118
|
+
return;
|
|
119
|
+
const prev = this._streamState;
|
|
120
|
+
this._streamState = next;
|
|
121
|
+
this.dbg({ kind: 'stream', at: Date.now(), state: next, prev });
|
|
122
|
+
// Same isolation doctrine as emit(): a throwing consumer handler must not
|
|
123
|
+
// skip the remaining handlers or bubble into the stream loop.
|
|
124
|
+
for (const h of this.streamStateHandlers) {
|
|
125
|
+
try {
|
|
126
|
+
h(next, prev);
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
console.error('[companion-sdk] stream-state handler threw', e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
77
133
|
/** Swap the bearer token used by every subsequent request and stream
|
|
78
134
|
* reconnect. Session tokens expire (default 1h) — call this when your
|
|
79
135
|
* backend re-mints one, or wire `onAuthError` to do it on demand. */
|
|
@@ -120,6 +176,10 @@ export class CompanionClient {
|
|
|
120
176
|
return major > 1 || (major === 1 && minor >= 1);
|
|
121
177
|
}
|
|
122
178
|
async fetchAuthed(url, init) {
|
|
179
|
+
const method = init.method ?? 'GET';
|
|
180
|
+
const path = url.startsWith(this.opts.baseUrl) ? url.slice(this.opts.baseUrl.length) : url;
|
|
181
|
+
const startedAt = Date.now();
|
|
182
|
+
this.dbg({ kind: 'request', at: startedAt, method, path });
|
|
123
183
|
let res;
|
|
124
184
|
try {
|
|
125
185
|
res = await this.doFetch(url, init);
|
|
@@ -128,8 +188,18 @@ export class CompanionClient {
|
|
|
128
188
|
// A caller-supplied AbortSignal makes fetch throw a native AbortError —
|
|
129
189
|
// convert it at this single choke point so cancellation honors the
|
|
130
190
|
// "every helper rejects with CompanionError" contract (code 'aborted').
|
|
131
|
-
|
|
191
|
+
const err = this.asCompanionError(e);
|
|
192
|
+
this.dbg({ kind: 'error', at: Date.now(), message: err.message, code: err.code, status: 0 });
|
|
193
|
+
throw err;
|
|
132
194
|
}
|
|
195
|
+
this.dbg({
|
|
196
|
+
kind: 'response',
|
|
197
|
+
at: Date.now(),
|
|
198
|
+
method,
|
|
199
|
+
path,
|
|
200
|
+
status: res.status,
|
|
201
|
+
ms: Date.now() - startedAt
|
|
202
|
+
});
|
|
133
203
|
const apiVersion = res.headers.get('x-pouchy-api-version');
|
|
134
204
|
if (apiVersion)
|
|
135
205
|
this.serverApiVersion = apiVersion;
|
|
@@ -144,11 +214,24 @@ export class CompanionClient {
|
|
|
144
214
|
if (!(await this.tryRefreshToken()))
|
|
145
215
|
return res;
|
|
146
216
|
init.headers.Authorization = `Bearer ${this.opts.token}`;
|
|
217
|
+
const retryAt = Date.now();
|
|
218
|
+
this.dbg({ kind: 'request', at: retryAt, method, path });
|
|
147
219
|
try {
|
|
148
|
-
|
|
220
|
+
const retryRes = await this.doFetch(url, init);
|
|
221
|
+
this.dbg({
|
|
222
|
+
kind: 'response',
|
|
223
|
+
at: Date.now(),
|
|
224
|
+
method,
|
|
225
|
+
path,
|
|
226
|
+
status: retryRes.status,
|
|
227
|
+
ms: Date.now() - retryAt
|
|
228
|
+
});
|
|
229
|
+
return retryRes;
|
|
149
230
|
}
|
|
150
231
|
catch (e) {
|
|
151
|
-
|
|
232
|
+
const err = this.asCompanionError(e);
|
|
233
|
+
this.dbg({ kind: 'error', at: Date.now(), message: err.message, code: err.code, status: 0 });
|
|
234
|
+
throw err;
|
|
152
235
|
}
|
|
153
236
|
}
|
|
154
237
|
/** Normalize a thrown fetch error to a CompanionError. An AbortError (the
|
|
@@ -198,7 +281,14 @@ export class CompanionClient {
|
|
|
198
281
|
if (raw === null || raw.trim() === '')
|
|
199
282
|
return undefined;
|
|
200
283
|
const header = Number(raw);
|
|
201
|
-
|
|
284
|
+
if (Number.isFinite(header) && header >= 0)
|
|
285
|
+
return header;
|
|
286
|
+
// RFC 9110 also allows an HTTP-date (proxies/CDNs emit it) — convert to a
|
|
287
|
+
// non-negative seconds delta (0.30.0). Unparseable stays undefined.
|
|
288
|
+
const at = Date.parse(raw);
|
|
289
|
+
if (!Number.isNaN(at))
|
|
290
|
+
return Math.max(0, Math.ceil((at - Date.now()) / 1000));
|
|
291
|
+
return undefined;
|
|
202
292
|
}
|
|
203
293
|
async postJson(path, body, signal) {
|
|
204
294
|
const res = await this.fetchAuthed(this.url(path), {
|
|
@@ -388,7 +478,11 @@ export class CompanionClient {
|
|
|
388
478
|
// Old server / error before the stream opened — behave like postJson.
|
|
389
479
|
const json = (await res.json().catch(() => null));
|
|
390
480
|
if (!res.ok || !json || json.ok === false) {
|
|
391
|
-
|
|
481
|
+
// Same as postJson: the 429 body's actionable `hint` (e.g. "provision
|
|
482
|
+
// a project …") must survive the streaming leg too (0.30.0).
|
|
483
|
+
const hint = json?.hint;
|
|
484
|
+
const detail = typeof hint === 'string' && hint ? ` — ${hint}` : '';
|
|
485
|
+
throw new CompanionError((json?.error || `request failed (${res.status})`) + detail, res.status, json?.code, this.retryAfterFrom(res, json));
|
|
392
486
|
}
|
|
393
487
|
return { seq: json.seq ?? null };
|
|
394
488
|
}
|
|
@@ -770,7 +864,10 @@ export class CompanionClient {
|
|
|
770
864
|
}
|
|
771
865
|
/** Convenience: subscribe to errors the companion surfaces — server-side agent
|
|
772
866
|
* errors and stream failures (e.g. a permanent `stream_unauthorized`) both
|
|
773
|
-
* arrive as `control.error`.
|
|
867
|
+
* arrive as `control.error`. Since 0.30.0 `code` is typed as
|
|
868
|
+
* `ControlErrorCodeValue` (the CONTROL_ERROR_CODES vocabulary + the
|
|
869
|
+
* SDK-synthesized stream codes, open for newer servers) so a `switch` on it
|
|
870
|
+
* autocompletes. Returns an unsubscribe fn. */
|
|
774
871
|
onError(handler) {
|
|
775
872
|
return this.on('control.error', (env) => {
|
|
776
873
|
const p = env.payload;
|
|
@@ -940,8 +1037,6 @@ export class CompanionClient {
|
|
|
940
1037
|
brandIconUrl(size = 512) {
|
|
941
1038
|
return pouchyBrandIconUrl(this.opts.baseUrl, size);
|
|
942
1039
|
}
|
|
943
|
-
/** Subscribe to outbound events of a given type, or "*" for all. Returns an
|
|
944
|
-
* unsubscribe function. */
|
|
945
1040
|
on(type, handler) {
|
|
946
1041
|
let set = this.handlers.get(type);
|
|
947
1042
|
if (!set) {
|
|
@@ -1096,6 +1191,7 @@ export class CompanionClient {
|
|
|
1096
1191
|
return;
|
|
1097
1192
|
this.requireSession();
|
|
1098
1193
|
this.streaming = true;
|
|
1194
|
+
this.setStreamState('connecting');
|
|
1099
1195
|
const gen = ++this.streamGen;
|
|
1100
1196
|
const wsImpl = this.opts.webSocketImpl ?? globalThis.WebSocket;
|
|
1101
1197
|
if (this.opts.stream === 'websocket' && wsImpl) {
|
|
@@ -1126,6 +1222,10 @@ export class CompanionClient {
|
|
|
1126
1222
|
const ws = new WS(deriveWsStreamUrl(this.opts.baseUrl, id, this.opts.token, this.cursor));
|
|
1127
1223
|
let poll;
|
|
1128
1224
|
let settled = false;
|
|
1225
|
+
ws.onopen = () => {
|
|
1226
|
+
if (this.streaming && gen === this.streamGen)
|
|
1227
|
+
this.setStreamState('connected');
|
|
1228
|
+
};
|
|
1129
1229
|
const settle = (err) => {
|
|
1130
1230
|
if (poll) {
|
|
1131
1231
|
clearInterval(poll);
|
|
@@ -1169,8 +1269,12 @@ export class CompanionClient {
|
|
|
1169
1269
|
}
|
|
1170
1270
|
if (errored) {
|
|
1171
1271
|
// Socket unavailable / rejected — degrade to the robust SSE loop (once).
|
|
1172
|
-
|
|
1173
|
-
|
|
1272
|
+
// The SSE loop's healthy state then reads `degraded_sse`, so the host
|
|
1273
|
+
// can observe the (previously invisible) WS→SSE degrade.
|
|
1274
|
+
if (this.streaming && gen === this.streamGen) {
|
|
1275
|
+
this.setStreamState('reconnecting');
|
|
1276
|
+
await this.loop(gen, true);
|
|
1277
|
+
}
|
|
1174
1278
|
return;
|
|
1175
1279
|
}
|
|
1176
1280
|
// Clean close: the while-guard reconnects if still streaming, else exits.
|
|
@@ -1178,8 +1282,10 @@ export class CompanionClient {
|
|
|
1178
1282
|
// closes — auth-as-close, LB idle policy, misconfigured proxy) must
|
|
1179
1283
|
// back off like the SSE loop, or this reconnects in a zero-delay hot
|
|
1180
1284
|
// loop. A connection that lived a while resets the backoff.
|
|
1285
|
+
if (this.streaming && gen === this.streamGen)
|
|
1286
|
+
this.setStreamState('reconnecting');
|
|
1181
1287
|
if (Date.now() - connectedAt < 2000) {
|
|
1182
|
-
await this.
|
|
1288
|
+
await this.backoffSleep(backoff);
|
|
1183
1289
|
backoff = Math.min(backoff * 2, 8000);
|
|
1184
1290
|
}
|
|
1185
1291
|
else {
|
|
@@ -1193,6 +1299,7 @@ export class CompanionClient {
|
|
|
1193
1299
|
this.streamGen++; // invalidate any loop still unwinding
|
|
1194
1300
|
this.abort?.abort();
|
|
1195
1301
|
this.abort = null;
|
|
1302
|
+
this.setStreamState('stopped');
|
|
1196
1303
|
}
|
|
1197
1304
|
emit(envelope) {
|
|
1198
1305
|
// Dedup by envelope id — an ungraceful drop reconnects from the last KNOWN
|
|
@@ -1208,6 +1315,9 @@ export class CompanionClient {
|
|
|
1208
1315
|
this.seen.delete(first);
|
|
1209
1316
|
}
|
|
1210
1317
|
}
|
|
1318
|
+
// Post-dedup: the debug channel sees each envelope exactly once, in
|
|
1319
|
+
// delivery order — replays collapsed above never reach it.
|
|
1320
|
+
this.dbg({ kind: 'envelope', at: Date.now(), type: envelope.type, id: envelope.id ?? '' });
|
|
1211
1321
|
// Avatar emote tools the app didn't opt into resolve as a silent no-op, so a
|
|
1212
1322
|
// pure audio / 2D embed never has to register a handler for them. (Voice
|
|
1213
1323
|
// avatar calls are no-op'd earlier in invokeVoiceTool, before they reach
|
|
@@ -1277,7 +1387,10 @@ export class CompanionClient {
|
|
|
1277
1387
|
if (env && typeof env.type === 'string')
|
|
1278
1388
|
this.emit(env);
|
|
1279
1389
|
}
|
|
1280
|
-
|
|
1390
|
+
/** SSE receive loop. `degraded` marks that this loop is the WS transport's
|
|
1391
|
+
* fallback, so its healthy state reads `degraded_sse` (still live) instead
|
|
1392
|
+
* of `connected` — the host can tell "fine" from "fine, but on plan B". */
|
|
1393
|
+
async loop(gen, degraded = false) {
|
|
1281
1394
|
const id = this.requireSession();
|
|
1282
1395
|
let backoff = 500;
|
|
1283
1396
|
let authRefreshes = 0; // consecutive 401→refresh cycles without a healthy connect
|
|
@@ -1311,23 +1424,27 @@ export class CompanionClient {
|
|
|
1311
1424
|
message: `event stream rejected (${res.status}); the token likely lacks the "events.subscribe" scope`
|
|
1312
1425
|
}
|
|
1313
1426
|
});
|
|
1427
|
+
this.setStreamState('stopped');
|
|
1314
1428
|
break;
|
|
1315
1429
|
}
|
|
1316
1430
|
if (!res.ok || !res.body) {
|
|
1317
1431
|
if (!this.streaming || gen !== this.streamGen)
|
|
1318
1432
|
break;
|
|
1319
|
-
|
|
1433
|
+
this.setStreamState('reconnecting');
|
|
1434
|
+
await this.backoffSleep(backoff);
|
|
1320
1435
|
backoff = Math.min(backoff * 2, 8000);
|
|
1321
1436
|
continue;
|
|
1322
1437
|
}
|
|
1323
1438
|
backoff = 500; // healthy connection resets backoff
|
|
1324
1439
|
authRefreshes = 0;
|
|
1440
|
+
this.setStreamState(degraded ? 'degraded_sse' : 'connected');
|
|
1325
1441
|
await this.consume(res.body, gen);
|
|
1326
1442
|
}
|
|
1327
1443
|
catch {
|
|
1328
1444
|
if (!this.streaming || gen !== this.streamGen)
|
|
1329
1445
|
break;
|
|
1330
|
-
|
|
1446
|
+
this.setStreamState('reconnecting');
|
|
1447
|
+
await this.backoffSleep(backoff);
|
|
1331
1448
|
backoff = Math.min(backoff * 2, 8000);
|
|
1332
1449
|
}
|
|
1333
1450
|
}
|
|
@@ -1350,4 +1467,11 @@ export class CompanionClient {
|
|
|
1350
1467
|
sleep(ms) {
|
|
1351
1468
|
return new Promise((res) => setTimeout(res, ms));
|
|
1352
1469
|
}
|
|
1470
|
+
/** Backoff sleep with additive jitter (0–25%, 0.30.0) so a fleet of embeds
|
|
1471
|
+
* doesn't reconnect in lockstep after a server deploy/restart (thundering
|
|
1472
|
+
* herd) — every reconnect path sleeps through here, never bare sleep(). */
|
|
1473
|
+
backoffSleep(ms) {
|
|
1474
|
+
return this.sleep(ms + Math.floor(Math.random() * ms * 0.25));
|
|
1475
|
+
}
|
|
1353
1476
|
}
|
|
1477
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
import type { CompanionErrorCode } from './protocol.js';
|
|
1
|
+
import type { CompanionErrorCode, ControlErrorCode } from './protocol.js';
|
|
2
2
|
/** Codes the SDK itself synthesizes (status 0 — never sent by the server).
|
|
3
3
|
* Runtime array so the drift test can assert every `new CompanionError(...)`
|
|
4
4
|
* call site uses a declared code; APPEND-ONLY like the server vocabulary. */
|
|
5
5
|
export declare const SDK_SYNTHESIZED_ERROR_CODES: readonly ["reply_timeout", "needs_event_stream", "not_connected", "missing_option", "not_representative", "call_unsupported", "call_connect_failed", "call_dependency_missing", "aborted"];
|
|
6
6
|
export type SdkSynthesizedErrorCode = (typeof SDK_SYNTHESIZED_ERROR_CODES)[number];
|
|
7
|
+
/** `control.error` STREAM codes the SDK itself synthesizes (never sent by the
|
|
8
|
+
* server) — the stream-plane sibling of SDK_SYNTHESIZED_ERROR_CODES above.
|
|
9
|
+
* Runtime array so the drift test can assert every locally-emitted
|
|
10
|
+
* `control.error` envelope uses a declared code; APPEND-ONLY. */
|
|
11
|
+
export declare const SDK_STREAM_ERROR_CODES: readonly ["stream_unauthorized"];
|
|
12
|
+
export type SdkStreamErrorCode = (typeof SDK_STREAM_ERROR_CODES)[number];
|
|
13
|
+
/** `control.error` `code` values a consumer can switch on (0.30.0): the server
|
|
14
|
+
* vocabulary (CONTROL_ERROR_CODES, drift-tested against the server list) plus
|
|
15
|
+
* the SDK-synthesized stream codes — DERIVED from the runtime lists rather
|
|
16
|
+
* than hand-retyped, same doctrine as CompanionErrorCodeValue below. The
|
|
17
|
+
* `(string & {})` arm keeps the type open for codes newer than this SDK build
|
|
18
|
+
* while preserving autocomplete. */
|
|
19
|
+
export type ControlErrorCodeValue = ControlErrorCode | SdkStreamErrorCode | (string & {});
|
|
7
20
|
/** Thrown by every helper on an HTTP or client-side failure. `status` is the
|
|
8
21
|
* HTTP status (0 for client-synthesized failures — timeouts, unsupported
|
|
9
22
|
* environments, missing optional deps); `code` is machine-switchable when
|
|
@@ -23,3 +36,4 @@ export declare class CompanionError extends Error {
|
|
|
23
36
|
retryAfter?: number;
|
|
24
37
|
constructor(message: string, status: number, code?: string, retryAfter?: number);
|
|
25
38
|
}
|
|
39
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE;;8EAE8E;AAC9E,eAAO,MAAM,2BAA2B,4LAU9B,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF;;;kEAGkE;AAClE,eAAO,MAAM,sBAAsB,kCAEzB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;;;;qCAKqC;AACrC,MAAM,MAAM,qBAAqB,GAC9B,gBAAgB,GAChB,kBAAkB,GAElB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEjB;;;;;2DAK2D;AAC3D;;;;;2CAK2C;AAC3C,MAAM,MAAM,uBAAuB,GAChC,kBAAkB,GAClB,uBAAuB,GAEvB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEjB,qBAAa,cAAe,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;gBACR,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAO/E"}
|
package/dist/errors.js
CHANGED
|
@@ -17,6 +17,13 @@ export const SDK_SYNTHESIZED_ERROR_CODES = [
|
|
|
17
17
|
'call_dependency_missing', // optional voice dependency not installed
|
|
18
18
|
'aborted' // a caller-supplied AbortSignal cancelled the request (0.29.0)
|
|
19
19
|
];
|
|
20
|
+
/** `control.error` STREAM codes the SDK itself synthesizes (never sent by the
|
|
21
|
+
* server) — the stream-plane sibling of SDK_SYNTHESIZED_ERROR_CODES above.
|
|
22
|
+
* Runtime array so the drift test can assert every locally-emitted
|
|
23
|
+
* `control.error` envelope uses a declared code; APPEND-ONLY. */
|
|
24
|
+
export const SDK_STREAM_ERROR_CODES = [
|
|
25
|
+
'stream_unauthorized' // the event stream got a permanent 401/403 and reconnect gave up
|
|
26
|
+
];
|
|
20
27
|
export class CompanionError extends Error {
|
|
21
28
|
status;
|
|
22
29
|
code;
|
|
@@ -31,3 +38,4 @@ export class CompanionError extends Error {
|
|
|
31
38
|
this.retryAfter = retryAfter;
|
|
32
39
|
}
|
|
33
40
|
}
|
|
41
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,6EAA6E;AAC7E,4DAA4D;AAM5D;;8EAE8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,eAAe,EAAE,qDAAqD;IACtE,oBAAoB,EAAE,oDAAoD;IAC1E,eAAe,EAAE,+CAA+C;IAChE,gBAAgB,EAAE,iDAAiD;IACnE,oBAAoB,EAAE,4CAA4C;IAClE,kBAAkB,EAAE,+CAA+C;IACnE,qBAAqB,EAAE,mCAAmC;IAC1D,yBAAyB,EAAE,0CAA0C;IACrE,SAAS,CAAC,+DAA+D;CAChE,CAAC;AAGX;;;kEAGkE;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,qBAAqB,CAAC,iEAAiE;CAC9E,CAAC;AAiCX,MAAM,OAAO,cAAe,SAAQ,KAAK;IACxC,MAAM,CAAS;IACf,IAAI,CAA2B;IAC/B,UAAU,CAAU;IACpB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAa,EAAE,UAAmB;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjG,CAAC;CACD"}
|