@cotal-ai/core 0.1.0 → 0.1.2
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/dist/channels.d.ts +68 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +140 -0
- package/dist/channels.js.map +1 -0
- package/dist/endpoint.d.ts +97 -3
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +381 -29
- package/dist/endpoint.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +33 -3
- package/dist/provision.js.map +1 -1
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +11 -4
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +11 -0
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +13 -2
- package/dist/subjects.js.map +1 -1
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -1
package/dist/endpoint.js
CHANGED
|
@@ -5,7 +5,8 @@ import { idFromCreds } from "./identity.js";
|
|
|
5
5
|
import { createSpaceStreams, dmDurableConfig, taskDurableConfig } from "./streams.js";
|
|
6
6
|
import { jetstream, jetstreamManager, AckPolicy, DeliverPolicy, } from "@nats-io/jetstream";
|
|
7
7
|
import { Kvm } from "@nats-io/kv";
|
|
8
|
-
import {
|
|
8
|
+
import { openChannelRegistry, effectiveReplay, effectiveReplayWindowMs, readChannelConfig, readChannelDefaults, } from "./channels.js";
|
|
9
|
+
import { anycastSubject, CHANNEL_DEFAULTS_KEY, chatStream, chatDurable, chatSubject, collapseFilterSubjects, controlServiceSubject, dmStream, dmDurable, isConcreteChannel, normalizeMentions, parseSubject, presenceBucket, spacePrefix, spaceWildcard, subjectMatches, taskStream, taskDurable, token, unicastSubject, } from "./subjects.js";
|
|
9
10
|
export const DEFAULT_SERVER = "nats://127.0.0.1:4222";
|
|
10
11
|
/**
|
|
11
12
|
* Events: "message" (CotalMessage), "presence" (PresenceEvent), "roster" (Presence[]), "error" (Error).
|
|
@@ -36,6 +37,15 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
36
37
|
js;
|
|
37
38
|
jsm;
|
|
38
39
|
kv;
|
|
40
|
+
channelKv;
|
|
41
|
+
/** Live local cache of the channel registry (key = channel token), kept by a KV watch. */
|
|
42
|
+
channelConfigs = new Map();
|
|
43
|
+
channelDefaults = {};
|
|
44
|
+
/** Per-subscription join watermark: the stream frontier captured when a channel was joined.
|
|
45
|
+
* The tail ack-drops chat messages with `seq <= watermark` (suppresses pre-join history for
|
|
46
|
+
* a lagging joiner + dedups the backfill overlap). Keyed by the subscription pattern (may be
|
|
47
|
+
* wildcard), so the drop matches every concrete channel the pattern subsumes. */
|
|
48
|
+
joinSeq = new Map();
|
|
39
49
|
subs = [];
|
|
40
50
|
streamMsgs = [];
|
|
41
51
|
heartbeatTimer;
|
|
@@ -100,6 +110,14 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
100
110
|
await this.startPresenceWatch();
|
|
101
111
|
this.sweepTimer = setInterval(() => this.sweep(), Math.max(500, Math.floor(this.ttlMs / 3)));
|
|
102
112
|
}
|
|
113
|
+
// Open the channel registry bucket when we either watch it (live cache for the connector's
|
|
114
|
+
// pull/display) or consume (the join-time replay decision reads it fresh). Auth mode OPENs
|
|
115
|
+
// the bucket pre-created at `cotal up`; open mode lazily creates it.
|
|
116
|
+
if (this.doWatch || this.doConsume) {
|
|
117
|
+
this.channelKv = await openChannelRegistry(this.nc, this.space, { create: !this.creds });
|
|
118
|
+
if (this.doWatch)
|
|
119
|
+
await this.startChannelWatch();
|
|
120
|
+
}
|
|
103
121
|
if (this.doRegister) {
|
|
104
122
|
await this.publishPresence();
|
|
105
123
|
this.heartbeatTimer = setInterval(() => {
|
|
@@ -283,32 +301,151 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
283
301
|
await this.publishPresence();
|
|
284
302
|
}
|
|
285
303
|
// ---- channel discovery ---------------------------------------------------
|
|
286
|
-
/**
|
|
287
|
-
|
|
304
|
+
/** This channel's registry config from the live local cache (undefined if unset). */
|
|
305
|
+
getChannelConfig(channel) {
|
|
306
|
+
return this.channelConfigs.get(channel);
|
|
307
|
+
}
|
|
308
|
+
/** Effective replay-on-join policy for a channel: per-channel override ?? space default ??
|
|
309
|
+
* true. Reads the live cache, so it reflects runtime registry edits. */
|
|
310
|
+
channelReplay(channel) {
|
|
311
|
+
return effectiveReplay(this.channelConfigs.get(channel), this.channelDefaults);
|
|
312
|
+
}
|
|
313
|
+
// ---- dynamic subscription (join / leave mid-session) ---------------------
|
|
314
|
+
/** The channels this endpoint is currently subscribed to (live — reflects join/leave). */
|
|
315
|
+
joinedChannels() {
|
|
316
|
+
return [...this.channels];
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Join a channel mid-session: add it to our chat durable's `filter_subjects` (same durable,
|
|
320
|
+
* same ack-floor, no teardown — `update` rides the self-scoped create grant), capture the
|
|
321
|
+
* stream frontier as this channel's join watermark, and backfill its history if replay is on.
|
|
322
|
+
* Idempotent: re-joining a channel already in our filter is a no-op (no re-backfill). Returns
|
|
323
|
+
* the number of historical messages backfilled (emitted as `historical` "message" events).
|
|
324
|
+
*/
|
|
325
|
+
async joinChannel(channel) {
|
|
326
|
+
if (!this.jsm)
|
|
327
|
+
throw new Error("endpoint not started");
|
|
328
|
+
if (this.channels.includes(channel))
|
|
329
|
+
return { joined: false, backfilled: 0 };
|
|
330
|
+
const next = collapseFilterSubjects([...this.channels, channel].map((ch) => chatSubject(this.space, "*", ch)));
|
|
331
|
+
// Arm the watermark BEFORE the filter flip (single-delivery: a tail message on the new
|
|
332
|
+
// channel is then either ≤ frontier → backfill-only or > frontier → tail-only, never both),
|
|
333
|
+
// and filter BEFORE backfill (gap-safe: backfill-first leaves a window in neither stream).
|
|
334
|
+
const armed = await this.armJoin([channel]);
|
|
335
|
+
await this.jsm.consumers.update(chatStream(this.space), chatDurable(this.card.id), {
|
|
336
|
+
filter_subjects: next,
|
|
337
|
+
});
|
|
338
|
+
this.channels.push(channel);
|
|
339
|
+
const backfilled = await this.backfillArmed(armed);
|
|
340
|
+
return { joined: true, backfilled };
|
|
341
|
+
}
|
|
342
|
+
/** Leave a channel mid-session: drop it from the durable's `filter_subjects`. Refuses to leave
|
|
343
|
+
* the *last* channel (an empty filter would match every chat subject — the opposite of
|
|
344
|
+
* leaving). Returns whether anything changed. */
|
|
345
|
+
async leaveChannel(channel) {
|
|
346
|
+
if (!this.jsm)
|
|
347
|
+
throw new Error("endpoint not started");
|
|
348
|
+
const i = this.channels.indexOf(channel);
|
|
349
|
+
if (i < 0)
|
|
350
|
+
return { left: false };
|
|
351
|
+
if (this.channels.length === 1)
|
|
352
|
+
throw new Error(`cannot leave "${channel}" — it is your only channel (an empty filter would subscribe to all)`);
|
|
353
|
+
const remaining = this.channels.filter((c) => c !== channel);
|
|
354
|
+
await this.jsm.consumers.update(chatStream(this.space), chatDurable(this.card.id), {
|
|
355
|
+
filter_subjects: collapseFilterSubjects(remaining.map((ch) => chatSubject(this.space, "*", ch))),
|
|
356
|
+
});
|
|
357
|
+
this.channels.splice(i, 1);
|
|
358
|
+
this.joinSeq.delete(channel);
|
|
359
|
+
return { left: true };
|
|
360
|
+
}
|
|
361
|
+
/** One coherent channel model for dashboards: every channel that has messages OR a registry
|
|
362
|
+
* entry (configured-but-empty), each tagged with its {@link ChannelConfig}. Works even on
|
|
363
|
+
* observer endpoints (no consumers needed). */
|
|
288
364
|
async listChannels() {
|
|
289
365
|
if (!this.nc)
|
|
290
366
|
throw new Error("endpoint not started");
|
|
291
367
|
const mgr = await jetstreamManager(this.nc);
|
|
292
|
-
|
|
368
|
+
// Subjects carry the sender (chat.<sender>.<channel>), so collapse across senders: sum
|
|
369
|
+
// each channel's counts regardless of who published.
|
|
370
|
+
const counts = new Map();
|
|
293
371
|
try {
|
|
294
|
-
info = await mgr.streams.info(chatStream(this.space), { subjects_filter: ">" });
|
|
372
|
+
const info = await mgr.streams.info(chatStream(this.space), { subjects_filter: ">" });
|
|
373
|
+
if (info.state.subjects) {
|
|
374
|
+
for (const [subject, count] of Object.entries(info.state.subjects)) {
|
|
375
|
+
const p = parseSubject(subject);
|
|
376
|
+
if (p?.kind === "chat")
|
|
377
|
+
counts.set(p.rest, (counts.get(p.rest) ?? 0) + count);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
295
380
|
}
|
|
296
381
|
catch {
|
|
297
|
-
|
|
382
|
+
/* stream missing — fall through to registry-only channels */
|
|
298
383
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
384
|
+
const channels = new Set([...counts.keys(), ...this.channelConfigs.keys()]);
|
|
385
|
+
return [...channels]
|
|
386
|
+
.map((channel) => ({
|
|
387
|
+
channel,
|
|
388
|
+
messages: counts.get(channel) ?? 0,
|
|
389
|
+
config: this.channelConfigs.get(channel),
|
|
390
|
+
}))
|
|
391
|
+
.sort((a, b) => a.channel.localeCompare(b.channel));
|
|
392
|
+
}
|
|
393
|
+
async channelMembers(channel) {
|
|
394
|
+
const mgr = await this.manager();
|
|
395
|
+
// Group channel patterns by each consumer's durable id-token (chat_<id> → token(id)).
|
|
396
|
+
// One peer has one chat consumer, so this is a straight per-peer collection; join/leave
|
|
397
|
+
// just mutates that consumer's filter_subjects, which the next call re-reads live.
|
|
398
|
+
const byTok = new Map();
|
|
399
|
+
for await (const ci of mgr.consumers.list(chatStream(this.space))) {
|
|
400
|
+
const tok = chatDurableToken(ci.config.durable_name ?? ci.name);
|
|
401
|
+
if (tok === null)
|
|
402
|
+
continue;
|
|
403
|
+
// The server may report a single filter as `filter_subject` or `filter_subjects` — both
|
|
404
|
+
// are the same datum; read whichever is present. Filters are already collapsed (the
|
|
405
|
+
// effective subscription), so parse the channel straight out of each.
|
|
406
|
+
const filters = ci.config.filter_subjects ?? (ci.config.filter_subject ? [ci.config.filter_subject] : []);
|
|
407
|
+
const set = byTok.get(tok) ?? new Set();
|
|
408
|
+
for (const f of filters) {
|
|
409
|
+
const p = parseSubject(f);
|
|
305
410
|
if (p?.kind === "chat")
|
|
306
|
-
|
|
411
|
+
set.add(p.rest);
|
|
307
412
|
}
|
|
413
|
+
byTok.set(tok, set);
|
|
308
414
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
415
|
+
// Join with presence for liveness. token() is lossy, so match forward: index the roster
|
|
416
|
+
// by token(id). A durable with no roster match is a ghost/foreign id — keep its token,
|
|
417
|
+
// never drop it.
|
|
418
|
+
const byToken = new Map();
|
|
419
|
+
for (const p of this.roster.values())
|
|
420
|
+
byToken.set(token(p.card.id), p);
|
|
421
|
+
const memberFor = (tok) => {
|
|
422
|
+
const p = byToken.get(tok);
|
|
423
|
+
return p
|
|
424
|
+
? { id: p.card.id, name: p.card.name, role: p.card.role, live: p.status !== "offline" }
|
|
425
|
+
: { id: tok, name: tok, live: false };
|
|
426
|
+
};
|
|
427
|
+
const byName = (a, b) => a.name.localeCompare(b.name);
|
|
428
|
+
if (channel !== undefined) {
|
|
429
|
+
const out = [];
|
|
430
|
+
for (const [tok, patterns] of byTok)
|
|
431
|
+
if ([...patterns].some((pat) => subjectMatches(pat, channel)))
|
|
432
|
+
out.push(memberFor(tok));
|
|
433
|
+
return out.sort(byName);
|
|
434
|
+
}
|
|
435
|
+
const map = new Map();
|
|
436
|
+
for (const [tok, patterns] of byTok) {
|
|
437
|
+
const m = memberFor(tok);
|
|
438
|
+
for (const pat of patterns) {
|
|
439
|
+
const arr = map.get(pat);
|
|
440
|
+
if (arr)
|
|
441
|
+
arr.push(m);
|
|
442
|
+
else
|
|
443
|
+
map.set(pat, [m]);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
for (const arr of map.values())
|
|
447
|
+
arr.sort(byName);
|
|
448
|
+
return map;
|
|
312
449
|
}
|
|
313
450
|
/** Fetch recent messages from a channel's JetStream backlog. */
|
|
314
451
|
async channelHistory(channel, opts) {
|
|
@@ -431,19 +568,47 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
431
568
|
}));
|
|
432
569
|
}
|
|
433
570
|
await this.pump(dmStream(this.space), dmDurable(id));
|
|
434
|
-
// Multicast:
|
|
571
|
+
// Multicast: a DeliverPolicy.New *tail* of our channels. History is NOT a durable replay —
|
|
572
|
+
// it's an explicit, per-channel backfill on join (replay-policy gated, below), the only
|
|
573
|
+
// shape that can honor per-channel policy given deliver_policy is consumer-wide.
|
|
435
574
|
if (this.channels.length) {
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
575
|
+
const durable = chatDurable(id);
|
|
576
|
+
const want = collapseFilterSubjects(this.channels.map((ch) => chatSubject(this.space, "*", ch)));
|
|
577
|
+
const info = await this.consumerInfo(chatStream(this.space), durable);
|
|
578
|
+
if (!info) {
|
|
579
|
+
// Fresh durable: a New tail (history is the explicit backfill below — the only shape
|
|
580
|
+
// that honors per-channel policy given deliver_policy is consumer-wide).
|
|
581
|
+
await this.jsm.consumers.add(chatStream(this.space), {
|
|
582
|
+
durable_name: durable,
|
|
583
|
+
filter_subjects: want,
|
|
584
|
+
ack_policy: AckPolicy.Explicit,
|
|
585
|
+
ack_wait,
|
|
586
|
+
deliver_policy: DeliverPolicy.New,
|
|
587
|
+
inactive_threshold,
|
|
588
|
+
});
|
|
589
|
+
// Arm the tail-drop watermarks BEFORE pump starts, so the tail can never deliver a
|
|
590
|
+
// just-created channel's message un-watermarked (which would double-emit: live + backfill).
|
|
591
|
+
const armed = await this.armJoin(this.channels);
|
|
592
|
+
await this.pump(chatStream(this.space), durable);
|
|
593
|
+
await this.backfillArmed(armed);
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
// Rebind: reconcile the durable's filter to the CURRENT config (a config that changed
|
|
597
|
+
// between restarts is honored). Channels the config GAINED are backfilled like a fresh
|
|
598
|
+
// join; channels it LOST are dropped from the filter. An unchanged config = pure resume,
|
|
599
|
+
// empty diff, no re-replay.
|
|
600
|
+
await this.pump(chatStream(this.space), durable);
|
|
601
|
+
const haveFilters = info.config.filter_subjects ?? (info.config.filter_subject ? [info.config.filter_subject] : []);
|
|
602
|
+
// Channels the config gained = those not already covered by the durable's filters (a
|
|
603
|
+
// wildcard already covers its sub-channels). Backfill only those.
|
|
604
|
+
const gained = this.channels.filter((c) => !haveFilters.some((f) => subjectMatches(f, chatSubject(this.space, "*", c))));
|
|
605
|
+
// Arm watermarks for the gained channels BEFORE the filter reconcile flips them on.
|
|
606
|
+
const armed = gained.length ? await this.armJoin(gained) : undefined;
|
|
607
|
+
if (!sameSet(haveFilters, want))
|
|
608
|
+
await this.jsm.consumers.update(chatStream(this.space), durable, { filter_subjects: want });
|
|
609
|
+
if (armed)
|
|
610
|
+
await this.backfillArmed(armed);
|
|
611
|
+
}
|
|
447
612
|
}
|
|
448
613
|
// Anycast: a shared work-queue consumer for our role — one instance grabs each task.
|
|
449
614
|
// Open mode self-creates; auth mode BINDS the provisioner-pre-created svc_<role>
|
|
@@ -489,14 +654,150 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
489
654
|
m.ack(); // our own echo — advance past it
|
|
490
655
|
continue;
|
|
491
656
|
}
|
|
657
|
+
// No-replay + dedup (chat only): drop a message at/below this channel's join watermark
|
|
658
|
+
// — pre-join history the New tail still carries for a *lagging* joiner (cursor behind the
|
|
659
|
+
// frontier), and the overlap a replay backfill already delivered. Must ack, or JetStream
|
|
660
|
+
// redelivers it forever. The drop is here, before the message becomes model context.
|
|
661
|
+
if (parsed.kind === "chat") {
|
|
662
|
+
const wm = this.dropWatermark(parsed.rest);
|
|
663
|
+
if (wm !== undefined && m.seq <= wm) {
|
|
664
|
+
m.ack();
|
|
665
|
+
continue;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
492
668
|
const delivery = { ack: () => m.ack(), nak: () => m.nak() };
|
|
493
|
-
this.emit("message", msg, delivery);
|
|
669
|
+
this.emit("message", msg, delivery, { historical: false });
|
|
494
670
|
}
|
|
495
671
|
})().catch((e) => {
|
|
496
672
|
if (!this.stopped)
|
|
497
673
|
this.emit("error", e);
|
|
498
674
|
});
|
|
499
675
|
}
|
|
676
|
+
/** The highest join watermark among the joined subscriptions that cover `concreteChannel`
|
|
677
|
+
* (a wildcard sub like `team.>` covers `team.backend`), or undefined if none — the tail
|
|
678
|
+
* drops a chat message with `seq <= ` this. */
|
|
679
|
+
dropWatermark(concreteChannel) {
|
|
680
|
+
let wm;
|
|
681
|
+
for (const [pattern, seq] of this.joinSeq)
|
|
682
|
+
if (subjectMatches(pattern, concreteChannel) && (wm === undefined || seq > wm))
|
|
683
|
+
wm = seq;
|
|
684
|
+
return wm;
|
|
685
|
+
}
|
|
686
|
+
/** The durable's info (rebind) or null (fresh — 404). Gates create/backfill to the join event
|
|
687
|
+
* and exposes the current `filter_subjects` for restart reconciliation. */
|
|
688
|
+
async consumerInfo(stream, durable) {
|
|
689
|
+
if (!this.jsm)
|
|
690
|
+
throw new Error("endpoint not started");
|
|
691
|
+
try {
|
|
692
|
+
return await this.jsm.consumers.info(stream, durable);
|
|
693
|
+
}
|
|
694
|
+
catch {
|
|
695
|
+
return null; // 404 — fresh durable
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
/** Current frontier (last sequence) of the chat stream — a channel's join watermark. */
|
|
699
|
+
async chatFrontier() {
|
|
700
|
+
if (!this.jsm)
|
|
701
|
+
throw new Error("endpoint not started");
|
|
702
|
+
return (await this.jsm.streams.info(chatStream(this.space))).state.last_seq;
|
|
703
|
+
}
|
|
704
|
+
/** Phase 1 of a join — arm each channel's tail-drop watermark at the current frontier. MUST run
|
|
705
|
+
* BEFORE the filter flip (consumers.update, or pump on a fresh create) so the tail can never
|
|
706
|
+
* carry a just-joined message un-watermarked — which would double-emit it (live + backfill).
|
|
707
|
+
* Returns the per-channel frontiers for {@link backfillArmed}. */
|
|
708
|
+
async armJoin(channels) {
|
|
709
|
+
const frontiers = new Map();
|
|
710
|
+
for (const ch of channels) {
|
|
711
|
+
const frontier = await this.chatFrontier();
|
|
712
|
+
this.joinSeq.set(ch, frontier);
|
|
713
|
+
frontiers.set(ch, frontier);
|
|
714
|
+
}
|
|
715
|
+
return frontiers;
|
|
716
|
+
}
|
|
717
|
+
/** Phase 2 of a join — backfill each armed channel's history up to its frontier (replay-gated),
|
|
718
|
+
* AFTER the filter flip. Returns the total backfilled. */
|
|
719
|
+
async backfillArmed(frontiers) {
|
|
720
|
+
let total = 0;
|
|
721
|
+
for (const [ch, frontier] of frontiers) {
|
|
722
|
+
const policy = await this.joinPolicyFresh(ch);
|
|
723
|
+
if (policy.replay)
|
|
724
|
+
total += await this.backfillChannel(ch, frontier, policy.windowMs);
|
|
725
|
+
}
|
|
726
|
+
return total;
|
|
727
|
+
}
|
|
728
|
+
/** Replay policy + backfill window read straight from the registry bucket (vs the watch cache)
|
|
729
|
+
* — the authoritative read for a join decision (a join is infrequent, and at startup the async
|
|
730
|
+
* cache may not have caught up). Falls to the built-in default only with no registry open. */
|
|
731
|
+
async joinPolicyFresh(channel) {
|
|
732
|
+
if (!this.channelKv)
|
|
733
|
+
return { replay: effectiveReplay(undefined, undefined) };
|
|
734
|
+
const [cfg, defaults] = await Promise.all([
|
|
735
|
+
readChannelConfig(this.channelKv, channel),
|
|
736
|
+
readChannelDefaults(this.channelKv),
|
|
737
|
+
]);
|
|
738
|
+
return { replay: effectiveReplay(cfg, defaults), windowMs: effectiveReplayWindowMs(cfg, defaults) };
|
|
739
|
+
}
|
|
740
|
+
/** Read a channel's retained history up to `upToSeq` via JetStream **Direct Get** (a read
|
|
741
|
+
* verb — no consumer create, so it rides a read-only grant) and emit each message as a
|
|
742
|
+
* `historical` "message" event. `sinceMs` bounds how far back via a native Direct-Get
|
|
743
|
+
* `start_time` (now − window); unset ⇒ the full retained window. New messages (`seq > upToSeq`)
|
|
744
|
+
* are skipped — the live tail owns them. Pages the batch API; the ack handle is a no-op. */
|
|
745
|
+
async backfillChannel(channel, upToSeq, sinceMs) {
|
|
746
|
+
if (!this.jsm)
|
|
747
|
+
throw new Error("endpoint not started");
|
|
748
|
+
const subject = chatSubject(this.space, "*", channel);
|
|
749
|
+
const collected = [];
|
|
750
|
+
// First page starts by time when a window is set (native), else from seq 1; after that we
|
|
751
|
+
// always page by sequence.
|
|
752
|
+
const startTime = sinceMs === undefined ? undefined : new Date(Date.now() - sinceMs);
|
|
753
|
+
let startSeq = 1;
|
|
754
|
+
let first = true;
|
|
755
|
+
pages: for (;;) {
|
|
756
|
+
let last = 0;
|
|
757
|
+
let got = 0;
|
|
758
|
+
try {
|
|
759
|
+
const query = first && startTime !== undefined
|
|
760
|
+
? { start_time: startTime, next_by_subj: subject, batch: 256 }
|
|
761
|
+
: { seq: startSeq, next_by_subj: subject, batch: 256 };
|
|
762
|
+
first = false;
|
|
763
|
+
const iter = await this.jsm.direct.getBatch(chatStream(this.space), query);
|
|
764
|
+
for await (const sm of iter) {
|
|
765
|
+
got++;
|
|
766
|
+
if (sm.seq > upToSeq)
|
|
767
|
+
break pages; // crossed the frontier — the tail owns the rest
|
|
768
|
+
last = sm.seq;
|
|
769
|
+
let msg;
|
|
770
|
+
try {
|
|
771
|
+
msg = sm.json();
|
|
772
|
+
}
|
|
773
|
+
catch {
|
|
774
|
+
continue; // skip undecodable
|
|
775
|
+
}
|
|
776
|
+
// Same authenticity guard as the tail; skip our own echoes in history.
|
|
777
|
+
const parsed = parseSubject(sm.subject);
|
|
778
|
+
if (!parsed || msg.from?.id !== parsed.sender || msg.from.id === this.card.id)
|
|
779
|
+
continue;
|
|
780
|
+
collected.push({ msg, seq: sm.seq });
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
catch (e) {
|
|
784
|
+
// Batch Direct Get raises a 404 ("message not found") when no message matches from
|
|
785
|
+
// `start` — the normal "no more history" signal (empty channel or last page), not a
|
|
786
|
+
// fault. Anything else is real.
|
|
787
|
+
if (e.code === 404)
|
|
788
|
+
break;
|
|
789
|
+
this.emit("error", e);
|
|
790
|
+
break;
|
|
791
|
+
}
|
|
792
|
+
if (got === 0 || last === 0)
|
|
793
|
+
break; // drained
|
|
794
|
+
startSeq = last + 1;
|
|
795
|
+
}
|
|
796
|
+
const noop = { ack: () => { }, nak: () => { } };
|
|
797
|
+
for (const { msg } of collected)
|
|
798
|
+
this.emit("message", msg, noop, { historical: true });
|
|
799
|
+
return collected.length;
|
|
800
|
+
}
|
|
500
801
|
async publishPresence() {
|
|
501
802
|
if (!this.kv)
|
|
502
803
|
return;
|
|
@@ -517,6 +818,43 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
517
818
|
this.handleKvEntry(e);
|
|
518
819
|
})().catch((e) => this.emit("error", e));
|
|
519
820
|
}
|
|
821
|
+
/** Watch the channel registry: replay existing keys, then stream updates, into the local
|
|
822
|
+
* cache. Best-effort — a registry the endpoint can't read leaves the cache empty (effective
|
|
823
|
+
* policy then falls back to the default), never a fault. */
|
|
824
|
+
async startChannelWatch() {
|
|
825
|
+
if (!this.channelKv)
|
|
826
|
+
return;
|
|
827
|
+
const iter = await this.channelKv.watch();
|
|
828
|
+
void (async () => {
|
|
829
|
+
for await (const e of iter)
|
|
830
|
+
this.handleChannelEntry(e);
|
|
831
|
+
})().catch((e) => this.emit("error", e));
|
|
832
|
+
}
|
|
833
|
+
handleChannelEntry(e) {
|
|
834
|
+
const gone = e.operation === "DEL" || e.operation === "PURGE";
|
|
835
|
+
if (e.key === CHANNEL_DEFAULTS_KEY) {
|
|
836
|
+
if (gone)
|
|
837
|
+
this.channelDefaults = {};
|
|
838
|
+
else
|
|
839
|
+
try {
|
|
840
|
+
this.channelDefaults = e.json();
|
|
841
|
+
}
|
|
842
|
+
catch {
|
|
843
|
+
/* keep last good */
|
|
844
|
+
}
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
847
|
+
if (gone) {
|
|
848
|
+
this.channelConfigs.delete(e.key);
|
|
849
|
+
return;
|
|
850
|
+
}
|
|
851
|
+
try {
|
|
852
|
+
this.channelConfigs.set(e.key, e.json());
|
|
853
|
+
}
|
|
854
|
+
catch {
|
|
855
|
+
/* keep last good */
|
|
856
|
+
}
|
|
857
|
+
}
|
|
520
858
|
handleKvEntry(e) {
|
|
521
859
|
if (e.operation === "DEL" || e.operation === "PURGE") {
|
|
522
860
|
this.markOffline(e.key);
|
|
@@ -584,6 +922,20 @@ export class CotalEndpoint extends EventEmitter {
|
|
|
584
922
|
this.emit("roster", this.getRoster());
|
|
585
923
|
}
|
|
586
924
|
}
|
|
925
|
+
/** The id token of a chat-stream durable, or null if it isn't one — the inverse of
|
|
926
|
+
* `chatDurable` (`chat_<token(id)>`). token() is lossy, so this returns the token, not the
|
|
927
|
+
* original id; callers match it forward against `token(card.id)`. */
|
|
928
|
+
function chatDurableToken(durable) {
|
|
929
|
+
const prefix = "chat_";
|
|
930
|
+
return durable.startsWith(prefix) ? durable.slice(prefix.length) : null;
|
|
931
|
+
}
|
|
932
|
+
/** Set equality over two subject lists (order/duplicate-insensitive). */
|
|
933
|
+
function sameSet(a, b) {
|
|
934
|
+
if (a.length !== b.length)
|
|
935
|
+
return false;
|
|
936
|
+
const s = new Set(a);
|
|
937
|
+
return b.every((x) => s.has(x));
|
|
938
|
+
}
|
|
587
939
|
function authOpts(a) {
|
|
588
940
|
const tls = a.tls ? {} : undefined;
|
|
589
941
|
// creds (JWT/nkey) are mutually exclusive with token/user/pass — reject rather than
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|