@voxevolv/client 0.3.3 → 0.3.4
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 +11 -0
- package/README.md +25 -4
- package/dist/browser/index.js +6 -6
- package/dist/browser/index.js.map +4 -4
- package/dist/browser/index.js.sha384 +1 -1
- package/dist/browser/manifest.json +1 -1
- package/dist/diagnostics.d.ts +61 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +176 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +16 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +304 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
sha384-
|
|
1
|
+
sha384-yB604JoCvhetr2fAopdbmh/TdBzfIw46eWZFlwD/pvd8oD13Hz7KURqMRdjN3cBT
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** Bounded, content-free diagnostics for realtime connection investigations. */
|
|
2
|
+
declare const OPERATIONS: Set<"command_result" | "command_send" | "connection_recovery" | "context_transfer">;
|
|
3
|
+
declare const STATUSES: Set<"acknowledged" | "failed" | "rejected" | "retrying" | "started" | "succeeded" | "timed_out">;
|
|
4
|
+
declare const CONNECTION_STATES: Set<"connected" | "connected_not_ready" | "connecting" | "disconnected" | "failed" | "idle" | "reconnecting" | "resuming">;
|
|
5
|
+
declare const EVENT_TYPES: Set<"client.hello" | "command.ack" | "command.error" | "context.rejected" | "context.update" | "context.updated">;
|
|
6
|
+
export type DiagnosticOperation = typeof OPERATIONS extends Set<infer T> ? T : never;
|
|
7
|
+
export type DiagnosticStatus = typeof STATUSES extends Set<infer T> ? T : never;
|
|
8
|
+
export type DiagnosticConnectionState = typeof CONNECTION_STATES extends Set<infer T> ? T : never;
|
|
9
|
+
export type DiagnosticEventType = typeof EVENT_TYPES extends Set<infer T> ? T : never;
|
|
10
|
+
export interface ClientDiagnosticEntry {
|
|
11
|
+
at_ms: number;
|
|
12
|
+
operation: DiagnosticOperation;
|
|
13
|
+
status: DiagnosticStatus;
|
|
14
|
+
reason?: string;
|
|
15
|
+
message_id?: string;
|
|
16
|
+
connection_id?: string;
|
|
17
|
+
client_seq?: number;
|
|
18
|
+
context_key?: string;
|
|
19
|
+
payload_bytes?: number;
|
|
20
|
+
duration_ms?: number;
|
|
21
|
+
retry_count?: number;
|
|
22
|
+
timeout_ms?: number;
|
|
23
|
+
connection_state?: DiagnosticConnectionState;
|
|
24
|
+
buffered_bytes?: number;
|
|
25
|
+
event_type?: DiagnosticEventType;
|
|
26
|
+
}
|
|
27
|
+
export type ClientDiagnosticInput = Omit<ClientDiagnosticEntry, "at_ms">;
|
|
28
|
+
export interface ClientDiagnosticReport {
|
|
29
|
+
source: "sdk";
|
|
30
|
+
sdk_version: string;
|
|
31
|
+
trigger: string;
|
|
32
|
+
entries: ClientDiagnosticEntry[];
|
|
33
|
+
}
|
|
34
|
+
type DiagnosticBufferOptions = {
|
|
35
|
+
sdkVersion: string;
|
|
36
|
+
limit?: number;
|
|
37
|
+
throttleMs?: number;
|
|
38
|
+
now?: () => number;
|
|
39
|
+
schedule?: (callback: () => void, delayMs: number) => unknown;
|
|
40
|
+
};
|
|
41
|
+
export declare class ClientDiagnosticBuffer {
|
|
42
|
+
private readonly entries;
|
|
43
|
+
private readonly sdkVersion;
|
|
44
|
+
private readonly limit;
|
|
45
|
+
private readonly throttleMs;
|
|
46
|
+
private readonly now;
|
|
47
|
+
private readonly schedule;
|
|
48
|
+
private readonly startedAt;
|
|
49
|
+
private lastReportAt;
|
|
50
|
+
private reporting;
|
|
51
|
+
private pendingReport;
|
|
52
|
+
private pendingReportScheduled;
|
|
53
|
+
constructor(options: DiagnosticBufferOptions);
|
|
54
|
+
record(input: ClientDiagnosticInput): void;
|
|
55
|
+
snapshot(): ClientDiagnosticEntry[];
|
|
56
|
+
flush(trigger: string, send: (report: ClientDiagnosticReport) => Promise<void>): Promise<boolean>;
|
|
57
|
+
private isThrottled;
|
|
58
|
+
private schedulePendingReport;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/** Bounded, content-free diagnostics for realtime connection investigations. */
|
|
2
|
+
const DEFAULT_LIMIT = 128;
|
|
3
|
+
const DEFAULT_THROTTLE_MS = 10_000;
|
|
4
|
+
const OPERATIONS = new Set([
|
|
5
|
+
"context_transfer",
|
|
6
|
+
"command_send",
|
|
7
|
+
"command_result",
|
|
8
|
+
"connection_recovery",
|
|
9
|
+
]);
|
|
10
|
+
const STATUSES = new Set([
|
|
11
|
+
"started",
|
|
12
|
+
"succeeded",
|
|
13
|
+
"failed",
|
|
14
|
+
"retrying",
|
|
15
|
+
"acknowledged",
|
|
16
|
+
"rejected",
|
|
17
|
+
"timed_out",
|
|
18
|
+
]);
|
|
19
|
+
const CONNECTION_STATES = new Set([
|
|
20
|
+
"idle",
|
|
21
|
+
"connecting",
|
|
22
|
+
"connected_not_ready",
|
|
23
|
+
"connected",
|
|
24
|
+
"reconnecting",
|
|
25
|
+
"resuming",
|
|
26
|
+
"disconnected",
|
|
27
|
+
"failed",
|
|
28
|
+
]);
|
|
29
|
+
const EVENT_TYPES = new Set([
|
|
30
|
+
"client.hello",
|
|
31
|
+
"context.update",
|
|
32
|
+
"command.ack",
|
|
33
|
+
"command.error",
|
|
34
|
+
"context.updated",
|
|
35
|
+
"context.rejected",
|
|
36
|
+
]);
|
|
37
|
+
const SAFE_CODE = /^[a-z0-9_.:-]+$/;
|
|
38
|
+
const SAFE_CONTEXT_KEY = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/;
|
|
39
|
+
export class ClientDiagnosticBuffer {
|
|
40
|
+
entries = [];
|
|
41
|
+
sdkVersion;
|
|
42
|
+
limit;
|
|
43
|
+
throttleMs;
|
|
44
|
+
now;
|
|
45
|
+
schedule;
|
|
46
|
+
startedAt;
|
|
47
|
+
lastReportAt = null;
|
|
48
|
+
reporting = false;
|
|
49
|
+
pendingReport = null;
|
|
50
|
+
pendingReportScheduled = false;
|
|
51
|
+
constructor(options) {
|
|
52
|
+
this.sdkVersion = options.sdkVersion;
|
|
53
|
+
this.limit = Math.max(1, Math.min(Math.trunc(options.limit ?? DEFAULT_LIMIT), DEFAULT_LIMIT));
|
|
54
|
+
this.throttleMs = Math.max(0, options.throttleMs ?? DEFAULT_THROTTLE_MS);
|
|
55
|
+
this.now = options.now ?? (() => Date.now());
|
|
56
|
+
this.schedule = options.schedule
|
|
57
|
+
?? ((callback, delayMs) => globalThis.setTimeout(callback, delayMs));
|
|
58
|
+
this.startedAt = this.now();
|
|
59
|
+
}
|
|
60
|
+
record(input) {
|
|
61
|
+
const entry = sanitizeEntry(input, Math.max(this.now() - this.startedAt, 0));
|
|
62
|
+
if (!entry)
|
|
63
|
+
return;
|
|
64
|
+
this.entries.push(entry);
|
|
65
|
+
while (this.entries.length > this.limit)
|
|
66
|
+
this.entries.shift();
|
|
67
|
+
}
|
|
68
|
+
snapshot() {
|
|
69
|
+
return this.entries.map((entry) => ({ ...entry }));
|
|
70
|
+
}
|
|
71
|
+
async flush(trigger, send) {
|
|
72
|
+
const now = this.now();
|
|
73
|
+
if (!SAFE_CODE.test(trigger) || trigger.length > 100)
|
|
74
|
+
return false;
|
|
75
|
+
if (this.entries.length === 0)
|
|
76
|
+
return false;
|
|
77
|
+
if (this.reporting || this.pendingReportScheduled || this.isThrottled(now)) {
|
|
78
|
+
this.pendingReport = { trigger, send };
|
|
79
|
+
this.schedulePendingReport();
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
this.reporting = true;
|
|
83
|
+
try {
|
|
84
|
+
await send({
|
|
85
|
+
source: "sdk",
|
|
86
|
+
sdk_version: this.sdkVersion,
|
|
87
|
+
trigger,
|
|
88
|
+
entries: this.snapshot(),
|
|
89
|
+
});
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Diagnostics are always best effort and must never affect the call.
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
// Anchor throttling after the request settles. The server received the
|
|
98
|
+
// preceding report before this point, so its own throttle has time to expire.
|
|
99
|
+
this.lastReportAt = this.now();
|
|
100
|
+
this.reporting = false;
|
|
101
|
+
this.schedulePendingReport();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
isThrottled(now) {
|
|
105
|
+
return this.lastReportAt !== null && now - this.lastReportAt < this.throttleMs;
|
|
106
|
+
}
|
|
107
|
+
schedulePendingReport() {
|
|
108
|
+
if (this.reporting || this.pendingReport === null || this.pendingReportScheduled)
|
|
109
|
+
return;
|
|
110
|
+
const elapsedMs = this.lastReportAt === null ? this.throttleMs : this.now() - this.lastReportAt;
|
|
111
|
+
const delayMs = Math.max(this.throttleMs - elapsedMs, 0);
|
|
112
|
+
this.pendingReportScheduled = true;
|
|
113
|
+
this.schedule(() => {
|
|
114
|
+
this.pendingReportScheduled = false;
|
|
115
|
+
const pending = this.pendingReport;
|
|
116
|
+
this.pendingReport = null;
|
|
117
|
+
if (pending)
|
|
118
|
+
void this.flush(pending.trigger, pending.send);
|
|
119
|
+
}, delayMs);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function sanitizeEntry(input, atMs) {
|
|
123
|
+
if (!OPERATIONS.has(input.operation) || !STATUSES.has(input.status))
|
|
124
|
+
return null;
|
|
125
|
+
const entry = {
|
|
126
|
+
at_ms: boundedNumber(atMs, 0, 86_400_000) ?? 0,
|
|
127
|
+
operation: input.operation,
|
|
128
|
+
status: input.status,
|
|
129
|
+
};
|
|
130
|
+
const reason = safeString(input.reason, 100, SAFE_CODE);
|
|
131
|
+
const messageId = safeString(input.message_id, 120);
|
|
132
|
+
const connectionId = safeString(input.connection_id, 120);
|
|
133
|
+
const contextKey = safeString(input.context_key, 120, SAFE_CONTEXT_KEY);
|
|
134
|
+
if (reason !== undefined)
|
|
135
|
+
entry.reason = reason;
|
|
136
|
+
if (messageId !== undefined)
|
|
137
|
+
entry.message_id = messageId;
|
|
138
|
+
if (connectionId !== undefined)
|
|
139
|
+
entry.connection_id = connectionId;
|
|
140
|
+
if (contextKey !== undefined)
|
|
141
|
+
entry.context_key = contextKey;
|
|
142
|
+
assignNumber(entry, "client_seq", input.client_seq, 1, Number.MAX_SAFE_INTEGER, true);
|
|
143
|
+
assignNumber(entry, "payload_bytes", input.payload_bytes, 0, 5_242_880, true);
|
|
144
|
+
assignNumber(entry, "duration_ms", input.duration_ms, 0, 3_600_000);
|
|
145
|
+
assignNumber(entry, "retry_count", input.retry_count, 0, 1_000, true);
|
|
146
|
+
assignNumber(entry, "timeout_ms", input.timeout_ms, 1, 3_600_000, true);
|
|
147
|
+
assignNumber(entry, "buffered_bytes", input.buffered_bytes, 0, 1_073_741_824, true);
|
|
148
|
+
if (input.connection_state && CONNECTION_STATES.has(input.connection_state)) {
|
|
149
|
+
entry.connection_state = input.connection_state;
|
|
150
|
+
}
|
|
151
|
+
if (input.event_type && EVENT_TYPES.has(input.event_type)) {
|
|
152
|
+
entry.event_type = input.event_type;
|
|
153
|
+
}
|
|
154
|
+
return entry;
|
|
155
|
+
}
|
|
156
|
+
function safeString(value, maxLength, pattern) {
|
|
157
|
+
if (typeof value !== "string" || value.length === 0 || value.length > maxLength)
|
|
158
|
+
return undefined;
|
|
159
|
+
if (pattern && !pattern.test(value))
|
|
160
|
+
return undefined;
|
|
161
|
+
return value;
|
|
162
|
+
}
|
|
163
|
+
function boundedNumber(value, minimum, maximum, integer = false) {
|
|
164
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
165
|
+
return undefined;
|
|
166
|
+
if (value < minimum || value > maximum)
|
|
167
|
+
return undefined;
|
|
168
|
+
return integer ? Math.trunc(value) : Math.round(value * 10) / 10;
|
|
169
|
+
}
|
|
170
|
+
function assignNumber(entry, key, value, minimum, maximum, integer = false) {
|
|
171
|
+
const normalized = boundedNumber(value, minimum, maximum, integer);
|
|
172
|
+
if (normalized !== undefined) {
|
|
173
|
+
entry[key] = normalized;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,kBAAkB;IAClB,cAAc;IACd,gBAAgB;IAChB,qBAAqB;CACb,CAAC,CAAC;AACZ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,SAAS;IACT,WAAW;IACX,QAAQ;IACR,UAAU;IACV,cAAc;IACd,UAAU;IACV,WAAW;CACH,CAAC,CAAC;AACZ,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM;IACN,YAAY;IACZ,qBAAqB;IACrB,WAAW;IACX,cAAc;IACd,UAAU;IACV,cAAc;IACd,QAAQ;CACA,CAAC,CAAC;AACZ,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,kBAAkB;CACV,CAAC,CAAC;AACZ,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC;AA+CzD,MAAM,OAAO,sBAAsB;IAChB,OAAO,GAA4B,EAAE,CAAC;IACtC,UAAU,CAAS;IACnB,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,GAAG,CAAe;IAClB,QAAQ,CAAqD;IAC7D,SAAS,CAAS;IAC3B,YAAY,GAAkB,IAAI,CAAC;IACnC,SAAS,GAAG,KAAK,CAAC;IAClB,aAAa,GAAyB,IAAI,CAAC;IAC3C,sBAAsB,GAAG,KAAK,CAAC;IAEvC,YAAY,OAAgC;QAC1C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;eAC3B,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAA4B;QACjC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,OAAe,EACf,IAAuD;QAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,OAAO;gBACP,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;aACzB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,uEAAuE;YACvE,8EAA8E;YAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;IACjF,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACzF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;YACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,OAAO;gBAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAA4B,EAAE,IAAY;IAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,MAAM,KAAK,GAA0B;QACnC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;QAC9C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACxE,IAAI,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAChD,IAAI,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS;QAAE,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;IAC7D,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACtF,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9E,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACpE,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC5E,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,SAAiB,EAAE,OAAgB;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,SAAS,CAAC;IAClG,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,OAAe,EACf,OAAe,EACf,OAAO,GAAG,KAAK;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3E,IAAI,KAAK,GAAG,OAAO,IAAI,KAAK,GAAG,OAAO;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CACnB,KAA4B,EAC5B,GAAM,EACN,KAAc,EACd,OAAe,EACf,OAAe,EACf,OAAO,GAAG,KAAK;IAEf,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC5B,KAA4C,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IAClE,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Room } from "livekit-client";
|
|
2
2
|
import { type CommandAckPayload, type ContextUpdate, type ContextUpdatedPayload, type EventGap, type RealtimeEvent } from "./protocol.js";
|
|
3
|
+
import { type DiagnosticOperation } from "./diagnostics.js";
|
|
3
4
|
import { type TranscriptMessage } from "./transcripts.js";
|
|
4
5
|
export { TranscriptStore, type TranscriptMessage } from "./transcripts.js";
|
|
5
6
|
export { CommandError, EventCursor, createClientMessage, isCommandAckPayload, isCommandErrorPayload, isContextRejectedPayload, isContextUpdatePayload, isContextUpdatedPayload, isRealtimeEvent, } from "./protocol.js";
|
|
@@ -18,7 +19,7 @@ export interface SessionCredentials {
|
|
|
18
19
|
access_token: string;
|
|
19
20
|
access_token_expires_at: string;
|
|
20
21
|
}
|
|
21
|
-
export declare const SDK_VERSION = "0.3.
|
|
22
|
+
export declare const SDK_VERSION = "0.3.4";
|
|
22
23
|
type Listener = (event: RealtimeEvent) => void;
|
|
23
24
|
type StateListener = (state: ConnectionState) => void;
|
|
24
25
|
type GapListener = (gap: EventGap) => void;
|
|
@@ -85,8 +86,14 @@ export interface RecoveryEvent {
|
|
|
85
86
|
status: "started" | "succeeded" | "failed";
|
|
86
87
|
strategy: "livekit" | "rejoin";
|
|
87
88
|
attempt: number;
|
|
89
|
+
trigger: RecoveryTrigger;
|
|
90
|
+
operation?: DiagnosticOperation;
|
|
91
|
+
messageId?: string;
|
|
92
|
+
contextKey?: string;
|
|
93
|
+
timeoutMs?: number;
|
|
88
94
|
error?: Error;
|
|
89
95
|
}
|
|
96
|
+
export type RecoveryTrigger = "manual_rejoin" | "livekit_reconnecting" | "livekit_resume_failed" | "livekit_disconnected" | "agent_disconnected" | "worker_replaced" | "context_transfer_timeout" | "context_command_timeout";
|
|
90
97
|
export declare class RealtimeSessionHttpError extends Error {
|
|
91
98
|
readonly status: number;
|
|
92
99
|
readonly code: string | null;
|
|
@@ -159,6 +166,8 @@ export declare class RealtimeSession {
|
|
|
159
166
|
private readonly refreshCredentialsCallback;
|
|
160
167
|
private readonly autoRejoinOptions;
|
|
161
168
|
private readonly lifecycleCredentials;
|
|
169
|
+
private readonly diagnostics;
|
|
170
|
+
private readonly diagnosticReportTimeoutMs;
|
|
162
171
|
constructor(credentials: SessionCredentials, options?: RealtimeSessionOptions);
|
|
163
172
|
static create(options: RealtimeSessionCreateOptions): Promise<RealtimeSession>;
|
|
164
173
|
get state(): ConnectionState;
|
|
@@ -224,12 +233,18 @@ export declare class RealtimeSession {
|
|
|
224
233
|
private publishApplicationAudioTrack;
|
|
225
234
|
private sendHello;
|
|
226
235
|
private sendTrackedCommand;
|
|
236
|
+
private publishCommandAttempt;
|
|
227
237
|
private publishCommand;
|
|
238
|
+
private recordDiagnostic;
|
|
239
|
+
private reliableDataChannelBufferedBytes;
|
|
240
|
+
private flushDiagnostics;
|
|
241
|
+
private postDiagnostics;
|
|
228
242
|
private waitForRemoteAudioTrack;
|
|
229
243
|
private waitForAgentReady;
|
|
230
244
|
private observeReadiness;
|
|
231
245
|
private observeCommandResult;
|
|
232
246
|
private rejectPendingCommands;
|
|
247
|
+
private recordCommandResult;
|
|
233
248
|
private fetchReplay;
|
|
234
249
|
}
|
|
235
250
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EAIL,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAUL,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EAElB,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACL,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,YAAY,GACZ,qBAAqB,GACrB,WAAW,GACX,cAAc,GACd,UAAU,GACV,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,WAAW,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|