aurival 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Aurival bot SDK.
3
+ *
4
+ * Declare commands, call run(), and the SDK holds the socket:
5
+ *
6
+ * ```ts
7
+ * import { Bot } from "aurival";
8
+ *
9
+ * const bot = new Bot();
10
+ *
11
+ * bot.command("ping", async (ctx) => {
12
+ * await ctx.reply("pong");
13
+ * });
14
+ *
15
+ * bot.run();
16
+ * ```
17
+ *
18
+ * Everything a developer can name is exported here. The Python package mirrors
19
+ * this list file for file (SDK-7), so a name missing here becomes a permanent
20
+ * asymmetry: adding an export later is free, removing one is a break.
21
+ */
22
+ export { Bot } from './bot.js';
23
+ export { APIError, AccessTokenExpired, AccessTokenInvalid, AckUnknownEvent, AssertionExpired, AssertionReplay, AurivalAPIError, AurivalError, AuthenticationError, BadAssertion, BadProof, BadPublicKey, BotLinkNotAllowed, BotPlaygroundOnly, BotSuspended, CODE_CLASSES, DOC_URL_PREFIX, EmptyText, FrameInvalid, FrameTooLarge, IdempotencyKeyInvalid, IdempotencyKeyReused, IdleTimeout, InternalError, InvalidCommandName, InvalidJSON, InvalidRequestError, KeyAlreadyPaired, KeyRevoked, NotFound, PairRateLimited, ParameterInvalid, ParameterMissing, PermissionDeniedError, ProtocolError, RateLimitError, RateLimited, ServerRestarting, SessionSuperseded, SyncRateLimited, TYPE_CLASSES, TextTooLong, TooManyProblems, TransportError, UnknownOperation, UnknownParameter, fromEnvelope, } from './errors.js';
24
+ export { Context, Event } from './events.js';
25
+ export type { Chat, Command, User } from './events.js';
26
+ export { BYE_ACTIONS, ByeAction, actionForBye } from './socket.js';
27
+ export declare const version = "0.1.0";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Aurival bot SDK.
3
+ *
4
+ * Declare commands, call run(), and the SDK holds the socket:
5
+ *
6
+ * ```ts
7
+ * import { Bot } from "aurival";
8
+ *
9
+ * const bot = new Bot();
10
+ *
11
+ * bot.command("ping", async (ctx) => {
12
+ * await ctx.reply("pong");
13
+ * });
14
+ *
15
+ * bot.run();
16
+ * ```
17
+ *
18
+ * Everything a developer can name is exported here. The Python package mirrors
19
+ * this list file for file (SDK-7), so a name missing here becomes a permanent
20
+ * asymmetry: adding an export later is free, removing one is a break.
21
+ */
22
+ export { Bot } from './bot.js';
23
+ export { APIError, AccessTokenExpired, AccessTokenInvalid, AckUnknownEvent, AssertionExpired, AssertionReplay, AurivalAPIError, AurivalError, AuthenticationError, BadAssertion, BadProof, BadPublicKey, BotLinkNotAllowed, BotPlaygroundOnly, BotSuspended, CODE_CLASSES, DOC_URL_PREFIX, EmptyText, FrameInvalid, FrameTooLarge, IdempotencyKeyInvalid, IdempotencyKeyReused, IdleTimeout, InternalError, InvalidCommandName, InvalidJSON, InvalidRequestError, KeyAlreadyPaired, KeyRevoked, NotFound, PairRateLimited, ParameterInvalid, ParameterMissing, PermissionDeniedError, ProtocolError, RateLimitError, RateLimited, ServerRestarting, SessionSuperseded, SyncRateLimited, TYPE_CLASSES, TextTooLong, TooManyProblems, TransportError, UnknownOperation, UnknownParameter, fromEnvelope, } from './errors.js';
24
+ export { Context, Event } from './events.js';
25
+ export { BYE_ACTIONS, ByeAction, actionForBye } from './socket.js';
26
+ export const version = '0.1.0';
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The live connection: `hello`, heartbeat, dispatch, acks, `problem`/`bye`
3
+ * handling, reconnect (SOCKET-V1, DECISIONS SDK-23..28, SDK-39).
4
+ *
5
+ * There are no WebSocket close codes in this API — every close is 1000, and a
6
+ * close with no `bye` is a network fault, never a designed signal. The `bye`
7
+ * payload is the only error channel; never branch on a close code.
8
+ */
9
+ import { AurivalAPIError } from './errors.js';
10
+ import { Event } from './events.js';
11
+ import type { Auth } from './auth.js';
12
+ import type { HttpClient, Logger } from './http.js';
13
+ export declare const EVENT_COMMAND_INVOKED = "command.invoked";
14
+ export declare const EVENT_BACKLOG_OVERFLOWED = "backlog.overflowed";
15
+ /**
16
+ * A plain frozen object rather than a TS `enum`: `enum` would change the
17
+ * runtime shape of a name the package exports (SDK-7).
18
+ */
19
+ export declare const ByeAction: {
20
+ /** re-exchange, reconnect NOW, no backoff */
21
+ readonly REAUTH_RECONNECT: 'reauth_reconnect';
22
+ /** ONE jittered wait, 1-5s, not escalating */
23
+ readonly SHORT_WAIT_RECONNECT: 'short_wait';
24
+ /** stop; this is a bug, not a blip */
25
+ readonly RAISE: 'raise';
26
+ };
27
+ export type ByeAction = (typeof ByeAction)[keyof typeof ByeAction];
28
+ /**
29
+ * The table, exactly (SOCKET-V1 §4, PLAN.md "The socket, exactly", SDK-39).
30
+ * `frame_invalid`/`unknown_operation`/`ack_unknown_event` are here because they
31
+ * arrive as a `bye` on the fiftieth `problem` (gateway.go's
32
+ * MaxSocketProblemsBeforeBye) — not because a `problem` frame is fatal; a
33
+ * `problem` never is.
34
+ */
35
+ export declare const BYE_ACTIONS: Readonly<Record<string, ByeAction>>;
36
+ /**
37
+ * Unknown code falls back on the ERRORS-V1 `type` (SDK-11 / BA-R24):
38
+ * `api_error` reconnects (a short wait, matching `server_restarting` and
39
+ * `idle_timeout`, its only other members), everything else raises.
40
+ */
41
+ export declare function actionForBye(code: string, errorType: string): ByeAction;
42
+ export interface SocketOptions {
43
+ dispatch: (event: Event) => Promise<void>;
44
+ onProblem: (problem: AurivalAPIError | Event) => void;
45
+ logger?: Logger | undefined;
46
+ seenLimit?: number | undefined;
47
+ backoffBase?: number | undefined;
48
+ backoffCap?: number | undefined;
49
+ shortWaitRange?: readonly [number, number] | undefined;
50
+ jitter?: (() => number) | undefined;
51
+ }
52
+ /**
53
+ * One bot's live connection. `run(signal)` owns reconnect forever, until the
54
+ * signal aborts or a `bye` says the credential itself is dead.
55
+ */
56
+ export declare class Socket {
57
+ #private;
58
+ constructor(http: HttpClient, auth: Auth, options: SocketOptions);
59
+ run(signal: AbortSignal): Promise<void>;
60
+ }
61
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,eAAe,EAIhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEpD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,SAAS;IACpB,6CAA6C;aAC7C,gBAAgB,EAAE,kBAAkB;IACpC,8CAA8C;aAC9C,oBAAoB,EAAE,YAAY;IAClC,sCAAsC;aACtC,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAc3D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAIvE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,KAAK,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CACrC;AAiED;;;GAGG;AACH,qBAAa,MAAM;;IAiBjB,YAAY,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAW/D;IAEK,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD5C;CAmOF"}
package/dist/socket.js ADDED
@@ -0,0 +1,447 @@
1
+ /**
2
+ * The live connection: `hello`, heartbeat, dispatch, acks, `problem`/`bye`
3
+ * handling, reconnect (SOCKET-V1, DECISIONS SDK-23..28, SDK-39).
4
+ *
5
+ * There are no WebSocket close codes in this API — every close is 1000, and a
6
+ * close with no `bye` is a network fault, never a designed signal. The `bye`
7
+ * payload is the only error channel; never branch on a close code.
8
+ */
9
+ import { AuthenticationError, AurivalAPIError, ProtocolError, TransportError, fromEnvelope, } from './errors.js';
10
+ import { Event } from './events.js';
11
+ import { defaultLogger } from './http.js';
12
+ export const EVENT_COMMAND_INVOKED = 'command.invoked';
13
+ export const EVENT_BACKLOG_OVERFLOWED = 'backlog.overflowed';
14
+ /**
15
+ * A plain frozen object rather than a TS `enum`: `enum` would change the
16
+ * runtime shape of a name the package exports (SDK-7).
17
+ */
18
+ export const ByeAction = {
19
+ /** re-exchange, reconnect NOW, no backoff */
20
+ REAUTH_RECONNECT: 'reauth_reconnect',
21
+ /** ONE jittered wait, 1-5s, not escalating */
22
+ SHORT_WAIT_RECONNECT: 'short_wait',
23
+ /** stop; this is a bug, not a blip */
24
+ RAISE: 'raise',
25
+ };
26
+ /**
27
+ * The table, exactly (SOCKET-V1 §4, PLAN.md "The socket, exactly", SDK-39).
28
+ * `frame_invalid`/`unknown_operation`/`ack_unknown_event` are here because they
29
+ * arrive as a `bye` on the fiftieth `problem` (gateway.go's
30
+ * MaxSocketProblemsBeforeBye) — not because a `problem` frame is fatal; a
31
+ * `problem` never is.
32
+ */
33
+ export const BYE_ACTIONS = {
34
+ access_token_expired: ByeAction.REAUTH_RECONNECT,
35
+ key_revoked: ByeAction.RAISE,
36
+ key_already_paired: ByeAction.RAISE,
37
+ access_token_invalid: ByeAction.RAISE,
38
+ session_superseded: ByeAction.RAISE,
39
+ frame_too_large: ByeAction.RAISE,
40
+ frame_invalid: ByeAction.RAISE,
41
+ unknown_operation: ByeAction.RAISE,
42
+ ack_unknown_event: ByeAction.RAISE,
43
+ too_many_problems: ByeAction.RAISE,
44
+ bot_suspended: ByeAction.RAISE,
45
+ server_restarting: ByeAction.SHORT_WAIT_RECONNECT,
46
+ idle_timeout: ByeAction.SHORT_WAIT_RECONNECT,
47
+ };
48
+ /**
49
+ * Unknown code falls back on the ERRORS-V1 `type` (SDK-11 / BA-R24):
50
+ * `api_error` reconnects (a short wait, matching `server_restarting` and
51
+ * `idle_timeout`, its only other members), everything else raises.
52
+ */
53
+ export function actionForBye(code, errorType) {
54
+ const action = BYE_ACTIONS[code];
55
+ if (action !== undefined)
56
+ return action;
57
+ return errorType === 'api_error' ? ByeAction.SHORT_WAIT_RECONNECT : ByeAction.RAISE;
58
+ }
59
+ const DEFAULT_HEARTBEAT_MS = 30_000;
60
+ /** Bridges `ws.onmessage`/`onclose`/`onerror` callbacks into an awaitable queue. */
61
+ class AsyncQueue {
62
+ #items = [];
63
+ #waiters = [];
64
+ push(item) {
65
+ const waiter = this.#waiters.shift();
66
+ if (waiter)
67
+ waiter(item);
68
+ else
69
+ this.#items.push(item);
70
+ }
71
+ next() {
72
+ const item = this.#items.shift();
73
+ if (item !== undefined)
74
+ return Promise.resolve(item);
75
+ return new Promise((resolve) => this.#waiters.push(resolve));
76
+ }
77
+ }
78
+ /** Resolves `'aborted'` the instant `signal` fires, without waiting on `promise`. */
79
+ function raceAbort(promise, signal) {
80
+ if (signal.aborted)
81
+ return Promise.resolve('aborted');
82
+ return new Promise((resolve) => {
83
+ let settled = false;
84
+ const onAbort = () => {
85
+ if (settled)
86
+ return;
87
+ settled = true;
88
+ resolve('aborted');
89
+ };
90
+ signal.addEventListener('abort', onAbort, { once: true });
91
+ promise.then((value) => {
92
+ if (settled)
93
+ return;
94
+ settled = true;
95
+ signal.removeEventListener('abort', onAbort);
96
+ resolve(value);
97
+ });
98
+ });
99
+ }
100
+ /** `true` if `signal` fired during the wait — a SIGINT must never sit behind a sleep. */
101
+ function interruptibleSleep(ms, signal) {
102
+ if (signal.aborted)
103
+ return Promise.resolve(true);
104
+ return new Promise((resolve) => {
105
+ const timer = setTimeout(() => {
106
+ cleanup();
107
+ resolve(false);
108
+ }, ms);
109
+ const onAbort = () => {
110
+ cleanup();
111
+ resolve(true);
112
+ };
113
+ function cleanup() {
114
+ clearTimeout(timer);
115
+ signal.removeEventListener('abort', onAbort);
116
+ }
117
+ signal.addEventListener('abort', onAbort, { once: true });
118
+ });
119
+ }
120
+ /**
121
+ * One bot's live connection. `run(signal)` owns reconnect forever, until the
122
+ * signal aborts or a `bye` says the credential itself is dead.
123
+ */
124
+ export class Socket {
125
+ #http;
126
+ #auth;
127
+ #dispatch;
128
+ #onProblem;
129
+ #logger;
130
+ #seenLimit;
131
+ #backoffBase;
132
+ #backoffCap;
133
+ #shortWaitRange;
134
+ #jitter;
135
+ #seen = new Map();
136
+ #inFlight = new Map();
137
+ #generation = 0;
138
+ #backoffN = 0;
139
+ constructor(http, auth, options) {
140
+ this.#http = http;
141
+ this.#auth = auth;
142
+ this.#dispatch = options.dispatch;
143
+ this.#onProblem = options.onProblem;
144
+ this.#logger = options.logger ?? defaultLogger();
145
+ this.#seenLimit = options.seenLimit ?? 10_000;
146
+ this.#backoffBase = options.backoffBase ?? 1;
147
+ this.#backoffCap = options.backoffCap ?? 60;
148
+ this.#shortWaitRange = options.shortWaitRange ?? [1, 5];
149
+ this.#jitter = options.jitter ?? Math.random;
150
+ }
151
+ async run(signal) {
152
+ while (!signal.aborted) {
153
+ let token;
154
+ try {
155
+ token = await this.#auth.token();
156
+ }
157
+ catch (err) {
158
+ if (err instanceof AuthenticationError)
159
+ throw err;
160
+ if (err instanceof AurivalAPIError ||
161
+ err instanceof TransportError ||
162
+ err instanceof ProtocolError) {
163
+ if (await this.#sleepBackoff(signal))
164
+ return;
165
+ continue;
166
+ }
167
+ throw err;
168
+ }
169
+ let bye;
170
+ try {
171
+ const ws = await this.#connect(this.#http.gatewayUrl(), token, signal);
172
+ bye = await this.#runConnection(ws, signal);
173
+ }
174
+ catch {
175
+ bye = null;
176
+ if (signal.aborted)
177
+ return;
178
+ if (await this.#sleepBackoff(signal))
179
+ return;
180
+ continue;
181
+ }
182
+ if (signal.aborted)
183
+ return;
184
+ if (bye === null) {
185
+ // A close with no `bye`: a network fault, never a designed signal
186
+ // (SOCKET-V1 §1). Escalating backoff, unbounded.
187
+ if (await this.#sleepBackoff(signal))
188
+ return;
189
+ continue;
190
+ }
191
+ const action = actionForBye(bye.code, bye.type);
192
+ if (action === ByeAction.RAISE)
193
+ throw bye;
194
+ if (action === ByeAction.REAUTH_RECONNECT) {
195
+ try {
196
+ await this.#auth.refresh();
197
+ }
198
+ catch (err) {
199
+ if (err instanceof AuthenticationError)
200
+ throw err;
201
+ // The exchange itself is unwell (e.g. `/v1/token` 5xx): keep
202
+ // backing off, never raise (SDK-26).
203
+ if (await this.#sleepBackoff(signal))
204
+ return;
205
+ }
206
+ continue; // reconnect NOW — no backoff, "once" per connection
207
+ }
208
+ if (action === ByeAction.SHORT_WAIT_RECONNECT) {
209
+ if (await this.#shortWait(signal))
210
+ return;
211
+ continue;
212
+ }
213
+ }
214
+ }
215
+ #connect(url, token, signal) {
216
+ return new Promise((resolve, reject) => {
217
+ if (signal.aborted) {
218
+ reject(new Error('aborted'));
219
+ return;
220
+ }
221
+ const ws = new WebSocket(url, { headers: { Authorization: `Bearer ${token}` } });
222
+ let settled = false;
223
+ const cleanup = () => {
224
+ ws.onopen = null;
225
+ ws.onerror = null;
226
+ signal.removeEventListener('abort', onAbort);
227
+ };
228
+ const onAbort = () => {
229
+ if (settled)
230
+ return;
231
+ settled = true;
232
+ cleanup();
233
+ try {
234
+ ws.close();
235
+ }
236
+ catch {
237
+ // ignore — we're abandoning this connection anyway
238
+ }
239
+ reject(new Error('aborted'));
240
+ };
241
+ ws.onopen = () => {
242
+ if (settled)
243
+ return;
244
+ settled = true;
245
+ cleanup();
246
+ resolve(ws);
247
+ };
248
+ // Never log or attach the event here (SDK-33): a refused handshake is
249
+ // ordinary (a token that aged out during a reconnect does it), and this
250
+ // request carries an Authorization header.
251
+ ws.onerror = () => {
252
+ if (settled)
253
+ return;
254
+ settled = true;
255
+ cleanup();
256
+ reject(new Error('websocket connect failed'));
257
+ };
258
+ signal.addEventListener('abort', onAbort, { once: true });
259
+ });
260
+ }
261
+ /**
262
+ * Reads frames until the socket closes. Returns the `bye` error if one
263
+ * arrived, else `null` — a network-fault close, per SOCKET-V1 §1.
264
+ */
265
+ async #runConnection(ws, signal) {
266
+ this.#generation += 1;
267
+ const generation = this.#generation;
268
+ const queue = new AsyncQueue();
269
+ ws.onmessage = (ev) => {
270
+ const data = ev.data;
271
+ queue.push({ kind: 'message', data: typeof data === 'string' ? data : null });
272
+ };
273
+ ws.onclose = () => queue.push({ kind: 'close' });
274
+ ws.onerror = () => queue.push({ kind: 'error' });
275
+ let stopHeartbeat = null;
276
+ try {
277
+ for (;;) {
278
+ const item = await raceAbort(queue.next(), signal);
279
+ if (item === 'aborted') {
280
+ try {
281
+ ws.close();
282
+ }
283
+ catch {
284
+ // ignore
285
+ }
286
+ return null;
287
+ }
288
+ if (item.kind === 'close' || item.kind === 'error')
289
+ return null;
290
+ if (item.data === null)
291
+ continue; // not a text frame; ignored, never fatal
292
+ let raw;
293
+ try {
294
+ raw = JSON.parse(item.data);
295
+ }
296
+ catch {
297
+ continue;
298
+ }
299
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
300
+ continue;
301
+ const frame = raw;
302
+ const op = frame['op'];
303
+ const dRaw = frame['d'];
304
+ const d = typeof dRaw === 'object' && dRaw !== null && !Array.isArray(dRaw)
305
+ ? dRaw
306
+ : {};
307
+ if (op === 'hello') {
308
+ const intervalMs = d['heartbeat_interval_ms'];
309
+ const heartbeatMs = typeof intervalMs === 'number' && intervalMs > 0 ? intervalMs : DEFAULT_HEARTBEAT_MS;
310
+ // We reached a live session: the next fault is a fresh problem, not
311
+ // a continuation of the last one.
312
+ this.#backoffN = 0;
313
+ stopHeartbeat?.();
314
+ stopHeartbeat = this.#startHeartbeat(ws, heartbeatMs);
315
+ }
316
+ else if (op === 'heartbeat_ack') {
317
+ // ignore
318
+ }
319
+ else if (op === 'event') {
320
+ await this.#handleEvent(ws, d, generation);
321
+ }
322
+ else if (op === 'problem') {
323
+ const exc = fromEnvelope(d);
324
+ this.#logger.warn(`bot-api problem: ${exc.code}: ${exc.message}`);
325
+ this.#onProblem(exc);
326
+ }
327
+ else if (op === 'bye') {
328
+ const exc = fromEnvelope(d);
329
+ this.#logger.warn(`bot-api bye: ${exc.code}: ${exc.message}`);
330
+ return exc;
331
+ }
332
+ // else: unknown op. Ignored, never fatal (CONTRACT-V1 §3, §9).
333
+ }
334
+ }
335
+ finally {
336
+ stopHeartbeat?.();
337
+ }
338
+ }
339
+ /** Its own timer, never on the dispatch path — a slow handler must not starve it. */
340
+ #startHeartbeat(ws, intervalMs) {
341
+ let stopped = false;
342
+ let timer = null;
343
+ const tick = () => {
344
+ if (stopped)
345
+ return;
346
+ if (ws.readyState !== WebSocket.OPEN)
347
+ return; // the read loop will notice
348
+ try {
349
+ ws.send(JSON.stringify({ op: 'heartbeat', d: {} }));
350
+ }
351
+ catch {
352
+ return; // connection is gone
353
+ }
354
+ timer = setTimeout(tick, intervalMs);
355
+ };
356
+ timer = setTimeout(tick, intervalMs);
357
+ return () => {
358
+ stopped = true;
359
+ if (timer !== null)
360
+ clearTimeout(timer);
361
+ };
362
+ }
363
+ async #handleEvent(ws, d, generation) {
364
+ const event = Event.fromFrame(d);
365
+ if (!event.id)
366
+ return;
367
+ if (this.#inFlight.has(event.id))
368
+ return; // never dispatch an id whose handler is in flight
369
+ if (this.#seen.has(event.id)) {
370
+ // Already ran to completion — possibly on a prior connection whose ack
371
+ // got dropped when it died mid-flight, and this is that same event
372
+ // redelivered. Don't run the handler again; a duplicate ack of a real
373
+ // event is harmless, and skipping it here would leave the server
374
+ // redelivering forever.
375
+ await this.#ack(ws, event.id, generation);
376
+ return;
377
+ }
378
+ if (event.type === EVENT_BACKLOG_OVERFLOWED) {
379
+ // An event, not a problem — it goes to the log and the hook, never to a
380
+ // handler (SDK-28). NOT acked: it has no durable row, so acking it
381
+ // would earn `ack_unknown_event` right back.
382
+ this.#logger.warn(`backlog overflowed: dropped=${String(event.data['dropped_count'])} resume_sequence=${String(event.data['resume_sequence'])}`);
383
+ this.#onProblem(event);
384
+ this.#markSeen(event.id);
385
+ return;
386
+ }
387
+ if (event.type !== EVENT_COMMAND_INVOKED) {
388
+ // Unknown event type: ignored, never fatal — the first additive type
389
+ // must not break the fleet. Unlike `backlog.overflowed` this is
390
+ // presumed durable, so it is acked to keep the stream moving rather
391
+ // than redelivered forever (SDK-40).
392
+ this.#logger.debug(`ignoring unknown event type ${event.type}`);
393
+ this.#markSeen(event.id);
394
+ await this.#ack(ws, event.id, generation);
395
+ return;
396
+ }
397
+ const handled = this.#runHandler(ws, event, generation);
398
+ this.#inFlight.set(event.id, handled);
399
+ handled.catch(() => {
400
+ // The handler is expected not to throw (bot.ts wraps handler calls);
401
+ // if it does anyway, the ack above already ran in the `finally`.
402
+ });
403
+ }
404
+ async #runHandler(ws, event, generation) {
405
+ try {
406
+ await this.#dispatch(event);
407
+ }
408
+ finally {
409
+ this.#inFlight.delete(event.id);
410
+ this.#markSeen(event.id);
411
+ // Across a reconnect the handler still finishes, but its ack is
412
+ // dropped — redelivery on the new connection covers it (SDK-27).
413
+ if (generation === this.#generation) {
414
+ await this.#ack(ws, event.id, generation);
415
+ }
416
+ }
417
+ }
418
+ async #ack(ws, eventId, generation) {
419
+ if (generation !== this.#generation || ws.readyState !== WebSocket.OPEN)
420
+ return;
421
+ try {
422
+ ws.send(JSON.stringify({ op: 'ack', d: { event_id: eventId } }));
423
+ }
424
+ catch {
425
+ // the connection died under us; redelivery covers it
426
+ }
427
+ }
428
+ #markSeen(eventId) {
429
+ this.#seen.set(eventId, undefined);
430
+ if (this.#seen.size > this.#seenLimit) {
431
+ const oldest = this.#seen.keys().next().value;
432
+ if (oldest !== undefined)
433
+ this.#seen.delete(oldest);
434
+ }
435
+ }
436
+ async #sleepBackoff(signal) {
437
+ const delaySeconds = Math.min(this.#backoffCap, this.#backoffBase * 2 ** this.#backoffN);
438
+ this.#backoffN += 1;
439
+ return interruptibleSleep(this.#jitter() * delaySeconds * 1000, signal);
440
+ }
441
+ async #shortWait(signal) {
442
+ const [lo, hi] = this.#shortWaitRange;
443
+ const delaySeconds = lo + this.#jitter() * (hi - lo);
444
+ return interruptibleSleep(delaySeconds * 1000, signal);
445
+ }
446
+ }
447
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}