@uzysjung/agent-harness 26.169.0 → 26.171.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.
@@ -1117,13 +1117,13 @@ init_esm_shims();
1117
1117
  // src/install-log.ts
1118
1118
  init_esm_shims();
1119
1119
  import { createHash } from "crypto";
1120
- import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, rmSync, statSync, writeFileSync as writeFileSync2 } from "fs";
1120
+ import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as readFileSync3, rmSync, statSync, writeFileSync } from "fs";
1121
1121
  import { dirname as dirname3, join as join4 } from "path";
1122
1122
 
1123
1123
  // package.json
1124
1124
  var package_default = {
1125
1125
  name: "@uzysjung/agent-harness",
1126
- version: "26.169.0",
1126
+ version: "26.171.0",
1127
1127
  description: "Curate vetted AI-coding skills & plugins by your tech stack \u2014 install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
1128
1128
  type: "module",
1129
1129
  publishConfig: {
@@ -1145,6 +1145,7 @@ var package_default = {
1145
1145
  build: "tsup",
1146
1146
  dev: "tsup --watch",
1147
1147
  "gen:compat": "npm run build && node scripts/gen-compatibility.mjs",
1148
+ "gen:legacy-fingerprints": "node scripts/gen-legacy-fingerprints.mjs",
1148
1149
  test: "vitest run",
1149
1150
  "test:watch": "vitest",
1150
1151
  "test:coverage": "vitest run --coverage",
@@ -1267,8 +1268,7 @@ import {
1267
1268
  constants as fsConstants,
1268
1269
  mkdirSync,
1269
1270
  readdirSync,
1270
- readFileSync,
1271
- writeFileSync
1271
+ readFileSync
1272
1272
  } from "fs";
1273
1273
  import { dirname as dirname2, join as join2 } from "path";
1274
1274
 
@@ -1368,22 +1368,6 @@ function copyFile(source, target) {
1368
1368
  mkdirSync(dirname2(target), { recursive: true });
1369
1369
  copyFileSync(source, target);
1370
1370
  }
1371
- function copyDir(source, target, foreignOf) {
1372
- if (!existsSync(source)) {
1373
- throw new Error(`Source dir not found: ${source}`);
1374
- }
1375
- mkdirSync(target, { recursive: true });
1376
- const skipped = [];
1377
- for (const rel of listFilesRecursive(source)) {
1378
- const foreign = foreignOf(rel);
1379
- if (foreign !== null) {
1380
- skipped.push(foreign);
1381
- continue;
1382
- }
1383
- copyFile(join2(source, rel), join2(target, rel));
1384
- }
1385
- return skipped;
1386
- }
1387
1371
  var MAX_BACKUP_CLAIMS = 100;
1388
1372
  function claimBackupPath(base, claim) {
1389
1373
  for (let n = 1; n <= MAX_BACKUP_CLAIMS; n++) {
@@ -1403,13 +1387,16 @@ function backupFile(target, now = /* @__PURE__ */ new Date()) {
1403
1387
  (c) => copyFileSync(target, c, fsConstants.COPYFILE_EXCL)
1404
1388
  );
1405
1389
  }
1406
- function backupContent(target, content, now = /* @__PURE__ */ new Date()) {
1390
+ function backupFromCopy(target, source, now = /* @__PURE__ */ new Date()) {
1407
1391
  mkdirSync(dirname2(target), { recursive: true });
1408
1392
  return claimBackupPath(
1409
1393
  `${target}.backup-${formatStamp(now)}`,
1410
- (c) => writeFileSync(c, content, { flag: "wx" })
1394
+ (c) => copyFileSync(source, c, fsConstants.COPYFILE_EXCL)
1411
1395
  );
1412
1396
  }
1397
+ function claimBackupDir(target, now = /* @__PURE__ */ new Date()) {
1398
+ return claimBackupPath(`${target}.backup-${formatStamp(now)}`, (c) => mkdirSync(c));
1399
+ }
1413
1400
  function backupOriginal(backupPath) {
1414
1401
  const m = /^(.+)\.backup-\d{8}T\d{6}(?:-\d+)?$/.exec(backupPath);
1415
1402
  return m?.[1] ?? null;
@@ -1662,43 +1649,16 @@ function mergeAssets(previous, current) {
1662
1649
  function hashContent(content) {
1663
1650
  return createHash("sha256").update(content, "utf8").digest("hex");
1664
1651
  }
1665
- function isHarnessOwned(baseline, key, current) {
1666
- const recorded = baseline.get(key);
1667
- return recorded !== void 0 && recorded === hashContent(current);
1668
- }
1669
1652
  function mergeExternalFiles(previous, current) {
1670
1653
  const byPath = /* @__PURE__ */ new Map();
1671
1654
  for (const file of [...previous ?? [], ...current]) byPath.set(file.path, file);
1672
1655
  return [...byPath.values()];
1673
1656
  }
1674
- function collectSkillHashes(projectDir, templatesDir) {
1675
- const skillsDir = join4(projectDir, ".claude/skills");
1676
- return listFilesRecursive(skillsDir).filter((rel) => existsSync2(join4(templatesDir, "skills", rel))).map((rel) => ({
1677
- path: rel,
1678
- sha256: hashContent(readFileSync3(join4(skillsDir, rel), "utf8"))
1679
- }));
1680
- }
1681
- function collectPolicyHashes(projectDir, templatesDir) {
1682
- const out = [];
1683
- for (const { dir, ext } of POLICY_DIRS) {
1684
- const targetDir = join4(projectDir, ".claude", dir);
1685
- const sourceDir = join4(templatesDir, dir);
1686
- for (const rel of listFilesRecursive(targetDir)) {
1687
- if (!rel.endsWith(ext)) continue;
1688
- if (!existsSync2(join4(sourceDir, rel))) continue;
1689
- out.push({
1690
- path: `${dir}/${rel}`,
1691
- sha256: hashContent(readFileSync3(join4(targetDir, rel), "utf8"))
1692
- });
1693
- }
1694
- }
1695
- return out;
1696
- }
1697
1657
  function writeInstallLog(projectDir, log) {
1698
1658
  const path2 = installLogPath(projectDir);
1699
1659
  mkdirSync2(dirname3(path2), { recursive: true });
1700
1660
  const marked = { ...normalizeLogOrder(log), excludedKeysMigrated: true };
1701
- writeFileSync2(path2, `${JSON.stringify(marked, null, 2)}
1661
+ writeFileSync(path2, `${JSON.stringify(marked, null, 2)}
1702
1662
  `, "utf8");
1703
1663
  migrateAwayLegacyLog(projectDir);
1704
1664
  return path2;
@@ -2631,9 +2591,9 @@ export {
2631
2591
  mergeOutside,
2632
2592
  ensureDir,
2633
2593
  copyFile,
2634
- copyDir,
2635
2594
  backupFile,
2636
- backupContent,
2595
+ backupFromCopy,
2596
+ claimBackupDir,
2637
2597
  backupOriginal,
2638
2598
  listFilesRecursive,
2639
2599
  PROJECT_SKELETON_DIRS,
@@ -2672,10 +2632,7 @@ export {
2672
2632
  buildInstallLog,
2673
2633
  mergeRootFiles,
2674
2634
  hashContent,
2675
- isHarnessOwned,
2676
2635
  mergeExternalFiles,
2677
- collectSkillHashes,
2678
- collectPolicyHashes,
2679
2636
  writeInstallLog,
2680
2637
  readInstallLog,
2681
2638
  readInstallLogStatus,
@@ -2699,4 +2656,4 @@ export {
2699
2656
  CATEGORIES,
2700
2657
  CATEGORY_TITLES
2701
2658
  };
2702
- //# sourceMappingURL=chunk-SU2RUN2W.js.map
2659
+ //# sourceMappingURL=chunk-U4X4Z333.js.map