@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.
- package/dist/{chunk-SU2RUN2W.js → chunk-U4X4Z333.js} +13 -56
- package/dist/chunk-U4X4Z333.js.map +1 -0
- package/dist/index.js +1894 -1062
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +2 -1
- package/templates/agents/implementer.md +3 -0
- package/templates/agents/reviewer.md +13 -65
- package/dist/chunk-SU2RUN2W.js.map +0 -1
|
@@ -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
|
|
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.
|
|
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
|
|
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) =>
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
2659
|
+
//# sourceMappingURL=chunk-U4X4Z333.js.map
|