@chipschat/harness 1.0.4 → 1.0.6

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/connect.d.ts CHANGED
@@ -34,6 +34,17 @@ export interface ConnectOptions {
34
34
  readonly since?: number | undefined;
35
35
  /** Reconnect with backoff when the socket drops. On unless said otherwise. */
36
36
  readonly reconnect?: boolean | undefined;
37
+ /**
38
+ * Wait for a server that can't be reached yet, trying again as a reconnect does, instead of
39
+ * failing the first connect. For a harness kept running by its machine (a launch agent, a
40
+ * systemd unit), which starts at login, perhaps before the network or its server is up: failing
41
+ * there only has the service start it again every few seconds. A refusal (a token revoked, a
42
+ * hello refused) still fails it. Off unless said, so a person running a harness by hand hears at
43
+ * once that the server isn't there.
44
+ */
45
+ readonly waitForServer?: boolean | undefined;
46
+ /** Each failed try while waiting for the server, with why, for the harness's log. */
47
+ readonly onWaiting?: ((why: string) => void) | undefined;
37
48
  /**
38
49
  * How much of a room this harness is handed with each message for it, as `message.new`'s
39
50
  * `context` (ADR 0088): 20 lines and 4,000 characters unless said otherwise, 200 and 32,000 at
@@ -57,8 +68,9 @@ export interface ConnectOptions {
57
68
  */
58
69
  readonly settings?: SettingsHandlers | undefined;
59
70
  /**
60
- * Where to keep what must survive a restart: the last `seq` heard, events the server never
61
- * answered, and runs not yet ended, which are ended for the harness when it comes back
71
+ * Where to keep what must survive a restart: the last `seq` heard, the messages for this
72
+ * harness it had not yet started a run for (heard again after the restart), events the server
73
+ * never answered, and runs not yet ended, which are ended for the harness when it comes back
62
74
  * (`fileStore(path)`). Without one, a restart starts from `since` and forgets the rest.
63
75
  */
64
76
  readonly store?: HarnessStore | undefined;
@@ -78,6 +90,18 @@ export interface RestartAsk {
78
90
  * otherwise keep every event of its rooms for as long as it ran; past this the oldest go.
79
91
  */
80
92
  export declare const HELD_MOST = 20000;
93
+ /**
94
+ * How long a message for this harness is kept to be heard again after a restart while no run
95
+ * has started in its room. A harness that answers every message with a run lets it go sooner; one
96
+ * that chose not to answer, or answers some other way, lets it go after this.
97
+ */
98
+ export declare const UNANSWERED_KEPT_MS: number;
99
+ /**
100
+ * Whether a waiting message is taken up by a run or words from `by`: the harness itself, or a
101
+ * message that named nobody, takes it whole; an agent takes its own part, and the message is
102
+ * taken up once every agent it was for has.
103
+ */
104
+ export declare function takenUp(takers: Set<string>, by: string | undefined): boolean;
81
105
  export interface SocketLike {
82
106
  readonly send: (data: string) => void;
83
107
  readonly close: () => void;
@@ -190,6 +214,21 @@ export declare class Chips {
190
214
  private helloEvent;
191
215
  /** What this harness last said is wrong on its side, said again whenever it reconnects. */
192
216
  private trouble;
217
+ /**
218
+ * Messages for this harness, by `seq`, with no run started in their room since: a bridge
219
+ * gathers a message for a moment, or queues it behind a turn already going (ADR 0294), before
220
+ * it starts one. `since` is past them, so they are kept to be heard again after a restart,
221
+ * which would otherwise lose them for good.
222
+ */
223
+ private readonly unanswered;
224
+ /** When each message a process before this one left waiting was heard, by `seq`. */
225
+ private readonly leftAt;
226
+ /**
227
+ * After a restart that kept messages unanswered: everything up to `upTo` was heard before, so
228
+ * it is passed over, except the messages in `again`, which are heard as if new. Over once an
229
+ * event past `upTo` arrives.
230
+ */
231
+ private replay;
193
232
  /** The runs this process started or took up and has not ended, for the store. */
194
233
  private readonly openRuns;
195
234
  /** Runs a process before this one left open, ended once this one has said hello. */
@@ -357,7 +396,31 @@ export declare class Chips {
357
396
  /** Send any event. The envelope's actor, ts and workspace are the server's to fill in. */
358
397
  send(type: string, envelope: Readonly<Record<string, unknown>>, payload: Readonly<Record<string, unknown>>, key?: string): Promise<Ack>;
359
398
  private opened;
399
+ /**
400
+ * A run is over: it completed, failed, or a person stopped it. It is let go here, so nothing
401
+ * more reaches it and a harness that runs for weeks doesn't keep every run it ever had.
402
+ */
360
403
  private ended;
404
+ /**
405
+ * Heard before this process started, so passed over: everything up to the replay's `upTo`,
406
+ * except the messages kept unanswered, which are heard again.
407
+ */
408
+ private passedOver;
409
+ /** A message for this harness waits until a run starts for it in its room. */
410
+ private waitsForAnswer;
411
+ /** A working turn said it heard this message: it waits for no run of its own any more. */
412
+ private heardInTurn;
413
+ /**
414
+ * A run started in a room, or something said there outside a run: the messages waiting there
415
+ * for whoever did it are taken up. Sent as one of its agents, only those for that agent; sent
416
+ * as the harness itself, all of them.
417
+ */
418
+ private answered;
419
+ /**
420
+ * The messages to hear again after a restart, each with when it was first heard: those still
421
+ * unanswered, and those a process before this one left that are not yet replayed.
422
+ */
423
+ private toHearAgain;
361
424
  /**
362
425
  * End the runs a process before this one left open: its work died with it, and a run nobody
363
426
  * ends keeps its thinking bubble until the harness's next one. Refused for one Chips had ended
@@ -431,6 +494,14 @@ export declare class Chips {
431
494
  private routeToRuns;
432
495
  private readonly named;
433
496
  private setState;
497
+ /**
498
+ * Whether a first connect waits on this failure: told to wait for its server, and the server
499
+ * couldn't be reached or couldn't answer (no answer at all, a 5xx, busy, or not on the relay
500
+ * yet), rather than refusing this harness.
501
+ */
502
+ private waitsFor;
503
+ /** The first connect again after a wait, as a reconnect waits; `connect` resolves once it is in. */
504
+ private tryAgain;
434
505
  private scheduleReconnect;
435
506
  }
436
507
  /** Connect to chipsd. `const chips = await connect({ url, token })`. */
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
package/dist/connect.js CHANGED
@@ -21,6 +21,27 @@ import { acceptsFor, Settings } from "./settings.js";
21
21
  * otherwise keep every event of its rooms for as long as it ran; past this the oldest go.
22
22
  */
23
23
  export const HELD_MOST = 20_000;
24
+ /**
25
+ * How long a message for this harness is kept to be heard again after a restart while no run
26
+ * has started in its room. A harness that answers every message with a run lets it go sooner; one
27
+ * that chose not to answer, or answers some other way, lets it go after this.
28
+ */
29
+ export const UNANSWERED_KEPT_MS = 60 * 60_000;
30
+ /**
31
+ * Whether a waiting message is taken up by a run or words from `by`: the harness itself, or a
32
+ * message that named nobody, takes it whole; an agent takes its own part, and the message is
33
+ * taken up once every agent it was for has.
34
+ */
35
+ export function takenUp(takers, by) {
36
+ if (by === undefined || takers.size === 0)
37
+ return true;
38
+ return takers.delete(by) && takers.size === 0;
39
+ }
40
+ /**
41
+ * A server that can't take this harness yet, as the relay says it: busy, or not connected to the
42
+ * relay (the computer asleep, or starting). Waited for, as no answer at all is.
43
+ */
44
+ const UNREACHABLE = new Set(["busy", "no_such_server"]);
24
45
  /** What `on` hears that is the connection's own, and no event of the log. */
25
46
  const OF_THE_CONNECTION = new Set(["hello", "state", "receipt"]);
26
47
  function agentOf(body) {
@@ -86,6 +107,21 @@ export class Chips {
86
107
  helloEvent;
87
108
  /** What this harness last said is wrong on its side, said again whenever it reconnects. */
88
109
  trouble;
110
+ /**
111
+ * Messages for this harness, by `seq`, with no run started in their room since: a bridge
112
+ * gathers a message for a moment, or queues it behind a turn already going (ADR 0294), before
113
+ * it starts one. `since` is past them, so they are kept to be heard again after a restart,
114
+ * which would otherwise lose them for good.
115
+ */
116
+ unanswered = new Map();
117
+ /** When each message a process before this one left waiting was heard, by `seq`. */
118
+ leftAt = new Map();
119
+ /**
120
+ * After a restart that kept messages unanswered: everything up to `upTo` was heard before, so
121
+ * it is passed over, except the messages in `again`, which are heard as if new. Over once an
122
+ * event past `upTo` arrives.
123
+ */
124
+ replay;
89
125
  /** The runs this process started or took up and has not ended, for the store. */
90
126
  openRuns = new Map();
91
127
  /** Runs a process before this one left open, ended once this one has said hello. */
@@ -95,6 +131,18 @@ export class Chips {
95
131
  this.options = options;
96
132
  const kept = options.store?.load();
97
133
  this.since = options.since ?? kept?.since;
134
+ // Waiting longer than a message is kept for, it is let go here too: a harness stopped for a
135
+ // day doesn't answer yesterday's message when it starts.
136
+ const fresh = Date.now() - UNANSWERED_KEPT_MS;
137
+ const again = (kept?.unanswered ?? []).filter((seq) => {
138
+ const at = kept?.unansweredAt?.[String(seq)];
139
+ return this.since !== undefined && seq <= this.since && at !== undefined && at > fresh;
140
+ });
141
+ for (const seq of again)
142
+ this.leftAt.set(seq, kept?.unansweredAt?.[String(seq)] ?? 0);
143
+ if (options.since === undefined && this.since !== undefined && again.length > 0) {
144
+ this.replay = { upTo: this.since, again: new Set(again) };
145
+ }
98
146
  for (const event of kept?.outbox ?? []) {
99
147
  this.outbox.add(String(event["idempotency_key"]), event).catch(() => undefined);
100
148
  }
@@ -408,7 +456,6 @@ export class Chips {
408
456
  });
409
457
  }
410
458
  catch (error) {
411
- this.activeRuns.delete(runId);
412
459
  this.ended(runId);
413
460
  throw error;
414
461
  }
@@ -423,6 +470,12 @@ export class Chips {
423
470
  const answer = this.outbox.add(key, event);
424
471
  if (type === "run.completed" || type === "run.failed")
425
472
  this.ended(String(envelope["run_id"]));
473
+ if (type === "run.started" || (type === "message.post" && envelope["run_id"] === undefined)) {
474
+ this.answered(envelope);
475
+ }
476
+ // A turn already working took the message in: no run will start for it, and it is answered.
477
+ if (type === "message.heard")
478
+ this.heardInTurn(payload["message_id"]);
426
479
  this.save();
427
480
  if (this.ready && this.socket !== undefined) {
428
481
  this.socket.send(JSON.stringify({ frame: "event", event }));
@@ -434,10 +487,94 @@ export class Chips {
434
487
  this.openRuns.set(run.runId, run);
435
488
  this.save();
436
489
  }
490
+ /**
491
+ * A run is over: it completed, failed, or a person stopped it. It is let go here, so nothing
492
+ * more reaches it and a harness that runs for weeks doesn't keep every run it ever had.
493
+ */
437
494
  ended(runId) {
495
+ this.activeRuns.delete(runId);
438
496
  if (this.openRuns.delete(runId))
439
497
  this.save();
440
498
  }
499
+ /**
500
+ * Heard before this process started, so passed over: everything up to the replay's `upTo`,
501
+ * except the messages kept unanswered, which are heard again.
502
+ */
503
+ passedOver(seq) {
504
+ const replay = this.replay;
505
+ if (replay === undefined)
506
+ return false;
507
+ if (seq > replay.upTo) {
508
+ this.replay = undefined;
509
+ return false;
510
+ }
511
+ return !replay.again.delete(seq);
512
+ }
513
+ /** A message for this harness waits until a run starts for it in its room. */
514
+ waitsForAnswer(event, seq) {
515
+ const spaceId = event["space_id"];
516
+ if (event["type"] !== "message.new" || typeof spaceId !== "string")
517
+ return;
518
+ const takers = Array.isArray(event["for"])
519
+ ? event["for"].filter((each) => typeof each === "string")
520
+ : [];
521
+ const messageId = typeof event["message_id"] === "string" ? event["message_id"] : undefined;
522
+ // Heard again after a restart, it has waited since it was first heard.
523
+ const at = this.leftAt.get(seq) ?? Date.now();
524
+ this.unanswered.set(seq, { spaceId, messageId, takers: new Set(takers), at });
525
+ }
526
+ /** A working turn said it heard this message: it waits for no run of its own any more. */
527
+ heardInTurn(messageId) {
528
+ if (typeof messageId !== "string")
529
+ return;
530
+ let changed = false;
531
+ for (const [seq, waiting] of this.unanswered) {
532
+ if (waiting.messageId === messageId) {
533
+ this.unanswered.delete(seq);
534
+ changed = true;
535
+ }
536
+ }
537
+ if (changed)
538
+ this.save();
539
+ }
540
+ /**
541
+ * A run started in a room, or something said there outside a run: the messages waiting there
542
+ * for whoever did it are taken up. Sent as one of its agents, only those for that agent; sent
543
+ * as the harness itself, all of them.
544
+ */
545
+ answered(envelope) {
546
+ const spaceId = envelope["space_id"];
547
+ if (typeof spaceId !== "string")
548
+ return;
549
+ const actor = envelope["actor"];
550
+ const by = typeof actor?.id === "string" ? actor.id : undefined;
551
+ let changed = false;
552
+ for (const [seq, waiting] of this.unanswered) {
553
+ if (waiting.spaceId === spaceId && takenUp(waiting.takers, by)) {
554
+ this.unanswered.delete(seq);
555
+ changed = true;
556
+ }
557
+ }
558
+ if (changed)
559
+ this.save();
560
+ }
561
+ /**
562
+ * The messages to hear again after a restart, each with when it was first heard: those still
563
+ * unanswered, and those a process before this one left that are not yet replayed.
564
+ */
565
+ toHearAgain() {
566
+ const now = Date.now();
567
+ for (const [seq, waiting] of this.unanswered) {
568
+ if (now - waiting.at > UNANSWERED_KEPT_MS)
569
+ this.unanswered.delete(seq);
570
+ }
571
+ const heardAt = new Map();
572
+ for (const seq of this.replay?.again ?? [])
573
+ heardAt.set(seq, this.leftAt.get(seq) ?? now);
574
+ for (const [seq, waiting] of this.unanswered)
575
+ heardAt.set(seq, waiting.at);
576
+ return new Map([...heardAt].sort((a, b) => a[0] - b[0]));
577
+ }
441
578
  /**
442
579
  * End the runs a process before this one left open: its work died with it, and a run nobody
443
580
  * ends keeps its thinking bubble until the harness's next one. Refused for one Chips had ended
@@ -466,8 +603,14 @@ export class Chips {
466
603
  this.saving.unref?.();
467
604
  }
468
605
  saveNow() {
469
- this.options.store?.save({
606
+ if (this.options.store === undefined)
607
+ return;
608
+ const again = this.toHearAgain();
609
+ this.options.store.save({
470
610
  ...(this.since === undefined ? {} : { since: this.since }),
611
+ ...(again.size === 0
612
+ ? {}
613
+ : { unanswered: [...again.keys()], unansweredAt: Object.fromEntries(again) }),
471
614
  outbox: this.outbox.unanswered(),
472
615
  runs: [...this.openRuns.values(), ...this.orphans],
473
616
  });
@@ -508,11 +651,15 @@ export class Chips {
508
651
  this.setState("connecting");
509
652
  // Before a socket exists, a failure tells the first caller. A reconnect has nobody to
510
653
  // tell, so it tries again: a server still down on this attempt may be up by the next.
654
+ // So does a first connect told to wait for its server, unless it was refused.
511
655
  const failed = (what, error) => {
512
- if (first)
513
- reject(new ConnectError(`${what}: ${describe(error)}`));
514
- else
656
+ const why = `${what}: ${describe(error)}`;
657
+ if (!first)
515
658
  this.scheduleReconnect();
659
+ else if (this.waitsFor(error))
660
+ this.tryAgain(why, resolve, reject);
661
+ else
662
+ reject(new ConnectError(why));
516
663
  };
517
664
  void this.socketUrl().then((url) => {
518
665
  let socket;
@@ -533,10 +680,13 @@ export class Chips {
533
680
  /** The handshake's outcome: the hello, a refusal, or the socket gone before either. */
534
681
  settled(socket, hello, first, resolve, reject) {
535
682
  if (hello === undefined) {
536
- if (first)
537
- reject(new ConnectError("the server closed the socket before saying hello"));
538
- else
683
+ const why = "the server closed the socket before saying hello";
684
+ if (!first)
539
685
  this.scheduleReconnect();
686
+ else if (this.options.waitForServer === true)
687
+ this.tryAgain(why, resolve, reject);
688
+ else
689
+ reject(new ConnectError(why));
540
690
  return;
541
691
  }
542
692
  if (hello instanceof ConnectError) {
@@ -618,10 +768,13 @@ export class Chips {
618
768
  onHello(socket, hello) {
619
769
  this.helloEvent = hello;
620
770
  this.emitter.emit("hello", hello);
771
+ // After a restart, from just before the first message still to be heard again.
772
+ const again = this.replay?.again;
773
+ const from = again !== undefined && again.size > 0 ? Math.min(...again) - 1 : this.since;
621
774
  socket.send(JSON.stringify({
622
775
  frame: "subscribe",
623
776
  workspace_id: hello.workspace_id,
624
- ...(this.since === undefined ? {} : { since: this.since }),
777
+ ...(from === undefined ? {} : { since: from }),
625
778
  }));
626
779
  // Whatever the last socket did not get an answer for goes first: the server acks a resend
627
780
  // it already applied as a duplicate, so sending twice is safe by design.
@@ -748,15 +901,19 @@ export class Chips {
748
901
  }
749
902
  const seq = event["seq"];
750
903
  if (typeof seq === "number") {
904
+ if (this.passedOver(seq))
905
+ return;
751
906
  this.since = Math.max(this.since ?? 0, seq);
907
+ this.waitsForAnswer(event, seq);
752
908
  this.save();
753
909
  }
754
- if (event["type"] === "run.cancel" && typeof event["run_id"] === "string") {
755
- this.ended(event["run_id"]);
756
- }
757
910
  this.settleWaiters(event);
758
911
  this.emitter.emit("event", event);
759
912
  this.routeToRuns(event);
913
+ // After the run has heard it: a stopped run is let go.
914
+ if (event["type"] === "run.cancel" && typeof event["run_id"] === "string") {
915
+ this.ended(event["run_id"]);
916
+ }
760
917
  const asked = this.asks.heard(event);
761
918
  const type = event["type"];
762
919
  if (typeof type === "string" && type in this.named && !asked) {
@@ -881,6 +1038,32 @@ export class Chips {
881
1038
  this.connectionState = state;
882
1039
  this.emitter.emit("state", state);
883
1040
  }
1041
+ /**
1042
+ * Whether a first connect waits on this failure: told to wait for its server, and the server
1043
+ * couldn't be reached or couldn't answer (no answer at all, a 5xx, busy, or not on the relay
1044
+ * yet), rather than refusing this harness.
1045
+ */
1046
+ waitsFor(error) {
1047
+ if (this.options.waitForServer !== true)
1048
+ return false;
1049
+ if (!(error instanceof RefusedError))
1050
+ return true;
1051
+ return /^(5\d\d|429)$/.test(error.code) || UNREACHABLE.has(error.code);
1052
+ }
1053
+ /** The first connect again after a wait, as a reconnect waits; `connect` resolves once it is in. */
1054
+ tryAgain(why, resolve, reject) {
1055
+ if (this.closed) {
1056
+ reject(new ConnectError("the connection was closed while waiting for the server"));
1057
+ return;
1058
+ }
1059
+ this.options.onWaiting?.(why);
1060
+ this.retry += 1;
1061
+ clearTimeout(this.timer);
1062
+ this.timer = setTimeout(() => {
1063
+ this.timer = undefined;
1064
+ this.open(true).then(resolve, reject);
1065
+ }, Math.min(500 * this.retry, 5000));
1066
+ }
884
1067
  scheduleReconnect() {
885
1068
  if (this.closed || this.options.reconnect === false) {
886
1069
  if (!this.closed)
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}