instar 1.3.807 → 1.3.808

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.
@@ -44,6 +44,8 @@ export interface ReplicatedPeerStreamReaderConfig {
44
44
  fsImpl?: JournalFs;
45
45
  /** Optional logger for parity/index degradation. */
46
46
  logger?: (msg: string) => void;
47
+ /** Control seam for non-server consumers. The server starts rebuild after listen. */
48
+ autoRebuild?: boolean;
47
49
  }
48
50
  export declare class ReplicatedPeerStreamReader {
49
51
  private readonly stateDir;
@@ -54,6 +56,8 @@ export declare class ReplicatedPeerStreamReader {
54
56
  private witnessIndexTrusted;
55
57
  private readonly witnessIndex;
56
58
  private loggedWitnessParityMismatch;
59
+ private witnessGeneration;
60
+ private rebuildRunning;
57
61
  constructor(config: ReplicatedPeerStreamReaderConfig);
58
62
  /**
59
63
  * Every origin's CURRENT record for (store, recordKey) — the own stream + each peer
@@ -82,6 +86,14 @@ export declare class ReplicatedPeerStreamReader {
82
86
  observeCommittedEntries(kind: JournalKind, entries: JournalEntry[]): void;
83
87
  /** Rebuild the derived witness index from the journal streams and parity-check it. */
84
88
  rebuildWitnessIndex(): void;
89
+ /**
90
+ * Cooperative post-boot rebuild. Each filesystem read is one fixed chunk and
91
+ * yields before the next, so journal size cannot monopolize boot/the event loop.
92
+ * The candidate map is never served until a separate cooperative legacy pass
93
+ * agrees. A durable append during either pass invalidates publication and queues
94
+ * a fresh rebuild, preventing a half-built/stale index from becoming trusted.
95
+ */
96
+ rebuildWitnessIndexAsync(): Promise<void>;
85
97
  /**
86
98
  * The OWN-stream raw entries for `store`, keyed by contributing journal kind — the
87
99
  * single-origin snapshot input (§6). `origin` MUST be this machine (single-origin,
@@ -100,18 +112,23 @@ export declare class ReplicatedPeerStreamReader {
100
112
  /** Read + tolerant-parse every JournalEntry from the given stream files. */
101
113
  private readKindEntries;
102
114
  private scanRegisteredStreams;
115
+ private scanRegisteredStreamsAsync;
103
116
  /**
104
117
  * Legacy witness answer used only for parity mode. This intentionally uses the
105
118
  * pre-index materializer so an attribution bug in the derived index is caught
106
119
  * before the index is trusted.
107
120
  */
108
121
  private scanWitnessesLegacy;
122
+ /** Separate parity fold: latest per (store, key, origin), then max by key. */
123
+ private scanWitnessesLegacyAsync;
109
124
  private validRegisteredRecord;
110
125
  private putWitness;
111
126
  private witnessKey;
112
127
  private witnessMapsEqual;
113
128
  /** Stream a JSONL file forward in fixed chunks. Never materializes the file. */
114
129
  private forEachJournalEntryInFile;
130
+ /** Fixed-chunk cooperative reader: at most one 64 KiB sync read per turn. */
131
+ private forEachJournalEntryInFileAsync;
115
132
  private parseJournalLine;
116
133
  private journalDir;
117
134
  private peersDir;
@@ -1 +1 @@
1
- {"version":3,"file":"ReplicatedPeerStreamReader.d.ts","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,WAAW,EAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAEL,KAAK,sBAAsB,EAG5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA0B1D,MAAM,WAAW,gCAAgC;IAC/C,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,EAAE,sBAAsB,CAAC;IACjC,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAgCD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAwB;IAChD,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,OAAO,CAAC,2BAA2B,CAAS;gBAEhC,MAAM,EAAE,gCAAgC;IAgBpD;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAKnE,kFAAkF;IAClF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAMvC;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAiBvE;;;;OAIG;IACH,uBAAuB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAUzE,sFAAsF;IACtF,mBAAmB,IAAI,IAAI;IAyB3B;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAoBhF;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAsCnB,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,qBAAqB;IAkB7B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IASxB,gFAAgF;IAChF,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAIhB,oFAAoF;IACpF,OAAO,CAAC,cAAc;IAUtB,yFAAyF;IACzF,OAAO,CAAC,eAAe;IAsBvB,0EAA0E;IAC1E,OAAO,CAAC,WAAW;CAgBpB"}
1
+ {"version":3,"file":"ReplicatedPeerStreamReader.d.ts","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"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"}
@@ -79,9 +79,11 @@ export class ReplicatedPeerStreamReader {
79
79
  selfMachineId;
80
80
  io;
81
81
  logger;
82
- witnessIndexTrusted = true;
82
+ witnessIndexTrusted = false;
83
83
  witnessIndex = new Map();
84
84
  loggedWitnessParityMismatch = false;
85
+ witnessGeneration = 0;
86
+ rebuildRunning = false;
85
87
  constructor(config) {
86
88
  if (!config)
87
89
  throw new Error('ReplicatedPeerStreamReader: config required');
@@ -95,7 +97,11 @@ export class ReplicatedPeerStreamReader {
95
97
  this.selfMachineId = config.selfMachineId;
96
98
  this.io = config.fsImpl ?? realFs();
97
99
  this.logger = config.logger;
98
- this.rebuildWitnessIndex();
100
+ // Boot-critical invariant: constructor performs NO journal scan. Until the
101
+ // cooperative rebuild + parity pass completes, loadWitness serves the
102
+ // legacy path. Production starts this explicitly only after server.listen.
103
+ if (config.autoRebuild === true)
104
+ setImmediate(() => { void this.rebuildWitnessIndexAsync(); });
99
105
  }
100
106
  // ── The ReplicatedStoreReader seams ────────────────────────────────────────
101
107
  /**
@@ -153,6 +159,7 @@ export class ReplicatedPeerStreamReader {
153
159
  continue;
154
160
  this.putWitness(rec.store, rec.recordKey, rec.hlc, this.witnessIndex);
155
161
  }
162
+ this.witnessGeneration++;
156
163
  }
157
164
  /** Rebuild the derived witness index from the journal streams and parity-check it. */
158
165
  rebuildWitnessIndex() {
@@ -177,6 +184,46 @@ export class ReplicatedPeerStreamReader {
177
184
  for (const [k, v] of next.entries())
178
185
  this.witnessIndex.set(k, v);
179
186
  }
187
+ /**
188
+ * Cooperative post-boot rebuild. Each filesystem read is one fixed chunk and
189
+ * yields before the next, so journal size cannot monopolize boot/the event loop.
190
+ * The candidate map is never served until a separate cooperative legacy pass
191
+ * agrees. A durable append during either pass invalidates publication and queues
192
+ * a fresh rebuild, preventing a half-built/stale index from becoming trusted.
193
+ */
194
+ async rebuildWitnessIndexAsync() {
195
+ if (this.rebuildRunning)
196
+ return;
197
+ this.rebuildRunning = true;
198
+ const generation = this.witnessGeneration;
199
+ try {
200
+ const next = new Map();
201
+ await this.scanRegisteredStreamsAsync((rec) => this.putWitness(rec.store, rec.recordKey, rec.hlc, next));
202
+ const legacy = await this.scanWitnessesLegacyAsync();
203
+ if (generation !== this.witnessGeneration) {
204
+ setImmediate(() => { void this.rebuildWitnessIndexAsync(); });
205
+ return;
206
+ }
207
+ if (!this.witnessMapsEqual(next, legacy)) {
208
+ this.witnessIndexTrusted = false;
209
+ if (!this.loggedWitnessParityMismatch) {
210
+ this.loggedWitnessParityMismatch = true;
211
+ this.logger?.('[replicated-peer-stream-reader] witness index parity mismatch; falling back to legacy scan until rebuild parity is restored');
212
+ }
213
+ return;
214
+ }
215
+ this.witnessIndex.clear();
216
+ for (const [key, value] of next)
217
+ this.witnessIndex.set(key, value);
218
+ this.witnessIndexTrusted = true;
219
+ }
220
+ catch { /* @silent-fallback-ok: derived optimization only; legacy witness scanning remains authoritative while an async rebuild fails. */
221
+ this.witnessIndexTrusted = false;
222
+ }
223
+ finally {
224
+ this.rebuildRunning = false;
225
+ }
226
+ }
180
227
  // ── The snapshot-serve seam (replaces loadOwnEntries: () => ({})) ──────────
181
228
  /**
182
229
  * The OWN-stream raw entries for `store`, keyed by contributing journal kind — the
@@ -281,6 +328,22 @@ export class ReplicatedPeerStreamReader {
281
328
  }
282
329
  }
283
330
  }
331
+ async scanRegisteredStreamsAsync(visit) {
332
+ for (const store of this.registry.stores()) {
333
+ const reg = this.registry.getByStore(store);
334
+ if (!reg)
335
+ continue;
336
+ const kind = reg.kind;
337
+ const files = [...this.ownStreamFiles(this.selfMachineId, kind), ...this.peerStreamFiles(kind)];
338
+ for (const file of files) {
339
+ await this.forEachJournalEntryInFileAsync(file, (entry) => {
340
+ const rec = this.validRegisteredRecord(store, reg.schema, kind, entry);
341
+ if (rec)
342
+ visit(rec);
343
+ });
344
+ }
345
+ }
346
+ }
284
347
  /**
285
348
  * Legacy witness answer used only for parity mode. This intentionally uses the
286
349
  * pre-index materializer so an attribution bug in the derived index is caught
@@ -298,6 +361,20 @@ export class ReplicatedPeerStreamReader {
298
361
  }
299
362
  return out;
300
363
  }
364
+ /** Separate parity fold: latest per (store, key, origin), then max by key. */
365
+ async scanWitnessesLegacyAsync() {
366
+ const byOrigin = new Map();
367
+ await this.scanRegisteredStreamsAsync((rec) => {
368
+ const key = `${rec.store}${WITNESS_KEY_SEPARATOR}${rec.recordKey}${WITNESS_KEY_SEPARATOR}${rec.origin}`;
369
+ const prior = byOrigin.get(key);
370
+ if (!prior || HybridLogicalClock.compare(rec.hlc, prior.hlc) > 0)
371
+ byOrigin.set(key, rec);
372
+ });
373
+ const out = new Map();
374
+ for (const rec of byOrigin.values())
375
+ this.putWitness(rec.store, rec.recordKey, rec.hlc, out);
376
+ return out;
377
+ }
301
378
  validRegisteredRecord(store, schema, kind, entry) {
302
379
  if (entry.kind !== kind)
303
380
  return null;
@@ -310,6 +387,7 @@ export class ReplicatedPeerStreamReader {
310
387
  return {
311
388
  store,
312
389
  recordKey: result.envelope.recordKey,
390
+ origin: result.envelope.origin,
313
391
  hlc: result.envelope.hlc,
314
392
  };
315
393
  }
@@ -366,9 +444,43 @@ export class ReplicatedPeerStreamReader {
366
444
  try {
367
445
  this.io.closeSync(fd);
368
446
  }
369
- catch {
370
- /* best-effort */
447
+ catch { /* @silent-fallback-ok: closing a derived-index read descriptor is best-effort; the authoritative journal remains intact. */
448
+ }
449
+ }
450
+ }
451
+ }
452
+ /** Fixed-chunk cooperative reader: at most one 64 KiB sync read per turn. */
453
+ async forEachJournalEntryInFileAsync(filePath, visit) {
454
+ if (!this.io.existsSync(filePath))
455
+ return;
456
+ let fd = null;
457
+ try {
458
+ fd = this.io.openSync(filePath, 'r');
459
+ const buf = Buffer.alloc(STREAM_CHUNK_BYTES);
460
+ const decoder = new StringDecoder('utf8');
461
+ let carry = '';
462
+ for (;;) {
463
+ const read = this.io.readSync(fd, buf, 0, buf.length, null);
464
+ if (read <= 0)
465
+ break;
466
+ carry += decoder.write(buf.subarray(0, read));
467
+ let nl;
468
+ while ((nl = carry.indexOf('\n')) >= 0) {
469
+ const line = carry.slice(0, nl);
470
+ carry = carry.slice(nl + 1);
471
+ this.parseJournalLine(line, visit);
472
+ }
473
+ await new Promise((resolve) => setImmediate(resolve));
474
+ }
475
+ carry += decoder.end();
476
+ this.parseJournalLine(carry, visit);
477
+ }
478
+ finally {
479
+ if (fd !== null) {
480
+ try {
481
+ this.io.closeSync(fd);
371
482
  }
483
+ catch { /* @silent-fallback-ok: closing a derived-index read descriptor is best-effort; legacy reads remain authoritative. */ }
372
484
  }
373
485
  }
374
486
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReplicatedPeerStreamReader.js","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReplicatedPeerStreamReader.js","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAIL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAqB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,0BAA0B,GAI3B,MAAM,+BAA+B,CAAC;AAIvC,iGAAiG;AACjG,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C;uFACuF;AACvF,MAAM,aAAa,GAA+B;IAChD,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;CACzB,CAAC;AAEF,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AA4BvC,SAAS,MAAM;IACb,OAAO;QACL,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,uFAAuF;AACvF,gFAAgF;AAChF,8EAA8E;AAC9E,oFAAoF;AACpF,iFAAiF;AACjF,uFAAuF;AACvF,6BAA6B;AAC7B,MAAM,OAAO,0BAA0B;IACpB,QAAQ,CAAS;IACjB,QAAQ,CAAyB;IACjC,aAAa,CAAS;IACtB,EAAE,CAAY;IACd,MAAM,CAAyB;IACxC,mBAAmB,GAAG,KAAK,CAAC;IACnB,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC7D,2BAA2B,GAAG,KAAK,CAAC;IACpC,iBAAiB,GAAG,CAAC,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;IAE/B,YAAY,MAAwC;QAClD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAClG,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;YAAE,YAAY,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,iBAAiB,CAAC,KAAa,EAAE,SAAiB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAED,kFAAkF;IAClF,cAAc,CAAC,KAAa;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAa,EAAE,SAAiB;QAC1C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;QACvE,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,GAA6B,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7E,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,IAAiB,EAAE,OAAuB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,sFAAsF;IACtF,mBAAmB;QACjB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACtC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,CAAC,6HAA6H,CAAC,CAAC;YAC/I,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB;QAC5B,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAC;YAClD,MAAM,IAAI,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACzG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACrD,IAAI,UAAU,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,YAAY,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;oBACtC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;oBACxC,IAAI,CAAC,MAAM,EAAE,CAAC,6HAA6H,CAAC,CAAC;gBAC/I,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC,CAAC,iIAAiI;YACzI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E;;;;;;OAMG;IACH,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,qDAAqD;QACrD,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmB,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,GAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACK,WAAW,CAAC,KAAa;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmB,CAAC;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAE1B,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YAChD,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;SAC9B,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBAChD,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAA+B,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;gBAClG,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,SAAS;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC5C,MAAM,GAAG,GAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC1F,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;oBAC3C,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnC,2EAA2E;gBAC3E,yEAAyE;gBACzE,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnF,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,4EAA4E;IACpE,eAAe,CAAC,KAAe;QACrC,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YACtF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,qBAAqB,CAAC,KAA+C;QAC3E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmB,CAAC;YACrC,MAAM,KAAK,GAAG;gBACZ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAChD,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;aAC9B,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBACvE,IAAI,GAAG;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,KAA+C;QACtF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAmB,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAChG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACxD,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBACvE,IAAI,GAAG;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,mBAAmB;QACzB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACzD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8EAA8E;IACtE,KAAK,CAAC,wBAAwB;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC3D,MAAM,IAAI,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,qBAAqB,GAAG,GAAG,CAAC,SAAS,GAAG,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACxG,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,qBAAqB,CAC3B,KAAa,EACb,MAAwB,EACxB,IAAiB,EACjB,KAAmB;QAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAA+B,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClG,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO;YACL,KAAK;YACL,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;YACpC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC9B,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;SACzB,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,SAAiB,EAAE,GAAiB,EAAE,MAAsC;QAC5G,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,SAAiB;QACjD,OAAO,GAAG,KAAK,GAAG,qBAAqB,GAAG,SAAS,EAAE,CAAC;IACxD,CAAC;IAEO,gBAAgB,CAAC,CAAiC,EAAE,CAAiC;QAC3F,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IACxE,yBAAyB,CAAC,QAAgB,EAAE,KAAoC;QACtF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC1C,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,SAAS,CAAC;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,IAAI,IAAI,CAAC;oBAAE,MAAM;gBACrB,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,IAAI,EAAU,CAAC;gBACf,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC,CAAC,gKAAgK;YACxK,OAAO;QACT,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC,CAAC,4HAA4H;gBACtI,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,8BAA8B,CAAC,QAAgB,EAAE,KAAoC;QACjG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC1C,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,SAAS,CAAC;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,IAAI,IAAI,CAAC;oBAAE,MAAM;gBACrB,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,IAAI,EAAU,CAAC;gBACf,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qHAAqH,CAAC,CAAC;YAChK,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,KAAoC;QACzE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAC7C,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC,CAAC,+HAA+H;QACzI,CAAC;IACH,CAAC;IAED,8EAA8E;IAEtE,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,oFAAoF;IAC5E,cAAc,CAAC,MAAc,EAAE,IAAiB;QACtD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC;QACxD,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,yFAAyF;IACjF,eAAe,CAAC,IAAiB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAa,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAC,qHAAqH;YAC7H,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,+EAA+E;QAC/E,wEAAwE;QACxE,6EAA6E;QAC7E,iDAAiD;QACjD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,SAAS;YACzC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,0EAA0E;IAClE,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,IAAiB;QAC9D,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAa,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC,CAAC,gFAAgF;YACxF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAsC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.807",
3
+ "version": "1.3.808",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-10T23:23:12.315Z",
5
- "instarVersion": "1.3.807",
4
+ "generatedAt": "2026-07-11T00:25:28.299Z",
5
+ "instarVersion": "1.3.808",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,23 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Large replicated journals no longer delay server boot. Witness-index construction and its parity pass begin only after the server is listening and yield between fixed-size journal chunks.
9
+
10
+ ## What to Tell Your User
11
+
12
+ Agents with large replicated histories can start normally again. The optimization warms in the background while the existing correct witness lookup remains active.
13
+
14
+ ## Summary of New Capabilities
15
+
16
+ - Zero journal reads in the peer-stream reader constructor.
17
+ - Post-listen cooperative index and parity rebuild.
18
+ - Generation fencing prevents a stale or half-built index from being published.
19
+ - Existing parity mismatch fallback remains intact.
20
+
21
+ ## Evidence
22
+
23
+ The regression fixture builds a multi-megabyte replicated journal. Before this fix, construction synchronously read the journal twice; after this fix, construction performs zero journal reads and returns within the bounded threshold, while the post-listen rebuild produces the same witness answer.
@@ -0,0 +1,15 @@
1
+ # ELI16 — Witness index no longer blocks boot
2
+
3
+ ## What changed
4
+
5
+ The replicated-store witness index used to scan every own and peer journal twice while the server was still booting. A large journal could keep the server from listening long enough for its supervisor to terminate and restart it forever.
6
+
7
+ The reader constructor now performs zero journal reads. The server starts the rebuild only after it is listening. Rebuild and parity still stream fixed-size chunks, but yield to the event loop after every chunk. Until both passes finish and agree, witness lookups use the established legacy path.
8
+
9
+ ## Why it is safe
10
+
11
+ No partial candidate index is ever trusted. A durable append increments a generation fence; if anything changes while either pass is running, that candidate is discarded and a new rebuild is queued. A parity mismatch still logs loudly and keeps the legacy path active.
12
+
13
+ ## Evidence
14
+
15
+ A regression test creates a multi-megabyte journal and proves reader construction performs zero journal reads and returns promptly. Unit, integration, and e2e tests cover legacy-before-ready behavior, async publication, O(1) lookup after publication, and rebuild from own plus peer streams.
@@ -0,0 +1,26 @@
1
+ # Side-Effects Review — Witness index async boot
2
+
3
+ ## Summary
4
+
5
+ Moves replicated witness-index rebuild and parity off the boot-critical path. The server listens first; the reader then scans one fixed chunk per event-loop turn. The index remains untrusted until the complete candidate and independent latest-per-origin parity fold agree.
6
+
7
+ ## Safety and interactions
8
+
9
+ - Before/during rebuild, witness lookup uses the legacy authoritative scan.
10
+ - A candidate map is local and never served half-built.
11
+ - Durable local or peer appends increment a generation; a changed generation prevents publication and schedules a fresh pass.
12
+ - Parity mismatch or rebuild error leaves the index untrusted and logs/falls back as before.
13
+ - The synchronous rebuild method remains available for explicit tooling/tests, but production boot wiring uses only the post-listen cooperative method.
14
+ - Fixed 64 KiB reads bound each event-loop slice independently of total journal size.
15
+
16
+ ## Regression surface
17
+
18
+ The shipped regression was a roughly 50 MB peer evolution-action journal causing two synchronous boot scans before listen, exceeding the supervisor window and crash-looping. The new large-journal test pins zero constructor reads and prompt initialization. Existing unit, integration, and e2e index tests now await readiness explicitly where they assert indexed O(1) behavior.
19
+
20
+ ## Rollback
21
+
22
+ Reverting restores synchronous constructor rebuild and therefore restores the boot wedge. There is no persisted schema or data migration in this fix.
23
+
24
+ ## Class-Closure Declaration
25
+
26
+ This closes the synchronous-derived-cache-build-on-boot class structurally: constructors do no bulk journal work, serving begins before optimization warmup, chunked work yields, and publication is parity- plus generation-gated.