instar 1.3.830 → 1.3.831
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/server.d.ts.map +1 -1
- package/dist/commands/server.js +83 -12
- package/dist/commands/server.js.map +1 -1
- package/dist/core/AutonomousRealCheckAnnotator.d.ts +105 -0
- package/dist/core/AutonomousRealCheckAnnotator.d.ts.map +1 -0
- package/dist/core/AutonomousRealCheckAnnotator.js +122 -0
- package/dist/core/AutonomousRealCheckAnnotator.js.map +1 -0
- package/dist/core/AutonomousRunStore.d.ts +29 -0
- package/dist/core/AutonomousRunStore.d.ts.map +1 -1
- package/dist/core/AutonomousRunStore.js +38 -0
- package/dist/core/AutonomousRunStore.js.map +1 -1
- package/dist/core/BackupManager.d.ts.map +1 -1
- package/dist/core/BackupManager.js +47 -1
- package/dist/core/BackupManager.js.map +1 -1
- package/dist/core/CircuitBreakingIntelligenceProvider.d.ts +12 -0
- package/dist/core/CircuitBreakingIntelligenceProvider.d.ts.map +1 -1
- package/dist/core/CircuitBreakingIntelligenceProvider.js +56 -4
- package/dist/core/CircuitBreakingIntelligenceProvider.js.map +1 -1
- package/dist/core/CompletionEvaluator.d.ts +62 -2
- package/dist/core/CompletionEvaluator.d.ts.map +1 -1
- package/dist/core/CompletionEvaluator.js +124 -6
- package/dist/core/CompletionEvaluator.js.map +1 -1
- package/dist/core/DecisionQualityRecorderImpl.d.ts +192 -0
- package/dist/core/DecisionQualityRecorderImpl.d.ts.map +1 -0
- package/dist/core/DecisionQualityRecorderImpl.js +363 -0
- package/dist/core/DecisionQualityRecorderImpl.js.map +1 -0
- package/dist/core/IntelligenceRouter.d.ts +33 -0
- package/dist/core/IntelligenceRouter.d.ts.map +1 -1
- package/dist/core/IntelligenceRouter.js +240 -54
- package/dist/core/IntelligenceRouter.js.map +1 -1
- package/dist/core/JudgmentProvenanceLog.d.ts +102 -2
- package/dist/core/JudgmentProvenanceLog.d.ts.map +1 -1
- package/dist/core/JudgmentProvenanceLog.js +239 -11
- package/dist/core/JudgmentProvenanceLog.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +11 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +32 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
- package/dist/core/WriteDomainRegistry.js +24 -0
- package/dist/core/WriteDomainRegistry.js.map +1 -1
- package/dist/core/decisionGradingPass.d.ts +69 -0
- package/dist/core/decisionGradingPass.d.ts.map +1 -0
- package/dist/core/decisionGradingPass.js +151 -0
- package/dist/core/decisionGradingPass.js.map +1 -0
- package/dist/core/decisionQualityTypes.d.ts +170 -0
- package/dist/core/decisionQualityTypes.d.ts.map +1 -0
- package/dist/core/decisionQualityTypes.js +85 -0
- package/dist/core/decisionQualityTypes.js.map +1 -0
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/machineCoherenceManifest.d.ts.map +1 -1
- package/dist/core/machineCoherenceManifest.js +4 -0
- package/dist/core/machineCoherenceManifest.js.map +1 -1
- package/dist/core/types.d.ts +69 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/provenanceCoverage.d.ts +150 -0
- package/dist/data/provenanceCoverage.d.ts.map +1 -0
- package/dist/data/provenanceCoverage.js +649 -0
- package/dist/data/provenanceCoverage.js.map +1 -0
- package/dist/monitoring/ExternalHogDecisionStore.d.ts +256 -0
- package/dist/monitoring/ExternalHogDecisionStore.d.ts.map +1 -0
- package/dist/monitoring/ExternalHogDecisionStore.js +481 -0
- package/dist/monitoring/ExternalHogDecisionStore.js.map +1 -0
- package/dist/monitoring/ExternalHogRealAdapters.d.ts +6 -2
- package/dist/monitoring/ExternalHogRealAdapters.d.ts.map +1 -1
- package/dist/monitoring/ExternalHogRealAdapters.js +2 -2
- package/dist/monitoring/ExternalHogRealAdapters.js.map +1 -1
- package/dist/monitoring/ExternalHogScanTick.d.ts +95 -3
- package/dist/monitoring/ExternalHogScanTick.d.ts.map +1 -1
- package/dist/monitoring/ExternalHogScanTick.js +102 -9
- package/dist/monitoring/ExternalHogScanTick.js.map +1 -1
- package/dist/monitoring/ExternalHogSentinel.d.ts +71 -3
- package/dist/monitoring/ExternalHogSentinel.d.ts.map +1 -1
- package/dist/monitoring/ExternalHogSentinel.js +126 -2
- package/dist/monitoring/ExternalHogSentinel.js.map +1 -1
- package/dist/monitoring/ExternalHogServerPrimitives.d.ts +10 -2
- package/dist/monitoring/ExternalHogServerPrimitives.d.ts.map +1 -1
- package/dist/monitoring/ExternalHogServerPrimitives.js +1 -1
- package/dist/monitoring/ExternalHogServerPrimitives.js.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.d.ts +304 -0
- package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.js +731 -0
- package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +2 -1
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +55 -1
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +15 -1
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/fileRoutes.d.ts.map +1 -1
- package/dist/server/fileRoutes.js +9 -0
- package/dist/server/fileRoutes.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +334 -5
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +65 -65
- package/src/data/provenanceCoverage.ts +823 -0
- package/src/scaffold/templates/jobs/instar/llm-decision-grading.md +32 -0
- package/src/scaffold/templates.ts +2 -1
- package/upgrades/1.3.831.md +30 -0
- package/upgrades/side-effects/llm-decision-quality-meter.md +95 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteDomainRegistry.d.ts","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WriteDomainRegistry.d.ts","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -302,6 +302,30 @@ export function buildWriteDomainRegistry(opts) {
|
|
|
302
302
|
};
|
|
303
303
|
reg.add({ kind: 'route', method: 'POST', pathPrefix: '/external-hog/arm', domain: 'machine-local', story: externalHogArmStory });
|
|
304
304
|
reg.add({ kind: 'route', method: 'POST', pathPrefix: '/external-hog/disarm', domain: 'machine-local', story: externalHogArmStory });
|
|
305
|
+
// ── Decision-Quality deterministic grading pass (llm-decision-quality-meter §5.5, §Multi-machine) ──
|
|
306
|
+
// Machine-local by construction: POST /decision-quality/grade-pass upserts grade
|
|
307
|
+
// rows for THIS machine's decision points into the per-machine feature-metrics
|
|
308
|
+
// SQLite (state/server-data/feature-metrics.db — decision_quality/decision_outcomes/
|
|
309
|
+
// rollup/cursor tables). It inherits the RATIFIED machine-local feature_metrics
|
|
310
|
+
// posture (spec §Multi-machine: "machine-local SQLite observability; per-machine
|
|
311
|
+
// spend/activity is the semantic unit"); the grading job runs per machine over its
|
|
312
|
+
// OWN local rows. Logical convergence is proxied-on-read — GET /decision-quality?scope=pool
|
|
313
|
+
// merges MACHINE-TAGGED rows across peers, summed nowhere silently. The backing store
|
|
314
|
+
// is a binary SQLite .db under the generated .instar/ server-data dir — git-sync-excluded
|
|
315
|
+
// on both counts (FileClassifier BINARY_EXTENSIONS + the .instar/server-data generated
|
|
316
|
+
// pattern), mirroring the topic-memory.db precedent above.
|
|
317
|
+
reg.add({
|
|
318
|
+
kind: 'route',
|
|
319
|
+
method: 'POST',
|
|
320
|
+
pathPrefix: '/decision-quality/grade-pass',
|
|
321
|
+
domain: 'machine-local',
|
|
322
|
+
story: {
|
|
323
|
+
logical: 'pool-scope-read-merge',
|
|
324
|
+
onSharedGitSyncedPath: true,
|
|
325
|
+
fileLevel: 'git-sync-excluded',
|
|
326
|
+
note: 'grades upsert into the per-machine feature-metrics SQLite (decision_quality/decision_outcomes tables); GET /decision-quality?scope=pool merges machine-tagged rows across peers (summed nowhere silently); the .db is git-sync-excluded via FileClassifier BINARY_EXTENSIONS + the .instar/server-data generated pattern',
|
|
327
|
+
},
|
|
328
|
+
});
|
|
305
329
|
return reg;
|
|
306
330
|
}
|
|
307
331
|
//# sourceMappingURL=WriteDomainRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteDomainRegistry.js","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WriteDomainRegistry.js","sourceRoot":"","sources":["../../src/core/WriteDomainRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* decisionGradingPass — the deterministic grading pass driven by
|
|
3
|
+
* POST /decision-quality/grade-pass (llm-decision-quality-meter §5.5).
|
|
4
|
+
*
|
|
5
|
+
* DETERMINISTIC-ONLY (FD11): the LLM evidence-interpreter rung ships NO code.
|
|
6
|
+
* This pass drives the ONE window-close rule the grading JOB owns —
|
|
7
|
+
* `hog-sustained-right-v1` (owningComponent 'DecisionGrading') — over the
|
|
8
|
+
* durable ExternalHogDecisionStore, plus the durable per-decision-point cursor
|
|
9
|
+
* bookkeeping (keyset (ts, correlation_id), bounded per run, idempotent grade
|
|
10
|
+
* upserts, P19 backoff). Every OTHER evidence rule fires at its own owner (the
|
|
11
|
+
* sentinel's scan-tick / grade-on-supersede for respawn-wrong + leave-recurrence;
|
|
12
|
+
* the completion realcheck arm) — never here.
|
|
13
|
+
*
|
|
14
|
+
* Idempotent BY CONSTRUCTION: grades upsert through the §5.4 annotate chokepoint
|
|
15
|
+
* keyed on (correlationId × gradedBy), so a re-run — a concurrent job-tick +
|
|
16
|
+
* operator curl — converges, never multiplies (§5.5).
|
|
17
|
+
*
|
|
18
|
+
* Cursor semantics (low-water mark over a UNIFORM window): a decision younger
|
|
19
|
+
* than the evidence window is still PENDING (its window-close verdict has not
|
|
20
|
+
* matured). Because every hog decision shares the same window, an older pending
|
|
21
|
+
* row implies every later row is pending too — so the pass stops advancing at
|
|
22
|
+
* the oldest un-terminal row and re-checks it (with P19 backoff) next tick.
|
|
23
|
+
* A row is TERMINAL — the cursor advances past it — once it is graded right/wrong
|
|
24
|
+
* by ANY grader OR its window has closed and no `right` applies (it reads as
|
|
25
|
+
* `unknown`/`expired`). No LLM tokens are spent (deterministic predicates only).
|
|
26
|
+
*/
|
|
27
|
+
import { type ExternalHogDecisionStore } from '../monitoring/ExternalHogDecisionStore.js';
|
|
28
|
+
import type { FeatureMetricsLedger } from '../monitoring/FeatureMetricsLedger.js';
|
|
29
|
+
import type { DecisionOutcomeAnnotationInput, DecisionOutcomeAnnotationResult } from './DecisionQualityRecorderImpl.js';
|
|
30
|
+
/** The DecisionGrading annotator identity — the `hog-sustained-right-v1`
|
|
31
|
+
* registered owner (§5.4.2). The annotate chokepoint rejects any other
|
|
32
|
+
* gradedBy.component for this rule, so this constant is load-bearing. */
|
|
33
|
+
export declare const DECISION_GRADING_COMPONENT = "DecisionGrading";
|
|
34
|
+
export interface DecisionGradingPassDeps {
|
|
35
|
+
/** The quality substrate (decision_quality/outcomes/rollup/cursor tables). */
|
|
36
|
+
ledger: FeatureMetricsLedger;
|
|
37
|
+
/** The durable hog decision store, or null when the sentinel has not wired it
|
|
38
|
+
* (the hog point then grades nothing this build — honest). */
|
|
39
|
+
hogStore: ExternalHogDecisionStore | null;
|
|
40
|
+
/** The §5.4 annotate chokepoint (production: `annotateDecisionOutcome`). */
|
|
41
|
+
annotate: (a: DecisionOutcomeAnnotationInput) => DecisionOutcomeAnnotationResult;
|
|
42
|
+
/** Global per-run row ceiling (provenance.quality.maxDecisionsPerPass, default 200). */
|
|
43
|
+
maxDecisionsPerPass: number;
|
|
44
|
+
/** The hog evidence window in ms — a decision younger than this is PENDING
|
|
45
|
+
* (window open). Provenance.quality.evidenceWindowHours (inline default 6h). */
|
|
46
|
+
evidenceWindowMs: number;
|
|
47
|
+
/** Injected clock (§Testing clock discipline — no bare Date.now() in the walk). */
|
|
48
|
+
now: () => number;
|
|
49
|
+
}
|
|
50
|
+
export interface DecisionGradingPassResult {
|
|
51
|
+
/** Grades that landed DURABLY this pass (dry-run/suppressed writes count 0). */
|
|
52
|
+
graded: number;
|
|
53
|
+
/** graded-by-rule tally (the job template's sanity-check surface). */
|
|
54
|
+
byRule: Record<string, number>;
|
|
55
|
+
/** decisionPoint → the advanced (ts, correlation_id) boundary. */
|
|
56
|
+
cursors: Record<string, {
|
|
57
|
+
ts: number;
|
|
58
|
+
correlationId: string;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run one deterministic grading pass. See the module doc for cursor semantics.
|
|
63
|
+
* The only DecisionGrading-owned window-close rule in this build is
|
|
64
|
+
* `hog-sustained-right-v1`; adding another enrolls a new point here AND flips
|
|
65
|
+
* `SUBBUDGET_IMPLEMENTED` (the census ratchet enforces the fairness sub-budget
|
|
66
|
+
* before a third enrolled point).
|
|
67
|
+
*/
|
|
68
|
+
export declare function runDecisionGradingPass(deps: DecisionGradingPassDeps): DecisionGradingPassResult;
|
|
69
|
+
//# sourceMappingURL=decisionGradingPass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionGradingPass.d.ts","sourceRoot":"","sources":["../../src/core/decisionGradingPass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAIxH;;0EAE0E;AAC1E,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAO5D,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,MAAM,EAAE,oBAAoB,CAAC;IAC7B;mEAC+D;IAC/D,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC1C,4EAA4E;IAC5E,QAAQ,EAAE,CAAC,CAAC,EAAE,8BAA8B,KAAK,+BAA+B,CAAC;IACjF,wFAAwF;IACxF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;qFACiF;IACjF,gBAAgB,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,GAAG,yBAAyB,CAoH/F"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* decisionGradingPass — the deterministic grading pass driven by
|
|
3
|
+
* POST /decision-quality/grade-pass (llm-decision-quality-meter §5.5).
|
|
4
|
+
*
|
|
5
|
+
* DETERMINISTIC-ONLY (FD11): the LLM evidence-interpreter rung ships NO code.
|
|
6
|
+
* This pass drives the ONE window-close rule the grading JOB owns —
|
|
7
|
+
* `hog-sustained-right-v1` (owningComponent 'DecisionGrading') — over the
|
|
8
|
+
* durable ExternalHogDecisionStore, plus the durable per-decision-point cursor
|
|
9
|
+
* bookkeeping (keyset (ts, correlation_id), bounded per run, idempotent grade
|
|
10
|
+
* upserts, P19 backoff). Every OTHER evidence rule fires at its own owner (the
|
|
11
|
+
* sentinel's scan-tick / grade-on-supersede for respawn-wrong + leave-recurrence;
|
|
12
|
+
* the completion realcheck arm) — never here.
|
|
13
|
+
*
|
|
14
|
+
* Idempotent BY CONSTRUCTION: grades upsert through the §5.4 annotate chokepoint
|
|
15
|
+
* keyed on (correlationId × gradedBy), so a re-run — a concurrent job-tick +
|
|
16
|
+
* operator curl — converges, never multiplies (§5.5).
|
|
17
|
+
*
|
|
18
|
+
* Cursor semantics (low-water mark over a UNIFORM window): a decision younger
|
|
19
|
+
* than the evidence window is still PENDING (its window-close verdict has not
|
|
20
|
+
* matured). Because every hog decision shares the same window, an older pending
|
|
21
|
+
* row implies every later row is pending too — so the pass stops advancing at
|
|
22
|
+
* the oldest un-terminal row and re-checks it (with P19 backoff) next tick.
|
|
23
|
+
* A row is TERMINAL — the cursor advances past it — once it is graded right/wrong
|
|
24
|
+
* by ANY grader OR its window has closed and no `right` applies (it reads as
|
|
25
|
+
* `unknown`/`expired`). No LLM tokens are spent (deterministic predicates only).
|
|
26
|
+
*/
|
|
27
|
+
import { DP_EXTERNAL_HOG_KILL_LEAVE } from '../data/provenanceCoverage.js';
|
|
28
|
+
import { HOG_SUSTAINED_RIGHT_RULE_ID, evaluateHogSustainedRight, } from '../monitoring/ExternalHogDecisionStore.js';
|
|
29
|
+
const HOUR_MS = 60 * 60 * 1000;
|
|
30
|
+
/** The DecisionGrading annotator identity — the `hog-sustained-right-v1`
|
|
31
|
+
* registered owner (§5.4.2). The annotate chokepoint rejects any other
|
|
32
|
+
* gradedBy.component for this rule, so this constant is load-bearing. */
|
|
33
|
+
export const DECISION_GRADING_COMPONENT = 'DecisionGrading';
|
|
34
|
+
/** P19 backoff for a point that made no progress (its low-water row is still
|
|
35
|
+
* within its window): base × 2^n, capped — never a busy re-check loop. */
|
|
36
|
+
const BACKOFF_BASE_MS = 5 * 60 * 1000;
|
|
37
|
+
const BACKOFF_CAP_MS = 60 * 60 * 1000;
|
|
38
|
+
/**
|
|
39
|
+
* Run one deterministic grading pass. See the module doc for cursor semantics.
|
|
40
|
+
* The only DecisionGrading-owned window-close rule in this build is
|
|
41
|
+
* `hog-sustained-right-v1`; adding another enrolls a new point here AND flips
|
|
42
|
+
* `SUBBUDGET_IMPLEMENTED` (the census ratchet enforces the fairness sub-budget
|
|
43
|
+
* before a third enrolled point).
|
|
44
|
+
*/
|
|
45
|
+
export function runDecisionGradingPass(deps) {
|
|
46
|
+
const { ledger, hogStore, annotate, now } = deps;
|
|
47
|
+
const budget = Math.max(1, Math.min(10_000, Math.floor(deps.maxDecisionsPerPass) || 200));
|
|
48
|
+
const evidenceWindowMs = deps.evidenceWindowMs > 0 ? deps.evidenceWindowMs : 6 * HOUR_MS;
|
|
49
|
+
const result = { graded: 0, byRule: {}, cursors: {} };
|
|
50
|
+
const point = DP_EXTERNAL_HOG_KILL_LEAVE;
|
|
51
|
+
const nowMs = now();
|
|
52
|
+
const cursor = ledger.getGradingCursor(point) ?? {
|
|
53
|
+
decisionPoint: point,
|
|
54
|
+
cursorTs: 0,
|
|
55
|
+
cursorCorrelationId: '',
|
|
56
|
+
nextRecheckTs: null,
|
|
57
|
+
attempts: 0,
|
|
58
|
+
updatedAt: 0,
|
|
59
|
+
};
|
|
60
|
+
// P19 backoff: while a point is backing off, no fresh evidence can have
|
|
61
|
+
// matured — skip it entirely this pass (report the frozen boundary honestly).
|
|
62
|
+
if (cursor.nextRecheckTs !== null && nowMs < cursor.nextRecheckTs) {
|
|
63
|
+
result.cursors[point] = { ts: cursor.cursorTs, correlationId: cursor.cursorCorrelationId };
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
// No durable evidence source wired (the sentinel store is not constructed) →
|
|
67
|
+
// nothing to grade; leave the cursor untouched.
|
|
68
|
+
if (!hogStore) {
|
|
69
|
+
result.cursors[point] = { ts: cursor.cursorTs, correlationId: cursor.cursorCorrelationId };
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
// correlationId → hog record (bounded: the store retains a handful of slots).
|
|
73
|
+
const byCorr = new Map();
|
|
74
|
+
for (const { record } of hogStore.list()) {
|
|
75
|
+
if (record.correlationId)
|
|
76
|
+
byCorr.set(record.correlationId, record);
|
|
77
|
+
}
|
|
78
|
+
const rows = ledger.walkDecisionsForGrading(point, cursor.cursorTs, cursor.cursorCorrelationId, budget);
|
|
79
|
+
let cursorTs = cursor.cursorTs;
|
|
80
|
+
let cursorCorr = cursor.cursorCorrelationId;
|
|
81
|
+
let sawPending = false;
|
|
82
|
+
for (const row of rows) {
|
|
83
|
+
// Already terminally graded (respawn-wrong at the sentinel, or a prior
|
|
84
|
+
// pass' right): advance past it.
|
|
85
|
+
const winning = ledger.getWinningGrades([row.correlationId])[0];
|
|
86
|
+
if (winning && (winning.grade === 'right' || winning.grade === 'wrong')) {
|
|
87
|
+
cursorTs = row.ts;
|
|
88
|
+
cursorCorr = row.correlationId;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const rec = byCorr.get(row.correlationId);
|
|
92
|
+
const decisionAtMs = rec?.atMs ?? row.ts;
|
|
93
|
+
const age = nowMs - decisionAtMs;
|
|
94
|
+
// Within the evidence window → the window-close verdict has not matured.
|
|
95
|
+
// Uniform windows ⇒ every later row is pending too: stop (low-water mark).
|
|
96
|
+
if (age <= evidenceWindowMs) {
|
|
97
|
+
sawPending = true;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
// Window CLOSED — resolve now.
|
|
101
|
+
if (rec) {
|
|
102
|
+
const grade = evaluateHogSustainedRight(rec, nowMs);
|
|
103
|
+
if (grade === 'right') {
|
|
104
|
+
const res = annotate({
|
|
105
|
+
correlationId: row.correlationId,
|
|
106
|
+
ruleId: HOG_SUSTAINED_RIGHT_RULE_ID,
|
|
107
|
+
gradedBy: { component: DECISION_GRADING_COMPONENT },
|
|
108
|
+
grade: 'right',
|
|
109
|
+
decisionPoint: point,
|
|
110
|
+
evidence: { rule: HOG_SUSTAINED_RIGHT_RULE_ID, windowMs: rec.effectiveWindowMs, sustainedNoReflag: true },
|
|
111
|
+
ts: nowMs,
|
|
112
|
+
});
|
|
113
|
+
if (res.applied) {
|
|
114
|
+
result.graded++;
|
|
115
|
+
result.byRule[HOG_SUSTAINED_RIGHT_RULE_ID] = (result.byRule[HOG_SUSTAINED_RIGHT_RULE_ID] ?? 0) + 1;
|
|
116
|
+
cursorTs = row.ts;
|
|
117
|
+
cursorCorr = row.correlationId;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// dry-run / disabled / rejected: the durable write was suppressed —
|
|
121
|
+
// treat as PENDING (do NOT advance) so a later dryRun:false flip grades
|
|
122
|
+
// it rather than skipping it forever behind an advanced cursor.
|
|
123
|
+
sawPending = true;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
// Window closed and `right` does not apply (re-flagged / owner alive /
|
|
127
|
+
// un-orderable) → terminal-unknown (reads as unknown/expired); advance.
|
|
128
|
+
cursorTs = row.ts;
|
|
129
|
+
cursorCorr = row.correlationId;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
// No hog record AND the window closed → no evidence will arrive → terminal.
|
|
133
|
+
cursorTs = row.ts;
|
|
134
|
+
cursorCorr = row.correlationId;
|
|
135
|
+
}
|
|
136
|
+
// Cursor + P19 backoff bookkeeping.
|
|
137
|
+
const advanced = cursorTs !== cursor.cursorTs || cursorCorr !== cursor.cursorCorrelationId;
|
|
138
|
+
let nextRecheckTs = null;
|
|
139
|
+
let attempts = 0;
|
|
140
|
+
if (sawPending && !advanced) {
|
|
141
|
+
// No progress AND a pending low-water row: back off before re-checking.
|
|
142
|
+
attempts = (cursor.attempts ?? 0) + 1;
|
|
143
|
+
nextRecheckTs = nowMs + Math.min(BACKOFF_CAP_MS, BACKOFF_BASE_MS * 2 ** Math.min(attempts - 1, 4));
|
|
144
|
+
}
|
|
145
|
+
// (A full page that fully resolved leaves nextRecheckTs null so the next pass
|
|
146
|
+
// continues immediately from the advanced boundary.)
|
|
147
|
+
ledger.setGradingCursor(point, { cursorTs, cursorCorrelationId: cursorCorr, nextRecheckTs, attempts });
|
|
148
|
+
result.cursors[point] = { ts: cursorTs, correlationId: cursorCorr };
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=decisionGradingPass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionGradingPass.js","sourceRoot":"","sources":["../../src/core/decisionGradingPass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAG1B,MAAM,2CAA2C,CAAC;AAInD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/B;;0EAE0E;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D;2EAC2E;AAC3E,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA4BtC;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA6B;IAClE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACzF,MAAM,MAAM,GAA8B,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjF,MAAM,KAAK,GAAG,0BAA0B,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI;QAC/C,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,EAAE;QACvB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,wEAAwE;IACxE,8EAA8E;IAC9E,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,gDAAgD;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC3F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,aAAa;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAExG,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,IAAI,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,uEAAuE;QACvE,iCAAiC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;YACxE,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,KAAK,GAAG,YAAY,CAAC;QAEjC,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;YAC5B,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACR,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC;oBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;oBAChC,MAAM,EAAE,2BAA2B;oBACnC,QAAQ,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE;oBACnD,KAAK,EAAE,OAAO;oBACd,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE;oBACzG,EAAE,EAAE,KAAK;iBACV,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnG,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;oBAClB,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBACD,oEAAoE;gBACpE,wEAAwE;gBACxE,gEAAgE;gBAChE,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,CAAC;YACD,uEAAuE;YACvE,wEAAwE;YACxE,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,4EAA4E;QAC5E,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;QAClB,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC;IACjC,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,UAAU,KAAK,MAAM,CAAC,mBAAmB,CAAC;IAC3F,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,wEAAwE;QACxE,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IACD,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IACpE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* decisionQualityTypes — the correlation spine of the LLM-Decision Quality Meter
|
|
3
|
+
* (docs/specs/llm-decision-quality-meter.md §5.1; FD1/FD7/FD8).
|
|
4
|
+
*
|
|
5
|
+
* Layer A (always-on, zero callsite edits): `IntelligenceRouter.evaluate()` mints a
|
|
6
|
+
* per-DECISION correlation id at entry on a router-INTERNAL clone of the options
|
|
7
|
+
* object; the id threads down through every swap attempt of the same decision, and
|
|
8
|
+
* the funnel wrapper (`CircuitBreakingIntelligenceProvider`) stamps it into every
|
|
9
|
+
* `kind:'llm'` metric row's `verdict_id`. A funnel-wrapped provider used DIRECTLY
|
|
10
|
+
* (router bypassed) reaches the breaker without the router's per-call mint marker
|
|
11
|
+
* and gets a local `b-` mint — so no llm row is ever uncorrelated, and
|
|
12
|
+
* provenance-of-mint is derivable from the id prefix alone.
|
|
13
|
+
*
|
|
14
|
+
* This module is deliberately import-free of the rest of core (only node:crypto),
|
|
15
|
+
* so BOTH the router and the breaker can share the symbols/mints/counters without
|
|
16
|
+
* a layering cycle. The recorder singleton follows the setFeatureMetricsRecorder
|
|
17
|
+
* pattern (injected once at AgentServer construction; null = clean no-op).
|
|
18
|
+
*/
|
|
19
|
+
/** The router-minted correlation id, attached to the router-INTERNAL options clone. */
|
|
20
|
+
export declare const DECISION_CORRELATION_ID: unique symbol;
|
|
21
|
+
/**
|
|
22
|
+
* The per-call single-use mint marker (§5.1.2). The breaker honors an inbound
|
|
23
|
+
* correlation id ONLY when this marker is present, and CONSUMES it (deletes the
|
|
24
|
+
* property from the received object) on acceptance — a reused options object
|
|
25
|
+
* cannot replay a stale marked id into a later decision's chain.
|
|
26
|
+
*/
|
|
27
|
+
export declare const DECISION_MINT_MARKER: unique symbol;
|
|
28
|
+
/**
|
|
29
|
+
* The additive `options.provenance` enrollment block an enrolling callsite
|
|
30
|
+
* supplies (Layer B — opt-in, per decision point). The block is CONSUMED by the
|
|
31
|
+
* seam: the router strips it from every per-attempt option spread, and the
|
|
32
|
+
* breaker ALSO strips it before `inner.evaluate` — it can never reach an inner
|
|
33
|
+
* adapter on any path (§5.1.6).
|
|
34
|
+
*/
|
|
35
|
+
export interface DecisionProvenanceBlock {
|
|
36
|
+
/**
|
|
37
|
+
* Stable decision-point id — IMPORTED from the census module (§5.6 typed
|
|
38
|
+
* registration; the settlement write additionally validates membership and
|
|
39
|
+
* counts unknowns in later phases).
|
|
40
|
+
*/
|
|
41
|
+
decisionPoint: string;
|
|
42
|
+
/**
|
|
43
|
+
* Decision context, built via the decision point's content-class envelope
|
|
44
|
+
* BUILDER (§5.2) — callsites do not hand-roll envelopes. Scrubbed + clamped
|
|
45
|
+
* at the settlement write.
|
|
46
|
+
*/
|
|
47
|
+
context?: Record<string, unknown>;
|
|
48
|
+
/** The bounded action space shown to the model — static, code-authored, enum-like labels (§5.2 clamps). */
|
|
49
|
+
optionsPresented?: string[];
|
|
50
|
+
/** Prompt identity — a hash/version tag (charset/length-clamped at write, §5.2). */
|
|
51
|
+
promptId?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Fired by the ROUTER synchronously at MINT (entry, before the first attempt),
|
|
54
|
+
* exactly once per `evaluate()` invocation, INCLUDING decisions that
|
|
55
|
+
* subsequently throw — never after the returned promise settles. The router
|
|
56
|
+
* invokes it inside try/catch: a throwing callback is caught + counted and
|
|
57
|
+
* never propagates (the documented `classifyVerdict` containment contract).
|
|
58
|
+
* A router-BYPASSED call never fires it (the breaker strips the block).
|
|
59
|
+
*/
|
|
60
|
+
onCorrelationId?: (id: string) => void;
|
|
61
|
+
}
|
|
62
|
+
/** Usage/model captured per attempt via fresh wrapper closures (per-attempt scoping). */
|
|
63
|
+
export interface DecisionAttemptCapture {
|
|
64
|
+
usage?: {
|
|
65
|
+
inputTokens: number;
|
|
66
|
+
outputTokens: number;
|
|
67
|
+
cachedTokens?: number;
|
|
68
|
+
};
|
|
69
|
+
resolved?: {
|
|
70
|
+
model: string;
|
|
71
|
+
framework?: string;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* One settled decision, handed to the recorder at EVERY `evaluate()` exit —
|
|
76
|
+
* ladder success, ladder-final failure, the `!cfg` early return, the
|
|
77
|
+
* provider-unavailable degrade arm, the `enforcedNoRoute` throw, the
|
|
78
|
+
* `RouterFailClosedError` rethrow, and the fallback-`'none'` throw. Exactly ONE
|
|
79
|
+
* settlement per router invocation (write-once latch).
|
|
80
|
+
*/
|
|
81
|
+
export interface DecisionSettlement {
|
|
82
|
+
/** The router-minted correlation id (`d-<machineId8>-<uuid>` / `d-<uuid>`). */
|
|
83
|
+
correlationId: string;
|
|
84
|
+
/** Router settlements are always router mints (breaker `b-` mints never settle — census-pending by rule). */
|
|
85
|
+
mintedBy: 'router';
|
|
86
|
+
/** Whether the call carried an `options.provenance` enrollment block (Layer B). */
|
|
87
|
+
enrolled: boolean;
|
|
88
|
+
/** The CONSUMED enrollment block (callback omitted) — present iff enrolled. */
|
|
89
|
+
provenance?: {
|
|
90
|
+
decisionPoint: string;
|
|
91
|
+
context?: Record<string, unknown>;
|
|
92
|
+
optionsPresented?: string[];
|
|
93
|
+
promptId?: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Usage/model/door of the attempt whose promise the router actually returned
|
|
97
|
+
* (§5.1.5 per-attempt capture scoping) — rejected attempts and
|
|
98
|
+
* withSwapTimeout-abandoned late callbacks never contribute. Empty on an
|
|
99
|
+
* errored settlement where no attempt resolved.
|
|
100
|
+
*/
|
|
101
|
+
settledAttempt: {
|
|
102
|
+
model?: string;
|
|
103
|
+
framework?: string;
|
|
104
|
+
usage?: {
|
|
105
|
+
inputTokens: number;
|
|
106
|
+
outputTokens: number;
|
|
107
|
+
cachedTokens?: number;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* `'fired'`/`'noop'` (from `classifyVerdict` where implemented) or
|
|
112
|
+
* `'unclassified'` on a successful settlement; the fixed marker `'<errored>'`
|
|
113
|
+
* on any throwing exit (so failure-swap-ladder quality is itself gradeable).
|
|
114
|
+
*/
|
|
115
|
+
verdictClass: string;
|
|
116
|
+
/** The error class name, set only when `verdictClass === '<errored>'`. */
|
|
117
|
+
errorClass?: string;
|
|
118
|
+
/**
|
|
119
|
+
* A caller-supplied `classifyVerdict.verdictId`, RELOCATED here (FD8): it no
|
|
120
|
+
* longer lands in `feature_metrics.verdict_id` on llm rows. Present only when
|
|
121
|
+
* enrolled (destined for the provenance row's context as `callerRef`);
|
|
122
|
+
* dropped otherwise.
|
|
123
|
+
*/
|
|
124
|
+
callerRef?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Head of the raw model response (§5.1.5): present ONLY when enrolled AND
|
|
127
|
+
* the settlement classified `'unclassified'` (no classifier / classifier
|
|
128
|
+
* threw). Bounded at source; the seam scrubs + clamps it to 300 chars into
|
|
129
|
+
* the provenance row's `context` — it NEVER lands in the served `decision`
|
|
130
|
+
* field.
|
|
131
|
+
*/
|
|
132
|
+
rawResponseHead?: string;
|
|
133
|
+
/** Wall-clock timestamps: the mint (evaluate entry) and the settlement (exit). */
|
|
134
|
+
mintedAtMs: number;
|
|
135
|
+
settledAtMs: number;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The decision-quality recorder the router's settlement seam writes to. The
|
|
139
|
+
* concrete substrate (SQLite `decision_quality` + provenance JSONL, later
|
|
140
|
+
* phases) is injected at AgentServer construction via
|
|
141
|
+
* `setDecisionQualityRecorder` — the setFeatureMetricsRecorder pattern. Null =
|
|
142
|
+
* no recording (CLI commands without a server), a clean no-op. A recorder MUST
|
|
143
|
+
* never throw into the decision path; the router additionally isolates the
|
|
144
|
+
* call defensively — observability must not break what it observes.
|
|
145
|
+
*/
|
|
146
|
+
export interface DecisionQualityRecorder {
|
|
147
|
+
recordSettlement(settlement: DecisionSettlement): void;
|
|
148
|
+
}
|
|
149
|
+
export declare function setDecisionQualityRecorder(recorder: DecisionQualityRecorder | null): void;
|
|
150
|
+
export declare function getDecisionQualityRecorder(): DecisionQualityRecorder | null;
|
|
151
|
+
export declare function setDecisionQualityMachineId(machineId: string | null | undefined): void;
|
|
152
|
+
/** Router mint: `d-<machineId8>-<uuid>` on multi-machine installs, else `d-<uuid>` (FD1 — uuid-based, never time+seq). */
|
|
153
|
+
export declare function mintRouterCorrelationId(): string;
|
|
154
|
+
/** Breaker-floor mint for router-bypassing calls: `b-<machineId8>-<uuid>` / `b-<uuid>` (§5.1.2). */
|
|
155
|
+
export declare function mintBreakerCorrelationId(): string;
|
|
156
|
+
export interface DecisionQualityCounters {
|
|
157
|
+
/** onCorrelationId callbacks that threw (caught + contained; the decision call succeeded). */
|
|
158
|
+
onCorrelationIdThrows: number;
|
|
159
|
+
/** `options.provenance` blocks stripped at the BREAKER (a router-bypassed carrier — census-pending by rule). */
|
|
160
|
+
provenanceStrippedAtBreaker: number;
|
|
161
|
+
/** Inbound correlation ids DISCARDED at the breaker (unmarked / marker-less / marker already consumed). */
|
|
162
|
+
inboundCorrelationIdDiscarded: number;
|
|
163
|
+
}
|
|
164
|
+
export declare function bumpOnCorrelationIdThrow(): void;
|
|
165
|
+
export declare function bumpProvenanceStrippedAtBreaker(): void;
|
|
166
|
+
export declare function bumpInboundCorrelationIdDiscarded(): void;
|
|
167
|
+
export declare function getDecisionQualityCounters(): Readonly<DecisionQualityCounters>;
|
|
168
|
+
/** Test-only seam (the _resetUnlabeledEmissionForTest precedent). */
|
|
169
|
+
export declare function _resetDecisionQualityForTest(): void;
|
|
170
|
+
//# sourceMappingURL=decisionQualityTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionQualityTypes.d.ts","sourceRoot":"","sources":["../../src/core/decisionQualityTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAaH,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,EAAE,OAAO,MAAyD,CAAC;AAEvG;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,MAAsD,CAAC;AAIjG;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,2GAA2G;IAC3G,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAID,yFAAyF;AACzF,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAC;IACtB,6GAA6G;IAC7G,QAAQ,EAAE,QAAQ,CAAC;IACnB,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;OAKG;IACH,cAAc,EAAE;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC9E,CAAC;IACF;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxD;AAKD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,IAAI,CAEzF;AACD,wBAAgB,0BAA0B,IAAI,uBAAuB,GAAG,IAAI,CAE3E;AAMD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEtF;AAED,0HAA0H;AAC1H,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,oGAAoG;AACpG,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAID,MAAM,WAAW,uBAAuB;IACtC,8FAA8F;IAC9F,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gHAAgH;IAChH,2BAA2B,EAAE,MAAM,CAAC;IACpC,2GAA2G;IAC3G,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAQD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AACD,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AACD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AACD,wBAAgB,0BAA0B,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAE9E;AAED,qEAAqE;AACrE,wBAAgB,4BAA4B,IAAI,IAAI,CAMnD"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* decisionQualityTypes — the correlation spine of the LLM-Decision Quality Meter
|
|
3
|
+
* (docs/specs/llm-decision-quality-meter.md §5.1; FD1/FD7/FD8).
|
|
4
|
+
*
|
|
5
|
+
* Layer A (always-on, zero callsite edits): `IntelligenceRouter.evaluate()` mints a
|
|
6
|
+
* per-DECISION correlation id at entry on a router-INTERNAL clone of the options
|
|
7
|
+
* object; the id threads down through every swap attempt of the same decision, and
|
|
8
|
+
* the funnel wrapper (`CircuitBreakingIntelligenceProvider`) stamps it into every
|
|
9
|
+
* `kind:'llm'` metric row's `verdict_id`. A funnel-wrapped provider used DIRECTLY
|
|
10
|
+
* (router bypassed) reaches the breaker without the router's per-call mint marker
|
|
11
|
+
* and gets a local `b-` mint — so no llm row is ever uncorrelated, and
|
|
12
|
+
* provenance-of-mint is derivable from the id prefix alone.
|
|
13
|
+
*
|
|
14
|
+
* This module is deliberately import-free of the rest of core (only node:crypto),
|
|
15
|
+
* so BOTH the router and the breaker can share the symbols/mints/counters without
|
|
16
|
+
* a layering cycle. The recorder singleton follows the setFeatureMetricsRecorder
|
|
17
|
+
* pattern (injected once at AgentServer construction; null = clean no-op).
|
|
18
|
+
*/
|
|
19
|
+
import { randomUUID } from 'node:crypto';
|
|
20
|
+
// ── Correlation plumbing symbols (router → breaker, internal-only) ──────────
|
|
21
|
+
//
|
|
22
|
+
// Symbol-keyed + enumerable ON PURPOSE: the router's per-attempt option objects
|
|
23
|
+
// are built by object spread, which copies own enumerable symbol-keyed
|
|
24
|
+
// properties — so every fresh attempt object carries its OWN copy of the mint
|
|
25
|
+
// marker, while `JSON.stringify`/`Object.keys` (CLI adapters, logs) never see
|
|
26
|
+
// it. Plain Symbols (not Symbol.for): a second module instance failing to
|
|
27
|
+
// recognize the marker degrades safely to a `b-` mint, never to id injection.
|
|
28
|
+
/** The router-minted correlation id, attached to the router-INTERNAL options clone. */
|
|
29
|
+
export const DECISION_CORRELATION_ID = Symbol('instar.decision-quality.correlation-id');
|
|
30
|
+
/**
|
|
31
|
+
* The per-call single-use mint marker (§5.1.2). The breaker honors an inbound
|
|
32
|
+
* correlation id ONLY when this marker is present, and CONSUMES it (deletes the
|
|
33
|
+
* property from the received object) on acceptance — a reused options object
|
|
34
|
+
* cannot replay a stale marked id into a later decision's chain.
|
|
35
|
+
*/
|
|
36
|
+
export const DECISION_MINT_MARKER = Symbol('instar.decision-quality.mint-marker');
|
|
37
|
+
// ── Module singletons (injected once at AgentServer construction) ───────────
|
|
38
|
+
let _decisionQualityRecorder = null;
|
|
39
|
+
export function setDecisionQualityRecorder(recorder) {
|
|
40
|
+
_decisionQualityRecorder = recorder;
|
|
41
|
+
}
|
|
42
|
+
export function getDecisionQualityRecorder() {
|
|
43
|
+
return _decisionQualityRecorder;
|
|
44
|
+
}
|
|
45
|
+
// machineId8 — the first 8 chars of the pool/mesh self machine id (§5.1.1),
|
|
46
|
+
// injected beside the recorder singleton. Absent (single-machine install) ⇒ the
|
|
47
|
+
// id segment is omitted. Shared by BOTH mint sites (router `d-`, breaker `b-`).
|
|
48
|
+
let _machineId8 = null;
|
|
49
|
+
export function setDecisionQualityMachineId(machineId) {
|
|
50
|
+
_machineId8 = typeof machineId === 'string' && machineId.length > 0 ? machineId.slice(0, 8) : null;
|
|
51
|
+
}
|
|
52
|
+
/** Router mint: `d-<machineId8>-<uuid>` on multi-machine installs, else `d-<uuid>` (FD1 — uuid-based, never time+seq). */
|
|
53
|
+
export function mintRouterCorrelationId() {
|
|
54
|
+
return _machineId8 ? `d-${_machineId8}-${randomUUID()}` : `d-${randomUUID()}`;
|
|
55
|
+
}
|
|
56
|
+
/** Breaker-floor mint for router-bypassing calls: `b-<machineId8>-<uuid>` / `b-<uuid>` (§5.1.2). */
|
|
57
|
+
export function mintBreakerCorrelationId() {
|
|
58
|
+
return _machineId8 ? `b-${_machineId8}-${randomUUID()}` : `b-${randomUUID()}`;
|
|
59
|
+
}
|
|
60
|
+
const _counters = {
|
|
61
|
+
onCorrelationIdThrows: 0,
|
|
62
|
+
provenanceStrippedAtBreaker: 0,
|
|
63
|
+
inboundCorrelationIdDiscarded: 0,
|
|
64
|
+
};
|
|
65
|
+
export function bumpOnCorrelationIdThrow() {
|
|
66
|
+
_counters.onCorrelationIdThrows++;
|
|
67
|
+
}
|
|
68
|
+
export function bumpProvenanceStrippedAtBreaker() {
|
|
69
|
+
_counters.provenanceStrippedAtBreaker++;
|
|
70
|
+
}
|
|
71
|
+
export function bumpInboundCorrelationIdDiscarded() {
|
|
72
|
+
_counters.inboundCorrelationIdDiscarded++;
|
|
73
|
+
}
|
|
74
|
+
export function getDecisionQualityCounters() {
|
|
75
|
+
return { ..._counters };
|
|
76
|
+
}
|
|
77
|
+
/** Test-only seam (the _resetUnlabeledEmissionForTest precedent). */
|
|
78
|
+
export function _resetDecisionQualityForTest() {
|
|
79
|
+
_decisionQualityRecorder = null;
|
|
80
|
+
_machineId8 = null;
|
|
81
|
+
_counters.onCorrelationIdThrows = 0;
|
|
82
|
+
_counters.provenanceStrippedAtBreaker = 0;
|
|
83
|
+
_counters.inboundCorrelationIdDiscarded = 0;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=decisionQualityTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisionQualityTypes.js","sourceRoot":"","sources":["../../src/core/decisionQualityTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,uEAAuE;AACvE,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E,uFAAuF;AACvF,MAAM,CAAC,MAAM,uBAAuB,GAAkB,MAAM,CAAC,wCAAwC,CAAC,CAAC;AAEvG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB,MAAM,CAAC,qCAAqC,CAAC,CAAC;AAwHjG,+EAA+E;AAE/E,IAAI,wBAAwB,GAAmC,IAAI,CAAC;AACpE,MAAM,UAAU,0BAA0B,CAAC,QAAwC;IACjF,wBAAwB,GAAG,QAAQ,CAAC;AACtC,CAAC;AACD,MAAM,UAAU,0BAA0B;IACxC,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,4EAA4E;AAC5E,gFAAgF;AAChF,gFAAgF;AAChF,IAAI,WAAW,GAAkB,IAAI,CAAC;AACtC,MAAM,UAAU,2BAA2B,CAAC,SAAoC;IAC9E,WAAW,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrG,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,EAAE,CAAC;AAChF,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,wBAAwB;IACtC,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,EAAE,CAAC;AAChF,CAAC;AAaD,MAAM,SAAS,GAA4B;IACzC,qBAAqB,EAAE,CAAC;IACxB,2BAA2B,EAAE,CAAC;IAC9B,6BAA6B,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,UAAU,wBAAwB;IACtC,SAAS,CAAC,qBAAqB,EAAE,CAAC;AACpC,CAAC;AACD,MAAM,UAAU,+BAA+B;IAC7C,SAAS,CAAC,2BAA2B,EAAE,CAAC;AAC1C,CAAC;AACD,MAAM,UAAU,iCAAiC;IAC/C,SAAS,CAAC,6BAA6B,EAAE,CAAC;AAC5C,CAAC;AACD,MAAM,UAAU,0BAA0B;IACxC,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;AAC1B,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,4BAA4B;IAC1C,wBAAwB,GAAG,IAAI,CAAC;IAChC,WAAW,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACpC,SAAS,CAAC,2BAA2B,GAAG,CAAC,CAAC;IAC1C,SAAS,CAAC,6BAA6B,GAAG,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"devGatedFeatures.d.ts","sourceRoot":"","sources":["../../src/core/devGatedFeatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA4iB/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAoKnD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAO5E"}
|
|
@@ -547,6 +547,12 @@ export const DEV_GATED_FEATURES = [
|
|
|
547
547
|
description: 'Swap-continuity in-flight work gate (swap-continuity-antithrash §4) — every session-killing mutation (proactive/reactive account swap, agent/API refresh) consults the SwapWorkGate at the SessionRefresh funnel: a proactive swap DEFERS over in-flight work (ceiling-dropped, never forced), a reactive swap gets a bounded ≤120s grace then proceeds WITH the F3 mitigations (enumerated killed subagents + re-injected unanswered inbound), an interactive refresh gets a structured session-busy refusal + force.',
|
|
548
548
|
justification: 'Ships dryRun:true (the dry-run canary): on a dev agent the gate probes and LOGS every would-defer/would-refuse/would-mitigate verdict but changes NOTHING — every refresh kills exactly as today until a deliberate dryRun:false. The gate itself is deterministic structural-state math (pane footer / child process / subagent registry — Tier 0, no LLM), bounded on every edge (30-min deferral ceiling, 120-s reactive grace, force override, recovery-class exemption), and its uncertainty direction only ever DELAYS an optimization — it can never kill work, spend, or egress. Same dogfooding posture as topicProfiles / agentOwnedFollowthrough.',
|
|
549
549
|
},
|
|
550
|
+
{
|
|
551
|
+
name: 'provenanceUniformSeam',
|
|
552
|
+
configPath: 'provenance.uniformSeam.enabled',
|
|
553
|
+
description: 'LLM-Decision Quality Meter uniform provenance seam (docs/specs/llm-decision-quality-meter.md §5.7) — the router-settlement side write that records each ENROLLED LLM decision (a ~250-byte decision_quality row always; a provenance JSONL row per the census volume valve) so per-decision-point right/wrong/unknown grading has parents. Read surface: GET /decision-quality (503 when the seam resolves off). dryRun defaults TRUE even on dev — metadata-only would-write logs, ALL durable writes suppressed — until a deliberate dryRun:false flip after the would-write soak.',
|
|
554
|
+
justification: 'observe-only side write at the router-settlement seam; never gates/blocks/delays the decision call; no egress, no spend, no destructive action; failure is catch-logged.',
|
|
555
|
+
},
|
|
550
556
|
];
|
|
551
557
|
export const DARK_GATE_EXCLUSIONS = [
|
|
552
558
|
// ── destructive — kills/deletes on a heuristic; off + dry-run for EVERYONE ──
|