@mvanhorn/printing-press-library 0.1.12 → 0.1.14

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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.14
4
+
5
+ - Treat "installed but not on PATH" as a warning instead of aborting `install`. `go install` can succeed while the current agent or gateway process cannot discover `$GOPATH/bin`; the installer now prints the platform-specific PATH fix, continues installing the focused `pp-*` skill, and reports a successful install with a `pathWarning: "not_on_path"` field in JSON output. This avoids half-installed agent setups where the binary exists but the matching skill was skipped.
6
+ - Suppress stale-binary shadow warnings when the earlier PATH hit resolves to the same file as the freshly installed Go binary, such as a `~/.local/bin/<tool>` symlink pointing at `~/go/bin/<tool>`.
7
+ - Document that agent/gateway sessions may need a restart after PATH changes, and that a PATH-visible symlink can be a practical bridge in environments that already expose `~/.local/bin`.
8
+
9
+ ## 0.1.13
10
+
11
+ - Speed up `update` (and `update` with no name) by refreshing detected CLIs concurrently instead of one at a time. The cost of a bulk update is dominated by per-CLI network round-trips — the go-proxy `@latest` resolution (~1s each, even when nothing changed, because the build cache can't shortcut it) plus the skill fetch — which serialized into ~30s for a dozen CLIs. These are independent, so they now run with bounded concurrency, and the catalog detection sweep (a `which`/`where` probe per catalog entry) is parallelized the same way. Each install's output is buffered and replayed in catalog order (preserving stdout/stderr ordering within each CLI), so concurrent runs don't interleave into scrambled lines. A failed PATH probe degrades to "not installed" instead of aborting the run. No command, flag, or output-shape changes — same behavior, less waiting.
12
+
3
13
  ## 0.1.12
4
14
 
5
15
  - Add a `reinstall` command as an alias for `update`. `reinstall <name>` rebuilds one CLI's binary from the latest catalog code and re-adds its skill; `reinstall` with no name does the same for every Printing Press CLI already on `PATH`. The mechanics are identical to `update` (both run `go install …@latest` and re-add the skill) — this just exposes the verb users reach for when a binary or skill needs a clean refresh. The shared "no CLIs found on PATH" message is now verb-neutral so it reads correctly under either command.
package/README.md CHANGED
@@ -135,7 +135,13 @@ More bundles will be added over time. To suggest one, open an issue at the [prin
135
135
 
136
136
  - Node.js 20+
137
137
  - Go 1.26.3 or newer (for `go install`)
138
- - The Go install directory on your `PATH` so installed CLIs are runnable by name — `$(go env GOPATH)/bin` (usually `$HOME/go/bin`) on macOS/Linux, or `%USERPROFILE%\go\bin` on Windows. Go does not add this to `PATH` for you. If it's missing, `install` prints the exact, copy-pasteable line to add for your platform and shell (zsh/bash/fish, PowerShell, cmd, or Git Bash).
138
+ - The Go install directory on your `PATH` so installed CLIs are runnable by name — `$(go env GOPATH)/bin` (usually `$HOME/go/bin`) on macOS/Linux, or `%USERPROFILE%\go\bin` on Windows. Go does not add this to `PATH` for you. If it's missing, `install` still installs the focused skill, then prints the exact, copy-pasteable line to add for your platform and shell (zsh/bash/fish, PowerShell, cmd, or Git Bash).
139
+
140
+ Agent and gateway environments often run with a frozen or sanitized `PATH`. Updating `.zshrc`, `.bashrc`, or the Windows user environment may not affect an already-running agent process until you restart that session or gateway. If your harness already includes a user bin directory such as `~/.local/bin`, a symlink from the Go-installed binary into that directory is also a reasonable bridge:
141
+
142
+ ```bash
143
+ ln -sf "$(go env GOPATH)/bin/<tool>" "$HOME/.local/bin/<tool>"
144
+ ```
139
145
 
140
146
  ## Migration from @mvanhorn/printing-press
141
147
 
@@ -8,6 +8,7 @@ interface InstallDeps {
8
8
  goInstall: (modulePath: string, ref: string, env?: NodeJS.ProcessEnv) => Promise<RunResult>;
9
9
  goInstallDir: () => Promise<GoInstallDir>;
10
10
  commandOnPath: (binary: string) => Promise<string | null>;
11
+ realpath: (path: string) => Promise<string | null>;
11
12
  installSkill: (skillName: string, agents: string[]) => Promise<RunResult>;
12
13
  stdout: (message: string) => void;
13
14
  stderr: (message: string) => void;
@@ -1,4 +1,5 @@
1
1
  import { BUNDLES, isBundle } from "../bundles.js";
2
+ import { realpath } from "node:fs/promises";
2
3
  import { detectGo, goInstall, goInstallDir } from "../go.js";
3
4
  import { pathFixInstructions } from "../pathfix.js";
4
5
  import { commandOnPath } from "../process.js";
@@ -12,6 +13,14 @@ export function createInstallCommand(overrides = {}) {
12
13
  goInstall: (modulePath, ref, env) => goInstall(modulePath, { ref, env }),
13
14
  goInstallDir: () => goInstallDir(),
14
15
  commandOnPath: (binary) => commandOnPath(binary),
16
+ realpath: async (path) => {
17
+ try {
18
+ return await realpath(path);
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ },
15
24
  installSkill: (skillName, agents) => installSkill(skillName, { agents }),
16
25
  stdout: (message) => console.log(message),
17
26
  stderr: (message) => console.error(message),
@@ -84,17 +93,20 @@ async function installOne(name, registry, options, deps) {
84
93
  if (!pathBinaryPath) {
85
94
  // `go install` succeeded, but `which`/`where` cannot find the binary —
86
95
  // PATH does not include the directory go install wrote to. Print the exact,
87
- // copy-pasteable PATH fix for this platform and shell.
96
+ // copy-pasteable PATH fix for this platform and shell, but keep going so
97
+ // the matching focused skill is still installed.
88
98
  deps.stderr(notOnPathMessage(binary, installed, deps));
89
- return { ok: false, name: entry.name, error: "binary not on PATH" };
90
99
  }
91
100
  summary.binary = binary;
92
101
  summary.modulePath = modulePath;
93
102
  if (installedPath) {
94
103
  summary.installedPath = installedPath;
95
104
  }
96
- summary.binaryPath = pathBinaryPath;
97
- if (installedPath && !samePath(installedPath, pathBinaryPath, deps.platform)) {
105
+ summary.binaryPath = installedPath ?? pathBinaryPath ?? undefined;
106
+ if (!pathBinaryPath) {
107
+ summary.pathWarning = "not_on_path";
108
+ }
109
+ if (installedPath && pathBinaryPath && !(await sameInstalledBinary(installedPath, pathBinaryPath, deps))) {
98
110
  // `which`/`where` resolved to a different binary than `go install` wrote.
99
111
  // The older binary earlier in PATH will shadow the freshly built one.
100
112
  summary.shadowedBy = pathBinaryPath;
@@ -125,6 +137,9 @@ async function installOne(name, registry, options, deps) {
125
137
  if (summary.shadowedBy) {
126
138
  deps.stdout(` shadowed by: ${summary.shadowedBy} (earlier in PATH)`);
127
139
  }
140
+ if (summary.pathWarning === "not_on_path") {
141
+ deps.stdout(" warning: binary is not on PATH; run it by full path or add the Go install directory to PATH (see stderr for platform-specific instructions)");
142
+ }
128
143
  if (summary.skill) {
129
144
  deps.stdout(` skill: ${summary.skill}`);
130
145
  }
@@ -262,6 +277,13 @@ function samePath(a, b, platform) {
262
277
  };
263
278
  return norm(a) === norm(b);
264
279
  }
280
+ async function sameInstalledBinary(a, b, deps) {
281
+ if (samePath(a, b, deps.platform)) {
282
+ return true;
283
+ }
284
+ const [realA, realB] = await Promise.all([deps.realpath(a), deps.realpath(b)]);
285
+ return !!realA && !!realB && samePath(realA, realB, deps.platform);
286
+ }
265
287
  function shadowMessage(binary, installedPath, shadowedBy) {
266
288
  return (`WARNING: installed ${binary} at ${installedPath}, but ${shadowedBy} appears earlier in PATH and will shadow it. ` +
267
289
  `Move or remove the old binary, or reorder PATH so the Go install directory comes first.`);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
1
  import { type Registry } from "../registry.js";
2
+ /** Output sinks handed to a single buffered install run. */
3
+ interface InstallIO {
4
+ stdout: (message: string) => void;
5
+ stderr: (message: string) => void;
6
+ }
2
7
  interface UpdateDeps {
3
8
  fetchRegistry: (url: string) => Promise<Registry>;
4
9
  commandOnPath: (binary: string) => Promise<string | null>;
5
- install: (args: string[]) => Promise<number>;
10
+ /**
11
+ * Build an install command bound to the given output sinks. A factory (rather
12
+ * than a single shared install fn) lets the bulk path give each concurrent run
13
+ * its own buffer, so parallel installs don't interleave their lines.
14
+ */
15
+ createInstall: (io: InstallIO) => (args: string[]) => Promise<number>;
6
16
  stdout: (message: string) => void;
7
17
  stderr: (message: string) => void;
8
18
  }
@@ -1,11 +1,19 @@
1
- import { installCommand } from "./install.js";
1
+ import { createInstallCommand } from "./install.js";
2
+ import { mapWithConcurrency } from "../concurrency.js";
2
3
  import { commandOnPath } from "../process.js";
3
4
  import { cliBinaryName, DEFAULT_REGISTRY_URL, fetchRegistry } from "../registry.js";
5
+ // `which`/`where` probes are cheap but the detection sweep covers the whole
6
+ // catalog (hundreds of entries), so cap the fan-out to avoid a process storm.
7
+ const DETECT_CONCURRENCY = 16;
8
+ // Installs are network-bound (go-proxy `@latest` resolution + skill fetch), the
9
+ // dominant cost in a bulk update. Run several at once, but cap to share the
10
+ // proxy politely and bound concurrent global skill writes.
11
+ const INSTALL_CONCURRENCY = 6;
4
12
  export function createUpdateCommand(overrides = {}) {
5
13
  const deps = {
6
14
  fetchRegistry: (url) => fetchRegistry(url),
7
15
  commandOnPath: (binary) => commandOnPath(binary),
8
- install: installCommand,
16
+ createInstall: (io) => createInstallCommand({ stdout: io.stdout, stderr: io.stderr }),
9
17
  stdout: (message) => console.log(message),
10
18
  stderr: (message) => console.error(message),
11
19
  ...overrides,
@@ -17,26 +25,53 @@ export function createUpdateCommand(overrides = {}) {
17
25
  return 1;
18
26
  }
19
27
  if (parsed.name) {
20
- return deps.install([parsed.name, ...parsed.installArgs]);
28
+ // Single target: stream output straight through, no buffering needed.
29
+ const install = deps.createInstall({ stdout: deps.stdout, stderr: deps.stderr });
30
+ return install([parsed.name, ...parsed.installArgs]);
21
31
  }
22
32
  const registry = await deps.fetchRegistry(parsed.registryUrl);
23
- const installed = [];
24
- for (const entry of registry.entries) {
25
- if (await deps.commandOnPath(cliBinaryName(entry))) {
26
- installed.push(entry.name);
33
+ const detected = await mapWithConcurrency(registry.entries, DETECT_CONCURRENCY, async (entry) => {
34
+ try {
35
+ return (await deps.commandOnPath(cliBinaryName(entry))) ? entry.name : null;
27
36
  }
28
- }
37
+ catch {
38
+ // A failed PATH probe (rare `which`/`where` spawn error) shouldn't abort
39
+ // the whole update — treat the entry as not installed and move on.
40
+ return null;
41
+ }
42
+ });
43
+ const installed = detected.filter((name) => name !== null);
29
44
  if (installed.length === 0) {
30
45
  deps.stdout("No Printing Press CLIs found on PATH to refresh.");
31
46
  return 0;
32
47
  }
33
- let failures = 0;
34
- for (const name of installed) {
35
- const code = await deps.install([name, ...parsed.installArgs]);
36
- if (code !== 0) {
37
- failures++;
48
+ // Refresh concurrently, but record each run's output in emission order and
49
+ // replay it per CLI in catalog order — so parallel runs don't interleave into
50
+ // scrambled lines, while stdout/stderr ordering within a CLI is preserved.
51
+ const results = await mapWithConcurrency(installed, INSTALL_CONCURRENCY, async (name) => {
52
+ const lines = [];
53
+ const install = deps.createInstall({
54
+ stdout: (message) => lines.push({ stream: "out", message }),
55
+ stderr: (message) => lines.push({ stream: "err", message }),
56
+ });
57
+ let code;
58
+ try {
59
+ code = await install([name, ...parsed.installArgs]);
60
+ }
61
+ catch (error) {
62
+ // install resolves with an exit code rather than throwing; guard anyway
63
+ // so one unexpected throw can't reject the whole concurrent batch.
64
+ lines.push({ stream: "err", message: error instanceof Error ? error.message : String(error) });
65
+ code = 1;
66
+ }
67
+ return { code, lines };
68
+ });
69
+ for (const { lines } of results) {
70
+ for (const { stream, message } of lines) {
71
+ (stream === "out" ? deps.stdout : deps.stderr)(message);
38
72
  }
39
73
  }
74
+ const failures = results.filter((result) => result.code !== 0).length;
40
75
  return failures === 0 ? 0 : 1;
41
76
  };
42
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Run `fn` over `items` with at most `limit` calls in flight at once, returning
3
+ * results in input order. A worker pool pulls from a shared cursor, so a slow
4
+ * item never blocks the others from starting — wall-clock is bounded by the
5
+ * slowest `limit`-sized window, not the serial sum. `limit` is clamped to
6
+ * `[1, items.length]`.
7
+ *
8
+ * `fn` is expected to resolve (callers that must not abort the batch on a single
9
+ * failure should catch inside `fn` and return a sentinel); a rejection here
10
+ * propagates and rejects the whole call.
11
+ */
12
+ export declare function mapWithConcurrency<T, R>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Run `fn` over `items` with at most `limit` calls in flight at once, returning
3
+ * results in input order. A worker pool pulls from a shared cursor, so a slow
4
+ * item never blocks the others from starting — wall-clock is bounded by the
5
+ * slowest `limit`-sized window, not the serial sum. `limit` is clamped to
6
+ * `[1, items.length]`.
7
+ *
8
+ * `fn` is expected to resolve (callers that must not abort the batch on a single
9
+ * failure should catch inside `fn` and return a sentinel); a rejection here
10
+ * propagates and rejects the whole call.
11
+ */
12
+ export async function mapWithConcurrency(items, limit, fn) {
13
+ const results = new Array(items.length);
14
+ let cursor = 0;
15
+ const worker = async () => {
16
+ while (true) {
17
+ const index = cursor++;
18
+ if (index >= items.length) {
19
+ return;
20
+ }
21
+ results[index] = await fn(items[index], index);
22
+ }
23
+ };
24
+ const workerCount = Math.min(Math.max(1, limit), items.length);
25
+ await Promise.all(Array.from({ length: workerCount }, worker));
26
+ return results;
27
+ }
28
+ //# sourceMappingURL=concurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAmB,EACnB,KAAa,EACb,EAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mvanhorn/printing-press-library",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Installer and catalog CLI for Printing Press-generated CLIs.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -42,7 +42,9 @@
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -p tsconfig.json",
45
+ "check-lock-version": "node scripts/check-lock-version.mjs",
45
46
  "clean": "rm -rf dist",
47
+ "preversion": "npm run check-lock-version",
46
48
  "test": "npm run build && node --test \"dist/tests/**/*.test.js\"",
47
49
  "prepublishOnly": "npm test && npm run build"
48
50
  },