@agent-relay/sdk 10.4.0 → 10.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/bin/agent-relay-broker-win32-x64.exe +0 -0
- package/dist/agent-relay.d.ts +23 -0
- package/dist/agent-relay.d.ts.map +1 -1
- package/dist/agent-relay.js +57 -5
- package/dist/agent-relay.js.map +1 -1
- package/dist/delivery/types.d.ts +5 -1
- package/dist/delivery/types.d.ts.map +1 -1
- package/dist/listeners.d.ts.map +1 -1
- package/dist/listeners.js +16 -4
- package/dist/listeners.js.map +1 -1
- package/dist/messaging/event-fanin.d.ts +54 -0
- package/dist/messaging/event-fanin.d.ts.map +1 -0
- package/dist/messaging/event-fanin.js +293 -0
- package/dist/messaging/event-fanin.js.map +1 -0
- package/dist/messaging/index.d.ts +2 -0
- package/dist/messaging/index.d.ts.map +1 -1
- package/dist/messaging/index.js +2 -0
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/normalize.d.ts.map +1 -1
- package/dist/messaging/normalize.js +479 -509
- package/dist/messaging/normalize.js.map +1 -1
- package/dist/messaging/observer-source.d.ts +80 -0
- package/dist/messaging/observer-source.d.ts.map +1 -0
- package/dist/messaging/observer-source.js +502 -0
- package/dist/messaging/observer-source.js.map +1 -0
- package/dist/messaging/relaycast-client.d.ts +2 -1
- package/dist/messaging/relaycast-client.d.ts.map +1 -1
- package/dist/messaging/relaycast-client.js.map +1 -1
- package/dist/messaging/types.d.ts +133 -107
- package/dist/messaging/types.d.ts.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
import { normalizeMessagingEvent } from './normalize.js';
|
|
2
|
+
/**
|
|
3
|
+
* Strip trailing `/` characters in linear time. A regex like `/\/+$/` is a
|
|
4
|
+
* polynomial-ReDoS hazard on attacker-influenced strings (CodeQL flags it), so
|
|
5
|
+
* we walk the tail explicitly instead.
|
|
6
|
+
*/
|
|
7
|
+
function stripTrailingSlashes(value) {
|
|
8
|
+
let end = value.length;
|
|
9
|
+
while (end > 0 && value.charCodeAt(end - 1) === 47 /* '/' */)
|
|
10
|
+
end -= 1;
|
|
11
|
+
return value.slice(0, end);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Build the observer stream URL. The scheme is always `wss:` except for
|
|
15
|
+
* loopback hosts (local self-hosted engines), and the URL never carries the
|
|
16
|
+
* token — authentication travels in the `Authorization` header where the
|
|
17
|
+
* runtime supports it, with an explicit query-token downgrade only when it
|
|
18
|
+
* does not (see {@link createRawObserverStream}).
|
|
19
|
+
*/
|
|
20
|
+
function observerWsUrl(baseUrl, opts = {}) {
|
|
21
|
+
const url = new URL(baseUrl);
|
|
22
|
+
const loopback = url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '[::1]';
|
|
23
|
+
url.protocol = url.protocol === 'http:' && loopback ? 'ws:' : 'wss:';
|
|
24
|
+
url.pathname = `${stripTrailingSlashes(url.pathname)}/v1/ws`;
|
|
25
|
+
if (opts.includeToken !== undefined) {
|
|
26
|
+
url.searchParams.set('token', opts.includeToken);
|
|
27
|
+
}
|
|
28
|
+
return url.toString();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Whether the current runtime is Node.js. Node's `undici` WebSocket accepts an
|
|
32
|
+
* `Authorization` header via its constructor-options extension, so Node never
|
|
33
|
+
* needs to fall back to the token-in-URL convention — keeping the token out of
|
|
34
|
+
* request lines and access logs.
|
|
35
|
+
*/
|
|
36
|
+
function isNodeRuntime() {
|
|
37
|
+
return typeof process !== 'undefined' && !!process.versions?.node;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Raw observer WebSocket with capped-backoff auto-reconnect. Uses the global
|
|
41
|
+
* `WebSocket` (Node >= 22, all browsers), or an injected implementation for
|
|
42
|
+
* runtimes without one (e.g. Node < 22 with the `ws` package). Frames are
|
|
43
|
+
* parsed as JSON and handed to `on.any` handlers verbatim, preserving the
|
|
44
|
+
* top-level `seq`.
|
|
45
|
+
*
|
|
46
|
+
* Authentication: the token is sent as an `Authorization: Bearer` header via
|
|
47
|
+
* the Node (undici) constructor options extension, keeping it out of the URL.
|
|
48
|
+
* Only browser-like runtimes, whose `WebSocket` rejects or silently ignores
|
|
49
|
+
* constructor options per the WHATWG signature, fall back to the server's
|
|
50
|
+
* `?token=` query convention — and only after the constructor throws or two
|
|
51
|
+
* consecutive header attempts close before ever opening, so a single transient
|
|
52
|
+
* network blip on Node can never trigger a persistent token-in-URL downgrade.
|
|
53
|
+
*/
|
|
54
|
+
function createRawObserverStream(baseUrl, token, report, webSocketImpl) {
|
|
55
|
+
const anyHandlers = new Set();
|
|
56
|
+
const openHandlers = new Set();
|
|
57
|
+
const nodeRuntime = isNodeRuntime();
|
|
58
|
+
let socket;
|
|
59
|
+
let closed = false;
|
|
60
|
+
let attempts = 0;
|
|
61
|
+
let timer;
|
|
62
|
+
/** Whether header auth has been observed working (any successful open). */
|
|
63
|
+
let everOpened = false;
|
|
64
|
+
/** Downgrade flag: the runtime cannot send headers, use the query token. */
|
|
65
|
+
let useQueryToken = false;
|
|
66
|
+
/** Consecutive header-auth attempts that closed before opening (browser probe). */
|
|
67
|
+
let headerCloseStreak = 0;
|
|
68
|
+
const scheduleReconnect = (delayOverrideMs) => {
|
|
69
|
+
if (closed || timer !== undefined)
|
|
70
|
+
return;
|
|
71
|
+
attempts += 1;
|
|
72
|
+
const delay = delayOverrideMs ?? Math.min(30_000, 1_000 * 2 ** Math.min(attempts - 1, 5));
|
|
73
|
+
timer = setTimeout(() => {
|
|
74
|
+
timer = undefined;
|
|
75
|
+
open();
|
|
76
|
+
}, delay);
|
|
77
|
+
timer.unref?.();
|
|
78
|
+
};
|
|
79
|
+
const construct = (WebSocketImpl) => {
|
|
80
|
+
if (useQueryToken) {
|
|
81
|
+
return new WebSocketImpl(observerWsUrl(baseUrl, { includeToken: token }));
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
// Node's undici WebSocket accepts { headers } as a non-standard
|
|
85
|
+
// extension; browsers throw on a non-protocols second argument.
|
|
86
|
+
return new WebSocketImpl(observerWsUrl(baseUrl), {
|
|
87
|
+
headers: { authorization: `Bearer ${token}` },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
useQueryToken = true;
|
|
92
|
+
return new WebSocketImpl(observerWsUrl(baseUrl, { includeToken: token }));
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const open = () => {
|
|
96
|
+
if (closed || socket)
|
|
97
|
+
return;
|
|
98
|
+
const WebSocketImpl = webSocketImpl ?? globalThis.WebSocket;
|
|
99
|
+
if (!WebSocketImpl) {
|
|
100
|
+
report(new Error('No WebSocket implementation available for the observer stream. Node exposes a ' +
|
|
101
|
+
'global `WebSocket` only from v22; on earlier supported runtimes (Node >= 20.9) ' +
|
|
102
|
+
'install one as `globalThis.WebSocket` (e.g. the `ws` package) or pass ' +
|
|
103
|
+
'`webSocketImpl`/`createLiveStream` to observer mode.'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
let ws;
|
|
107
|
+
try {
|
|
108
|
+
ws = construct(WebSocketImpl);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
report(error);
|
|
112
|
+
scheduleReconnect();
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let openedHere = false;
|
|
116
|
+
socket = ws;
|
|
117
|
+
ws.onopen = () => {
|
|
118
|
+
attempts = 0;
|
|
119
|
+
everOpened = true;
|
|
120
|
+
openedHere = true;
|
|
121
|
+
headerCloseStreak = 0;
|
|
122
|
+
for (const handler of openHandlers)
|
|
123
|
+
handler();
|
|
124
|
+
};
|
|
125
|
+
ws.onmessage = (message) => {
|
|
126
|
+
let frame;
|
|
127
|
+
try {
|
|
128
|
+
frame = JSON.parse(String(message.data));
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return; // Non-JSON frames carry nothing for us.
|
|
132
|
+
}
|
|
133
|
+
for (const handler of anyHandlers)
|
|
134
|
+
handler(frame);
|
|
135
|
+
};
|
|
136
|
+
ws.onclose = (event) => {
|
|
137
|
+
if (socket === ws)
|
|
138
|
+
socket = undefined;
|
|
139
|
+
if (closed)
|
|
140
|
+
return; // Intentional teardown owns its own cleanup.
|
|
141
|
+
// A close before the first successful open on a header-auth attempt can
|
|
142
|
+
// mean the runtime accepted the options object but ignored the headers
|
|
143
|
+
// (browsers). Only browser-like runtimes downgrade to the query token,
|
|
144
|
+
// and only after two such probe closes — a Node runtime keeps header
|
|
145
|
+
// auth (and never leaks the token into the URL) even across transient
|
|
146
|
+
// failures.
|
|
147
|
+
if (!useQueryToken && !everOpened && !openedHere) {
|
|
148
|
+
if (!nodeRuntime) {
|
|
149
|
+
headerCloseStreak += 1;
|
|
150
|
+
if (headerCloseStreak >= 2) {
|
|
151
|
+
useQueryToken = true;
|
|
152
|
+
scheduleReconnect(0);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
scheduleReconnect(0);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Surface abnormal closures so invalid tokens / server rejections are not
|
|
160
|
+
// hidden behind a silent reconnect loop; clean closes (code 1000) stay quiet.
|
|
161
|
+
const code = event?.code;
|
|
162
|
+
const clean = event?.wasClean === true || code === 1000;
|
|
163
|
+
if (!clean) {
|
|
164
|
+
report(new Error(`observer WebSocket closed unexpectedly${code !== undefined ? ` (code ${code}${event?.reason ? `: ${event.reason}` : ''})` : ''}`));
|
|
165
|
+
}
|
|
166
|
+
scheduleReconnect();
|
|
167
|
+
};
|
|
168
|
+
ws.onerror = () => {
|
|
169
|
+
// Abnormal closures are reported in onclose; onerror carries no extra detail.
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
return {
|
|
173
|
+
connect: open,
|
|
174
|
+
disconnect: () => {
|
|
175
|
+
closed = true;
|
|
176
|
+
if (timer !== undefined) {
|
|
177
|
+
clearTimeout(timer);
|
|
178
|
+
timer = undefined;
|
|
179
|
+
}
|
|
180
|
+
const ws = socket;
|
|
181
|
+
socket = undefined;
|
|
182
|
+
try {
|
|
183
|
+
ws?.close();
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// Already closed.
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
on: {
|
|
190
|
+
any: (handler) => {
|
|
191
|
+
anyHandlers.add(handler);
|
|
192
|
+
return () => anyHandlers.delete(handler);
|
|
193
|
+
},
|
|
194
|
+
open: (handler) => {
|
|
195
|
+
openHandlers.add(handler);
|
|
196
|
+
return () => openHandlers.delete(handler);
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
const DEFAULT_BASE_URL = 'https://cast.agentrelay.com';
|
|
202
|
+
const MAX_BACKFILL_PAGE_SIZE = 500;
|
|
203
|
+
const DEFAULT_BACKFILL_TIMEOUT_MS = 30_000;
|
|
204
|
+
function isRecord(value) {
|
|
205
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Read the per-workspace monotonic sequence number stamped on a live frame.
|
|
209
|
+
* Frames without a `seq` were never appended to the durable log (server-side
|
|
210
|
+
* append failure) and are treated as live-only.
|
|
211
|
+
*/
|
|
212
|
+
function readSeq(raw) {
|
|
213
|
+
if (!isRecord(raw))
|
|
214
|
+
return undefined;
|
|
215
|
+
const value = raw.seq;
|
|
216
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
217
|
+
}
|
|
218
|
+
function parseBackfillEvents(payload) {
|
|
219
|
+
const record = isRecord(payload) ? payload : {};
|
|
220
|
+
const data = isRecord(record.data) ? record.data : {};
|
|
221
|
+
const rows = Array.isArray(data.events) ? data.events : [];
|
|
222
|
+
const events = [];
|
|
223
|
+
for (const row of rows) {
|
|
224
|
+
if (!isRecord(row))
|
|
225
|
+
continue;
|
|
226
|
+
const seq = typeof row.seq === 'number' && Number.isFinite(row.seq) ? row.seq : undefined;
|
|
227
|
+
if (seq === undefined)
|
|
228
|
+
continue;
|
|
229
|
+
events.push({ seq, payload: row.payload });
|
|
230
|
+
}
|
|
231
|
+
const latestSeq = typeof data.latest_seq === 'number' && Number.isFinite(data.latest_seq) ? data.latest_seq : 0;
|
|
232
|
+
// Scoped-token resume cursor: the seq of the last row the server's scan
|
|
233
|
+
// consumed (visible or filtered). Absent on older engines.
|
|
234
|
+
const nextSince = typeof data.next_since === 'number' && Number.isFinite(data.next_since) ? data.next_since : undefined;
|
|
235
|
+
return { events, latestSeq, nextSince };
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Create a {@link RelayMessagingEventsSurface} backed by the workspace
|
|
239
|
+
* observer plane: the durable per-workspace event log plus the live
|
|
240
|
+
* observer WebSocket stream.
|
|
241
|
+
*
|
|
242
|
+
* On `connect()` the source:
|
|
243
|
+
*
|
|
244
|
+
* 1. opens the live stream and buffers incoming frames,
|
|
245
|
+
* 2. REST-backfills `GET /v1/workspace/events` from the in-memory cursor
|
|
246
|
+
* (starting at `sinceSeq`, default `0`), paginating until `latest_seq`,
|
|
247
|
+
* 3. emits the backfilled events, then the buffered/live frames — deduped
|
|
248
|
+
* and ordered by `seq`. Frames without a `seq` pass straight through.
|
|
249
|
+
*
|
|
250
|
+
* When the backfill endpoint is missing (404 on older engines) or fails,
|
|
251
|
+
* the source degrades to live-only streaming. Raw frames flow through
|
|
252
|
+
* {@link normalizeMessagingEvent}, so listeners receive the same public event
|
|
253
|
+
* shapes as every other source.
|
|
254
|
+
*
|
|
255
|
+
* @param options - Observer token, cursor, and injectable transports.
|
|
256
|
+
* @returns An events surface suitable as an event fan-in source.
|
|
257
|
+
*/
|
|
258
|
+
export function createObserverEventSource(options) {
|
|
259
|
+
const baseUrl = stripTrailingSlashes(options.baseUrl ?? DEFAULT_BASE_URL);
|
|
260
|
+
const pageSize = Math.min(Math.max(options.backfillPageSize ?? MAX_BACKFILL_PAGE_SIZE, 1), MAX_BACKFILL_PAGE_SIZE);
|
|
261
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
262
|
+
const backfillTimeoutMs = options.backfillTimeoutMs ?? DEFAULT_BACKFILL_TIMEOUT_MS;
|
|
263
|
+
const createLiveStream = options.createLiveStream ??
|
|
264
|
+
(() => createRawObserverStream(baseUrl, options.observerToken, report, options.webSocketImpl));
|
|
265
|
+
const handlers = new Map();
|
|
266
|
+
/** Highest durable-log sequence emitted so far; events at or below it are duplicates. */
|
|
267
|
+
let cursor = options.sinceSeq ?? 0;
|
|
268
|
+
let live;
|
|
269
|
+
let offLive;
|
|
270
|
+
let offOpen;
|
|
271
|
+
/** Raw live frames received while the backfill is still running, in arrival order. */
|
|
272
|
+
let pending = [];
|
|
273
|
+
let backfillDone = false;
|
|
274
|
+
/** Invalidates in-flight backfills when the source is disconnected. */
|
|
275
|
+
let epoch = 0;
|
|
276
|
+
const report = (error) => {
|
|
277
|
+
if (options.onError) {
|
|
278
|
+
try {
|
|
279
|
+
options.onError(error);
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// Error hooks must not throw into the event source.
|
|
283
|
+
}
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
console.warn('[agent-relay] observer stream:', error);
|
|
287
|
+
};
|
|
288
|
+
const emit = (event) => {
|
|
289
|
+
for (const key of [event.type, 'any']) {
|
|
290
|
+
for (const handler of handlers.get(key) ?? []) {
|
|
291
|
+
try {
|
|
292
|
+
void Promise.resolve(handler(event)).catch(report);
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
report(error);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
const advanceCursor = (seq) => {
|
|
301
|
+
cursor = seq;
|
|
302
|
+
if (options.onCursor) {
|
|
303
|
+
try {
|
|
304
|
+
options.onCursor(seq);
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
// Cursor hooks must not throw into the event source.
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
/** Emit a raw frame, deduping seq-stamped frames against the cursor. */
|
|
312
|
+
const deliver = (raw) => {
|
|
313
|
+
const seq = readSeq(raw);
|
|
314
|
+
if (seq !== undefined) {
|
|
315
|
+
if (seq <= cursor)
|
|
316
|
+
return;
|
|
317
|
+
advanceCursor(seq);
|
|
318
|
+
}
|
|
319
|
+
emit(normalizeMessagingEvent(raw));
|
|
320
|
+
};
|
|
321
|
+
const handleLiveFrame = (raw) => {
|
|
322
|
+
if (!backfillDone) {
|
|
323
|
+
pending.push(raw);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
deliver(raw);
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Flush frames buffered during the backfill. Seq-stamped frames are ordered
|
|
330
|
+
* by `seq` among themselves (stable sort — frames without a `seq` keep their
|
|
331
|
+
* arrival position) and deduped against the cursor; the rest pass through.
|
|
332
|
+
*/
|
|
333
|
+
const flushPending = () => {
|
|
334
|
+
backfillDone = true;
|
|
335
|
+
const buffered = pending;
|
|
336
|
+
pending = [];
|
|
337
|
+
// Order seq-stamped frames among themselves; seq-less frames keep their
|
|
338
|
+
// arrival slot. Sorting the whole array with a comparator that returns 0
|
|
339
|
+
// for any pair involving a seq-less frame is not a total order (a higher
|
|
340
|
+
// seq could sort ahead of a lower one across a seq-less gap and advance the
|
|
341
|
+
// cursor past it), so we sort the sequenced frames out-of-band and splice
|
|
342
|
+
// them back into the seq-less skeleton.
|
|
343
|
+
const sequenced = buffered
|
|
344
|
+
.map((raw) => ({ raw, seq: readSeq(raw) }))
|
|
345
|
+
.filter((item) => item.seq !== undefined)
|
|
346
|
+
.sort((a, b) => a.seq - b.seq);
|
|
347
|
+
let nextSequenced = 0;
|
|
348
|
+
for (const raw of buffered) {
|
|
349
|
+
deliver(readSeq(raw) === undefined ? raw : sequenced[nextSequenced++].raw);
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
const backfillPage = async (since) => {
|
|
353
|
+
const url = `${baseUrl}/v1/workspace/events?since=${since}&limit=${pageSize}`;
|
|
354
|
+
// Bound each page fetch so a hung backfill endpoint can't buffer live frames
|
|
355
|
+
// forever; on timeout the caller degrades to live-only.
|
|
356
|
+
const controller = new AbortController();
|
|
357
|
+
const timeout = setTimeout(() => controller.abort(), backfillTimeoutMs);
|
|
358
|
+
timeout.unref?.();
|
|
359
|
+
let response;
|
|
360
|
+
try {
|
|
361
|
+
response = await fetchImpl(url, {
|
|
362
|
+
headers: { Authorization: `Bearer ${options.observerToken}` },
|
|
363
|
+
signal: controller.signal,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
finally {
|
|
367
|
+
clearTimeout(timeout);
|
|
368
|
+
}
|
|
369
|
+
// Older engines have no durable event log; observer mode then works
|
|
370
|
+
// live-only and the cursor advances from seq-stamped live frames.
|
|
371
|
+
if (response.status === 404)
|
|
372
|
+
return undefined;
|
|
373
|
+
if (!response.ok) {
|
|
374
|
+
throw new Error(`observer backfill failed: HTTP ${response.status} for GET /v1/workspace/events`);
|
|
375
|
+
}
|
|
376
|
+
return parseBackfillEvents(await response.json());
|
|
377
|
+
};
|
|
378
|
+
const runBackfill = async () => {
|
|
379
|
+
const startedEpoch = epoch;
|
|
380
|
+
try {
|
|
381
|
+
for (;;) {
|
|
382
|
+
const before = cursor;
|
|
383
|
+
const page = await backfillPage(cursor);
|
|
384
|
+
if (epoch !== startedEpoch)
|
|
385
|
+
return;
|
|
386
|
+
if (!page)
|
|
387
|
+
break;
|
|
388
|
+
for (const event of page.events) {
|
|
389
|
+
if (event.seq <= cursor)
|
|
390
|
+
continue;
|
|
391
|
+
advanceCursor(event.seq);
|
|
392
|
+
emit(normalizeMessagingEvent(event.payload));
|
|
393
|
+
}
|
|
394
|
+
// For scoped observer tokens a page can be empty while hidden rows
|
|
395
|
+
// were consumed server-side; `next_since` advances the cursor past
|
|
396
|
+
// them (events hidden from this token will never be delivered live
|
|
397
|
+
// either, so skipping their seqs is safe).
|
|
398
|
+
if (page.nextSince !== undefined && page.nextSince > cursor) {
|
|
399
|
+
advanceCursor(page.nextSince);
|
|
400
|
+
}
|
|
401
|
+
if (cursor >= page.latestSeq)
|
|
402
|
+
break;
|
|
403
|
+
// No progress this page (older engine without next_since returning
|
|
404
|
+
// only hidden rows): stop rather than loop forever, but surface it —
|
|
405
|
+
// historical events after this point may never be backfilled.
|
|
406
|
+
if (cursor <= before) {
|
|
407
|
+
report(new Error(`observer backfill stopped early: engine returned no visible events and no next_since ` +
|
|
408
|
+
`cursor at seq ${cursor} (latest ${page.latestSeq}); historical events past this ` +
|
|
409
|
+
`point may be skipped. Upgrade the engine for next_since-based scoped backfill.`));
|
|
410
|
+
break;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
if (epoch !== startedEpoch)
|
|
416
|
+
return;
|
|
417
|
+
// Backfill is best-effort: degrade to live-only rather than losing the
|
|
418
|
+
// stream entirely.
|
|
419
|
+
report(error);
|
|
420
|
+
}
|
|
421
|
+
if (epoch !== startedEpoch)
|
|
422
|
+
return;
|
|
423
|
+
flushPending();
|
|
424
|
+
};
|
|
425
|
+
return {
|
|
426
|
+
connect: () => {
|
|
427
|
+
if (live)
|
|
428
|
+
return;
|
|
429
|
+
backfillDone = false;
|
|
430
|
+
pending = [];
|
|
431
|
+
try {
|
|
432
|
+
live = createLiveStream();
|
|
433
|
+
offLive = live.on.any(handleLiveFrame);
|
|
434
|
+
// Frames missed while the socket was down are only in the durable
|
|
435
|
+
// log: on every reopen after the first, buffer live frames again and
|
|
436
|
+
// re-backfill from the cursor to close the gap.
|
|
437
|
+
let hadOpen = false;
|
|
438
|
+
offOpen = live.on.open?.(() => {
|
|
439
|
+
if (hadOpen) {
|
|
440
|
+
backfillDone = false;
|
|
441
|
+
void runBackfill();
|
|
442
|
+
}
|
|
443
|
+
hadOpen = true;
|
|
444
|
+
});
|
|
445
|
+
live.connect();
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
// A partially initialized stream would make later connect() calls
|
|
449
|
+
// return early (live is set) and never retry. Tear it down so a fresh
|
|
450
|
+
// stream can be built on the next connect().
|
|
451
|
+
offLive?.();
|
|
452
|
+
offLive = undefined;
|
|
453
|
+
offOpen?.();
|
|
454
|
+
offOpen = undefined;
|
|
455
|
+
const stream = live;
|
|
456
|
+
live = undefined;
|
|
457
|
+
try {
|
|
458
|
+
stream?.disconnect();
|
|
459
|
+
}
|
|
460
|
+
catch {
|
|
461
|
+
// Best-effort cleanup after a failed live-stream initialization.
|
|
462
|
+
}
|
|
463
|
+
report(error);
|
|
464
|
+
// With no live stream, backfilled events are all we can deliver;
|
|
465
|
+
// don't hold them hostage in the buffer.
|
|
466
|
+
}
|
|
467
|
+
void runBackfill();
|
|
468
|
+
},
|
|
469
|
+
disconnect: async () => {
|
|
470
|
+
epoch += 1;
|
|
471
|
+
backfillDone = false;
|
|
472
|
+
pending = [];
|
|
473
|
+
offLive?.();
|
|
474
|
+
offLive = undefined;
|
|
475
|
+
offOpen?.();
|
|
476
|
+
offOpen = undefined;
|
|
477
|
+
const stream = live;
|
|
478
|
+
live = undefined;
|
|
479
|
+
if (stream) {
|
|
480
|
+
try {
|
|
481
|
+
stream.disconnect();
|
|
482
|
+
}
|
|
483
|
+
catch (error) {
|
|
484
|
+
report(error);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
},
|
|
488
|
+
// The observer stream is workspace-wide; there is no per-channel
|
|
489
|
+
// subscription surface on the observer socket.
|
|
490
|
+
subscribe: () => { },
|
|
491
|
+
unsubscribe: () => { },
|
|
492
|
+
on: (event, handler) => {
|
|
493
|
+
const set = handlers.get(event) ?? new Set();
|
|
494
|
+
set.add(handler);
|
|
495
|
+
handlers.set(event, set);
|
|
496
|
+
return () => {
|
|
497
|
+
set.delete(handler);
|
|
498
|
+
};
|
|
499
|
+
},
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
//# sourceMappingURL=observer-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer-source.js","sourceRoot":"","sources":["../../src/messaging/observer-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AgentClientOptions, RelayCastOptions } from '@relaycast/sdk';
|
|
2
|
+
import type { DeliveryStatus } from '@relaycast/types';
|
|
2
3
|
import { type RelaycastTelemetryOptions } from '../relaycast-telemetry.js';
|
|
3
4
|
import type { RelayCreateChannelInput, RelayListNodesOptions, RelayMessageBlock, RelayMessageListOptions, RelayUpdateChannelInput } from './types.js';
|
|
4
5
|
export type RelaycastWorkspaceLike = {
|
|
@@ -68,7 +69,7 @@ export type RelaycastWorkspaceLike = {
|
|
|
68
69
|
any(handler: (event: unknown) => void): () => void;
|
|
69
70
|
};
|
|
70
71
|
};
|
|
71
|
-
export type RelaycastDeliveryStatus =
|
|
72
|
+
export type RelaycastDeliveryStatus = DeliveryStatus;
|
|
72
73
|
/** The durable delivery methods an agent client must expose for server-backed inbox state. */
|
|
73
74
|
export type RelaycastAgentDeliverySurface = Required<Pick<RelaycastAgentLike, 'deliveries' | 'ackDelivery' | 'failDelivery' | 'deferDelivery'>>;
|
|
74
75
|
export type RelaycastAgentLike = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relaycast-client.d.ts","sourceRoot":"","sources":["../../src/messaging/relaycast-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"relaycast-client.d.ts","sourceRoot":"","sources":["../../src/messaging/relaycast-client.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAA6B,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtG,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE;QACN,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,0EAA0E;QAC1E,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAChC,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACrC,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAC3C,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtE,CAAC;IACF,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,CAAC;IAIF,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,CAAC;IACF,SAAS,CAAC,EAAE;QACV,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,UAAU,CAAC,EAAE;YACX,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YACxB,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;SAC7B,CAAC;KACH,CAAC;IACF,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,kBAAkB,CAAC;IAG9E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;KAAE,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAErD,8FAA8F;AAC9F,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAClD,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC,CAC1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtC,IAAI,CACF,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,CACH,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAClE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,EAAE,CACA,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,GAAG,EAAE;QACH,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACxF,WAAW,CACT,OAAO,EAAE;YAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,EAClD,WAAW,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,GACxC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;YACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YACxB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACrC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGtD,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,uBAAuB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvG,aAAa,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7F,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACtB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACzF,CAAC;IACF,EAAE,EAAE;QACF,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;QACnD,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;KAC/D,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,sBAAsB,CAkBhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relaycast-client.js","sourceRoot":"","sources":["../../src/messaging/relaycast-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"relaycast-client.js","sourceRoot":"","sources":["../../src/messaging/relaycast-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,OAAO,EAAE,yBAAyB,EAAkC,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAuM1D,MAAM,UAAU,qBAAqB,CAAC,OAAkC;IACtE,IAAI,OAAO,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,IAAI,SAAS,CAClB,cAAc,CAAC;QACb,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,yBAAyB,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC;KACH,CAAqB,CACc,CAAC;AACzC,CAAC"}
|