@delorenj/pjangler 1.5.12 → 1.5.13

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/index.js CHANGED
@@ -9264,8 +9264,9 @@ function projectJsonFinding(ctx) {
9264
9264
  };
9265
9265
  }
9266
9266
  var BMAD_NPM_PACKAGE = "bmad-method";
9267
- var BMAD_INSTALLER_VERSION = "6.12.0";
9267
+ var BMAD_INSTALLER_VERSION = "6.12.1";
9268
9268
  var BMAD_TARGET_CHANNEL = "next";
9269
+ var BMAD_STABLE_CHANNEL = "latest";
9269
9270
  var BMAD_DIST_TAGS_TTL_MS = 60 * 60 * 1e3;
9270
9271
  var DEFAULT_BMAD_MODULES = ["bmm", "bmb", "cis"];
9271
9272
  var BMAD_INSTALL_TOOLS = SUPPORTED_BMAD_TOOLS;
@@ -9459,10 +9460,17 @@ function runBmadInstall(repoRoot, modules = selectedBmadModules(repoRoot), versi
9459
9460
  const invocation = bmadInstallerInvocation(version);
9460
9461
  const result2 = spawnSync3(invocation.command, [...invocation.prefixArgs, ...bmadInstallerArgs(repoRoot, modules)], { encoding: "utf8" });
9461
9462
  if (result2.status !== 0) {
9462
- return { ok: false, error: result2.stderr || result2.error?.message || "Unknown error" };
9463
+ const stdoutTail = result2.stdout?.trim().split("\n").slice(-12).join("\n");
9464
+ return { ok: false, error: result2.stderr?.trim() || stdoutTail || result2.error?.message || `installer exited ${result2.status}` };
9463
9465
  }
9464
9466
  return { ok: true };
9465
9467
  }
9468
+ function bmadChannelTarget(distTags) {
9469
+ const next = distTags?.[BMAD_TARGET_CHANNEL];
9470
+ const stable = distTags?.[BMAD_STABLE_CHANNEL];
9471
+ if (next && stable && compareBmadVersions(stable, next) > 0) return { version: stable, channel: BMAD_STABLE_CHANNEL };
9472
+ return next ? { version: next, channel: BMAD_TARGET_CHANNEL } : void 0;
9473
+ }
9466
9474
  function readInstalledBmadVersion(repoRoot) {
9467
9475
  const raw = safeReadText2(join5(repoRoot, "_bmad", "_config", "manifest.yaml"));
9468
9476
  if (!raw) return void 0;
@@ -10999,7 +11007,9 @@ function createBmadChecks() {
10999
11007
  }
11000
11008
  const pinned = ctx.bmadVersionPin?.trim();
11001
11009
  const resolved = pinned ? void 0 : resolveBmadDistTags(ctx.homeDir);
11002
- const available = pinned ?? resolved?.distTags?.[BMAD_TARGET_CHANNEL];
11010
+ const channelTarget = pinned ? void 0 : bmadChannelTarget(resolved?.distTags);
11011
+ const available = pinned ?? channelTarget?.version;
11012
+ const channel = channelTarget?.channel ?? BMAD_TARGET_CHANNEL;
11003
11013
  if (!available) {
11004
11014
  return {
11005
11015
  id: "bmad.version",
@@ -11010,7 +11020,7 @@ function createBmadChecks() {
11010
11020
  fixable: false
11011
11021
  };
11012
11022
  }
11013
- const targetLabel = pinned ? `pinned ${available}` : `${BMAD_TARGET_CHANNEL} ${available}`;
11023
+ const targetLabel = pinned ? `pinned ${available}` : `${channel} ${available}`;
11014
11024
  const staleNote = resolved?.stale ? ` ${glyph.dot} cached` : "";
11015
11025
  const comparison = compareBmadVersions(installed, available);
11016
11026
  if (pinned ? comparison === 0 : comparison >= 0) {
@@ -11031,7 +11041,7 @@ function createBmadChecks() {
11031
11041
  title: "BMAD version currency",
11032
11042
  status: "skip",
11033
11043
  summary: `BMAD ${installed} installed; stable currency floor unknown (${BMAD_NPM_PACKAGE} latest unresolved)`,
11034
- details: [`installed: ${installed}`, `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`],
11044
+ details: [`installed: ${installed}`, `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`],
11035
11045
  fixable: false
11036
11046
  };
11037
11047
  }
@@ -11044,7 +11054,7 @@ function createBmadChecks() {
11044
11054
  summary: `BMAD ${installed} is at or ahead of stable ${stable ?? "unknown"}; ${targetLabel} available${staleNote}`,
11045
11055
  details: [
11046
11056
  `installed: ${installed}`,
11047
- `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`,
11057
+ `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`,
11048
11058
  stable ? `stable latest: ${stable}` : "",
11049
11059
  "run `pj migrate bmad.version` to take the prerelease"
11050
11060
  ].filter(Boolean),
@@ -11058,7 +11068,7 @@ function createBmadChecks() {
11058
11068
  summary: pinnedMismatch ? `BMAD ${installed} does not match ${targetLabel}` : `BMAD ${installed} is behind stable ${stable} \u2014 upgrade available`,
11059
11069
  details: [
11060
11070
  `installed: ${installed}`,
11061
- pinned ? `required transaction pin: ${available}` : `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`,
11071
+ pinned ? `required transaction pin: ${available}` : `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`,
11062
11072
  !pinned && stable ? `stable latest: ${stable}` : "",
11063
11073
  "run `pj migrate bmad.version` to upgrade"
11064
11074
  ].filter(Boolean),
@@ -11071,13 +11081,13 @@ function createBmadChecks() {
11071
11081
  }
11072
11082
  {
11073
11083
  const current = readInstalledBmadVersion(ctx.repoRoot);
11074
- const target = ctx.bmadVersionPin?.trim() ?? resolveBmadDistTags(ctx.homeDir)?.distTags?.[BMAD_TARGET_CHANNEL];
11084
+ const target = ctx.bmadVersionPin?.trim() ?? bmadChannelTarget(resolveBmadDistTags(ctx.homeDir)?.distTags)?.version;
11075
11085
  if (!current || !target || compareBmadVersions(current, target) === 0) {
11076
11086
  return { id: finding2.id, title: finding2.title, status: "noop", summary: "BMAD already current", changedFiles: [], details: [] };
11077
11087
  }
11078
11088
  }
11079
11089
  const installed = readInstalledBmadVersion(ctx.repoRoot);
11080
- const available = ctx.bmadVersionPin?.trim() ?? resolveBmadDistTags(ctx.homeDir)?.distTags?.[BMAD_TARGET_CHANNEL];
11090
+ const available = ctx.bmadVersionPin?.trim() ?? bmadChannelTarget(resolveBmadDistTags(ctx.homeDir)?.distTags)?.version;
11081
11091
  const manifestPath = join5(ctx.repoRoot, "_bmad", "_config", "manifest.yaml");
11082
11092
  const manifestSelection = manifestBmadModules(ctx.repoRoot);
11083
11093
  if (manifestSelection.status === "invalid") {
@@ -8427,8 +8427,9 @@ function projectJsonFinding(ctx) {
8427
8427
  };
8428
8428
  }
8429
8429
  var BMAD_NPM_PACKAGE = "bmad-method";
8430
- var BMAD_INSTALLER_VERSION = "6.12.0";
8430
+ var BMAD_INSTALLER_VERSION = "6.12.1";
8431
8431
  var BMAD_TARGET_CHANNEL = "next";
8432
+ var BMAD_STABLE_CHANNEL = "latest";
8432
8433
  var BMAD_DIST_TAGS_TTL_MS = 60 * 60 * 1e3;
8433
8434
  var DEFAULT_BMAD_MODULES = ["bmm", "bmb", "cis"];
8434
8435
  var BMAD_INSTALL_TOOLS = SUPPORTED_BMAD_TOOLS;
@@ -8622,10 +8623,17 @@ function runBmadInstall(repoRoot, modules = selectedBmadModules(repoRoot), versi
8622
8623
  const invocation = bmadInstallerInvocation(version);
8623
8624
  const result2 = spawnSync3(invocation.command, [...invocation.prefixArgs, ...bmadInstallerArgs(repoRoot, modules)], { encoding: "utf8" });
8624
8625
  if (result2.status !== 0) {
8625
- return { ok: false, error: result2.stderr || result2.error?.message || "Unknown error" };
8626
+ const stdoutTail = result2.stdout?.trim().split("\n").slice(-12).join("\n");
8627
+ return { ok: false, error: result2.stderr?.trim() || stdoutTail || result2.error?.message || `installer exited ${result2.status}` };
8626
8628
  }
8627
8629
  return { ok: true };
8628
8630
  }
8631
+ function bmadChannelTarget(distTags) {
8632
+ const next = distTags?.[BMAD_TARGET_CHANNEL];
8633
+ const stable = distTags?.[BMAD_STABLE_CHANNEL];
8634
+ if (next && stable && compareBmadVersions(stable, next) > 0) return { version: stable, channel: BMAD_STABLE_CHANNEL };
8635
+ return next ? { version: next, channel: BMAD_TARGET_CHANNEL } : void 0;
8636
+ }
8629
8637
  function readInstalledBmadVersion(repoRoot) {
8630
8638
  const raw = safeReadText2(join5(repoRoot, "_bmad", "_config", "manifest.yaml"));
8631
8639
  if (!raw) return void 0;
@@ -9810,7 +9818,9 @@ function createBmadChecks() {
9810
9818
  }
9811
9819
  const pinned = ctx.bmadVersionPin?.trim();
9812
9820
  const resolved = pinned ? void 0 : resolveBmadDistTags(ctx.homeDir);
9813
- const available = pinned ?? resolved?.distTags?.[BMAD_TARGET_CHANNEL];
9821
+ const channelTarget = pinned ? void 0 : bmadChannelTarget(resolved?.distTags);
9822
+ const available = pinned ?? channelTarget?.version;
9823
+ const channel = channelTarget?.channel ?? BMAD_TARGET_CHANNEL;
9814
9824
  if (!available) {
9815
9825
  return {
9816
9826
  id: "bmad.version",
@@ -9821,7 +9831,7 @@ function createBmadChecks() {
9821
9831
  fixable: false
9822
9832
  };
9823
9833
  }
9824
- const targetLabel = pinned ? `pinned ${available}` : `${BMAD_TARGET_CHANNEL} ${available}`;
9834
+ const targetLabel = pinned ? `pinned ${available}` : `${channel} ${available}`;
9825
9835
  const staleNote = resolved?.stale ? ` ${glyph.dot} cached` : "";
9826
9836
  const comparison = compareBmadVersions(installed, available);
9827
9837
  if (pinned ? comparison === 0 : comparison >= 0) {
@@ -9842,7 +9852,7 @@ function createBmadChecks() {
9842
9852
  title: "BMAD version currency",
9843
9853
  status: "skip",
9844
9854
  summary: `BMAD ${installed} installed; stable currency floor unknown (${BMAD_NPM_PACKAGE} latest unresolved)`,
9845
- details: [`installed: ${installed}`, `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`],
9855
+ details: [`installed: ${installed}`, `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`],
9846
9856
  fixable: false
9847
9857
  };
9848
9858
  }
@@ -9855,7 +9865,7 @@ function createBmadChecks() {
9855
9865
  summary: `BMAD ${installed} is at or ahead of stable ${stable ?? "unknown"}; ${targetLabel} available${staleNote}`,
9856
9866
  details: [
9857
9867
  `installed: ${installed}`,
9858
- `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`,
9868
+ `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`,
9859
9869
  stable ? `stable latest: ${stable}` : "",
9860
9870
  "run `pj migrate bmad.version` to take the prerelease"
9861
9871
  ].filter(Boolean),
@@ -9869,7 +9879,7 @@ function createBmadChecks() {
9869
9879
  summary: pinnedMismatch ? `BMAD ${installed} does not match ${targetLabel}` : `BMAD ${installed} is behind stable ${stable} \u2014 upgrade available`,
9870
9880
  details: [
9871
9881
  `installed: ${installed}`,
9872
- pinned ? `required transaction pin: ${available}` : `available: ${available} (${BMAD_NPM_PACKAGE}@${BMAD_TARGET_CHANNEL})`,
9882
+ pinned ? `required transaction pin: ${available}` : `available: ${available} (${BMAD_NPM_PACKAGE}@${channel})`,
9873
9883
  !pinned && stable ? `stable latest: ${stable}` : "",
9874
9884
  "run `pj migrate bmad.version` to upgrade"
9875
9885
  ].filter(Boolean),
@@ -9882,13 +9892,13 @@ function createBmadChecks() {
9882
9892
  }
9883
9893
  {
9884
9894
  const current = readInstalledBmadVersion(ctx.repoRoot);
9885
- const target = ctx.bmadVersionPin?.trim() ?? resolveBmadDistTags(ctx.homeDir)?.distTags?.[BMAD_TARGET_CHANNEL];
9895
+ const target = ctx.bmadVersionPin?.trim() ?? bmadChannelTarget(resolveBmadDistTags(ctx.homeDir)?.distTags)?.version;
9886
9896
  if (!current || !target || compareBmadVersions(current, target) === 0) {
9887
9897
  return { id: finding2.id, title: finding2.title, status: "noop", summary: "BMAD already current", changedFiles: [], details: [] };
9888
9898
  }
9889
9899
  }
9890
9900
  const installed = readInstalledBmadVersion(ctx.repoRoot);
9891
- const available = ctx.bmadVersionPin?.trim() ?? resolveBmadDistTags(ctx.homeDir)?.distTags?.[BMAD_TARGET_CHANNEL];
9901
+ const available = ctx.bmadVersionPin?.trim() ?? bmadChannelTarget(resolveBmadDistTags(ctx.homeDir)?.distTags)?.version;
9892
9902
  const manifestPath = join5(ctx.repoRoot, "_bmad", "_config", "manifest.yaml");
9893
9903
  const manifestSelection = manifestBmadModules(ctx.repoRoot);
9894
9904
  if (manifestSelection.status === "invalid") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delorenj/pjangler",
3
- "version": "1.5.12",
3
+ "version": "1.5.13",
4
4
  "description": "Project subsystem bootstrapper CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",