@miller-tech/uap 1.204.2 → 1.205.1
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/.tsbuildinfo +1 -1
- package/dist/benchmarks/paired/adapter.d.ts.map +1 -1
- package/dist/benchmarks/paired/adapter.js +22 -4
- package/dist/benchmarks/paired/adapter.js.map +1 -1
- package/dist/delivery/convergence-loop.d.ts.map +1 -1
- package/dist/delivery/convergence-loop.js +58 -2
- package/dist/delivery/convergence-loop.js.map +1 -1
- package/dist/delivery/integrity.d.ts +52 -0
- package/dist/delivery/integrity.d.ts.map +1 -1
- package/dist/delivery/integrity.js +122 -2
- package/dist/delivery/integrity.js.map +1 -1
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/enforcement_self_protect.py +5 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { createHash } from 'crypto';
|
|
17
17
|
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
18
|
-
import { dirname, resolve } from 'path';
|
|
18
|
+
import { dirname, relative, resolve } from 'path';
|
|
19
19
|
import { isTestFilePath } from './applier.js';
|
|
20
20
|
import { additiveTestEditRefusal } from './test-oracle-additive.js';
|
|
21
|
+
import { runRung } from './verifier-ladder.js';
|
|
21
22
|
/** Per-file restoration budget; larger files are hash-verified only. */
|
|
22
23
|
const MAX_RESTORE_BYTES = 1_000_000;
|
|
23
24
|
/** Total bytes of restoration content kept in memory. */
|
|
@@ -58,7 +59,7 @@ export function captureIntegrity(projectRoot, files) {
|
|
|
58
59
|
*/
|
|
59
60
|
export function verifyAndRestore(projectRoot, snapshot) {
|
|
60
61
|
const root = resolve(projectRoot);
|
|
61
|
-
const check = { tampered: [], restored: [], unrecoverable: [] };
|
|
62
|
+
const check = { tampered: [], restored: [], unrecoverable: [], sanctionedAdditive: [] };
|
|
62
63
|
for (const [rel, record] of snapshot) {
|
|
63
64
|
const abs = resolve(root, rel);
|
|
64
65
|
try {
|
|
@@ -98,6 +99,7 @@ export function verifyAndRestore(projectRoot, snapshot) {
|
|
|
98
99
|
if (record.content !== null &&
|
|
99
100
|
isTestFilePath(rel.split(/[\\/]/).join('/')) &&
|
|
100
101
|
additiveTestEditRefusal(record.content.toString('utf-8'), bytes.toString('utf-8')) === null) {
|
|
102
|
+
check.sanctionedAdditive.push(rel);
|
|
101
103
|
continue;
|
|
102
104
|
}
|
|
103
105
|
check.tampered.push(rel);
|
|
@@ -118,6 +120,124 @@ export function verifyAndRestore(projectRoot, snapshot) {
|
|
|
118
120
|
}
|
|
119
121
|
return check;
|
|
120
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Oracle-consistency check — the BEHAVIORAL control behind the additive
|
|
125
|
+
* test-edit carve-out.
|
|
126
|
+
*
|
|
127
|
+
* The textual rule (append-only + delta denylist) cannot see appended
|
|
128
|
+
* module-scope code that neutralizes the frozen tests at runtime. This check
|
|
129
|
+
* measures instead of reading: restore the BASELINE bytes of every
|
|
130
|
+
* sanctioned-changed test file, re-run the test rungs, and require the
|
|
131
|
+
* ORIGINAL oracle to still pass. If the tree only passes WITH the appended
|
|
132
|
+
* changes present, the append is masking failures — the exact outcome the
|
|
133
|
+
* carve-out must never allow.
|
|
134
|
+
*
|
|
135
|
+
* Scope, stated honestly (security review 2026-08-13): the guarantee covers
|
|
136
|
+
* neutralizers living IN the sanctioned files — the swap replaces only those
|
|
137
|
+
* bytes, so masking machinery relocated to a NEW test/setup file is invisible
|
|
138
|
+
* here. Runner per-file isolation blocks the cross-file runtime-patch shape,
|
|
139
|
+
* and runner CONFIGS are in the integrity capture (a config edit is
|
|
140
|
+
* tampering); a neutralizer in a pre-existing, unprotected setup file remains
|
|
141
|
+
* a residual.
|
|
142
|
+
*
|
|
143
|
+
* Cost-bounded by construction: runs only when a sanctioned additive change
|
|
144
|
+
* exists AND the gates passed, and re-runs only the test rungs. Fail-soft on
|
|
145
|
+
* its own machinery (unreadable files, over-budget snapshots) — a checker
|
|
146
|
+
* that cannot run must not block a legitimate delivery; the textual rule and
|
|
147
|
+
* the tamper guard still stand.
|
|
148
|
+
*/
|
|
149
|
+
export function oracleConsistencyCheck(projectRoot, snapshot, sanctioned, rungs) {
|
|
150
|
+
const root = resolve(projectRoot);
|
|
151
|
+
// Match id AND name: detectRungs names real test oracles whose ids carry no
|
|
152
|
+
// "test" — a Makefile suite is id 'make' (name 'Make (make test)'), a
|
|
153
|
+
// run_tests.sh suite is id 'script' (name 'Script (bash test.sh)'). An
|
|
154
|
+
// id-only filter silently skipped the check for those whole project classes
|
|
155
|
+
// (review 2026-08-13 finding 1).
|
|
156
|
+
const testRungs = rungs.filter((r) => r.required !== false && /test/i.test(`${r.id} ${r.name}`));
|
|
157
|
+
if (sanctioned.length === 0 || testRungs.length === 0) {
|
|
158
|
+
return { consistent: true, checkedFiles: [] };
|
|
159
|
+
}
|
|
160
|
+
const saved = new Map();
|
|
161
|
+
const checkedFiles = [];
|
|
162
|
+
let outcome = null;
|
|
163
|
+
const restoreFailed = [];
|
|
164
|
+
try {
|
|
165
|
+
for (const rel of sanctioned) {
|
|
166
|
+
const record = snapshot.get(rel);
|
|
167
|
+
if (!record?.content)
|
|
168
|
+
continue; // over-budget capture — cannot compare
|
|
169
|
+
const abs = resolve(root, rel);
|
|
170
|
+
try {
|
|
171
|
+
saved.set(abs, readFileSync(abs));
|
|
172
|
+
writeFileSync(abs, record.content);
|
|
173
|
+
checkedFiles.push(rel);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// A failed baseline write may have TRUNCATED the file — keep the
|
|
177
|
+
// saved candidate bytes so the finally can restore them (review
|
|
178
|
+
// finding 3); only the re-run skips this file.
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (checkedFiles.length === 0)
|
|
182
|
+
return { consistent: true, checkedFiles };
|
|
183
|
+
for (const rung of testRungs) {
|
|
184
|
+
const r = runRung(rung, root);
|
|
185
|
+
if (!r.passed) {
|
|
186
|
+
outcome = { consistent: false, failedRungId: rung.id, checkedFiles };
|
|
187
|
+
return outcome;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// TOCTOU guard (security review F2): code the re-run itself executes —
|
|
191
|
+
// a setup file, a pretest script — can rewrite the restored file back to
|
|
192
|
+
// the masked bytes BEFORE the runner reads it, making the "original
|
|
193
|
+
// oracle" re-run execute the appended tests after all. If any checked
|
|
194
|
+
// file no longer hash-matches its baseline after the re-run, the recheck
|
|
195
|
+
// was tampered with and cannot vouch for anything.
|
|
196
|
+
for (const rel of checkedFiles) {
|
|
197
|
+
const record = snapshot.get(rel);
|
|
198
|
+
if (!record?.hash)
|
|
199
|
+
continue;
|
|
200
|
+
try {
|
|
201
|
+
if (sha256(readFileSync(resolve(root, rel))) !== record.hash) {
|
|
202
|
+
outcome = { consistent: false, failedRungId: 'oracle-recheck-tampered', checkedFiles };
|
|
203
|
+
return outcome;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
outcome = { consistent: false, failedRungId: 'oracle-recheck-tampered', checkedFiles };
|
|
208
|
+
return outcome;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
outcome = { consistent: true, checkedFiles };
|
|
212
|
+
return outcome;
|
|
213
|
+
}
|
|
214
|
+
finally {
|
|
215
|
+
for (const [abs, bytes] of saved) {
|
|
216
|
+
try {
|
|
217
|
+
writeFileSync(abs, bytes);
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// Baseline bytes remain — safe CONTENT (hash-matches the snapshot,
|
|
221
|
+
// so later verifies stay quiet), but the sanctioned append is gone.
|
|
222
|
+
// Surface it so the caller discards the turn instead of reporting a
|
|
223
|
+
// clean pass over a tree that silently lost its appended tests
|
|
224
|
+
// (review finding 4).
|
|
225
|
+
restoreFailed.push(relative(root, abs));
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (outcome && restoreFailed.length > 0)
|
|
229
|
+
outcome.restoreFailed = restoreFailed;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Feedback when the original oracle fails while the appended tree passes. */
|
|
233
|
+
export function oracleConsistencyFeedback(result) {
|
|
234
|
+
return [
|
|
235
|
+
`ORACLE-CONSISTENCY VIOLATION: with the ORIGINAL content of ${result.checkedFiles.join(', ')} restored,`,
|
|
236
|
+
`required gate '${result.failedRungId}' FAILS — the appended test-file changes are masking failures of the`,
|
|
237
|
+
'pre-existing tests. Gate results for this turn are DISCARDED. Fix the implementation so the original',
|
|
238
|
+
'tests genuinely pass; appended code must never be what makes them pass.',
|
|
239
|
+
].join('\n');
|
|
240
|
+
}
|
|
121
241
|
/** Render the violation feedback prepended to discarded gate results. */
|
|
122
242
|
export function integrityViolationFeedback(check) {
|
|
123
243
|
const lines = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/delivery/integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"integrity.js","sourceRoot":"","sources":["../../src/delivery/integrity.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -88,6 +88,11 @@ BYPASS_PATTERNS = (
|
|
|
88
88
|
# honest work. It runs against `scannable_command`, which blanks quoted
|
|
89
89
|
# blobs, instead.
|
|
90
90
|
re.compile(r"UAP_ALLOW_GATELESS_ROOT\s*=\s*['\"]?1", re.I),
|
|
91
|
+
# Oracle-consistency is the BEHAVIORAL control: the model must not be able
|
|
92
|
+
# to disable the consistency check that ensures its outputs match the
|
|
93
|
+
# acceptance criteria. An inline assignment would let the agent waive its
|
|
94
|
+
# own consistency requirement, so refuse it here.
|
|
95
|
+
re.compile(r"UAP_ORACLE_CONSISTENCY\s*=\s*['\"]?0", re.I),
|
|
91
96
|
)
|
|
92
97
|
|
|
93
98
|
# The gateless-root override in its CLI-flag spelling. Anchored on both sides
|
|
Binary file
|