instar 1.3.658 → 1.3.659

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 (31) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +52 -0
  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 +14 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/SessionOwnershipRegistry.d.ts +14 -0
  8. package/dist/core/SessionOwnershipRegistry.d.ts.map +1 -1
  9. package/dist/core/SessionOwnershipRegistry.js +9 -0
  10. package/dist/core/SessionOwnershipRegistry.js.map +1 -1
  11. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  12. package/dist/core/devGatedFeatures.js +6 -0
  13. package/dist/core/devGatedFeatures.js.map +1 -1
  14. package/dist/core/types.d.ts +22 -0
  15. package/dist/core/types.d.ts.map +1 -1
  16. package/dist/core/types.js.map +1 -1
  17. package/dist/monitoring/StrandedTopicSentinel.d.ts +102 -0
  18. package/dist/monitoring/StrandedTopicSentinel.d.ts.map +1 -0
  19. package/dist/monitoring/StrandedTopicSentinel.js +216 -0
  20. package/dist/monitoring/StrandedTopicSentinel.js.map +1 -0
  21. package/dist/monitoring/guardManifest.d.ts.map +1 -1
  22. package/dist/monitoring/guardManifest.js +17 -0
  23. package/dist/monitoring/guardManifest.js.map +1 -1
  24. package/dist/monitoring/strandedTopicDecision.d.ts +96 -0
  25. package/dist/monitoring/strandedTopicDecision.d.ts.map +1 -0
  26. package/dist/monitoring/strandedTopicDecision.js +160 -0
  27. package/dist/monitoring/strandedTopicDecision.js.map +1 -0
  28. package/package.json +1 -1
  29. package/src/data/builtin-manifest.json +2 -2
  30. package/upgrades/1.3.659.md +29 -0
  31. package/upgrades/side-effects/stranded-inbound-self-heal.md +80 -0
@@ -0,0 +1,216 @@
1
+ /**
2
+ * StrandedTopicSentinel — a pure-signal, dark-gated monitoring sentinel that
3
+ * detects a Telegram/Slack topic whose owner machine is online-but-unable-to-
4
+ * serve and raises ONE aggregated attention item per (owner-machine, stranding
5
+ * window). It MUTATES NOTHING — no ownership CAS, no pin write, no session kill.
6
+ *
7
+ * The wedge (proven live 2026-06-24): a durable ownership record names a machine
8
+ * that is online-by-heartbeat but quota-walled or adapter-disconnected, while a
9
+ * healthy machine holds the lease. Inbound routes to the owner that cannot serve
10
+ * it → silently dead for that topic; outbound still flows from the healthy
11
+ * machine (the "my replies send but his messages never arrive" split). The
12
+ * existing OwnershipReconciler (Case C) only fires on a PROVABLY-DEAD owner, so a
13
+ * walled-but-online owner defers forever — this sentinel covers that gap.
14
+ *
15
+ * Per tick (synchronous, LLM-free, acquires NO spawn-cap slot — asserted by test
16
+ * so a future "ask an LLM if it's stranded" can never silently land on the
17
+ * monitoring hot path):
18
+ * 1. early no-op gates (< 2 machines / not lease-holder / pool view stale)
19
+ * 2. evaluate the PURE decision over the in-memory ownership cache + pool view
20
+ * 3. emit ONE aggregated attention item per owner stranding-window
21
+ * 4. emit ONE separate LOW "can't-assess" item when ≥1 online owner was
22
+ * skipped for missing/unparseable rich heartbeat fields (anti-blind-spot)
23
+ *
24
+ * Spec: docs/specs/stranded-inbound-self-heal.md
25
+ *
26
+ * Signal-vs-authority: PURE SIGNAL. The only output is an advisory attention
27
+ * item; it has no authority to misuse. (The auto-failover is a tracked v2 with
28
+ * its prerequisites named in the spec.)
29
+ */
30
+ import { EventEmitter } from 'node:events';
31
+ import { evaluateStrandedTopics, } from './strandedTopicDecision.js';
32
+ const DEFAULT_CONFIG = {
33
+ enabled: false,
34
+ tickMs: 60_000,
35
+ dwellMs: 30_000,
36
+ freshnessBoundMs: 45_000,
37
+ clearAfterTicks: 3,
38
+ };
39
+ export class StrandedTopicSentinel extends EventEmitter {
40
+ deps;
41
+ cfg;
42
+ tickHandle = null;
43
+ /** Liveness of the tick loop (GUARD-POSTURE §2.2): 0 = never ticked. */
44
+ lastTickAt = 0;
45
+ /** Per-topic dwell anchor carried across ticks. */
46
+ strandedSince = {};
47
+ /** Per-owner consecutive-empty-tick count (window close discipline). */
48
+ emptyTicks = new Map();
49
+ /** Per-owner open stranding-window id (the dwell-epoch of the first strand). */
50
+ windowId = new Map();
51
+ constructor(deps, cfg = {}) {
52
+ super();
53
+ this.deps = deps;
54
+ this.cfg = { ...DEFAULT_CONFIG, ...cfg };
55
+ }
56
+ start() {
57
+ if (!this.cfg.enabled || this.tickHandle)
58
+ return;
59
+ this.tickHandle = setInterval(() => {
60
+ try {
61
+ this.tick();
62
+ }
63
+ catch (err) {
64
+ // @silent-fallback-ok — pure-signal sentinel: a tick error must NEVER
65
+ // propagate or degrade anything (it mutates nothing). The error is
66
+ // surfaced as a 'tick-error' event for observability; swallowing the
67
+ // throw IS the correct fail-closed behavior, not a hidden degradation.
68
+ this.emit('tick-error', { err });
69
+ }
70
+ }, this.cfg.tickMs);
71
+ if (typeof this.tickHandle.unref === 'function')
72
+ this.tickHandle.unref();
73
+ }
74
+ stop() {
75
+ if (this.tickHandle) {
76
+ clearInterval(this.tickHandle);
77
+ this.tickHandle = null;
78
+ }
79
+ }
80
+ /** One synchronous scan pass. LLM-free, no spawn-cap slot, no peer probe. */
81
+ tick() {
82
+ const now = (this.deps.now ?? Date.now)();
83
+ this.lastTickAt = now;
84
+ if (!this.cfg.enabled)
85
+ return;
86
+ const selfId = this.deps.selfMachineId();
87
+ if (!selfId) {
88
+ // Single-machine agent (no mesh id) → strict no-op; drop any stale state.
89
+ this.strandedSince = {};
90
+ this.emptyTicks.clear();
91
+ this.windowId.clear();
92
+ return;
93
+ }
94
+ const result = evaluateStrandedTopics({
95
+ records: this.deps.listOwnershipRecords(),
96
+ capacities: this.deps.listCapacities(),
97
+ selfMachineId: selfId,
98
+ holdsLease: this.deps.holdsLease(),
99
+ prevStrandedSince: this.strandedSince,
100
+ now,
101
+ cfg: { dwellMs: this.cfg.dwellMs, freshnessBoundMs: this.cfg.freshnessBoundMs },
102
+ resolveScope: this.deps.resolveScope,
103
+ });
104
+ // Reconcile the dwell map (delete stale keys — spec step 2).
105
+ this.strandedSince = result.nextStrandedSince;
106
+ // Group the stranded set by owner for the aggregated item.
107
+ const byOwner = new Map();
108
+ for (const s of result.strandedSet) {
109
+ const list = byOwner.get(s.ownerMachineId) ?? [];
110
+ list.push(s);
111
+ byOwner.set(s.ownerMachineId, list);
112
+ }
113
+ // Emit / update one item per owner with a non-empty stranded set; advance
114
+ // the window-close discipline for every owner we have tracked.
115
+ const seenOwners = new Set();
116
+ for (const [owner, topics] of byOwner) {
117
+ seenOwners.add(owner);
118
+ this.emptyTicks.set(owner, 0);
119
+ this.emitOwnerItem(owner, topics, now);
120
+ }
121
+ // Window close: an owner with no strand this tick increments its empty-tick
122
+ // count; after clearAfterTicks it closes (drops its window).
123
+ for (const owner of [...this.windowId.keys()]) {
124
+ if (seenOwners.has(owner))
125
+ continue;
126
+ const n = (this.emptyTicks.get(owner) ?? 0) + 1;
127
+ if (n >= this.cfg.clearAfterTicks) {
128
+ this.windowId.delete(owner);
129
+ this.emptyTicks.delete(owner);
130
+ this.emit('window-closed', { owner });
131
+ }
132
+ else {
133
+ this.emptyTicks.set(owner, n);
134
+ }
135
+ }
136
+ // Separate LOW "can't-assess" anti-blind-spot signal (spec step 4).
137
+ if (result.cantAssessCount > 0) {
138
+ this.emitCantAssessItem(result.cantAssessCount, now);
139
+ }
140
+ }
141
+ emitOwnerItem(owner, topics, now) {
142
+ // The window-id is the FIRST qualifying strandedSince for this owner rounded
143
+ // to the dwell epoch; it stays the same across a partial heal so the item
144
+ // updates in place rather than spawning a new one (spec step 3).
145
+ let windowId = this.windowId.get(owner);
146
+ if (windowId === undefined) {
147
+ const earliest = Math.min(...topics.map((t) => t.strandedSince));
148
+ windowId = Math.floor(earliest / this.cfg.dwellMs) * this.cfg.dwellMs;
149
+ this.windowId.set(owner, windowId);
150
+ }
151
+ const nick = this.deps.nicknameOf?.(owner) ?? owner;
152
+ const reasons = new Set(topics.map((t) => t.reason));
153
+ const reasonText = [...reasons].join(' / ');
154
+ const topicList = topics.map((t) => t.sessionKey).join(', ');
155
+ const anyServable = topics.some((t) => t.servablePeerExists);
156
+ const ageMs = Math.max(0, ...topics.map((t) => t.ownerBeatAgeMs ?? 0));
157
+ const serveLine = anyServable
158
+ ? 'another machine can serve them.'
159
+ : 'no machine can currently serve them — fleet-wide wall.';
160
+ const item = {
161
+ id: `stranded-topic:${owner}:${windowId}`,
162
+ title: `Inbound stranded on ${nick} (${topics.length} topic${topics.length === 1 ? '' : 's'})`,
163
+ summary: `Topics owned by ${nick} (${reasonText}) — inbound can't reach a servable machine.`,
164
+ description: `Inbound for topic(s) ${topicList} is going to ${nick}, which can't serve them ` +
165
+ `(${reasonText}); ${serveLine} ` +
166
+ `Based on ${nick}'s last full heartbeat ${Math.round(ageMs / 1000)}s ago.`,
167
+ category: 'agent-health',
168
+ priority: 'NORMAL',
169
+ sourceContext: `stranded-topic:${owner}`,
170
+ lane: 'agent-health',
171
+ healthKey: `stranded-topic:${owner}:${windowId}`,
172
+ };
173
+ try {
174
+ this.deps.raiseAttention(item);
175
+ this.emit('stranded', { owner, windowId, topics });
176
+ }
177
+ catch (err) {
178
+ // @silent-fallback-ok — the attention raise is the sentinel's only output;
179
+ // if it throws, the correct signal-only behavior is to surface a
180
+ // 'raise-error' event and continue (no degradation, nothing to fall back
181
+ // to). Never let a raise failure crash the monitoring tick.
182
+ this.emit('raise-error', { err });
183
+ }
184
+ }
185
+ emitCantAssessItem(count, now) {
186
+ const windowId = Math.floor(now / this.cfg.dwellMs) * this.cfg.dwellMs;
187
+ const item = {
188
+ id: `stranded-topic-blind:${windowId}`,
189
+ title: `Can't assess ${count} online owner${count === 1 ? '' : 's'} for stranding`,
190
+ summary: `${count} online owner machine${count === 1 ? '' : 's'} skipped — rich heartbeat fields missing.`,
191
+ description: `I couldn't tell whether ${count} online machine${count === 1 ? ' is' : 's are'} able to serve their ` +
192
+ `topics because their heartbeat is missing the quota/adapter fields. This is "I can't see", not "all clear" — ` +
193
+ `a heartbeat/schema regression could be blinding the stranded-inbound detector.`,
194
+ category: 'agent-health',
195
+ priority: 'LOW',
196
+ sourceContext: 'stranded-topic-blind',
197
+ lane: 'agent-health',
198
+ healthKey: 'stranded-topic-blind',
199
+ };
200
+ try {
201
+ this.deps.raiseAttention(item);
202
+ this.emit('cant-assess', { count });
203
+ }
204
+ catch (err) {
205
+ // @silent-fallback-ok — signal-only: surface a 'raise-error' event and
206
+ // continue; a raise failure must never crash the monitoring tick.
207
+ this.emit('raise-error', { err });
208
+ }
209
+ }
210
+ /** Sync in-memory runtime read for the GuardRegistry (GET /guards). MUST stay
211
+ * a cheap property read — no I/O. */
212
+ guardStatus() {
213
+ return { enabled: this.cfg.enabled, lastTickAt: this.lastTickAt };
214
+ }
215
+ }
216
+ //# sourceMappingURL=StrandedTopicSentinel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StrandedTopicSentinel.js","sourceRoot":"","sources":["../../src/monitoring/StrandedTopicSentinel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guardManifest.d.ts","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;qFAEiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;wEACoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;2DAIuD;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EA2f9C,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAgFvC,CAAC;AAEX,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAI/D;AAED,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAIhD;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEjD"}
1
+ {"version":3,"file":"guardManifest.d.ts","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,6FAA6F;IAC7F,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;qFAEiF;IACjF,cAAc,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;wEACoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB;;;;2DAIuD;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EA4gB9C,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,cAAc,EAgFvC,CAAC;AAEX,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAI/D;AAED,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAIhD;AAED,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEjD"}
@@ -183,6 +183,23 @@ export const GUARD_MANIFEST = [
183
183
  component: 'OrphanedWorkSentinel',
184
184
  description: 'Detects agent worktrees with uncommitted work whose owning session died + settled.',
185
185
  },
186
+ {
187
+ // `enabled` is deliberately OMITTED from ConfigDefaults — the runtime resolves
188
+ // it through the developmentAgent dark-feature gate (dark on the fleet, live on
189
+ // a dev agent). defaultEnabled:false reflects the fleet default. expectRuntime:
190
+ // true REQUIRES the server-boot guardRegistry.register callsite (a pure
191
+ // in-memory guardStatus getter); an enabled-but-unregistered guard reports
192
+ // `missing`. expectedTickMs derives the on-stale threshold (5×).
193
+ key: 'monitoring.strandedTopicSentinel.enabled',
194
+ kind: 'config',
195
+ configPath: 'monitoring.strandedTopicSentinel.enabled',
196
+ defaultEnabled: false,
197
+ expectedTickMs: 60_000,
198
+ process: 'server',
199
+ expectRuntime: true,
200
+ component: 'StrandedTopicSentinel',
201
+ description: 'Pure-signal detector: surfaces a topic whose owner machine is online-but-unable-to-serve (quota-walled / adapter-disconnected) while a healthy machine holds the lease, so inbound is silently dead. Raises ONE aggregated attention item; MUTATES NOTHING.',
202
+ },
186
203
  {
187
204
  // tmux Event-Loop Resilience (C). `enabled` is deliberately OMITTED from
188
205
  // ConfigDefaults — the runtime resolves it through the developmentAgent
@@ -1 +1 @@
1
- {"version":3,"file":"guardManifest.js","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardManifest.js","sourceRoot":"","sources":["../../src/monitoring/guardManifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkCH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,iFAAiF;IACjF;QACE,GAAG,EAAE,+CAA+C;QACpD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+CAA+C;QAC3D,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,8CAA8C;QAChE,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,iGAAiG;KAC/G;IACD;QACE,GAAG,EAAE,mDAAmD;QACxD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mDAAmD;QAC/D,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,wEAAwE;QACxE,yEAAyE;QACzE,2DAA2D;QAC3D,mDAAmD;QACnD,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,yJAAyJ;KACvK;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,iCAAiC;QACnD,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,+FAA+F;KAC7G;IACD;QACE,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,gCAAgC;QAC5C,8EAA8E;QAC9E,kEAAkE;QAClE,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,+BAA+B;QACjD,OAAO,EAAE,QAAQ;QACjB,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,uMAAuM;KACrN;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,8DAA8D;KAC5E;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,oCAAoC;QACtD,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,2KAA2K;KACzL;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6BAA6B;QACzC,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6CAA6C;QACzD,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,GAAG,EAAE,8CAA8C;QACnD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,8CAA8C;QAC1D,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,GAAG,EAAE,sDAAsD;QAC3D,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,sDAAsD;QAClE,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,qDAAqD;QACvE,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,yEAAyE;KACvF;IACD;QACE,GAAG,EAAE,wCAAwC;QAC7C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,wCAAwC;QACpD,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,uCAAuC;QACzD,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,+EAA+E;QAC/E,gFAAgF;QAChF,iEAAiE;QACjE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,OAAO;QACvB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,oFAAoF;KAClG;IACD;QACE,+EAA+E;QAC/E,gFAAgF;QAChF,gFAAgF;QAChF,wEAAwE;QACxE,2EAA2E;QAC3E,iEAAiE;QACjE,GAAG,EAAE,0CAA0C;QAC/C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,0CAA0C;QACtD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,6PAA6P;KAC3Q;IACD;QACE,yEAAyE;QACzE,wEAAwE;QACxE,mFAAmF;QACnF,4EAA4E;QAC5E,8EAA8E;QAC9E,mFAAmF;QACnF,kFAAkF;QAClF,4EAA4E;QAC5E,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,sCAAsC;QAClD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,mLAAmL;KACjM;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,oCAAoC;KAClD;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,yDAAyD;KACvE;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,sCAAsC;QAClD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,2DAA2D;KACzE;IACD;QACE,GAAG,EAAE,yCAAyC;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,yCAAyC;QACrD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mCAAmC;QAC/C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,0EAA0E;KACxF;IACD;QACE,GAAG,EAAE,6BAA6B;QAClC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6BAA6B;QACzC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,0BAA0B;QACtC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,8BAA8B;QACnC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,8BAA8B;QAC1C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,2EAA2E;QAC3E,iDAAiD;QACjD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,6DAA6D;KAC3E;IACD,iCAAiC;IACjC;QACE,GAAG,EAAE,2BAA2B;QAChC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,2BAA2B;QACvC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,wDAAwD;KACtE;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,oCAAoC;QAChD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,0EAA0E;KACxF;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,yEAAyE;QACzE,8DAA8D;QAC9D,GAAG,EAAE,mDAAmD;QACxD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mDAAmD;QAC/D,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,gEAAgE;KAC9E;IACD;QACE,GAAG,EAAE,2CAA2C;QAChD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,2CAA2C;QACvD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,+BAA+B;QAC1C,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,6CAA6C;QACzD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,qCAAqC;KACnD;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,qCAAqC;QACjD,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,UAAU;QAC1B,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,gEAAgE;KAC9E;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,4CAA4C;KAC1D;IACD,wEAAwE;IACxE;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,iDAAiD;KAC/D;IACD,6BAA6B;IAC7B;QACE,GAAG,EAAE,mBAAmB;QACxB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,mBAAmB;QAC/B,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,oGAAoG;KAClH;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,+BAA+B;QAC3C,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,8BAA8B;QAChD,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,wDAAwD;KACtE;IACD;QACE,+DAA+D;QAC/D,wEAAwE;QACxE,iEAAiE;QACjE,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,gCAAgC;QAC5C,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,UAAU;QACnB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,8EAA8E;KAC5F;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,iCAAiC;QAC7C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,kCAAkC;QAC9C,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,uCAAuC;QACnD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,8CAA8C;KAC5D;IACD,gEAAgE;IAChE;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,cAAc;QACpB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,0IAA0I;KACxJ;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,cAAc;QACpB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,QAAQ;QACjB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,qBAAqB;QAChC,WAAW,EAAE,qGAAqG;KACnH;CACO,CAAC;AAcX,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,iQAAiQ,EAAE;IAClT,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,qHAAqH,EAAE;IACpK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,+FAA+F,EAAE;IACvI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,wGAAwG,EAAE;IACpJ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,uHAAuH,EAAE;IAChK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,wHAAwH,EAAE;IACrK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,uFAAuF,EAAE;IAChI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,sFAAsF,EAAE;IAChI,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,qFAAqF,EAAE;IAChI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,8GAA8G,EAAE;IAC3J,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,oFAAoF,EAAE;IAChI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,kGAAkG,EAAE;IAC1I,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,6FAA6F,EAAE;IACrI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,6DAA6D,EAAE;IACzG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,sFAAsF,EAAE;IACzH,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,kHAAkH,EAAE;IAC3J,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,uGAAuG,EAAE;IACzJ,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,qEAAqE,EAAE;IACtH,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,yGAAyG,EAAE;IAC/I,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,iEAAiE,EAAE;IAC7G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,4HAA4H,EAAE;IACtK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,mEAAmE,EAAE;IAChH,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,EAAE,+EAA+E,EAAE;IAClI,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,+GAA+G,EAAE;IACzJ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC3G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,oEAAoE,EAAE;IAC9G,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,+DAA+D,EAAE;IACvG,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,kEAAkE,EAAE;IACjH,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,kDAAkD,EAAE;IAC9F,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,kDAAkD,EAAE;IACzF,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,mEAAmE,EAAE;IACjH,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,sEAAsE,EAAE;IAC/G,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,wCAAwC,EAAE;IAC/E,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,gJAAgJ,EAAE;IAC1L,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,4FAA4F,EAAE;IACtI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,2FAA2F,EAAE;IACpI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,wEAAwE,EAAE;IAChH,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,mGAAmG,EAAE;IAClJ,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,mFAAmF,EAAE;IACjI,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,uCAAuC,EAAE;IACpF,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,iFAAiF,EAAE;IACzH,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,sGAAsG,EAAE;IACrJ,2EAA2E;IAC3E,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,2MAA2M,EAAE;IAC3P,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACtN,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,4HAA4H,EAAE;IAC9K,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,6MAA6M,EAAE;IAC/P,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,wKAAwK,EAAE;IAC1N,EAAE,SAAS,EAAE,iCAAiC,EAAE,MAAM,EAAE,2MAA2M,EAAE;IACrQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IAChL,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACnL,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,6JAA6J,EAAE;IAClM,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,sIAAsI,EAAE;IACpL,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,mHAAmH,EAAE;IAC5J,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,EAAE,2HAA2H,EAAE;IAC9K,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACvN,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,sKAAsK,EAAE;IACpN,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,0IAA0I,EAAE;IACjL,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,qIAAqI,EAAE;IACnL,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,wKAAwK,EAAE;IACjN,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,8IAA8I,EAAE;IAC7L,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,8HAA8H,EAAE;IACpK,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,8HAA8H,EAAE;IAChL,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,8JAA8J,EAAE;IAClM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACnK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,8JAA8J,EAAE;IAC9M,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,EAAE,wHAAwH,EAAE;IAC1K,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACvK,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,kIAAkI,EAAE;IACnL,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,0HAA0H,EAAE;IACtK,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,qLAAqL,EAAE;IACpO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,yHAAyH,EAAE;IACjK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,mKAAmK,EAAE;IAChN,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,6JAA6J,EAAE;IAC9M,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,iKAAiK,EAAE;IAC1M,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,EAAE,sJAAsJ,EAAE;IACrM,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,wHAAwH,EAAE;CAC9J,CAAC;AAEX,qFAAqF;AACrF,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,cAAc;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,cAAc;QAAE,IAAI,KAAK,CAAC,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * strandedTopicDecision — the PURE, unit-testable decision core of the
3
+ * StrandedTopicSentinel (spec docs/specs/stranded-inbound-self-heal.md).
4
+ *
5
+ * A topic is STRANDED when its durable ownership record names a machine that is
6
+ * online-by-heartbeat but, persistently across rich beats, cannot serve the
7
+ * topic's channel — quota-walled (`quotaState.blocked === true`, channel-
8
+ * independent) OR adapter-disconnected (`machineServesChannel(...) === 'no'`).
9
+ * Inbound for that topic routes to the owner that cannot serve it, so it is
10
+ * silently dead while outbound still flows from a healthy lease-holder.
11
+ *
12
+ * This module computes the strand verdict ONLY. It mutates nothing: no
13
+ * ownership CAS, no pin write, no session kill. Fail-closed on EVERY
14
+ * uncertainty (missing field, stale beat, underivable scope, pool view
15
+ * unavailable) — an uncertainty can NEVER manufacture a strand, it routes to
16
+ * SKIP. The quota arm carries detection on its own when the adapter arm skips.
17
+ *
18
+ * Signal-vs-authority: pure read + a verdict object. No authority to misuse.
19
+ */
20
+ import type { SessionOwnershipRecord } from '../core/SessionOwnership.js';
21
+ import type { MachineCapacity } from '../core/types.js';
22
+ import { type ChannelScope } from '../core/machineServesChannel.js';
23
+ /** The reason an owner cannot serve a stranded topic. */
24
+ export type StrandReason = 'quota' | 'adapter';
25
+ /** One stranded topic in a tick's verdict. */
26
+ export interface StrandedTopic {
27
+ /** Ownership record session key (== the topic key). */
28
+ sessionKey: string;
29
+ /** The machine that owns it but cannot serve it. */
30
+ ownerMachineId: string;
31
+ /** Which arm fired. */
32
+ reason: StrandReason;
33
+ /** Epoch-ms of the FIRST qualifying beat for this topic (the dwell anchor). */
34
+ strandedSince: number;
35
+ /** Owner's last-rich-heartbeat age (ms) at evaluation — for staleness disclosure. */
36
+ ownerBeatAgeMs?: number;
37
+ /** Whether a healthy peer could serve this topic's channel (NOT a failover-safe target). */
38
+ servablePeerExists: boolean;
39
+ }
40
+ /** Config knobs for the decision (defaults applied by the sentinel). */
41
+ export interface StrandedDecisionConfig {
42
+ /** The unable-to-serve condition must hold ≥ this span across ≥2 beats. */
43
+ dwellMs: number;
44
+ /** A beat older than this is not a genuine rich beat → fail-closed (skip). */
45
+ freshnessBoundMs: number;
46
+ }
47
+ /** Per-tick inputs to the pure decision. */
48
+ export interface StrandedDecisionInput {
49
+ /** All known ownership records (the in-memory `all()` scan). */
50
+ records: SessionOwnershipRecord[];
51
+ /** The replicated machine-pool capacities (in-memory view). */
52
+ capacities: MachineCapacity[];
53
+ /** This machine's id. */
54
+ selfMachineId: string;
55
+ /** Whether this machine holds the serving lease (sole-actor gate). */
56
+ holdsLease: boolean;
57
+ /** The previous tick's per-topic strandedSince map (sessionKey → first-beat ms). */
58
+ prevStrandedSince: Record<string, number>;
59
+ /** Wall clock. */
60
+ now: number;
61
+ cfg: StrandedDecisionConfig;
62
+ /**
63
+ * Resolve a topic's ChannelScope from its owning adapter binding. Returns
64
+ * undefined when the scope can't be fully derived (the common Telegram case —
65
+ * see the spec's honesty note) → the adapter arm SKIPs and the quota arm
66
+ * carries detection. Optional: absent ⇒ the adapter arm never qualifies.
67
+ */
68
+ resolveScope?: (sessionKey: string) => ChannelScope | undefined;
69
+ }
70
+ /** The pure decision's output. */
71
+ export interface StrandedDecisionResult {
72
+ /** The topics stranded THIS tick (already dwell-qualified). */
73
+ strandedSet: StrandedTopic[];
74
+ /** Count of online non-self owners SKIPPED because rich fields were missing/unparseable. */
75
+ cantAssessCount: number;
76
+ /**
77
+ * The reconciled strandedSince map to carry into the next tick. A key that did
78
+ * NOT re-qualify this tick (owner offline / record released / scope underivable)
79
+ * is DELETED — never left to resume counting later (spec step 2 reconciliation).
80
+ */
81
+ nextStrandedSince: Record<string, number>;
82
+ }
83
+ /**
84
+ * The pure strand evaluation for one tick. Synchronous, LLM-free, no I/O.
85
+ *
86
+ * Predicate per `active`, non-self-owned record:
87
+ * owner online
88
+ * AND ( quota arm: quotaState.blocked === true [channel-independent]
89
+ * OR adapter arm: machineServesChannel(servesChannels, scope) === 'no'
90
+ * ['unknown'/undefined-scope ⇒ SKIP that arm] )
91
+ * AND the condition has held ≥2 consecutive rich beats spanning ≥ dwellMs.
92
+ *
93
+ * Early no-op: < 2 machines OR !holdsLease ⇒ empty (and the map is dropped).
94
+ */
95
+ export declare function evaluateStrandedTopics(input: StrandedDecisionInput): StrandedDecisionResult;
96
+ //# sourceMappingURL=strandedTopicDecision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strandedTopicDecision.d.ts","sourceRoot":"","sources":["../../src/monitoring/strandedTopicDecision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAEzC,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/C,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4FAA4F;IAC5F,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,+DAA+D;IAC/D,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,yBAAyB;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,UAAU,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,sBAAsB,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;CACjE;AAED,kCAAkC;AAClC,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,4FAA4F;IAC5F,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,qBAAqB,GAC3B,sBAAsB,CA6FxB"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * strandedTopicDecision — the PURE, unit-testable decision core of the
3
+ * StrandedTopicSentinel (spec docs/specs/stranded-inbound-self-heal.md).
4
+ *
5
+ * A topic is STRANDED when its durable ownership record names a machine that is
6
+ * online-by-heartbeat but, persistently across rich beats, cannot serve the
7
+ * topic's channel — quota-walled (`quotaState.blocked === true`, channel-
8
+ * independent) OR adapter-disconnected (`machineServesChannel(...) === 'no'`).
9
+ * Inbound for that topic routes to the owner that cannot serve it, so it is
10
+ * silently dead while outbound still flows from a healthy lease-holder.
11
+ *
12
+ * This module computes the strand verdict ONLY. It mutates nothing: no
13
+ * ownership CAS, no pin write, no session kill. Fail-closed on EVERY
14
+ * uncertainty (missing field, stale beat, underivable scope, pool view
15
+ * unavailable) — an uncertainty can NEVER manufacture a strand, it routes to
16
+ * SKIP. The quota arm carries detection on its own when the adapter arm skips.
17
+ *
18
+ * Signal-vs-authority: pure read + a verdict object. No authority to misuse.
19
+ */
20
+ import { machineServesChannel, } from '../core/machineServesChannel.js';
21
+ /** Is this owner's rich beat genuine (present + fresh)? */
22
+ function richBeatAgeMs(cap, now) {
23
+ if (!cap.routerReceivedAt)
24
+ return undefined;
25
+ const t = Date.parse(cap.routerReceivedAt);
26
+ if (!Number.isFinite(t))
27
+ return undefined;
28
+ return now - t;
29
+ }
30
+ /**
31
+ * The pure strand evaluation for one tick. Synchronous, LLM-free, no I/O.
32
+ *
33
+ * Predicate per `active`, non-self-owned record:
34
+ * owner online
35
+ * AND ( quota arm: quotaState.blocked === true [channel-independent]
36
+ * OR adapter arm: machineServesChannel(servesChannels, scope) === 'no'
37
+ * ['unknown'/undefined-scope ⇒ SKIP that arm] )
38
+ * AND the condition has held ≥2 consecutive rich beats spanning ≥ dwellMs.
39
+ *
40
+ * Early no-op: < 2 machines OR !holdsLease ⇒ empty (and the map is dropped).
41
+ */
42
+ export function evaluateStrandedTopics(input) {
43
+ const { records, capacities, selfMachineId, holdsLease, prevStrandedSince, now, cfg } = input;
44
+ // Early no-op gates (spec step 1). A single-machine agent can't strand on a
45
+ // peer; a non-lease-holder is not the sole actor. Drop the dwell map so a
46
+ // demotion/scale-down doesn't carry stale anchors.
47
+ if (capacities.length < 2 || !holdsLease) {
48
+ return { strandedSet: [], cantAssessCount: 0, nextStrandedSince: {} };
49
+ }
50
+ const capById = new Map();
51
+ for (const c of capacities)
52
+ capById.set(c.machineId, c);
53
+ const strandedSet = [];
54
+ const nextStrandedSince = {};
55
+ let cantAssessCount = 0;
56
+ for (const rec of records) {
57
+ // Only active, peer-owned records are candidates.
58
+ if (rec.status !== 'active')
59
+ continue;
60
+ if (rec.ownerMachineId === selfMachineId)
61
+ continue;
62
+ const owner = capById.get(rec.ownerMachineId);
63
+ // Unknown owner / not in the pool view → can't assess → skip (fail-closed).
64
+ if (!owner)
65
+ continue;
66
+ // A dead owner is the existing Case C's job; this sentinel only covers the
67
+ // online-but-unable gap.
68
+ if (!owner.online)
69
+ continue;
70
+ // Require a genuine rich beat: present + fresh. A stale/undecodable beat
71
+ // fails closed (skip) and does NOT count toward the dwell.
72
+ const beatAgeMs = richBeatAgeMs(owner, now);
73
+ if (beatAgeMs === undefined || beatAgeMs > cfg.freshnessBoundMs)
74
+ continue;
75
+ // ── Arm (a): quota — channel-independent, the dominant incident case. ──
76
+ const quotaArm = owner.quotaState?.blocked === true;
77
+ // ── Arm (b): adapter — best-effort, channel-specific. ──
78
+ let adapterArm = false;
79
+ // A missing servesChannels on an online owner is the anti-blind-spot case:
80
+ // we cannot evaluate the adapter arm. If the quota arm ALSO can't fire
81
+ // (quotaState absent/undecided), this owner is genuinely unassessable.
82
+ const servesPresent = owner.servesChannels !== undefined;
83
+ let armBlind = false;
84
+ if (input.resolveScope) {
85
+ const scope = input.resolveScope(rec.sessionKey);
86
+ if (scope === undefined) {
87
+ // Underivable scope ⇒ SKIP this arm (not a strand).
88
+ }
89
+ else {
90
+ const serve = machineServesChannel(owner.servesChannels, scope);
91
+ if (serve === 'no')
92
+ adapterArm = true;
93
+ else if (serve === 'unknown') {
94
+ // 'unknown' (sparse/absent servesChannels) ⇒ SKIP this arm.
95
+ if (!servesPresent)
96
+ armBlind = true;
97
+ }
98
+ // 'yes' ⇒ owner can serve on this arm → not stranded here.
99
+ }
100
+ }
101
+ const unableToServe = quotaArm || adapterArm;
102
+ if (!unableToServe) {
103
+ // Anti-blind-spot: an online owner we could NOT assess at all — quota
104
+ // undecided AND the adapter arm blinded by a missing servesChannels —
105
+ // increments the can't-assess count (spec step 4). A topic with a usable
106
+ // 'yes' or a derivable scope is genuinely assessed (not blind).
107
+ const quotaUndecided = owner.quotaState === undefined;
108
+ if (quotaUndecided && armBlind)
109
+ cantAssessCount++;
110
+ continue;
111
+ }
112
+ // ── Persistence (dwell) — anchor on the FIRST qualifying beat. ──
113
+ const prevSince = prevStrandedSince[rec.sessionKey];
114
+ const strandedSince = typeof prevSince === 'number' ? prevSince : now;
115
+ nextStrandedSince[rec.sessionKey] = strandedSince;
116
+ // The condition must have held ≥ dwellMs (which, given the ≥1 prior beat that
117
+ // set the anchor, spans ≥2 consecutive rich beats). A first-beat strand has
118
+ // dwell 0 < dwellMs → recorded in the map but NOT yet emitted.
119
+ if (now - strandedSince < cfg.dwellMs)
120
+ continue;
121
+ const reason = quotaArm ? 'quota' : 'adapter';
122
+ strandedSet.push({
123
+ sessionKey: rec.sessionKey,
124
+ ownerMachineId: rec.ownerMachineId,
125
+ reason,
126
+ strandedSince,
127
+ ownerBeatAgeMs: beatAgeMs,
128
+ servablePeerExists: servablePeerExists(rec, capacities, selfMachineId, input.resolveScope),
129
+ });
130
+ }
131
+ return { strandedSet, cantAssessCount, nextStrandedSince };
132
+ }
133
+ /**
134
+ * Whether SOME online machine could serve the topic's channel — narrowly "online
135
+ * AND not quota-blocked AND machineServesChannel(...) === 'yes'" (the same
136
+ * PlacementExecutor filter, so detector + placement agree). Deliberately NOT a
137
+ * "safe failover target": it vets no pin policy, lease/router readiness, secrets,
138
+ * or session limits — v1 never fails over, so this only tells the operator
139
+ * "somewhere could serve this" vs "nowhere can (fleet-wide wall)". When the scope
140
+ * can't be derived, a not-quota-blocked online peer counts (quota-arm semantics).
141
+ */
142
+ function servablePeerExists(rec, capacities, selfMachineId, resolveScope) {
143
+ const scope = resolveScope?.(rec.sessionKey);
144
+ for (const c of capacities) {
145
+ if (c.machineId === rec.ownerMachineId)
146
+ continue;
147
+ if (!c.online)
148
+ continue;
149
+ if (c.quotaState?.blocked === true)
150
+ continue;
151
+ if (scope === undefined) {
152
+ // No channel scope → quota-arm semantics: a healthy peer suffices.
153
+ return true;
154
+ }
155
+ if (machineServesChannel(c.servesChannels, scope) === 'yes')
156
+ return true;
157
+ }
158
+ return false;
159
+ }
160
+ //# sourceMappingURL=strandedTopicDecision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strandedTopicDecision.js","sourceRoot":"","sources":["../../src/monitoring/strandedTopicDecision.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.658",
3
+ "version": "1.3.659",
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-06-24T23:28:12.769Z",
5
- "instarVersion": "1.3.658",
4
+ "generatedAt": "2026-06-25T01:38:40.089Z",
5
+ "instarVersion": "1.3.659",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {