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 CHANGED
@@ -952,7 +952,7 @@ var init_resume = __esm({
952
952
 
953
953
  // package.json
954
954
  var package_default = {
955
- version: "3.6.0"};
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
- async function checkOriginUrl() {
2107
- const { checkOrigin: checkOrigin2 } = await Promise.resolve().then(() => (init_origin_check(), origin_check_exports));
2108
- const r = checkOrigin2(process.cwd(), { allowFork: true });
2109
- return { name: "origin URL", status: r.status, message: r.detail, fix: r.fix };
2110
- }
2111
- async function checkGstackPrefix() {
2112
- const { probeGstackPrefix: probeGstackPrefix2 } = await Promise.resolve().then(() => (init_probe_gstack(), probe_gstack_exports));
2113
- const r = probeGstackPrefix2();
2114
- return { name: "gstack prefix", status: r.status, message: r.detail, fix: r.fix };
2115
- }
2116
- async function checkDeprecations2() {
2117
- return (await Promise.resolve().then(() => (init_check_deprecations(), check_deprecations_exports))).checkDeprecations();
2118
- }
2119
- async function checkTokenBudget2() {
2120
- return (await Promise.resolve().then(() => (init_check_token_budget(), check_token_budget_exports))).checkTokenBudget();
2121
- }
2122
- async function checkAgentTeamsEnv() {
2123
- return (await Promise.resolve().then(() => (init_check_agent_teams_doctor(), check_agent_teams_doctor_exports))).checkAgentTeamsDoctor();
2124
- }
2125
- async function checkPlanningPlugin() {
2126
- return (await Promise.resolve().then(() => (init_check_planning_with_files(), check_planning_with_files_exports))).checkPlanningWithFiles();
2127
- }
2128
- async function checkMattpocockSkillsInstall() {
2129
- return (await Promise.resolve().then(() => (init_check_mattpocock_skills(), check_mattpocock_skills_exports))).checkMattpocockSkills();
2130
- }
2131
- async function checkMcpAvailabilityCheck() {
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 [mcp, origin, gstack, dep, tok, at, ppwf, matt, mcpAvail] = await Promise.all([
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 FLAT_LEGACY_DEPRECATED = /* @__PURE__ */ new Set(["plan-feature", "execute-task", "verify-work"]);
5877
- var FLAT_LEGACY_KEEP = /* @__PURE__ */ new Set(["research", "retro", "auto"]);
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, deprecated };
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, deprecated } = await scanWorkflowsWithSkill(
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);