@amigo-ai/platform-sdk 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/api.md +6 -3
  2. package/dist/core/errors.js +155 -9
  3. package/dist/core/errors.js.map +1 -1
  4. package/dist/core/reconnecting-websocket.js +371 -0
  5. package/dist/core/reconnecting-websocket.js.map +1 -0
  6. package/dist/index.cjs +711 -13
  7. package/dist/index.cjs.map +4 -4
  8. package/dist/index.js +18 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +711 -13
  11. package/dist/index.mjs.map +4 -4
  12. package/dist/resources/events.js +139 -3
  13. package/dist/resources/events.js.map +1 -1
  14. package/dist/resources/integrations.js +25 -0
  15. package/dist/resources/integrations.js.map +1 -1
  16. package/dist/resources/observers.js +238 -0
  17. package/dist/resources/observers.js.map +1 -0
  18. package/dist/types/core/errors.d.ts +93 -1
  19. package/dist/types/core/errors.d.ts.map +1 -1
  20. package/dist/types/core/reconnecting-websocket.d.ts +156 -0
  21. package/dist/types/core/reconnecting-websocket.d.ts.map +1 -0
  22. package/dist/types/generated/api.d.ts +686 -113
  23. package/dist/types/generated/api.d.ts.map +1 -1
  24. package/dist/types/index.d.cts +42 -2
  25. package/dist/types/index.d.cts.map +1 -1
  26. package/dist/types/index.d.ts +42 -2
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/types/resources/events.d.ts +33 -0
  29. package/dist/types/resources/events.d.ts.map +1 -1
  30. package/dist/types/resources/functions.d.ts.map +1 -1
  31. package/dist/types/resources/integrations.d.ts +33 -0
  32. package/dist/types/resources/integrations.d.ts.map +1 -1
  33. package/dist/types/resources/metrics.d.ts.map +1 -1
  34. package/dist/types/resources/observers.d.ts +148 -0
  35. package/dist/types/resources/observers.d.ts.map +1 -0
  36. package/dist/types/resources/operators.d.ts.map +1 -1
  37. package/dist/types/resources/settings.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -33,6 +33,29 @@
33
33
  * @see ConversationsResource.streamTurn for the analogous turn-stream helper.
34
34
  */
35
35
  import { WorkspaceScopedResource } from './base.js';
36
+ /**
37
+ * Structured error surfaced through {@link SubscribeToWorkspaceOptions.onError}.
38
+ *
39
+ * Subclasses ``Error`` so existing consumers using ``err.message`` continue
40
+ * to work, while adding ``code`` + ``retryable`` + raw ``frame`` for
41
+ * deterministic branching. Inspect with ``isWorkspaceEventStreamError``.
42
+ */
43
+ export class WorkspaceEventStreamError extends Error {
44
+ code;
45
+ retryable;
46
+ /** Raw decoded ``error`` frame body (or ``undefined`` for transport errors). */
47
+ frame;
48
+ constructor(message, code, retryable, frame) {
49
+ super(message);
50
+ this.name = 'WorkspaceEventStreamError';
51
+ this.code = code;
52
+ this.retryable = retryable;
53
+ this.frame = frame;
54
+ }
55
+ }
56
+ export function isWorkspaceEventStreamError(value) {
57
+ return value instanceof WorkspaceEventStreamError;
58
+ }
36
59
  const DEFAULT_INITIAL_DELAY_MS = 3000;
37
60
  const DEFAULT_MAX_DELAY_MS = 30000;
38
61
  const DEFAULT_MAX_RECONNECTS = 10;
@@ -109,6 +132,24 @@ export class EventsResource extends WorkspaceScopedResource {
109
132
  };
110
133
  }
111
134
  }
135
+ /**
136
+ * Server-sent ``error`` event frames that the SDK should treat as terminal
137
+ * (do NOT auto-retry). Mirror the ``code`` taxonomy emitted by
138
+ * ``platform-api/src/routes/event_stream.py``.
139
+ */
140
+ const TERMINAL_SERVER_ERROR_CODES = {
141
+ too_many_streams: 'too_many_streams',
142
+ };
143
+ /**
144
+ * Server-sent ``error`` event frames that are recoverable — surface them as
145
+ * transport errors so the reconnect loop kicks in. ``stream_unavailable``
146
+ * fires when Valkey is down; ``stream_error`` is the generic catch-all from
147
+ * the server-side ``except Exception`` branch.
148
+ */
149
+ const RECOVERABLE_SERVER_ERROR_CODES = {
150
+ stream_unavailable: 'stream_unavailable',
151
+ stream_error: 'stream_error',
152
+ };
112
153
  async function runSubscription(client, workspaceId, options, signal) {
113
154
  let lastEventId = options.lastEventId;
114
155
  let attempt = 0;
@@ -155,7 +196,9 @@ async function runSubscription(client, workspaceId, options, signal) {
155
196
  }
156
197
  catch (err) {
157
198
  // runOneConnection surfaces only terminal auth errors via throw;
158
- // everything else is a StreamOutcome.
199
+ // everything else is a StreamOutcome. Preserve the original Error
200
+ // (typically ``AuthenticationError`` with ``statusCode``) so consumers
201
+ // that branch on ``err.statusCode`` keep working.
159
202
  reportError(err instanceof Error ? err : new Error(String(err)));
160
203
  return;
161
204
  }
@@ -164,12 +207,22 @@ async function runSubscription(client, workspaceId, options, signal) {
164
207
  }
165
208
  if (outcome.kind === 'auth-error') {
166
209
  // 401 / 403 — never auto-retry. The token is invalid and the
167
- // stream cannot succeed without operator intervention.
210
+ // stream cannot succeed without operator intervention. Surface the
211
+ // original ``AuthenticationError`` so consumers checking
212
+ // ``err.statusCode`` keep working.
168
213
  reportError(outcome.error);
169
214
  return;
170
215
  }
216
+ if (outcome.kind === 'terminal-server-error') {
217
+ // Server emitted a structured ``error`` frame with a code that the
218
+ // SDK recognizes as terminal (e.g., ``too_many_streams``). Surface
219
+ // it as a typed ``WorkspaceEventStreamError`` so consumers can branch
220
+ // on ``error.code`` without parsing free-form text.
221
+ reportError(new WorkspaceEventStreamError(outcome.message, outcome.code, outcome.retryable, outcome.frame));
222
+ return;
223
+ }
171
224
  if (attempt >= maxReconnects) {
172
- reportError(new Error(`SSE subscription exhausted reconnect budget (${maxReconnects}): ${outcome.reason}`));
225
+ reportError(new WorkspaceEventStreamError(`SSE subscription exhausted reconnect budget (${maxReconnects}): ${outcome.reason}`, 'transport_exhausted', true));
173
226
  return;
174
227
  }
175
228
  attempt += 1;
@@ -225,6 +278,24 @@ async function runOneConnection(args) {
225
278
  if (frame.id !== undefined) {
226
279
  args.onIdAdvance(frame.id);
227
280
  }
281
+ if (frame.event === 'error' && frame.data !== undefined) {
282
+ // Structured error frame — branch on ``code`` from the server. We
283
+ // distinguish three buckets: terminal (don't retry), recoverable
284
+ // (let the reconnect loop run), and unknown (default to recoverable
285
+ // so a future server code does not strand consumers without auto-
286
+ // retry).
287
+ const errOutcome = interpretServerErrorFrame(frame.data);
288
+ if (errOutcome.terminal) {
289
+ return {
290
+ kind: 'terminal-server-error',
291
+ code: errOutcome.code,
292
+ message: errOutcome.message,
293
+ retryable: errOutcome.retryable,
294
+ frame: errOutcome.frame,
295
+ };
296
+ }
297
+ return { kind: 'transport-error', reason: errOutcome.message };
298
+ }
228
299
  if (frame.event && frame.data !== undefined) {
229
300
  const event = parseWorkspaceFrame(frame.event, frame.data);
230
301
  if (event) {
@@ -408,6 +479,71 @@ function parseWorkspaceFrame(eventName, dataJson) {
408
479
  event_type: eventName,
409
480
  };
410
481
  }
482
+ /**
483
+ * Decode a server-sent ``error`` frame body into either a terminal or
484
+ * recoverable outcome.
485
+ *
486
+ * The platform-api event stream emits these shapes:
487
+ *
488
+ * { code: "too_many_streams", message: "...", max_streams: 50 }
489
+ * { code: "stream_unavailable", message: "Event streaming unavailable" }
490
+ * { code: "stream_error", message: "Stream error, please reconnect" }
491
+ *
492
+ * Unknown codes default to recoverable so a server-side addition does not
493
+ * strand SDK consumers without auto-retry.
494
+ */
495
+ function interpretServerErrorFrame(dataJson) {
496
+ let payload;
497
+ try {
498
+ payload = JSON.parse(dataJson);
499
+ }
500
+ catch {
501
+ return {
502
+ terminal: false,
503
+ code: 'stream_error',
504
+ message: 'Server sent malformed error frame',
505
+ retryable: true,
506
+ frame: {},
507
+ };
508
+ }
509
+ if (typeof payload !== 'object' || payload === null || Array.isArray(payload)) {
510
+ return {
511
+ terminal: false,
512
+ code: 'stream_error',
513
+ message: 'Server sent non-object error frame',
514
+ retryable: true,
515
+ frame: {},
516
+ };
517
+ }
518
+ const obj = payload;
519
+ const rawCode = typeof obj['code'] === 'string' ? obj['code'] : '';
520
+ const message = typeof obj['message'] === 'string' ? obj['message'] : 'Stream error';
521
+ if (rawCode in TERMINAL_SERVER_ERROR_CODES) {
522
+ return {
523
+ terminal: true,
524
+ code: TERMINAL_SERVER_ERROR_CODES[rawCode],
525
+ message,
526
+ retryable: false,
527
+ frame: obj,
528
+ };
529
+ }
530
+ if (rawCode in RECOVERABLE_SERVER_ERROR_CODES) {
531
+ return {
532
+ terminal: false,
533
+ code: RECOVERABLE_SERVER_ERROR_CODES[rawCode],
534
+ message,
535
+ retryable: true,
536
+ frame: obj,
537
+ };
538
+ }
539
+ return {
540
+ terminal: false,
541
+ code: 'unknown',
542
+ message: rawCode ? `${message} (code=${rawCode})` : message,
543
+ retryable: true,
544
+ frame: obj,
545
+ };
546
+ }
411
547
  function readStatus(error) {
412
548
  if (typeof error !== 'object' || error === null)
413
549
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/resources/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/resources/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAsCnD;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,CAA+B;IACnC,SAAS,CAAS;IAC3B,gFAAgF;IACvE,KAAK,CAAqC;IAEnD,YACE,OAAe,EACf,IAAmC,EACnC,SAAkB,EAClB,KAA+B;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAc;IAEd,OAAO,KAAK,YAAY,yBAAyB,CAAA;AACnD,CAAC;AAgFD,MAAM,wBAAwB,GAAG,IAAI,CAAA;AACrC,MAAM,oBAAoB,GAAG,KAAK,CAAA;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,2EAA2E;AAC3E,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,eAAe,GAAG,SAAS,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,cAAe,SAAQ,uBAAuB;IACzD,YAAY,MAAqB,EAAE,WAAmB;QACpD,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,oBAAoB,CAAC,OAAoC;QACvD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,MAAM,QAAQ,GAAsB,EAAE,CAAA;QAEtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3B,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACzE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;YAC5E,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,eAAe,CAAC,MAAM,CACvB,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,IAAI;YACJ,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE;SAC3C,CAAA;IACH,CAAC;CACF;AAkBD;;;;GAIG;AACH,MAAM,2BAA2B,GAAkD;IACjF,gBAAgB,EAAE,kBAAkB;CACrC,CAAA;AAED;;;;;GAKG;AACH,MAAM,8BAA8B,GAAkD;IACpF,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;CAC7B,CAAA;AAED,KAAK,UAAU,eAAe,CAC5B,MAAqB,EACrB,WAAmB,EACnB,OAAoC,EACpC,MAAmB;IAEnB,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;IACrC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAA;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAoB,CAAA;IAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,sBAAsB,CAAA;IACrE,IAAI,aAAa,GAAG,KAAK,CAAA;IAEzB,MAAM,WAAW,GAAG,CAAC,KAAY,EAAQ,EAAE;QACzC,IAAI,aAAa;YAAE,OAAM;QACzB,aAAa,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;YACxE,CAAC;QACH,CAAC;QAED,IAAI,OAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,gBAAgB,CAAC;gBAC/B,MAAM;gBACN,WAAW;gBACX,WAAW;gBACX,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;oBAClB,WAAW,GAAG,EAAE,CAAA;gBAClB,CAAC;gBACD,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE;oBACvB,wDAAwD;oBACxD,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;gBAC9D,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iEAAiE;YACjE,kEAAkE;YAClE,uEAAuE;YACvE,kDAAkD;YAClD,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjD,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,6DAA6D;YAC7D,mEAAmE;YACnE,yDAAyD;YACzD,mCAAmC;YACnC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC7C,mEAAmE;YACnE,mEAAmE;YACnE,sEAAsE;YACtE,oDAAoD;YACpD,WAAW,CACT,IAAI,yBAAyB,CAC3B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,KAAK,CACd,CACF,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;YAC7B,WAAW,CACT,IAAI,yBAAyB,CAC3B,gDAAgD,aAAa,MAAM,OAAO,CAAC,MAAM,EAAE,EACnF,qBAAqB,EACrB,IAAI,CACL,CACF,CAAA;YACD,OAAM;QACR,CAAC;QAED,OAAO,IAAI,CAAC,CAAA;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/B,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACnD,IAAI,CAAC,KAAK;YAAE,OAAM;IACpB,CAAC;AACH,CAAC;AAYD,KAAK,UAAU,gBAAgB,CAAC,IAA0B;IACxD,MAAM,OAAO,GAA2B,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACvE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;IAC7C,CAAC;IAED,IAAI,MAAgE,CAAA;IACpE,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE;YACjE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE;YACpD,OAAO;YACP,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACnD,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACjE,sEAAsE;QACtE,mEAAmE;QACnE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;QACtC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,oEAAoE;QACpE,4DAA4D;QAC5D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAA;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,IAAI,CAAC,CAAC,IAAI,YAAY,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAA;IACpF,CAAC;IAED,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YACnD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxD,kEAAkE;gBAClE,iEAAiE;gBACjE,oEAAoE;gBACpE,kEAAkE;gBAClE,UAAU;gBACV,MAAM,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACxB,OAAO;wBACL,IAAI,EAAE,uBAAuB;wBAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;qBACxB,CAAA;gBACH,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAA;YAChE,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1D,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC;wBACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,wDAAwD;wBACxD,6CAA6C;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACnD,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/D,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC5C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACnD,sEAAsE;IACtE,uCAAuC;IACvC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;AACvE,CAAC;AASD;;;;;;GAMG;AACH,KAAK,SAAS,CAAC,CAAC,cAAc,CAC5B,MAAkC,EAClC,MAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,6DAA6D;IAC7D,2EAA2E;IAC3E,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,SAAS;YAAE,OAAM;QACrB,SAAS,GAAG,IAAI,CAAA;QAChB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YAC9B,yDAAyD;QAC3D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,IAAI,kBAA4C,CAAA;IAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,CAAA;IACX,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,kBAAkB,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;IAED,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAY;QAC1B,MAAM,IAAI,IAAI,CAAA;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,eAAe,2BAA2B,CAAC,CAAA;QAC1F,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,GAAG,KAAK,IAAI;gBAAE,MAAK;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;YAClD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YAClC,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAA;QACxB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACvD,CAAC;QACD,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YACnC,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAA;YACtB,MAAM,GAAG,EAAE,CAAA;QACb,CAAC;IACH,CAAC;YAAS,CAAC;QACT,kBAAkB,EAAE,EAAE,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,EAAE,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAClC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACnC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,GAAG,CAAC,EAAE,CAAA;IACrE,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE,CAAA;IACnE,OAAO,EAAE,GAAG,IAAI;QACd,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE;QAChD,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,GAAG,CAAC,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,EAAsB,CAAA;IAC1B,IAAI,KAAyB,CAAA;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACrD,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAClD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACjD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,EAAE,GAAG,KAAK,CAAA;QACZ,CAAC;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;gBAAE,KAAK,GAAG,MAAM,CAAA;QAC5D,CAAC;QACD,+CAA+C;IACjD,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAC1E,gDAAgD;IAChD,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAChF,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO;QACL,KAAK;QACL,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,EAAE;QACF,KAAK;KACN,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,SAAiB,EAAE,QAAgB;IAC9D,IAAI,OAAgB,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1F,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO;QACL,GAAI,OAAmC;QACvC,UAAU,EAAE,SAAS;KACD,CAAA;AACxB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,yBAAyB,CAAC,QAAgB;IAOjD,IAAI,OAAgB,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,mCAAmC;YAC5C,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAA;IACH,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9E,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,oCAAoC;YAC7C,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAkC,CAAA;IAC9C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9E,MAAM,OAAO,GACX,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,SAAS,CAAY,CAAC,CAAC,CAAC,cAAc,CAAA;IAElF,IAAI,OAAO,IAAI,2BAA2B,EAAE,CAAC;QAC3C,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,2BAA2B,CAAC,OAAO,CAAE;YAC3C,OAAO;YACP,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,GAAG;SACX,CAAA;IACH,CAAC;IACD,IAAI,OAAO,IAAI,8BAA8B,EAAE,CAAC;QAC9C,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,8BAA8B,CAAC,OAAO,CAAE;YAC9C,OAAO;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,GAAG;SACX,CAAA;IACH,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO;QAC3D,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,GAAG;KACX,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACjE,MAAM,MAAM,GAAI,KAAkC,CAAC,UAAU,CAAA;IAC7D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,EAAU;IACxB,0EAA0E;IAC1E,6DAA6D;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,EAAU,EAAE,KAAyB,EAAE,OAAe;IACxE,MAAM,EAAE,GAAG,KAAK,IAAI,wBAAwB,CAAA;IAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;AAC5C,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,MAAmB;IAC3D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAChC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5C,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -55,6 +55,31 @@ export class IntegrationsResource extends WorkspaceScopedResource {
55
55
  body,
56
56
  }));
57
57
  }
58
+ /**
59
+ * Probe an integration's connection + auth without invoking any specific
60
+ * endpoint. Exercises auth resolution end-to-end (SSM lookups, OAuth2 token
61
+ * mints, JWT signing) and sends a HEAD request to ``base_url`` (REST/FHIR)
62
+ * or ``mcp_url`` (MCP). Safe on production integrations — HEAD carries no
63
+ * side effects.
64
+ *
65
+ * The most recent probe outcome is persisted on the integration so
66
+ * subsequent ``get`` / ``list`` responses surface ``last_tested_at`` +
67
+ * ``last_test_status`` without re-probing.
68
+ *
69
+ * @returns ``status`` is one of ``healthy`` / ``auth_failed`` /
70
+ * ``unreachable`` / ``timeout`` / ``ssl_error`` / ``misconfigured``,
71
+ * each mapping to a distinct, actionable user message.
72
+ */
73
+ async testConnection(integrationId) {
74
+ return extractData(await this.client.POST('/v1/{workspace_id}/integrations/{integration_id}/test-connection', {
75
+ params: {
76
+ path: {
77
+ workspace_id: this.workspaceId,
78
+ integration_id: integrationId,
79
+ },
80
+ },
81
+ }));
82
+ }
58
83
  /** Check health of all integrations in the workspace */
59
84
  async getHealthCheck() {
60
85
  return extractData(await this.client.GET('/v1/{workspace_id}/integrations/health-check', {
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/resources/integrations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAShE;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,uBAAuB;IAC/D,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAuD;QAClE,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;YACxD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE;YACpD,IAAI;SACL,CAAC,CACH,CAAA;IACH,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,MAA+B;QACxC,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE;YACvD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACpE,CAAC,CACH,CAAA;IACH,CAAC;IAED,cAAc,CAAC,MAA+B;QAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;IACjF,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,GAAG,CAAC,aAAqC;QAC7C,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,EAAE;YACxE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;SACpF,CAAC,CACH,CAAA;IACH,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,MAAM,CACV,aAAqC,EACrC,IAAuD;QAEvD,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,EAAE;YACxE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;YACnF,IAAI;SACL,CAAC,CACH,CAAA;IACH,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,MAAM,CAAC,aAAqC;QAChD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kDAAkD,EAAE;YAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;SACpF,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,aAAqC,EACrC,YAAoB,EACpB,IAAkD;QAElD,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,iFAAiF,EACjF;YACE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,YAAY,EAAE,IAAI,CAAC,WAAW;oBAC9B,cAAc,EAAE,aAAa;oBAC7B,aAAa,EAAE,YAAY;iBAC5B;aACF;YACD,IAAI;SACL,CACF,CACF,CAAA;IACH,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,cAAc;QAClB,OAAO,WAAW,CAChB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,EAAE;YACpE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE;SACrD,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/resources/integrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * Voice-call observer real-time stream.
3
+ *
4
+ * The voice agent ("agent-engine") exposes a per-call WebSocket that emits
5
+ * the live timeline of a call: transcripts (user + agent), emotion / empathy
6
+ * frames, latency markers, tool invocations, navigation timing, and lifecycle
7
+ * events (start / end / participant join / leave).
8
+ *
9
+ * This resource is the canonical SDK consumer for that stream. Before it
10
+ * existed, every developer-console-style app re-implemented the loop by hand
11
+ * — different idle thresholds, missing close-code handling for the long list
12
+ * of voice-specific 4xxx codes (4001 unauthorized, 4003 forbidden, 4029 rate
13
+ * limit, 4100 token expired), and inconsistent reconnect backoff.
14
+ *
15
+ * The implementation composes {@link createReconnectingWebSocket} with a
16
+ * lightweight ``ObserverSSEEvent`` parser. Frames that don't deserialize or
17
+ * lack a recognized ``type`` discriminator are dropped — the stream remains
18
+ * forward-compatible with new event types added on the server before the SDK
19
+ * spec snapshot picks them up.
20
+ *
21
+ * @see ConversationsResource.subscribeTextStream for the analogous text-stream
22
+ * helper.
23
+ */
24
+ import { ConfigurationError } from '../core/errors.js';
25
+ import { createReconnectingWebSocket, } from '../core/reconnecting-websocket.js';
26
+ import { WorkspaceScopedResource } from './base.js';
27
+ /** Token grammar accepted in WebSocket subprotocols (RFC 6455). */
28
+ const WEB_SOCKET_PROTOCOL_TOKEN_RE = /^[!#$%&'*+\-.^_`|~A-Za-z0-9]+$/;
29
+ const MAX_AUTH_TOKEN_CHARS = 4096;
30
+ /**
31
+ * Build browser WebSocket subprotocols for the observer stream.
32
+ *
33
+ * Identical wire format to the text-stream subprotocol pair —
34
+ * ``Sec-WebSocket-Protocol: auth, <token>`` — but exposed as its own
35
+ * function so consumers do not have to reason about cross-resource sharing
36
+ * and so the SDK can evolve the auth scheme independently per stream.
37
+ *
38
+ * @security The returned tuple contains the raw bearer token. Do not log,
39
+ * persist, serialize, or otherwise expose this value.
40
+ */
41
+ export function observerAuthProtocols(token) {
42
+ if (!token) {
43
+ throw new ConfigurationError('observerAuthProtocols requires a non-empty token');
44
+ }
45
+ if (token.length > MAX_AUTH_TOKEN_CHARS) {
46
+ throw new ConfigurationError(`observer token exceeds the ${MAX_AUTH_TOKEN_CHARS}-character WebSocket subprotocol limit`);
47
+ }
48
+ if (!WEB_SOCKET_PROTOCOL_TOKEN_RE.test(token)) {
49
+ throw new ConfigurationError('observer token contains characters browsers reject in WebSocket subprotocols');
50
+ }
51
+ return ['auth', token];
52
+ }
53
+ /**
54
+ * Voice-call observer resource.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const handle = client.observers.subscribe({
59
+ * callSid: 'CAxxx',
60
+ * token: bearerToken,
61
+ * onEvent: (event) => {
62
+ * switch (event.type) {
63
+ * case 'agent_transcript_delta':
64
+ * renderAgentDelta(event.text)
65
+ * break
66
+ * case 'user_transcript':
67
+ * renderUserTurn(event.text)
68
+ * break
69
+ * case 'session_end':
70
+ * showSummary(event)
71
+ * break
72
+ * }
73
+ * },
74
+ * onError: (err) => console.error('observer terminal:', err.reason),
75
+ * })
76
+ *
77
+ * // Later, to stop:
78
+ * handle.close()
79
+ * await handle.done
80
+ * ```
81
+ */
82
+ export class ObserversResource extends WorkspaceScopedResource {
83
+ agentBaseUrl;
84
+ constructor(client, workspaceId, agentBaseUrl) {
85
+ super(client, workspaceId);
86
+ this.agentBaseUrl = agentBaseUrl;
87
+ }
88
+ /**
89
+ * Subscribe to the live observer stream for a call.
90
+ *
91
+ * Returns a {@link ReconnectingWebSocketHandle} that resolves
92
+ * ``handle.done`` when the stream terminates (consumer-aborted, terminal
93
+ * close code, or reconnect budget exhausted). Errors are surfaced through
94
+ * ``onError``; the promise never rejects.
95
+ */
96
+ subscribe(options) {
97
+ const url = buildObserverUrl({
98
+ baseUrl: this.agentBaseUrl ?? this.platformBaseUrl,
99
+ workspaceId: this.workspaceId,
100
+ callSid: options.callSid,
101
+ observerUrl: options.observerUrl,
102
+ });
103
+ const protocols = observerAuthProtocols(options.token);
104
+ return createReconnectingWebSocket({
105
+ url,
106
+ protocols: [...protocols],
107
+ onMessage: (ev) => {
108
+ const parsed = parseObserverFrame(ev.data);
109
+ if (parsed) {
110
+ try {
111
+ options.onEvent(parsed);
112
+ }
113
+ catch {
114
+ // Consumer threw in onEvent — do not let it kill the loop.
115
+ }
116
+ }
117
+ },
118
+ onStateChange: options.onStateChange,
119
+ onReconnect: options.onReconnect,
120
+ onError: options.onError,
121
+ signal: options.signal,
122
+ idleTimeoutMs: options.idleTimeoutMs ?? 60_000,
123
+ initialDelayMs: options.initialDelayMs ?? 1_000,
124
+ maxDelayMs: options.maxDelayMs ?? 30_000,
125
+ maxReconnects: options.maxReconnects ?? 10,
126
+ webSocketFactory: options.webSocketFactory,
127
+ });
128
+ }
129
+ }
130
+ const CALL_SID_RE = /^CA[a-zA-Z0-9]{32}$/;
131
+ function buildObserverUrl(args) {
132
+ if (!args.workspaceId) {
133
+ throw new ConfigurationError('workspaceId is required to build the observer URL');
134
+ }
135
+ if (!args.callSid) {
136
+ throw new ConfigurationError('callSid is required to subscribe to the observer stream');
137
+ }
138
+ if (args.observerUrl) {
139
+ // Override path — the consumer has already constructed the full URL
140
+ // (e.g. via a custom voice-agent gateway helper). Skip the Twilio CA
141
+ // SID grammar check; the override owns the URL shape.
142
+ return parseOverride(args.observerUrl).toString();
143
+ }
144
+ // Default path — derive ``/v1/{ws}/observers/{callSid}/ws`` and validate
145
+ // the CA SID grammar so a typo fails at the function boundary instead of
146
+ // mid-reconnect-loop with an opaque 4001.
147
+ if (!CALL_SID_RE.test(args.callSid)) {
148
+ throw new ConfigurationError(`callSid does not match Twilio CA SID format (CA + 32 hex chars): ${args.callSid}`);
149
+ }
150
+ return deriveFromBase(args.baseUrl, args.workspaceId, args.callSid).toString();
151
+ }
152
+ function parseOverride(observerUrl) {
153
+ let url;
154
+ try {
155
+ url = new URL(observerUrl);
156
+ }
157
+ catch (cause) {
158
+ throw new ConfigurationError(`observerUrl must be an absolute URL: ${String(cause)}`);
159
+ }
160
+ if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
161
+ throw new ConfigurationError('observerUrl overrides must use ws: or wss: URLs');
162
+ }
163
+ if (url.search || url.hash) {
164
+ throw new ConfigurationError('observerUrl overrides must not include query parameters or fragments');
165
+ }
166
+ return url;
167
+ }
168
+ function deriveFromBase(baseUrl, workspaceId, callSid) {
169
+ let parsed;
170
+ try {
171
+ parsed = new URL(baseUrl);
172
+ }
173
+ catch (cause) {
174
+ throw new ConfigurationError(`observerUrl cannot be derived from baseUrl: ${String(cause)}`);
175
+ }
176
+ // Map http(s) to ws(s) — the agent-engine ALB serves both on the same host.
177
+ let scheme;
178
+ if (parsed.protocol === 'https:' || parsed.protocol === 'wss:')
179
+ scheme = 'wss:';
180
+ else if (parsed.protocol === 'http:' || parsed.protocol === 'ws:')
181
+ scheme = 'ws:';
182
+ else {
183
+ throw new ConfigurationError(`observerUrl can only be derived from an http, https, ws, or wss baseUrl: ${baseUrl}`);
184
+ }
185
+ // The pathname must be '/' — observer paths are owned by this helper,
186
+ // not the consumer's baseUrl gateway.
187
+ if (parsed.pathname !== '/' && parsed.pathname !== '') {
188
+ throw new ConfigurationError('observerUrl can only be derived from an origin-only baseUrl; pass observerUrl explicitly when using path-prefixed gateways');
189
+ }
190
+ const out = new URL(`${scheme}//${parsed.host}/v1/${encodeURIComponent(workspaceId)}/observers/${encodeURIComponent(callSid)}/ws`);
191
+ return out;
192
+ }
193
+ // ---------------------------------------------------------------------------
194
+ // Frame parser
195
+ // ---------------------------------------------------------------------------
196
+ /**
197
+ * Parse a raw WebSocket frame into a typed {@link ObserverSSEEvent}.
198
+ *
199
+ * Drift-tolerant: returns ``null`` on JSON decode errors, non-object
200
+ * payloads, missing ``type`` discriminator, or unknown discriminator
201
+ * values. The static type of ``ObserverSSEEvent`` is the contract — the
202
+ * server may add new event types ahead of an SDK release and the consumer's
203
+ * exhaustive ``switch`` will simply not match them, leaving the unknown
204
+ * frame on the floor.
205
+ */
206
+ function parseObserverFrame(data) {
207
+ let text;
208
+ if (typeof data === 'string') {
209
+ text = data;
210
+ }
211
+ else if (data instanceof ArrayBuffer) {
212
+ text = new TextDecoder().decode(data);
213
+ }
214
+ else if (ArrayBuffer.isView(data)) {
215
+ // ``data`` is some TypedArray; @types/node TextDecoder.decode wants
216
+ // ``BufferSource``. Pass through as ``Uint8Array`` over the underlying
217
+ // buffer so every TypedArray variant decodes consistently.
218
+ const view = data;
219
+ text = new TextDecoder().decode(new Uint8Array(view.buffer, view.byteOffset, view.byteLength));
220
+ }
221
+ else {
222
+ return null;
223
+ }
224
+ let payload;
225
+ try {
226
+ payload = JSON.parse(text);
227
+ }
228
+ catch {
229
+ return null;
230
+ }
231
+ if (typeof payload !== 'object' || payload === null || Array.isArray(payload))
232
+ return null;
233
+ const obj = payload;
234
+ if (typeof obj['type'] !== 'string')
235
+ return null;
236
+ return obj;
237
+ }
238
+ //# sourceMappingURL=observers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observers.js","sourceRoot":"","sources":["../../src/resources/observers.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,74 @@
2
2
  * Error hierarchy for the Amigo Platform SDK.
3
3
  * All errors extend AmigoError which can be caught with a single catch.
4
4
  */
5
+ import type { components } from '../generated/api.js';
5
6
  export interface ErrorContext {
6
7
  statusCode?: number;
7
8
  errorCode?: string;
8
9
  requestId?: string;
9
10
  detail?: string;
10
11
  context?: Record<string, unknown>;
12
+ /** Parsed error body (typed when recognized) */
13
+ errorBody?: PlatformErrorBody;
14
+ /** Raw body string for diagnostic logging — populated even on parse failure */
15
+ rawBody?: string;
11
16
  }
17
+ /**
18
+ * FastAPI 422 validation-error body.
19
+ * Surfaces from openapi-typescript so consumers can read field-level errors.
20
+ */
21
+ export type HttpValidationErrorBody = components['schemas']['HTTPValidationError'];
22
+ /**
23
+ * Default FastAPI HTTPException shape (`raise HTTPException(status_code, detail=...)`).
24
+ *
25
+ * Most platform-api routes that don't define an explicit error model return
26
+ * this shape. `detail` may be a free-form string or a JSON-serializable object.
27
+ */
28
+ export interface HttpExceptionBody {
29
+ detail: string | Record<string, unknown> | unknown[];
30
+ /** Populated by request-id middleware on bounded routes */
31
+ request_id?: string;
32
+ /** Populated by typed error responses (e.g. Surface lifecycle errors) */
33
+ error_code?: string;
34
+ }
35
+ /**
36
+ * Fallback shape used when the response body fails to parse or is empty.
37
+ * `rawBody` is the verbatim text (truncated to 8 KB to avoid log bloat).
38
+ */
39
+ export interface UnparseableErrorBody {
40
+ detail: string;
41
+ raw_body: string;
42
+ }
43
+ /**
44
+ * Discriminated union of all error body shapes the platform API emits.
45
+ *
46
+ * Consumers should use the type guards (`isHttpException`,
47
+ * `isHttpValidationError`, `isUnparseableErrorBody`) rather than checking
48
+ * fields directly — both `HttpExceptionBody` and `HttpValidationErrorBody`
49
+ * have a `detail` field but it is shaped differently.
50
+ */
51
+ export type PlatformErrorBody = HttpExceptionBody | HttpValidationErrorBody | UnparseableErrorBody;
12
52
  /** Base class for all Amigo Platform SDK errors */
13
- export declare class AmigoError extends Error {
53
+ export declare class AmigoError<TBody extends PlatformErrorBody = PlatformErrorBody> extends Error {
14
54
  readonly statusCode?: number;
15
55
  readonly errorCode?: string;
16
56
  readonly requestId?: string;
17
57
  readonly detail?: string;
18
58
  readonly context?: Record<string, unknown>;
59
+ /**
60
+ * Typed body of the error response, when one was returned and successfully
61
+ * parsed. Use the `isHttpException` / `isHttpValidationError` /
62
+ * `isUnparseableErrorBody` type guards to narrow the discriminated union.
63
+ *
64
+ * Named `errorBody` (not `body`) to avoid colliding with the legacy
65
+ * `ParseError.body: string` field.
66
+ */
67
+ readonly errorBody?: TBody;
68
+ /**
69
+ * Raw response body (truncated to 8 KB). Populated even when parsing fails,
70
+ * so callers always have something to log when debugging server errors.
71
+ */
72
+ readonly rawBody?: string;
19
73
  constructor(message: string, ctx?: ErrorContext);
20
74
  toJSON(): Record<string, unknown>;
21
75
  }
@@ -82,4 +136,42 @@ export declare function isNotFoundError(err: unknown): err is NotFoundError;
82
136
  export declare function isRateLimitError(err: unknown): err is RateLimitError;
83
137
  export declare function isAuthenticationError(err: unknown): err is AuthenticationError;
84
138
  export declare function isRequestTimeoutError(err: unknown): err is RequestTimeoutError;
139
+ export declare function isPermissionError(err: unknown): err is PermissionError;
140
+ export declare function isConflictError(err: unknown): err is ConflictError;
141
+ export declare function isValidationError(err: unknown): err is ValidationError;
142
+ export declare function isServerError(err: unknown): err is ServerError;
143
+ export declare function isNetworkError(err: unknown): err is NetworkError;
144
+ /**
145
+ * Narrowed AmigoError where `errorBody` is guaranteed non-undefined.
146
+ * Used as the return-type for body type guards so consumers don't need to
147
+ * re-assert `errorBody !== undefined` after the guard.
148
+ */
149
+ export type AmigoErrorWithBody<TBody extends PlatformErrorBody> = AmigoError<TBody> & {
150
+ readonly errorBody: TBody;
151
+ };
152
+ /**
153
+ * True when `err.errorBody` is the FastAPI 422 validation-error shape (an
154
+ * object with `detail: ValidationError[]`). Lets consumers iterate
155
+ * field-level errors without `as any`:
156
+ *
157
+ * ```ts
158
+ * if (isHttpValidationError(err)) {
159
+ * for (const issue of err.errorBody.detail ?? []) {
160
+ * console.log(issue.loc, issue.msg)
161
+ * }
162
+ * }
163
+ * ```
164
+ */
165
+ export declare function isHttpValidationError(err: unknown): err is AmigoErrorWithBody<HttpValidationErrorBody>;
166
+ /**
167
+ * True when `err.errorBody` is the default FastAPI HTTPException shape
168
+ * (`{ detail: string | object | array }`, possibly with `error_code` /
169
+ * `request_id`). This is the most common error body across platform-api.
170
+ */
171
+ export declare function isHttpException(err: unknown): err is AmigoErrorWithBody<HttpExceptionBody>;
172
+ /**
173
+ * True when the response body could not be parsed as JSON (or was empty).
174
+ * `err.errorBody.raw_body` is the verbatim text (truncated to 8 KB).
175
+ */
176
+ export declare function isUnparseableErrorBody(err: unknown): err is AmigoErrorWithBody<UnparseableErrorBody>;
85
177
  //# sourceMappingURL=errors.d.ts.map