instar 1.3.727 → 1.3.729

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.
Files changed (75) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +93 -1
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +11 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/FileClassifier.d.ts.map +1 -1
  8. package/dist/core/FileClassifier.js +11 -0
  9. package/dist/core/FileClassifier.js.map +1 -1
  10. package/dist/core/IntelligenceRouter.d.ts +57 -0
  11. package/dist/core/IntelligenceRouter.d.ts.map +1 -1
  12. package/dist/core/IntelligenceRouter.js +135 -20
  13. package/dist/core/IntelligenceRouter.js.map +1 -1
  14. package/dist/core/LocalSessionOwnershipStore.d.ts +5 -0
  15. package/dist/core/LocalSessionOwnershipStore.d.ts.map +1 -1
  16. package/dist/core/LocalSessionOwnershipStore.js +13 -0
  17. package/dist/core/LocalSessionOwnershipStore.js.map +1 -1
  18. package/dist/core/PostUpdateMigrator.d.ts +1 -0
  19. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  20. package/dist/core/PostUpdateMigrator.js +17 -0
  21. package/dist/core/PostUpdateMigrator.js.map +1 -1
  22. package/dist/core/SessionBuildContextStore.d.ts +20 -0
  23. package/dist/core/SessionBuildContextStore.d.ts.map +1 -1
  24. package/dist/core/SessionBuildContextStore.js +20 -3
  25. package/dist/core/SessionBuildContextStore.js.map +1 -1
  26. package/dist/core/SessionManager.d.ts +5 -0
  27. package/dist/core/SessionManager.d.ts.map +1 -1
  28. package/dist/core/SessionManager.js +3 -0
  29. package/dist/core/SessionManager.js.map +1 -1
  30. package/dist/core/SessionOwnershipRegistry.d.ts +16 -0
  31. package/dist/core/SessionOwnershipRegistry.d.ts.map +1 -1
  32. package/dist/core/SessionOwnershipRegistry.js +13 -0
  33. package/dist/core/SessionOwnershipRegistry.js.map +1 -1
  34. package/dist/core/StateManager.d.ts +20 -0
  35. package/dist/core/StateManager.d.ts.map +1 -1
  36. package/dist/core/StateManager.js +72 -4
  37. package/dist/core/StateManager.js.map +1 -1
  38. package/dist/core/WriteAdmission.d.ts +277 -0
  39. package/dist/core/WriteAdmission.d.ts.map +1 -0
  40. package/dist/core/WriteAdmission.js +514 -0
  41. package/dist/core/WriteAdmission.js.map +1 -0
  42. package/dist/core/WriteDomainRegistry.d.ts +132 -0
  43. package/dist/core/WriteDomainRegistry.d.ts.map +1 -0
  44. package/dist/core/WriteDomainRegistry.js +186 -0
  45. package/dist/core/WriteDomainRegistry.js.map +1 -0
  46. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  47. package/dist/core/devGatedFeatures.js +6 -0
  48. package/dist/core/devGatedFeatures.js.map +1 -1
  49. package/dist/core/types.d.ts +65 -0
  50. package/dist/core/types.d.ts.map +1 -1
  51. package/dist/core/types.js.map +1 -1
  52. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  53. package/dist/monitoring/guardManifest.js +18 -0
  54. package/dist/monitoring/guardManifest.js.map +1 -1
  55. package/dist/scaffold/templates.d.ts.map +1 -1
  56. package/dist/scaffold/templates.js +2 -1
  57. package/dist/scaffold/templates.js.map +1 -1
  58. package/dist/server/AgentServer.d.ts +3 -0
  59. package/dist/server/AgentServer.d.ts.map +1 -1
  60. package/dist/server/AgentServer.js +1 -0
  61. package/dist/server/AgentServer.js.map +1 -1
  62. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  63. package/dist/server/CapabilityIndex.js +1 -0
  64. package/dist/server/CapabilityIndex.js.map +1 -1
  65. package/dist/server/routes.d.ts +6 -0
  66. package/dist/server/routes.d.ts.map +1 -1
  67. package/dist/server/routes.js +79 -0
  68. package/dist/server/routes.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/data/builtin-manifest.json +65 -65
  71. package/src/scaffold/templates.ts +2 -1
  72. package/upgrades/{1.3.727.md → 1.3.728.md} +73 -1
  73. package/upgrades/1.3.729.md +92 -0
  74. package/upgrades/side-effects/per-target-swap-timeout.md +120 -0
  75. package/upgrades/side-effects/standby-write-reconciliation.md +62 -0
@@ -30,6 +30,11 @@ import { type OwnershipAction, type OwnershipReason, type SessionOwnershipRecord
30
30
  */
31
31
  export declare class InMemorySessionOwnershipStore {
32
32
  private recs;
33
+ /** Interface-level commit hook (standby-write-reconciliation §3.2, round-2
34
+ * S4): fired at THIS substrate's own mutation point (`casWrite` — it has no
35
+ * `persist()` funnel), so a WriteAdmission ownership index warmed against
36
+ * this store is never warm-once-then-permanently-stale. */
37
+ onCommit?: (record: import('./SessionOwnership.js').SessionOwnershipRecord) => void;
33
38
  read(sessionKey: string): SessionOwnershipRecord | null;
34
39
  casWrite(candidate: import('./SessionOwnership.js').SessionOwnershipRecord): {
35
40
  ok: boolean;
@@ -57,6 +62,17 @@ export interface SessionOwnershipStore {
57
62
  * implement it.
58
63
  */
59
64
  all?(): SessionOwnershipRecord[];
65
+ /**
66
+ * Interface-level commit hook (standby-write-reconciliation §3.2, round-2
67
+ * S4): assignable listener each substrate fires at its OWN mutation point —
68
+ * `LocalSessionOwnershipStore` inside `persist()` (after `cache.set`),
69
+ * `InMemorySessionOwnershipStore` inside `casWrite()` at its `recs.set`.
70
+ * BOTH mutation paths (`registry.cas()` and `OwnershipApplier`) funnel
71
+ * through the store's commit point, so a consumer (the WriteAdmission
72
+ * ownership index) can never miss a transition the local store saw.
73
+ * A listener throw must never fail the CAS (substrates guard the call).
74
+ */
75
+ onCommit?: (record: SessionOwnershipRecord) => void;
60
76
  }
61
77
  export interface SessionOwnershipRegistryDeps {
62
78
  store: SessionOwnershipStore;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionOwnershipRegistry.d.ts","sourceRoot":"","sources":["../../src/core/SessionOwnershipRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionOwnershipRegistry.d.ts","sourceRoot":"","sources":["../../src/core/SessionOwnershipRegistry.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,11 @@ import { applyOwnershipAction, ownershipNonceKey, } from './SessionOwnership.js'
30
30
  */
31
31
  export class InMemorySessionOwnershipStore {
32
32
  recs = new Map();
33
+ /** Interface-level commit hook (standby-write-reconciliation §3.2, round-2
34
+ * S4): fired at THIS substrate's own mutation point (`casWrite` — it has no
35
+ * `persist()` funnel), so a WriteAdmission ownership index warmed against
36
+ * this store is never warm-once-then-permanently-stale. */
37
+ onCommit;
33
38
  read(sessionKey) {
34
39
  return this.recs.get(sessionKey) ?? null;
35
40
  }
@@ -44,6 +49,14 @@ export class InMemorySessionOwnershipStore {
44
49
  // and proposes an epoch ≤ the landed one).
45
50
  if (candidate.ownershipEpoch > curEpoch) {
46
51
  this.recs.set(candidate.sessionKey, candidate);
52
+ try {
53
+ this.onCommit?.(candidate);
54
+ }
55
+ catch {
56
+ /* @silent-fallback-ok — the commit hook is an observability consumer
57
+ (WriteAdmission ownership index); a listener throw must never fail the
58
+ ownership CAS itself. The index's own ingest never throws by design. */
59
+ }
47
60
  return { ok: true, observed: candidate };
48
61
  }
49
62
  return { ok: false, observed: current };
@@ -1 +1 @@
1
- {"version":3,"file":"SessionOwnershipRegistry.js","sourceRoot":"","sources":["../../src/core/SessionOwnershipRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionOwnershipRegistry.js","sourceRoot":"","sources":["../../src/core/SessionOwnershipRegistry.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * and not require running a DB server.
7
7
  */
8
8
  import type { Session, JobState, ActivityEvent } from './types.js';
9
+ import { type WriteAdmission } from './WriteAdmission.js';
9
10
  export declare class StateManager {
10
11
  private stateDir;
11
12
  private _readOnly;
@@ -19,6 +20,9 @@ export declare class StateManager {
19
20
  * write so spawns/terminations remain instantly visible. */
20
21
  private _sessionsCache;
21
22
  private _sessionsCacheAt;
23
+ /** Standby-write reconciliation (§3.3): when attached, guardWrite delegates
24
+ * to the ownership-scoped admission layer. One-way — never detached. */
25
+ private _writeAdmission;
22
26
  constructor(stateDir: string, opts?: {
23
27
  now?: () => number;
24
28
  });
@@ -52,6 +56,22 @@ export declare class StateManager {
52
56
  * Default false → a pure one-awake standby remains fully read-only (unchanged).
53
57
  */
54
58
  setSessionPoolActive(active: boolean): void;
59
+ /** Whether the active-active session pool is live on this machine (read by
60
+ * the WriteAdmission decision table's pool-inactive clause, §3.2). */
61
+ get sessionPoolActive(): boolean;
62
+ /**
63
+ * ONE-WAY attach of the standby-write-reconciliation admission layer
64
+ * (docs/specs/standby-write-reconciliation.md §3.2 pre-construction window):
65
+ * StateManager exists and takes writes long before the pool block that
66
+ * constructs WriteAdmission runs; during that window guardWrite runs the
67
+ * LEGACY blanket verdict — exactly today's behavior. Attachment happens
68
+ * BEFORE routes are wired and is never detached at runtime, so no HTTP
69
+ * mutating route can ever observe a half-attached state. A second attach is
70
+ * a wiring bug and fails loudly.
71
+ */
72
+ attachWriteAdmission(admission: WriteAdmission): void;
73
+ /** The attached admission layer (wiring-integrity tests; null pre-attach). */
74
+ get writeAdmission(): WriteAdmission | null;
55
75
  /**
56
76
  * Guard that throws in read-only mode. `sessionScoped` marks a write that targets a
57
77
  * single owned session's own file (state/sessions/<id>.json) — permitted on a
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8CnE,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC;;;;iEAI6D;IAC7D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAK3D;;yDAEqD;IACrD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,mFAAmF;IACnF,OAAO,CAAC,uBAAuB;IAI/B;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC,uDAAuD;IACvD,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,wEAAwE;IACxE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIpC;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAW3C,iFAAiF;IACjF,OAAO,CAAC,WAAW;IAQnB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAoB7C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA4BnC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAoBjC,mFAAmF;IACnF,OAAO,CAAC,iBAAiB;IAUzB,6FAA6F;IAC7F,OAAO,CAAC,gBAAgB,CAAC,CAAmD;IAE5E,qFAAqF;IACrF,mBAAmB,CAAC,OAAO,EAAE,OAAO,uBAAuB,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI;IAIhG;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,uBAAuB,EAAE,gBAAgB,GAAG,SAAS;IAInF;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IA4BjC,YAAY,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,GAAG,OAAO,EAAE;IAQhE;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAiC7B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgBzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAoB1C,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IASnC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAmBvC,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,CAAC,EAAE,IAAI,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,aAAa,EAAE;IA0CnB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAoB7B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IASnC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAa5B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAapB"}
1
+ {"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import fs from 'node:fs';
9
9
  import path from 'node:path';
10
10
  import { DegradationReporter } from '../monitoring/DegradationReporter.js';
11
11
  import { SafeFsExecutor } from './SafeFsExecutor.js';
12
+ import { WriteRefusedError } from './WriteAdmission.js';
12
13
  /**
13
14
  * Discriminate filesystem read errors into operator-actionable categories.
14
15
  *
@@ -58,6 +59,9 @@ export class StateManager {
58
59
  * write so spawns/terminations remain instantly visible. */
59
60
  _sessionsCache = null;
60
61
  _sessionsCacheAt = 0;
62
+ /** Standby-write reconciliation (§3.3): when attached, guardWrite delegates
63
+ * to the ownership-scoped admission layer. One-way — never detached. */
64
+ _writeAdmission = null;
61
65
  constructor(stateDir, opts) {
62
66
  this.stateDir = stateDir;
63
67
  this._now = opts?.now ?? (() => Date.now());
@@ -106,6 +110,31 @@ export class StateManager {
106
110
  setSessionPoolActive(active) {
107
111
  this._sessionPoolActive = active;
108
112
  }
113
+ /** Whether the active-active session pool is live on this machine (read by
114
+ * the WriteAdmission decision table's pool-inactive clause, §3.2). */
115
+ get sessionPoolActive() {
116
+ return this._sessionPoolActive;
117
+ }
118
+ /**
119
+ * ONE-WAY attach of the standby-write-reconciliation admission layer
120
+ * (docs/specs/standby-write-reconciliation.md §3.2 pre-construction window):
121
+ * StateManager exists and takes writes long before the pool block that
122
+ * constructs WriteAdmission runs; during that window guardWrite runs the
123
+ * LEGACY blanket verdict — exactly today's behavior. Attachment happens
124
+ * BEFORE routes are wired and is never detached at runtime, so no HTTP
125
+ * mutating route can ever observe a half-attached state. A second attach is
126
+ * a wiring bug and fails loudly.
127
+ */
128
+ attachWriteAdmission(admission) {
129
+ if (this._writeAdmission) {
130
+ throw new Error('attachWriteAdmission: WriteAdmission is already attached (one-way attach — never re-attach at runtime)');
131
+ }
132
+ this._writeAdmission = admission;
133
+ }
134
+ /** The attached admission layer (wiring-integrity tests; null pre-attach). */
135
+ get writeAdmission() {
136
+ return this._writeAdmission;
137
+ }
109
138
  /**
110
139
  * Guard that throws in read-only mode. `sessionScoped` marks a write that targets a
111
140
  * single owned session's own file (state/sessions/<id>.json) — permitted on a
@@ -115,6 +144,41 @@ export class StateManager {
115
144
  * no opts and stay blocked.
116
145
  */
117
146
  guardWrite(operation, opts) {
147
+ // Standby-write reconciliation (§3.3): when the admission layer is
148
+ // attached, it resolves the op's write DOMAIN (registry, exact-key for kv)
149
+ // and runs the §3.2 decision table. Authority ladder: in dry-run it
150
+ // returns 'legacy' (evaluate + log only) and the blanket verdict below
151
+ // keeps enforcing; at live it admits/refuses. An admission-layer throw
152
+ // falls back to the LEGACY verdict (§5 store-seam fail direction).
153
+ const wa = this._writeAdmission;
154
+ if (wa) {
155
+ try {
156
+ const v = wa.guardStoreWrite(operation, {
157
+ key: opts?.key,
158
+ scope: opts?.scope,
159
+ legacySessionScoped: opts?.sessionScoped,
160
+ });
161
+ if (v.enforce === 'admit')
162
+ return;
163
+ if (v.enforce === 'refuse')
164
+ throw new WriteRefusedError(v.refusal, operation);
165
+ // 'legacy' → fall through to the blanket verdict below.
166
+ }
167
+ catch (err) {
168
+ if (err instanceof WriteRefusedError)
169
+ throw err;
170
+ // Fail toward TODAY (§5): the legacy blanket guard verdict below —
171
+ // exactly the current behavior — and the broken guard is recorded
172
+ // (never log-only-invisible, §6).
173
+ try {
174
+ wa.noteStoreSeamError(operation, err);
175
+ }
176
+ catch {
177
+ /* @silent-fallback-ok — recording a broken-guard occurrence is observability;
178
+ it must never mask the legacy verdict this seam is falling back to. */
179
+ }
180
+ }
181
+ }
118
182
  if (!this._readOnly)
119
183
  return;
120
184
  if (opts?.sessionScoped && this._sessionPoolActive)
@@ -179,7 +243,9 @@ export class StateManager {
179
243
  }
180
244
  }
181
245
  saveSession(session) {
182
- this.guardWrite('saveSession', { sessionScoped: true });
246
+ // Scope resolution is the CALLER's job with data already in hand (§3.1
247
+ // keying note): the tmux session name keys the in-memory topic binding.
248
+ this.guardWrite('saveSession', { sessionScoped: true, scope: { sessionId: session.tmuxSession || session.id } });
183
249
  this.validateKey(session.id, 'sessionId');
184
250
  // One-running-record-per-tmux invariant (ghost-record fix): registering a
185
251
  // record as live for a tmux name supersedes any OTHER record still marked
@@ -342,7 +408,9 @@ export class StateManager {
342
408
  return sessions;
343
409
  }
344
410
  removeSession(sessionId) {
345
- this.guardWrite('removeSession', { sessionScoped: true });
411
+ // Only the record id is in hand here; a binding miss on it resolves to the
412
+ // UNBOUND arm (admit — today-equivalent to the sessionScoped carve-out).
413
+ this.guardWrite('removeSession', { sessionScoped: true, scope: { sessionId } });
346
414
  this.validateKey(sessionId, 'sessionId');
347
415
  const filePath = path.join(this.stateDir, 'state', 'sessions', `${sessionId}.json`);
348
416
  if (!fs.existsSync(filePath))
@@ -461,7 +529,7 @@ export class StateManager {
461
529
  }
462
530
  }
463
531
  set(key, value) {
464
- this.guardWrite('set');
532
+ this.guardWrite('set', { key });
465
533
  this.validateKey(key, 'state key');
466
534
  const filePath = path.join(this.stateDir, 'state', `${key}.json`);
467
535
  const dir = path.dirname(filePath);
@@ -469,7 +537,7 @@ export class StateManager {
469
537
  this.atomicWrite(filePath, JSON.stringify(value, null, 2));
470
538
  }
471
539
  delete(key) {
472
- this.guardWrite('delete');
540
+ this.guardWrite('delete', { key });
473
541
  this.validateKey(key, 'state key');
474
542
  const filePath = path.join(this.stateDir, 'state', `${key}.json`);
475
543
  if (!fs.existsSync(filePath))
@@ -1 +1 @@
1
- {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../src/core/StateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ /**
2
+ * WriteAdmission — ONE synchronous, in-memory decision point that classifies
3
+ * every write into a domain (machine-local / session-scoped / topic-scoped /
4
+ * cluster-shared) and admits or TYPED-refuses it, replacing the blanket
5
+ * lease-boolean standby guard with ownership-scoped write admission.
6
+ *
7
+ * Spec: docs/specs/standby-write-reconciliation.md (§3.2 decision table,
8
+ * §3.4 typed-refusal contract, §5 fail directions, §6 observability).
9
+ *
10
+ * Hard properties (invariant I2): the admission path is synchronous and
11
+ * in-memory ONLY — no fs, no network, no LLM, no await. It reads (a) the
12
+ * lease view the coordinator already maintains in memory (via injected
13
+ * `isReadOnly`), (b) the ownership index (boot-warmed + onCommit-updated,
14
+ * never `registry.read()`), (c) the domain registry. Refusal log rows are
15
+ * BUFFERED in memory and flushed off the admission path (a timer), so even
16
+ * observability never puts fs on the decision path.
17
+ *
18
+ * Authority ladder (§7): the layer only gains refusal authority at
19
+ * `dryRun:false` AND after the wave-2 write-surface inventory is complete
20
+ * (WRITE_SURFACE_INVENTORY_COMPLETE — the §9.14 ladder gate). Until then it
21
+ * evaluates + logs would-verdicts while the LEGACY blanket guard keeps
22
+ * enforcing (§9.6).
23
+ */
24
+ import type { SessionOwnershipRecord, SessionOwnershipStatus } from './SessionOwnership.js';
25
+ import { type KvEntry, type OpEntry, type RouteEntry, type WriteDomain, type WriteDomainRegistry } from './WriteDomainRegistry.js';
26
+ export type WriteRefusalCode = 'not-owner' | 'lease-required' | 'ownership-unresolved' | 'read-only-standby' | 'admission-error';
27
+ /** §3.4 — a refusal is TYPED: distinguishable from success, a crash, and garbage. */
28
+ export interface TypedWriteRefusal {
29
+ error: 'write-refused';
30
+ code: WriteRefusalCode;
31
+ domain: WriteDomain;
32
+ scope?: WriteScope;
33
+ thisMachine: {
34
+ machineId: string | null;
35
+ nickname: string | null;
36
+ };
37
+ owner: {
38
+ machineId: string;
39
+ nickname: string | null;
40
+ } | null;
41
+ leaseHolder: string | null;
42
+ asOf: string;
43
+ retryable: boolean;
44
+ /** Advisory prose for a HUMAN reader — never an instruction, never a
45
+ * runnable command (§3.4: moving a topic is consent-gated). */
46
+ hint: string;
47
+ }
48
+ export interface WriteScope {
49
+ topicId?: number | string;
50
+ sessionId?: string;
51
+ }
52
+ export type AdmitVerdict = {
53
+ admit: true;
54
+ } | {
55
+ admit: false;
56
+ refusal: TypedWriteRefusal;
57
+ };
58
+ /** Legacy message preserved for log-scraping continuity (§7 migration parity). */
59
+ export declare function legacyReadOnlyMessage(operation: string): string;
60
+ /** Thrown at the store seam for a refused write. Callers that today
61
+ * catch-and-log the string keep working — the legacy message is preserved. */
62
+ export declare class WriteRefusedError extends Error {
63
+ readonly refusal: TypedWriteRefusal;
64
+ constructor(refusal: TypedWriteRefusal, operation: string);
65
+ }
66
+ type IndexLookup = {
67
+ state: 'unwarmed';
68
+ } | {
69
+ state: 'none';
70
+ } | {
71
+ state: 'malformed';
72
+ } | {
73
+ state: 'record';
74
+ owner: string;
75
+ status: SessionOwnershipStatus;
76
+ };
77
+ /**
78
+ * The ownership index (§3.2, decided — was OQ1): owned by WriteAdmission,
79
+ * warmed by ONE synchronous `store.all()` scan at construction, updated via
80
+ * the `onCommit` hook at each substrate's own commit point. `admitWrite`
81
+ * NEVER calls `registry.read()` — negative answers come from memory.
82
+ */
83
+ export declare class OwnershipIndex {
84
+ private readonly entries;
85
+ private warmed;
86
+ private _lastCasTransitionAt;
87
+ /** Ingest validation (round-2 L1): `ownerMachineId` must be a string and
88
+ * `status` a known FSM status — REGARDLESS of which store path surfaced the
89
+ * record (the warm-scan `all()` validates weaker than `loadOne`). A record
90
+ * failing ingest classifies malformed ⇒ fail-closed `ownership-unresolved`
91
+ * for that scope — never `not-owner` with `owner: null`. */
92
+ ingest(record: unknown, opts?: {
93
+ fromCommit?: boolean;
94
+ }): void;
95
+ /** Boot warm — ONE synchronous scan result, off the request path. */
96
+ warmFrom(records: unknown[]): void;
97
+ lookup(sessionKey: string): IndexLookup;
98
+ get isWarmed(): boolean;
99
+ stats(): {
100
+ entries: number;
101
+ lastCasTransitionAt: string | null;
102
+ };
103
+ /** Test-parity helper: the full keyed view (never on the admission path). */
104
+ snapshot(): Map<string, {
105
+ owner: string;
106
+ status: SessionOwnershipStatus;
107
+ } | 'malformed'>;
108
+ }
109
+ export interface WriteAdmissionDeps {
110
+ /** Coordinator/mesh identity machine id (null on identity-less installs). */
111
+ thisMachineId: string | null;
112
+ /** The lease view the coordinator maintains in memory (StateManager._readOnly). */
113
+ isReadOnly: () => boolean;
114
+ /** Whether the active-active session pool is live (§3.2 pool-inactive clause). */
115
+ isPoolActive: () => boolean;
116
+ /** Domain registry (§3.5) — the SAME map the server wires and tests read. */
117
+ registry: WriteDomainRegistry;
118
+ /** dryRun (§7): true ⇒ the layer logs would-verdicts, legacy guard enforces. */
119
+ dryRun: boolean;
120
+ /** In-memory session→topic binding (TelegramAdapter.getTopicForSession —
121
+ * the in-memory map ONLY; the disk fallback is forbidden on the admission
122
+ * path, I2). Sync + in-memory by contract. */
123
+ resolveTopicForSession?: (sessionId: string) => number | string | null;
124
+ /** Local lease-holder knowledge for refusal bodies (I7 — in-memory only). */
125
+ leaseHolder?: () => string | null;
126
+ /** Nickname decoration for refusal bodies (in-memory only). */
127
+ nicknameOf?: (machineId: string) => string | null;
128
+ selfNickname?: () => string | null;
129
+ /** One deduped aggregate attention item per (route/op, code) window (§6). */
130
+ raiseAttention?: (item: {
131
+ id: string;
132
+ title: string;
133
+ body: string;
134
+ }) => void;
135
+ /** ≥N refusals of one (surface, code) within the window ⇒ ONE aggregate item. */
136
+ refusalAggregateThreshold?: number;
137
+ /** Where logs/write-admission.jsonl lives (dir). Omit ⇒ no file logging. */
138
+ logDir?: string;
139
+ now?: () => number;
140
+ /** Test seam: event-loop histogram + flush timer control. */
141
+ disableTimers?: boolean;
142
+ /**
143
+ * TEST SEAM ONLY — overrides the wave-2 inventory latch
144
+ * (WRITE_SURFACE_INVENTORY_COMPLETE, §9.14) so the LIVE refusal machinery is
145
+ * provable by tests before wave 2 flips the real constant. Production wiring
146
+ * NEVER passes this: the compiled constant governs, so `dryRun:false` in
147
+ * config cannot grant refusal authority until the reviewed inventory lands.
148
+ */
149
+ inventoryComplete?: boolean;
150
+ }
151
+ interface DomainCounters {
152
+ admitted: number;
153
+ refused: number;
154
+ wouldRefuse: number;
155
+ wouldAdmitChanged: number;
156
+ }
157
+ /** The ownership store surface WriteAdmission consumes (§3.2): the one-time
158
+ * boot-warm scan + the interface-level onCommit hook (round-2 S4). */
159
+ export interface AdmissionOwnershipStore {
160
+ all?(): SessionOwnershipRecord[];
161
+ onCommit?: (record: SessionOwnershipRecord) => void;
162
+ }
163
+ export declare class WriteAdmission {
164
+ private readonly d;
165
+ readonly index: OwnershipIndex;
166
+ private readonly counters;
167
+ private readonly recentRefusals;
168
+ private readonly aggregate;
169
+ private readonly logBuffer;
170
+ private logStore;
171
+ private flushTimer;
172
+ private histogram;
173
+ private gaugeTimer;
174
+ private starvedWindows;
175
+ private lastGauge;
176
+ constructor(deps: WriteAdmissionDeps, ownershipStore?: AdmissionOwnershipStore | null);
177
+ /** The onCommit hook target (§3.2.2) — wire on BOTH shipped substrates. */
178
+ onOwnershipCommit(record: SessionOwnershipRecord): void;
179
+ /** legacy = layer constructed but... never (construction implies enabled);
180
+ * dry-run = evaluating + logging, legacy guard enforcing;
181
+ * live = refusal authority (dryRun:false AND inventory complete — §9.14). */
182
+ mode(): 'dry-run' | 'live';
183
+ get isLive(): boolean;
184
+ get dryRun(): boolean;
185
+ /**
186
+ * Pure, synchronous, in-memory verdict (I2). Reads only the injected
187
+ * in-memory lease view, the ownership index, and the registry entry.
188
+ */
189
+ evaluate(domain: WriteDomain, scope?: WriteScope, entry?: OpEntry | KvEntry | RouteEntry | null): AdmitVerdict;
190
+ private legacyBooleanVerdict;
191
+ private refusal;
192
+ /**
193
+ * Verdict for StateManager.guardWrite. Returns:
194
+ * - 'admit' — pass (live authority admitted the write)
195
+ * - 'refuse' — throw the carried WriteRefusedError (live authority refused)
196
+ * - 'legacy' — dry-run/ladder-gated: caller runs today's legacy verdict
197
+ * A throw ANYWHERE inside is caught by the caller ⇒ legacy verdict (§5).
198
+ */
199
+ guardStoreWrite(op: string, opts?: {
200
+ key?: string;
201
+ scope?: WriteScope;
202
+ legacySessionScoped?: boolean;
203
+ }): {
204
+ enforce: 'admit';
205
+ } | {
206
+ enforce: 'refuse';
207
+ refusal: TypedWriteRefusal;
208
+ } | {
209
+ enforce: 'legacy';
210
+ };
211
+ /**
212
+ * Verdict for a mutating HTTP route. Returns:
213
+ * - 'proceed' — route continues into today's exact flow
214
+ * - 'refuse' — respond 409 + Retry-After with the typed body
215
+ * An unwired route (no registry entry) always proceeds (I8). An admission-
216
+ * layer throw splits by domain (§9.16): machine-local PROCEEDS (fail toward
217
+ * delivery), scoped/cluster-shared REFUSE typed `admission-error` (fail
218
+ * closed). Both directions are logged + join the §6 aggregate.
219
+ */
220
+ guardRouteWrite(method: string, routePath: string, scope?: WriteScope): {
221
+ action: 'proceed';
222
+ } | {
223
+ action: 'refuse';
224
+ refusal: TypedWriteRefusal;
225
+ status: 409;
226
+ retryAfterSeconds: number;
227
+ };
228
+ private record;
229
+ private recordDryRun;
230
+ private bumpAggregate;
231
+ /** Admission-layer throw at the STORE seam (§5): the caller fell back to the
232
+ * legacy verdict; record it so a broken guard is never log-only-invisible. */
233
+ noteStoreSeamError(op: string, err: unknown): void;
234
+ private log;
235
+ /** Flush buffered rows to logs/write-admission.jsonl — OFF the admission
236
+ * path (I2: even observability never puts fs on the decision path).
237
+ * Routed through JsonlStore (Bounded Accumulation: bounded + rotated). */
238
+ flushLog(): void;
239
+ private sampleGauge;
240
+ eventLoopStats(): {
241
+ p50: number;
242
+ p99: number;
243
+ max: number;
244
+ starvedWindows24h: number;
245
+ };
246
+ /** The GET /write-admission body (§6). */
247
+ status(): {
248
+ enabled: true;
249
+ dryRun: boolean;
250
+ mode: 'dry-run' | 'live';
251
+ inventoryComplete: boolean;
252
+ domains: Array<{
253
+ domain: WriteDomain;
254
+ } & DomainCounters>;
255
+ recentRefusals: Array<Omit<TypedWriteRefusal, 'hint'> & {
256
+ seam: string;
257
+ surface: string;
258
+ }>;
259
+ refusedClassifications: Array<{
260
+ reason: string;
261
+ }>;
262
+ ownershipIndex: {
263
+ entries: number;
264
+ lastCasTransitionAt: string | null;
265
+ };
266
+ eventLoop: {
267
+ p50: number;
268
+ p99: number;
269
+ max: number;
270
+ starvedWindows24h: number;
271
+ };
272
+ };
273
+ /** Tear down timers/histogram (tests + shutdown). */
274
+ stop(): void;
275
+ }
276
+ export {};
277
+ //# sourceMappingURL=WriteAdmission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteAdmission.d.ts","sourceRoot":"","sources":["../../src/core/WriteAdmission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACnE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB;oEACgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE1F,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;+EAC+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;gBACxB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM;CAK1D;AAMD,KAAK,WAAW,GACZ;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAEvE;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsF;IAC9G,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,oBAAoB,CAAuB;IAEnD;;;;iEAI6D;IAC7D,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAY9D,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAKlC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAQvC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAIhE,6EAA6E;IAC7E,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,sBAAsB,CAAA;KAAE,GAAG,WAAW,CAAC;CAGzF;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mFAAmF;IACnF,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,kFAAkF;IAClF,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB;;mDAE+C;IAC/C,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACvE,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,iFAAiF;IACjF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAQD;uEACuE;AACvE,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,IAAI,sBAAsB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAqB;IACvC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkF;IACjH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8E;IACxG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAyE;gBAE9E,IAAI,EAAE,kBAAkB,EAAE,cAAc,CAAC,EAAE,uBAAuB,GAAG,IAAI;IA2CrF,2EAA2E;IAC3E,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAIvD;;kFAE8E;IAC9E,IAAI,IAAI,SAAS,GAAG,MAAM;IAK1B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAID;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,GAAG,YAAY;IAqE9G,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,OAAO;IA8Cf;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,CAAC;QAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,GAClG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GACpB;QAAE,OAAO,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAE,GACjD;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE;IAmBzB;;;;;;;;OAQG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GACjE;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAoC5F,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,aAAa;IA0BrB;mFAC+E;IAC/E,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAKlD,OAAO,CAAC,GAAG;IAOX;;+EAE2E;IAC3E,QAAQ,IAAI,IAAI;IAYhB,OAAO,CAAC,WAAW;IAiBnB,cAAc,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAItF,0CAA0C;IAC1C,MAAM,IAAI;QACR,OAAO,EAAE,IAAI,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,OAAO,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,WAAW,CAAA;SAAE,GAAG,cAAc,CAAC,CAAC;QACzD,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3F,sBAAsB,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClD,cAAc,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QACxE,SAAS,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAA;SAAE,CAAC;KACjF;IAcD,qDAAqD;IACrD,IAAI,IAAI,IAAI;CASb"}