mthds 0.2.0 → 0.3.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.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/binaries.d.ts +14 -1
  3. package/dist/agent/binaries.js +21 -6
  4. package/dist/agent/binaries.js.map +1 -1
  5. package/dist/agent/commands/api-commands.d.ts +13 -0
  6. package/dist/agent/commands/api-commands.js +494 -0
  7. package/dist/agent/commands/api-commands.js.map +1 -0
  8. package/dist/agent/commands/doctor.js +25 -17
  9. package/dist/agent/commands/doctor.js.map +1 -1
  10. package/dist/agent/commands/install.js +2 -2
  11. package/dist/agent/commands/install.js.map +1 -1
  12. package/dist/agent/commands/pipelex-commands.d.ts +13 -0
  13. package/dist/agent/commands/pipelex-commands.js +63 -0
  14. package/dist/agent/commands/pipelex-commands.js.map +1 -0
  15. package/dist/agent/commands/pipelex-passthrough.d.ts +15 -0
  16. package/dist/agent/commands/pipelex-passthrough.js +43 -0
  17. package/dist/agent/commands/pipelex-passthrough.js.map +1 -0
  18. package/dist/agent/commands/update-check.d.ts +16 -0
  19. package/dist/agent/commands/update-check.js +169 -0
  20. package/dist/agent/commands/update-check.js.map +1 -0
  21. package/dist/agent/commands/upgrade.d.ts +17 -0
  22. package/dist/agent/commands/upgrade.js +155 -0
  23. package/dist/agent/commands/upgrade.js.map +1 -0
  24. package/dist/agent/passthrough.d.ts +1 -0
  25. package/dist/agent/passthrough.js +93 -32
  26. package/dist/agent/passthrough.js.map +1 -1
  27. package/dist/agent/snooze.d.ts +32 -0
  28. package/dist/agent/snooze.js +108 -0
  29. package/dist/agent/snooze.js.map +1 -0
  30. package/dist/agent/update-cache.d.ts +43 -0
  31. package/dist/agent/update-cache.js +125 -0
  32. package/dist/agent/update-cache.js.map +1 -0
  33. package/dist/agent-cli.d.ts +8 -2
  34. package/dist/agent-cli.js +132 -124
  35. package/dist/agent-cli.js.map +1 -1
  36. package/dist/cli/commands/install.js +3 -3
  37. package/dist/cli/commands/install.js.map +1 -1
  38. package/dist/config/credentials.d.ts +2 -0
  39. package/dist/config/credentials.js +64 -33
  40. package/dist/config/credentials.js.map +1 -1
  41. package/dist/installer/runtime/installer.d.ts +12 -6
  42. package/dist/installer/runtime/installer.js +49 -25
  43. package/dist/installer/runtime/installer.js.map +1 -1
  44. package/dist/installer/runtime/version-check.d.ts +31 -0
  45. package/dist/installer/runtime/version-check.js +78 -0
  46. package/dist/installer/runtime/version-check.js.map +1 -0
  47. package/dist/runners/api-runner.d.ts +2 -2
  48. package/dist/runners/api-runner.js +2 -2
  49. package/dist/runners/api-runner.js.map +1 -1
  50. package/dist/runners/pipelex-runner.d.ts +2 -2
  51. package/dist/runners/pipelex-runner.js +11 -37
  52. package/dist/runners/pipelex-runner.js.map +1 -1
  53. package/dist/runners/types.d.ts +10 -12
  54. package/package.json +1 -1
  55. package/dist/agent/commands/build.d.ts +0 -32
  56. package/dist/agent/commands/build.js +0 -291
  57. package/dist/agent/commands/build.js.map +0 -1
  58. package/dist/agent/commands/runner-commands.d.ts +0 -20
  59. package/dist/agent/commands/runner-commands.js +0 -800
  60. package/dist/agent/commands/runner-commands.js.map +0 -1
@@ -15,6 +15,8 @@ const ENV_NAMES = {
15
15
  apiKey: "PIPELEX_API_KEY",
16
16
  runner: "MTHDS_RUNNER",
17
17
  telemetry: "DISABLE_TELEMETRY",
18
+ autoUpgrade: "MTHDS_AUTO_UPGRADE",
19
+ updateCheck: "MTHDS_UPDATE_CHECK",
18
20
  };
19
21
  /** Map from credential key to file key (used in ~/.mthds/credentials) */
20
22
  const FILE_KEYS = {
@@ -22,6 +24,8 @@ const FILE_KEYS = {
22
24
  apiKey: "PIPELEX_API_KEY",
23
25
  runner: "MTHDS_RUNNER",
24
26
  telemetry: "DISABLE_TELEMETRY",
27
+ autoUpgrade: "MTHDS_AUTO_UPGRADE",
28
+ updateCheck: "MTHDS_UPDATE_CHECK",
25
29
  };
26
30
  /** Defaults */
27
31
  const DEFAULTS = {
@@ -29,6 +33,8 @@ const DEFAULTS = {
29
33
  apiUrl: "https://api.pipelex.com",
30
34
  apiKey: "",
31
35
  telemetry: true,
36
+ autoUpgrade: false,
37
+ updateCheck: true,
32
38
  };
33
39
  /** Map from CLI flag names (kebab-case) to credential keys */
34
40
  const KEY_ALIASES = {
@@ -36,7 +42,22 @@ const KEY_ALIASES = {
36
42
  "api-url": "apiUrl",
37
43
  "api-key": "apiKey",
38
44
  telemetry: "telemetry",
45
+ "auto-upgrade": "autoUpgrade",
46
+ "update-check": "updateCheck",
39
47
  };
48
+ // ── Boolean key sets ──────────────────────────────────────────────
49
+ /** Keys that store boolean values (coerced from "0"/"1" in file/env) */
50
+ const BOOLEAN_KEYS = new Set([
51
+ "telemetry",
52
+ "autoUpgrade",
53
+ "updateCheck",
54
+ ]);
55
+ /** Boolean keys with inverted file semantics (DISABLE_TELEMETRY=1 → false) */
56
+ const INVERTED_BOOLEAN_KEYS = new Set([
57
+ "telemetry",
58
+ ]);
59
+ /** Strings treated as truthy for boolean keys — used in both load and set paths */
60
+ const TRUTHY_STRINGS = new Set(["true", "1", "yes", "on"]);
40
61
  export const VALID_KEYS = Object.keys(KEY_ALIASES);
41
62
  export function resolveKey(cliKey) {
42
63
  return KEY_ALIASES[cliKey];
@@ -89,7 +110,8 @@ function migrateIfNeeded() {
89
110
  if (existsSync(CREDENTIALS_PATH))
90
111
  return;
91
112
  const migrated = {};
92
- let didMigrate = false;
113
+ let configJsonMigrated = false;
114
+ let envLocalMigrated = false;
93
115
  // Migrate from config.json
94
116
  if (existsSync(LEGACY_CONFIG_PATH)) {
95
117
  try {
@@ -107,10 +129,10 @@ function migrateIfNeeded() {
107
129
  if (typeof config.telemetry === "boolean") {
108
130
  migrated["DISABLE_TELEMETRY"] = config.telemetry ? "0" : "1";
109
131
  }
110
- didMigrate = true;
132
+ configJsonMigrated = true;
111
133
  }
112
134
  catch {
113
- // ignore parse errors
135
+ // Parse failed — preserve the legacy file so the user can fix it
114
136
  }
115
137
  }
116
138
  // Migrate from .env.local (telemetry flag)
@@ -120,45 +142,46 @@ function migrateIfNeeded() {
120
142
  if (envEntries["DISABLE_TELEMETRY"]) {
121
143
  migrated["DISABLE_TELEMETRY"] = envEntries["DISABLE_TELEMETRY"];
122
144
  }
123
- didMigrate = true;
145
+ envLocalMigrated = Boolean(envEntries["DISABLE_TELEMETRY"]);
124
146
  }
125
147
  catch {
126
- // ignore parse errors
148
+ // Read failed — preserve the legacy file
127
149
  }
128
150
  }
129
- if (didMigrate) {
151
+ if (configJsonMigrated || envLocalMigrated) {
130
152
  mkdirSync(CONFIG_DIR, { recursive: true });
131
153
  writeFileSync(CREDENTIALS_PATH, serializeDotenv(migrated), "utf-8");
132
- // Remove legacy files
133
- try {
134
- if (existsSync(LEGACY_CONFIG_PATH))
154
+ // Only delete legacy files that were successfully migrated
155
+ if (configJsonMigrated) {
156
+ try {
135
157
  unlinkSync(LEGACY_CONFIG_PATH);
158
+ }
159
+ catch { /* ignore */ }
136
160
  }
137
- catch {
138
- // ignore
139
- }
140
- try {
141
- if (existsSync(LEGACY_ENV_LOCAL_PATH))
161
+ if (envLocalMigrated) {
162
+ try {
142
163
  unlinkSync(LEGACY_ENV_LOCAL_PATH);
143
- }
144
- catch {
145
- // ignore
164
+ }
165
+ catch { /* ignore */ }
146
166
  }
147
167
  }
148
168
  }
149
169
  // ── Public API ─────────────────────────────────────────────────────
150
170
  function coerceValue(key, raw) {
151
- if (key === "telemetry") {
152
- // DISABLE_TELEMETRY=1 means telemetry is OFF
153
- return raw !== "1";
154
- }
155
- return raw;
171
+ if (!BOOLEAN_KEYS.has(key))
172
+ return raw;
173
+ const truthy = TRUTHY_STRINGS.has(raw.toLowerCase());
174
+ return INVERTED_BOOLEAN_KEYS.has(key) ? !truthy : truthy;
156
175
  }
157
176
  function toFileValue(key, value) {
158
- if (key === "telemetry") {
159
- return value ? "0" : "1";
160
- }
161
- return String(value);
177
+ if (!BOOLEAN_KEYS.has(key))
178
+ return String(value);
179
+ const boolVal = typeof value === "boolean"
180
+ ? value
181
+ : TRUTHY_STRINGS.has(String(value).toLowerCase());
182
+ return INVERTED_BOOLEAN_KEYS.has(key)
183
+ ? (boolVal ? "0" : "1")
184
+ : (boolVal ? "1" : "0");
162
185
  }
163
186
  export function loadCredentials() {
164
187
  const file = readCredentialsFile();
@@ -190,24 +213,32 @@ export function getCredentialValue(key) {
190
213
  return { value: file[fileKey], source: "file" };
191
214
  }
192
215
  const defaultVal = DEFAULTS[key];
193
- if (key === "telemetry") {
194
- return { value: defaultVal ? "0" : "1", source: "default" };
216
+ if (BOOLEAN_KEYS.has(key)) {
217
+ const boolDefault = defaultVal;
218
+ if (INVERTED_BOOLEAN_KEYS.has(key)) {
219
+ return { value: boolDefault ? "0" : "1", source: "default" };
220
+ }
221
+ return { value: boolDefault ? "1" : "0", source: "default" };
195
222
  }
196
223
  return { value: String(defaultVal), source: "default" };
197
224
  }
198
225
  export function setCredentialValue(key, value) {
199
226
  const file = readCredentialsFile();
200
227
  const fileKey = FILE_KEYS[key];
201
- file[fileKey] = toFileValue(key, key === "telemetry" ? coerceTelemetryInput(value) : value);
228
+ if (BOOLEAN_KEYS.has(key)) {
229
+ file[fileKey] = toFileValue(key, coerceBooleanInput(value));
230
+ }
231
+ else {
232
+ file[fileKey] = value;
233
+ }
202
234
  writeCredentialsFile(file);
203
235
  }
204
236
  /**
205
- * Normalize user-facing telemetry input to a boolean.
237
+ * Normalize user-facing boolean input.
206
238
  * Accepts "true"/"false", "1"/"0", "yes"/"no", "on"/"off".
207
239
  */
208
- function coerceTelemetryInput(value) {
209
- const lower = value.toLowerCase();
210
- return ["true", "1", "yes", "on"].includes(lower);
240
+ function coerceBooleanInput(value) {
241
+ return TRUTHY_STRINGS.has(value.toLowerCase());
211
242
  }
212
243
  export function listCredentials() {
213
244
  const result = [];
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
+ /**
2
+ * Ensure pipelex is installed, using uv tool install with spinner feedback.
3
+ * Used by interactive CLI commands (mthds install, mthds setup, etc.).
4
+ */
1
5
  export declare function ensureRuntime(): Promise<void>;
2
6
  /**
3
- * Install pipelex synchronously without interactive output (no spinner).
4
- * Throws on failure.
7
+ * Locate the `uv` binary. Throws with install instructions if not found.
5
8
  */
6
- export declare function installPipelexSync(): void;
9
+ export declare function requireUv(): string;
7
10
  /**
8
- * Install pipelex-tools (plxt) synchronously without interactive output.
9
- * Throws on failure.
11
+ * Install or upgrade a Python tool via `uv tool install`.
12
+ * Uses execFileSync (no shell) for cross-platform safety.
13
+ *
14
+ * @param pkg - PyPI package name (e.g. "pipelex")
15
+ * @param versionConstraint - Optional semver range appended to the package spec (e.g. ">=0.22.0").
10
16
  */
11
- export declare function installPlxtSync(): void;
17
+ export declare function uvToolInstallSync(pkg: string, versionConstraint?: string): void;
@@ -1,31 +1,34 @@
1
- import { execSync } from "node:child_process";
1
+ import { execFileSync } from "node:child_process";
2
2
  import ora from "ora";
3
3
  import { isPipelexInstalled } from "./check.js";
4
- // ── Shared helpers ───────────────────────────────────────────────────
5
- function runPipelexInstallSync() {
6
- if (process.platform === "win32") {
7
- execSync('powershell -Command "irm https://pipelex.com/install.ps1 | iex"', { stdio: "pipe" });
8
- }
9
- else {
10
- execSync("curl -fsSL https://pipelex.com/install.sh | sh", { stdio: "pipe", shell: "/bin/sh" });
11
- }
12
- }
4
+ import { BINARY_RECOVERY } from "../../agent/binaries.js";
5
+ // All binary installation goes through uv, which provides version-constraint-aware
6
+ // installs and consistent cross-platform behavior.
13
7
  // ── Async install (interactive, with spinner) ────────────────────────
8
+ /**
9
+ * Ensure pipelex is installed, using uv tool install with spinner feedback.
10
+ * Used by interactive CLI commands (mthds install, mthds setup, etc.).
11
+ */
14
12
  export async function ensureRuntime() {
15
13
  if (!isPipelexInstalled()) {
16
- await installPipelex();
14
+ await installPipelexViaUv();
17
15
  }
18
16
  }
19
- async function installPipelex() {
20
- const spinner = ora("Installing pipelex...").start();
17
+ async function installPipelexViaUv() {
18
+ const spinner = ora("Installing pipelex via uv...").start();
19
+ const recovery = BINARY_RECOVERY["pipelex"];
20
+ if (!recovery) {
21
+ spinner.fail("pipelex recovery info is missing — this is a bug.");
22
+ throw new Error("BINARY_RECOVERY is missing the 'pipelex' entry.");
23
+ }
21
24
  try {
22
- runPipelexInstallSync();
25
+ uvToolInstallSync(recovery.uv_package, recovery.version_constraint);
23
26
  }
24
27
  catch (error) {
25
28
  spinner.fail("Failed to install pipelex");
26
29
  const msg = error instanceof Error ? error.message : String(error);
27
30
  throw new Error(`Could not install pipelex: ${msg}\n` +
28
- "Install manually: https://pipelex.com");
31
+ `Install manually: uv tool install --upgrade "${recovery.uv_package}${recovery.version_constraint}"`);
29
32
  }
30
33
  if (!isPipelexInstalled()) {
31
34
  spinner.fail("pipelex was installed but is not reachable");
@@ -34,20 +37,41 @@ async function installPipelex() {
34
37
  }
35
38
  spinner.succeed("pipelex installed");
36
39
  }
37
- // ── Sync silent install functions (for mthds-agent --auto-install) ──
40
+ // ── uv helpers ──────────────────────────────────────────────────────
38
41
  /**
39
- * Install pipelex synchronously without interactive output (no spinner).
40
- * Throws on failure.
42
+ * Locate the `uv` binary. Throws with install instructions if not found.
41
43
  */
42
- export function installPipelexSync() {
43
- runPipelexInstallSync();
44
+ export function requireUv() {
45
+ try {
46
+ execFileSync("uv", ["--version"], { stdio: "ignore", timeout: 5000 });
47
+ return "uv";
48
+ }
49
+ catch (err) {
50
+ const errno = err.code;
51
+ if (errno === "ENOENT") {
52
+ throw new Error("uv is required but not found in PATH. Install it: https://docs.astral.sh/uv/getting-started/installation/");
53
+ }
54
+ const msg = err instanceof Error ? err.message : String(err);
55
+ throw new Error(`uv was found but failed to run: ${msg}`);
56
+ }
44
57
  }
45
58
  /**
46
- * Install pipelex-tools (plxt) synchronously without interactive output.
47
- * Throws on failure.
59
+ * Install or upgrade a Python tool via `uv tool install`.
60
+ * Uses execFileSync (no shell) for cross-platform safety.
61
+ *
62
+ * @param pkg - PyPI package name (e.g. "pipelex")
63
+ * @param versionConstraint - Optional semver range appended to the package spec (e.g. ">=0.22.0").
48
64
  */
49
- export function installPlxtSync() {
50
- const pythonCmd = process.platform === "win32" ? "python" : "python3";
51
- execSync(`${pythonCmd} -m pip install --quiet pipelex-tools`, { stdio: "pipe" });
65
+ export function uvToolInstallSync(pkg, versionConstraint) {
66
+ const uv = requireUv();
67
+ const spec = versionConstraint ? `${pkg}${versionConstraint}` : pkg;
68
+ try {
69
+ execFileSync(uv, ["tool", "install", "--upgrade", spec], { stdio: "pipe", timeout: 60000 });
70
+ }
71
+ catch (err) {
72
+ const stderr = err?.stderr?.toString().trim();
73
+ const detail = stderr || (err instanceof Error ? err.message : String(err));
74
+ throw new Error(`uv tool install failed for "${spec}": ${detail}`);
75
+ }
52
76
  }
53
77
  //# sourceMappingURL=installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../../src/installer/runtime/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,wEAAwE;AAExE,SAAS,qBAAqB;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,QAAQ,CACN,iEAAiE,EACjE,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,gDAAgD,EAChD,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,wEAAwE;AAExE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,GAAG,GACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,IAAI;YACnC,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,mDAAmD;YACjD,+EAA+E,CAClF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACvC,CAAC;AAED,uEAAuE;AAEvE;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,qBAAqB,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,QAAQ,CAAC,GAAG,SAAS,uCAAuC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../../src/installer/runtime/installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Version checking for external CLI binaries.
3
+ *
4
+ * Runs `<binary> --version`, extracts the semver, and compares against the
5
+ * declared constraint from BinaryRecoveryInfo.
6
+ *
7
+ * NOTE: The skill preamble (skills/shared/preamble.md) implements a parallel
8
+ * bash version comparison for mthds-agent itself (chicken-and-egg: must check
9
+ * mthds-agent before calling it). That bash comparison is intentionally simpler
10
+ * (major.minor.patch arithmetic only, no prerelease/build metadata). Both
11
+ * implementations must stay in sync for the version gate to behave consistently.
12
+ */
13
+ import type { BinaryRecoveryInfo } from "../../agent/binaries.js";
14
+ export type VersionStatus = "ok" | "missing" | "outdated" | "unparseable";
15
+ export interface VersionCheckResult {
16
+ status: VersionStatus;
17
+ /** The installed version string, or null if missing/unparseable. */
18
+ installed_version: string | null;
19
+ /** The constraint from BinaryRecoveryInfo. */
20
+ version_constraint: string;
21
+ }
22
+ /**
23
+ * Check whether a binary is installed and satisfies its version constraint.
24
+ *
25
+ * Returns one of four statuses:
26
+ * - `ok` — installed and satisfies the constraint
27
+ * - `missing` — binary not found in PATH
28
+ * - `outdated` — installed but below the required version
29
+ * - `unparseable` — `--version` output could not be parsed (warns, doesn't block)
30
+ */
31
+ export declare function checkBinaryVersion(recovery: BinaryRecoveryInfo): VersionCheckResult;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Version checking for external CLI binaries.
3
+ *
4
+ * Runs `<binary> --version`, extracts the semver, and compares against the
5
+ * declared constraint from BinaryRecoveryInfo.
6
+ *
7
+ * NOTE: The skill preamble (skills/shared/preamble.md) implements a parallel
8
+ * bash version comparison for mthds-agent itself (chicken-and-egg: must check
9
+ * mthds-agent before calling it). That bash comparison is intentionally simpler
10
+ * (major.minor.patch arithmetic only, no prerelease/build metadata). Both
11
+ * implementations must stay in sync for the version gate to behave consistently.
12
+ */
13
+ import { execFileSync } from "node:child_process";
14
+ import semver from "semver";
15
+ /**
16
+ * Check whether a binary is installed and satisfies its version constraint.
17
+ *
18
+ * Returns one of four statuses:
19
+ * - `ok` — installed and satisfies the constraint
20
+ * - `missing` — binary not found in PATH
21
+ * - `outdated` — installed but below the required version
22
+ * - `unparseable` — `--version` output could not be parsed (warns, doesn't block)
23
+ */
24
+ export function checkBinaryVersion(recovery) {
25
+ const { version_constraint } = recovery;
26
+ // 1. Try running `<binary> --version`
27
+ let rawOutput;
28
+ try {
29
+ rawOutput = execFileSync(recovery.binary, ["--version"], {
30
+ stdio: "pipe",
31
+ timeout: 5000,
32
+ })
33
+ .toString()
34
+ .trim();
35
+ }
36
+ catch (err) {
37
+ // ENOENT means the binary is genuinely not in PATH.
38
+ // Any other error (EACCES, non-zero exit, crash) means the binary exists
39
+ // but is broken — report as unparseable so callers don't blindly reinstall.
40
+ const errno = err.code;
41
+ if (errno === "ENOENT") {
42
+ return { status: "missing", installed_version: null, version_constraint };
43
+ }
44
+ return { status: "unparseable", installed_version: null, version_constraint };
45
+ }
46
+ // 2. Extract version via the recovery's regex
47
+ const match = rawOutput.match(recovery.version_extract);
48
+ if (!match?.[1]) {
49
+ return {
50
+ status: "unparseable",
51
+ installed_version: null,
52
+ version_constraint,
53
+ };
54
+ }
55
+ // 3. Coerce to semver (lenient — handles "v" prefix, pre-release tags, etc.)
56
+ const parsed = semver.coerce(match[1]);
57
+ if (!parsed) {
58
+ return {
59
+ status: "unparseable",
60
+ installed_version: match[1],
61
+ version_constraint,
62
+ };
63
+ }
64
+ // 4. Check against constraint
65
+ if (semver.satisfies(parsed, version_constraint)) {
66
+ return {
67
+ status: "ok",
68
+ installed_version: parsed.version,
69
+ version_constraint,
70
+ };
71
+ }
72
+ return {
73
+ status: "outdated",
74
+ installed_version: parsed.version,
75
+ version_constraint,
76
+ };
77
+ }
78
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/installer/runtime/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAa5B;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA4B;IAE5B,MAAM,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAC;IAExC,sCAAsC;IACtC,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;YACvD,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oDAAoD;QACpD,yEAAyE;QACzE,4EAA4E;QAC5E,MAAM,KAAK,GAAI,GAA6B,CAAC,IAAI,CAAC;QAClD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAChF,CAAC;IAED,8CAA8C;IAC9C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,iBAAiB,EAAE,IAAI;YACvB,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3B,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,MAAM,CAAC,OAAO;YACjC,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,iBAAiB,EAAE,MAAM,CAAC,OAAO;QACjC,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse, ConceptRequest, ConceptResponse, PipeSpecRequest, PipeSpecResponse, AssembleRequest, AssembleResponse, ModelsRequest, ModelsResponse } from "./types.js";
1
+ import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse, ConceptRequest, ConceptResponse, PipeSpecRequest, PipeSpecResponse, CheckModelRequest, CheckModelResponse, ModelsRequest, ModelsResponse } from "./types.js";
2
2
  import type { ExecutePipelineOptions, PipelineExecuteResponse, PipelineStartResponse } from "../client/pipeline.js";
3
3
  export declare class ApiRunner implements Runner {
4
4
  readonly type: RunnerType;
@@ -17,7 +17,7 @@ export declare class ApiRunner implements Runner {
17
17
  validate(request: ValidateRequest): Promise<ValidateResponse>;
18
18
  concept(request: ConceptRequest): Promise<ConceptResponse>;
19
19
  pipeSpec(request: PipeSpecRequest): Promise<PipeSpecResponse>;
20
- assemble(request: AssembleRequest): Promise<AssembleResponse>;
20
+ checkModel(request: CheckModelRequest): Promise<CheckModelResponse>;
21
21
  models(request?: ModelsRequest): Promise<ModelsResponse>;
22
22
  executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecuteResponse>;
23
23
  startPipeline(options: ExecutePipelineOptions): Promise<PipelineStartResponse>;
@@ -66,8 +66,8 @@ export class ApiRunner {
66
66
  async pipeSpec(request) {
67
67
  return this.post("/api/v1/build/pipe-spec", request);
68
68
  }
69
- async assemble(request) {
70
- return this.post("/api/v1/assemble", request);
69
+ async checkModel(request) {
70
+ return this.post("/api/v1/check-model", request);
71
71
  }
72
72
  async models(request) {
73
73
  const params = new URLSearchParams();
@@ -1 +1 @@
1
- {"version":3,"file":"api-runner.js","sourceRoot":"","sources":["../../src/runners/api-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA2BrC,MAAM,OAAO,SAAS;IACX,IAAI,GAAe,OAAO,CAAC,GAAG,CAAC;IAEvB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEhC,YAAY,OAAgB,EAAE,MAAe;QAC3C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,mEAAmE;IAE3D,KAAK,CAAC,OAAO,CACnB,MAAsB,EACtB,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,OAAO,MAAM,IAAI,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IAEO,GAAG,CAAI,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEO,IAAI,CAAI,IAAY,EAAE,IAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,mEAAmE;IAEnE,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAA2B;QAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAuB;QAClC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qEAAqE;IAErE,KAAK,CAAC,eAAe,CACnB,OAA+B;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAA+B;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"api-runner.js","sourceRoot":"","sources":["../../src/runners/api-runner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse, ConceptRequest, ConceptResponse, PipeSpecRequest, PipeSpecResponse, AssembleRequest, AssembleResponse, ModelsRequest, ModelsResponse } from "./types.js";
1
+ import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse, ConceptRequest, ConceptResponse, PipeSpecRequest, PipeSpecResponse, CheckModelRequest, CheckModelResponse, ModelsRequest, ModelsResponse } from "./types.js";
2
2
  import type { ExecutePipelineOptions, PipelineExecuteResponse, PipelineStartResponse } from "../client/pipeline.js";
3
3
  export declare class PipelexRunner implements Runner {
4
4
  readonly type: RunnerType;
@@ -21,7 +21,7 @@ export declare class PipelexRunner implements Runner {
21
21
  buildRunner(request: BuildRunnerRequest): Promise<BuildRunnerResponse>;
22
22
  concept(request: ConceptRequest): Promise<ConceptResponse>;
23
23
  pipeSpec(request: PipeSpecRequest): Promise<PipeSpecResponse>;
24
- assemble(request: AssembleRequest): Promise<AssembleResponse>;
24
+ checkModel(request: CheckModelRequest): Promise<CheckModelResponse>;
25
25
  models(request?: ModelsRequest): Promise<ModelsResponse>;
26
26
  execute(request: ExecuteRequest): Promise<PipelineResponse>;
27
27
  validate(request: ValidateRequest): Promise<ValidateResponse>;
@@ -172,45 +172,19 @@ export class PipelexRunner {
172
172
  ], { encoding: "utf-8" });
173
173
  return JSON.parse(stdout);
174
174
  }
175
- // pipelex-agent assemble --domain <d> --main-pipe <p> [--concepts <c>...] [--pipes <p>...]
176
- async assemble(request) {
177
- const tmp = makeTmpDir();
178
- try {
179
- const args = [
180
- "assemble",
181
- "--domain",
182
- request.domain,
183
- "--main-pipe",
184
- request.main_pipe,
185
- ];
186
- if (request.description) {
187
- args.push("--description", request.description);
188
- }
189
- if (request.system_prompt) {
190
- args.push("--system-prompt", request.system_prompt);
191
- }
192
- if (request.concepts) {
193
- for (let i = 0; i < request.concepts.length; i++) {
194
- const filePath = join(tmp, `concept_${i}.toml`);
195
- writeFileSync(filePath, request.concepts[i], "utf-8");
196
- args.push("--concepts", filePath);
197
- }
198
- }
199
- if (request.pipes) {
200
- for (let i = 0; i < request.pipes.length; i++) {
201
- const filePath = join(tmp, `pipe_${i}.toml`);
202
- writeFileSync(filePath, request.pipes[i], "utf-8");
203
- args.push("--pipes", filePath);
204
- }
205
- }
206
- const { stdout } = await execFileAsync("pipelex-agent", args, {
207
- encoding: "utf-8",
208
- });
209
- return JSON.parse(stdout);
175
+ // pipelex-agent check-model <reference> [--type <type>] [--format <format>]
176
+ async checkModel(request) {
177
+ const args = ["check-model", request.reference];
178
+ if (request.type) {
179
+ args.push("--type", request.type);
210
180
  }
211
- finally {
212
- rmSync(tmp, { recursive: true, force: true });
181
+ if (request.format) {
182
+ args.push("--format", request.format);
213
183
  }
184
+ const { stdout } = await execFileAsync("pipelex-agent", args, {
185
+ encoding: "utf-8",
186
+ });
187
+ return JSON.parse(stdout);
214
188
  }
215
189
  // pipelex-agent models [--type <type>...]
216
190
  async models(request) {