@dzhechkov/harness-core 0.8.32 → 0.8.34

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.
Files changed (63) hide show
  1. package/.dz-manifest.json +107 -47
  2. package/README.md +108 -0
  3. package/dist/agentdb-index.d.ts +17 -6
  4. package/dist/agentdb-index.d.ts.map +1 -1
  5. package/dist/agentdb-index.js +61 -17
  6. package/dist/agentdb-index.js.map +1 -1
  7. package/dist/apply-leg.d.ts +68 -5
  8. package/dist/apply-leg.d.ts.map +1 -1
  9. package/dist/apply-leg.js +466 -37
  10. package/dist/apply-leg.js.map +1 -1
  11. package/dist/embed-socket-path.d.ts +65 -0
  12. package/dist/embed-socket-path.d.ts.map +1 -0
  13. package/dist/embed-socket-path.js +100 -0
  14. package/dist/embed-socket-path.js.map +1 -0
  15. package/dist/index.d.ts +11 -4
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +9 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/operations.d.ts.map +1 -1
  20. package/dist/operations.js +105 -3
  21. package/dist/operations.js.map +1 -1
  22. package/dist/packed-install-smoke.d.ts +108 -0
  23. package/dist/packed-install-smoke.d.ts.map +1 -0
  24. package/dist/packed-install-smoke.js +172 -0
  25. package/dist/packed-install-smoke.js.map +1 -0
  26. package/dist/publish-sibling-drift.d.ts +139 -0
  27. package/dist/publish-sibling-drift.d.ts.map +1 -0
  28. package/dist/publish-sibling-drift.js +408 -0
  29. package/dist/publish-sibling-drift.js.map +1 -0
  30. package/dist/publish.d.ts +44 -0
  31. package/dist/publish.d.ts.map +1 -1
  32. package/dist/publish.js +243 -24
  33. package/dist/publish.js.map +1 -1
  34. package/dist/qe-bridge.d.ts +16 -0
  35. package/dist/qe-bridge.d.ts.map +1 -1
  36. package/dist/qe-bridge.js +1 -0
  37. package/dist/qe-bridge.js.map +1 -1
  38. package/dist/release.d.ts +91 -0
  39. package/dist/release.d.ts.map +1 -1
  40. package/dist/release.js +317 -21
  41. package/dist/release.js.map +1 -1
  42. package/dist/setup.d.ts +36 -0
  43. package/dist/setup.d.ts.map +1 -1
  44. package/dist/setup.js +96 -2
  45. package/dist/setup.js.map +1 -1
  46. package/dist/vector-tier.d.ts +27 -2
  47. package/dist/vector-tier.d.ts.map +1 -1
  48. package/dist/vector-tier.js +112 -3
  49. package/dist/vector-tier.js.map +1 -1
  50. package/package.json +23 -23
  51. package/sbom.json +196 -46
  52. package/src/agentdb-index.ts +65 -17
  53. package/src/apply-leg.ts +461 -37
  54. package/src/embed-socket-path.ts +113 -0
  55. package/src/index.ts +44 -3
  56. package/src/operations.ts +104 -3
  57. package/src/packed-install-smoke.ts +273 -0
  58. package/src/publish-sibling-drift.ts +498 -0
  59. package/src/publish.ts +280 -25
  60. package/src/qe-bridge.ts +14 -0
  61. package/src/release.ts +366 -19
  62. package/src/setup.ts +108 -2
  63. package/src/vector-tier.ts +147 -5
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Sibling-drift gate — feature `publish-sibling-drift-gate`, ADR-001 (Decision 1).
3
+ *
4
+ * `rewriteWorkspaceSpecs` (publish.ts) pins a sibling `workspace:^`/`workspace:~`/`workspace:*`
5
+ * dependency to the EXACT version currently on disk. That version may be published on the
6
+ * registry carrying an OLDER build than the workspace — the sibling changed without a version
7
+ * bump. The pinned range then resolves at install time to a package that does not match the
8
+ * workspace's current behavior, and a fresh `npm install` reproduces whatever regressed.
9
+ *
10
+ * Detection (ADR-001, Decision 1, alternative А3 — accepted): hash every file under the
11
+ * published tarball's `dist/**` plus its `package.json` (with `version`/`gitHead`/`_*` fields
12
+ * stripped, since those legitimately differ between the registry copy and the workspace copy),
13
+ * and compare against the same hash of the workspace copy. Any difference is drift. A published
14
+ * `dist/index.js` missing an export the workspace's `dist/index.js` declares is surfaced as a
15
+ * SECOND, more readable signal (`missingExports`) — the exact shape of the 2026-09-13 incident
16
+ * ("does not provide an export named …") — but the hash comparison is the load-bearing check:
17
+ * it also catches behavior changes that keep every export name intact.
18
+ *
19
+ * Network access is NOT this module's concern (NFR-2: pure, no network, fixture-testable):
20
+ * `fetchPublished` is injected. The CLI implementation packs the sibling from the registry via
21
+ * `npm pack <name>@<version>` into a temp dir; tests inject a local directory. A fetch that
22
+ * returns `null` (offline, 404, timeout) is reported as `'unavailable'` — never silently treated
23
+ * as `'same'` (the "a gate that infers a pass from silence breaks on the next failure path"
24
+ * lesson): the caller decides whether `'unavailable'` blocks or is overridden.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
29
+ import { createHash } from 'node:crypto';
30
+ import { join, relative, isAbsolute } from 'node:path';
31
+ function listFilesRecursive(root, dir) {
32
+ if (!existsSync(dir))
33
+ return [];
34
+ const out = [];
35
+ for (const entry of readdirSync(dir).sort()) {
36
+ const abs = join(dir, entry);
37
+ const st = statSync(abs);
38
+ if (st.isDirectory())
39
+ out.push(...listFilesRecursive(root, abs));
40
+ else
41
+ out.push(relative(root, abs));
42
+ }
43
+ return out;
44
+ }
45
+ function sha256(data) {
46
+ return createHash('sha256').update(data).digest('hex');
47
+ }
48
+ /**
49
+ * C-1/AM-4: `npm pack --dry-run --json` is a real subprocess call — the CLI caches its result per
50
+ * absolute directory for the lifetime of ONE `dz publish` run (not per package being checked), so
51
+ * a run that checks the same sibling from more than one dependent package packs it only once. Core
52
+ * itself never runs the subprocess or owns the cache (core-boundary import ratchet) — this parser
53
+ * is the pure half only.
54
+ *
55
+ * Parses `npm pack --dry-run --json`'s stdout (an array with one element; `files[]` holds
56
+ * `{path,size,mode}` per shipped path, plus `integrity`/`shasum`/`entryCount`) into the exact set of
57
+ * relative paths npm intends to ship, honouring `.npmignore`/`files`/default-ignore exactly the way
58
+ * a real `npm publish` would. A failure to run, parse, or make sense of the shape — including a
59
+ * malformed individual `files[]` element (AM-5: a corrupt entry is a reason to say the WHOLE
60
+ * inventory is untrustworthy, never a file to silently drop) — is `{ unavailable: reason }`: an
61
+ * input this gate cannot read is a reason to say so, never a silent "nothing to compare".
62
+ */
63
+ export function parseNpmPackInventory(stdout) {
64
+ try {
65
+ const parsed = JSON.parse(stdout);
66
+ const entry = Array.isArray(parsed) ? parsed[0] : undefined;
67
+ const files = entry !== null && typeof entry === 'object' ? entry['files'] : undefined;
68
+ if (!Array.isArray(files))
69
+ return { unavailable: 'npm pack --dry-run --json returned no files[] array' };
70
+ // AM-5 (Codex round-1 finding 6, medium): a malformed element used to be `.filter()`ed out
71
+ // silently — a `files[]` entry npm itself always shapes as `{path,size,mode}` should never fail
72
+ // to parse; if one DOES (missing/non-string `path`, or a non-object element), that is a signal
73
+ // this output cannot be trusted, not a single file to quietly drop from the comparison. Say so.
74
+ const paths = [];
75
+ for (let i = 0; i < files.length; i++) {
76
+ const f = files[i];
77
+ if (f === null || typeof f !== 'object') {
78
+ return { unavailable: `npm pack --dry-run --json files[${i}] is not an object (got ${JSON.stringify(f)})` };
79
+ }
80
+ const path = f['path'];
81
+ if (typeof path !== 'string' || path === '') {
82
+ return { unavailable: `npm pack --dry-run --json files[${i}].path is missing or not a non-empty string (got ${JSON.stringify(path)})` };
83
+ }
84
+ paths.push(path);
85
+ }
86
+ return { paths };
87
+ }
88
+ catch (err) {
89
+ return { unavailable: `npm pack --dry-run --json output could not be parsed: ${err.message.split('\n')[0]}` };
90
+ }
91
+ }
92
+ /** Hash exactly the paths `npm pack` names (package.json normalized separately, as {@link hashTree} does). */
93
+ /**
94
+ * Codex round-2 (2026-09-14) new findings 1+2: a listed path that is absent, a directory, absolute,
95
+ * or that climbs out of `dir` via `..` used to be SKIPPED silently — a comparison over a listing
96
+ * the tree does not match is not a comparison, it is `unavailable`; and an inventory must never
97
+ * read outside the package directory. Thrown here, turned into an `unavailable` result by the caller.
98
+ */
99
+ class InventoryListingError extends Error {
100
+ }
101
+ function hashTreeFromPaths(dir, paths, manifest) {
102
+ const map = new Map();
103
+ for (const rel of paths) {
104
+ if (rel === 'package.json')
105
+ continue; // normalized below, not hashed raw
106
+ if (isAbsolute(rel) || rel.split(/[\\/]/).includes('..')) {
107
+ throw new InventoryListingError(`inventory path "${rel}" is absolute or leaves the package directory`);
108
+ }
109
+ const abs = join(dir, rel);
110
+ if (!existsSync(abs))
111
+ throw new InventoryListingError(`inventory path "${rel}" does not exist in the workspace copy`);
112
+ if (statSync(abs).isDirectory())
113
+ throw new InventoryListingError(`inventory path "${rel}" is a directory, not a file`);
114
+ map.set(rel, sha256(readFileSync(abs)));
115
+ }
116
+ map.set('package.json', sha256(normalizedPackageJsonText(manifest)));
117
+ return map;
118
+ }
119
+ /**
120
+ * AM-1: hash EVERY file under `dir` (the already-unpacked published tarball) — the literal "full
121
+ * recursive walk of what npm put there" the amendment names, used ONLY as the symmetric partner to
122
+ * {@link hashTreeFromPaths} (i.e. only when a `localInventory` provider is injected). `dir` here is
123
+ * always an extracted tarball, never the workspace tree, so there is no `.npmignore` to consult:
124
+ * everything that exists on disk is, by construction, exactly what npm shipped.
125
+ */
126
+ function hashTreeFull(dir, manifest) {
127
+ const map = new Map();
128
+ for (const rel of listFilesRecursive(dir, dir)) {
129
+ if (rel === 'package.json')
130
+ continue; // normalized below, not hashed raw
131
+ map.set(rel, sha256(readFileSync(join(dir, rel))));
132
+ }
133
+ map.set('package.json', sha256(normalizedPackageJsonText(manifest)));
134
+ return map;
135
+ }
136
+ /**
137
+ * package.json PARSED and validated. `null` (never `undefined`) means "this side cannot be built
138
+ * at all" — AM-3: a missing or unparseable manifest on EITHER side must surface as `unavailable`,
139
+ * never as an empty/omitted comparison field that a hash-mismatch loop could silently read as
140
+ * "nothing differs here".
141
+ */
142
+ function readManifest(dir) {
143
+ const p = join(dir, 'package.json');
144
+ if (!existsSync(p))
145
+ return null;
146
+ try {
147
+ const raw = JSON.parse(readFileSync(p, 'utf-8'));
148
+ return raw !== null && typeof raw === 'object' && !Array.isArray(raw) ? raw : null;
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ }
154
+ /** package.json normalized for comparison: strip fields that legitimately differ (version, gitHead, npm-internal `_*`). */
155
+ function normalizedPackageJsonText(raw) {
156
+ // Lead edit after the live dry-run on the hub (2026-09-13 10:40): the packer strips
157
+ // `scripts.prepublishOnly`, drops devDependencies/publishConfig and rewrites `workspace:` specs to
158
+ // pinned versions — every freshly published sibling read as "1 file drifted". Compare only what
159
+ // shapes the SHIPPED behavior: entry points, bins, files, engines, and dependency NAMES (values
160
+ // are the workspace-floor preflight's business, not this gate's).
161
+ //
162
+ // AM-4: `imports`/`browser`/`sideEffects`/`man` added — each one changes what a consumer actually
163
+ // resolves or ships, exactly like `main`/`exports`/`bin` already did; omitting them was a real gap
164
+ // the round-1 review named (finding 4), not a stylistic nicety.
165
+ const SHIPPING_FIELDS = [
166
+ 'name', 'type', 'main', 'module', 'types', 'exports', 'imports', 'browser', 'sideEffects', 'man',
167
+ 'bin', 'files', 'engines', 'os', 'cpu',
168
+ ];
169
+ const DEP_TABLES = ['dependencies', 'peerDependencies', 'optionalDependencies'];
170
+ const kept = {};
171
+ for (const key of SHIPPING_FIELDS)
172
+ if (key in raw)
173
+ kept[key] = raw[key];
174
+ for (const key of DEP_TABLES) {
175
+ const table = raw[key];
176
+ if (table !== null && typeof table === 'object')
177
+ kept[key] = Object.keys(table).sort();
178
+ }
179
+ return JSON.stringify(kept);
180
+ }
181
+ /** Every relative path (from `dir`) that a `bin` field in a parsed manifest resolves to. */
182
+ function binPaths(raw) {
183
+ const bin = raw['bin'];
184
+ if (typeof bin === 'string')
185
+ return [bin.replace(/^\.\//, '')];
186
+ if (bin !== null && typeof bin === 'object' && !Array.isArray(bin)) {
187
+ return Object.values(bin)
188
+ .filter((v) => typeof v === 'string')
189
+ .map((v) => v.replace(/^\.\//, ''));
190
+ }
191
+ return [];
192
+ }
193
+ /**
194
+ * AM-4: the round-1 gate hashed only `dist/**` — a changed bin script, template, or other
195
+ * top-level asset that ships (declared in `package.json#files`, or the `bin` target itself) was
196
+ * invisible to the drift check even though npm ships it byte-for-byte. This is a documented,
197
+ * honest APPROXIMATION of "the whole tarball inventory" (the literal ADR wording), not a full
198
+ * re-implementation of npm's pack-time file-inclusion rules (`.npmignore`, default excludes,
199
+ * nested `.gitignore`): it walks `dist/**` (unconditional — the common case) plus every path
200
+ * named in `files` (directories walked recursively, files hashed directly) plus every resolved
201
+ * `bin` target, deduplicated. A package with no `files` field declared keeps exactly the
202
+ * pre-amendment `dist/**`-only scope, named here rather than silently pretended-away.
203
+ */
204
+ function shippedInventoryDirs(dir, raw) {
205
+ const rels = new Set(['dist']);
206
+ const files = raw['files'];
207
+ if (Array.isArray(files)) {
208
+ for (const entry of files) {
209
+ if (typeof entry === 'string' && entry.trim() !== '')
210
+ rels.add(entry.replace(/^\.\//, '').replace(/\/+$/, ''));
211
+ }
212
+ }
213
+ for (const bin of binPaths(raw))
214
+ rels.add(bin);
215
+ return [...rels].filter((rel) => existsSync(join(dir, rel)));
216
+ }
217
+ /** Hash the shipped inventory (AM-4) plus the normalized package.json, keyed by a stable relative path. */
218
+ function hashTree(dir, manifest) {
219
+ const map = new Map();
220
+ for (const rel of shippedInventoryDirs(dir, manifest)) {
221
+ const abs = join(dir, rel);
222
+ if (statSync(abs).isDirectory()) {
223
+ for (const sub of listFilesRecursive(abs, abs))
224
+ map.set(join(rel, sub), sha256(readFileSync(join(abs, sub))));
225
+ }
226
+ else {
227
+ map.set(rel, sha256(readFileSync(abs)));
228
+ }
229
+ }
230
+ map.set('package.json', sha256(normalizedPackageJsonText(manifest)));
231
+ return map;
232
+ }
233
+ function extractExportNames(source) {
234
+ const names = new Set();
235
+ for (const m of source.matchAll(/export\s+(?:const|function|class|async\s+function)\s+([A-Za-z0-9_$]+)/g)) {
236
+ names.add(m[1]);
237
+ }
238
+ for (const m of source.matchAll(/export\s*\{([^}]*)\}/g)) {
239
+ for (const part of m[1].split(',')) {
240
+ const name = part.trim().split(/\s+as\s+/).pop()?.trim();
241
+ if (name)
242
+ names.add(name);
243
+ }
244
+ }
245
+ return names;
246
+ }
247
+ /** А2 (ADR-001, rejected as the sole signal, kept as a readable second signal). */
248
+ function missingExportNames(publishedDir, workspaceDir) {
249
+ const pubIndex = join(publishedDir, 'dist', 'index.js');
250
+ const wsIndex = join(workspaceDir, 'dist', 'index.js');
251
+ if (!existsSync(pubIndex) || !existsSync(wsIndex))
252
+ return [];
253
+ const pubExports = extractExportNames(readFileSync(pubIndex, 'utf-8'));
254
+ const wsExports = extractExportNames(readFileSync(wsIndex, 'utf-8'));
255
+ return [...wsExports].filter((n) => !pubExports.has(n)).sort();
256
+ }
257
+ /**
258
+ * For every `workspace:`-declared dependency of a package that is NOT part of `batch` (i.e. will
259
+ * be pinned to whatever is already on the registry, not published fresh in this run), compare the
260
+ * build that will be pinned against the workspace copy. Pure: all IO (fetch, fs) is either
261
+ * injected or scoped to reading local dist/package.json files — no network call is made here.
262
+ */
263
+ export function detectSiblingDrift(opts) {
264
+ const results = [];
265
+ const seen = new Set();
266
+ // AM-6: named ONCE per call — every result below (including the short-circuited `unavailable`
267
+ // ones) carries the source that is or would have been used for this comparison.
268
+ const inventorySource = opts.localInventory !== undefined ? (opts.localInventorySource ?? 'npm-pack') : 'readdir-approximation';
269
+ // AM-3: `optionalDependencies` ships and pins EXACTLY like `dependencies`/`peerDependencies` —
270
+ // checking only the first two let a stale optional sibling through untouched (round-1 finding 3).
271
+ const entries = [
272
+ ...Object.entries(opts.dependencies ?? {}),
273
+ ...Object.entries(opts.peerDependencies ?? {}),
274
+ ...Object.entries(opts.optionalDependencies ?? {}),
275
+ ];
276
+ for (const [dep, spec] of entries) {
277
+ if (!String(spec).startsWith('workspace:'))
278
+ continue;
279
+ if (seen.has(dep))
280
+ continue;
281
+ seen.add(dep);
282
+ if (opts.batch.has(dep))
283
+ continue; // publishes fresh in this batch — nothing stale to drift from
284
+ const version = opts.workspaceVersions.get(dep);
285
+ const workspaceDir = opts.workspaceDirs.get(dep);
286
+ // AM-3: a `workspace:`-spec'd dependency this caller does not recognize used to be silently
287
+ // SKIPPED — an input this gate cannot build is a HARD gate that cannot say "same", never a
288
+ // quiet pass-through (round-1 finding 3: pnpm would die packing it anyway; die here, named).
289
+ if (version === undefined || workspaceDir === undefined) {
290
+ results.push({
291
+ name: dep,
292
+ version: version ?? '(not in workspace)',
293
+ status: 'unavailable',
294
+ changedFiles: [],
295
+ missingExports: [],
296
+ reason: `${dep} is declared workspace:-protocol but is not a known workspace package`,
297
+ inventorySource,
298
+ });
299
+ continue;
300
+ }
301
+ const fetched = opts.fetchPublished(dep, version);
302
+ if (fetched === null) {
303
+ results.push({
304
+ name: dep,
305
+ version,
306
+ status: 'unavailable',
307
+ changedFiles: [],
308
+ missingExports: [],
309
+ reason: `could not fetch ${dep}@${version} from the registry (network unavailable or the version was not found)`,
310
+ inventorySource,
311
+ });
312
+ continue;
313
+ }
314
+ // AM-3: a missing/unparseable package.json on EITHER side must not silently drop out of the
315
+ // comparison (the old `hashTree` simply omitted the key, which — with an empty/matching
316
+ // `dist/**` on both sides — could report `same` about an input that was never actually read).
317
+ const publishedManifest = readManifest(fetched.dir);
318
+ const workspaceManifest = readManifest(workspaceDir);
319
+ if (publishedManifest === null || workspaceManifest === null) {
320
+ const side = publishedManifest === null ? 'the published tarball' : 'the workspace copy';
321
+ results.push({
322
+ name: dep,
323
+ version,
324
+ status: 'unavailable',
325
+ changedFiles: [],
326
+ missingExports: [],
327
+ reason: `${dep}@${version}: package.json in ${side} is missing or not valid JSON — cannot compare`,
328
+ inventorySource,
329
+ });
330
+ continue;
331
+ }
332
+ // FR-3/AM-1: the LOCAL package's inventory comes from npm, not from a hand-rolled dist/files/bin
333
+ // walk — `.npmignore` (and nested ignore rules) can exclude a file this gate would otherwise walk
334
+ // straight into, producing a false drift about a file npm was never going to ship. AM-1 (Codex
335
+ // review, round-1 finding 3, high): the two sides must stay SYMMETRIC. With a provider injected,
336
+ // the workspace side is npm's OWN shipped-path list; the published side must then be hashed by a
337
+ // FULL recursive walk of the already-unpacked tarball (every file npm actually put there —
338
+ // README/LICENSE included, since npm auto-packs those regardless of `files`), not the narrower
339
+ // `dist`/`files`/`bin` approximation `hashTree` uses — that approximation would silently OMIT an
340
+ // auto-packed README/LICENSE from the published side while the workspace side (via real `npm
341
+ // pack`) correctly includes them, reading as a false "only in workspace" drift. WITHOUT a
342
+ // provider, core has no way to ask npm on either side, so it degrades to the SAME approximation
343
+ // on BOTH sides (symmetry preserved, just cruder) — a named approximation, never a subprocess.
344
+ let workspaceHashes;
345
+ let publishedHashes;
346
+ if (opts.localInventory !== undefined) {
347
+ const localResult = opts.localInventory(workspaceDir);
348
+ if ('unavailable' in localResult) {
349
+ results.push({
350
+ name: dep,
351
+ version,
352
+ status: 'unavailable',
353
+ changedFiles: [],
354
+ missingExports: [],
355
+ reason: `${dep}@${version}: local package inventory unavailable (${localResult.unavailable})`,
356
+ inventorySource,
357
+ });
358
+ continue;
359
+ }
360
+ try {
361
+ workspaceHashes = 'packedDir' in localResult
362
+ ? hashTreeFull(localResult.packedDir, workspaceManifest)
363
+ : hashTreeFromPaths(workspaceDir, localResult.paths, workspaceManifest);
364
+ }
365
+ catch (err) {
366
+ if (!(err instanceof InventoryListingError))
367
+ throw err;
368
+ results.push({
369
+ name: dep,
370
+ version,
371
+ status: 'unavailable',
372
+ changedFiles: [],
373
+ missingExports: [],
374
+ reason: `${dep}@${version}: local package inventory unusable (${err.message})`,
375
+ inventorySource,
376
+ });
377
+ continue;
378
+ }
379
+ publishedHashes = hashTreeFull(fetched.dir, publishedManifest);
380
+ }
381
+ else {
382
+ workspaceHashes = hashTree(workspaceDir, workspaceManifest);
383
+ publishedHashes = hashTree(fetched.dir, publishedManifest);
384
+ }
385
+ const allKeys = new Set([...publishedHashes.keys(), ...workspaceHashes.keys()]);
386
+ const changed = [];
387
+ for (const key of allKeys) {
388
+ if (publishedHashes.get(key) !== workspaceHashes.get(key))
389
+ changed.push(key);
390
+ }
391
+ changed.sort();
392
+ if (changed.length === 0) {
393
+ results.push({ name: dep, version, status: 'same', changedFiles: [], missingExports: [], inventorySource });
394
+ }
395
+ else {
396
+ results.push({
397
+ name: dep,
398
+ version,
399
+ status: 'drift',
400
+ changedFiles: changed,
401
+ missingExports: missingExportNames(fetched.dir, workspaceDir),
402
+ inventorySource,
403
+ });
404
+ }
405
+ }
406
+ return results;
407
+ }
408
+ //# sourceMappingURL=publish-sibling-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-sibling-drift.js","sourceRoot":"","sources":["../src/publish-sibling-drift.ts"],"names":[],"mappings":"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"}
package/dist/publish.d.ts CHANGED
@@ -49,6 +49,30 @@ export interface PublishResult {
49
49
  * and the CLI prints it. Absent on a real publish, where every gate actually ran.
50
50
  */
51
51
  readonly notVerified?: readonly string[] | undefined;
52
+ /**
53
+ * AM-1 (feature publish-sibling-drift-gate): sha256 of the EXACT tarball bytes that were
54
+ * packed-install-smoked AND handed to `npm publish` — present only when `opts.packedTransport`
55
+ * was used for a live (non-dry-run) publish. Printed and audited so "the smoke tested the same
56
+ * bytes that shipped" is a checkable claim, not an architectural assertion.
57
+ */
58
+ readonly sha256?: string | undefined;
59
+ }
60
+ /**
61
+ * One package's packed, smoke-eligible artifact — the unit `opts.packedTransport.smoke` receives
62
+ * (AM-1). Produced ONCE per package, after its OWN bump/build/sign steps, from a package.json
63
+ * whose `workspace:` specs are already resolved to each sibling's PINNED version (the same
64
+ * transformation `rewriteWorkspaceSpecs` performs) — so the tarball is exactly what `npm publish
65
+ * <tgzPath>` will later ship, byte for byte.
66
+ */
67
+ export interface PackedTarballArtifact {
68
+ readonly name: string;
69
+ readonly newVersion: string;
70
+ readonly tgzPath: string;
71
+ readonly sha256: string;
72
+ }
73
+ export interface PackedTransportSmokeVerdict {
74
+ readonly ok: boolean;
75
+ readonly reason?: string | undefined;
52
76
  }
53
77
  /** Positive read-back evidence returned by the configured public-mirror command. */
54
78
  export interface MirrorReceipt {
@@ -290,6 +314,26 @@ export declare function publishPackages(monorepoRoot: string, opts?: {
290
314
  probe?: ((name: string, version: string) => boolean | Omit<ProbeOutcome, 'attempt'>) | undefined;
291
315
  /** Pause injection between receipt probes. The default blocks for the requested milliseconds. */
292
316
  sleep?: ((milliseconds: number) => void) | undefined;
317
+ /**
318
+ * AM-1 (feature publish-sibling-drift-gate). OPT-IN — omitted (the default), this function is
319
+ * byte-identical to its pre-amendment self: every package still publishes via `pnpm publish`
320
+ * FROM ITS DIRECTORY (`publishArgv`), exactly as every existing test of this function expects.
321
+ *
322
+ * When provided, the transport for THIS call's batch changes: each package is packed ONCE
323
+ * (after its own bump/build/sign, workspace: specs resolved to each sibling's PINNED version —
324
+ * a landed batch sibling's NEW version, an out-of-batch sibling's disk version, mirroring what
325
+ * `rewriteWorkspaceSpecs`/pnpm itself would resolve), collected, and `smoke` is called with
326
+ * EVERY package's packed artifact before ANY of them is published. Only on `smoke.ok === true`
327
+ * does each artifact get `npm publish <tgzPath>` — the exact bytes that were smoked (a sha256
328
+ * recheck immediately before that call refuses on any mismatch, defending the "same bytes"
329
+ * claim against anything that could touch the tarball in between).
330
+ */
331
+ packedTransport?: {
332
+ /** Absolute, pre-created directory to write tarballs into (this function never mkdirs it). */
333
+ readonly packDestDir: string;
334
+ /** Judge the WHOLE batch's packed artifacts together — nothing publishes until this passes. */
335
+ readonly smoke: (artifacts: readonly PackedTarballArtifact[]) => PackedTransportSmokeVerdict;
336
+ } | undefined;
293
337
  }): PublishReport;
294
338
  export {};
295
339
  //# sourceMappingURL=publish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}