@uzysjung/agent-harness 26.160.1 → 26.162.1
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/README.ko.md +77 -70
- package/README.md +64 -57
- package/dist/{chunk-ZXWOY5VO.js → chunk-3G34MEGZ.js} +132 -15
- package/dist/chunk-3G34MEGZ.js.map +1 -0
- package/dist/index.js +8121 -4513
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +5 -4
- package/templates/codex/config.toml.template +8 -20
- package/templates/hooks/session-start.sh +13 -3
- package/templates/scripts/check-absence.sh +5 -4
- package/templates/skills/audit-harness-fit/README.md +1 -0
- package/templates/skills/audit-harness-fit/SKILL.md +3 -1
- package/templates/skills/audit-harness-fit/evals/scenarios.yaml +18 -0
- package/templates/skills/audit-harness-fit/references/audit.md +37 -0
- package/templates/skills/audit-service-gaps/SKILL.md +7 -12
- package/templates/skills/compaction-handoff/SKILL.md +5 -6
- package/templates/skills/external-model-consult/SKILL.md +9 -13
- package/templates/skills/gh-issue-workflow/SKILL.md +7 -12
- package/templates/skills/model-orchestration/SKILL.md +57 -17
- package/templates/skills/multi-persona-review/SKILL.md +6 -10
- package/templates/skills/north-star/SKILL.md +7 -13
- package/templates/skills/objective-brief/SKILL.md +7 -12
- package/templates/skills/recurrence-prevention/SKILL.md +7 -11
- package/templates/skills/self-hosted-github-runner/SKILL.md +6 -7
- package/templates/skills/ui-visual-review/SKILL.md +7 -1
- package/dist/chunk-ZXWOY5VO.js.map +0 -1
|
@@ -1106,7 +1106,7 @@ function mergeProjectClaude(opts) {
|
|
|
1106
1106
|
> Active track(s): ${trackList}`;
|
|
1107
1107
|
return `${header}
|
|
1108
1108
|
|
|
1109
|
-
${renderFillScaffold()}
|
|
1109
|
+
${opts.projectContext ?? renderFillScaffold()}
|
|
1110
1110
|
`;
|
|
1111
1111
|
}
|
|
1112
1112
|
function upsertHarnessImport(existing, opts) {
|
|
@@ -1363,6 +1363,55 @@ import { createHash } from "crypto";
|
|
|
1363
1363
|
import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync as readFileSync3, rmSync, writeFileSync } from "fs";
|
|
1364
1364
|
import { dirname as dirname2, join as join3 } from "path";
|
|
1365
1365
|
|
|
1366
|
+
// src/cli-targets.ts
|
|
1367
|
+
init_esm_shims();
|
|
1368
|
+
var CLI_BASE_SORT_ORDER = {
|
|
1369
|
+
claude: 0,
|
|
1370
|
+
codex: 1,
|
|
1371
|
+
opencode: 2,
|
|
1372
|
+
antigravity: 3
|
|
1373
|
+
};
|
|
1374
|
+
function parseCliTargets(input) {
|
|
1375
|
+
const items = normalizeInput(input);
|
|
1376
|
+
if (items.length === 0) {
|
|
1377
|
+
return { ok: true, targets: ["claude"], warnings: [] };
|
|
1378
|
+
}
|
|
1379
|
+
const collected = /* @__PURE__ */ new Set();
|
|
1380
|
+
const warnings = [];
|
|
1381
|
+
for (const item of items) {
|
|
1382
|
+
if (!isCliBase(item)) {
|
|
1383
|
+
let hint = "";
|
|
1384
|
+
if (item === "both") {
|
|
1385
|
+
hint = "\n v0.8.0 removed 'both' alias. Use --cli claude --cli codex.";
|
|
1386
|
+
} else if (item === "all") {
|
|
1387
|
+
hint = "\n v0.8.0 removed 'all' alias. Use --cli claude --cli codex --cli opencode.";
|
|
1388
|
+
} else if (item.includes(",")) {
|
|
1389
|
+
hint = "\n Tip: comma-separated not supported. Use --cli A --cli B for multiple.";
|
|
1390
|
+
}
|
|
1391
|
+
return {
|
|
1392
|
+
ok: false,
|
|
1393
|
+
targets: ["claude"],
|
|
1394
|
+
warnings,
|
|
1395
|
+
error: `Invalid --cli value: ${item}. Must be one of: ${CLI_BASES.join(" | ")}${hint}`
|
|
1396
|
+
};
|
|
1397
|
+
}
|
|
1398
|
+
collected.add(item);
|
|
1399
|
+
}
|
|
1400
|
+
const targets = [...collected].sort((a, b) => CLI_BASE_SORT_ORDER[a] - CLI_BASE_SORT_ORDER[b]);
|
|
1401
|
+
return { ok: true, targets, warnings };
|
|
1402
|
+
}
|
|
1403
|
+
function normalizeInput(input) {
|
|
1404
|
+
if (input === void 0 || input === null) return [];
|
|
1405
|
+
if (typeof input === "string") {
|
|
1406
|
+
const trimmed = input.trim();
|
|
1407
|
+
return trimmed === "" ? [] : [trimmed];
|
|
1408
|
+
}
|
|
1409
|
+
return input.filter((s) => typeof s === "string" && s.trim() !== "").map((s) => s.trim());
|
|
1410
|
+
}
|
|
1411
|
+
function targetsInclude(targets, base) {
|
|
1412
|
+
return targets.includes(base);
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1366
1415
|
// src/fs-ops.ts
|
|
1367
1416
|
init_esm_shims();
|
|
1368
1417
|
import {
|
|
@@ -1434,15 +1483,6 @@ function copyBackupDir(target, now = /* @__PURE__ */ new Date()) {
|
|
|
1434
1483
|
cpSync(realpathSync(target), backup, { recursive: true });
|
|
1435
1484
|
return backup;
|
|
1436
1485
|
}
|
|
1437
|
-
function backupFileIfChanged(target, newContent, now = /* @__PURE__ */ new Date()) {
|
|
1438
|
-
if (!existsSync2(target)) {
|
|
1439
|
-
return null;
|
|
1440
|
-
}
|
|
1441
|
-
if (readFileSync2(target, "utf-8") === newContent) {
|
|
1442
|
-
return null;
|
|
1443
|
-
}
|
|
1444
|
-
return backupFile(target, now);
|
|
1445
|
-
}
|
|
1446
1486
|
function backupFile(target, now = /* @__PURE__ */ new Date()) {
|
|
1447
1487
|
return claimBackupPath(
|
|
1448
1488
|
`${target}.backup-${formatStamp(now)}`,
|
|
@@ -1490,6 +1530,22 @@ var POLICY_DIRS = [
|
|
|
1490
1530
|
{ dir: "commands/uzys", ext: ".md" },
|
|
1491
1531
|
{ dir: "hooks", ext: ".sh" }
|
|
1492
1532
|
];
|
|
1533
|
+
var ANTIGRAVITY_RULE_FILE = ".agents/rules/uzys-harness.md";
|
|
1534
|
+
function installedClis(log) {
|
|
1535
|
+
if (log === null) return [];
|
|
1536
|
+
if (log.spec.clis) return sortClis(log.spec.clis);
|
|
1537
|
+
const found = new Set(log.spec.cli.filter(isCliBase));
|
|
1538
|
+
if (log.templates.rootClaudeMd !== void 0) found.add("claude");
|
|
1539
|
+
if (log.templates.codexDir !== void 0) found.add("codex");
|
|
1540
|
+
if (log.templates.opencodeDir !== void 0) found.add("opencode");
|
|
1541
|
+
if ((log.externalFiles ?? []).some((f) => f.path === ANTIGRAVITY_RULE_FILE)) {
|
|
1542
|
+
found.add("antigravity");
|
|
1543
|
+
}
|
|
1544
|
+
return sortClis([...found]);
|
|
1545
|
+
}
|
|
1546
|
+
function sortClis(clis) {
|
|
1547
|
+
return [...new Set(clis)].filter(isCliBase).sort((a, b) => CLI_BASE_SORT_ORDER[a] - CLI_BASE_SORT_ORDER[b]);
|
|
1548
|
+
}
|
|
1493
1549
|
function buildAssetEntries(report, scope) {
|
|
1494
1550
|
if (!report) return [];
|
|
1495
1551
|
return report.attempted.filter((r) => r.ok).map((r) => assetToLogEntry(r.asset, scope, r.version));
|
|
@@ -1526,11 +1582,12 @@ function buildInstallLog(spec, external, scope, rootClaudeMd, previous, claudeDi
|
|
|
1526
1582
|
(id) => BUNDLED_SKILL_IDS.has(id)
|
|
1527
1583
|
);
|
|
1528
1584
|
const templates = {
|
|
1529
|
-
claudeDir: ".claude/",
|
|
1585
|
+
...spec.cli.includes("claude") ? { claudeDir: ".claude/" } : {},
|
|
1530
1586
|
...spec.cli.includes("codex") ? { codexDir: ".codex/" } : {},
|
|
1531
1587
|
...spec.cli.includes("opencode") ? { opencodeDir: ".opencode/" } : {},
|
|
1532
1588
|
...rootClaudeMd ? { rootClaudeMd } : {}
|
|
1533
1589
|
};
|
|
1590
|
+
const clis = sortClis([...installedClis(previous ?? null), ...spec.cli.filter(isCliBase)]);
|
|
1534
1591
|
const log = {
|
|
1535
1592
|
schemaVersion: INSTALL_LOG_VERSION,
|
|
1536
1593
|
installedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -1538,6 +1595,7 @@ function buildInstallLog(spec, external, scope, rootClaudeMd, previous, claudeDi
|
|
|
1538
1595
|
spec: {
|
|
1539
1596
|
tracks: spec.tracks,
|
|
1540
1597
|
cli: spec.cli,
|
|
1598
|
+
clis,
|
|
1541
1599
|
...spec.baselineExclude && spec.baselineExclude.length > 0 ? { baselineExclude: spec.baselineExclude } : {},
|
|
1542
1600
|
...skillExclude.length > 0 ? { skillExclude } : {}
|
|
1543
1601
|
},
|
|
@@ -1559,7 +1617,7 @@ function mergeRootFiles(previous, current) {
|
|
|
1559
1617
|
const prior = byPath.get(file.path);
|
|
1560
1618
|
byPath.set(
|
|
1561
1619
|
file.path,
|
|
1562
|
-
prior ? {
|
|
1620
|
+
prior && file.change !== "displaced" ? {
|
|
1563
1621
|
path: file.path,
|
|
1564
1622
|
change: prior.change === "created" ? "created" : file.change,
|
|
1565
1623
|
notes: [.../* @__PURE__ */ new Set([...prior.notes, ...file.notes])]
|
|
@@ -1741,7 +1799,60 @@ var RETIRED_AGENTS = [
|
|
|
1741
1799
|
{ id: "silent-failure-hunter", instead: "Claude Code \uC758 `/code-review` \uAC00 \uAC19\uC740 \uC77C\uC744 \uD55C\uB2E4" },
|
|
1742
1800
|
{ id: "build-error-resolver", instead: "\uBAA8\uB378\uC774 \uAE30\uBCF8\uC73C\uB85C \uD558\uB294 \uC77C\uC774\uB77C \uB300\uCCB4 \uC790\uC0B0\uC774 \uC5C6\uB2E4" }
|
|
1743
1801
|
];
|
|
1744
|
-
var
|
|
1802
|
+
var RETIRED_PATHS = [
|
|
1803
|
+
// rules (23)
|
|
1804
|
+
"rules/api-contract.md",
|
|
1805
|
+
"rules/benchmark-parity.md",
|
|
1806
|
+
"rules/code-style.md",
|
|
1807
|
+
"rules/commit-policy.md",
|
|
1808
|
+
"rules/data-analysis.md",
|
|
1809
|
+
"rules/database.md",
|
|
1810
|
+
"rules/design-workflow.md",
|
|
1811
|
+
"rules/ecc-git-workflow.md",
|
|
1812
|
+
"rules/ecc-performance-common.md",
|
|
1813
|
+
"rules/ecc-security-common.md",
|
|
1814
|
+
"rules/ecc-testing.md",
|
|
1815
|
+
"rules/error-handling.md",
|
|
1816
|
+
"rules/gates-taxonomy.md",
|
|
1817
|
+
"rules/gsd-planner-antipatterns.md",
|
|
1818
|
+
"rules/htmx.md",
|
|
1819
|
+
"rules/model-routing.md",
|
|
1820
|
+
"rules/nextjs.md",
|
|
1821
|
+
"rules/no-false-ship.md",
|
|
1822
|
+
"rules/playwright-launch.md",
|
|
1823
|
+
"rules/pyside6.md",
|
|
1824
|
+
"rules/seo.md",
|
|
1825
|
+
"rules/shadcn.md",
|
|
1826
|
+
"rules/tauri.md",
|
|
1827
|
+
// agents (5)
|
|
1828
|
+
"agents/build-error-resolver.md",
|
|
1829
|
+
"agents/code-reviewer.md",
|
|
1830
|
+
"agents/plan-checker.md",
|
|
1831
|
+
"agents/security-reviewer.md",
|
|
1832
|
+
"agents/silent-failure-hunter.md",
|
|
1833
|
+
// commands/uzys (7)
|
|
1834
|
+
"commands/uzys/auto.md",
|
|
1835
|
+
"commands/uzys/build.md",
|
|
1836
|
+
"commands/uzys/plan.md",
|
|
1837
|
+
"commands/uzys/review.md",
|
|
1838
|
+
"commands/uzys/ship.md",
|
|
1839
|
+
"commands/uzys/spec.md",
|
|
1840
|
+
"commands/uzys/test.md",
|
|
1841
|
+
// hooks (10)
|
|
1842
|
+
"hooks/agentshield-gate.sh",
|
|
1843
|
+
"hooks/checkpoint-snapshot.sh",
|
|
1844
|
+
"hooks/codebase-map.sh",
|
|
1845
|
+
"hooks/gate-check.sh",
|
|
1846
|
+
"hooks/hito-counter.sh",
|
|
1847
|
+
"hooks/karpathy-gate.sh",
|
|
1848
|
+
"hooks/mcp-pre-exec.sh",
|
|
1849
|
+
"hooks/spec-drift-check.sh",
|
|
1850
|
+
"hooks/task-brief-nudge.sh",
|
|
1851
|
+
"hooks/uncommitted-check.sh"
|
|
1852
|
+
];
|
|
1853
|
+
var RETIRED_AGENT_IDS = RETIRED_PATHS.filter(
|
|
1854
|
+
(p) => p.startsWith("agents/")
|
|
1855
|
+
).map((p) => p.slice("agents/".length).replace(/\.md$/, ""));
|
|
1745
1856
|
var ALWAYS_HOOKS = ["session-start.sh", "protect-files.sh"];
|
|
1746
1857
|
var COMMON_SKILL_DIRS = [];
|
|
1747
1858
|
var DEV_SKILL_DIRS = [];
|
|
@@ -1913,6 +2024,7 @@ export {
|
|
|
1913
2024
|
CONTINUOUS_SKILLS_HEADING,
|
|
1914
2025
|
renderContinuousSkillsNote,
|
|
1915
2026
|
withContinuousSkillsNote,
|
|
2027
|
+
scaffoldBanner,
|
|
1916
2028
|
renderFillScaffold,
|
|
1917
2029
|
upsertHarnessImport,
|
|
1918
2030
|
stripHarnessImport,
|
|
@@ -1925,17 +2037,21 @@ export {
|
|
|
1925
2037
|
summarizeContextCost,
|
|
1926
2038
|
formatResidentCostLine,
|
|
1927
2039
|
formatResidentCostBlock,
|
|
2040
|
+
CLI_BASE_SORT_ORDER,
|
|
2041
|
+
parseCliTargets,
|
|
2042
|
+
targetsInclude,
|
|
1928
2043
|
ensureDir,
|
|
1929
2044
|
copyFile,
|
|
1930
2045
|
copyDir,
|
|
1931
2046
|
backupDir,
|
|
1932
2047
|
copyBackupDir,
|
|
1933
|
-
backupFileIfChanged,
|
|
1934
2048
|
backupFile,
|
|
1935
2049
|
listFilesRecursive,
|
|
1936
2050
|
ensureProjectSkeleton,
|
|
2051
|
+
INSTALL_LOG_FILENAME,
|
|
1937
2052
|
INSTALL_LOG_DIR,
|
|
1938
2053
|
POLICY_DIRS,
|
|
2054
|
+
installedClis,
|
|
1939
2055
|
buildInstallLog,
|
|
1940
2056
|
hashContent,
|
|
1941
2057
|
isHarnessOwned,
|
|
@@ -1951,10 +2067,11 @@ export {
|
|
|
1951
2067
|
ALL_RULES,
|
|
1952
2068
|
TRACK_AGENTS,
|
|
1953
2069
|
RETIRED_AGENTS,
|
|
2070
|
+
RETIRED_PATHS,
|
|
1954
2071
|
RETIRED_AGENT_IDS,
|
|
1955
2072
|
isCliNeutralTarget,
|
|
1956
2073
|
buildManifest,
|
|
1957
2074
|
CATEGORIES,
|
|
1958
2075
|
CATEGORY_TITLES
|
|
1959
2076
|
};
|
|
1960
|
-
//# sourceMappingURL=chunk-
|
|
2077
|
+
//# sourceMappingURL=chunk-3G34MEGZ.js.map
|