@dzhechkov/harness-core 0.6.0 → 0.7.0
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/.dz-manifest.json +89 -773
- package/README.md +48 -1
- package/dist/agentdb-index.d.ts +11 -0
- package/dist/agentdb-index.d.ts.map +1 -1
- package/dist/agentdb-index.js +8 -1
- package/dist/agentdb-index.js.map +1 -1
- package/dist/amendment-trace.d.ts +98 -0
- package/dist/amendment-trace.d.ts.map +1 -0
- package/dist/amendment-trace.js +275 -0
- package/dist/amendment-trace.js.map +1 -0
- package/dist/guard.d.ts +29 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +54 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +4 -1
- package/dist/patterns.js.map +1 -1
- package/dist/publish-signing.d.ts +113 -0
- package/dist/publish-signing.d.ts.map +1 -0
- package/dist/publish-signing.js +124 -0
- package/dist/publish-signing.js.map +1 -0
- package/dist/publish.d.ts +21 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +106 -0
- package/dist/publish.js.map +1 -1
- package/dist/registry.d.ts +19 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +91 -1
- package/dist/registry.js.map +1 -1
- package/dist/run-records.d.ts +66 -0
- package/dist/run-records.d.ts.map +1 -0
- package/dist/run-records.js +169 -0
- package/dist/run-records.js.map +1 -0
- package/dist/sign.d.ts +24 -2
- package/dist/sign.d.ts.map +1 -1
- package/dist/sign.js +34 -1
- package/dist/sign.js.map +1 -1
- package/dist/vector-tier.d.ts +81 -0
- package/dist/vector-tier.d.ts.map +1 -1
- package/dist/vector-tier.js +137 -10
- package/dist/vector-tier.js.map +1 -1
- package/package.json +6 -6
- package/sbom.json +176 -1886
- package/src/agentdb-index.ts +8 -1
- package/src/amendment-trace.ts +348 -0
- package/src/guard.ts +74 -0
- package/src/index.ts +27 -1
- package/src/patterns.ts +4 -1
- package/src/publish-signing.ts +217 -0
- package/src/publish.ts +102 -1
- package/src/registry.ts +84 -1
- package/src/run-records.ts +220 -0
- package/src/sign.ts +33 -1
- package/src/vector-tier.ts +202 -12
package/dist/publish.js
CHANGED
|
@@ -5,9 +5,16 @@
|
|
|
5
5
|
* @packageDocumentation
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
|
|
8
|
+
import { join as pathJoin, relative as pathRelative, resolve as pathResolve } from 'node:path';
|
|
9
|
+
import { decidePublishSigning, decidePostSigningVerification } from './publish-signing.js';
|
|
8
10
|
import { join } from 'node:path';
|
|
9
11
|
import { execSync } from 'node:child_process';
|
|
10
12
|
import { claimCheck } from './claim-check.js';
|
|
13
|
+
/** Is `p` inside `dir`? Used to refuse a signing key that lives in the repository working tree. */
|
|
14
|
+
function isInsideDir(p, dir) {
|
|
15
|
+
const rel = pathRelative(pathResolve(dir), pathResolve(p));
|
|
16
|
+
return rel !== '' && !rel.startsWith('..') && !pathResolve(p).startsWith('..');
|
|
17
|
+
}
|
|
11
18
|
/** Bump patch version: 0.3.11 → 0.3.12 */
|
|
12
19
|
export function bumpPatch(version) {
|
|
13
20
|
// Parse the core x.y.z, tolerating a 2-part "x.y" (treated as x.y.0) and a
|
|
@@ -325,6 +332,105 @@ export function publishPackages(monorepoRoot, opts = {}) {
|
|
|
325
332
|
if (parsed.scripts?.['build']) {
|
|
326
333
|
execSync('pnpm build', { cwd: pkg.dir, stdio: 'pipe', encoding: 'utf-8' });
|
|
327
334
|
}
|
|
335
|
+
// Re-sign AFTER the bump, the README sync and the build, and BEFORE the tarball is built.
|
|
336
|
+
// publish MUTATES the pack — a signature taken at any earlier moment describes files that no
|
|
337
|
+
// longer exist, and the tarball then ships an inventory that disagrees with its own contents.
|
|
338
|
+
// MEASURED 2026-08-18 on a live published package: a recipient running `dz doctor
|
|
339
|
+
// --require-signing` sees TAMPERED. Harmless while consumers had no trust root; from the
|
|
340
|
+
// release that restores it, a false alarm indistinguishable from a real compromise.
|
|
341
|
+
const signing = decidePublishSigning({
|
|
342
|
+
packHasManifest: existsSync(pathJoin(pkg.dir, '.dz-manifest.json')),
|
|
343
|
+
keyPath: opts.signKey ?? null,
|
|
344
|
+
keyExists: opts.signKey !== undefined && existsSync(opts.signKey),
|
|
345
|
+
keyInsideTree: opts.signKey !== undefined && isInsideDir(opts.signKey, monorepoRoot),
|
|
346
|
+
dryRun: opts.dryRun ?? false,
|
|
347
|
+
bumpOnly: opts.bumpOnly ?? false,
|
|
348
|
+
});
|
|
349
|
+
if (signing.blocking) {
|
|
350
|
+
results.push({ name: pkg.name, oldVersion, newVersion, status: 'error', error: signing.reason, claimCheck: claimCheckSummary });
|
|
351
|
+
try {
|
|
352
|
+
writeFileSync(pkgJsonPath, originalPkgJson);
|
|
353
|
+
}
|
|
354
|
+
catch { /* best-effort restore */ }
|
|
355
|
+
if (originalReadme !== undefined) {
|
|
356
|
+
try {
|
|
357
|
+
writeFileSync(pathJoin(pkg.dir, 'README.md'), originalReadme);
|
|
358
|
+
}
|
|
359
|
+
catch { /* best-effort restore */ }
|
|
360
|
+
}
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
if (signing.verdict === 're-sign') {
|
|
364
|
+
// Re-sign, then VERIFY THE OUTCOME against the trust root the consumer will use. Enumerating
|
|
365
|
+
// pre-conditions (key present? outside the tree?) cannot be made sufficient — an existing key
|
|
366
|
+
// may be the WRONG key, unreadable, a public key, or the wrong algorithm, and each of those
|
|
367
|
+
// ships a pack the consumer rejects, recreating the very harm this fixes (cross-family review,
|
|
368
|
+
// 2026-08-21). Measure the result instead.
|
|
369
|
+
let verified = false;
|
|
370
|
+
let trustRootPresent = false;
|
|
371
|
+
let verifiedPack;
|
|
372
|
+
// Snapshot the manifest and SBOM: if the post-sign verification refuses, the tree must not be
|
|
373
|
+
// left holding a signature we just decided not to stand behind (round-2 review, finding 7).
|
|
374
|
+
const manifestPath = pathJoin(pkg.dir, '.dz-manifest.json');
|
|
375
|
+
const sbomPath = pathJoin(pkg.dir, 'sbom.json');
|
|
376
|
+
const priorManifest = existsSync(manifestPath) ? readFileSync(manifestPath, 'utf-8') : null;
|
|
377
|
+
const priorSbom = existsSync(sbomPath) ? readFileSync(sbomPath, 'utf-8') : null;
|
|
378
|
+
const restoreSignature = () => {
|
|
379
|
+
try {
|
|
380
|
+
if (priorManifest !== null)
|
|
381
|
+
writeFileSync(manifestPath, priorManifest);
|
|
382
|
+
}
|
|
383
|
+
catch { /* best-effort */ }
|
|
384
|
+
try {
|
|
385
|
+
if (priorSbom !== null)
|
|
386
|
+
writeFileSync(sbomPath, priorSbom);
|
|
387
|
+
}
|
|
388
|
+
catch { /* best-effort */ }
|
|
389
|
+
};
|
|
390
|
+
try {
|
|
391
|
+
opts.reSign?.(pkg.dir, opts.signKey);
|
|
392
|
+
const check = opts.verifyAfterSign?.(pkg.dir);
|
|
393
|
+
trustRootPresent = check?.trustRootPresent ?? false;
|
|
394
|
+
verified = check?.ok ?? false;
|
|
395
|
+
verifiedPack = check?.pack;
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
restoreSignature();
|
|
399
|
+
results.push({ name: pkg.name, oldVersion, newVersion, status: 'error', error: `re-signing failed: ${err.message}`, claimCheck: claimCheckSummary });
|
|
400
|
+
try {
|
|
401
|
+
writeFileSync(pkgJsonPath, originalPkgJson);
|
|
402
|
+
}
|
|
403
|
+
catch { /* best-effort restore */ }
|
|
404
|
+
if (originalReadme !== undefined) {
|
|
405
|
+
try {
|
|
406
|
+
writeFileSync(pathJoin(pkg.dir, 'README.md'), originalReadme);
|
|
407
|
+
}
|
|
408
|
+
catch { /* best-effort restore */ }
|
|
409
|
+
}
|
|
410
|
+
continue;
|
|
411
|
+
}
|
|
412
|
+
const after = decidePostSigningVerification({
|
|
413
|
+
verifiesAgainstTrustRoot: verified,
|
|
414
|
+
trustRootPresent,
|
|
415
|
+
pack: pkg.name,
|
|
416
|
+
...(verifiedPack === undefined ? {} : { verifiedPack }),
|
|
417
|
+
});
|
|
418
|
+
if (after.blocking) {
|
|
419
|
+
restoreSignature();
|
|
420
|
+
results.push({ name: pkg.name, oldVersion, newVersion, status: 'error', error: after.reason, claimCheck: claimCheckSummary });
|
|
421
|
+
try {
|
|
422
|
+
writeFileSync(pkgJsonPath, originalPkgJson);
|
|
423
|
+
}
|
|
424
|
+
catch { /* best-effort restore */ }
|
|
425
|
+
if (originalReadme !== undefined) {
|
|
426
|
+
try {
|
|
427
|
+
writeFileSync(pathJoin(pkg.dir, 'README.md'), originalReadme);
|
|
428
|
+
}
|
|
429
|
+
catch { /* best-effort restore */ }
|
|
430
|
+
}
|
|
431
|
+
continue;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
328
434
|
// Publish
|
|
329
435
|
execSync(publishCmd, {
|
|
330
436
|
cwd: pkg.dir,
|
package/dist/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -26,6 +26,25 @@ export declare function discoverSkillPackDirs(cwd: string): {
|
|
|
26
26
|
pack: string;
|
|
27
27
|
dir: string;
|
|
28
28
|
}[];
|
|
29
|
+
/**
|
|
30
|
+
* Every pack whose SIGNATURE should be checked: the skill packs above, PLUS any directory in the same
|
|
31
|
+
* base dirs that carries a `.dz-manifest.json`, whatever it is called.
|
|
32
|
+
*
|
|
33
|
+
* A separate function on purpose (ADR-001). `discoverSkillPackDirs` answers "which skill packs are
|
|
34
|
+
* here?" and the `skills-` prefix is a roughly correct answer to THAT. Signature verification asks a
|
|
35
|
+
* different question, and there the prefix is simply wrong: MEASURED 2026-08-21 — 52 signed packs on
|
|
36
|
+
* disk, 26 in the verdict, exactly half invisible, including `keysarium`, `health-advisor`,
|
|
37
|
+
* `harness-core`, `harness-cli` and all ten adapters. `keysarium` drifted from its own signature that
|
|
38
|
+
* same day and the tool said nothing; it was found by a hand-written hash comparison.
|
|
39
|
+
*
|
|
40
|
+
* The UNION rather than a replacement: enumerating only manifest-bearing directories would silently
|
|
41
|
+
* drop the `unsigned` verdict for a `skills-*` pack that carries no manifest — turning "unsigned" into
|
|
42
|
+
* "absent", which is the same class of silence this fixes.
|
|
43
|
+
*/
|
|
44
|
+
export declare function discoverVerifiablePackDirs(cwd: string): {
|
|
45
|
+
pack: string;
|
|
46
|
+
dir: string;
|
|
47
|
+
}[];
|
|
29
48
|
/** A single skill in the registry. */
|
|
30
49
|
export interface RegistryEntry {
|
|
31
50
|
readonly id: string;
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAoCvD;AAeD,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAmBlF;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAmFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAmCnD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAK1F;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAE/F"}
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAoCvD;AAeD,sGAAsG;AACtG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAmBlF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAkEvF;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAmFD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAmCnD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAK1F;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAE/F"}
|
package/dist/registry.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
|
-
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
9
|
+
import { existsSync, readdirSync, readFileSync, realpathSync, statSync } from 'node:fs';
|
|
10
10
|
import { basename, dirname, join, resolve } from 'node:path';
|
|
11
11
|
import { fileURLToPath } from 'node:url';
|
|
12
12
|
/**
|
|
@@ -98,6 +98,96 @@ export function discoverSkillPackDirs(cwd) {
|
|
|
98
98
|
}
|
|
99
99
|
return out;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Every pack whose SIGNATURE should be checked: the skill packs above, PLUS any directory in the same
|
|
103
|
+
* base dirs that carries a `.dz-manifest.json`, whatever it is called.
|
|
104
|
+
*
|
|
105
|
+
* A separate function on purpose (ADR-001). `discoverSkillPackDirs` answers "which skill packs are
|
|
106
|
+
* here?" and the `skills-` prefix is a roughly correct answer to THAT. Signature verification asks a
|
|
107
|
+
* different question, and there the prefix is simply wrong: MEASURED 2026-08-21 — 52 signed packs on
|
|
108
|
+
* disk, 26 in the verdict, exactly half invisible, including `keysarium`, `health-advisor`,
|
|
109
|
+
* `harness-core`, `harness-cli` and all ten adapters. `keysarium` drifted from its own signature that
|
|
110
|
+
* same day and the tool said nothing; it was found by a hand-written hash comparison.
|
|
111
|
+
*
|
|
112
|
+
* The UNION rather than a replacement: enumerating only manifest-bearing directories would silently
|
|
113
|
+
* drop the `unsigned` verdict for a `skills-*` pack that carries no manifest — turning "unsigned" into
|
|
114
|
+
* "absent", which is the same class of silence this fixes.
|
|
115
|
+
*/
|
|
116
|
+
export function discoverVerifiablePackDirs(cwd) {
|
|
117
|
+
const out = [];
|
|
118
|
+
// Keyed on the RESOLVED path: a globally-installed `dz` reaches its own bundled packs as well as the
|
|
119
|
+
// project's, and one directory counted twice inflates exactly the coverage number this exists to
|
|
120
|
+
// make honest.
|
|
121
|
+
const seen = new Set();
|
|
122
|
+
const add = (pack, dir) => {
|
|
123
|
+
// realpath, not resolve: pnpm links workspace packages into `node_modules` as SYMLINKS, so the
|
|
124
|
+
// SAME pack is reachable under several paths. MEASURED 2026-08-21 — 78 entries over 52 real
|
|
125
|
+
// directories, fourteen of them counted three times. `resolve` normalises a path; only `realpath`
|
|
126
|
+
// answers "is this the same directory".
|
|
127
|
+
let key;
|
|
128
|
+
try {
|
|
129
|
+
key = realpathSync(dir);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
key = resolve(dir);
|
|
133
|
+
}
|
|
134
|
+
if (seen.has(key))
|
|
135
|
+
return;
|
|
136
|
+
seen.add(key);
|
|
137
|
+
// Return the RESOLVED path. A symlink is a name, not an object: reporting the link would make the
|
|
138
|
+
// verdict describe something a later swap can redirect, and would leave two names for one pack
|
|
139
|
+
// depending on which was seen first (cross-family review, 2026-08-21).
|
|
140
|
+
out.push({ pack, dir: key });
|
|
141
|
+
};
|
|
142
|
+
// An unreadable base must not abort the enumeration: the skill-pack scan does not catch its own
|
|
143
|
+
// readdir, so without this a single permission error hides EVERY pack — a silence far worse than the
|
|
144
|
+
// one this function was written to remove.
|
|
145
|
+
try {
|
|
146
|
+
for (const p of discoverSkillPackDirs(cwd))
|
|
147
|
+
add(p.pack, p.dir);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
/* fall through to the manifest scan, which catches per-base */
|
|
151
|
+
}
|
|
152
|
+
for (const base of skillPackBaseDirs(cwd)) {
|
|
153
|
+
let entries;
|
|
154
|
+
try {
|
|
155
|
+
entries = readdirSync(base, { withFileTypes: true });
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
for (const e of entries) {
|
|
161
|
+
const dir = join(base, e.name);
|
|
162
|
+
const isDir = e.isDirectory() ||
|
|
163
|
+
(e.isSymbolicLink() &&
|
|
164
|
+
(() => {
|
|
165
|
+
try {
|
|
166
|
+
return statSync(dir).isDirectory();
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
})());
|
|
172
|
+
if (!isDir)
|
|
173
|
+
continue;
|
|
174
|
+
// Presence of the manifest is the whole test — an unexpected one is a FACT to be judged, not
|
|
175
|
+
// noise to be filtered by name. But it must be a FILE: `existsSync` is true for a DIRECTORY
|
|
176
|
+
// named `.dz-manifest.json`, which would let any directory declare its parent verifiable
|
|
177
|
+
// (cross-family review, 2026-08-21).
|
|
178
|
+
let hasManifest = false;
|
|
179
|
+
try {
|
|
180
|
+
hasManifest = statSync(join(dir, '.dz-manifest.json')).isFile();
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
hasManifest = false;
|
|
184
|
+
}
|
|
185
|
+
if (hasManifest)
|
|
186
|
+
add(e.name, dir);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
101
191
|
/** Extract description from SKILL.md frontmatter. */
|
|
102
192
|
function extractFrontmatter(content) {
|
|
103
193
|
const tierMatch = /^trust_tier:\s*(\d)/m.exec(content);
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAQ,EAAE;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,+FAA+F;IAC/F,wFAAwF;IACxF,kGAAkG;IAClG,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC;IAE9C,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAElE,4FAA4F;IAC5F,iFAAiF;IACjF,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACtF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK;oBAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;IAED,6FAA6F;IAC7F,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,4GAA4G;AAC5G,SAAS,wBAAwB,CAAC,GAAW;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAE5E,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,CAAU,EAAY,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpH,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAoC,EAAE,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3D,4FAA4F;YAC5F,6FAA6F;YAC7F,8FAA8F;YAC9F,mCAAmC;YACnC,MAAM,SAAS,GACb,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oBAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,KAAK,CAAC;gBAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3H,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,MAAM,GAAG,GAAoC,EAAE,CAAC;IAChD,qGAAqG;IACrG,iGAAiG;IACjG,eAAe;IACf,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAW,EAAQ,EAAE;QAC9C,+FAA+F;QAC/F,4FAA4F;QAC5F,kGAAkG;QAClG,wCAAwC;QACxC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,kGAAkG;QAClG,+FAA+F;QAC/F,uEAAuE;QACvE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,gGAAgG;IAChG,qGAAqG;IACrG,2CAA2C;IAC3C,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,KAAK,GACT,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,CAAC,cAAc,EAAE;oBACjB,CAAC,GAAG,EAAE;wBACJ,IAAI,CAAC;4BACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;wBACrC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,KAAK,CAAC;wBACf,CAAC;oBACH,CAAC,CAAC,EAAE,CAAC,CAAC;YACV,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,6FAA6F;YAC7F,4FAA4F;YAC5F,yFAAyF;YACzF,qCAAqC;YACrC,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC;gBACH,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,IAAI,WAAW;gBAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAsBD,qDAAqD;AACrD,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO;QACL,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;QACxC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9D,gFAAgF;IAChF,kFAAkF;IAClF,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;YACrD,IAAI,MAAM,IAAI,SAAS;gBAAE,MAAM,CAAC,0CAA0C;YAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,uEAAuE;IACvE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,qCAAqC;AACrC,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,sCAAsC;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvE,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC7B,yFAAyF;QACzF,yEAAyE;QACzE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAEjC,OAAO,SAAS,CAAC;IACnB,gGAAgG;IAChG,kGAAkG;IAClG,uEAAuE;IACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3E,iGAAiG;IACjG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAEnF,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAE/D,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,KAAK,CAAC,IAAI;gBACd,IAAI;gBACJ,WAAW;gBACX,SAAS;gBACT,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;gBAC1E,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACxD,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;gBACrC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvE,OAAO;QACL,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,UAAU,EAAE,KAAK,CAAC,MAAM;QACxB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,KAAa;IAC9D,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC3G,CAAC;AACJ,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,QAAgB;IACnE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Witnessed run records — the decision half of `dz feature-adr-record` (ADR-001 … ADR-003).
|
|
3
|
+
*
|
|
4
|
+
* Two durable writers in the /feature-adr workflow still handed a subagent a PRE-BAKED shell string
|
|
5
|
+
* carrying their payload: the run-cost ledger and the training-pair capture. That is the shape a
|
|
6
|
+
* security classifier blocked NINE times in one run — one entity instructing another to append state
|
|
7
|
+
* it never verified. The checkpoint writer was migrated for that reason; these two were left behind.
|
|
8
|
+
*
|
|
9
|
+
* The role change is the point: the subagent stops being a COURIER (handed a shell string, appends
|
|
10
|
+
* it) and becomes a CALLER (handed arguments; the command decides). A courier can neither refuse nor
|
|
11
|
+
* verify.
|
|
12
|
+
*
|
|
13
|
+
* Pure: payload in, verdict out. The CLI owns paths, the append, the read-back and the exit code.
|
|
14
|
+
*/
|
|
15
|
+
export type RecordKind = 'ledger' | 'training-pair';
|
|
16
|
+
export type RecordVerdict =
|
|
17
|
+
/** the line was appended AND read back equal */
|
|
18
|
+
'written'
|
|
19
|
+
/** a mark shows another run got here first — nothing written, nothing wrong */
|
|
20
|
+
| 'duplicate'
|
|
21
|
+
/** the target already held this pair — nothing written, nothing wrong */
|
|
22
|
+
| 'skipped'
|
|
23
|
+
/** the payload was rejected before any write; the target is untouched */
|
|
24
|
+
| 'refused'
|
|
25
|
+
/** the append happened but the read-back disagreed — the caller MUST treat this as NOT written */
|
|
26
|
+
| 'not-verified';
|
|
27
|
+
export interface RecordDecision {
|
|
28
|
+
readonly verdict: RecordVerdict;
|
|
29
|
+
/** One mapping, never two: 0 written|duplicate|skipped · 2 refused · 3 not-verified. */
|
|
30
|
+
readonly exit: 0 | 2 | 3;
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
/**
|
|
33
|
+
* ALWAYS false. A cost row and a training pair are observability, and observability must not take
|
|
34
|
+
* the run down with it (ADR-003). The field exists so the property is assertable rather than
|
|
35
|
+
* merely intended — a thrown refusal would turn bookkeeping into an outage.
|
|
36
|
+
*/
|
|
37
|
+
readonly blocking: false;
|
|
38
|
+
/** The exact line to append, or null when nothing may be written. */
|
|
39
|
+
readonly line: string | null;
|
|
40
|
+
/** Set when a mark was found without its target — the previous holder died before writing. */
|
|
41
|
+
readonly staleMark?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** A serialised record line above this is refused rather than truncated (acid case A2). */
|
|
44
|
+
export declare const RECORD_MAX_LINE_CHARS = 24000;
|
|
45
|
+
export declare function decideRecordWrite(input: {
|
|
46
|
+
kind: RecordKind;
|
|
47
|
+
/** The raw `--row` / `--pair` argument, exactly as the caller passed it. */
|
|
48
|
+
payloadRaw: string;
|
|
49
|
+
/** The stage this record belongs to; a record for a stage that produced nothing is refused. */
|
|
50
|
+
stage: string;
|
|
51
|
+
stageProducedResult?: boolean;
|
|
52
|
+
/** A backfill mark already present ⇒ another run got here first — unless the target is absent. */
|
|
53
|
+
markExists?: boolean;
|
|
54
|
+
/** Whether the target file exists; a mark without a target is a STALE mark, not a duplicate. */
|
|
55
|
+
targetExists?: boolean;
|
|
56
|
+
/** The target already holds this pair. */
|
|
57
|
+
targetHasPair?: boolean;
|
|
58
|
+
/** Stamped INTO the object before serialising — never rewritten in the shell afterwards (FR-7). */
|
|
59
|
+
timestamp?: string | null;
|
|
60
|
+
maxChars?: number;
|
|
61
|
+
}): RecordDecision;
|
|
62
|
+
/** The read-back verdict (ADR-002): equal bytes or NOT written. Never inferred from the absence of an error. */
|
|
63
|
+
export declare function decideReadBack(appended: string, lastLineOnDisk: string | null): RecordDecision;
|
|
64
|
+
/** The one line every caller reads last, in the shape the other gates use. */
|
|
65
|
+
export declare function recordVerdictLine(kind: RecordKind, stage: string, d: RecordDecision): string;
|
|
66
|
+
//# sourceMappingURL=run-records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-records.d.ts","sourceRoot":"","sources":["../src/run-records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEpD,MAAM,MAAM,aAAa;AACvB,gDAAgD;AAC9C,SAAS;AACX,+EAA+E;GAC7E,WAAW;AACb,yEAAyE;GACvE,SAAS;AACX,yEAAyE;GACvE,SAAS;AACX,kGAAkG;GAChG,cAAc,CAAC;AAEnB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,QAAS,CAAC;AA+C5C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,UAAU,CAAC;IACjB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kGAAkG;IAClG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,CAiFjB;AAED,gHAAgH;AAChH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAoB9F;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,CAE5F"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Witnessed run records — the decision half of `dz feature-adr-record` (ADR-001 … ADR-003).
|
|
3
|
+
*
|
|
4
|
+
* Two durable writers in the /feature-adr workflow still handed a subagent a PRE-BAKED shell string
|
|
5
|
+
* carrying their payload: the run-cost ledger and the training-pair capture. That is the shape a
|
|
6
|
+
* security classifier blocked NINE times in one run — one entity instructing another to append state
|
|
7
|
+
* it never verified. The checkpoint writer was migrated for that reason; these two were left behind.
|
|
8
|
+
*
|
|
9
|
+
* The role change is the point: the subagent stops being a COURIER (handed a shell string, appends
|
|
10
|
+
* it) and becomes a CALLER (handed arguments; the command decides). A courier can neither refuse nor
|
|
11
|
+
* verify.
|
|
12
|
+
*
|
|
13
|
+
* Pure: payload in, verdict out. The CLI owns paths, the append, the read-back and the exit code.
|
|
14
|
+
*/
|
|
15
|
+
/** A serialised record line above this is refused rather than truncated (acid case A2). */
|
|
16
|
+
export const RECORD_MAX_LINE_CHARS = 24_000;
|
|
17
|
+
/** Fields every ledger row must carry before it is worth writing down. */
|
|
18
|
+
const LEDGER_REQUIRED = ['slug', 'stage'];
|
|
19
|
+
/** Fields every training pair must carry — the dataset is worthless without input/output. */
|
|
20
|
+
const PAIR_REQUIRED = ['slug', 'stage', 'input', 'output'];
|
|
21
|
+
const refuse = (reason) => ({ verdict: 'refused', exit: 2, reason, blocking: false, line: null });
|
|
22
|
+
/** `duplicate` and `skipped` both wrote nothing and both are fine — but they are DIFFERENT facts. */
|
|
23
|
+
const noop = (verdict, reason) => ({
|
|
24
|
+
verdict,
|
|
25
|
+
exit: 0,
|
|
26
|
+
reason,
|
|
27
|
+
blocking: false,
|
|
28
|
+
line: null,
|
|
29
|
+
});
|
|
30
|
+
function shapeMismatch(kind, payload) {
|
|
31
|
+
// AM-1 FIRST, before the required-field sweep. A ledger row offered as a training pair fails BOTH
|
|
32
|
+
// checks, and the wrong-kind reason is the one that tells the caller what actually happened —
|
|
33
|
+
// "missing field `output`" sends them looking for a field they never meant to send.
|
|
34
|
+
if (kind === 'ledger' && 'input' in payload && 'output' in payload) {
|
|
35
|
+
// BOTH fields together are the training-pair signature. Either one alone is not: a ledger row may
|
|
36
|
+
// legitimately carry `input: {cached_tokens: 80}` (cross-family review, 2026-08-21) and refusing
|
|
37
|
+
// it would make the command reject honest data on a name collision.
|
|
38
|
+
return 'this payload carries BOTH `input` and `output` — it is a training pair, not a ledger row';
|
|
39
|
+
}
|
|
40
|
+
if (kind === 'training-pair' && 'tokens' in payload && !('input' in payload)) {
|
|
41
|
+
return 'this payload looks like a ledger row (`tokens` without `input`), not a training pair';
|
|
42
|
+
}
|
|
43
|
+
const required = kind === 'ledger' ? LEDGER_REQUIRED : PAIR_REQUIRED;
|
|
44
|
+
for (const field of required) {
|
|
45
|
+
const v = payload[field];
|
|
46
|
+
if (v === undefined || v === null)
|
|
47
|
+
return `a ${kind} record is missing the required field \`${field}\``;
|
|
48
|
+
// EMPTY is not present. An earlier version checked only string-emptiness, so `input: []` and
|
|
49
|
+
// `output: {}` satisfied the requirement and an empty record reached the file — a pair with no
|
|
50
|
+
// content is worse than no pair, because it looks captured.
|
|
51
|
+
if (typeof v === 'string' && v.trim() === '')
|
|
52
|
+
return `a ${kind} record has an EMPTY \`${field}\``;
|
|
53
|
+
if (Array.isArray(v) && v.length === 0)
|
|
54
|
+
return `a ${kind} record has an EMPTY \`${field}\` (empty array)`;
|
|
55
|
+
if (typeof v === 'object' && !Array.isArray(v) && Object.keys(v).length === 0) {
|
|
56
|
+
return `a ${kind} record has an EMPTY \`${field}\` (empty object)`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
export function decideRecordWrite(input) {
|
|
62
|
+
const { kind, payloadRaw, stage } = input;
|
|
63
|
+
if (kind !== 'ledger' && kind !== 'training-pair') {
|
|
64
|
+
return refuse(`unknown --kind \`${String(kind)}\` — expected ledger or training-pair`);
|
|
65
|
+
}
|
|
66
|
+
if (typeof stage !== 'string' || stage.trim() === '')
|
|
67
|
+
return refuse('--stage is required');
|
|
68
|
+
if (input.stageProducedResult === false) {
|
|
69
|
+
return refuse(`stage \`${stage}\` produced no result — there is nothing to record`);
|
|
70
|
+
}
|
|
71
|
+
let payload;
|
|
72
|
+
try {
|
|
73
|
+
payload = JSON.parse(payloadRaw);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return refuse('the payload is not valid JSON — refused before any write, the target is untouched');
|
|
77
|
+
}
|
|
78
|
+
if (payload === null || typeof payload !== 'object' || Array.isArray(payload)) {
|
|
79
|
+
return refuse('the payload must be a JSON object');
|
|
80
|
+
}
|
|
81
|
+
const obj = payload;
|
|
82
|
+
const mismatch = shapeMismatch(kind, obj);
|
|
83
|
+
if (mismatch !== null)
|
|
84
|
+
return refuse(mismatch);
|
|
85
|
+
// The record is filed under `--stage`, and the payload carries its own. A disagreement means the
|
|
86
|
+
// row would land in the wrong stage's file (pairs) or under a wrong label (ledger) — both available
|
|
87
|
+
// here, so leaving them uncompared was a free check declined.
|
|
88
|
+
const payloadStage = obj['stage'];
|
|
89
|
+
if (typeof payloadStage === 'string' && payloadStage !== stage) {
|
|
90
|
+
return refuse(`the payload's stage \`${payloadStage}\` disagrees with --stage \`${stage}\` — the record would be filed under the wrong stage`);
|
|
91
|
+
}
|
|
92
|
+
// The no-write outcomes are checked AFTER the payload is validated: reporting `duplicate` for a
|
|
93
|
+
// malformed payload would hide a real defect behind a benign-looking verdict.
|
|
94
|
+
// A mark whose TARGET does not exist is STALE: a previous run took the mark and died before writing.
|
|
95
|
+
// Reporting `duplicate` there lets one crash lose the record forever — the silent-loss shape this
|
|
96
|
+
// whole feature removes (cross-family review, 2026-08-21). A stale mark does NOT stop the write; it
|
|
97
|
+
// is recorded on the decision so the caller can say why it proceeded anyway.
|
|
98
|
+
const staleMark = input.markExists === true && input.targetExists === false;
|
|
99
|
+
if (input.markExists === true && !staleMark) {
|
|
100
|
+
return noop('duplicate', 'a mark for this record already exists — another run captured it first');
|
|
101
|
+
}
|
|
102
|
+
if (input.targetHasPair === true) {
|
|
103
|
+
return noop('skipped', 'the target already holds this record — nothing to add');
|
|
104
|
+
}
|
|
105
|
+
// The timestamp goes in BEFORE serialisation. The shell `sed` this replaces rewrote `"date":null`
|
|
106
|
+
// inside an already-serialised document — text surgery on a structured value, and the exact place
|
|
107
|
+
// a payload containing that literal token could corrupt itself.
|
|
108
|
+
const stamped = { ...obj };
|
|
109
|
+
if (input.timestamp != null && input.timestamp !== '') {
|
|
110
|
+
// An EMPTY STRING is a gap, not a value. Stamping only over null/undefined let
|
|
111
|
+
// `"date":""` through as `written` (cross-family review, 2026-08-21) — a row that looks recorded
|
|
112
|
+
// and carries no date.
|
|
113
|
+
const isGap = (v) => v === null || v === undefined || (typeof v === 'string' && v.trim() === '');
|
|
114
|
+
if (kind === 'ledger' && isGap(stamped['date']))
|
|
115
|
+
stamped['date'] = input.timestamp.slice(0, 10);
|
|
116
|
+
if (kind === 'training-pair' && isGap(stamped['ts']))
|
|
117
|
+
stamped['ts'] = input.timestamp;
|
|
118
|
+
}
|
|
119
|
+
let line;
|
|
120
|
+
try {
|
|
121
|
+
line = JSON.stringify(stamped);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return refuse('the payload could not be serialised (circular or unsupported value)');
|
|
125
|
+
}
|
|
126
|
+
const cap = input.maxChars ?? RECORD_MAX_LINE_CHARS;
|
|
127
|
+
if (line.length > cap) {
|
|
128
|
+
return refuse(`the serialised record is ${line.length} chars, above the ${cap}-char cap — refused rather than truncated`);
|
|
129
|
+
}
|
|
130
|
+
if (line.includes('\n'))
|
|
131
|
+
return refuse('the serialised record contains a newline — one record is one line');
|
|
132
|
+
return {
|
|
133
|
+
verdict: 'written',
|
|
134
|
+
exit: 0,
|
|
135
|
+
reason: staleMark
|
|
136
|
+
? `${kind} record ready to append (a STALE mark was found — its target is absent, so a previous holder died before writing)`
|
|
137
|
+
: `${kind} record ready to append`,
|
|
138
|
+
blocking: false,
|
|
139
|
+
line,
|
|
140
|
+
staleMark,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** The read-back verdict (ADR-002): equal bytes or NOT written. Never inferred from the absence of an error. */
|
|
144
|
+
export function decideReadBack(appended, lastLineOnDisk) {
|
|
145
|
+
if (lastLineOnDisk === null) {
|
|
146
|
+
return {
|
|
147
|
+
verdict: 'not-verified',
|
|
148
|
+
exit: 3,
|
|
149
|
+
reason: 'the record was appended but the file could not be read back — treat this as NOT written',
|
|
150
|
+
blocking: false,
|
|
151
|
+
line: appended,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
if (lastLineOnDisk !== appended) {
|
|
155
|
+
return {
|
|
156
|
+
verdict: 'not-verified',
|
|
157
|
+
exit: 3,
|
|
158
|
+
reason: 'the last line on disk differs from what was appended — treat this as NOT written',
|
|
159
|
+
blocking: false,
|
|
160
|
+
line: appended,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return { verdict: 'written', exit: 0, reason: 'appended and verified by re-reading the tail', blocking: false, line: appended };
|
|
164
|
+
}
|
|
165
|
+
/** The one line every caller reads last, in the shape the other gates use. */
|
|
166
|
+
export function recordVerdictLine(kind, stage, d) {
|
|
167
|
+
return `feature-adr record (${kind}/${stage}): ${d.verdict.toUpperCase()} — ${d.reason}`;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=run-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-records.js","sourceRoot":"","sources":["../src/run-records.ts"],"names":[],"mappings":"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"}
|