@uzysjung/agent-harness 26.158.0 → 26.159.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/README.ko.md +1 -1
- package/README.md +1 -1
- package/dist/{chunk-HHCNPPGS.js → chunk-FTL34NT4.js} +49 -289
- package/dist/chunk-FTL34NT4.js.map +1 -0
- package/dist/index.js +11 -40
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +1 -2
- package/templates/agents/strategist.md +10 -0
- package/dist/chunk-HHCNPPGS.js.map +0 -1
- package/scripts/prune-ecc.sh +0 -310
- package/templates/skills/e2e-testing/SKILL.md +0 -326
- package/templates/skills/e2e-testing/agents/openai.yaml +0 -7
- package/templates/skills/investor-materials/SKILL.md +0 -96
- package/templates/skills/investor-outreach/SKILL.md +0 -91
- package/templates/skills/market-research/SKILL.md +0 -75
- package/templates/skills/market-research/agents/openai.yaml +0 -7
- package/templates/skills/nextjs-turbopack/SKILL.md +0 -44
- package/templates/skills/python-patterns/SKILL.md +0 -750
- package/templates/skills/python-testing/SKILL.md +0 -816
package/dist/index.js
CHANGED
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
upsertHarnessImport,
|
|
68
68
|
withContinuousSkillsNote,
|
|
69
69
|
writeInstallLog
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-FTL34NT4.js";
|
|
71
71
|
|
|
72
72
|
// node_modules/sisteransi/src/index.js
|
|
73
73
|
var require_src = __commonJS({
|
|
@@ -752,7 +752,7 @@ var cac = (name = "") => new CAC(name);
|
|
|
752
752
|
// package.json
|
|
753
753
|
var package_default = {
|
|
754
754
|
name: "@uzysjung/agent-harness",
|
|
755
|
-
version: "26.
|
|
755
|
+
version: "26.159.0",
|
|
756
756
|
description: "Curate vetted AI-coding skills & plugins by your tech stack \u2014 install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
|
|
757
757
|
type: "module",
|
|
758
758
|
publishConfig: {
|
|
@@ -767,7 +767,6 @@ var package_default = {
|
|
|
767
767
|
files: [
|
|
768
768
|
"dist",
|
|
769
769
|
"templates",
|
|
770
|
-
"scripts/prune-ecc.sh",
|
|
771
770
|
"README.md",
|
|
772
771
|
"LICENSE"
|
|
773
772
|
],
|
|
@@ -1834,7 +1833,6 @@ function runExternalInstall(ctx, deps = {}) {
|
|
|
1834
1833
|
const warn = deps.warn ?? console.error;
|
|
1835
1834
|
const spawn = deps.spawn ?? defaultSpawn;
|
|
1836
1835
|
const assets = deps.assets ?? EXTERNAL_ASSETS;
|
|
1837
|
-
const harnessRoot = deps.harnessRoot ?? process.cwd();
|
|
1838
1836
|
const projectDir = ctx.projectDir ?? process.cwd();
|
|
1839
1837
|
const { targets: applicable, excludedByCli } = selectExternalTargets(assets, ctx);
|
|
1840
1838
|
const sorted = [...applicable].sort((a, b2) => {
|
|
@@ -1848,7 +1846,7 @@ function runExternalInstall(ctx, deps = {}) {
|
|
|
1848
1846
|
for (const asset of sorted) {
|
|
1849
1847
|
deps.onAssetStart?.(asset);
|
|
1850
1848
|
log(` \u2192 ${asset.description}`);
|
|
1851
|
-
const baseResult = installOne(asset, { spawn,
|
|
1849
|
+
const baseResult = installOne(asset, { spawn, cli: cli2, scope, projectDir });
|
|
1852
1850
|
let result = baseResult;
|
|
1853
1851
|
if (baseResult.ok) {
|
|
1854
1852
|
const v2 = detectVersion(asset.method, spawn);
|
|
@@ -1893,17 +1891,6 @@ function installOne(asset, ctx) {
|
|
|
1893
1891
|
[`${method.cmd}@${method.version}`, ...method.args ?? []],
|
|
1894
1892
|
cwd
|
|
1895
1893
|
);
|
|
1896
|
-
case "shell-script": {
|
|
1897
|
-
const scriptPath = join11(ctx.harnessRoot, method.script);
|
|
1898
|
-
if (!existsSync11(scriptPath)) {
|
|
1899
|
-
return {
|
|
1900
|
-
asset,
|
|
1901
|
-
ok: false,
|
|
1902
|
-
message: `script not found: ${scriptPath}`
|
|
1903
|
-
};
|
|
1904
|
-
}
|
|
1905
|
-
return runSpawn(asset, ctx.spawn, "bash", [scriptPath, ...method.args], cwd);
|
|
1906
|
-
}
|
|
1907
1894
|
case "internal":
|
|
1908
1895
|
return { asset, ok: true, message: "internal template (installed by Phase 1 manifest)" };
|
|
1909
1896
|
}
|
|
@@ -2413,8 +2400,8 @@ function recordNewSkillBaseline(projectDir, templatesDir, targets) {
|
|
|
2413
2400
|
}
|
|
2414
2401
|
function trackOnlyFileAssets(tracks) {
|
|
2415
2402
|
const base = { tracks, selectedInternalSkills: [] };
|
|
2416
|
-
const optedOut = { ...base,
|
|
2417
|
-
const optedIn = { ...base,
|
|
2403
|
+
const optedOut = { ...base, withTauri: false };
|
|
2404
|
+
const optedIn = { ...base, withTauri: true };
|
|
2418
2405
|
return buildManifest(optedOut).filter(
|
|
2419
2406
|
(e2) => e2.type === "file" && e2.applies(optedOut) && e2.applies(optedIn)
|
|
2420
2407
|
);
|
|
@@ -2993,10 +2980,9 @@ function runExternalPhase(ctx) {
|
|
|
2993
2980
|
if (ctx.runExternal === null) {
|
|
2994
2981
|
return null;
|
|
2995
2982
|
}
|
|
2996
|
-
const {
|
|
2983
|
+
const { projectDir, spec } = ctx;
|
|
2997
2984
|
const runExt = ctx.runExternal ?? runExternalInstall;
|
|
2998
2985
|
const externalDeps = {
|
|
2999
|
-
harnessRoot,
|
|
3000
2986
|
log: () => {
|
|
3001
2987
|
},
|
|
3002
2988
|
warn: () => {
|
|
@@ -3231,9 +3217,7 @@ function createInstallRenderer(log, spec, verbose) {
|
|
|
3231
3217
|
const callbacks = {
|
|
3232
3218
|
onProgress: (event) => {
|
|
3233
3219
|
if (event.type === "baseline-complete") {
|
|
3234
|
-
|
|
3235
|
-
const eccWillInstall = claudeSelected && (isAssetSelected("ecc-plugin", spec) || spec.options.withPrune === true);
|
|
3236
|
-
renderPhase1Rows(log, event.baseline, verbose, eccWillInstall, claudeSelected);
|
|
3220
|
+
renderPhase1Rows(log, event.baseline, verbose);
|
|
3237
3221
|
} else if (event.type === "external-start" && event.assetCount > 0) {
|
|
3238
3222
|
log(unifiedSection(`External assets (${event.assetCount})`));
|
|
3239
3223
|
log("");
|
|
@@ -3494,13 +3478,11 @@ function formatAssetMeta(asset, version) {
|
|
|
3494
3478
|
return `npm \xB7 ${m.pkg}@${m.version}`;
|
|
3495
3479
|
case "npx-run":
|
|
3496
3480
|
return `npx \xB7 ${m.cmd}@${m.version}`;
|
|
3497
|
-
case "shell-script":
|
|
3498
|
-
return `bash \xB7 ${m.script}`;
|
|
3499
3481
|
case "internal":
|
|
3500
3482
|
return `internal \xB7 templates (${m.key})`;
|
|
3501
3483
|
}
|
|
3502
3484
|
}
|
|
3503
|
-
function renderPhase1Rows(log, baseline, verbose = false
|
|
3485
|
+
function renderPhase1Rows(log, baseline, verbose = false) {
|
|
3504
3486
|
if (baseline.updateMode) {
|
|
3505
3487
|
if (baseline.backup) {
|
|
3506
3488
|
log(assetRow("success", "backup", shortenPath(baseline.backup)));
|
|
@@ -3841,13 +3823,6 @@ function renderPhase1Rows(log, baseline, verbose = false, withEcc = false, claud
|
|
|
3841
3823
|
}
|
|
3842
3824
|
const mcpList = baseline.mcpServers.join(", ") || "(none)";
|
|
3843
3825
|
log(assetRow("success", ".mcp.json", mcpList, TEMPLATES_COL));
|
|
3844
|
-
if (!withEcc && baseline.categories) {
|
|
3845
|
-
log("");
|
|
3846
|
-
log(` ${c.dim("\xB7")} ${c.dim("ECC plugin not selected \u2014 cherry-pick fallback active")}`);
|
|
3847
|
-
if (claudeSelected) {
|
|
3848
|
-
log(` ${c.dim("\xB7")} ${c.dim("Use --with ecc-plugin to install ECC plugin instead")}`);
|
|
3849
|
-
}
|
|
3850
|
-
}
|
|
3851
3826
|
if (baseline.envFiles.envExampleCreated) {
|
|
3852
3827
|
log(assetRow("success", ".env.example", "Supabase token guide"));
|
|
3853
3828
|
}
|
|
@@ -3981,7 +3956,6 @@ function installAction(options, deps = {}) {
|
|
|
3981
3956
|
// v26.81.0 (ADR-022, BREAKING) — 자산 1:1 boolean 13종 삭제. 자산 선택은 위
|
|
3982
3957
|
// userOverride(--with <id>)로 일원화. 잔존 = 설치 동작 옵션만.
|
|
3983
3958
|
options: {
|
|
3984
|
-
withPrune: options.withPrune === true,
|
|
3985
3959
|
withCodexTrust: options.withCodexTrust === true
|
|
3986
3960
|
},
|
|
3987
3961
|
cli: validated.cli,
|
|
@@ -4077,9 +4051,6 @@ function registerInstallCommand(cli2) {
|
|
|
4077
4051
|
).option(
|
|
4078
4052
|
"--with-codex-trust",
|
|
4079
4053
|
"[Codex] Codex global opt-in: register trust entry in ~/.codex/config.toml"
|
|
4080
|
-
).option(
|
|
4081
|
-
"--with-prune",
|
|
4082
|
-
"[Behavior] Prune ECC items beyond curated 89 (use with --with ecc-plugin)"
|
|
4083
4054
|
).option("--verbose", "[Misc] Show installed file lists per category (default: counts only)").example("install --track tooling --with marketingskills").example("install --track csr-supabase --cli claude --cli codex").example("install --track csr-supabase --without netlify-cli --with railway-skills").action((options) => installAction(options));
|
|
4084
4055
|
}
|
|
4085
4056
|
|
|
@@ -5177,6 +5148,7 @@ function hintFor(asset) {
|
|
|
5177
5148
|
case "npm":
|
|
5178
5149
|
return "npm uninstall --save-dev";
|
|
5179
5150
|
case "npx-run":
|
|
5151
|
+
// shell-script = #492 에서 은퇴한 legacy kind. 옛 로그가 그대로 들어온다.
|
|
5180
5152
|
case "shell-script":
|
|
5181
5153
|
case "internal":
|
|
5182
5154
|
return "\uC790\uB3D9 \uB418\uB3CC\uB9AC\uAE30 \uACBD\uB85C \uC5C6\uC74C \u2014 \uC804\uB7C9 \uC81C\uAC70(`.claude/` \uC0AD\uC81C)\uB85C\uB9CC \uC0AC\uB77C\uC9C4\uB2E4";
|
|
@@ -5294,7 +5266,7 @@ function uninstallAction(options, deps = {}) {
|
|
|
5294
5266
|
const selectedIds = parseOnly(options.only);
|
|
5295
5267
|
if (options.only !== void 0 && selectedIds === null) {
|
|
5296
5268
|
err(status.failure(c.red("ERROR: --only \uC5D0 \uC790\uC0B0 id \uAC00 \uC5C6\uB2E4")));
|
|
5297
|
-
err(c.dim(" \uC608: --only
|
|
5269
|
+
err(c.dim(" \uC608: --only openspec (id \uB294 `agent-harness list` \uC5D0\uC11C \uD655\uC778)"));
|
|
5298
5270
|
exit(1);
|
|
5299
5271
|
return;
|
|
5300
5272
|
}
|
|
@@ -5950,7 +5922,7 @@ var INSTALL_TARGET_PAGES = [
|
|
|
5950
5922
|
{ label: "Business (PM \xB7 Executive \xB7 Documents)", cats: ["business"] },
|
|
5951
5923
|
// v26.85.0 — 코드-퍼스트 비주얼/미디어 제작 (용도별 섹션, 전부 opt-in).
|
|
5952
5924
|
{ label: "Visual & Media (Slides \xB7 Diagrams \xB7 Motion \xB7 Video)", cats: ["visual-media"] },
|
|
5953
|
-
{ label: "Workflow
|
|
5925
|
+
{ label: "Workflow", cats: ["workflow"] }
|
|
5954
5926
|
];
|
|
5955
5927
|
var BASELINE_TITLES = {
|
|
5956
5928
|
rules: "Rules \u2014 \uC0C1\uC2DC \uC0C1\uC8FC\uD558\uB294 \uB300\uC6D0\uCE59 (4 CLI \uC804\uBD80\uC5D0 \uC124\uCE58)",
|
|
@@ -6241,7 +6213,6 @@ function baselineExcludeFrom(offered, checked) {
|
|
|
6241
6213
|
function toOptionFlags(keys) {
|
|
6242
6214
|
const picked = new Set(keys);
|
|
6243
6215
|
return {
|
|
6244
|
-
withPrune: picked.has("withPrune"),
|
|
6245
6216
|
withCodexTrust: picked.has("withCodexTrust")
|
|
6246
6217
|
};
|
|
6247
6218
|
}
|