mthds 0.8.0 → 0.9.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.
@@ -22,7 +22,7 @@ const VERSION_RE = /^[\w-]+\s+(\d+\.\d+\.\d+)/;
22
22
  const PIPELEX_PKG = {
23
23
  package: "pipelex",
24
24
  uv_package: "pipelex",
25
- version_constraint: ">=0.30.0",
25
+ version_constraint: ">=0.30.2",
26
26
  version_extract: VERSION_RE,
27
27
  install_url: "https://pypi.org/project/pipelex/",
28
28
  auto_installable: true,
@@ -5,21 +5,26 @@
5
5
  * (mthds-codex/hooks/codex-hooks.json, discovered through the plugin manifest).
6
6
  * Runs after every apply_patch tool call in a Codex session: parses the patch
7
7
  * envelope from tool_input.command, finds touched .mthds files, and validates
8
- * each one with plxt (lint + fmt). On lint or fmt failure it emits the Codex
9
- * hook block protocol so the session sees the error.
8
+ * each one through three stages: plxt lint, plxt fmt, pipelex-agent validate
9
+ * bundle.
10
10
  *
11
11
  * Stdout protocol — Codex's hook contract, not the mthds agent JSON:
12
- * - empty / no output → silent pass (no .mthds touched, or all clean)
13
- * - {"decision":"block",...} → block the turn with the given reason
14
- *
15
- * Stage 3 (`mthds-agent validate bundle`) stays disabled until offline-mode
16
- * validation lands in mthds-agent (the Codex sandbox blocks the eager S3 fetch).
12
+ * - empty / no output → silent pass (no .mthds touched, or all clean)
13
+ * - {"decision":"block",...} → block the turn with the given reason
14
+ * - {"hookSpecificOutput":{...}} → emit additionalContext (no block) for
15
+ * config/runtime-domain validation issues
16
+ * the agent is informed but does NOT edit
17
+ * the file
17
18
  */
18
19
  interface PlxtRunResult {
19
20
  exitCode: number;
20
21
  stdout: string;
21
22
  stderr: string;
22
23
  }
24
+ export interface PipelexValidateResult {
25
+ exitCode: number;
26
+ stderr: string;
27
+ }
23
28
  /**
24
29
  * Extract every distinct .mthds path mentioned in an apply_patch envelope.
25
30
  *
@@ -35,6 +40,46 @@ export declare function parseMthdsFiles(command: string): string[];
35
40
  export declare function formatLintError(file: string, result: PlxtRunResult): string;
36
41
  export declare function formatFmtError(file: string, result: PlxtRunResult): string;
37
42
  export declare function buildBlockPayload(reason: string): string;
43
+ export declare function buildAdditionalContextPayload(context: string): string;
44
+ /**
45
+ * Drop the `## Error source` section and everything after it.
46
+ *
47
+ * Stopgap: pipelex 0.30.2 already omits this section from `validate bundle`
48
+ * markdown output, so once the floor is bumped past 0.30.2 this is a no-op.
49
+ * Kept defensively so a user lagging on pipelex doesn't leak stack frames
50
+ * into the agent-facing block reason.
51
+ */
52
+ export declare function stripErrorSourceSection(markdown: string): string;
53
+ /**
54
+ * Parse `- **error_domain:** <value>` out of the `## Details` section.
55
+ *
56
+ * Returns the first match (pipelex only emits one). Undefined when the
57
+ * raised error class has no `error_domain` and is not in pipelex's
58
+ * `AGENT_ERROR_DOMAINS` lookup (e.g. bare `LibraryError`).
59
+ */
60
+ export declare function extractErrorDomain(markdown: string): string | undefined;
61
+ export declare function truncateForAdditionalContext(text: string): string;
62
+ export type Stage3Outcome = {
63
+ kind: "pass";
64
+ } | {
65
+ kind: "block";
66
+ reason: string;
67
+ } | {
68
+ kind: "warn";
69
+ context: string;
70
+ domain: string;
71
+ };
72
+ /**
73
+ * Decide what to emit for a single file's `pipelex-agent validate bundle`
74
+ * result. The block/warn split mirrors the bash hook in mthds-plugins.
75
+ *
76
+ * - exit 0 → pass (no output)
77
+ * - empty stderr (post-strip) → block with a generic "no stderr" reason
78
+ * - error_domain ∈ {config,runtime} → warn (additionalContext), no block
79
+ * - anything else (input, unknown, missing) → block with markdown verbatim
80
+ * (default-to-block is the safety choice)
81
+ */
82
+ export declare function classifyStage3Result(file: string, result: PipelexValidateResult): Stage3Outcome;
38
83
  /**
39
84
  * Build the ordered list of candidate paths for `name` on PATH.
40
85
  *
@@ -61,6 +106,8 @@ export interface CodexHookDeps {
61
106
  fileExists: (path: string) => boolean;
62
107
  hasPlxt: () => boolean;
63
108
  runPlxt: (args: string[]) => PlxtRunResult;
109
+ hasPipelexAgent: () => boolean;
110
+ runPipelexValidate: (file: string, libraryDir: string) => PipelexValidateResult;
64
111
  emit: (output: string) => void;
65
112
  }
66
113
  export declare function runCodexHook(deps: CodexHookDeps): Promise<void>;
@@ -5,19 +5,23 @@
5
5
  * (mthds-codex/hooks/codex-hooks.json, discovered through the plugin manifest).
6
6
  * Runs after every apply_patch tool call in a Codex session: parses the patch
7
7
  * envelope from tool_input.command, finds touched .mthds files, and validates
8
- * each one with plxt (lint + fmt). On lint or fmt failure it emits the Codex
9
- * hook block protocol so the session sees the error.
8
+ * each one through three stages: plxt lint, plxt fmt, pipelex-agent validate
9
+ * bundle.
10
10
  *
11
11
  * Stdout protocol — Codex's hook contract, not the mthds agent JSON:
12
- * - empty / no output → silent pass (no .mthds touched, or all clean)
13
- * - {"decision":"block",...} → block the turn with the given reason
14
- *
15
- * Stage 3 (`mthds-agent validate bundle`) stays disabled until offline-mode
16
- * validation lands in mthds-agent (the Codex sandbox blocks the eager S3 fetch).
12
+ * - empty / no output → silent pass (no .mthds touched, or all clean)
13
+ * - {"decision":"block",...} → block the turn with the given reason
14
+ * - {"hookSpecificOutput":{...}} → emit additionalContext (no block) for
15
+ * config/runtime-domain validation issues
16
+ * the agent is informed but does NOT edit
17
+ * the file
17
18
  */
18
19
  import { accessSync, constants as fsConstants, existsSync, readFileSync, statSync } from "node:fs";
19
20
  import { spawnSync } from "node:child_process";
21
+ import { posix as path } from "node:path";
20
22
  const PLXT_INSTALL_HINT = "uv tool install pipelex-tools";
23
+ const PIPELEX_AGENT_INSTALL_HINT = "uv tool install pipelex";
24
+ const ADDITIONAL_CONTEXT_MAX_LEN = 9500;
21
25
  // ── Pure helpers (exported for testability) ───────────────────────────
22
26
  /**
23
27
  * Extract every distinct .mthds path mentioned in an apply_patch envelope.
@@ -54,6 +58,81 @@ export function formatFmtError(file, result) {
54
58
  export function buildBlockPayload(reason) {
55
59
  return JSON.stringify({ decision: "block", reason }) + "\n";
56
60
  }
61
+ export function buildAdditionalContextPayload(context) {
62
+ return (JSON.stringify({
63
+ hookSpecificOutput: {
64
+ hookEventName: "PostToolUse",
65
+ additionalContext: context,
66
+ },
67
+ }) + "\n");
68
+ }
69
+ /**
70
+ * Drop the `## Error source` section and everything after it.
71
+ *
72
+ * Stopgap: pipelex 0.30.2 already omits this section from `validate bundle`
73
+ * markdown output, so once the floor is bumped past 0.30.2 this is a no-op.
74
+ * Kept defensively so a user lagging on pipelex doesn't leak stack frames
75
+ * into the agent-facing block reason.
76
+ */
77
+ export function stripErrorSourceSection(markdown) {
78
+ const match = markdown.match(/^## Error source/m);
79
+ if (!match || match.index === undefined)
80
+ return markdown;
81
+ return markdown.slice(0, match.index);
82
+ }
83
+ /**
84
+ * Parse `- **error_domain:** <value>` out of the `## Details` section.
85
+ *
86
+ * Returns the first match (pipelex only emits one). Undefined when the
87
+ * raised error class has no `error_domain` and is not in pipelex's
88
+ * `AGENT_ERROR_DOMAINS` lookup (e.g. bare `LibraryError`).
89
+ */
90
+ export function extractErrorDomain(markdown) {
91
+ const match = markdown.match(/^- \*\*error_domain:\*\* *(\S+)/m);
92
+ return match ? match[1] : undefined;
93
+ }
94
+ export function truncateForAdditionalContext(text) {
95
+ if (text.length <= ADDITIONAL_CONTEXT_MAX_LEN)
96
+ return text;
97
+ const omitted = text.length - ADDITIONAL_CONTEXT_MAX_LEN;
98
+ return (text.slice(0, ADDITIONAL_CONTEXT_MAX_LEN) +
99
+ `\n\n[truncated, ${omitted} chars omitted]`);
100
+ }
101
+ /**
102
+ * Decide what to emit for a single file's `pipelex-agent validate bundle`
103
+ * result. The block/warn split mirrors the bash hook in mthds-plugins.
104
+ *
105
+ * - exit 0 → pass (no output)
106
+ * - empty stderr (post-strip) → block with a generic "no stderr" reason
107
+ * - error_domain ∈ {config,runtime} → warn (additionalContext), no block
108
+ * - anything else (input, unknown, missing) → block with markdown verbatim
109
+ * (default-to-block is the safety choice)
110
+ */
111
+ export function classifyStage3Result(file, result) {
112
+ if (result.exitCode === 0)
113
+ return { kind: "pass" };
114
+ const trimmed = stripErrorSourceSection(result.stderr);
115
+ if (trimmed.trim().length === 0) {
116
+ return {
117
+ kind: "block",
118
+ reason: `Validation failed for ${file} (pipelex-agent exited ${result.exitCode} with no stderr output)`,
119
+ };
120
+ }
121
+ const body = trimmed.replace(/\s+$/, "");
122
+ const domain = extractErrorDomain(trimmed);
123
+ if (domain === "config" || domain === "runtime") {
124
+ const header = `Validation warning for ${file} (${domain} domain — environment issue, do not edit the file):\n\n`;
125
+ return {
126
+ kind: "warn",
127
+ domain,
128
+ context: header + truncateForAdditionalContext(body),
129
+ };
130
+ }
131
+ return {
132
+ kind: "block",
133
+ reason: `Validation failed for ${file}:\n\n${body}`,
134
+ };
135
+ }
57
136
  // ── Runtime helpers ───────────────────────────────────────────────────
58
137
  function readAllStdin() {
59
138
  try {
@@ -140,6 +219,22 @@ function runPlxt(args) {
140
219
  stderr: result.stderr ?? "",
141
220
  };
142
221
  }
222
+ /**
223
+ * Run `pipelex-agent validate bundle <file> -L <libraryDir>`. We do NOT
224
+ * shell out through `mthds-agent` to avoid recursing into this same CLI;
225
+ * pipelex-agent's bundle validation is offline-safe (no remote-config or
226
+ * gateway fetch in this code path).
227
+ */
228
+ function runPipelexValidate(file, libraryDir) {
229
+ const result = spawnSync("pipelex-agent", ["validate", "bundle", file, "-L", libraryDir], { encoding: "utf8" });
230
+ if (result.error) {
231
+ return { exitCode: 127, stderr: result.error.message };
232
+ }
233
+ return {
234
+ exitCode: result.status ?? 1,
235
+ stderr: result.stderr ?? "",
236
+ };
237
+ }
143
238
  export async function runCodexHook(deps) {
144
239
  const raw = deps.readStdin();
145
240
  if (raw.trim().length === 0)
@@ -161,7 +256,12 @@ export async function runCodexHook(deps) {
161
256
  deps.emit(buildBlockPayload(`Missing required CLI tool: plxt (install via: ${PLXT_INSTALL_HINT})`));
162
257
  return;
163
258
  }
164
- const errors = [];
259
+ if (!deps.hasPipelexAgent()) {
260
+ deps.emit(buildBlockPayload(`Missing required CLI tool: pipelex-agent (install via: ${PIPELEX_AGENT_INSTALL_HINT})`));
261
+ return;
262
+ }
263
+ const blocks = [];
264
+ const warnings = [];
165
265
  for (const file of files) {
166
266
  // Renamed-source paths and delete targets won't exist on disk post-patch.
167
267
  // Skipping them is the right thing — this is identical to the bash
@@ -171,8 +271,8 @@ export async function runCodexHook(deps) {
171
271
  // Stage 1: plxt lint (block on failure)
172
272
  const lint = deps.runPlxt(["lint", "--quiet", file]);
173
273
  if (lint.exitCode !== 0) {
174
- errors.push(formatLintError(file, lint));
175
- continue; // skip fmt for files that failed lint
274
+ blocks.push(formatLintError(file, lint));
275
+ continue; // skip fmt + Stage 3 for files that failed lint
176
276
  }
177
277
  // Stage 2: plxt fmt — also blocks on failure (the bash hook this
178
278
  // replaces aggregated lint and fmt errors into a single block reason).
@@ -180,14 +280,32 @@ export async function runCodexHook(deps) {
180
280
  // surfacing it loudly is better than letting a half-formatted file land.
181
281
  const fmt = deps.runPlxt(["fmt", file]);
182
282
  if (fmt.exitCode !== 0) {
183
- errors.push(formatFmtError(file, fmt));
283
+ blocks.push(formatFmtError(file, fmt));
284
+ continue; // skip Stage 3 on a fmt-broken file
184
285
  }
185
- // Stage 3: mthds-agent validate bundle — DISABLED.
186
- // Re-enable once mthds-agent supports offline validation (the Codex
187
- // sandbox blocks the eager remote-config fetch).
286
+ // Stage 3: pipelex-agent validate bundle — semantic validation. Markdown
287
+ // stderr is the canonical agent-facing artifact. Block on input/unknown
288
+ // domain (agent revises the bundle); warn via additionalContext on
289
+ // config/runtime (environment issue, agent should not edit the file).
290
+ const libraryDir = path.dirname(file) + "/";
291
+ const validateResult = deps.runPipelexValidate(file, libraryDir);
292
+ const outcome = classifyStage3Result(file, validateResult);
293
+ if (outcome.kind === "block") {
294
+ blocks.push(outcome.reason);
295
+ }
296
+ else if (outcome.kind === "warn") {
297
+ warnings.push(outcome.context);
298
+ }
299
+ }
300
+ // Aggregation. When both blocks and warnings exist we emit block-only —
301
+ // the agent has to revise and re-save anyway, so deferring the warning
302
+ // until the next pass is fine and keeps the response shape simple.
303
+ if (blocks.length > 0) {
304
+ deps.emit(buildBlockPayload(blocks.join("\n\n")));
305
+ return;
188
306
  }
189
- if (errors.length > 0) {
190
- deps.emit(buildBlockPayload(errors.join("\n\n")));
307
+ if (warnings.length > 0) {
308
+ deps.emit(buildAdditionalContextPayload(warnings.join("\n\n")));
191
309
  }
192
310
  }
193
311
  // ── CLI entry point ───────────────────────────────────────────────────
@@ -197,6 +315,8 @@ export async function agentCodexHook() {
197
315
  fileExists: existsSync,
198
316
  hasPlxt: () => commandOnPath("plxt"),
199
317
  runPlxt,
318
+ hasPipelexAgent: () => commandOnPath("pipelex-agent"),
319
+ runPipelexValidate,
200
320
  emit: (out) => process.stdout.write(out),
201
321
  });
202
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hook.js","sourceRoot":"","sources":["../../../src/agent/commands/codex-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-hook.js","sourceRoot":"","sources":["../../../src/agent/commands/codex-hook.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  /**
2
2
  * Catch-all passthrough to pipelex-agent.
3
3
  *
4
- * Strips mthds-agent-only flags (--runner, --auto-install) from argv
5
- * and forwards everything else verbatim to pipelex-agent.
6
- * Flags understood by pipelex-agent (--log-level, -L) are kept.
4
+ * Strips mthds-agent-only flags (--runner, --auto-install) and the
5
+ * silently-deprecated --log-level from argv, and forwards everything
6
+ * else verbatim to pipelex-agent. `-L` / `--library-dir` is kept because
7
+ * pipelex-agent understands it.
8
+ *
9
+ * --log-level is stripped because pipelex-agent removed the flag in
10
+ * 0.30.1 (log suppression is unconditional). The flag is still accepted
11
+ * at the mthds-agent surface as a silent no-op so existing invocations
12
+ * (`mthds-agent --log-level DEBUG models`) don't break.
7
13
  */
8
14
  /** Extract args for pipelex-agent by stripping mthds-agent-only flags. */
9
15
  export declare function extractArgsForPipelexAgent(): string[];
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * Catch-all passthrough to pipelex-agent.
3
3
  *
4
- * Strips mthds-agent-only flags (--runner, --auto-install) from argv
5
- * and forwards everything else verbatim to pipelex-agent.
6
- * Flags understood by pipelex-agent (--log-level, -L) are kept.
4
+ * Strips mthds-agent-only flags (--runner, --auto-install) and the
5
+ * silently-deprecated --log-level from argv, and forwards everything
6
+ * else verbatim to pipelex-agent. `-L` / `--library-dir` is kept because
7
+ * pipelex-agent understands it.
8
+ *
9
+ * --log-level is stripped because pipelex-agent removed the flag in
10
+ * 0.30.1 (log suppression is unconditional). The flag is still accepted
11
+ * at the mthds-agent surface as a silent no-op so existing invocations
12
+ * (`mthds-agent --log-level DEBUG models`) don't break.
7
13
  */
8
14
  import { passthrough } from "../passthrough.js";
9
- const STRIP_FLAGS_WITH_VALUE = new Set(["--runner"]);
15
+ const STRIP_FLAGS_WITH_VALUE = new Set(["--runner", "--log-level"]);
16
+ const STRIP_PREFIXES = ["--runner=", "--log-level="];
10
17
  const STRIP_BOOLEAN_FLAGS = new Set(["--auto-install"]);
11
18
  /** Extract args for pipelex-agent by stripping mthds-agent-only flags. */
12
19
  export function extractArgsForPipelexAgent() {
@@ -18,7 +25,7 @@ export function extractArgsForPipelexAgent() {
18
25
  if (STRIP_FLAGS_WITH_VALUE.has(arg)) {
19
26
  idx += 2; // skip flag + value
20
27
  }
21
- else if (arg.startsWith("--runner=")) {
28
+ else if (STRIP_PREFIXES.some((p) => arg.startsWith(p))) {
22
29
  idx += 1;
23
30
  }
24
31
  else if (STRIP_BOOLEAN_FLAGS.has(arg)) {
@@ -1 +1 @@
1
- {"version":3,"file":"pipelex-passthrough.js","sourceRoot":"","sources":["../../../src/agent/commands/pipelex-passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAExD,0EAA0E;AAC1E,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;IACxD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC;QACtB,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB;QAChC,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAoB;IAC5D,MAAM,IAAI,GAAG,0BAA0B,EAAE,CAAC;IAC1C,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"pipelex-passthrough.js","sourceRoot":"","sources":["../../../src/agent/commands/pipelex-passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AACpE,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAExD,0EAA0E;AAC1E,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;IACxD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC;QACtB,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB;QAChC,CAAC;aAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAoB;IAC5D,MAAM,IAAI,GAAG,0BAA0B,EAAE,CAAC;IAC1C,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -2,9 +2,22 @@
2
2
  * mthds-agent update-check — check if binary dependencies need updating.
3
3
  *
4
4
  * Stdout protocol (consumed by skill preamble bash block):
5
- * - No output proceed (UP_TO_DATE, disabled, or snoozed)
5
+ * - UP_TO_DATE k=v ... explicit "all current" line; preamble proceeds.
6
+ * Two "quiet" variants share the same prefix so
7
+ * the preamble's split rule treats them all as
8
+ * clean env-checks:
9
+ * `UP_TO_DATE update-check=disabled` — user
10
+ * turned update-check off via config.
11
+ * `UP_TO_DATE update-check=snoozed` — user
12
+ * has an active snooze on the current
13
+ * version key (would-be UPGRADE_AVAILABLE
14
+ * suppressed for this run).
6
15
  * - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
7
16
  * - JUST_UPGRADED <json> → announce what was upgraded, then continue
17
+ * - No output → script bug. Preamble treats empty stdout as
18
+ * a degraded env-check; every legitimate
19
+ * branch (including snooze) emits one of the
20
+ * signals above.
8
21
  *
9
22
  * The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
10
23
  * and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
@@ -2,22 +2,37 @@
2
2
  * mthds-agent update-check — check if binary dependencies need updating.
3
3
  *
4
4
  * Stdout protocol (consumed by skill preamble bash block):
5
- * - No output proceed (UP_TO_DATE, disabled, or snoozed)
5
+ * - UP_TO_DATE k=v ... explicit "all current" line; preamble proceeds.
6
+ * Two "quiet" variants share the same prefix so
7
+ * the preamble's split rule treats them all as
8
+ * clean env-checks:
9
+ * `UP_TO_DATE update-check=disabled` — user
10
+ * turned update-check off via config.
11
+ * `UP_TO_DATE update-check=snoozed` — user
12
+ * has an active snooze on the current
13
+ * version key (would-be UPGRADE_AVAILABLE
14
+ * suppressed for this run).
6
15
  * - UPGRADE_AVAILABLE <json> → trigger upgrade flow (read shared/upgrade-flow.md)
7
16
  * - JUST_UPGRADED <json> → announce what was upgraded, then continue
17
+ * - No output → script bug. Preamble treats empty stdout as
18
+ * a degraded env-check; every legitimate
19
+ * branch (including snooze) emits one of the
20
+ * signals above.
8
21
  *
9
22
  * The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
10
23
  * and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
11
24
  */
12
25
  import { createRequire } from "node:module";
26
+ import semver from "semver";
13
27
  import { agentSuccess } from "../output.js";
14
28
  import { BINARY_RECOVERY } from "../binaries.js";
15
29
  import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
16
30
  import { loadConfig } from "../../config/config.js";
17
31
  import { Runners } from "../../runners/types.js";
18
- import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, } from "../update-cache.js";
32
+ import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, readRemoteCache, readRemoteCacheRaw, writeRemoteCache, clearRemoteCache, } from "../update-cache.js";
19
33
  import { isSnoozed, writeSnooze, clearSnooze, computeVersionKey, } from "../snooze.js";
20
34
  import { checkPluginVersion, detectHost } from "../plugin-version.js";
35
+ import { fetchLatestMthdsAgentNpm, fetchLatestPluginMarketplace, } from "../remote-version.js";
21
36
  const require = createRequire(import.meta.url);
22
37
  const pkg = require("../../../package.json");
23
38
  // ── Main ───────────────────────────────────────────────────────────
@@ -30,13 +45,25 @@ export async function agentUpdateCheck(options) {
30
45
  async function agentUpdateCheckInner(options) {
31
46
  // 1. Check if update-check is disabled
32
47
  const cfg = loadConfig();
33
- if (!cfg.updateCheck)
48
+ if (!cfg.updateCheck) {
49
+ // Explicit signal so the preamble's "no output → WARN" rule does NOT
50
+ // fire on every run for users who deliberately disabled update-check
51
+ // (otherwise their config choice silently turns into a perpetual warning).
52
+ process.stdout.write("UP_TO_DATE update-check=disabled\n");
34
53
  return;
54
+ }
35
55
  // 2. Check for just-upgraded-from marker
36
56
  const upgradeMarker = readAndClearUpgradeMarker();
37
57
  if (upgradeMarker) {
38
58
  clearCache();
39
- const payload = runFreshChecks(cfg.runner);
59
+ // When --force is also set the user has explicitly asked for a
60
+ // clean-slate check; drop snooze + remote cache too so this path
61
+ // honors --force the same way the standalone branch below does.
62
+ if (options.force) {
63
+ clearSnooze();
64
+ clearRemoteCache();
65
+ }
66
+ const payload = await runFreshChecks(cfg.runner);
40
67
  const aggregate = computeAggregate(payload);
41
68
  writeCache({ aggregate, payload });
42
69
  const output = { previous: upgradeMarker, current: payloadVersions(payload) };
@@ -49,16 +76,21 @@ async function agentUpdateCheckInner(options) {
49
76
  process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(payload) + "\n");
50
77
  }
51
78
  }
79
+ // JUST_UPGRADED carries the informational versions already — no UP_TO_DATE
80
+ // chaser needed on this path.
52
81
  return;
53
82
  }
54
83
  // 3. Handle --force
55
84
  if (options.force) {
56
85
  clearCache();
57
86
  clearSnooze();
87
+ // Remote cache has its own 24h TTL independent of the binary checks; a
88
+ // user running --force expects to bypass every cache, including this one.
89
+ clearRemoteCache();
58
90
  }
59
91
  // 4. Handle --snooze
60
92
  if (options.snooze) {
61
- const payload = getOrRefreshPayload(cfg.runner);
93
+ const payload = await getOrRefreshPayload(cfg.runner);
62
94
  const versionKey = computeVersionKey(payload);
63
95
  writeSnooze(versionKey);
64
96
  agentSuccess({ snoozed: true, version_key: versionKey });
@@ -67,39 +99,85 @@ async function agentUpdateCheckInner(options) {
67
99
  // 5. Try cache
68
100
  const cached = readCache();
69
101
  if (cached) {
70
- if (cached.aggregate === "UP_TO_DATE")
102
+ if (cached.aggregate === "UP_TO_DATE") {
103
+ // Re-run fresh checks on cache-UP_TO_DATE rather than trusting the
104
+ // cached versions. Why: when the user manually upgrades a binary outside
105
+ // the upgrade-flow (npm install -g mthds@latest, uv tool upgrade plxt),
106
+ // no JUST_UPGRADED marker is written, so within the 60-min cache TTL
107
+ // the cached versions are stale — and the explicit UP_TO_DATE line we
108
+ // emit would report versions that no longer exist on the host.
109
+ // runFreshChecks internally re-applies the remote overlay, so a sibling
110
+ // --force or independent worker that refreshed the upstream cache still
111
+ // flips us to UPGRADE_AVAILABLE on this path. Cost: ~150ms of binary
112
+ // spawns per invocation; symmetric with the cache-UPGRADE_AVAILABLE
113
+ // branch which already pays this. The cache's remaining role on this
114
+ // branch is just the "we were UP_TO_DATE recently" signal — no payload
115
+ // values are actually trusted.
116
+ const freshPayload = await runFreshChecks(cfg.runner);
117
+ const freshAggregate = computeAggregate(freshPayload);
118
+ writeCache({ aggregate: freshAggregate, payload: freshPayload });
119
+ if (freshAggregate === "UP_TO_DATE") {
120
+ emitUpToDate(freshPayload);
121
+ return;
122
+ }
123
+ // Local state or remote overlay flipped us to UPGRADE_AVAILABLE — emit
124
+ // through the same snooze gate as the cache-UPGRADE_AVAILABLE branch.
125
+ const freshKey = computeVersionKey(freshPayload);
126
+ if (isSnoozed(freshKey)) {
127
+ emitSnoozedSentinel();
128
+ return;
129
+ }
130
+ process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(freshPayload) + "\n");
71
131
  return;
72
- // UPGRADE_AVAILABLE — check snooze first to avoid unnecessary subprocess spawns
132
+ }
133
+ // UPGRADE_AVAILABLE — check snooze first to avoid unnecessary subprocess spawns.
134
+ // Snooze means "user explicitly asked for quiet"; emit the snoozed sentinel
135
+ // so the preamble's "no output → WARN" rule does not fire on every run.
73
136
  const cachedKey = computeVersionKey(cached.payload);
74
- if (isSnoozed(cachedKey))
137
+ if (isSnoozed(cachedKey)) {
138
+ emitSnoozedSentinel();
75
139
  return;
140
+ }
76
141
  // Re-verify to catch manual upgrades (e.g. uv tool install --upgrade)
77
- const freshPayload = runFreshChecks(cfg.runner);
142
+ const freshPayload = await runFreshChecks(cfg.runner);
78
143
  const freshAggregate = computeAggregate(freshPayload);
79
144
  writeCache({ aggregate: freshAggregate, payload: freshPayload });
80
- if (freshAggregate === "UP_TO_DATE")
145
+ if (freshAggregate === "UP_TO_DATE") {
146
+ emitUpToDate(freshPayload);
81
147
  return;
148
+ }
82
149
  const freshKey = computeVersionKey(freshPayload);
83
- if (isSnoozed(freshKey))
150
+ if (isSnoozed(freshKey)) {
151
+ emitSnoozedSentinel();
84
152
  return;
153
+ }
85
154
  process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(freshPayload) + "\n");
86
155
  return;
87
156
  }
88
157
  // 6. Cache miss — run fresh checks
89
- const payload = runFreshChecks(cfg.runner);
158
+ const payload = await runFreshChecks(cfg.runner);
90
159
  const aggregate = computeAggregate(payload);
91
160
  // 7. Emit result BEFORE writing cache — if writeCache throws (e.g. state dir
92
161
  // not creatable), the preamble still gets the signal.
93
162
  if (aggregate !== "UP_TO_DATE") {
94
163
  const versionKey = computeVersionKey(payload);
95
- if (!isSnoozed(versionKey)) {
164
+ if (isSnoozed(versionKey)) {
165
+ // Fresh outdated payload but the user has snoozed this version key —
166
+ // emit the snoozed sentinel rather than staying silent, so the preamble
167
+ // can tell a quiet-by-choice run apart from a broken env-check.
168
+ emitSnoozedSentinel();
169
+ }
170
+ else {
96
171
  process.stdout.write("UPGRADE_AVAILABLE " + JSON.stringify(payload) + "\n");
97
172
  }
98
173
  }
174
+ else {
175
+ emitUpToDate(payload);
176
+ }
99
177
  writeCache({ aggregate, payload });
100
178
  }
101
179
  // ── Helpers ─────────────────────────────────────────────────────────
102
- function runFreshChecks(runner) {
180
+ async function runFreshChecks(runner) {
103
181
  const plxtRecovery = BINARY_RECOVERY["plxt"];
104
182
  if (!plxtRecovery) {
105
183
  throw new Error("Missing binary recovery info for plxt");
@@ -129,6 +207,15 @@ function runFreshChecks(runner) {
129
207
  catch (err) {
130
208
  process.stderr.write(`Warning: plugin version check failed (${err instanceof Error ? err.message : String(err)}). Skipping plugin check.\n`);
131
209
  }
210
+ // Overlay remote upstream probes (npm + GitHub marketplace.json). Same
211
+ // try/catch isolation as the local plugin check above — a remote-layer
212
+ // failure must never crash update-check; we degrade to local-only.
213
+ try {
214
+ await applyRemoteOverlay(payload);
215
+ }
216
+ catch (err) {
217
+ process.stderr.write(`Warning: remote upstream check failed (${err instanceof Error ? err.message : String(err)}). Skipping upstream overlay.\n`);
218
+ }
132
219
  return payload;
133
220
  }
134
221
  function toBinaryEntry(check) {
@@ -141,11 +228,11 @@ function toBinaryEntry(check) {
141
228
  }
142
229
  return entry;
143
230
  }
144
- function getOrRefreshPayload(runner) {
231
+ async function getOrRefreshPayload(runner) {
145
232
  const cached = readCache();
146
233
  if (cached)
147
234
  return cached.payload;
148
- const payload = runFreshChecks(runner);
235
+ const payload = await runFreshChecks(runner);
149
236
  const aggregate = computeAggregate(payload);
150
237
  writeCache({ aggregate, payload });
151
238
  return payload;
@@ -163,4 +250,139 @@ function payloadVersions(payload) {
163
250
  }
164
251
  return result;
165
252
  }
253
+ // ── UP_TO_DATE emission ─────────────────────────────────────────────
254
+ /**
255
+ * Emit the terse UP_TO_DATE line listing the verified installed versions
256
+ * (e.g. `UP_TO_DATE mthds-agent=0.8.1 plxt=0.4.0 plugin=0.11.3`). Replaces
257
+ * the prior "silent success" so the preamble can distinguish a clean
258
+ * env-check from a broken one (truly empty stdout now means a script bug).
259
+ *
260
+ * Optional fields (`pipelex_agent` when runner !== pipelex, `plugin` when
261
+ * no host detected) are omitted entirely rather than written as `=null`.
262
+ */
263
+ function emitUpToDate(payload) {
264
+ const parts = [`mthds-agent=${payload.mthds_agent.v ?? "?"}`];
265
+ parts.push(`plxt=${payload.plxt.v ?? "?"}`);
266
+ if (payload.pipelex_agent) {
267
+ parts.push(`pipelex-agent=${payload.pipelex_agent.v ?? "?"}`);
268
+ }
269
+ if (payload.plugin) {
270
+ parts.push(`plugin=${payload.plugin.v ?? "?"}`);
271
+ }
272
+ process.stdout.write("UP_TO_DATE " + parts.join(" ") + "\n");
273
+ }
274
+ /**
275
+ * Emit the "quiet by snooze" sentinel. Shares the `UP_TO_DATE` prefix so the
276
+ * preamble's split rule treats it as a clean env-check — same shape as
277
+ * `UP_TO_DATE update-check=disabled`. Without this, every snoozed run would
278
+ * trip the preamble's "no output → WARN" rule and the user's explicit "quiet
279
+ * me" choice would silently turn into a perpetual warning.
280
+ */
281
+ function emitSnoozedSentinel() {
282
+ process.stdout.write("UP_TO_DATE update-check=snoozed\n");
283
+ }
284
+ // ── Remote upstream overlay ─────────────────────────────────────────
285
+ /**
286
+ * Mutate `payload` in place to reflect upstream-newer versions. The local
287
+ * payload's `mthds_agent` / `plugin` entries get flipped to `s: "outdated"`
288
+ * when the installed version is older than what's published upstream — npm
289
+ * for the agent, marketplace.json for the plugin. Each comparison is
290
+ * gated on the corresponding remote value being a valid semver string;
291
+ * anything else degrades silently.
292
+ *
293
+ * The local floor check (checkPluginVersion → MIN_PLUGIN_VERSION) runs
294
+ * first and may already have marked plugin outdated. When both signals
295
+ * fire, the larger of the two thresholds wins so the user-facing `r` is
296
+ * always the more demanding requirement.
297
+ */
298
+ async function applyRemoteOverlay(payload) {
299
+ const remote = await getOrRefreshRemoteCache();
300
+ if (!remote)
301
+ return;
302
+ // mthds-agent: own pkg.version vs upstream npm.
303
+ if (remote.mthds_agent_latest) {
304
+ const upstream = semver.coerce(remote.mthds_agent_latest);
305
+ const own = semver.coerce(pkg.version);
306
+ if (upstream && own && semver.gt(upstream.version, own.version)) {
307
+ payload.mthds_agent = {
308
+ s: "outdated",
309
+ v: pkg.version,
310
+ r: `>=${upstream.version}`,
311
+ };
312
+ }
313
+ }
314
+ // Plugin: only when a host was detected (payload.plugin present).
315
+ if (payload.plugin && remote.plugin_latest) {
316
+ const upstream = semver.coerce(remote.plugin_latest);
317
+ if (upstream) {
318
+ if (payload.plugin.s === "ok" && payload.plugin.v) {
319
+ const installed = semver.coerce(payload.plugin.v);
320
+ if (installed && semver.gt(upstream.version, installed.version)) {
321
+ payload.plugin = {
322
+ s: "outdated",
323
+ v: payload.plugin.v,
324
+ r: `>=${upstream.version}`,
325
+ };
326
+ }
327
+ }
328
+ else if (payload.plugin.s === "outdated" && payload.plugin.r) {
329
+ // Floor already flagged — keep the higher of floor.r vs upstream.
330
+ // semver.minVersion(">=0.11.3") returns "0.11.3"; bump payload.r when
331
+ // upstream demands more.
332
+ let floorMin = null;
333
+ try {
334
+ floorMin = semver.minVersion(payload.plugin.r);
335
+ }
336
+ catch {
337
+ floorMin = null;
338
+ }
339
+ if (floorMin && semver.gt(upstream.version, floorMin.version)) {
340
+ payload.plugin = {
341
+ ...payload.plugin,
342
+ r: `>=${upstream.version}`,
343
+ };
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ /**
350
+ * Return cached remote-version data when fresh, otherwise probe both
351
+ * upstream sources in parallel and persist a new cache entry. Returns null
352
+ * only when there's nothing to overlay (no fresh cache and no probe
353
+ * succeeded — common in offline / sandboxed-no-network environments).
354
+ *
355
+ * Partial probe failures preserve the prior raw value for the failing
356
+ * field, so a brief network blip doesn't blank out a previously-known
357
+ * upstream version for up to 24h.
358
+ */
359
+ async function getOrRefreshRemoteCache() {
360
+ const fresh = readRemoteCache();
361
+ if (fresh)
362
+ return fresh;
363
+ const [npmLatest, marketLatest] = await Promise.all([
364
+ fetchLatestMthdsAgentNpm(),
365
+ fetchLatestPluginMarketplace(),
366
+ ]);
367
+ // Preserve prior values for whichever probe(s) failed this round —
368
+ // an old upstream value is more useful than no overlay at all.
369
+ const prior = readRemoteCacheRaw();
370
+ const merged = {
371
+ mthds_agent_latest: npmLatest ?? prior?.mthds_agent_latest ?? null,
372
+ plugin_latest: marketLatest ?? prior?.plugin_latest ?? null,
373
+ };
374
+ // If we have nothing — neither a fresh probe nor a prior — skip the write
375
+ // entirely. A null/null cache entry would just expire the same way 24h
376
+ // later, and writing it suppresses the next attempt unnecessarily.
377
+ if (merged.mthds_agent_latest === null && merged.plugin_latest === null) {
378
+ return null;
379
+ }
380
+ // Only write when at least one probe actually succeeded this round —
381
+ // otherwise we'd be refreshing the cache mtime with stale data and
382
+ // delaying the next real probe by 24h.
383
+ if (npmLatest !== null || marketLatest !== null) {
384
+ writeRemoteCache(merged);
385
+ }
386
+ return merged;
387
+ }
166
388
  //# sourceMappingURL=update-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import type { BinaryCheckEntry } from "./update-cache.js";
13
13
  /** Minimum plugin version this mthds-agent release requires. */
14
- export declare const MIN_PLUGIN_VERSION = ">=0.11.0";
14
+ export declare const MIN_PLUGIN_VERSION = ">=0.12.0";
15
15
  /** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
16
16
  export declare const PLUGIN_KEYS: readonly ["mthds@mthds-plugins", "mthds-dev@mthds-plugins"];
17
17
  /** Path to Claude Code's installed plugins registry. */
@@ -15,7 +15,7 @@ import { homedir } from "node:os";
15
15
  import semver from "semver";
16
16
  // ── Constants ──────────────────────────────────────────────────────
17
17
  /** Minimum plugin version this mthds-agent release requires. */
18
- export const MIN_PLUGIN_VERSION = ">=0.11.0";
18
+ export const MIN_PLUGIN_VERSION = ">=0.12.0";
19
19
  /** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
20
20
  export const PLUGIN_KEYS = [
21
21
  "mthds@mthds-plugins",
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Remote upstream version probes for mthds-agent and the mthds plugin.
3
+ *
4
+ * Closes the "silent when both stale" blind spot in the env-check: the
5
+ * existing local floor checks (plugin's `min_mthds_version` and the agent's
6
+ * `MIN_PLUGIN_VERSION`) compare two artifacts that are already on disk and
7
+ * agree with each other when both are equally behind. These probes ask the
8
+ * authoritative upstream sources directly — npm for `mthds`, GitHub raw for
9
+ * the published `marketplace.json` — so a "user lags on both" scenario still
10
+ * produces an UPGRADE_AVAILABLE signal.
11
+ *
12
+ * Both functions are infallible from the caller's perspective: any network
13
+ * error, timeout, non-2xx, parse error, or missing field returns null. The
14
+ * caller treats null as "no upstream information available, leave the local
15
+ * payload alone".
16
+ */
17
+ /**
18
+ * Probe npm for the latest published `mthds` version. Returns the version
19
+ * string (e.g. `"0.8.1"`) or null on any failure.
20
+ */
21
+ export declare function fetchLatestMthdsAgentNpm(): Promise<string | null>;
22
+ /**
23
+ * Probe the published `marketplace.json` on the mthds-plugins repo for the
24
+ * latest plugin version. Returns the version string (e.g. `"0.11.3"`) or
25
+ * null on any failure.
26
+ *
27
+ * The marketplace.json carries one global `metadata.version` for the whole
28
+ * marketplace; all plugins inside it (mthds, mthds-dev) move together, so a
29
+ * single version is enough to drive the upstream check.
30
+ */
31
+ export declare function fetchLatestPluginMarketplace(): Promise<string | null>;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Remote upstream version probes for mthds-agent and the mthds plugin.
3
+ *
4
+ * Closes the "silent when both stale" blind spot in the env-check: the
5
+ * existing local floor checks (plugin's `min_mthds_version` and the agent's
6
+ * `MIN_PLUGIN_VERSION`) compare two artifacts that are already on disk and
7
+ * agree with each other when both are equally behind. These probes ask the
8
+ * authoritative upstream sources directly — npm for `mthds`, GitHub raw for
9
+ * the published `marketplace.json` — so a "user lags on both" scenario still
10
+ * produces an UPGRADE_AVAILABLE signal.
11
+ *
12
+ * Both functions are infallible from the caller's perspective: any network
13
+ * error, timeout, non-2xx, parse error, or missing field returns null. The
14
+ * caller treats null as "no upstream information available, leave the local
15
+ * payload alone".
16
+ */
17
+ const FETCH_TIMEOUT_MS = 2_000;
18
+ const NPM_LATEST_URL = "https://registry.npmjs.org/mthds/latest";
19
+ const MARKETPLACE_URL = "https://raw.githubusercontent.com/mthds-ai/mthds-plugins/main/.claude-plugin/marketplace.json";
20
+ /**
21
+ * Fetch JSON from `url` with a hard 2s timeout. Returns the parsed body on
22
+ * 2xx, or null on any failure (timeout, network, non-2xx, malformed JSON).
23
+ * Never throws.
24
+ */
25
+ async function fetchJson(url) {
26
+ const controller = new AbortController();
27
+ const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
28
+ try {
29
+ const res = await fetch(url, {
30
+ signal: controller.signal,
31
+ headers: { accept: "application/json" },
32
+ });
33
+ if (!res.ok)
34
+ return null;
35
+ return (await res.json());
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ finally {
41
+ clearTimeout(timeoutId);
42
+ }
43
+ }
44
+ /**
45
+ * Probe npm for the latest published `mthds` version. Returns the version
46
+ * string (e.g. `"0.8.1"`) or null on any failure.
47
+ */
48
+ export async function fetchLatestMthdsAgentNpm() {
49
+ const body = await fetchJson(NPM_LATEST_URL);
50
+ if (!body || typeof body !== "object")
51
+ return null;
52
+ const version = body.version;
53
+ return typeof version === "string" && version.length > 0 ? version : null;
54
+ }
55
+ /**
56
+ * Probe the published `marketplace.json` on the mthds-plugins repo for the
57
+ * latest plugin version. Returns the version string (e.g. `"0.11.3"`) or
58
+ * null on any failure.
59
+ *
60
+ * The marketplace.json carries one global `metadata.version` for the whole
61
+ * marketplace; all plugins inside it (mthds, mthds-dev) move together, so a
62
+ * single version is enough to drive the upstream check.
63
+ */
64
+ export async function fetchLatestPluginMarketplace() {
65
+ const body = await fetchJson(MARKETPLACE_URL);
66
+ if (!body || typeof body !== "object")
67
+ return null;
68
+ const metadata = body.metadata;
69
+ if (!metadata || typeof metadata !== "object")
70
+ return null;
71
+ const version = metadata.version;
72
+ return typeof version === "string" && version.length > 0 ? version : null;
73
+ }
74
+ //# sourceMappingURL=remote-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-version.js","sourceRoot":"","sources":["../../src/agent/remote-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,MAAM,cAAc,GAAG,yCAAyC,CAAC;AACjE,MAAM,eAAe,GACnB,+FAA+F,CAAC;AAElG;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAI,IAAgC,CAAC,OAAO,CAAC;IAC1D,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,QAAQ,GAAI,IAAgC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAI,QAAoC,CAAC,OAAO,CAAC;IAC9D,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC"}
@@ -63,6 +63,17 @@ export declare const STATE_DIR: string;
63
63
  * created by user A would fail user B's ownership check and permanently deny
64
64
  * them the fallback. Exported for snooze.ts. */
65
65
  export declare const FALLBACK_DIR: string;
66
+ /** Remote upstream probes (npm + GitHub marketplace.json) are cached for 24h.
67
+ * Distinct from the local-binary cache above because the invalidation
68
+ * semantics differ — local binaries change on install; remote upstreams move
69
+ * on someone else's release schedule, so a TTL is the only signal. */
70
+ export declare const TTL_REMOTE_FETCH_MS: number;
71
+ /** Shorter TTL applied when the cached entry has any null field (a previous
72
+ * probe failed and we wrote the merged-with-prior partial). Without this, a
73
+ * single transient probe failure would lock the null for 24h — exactly the
74
+ * signal the remote overlay was built to surface. 1h gives us a reasonable
75
+ * retry cadence without hot-looping on every preamble invocation. */
76
+ export declare const TTL_REMOTE_FETCH_PARTIAL_MS: number;
66
77
  export declare const SANDBOX_WRITE_ERRORS: ReadonlySet<string>;
67
78
  /** Compute aggregate status from a payload. */
68
79
  export declare function computeAggregate(payload: CachePayload): AggregateStatus;
@@ -147,3 +158,33 @@ export declare function invalidateFileAt(path: string): boolean;
147
158
  * regain write access to its directory.
148
159
  */
149
160
  export declare function readAndClearUpgradeMarker(): Record<string, unknown> | null;
161
+ export interface RemoteCachePayload {
162
+ /** Latest mthds-agent version observed on npm, or null if the last probe
163
+ * failed (network/timeout/parse). Null is kept distinct from absent so a
164
+ * partial success (e.g. plugin probe worked, npm probe didn't) can
165
+ * preserve the working half across cache writes. */
166
+ mthds_agent_latest: string | null;
167
+ /** Latest mthds plugin version observed in marketplace.json (the global
168
+ * `metadata.version`), or null on probe failure. */
169
+ plugin_latest: string | null;
170
+ }
171
+ /**
172
+ * Read the remote-version cache. Returns null when neither path holds an
173
+ * unexpired entry — the caller then knows to re-probe upstream. When both
174
+ * paths hold valid entries, the newer one wins (same policy as readCache).
175
+ */
176
+ export declare function readRemoteCache(): RemoteCachePayload | null;
177
+ /**
178
+ * Read the remote-version cache, ignoring the TTL. Used by the refresh path
179
+ * to preserve a previously-fetched value when the current probe for one of
180
+ * the fields fails — better an old upstream value than no overlay at all.
181
+ */
182
+ export declare function readRemoteCacheRaw(): RemoteCachePayload | null;
183
+ /**
184
+ * Write the remote-version cache. Same primary→fallback policy as writeCache.
185
+ * Best-effort: a write failure emits one warning per process and is otherwise
186
+ * absorbed — the next run will simply re-probe.
187
+ */
188
+ export declare function writeRemoteCache(payload: RemoteCachePayload): void;
189
+ /** Delete the remote cache files. Used by `--force`. */
190
+ export declare function clearRemoteCache(): void;
@@ -52,10 +52,23 @@ const O_NOFOLLOW = fsConstants.O_NOFOLLOW ?? 0;
52
52
  const WRITE_FLAGS = fsConstants.O_WRONLY | fsConstants.O_CREAT | fsConstants.O_TRUNC | O_NOFOLLOW;
53
53
  const PRIMARY_CACHE_PATH = join(STATE_DIR, "last-update-check");
54
54
  const PRIMARY_MARKER_PATH = join(STATE_DIR, "just-upgraded-from");
55
+ const PRIMARY_REMOTE_PATH = join(STATE_DIR, "last-remote-fetch");
55
56
  const FALLBACK_CACHE_PATH = join(FALLBACK_DIR, "last-update-check");
56
57
  const FALLBACK_MARKER_PATH = join(FALLBACK_DIR, "just-upgraded-from");
58
+ const FALLBACK_REMOTE_PATH = join(FALLBACK_DIR, "last-remote-fetch");
57
59
  const TTL_UP_TO_DATE_MS = 60 * MS_PER_MINUTE; // 60 min
58
60
  const TTL_UPGRADE_AVAILABLE_MS = 720 * MS_PER_MINUTE; // 720 min (12 hours)
61
+ /** Remote upstream probes (npm + GitHub marketplace.json) are cached for 24h.
62
+ * Distinct from the local-binary cache above because the invalidation
63
+ * semantics differ — local binaries change on install; remote upstreams move
64
+ * on someone else's release schedule, so a TTL is the only signal. */
65
+ export const TTL_REMOTE_FETCH_MS = 24 * 60 * MS_PER_MINUTE; // 24h
66
+ /** Shorter TTL applied when the cached entry has any null field (a previous
67
+ * probe failed and we wrote the merged-with-prior partial). Without this, a
68
+ * single transient probe failure would lock the null for 24h — exactly the
69
+ * signal the remote overlay was built to surface. 1h gives us a reasonable
70
+ * retry cadence without hot-looping on every preamble invocation. */
71
+ export const TTL_REMOTE_FETCH_PARTIAL_MS = 60 * MS_PER_MINUTE; // 1h
59
72
  // Real markers are consumed within seconds (skill flow re-runs preamble
60
73
  // immediately after upgrade). Anything markedly older is almost certainly
61
74
  // stuck because the sandbox blocked cleanup last time — ignore it instead of
@@ -115,6 +128,7 @@ let warnedAboutCacheWrite = false;
115
128
  let warnedAboutMarkerWrite = false;
116
129
  let warnedAboutMarkerClear = false;
117
130
  let warnedAboutFallbackUnsafe = false;
131
+ let warnedAboutRemoteWrite = false;
118
132
  // ── Functions ──────────────────────────────────────────────────────
119
133
  /** Compute aggregate status from a payload. */
120
134
  export function computeAggregate(payload) {
@@ -560,4 +574,119 @@ export function readAndClearUpgradeMarker() {
560
574
  return null;
561
575
  return chosen.data;
562
576
  }
577
+ function isValidRemotePayload(p) {
578
+ if (!p || typeof p !== "object")
579
+ return false;
580
+ const obj = p;
581
+ for (const key of ["mthds_agent_latest", "plugin_latest"]) {
582
+ const v = obj[key];
583
+ if (v !== null && typeof v !== "string")
584
+ return false;
585
+ }
586
+ return true;
587
+ }
588
+ function readRemoteAt(path, enforceTtl) {
589
+ let mtimeMs;
590
+ let content;
591
+ try {
592
+ mtimeMs = statSync(path).mtimeMs;
593
+ content = readFileSync(path, "utf-8");
594
+ }
595
+ catch {
596
+ return null;
597
+ }
598
+ let parsed;
599
+ try {
600
+ parsed = JSON.parse(content);
601
+ }
602
+ catch {
603
+ return null;
604
+ }
605
+ if (!isValidRemotePayload(parsed))
606
+ return null;
607
+ if (enforceTtl) {
608
+ const age = Date.now() - mtimeMs;
609
+ // Negative age beyond 1 minute means clock skew — treat as expired.
610
+ if (age < -MS_PER_MINUTE)
611
+ return null;
612
+ // A partial entry (any null field) uses the shorter TTL so a previously
613
+ // failed probe gets retried within 1h instead of being locked for 24h.
614
+ // The complete path keeps the full 24h TTL — successful upstream data is
615
+ // long-lived. The raw reader (enforceTtl=false) ignores both TTLs because
616
+ // its caller only wants the prior payload to preserve working halves.
617
+ const isPartial = parsed.mthds_agent_latest === null || parsed.plugin_latest === null;
618
+ const ttl = isPartial ? TTL_REMOTE_FETCH_PARTIAL_MS : TTL_REMOTE_FETCH_MS;
619
+ if (age > ttl)
620
+ return null;
621
+ }
622
+ return { payload: parsed, mtimeMs };
623
+ }
624
+ /** Pick the newer of the two paths' payloads when both have valid contents,
625
+ * honoring the dual-path discipline. `enforceTtl` toggles between the
626
+ * user-facing 24h-gated reader and the preservation-only raw reader. */
627
+ function readRemoteEither(enforceTtl) {
628
+ const primary = readRemoteAt(PRIMARY_REMOTE_PATH, enforceTtl);
629
+ const fallback = ensureFallbackDir(false).usable
630
+ ? readRemoteAt(FALLBACK_REMOTE_PATH, enforceTtl)
631
+ : null;
632
+ if (!primary)
633
+ return fallback?.payload ?? null;
634
+ if (!fallback)
635
+ return primary.payload;
636
+ return fallback.mtimeMs > primary.mtimeMs
637
+ ? fallback.payload
638
+ : primary.payload;
639
+ }
640
+ /**
641
+ * Read the remote-version cache. Returns null when neither path holds an
642
+ * unexpired entry — the caller then knows to re-probe upstream. When both
643
+ * paths hold valid entries, the newer one wins (same policy as readCache).
644
+ */
645
+ export function readRemoteCache() {
646
+ return readRemoteEither(true);
647
+ }
648
+ /**
649
+ * Read the remote-version cache, ignoring the TTL. Used by the refresh path
650
+ * to preserve a previously-fetched value when the current probe for one of
651
+ * the fields fails — better an old upstream value than no overlay at all.
652
+ */
653
+ export function readRemoteCacheRaw() {
654
+ return readRemoteEither(false);
655
+ }
656
+ /**
657
+ * Write the remote-version cache. Same primary→fallback policy as writeCache.
658
+ * Best-effort: a write failure emits one warning per process and is otherwise
659
+ * absorbed — the next run will simply re-probe.
660
+ */
661
+ export function writeRemoteCache(payload) {
662
+ const content = JSON.stringify(payload) + "\n";
663
+ const res = writeWithFallback(STATE_DIR, PRIMARY_REMOTE_PATH, FALLBACK_REMOTE_PATH, content);
664
+ if (res.ok)
665
+ return;
666
+ emitRemoteWriteWarning(res.code, res.fallbackCode);
667
+ }
668
+ function emitRemoteWriteWarning(primaryCode, fallbackCode) {
669
+ if (warnedAboutRemoteWrite)
670
+ return;
671
+ warnedAboutRemoteWrite = true;
672
+ const detail = fallbackCode
673
+ ? `primary=${primaryCode ?? "?"}, fallback=${fallbackCode}`
674
+ : (primaryCode ?? "?");
675
+ process.stderr.write(`Warning: could not write remote-version cache (${detail}). Upstream check will run again next time.\n`);
676
+ }
677
+ /** Delete the remote cache files. Used by `--force`. */
678
+ export function clearRemoteCache() {
679
+ const paths = [PRIMARY_REMOTE_PATH];
680
+ if (ensureFallbackDir(false).usable)
681
+ paths.push(FALLBACK_REMOTE_PATH);
682
+ for (const p of paths) {
683
+ try {
684
+ unlinkSync(p);
685
+ }
686
+ catch {
687
+ // Same rationale as clearCache: missing or sandbox-blocked unlink is
688
+ // not a problem — writeRemoteCache also can't have written there.
689
+ }
690
+ }
691
+ }
563
692
  //# sourceMappingURL=update-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/agent/update-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-cache.js","sourceRoot":"","sources":["../../src/agent/update-cache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mthds",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "CLI and SDK for MTHDS — the open standard for executable AI methods. Install, execute, and manage methods.",
5
5
  "license": "MIT",
6
6
  "repository": {