mthds 0.10.0 → 0.12.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 (39) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/binaries.js +2 -2
  3. package/dist/agent/commands/api-commands.d.ts +17 -0
  4. package/dist/agent/commands/api-commands.js +67 -7
  5. package/dist/agent/commands/api-commands.js.map +1 -1
  6. package/dist/agent/commands/codex-hook.d.ts +59 -19
  7. package/dist/agent/commands/codex-hook.js +97 -41
  8. package/dist/agent/commands/codex-hook.js.map +1 -1
  9. package/dist/agent/output.d.ts +12 -0
  10. package/dist/agent/output.js +21 -0
  11. package/dist/agent/output.js.map +1 -1
  12. package/dist/agent/plugin-version.d.ts +1 -1
  13. package/dist/agent/plugin-version.js +1 -1
  14. package/dist/cli/commands/install.js +13 -1
  15. package/dist/cli/commands/install.js.map +1 -1
  16. package/dist/cli/commands/utils.d.ts +8 -0
  17. package/dist/cli/commands/utils.js +9 -0
  18. package/dist/cli/commands/utils.js.map +1 -1
  19. package/dist/cli/commands/validate.js +22 -2
  20. package/dist/cli/commands/validate.js.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/protocol/models.d.ts +63 -8
  24. package/dist/protocol/models.js +1 -1
  25. package/dist/protocol/protocol.d.ts +13 -5
  26. package/dist/runners/api/client.d.ts +21 -5
  27. package/dist/runners/api/client.js +48 -14
  28. package/dist/runners/api/client.js.map +1 -1
  29. package/dist/runners/api/exceptions.d.ts +16 -1
  30. package/dist/runners/api/exceptions.js +16 -1
  31. package/dist/runners/api/exceptions.js.map +1 -1
  32. package/dist/runners/api/models.d.ts +107 -1
  33. package/dist/runners/pipelex/runner.d.ts +2 -2
  34. package/dist/runners/pipelex/runner.js +21 -3
  35. package/dist/runners/pipelex/runner.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/agent/commands/validate.d.ts +0 -18
  38. package/dist/agent/commands/validate.js +0 -118
  39. package/dist/agent/commands/validate.js.map +0 -1
@@ -21,9 +21,21 @@ export type AgentErrorDomain = (typeof AGENT_ERROR_DOMAINS)[keyof typeof AGENT_E
21
21
  export declare const AGENT_ERROR_HINTS: Record<string, string>;
22
22
  export type { BinaryRecoveryInfo };
23
23
  export declare function agentSuccess(result: Record<string, unknown>): void;
24
+ /** Emit a server-rendered Markdown success to stdout (exit 0) — the `--format markdown` valid arm. */
25
+ export declare function agentMarkdownSuccess(markdown: string): void;
26
+ /**
27
+ * Emit a server-rendered Markdown failure to stderr + `process.exit(1)` — the
28
+ * `--format markdown` invalid arm (a produced negative verdict). Mirrors the
29
+ * local CLI, which writes the failure Markdown to stderr and exits non-zero.
30
+ */
31
+ export declare function agentMarkdownError(markdown: string): never;
24
32
  export declare function agentError(message: string, errorType: string, extras?: {
25
33
  hint?: string;
26
34
  error_domain?: AgentErrorDomain;
27
35
  retryable?: boolean;
28
36
  recovery?: BinaryRecoveryInfo;
37
+ /** Verdict discriminant on a validate failure — `false` rides the envelope (mirrors the Python agent CLI). */
38
+ is_valid?: boolean;
39
+ /** Structured per-error diagnostics on an invalid-bundle verdict (the `/validate` 200 InvalidReport arm). */
40
+ validation_errors?: unknown[];
29
41
  }): never;
@@ -24,6 +24,7 @@ export const AGENT_ERROR_HINTS = {
24
24
  ConfigError: "Run `mthds-agent config list` to see current configuration.",
25
25
  RunnerError: "Check that the runner is properly configured.",
26
26
  ValidationError: "Check the .mthds bundle for syntax or schema errors.",
27
+ ValidateBundleError: "The bundle is invalid — see validation_errors for the per-error diagnostics.",
27
28
  InstallError: "Check the address and try again.",
28
29
  PackageError: "Check the METHODS.toml file and try again.",
29
30
  };
@@ -31,6 +32,20 @@ export const AGENT_ERROR_HINTS = {
31
32
  export function agentSuccess(result) {
32
33
  process.stdout.write(JSON.stringify(result, null, 2) + "\n");
33
34
  }
35
+ // ── Markdown output (validate --format markdown) ──────────────────────
36
+ /** Emit a server-rendered Markdown success to stdout (exit 0) — the `--format markdown` valid arm. */
37
+ export function agentMarkdownSuccess(markdown) {
38
+ process.stdout.write(markdown.endsWith("\n") ? markdown : markdown + "\n");
39
+ }
40
+ /**
41
+ * Emit a server-rendered Markdown failure to stderr + `process.exit(1)` — the
42
+ * `--format markdown` invalid arm (a produced negative verdict). Mirrors the
43
+ * local CLI, which writes the failure Markdown to stderr and exits non-zero.
44
+ */
45
+ export function agentMarkdownError(markdown) {
46
+ process.stderr.write(markdown.endsWith("\n") ? markdown : markdown + "\n");
47
+ process.exit(1);
48
+ }
34
49
  // ── Error output ─────────────────────────────────────────────────────
35
50
  export function agentError(message, errorType, extras) {
36
51
  const payload = {
@@ -46,6 +61,12 @@ export function agentError(message, errorType, extras) {
46
61
  if (extras?.recovery) {
47
62
  payload.recovery = extras.recovery;
48
63
  }
64
+ if (extras?.is_valid !== undefined) {
65
+ payload.is_valid = extras.is_valid;
66
+ }
67
+ if (extras?.validation_errors !== undefined) {
68
+ payload.validation_errors = extras.validation_errors;
69
+ }
49
70
  // Remove undefined values for cleaner output
50
71
  for (const key of Object.keys(payload)) {
51
72
  if (payload[key] === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/agent/output.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,wEAAwE;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACV,CAAC;AAKX,wEAAwE;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,mBAAmB,EACjB,kEAAkE;IACpE,aAAa,EAAE,4CAA4C;IAC3D,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE,+CAA+C;IAC5D,eAAe,EAAE,sDAAsD;IACvE,YAAY,EAAE,kCAAkC;IAChD,YAAY,EACV,4CAA4C;CAC/C,CAAC;AAKF,wEAAwE;AAExE,MAAM,UAAU,YAAY,CAAC,MAA+B;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,wEAAwE;AAExE,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,SAAiB,EACjB,MAKC;IAED,MAAM,OAAO,GAA4B;QACvC,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,iBAAiB,CAAC,SAAS,CAAC,IAAI,SAAS;QAC/D,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,SAAS;KAChD,CAAC;IACF,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,6CAA6C;IAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/agent/output.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.12.0";
14
+ export declare const MIN_PLUGIN_VERSION = ">=0.14.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.12.0";
18
+ export const MIN_PLUGIN_VERSION = ">=0.14.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",
@@ -152,10 +152,22 @@ export async function installMethod(options) {
152
152
  }
153
153
  valSpinner.start(`Validating ${method.name}...`);
154
154
  try {
155
- await runner.validate(contents);
155
+ const report = await runner.validate(contents);
156
+ if (report.is_valid === false) {
157
+ // A produced "invalid" verdict (the 200 InvalidReport arm) — surface the
158
+ // per-error diagnostics, not just the summary, so failures are debuggable.
159
+ valSpinner.stop(`Validation failed: ${method.name}`);
160
+ p.log.error(`${method.name}: ${report.message}`);
161
+ for (const item of report.validation_errors) {
162
+ p.log.error(` [${item.category}] ${item.message}`);
163
+ }
164
+ allValid = false;
165
+ continue;
166
+ }
156
167
  valSpinner.stop(`Validated ${method.name}`);
157
168
  }
158
169
  catch (err) {
170
+ // A no-verdict condition (a local CLI runner raising, or a transport fault).
159
171
  valSpinner.stop(`Validation failed: ${method.name}`);
160
172
  p.log.error(`${method.name}: ${err.message}`);
161
173
  allValid = false;
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,4BAA4B,CAAC;IACjE,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAKnC;IACC,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAEzB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEvD,0CAA0C;IAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,IAAI,QAAsB,CAAC;IAE3B,gCAAgC;IAChC,IAAI,OAA2B,CAAC;IAEhC,IAAI,GAAG,EAAE,CAAC;QACR,CAAC,CAAC,OAAO,CAAC,0BAA0B,GAAG,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAC3C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QAE5C,iFAAiF;QACjF,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,CAAC,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,CAAC,CAAC,OAAO,CAAC,0BAA0B,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjH,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACrC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAClE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iCAAiC;IACjC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3E,CAAC,CAAC,GAAG,CAAC,KAAK,CACT,WAAW,YAAY,mCAAmC,SAAS,IAAI,QAAQ,EAAE,CAClF,CAAC;YACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAE7C,CAAC,CAAC,GAAG,CAAC,IAAI,CACR;QACE,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,UAAU,WAAW,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,QAAQ,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,UAAU,EAAE;KACxL,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,qBAAqB;IACrB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,CAAC,CAAC,GAAG,CAAC,OAAO,CACX;YACE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE;YACjF,KAAK,GAAG,CAAC,WAAW,EAAE;YACtB,KAAK,SAAS,eAAe,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,GAAG,CAAC,OAAO,CACX,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,OAAO,EAAE,CACrD,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,aAAa,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,GAAG;YACpB,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,sBAAsB,EAAE;YACvD,CAAC,CAAC,SAAS,CAAC;QACd,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,UAAU,GAAG,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,OAAO,CACX,oDAAoD;YACpD,2BAA2B,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAC1E,CAAC;QACF,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,6CAA6C;IAC7C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,sBAAsB;YAClC,CAAC;YAED,UAAU,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YACxE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAGD,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,MAAM,CAAkB;QACvD,OAAO,EAAE,6CAA6C;QACtD,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,eAAe,CAAC,KAAK;gBAC5B,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,UAAU;aACjB;YACD;gBACE,KAAK,EAAE,eAAe,CAAC,MAAM;gBAC7B,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sFAAsF;IACtF,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACnC,cAAc,CAAC,KAAK,CAClB,UAAU,KAAK,CAAC;QACd,CAAC,CAAC,eAAe,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,MAAM;QAChD,CAAC,CAAC,cAAc,UAAU,aAAa,CAC1C,CAAC;IACF,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAExD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,KAAK,CAAC;YAC9B,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,SAAS,eAAe,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC5D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,8BAA8B;IAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/F,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,OAAO,CACX,OAAO,MAAM,CAAC,OAAO,iDAAiD;YACtE,wBAAwB,MAAM,CAAC,OAAO,eAAe,MAAM,cAAc,MAAM,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,iFAAiF;YAC1F,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,aAAa,EAAE,CAAC;YACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  export declare function maskApiKey(key: string): string;
2
2
  import { PipelexRunner } from "../../runners/pipelex/runner.js";
3
+ import { MthdsApiClient } from "../../runners/api/client.js";
3
4
  import type { Runner } from "../../runners/types.js";
4
5
  export declare function isPipelexRunner(runner: Runner): runner is PipelexRunner;
6
+ /**
7
+ * Narrow to the concrete API client. The `mthds_sources` per-content attribution
8
+ * argument is a Pipelex-API extension (not part of the pure `MTHDSProtocol`), so
9
+ * reaching it requires the concrete client — this guard is the type-safe way to
10
+ * do that without polluting the protocol interface.
11
+ */
12
+ export declare function isApiRunner(runner: Runner): runner is MthdsApiClient;
5
13
  /**
6
14
  * Extract raw args after a given command keyword, filtering out
7
15
  * --runner / -L / --library-dir (consumed by mthds, not forwarded).
@@ -9,6 +9,15 @@ import { Runners } from "../../runners/types.js";
9
9
  export function isPipelexRunner(runner) {
10
10
  return runner.type === Runners.PIPELEX;
11
11
  }
12
+ /**
13
+ * Narrow to the concrete API client. The `mthds_sources` per-content attribution
14
+ * argument is a Pipelex-API extension (not part of the pure `MTHDSProtocol`), so
15
+ * reaching it requires the concrete client — this guard is the type-safe way to
16
+ * do that without polluting the protocol interface.
17
+ */
18
+ export function isApiRunner(runner) {
19
+ return runner.type === Runners.API;
20
+ }
12
21
  /**
13
22
  * Extract raw args after a given command keyword, filtering out
14
23
  * --runner / -L / --library-dir (consumed by mthds, not forwarded).
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/cli/commands/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAGD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,SAAiB;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QACpB,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;QAC9B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3E,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/cli/commands/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC;IAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAID,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,SAAiB;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QACpB,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;QAC9B,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3E,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import * as p from "@clack/prompts";
3
3
  import { printLogo } from "./index.js";
4
- import { isPipelexRunner, extractPassthroughArgs } from "./utils.js";
4
+ import { isPipelexRunner, isApiRunner, extractPassthroughArgs } from "./utils.js";
5
5
  import { createRunner } from "../../runners/registry.js";
6
6
  async function validateWithPipelexPassthrough(introLabel, fallbackMsg, options) {
7
7
  printLogo();
@@ -80,12 +80,32 @@ export async function validatePipe(target, options) {
80
80
  const s = p.spinner();
81
81
  s.start("Validating...");
82
82
  try {
83
- await runner.validate([mthdsContent]);
83
+ // Name the submitted file so cross-file diagnostics resolve the owning file.
84
+ // `mthds_sources` is a Pipelex-API extension carried only by the concrete
85
+ // client (not the pure protocol) — reach it through `isApiRunner`.
86
+ const report = isApiRunner(runner)
87
+ ? await runner.validate([mthdsContent], false, [bundlePath])
88
+ : await runner.validate([mthdsContent]);
89
+ if (report.is_valid === false) {
90
+ // A produced "invalid" verdict (the 200 InvalidReport arm) — report the
91
+ // diagnostics and exit non-zero, rather than mistaking a 200 for success.
92
+ s.stop("Validation failed.");
93
+ p.log.error(report.message);
94
+ for (const item of report.validation_errors) {
95
+ // The server attributes `source` from `mthds_sources`; fall back to the
96
+ // path the user passed so a diagnostic always names its file.
97
+ const source = item.source ?? bundlePath;
98
+ p.log.error(`${source}: [${item.category}] ${item.message}`);
99
+ }
100
+ p.outro("");
101
+ process.exit(1);
102
+ }
84
103
  s.stop("Validation passed.");
85
104
  p.log.success("MTHDS content validated successfully");
86
105
  p.outro("Done");
87
106
  }
88
107
  catch (err) {
108
+ // A no-verdict condition (a local CLI runner raising, or a transport fault).
89
109
  s.stop("Validation failed.");
90
110
  p.log.error(err.message);
91
111
  p.outro("");
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/cli/commands/validate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export { PipelineRequestError } from "./protocol/exceptions.js";
15
15
  export { ApiResponseError, ApiUnreachableError, ClientAuthenticationError, PipelineExecuteTimeoutError, RunFailedError, RunTimeoutError, RunStillRunningError, RunLifecycleUnavailableError, } from "./runners/api/exceptions.js";
16
16
  export type { RunRequest, StartRequest, RunOptions, StartOptions, ExtensionOptions, } from "./protocol/options.js";
17
17
  export { MTHDS_PROTOCOL_VERSION, MODEL_CATEGORIES } from "./protocol/models.js";
18
- export type { RunResultExecute, RunResultStart, ModelCategory, ModelInfo, ModelDeck, ValidationReport, VersionInfo, } from "./protocol/models.js";
18
+ export type { RunResultExecute, RunResultStart, ModelCategory, ModelInfo, ModelDeck, ValidationReport, ValidationError, InvalidValidationReport, ValidationResult, VersionInfo, } from "./protocol/models.js";
19
19
  export type { VariableMultiplicity, PipeOutputAbstract } from "./protocol/pipe_output.js";
20
20
  export type { StuffContentOrData, PipelineInputs } from "./protocol/pipeline_inputs.js";
21
21
  export { conceptRef } from "./protocol/concept.js";
@@ -24,4 +24,4 @@ export type { StuffAbstract, StuffContentAbstract } from "./protocol/stuff.js";
24
24
  export type { WorkingMemoryAbstract } from "./protocol/working_memory.js";
25
25
  export { isTerminalRunStatus, isSuccessRunStatus } from "./runners/api/runs.js";
26
26
  export type { RunStatus, RunPublic, RunRead, RunResults, RunResultState, WaitForResultOptions, } from "./runners/api/runs.js";
27
- export type { DictStuff, DictWorkingMemory, DictPipeOutput, DictRunResultExecute, } from "./runners/api/models.js";
27
+ export type { DictStuff, DictWorkingMemory, DictPipeOutput, DictRunResultExecute, PipelexValidationReport, PipelexInvalidReport, PipelexValidationResult, ValidatedPipeEntry, DryRunStatus, ValidationErrorItem, ValidationErrorCategory, } from "./runners/api/models.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wEAAwE;AACxE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAK/E,wEAAwE;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AAWrC,wEAAwE;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAahF,yEAAyE;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wEAAwE;AACxE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAK/E,wEAAwE;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AAWrC,wEAAwE;AACxE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgBhF,yEAAyE;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD,yEAAyE;AACzE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * POST /execute : -> RunResultExecute (200: pipeline_run_id + pipe_output)
6
6
  * POST /start : -> RunResultStart (202: pipeline_run_id only)
7
- * POST /validate : -> ValidationReport
7
+ * POST /validate : -> ValidationResult (200: discriminated on `is_valid`)
8
8
  * GET /models : -> ModelDeck
9
9
  * GET /version : -> VersionInfo
10
10
  *
@@ -67,17 +67,63 @@ export interface ModelDeck {
67
67
  [extension: string]: unknown;
68
68
  }
69
69
  /**
70
- * Verdict of `POST /validate` for a VALID bundle — the 200 status IS the verdict.
70
+ * Verdict of `POST /validate` for a VALID bundle — the `is_valid: true` arm of
71
+ * the 200-diagnostic response union ({@link ValidationResult}).
71
72
  *
72
- * Failures never reach this shape they are RFC 7807 problems (HTTP 422,
73
- * surfaced as `ApiResponseError`). The protocol declares no body fields;
74
- * implementations may include their own artifacts (parsed structures, graphs,
75
- * anything else), preserved here as extension fields.
73
+ * `/validate` is a diagnostic endpoint: every verdict it can produce valid,
74
+ * invalid, or valid-but-not-runnable rides a **200**, discriminated in the
75
+ * body on `is_valid`. Non-2xx is reserved for the cases where *no verdict could
76
+ * be produced* (a malformed request body, an `mthds_sources` length mismatch,
77
+ * auth, a server fault) — those surface as `ApiResponseError`. The protocol
78
+ * declares no further body fields; implementations may include their own
79
+ * artifacts (parsed structures, graphs, anything else), preserved here as
80
+ * extension fields.
76
81
  */
77
82
  export interface ValidationReport {
78
- /** Implementation extension fields (e.g. `blueprint`, `graph_spec`, `pipe_structures`). */
83
+ /** Discriminant of the valid arm of the 200 response union. */
84
+ is_valid: true;
85
+ /** Implementation extension fields (e.g. `bundle_blueprint`, `graph_spec`, `pipe_io_contracts`, `validated_pipes`, `pending_signatures`, `is_runnable`). */
79
86
  [extension: string]: unknown;
80
87
  }
88
+ /**
89
+ * One structured diagnostic on an invalid verdict. The protocol fixes only the
90
+ * neutral `category` + `message`; an implementation narrows `category` to its own
91
+ * closed vocabulary and adds locators (see the Pipelex `ValidationErrorItem`,
92
+ * which extends this with `source`, `pipe_code`, `field_name`, and friends).
93
+ */
94
+ export interface ValidationError {
95
+ category: string;
96
+ message: string;
97
+ }
98
+ /**
99
+ * Verdict of `POST /validate` for an INVALID bundle — the `is_valid: false` arm
100
+ * of the 200 response union.
101
+ *
102
+ * An invalid bundle is the *successful product* of a diagnostic call, not a
103
+ * transport failure (the request was well-formed; the bundle was not), so it
104
+ * rides a **200**. The structural artifacts of a valid report do not exist when
105
+ * load/parse/wiring failed, so this arm carries only the per-error diagnostics
106
+ * plus the runnability facts.
107
+ */
108
+ export interface InvalidValidationReport {
109
+ /** Discriminant of the invalid arm. */
110
+ is_valid: false;
111
+ /** Per-error diagnostics — non-empty on every invalid verdict (even a parse-level failure yields one residual item). */
112
+ validation_errors: ValidationError[];
113
+ /** Outstanding signatures (best-effort; empty when no library could be assembled). */
114
+ pending_signatures: string[];
115
+ /** An invalid bundle is never runnable. */
116
+ is_runnable: false;
117
+ /** Human-readable summary of the verdict. */
118
+ message: string;
119
+ }
120
+ /**
121
+ * The discriminated 200 response of `POST /validate`, keyed on the mandatory
122
+ * `is_valid` field. A consumer pattern-matches that one field to learn the
123
+ * verdict — never inspecting a status code or catching an exception body. Only a
124
+ * *no-verdict* condition (non-2xx) throws.
125
+ */
126
+ export type ValidationResult = ValidationReport | InvalidValidationReport;
81
127
  /**
82
128
  * Protocol + runner versions — `GET /version` (always public).
83
129
  *
@@ -90,6 +136,15 @@ export interface ValidationReport {
90
136
  export interface VersionInfo {
91
137
  protocol_version: string;
92
138
  runner_version?: string | null;
93
- /** Implementation extension fields (e.g. `implementation`, `runtime_version`). */
139
+ /**
140
+ * Implementation package version — the field clients gate capabilities on
141
+ * (e.g. the VS Code extension's `MIN_API_IMPLEMENTATION_VERSION`). An
142
+ * extension field (the protocol declares only `protocol_version` /
143
+ * `runner_version`), typed here as the one well-known extension so consumers
144
+ * gate on it without reaching through the untyped index signature. Absent on
145
+ * a runner that does not advertise it.
146
+ */
147
+ implementation_version?: string;
148
+ /** Further implementation extension fields (e.g. `implementation`, `runtime_version`). */
94
149
  [extension: string]: unknown;
95
150
  }
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * POST /execute : -> RunResultExecute (200: pipeline_run_id + pipe_output)
6
6
  * POST /start : -> RunResultStart (202: pipeline_run_id only)
7
- * POST /validate : -> ValidationReport
7
+ * POST /validate : -> ValidationResult (200: discriminated on `is_valid`)
8
8
  * GET /models : -> ModelDeck
9
9
  * GET /version : -> VersionInfo
10
10
  *
@@ -1,5 +1,5 @@
1
1
  import type { RunOptions, StartOptions } from "./options.js";
2
- import type { ModelCategory, ModelDeck, RunResultExecute, RunResultStart, ValidationReport, VersionInfo } from "./models.js";
2
+ import type { ModelCategory, ModelDeck, RunResultExecute, RunResultStart, ValidationResult, VersionInfo } from "./models.js";
3
3
  /**
4
4
  * The MTHDS Protocol — the contract every MTHDS runner implements. Exact
5
5
  * mirror of `mthds/protocol/protocol.py` (`MTHDSProtocol`, generic in the
@@ -35,11 +35,19 @@ export interface MTHDSProtocol<PipeOutputT = unknown> {
35
35
  /**
36
36
  * Parse, validate, and dry-run an MTHDS bundle.
37
37
  *
38
- * Returns the structural artifacts of a VALID bundle; invalid bundles throw
39
- * (HTTP 422 problem on API runners). `allowSignatures` tolerates
40
- * unimplemented pipe signatures (strict by default).
38
+ * `/validate` is a diagnostic endpoint: it returns a {@link ValidationResult}
39
+ * discriminated on `is_valid` the structural artifacts of a VALID bundle, or
40
+ * the `validation_errors[]` of an INVALID one. An invalid bundle is a produced
41
+ * verdict (a 200 on API runners), NOT a thrown error; only a *no-verdict*
42
+ * condition (a malformed request, auth, a server fault) throws. `allowSignatures`
43
+ * tolerates unimplemented pipe signatures (strict by default) — they surface as
44
+ * `pending_signatures` + `is_runnable`, never as an error.
45
+ *
46
+ * (A local CLI runner may instead raise on an invalid bundle rather than
47
+ * materialize the invalid arm — the union is the wire shape, not a guarantee
48
+ * that every runtime returns both arms.)
41
49
  */
42
- validate(mthdsContents: string[], allowSignatures?: boolean): Promise<ValidationReport>;
50
+ validate(mthdsContents: string[], allowSignatures?: boolean): Promise<ValidationResult>;
43
51
  /** The model deck this runner can route to, optionally filtered by category. */
44
52
  models(category?: ModelCategory): Promise<ModelDeck>;
45
53
  /** Protocol + implementation versions — the handshake for feature detection. */
@@ -1,8 +1,8 @@
1
1
  import { BaseRunner } from "../base-runner.js";
2
2
  import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildRunnerRequest, BuildRunnerResponse, ConceptRequest, ConceptResponse, PipeSpecRequest, PipeSpecResponse } from "../types.js";
3
3
  import type { RunOptions, StartOptions } from "../../protocol/options.js";
4
- import type { ModelCategory, ModelDeck, RunResultStart, ValidationReport, VersionInfo } from "../../protocol/models.js";
5
- import type { DictRunResultExecute } from "./models.js";
4
+ import type { ModelCategory, ModelDeck, RunResultStart, VersionInfo } from "../../protocol/models.js";
5
+ import type { DictRunResultExecute, PipelexValidationResult } from "./models.js";
6
6
  import type { RunRead, RunResults, RunResultState, WaitForResultOptions } from "./runs.js";
7
7
  interface MthdsApiClientOptions {
8
8
  /** API token (Bearer). Falls back to `MTHDS_API_KEY`. Optional for anonymous bare runners. */
@@ -99,10 +99,26 @@ export declare class MthdsApiClient extends BaseRunner implements Runner {
99
99
  /**
100
100
  * Parse, validate, and dry-run an MTHDS bundle — `POST /v1/validate`.
101
101
  *
102
- * Returns the structural artifacts of a valid bundle; an invalid bundle is
103
- * an HTTP 422 problem, surfaced as `ApiResponseError`.
102
+ * `/validate` is a diagnostic endpoint: every produced verdict rides a **200**,
103
+ * discriminated on `is_valid`. This returns the `PipelexValidationResult` union
104
+ * verbatim — `is_valid: true` ⇒ the typed `PipelexValidationReport` (structural
105
+ * artifacts), `is_valid: false` ⇒ a `PipelexInvalidReport` (`validation_errors[]`).
106
+ * An invalid bundle is NOT thrown — the caller pattern-matches `is_valid`. Only a
107
+ * *no-verdict* condition (a malformed request, an `mthds_sources` length mismatch,
108
+ * auth, a server fault) is non-2xx and surfaces as `ApiResponseError`.
109
+ *
110
+ * `mthdsSources` (optional, parallel to `mthdsContents`) names each submitted
111
+ * content — a Pipelex-API extension threaded onto `blueprint.source`, so
112
+ * cross-file diagnostics name the owning file (an unnamed content yields
113
+ * `source: null`). The server 422s a length mismatch; this client sends the
114
+ * arrays verbatim and surfaces that as an `ApiResponseError`.
115
+ *
116
+ * `render` (optional) is the opt-in Pipelex-API presentation hint — a list of
117
+ * view-format tokens (e.g. `["markdown"]`). When set, the 200 body gains a
118
+ * `rendered_markdown` field on both verdict arms; unknown tokens are server-side
119
+ * lenient-ignored (never a 422). Omit it for the lean structured-only response.
104
120
  */
105
- validate(mthdsContents: string[], allowSignatures?: boolean): Promise<ValidationReport>;
121
+ validate(mthdsContents: string[], allowSignatures?: boolean, mthdsSources?: string[], render?: string[]): Promise<PipelexValidationResult>;
106
122
  /** The model deck the runner can route to — `GET /v1/models[?type=]`. */
107
123
  models(category?: ModelCategory): Promise<ModelDeck>;
108
124
  /**
@@ -160,8 +160,8 @@ export class MthdsApiClient extends BaseRunner {
160
160
  return this.requestJson("POST", this.url(path), body);
161
161
  }
162
162
  throwApiResponseError(method, endpoint, res) {
163
- const { errorType, serverMessage } = parseErrorBody(res.body);
164
- throw new ApiResponseError(`API ${method} /${API_PREFIX}/${endpoint} failed (${res.status}): ${serverMessage ?? (res.body || res.statusText)}`, this.baseUrl, res.status, res.statusText, res.body, errorType, serverMessage);
163
+ const { errorType, serverMessage, validationErrors } = parseErrorBody(res.body);
164
+ throw new ApiResponseError(`API ${method} /${API_PREFIX}/${endpoint} failed (${res.status}): ${serverMessage ?? (res.body || res.statusText)}`, this.baseUrl, res.status, res.statusText, res.body, errorType, serverMessage, validationErrors);
165
165
  }
166
166
  /**
167
167
  * Translate a "route absent" 404 (a bare pipelex-api with no platform block)
@@ -300,13 +300,37 @@ export class MthdsApiClient extends BaseRunner {
300
300
  /**
301
301
  * Parse, validate, and dry-run an MTHDS bundle — `POST /v1/validate`.
302
302
  *
303
- * Returns the structural artifacts of a valid bundle; an invalid bundle is
304
- * an HTTP 422 problem, surfaced as `ApiResponseError`.
303
+ * `/validate` is a diagnostic endpoint: every produced verdict rides a **200**,
304
+ * discriminated on `is_valid`. This returns the `PipelexValidationResult` union
305
+ * verbatim — `is_valid: true` ⇒ the typed `PipelexValidationReport` (structural
306
+ * artifacts), `is_valid: false` ⇒ a `PipelexInvalidReport` (`validation_errors[]`).
307
+ * An invalid bundle is NOT thrown — the caller pattern-matches `is_valid`. Only a
308
+ * *no-verdict* condition (a malformed request, an `mthds_sources` length mismatch,
309
+ * auth, a server fault) is non-2xx and surfaces as `ApiResponseError`.
310
+ *
311
+ * `mthdsSources` (optional, parallel to `mthdsContents`) names each submitted
312
+ * content — a Pipelex-API extension threaded onto `blueprint.source`, so
313
+ * cross-file diagnostics name the owning file (an unnamed content yields
314
+ * `source: null`). The server 422s a length mismatch; this client sends the
315
+ * arrays verbatim and surfaces that as an `ApiResponseError`.
316
+ *
317
+ * `render` (optional) is the opt-in Pipelex-API presentation hint — a list of
318
+ * view-format tokens (e.g. `["markdown"]`). When set, the 200 body gains a
319
+ * `rendered_markdown` field on both verdict arms; unknown tokens are server-side
320
+ * lenient-ignored (never a 422). Omit it for the lean structured-only response.
305
321
  */
306
- async validate(mthdsContents, allowSignatures = false) {
307
- const res = await this.requestRaw("POST", this.url("validate"), {
308
- body: { mthds_contents: mthdsContents, allow_signatures: allowSignatures },
309
- });
322
+ async validate(mthdsContents, allowSignatures = false, mthdsSources, render) {
323
+ const body = {
324
+ mthds_contents: mthdsContents,
325
+ allow_signatures: allowSignatures,
326
+ };
327
+ if (mthdsSources !== undefined) {
328
+ body.mthds_sources = mthdsSources;
329
+ }
330
+ if (render !== undefined && render.length > 0) {
331
+ body.render = render;
332
+ }
333
+ const res = await this.requestRaw("POST", this.url("validate"), { body });
310
334
  if (res.status < 200 || res.status >= 300) {
311
335
  this.throwApiResponseError("POST", "validate", res);
312
336
  }
@@ -614,21 +638,24 @@ function extractRunStatusFromMessage(message) {
614
638
  /**
615
639
  * The API serializes errors as `{"detail": {"error_type": ..., "message": ...}}`
616
640
  * (HTTPException with dict detail) or `{"detail": "..."}` (auth 401s and RFC
617
- * 7807 problems). Both shapes are extracted here. Falls through silently on
618
- * non-JSON bodies.
641
+ * 7807 problems). Both shapes are extracted here. An invalid-bundle 422 problem
642
+ * additionally carries a top-level `validation_errors[]` list (the
643
+ * `ValidateBundleError` extension projected onto the envelope). Falls through
644
+ * silently on non-JSON bodies.
619
645
  */
620
646
  function parseErrorBody(body) {
647
+ const empty = { errorType: undefined, serverMessage: undefined, validationErrors: undefined };
621
648
  if (!body)
622
- return { errorType: undefined, serverMessage: undefined };
649
+ return empty;
623
650
  let parsed;
624
651
  try {
625
652
  parsed = JSON.parse(body);
626
653
  }
627
654
  catch {
628
- return { errorType: undefined, serverMessage: undefined };
655
+ return empty;
629
656
  }
630
657
  if (!parsed || typeof parsed !== "object") {
631
- return { errorType: undefined, serverMessage: undefined };
658
+ return empty;
632
659
  }
633
660
  const root = parsed;
634
661
  const detail = root.detail;
@@ -648,6 +675,13 @@ function parseErrorBody(body) {
648
675
  errorType = root.error_type;
649
676
  if (serverMessage === undefined && typeof root.message === "string")
650
677
  serverMessage = root.message;
651
- return { errorType, serverMessage };
678
+ // `validation_errors` rides the problem envelope as a top-level array (the
679
+ // VERBOSE projection of `ErrorReport.validation_errors`, retained under STRICT
680
+ // too — it describes the caller's own bundle, not server internals). Kept as a
681
+ // shallow array guard; per-item shape is the typed `ValidationErrorItem` contract.
682
+ const validationErrors = Array.isArray(root.validation_errors)
683
+ ? root.validation_errors
684
+ : undefined;
685
+ return { errorType, serverMessage, validationErrors };
652
686
  }
653
687
  //# sourceMappingURL=client.js.map