mthds 0.2.1 → 0.3.1
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/README.md +1 -1
- package/dist/agent/binaries.d.ts +14 -1
- package/dist/agent/binaries.js +21 -6
- package/dist/agent/binaries.js.map +1 -1
- package/dist/agent/commands/bootstrap.d.ts +15 -0
- package/dist/agent/commands/bootstrap.js +152 -0
- package/dist/agent/commands/bootstrap.js.map +1 -0
- package/dist/agent/commands/doctor.js +25 -17
- package/dist/agent/commands/doctor.js.map +1 -1
- package/dist/agent/commands/install.js +2 -2
- package/dist/agent/commands/install.js.map +1 -1
- package/dist/agent/commands/update-check.d.ts +16 -0
- package/dist/agent/commands/update-check.js +169 -0
- package/dist/agent/commands/update-check.js.map +1 -0
- package/dist/agent/commands/upgrade.d.ts +17 -0
- package/dist/agent/commands/upgrade.js +155 -0
- package/dist/agent/commands/upgrade.js.map +1 -0
- package/dist/agent/passthrough.d.ts +1 -0
- package/dist/agent/passthrough.js +93 -32
- package/dist/agent/passthrough.js.map +1 -1
- package/dist/agent/snooze.d.ts +32 -0
- package/dist/agent/snooze.js +108 -0
- package/dist/agent/snooze.js.map +1 -0
- package/dist/agent/update-cache.d.ts +43 -0
- package/dist/agent/update-cache.js +125 -0
- package/dist/agent/update-cache.js.map +1 -0
- package/dist/agent-cli.js +56 -11
- package/dist/agent-cli.js.map +1 -1
- package/dist/cli/commands/install.js +3 -3
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/config/credentials.d.ts +2 -0
- package/dist/config/credentials.js +64 -33
- package/dist/config/credentials.js.map +1 -1
- package/dist/installer/runtime/installer.d.ts +21 -6
- package/dist/installer/runtime/installer.js +90 -22
- package/dist/installer/runtime/installer.js.map +1 -1
- package/dist/installer/runtime/version-check.d.ts +31 -0
- package/dist/installer/runtime/version-check.js +78 -0
- package/dist/installer/runtime/version-check.js.map +1 -0
- 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
|
|
package/dist/agent/binaries.d.ts
CHANGED
|
@@ -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
|
-
|
|
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>;
|
package/dist/agent/binaries.js
CHANGED
|
@@ -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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mthds-agent bootstrap -- first-run environment setup.
|
|
3
|
+
*
|
|
4
|
+
* Installs uv (if missing), then installs all required Python binaries
|
|
5
|
+
* (plxt, pipelex-agent) so the environment is ready before the first
|
|
6
|
+
* skill invocation. Designed to be called from the copy-paste install
|
|
7
|
+
* instructions right after `npm install -g mthds`.
|
|
8
|
+
*
|
|
9
|
+
* Stdout protocol (plain text, same style as upgrade):
|
|
10
|
+
* - BOOTSTRAP_NOT_NEEDED -- all binaries already ok
|
|
11
|
+
* - BOOTSTRAP_COMPLETE <json> -- all targets installed
|
|
12
|
+
* - BOOTSTRAP_PARTIAL <json> -- some targets installed, some failed
|
|
13
|
+
* - BOOTSTRAP_FAILED <json> -- all targets failed
|
|
14
|
+
*/
|
|
15
|
+
export declare function agentBootstrap(): Promise<void>;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mthds-agent bootstrap -- first-run environment setup.
|
|
3
|
+
*
|
|
4
|
+
* Installs uv (if missing), then installs all required Python binaries
|
|
5
|
+
* (plxt, pipelex-agent) so the environment is ready before the first
|
|
6
|
+
* skill invocation. Designed to be called from the copy-paste install
|
|
7
|
+
* instructions right after `npm install -g mthds`.
|
|
8
|
+
*
|
|
9
|
+
* Stdout protocol (plain text, same style as upgrade):
|
|
10
|
+
* - BOOTSTRAP_NOT_NEEDED -- all binaries already ok
|
|
11
|
+
* - BOOTSTRAP_COMPLETE <json> -- all targets installed
|
|
12
|
+
* - BOOTSTRAP_PARTIAL <json> -- some targets installed, some failed
|
|
13
|
+
* - BOOTSTRAP_FAILED <json> -- all targets failed
|
|
14
|
+
*/
|
|
15
|
+
import { writeFileSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { isUvInstalled, installUv, uvToolInstallSync } from "../../installer/runtime/installer.js";
|
|
18
|
+
import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
|
|
19
|
+
import { BINARY_RECOVERY } from "../binaries.js";
|
|
20
|
+
import { agentError, AGENT_ERROR_DOMAINS } from "../output.js";
|
|
21
|
+
import { clearCache, ensureStateDir, STATE_DIR } from "../update-cache.js";
|
|
22
|
+
import { clearSnooze } from "../snooze.js";
|
|
23
|
+
import { loadCredentials } from "../../config/credentials.js";
|
|
24
|
+
import { Runners } from "../../runners/types.js";
|
|
25
|
+
function errorMsg(err) {
|
|
26
|
+
return err instanceof Error ? err.message : String(err);
|
|
27
|
+
}
|
|
28
|
+
// ── Main ───────────────────────────────────────────────────────────
|
|
29
|
+
// TODO: Extract shared install-check-report workflow with agentUpgrade() to
|
|
30
|
+
// reduce duplication (~78% overlap). The unique bootstrap logic is the uv
|
|
31
|
+
// auto-install preamble (lines below); everything after that mirrors upgrade.
|
|
32
|
+
export async function agentBootstrap() {
|
|
33
|
+
// 1. Ensure uv is available — auto-install if missing
|
|
34
|
+
if (!isUvInstalled()) {
|
|
35
|
+
try {
|
|
36
|
+
installUv();
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
agentError(`Could not auto-install uv: ${errorMsg(err)}. Install manually: https://docs.astral.sh/uv/getting-started/installation/`, "InstallError", { error_domain: AGENT_ERROR_DOMAINS.INSTALL });
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!isUvInstalled()) {
|
|
43
|
+
agentError(`uv was installed but is not reachable in PATH. Restart your shell or add the uv bin directory to PATH.`, "InstallError", { error_domain: AGENT_ERROR_DOMAINS.INSTALL });
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// 2. Determine which binaries to install
|
|
48
|
+
const creds = loadCredentials();
|
|
49
|
+
const binaryKeys = ["plxt"];
|
|
50
|
+
if (creds.runner === Runners.PIPELEX) {
|
|
51
|
+
binaryKeys.push("pipelex-agent");
|
|
52
|
+
}
|
|
53
|
+
// 3. Collect missing/outdated targets
|
|
54
|
+
const targets = [];
|
|
55
|
+
for (const key of binaryKeys) {
|
|
56
|
+
const recovery = BINARY_RECOVERY[key];
|
|
57
|
+
if (!recovery) {
|
|
58
|
+
process.stderr.write(`Warning: no recovery info for binary "${key}" — skipping. This is a bug.\n`);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const check = checkBinaryVersion(recovery);
|
|
62
|
+
if (check.status === "outdated" || check.status === "missing") {
|
|
63
|
+
targets.push({
|
|
64
|
+
binaryKey: key,
|
|
65
|
+
recovery,
|
|
66
|
+
oldVersion: check.installed_version,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (targets.length === 0) {
|
|
71
|
+
process.stdout.write("BOOTSTRAP_NOT_NEEDED\n");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// 4. De-duplicate by uv_package
|
|
75
|
+
const seen = new Map();
|
|
76
|
+
for (const t of targets) {
|
|
77
|
+
if (!seen.has(t.recovery.uv_package)) {
|
|
78
|
+
seen.set(t.recovery.uv_package, t);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const uniqueTargets = Array.from(seen.values());
|
|
82
|
+
// 5. Install each package
|
|
83
|
+
const succeeded = new Map();
|
|
84
|
+
const failed = new Map();
|
|
85
|
+
for (const target of uniqueTargets) {
|
|
86
|
+
try {
|
|
87
|
+
uvToolInstallSync(target.recovery.uv_package, target.recovery.version_constraint);
|
|
88
|
+
succeeded.set(target.recovery.uv_package, target);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
failed.set(target.recovery.uv_package, errorMsg(err));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// 6. Post-check and build results
|
|
95
|
+
const installedEntries = {};
|
|
96
|
+
for (const [uvPkg, target] of succeeded) {
|
|
97
|
+
let newVersion = null;
|
|
98
|
+
try {
|
|
99
|
+
const postCheck = checkBinaryVersion(target.recovery);
|
|
100
|
+
if (postCheck.status === "ok" || postCheck.status === "unparseable") {
|
|
101
|
+
newVersion = postCheck.installed_version;
|
|
102
|
+
}
|
|
103
|
+
else if (postCheck.status === "missing") {
|
|
104
|
+
newVersion = null;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
process.stderr.write(`Warning: ${uvPkg} was installed but version ${postCheck.installed_version} still does not meet ${postCheck.version_constraint}.\n`);
|
|
108
|
+
newVersion = postCheck.installed_version;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
process.stderr.write(`Warning: post-install version check failed for ${uvPkg}: ${errorMsg(err)}.\n`);
|
|
113
|
+
newVersion = null;
|
|
114
|
+
}
|
|
115
|
+
const oldV = target.oldVersion ?? "missing";
|
|
116
|
+
const newV = newVersion ?? "unknown";
|
|
117
|
+
installedEntries[uvPkg] = `${oldV}->${newV}`;
|
|
118
|
+
}
|
|
119
|
+
const failedEntries = Object.fromEntries(failed);
|
|
120
|
+
// Build marker for update-check to detect recent install
|
|
121
|
+
const markerData = {};
|
|
122
|
+
for (const target of targets) {
|
|
123
|
+
const markerKey = target.binaryKey.replace(/-/g, "_");
|
|
124
|
+
markerData[markerKey] = target.oldVersion ?? "missing";
|
|
125
|
+
}
|
|
126
|
+
// 7. Emit result
|
|
127
|
+
const allSucceeded = failed.size === 0;
|
|
128
|
+
const allFailed = succeeded.size === 0;
|
|
129
|
+
if (allSucceeded) {
|
|
130
|
+
try {
|
|
131
|
+
ensureStateDir();
|
|
132
|
+
writeFileSync(join(STATE_DIR, "just-upgraded-from"), JSON.stringify(markerData), "utf-8");
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
process.stderr.write(`Warning: could not write upgrade marker: ${errorMsg(err)}.\n`);
|
|
136
|
+
}
|
|
137
|
+
clearCache();
|
|
138
|
+
clearSnooze();
|
|
139
|
+
process.stdout.write("BOOTSTRAP_COMPLETE " + JSON.stringify({ installed: installedEntries }) + "\n");
|
|
140
|
+
}
|
|
141
|
+
else if (allFailed) {
|
|
142
|
+
process.stdout.write("BOOTSTRAP_FAILED " + JSON.stringify({ failed: failedEntries }) + "\n");
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
clearCache();
|
|
146
|
+
clearSnooze();
|
|
147
|
+
process.stdout.write("BOOTSTRAP_PARTIAL " +
|
|
148
|
+
JSON.stringify({ installed: installedEntries, failed: failedEntries }) +
|
|
149
|
+
"\n");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/agent/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 {
|
|
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
|
|
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:
|
|
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
|
|
53
|
+
install_command: buildInstallCommand(recovery),
|
|
60
54
|
install_url: recovery.install_url,
|
|
61
55
|
});
|
|
62
|
-
if (
|
|
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((
|
|
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((
|
|
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":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
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
|
|
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 ${
|
|
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>;
|