@dzhechkov/harness-core 0.8.39 → 0.8.41
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 +235 -135
- package/README.md +91 -8
- package/dist/__tests__/golden-baseline.test.js +1 -1
- package/dist/__tests__/golden-baseline.test.js.map +1 -1
- package/dist/agentdb-index.js +3 -3
- package/dist/agentdb-index.js.map +1 -1
- package/dist/agentdb-reindex-marker.d.ts +2 -2
- package/dist/agentdb-reindex-marker.js +4 -4
- package/dist/agentdb-reindex-marker.js.map +1 -1
- package/dist/agentdb-snapshot-rotation.d.ts +1 -1
- package/dist/agentdb-snapshot-rotation.js +1 -1
- package/dist/backup-freshness.d.ts +32 -0
- package/dist/backup-freshness.d.ts.map +1 -0
- package/dist/backup-freshness.js +69 -0
- package/dist/backup-freshness.js.map +1 -0
- package/dist/cmd-usage.d.ts +2 -2
- package/dist/cmd-usage.d.ts.map +1 -1
- package/dist/cmd-usage.js +56 -8
- package/dist/cmd-usage.js.map +1 -1
- package/dist/codex-hooks-assets.d.ts +2 -1
- package/dist/codex-hooks-assets.d.ts.map +1 -1
- package/dist/codex-hooks-assets.js +15 -2
- package/dist/codex-hooks-assets.js.map +1 -1
- package/dist/compounding.d.ts +109 -1
- package/dist/compounding.d.ts.map +1 -1
- package/dist/compounding.js +172 -9
- package/dist/compounding.js.map +1 -1
- package/dist/discrimination-gate.d.ts +0 -3
- package/dist/discrimination-gate.d.ts.map +1 -1
- package/dist/discrimination-gate.js +2 -2
- package/dist/discrimination-gate.js.map +1 -1
- package/dist/doctor-instrument.d.ts +65 -0
- package/dist/doctor-instrument.d.ts.map +1 -0
- package/dist/doctor-instrument.js +91 -0
- package/dist/doctor-instrument.js.map +1 -0
- package/dist/feature-tier.d.ts.map +1 -1
- package/dist/feature-tier.js +13 -1
- package/dist/feature-tier.js.map +1 -1
- package/dist/guard.d.ts +39 -2
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +117 -14
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +20 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/integration-apply.js +2 -2
- package/dist/integration-apply.js.map +1 -1
- package/dist/lesson-payoff.js +3 -3
- package/dist/lesson-payoff.js.map +1 -1
- package/dist/mutation-gate.d.ts +30 -0
- package/dist/mutation-gate.d.ts.map +1 -1
- package/dist/mutation-gate.js +45 -1
- package/dist/mutation-gate.js.map +1 -1
- package/dist/named-lock.d.ts +5 -2
- package/dist/named-lock.d.ts.map +1 -1
- package/dist/named-lock.js +30 -10
- package/dist/named-lock.js.map +1 -1
- package/dist/operations.d.ts +13 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +112 -2
- package/dist/operations.js.map +1 -1
- package/dist/pack-inventory.d.ts +51 -0
- package/dist/pack-inventory.d.ts.map +1 -0
- package/dist/pack-inventory.js +306 -0
- package/dist/pack-inventory.js.map +1 -0
- package/dist/package-skill-layouts.d.ts +3 -2
- package/dist/package-skill-layouts.d.ts.map +1 -1
- package/dist/package-skill-layouts.js +3 -2
- package/dist/package-skill-layouts.js.map +1 -1
- package/dist/patterns.d.ts +8 -0
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +11 -1
- package/dist/patterns.js.map +1 -1
- package/dist/publish.d.ts +29 -7
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +92 -15
- package/dist/publish.js.map +1 -1
- package/dist/registry.d.ts +58 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +86 -25
- package/dist/registry.js.map +1 -1
- package/dist/release.d.ts +18 -0
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +30 -0
- package/dist/release.js.map +1 -1
- package/dist/reqe-verdict.d.ts +55 -0
- package/dist/reqe-verdict.d.ts.map +1 -0
- package/dist/reqe-verdict.js +173 -0
- package/dist/reqe-verdict.js.map +1 -0
- package/dist/reqe.d.ts +35 -14
- package/dist/reqe.d.ts.map +1 -1
- package/dist/reqe.js +85 -32
- package/dist/reqe.js.map +1 -1
- package/dist/round-exec.d.ts +10 -0
- package/dist/round-exec.d.ts.map +1 -1
- package/dist/round-exec.js +3 -2
- package/dist/round-exec.js.map +1 -1
- package/dist/round.d.ts +29 -0
- package/dist/round.d.ts.map +1 -1
- package/dist/round.js +8 -0
- package/dist/round.js.map +1 -1
- package/dist/session-retro.d.ts +1 -1
- package/dist/session-retro.js +3 -3
- package/dist/session-retro.js.map +1 -1
- package/dist/skill-drift.d.ts +18 -1
- package/dist/skill-drift.d.ts.map +1 -1
- package/dist/skill-drift.js +46 -13
- package/dist/skill-drift.js.map +1 -1
- package/dist/statusline.js +2 -2
- package/dist/statusline.js.map +1 -1
- package/dist/store-guard.js +3 -3
- package/dist/store-guard.js.map +1 -1
- package/dist/store-lock.d.ts +9 -0
- package/dist/store-lock.d.ts.map +1 -1
- package/dist/store-lock.js +22 -3
- package/dist/store-lock.js.map +1 -1
- package/dist/test-receipt.d.ts +66 -0
- package/dist/test-receipt.d.ts.map +1 -0
- package/dist/test-receipt.js +73 -0
- package/dist/test-receipt.js.map +1 -0
- package/dist/workflow-run.d.ts.map +1 -1
- package/dist/workflow-run.js +7 -8
- package/dist/workflow-run.js.map +1 -1
- package/package.json +1 -1
- package/sbom.json +384 -134
- package/src/__tests__/golden-baseline.test.ts +1 -1
- package/src/agentdb-index.ts +3 -3
- package/src/agentdb-reindex-marker.ts +4 -4
- package/src/agentdb-snapshot-rotation.ts +1 -1
- package/src/backup-freshness.ts +96 -0
- package/src/cmd-usage.ts +59 -8
- package/src/codex-hooks-assets.ts +15 -2
- package/src/compounding.ts +244 -10
- package/src/discrimination-gate.ts +2 -5
- package/src/doctor-instrument.ts +153 -0
- package/src/feature-tier.ts +14 -1
- package/src/guard.ts +128 -17
- package/src/index.ts +28 -7
- package/src/integration-apply.ts +2 -2
- package/src/lesson-payoff.ts +3 -3
- package/src/mutation-gate.ts +54 -1
- package/src/named-lock.ts +36 -11
- package/src/operations.ts +109 -3
- package/src/pack-inventory.ts +313 -0
- package/src/package-skill-layouts.ts +3 -2
- package/src/patterns.ts +18 -1
- package/src/publish.ts +101 -22
- package/src/registry.ts +114 -18
- package/src/release.ts +36 -0
- package/src/reqe-verdict.ts +174 -0
- package/src/reqe.ts +111 -35
- package/src/round-exec.ts +13 -2
- package/src/round.ts +38 -0
- package/src/session-retro.ts +3 -3
- package/src/skill-drift.ts +66 -12
- package/src/statusline.ts +2 -2
- package/src/store-guard.ts +3 -3
- package/src/store-lock.ts +20 -3
- package/src/test-receipt.ts +106 -0
- package/src/workflow-run.ts +7 -8
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
3
|
+
import { closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { dirname, join, relative, resolve, sep } from 'node:path';
|
|
5
|
+
import { scanSecretsChunked } from './guard.js';
|
|
6
|
+
import { NamedLockTimeoutError, withDirLockSync } from './named-lock.js';
|
|
7
|
+
import { listPackFiles, listSignablePackFiles } from './sign.js';
|
|
8
|
+
/** Scan the publish inventory as streams, retaining every coverage gap by name. */
|
|
9
|
+
export function gatherPublishSecretFacts(root, packageDirs, seams = {}) {
|
|
10
|
+
const listInventory = seams.listInventory ?? listPublishInventory;
|
|
11
|
+
const reader = seams.reader ?? readFileChunks;
|
|
12
|
+
const secretFindings = [];
|
|
13
|
+
const skippedPaths = [];
|
|
14
|
+
let scanned = 0;
|
|
15
|
+
const counts = { tarball: 0, cache: 0, 'npm-dry-run': 0, 'fallback-walk': 0 };
|
|
16
|
+
const fallbacks = [];
|
|
17
|
+
const skip = (label, reason) => { skippedPaths.push(`${label} (${reason})`); };
|
|
18
|
+
for (const dir of packageDirs) {
|
|
19
|
+
const packageRoot = join(root, dir);
|
|
20
|
+
let inventory;
|
|
21
|
+
try {
|
|
22
|
+
// Lead edit (tsc exactOptionalPropertyTypes): an absent tgzPath must be ABSENT, not `undefined`.
|
|
23
|
+
const tgz = seams.tgzPathFor?.(dir);
|
|
24
|
+
inventory = listInventory(packageRoot, {
|
|
25
|
+
cacheDir: join(root, '.dz', 'cache'),
|
|
26
|
+
...(tgz !== undefined ? { tgzPath: tgz } : {}),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
skip(dir, 'inventory unreadable');
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
counts[inventory.source]++;
|
|
34
|
+
if (inventory.source === 'fallback-walk')
|
|
35
|
+
fallbacks.push(`${dir} (${inventory.reason ?? 'unknown reason'})`);
|
|
36
|
+
for (const rel of inventory.files) {
|
|
37
|
+
const absolute = join(packageRoot, rel);
|
|
38
|
+
const label = relative(root, absolute).split(sep).join('/');
|
|
39
|
+
try {
|
|
40
|
+
if (!lstatSync(absolute).isFile()) {
|
|
41
|
+
skip(label, 'not a regular file');
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
let binary = false;
|
|
45
|
+
let unreadable = false;
|
|
46
|
+
function* textChunks() {
|
|
47
|
+
let first = true;
|
|
48
|
+
try {
|
|
49
|
+
for (const chunk of reader(absolute, 1024 * 1024)) {
|
|
50
|
+
if (first && chunk.subarray(0, 8 * 1024).includes(0)) {
|
|
51
|
+
binary = true;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
first = false;
|
|
55
|
+
yield chunk;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// End the iterable normally so the scanner can return hits already found.
|
|
60
|
+
unreadable = true;
|
|
61
|
+
skip(label, first ? 'unreadable' : 'unreadable (partial)');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const findings = scanSecretsChunked(textChunks());
|
|
65
|
+
if (binary) {
|
|
66
|
+
skip(label, 'binary');
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
for (const { name } of findings)
|
|
70
|
+
secretFindings.push({ label, name });
|
|
71
|
+
if (!unreadable)
|
|
72
|
+
scanned++;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
skip(label, 'unreadable');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const sources = ['tarball', 'cache', 'npm-dry-run', 'fallback-walk'];
|
|
80
|
+
const summary = sources.filter((source) => counts[source] > 0).map((source) => `${source}×${counts[source]}`).join(', ');
|
|
81
|
+
return { secretFindings, secretScan: {
|
|
82
|
+
skipped: skippedPaths.length, skippedPaths, scanned,
|
|
83
|
+
inventory: summary + (fallbacks.length > 0 ? `: ${fallbacks.join(', ')}` : ''),
|
|
84
|
+
} };
|
|
85
|
+
}
|
|
86
|
+
/** Reject malformed or empty listings so they cannot suppress scanning. */
|
|
87
|
+
export function parseNpmPackListing(stdout) {
|
|
88
|
+
let listing;
|
|
89
|
+
try {
|
|
90
|
+
listing = JSON.parse(stdout);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
if (!Array.isArray(listing) || listing.length === 0)
|
|
96
|
+
return null;
|
|
97
|
+
const paths = new Set();
|
|
98
|
+
for (const entry of listing) {
|
|
99
|
+
if (entry === null || typeof entry !== 'object' || !Array.isArray(entry.files) || entry.files.length === 0) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
for (const file of entry.files) {
|
|
103
|
+
if (file === null || typeof file !== 'object' || typeof file.path !== 'string' || file.path.length === 0) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
paths.add(file.path);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return [...paths].sort();
|
|
110
|
+
}
|
|
111
|
+
/** Versioned key over packer identity, package metadata bytes, and the signable file walk. */
|
|
112
|
+
export function computeInventoryCacheKey(packageRoot, packer, packerVersion) {
|
|
113
|
+
const hash = createHash('sha256');
|
|
114
|
+
hash.update(`pack-inventory/1\n${packer}@${packerVersion}\n`);
|
|
115
|
+
hash.update(readFileSync(join(packageRoot, 'package.json')));
|
|
116
|
+
hash.update('\n');
|
|
117
|
+
try {
|
|
118
|
+
hash.update(readFileSync(join(packageRoot, '.npmignore')));
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (error.code !== 'ENOENT')
|
|
122
|
+
throw error;
|
|
123
|
+
hash.update('<absent>');
|
|
124
|
+
}
|
|
125
|
+
hash.update('\n');
|
|
126
|
+
for (const relpath of listSignablePackFiles(packageRoot).sort()) {
|
|
127
|
+
const { size, mtimeMs } = statSync(join(packageRoot, relpath));
|
|
128
|
+
hash.update(`${relpath}\0${size}\0${mtimeMs}\n`);
|
|
129
|
+
}
|
|
130
|
+
return hash.digest('hex');
|
|
131
|
+
}
|
|
132
|
+
/** Reuse the read buffer, yielding copies that remain valid after subsequent reads. */
|
|
133
|
+
export function* readFileChunks(absolutePath, chunkBytes = 1024 * 1024) {
|
|
134
|
+
if (!Number.isSafeInteger(chunkBytes) || chunkBytes <= 0) {
|
|
135
|
+
throw new RangeError('chunkBytes must be a positive safe integer');
|
|
136
|
+
}
|
|
137
|
+
const buffer = Buffer.allocUnsafe(chunkBytes);
|
|
138
|
+
const fd = openSync(absolutePath, 'r');
|
|
139
|
+
try {
|
|
140
|
+
let bytesRead;
|
|
141
|
+
while ((bytesRead = readSync(fd, buffer, 0, buffer.length, null)) > 0) {
|
|
142
|
+
yield Buffer.from(buffer.subarray(0, bytesRead));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
closeSync(fd);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const defaultExec = (cmd, { cwd, timeoutMs }) => ({
|
|
150
|
+
stdout: execSync(cmd, { cwd, timeout: timeoutMs, encoding: 'utf8', stdio: 'pipe' }),
|
|
151
|
+
stderr: '',
|
|
152
|
+
});
|
|
153
|
+
// Scope memoization to the executor as well as the packer so injected runtimes stay independent.
|
|
154
|
+
const versions = new WeakMap();
|
|
155
|
+
function packerVersion(exec, packer, cwd, timeoutMs) {
|
|
156
|
+
let memo = versions.get(exec);
|
|
157
|
+
if (!memo) {
|
|
158
|
+
memo = new Map();
|
|
159
|
+
versions.set(exec, memo);
|
|
160
|
+
}
|
|
161
|
+
if (memo.has(packer))
|
|
162
|
+
return memo.get(packer);
|
|
163
|
+
let version = null;
|
|
164
|
+
try {
|
|
165
|
+
const started = Date.now();
|
|
166
|
+
const stdout = exec(`${packer} --version`, { cwd, timeoutMs }).stdout.trim();
|
|
167
|
+
if (Date.now() - started <= timeoutMs && stdout.length > 0)
|
|
168
|
+
version = stdout;
|
|
169
|
+
}
|
|
170
|
+
catch { /* Unknown versions must never serve or populate the cache. */ }
|
|
171
|
+
memo.set(packer, version);
|
|
172
|
+
return version;
|
|
173
|
+
}
|
|
174
|
+
function repositoryRoot(packageRoot) {
|
|
175
|
+
for (let dir = packageRoot;; dir = dirname(dir)) {
|
|
176
|
+
if (existsSync(join(dir, 'pnpm-workspace.yaml')) || existsSync(join(dir, '.git', 'HEAD')))
|
|
177
|
+
return dir;
|
|
178
|
+
if (dirname(dir) === dir)
|
|
179
|
+
return packageRoot; // standalone package
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
function readCache(path) {
|
|
183
|
+
try {
|
|
184
|
+
const cache = JSON.parse(readFileSync(path, 'utf8'));
|
|
185
|
+
if (cache?.schema === 1 && cache.entries && typeof cache.entries === 'object' && !Array.isArray(cache.entries)) {
|
|
186
|
+
return cache;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch { /* Missing or unparsable cache is a miss. */ }
|
|
190
|
+
return { schema: 1, entries: {} };
|
|
191
|
+
}
|
|
192
|
+
/** Listings must stay relative to the package and cannot represent an empty successful scan. */
|
|
193
|
+
function inventoryPaths(paths) {
|
|
194
|
+
const out = new Set();
|
|
195
|
+
for (const path of paths) {
|
|
196
|
+
if (typeof path !== 'string')
|
|
197
|
+
return null;
|
|
198
|
+
const normalized = path.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
199
|
+
if (!normalized || normalized.startsWith('/') || /^[A-Za-z]:/.test(normalized)
|
|
200
|
+
|| normalized.split('/').some((part) => part === '..' || part === '' || part === '.'))
|
|
201
|
+
return null;
|
|
202
|
+
out.add(normalized);
|
|
203
|
+
}
|
|
204
|
+
return out.size > 0 ? [...out].sort() : null;
|
|
205
|
+
}
|
|
206
|
+
function firstErrorLine(error) {
|
|
207
|
+
const stderr = error?.stderr;
|
|
208
|
+
const text = typeof stderr === 'string' || Buffer.isBuffer(stderr) ? stderr.toString().trim() : '';
|
|
209
|
+
return (text || (error instanceof Error ? error.message : String(error))).split(/\r?\n/)[0];
|
|
210
|
+
}
|
|
211
|
+
/** Prefer the supplied artifact, then a tree/version cache, then stdout from the packer. */
|
|
212
|
+
export function listPublishInventory(packageRoot, opts = {}) {
|
|
213
|
+
packageRoot = resolve(packageRoot);
|
|
214
|
+
const packer = opts.packer ?? 'npm';
|
|
215
|
+
const exec = opts.exec ?? defaultExec;
|
|
216
|
+
const timeoutMs = opts.timeoutMs ?? 15_000;
|
|
217
|
+
let version = null;
|
|
218
|
+
const fallback = (reason) => {
|
|
219
|
+
const files = listPackFiles(packageRoot);
|
|
220
|
+
if (files.length === 0)
|
|
221
|
+
throw new Error('inventory unreadable');
|
|
222
|
+
return { files, source: 'fallback-walk', reason, packer, packerVersion: version };
|
|
223
|
+
};
|
|
224
|
+
if (opts.tgzPath !== undefined) {
|
|
225
|
+
try {
|
|
226
|
+
const path = resolve(packageRoot, opts.tgzPath).replace(/'/g, "'\\''");
|
|
227
|
+
const stdout = exec(`tar -tzf '${path}'`, { cwd: packageRoot, timeoutMs }).stdout;
|
|
228
|
+
const entries = stdout.split(/\r?\n/).filter((entry) => entry.length > 0 && !entry.endsWith('/'));
|
|
229
|
+
if (entries.some((entry) => !entry.startsWith('package/')))
|
|
230
|
+
throw new Error('unparsable listing');
|
|
231
|
+
const files = inventoryPaths(entries.map((entry) => entry.slice('package/'.length)));
|
|
232
|
+
if (!files)
|
|
233
|
+
throw new Error('unparsable listing');
|
|
234
|
+
return { files, source: 'tarball', packer, packerVersion: null };
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
return fallback(`tarball unreadable: ${firstErrorLine(error)}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
version = packerVersion(exec, packer, packageRoot, timeoutMs);
|
|
241
|
+
const root = opts.cacheDir !== undefined ? dirname(dirname(resolve(opts.cacheDir))) : repositoryRoot(packageRoot);
|
|
242
|
+
const cacheDir = opts.cacheDir ?? join(root, '.dz', 'cache');
|
|
243
|
+
const cachePath = join(cacheDir, 'pack-inventory.json');
|
|
244
|
+
const packageDir = relative(root, packageRoot).split(sep).join('/') || '.';
|
|
245
|
+
let key;
|
|
246
|
+
if (version !== null) {
|
|
247
|
+
try {
|
|
248
|
+
key = computeInventoryCacheKey(packageRoot, packer, version);
|
|
249
|
+
}
|
|
250
|
+
catch { /* A tree that cannot be keyed must still be listed/scanned. */ }
|
|
251
|
+
}
|
|
252
|
+
if (key !== undefined) {
|
|
253
|
+
try {
|
|
254
|
+
const cached = withDirLockSync(dirname(cacheDir), 'pack-inventory', () => readCache(cachePath).entries[packageDir]);
|
|
255
|
+
const files = cached && Array.isArray(cached.files) ? inventoryPaths(cached.files) : null;
|
|
256
|
+
if (cached?.key === key && cached.packer === packer && cached.packerVersion === version && files) {
|
|
257
|
+
return { files, source: 'cache', packer, packerVersion: version };
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
if (!(error instanceof NamedLockTimeoutError))
|
|
262
|
+
throw error;
|
|
263
|
+
key = undefined; // A lock timeout is a miss, with no later write in this call.
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
let stdout;
|
|
267
|
+
const started = Date.now();
|
|
268
|
+
try {
|
|
269
|
+
stdout = exec(`${packer} pack --dry-run --json`, { cwd: packageRoot, timeoutMs }).stdout;
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
const timedOut = error?.code === 'ETIMEDOUT' || Date.now() - started > timeoutMs;
|
|
273
|
+
return fallback(timedOut ? `packer timeout ${timeoutMs} ms` : `packer failed: ${firstErrorLine(error)}`);
|
|
274
|
+
}
|
|
275
|
+
if (Date.now() - started > timeoutMs)
|
|
276
|
+
return fallback(`packer timeout ${timeoutMs} ms`);
|
|
277
|
+
const parsed = parseNpmPackListing(stdout);
|
|
278
|
+
const files = parsed && inventoryPaths(parsed);
|
|
279
|
+
if (!files)
|
|
280
|
+
return fallback('unparsable listing');
|
|
281
|
+
if (key !== undefined && version !== null) {
|
|
282
|
+
const entry = { key, files, packer, packerVersion: version, writtenAt: new Date().toISOString() };
|
|
283
|
+
try {
|
|
284
|
+
withDirLockSync(dirname(cacheDir), 'pack-inventory', () => {
|
|
285
|
+
// Re-read INSIDE the write transaction, preserving entries another package just added.
|
|
286
|
+
const cache = readCache(cachePath);
|
|
287
|
+
cache.entries[packageDir] = entry;
|
|
288
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
289
|
+
const temp = `${cachePath}.${randomUUID()}.tmp`;
|
|
290
|
+
try {
|
|
291
|
+
writeFileSync(temp, JSON.stringify(cache));
|
|
292
|
+
renameSync(temp, cachePath);
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
rmSync(temp, { force: true });
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
if (!(error instanceof NamedLockTimeoutError))
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return { files, source: 'npm-dry-run', packer, packerVersion: version };
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=pack-inventory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-inventory.js","sourceRoot":"","sources":["../src/pack-inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAgCjE,mFAAmF;AACnF,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,WAA8B,EAAE,QAA4B,EAAE;IAGnH,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,oBAAoB,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,cAAc,CAAC;IAC9C,MAAM,cAAc,GAAsC,EAAE,CAAC;IAC7D,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,MAAM,GAAoC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;IAC/G,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAc,EAAQ,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErG,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,SAA2B,CAAC;QAChC,IAAI,CAAC;YACH,iGAAiG;YACjG,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;YACpC,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE;gBACrC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;gBACpC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,eAAe;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,SAAS,CAAC,MAAM,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAE7G,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACnF,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,QAAQ,CAAC,CAAC,UAAU;oBAClB,IAAI,KAAK,GAAG,IAAI,CAAC;oBACjB,IAAI,CAAC;wBACH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;4BAClD,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gCAAC,MAAM,GAAG,IAAI,CAAC;gCAAC,OAAO;4BAAC,CAAC;4BAChF,KAAK,GAAG,KAAK,CAAC;4BACd,MAAM,KAAK,CAAC;wBACd,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,0EAA0E;wBAC1E,UAAU,GAAG,IAAI,CAAC;wBAClB,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClD,IAAI,MAAM,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAChD,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,QAAQ;oBAAE,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,UAAU;oBAAE,OAAO,EAAE,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE;YACnC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO;YACnD,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,EAAE,CAAC;AACN,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3G,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzG,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,MAAgB,EAAE,aAAqB;IACnG,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,MAAM,IAAI,aAAa,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,qBAAqB,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,KAAK,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,uFAAuF;AACvF,MAAM,SAAS,CAAC,CAAC,cAAc,CAAC,YAAoB,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAC5E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,SAAiB,CAAC;QACtB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAa,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACnF,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,iGAAiG;AACjG,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA0C,CAAC;AAEvE,SAAS,aAAa,CAAC,IAAc,EAAE,MAAgB,EAAE,GAAW,EAAE,SAAiB;IACrF,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IAC/C,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,YAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,MAAM,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC,CAAC,8DAA8D,CAAC,CAAC;IAC1E,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB;IACzC,KAAK,IAAI,GAAG,GAAG,WAAW,GAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG;YAAE,OAAO,WAAW,CAAC,CAAC,qBAAqB;IACrE,CAAC;AACH,CAAC;AAWD,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAmB,CAAC;QACvE,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/G,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACpC,CAAC;AAED,gGAAgG;AAChG,SAAS,cAAc,CAAC,KAAwB;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;eACzE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,MAAM,GAAI,KAAqC,EAAE,MAAM,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnG,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;AAC/F,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,OAAoC,EAAE;IAC9F,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;IAC3C,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAoB,EAAE;QACpD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IACpF,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAClG,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC,uBAAuB,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC3E,IAAI,GAAuB,CAAC;IAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC;YAAC,GAAG,GAAG,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QACrE,MAAM,CAAC,CAAC,+DAA+D,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACpH,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,IAAI,KAAK,EAAE,CAAC;gBACjG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;YACpE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC3D,GAAG,GAAG,SAAS,CAAC,CAAC,8DAA8D;QACjF,CAAC;IACH,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,wBAAwB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAI,KAAsC,EAAE,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC;QACnH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,SAAS,KAAK,CAAC,CAAC,CAAC,kBAAkB,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,SAAS;QAAE,OAAO,QAAQ,CAAC,kBAAkB,SAAS,KAAK,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAElD,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9G,IAAI,CAAC;YACH,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE;gBACxD,uFAAuF;gBACvF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;gBACnC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBAClC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,MAAM,CAAC;gBAChD,IAAI,CAAC;oBACH,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC3C,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC9B,CAAC;wBAAS,CAAC;oBAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Package skill-layout resolution — where an installed npm package keeps its skills.
|
|
3
3
|
*
|
|
4
|
-
* `dz install <pkg>`
|
|
4
|
+
* `dz install <pkg>` and `dz registry`
|
|
5
5
|
* must find `SKILL.md` skill dirs inside an npm package. Packages in the wild ship three
|
|
6
6
|
* on-disk arrangements; before this module existed, `cmdInstall` hard-coded exactly one
|
|
7
7
|
* (`flat`), so every npx-init pack (`templates/.claude/skills/…`) and bare-`skills/`
|
|
@@ -40,7 +40,8 @@ export interface PackageSkillRoot {
|
|
|
40
40
|
readonly hasCompanionAssets: boolean;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
43
|
+
* Shared ordered layout probe list. The resolver selects the first non-empty root;
|
|
44
|
+
* the registry collects all roots, with the first occurrence of each skill id winning.
|
|
44
45
|
*
|
|
45
46
|
* `flat` is probed first so a classic pack can never be re-interpreted; `npx-template`
|
|
46
47
|
* before `skills-dir` matches the measured census (13 vs 2 packages). Extending support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-skill-layouts.d.ts","sourceRoot":"","sources":["../src/package-skill-layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,cAAc,GACd,YAAY,CAAC;AAEjB,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED
|
|
1
|
+
{"version":3,"file":"package-skill-layouts.d.ts","sourceRoot":"","sources":["../src/package-skill-layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,cAAc,GACd,YAAY,CAAC;AAEjB,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAIzG,CAAC;AAeF;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAepF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Package skill-layout resolution — where an installed npm package keeps its skills.
|
|
3
3
|
*
|
|
4
|
-
* `dz install <pkg>`
|
|
4
|
+
* `dz install <pkg>` and `dz registry`
|
|
5
5
|
* must find `SKILL.md` skill dirs inside an npm package. Packages in the wild ship three
|
|
6
6
|
* on-disk arrangements; before this module existed, `cmdInstall` hard-coded exactly one
|
|
7
7
|
* (`flat`), so every npx-init pack (`templates/.claude/skills/…`) and bare-`skills/`
|
|
@@ -25,7 +25,8 @@ import { existsSync, readdirSync } from 'node:fs';
|
|
|
25
25
|
import { dirname, join } from 'node:path';
|
|
26
26
|
import { discoverSkillIds } from './skills.js';
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Shared ordered layout probe list. The resolver selects the first non-empty root;
|
|
29
|
+
* the registry collects all roots, with the first occurrence of each skill id winning.
|
|
29
30
|
*
|
|
30
31
|
* `flat` is probed first so a classic pack can never be re-interpreted; `npx-template`
|
|
31
32
|
* before `skills-dir` matches the measured census (13 vs 2 packages). Extending support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-skill-layouts.js","sourceRoot":"","sources":["../src/package-skill-layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAyB/C
|
|
1
|
+
{"version":3,"file":"package-skill-layouts.js","sourceRoot":"","sources":["../src/package-skill-layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAyB/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA6E;IAC7G,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;IAC5B,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,0BAA0B,EAAE;IAC3D,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;CACxC,CAAC;AAEF,yFAAyF;AACzF,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACtD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAC1D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC/B,OAAO;YACL;gBACE,MAAM;gBACN,GAAG;gBACH,GAAG;gBACH,kBAAkB,EAAE,MAAM,KAAK,cAAc,IAAI,sBAAsB,CAAC,GAAG,CAAC;aAC7E;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/dist/patterns.d.ts
CHANGED
|
@@ -28,6 +28,14 @@ export interface PatternRecord {
|
|
|
28
28
|
readonly type: 'rule' | 'success-pattern' | 'lesson-learned';
|
|
29
29
|
/** Reward signal in [0, 1]. */
|
|
30
30
|
readonly reward: number;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the reward was explicit or defaulted: measured rewards had only 7 distinct
|
|
33
|
+
* values, a median of 0.8, and covered 5.5% of impressions (338 / 6140).
|
|
34
|
+
* This field does NOT change the default reward value; absent means unknown for legacy records.
|
|
35
|
+
* Set at record creation and unchanged by subsequent reinforce/guard-reinforce calls,
|
|
36
|
+
* even with an explicit --reward, it describes the first invocation, not the latest.
|
|
37
|
+
*/
|
|
38
|
+
readonly rewardSource?: 'explicit' | 'default';
|
|
31
39
|
/** Domain tag (e.g. "performance", "api", "general"). */
|
|
32
40
|
readonly domain: string;
|
|
33
41
|
/** ISO-8601 timestamp the record was written. */
|
package/dist/patterns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/patterns.js
CHANGED
|
@@ -361,11 +361,15 @@ export function patternToRecord(p) {
|
|
|
361
361
|
// the learn-loop write path.
|
|
362
362
|
outcome: PATTERN_TYPES.has(p.type) ? p.type : 'lesson-learned',
|
|
363
363
|
timestamp: p.ts,
|
|
364
|
-
metadata: {
|
|
364
|
+
metadata: {
|
|
365
|
+
domain: p.domain ?? 'general', source: p.source ?? 'dz-teach', ...pairMetadata,
|
|
366
|
+
...(p.rewardSource !== undefined ? { rewardSource: p.rewardSource } : {}),
|
|
367
|
+
},
|
|
365
368
|
};
|
|
366
369
|
}
|
|
367
370
|
/** Anti-corruption mapping: canonical `MemoryRecord` → harness `PatternRecord`. */
|
|
368
371
|
export function recordToPattern(r) {
|
|
372
|
+
const rewardSource = r.metadata?.['rewardSource'];
|
|
369
373
|
const lessonForm = r.metadata?.['lessonForm'];
|
|
370
374
|
const lessonPairId = r.metadata?.['lessonPairId'];
|
|
371
375
|
const pair = (lessonForm === 'specific' || lessonForm === 'class')
|
|
@@ -385,6 +389,7 @@ export function recordToPattern(r) {
|
|
|
385
389
|
pattern: r.text,
|
|
386
390
|
type: PATTERN_TYPES.has(r.outcome) ? r.outcome : 'lesson-learned',
|
|
387
391
|
reward: r.score,
|
|
392
|
+
...(rewardSource === 'explicit' || rewardSource === 'default' ? { rewardSource } : {}),
|
|
388
393
|
domain: r.metadata?.['domain'] ?? 'general',
|
|
389
394
|
ts: r.timestamp,
|
|
390
395
|
source: r.metadata?.['source'] ?? 'dz-teach',
|
|
@@ -929,6 +934,11 @@ function migrationRecords(projectRoot) {
|
|
|
929
934
|
* JSON file is never deleted. Returns the total record count after the write.
|
|
930
935
|
*/
|
|
931
936
|
export async function recordPattern(projectRoot, p, opts = {}) {
|
|
937
|
+
// The WRITER creates the store, not the lock (lock-never-seeds-store, ADR-001 item 6). Guarded by
|
|
938
|
+
// existsSync so a fixture that plants a FILE at .dz/memory still reaches the real open error
|
|
939
|
+
// below instead of EEXIST here (patterns.test.ts, forced-sqlite cause).
|
|
940
|
+
if (!existsSync(join(projectRoot, '.dz', 'memory')))
|
|
941
|
+
mkdirSync(join(projectRoot, '.dz', 'memory'), { recursive: true });
|
|
932
942
|
if (p.lessonForm === 'class')
|
|
933
943
|
ensureClassFormMarker(projectRoot);
|
|
934
944
|
const { sqliteBackend } = readLearningConfig(projectRoot);
|