@anam-ai/js-sdk 4.17.0 → 4.18.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 (36) hide show
  1. package/dist/main/lib/ClientMetrics.d.ts +10 -2
  2. package/dist/main/lib/ClientMetrics.d.ts.map +1 -1
  3. package/dist/main/lib/ClientMetrics.js +46 -31
  4. package/dist/main/lib/ClientMetrics.js.map +1 -1
  5. package/dist/main/lib/ConnectionMilestones.d.ts +2 -2
  6. package/dist/main/lib/ConnectionMilestones.d.ts.map +1 -1
  7. package/dist/main/lib/ConnectionMilestones.js +16 -5
  8. package/dist/main/lib/ConnectionMilestones.js.map +1 -1
  9. package/dist/main/lib/constants.js +1 -1
  10. package/dist/main/modules/SignallingClient.d.ts +23 -0
  11. package/dist/main/modules/SignallingClient.d.ts.map +1 -1
  12. package/dist/main/modules/SignallingClient.js +107 -14
  13. package/dist/main/modules/SignallingClient.js.map +1 -1
  14. package/dist/main/modules/StreamingClient.d.ts +36 -0
  15. package/dist/main/modules/StreamingClient.d.ts.map +1 -1
  16. package/dist/main/modules/StreamingClient.js +363 -25
  17. package/dist/main/modules/StreamingClient.js.map +1 -1
  18. package/dist/module/lib/ClientMetrics.d.ts +10 -2
  19. package/dist/module/lib/ClientMetrics.d.ts.map +1 -1
  20. package/dist/module/lib/ClientMetrics.js +43 -29
  21. package/dist/module/lib/ClientMetrics.js.map +1 -1
  22. package/dist/module/lib/ConnectionMilestones.d.ts +2 -2
  23. package/dist/module/lib/ConnectionMilestones.d.ts.map +1 -1
  24. package/dist/module/lib/ConnectionMilestones.js +17 -6
  25. package/dist/module/lib/ConnectionMilestones.js.map +1 -1
  26. package/dist/module/lib/constants.js +1 -1
  27. package/dist/module/modules/SignallingClient.d.ts +23 -0
  28. package/dist/module/modules/SignallingClient.d.ts.map +1 -1
  29. package/dist/module/modules/SignallingClient.js +107 -14
  30. package/dist/module/modules/SignallingClient.js.map +1 -1
  31. package/dist/module/modules/StreamingClient.d.ts +36 -0
  32. package/dist/module/modules/StreamingClient.d.ts.map +1 -1
  33. package/dist/module/modules/StreamingClient.js +363 -25
  34. package/dist/module/modules/StreamingClient.js.map +1 -1
  35. package/dist/umd/anam.js +1 -1
  36. package/package.json +1 -1
@@ -5,9 +5,11 @@ export declare enum ClientMetricMeasurement {
5
5
  CLIENT_METRIC_MEASUREMENT_ERROR = "client_error",
6
6
  CLIENT_METRIC_MEASUREMENT_CONNECTION_CLOSED = "client_connection_closed",
7
7
  CLIENT_METRIC_MEASUREMENT_CONNECTION_ESTABLISHED = "client_connection_established",
8
+ CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONE = "client_connection_milestone",
8
9
  CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONES = "client_connection_milestones",
9
10
  CLIENT_METRIC_MEASUREMENT_SESSION_ATTEMPT = "client_session_attempt",
10
- CLIENT_METRIC_MEASUREMENT_SESSION_SUCCESS = "client_session_success"
11
+ CLIENT_METRIC_MEASUREMENT_SESSION_SUCCESS = "client_session_success",
12
+ CLIENT_METRIC_MEASUREMENT_ICE_RESTART = "client_ice_restart"
11
13
  }
12
14
  export declare const setClientMetricsBaseUrl: (baseUrl: string, apiVersion?: string) => void;
13
15
  export declare const setClientMetricsApiGateway: (config: ApiGatewayConfig | undefined) => void;
@@ -18,7 +20,13 @@ export interface AnamMetricsContext {
18
20
  attemptCorrelationId: string | null;
19
21
  }
20
22
  export declare const setMetricsContext: (context: Partial<AnamMetricsContext>) => void;
21
- export declare const sendClientMetric: (name: string, value: string, tags?: Record<string, string | number>) => Promise<void>;
23
+ export interface ClientMetricPayload {
24
+ name: string;
25
+ value: string | number;
26
+ tags?: Record<string, string | number>;
27
+ }
28
+ export declare const sendClientMetric: (name: string, value: string | number, tags?: Record<string, string | number>) => Promise<void>;
29
+ export declare const sendClientMetrics: (metrics: ClientMetricPayload[]) => Promise<void>;
22
30
  export interface RTCStatsJsonReport {
23
31
  personaVideoStream?: {
24
32
  framesReceived: number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientMetrics.d.ts","sourceRoot":"","sources":["../../../src/lib/ClientMetrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C,oBAAY,uBAAuB;IACjC,+BAA+B,iBAAiB;IAChD,2CAA2C,6BAA6B;IACxE,gDAAgD,kCAAkC;IAClF,+CAA+C,iCAAiC;IAChF,yCAAyC,2BAA2B;IACpE,yCAAyC,2BAA2B;CACrE;AAOD,eAAO,MAAM,uBAAuB,YACzB,MAAM,eACH,MAAM,SAInB,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAC7B,gBAAgB,GAAG,SAAS,SAGrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,aAAc,OAAO,SAEzD,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAQD,eAAO,MAAM,iBAAiB,YAAa,QAAQ,kBAAkB,CAAC,SAErE,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACrB,MAAM,SACL,MAAM,SACN,OAAO,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,kBA8DvC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE;QACnB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;QAChC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;QAC/B,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;QACjC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,kBAAkB,CAAC,EAAE;QACnB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;QACjC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,cAAc,CAAC,EAAE;QACf,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;IACJ,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,UACxB,cAAc,iBACP,SAAS,GAAG,MAAM,KAC/B,kBAAkB,GAAG,IA+QvB,CAAC"}
1
+ {"version":3,"file":"ClientMetrics.d.ts","sourceRoot":"","sources":["../../../src/lib/ClientMetrics.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createRTCStatsReport = exports.sendClientMetric = exports.setMetricsContext = exports.setClientMetricsDisabled = exports.setClientMetricsApiGateway = exports.setClientMetricsBaseUrl = exports.ClientMetricMeasurement = exports.DEFAULT_ANAM_API_VERSION = exports.DEFAULT_ANAM_METRICS_BASE_URL = void 0;
12
+ exports.createRTCStatsReport = exports.sendClientMetrics = exports.sendClientMetric = exports.setMetricsContext = exports.setClientMetricsDisabled = exports.setClientMetricsApiGateway = exports.setClientMetricsBaseUrl = exports.ClientMetricMeasurement = exports.DEFAULT_ANAM_API_VERSION = exports.DEFAULT_ANAM_METRICS_BASE_URL = void 0;
13
13
  const constants_1 = require("./constants");
14
14
  exports.DEFAULT_ANAM_METRICS_BASE_URL = 'https://api.anam.ai';
15
15
  exports.DEFAULT_ANAM_API_VERSION = '/v1';
@@ -18,10 +18,13 @@ var ClientMetricMeasurement;
18
18
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_ERROR"] = "client_error";
19
19
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_CONNECTION_CLOSED"] = "client_connection_closed";
20
20
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_CONNECTION_ESTABLISHED"] = "client_connection_established";
21
+ ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONE"] = "client_connection_milestone";
21
22
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONES"] = "client_connection_milestones";
22
23
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_SESSION_ATTEMPT"] = "client_session_attempt";
23
24
  ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_SESSION_SUCCESS"] = "client_session_success";
25
+ ClientMetricMeasurement["CLIENT_METRIC_MEASUREMENT_ICE_RESTART"] = "client_ice_restart";
24
26
  })(ClientMetricMeasurement || (exports.ClientMetricMeasurement = ClientMetricMeasurement = {}));
27
+ const CLIENT_METRICS_MAX_BATCH_SIZE = 50;
25
28
  let anamCurrentBaseUrl = exports.DEFAULT_ANAM_METRICS_BASE_URL;
26
29
  let anamCurrentApiVersion = exports.DEFAULT_ANAM_API_VERSION;
27
30
  let apiGatewayConfig;
@@ -49,32 +52,19 @@ const setMetricsContext = (context) => {
49
52
  };
50
53
  exports.setMetricsContext = setMetricsContext;
51
54
  const sendClientMetric = (name, value, tags) => __awaiter(void 0, void 0, void 0, function* () {
55
+ yield (0, exports.sendClientMetrics)([{ name, value, tags }]);
56
+ });
57
+ exports.sendClientMetric = sendClientMetric;
58
+ const sendClientMetrics = (metrics) => __awaiter(void 0, void 0, void 0, function* () {
52
59
  // Skip sending metrics if disabled
53
- if (metricsDisabled) {
60
+ if (metricsDisabled || metrics.length === 0) {
54
61
  return;
55
62
  }
56
63
  try {
57
- const metricTags = Object.assign(Object.assign({}, constants_1.CLIENT_METADATA), tags);
58
- // Fill session/organization/attempt IDs from the global context, but only
59
- // when the caller did not already supply them. Callers that pass their own
60
- // context (e.g. the connection-milestones recorder, which pins each metric
61
- // to the attempt it belongs to) are authoritative; the global singleton is
62
- // mutated by every new attempt and must not overwrite a caller's snapshot.
63
- if (anamMetricsContext.sessionId && metricTags.sessionId === undefined) {
64
- metricTags.sessionId = anamMetricsContext.sessionId;
65
- }
66
- if (anamMetricsContext.organizationId &&
67
- metricTags.organizationId === undefined) {
68
- metricTags.organizationId = anamMetricsContext.organizationId;
69
- }
70
- if (anamMetricsContext.attemptCorrelationId &&
71
- metricTags.attemptCorrelationId === undefined) {
72
- metricTags.attemptCorrelationId = anamMetricsContext.attemptCorrelationId;
73
- }
74
64
  // Determine URL and headers based on API Gateway configuration
75
65
  const targetPath = `${anamCurrentApiVersion}/metrics/client`;
76
66
  let url;
77
- let headers = {
67
+ const headers = {
78
68
  'Content-Type': 'application/json',
79
69
  };
80
70
  if ((apiGatewayConfig === null || apiGatewayConfig === void 0 ? void 0 : apiGatewayConfig.enabled) && (apiGatewayConfig === null || apiGatewayConfig === void 0 ? void 0 : apiGatewayConfig.baseUrl)) {
@@ -86,21 +76,46 @@ const sendClientMetric = (name, value, tags) => __awaiter(void 0, void 0, void 0
86
76
  // Direct call to Anam API
87
77
  url = `${anamCurrentBaseUrl}${targetPath}`;
88
78
  }
89
- yield fetch(url, {
90
- method: 'POST',
91
- headers,
92
- body: JSON.stringify({
93
- name,
94
- value,
95
- tags: metricTags,
96
- }),
97
- });
79
+ const normalizedMetrics = metrics.map((metric) => (Object.assign(Object.assign({}, metric), { tags: buildMetricTags(metric.tags) })));
80
+ for (let batchStart = 0; batchStart < normalizedMetrics.length; batchStart += CLIENT_METRICS_MAX_BATCH_SIZE) {
81
+ const batch = normalizedMetrics.slice(batchStart, batchStart + CLIENT_METRICS_MAX_BATCH_SIZE);
82
+ const body = batch.length === 1
83
+ ? batch[0]
84
+ : {
85
+ metrics: batch,
86
+ };
87
+ yield fetch(url, {
88
+ method: 'POST',
89
+ headers,
90
+ body: JSON.stringify(body),
91
+ });
92
+ }
98
93
  }
99
94
  catch (error) {
100
- console.error('Failed to send error metric:', error);
95
+ console.error('Failed to send client metric:', error);
101
96
  }
102
97
  });
103
- exports.sendClientMetric = sendClientMetric;
98
+ exports.sendClientMetrics = sendClientMetrics;
99
+ const buildMetricTags = (tags) => {
100
+ const metricTags = Object.assign(Object.assign({}, constants_1.CLIENT_METADATA), tags);
101
+ // Fill session/organization/attempt IDs from the global context, but only
102
+ // when the caller did not already supply them. Callers that pass their own
103
+ // context (e.g. the connection-milestones recorder, which pins each metric
104
+ // to the attempt it belongs to) are authoritative; the global singleton is
105
+ // mutated by every new attempt and must not overwrite a caller's snapshot.
106
+ if (anamMetricsContext.sessionId && metricTags.sessionId === undefined) {
107
+ metricTags.sessionId = anamMetricsContext.sessionId;
108
+ }
109
+ if (anamMetricsContext.organizationId &&
110
+ metricTags.organizationId === undefined) {
111
+ metricTags.organizationId = anamMetricsContext.organizationId;
112
+ }
113
+ if (anamMetricsContext.attemptCorrelationId &&
114
+ metricTags.attemptCorrelationId === undefined) {
115
+ metricTags.attemptCorrelationId = anamMetricsContext.attemptCorrelationId;
116
+ }
117
+ return metricTags;
118
+ };
104
119
  const createRTCStatsReport = (stats, outputFormat = 'console') => {
105
120
  /**
106
121
  * constructs a report of the RTC stats for logging to the console or returns as JSON
@@ -1 +1 @@
1
- {"version":3,"file":"ClientMetrics.js","sourceRoot":"","sources":["../../../src/lib/ClientMetrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientMetrics.js","sourceRoot":"","sources":["../../../src/lib/ClientMetrics.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,8 @@ export declare class ClientConnectionMilestoneRecorder {
26
26
  /**
27
27
  * Make the recorder inert and release its buffer. `published` gates
28
28
  * record()/publish()/publishFailure(), so flipping it here stops all further
29
- * recording and publishing. publish() (if it ran) already serialized the
30
- * milestones synchronously, so clearing the buffer afterwards is safe.
29
+ * recording and publishing. publish() (if it ran) already built the metric
30
+ * payloads synchronously, so clearing the buffer afterwards is safe.
31
31
  */
32
32
  private finalize;
33
33
  publishFailure(tags?: ConnectionMilestoneTags): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionMilestones.d.ts","sourceRoot":"","sources":["../../../src/lib/ConnectionMilestones.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAE/F,eAAO,MAAM,yCAAyC,IAAI,CAAC;AAC3D,eAAO,MAAM,oCAAoC,OAAO,CAAC;AAGzD,KAAK,2BAA2B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7D,KAAK,uBAAuB,GAAG,MAAM,CACnC,MAAM,EACN,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAC/C,CAAC;AAQF,UAAU,wCACR,SAAQ,iCAAiC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,qBAAa,iCAAiC;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAE9D,OAAO,CAAC,OAAO,CAIb;IACF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,GAAE,wCAA6C;IAoB3D,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAIlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,uBAAuB;IAgBnD,oBAAoB,CAAC,IAAI,CAAC,EAAE,uBAAuB;IAiB1D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAKT,cAAc,CAAC,IAAI,CAAC,EAAE,uBAAuB;IAS7C,eAAe;IAetB,OAAO,CAAC,OAAO;IA6Bf,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"ConnectionMilestones.d.ts","sourceRoot":"","sources":["../../../src/lib/ConnectionMilestones.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAInB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAE/F,eAAO,MAAM,yCAAyC,IAAI,CAAC;AAC3D,eAAO,MAAM,oCAAoC,OAAO,CAAC;AAGzD,KAAK,2BAA2B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7D,KAAK,uBAAuB,GAAG,MAAM,CACnC,MAAM,EACN,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAC/C,CAAC;AAQF,UAAU,wCACR,SAAQ,iCAAiC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,qBAAa,iCAAiC;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAE9D,OAAO,CAAC,OAAO,CAIb;IACF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,OAAO,GAAE,wCAA6C;IAoB3D,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAIlD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,uBAAuB;IAgBnD,oBAAoB,CAAC,IAAI,CAAC,EAAE,uBAAuB;IAiB1D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAKT,cAAc,CAAC,IAAI,CAAC,EAAE,uBAAuB;IAS7C,eAAe;IAetB,OAAO,CAAC,OAAO;IA0Cf,OAAO,CAAC,SAAS;CAGlB"}
@@ -58,8 +58,8 @@ class ClientConnectionMilestoneRecorder {
58
58
  /**
59
59
  * Make the recorder inert and release its buffer. `published` gates
60
60
  * record()/publish()/publishFailure(), so flipping it here stops all further
61
- * recording and publishing. publish() (if it ran) already serialized the
62
- * milestones synchronously, so clearing the buffer afterwards is safe.
61
+ * recording and publishing. publish() (if it ran) already built the metric
62
+ * payloads synchronously, so clearing the buffer afterwards is safe.
63
63
  */
64
64
  finalize() {
65
65
  this.published = true;
@@ -89,9 +89,20 @@ class ClientConnectionMilestoneRecorder {
89
89
  return;
90
90
  }
91
91
  this.published = true;
92
- const serializedMilestones = JSON.stringify(this.milestones);
93
- const metricTags = sanitizeMetricTags(Object.assign(Object.assign(Object.assign({}, tags), this.context), { publishReason: reason, attemptDurationMs: this.elapsedMs(), milestoneCount: this.milestones.length, connectionMilestoneSampleRatio: this.sampleRatio, slowConnectionThresholdMs: this.slowConnectionThresholdMs, wasSampled: this.sampled ? 1 : 0, milestones: serializedMilestones }));
94
- void (0, ClientMetrics_1.sendClientMetric)(ClientMetrics_1.ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONES, '1', metricTags);
92
+ const summaryTags = sanitizeMetricTags(Object.assign(Object.assign(Object.assign({}, tags), this.context), { publishReason: reason, attemptDurationMs: this.elapsedMs(), milestoneCount: this.milestones.length, connectionMilestoneSampleRatio: this.sampleRatio, slowConnectionThresholdMs: this.slowConnectionThresholdMs, wasSampled: this.sampled ? 1 : 0 }));
93
+ const metrics = [
94
+ {
95
+ name: ClientMetrics_1.ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONES,
96
+ value: '1',
97
+ tags: summaryTags,
98
+ },
99
+ ...this.milestones.map((milestone, index) => ({
100
+ name: ClientMetrics_1.ClientMetricMeasurement.CLIENT_METRIC_MEASUREMENT_CONNECTION_MILESTONE,
101
+ value: milestone.elapsedMs,
102
+ tags: sanitizeMetricTags(Object.assign(Object.assign(Object.assign({}, this.context), { publishReason: reason, milestone: milestone.name, sequence: index }), milestone.tags)),
103
+ })),
104
+ ];
105
+ void (0, ClientMetrics_1.sendClientMetrics)(metrics);
95
106
  }
96
107
  elapsedMs() {
97
108
  return Math.max(0, Math.round(this.now() - this.attemptStartedAtMs));
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionMilestones.js","sourceRoot":"","sources":["../../../src/lib/ConnectionMilestones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionMilestones.js","sourceRoot":"","sources":["../../../src/lib/ConnectionMilestones.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ exports.DEFAULT_API_BASE_URL = 'https://api.anam.ai';
9
9
  exports.DEFAULT_API_VERSION = '/v1'; // include the leading slash
10
10
  exports.CLIENT_METADATA = {
11
11
  client: 'js-sdk',
12
- version: '4.17.0',
12
+ version: '4.18.0',
13
13
  };
14
14
  // Retry policy for startSession. Applied to transient failures only
15
15
  // (network errors and 5xx responses); 4xx responses are never retried.
@@ -13,12 +13,33 @@ export declare class SignallingClient {
13
13
  private sendingBuffer;
14
14
  private wsConnectionAttempts;
15
15
  private socket;
16
+ private permanentlyClosed;
17
+ private iceRestartReconnectInProgress;
16
18
  private heartBeatIntervalRef;
19
+ private reconnectTimer;
17
20
  private apiGatewayConfig;
18
21
  private connectionMilestones;
19
22
  constructor(sessionId: string, options: SignallingClientOptions, publicEventEmitter: PublicEventEmitter, internalEventEmitter: InternalEventEmitter, apiGatewayConfig?: ApiGatewayConfig, connectionMilestones?: ClientConnectionMilestoneRecorder);
20
23
  stop(): void;
21
24
  connect(): WebSocket;
25
+ /**
26
+ * Force a fresh signalling socket for an ICE restart. A network switch can
27
+ * leave the existing socket half-open (readyState stays OPEN with no 'close'
28
+ * event), so a restart offer sent on it is silently dropped. Detach the stale
29
+ * socket's handlers so its eventual close does not drive the reconnect backoff,
30
+ * drop it, and open a new connection. While the new network path is still dead,
31
+ * use an ICE-restart-specific retry budget so signalling does not terminally
32
+ * close before StreamingClient's websocket-open wait can time out and retry.
33
+ */
34
+ reconnectForIceRestart(): void;
35
+ /**
36
+ * Ends the ICE-restart reconnect episode: subsequent closes use the default
37
+ * retry budget again. Called by StreamingClient when the restart succeeds,
38
+ * is cancelled, or exhausts its attempts.
39
+ */
40
+ endIceRestartReconnect(): void;
41
+ isConnected(): boolean;
42
+ isPermanentlyClosed(): boolean;
22
43
  sendOffer(localDescription: RTCSessionDescription): Promise<void>;
23
44
  sendIceCandidate(candidate: RTCIceCandidate): Promise<void>;
24
45
  private sendSignalMessage;
@@ -27,7 +48,9 @@ export declare class SignallingClient {
27
48
  sendAgentAudioInputEnd(): void;
28
49
  private closeSocket;
29
50
  private onOpen;
51
+ private clearReconnectTimer;
30
52
  private onClose;
53
+ private getMaxReconnectionAttempts;
31
54
  private onError;
32
55
  private flushSendingBuffer;
33
56
  private onMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"SignallingClient.d.ts","sourceRoot":"","sources":["../../../src/modules/SignallingClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAKL,uBAAuB,EAEvB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAKxF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,oBAAoB,CAAgD;gBAG1E,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,oBAAoB,CAAC,EAAE,iCAAiC;IAmEnD,IAAI;IAKJ,OAAO,IAAI,SAAS;IAWd,SAAS,CAAC,gBAAgB,EAAE,qBAAqB;IAajD,gBAAgB,CAAC,SAAS,EAAE,eAAe;IASxD,OAAO,CAAC,iBAAiB;IAeZ,eAAe,CAAC,OAAO,EAAE,wBAAwB;IASvD,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAS1D,sBAAsB,IAAI,IAAI;IASrC,OAAO,CAAC,WAAW;YAWL,MAAM;YAsBN,OAAO;IAoCrB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,kBAAkB;YAcZ,SAAS;IAQvB,OAAO,CAAC,sBAAsB;CA4B/B"}
1
+ {"version":3,"file":"SignallingClient.d.ts","sourceRoot":"","sources":["../../../src/modules/SignallingClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAKL,uBAAuB,EAEvB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AASxF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,6BAA6B,CAAS;IAC9C,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,oBAAoB,CAAgD;gBAG1E,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,oBAAoB,CAAC,EAAE,iCAAiC;IAmEnD,IAAI;IAKJ,OAAO,IAAI,SAAS;IAmB3B;;;;;;;;OAQG;IACI,sBAAsB,IAAI,IAAI;IA8BrC;;;;OAIG;IACI,sBAAsB,IAAI,IAAI;IAI9B,WAAW,IAAI,OAAO;IAItB,mBAAmB,IAAI,OAAO;IAIxB,SAAS,CAAC,gBAAgB,EAAE,qBAAqB;IAajD,gBAAgB,CAAC,SAAS,EAAE,eAAe;IASxD,OAAO,CAAC,iBAAiB;IAeZ,eAAe,CAAC,OAAO,EAAE,wBAAwB;IASvD,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAS1D,sBAAsB,IAAI,IAAI;IASrC,OAAO,CAAC,WAAW;YAaL,MAAM;IA0BpB,OAAO,CAAC,mBAAmB;YAOb,OAAO;IA6CrB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,kBAAkB;YAcZ,SAAS;IAQvB,OAAO,CAAC,sBAAsB;CA4B/B"}
@@ -13,6 +13,10 @@ exports.SignallingClient = void 0;
13
13
  const types_1 = require("../types");
14
14
  const DEFAULT_HEARTBEAT_INTERVAL_SECONDS = 5;
15
15
  const DEFAULT_WS_RECONNECTION_ATTEMPTS = 5;
16
+ // Long enough to cover StreamingClient's full restart envelope:
17
+ // 3 attempts * (5s websocket-open wait + 3s restart watchdog) = 24s.
18
+ // With 100ms linear backoff this keeps signalling non-terminal for ~30s.
19
+ const ICE_RESTART_WS_RECONNECTION_ATTEMPTS = 24;
16
20
  class SignallingClient {
17
21
  constructor(sessionId, options, publicEventEmitter, internalEventEmitter, apiGatewayConfig, connectionMilestones) {
18
22
  var _a, _b, _c, _d, _e;
@@ -20,7 +24,10 @@ class SignallingClient {
20
24
  this.sendingBuffer = [];
21
25
  this.wsConnectionAttempts = 0;
22
26
  this.socket = null;
27
+ this.permanentlyClosed = false;
28
+ this.iceRestartReconnectInProgress = false;
23
29
  this.heartBeatIntervalRef = null;
30
+ this.reconnectTimer = null;
24
31
  this.publicEventEmitter = publicEventEmitter;
25
32
  this.internalEventEmitter = internalEventEmitter;
26
33
  this.apiGatewayConfig = apiGatewayConfig;
@@ -81,14 +88,73 @@ class SignallingClient {
81
88
  }
82
89
  connect() {
83
90
  var _a;
91
+ this.clearReconnectTimer();
84
92
  (_a = this.connectionMilestones) === null || _a === void 0 ? void 0 : _a.record('websocket_connecting', {
85
93
  attemptNumber: this.wsConnectionAttempts + 1,
86
94
  });
87
- this.socket = new WebSocket(this.url.href);
88
- this.socket.onopen = this.onOpen.bind(this);
89
- this.socket.onclose = this.onClose.bind(this);
90
- this.socket.onerror = this.onError.bind(this);
91
- return this.socket;
95
+ const socket = new WebSocket(this.url.href);
96
+ this.socket = socket;
97
+ socket.onopen = () => {
98
+ void this.onOpen(socket);
99
+ };
100
+ socket.onclose = (event) => {
101
+ void this.onClose(socket, event);
102
+ };
103
+ socket.onerror = (event) => {
104
+ this.onError(socket, event);
105
+ };
106
+ return socket;
107
+ }
108
+ /**
109
+ * Force a fresh signalling socket for an ICE restart. A network switch can
110
+ * leave the existing socket half-open (readyState stays OPEN with no 'close'
111
+ * event), so a restart offer sent on it is silently dropped. Detach the stale
112
+ * socket's handlers so its eventual close does not drive the reconnect backoff,
113
+ * drop it, and open a new connection. While the new network path is still dead,
114
+ * use an ICE-restart-specific retry budget so signalling does not terminally
115
+ * close before StreamingClient's websocket-open wait can time out and retry.
116
+ */
117
+ reconnectForIceRestart() {
118
+ if (this.isPermanentlyClosed()) {
119
+ return;
120
+ }
121
+ this.clearReconnectTimer();
122
+ if (this.socket) {
123
+ this.socket.onopen = null;
124
+ this.socket.onclose = null;
125
+ this.socket.onerror = null;
126
+ this.socket.onmessage = null;
127
+ try {
128
+ this.socket.close();
129
+ }
130
+ catch (err) {
131
+ // A half-open socket may throw on close; the reconnect proceeds regardless.
132
+ console.warn('SignallingClient - reconnectForIceRestart: error closing stale socket', err);
133
+ }
134
+ this.socket = null;
135
+ }
136
+ if (this.heartBeatIntervalRef) {
137
+ clearInterval(this.heartBeatIntervalRef);
138
+ this.heartBeatIntervalRef = null;
139
+ }
140
+ this.wsConnectionAttempts = 0;
141
+ this.iceRestartReconnectInProgress = true;
142
+ this.connect();
143
+ }
144
+ /**
145
+ * Ends the ICE-restart reconnect episode: subsequent closes use the default
146
+ * retry budget again. Called by StreamingClient when the restart succeeds,
147
+ * is cancelled, or exhausts its attempts.
148
+ */
149
+ endIceRestartReconnect() {
150
+ this.iceRestartReconnectInProgress = false;
151
+ }
152
+ isConnected() {
153
+ var _a;
154
+ return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;
155
+ }
156
+ isPermanentlyClosed() {
157
+ return this.permanentlyClosed || this.stopSignal;
92
158
  }
93
159
  sendOffer(localDescription) {
94
160
  return __awaiter(this, void 0, void 0, function* () {
@@ -155,6 +221,8 @@ class SignallingClient {
155
221
  this.sendSignalMessage(message);
156
222
  }
157
223
  closeSocket() {
224
+ this.clearReconnectTimer();
225
+ this.iceRestartReconnectInProgress = false;
158
226
  if (this.socket) {
159
227
  this.socket.close();
160
228
  this.socket = null;
@@ -164,31 +232,44 @@ class SignallingClient {
164
232
  this.heartBeatIntervalRef = null;
165
233
  }
166
234
  }
167
- onOpen() {
235
+ onOpen(socket) {
168
236
  return __awaiter(this, void 0, void 0, function* () {
169
237
  var _a;
170
- if (!this.socket) {
171
- throw new Error('SignallingClient - onOpen: socket is null');
238
+ if (this.socket !== socket) {
239
+ return;
172
240
  }
173
241
  try {
174
242
  (_a = this.connectionMilestones) === null || _a === void 0 ? void 0 : _a.record('websocket_open', {
175
243
  attemptNumber: this.wsConnectionAttempts + 1,
176
244
  });
177
245
  this.wsConnectionAttempts = 0;
246
+ // Keep iceRestartReconnectInProgress (the extended retry budget) until
247
+ // StreamingClient ends the episode: a socket that opens briefly and drops
248
+ // again mid-restart must not fall back to the short default budget.
178
249
  this.flushSendingBuffer();
179
- this.socket.onmessage = this.onMessage.bind(this);
250
+ socket.onmessage = this.onMessage.bind(this);
180
251
  this.startSendingHeartBeats();
181
252
  this.internalEventEmitter.emit(types_1.InternalEvent.WEB_SOCKET_OPEN);
182
253
  }
183
254
  catch (e) {
184
255
  console.error('SignallingClient - onOpen: error in onOpen', e);
185
256
  this.publicEventEmitter.emit(types_1.AnamEvent.CONNECTION_CLOSED, types_1.ConnectionClosedCode.SIGNALLING_CLIENT_CONNECTION_FAILURE);
257
+ this.permanentlyClosed = true;
186
258
  }
187
259
  });
188
260
  }
189
- onClose(event) {
261
+ clearReconnectTimer() {
262
+ if (this.reconnectTimer) {
263
+ clearTimeout(this.reconnectTimer);
264
+ this.reconnectTimer = null;
265
+ }
266
+ }
267
+ onClose(socket, event) {
190
268
  return __awaiter(this, void 0, void 0, function* () {
191
269
  var _a, _b, _c;
270
+ if (this.socket !== socket) {
271
+ return;
272
+ }
192
273
  (_a = this.connectionMilestones) === null || _a === void 0 ? void 0 : _a.record('websocket_closed', {
193
274
  attemptNumber: this.wsConnectionAttempts + 1,
194
275
  closeCode: event === null || event === void 0 ? void 0 : event.code,
@@ -198,18 +279,22 @@ class SignallingClient {
198
279
  if (this.stopSignal) {
199
280
  return;
200
281
  }
201
- if (this.wsConnectionAttempts <= this.maxWsReconnectionAttempts) {
282
+ const maxReconnectionAttempts = this.getMaxReconnectionAttempts();
283
+ if (this.wsConnectionAttempts <= maxReconnectionAttempts) {
202
284
  const retryDelayMs = 100 * this.wsConnectionAttempts;
203
285
  (_b = this.connectionMilestones) === null || _b === void 0 ? void 0 : _b.record('websocket_retry_scheduled', {
204
286
  attemptNumber: this.wsConnectionAttempts + 1,
205
287
  delayMs: retryDelayMs,
206
288
  });
207
289
  this.socket = null;
208
- setTimeout(() => {
290
+ this.clearReconnectTimer();
291
+ this.reconnectTimer = setTimeout(() => {
292
+ this.reconnectTimer = null;
209
293
  this.connect();
210
294
  }, retryDelayMs);
211
295
  }
212
296
  else {
297
+ this.clearReconnectTimer();
213
298
  if (this.heartBeatIntervalRef) {
214
299
  clearInterval(this.heartBeatIntervalRef);
215
300
  this.heartBeatIntervalRef = null;
@@ -219,12 +304,20 @@ class SignallingClient {
219
304
  closeCode: event === null || event === void 0 ? void 0 : event.code,
220
305
  });
221
306
  this.publicEventEmitter.emit(types_1.AnamEvent.CONNECTION_CLOSED, types_1.ConnectionClosedCode.SIGNALLING_CLIENT_CONNECTION_FAILURE);
307
+ this.iceRestartReconnectInProgress = false;
308
+ this.permanentlyClosed = true;
222
309
  }
223
310
  });
224
311
  }
225
- onError(event) {
312
+ getMaxReconnectionAttempts() {
313
+ if (!this.iceRestartReconnectInProgress) {
314
+ return this.maxWsReconnectionAttempts;
315
+ }
316
+ return Math.max(this.maxWsReconnectionAttempts, ICE_RESTART_WS_RECONNECTION_ATTEMPTS);
317
+ }
318
+ onError(socket, event) {
226
319
  var _a;
227
- if (this.stopSignal) {
320
+ if (this.stopSignal || this.socket !== socket) {
228
321
  return;
229
322
  }
230
323
  (_a = this.connectionMilestones) === null || _a === void 0 ? void 0 : _a.record('websocket_error', {
@@ -1 +1 @@
1
- {"version":3,"file":"SignallingClient.js","sourceRoot":"","sources":["../../../src/modules/SignallingClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignallingClient.js","sourceRoot":"","sources":["../../../src/modules/SignallingClient.ts"],"names":[],"mappings":"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"}