@bensandee/tooling 0.84.2 → 0.84.4

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.
Files changed (2) hide show
  1. package/dist/bin.mjs +21 -9
  2. package/package.json +1 -1
package/dist/bin.mjs CHANGED
@@ -269,7 +269,7 @@ function loadEnvFileForBin(rawArgs, bin, io = processIo) {
269
269
  */
270
270
  const envFileLoad = loadEnvFileForBin(process.argv.slice(2), {
271
271
  name: "bst",
272
- version: "0.84.2"
272
+ version: "0.84.4"
273
273
  });
274
274
  //#endregion
275
275
  //#region ../cli-kit/src/logger.ts
@@ -7163,7 +7163,7 @@ function buildManagedDevDeps(ctx) {
7163
7163
  const devDeps = { ...rootDevDeps(ctx.config) };
7164
7164
  if (!isMonorepo) Object.assign(devDeps, perPackageDevDeps(ctx.config));
7165
7165
  if (ctx.config.stack !== "none" || ctx.config.ci === "forgejo") devDeps["@bensandee/config"] = isWorkspacePackage(ctx, "@bensandee/config") ? "workspace:*" : "0.14.5";
7166
- if (!isWorkspacePackage(ctx, "@bensandee/tooling")) devDeps["@bensandee/tooling"] = "0.84.2";
7166
+ if (!isWorkspacePackage(ctx, "@bensandee/tooling")) devDeps["@bensandee/tooling"] = "0.84.4";
7167
7167
  if (ctx.config.useEslintPlugin && ctx.config.stack !== "none") devDeps["@bensandee/eslint-plugin"] = isWorkspacePackage(ctx, "@bensandee/eslint-plugin") ? "workspace:*" : "0.15.2";
7168
7168
  if (ctx.config.formatter === "oxfmt") devDeps["oxfmt"] = {
7169
7169
  "@changesets/cli": "3.0.3",
@@ -12696,7 +12696,7 @@ function reportFailures(failed, command) {
12696
12696
  function generateMigratePrompt(results, config, detected) {
12697
12697
  const sections = [];
12698
12698
  const timestamp = (/* @__PURE__ */ new Date()).toISOString();
12699
- sections.push(`# Migration Prompt\n\n_Generated by \`@bensandee/tooling@0.84.2 repo:sync\` on ${timestamp}_\n`);
12699
+ sections.push(`# Migration Prompt\n\n_Generated by \`@bensandee/tooling@0.84.4 repo:sync\` on ${timestamp}_\n`);
12700
12700
  const changed = results.filter((r) => r.action === "created" || r.action === "updated" || r.action === "archived");
12701
12701
  if (changed.length > 0) {
12702
12702
  const items = changed.map((r) => {
@@ -19758,7 +19758,7 @@ function composeUp(executor, config) {
19758
19758
  *
19759
19759
  * `--rmi all` is wrong and must not replace it. It would also remove anything
19760
19760
  * carrying an explicit `image:` tag, and this repo's compose files name
19761
- * `bst-agent-runner`, `bst-agent-proxy` and `bst-agent` -- the first two are images
19761
+ * `bst-agent-claude`, `bst-agent-proxy` and `bst-agent` -- the first two are images
19762
19762
  * the agent spawns at runtime through `docker run`, not through compose. On a host
19763
19763
  * running the agent, teardown would delete them out from under it. The flag's
19764
19764
  * own semantics are the safety property; do not add a guard around a wider flag.
@@ -23221,7 +23221,7 @@ const healthSummaryCommand = defineCommand({
23221
23221
  probe: createFsProbe(targetDir)
23222
23222
  });
23223
23223
  if (args.json === true) {
23224
- const { sourceLinesByModule: _sourceLinesByModule, fanOutEdges: _fanOutEdges, fanInEdges: _fanInEdges, graphModules: _graphModules, graphDiagnostic: _graphDiagnostic, ...explainable } = details;
23224
+ const { sourceLinesByModule: _sourceLinesByModule, fanOutEdges: _fanOutEdges, fanInEdges: _fanInEdges, graphModules: _graphModules, directories: _directories, graphDiagnostic: _graphDiagnostic, ...explainable } = details;
23225
23225
  out.json({
23226
23226
  ...args.explain === true ? {
23227
23227
  ...explainable,
@@ -26407,6 +26407,11 @@ function checkPair(exec, pair, config, opts) {
26407
26407
  * unquoted too) -- with two deliberate deviations: an empty value is allowed (a label alone
26408
26408
  * on its line, link on the next); no `i` flag (no lowercase `implements:` in this repo). */
26409
26409
  const IMPLEMENTS_LINE_RE = /^(?:(>[ \t]*)|[ \t]*)(?:\*\*)?Implements(?:\*\*)?:.*$/m;
26410
+ /** The fallback link line for a plan written in another format, which names its spec with a
26411
+ * `Spec:` label (`**Spec:** [...]` in the superpowers plan header) and no `Implements:` line.
26412
+ * Same shape as {@link IMPLEMENTS_LINE_RE}; read only when that one does not match, so a plan
26413
+ * carrying both is linked by its `Implements:` line alone. */
26414
+ const SPEC_LINE_RE = /^(?:(>[ \t]*)|[ \t]*)(?:\*\*)?Spec(?:\*\*)?:.*$/m;
26410
26415
  /**
26411
26416
  * The spec link(s) on a plan's `Implements:` block, if any -- not every relative link in the
26412
26417
  * body. A plan's prose routinely links other documents (a superseded spec, a design doc it
@@ -26420,7 +26425,7 @@ const IMPLEMENTS_LINE_RE = /^(?:(>[ \t]*)|[ \t]*)(?:\*\*)?Implements(?:\*\*)?:.*
26420
26425
  */
26421
26426
  function implementsLinkTargets(body, fileDir) {
26422
26427
  const scannable = stripCode(body);
26423
- const match = IMPLEMENTS_LINE_RE.exec(scannable);
26428
+ const match = IMPLEMENTS_LINE_RE.exec(scannable) ?? SPEC_LINE_RE.exec(scannable);
26424
26429
  if (match === null) return /* @__PURE__ */ new Set();
26425
26430
  const { lines: continuation } = continuationLines(scannable, match.index + match[0].length, match[1] !== void 0);
26426
26431
  const block = [match[0], ...continuation].join("\n");
@@ -30589,6 +30594,10 @@ function closesFence(text, fenceChar, fenceLength) {
30589
30594
  * example fences under list items and none of the readers tracks list nesting.
30590
30595
  * - An unclosed fence runs to the end of the document, which is how a renderer shows one.
30591
30596
  *
30597
+ * A backtick run followed by another backtick on the same line is inline code, not an opener:
30598
+ * CommonMark forbids a backtick in a backtick fence's info string. A tilde fence's info string
30599
+ * may hold anything.
30600
+ *
30592
30601
  * A closer is the opener's own character repeated at least as many times, with nothing after it
30593
30602
  * but whitespace; a run of the other character, a shorter run, or a run carrying an info string is
30594
30603
  * code content and keeps the fence open.
@@ -30604,8 +30613,11 @@ function fencedLines(lines) {
30604
30613
  for (let index = 0; index < lines.length; index++) {
30605
30614
  const text = lines[index] ?? "";
30606
30615
  if (fenceChar === void 0) {
30607
- const run = FENCE_OPEN.exec(text)?.[1];
30608
- if (run === void 0) continue;
30616
+ const match = FENCE_OPEN.exec(text);
30617
+ const run = match?.[1];
30618
+ if (match === null || run === void 0) continue;
30619
+ const infoString = text.slice(match[0].length);
30620
+ if (run[0] === "`" && infoString.includes("`")) continue;
30609
30621
  fenceChar = run[0];
30610
30622
  fenceLength = run.length;
30611
30623
  fenced[index] = true;
@@ -31257,7 +31269,7 @@ setForgejoLogger(log$1);
31257
31269
  * `local <sha>[-dirty]` otherwise -- so an artifact built from the working tree
31258
31270
  * can't pass itself off as the published release whose version it carries.
31259
31271
  */
31260
- const displayVersion = "0.84.2";
31272
+ const displayVersion = "0.84.4";
31261
31273
  /**
31262
31274
  * The registered `bst` subcommand map, exported so both the JSON entry path below (resolving a
31263
31275
  * command name before citty parses anything) and the coverage test (enumerating every
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bensandee/tooling",
3
- "version": "0.84.2",
3
+ "version": "0.84.4",
4
4
  "description": "CLI tool to bootstrap and maintain standardized TypeScript project tooling",
5
5
  "license": "MIT",
6
6
  "repository": {