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.
- package/dist/commands/init.js +5 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +76 -9
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +40 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/CartographerSweepEngine.d.ts +122 -0
- package/dist/core/CartographerSweepEngine.d.ts.map +1 -0
- package/dist/core/CartographerSweepEngine.js +454 -0
- package/dist/core/CartographerSweepEngine.js.map +1 -0
- package/dist/core/CartographerTree.d.ts +95 -0
- package/dist/core/CartographerTree.d.ts.map +1 -1
- package/dist/core/CartographerTree.js +147 -0
- package/dist/core/CartographerTree.js.map +1 -1
- package/dist/core/EscalationGovernor.d.ts +138 -0
- package/dist/core/EscalationGovernor.d.ts.map +1 -0
- package/dist/core/EscalationGovernor.js +308 -0
- package/dist/core/EscalationGovernor.js.map +1 -0
- package/dist/core/IntelligenceRouter.d.ts +7 -0
- package/dist/core/IntelligenceRouter.d.ts.map +1 -1
- package/dist/core/IntelligenceRouter.js +9 -0
- package/dist/core/IntelligenceRouter.js.map +1 -1
- package/dist/core/ModelSwapService.d.ts +116 -0
- package/dist/core/ModelSwapService.d.ts.map +1 -0
- package/dist/core/ModelSwapService.js +266 -0
- package/dist/core/ModelSwapService.js.map +1 -0
- package/dist/core/ModelTierEscalation.d.ts +128 -0
- package/dist/core/ModelTierEscalation.d.ts.map +1 -0
- package/dist/core/ModelTierEscalation.js +232 -0
- package/dist/core/ModelTierEscalation.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts +3 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +321 -1
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SessionManager.d.ts +5 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +9 -4
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/cartographerSummary.d.ts +62 -0
- package/dist/core/cartographerSummary.d.ts.map +1 -0
- package/dist/core/cartographerSummary.js +0 -0
- package/dist/core/cartographerSummary.js.map +1 -0
- package/dist/core/componentCategories.d.ts.map +1 -1
- package/dist/core/componentCategories.js +7 -0
- package/dist/core/componentCategories.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/BurnDetector.d.ts +10 -0
- package/dist/monitoring/BurnDetector.d.ts.map +1 -1
- package/dist/monitoring/BurnDetector.js +6 -0
- package/dist/monitoring/BurnDetector.js.map +1 -1
- package/dist/monitoring/CartographerSweepPoller.d.ts +61 -0
- package/dist/monitoring/CartographerSweepPoller.d.ts.map +1 -0
- package/dist/monitoring/CartographerSweepPoller.js +211 -0
- package/dist/monitoring/CartographerSweepPoller.js.map +1 -0
- package/dist/monitoring/GuardPostureTripwire.d.ts +3 -0
- package/dist/monitoring/GuardPostureTripwire.d.ts.map +1 -1
- package/dist/monitoring/GuardPostureTripwire.js +44 -0
- package/dist/monitoring/GuardPostureTripwire.js.map +1 -1
- package/dist/monitoring/HostPressureSampler.d.ts +21 -0
- package/dist/monitoring/HostPressureSampler.d.ts.map +1 -0
- package/dist/monitoring/HostPressureSampler.js +44 -0
- package/dist/monitoring/HostPressureSampler.js.map +1 -0
- package/dist/monitoring/TokenLedger.d.ts +7 -0
- package/dist/monitoring/TokenLedger.d.ts.map +1 -1
- package/dist/monitoring/TokenLedger.js +17 -0
- package/dist/monitoring/TokenLedger.js.map +1 -1
- package/dist/monitoring/UltraSessionCapMonitor.d.ts +61 -0
- package/dist/monitoring/UltraSessionCapMonitor.d.ts.map +1 -0
- package/dist/monitoring/UltraSessionCapMonitor.js +103 -0
- package/dist/monitoring/UltraSessionCapMonitor.js.map +1 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +120 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +2 -1
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +5 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +152 -7
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/cartographer-freshness.mjs +209 -0
- package/scripts/lint-no-direct-destructive.js +6 -0
- package/src/data/builtin-manifest.json +83 -67
- package/src/scaffold/templates.ts +4 -0
- package/src/templates/hooks/model-tier-reconciler.js +137 -0
- package/src/templates/hooks/model-tier-skill-entry.sh +72 -0
- package/src/templates/hooks/settings-template.json +15 -0
- package/upgrades/1.3.469.md +71 -0
- package/upgrades/1.3.470.md +27 -0
- package/upgrades/session-mgmt-buildctx-race.eli16.md +9 -0
- package/upgrades/side-effects/cartographer-doc-freshness.md +112 -0
- package/upgrades/side-effects/model-tier-escalation.md +267 -0
- package/upgrades/side-effects/session-mgmt-buildctx-race.md +48 -0
- package/upgrades/side-effects/watchdog-launchctl-test-guard.md +84 -0
- 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"}
|