harnessed 3.6.0 → 3.7.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/cli.mjs +39 -82
- package/dist/cli.mjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -952,7 +952,7 @@ var init_resume = __esm({
|
|
|
952
952
|
|
|
953
953
|
// package.json
|
|
954
954
|
var package_default = {
|
|
955
|
-
version: "3.
|
|
955
|
+
version: "3.7.0"};
|
|
956
956
|
|
|
957
957
|
// src/manifest/errors.ts
|
|
958
958
|
function instancePathToKeyPath(instancePath) {
|
|
@@ -2103,63 +2103,37 @@ function checkWinBash() {
|
|
|
2103
2103
|
}
|
|
2104
2104
|
return { name: "bash flavor (win)", status: "pass", message: `${firstBash} (Git Bash / native)` };
|
|
2105
2105
|
}
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
async
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
}
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
}
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
async
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
async
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
return (await Promise.resolve().then(() => (init_check_mcp_availability(), check_mcp_availability_exports))).checkMcpAvailability();
|
|
2133
|
-
}
|
|
2106
|
+
|
|
2107
|
+
// src/cli/lib/doctor-registry.ts
|
|
2108
|
+
var CHECKS = [
|
|
2109
|
+
async () => checkNodeVersion(),
|
|
2110
|
+
checkMcpScope,
|
|
2111
|
+
async () => checkJq(),
|
|
2112
|
+
async () => checkWinBash(),
|
|
2113
|
+
async () => {
|
|
2114
|
+
const { checkOrigin: checkOrigin2 } = await Promise.resolve().then(() => (init_origin_check(), origin_check_exports));
|
|
2115
|
+
const r = checkOrigin2(process.cwd(), { allowFork: true });
|
|
2116
|
+
return { name: "origin URL", status: r.status, message: r.detail, fix: r.fix };
|
|
2117
|
+
},
|
|
2118
|
+
async () => {
|
|
2119
|
+
const { probeGstackPrefix: probeGstackPrefix2 } = await Promise.resolve().then(() => (init_probe_gstack(), probe_gstack_exports));
|
|
2120
|
+
const r = probeGstackPrefix2();
|
|
2121
|
+
return { name: "gstack prefix", status: r.status, message: r.detail, fix: r.fix };
|
|
2122
|
+
},
|
|
2123
|
+
async () => (await Promise.resolve().then(() => (init_check_deprecations(), check_deprecations_exports))).checkDeprecations(),
|
|
2124
|
+
async () => (await Promise.resolve().then(() => (init_check_token_budget(), check_token_budget_exports))).checkTokenBudget(),
|
|
2125
|
+
async () => (await Promise.resolve().then(() => (init_check_agent_teams_doctor(), check_agent_teams_doctor_exports))).checkAgentTeamsDoctor(),
|
|
2126
|
+
async () => (await Promise.resolve().then(() => (init_check_planning_with_files(), check_planning_with_files_exports))).checkPlanningWithFiles(),
|
|
2127
|
+
async () => (await Promise.resolve().then(() => (init_check_mattpocock_skills(), check_mattpocock_skills_exports))).checkMattpocockSkills(),
|
|
2128
|
+
async () => (await Promise.resolve().then(() => (init_check_mcp_availability(), check_mcp_availability_exports))).checkMcpAvailability()
|
|
2129
|
+
];
|
|
2130
|
+
|
|
2131
|
+
// src/cli/doctor.ts
|
|
2134
2132
|
function registerDoctor(program2) {
|
|
2135
2133
|
program2.command("doctor").description(
|
|
2136
2134
|
"Preflight checks (Node / MCP scope / jq / Win bash / origin URL / gstack prefix / deprecations / token budget / Agent Teams / planning-with-files / mattpocock-skills / MCP availability)"
|
|
2137
2135
|
).option("--json", "output JSON instead of human-readable").action(async (opts) => {
|
|
2138
|
-
const
|
|
2139
|
-
checkMcpScope(),
|
|
2140
|
-
checkOriginUrl(),
|
|
2141
|
-
checkGstackPrefix(),
|
|
2142
|
-
checkDeprecations2(),
|
|
2143
|
-
checkTokenBudget2(),
|
|
2144
|
-
checkAgentTeamsEnv(),
|
|
2145
|
-
checkPlanningPlugin(),
|
|
2146
|
-
checkMattpocockSkillsInstall(),
|
|
2147
|
-
checkMcpAvailabilityCheck()
|
|
2148
|
-
]);
|
|
2149
|
-
const results = [
|
|
2150
|
-
checkNodeVersion(),
|
|
2151
|
-
mcp,
|
|
2152
|
-
checkJq(),
|
|
2153
|
-
checkWinBash(),
|
|
2154
|
-
origin,
|
|
2155
|
-
gstack,
|
|
2156
|
-
dep,
|
|
2157
|
-
tok,
|
|
2158
|
-
at,
|
|
2159
|
-
ppwf,
|
|
2160
|
-
matt,
|
|
2161
|
-
mcpAvail
|
|
2162
|
-
];
|
|
2136
|
+
const results = await Promise.all(CHECKS.map((c) => c()));
|
|
2163
2137
|
const hasFail = results.some((r) => r.status === "fail");
|
|
2164
2138
|
const hasWarn = results.some((r) => r.status === "warn");
|
|
2165
2139
|
if (opts.json) {
|
|
@@ -5348,7 +5322,7 @@ function registerInstallBase(program2) {
|
|
|
5348
5322
|
}
|
|
5349
5323
|
console.log(
|
|
5350
5324
|
`
|
|
5351
|
-
installed: ${installed.length} / already-installed: ${alreadyInstalled.length} / skipped (deferred phase 2.1): ${skipped.length} / failed: ${failed.length}`
|
|
5325
|
+
installed: ${installed.length} / already-installed: ${alreadyInstalled.length} / skipped (deferred installer methods awaiting phase 2.1): ${skipped.length} / failed: ${failed.length}`
|
|
5352
5326
|
);
|
|
5353
5327
|
for (const i of installed) console.log(` installed ${i}`);
|
|
5354
5328
|
for (const a of alreadyInstalled)
|
|
@@ -5873,13 +5847,18 @@ async function renderAllSkills(skillNames, skillsBase, workflowsDir, homedirOver
|
|
|
5873
5847
|
return { results, aggregatedWarnings: [...warningSet] };
|
|
5874
5848
|
}
|
|
5875
5849
|
init_checkAgentTeams();
|
|
5876
|
-
var
|
|
5877
|
-
|
|
5850
|
+
var FLAT_LEGACY_KEEP = /* @__PURE__ */ new Set([
|
|
5851
|
+
"research",
|
|
5852
|
+
"retro",
|
|
5853
|
+
"auto",
|
|
5854
|
+
"execute-task",
|
|
5855
|
+
"plan-feature",
|
|
5856
|
+
"verify-work"
|
|
5857
|
+
]);
|
|
5878
5858
|
var FLAT_TOP_LEVEL_MASTERS = /* @__PURE__ */ new Set(["auto"]);
|
|
5879
5859
|
var NON_WORKFLOW_DIRS = /* @__PURE__ */ new Set(["disciplines", "judgments"]);
|
|
5880
5860
|
async function scanWorkflowsNested(workflowsDir, entries) {
|
|
5881
5861
|
const workflows = [];
|
|
5882
|
-
const deprecated = [];
|
|
5883
5862
|
for (const entry of entries.sort()) {
|
|
5884
5863
|
if (NON_WORKFLOW_DIRS.has(entry)) continue;
|
|
5885
5864
|
const src = join(workflowsDir, entry);
|
|
@@ -5898,10 +5877,6 @@ async function scanWorkflowsNested(workflowsDir, entries) {
|
|
|
5898
5877
|
hasFlatSkill = false;
|
|
5899
5878
|
}
|
|
5900
5879
|
if (hasFlatSkill) {
|
|
5901
|
-
if (FLAT_LEGACY_DEPRECATED.has(entry)) {
|
|
5902
|
-
deprecated.push(entry);
|
|
5903
|
-
continue;
|
|
5904
|
-
}
|
|
5905
5880
|
if (FLAT_LEGACY_KEEP.has(entry)) {
|
|
5906
5881
|
workflows.push({ name: entry, relPath: entry, isMaster: FLAT_TOP_LEVEL_MASTERS.has(entry) });
|
|
5907
5882
|
continue;
|
|
@@ -5933,20 +5908,7 @@ async function scanWorkflowsNested(workflowsDir, entries) {
|
|
|
5933
5908
|
workflows.push({ name, relPath: `${entry}/${sub}`, isMaster: sub === "auto" });
|
|
5934
5909
|
}
|
|
5935
5910
|
}
|
|
5936
|
-
return { workflows
|
|
5937
|
-
}
|
|
5938
|
-
function renderDeprecationBlock(deprecated) {
|
|
5939
|
-
if (deprecated.length === 0) return "";
|
|
5940
|
-
return [
|
|
5941
|
-
"\u26A0\uFE0F v3.0 BREAKING \u2014 v2 legacy slash cmd deprecated:",
|
|
5942
|
-
" /plan-feature \u2192 /plan (master) | /plan-phase (sub)",
|
|
5943
|
-
" /execute-task \u2192 /task (master) | /task-{clarify,code,test,deliver} (sub)",
|
|
5944
|
-
" /verify-work \u2192 /verify (master) | /verify-{progress,paranoid,qa,security,design,simplify,multispec} (sub)",
|
|
5945
|
-
" /research, /retro \u4E0D\u53D8",
|
|
5946
|
-
" \u8BE6\u89C1 CHANGELOG [3.0.0]",
|
|
5947
|
-
` skipped install: ${deprecated.sort().join(", ")}`,
|
|
5948
|
-
""
|
|
5949
|
-
].join("\n");
|
|
5911
|
+
return { workflows };
|
|
5950
5912
|
}
|
|
5951
5913
|
|
|
5952
5914
|
// src/cli/lib/setup-helpers.ts
|
|
@@ -6058,12 +6020,7 @@ function registerSetup(program2) {
|
|
|
6058
6020
|
console.error(t("setup.workflows_not_found", { path: workflowsDir }));
|
|
6059
6021
|
process.exit(1);
|
|
6060
6022
|
}
|
|
6061
|
-
const { workflows: toInstall
|
|
6062
|
-
workflowsDir,
|
|
6063
|
-
entries
|
|
6064
|
-
);
|
|
6065
|
-
const depBlock = renderDeprecationBlock(deprecated);
|
|
6066
|
-
if (depBlock) console.log(depBlock);
|
|
6023
|
+
const { workflows: toInstall } = await scanWorkflowsWithSkill(workflowsDir, entries);
|
|
6067
6024
|
if (toInstall.length === 0) {
|
|
6068
6025
|
console.log(t("setup.nothing_to_install"));
|
|
6069
6026
|
process.exit(2);
|