instar 1.3.468 → 1.3.470

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 (104) hide show
  1. package/dist/commands/init.js +5 -0
  2. package/dist/commands/init.js.map +1 -1
  3. package/dist/commands/server.d.ts.map +1 -1
  4. package/dist/commands/server.js +76 -9
  5. package/dist/commands/server.js.map +1 -1
  6. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  7. package/dist/config/ConfigDefaults.js +40 -0
  8. package/dist/config/ConfigDefaults.js.map +1 -1
  9. package/dist/core/CartographerSweepEngine.d.ts +122 -0
  10. package/dist/core/CartographerSweepEngine.d.ts.map +1 -0
  11. package/dist/core/CartographerSweepEngine.js +454 -0
  12. package/dist/core/CartographerSweepEngine.js.map +1 -0
  13. package/dist/core/CartographerTree.d.ts +95 -0
  14. package/dist/core/CartographerTree.d.ts.map +1 -1
  15. package/dist/core/CartographerTree.js +147 -0
  16. package/dist/core/CartographerTree.js.map +1 -1
  17. package/dist/core/EscalationGovernor.d.ts +138 -0
  18. package/dist/core/EscalationGovernor.d.ts.map +1 -0
  19. package/dist/core/EscalationGovernor.js +308 -0
  20. package/dist/core/EscalationGovernor.js.map +1 -0
  21. package/dist/core/IntelligenceRouter.d.ts +7 -0
  22. package/dist/core/IntelligenceRouter.d.ts.map +1 -1
  23. package/dist/core/IntelligenceRouter.js +9 -0
  24. package/dist/core/IntelligenceRouter.js.map +1 -1
  25. package/dist/core/ModelSwapService.d.ts +116 -0
  26. package/dist/core/ModelSwapService.d.ts.map +1 -0
  27. package/dist/core/ModelSwapService.js +266 -0
  28. package/dist/core/ModelSwapService.js.map +1 -0
  29. package/dist/core/ModelTierEscalation.d.ts +128 -0
  30. package/dist/core/ModelTierEscalation.d.ts.map +1 -0
  31. package/dist/core/ModelTierEscalation.js +232 -0
  32. package/dist/core/ModelTierEscalation.js.map +1 -0
  33. package/dist/core/PostUpdateMigrator.d.ts +3 -1
  34. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  35. package/dist/core/PostUpdateMigrator.js +321 -1
  36. package/dist/core/PostUpdateMigrator.js.map +1 -1
  37. package/dist/core/SessionManager.d.ts +5 -0
  38. package/dist/core/SessionManager.d.ts.map +1 -1
  39. package/dist/core/SessionManager.js +9 -4
  40. package/dist/core/SessionManager.js.map +1 -1
  41. package/dist/core/cartographerSummary.d.ts +62 -0
  42. package/dist/core/cartographerSummary.d.ts.map +1 -0
  43. package/dist/core/cartographerSummary.js +0 -0
  44. package/dist/core/cartographerSummary.js.map +1 -0
  45. package/dist/core/componentCategories.d.ts.map +1 -1
  46. package/dist/core/componentCategories.js +7 -0
  47. package/dist/core/componentCategories.js.map +1 -1
  48. package/dist/core/types.d.ts +14 -0
  49. package/dist/core/types.d.ts.map +1 -1
  50. package/dist/core/types.js.map +1 -1
  51. package/dist/monitoring/BurnDetector.d.ts +10 -0
  52. package/dist/monitoring/BurnDetector.d.ts.map +1 -1
  53. package/dist/monitoring/BurnDetector.js +6 -0
  54. package/dist/monitoring/BurnDetector.js.map +1 -1
  55. package/dist/monitoring/CartographerSweepPoller.d.ts +61 -0
  56. package/dist/monitoring/CartographerSweepPoller.d.ts.map +1 -0
  57. package/dist/monitoring/CartographerSweepPoller.js +211 -0
  58. package/dist/monitoring/CartographerSweepPoller.js.map +1 -0
  59. package/dist/monitoring/GuardPostureTripwire.d.ts +3 -0
  60. package/dist/monitoring/GuardPostureTripwire.d.ts.map +1 -1
  61. package/dist/monitoring/GuardPostureTripwire.js +44 -0
  62. package/dist/monitoring/GuardPostureTripwire.js.map +1 -1
  63. package/dist/monitoring/HostPressureSampler.d.ts +21 -0
  64. package/dist/monitoring/HostPressureSampler.d.ts.map +1 -0
  65. package/dist/monitoring/HostPressureSampler.js +44 -0
  66. package/dist/monitoring/HostPressureSampler.js.map +1 -0
  67. package/dist/monitoring/TokenLedger.d.ts +7 -0
  68. package/dist/monitoring/TokenLedger.d.ts.map +1 -1
  69. package/dist/monitoring/TokenLedger.js +17 -0
  70. package/dist/monitoring/TokenLedger.js.map +1 -1
  71. package/dist/monitoring/UltraSessionCapMonitor.d.ts +61 -0
  72. package/dist/monitoring/UltraSessionCapMonitor.d.ts.map +1 -0
  73. package/dist/monitoring/UltraSessionCapMonitor.js +103 -0
  74. package/dist/monitoring/UltraSessionCapMonitor.js.map +1 -0
  75. package/dist/scaffold/templates.d.ts.map +1 -1
  76. package/dist/scaffold/templates.js +4 -0
  77. package/dist/scaffold/templates.js.map +1 -1
  78. package/dist/server/AgentServer.d.ts +2 -0
  79. package/dist/server/AgentServer.d.ts.map +1 -1
  80. package/dist/server/AgentServer.js +120 -1
  81. package/dist/server/AgentServer.js.map +1 -1
  82. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  83. package/dist/server/CapabilityIndex.js +2 -1
  84. package/dist/server/CapabilityIndex.js.map +1 -1
  85. package/dist/server/routes.d.ts +5 -0
  86. package/dist/server/routes.d.ts.map +1 -1
  87. package/dist/server/routes.js +152 -7
  88. package/dist/server/routes.js.map +1 -1
  89. package/package.json +1 -1
  90. package/scripts/cartographer-freshness.mjs +209 -0
  91. package/scripts/lint-no-direct-destructive.js +6 -0
  92. package/src/data/builtin-manifest.json +83 -67
  93. package/src/scaffold/templates.ts +4 -0
  94. package/src/templates/hooks/model-tier-reconciler.js +137 -0
  95. package/src/templates/hooks/model-tier-skill-entry.sh +72 -0
  96. package/src/templates/hooks/settings-template.json +15 -0
  97. package/upgrades/1.3.469.md +71 -0
  98. package/upgrades/1.3.470.md +27 -0
  99. package/upgrades/session-mgmt-buildctx-race.eli16.md +9 -0
  100. package/upgrades/side-effects/cartographer-doc-freshness.md +112 -0
  101. package/upgrades/side-effects/model-tier-escalation.md +267 -0
  102. package/upgrades/side-effects/session-mgmt-buildctx-race.md +48 -0
  103. package/upgrades/side-effects/watchdog-launchctl-test-guard.md +84 -0
  104. package/upgrades/watchdog-launchctl-test-guard.eli16.md +9 -0
@@ -190,6 +190,15 @@ export class CartographerTree {
190
190
  builtinKind: 'cartographer-node',
191
191
  provenance: existing?.provenance,
192
192
  dirtyAtAuthor: existing?.dirtyAtAuthor,
193
+ // Spec #2 fields are preserved across a structure-only rescaffold. A node
194
+ // first seen now anchors its grace clock; existing nodes keep theirs.
195
+ firstSeenAt: existing?.firstSeenAt ?? this.nowIso(),
196
+ lastAuthoredBy: existing?.lastAuthoredBy,
197
+ confidence: existing?.confidence,
198
+ childDigestHash: existing?.childDigestHash,
199
+ staleSincePass: existing?.staleSincePass,
200
+ consecutiveAuthorFailures: existing?.consecutiveAuthorFailures,
201
+ authorFailed: existing?.authorFailed,
193
202
  });
194
203
  }
195
204
  rewriteAll(nodes) {
@@ -291,6 +300,14 @@ export class CartographerTree {
291
300
  codeHash,
292
301
  codeRev: opts.codeRev ?? this.headShort(),
293
302
  provenance: opts.provenance ?? existing.provenance,
303
+ // Spec #2: a successful author clears the failure/defer state and records
304
+ // who authored + confidence. childDigestHash is set for dir authors.
305
+ lastAuthoredBy: opts.meta?.lastAuthoredBy ?? existing.lastAuthoredBy,
306
+ confidence: opts.meta?.confidence ?? existing.confidence,
307
+ childDigestHash: opts.meta?.childDigestHash !== undefined ? opts.meta.childDigestHash : existing.childDigestHash,
308
+ staleSincePass: 0,
309
+ consecutiveAuthorFailures: 0,
310
+ authorFailed: false,
294
311
  };
295
312
  this.atomicWrite(this.nodeFilePath(nodePath), JSON.stringify(node, null, 2));
296
313
  // Patch the index entry (node file already on disk).
@@ -302,6 +319,73 @@ export class CartographerTree {
302
319
  }
303
320
  return node;
304
321
  }
322
+ /**
323
+ * Spec #2: patch a node's freshness METADATA without re-authoring its summary.
324
+ * Used by the sweep for failure counters / quarantine / defer-pass bookkeeping,
325
+ * and for a fingerprint-only refresh (the dir re-author amplification guard:
326
+ * bump `codeHash` to the current oid so a comment-only deep edit goes `fresh`
327
+ * with NO LLM call). Never touches `summary` or `summaryUpdatedAt` unless
328
+ * `codeHash` is supplied (a fingerprint refresh) — then the index entry is
329
+ * patched too so staleness derives correctly. No-op (returns null) if absent.
330
+ */
331
+ patchNodeMeta(nodePath, partial) {
332
+ const existing = this.readNodeFile(nodePath);
333
+ if (!existing)
334
+ return null;
335
+ const codeHashChanged = Object.prototype.hasOwnProperty.call(partial, 'codeHash');
336
+ const node = {
337
+ ...existing,
338
+ codeHash: codeHashChanged ? (partial.codeHash ?? null) : existing.codeHash,
339
+ codeRev: partial.codeRev !== undefined ? partial.codeRev : existing.codeRev,
340
+ childDigestHash: partial.childDigestHash !== undefined ? partial.childDigestHash : existing.childDigestHash,
341
+ lastAuthoredBy: partial.lastAuthoredBy ?? existing.lastAuthoredBy,
342
+ confidence: partial.confidence ?? existing.confidence,
343
+ staleSincePass: partial.staleSincePass ?? existing.staleSincePass,
344
+ consecutiveAuthorFailures: partial.consecutiveAuthorFailures ?? existing.consecutiveAuthorFailures,
345
+ authorFailed: partial.authorFailed ?? existing.authorFailed,
346
+ provenance: partial.provenance ?? existing.provenance,
347
+ };
348
+ this.atomicWrite(this.nodeFilePath(nodePath), JSON.stringify(node, null, 2));
349
+ if (codeHashChanged) {
350
+ const index = this.loadIndex();
351
+ if (index && index.nodes[nodePath]) {
352
+ index.nodes[nodePath].codeHash = node.codeHash;
353
+ this.atomicWrite(this.indexPath, JSON.stringify(index, null, 2));
354
+ }
355
+ }
356
+ return node;
357
+ }
358
+ /**
359
+ * Spec #2: read the COMMITTED content of a leaf node's covered file, bounded to
360
+ * `maxBytes` (head-truncated). Reads `git show HEAD:<path>` — never the dirty
361
+ * working tree — so an uncommitted edit (possibly containing just-typed secrets)
362
+ * is never read, and a long-lived uncommitted edit never causes re-author churn.
363
+ * Returns null when the path is absent from HEAD or git is unavailable.
364
+ */
365
+ committedContent(nodePath, maxBytes) {
366
+ if (nodePath === '')
367
+ return null; // root is a dir, not a file
368
+ const out = this.git(['show', `HEAD:${nodePath}`]);
369
+ if (out == null)
370
+ return null;
371
+ if (Buffer.byteLength(out, 'utf8') <= maxBytes)
372
+ return { content: out, truncated: false };
373
+ // Head-truncate on a byte budget without splitting a multibyte char.
374
+ const buf = Buffer.from(out, 'utf8').subarray(0, maxBytes);
375
+ return { content: buf.toString('utf8'), truncated: true };
376
+ }
377
+ /** Public: the current short HEAD sha (compare-and-skip / provenance). */
378
+ currentHeadShort() {
379
+ return this.headShort();
380
+ }
381
+ /** Public: the current root tree oid (the CI ratchet short-circuit key). */
382
+ rootTreeOid() {
383
+ return this.currentOid('');
384
+ }
385
+ /** Public: the current git oid for a single node path (compare-and-skip on HEAD). */
386
+ currentNodeOid(nodePath) {
387
+ return this.currentOid(nodePath);
388
+ }
305
389
  /** Derive staleness for the whole tree from ONE batched git read. */
306
390
  staleNodes() {
307
391
  const index = this.loadIndex();
@@ -356,5 +440,68 @@ export class CartographerTree {
356
440
  generatedAt: index.generatedAt,
357
441
  };
358
442
  }
443
+ /**
444
+ * Spec #2 (doc-freshness) richer health: the freshness ratio over AUTHORABLE
445
+ * nodes (excludes `path-gone`), plus the two ABSOLUTE backlog counts the CI
446
+ * ratchet also gates on so a green ratio over a small authored set cannot hide
447
+ * a growing un-authored backlog (Goodhart guard). `freshRatio` is `fresh /
448
+ * authorable` with 1 when there are no authorable nodes. A node is
449
+ * never-authored "past grace" when it has no summary AND was first seen longer
450
+ * ago than `graceMs`.
451
+ */
452
+ freshnessHealth(opts = { graceMs: 0 }) {
453
+ const index = this.loadIndex();
454
+ const empty = {
455
+ nodeCount: 0, authorableCount: 0, freshCount: 0, staleCount: 0,
456
+ neverAuthoredCount: 0, neverAuthoredWithinGrace: 0, neverAuthoredPastGrace: 0,
457
+ authorFailedCount: 0, freshRatio: 1, generatedAt: null,
458
+ };
459
+ if (!index)
460
+ return empty;
461
+ const nowMs = opts.now ?? Date.parse(this.nowIso());
462
+ const current = this.currentOids();
463
+ let authorable = 0, fresh = 0, stale = 0, never = 0, neverWithin = 0, neverPast = 0, authorFailed = 0;
464
+ for (const [nodePath, entry] of Object.entries(index.nodes)) {
465
+ const status = this.deriveStatus(entry.codeHash, current.get(nodePath));
466
+ if (status === 'path-gone')
467
+ continue; // not authorable
468
+ authorable += 1;
469
+ // One node-file read per path: used for both the grace clock AND the
470
+ // orthogonal author-failed quarantine flag (a quarantined node that never
471
+ // successfully authored is still `never-authored`, so the read can't be
472
+ // skipped for that status).
473
+ const node = this.readNodeFile(nodePath);
474
+ if (node?.authorFailed)
475
+ authorFailed += 1;
476
+ if (status === 'fresh')
477
+ fresh += 1;
478
+ else if (status === 'stale')
479
+ stale += 1;
480
+ else if (status === 'never-authored') {
481
+ never += 1;
482
+ const firstSeen = node?.firstSeenAt ? Date.parse(node.firstSeenAt) : nowMs;
483
+ if (Number.isFinite(firstSeen) && nowMs - firstSeen > opts.graceMs)
484
+ neverPast += 1;
485
+ else
486
+ neverWithin += 1;
487
+ }
488
+ }
489
+ // The ratio denominator EXCLUDES never-authored-within-grace (a freshly
490
+ // scaffolded node has a grace period to get authored before it counts as debt).
491
+ // denominator = fresh + stale + never-authored-past-grace.
492
+ const ratioDenom = fresh + stale + neverPast;
493
+ return {
494
+ nodeCount: Object.keys(index.nodes).length,
495
+ authorableCount: authorable,
496
+ freshCount: fresh,
497
+ staleCount: stale,
498
+ neverAuthoredCount: never,
499
+ neverAuthoredWithinGrace: neverWithin,
500
+ neverAuthoredPastGrace: neverPast,
501
+ authorFailedCount: authorFailed,
502
+ freshRatio: ratioDenom === 0 ? 1 : fresh / ratioDenom,
503
+ generatedAt: index.generatedAt,
504
+ };
505
+ }
359
506
  }
360
507
  //# sourceMappingURL=CartographerTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CartographerTree.js","sourceRoot":"","sources":["../../src/core/CartographerTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CartographerTree.js","sourceRoot":"","sources":["../../src/core/CartographerTree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * EscalationGovernor — §7 (subscription envelope + lease) and §8 (cost
3
+ * guards) of docs/specs/FABLE-MODEL-ESCALATION-SPEC.md.
4
+ *
5
+ * Admission control for model-tier escalation. Every refusal means "the
6
+ * session stays on its default model" — the governor can never block a
7
+ * message, tool call, or session (§3.5).
8
+ *
9
+ * Invariants implemented here:
10
+ * - **Lease, not bare headroom read** (round-1 Adversarial-H2): concurrent
11
+ * escalation onto one account goes through a reservation with
12
+ * `maxConcurrentEscalatedPerAccount`.
13
+ * - **Crash-safe lease** (round-2 Security-N3 / Adversarial-NEW-1): leases
14
+ * carry a TTL, are keyed on the session-instance id (the spawn-generated
15
+ * INSTAR_SESSION_ID — unforgeable from outside, monotonic per spawn), are
16
+ * released on session-end (SessionManager 'sessionReaped' — wired at
17
+ * boot), and a lease whose holder is no longer live is reclaimable.
18
+ * Expiry is evaluated lazily on read — no dedicated poller.
19
+ * - **Quota fail-closed** (round-1 Adversarial-H3): `requireQuotaHeadroom`
20
+ * reads the subscription pool's CACHED snapshot via an injected provider
21
+ * (never a live poll on the hot path); unavailable/errored ⇒ refuse.
22
+ * - **Once-per-episode counting** (round-3 Adversarial-NEW-5): an
23
+ * escalation counts against `maxEscalationsPerHour` exactly once per
24
+ * (instance-id, tier-transition) episode; canary retries and per-turn
25
+ * re-derivations never multiply the count. **Accounting fails toward
26
+ * counting** (round-2 Adversarial-NEW-2): `recordInjection` is called at
27
+ * injection time, regardless of read-back outcome.
28
+ * - **Free windows** (§8): UTC-date, inclusive through the named day;
29
+ * informational only — crossing the expiry emits ONE audit note (no
30
+ * silent cost cliff). The window relaxes nothing structural.
31
+ * - **Daily ultra-token cap as admission control** (§8): refuses NEW
32
+ * escalations once today's ultra spend (injected provider) crosses the
33
+ * cap. Mid-run visibility is UltraSessionCapMonitor's job.
34
+ *
35
+ * State is file-backed under `<stateDir>/state/model-tier-escalation/`
36
+ * (atomic tmp+rename writes; single-writer — the server process). The
37
+ * audit trail is an append-only JSONL with structured fields only — never
38
+ * raw operator text (round-2 Security-F7).
39
+ */
40
+ import { type TierEscalationConfig } from './ModelTierEscalation.js';
41
+ /** Conservative "has headroom" bound: a cached window utilization at/over
42
+ * this percentage is treated as capped for escalation purposes. */
43
+ export declare const QUOTA_HEADROOM_MAX_UTILIZATION_PCT = 90;
44
+ /** Shape-compatible with SubscriptionPool's AccountQuotaSnapshot — narrowed
45
+ * to what admission needs so the provider is easy to inject/test. */
46
+ export interface QuotaSnapshotLike {
47
+ fiveHour?: {
48
+ utilizationPct: number;
49
+ resetsAt?: string;
50
+ };
51
+ sevenDay?: {
52
+ utilizationPct: number;
53
+ resetsAt?: string;
54
+ };
55
+ measuredAt?: string;
56
+ }
57
+ export interface EscalationLease {
58
+ instanceId: string;
59
+ accountId: string;
60
+ acquiredAt: number;
61
+ ttlMs: number;
62
+ }
63
+ export type AdmitRefusalReason = 'disabled' | 'no-instance-id' | 'lease-capacity' | 'hourly-budget-exhausted' | 'quota-unavailable' | 'quota-capped' | 'daily-cap-exhausted';
64
+ export interface AdmitResult {
65
+ allow: boolean;
66
+ reason?: AdmitRefusalReason;
67
+ /** True when the model is inside a configured free window (informational). */
68
+ freeWindow?: boolean;
69
+ }
70
+ export interface EscalationGovernorDeps {
71
+ /** The agent state dir (`.instar`). */
72
+ stateDir: string;
73
+ /** Live config getter — re-read per call so operator flips apply. */
74
+ getConfig: () => TierEscalationConfig;
75
+ /**
76
+ * CACHED quota snapshot for the account (never a live poll — §7 /
77
+ * round-1 Scalability-M7). Return null when no snapshot is available;
78
+ * with `requireQuotaHeadroom:true` that REFUSES (fail closed).
79
+ */
80
+ quotaSnapshot?: (accountId: string) => QuotaSnapshotLike | null;
81
+ /**
82
+ * Today's (UTC) ultra-model token total, from the token ledger. Used for
83
+ * the §8 daily-cap admission check. Return null when unavailable — with a
84
+ * cap configured, unavailable ⇒ refuse (fail closed).
85
+ */
86
+ ultraTokensTodayUtc?: () => number | null;
87
+ /** Liveness probe for lease reclaim — false ⇒ the holder crashed/ended. */
88
+ isHolderLive?: (instanceId: string) => boolean;
89
+ /** Injectable clock for tests. */
90
+ now?: () => number;
91
+ }
92
+ export declare class EscalationGovernor {
93
+ private readonly deps;
94
+ private readonly dir;
95
+ private readonly statePath;
96
+ private readonly auditPath;
97
+ private readonly now;
98
+ constructor(deps: EscalationGovernorDeps);
99
+ /**
100
+ * §7/§8 admission decision for escalating `instanceId` on `accountId`.
101
+ * Pure cost/capacity routing — a refusal means "stay on default".
102
+ * Acquiring is idempotent: an instance already holding a lease is
103
+ * re-admitted without consuming additional capacity.
104
+ */
105
+ admitEscalation(input: {
106
+ instanceId: string;
107
+ accountId?: string;
108
+ modelId: string;
109
+ /** e.g. 'default→escalated' — the episode key half (§8 once-per-episode). */
110
+ transition: string;
111
+ /** dryRun evaluation: run every check but acquire NOTHING — a dry-run
112
+ * swap must never consume lease capacity (§9 dryRun semantics). */
113
+ dry?: boolean;
114
+ }): AdmitResult;
115
+ /**
116
+ * Count the escalation against the hourly budget — called AT INJECTION
117
+ * time (fails toward counting, round-2 Adversarial-NEW-2), idempotent per
118
+ * (instance, transition) episode (round-3 Adversarial-NEW-5).
119
+ * Returns true when this call newly counted the episode.
120
+ */
121
+ recordInjection(instanceId: string, transition: string): boolean;
122
+ /** Release the instance's lease (wired to SessionManager 'sessionReaped'
123
+ * at boot — the same close event that retires the session, §7). */
124
+ releaseLease(instanceId: string): void;
125
+ /** Current live leases (post-reclaim) — observability/testing surface. */
126
+ activeLeases(): EscalationLease[];
127
+ private episodeKey;
128
+ /** Drop expired leases and leases whose holder is no longer live. Lazy —
129
+ * runs on every read; no poller (§7). Returns true when anything changed. */
130
+ private reclaimStale;
131
+ private noteFreeWindowExpiryOnce;
132
+ private loadState;
133
+ private saveState;
134
+ /** Structured-fields-only audit appender (Sec-F7: no raw operator text). */
135
+ private audit;
136
+ private refuse;
137
+ }
138
+ //# sourceMappingURL=EscalationGovernor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EscalationGovernor.d.ts","sourceRoot":"","sources":["../../src/core/EscalationGovernor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC;oEACoE;AACpE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD;sEACsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAUD,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,gBAAgB,GAChB,gBAAgB,GAChB,yBAAyB,GACzB,mBAAmB,GACnB,cAAc,GACd,qBAAqB,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAE,MAAM,oBAAoB,CAAC;IACtC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAChE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC1C,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAID,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,sBAAsB;IAQxC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,6EAA6E;QAC7E,UAAU,EAAE,MAAM,CAAC;QACnB;4EACoE;QACpE,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,GAAG,WAAW;IAsHf;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAYhE;wEACoE;IACpE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAUtC,0EAA0E;IAC1E,YAAY,IAAI,eAAe,EAAE;IASjC,OAAO,CAAC,UAAU;IAIlB;kFAC8E;IAC9E,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,SAAS;IAgBjB,OAAO,CAAC,SAAS;IAajB,4EAA4E;IAC5E,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,MAAM;CAcf"}