instar 1.3.831 → 1.3.833
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/.claude/hooks/duplicate-build-start-gate.js +229 -0
- package/dist/core/MessagingToneGate.d.ts +30 -0
- package/dist/core/MessagingToneGate.d.ts.map +1 -1
- package/dist/core/MessagingToneGate.js +63 -0
- package/dist/core/MessagingToneGate.js.map +1 -1
- package/dist/core/decisionGradingPass.d.ts +24 -4
- package/dist/core/decisionGradingPass.d.ts.map +1 -1
- package/dist/core/decisionGradingPass.js +47 -10
- package/dist/core/decisionGradingPass.js.map +1 -1
- package/dist/data/provenanceCoverage.d.ts +7 -1
- package/dist/data/provenanceCoverage.d.ts.map +1 -1
- package/dist/data/provenanceCoverage.js +37 -12
- package/dist/data/provenanceCoverage.js.map +1 -1
- package/package.json +1 -1
- package/scripts/instar-dev-precommit.js +98 -1
- package/scripts/lib/duplicate-build-check.mjs +1472 -0
- package/scripts/pre-push-gate.js +40 -0
- package/skills/instar-dev/scripts/write-trace.mjs +36 -0
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/provenanceCoverage.ts +40 -13
- package/upgrades/1.3.832.md +22 -0
- package/upgrades/1.3.833.md +22 -0
- package/upgrades/side-effects/duplicate-build-guard.md +77 -0
- package/upgrades/side-effects/messaging-tone-gate-provenance-enrollment.md +68 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* duplicate-build-start-gate.js — the duplicate-build guard's build-START
|
|
4
|
+
* structural teeth (docs/specs/duplicate-build-guard.md §3.4, FD3).
|
|
5
|
+
*
|
|
6
|
+
* A repo-local dev-lifecycle PreToolUse hook (NOT a fleet-shipped template —
|
|
7
|
+
* Migration Parity does not apply, spec §5) wired in this repo's own
|
|
8
|
+
* .claude/settings.json on Write|Edit|MultiEdit. It fires on the FIRST
|
|
9
|
+
* mutating write to any tracked repo path EXCEPT the trace/log/state paths
|
|
10
|
+
* themselves, and BLOCKS that first write (exit 2) when the recorded
|
|
11
|
+
* duplicate-build verdict is `likely-duplicate`/`verify` and no disposition
|
|
12
|
+
* has been recorded — gating the first *implementation tool call*, not
|
|
13
|
+
* turn-exit, so first-turn implementation can't slip past a Stop-event hook.
|
|
14
|
+
*
|
|
15
|
+
* Speed contract: the hook must NOT run the full scan on every tool call.
|
|
16
|
+
* Run-once semantics via a worktree-local marker
|
|
17
|
+
* (.instar/dup-build-gate.marker.json): once a build's verdict has been
|
|
18
|
+
* evaluated-and-allowed, every later call is a single existsSync + exit 0.
|
|
19
|
+
* The full check runs AT MOST once per worktree (and only when the instar-dev
|
|
20
|
+
* build-start step didn't already run it and write the stub).
|
|
21
|
+
*
|
|
22
|
+
* FAIL-OPEN (§3.4/FD5): a hook crash, an unresolvable spec, or a hard check
|
|
23
|
+
* error NEVER blocks — on a hard check error the hook writes the
|
|
24
|
+
* `check-errored` auto-stub ({verdict:"check-errored", cause:"check-error",
|
|
25
|
+
* decision:"proceed", reason:"auto: check errored (fail-open)"}) so the build
|
|
26
|
+
* proceeds AND the precommit presence-backstop still finds the field.
|
|
27
|
+
*
|
|
28
|
+
* Disposition schema (§3.4 — so the gate is not a checkbox):
|
|
29
|
+
* { verdict, cause, decision: "proceed"|"abandon", reason, acknowledgedEvidenceIds[] }
|
|
30
|
+
* A likely-duplicate proceed REQUIRES a non-empty reason AND ≥1
|
|
31
|
+
* acknowledgedEvidenceId naming a concrete evidence entry.
|
|
32
|
+
*
|
|
33
|
+
* Off-switch: INSTAR_DUP_BUILD_CHECK=off (mirrors INSTAR_PRE_PUSH_SKIP).
|
|
34
|
+
*
|
|
35
|
+
* Exit codes (Claude Code PreToolUse contract):
|
|
36
|
+
* 0 — allow the tool call
|
|
37
|
+
* 2 — BLOCK the tool call (stderr is shown to the model)
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
import fs from 'node:fs';
|
|
41
|
+
import path from 'node:path';
|
|
42
|
+
import { fileURLToPath } from 'node:url';
|
|
43
|
+
|
|
44
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
45
|
+
// The hook lives at <repo>/.claude/hooks/ — the repo root is two dirs up.
|
|
46
|
+
const HOOK_ROOT = path.resolve(path.dirname(__filename), '..', '..');
|
|
47
|
+
|
|
48
|
+
const MARKER_REL = path.join('.instar', 'dup-build-gate.marker.json');
|
|
49
|
+
const STUB_REL = path.join('.instar', 'dup-build-check.json');
|
|
50
|
+
|
|
51
|
+
// Paths whose writes never trigger the gate: the guard's own state, traces,
|
|
52
|
+
// logs, scratch — plus anything outside the repo. (Spec §3.4: "EXCEPT the
|
|
53
|
+
// trace/log/state paths themselves".)
|
|
54
|
+
const EXCLUDED_PREFIXES = [
|
|
55
|
+
'.instar/', 'logs/', 'node_modules/', '.git/', 'scratchpad/', 'dist/',
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
function readStdin() {
|
|
59
|
+
try {
|
|
60
|
+
return fs.readFileSync(0, 'utf8');
|
|
61
|
+
} catch {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function isOff(env) {
|
|
67
|
+
const v = String(env.INSTAR_DUP_BUILD_CHECK ?? '').toLowerCase();
|
|
68
|
+
return v === 'off' || v === '0' || v === 'false';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function readJson(p) {
|
|
72
|
+
try {
|
|
73
|
+
const o = JSON.parse(fs.readFileSync(p, 'utf8'));
|
|
74
|
+
return o && typeof o === 'object' ? o : null;
|
|
75
|
+
} catch {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function writeMarker(root, info) {
|
|
81
|
+
try {
|
|
82
|
+
fs.mkdirSync(path.join(root, '.instar'), { recursive: true });
|
|
83
|
+
fs.writeFileSync(
|
|
84
|
+
path.join(root, MARKER_REL),
|
|
85
|
+
JSON.stringify({ allowedAt: new Date().toISOString(), ...info }, null, 2) + '\n',
|
|
86
|
+
);
|
|
87
|
+
} catch { /* marker is best-effort — worst case the stub is re-read next call */ }
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function block(lines) {
|
|
91
|
+
process.stderr.write(lines.join('\n') + '\n');
|
|
92
|
+
process.exit(2);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async function main() {
|
|
96
|
+
const env = process.env;
|
|
97
|
+
if (isOff(env)) process.exit(0);
|
|
98
|
+
|
|
99
|
+
const root = env.CLAUDE_PROJECT_DIR ? path.resolve(env.CLAUDE_PROJECT_DIR) : HOOK_ROOT;
|
|
100
|
+
|
|
101
|
+
// ── HOT PATH: run-once marker → single existsSync + exit ──────────────────
|
|
102
|
+
if (fs.existsSync(path.join(root, MARKER_REL))) process.exit(0);
|
|
103
|
+
|
|
104
|
+
// Only the instar repo is in scope (the hook file ships in-tree, but a
|
|
105
|
+
// stray CLAUDE_PROJECT_DIR must not arm the gate elsewhere).
|
|
106
|
+
const pkg = readJson(path.join(root, 'package.json'));
|
|
107
|
+
if (!pkg || pkg.name !== 'instar') process.exit(0);
|
|
108
|
+
|
|
109
|
+
// ── Which file is being written? ───────────────────────────────────────────
|
|
110
|
+
let input = null;
|
|
111
|
+
try {
|
|
112
|
+
input = JSON.parse(readStdin());
|
|
113
|
+
} catch {
|
|
114
|
+
process.exit(0); // unreadable hook input → fail-open
|
|
115
|
+
}
|
|
116
|
+
const filePath = input && input.tool_input && typeof input.tool_input.file_path === 'string'
|
|
117
|
+
? input.tool_input.file_path
|
|
118
|
+
: null;
|
|
119
|
+
if (!filePath) process.exit(0);
|
|
120
|
+
const abs = path.isAbsolute(filePath) ? filePath : path.resolve(root, filePath);
|
|
121
|
+
const rel = path.relative(root, abs);
|
|
122
|
+
if (rel.startsWith('..') || path.isAbsolute(rel)) process.exit(0); // outside the repo
|
|
123
|
+
const relNorm = rel.split(path.sep).join('/');
|
|
124
|
+
if (EXCLUDED_PREFIXES.some((p) => relNorm.startsWith(p))) process.exit(0);
|
|
125
|
+
|
|
126
|
+
// ── Read (or produce, once) the recorded verdict ───────────────────────────
|
|
127
|
+
let lib = null;
|
|
128
|
+
try {
|
|
129
|
+
lib = await import(path.join(HOOK_ROOT, 'scripts', 'lib', 'duplicate-build-check.mjs'));
|
|
130
|
+
} catch {
|
|
131
|
+
// Library unimportable = hard check error → auto-stub + allow (§3.4).
|
|
132
|
+
try {
|
|
133
|
+
fs.mkdirSync(path.join(root, '.instar'), { recursive: true });
|
|
134
|
+
fs.writeFileSync(path.join(root, STUB_REL), JSON.stringify({
|
|
135
|
+
verdict: 'check-errored', cause: 'check-error', causes: ['check-error'],
|
|
136
|
+
checkedAt: new Date().toISOString(),
|
|
137
|
+
disposition: { decision: 'proceed', reason: 'auto: check errored (fail-open)', acknowledgedEvidenceIds: [], auto: true },
|
|
138
|
+
}, null, 2) + '\n');
|
|
139
|
+
} catch { /* ignore */ }
|
|
140
|
+
writeMarker(root, { via: 'lib-unimportable' });
|
|
141
|
+
process.exit(0);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
let stub = lib.readStub(root);
|
|
145
|
+
if (!stub || typeof stub.verdict !== 'string') {
|
|
146
|
+
// No recorded verdict yet — the build-start step was skipped. Run the check
|
|
147
|
+
// ONCE here (Structure > Willpower: the guard doesn't depend on the skill
|
|
148
|
+
// prose having been followed). Only spec-driven builds are in scope: if no
|
|
149
|
+
// spec is resolvable on this branch, this session isn't an instar-dev build
|
|
150
|
+
// → allow + marker (the precommit spec-tag chain governs it anyway).
|
|
151
|
+
const specPath = lib.resolveSpecForAdvisory(root);
|
|
152
|
+
if (!specPath) {
|
|
153
|
+
writeMarker(root, { via: 'no-spec-resolvable' });
|
|
154
|
+
process.exit(0);
|
|
155
|
+
}
|
|
156
|
+
const record = lib.runDuplicateBuildCheck({ specPath, root, phase: 'build-start', env });
|
|
157
|
+
stub = { ...record };
|
|
158
|
+
if (record.verdict === 'check-errored') {
|
|
159
|
+
stub.disposition = lib.checkErroredAutoStub().disposition;
|
|
160
|
+
} else if (record.verdict === 'clear' || record.verdict === 'skipped') {
|
|
161
|
+
stub.disposition = {
|
|
162
|
+
decision: 'proceed', reason: `auto: verdict ${record.verdict}`,
|
|
163
|
+
acknowledgedEvidenceIds: [], recordedAt: new Date().toISOString(), auto: true,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
lib.writeStub(root, stub);
|
|
168
|
+
} catch { /* stub write best-effort; evaluation below still runs */ }
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const v = stub.verdict;
|
|
172
|
+
if (v === 'clear' || v === 'skipped' || v === 'check-errored') {
|
|
173
|
+
writeMarker(root, { via: `verdict-${v}` });
|
|
174
|
+
process.exit(0);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (v === 'likely-duplicate' || v === 'verify') {
|
|
178
|
+
const d = stub.disposition;
|
|
179
|
+
const recordCmd =
|
|
180
|
+
`node scripts/lib/duplicate-build-check.mjs --record-disposition --decision proceed ` +
|
|
181
|
+
`--reason "<why this is not a duplicate>"` +
|
|
182
|
+
(v === 'likely-duplicate' ? ` --ack <EV-id[,EV-id]>` : '');
|
|
183
|
+
if (!d || (d.decision !== 'proceed' && d.decision !== 'abandon')) {
|
|
184
|
+
const ev = (stub.evidence ?? []).slice(0, 5).map((e) => ` ${e.id} [${e.source}] ${e.detail}`);
|
|
185
|
+
block([
|
|
186
|
+
`duplicate-build gate: verdict is "${v}"${stub.cause ? ` (cause: ${stub.cause})` : ''} and no disposition is recorded — implementation writes are blocked until you decide proceed/abandon (docs/specs/duplicate-build-guard.md §3.4).`,
|
|
187
|
+
...(ev.length ? ['Evidence:', ...ev] : []),
|
|
188
|
+
'Review the overlap, then record YOUR decision (you are the authority — the tool only records it):',
|
|
189
|
+
` ${recordCmd}`,
|
|
190
|
+
'Or abandon this build if it IS a duplicate:',
|
|
191
|
+
' node scripts/lib/duplicate-build-check.mjs --record-disposition --decision abandon --reason "<duplicate of …>"',
|
|
192
|
+
]);
|
|
193
|
+
}
|
|
194
|
+
if (d.decision === 'abandon') {
|
|
195
|
+
block([
|
|
196
|
+
`duplicate-build gate: this build's recorded disposition is ABANDON (${d.reason ? `reason: ${String(d.reason).slice(0, 200)}` : 'no reason recorded'}).`,
|
|
197
|
+
'Implementation writes stay blocked. If you decided to proceed after all, re-record:',
|
|
198
|
+
` ${recordCmd}`,
|
|
199
|
+
]);
|
|
200
|
+
}
|
|
201
|
+
if (v === 'likely-duplicate' && d.decision === 'proceed') {
|
|
202
|
+
const reasonOk = typeof d.reason === 'string' && d.reason.trim().length > 0;
|
|
203
|
+
const acks = Array.isArray(d.acknowledgedEvidenceIds)
|
|
204
|
+
? d.acknowledgedEvidenceIds.map((s) => String(s).trim()).filter(Boolean)
|
|
205
|
+
: [];
|
|
206
|
+
const evidenceIds = new Set((stub.evidence ?? []).map((e) => e.id));
|
|
207
|
+
const ackOk = acks.length >= 1 && (evidenceIds.size === 0 || acks.some((a) => evidenceIds.has(a)));
|
|
208
|
+
if (!reasonOk || !ackOk) {
|
|
209
|
+
block([
|
|
210
|
+
'duplicate-build gate: a likely-duplicate PROCEED requires a non-empty reason AND at least one acknowledgedEvidenceId naming the concrete overlap you judged non-duplicative (§3.4).',
|
|
211
|
+
`Recorded: reason=${reasonOk ? 'ok' : 'MISSING'}, acknowledgedEvidenceIds=${acks.length ? acks.join(',') : 'MISSING'}`,
|
|
212
|
+
'Re-record with:',
|
|
213
|
+
` ${recordCmd}`,
|
|
214
|
+
]);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
writeMarker(root, { via: `dispositioned-${v}-${d.decision}` });
|
|
218
|
+
process.exit(0);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Unknown verdict value → fail-open.
|
|
222
|
+
writeMarker(root, { via: 'unknown-verdict' });
|
|
223
|
+
process.exit(0);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
main().catch(() => {
|
|
227
|
+
// A hook crash NEVER blocks (§3.4).
|
|
228
|
+
process.exit(0);
|
|
229
|
+
});
|
|
@@ -18,6 +18,20 @@
|
|
|
18
18
|
* is the structural backup that catches lapses.
|
|
19
19
|
*/
|
|
20
20
|
import type { IntelligenceProvider } from './types.js';
|
|
21
|
+
/**
|
|
22
|
+
* The prompt-version tag for the tone-gate judge, declared as the provenance
|
|
23
|
+
* `promptId` (llm-decision-quality-meter §5.2 — a stable, clamp-safe
|
|
24
|
+
* ^[a-zA-Z0-9_-]{1,64}$ version tag). BUMP ON ANY PROMPT CHANGE so grade-by-
|
|
25
|
+
* promptId aggregates never silently mix prompt semantics. `-sigv1` marks the
|
|
26
|
+
* signal-driven B1–B7 prompt shape (CMT-1793).
|
|
27
|
+
*/
|
|
28
|
+
export declare const TONE_GATE_PROMPT_ID = "tone-gate-sigv1";
|
|
29
|
+
/**
|
|
30
|
+
* The bounded action space the tone judge emits, declared as `optionsPresented`
|
|
31
|
+
* on the provenance enrollment (§5.2 static, code-authored, enum-like labels):
|
|
32
|
+
* the gate makes ONE deliver-or-block decision per call.
|
|
33
|
+
*/
|
|
34
|
+
export declare const TONE_OPTIONS_PRESENTED: readonly ["PASS", "BLOCK"];
|
|
21
35
|
/**
|
|
22
36
|
* Why the LLM tone authority could not produce a verdict — an INFRA reason
|
|
23
37
|
* (the backend was unreachable / too slow), distinct from a content verdict.
|
|
@@ -59,6 +73,22 @@ export declare function detectDeterministicLeak(text: string): {
|
|
|
59
73
|
rule: string;
|
|
60
74
|
kind: string;
|
|
61
75
|
} | null;
|
|
76
|
+
/**
|
|
77
|
+
* The §5.2 content-bearing decision-context envelope for the tone gate's
|
|
78
|
+
* provenance row (llm-decision-quality-meter). The gate judges an agent-authored
|
|
79
|
+
* OUTBOUND message; the row stores it as IDENTITY ONLY — a sha256 of the exact
|
|
80
|
+
* candidate + byte/char bounds — plus CODE-DERIVED features (channel, messageKind,
|
|
81
|
+
* recent-message COUNT, the deterministic gate-signal KINDS). It NEVER stores the
|
|
82
|
+
* message body or any plaintext slice of it.
|
|
83
|
+
*
|
|
84
|
+
* WHY NO plaintext head (mirrors the CompletionEvaluator content-bearing sibling,
|
|
85
|
+
* §5.3): the candidate IS the very outbound text this gate exists to inspect for
|
|
86
|
+
* leaks — a bounded head, even credential-scrubbed, would still archive
|
|
87
|
+
* non-credential PII / user-facing prose the store must not become a copy of. The
|
|
88
|
+
* hash gives full identity (correlate/dedupe/replay-verify) with zero body
|
|
89
|
+
* exposure.
|
|
90
|
+
*/
|
|
91
|
+
export declare function buildToneDecisionContext(text: string, context: ToneReviewContext): Record<string, unknown>;
|
|
62
92
|
/**
|
|
63
93
|
* Build the F4 degraded-disposition result for a candidate: run the
|
|
64
94
|
* deterministic leak floor and SEND if clean / HOLD if it carries a leak. Pure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"MessagingToneGate.d.ts","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,21 @@ import { isCapacityUnavailable } from './SpawnCapIntelligenceProvider.js';
|
|
|
22
22
|
import { detectGateSignals, GATE_SIGNAL_KIND_TO_RULE, } from './GateSignalDetectors.js';
|
|
23
23
|
import { detectInternalIdLeak } from './internal-id-leak.js';
|
|
24
24
|
import { detectSelfStopShape } from './self-stop-floor.js';
|
|
25
|
+
import { DP_MESSAGING_TONE_GATE } from '../data/provenanceCoverage.js';
|
|
26
|
+
/**
|
|
27
|
+
* The prompt-version tag for the tone-gate judge, declared as the provenance
|
|
28
|
+
* `promptId` (llm-decision-quality-meter §5.2 — a stable, clamp-safe
|
|
29
|
+
* ^[a-zA-Z0-9_-]{1,64}$ version tag). BUMP ON ANY PROMPT CHANGE so grade-by-
|
|
30
|
+
* promptId aggregates never silently mix prompt semantics. `-sigv1` marks the
|
|
31
|
+
* signal-driven B1–B7 prompt shape (CMT-1793).
|
|
32
|
+
*/
|
|
33
|
+
export const TONE_GATE_PROMPT_ID = 'tone-gate-sigv1';
|
|
34
|
+
/**
|
|
35
|
+
* The bounded action space the tone judge emits, declared as `optionsPresented`
|
|
36
|
+
* on the provenance enrollment (§5.2 static, code-authored, enum-like labels):
|
|
37
|
+
* the gate makes ONE deliver-or-block decision per call.
|
|
38
|
+
*/
|
|
39
|
+
export const TONE_OPTIONS_PRESENTED = ['PASS', 'BLOCK'];
|
|
25
40
|
/**
|
|
26
41
|
* The pure, synchronous deterministic leak floor used on the degraded path
|
|
27
42
|
* (F4 graceful degradation). NO LLM, NO subprocess — just the B1–B7 artifact
|
|
@@ -74,6 +89,40 @@ export function detectDeterministicLeak(text) {
|
|
|
74
89
|
}
|
|
75
90
|
return null;
|
|
76
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* The §5.2 content-bearing decision-context envelope for the tone gate's
|
|
94
|
+
* provenance row (llm-decision-quality-meter). The gate judges an agent-authored
|
|
95
|
+
* OUTBOUND message; the row stores it as IDENTITY ONLY — a sha256 of the exact
|
|
96
|
+
* candidate + byte/char bounds — plus CODE-DERIVED features (channel, messageKind,
|
|
97
|
+
* recent-message COUNT, the deterministic gate-signal KINDS). It NEVER stores the
|
|
98
|
+
* message body or any plaintext slice of it.
|
|
99
|
+
*
|
|
100
|
+
* WHY NO plaintext head (mirrors the CompletionEvaluator content-bearing sibling,
|
|
101
|
+
* §5.3): the candidate IS the very outbound text this gate exists to inspect for
|
|
102
|
+
* leaks — a bounded head, even credential-scrubbed, would still archive
|
|
103
|
+
* non-credential PII / user-facing prose the store must not become a copy of. The
|
|
104
|
+
* hash gives full identity (correlate/dedupe/replay-verify) with zero body
|
|
105
|
+
* exposure.
|
|
106
|
+
*/
|
|
107
|
+
export function buildToneDecisionContext(text, context) {
|
|
108
|
+
const sha256 = (s) => crypto.createHash('sha256').update(s, 'utf8').digest('hex');
|
|
109
|
+
const ctx = {
|
|
110
|
+
candidate: {
|
|
111
|
+
sha256: sha256(text),
|
|
112
|
+
bytes: Buffer.byteLength(text, 'utf8'),
|
|
113
|
+
chars: text.length,
|
|
114
|
+
},
|
|
115
|
+
channel: String(context.channel ?? '').slice(0, 32),
|
|
116
|
+
messageKind: context.messageKind ?? 'reply',
|
|
117
|
+
recentMessageCount: Array.isArray(context.recentMessages) ? context.recentMessages.length : 0,
|
|
118
|
+
// The deterministic gate-signal KINDS the prompt was handed (identity +
|
|
119
|
+
// features discipline — the kinds, not the offending substrings).
|
|
120
|
+
gateSignalKinds: detectGateSignals(text)
|
|
121
|
+
.filter((s) => s.detected)
|
|
122
|
+
.map((s) => s.kind),
|
|
123
|
+
};
|
|
124
|
+
return ctx;
|
|
125
|
+
}
|
|
77
126
|
/**
|
|
78
127
|
* Build the F4 degraded-disposition result for a candidate: run the
|
|
79
128
|
* deterministic leak floor and SEND if clean / HOLD if it carries a leak. Pure
|
|
@@ -251,6 +300,20 @@ export class MessagingToneGate {
|
|
|
251
300
|
gating: true,
|
|
252
301
|
...(interactiveLane ? { lane: 'interactive' } : {}),
|
|
253
302
|
}, // attribution for /metrics/features + F5 lane
|
|
303
|
+
// LLM-Decision Quality Meter §5.1.4/§5.6 Layer-B enrollment (decision
|
|
304
|
+
// point `messaging-tone-gate`, volumeClass budget:500, content-bearing —
|
|
305
|
+
// candidate IDENTITY only: sha256 + bounds + code-derived features, never
|
|
306
|
+
// the outbound body). Observability-only: the router-settlement seam CONSUMES
|
|
307
|
+
// this block (strips it before any inner adapter) and records the row on
|
|
308
|
+
// its own path — it NEVER reaches the model and NEVER alters the gate's
|
|
309
|
+
// block/allow verdict (a provenance write failure is contained by the
|
|
310
|
+
// recorder's own total/fail-open contract).
|
|
311
|
+
provenance: {
|
|
312
|
+
decisionPoint: DP_MESSAGING_TONE_GATE,
|
|
313
|
+
context: buildToneDecisionContext(text, context),
|
|
314
|
+
optionsPresented: [...TONE_OPTIONS_PRESENTED],
|
|
315
|
+
promptId: TONE_GATE_PROMPT_ID,
|
|
316
|
+
},
|
|
254
317
|
};
|
|
255
318
|
const cfg = this.getConfig();
|
|
256
319
|
// Availability-sensitive disposition (spec §Design 6 + tone-gate-graceful-
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessagingToneGate.js","sourceRoot":"","sources":["../../src/core/MessagingToneGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,12 +58,32 @@ export interface DecisionGradingPassResult {
|
|
|
58
58
|
correlationId: string;
|
|
59
59
|
}>;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* The DecisionGrading-owned window-close points this pass drives (§5.5). ONE
|
|
63
|
+
* today (`hog-sustained-right-v1` over `external-hog-kill-leave`); adding another
|
|
64
|
+
* appends its point id here. The per-point sub-budget (`perPointSubBudget`)
|
|
65
|
+
* divides the GLOBAL row budget across THIS set round-robin so no single point
|
|
66
|
+
* can consume a whole pass and starve a sibling's maturing evidence window
|
|
67
|
+
* (LES r6 / §5.5 — the fairness bound the census `SUBBUDGET_IMPLEMENTED` flag
|
|
68
|
+
* asserts is in place before a third ENROLLED customer). MessagingToneGate (the
|
|
69
|
+
* third enrolled customer) is graded by its own evidence source, not this pass —
|
|
70
|
+
* so it is not listed here, but its enrollment is what tripped the structural
|
|
71
|
+
* requirement that this sub-budget exist.
|
|
72
|
+
*/
|
|
73
|
+
export declare const GRADE_PASS_POINTS: ReadonlyArray<string>;
|
|
74
|
+
/**
|
|
75
|
+
* The per-point row slice of the GLOBAL grading budget (§5.5 fairness). Divides
|
|
76
|
+
* `globalBudget` evenly across `pointCount` grade-pass-driven points, floored at
|
|
77
|
+
* 1 so every point always makes some progress. With a single point (today) this
|
|
78
|
+
* returns the full budget — byte-identical to the pre-sub-budget behavior — and
|
|
79
|
+
* a second high-volume point can no longer starve the first: each gets ⌊N/2⌋.
|
|
80
|
+
*/
|
|
81
|
+
export declare function perPointSubBudget(globalBudget: number, pointCount: number): number;
|
|
61
82
|
/**
|
|
62
83
|
* Run one deterministic grading pass. See the module doc for cursor semantics.
|
|
63
|
-
* The
|
|
64
|
-
* `
|
|
65
|
-
*
|
|
66
|
-
* before a third enrolled point).
|
|
84
|
+
* The GLOBAL row budget is split per-point (`perPointSubBudget`) across
|
|
85
|
+
* `GRADE_PASS_POINTS` so a high-volume point cannot consume a whole pass and
|
|
86
|
+
* starve a sibling — the §5.5 fairness sub-budget (`SUBBUDGET_IMPLEMENTED`).
|
|
67
87
|
*/
|
|
68
88
|
export declare function runDecisionGradingPass(deps: DecisionGradingPassDeps): DecisionGradingPassResult;
|
|
69
89
|
//# sourceMappingURL=decisionGradingPass.d.ts.map
|
|
@@ -1 +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,
|
|
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;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAgC,CAAC;AAErF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAGlF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,GAAG,yBAAyB,CAe/F"}
|
|
@@ -35,20 +35,58 @@ export const DECISION_GRADING_COMPONENT = 'DecisionGrading';
|
|
|
35
35
|
* within its window): base × 2^n, capped — never a busy re-check loop. */
|
|
36
36
|
const BACKOFF_BASE_MS = 5 * 60 * 1000;
|
|
37
37
|
const BACKOFF_CAP_MS = 60 * 60 * 1000;
|
|
38
|
+
/**
|
|
39
|
+
* The DecisionGrading-owned window-close points this pass drives (§5.5). ONE
|
|
40
|
+
* today (`hog-sustained-right-v1` over `external-hog-kill-leave`); adding another
|
|
41
|
+
* appends its point id here. The per-point sub-budget (`perPointSubBudget`)
|
|
42
|
+
* divides the GLOBAL row budget across THIS set round-robin so no single point
|
|
43
|
+
* can consume a whole pass and starve a sibling's maturing evidence window
|
|
44
|
+
* (LES r6 / §5.5 — the fairness bound the census `SUBBUDGET_IMPLEMENTED` flag
|
|
45
|
+
* asserts is in place before a third ENROLLED customer). MessagingToneGate (the
|
|
46
|
+
* third enrolled customer) is graded by its own evidence source, not this pass —
|
|
47
|
+
* so it is not listed here, but its enrollment is what tripped the structural
|
|
48
|
+
* requirement that this sub-budget exist.
|
|
49
|
+
*/
|
|
50
|
+
export const GRADE_PASS_POINTS = [DP_EXTERNAL_HOG_KILL_LEAVE];
|
|
51
|
+
/**
|
|
52
|
+
* The per-point row slice of the GLOBAL grading budget (§5.5 fairness). Divides
|
|
53
|
+
* `globalBudget` evenly across `pointCount` grade-pass-driven points, floored at
|
|
54
|
+
* 1 so every point always makes some progress. With a single point (today) this
|
|
55
|
+
* returns the full budget — byte-identical to the pre-sub-budget behavior — and
|
|
56
|
+
* a second high-volume point can no longer starve the first: each gets ⌊N/2⌋.
|
|
57
|
+
*/
|
|
58
|
+
export function perPointSubBudget(globalBudget, pointCount) {
|
|
59
|
+
const n = Math.max(1, Math.floor(pointCount) || 1);
|
|
60
|
+
return Math.max(1, Math.floor(globalBudget / n));
|
|
61
|
+
}
|
|
38
62
|
/**
|
|
39
63
|
* Run one deterministic grading pass. See the module doc for cursor semantics.
|
|
40
|
-
* The
|
|
41
|
-
* `
|
|
42
|
-
*
|
|
43
|
-
* before a third enrolled point).
|
|
64
|
+
* The GLOBAL row budget is split per-point (`perPointSubBudget`) across
|
|
65
|
+
* `GRADE_PASS_POINTS` so a high-volume point cannot consume a whole pass and
|
|
66
|
+
* starve a sibling — the §5.5 fairness sub-budget (`SUBBUDGET_IMPLEMENTED`).
|
|
44
67
|
*/
|
|
45
68
|
export function runDecisionGradingPass(deps) {
|
|
46
69
|
const { ledger, hogStore, annotate, now } = deps;
|
|
47
|
-
const
|
|
70
|
+
const globalBudget = Math.max(1, Math.min(10_000, Math.floor(deps.maxDecisionsPerPass) || 200));
|
|
48
71
|
const evidenceWindowMs = deps.evidenceWindowMs > 0 ? deps.evidenceWindowMs : 6 * HOUR_MS;
|
|
49
72
|
const result = { graded: 0, byRule: {}, cursors: {} };
|
|
50
|
-
const point = DP_EXTERNAL_HOG_KILL_LEAVE;
|
|
51
73
|
const nowMs = now();
|
|
74
|
+
// §5.5 fairness: each grade-pass-driven point gets an even slice of the global
|
|
75
|
+
// budget (round-robin over cursors), so no point can consume a whole pass.
|
|
76
|
+
const subBudget = perPointSubBudget(globalBudget, GRADE_PASS_POINTS.length);
|
|
77
|
+
for (const point of GRADE_PASS_POINTS) {
|
|
78
|
+
gradeOnePoint({ ledger, hogStore, annotate, point, subBudget, evidenceWindowMs, nowMs, result });
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Grade one point's matured evidence within its own sub-budget slice, writing
|
|
84
|
+
* its advanced cursor + P19 backoff bookkeeping. Extracted from the single-point
|
|
85
|
+
* body so the sub-budget can drive N points fairly (§5.5). Behavior for the hog
|
|
86
|
+
* point is unchanged from the pre-sub-budget single-point walk.
|
|
87
|
+
*/
|
|
88
|
+
function gradeOnePoint(args) {
|
|
89
|
+
const { ledger, hogStore, annotate, point, subBudget, evidenceWindowMs, nowMs, result } = args;
|
|
52
90
|
const cursor = ledger.getGradingCursor(point) ?? {
|
|
53
91
|
decisionPoint: point,
|
|
54
92
|
cursorTs: 0,
|
|
@@ -61,13 +99,13 @@ export function runDecisionGradingPass(deps) {
|
|
|
61
99
|
// matured — skip it entirely this pass (report the frozen boundary honestly).
|
|
62
100
|
if (cursor.nextRecheckTs !== null && nowMs < cursor.nextRecheckTs) {
|
|
63
101
|
result.cursors[point] = { ts: cursor.cursorTs, correlationId: cursor.cursorCorrelationId };
|
|
64
|
-
return
|
|
102
|
+
return;
|
|
65
103
|
}
|
|
66
104
|
// No durable evidence source wired (the sentinel store is not constructed) →
|
|
67
105
|
// nothing to grade; leave the cursor untouched.
|
|
68
106
|
if (!hogStore) {
|
|
69
107
|
result.cursors[point] = { ts: cursor.cursorTs, correlationId: cursor.cursorCorrelationId };
|
|
70
|
-
return
|
|
108
|
+
return;
|
|
71
109
|
}
|
|
72
110
|
// correlationId → hog record (bounded: the store retains a handful of slots).
|
|
73
111
|
const byCorr = new Map();
|
|
@@ -75,7 +113,7 @@ export function runDecisionGradingPass(deps) {
|
|
|
75
113
|
if (record.correlationId)
|
|
76
114
|
byCorr.set(record.correlationId, record);
|
|
77
115
|
}
|
|
78
|
-
const rows = ledger.walkDecisionsForGrading(point, cursor.cursorTs, cursor.cursorCorrelationId,
|
|
116
|
+
const rows = ledger.walkDecisionsForGrading(point, cursor.cursorTs, cursor.cursorCorrelationId, subBudget);
|
|
79
117
|
let cursorTs = cursor.cursorTs;
|
|
80
118
|
let cursorCorr = cursor.cursorCorrelationId;
|
|
81
119
|
let sawPending = false;
|
|
@@ -146,6 +184,5 @@ export function runDecisionGradingPass(deps) {
|
|
|
146
184
|
// continues immediately from the advanced boundary.)
|
|
147
185
|
ledger.setGradingCursor(point, { cursorTs, cursorCorrelationId: cursorCorr, nextRecheckTs, attempts });
|
|
148
186
|
result.cursors[point] = { ts: cursorTs, correlationId: cursorCorr };
|
|
149
|
-
return result;
|
|
150
187
|
}
|
|
151
188
|
//# sourceMappingURL=decisionGradingPass.js.map
|