mthds 0.2.1 → 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 (37) 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/doctor.js +25 -17
  6. package/dist/agent/commands/doctor.js.map +1 -1
  7. package/dist/agent/commands/install.js +2 -2
  8. package/dist/agent/commands/install.js.map +1 -1
  9. package/dist/agent/commands/update-check.d.ts +16 -0
  10. package/dist/agent/commands/update-check.js +169 -0
  11. package/dist/agent/commands/update-check.js.map +1 -0
  12. package/dist/agent/commands/upgrade.d.ts +17 -0
  13. package/dist/agent/commands/upgrade.js +155 -0
  14. package/dist/agent/commands/upgrade.js.map +1 -0
  15. package/dist/agent/passthrough.d.ts +1 -0
  16. package/dist/agent/passthrough.js +93 -32
  17. package/dist/agent/passthrough.js.map +1 -1
  18. package/dist/agent/snooze.d.ts +32 -0
  19. package/dist/agent/snooze.js +108 -0
  20. package/dist/agent/snooze.js.map +1 -0
  21. package/dist/agent/update-cache.d.ts +43 -0
  22. package/dist/agent/update-cache.js +125 -0
  23. package/dist/agent/update-cache.js.map +1 -0
  24. package/dist/agent-cli.js +47 -11
  25. package/dist/agent-cli.js.map +1 -1
  26. package/dist/cli/commands/install.js +3 -3
  27. package/dist/cli/commands/install.js.map +1 -1
  28. package/dist/config/credentials.d.ts +2 -0
  29. package/dist/config/credentials.js +64 -33
  30. package/dist/config/credentials.js.map +1 -1
  31. package/dist/installer/runtime/installer.d.ts +12 -6
  32. package/dist/installer/runtime/installer.js +49 -25
  33. package/dist/installer/runtime/installer.js.map +1 -1
  34. package/dist/installer/runtime/version-check.d.ts +31 -0
  35. package/dist/installer/runtime/version-check.js +78 -0
  36. package/dist/installer/runtime/version-check.js.map +1 -0
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  CLI and SDK for **methods** — reusable workflows for AI coding agents.
4
4
 
5
- The MTHDS open standard is defined at [mthds.ai](https://mthds.ai). Browse and discover public methods on the hub at [mthds.sh](https://mthds.sh).
5
+ The MTHDS open standard is defined at [mthds.ai](https://mthds.ai/latest/). Browse and discover public methods on the hub at [mthds.sh](https://mthds.sh).
6
6
 
7
7
  ## What is a method?
8
8
 
@@ -1,11 +1,24 @@
1
1
  /**
2
2
  * Shared binary metadata for passthrough, auto-install, and doctor commands.
3
+ *
4
+ * version_constraint is a semver range (e.g. ">=0.22.0") checked against the
5
+ * output of `<binary> --version`. Use buildInstallCommand() to get the
6
+ * canonical install command — single source of truth.
3
7
  */
4
8
  export interface BinaryRecoveryInfo {
5
9
  binary: string;
6
10
  package: string;
7
- install_command: string;
11
+ /** PyPI package name for `uv tool install` (may differ from `package`). */
12
+ uv_package: string;
13
+ /** Semver range constraint, e.g. ">=0.22.0". */
14
+ version_constraint: string;
15
+ /** RegExp with one capture group that extracts the semver from `--version` output. */
16
+ version_extract: RegExp;
8
17
  install_url: string;
9
18
  auto_installable: boolean;
10
19
  }
20
+ /**
21
+ * Build the canonical install/upgrade command string for a binary.
22
+ */
23
+ export declare function buildInstallCommand(recovery: BinaryRecoveryInfo): string;
11
24
  export declare const BINARY_RECOVERY: Record<string, BinaryRecoveryInfo>;
@@ -1,28 +1,43 @@
1
1
  /**
2
2
  * Shared binary metadata for passthrough, auto-install, and doctor commands.
3
+ *
4
+ * version_constraint is a semver range (e.g. ">=0.22.0") checked against the
5
+ * output of `<binary> --version`. Use buildInstallCommand() to get the
6
+ * canonical install command — single source of truth.
3
7
  */
4
- const PIPELEX_INSTALL_COMMAND = process.platform === "win32"
5
- ? 'powershell -Command "irm https://pipelex.com/install.ps1 | iex"'
6
- : "curl -fsSL https://pipelex.com/install.sh | sh";
8
+ /**
9
+ * Build the canonical install/upgrade command string for a binary.
10
+ */
11
+ export function buildInstallCommand(recovery) {
12
+ return `uv tool install --upgrade "${recovery.uv_package}${recovery.version_constraint}"`;
13
+ }
14
+ /** Shared version-extract regex: `<name> <semver>` */
15
+ const VERSION_RE = /^[\w-]+\s+(\d+\.\d+\.\d+)/;
7
16
  export const BINARY_RECOVERY = {
8
17
  pipelex: {
9
18
  binary: "pipelex",
10
19
  package: "pipelex",
11
- install_command: PIPELEX_INSTALL_COMMAND,
20
+ uv_package: "pipelex",
21
+ version_constraint: ">=0.22.0",
22
+ version_extract: VERSION_RE,
12
23
  install_url: "https://pipelex.com",
13
24
  auto_installable: true,
14
25
  },
15
26
  "pipelex-agent": {
16
27
  binary: "pipelex-agent",
17
28
  package: "pipelex",
18
- install_command: PIPELEX_INSTALL_COMMAND,
29
+ uv_package: "pipelex",
30
+ version_constraint: ">=0.22.0",
31
+ version_extract: VERSION_RE,
19
32
  install_url: "https://pipelex.com",
20
33
  auto_installable: true,
21
34
  },
22
35
  plxt: {
23
36
  binary: "plxt",
24
37
  package: "pipelex-tools",
25
- install_command: `${process.platform === "win32" ? "python" : "python3"} -m pip install pipelex-tools`,
38
+ uv_package: "pipelex-tools",
39
+ version_constraint: ">=0.3.2",
40
+ version_extract: VERSION_RE,
26
41
  install_url: "https://pypi.org/project/pipelex-tools/",
27
42
  auto_installable: true,
28
43
  },
@@ -1 +1 @@
1
- {"version":3,"file":"binaries.js","sourceRoot":"","sources":["../../src/agent/binaries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,uBAAuB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;IAC1D,CAAC,CAAC,iEAAiE;IACnE,CAAC,CAAC,gDAAgD,CAAC;AAErD,MAAM,CAAC,MAAM,eAAe,GAAuC;IACjE,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,uBAAuB;QACxC,WAAW,EAAE,qBAAqB;QAClC,gBAAgB,EAAE,IAAI;KACvB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,uBAAuB;QACxC,WAAW,EAAE,qBAAqB;QAClC,gBAAgB,EAAE,IAAI;KACvB;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,+BAA+B;QACtG,WAAW,EAAE,yCAAyC;QACtD,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC"}
1
+ {"version":3,"file":"binaries.js","sourceRoot":"","sources":["../../src/agent/binaries.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,OAAO,8BAA8B,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,kBAAkB,GAAG,CAAC;AAC5F,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAuC;IACjE,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,SAAS;QACrB,kBAAkB,EAAE,UAAU;QAC9B,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,qBAAqB;QAClC,gBAAgB,EAAE,IAAI;KACvB;IACD,eAAe,EAAE;QACf,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,SAAS;QACrB,kBAAkB,EAAE,UAAU;QAC9B,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,qBAAqB;QAClC,gBAAgB,EAAE,IAAI;KACvB;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,eAAe;QAC3B,kBAAkB,EAAE,SAAS;QAC7B,eAAe,EAAE,UAAU;QAC3B,WAAW,EAAE,yCAAyC;QACtD,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC"}
@@ -3,19 +3,10 @@
3
3
  */
4
4
  import { execFileSync } from "node:child_process";
5
5
  import { agentSuccess } from "../output.js";
6
- import { BINARY_RECOVERY } from "../binaries.js";
7
- import { isBinaryInstalled } from "../../installer/runtime/check.js";
6
+ import { BINARY_RECOVERY, buildInstallCommand } from "../binaries.js";
7
+ import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
8
8
  import { listConfig } from "../../config/config.js";
9
9
  // ── Helpers ─────────────────────────────────────────────────────────
10
- function getBinaryVersion(bin) {
11
- try {
12
- const output = execFileSync(bin, ["--version"], { stdio: "pipe" }).toString().trim();
13
- return output;
14
- }
15
- catch {
16
- return null;
17
- }
18
- }
19
10
  function getBinaryPath(bin) {
20
11
  try {
21
12
  const cmd = process.platform === "win32" ? "where" : "which";
@@ -50,16 +41,19 @@ export async function agentDoctor() {
50
41
  }
51
42
  // Check each known binary
52
43
  for (const recovery of Object.values(BINARY_RECOVERY)) {
53
- const installed = isBinaryInstalled(recovery.binary);
44
+ const check = checkBinaryVersion(recovery);
45
+ const installed = check.status !== "missing";
54
46
  dependencies.push({
55
47
  binary: recovery.binary,
56
48
  installed,
57
- version: installed ? getBinaryVersion(recovery.binary) : null,
49
+ version: check.installed_version,
50
+ version_ok: check.status === "ok",
51
+ version_constraint: recovery.version_constraint,
58
52
  path: installed ? getBinaryPath(recovery.binary) : null,
59
- install_command: recovery.install_command,
53
+ install_command: buildInstallCommand(recovery),
60
54
  install_url: recovery.install_url,
61
55
  });
62
- if (!installed) {
56
+ if (check.status === "missing") {
63
57
  // Skip generic warning for pipelex-agent when runner=pipelex;
64
58
  // the runner-specific block below will emit a more specific error.
65
59
  if (runnerValue === "pipelex" && recovery.binary === "pipelex-agent") {
@@ -71,6 +65,20 @@ export async function agentDoctor() {
71
65
  recovery,
72
66
  });
73
67
  }
68
+ else if (check.status === "outdated") {
69
+ issues.push({
70
+ severity: "warning",
71
+ message: `${recovery.binary} is outdated (${check.installed_version}, needs ${recovery.version_constraint}).`,
72
+ recovery,
73
+ });
74
+ }
75
+ else if (check.status === "unparseable") {
76
+ issues.push({
77
+ severity: "warning",
78
+ message: `Could not parse version for ${recovery.binary}.`,
79
+ recovery,
80
+ });
81
+ }
74
82
  }
75
83
  // Runner-specific warnings
76
84
  if (runnerValue === "api" && !apiKeyConfigured) {
@@ -80,7 +88,7 @@ export async function agentDoctor() {
80
88
  });
81
89
  }
82
90
  if (runnerValue === "pipelex") {
83
- const pipelexDep = dependencies.find((d) => d.binary === "pipelex-agent");
91
+ const pipelexDep = dependencies.find((dep) => dep.binary === "pipelex-agent");
84
92
  if (pipelexDep && !pipelexDep.installed) {
85
93
  issues.push({
86
94
  severity: "error",
@@ -89,7 +97,7 @@ export async function agentDoctor() {
89
97
  });
90
98
  }
91
99
  }
92
- const hasErrors = issues.some((i) => i.severity === "error");
100
+ const hasErrors = issues.some((issue) => issue.severity === "error");
93
101
  agentSuccess({
94
102
  healthy: !hasErrors,
95
103
  dependencies,
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -151,10 +151,10 @@ export async function agentInstall(address, options) {
151
151
  // Optional skills install
152
152
  const installedSkills = [];
153
153
  if (options.skills) {
154
- const SKILLS_REPO = "https://github.com/mthds-ai/skills";
154
+ const PLUGINS_REPO = "https://github.com/mthds-ai/mthds-plugins";
155
155
  const globalFlag = selectedLocation === Loc.Global ? " -g" : "";
156
156
  try {
157
- await execAsync(`npx --yes skills add ${SKILLS_REPO} --skill '*' --agent ${selectedAgent}${globalFlag} -y`, { cwd: process.cwd() });
157
+ await execAsync(`npx --yes skills add ${PLUGINS_REPO} --skill '*' --agent ${selectedAgent}${globalFlag} -y`, { cwd: process.cwd() });
158
158
  installedSkills.push("*");
159
159
  }
160
160
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/agent/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/agent/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * mthds-agent update-check — check if binary dependencies need updating.
3
+ *
4
+ * Stdout protocol (consumed by skill preamble bash block):
5
+ * - No output → proceed (UP_TO_DATE, disabled, or snoozed)
6
+ * - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
7
+ * - JUST_UPGRADED <json> → announce what was upgraded, then continue
8
+ *
9
+ * The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
10
+ * and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
11
+ */
12
+ export interface UpdateCheckOptions {
13
+ force?: boolean;
14
+ snooze?: boolean;
15
+ }
16
+ export declare function agentUpdateCheck(options: UpdateCheckOptions): Promise<void>;
@@ -0,0 +1,169 @@
1
+ /**
2
+ * mthds-agent update-check — check if binary dependencies need updating.
3
+ *
4
+ * Stdout protocol (consumed by skill preamble bash block):
5
+ * - No output → proceed (UP_TO_DATE, disabled, or snoozed)
6
+ * - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
7
+ * - JUST_UPGRADED <json> → announce what was upgraded, then continue
8
+ *
9
+ * The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
10
+ * and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
11
+ */
12
+ import { readFileSync, unlinkSync } from "node:fs";
13
+ import { join } from "node:path";
14
+ import { createRequire } from "node:module";
15
+ import { agentSuccess } from "../output.js";
16
+ import { BINARY_RECOVERY } from "../binaries.js";
17
+ import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
18
+ import { loadCredentials } from "../../config/credentials.js";
19
+ import { Runners } from "../../runners/types.js";
20
+ import { readCache, writeCache, clearCache, computeAggregate, STATE_DIR, } from "../update-cache.js";
21
+ import { isSnoozed, writeSnooze, clearSnooze, computeVersionKey, } from "../snooze.js";
22
+ const require = createRequire(import.meta.url);
23
+ const pkg = require("../../../package.json");
24
+ const JUST_UPGRADED_PATH = join(STATE_DIR, "just-upgraded-from");
25
+ // ── Main ───────────────────────────────────────────────────────────
26
+ export async function agentUpdateCheck(options) {
27
+ // Let errors propagate to non-zero exit so the preamble's
28
+ // MTHDS_UPDATE_CHECK_FAILED branch can detect real failures.
29
+ // The preamble handles non-zero exit gracefully (warns + proceeds).
30
+ await agentUpdateCheckInner(options);
31
+ }
32
+ async function agentUpdateCheckInner(options) {
33
+ // 1. Check if update-check is disabled
34
+ const creds = loadCredentials();
35
+ if (!creds.updateCheck)
36
+ return;
37
+ // 2. Check for just-upgraded-from marker
38
+ const upgradeMarker = readAndClearUpgradeMarker();
39
+ if (upgradeMarker) {
40
+ clearCache();
41
+ const payload = runFreshChecks(creds.runner);
42
+ writeCache({ aggregate: computeAggregate(payload), payload });
43
+ const output = { previous: upgradeMarker, current: payloadVersions(payload) };
44
+ process.stdout.write("JUST_UPGRADED " + JSON.stringify(output) + "\n");
45
+ return;
46
+ }
47
+ // 3. Handle --force
48
+ if (options.force) {
49
+ clearCache();
50
+ clearSnooze();
51
+ }
52
+ // 4. Handle --snooze
53
+ if (options.snooze) {
54
+ const payload = getOrRefreshPayload(creds.runner);
55
+ const versionKey = computeVersionKey(payload);
56
+ writeSnooze(versionKey);
57
+ agentSuccess({ snoozed: true, version_key: versionKey });
58
+ return;
59
+ }
60
+ // 5. Try cache
61
+ const cached = readCache();
62
+ if (cached) {
63
+ if (cached.aggregate === "UP_TO_DATE")
64
+ return;
65
+ // UPGRADE_AVAILABLE — check snooze first to avoid unnecessary subprocess spawns
66
+ const cachedKey = computeVersionKey(cached.payload);
67
+ if (isSnoozed(cachedKey))
68
+ return;
69
+ // Re-verify to catch manual upgrades (e.g. uv tool install --upgrade)
70
+ const freshPayload = runFreshChecks(creds.runner);
71
+ const freshAggregate = computeAggregate(freshPayload);
72
+ writeCache({ aggregate: freshAggregate, payload: freshPayload });
73
+ if (freshAggregate === "UP_TO_DATE")
74
+ return;
75
+ const freshKey = computeVersionKey(freshPayload);
76
+ if (isSnoozed(freshKey))
77
+ return;
78
+ process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(freshPayload) + "\n");
79
+ return;
80
+ }
81
+ // 6. Cache miss — run fresh checks
82
+ const payload = runFreshChecks(creds.runner);
83
+ const aggregate = computeAggregate(payload);
84
+ // 7. Emit result BEFORE writing cache — if writeCache throws (e.g. state dir
85
+ // not creatable), the preamble still gets the signal.
86
+ if (aggregate !== "UP_TO_DATE") {
87
+ const versionKey = computeVersionKey(payload);
88
+ if (!isSnoozed(versionKey)) {
89
+ process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(payload) + "\n");
90
+ }
91
+ }
92
+ writeCache({ aggregate, payload });
93
+ }
94
+ // ── Helpers ─────────────────────────────────────────────────────────
95
+ function runFreshChecks(runner) {
96
+ const plxtRecovery = BINARY_RECOVERY["plxt"];
97
+ if (!plxtRecovery) {
98
+ throw new Error("Missing binary recovery info for plxt");
99
+ }
100
+ const payload = {
101
+ mthds_agent: { s: "ok", v: pkg.version },
102
+ plxt: toBinaryEntry(checkBinaryVersion(plxtRecovery)),
103
+ };
104
+ // Only check pipelex-agent when runner requires it
105
+ if (runner === Runners.PIPELEX) {
106
+ const pipelexRecovery = BINARY_RECOVERY["pipelex-agent"];
107
+ if (!pipelexRecovery) {
108
+ throw new Error("Missing binary recovery info for pipelex-agent");
109
+ }
110
+ payload.pipelex_agent = toBinaryEntry(checkBinaryVersion(pipelexRecovery));
111
+ }
112
+ return payload;
113
+ }
114
+ function toBinaryEntry(check) {
115
+ const entry = {
116
+ s: check.status,
117
+ v: check.installed_version,
118
+ };
119
+ if (check.status !== "ok") {
120
+ entry.r = check.version_constraint;
121
+ }
122
+ return entry;
123
+ }
124
+ function getOrRefreshPayload(runner) {
125
+ const cached = readCache();
126
+ if (cached)
127
+ return cached.payload;
128
+ const payload = runFreshChecks(runner);
129
+ const aggregate = computeAggregate(payload);
130
+ writeCache({ aggregate, payload });
131
+ return payload;
132
+ }
133
+ function readAndClearUpgradeMarker() {
134
+ let content;
135
+ try {
136
+ content = readFileSync(JUST_UPGRADED_PATH, "utf-8");
137
+ }
138
+ catch {
139
+ return null; // File doesn't exist or unreadable
140
+ }
141
+ // Delete marker before parsing — even corrupt markers should be consumed
142
+ try {
143
+ unlinkSync(JUST_UPGRADED_PATH);
144
+ }
145
+ catch {
146
+ // ignore
147
+ }
148
+ try {
149
+ const parsed = JSON.parse(content);
150
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
151
+ return null;
152
+ }
153
+ return parsed;
154
+ }
155
+ catch {
156
+ return null;
157
+ }
158
+ }
159
+ function payloadVersions(payload) {
160
+ const result = {
161
+ mthds_agent: payload.mthds_agent.v,
162
+ plxt: payload.plxt.v,
163
+ };
164
+ if (payload.pipelex_agent) {
165
+ result.pipelex_agent = payload.pipelex_agent.v;
166
+ }
167
+ return result;
168
+ }
169
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * mthds-agent upgrade -- upgrade outdated/missing Python binary dependencies.
3
+ *
4
+ * Stdout protocol (plain text, consumed by skill upgrade-flow):
5
+ * - UPGRADE_NOT_NEEDED -- all binaries ok
6
+ * - UPGRADE_COMPLETE <json> -- all targets succeeded
7
+ * - UPGRADE_PARTIAL <json> -- some targets succeeded, some failed
8
+ * - UPGRADE_FAILED <json> -- all targets failed
9
+ *
10
+ * Architecture: De-duplicates by uv_package to guard against multiple binaries
11
+ * sharing a PyPI package. Currently pipelex-agent uses "pipelex" and plxt uses
12
+ * "pipelex-tools", so de-duplication does not trigger — but the guard prevents
13
+ * double-installs if future binaries share a package. The binary check list
14
+ * depends on the configured runner: always plxt; add pipelex-agent when
15
+ * runner === "pipelex".
16
+ */
17
+ export declare function agentUpgrade(): Promise<void>;
@@ -0,0 +1,155 @@
1
+ /**
2
+ * mthds-agent upgrade -- upgrade outdated/missing Python binary dependencies.
3
+ *
4
+ * Stdout protocol (plain text, consumed by skill upgrade-flow):
5
+ * - UPGRADE_NOT_NEEDED -- all binaries ok
6
+ * - UPGRADE_COMPLETE <json> -- all targets succeeded
7
+ * - UPGRADE_PARTIAL <json> -- some targets succeeded, some failed
8
+ * - UPGRADE_FAILED <json> -- all targets failed
9
+ *
10
+ * Architecture: De-duplicates by uv_package to guard against multiple binaries
11
+ * sharing a PyPI package. Currently pipelex-agent uses "pipelex" and plxt uses
12
+ * "pipelex-tools", so de-duplication does not trigger — but the guard prevents
13
+ * double-installs if future binaries share a package. The binary check list
14
+ * depends on the configured runner: always plxt; add pipelex-agent when
15
+ * runner === "pipelex".
16
+ */
17
+ import { writeFileSync } from "node:fs";
18
+ import { join } from "node:path";
19
+ import { requireUv, uvToolInstallSync } from "../../installer/runtime/installer.js";
20
+ import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
21
+ import { BINARY_RECOVERY } from "../binaries.js";
22
+ import { agentError, AGENT_ERROR_DOMAINS } from "../output.js";
23
+ import { clearCache, ensureStateDir, STATE_DIR } from "../update-cache.js";
24
+ import { clearSnooze } from "../snooze.js";
25
+ import { loadCredentials } from "../../config/credentials.js";
26
+ import { Runners } from "../../runners/types.js";
27
+ function errorMsg(err) {
28
+ return err instanceof Error ? err.message : String(err);
29
+ }
30
+ // ── Main ───────────────────────────────────────────────────────────
31
+ export async function agentUpgrade() {
32
+ // requireUv() — fatal if missing
33
+ try {
34
+ requireUv();
35
+ }
36
+ catch (err) {
37
+ agentError(errorMsg(err), "InstallError", {
38
+ error_domain: AGENT_ERROR_DOMAINS.INSTALL,
39
+ });
40
+ return; // unreachable — agentError calls process.exit, but explicit for TypeScript
41
+ }
42
+ const creds = loadCredentials();
43
+ const binaryKeys = ["plxt"];
44
+ if (creds.runner === Runners.PIPELEX) {
45
+ binaryKeys.push("pipelex-agent");
46
+ }
47
+ // Collect outdated/missing as targets, skip unparseable
48
+ const targets = [];
49
+ for (const key of binaryKeys) {
50
+ const recovery = BINARY_RECOVERY[key];
51
+ if (!recovery) {
52
+ process.stderr.write(`Warning: no recovery info for binary "${key}" — skipping upgrade check. This is a bug.\n`);
53
+ continue;
54
+ }
55
+ const check = checkBinaryVersion(recovery);
56
+ if (check.status === "outdated" || check.status === "missing") {
57
+ targets.push({
58
+ binaryKey: key,
59
+ recovery,
60
+ oldVersion: check.installed_version,
61
+ });
62
+ }
63
+ // "ok" and "unparseable" are both skipped — unparseable means the binary
64
+ // exists but we can't parse its version, so don't blindly reinstall.
65
+ }
66
+ if (targets.length === 0) {
67
+ process.stdout.write("UPGRADE_NOT_NEEDED\n");
68
+ return;
69
+ }
70
+ // De-duplicate by uv_package to avoid double-installing shared packages
71
+ const seen = new Map();
72
+ for (const t of targets) {
73
+ if (!seen.has(t.recovery.uv_package)) {
74
+ seen.set(t.recovery.uv_package, t);
75
+ }
76
+ }
77
+ const uniqueTargets = Array.from(seen.values());
78
+ // Install each unique uv_package, catching errors per-target
79
+ const succeeded = new Map();
80
+ const failed = new Map();
81
+ for (const target of uniqueTargets) {
82
+ try {
83
+ uvToolInstallSync(target.recovery.uv_package, target.recovery.version_constraint);
84
+ succeeded.set(target.recovery.uv_package, target);
85
+ }
86
+ catch (err) {
87
+ failed.set(target.recovery.uv_package, errorMsg(err));
88
+ }
89
+ }
90
+ // Post-check successful targets to get new version
91
+ const upgradedEntries = {};
92
+ for (const [uvPkg, target] of succeeded) {
93
+ let newVersion = null;
94
+ try {
95
+ const postCheck = checkBinaryVersion(target.recovery);
96
+ if (postCheck.status === "ok" || postCheck.status === "unparseable") {
97
+ newVersion = postCheck.installed_version;
98
+ }
99
+ else if (postCheck.status === "missing") {
100
+ // PATH issue — binary was installed but not yet visible.
101
+ // Treat as successful since uvToolInstallSync didn't throw.
102
+ newVersion = null;
103
+ }
104
+ else {
105
+ // "outdated" — install ran but didn't satisfy the constraint
106
+ process.stderr.write(`Warning: ${uvPkg} was installed but version ${postCheck.installed_version} still does not meet ${postCheck.version_constraint}.\n`);
107
+ newVersion = postCheck.installed_version;
108
+ }
109
+ }
110
+ catch (err) {
111
+ process.stderr.write(`Warning: post-upgrade version check failed for ${uvPkg}: ${errorMsg(err)}.\n`);
112
+ newVersion = null;
113
+ }
114
+ const oldV = target.oldVersion ?? "missing";
115
+ const newV = newVersion ?? "unknown";
116
+ upgradedEntries[uvPkg] = `${oldV}->${newV}`;
117
+ }
118
+ const failedEntries = Object.fromEntries(failed);
119
+ // Build marker with old versions keyed by binary name.
120
+ // The update-check preamble reads and clears this marker to detect a recent upgrade.
121
+ const markerData = {};
122
+ for (const target of targets) {
123
+ // Use binary key as marker key (e.g. "pipelex_agent", "plxt")
124
+ const markerKey = target.binaryKey.replace(/-/g, "_");
125
+ markerData[markerKey] = target.oldVersion ?? "missing";
126
+ }
127
+ // Determine outcome and emit result
128
+ const allSucceeded = failed.size === 0;
129
+ const allFailed = succeeded.size === 0;
130
+ if (allSucceeded) {
131
+ // Write marker, clear cache + snooze
132
+ try {
133
+ ensureStateDir();
134
+ writeFileSync(join(STATE_DIR, "just-upgraded-from"), JSON.stringify(markerData), "utf-8");
135
+ }
136
+ catch (err) {
137
+ // Marker write failure should not prevent reporting success
138
+ process.stderr.write(`Warning: could not write upgrade marker: ${errorMsg(err)}.\n`);
139
+ }
140
+ clearCache();
141
+ clearSnooze();
142
+ process.stdout.write("UPGRADE_COMPLETE " + JSON.stringify({ upgraded: upgradedEntries }) + "\n");
143
+ }
144
+ else if (allFailed) {
145
+ // Do NOT clear cache/snooze, do NOT write marker
146
+ process.stdout.write("UPGRADE_FAILED " + JSON.stringify({ failed: failedEntries }) + "\n");
147
+ }
148
+ else {
149
+ // Partial — do NOT clear cache/snooze, do NOT write marker
150
+ process.stdout.write("UPGRADE_PARTIAL " +
151
+ JSON.stringify({ upgraded: upgradedEntries, failed: failedEntries }) +
152
+ "\n");
153
+ }
154
+ }
155
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/agent/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export declare function passthrough(bin: string, args: string[], options?: {
6
6
  autoInstall?: boolean;
7
+ skipVersionCheck?: boolean;
7
8
  }): void;