mthds 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -7,6 +7,13 @@ import { printLogo } from "./commands/index.js";
7
7
  import { installRunner } from "./commands/setup.js";
8
8
  import { installMethod } from "./commands/install.js";
9
9
  import { configSet, configGet, configList } from "./commands/config.js";
10
+ import { runPipeline } from "./commands/run.js";
11
+ import { buildPipe, buildRunner, buildInputs, buildOutput, } from "./commands/build.js";
12
+ import { validatePlx } from "./commands/validate.js";
13
+ import { runnerSetDefault, runnerList } from "./commands/runner.js";
14
+ function getRunner(cmd) {
15
+ return cmd.optsWithGlobals().runner;
16
+ }
10
17
  const require = createRequire(import.meta.url);
11
18
  const pkg = require("../package.json");
12
19
  const program = new Command();
@@ -14,12 +21,81 @@ program
14
21
  .name("mthds")
15
22
  .version(pkg.version)
16
23
  .description("CLI bridge to the Pipelex runtime")
24
+ .option("--runner <type>", "Runner to use (api, pipelex)")
17
25
  .exitOverride()
18
26
  .configureOutput({
19
27
  writeOut: () => { },
20
28
  writeErr: () => { },
21
29
  });
22
- // mthds install <slug>
30
+ // ── mthds run <target> ─────────────────────────────────────────────
31
+ program
32
+ .command("run")
33
+ .argument("<target>", "Pipe code or .plx bundle file")
34
+ .option("--pipe <code>", "Pipe code (when target is a bundle)")
35
+ .option("-i, --inputs <file>", "Path to JSON inputs file")
36
+ .option("-o, --output <file>", "Path to save output JSON")
37
+ .option("--no-output", "Skip saving output to file")
38
+ .option("--no-pretty-print", "Skip pretty printing the output")
39
+ .description("Execute a pipeline")
40
+ .exitOverride()
41
+ .action(async (target, options, cmd) => {
42
+ await runPipeline(target, { ...options, runner: getRunner(cmd) });
43
+ });
44
+ // ── mthds build <subcommand> ────────────────────────────────────────
45
+ const build = program
46
+ .command("build")
47
+ .description("Generate pipelines, runner code, inputs, and output schemas")
48
+ .exitOverride();
49
+ build
50
+ .command("pipe")
51
+ .argument("<brief>", "Natural-language description of the pipeline")
52
+ .option("-o, --output <file>", "Path to save the generated .plx file")
53
+ .description("Build a pipeline from a prompt")
54
+ .exitOverride()
55
+ .action(async (brief, options, cmd) => {
56
+ await buildPipe(brief, { ...options, runner: getRunner(cmd) });
57
+ });
58
+ build
59
+ .command("runner")
60
+ .argument("<target>", ".plx bundle file")
61
+ .option("--pipe <code>", "Pipe code to generate runner for")
62
+ .option("-o, --output <file>", "Path to save the generated Python file")
63
+ .description("Generate Python runner code for a pipe")
64
+ .exitOverride()
65
+ .action(async (target, options, cmd) => {
66
+ await buildRunner(target, { ...options, runner: getRunner(cmd) });
67
+ });
68
+ build
69
+ .command("inputs")
70
+ .argument("<target>", ".plx bundle file")
71
+ .requiredOption("--pipe <code>", "Pipe code to generate inputs for")
72
+ .description("Generate example input JSON for a pipe")
73
+ .exitOverride()
74
+ .action(async (target, options, cmd) => {
75
+ await buildInputs(target, { ...options, runner: getRunner(cmd) });
76
+ });
77
+ build
78
+ .command("output")
79
+ .argument("<target>", ".plx bundle file")
80
+ .requiredOption("--pipe <code>", "Pipe code to generate output for")
81
+ .option("--format <format>", "Output format (json, python, schema)", "schema")
82
+ .description("Generate output representation for a pipe")
83
+ .exitOverride()
84
+ .action(async (target, options, cmd) => {
85
+ await buildOutput(target, { ...options, runner: getRunner(cmd) });
86
+ });
87
+ // ── mthds validate <target> ────────────────────────────────────────
88
+ program
89
+ .command("validate")
90
+ .argument("<target>", ".plx bundle file or pipe code")
91
+ .option("--pipe <code>", "Pipe code that must exist in the bundle")
92
+ .option("--bundle <file>", "Bundle file path (alternative to positional)")
93
+ .description("Validate PLX content")
94
+ .exitOverride()
95
+ .action(async (target, options, cmd) => {
96
+ await validatePlx(target, { ...options, runner: getRunner(cmd) });
97
+ });
98
+ // ── mthds install <slug> ───────────────────────────────────────────
23
99
  program
24
100
  .command("install")
25
101
  .argument("<slug>", "Method slug to install")
@@ -28,7 +104,7 @@ program
28
104
  .action(async (slug) => {
29
105
  await installMethod(slug);
30
106
  });
31
- // mthds setup runner <name>
107
+ // ── mthds setup runner <name> ──────────────────────────────────────
32
108
  const setup = program.command("setup").exitOverride();
33
109
  setup
34
110
  .command("runner <name>")
@@ -37,7 +113,27 @@ setup
37
113
  .action(async (name) => {
38
114
  await installRunner(name);
39
115
  });
40
- // mthds config set|get|list
116
+ // ── mthds runner set-default|list ───────────────────────────────────
117
+ const runnerCmd = program
118
+ .command("runner")
119
+ .description("Manage runners")
120
+ .exitOverride();
121
+ runnerCmd
122
+ .command("set-default")
123
+ .argument("<name>", "Runner name (api, pipelex)")
124
+ .description("Set the default runner")
125
+ .exitOverride()
126
+ .action(async (name) => {
127
+ await runnerSetDefault(name);
128
+ });
129
+ runnerCmd
130
+ .command("list")
131
+ .description("List available runners")
132
+ .exitOverride()
133
+ .action(async () => {
134
+ await runnerList();
135
+ });
136
+ // ── mthds config set|get|list ──────────────────────────────────────
41
137
  const config = program.command("config").description("Manage configuration").exitOverride();
42
138
  config
43
139
  .command("set")
@@ -80,7 +176,13 @@ program.parseAsync(process.argv).catch((err) => {
80
176
  .replace(/^Error: /, "");
81
177
  p.log.error(message);
82
178
  if (err.code === "commander.missingArgument") {
83
- p.log.info("Run mthds --help to see usage.");
179
+ const args = process.argv.slice(2);
180
+ if (args.includes("runner") && args.includes("set-default")) {
181
+ p.log.info("Run mthds runner list to see available runners.");
182
+ }
183
+ else {
184
+ p.log.info("Run mthds --help to see usage.");
185
+ }
84
186
  }
85
187
  p.outro("");
86
188
  process.exit(1);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { RunnerType } from "../runners/types.js";
2
+ interface WithRunner {
3
+ runner?: RunnerType;
4
+ }
5
+ export declare function buildPipe(brief: string, options: {
6
+ output?: string;
7
+ } & WithRunner): Promise<void>;
8
+ export declare function buildRunner(target: string, options: {
9
+ pipe?: string;
10
+ output?: string;
11
+ } & WithRunner): Promise<void>;
12
+ export declare function buildInputs(target: string, options: {
13
+ pipe: string;
14
+ } & WithRunner): Promise<void>;
15
+ export declare function buildOutput(target: string, options: {
16
+ pipe: string;
17
+ format?: string;
18
+ } & WithRunner): Promise<void>;
19
+ export {};
@@ -0,0 +1,128 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ import * as p from "@clack/prompts";
3
+ import { printLogo } from "./index.js";
4
+ import { createRunner } from "../runners/registry.js";
5
+ // ── mthds build pipe "PROMPT" [-o file] ─────────────────────────────
6
+ export async function buildPipe(brief, options) {
7
+ printLogo();
8
+ p.intro("mthds build pipe");
9
+ const runner = createRunner(options.runner);
10
+ const s = p.spinner();
11
+ s.start("Building pipeline...");
12
+ try {
13
+ const result = await runner.buildPipe({ brief });
14
+ s.stop(result.message);
15
+ if (options.output) {
16
+ writeFileSync(options.output, result.plx_content, "utf-8");
17
+ p.log.success(`PLX written to ${options.output}`);
18
+ }
19
+ else {
20
+ p.log.info(result.plx_content);
21
+ }
22
+ p.outro("Done");
23
+ }
24
+ catch (err) {
25
+ s.stop("Build failed.");
26
+ p.log.error(err.message);
27
+ p.outro("");
28
+ process.exit(1);
29
+ }
30
+ }
31
+ // ── mthds build runner <target> [--pipe code] [-o file] ─────────────
32
+ export async function buildRunner(target, options) {
33
+ printLogo();
34
+ p.intro("mthds build runner");
35
+ const runner = createRunner(options.runner);
36
+ const isBundle = target.endsWith(".plx");
37
+ let plxContent;
38
+ let pipeCode;
39
+ if (isBundle) {
40
+ plxContent = readFileSync(target, "utf-8");
41
+ if (!options.pipe) {
42
+ p.log.error("--pipe is required when passing a .plx bundle.");
43
+ p.outro("");
44
+ process.exit(1);
45
+ }
46
+ pipeCode = options.pipe;
47
+ }
48
+ else {
49
+ // target is a pipe code — we still need plx content
50
+ p.log.error("build runner requires a .plx bundle file. Pass the bundle path as the target.");
51
+ p.outro("");
52
+ process.exit(1);
53
+ return; // unreachable, keeps TS happy
54
+ }
55
+ const s = p.spinner();
56
+ s.start("Generating runner code...");
57
+ try {
58
+ const result = await runner.buildRunner({
59
+ plx_content: plxContent,
60
+ pipe_code: pipeCode,
61
+ });
62
+ s.stop(result.message);
63
+ if (options.output) {
64
+ writeFileSync(options.output, result.python_code, "utf-8");
65
+ p.log.success(`Runner written to ${options.output}`);
66
+ }
67
+ else {
68
+ p.log.info(result.python_code);
69
+ }
70
+ p.outro("Done");
71
+ }
72
+ catch (err) {
73
+ s.stop("Build failed.");
74
+ p.log.error(err.message);
75
+ p.outro("");
76
+ process.exit(1);
77
+ }
78
+ }
79
+ // ── mthds build inputs <bundle.plx> --pipe <code> ───────────────────
80
+ export async function buildInputs(target, options) {
81
+ printLogo();
82
+ p.intro("mthds build inputs");
83
+ const runner = createRunner(options.runner);
84
+ const plxContent = readFileSync(target, "utf-8");
85
+ const s = p.spinner();
86
+ s.start("Generating example inputs...");
87
+ try {
88
+ const result = await runner.buildInputs({
89
+ plx_content: plxContent,
90
+ pipe_code: options.pipe,
91
+ });
92
+ s.stop("Inputs generated.");
93
+ p.log.info(JSON.stringify(result, null, 2));
94
+ p.outro("Done");
95
+ }
96
+ catch (err) {
97
+ s.stop("Build failed.");
98
+ p.log.error(err.message);
99
+ p.outro("");
100
+ process.exit(1);
101
+ }
102
+ }
103
+ // ── mthds build output <bundle.plx> --pipe <code> [--format] ────────
104
+ export async function buildOutput(target, options) {
105
+ printLogo();
106
+ p.intro("mthds build output");
107
+ const runner = createRunner(options.runner);
108
+ const plxContent = readFileSync(target, "utf-8");
109
+ const s = p.spinner();
110
+ s.start("Generating output schema...");
111
+ try {
112
+ const result = await runner.buildOutput({
113
+ plx_content: plxContent,
114
+ pipe_code: options.pipe,
115
+ format: options.format ?? "schema",
116
+ });
117
+ s.stop("Output generated.");
118
+ p.log.info(JSON.stringify(result, null, 2));
119
+ p.outro("Done");
120
+ }
121
+ catch (err) {
122
+ s.stop("Build failed.");
123
+ p.log.error(err.message);
124
+ p.outro("");
125
+ process.exit(1);
126
+ }
127
+ }
128
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -30,17 +30,28 @@ export function showBanner() {
30
30
  console.log(chalk.dim(` v${version}\n`));
31
31
  console.log(chalk.bold(" Usage:"));
32
32
  console.log(` ${chalk.green("mthds")} ${chalk.yellow("<command>")} [options]\n`);
33
- console.log(chalk.bold(" Commands:"));
34
- console.log(` ${chalk.yellow("install <slug>")} Install a method`);
35
- console.log(` ${chalk.yellow("setup runner <name>")} Install a runner`);
36
- console.log(` ${chalk.yellow("config set <key> <val>")} Set a config value`);
37
- console.log(` ${chalk.yellow("config get <key>")} Get a config value`);
38
- console.log(` ${chalk.yellow("config list")} List all config values`);
39
- console.log(` ${chalk.yellow("--help")} Show this help message`);
40
- console.log(` ${chalk.yellow("--version")} Show version\n`);
33
+ console.log(chalk.bold(" Pipeline:"));
34
+ console.log(` ${chalk.yellow("run <target>")} Execute a pipeline`);
35
+ console.log(` ${chalk.yellow("build pipe <brief>")} Build a pipeline from a prompt`);
36
+ console.log(` ${chalk.yellow("build runner <bundle>")} Generate Python runner code`);
37
+ console.log(` ${chalk.yellow("build inputs <bundle>")} Generate example input JSON`);
38
+ console.log(` ${chalk.yellow("build output <bundle>")} Generate output schema`);
39
+ console.log(` ${chalk.yellow("validate <target>")} Validate PLX content\n`);
40
+ console.log(chalk.bold(" Runners:"));
41
+ console.log(` ${chalk.yellow("setup runner <name>")} Install a runner`);
42
+ console.log(` ${chalk.yellow("runner set-default <name>")} Set the default runner`);
43
+ console.log(` ${chalk.yellow("runner list")} List available runners\n`);
44
+ console.log(chalk.bold(" Setup:"));
45
+ console.log(` ${chalk.yellow("install <slug>")} Install a method`);
46
+ console.log(` ${chalk.yellow("config set <key> <val>")} Set a config value`);
47
+ console.log(` ${chalk.yellow("config get <key>")} Get a config value`);
48
+ console.log(` ${chalk.yellow("config list")} List all config values\n`);
41
49
  console.log(chalk.bold(" Examples:"));
42
- console.log(` ${chalk.dim("$")} mthds install my-method-slug`);
43
- console.log(` ${chalk.dim("$")} mthds setup runner pipelex\n`);
50
+ console.log(` ${chalk.dim("$")} mthds run hello_world`);
51
+ console.log(` ${chalk.dim("$")} mthds run my_bundle.plx --inputs data.json`);
52
+ console.log(` ${chalk.dim("$")} mthds build pipe "Analyze a CV against a job offer"`);
53
+ console.log(` ${chalk.dim("$")} mthds validate my_bundle.plx`);
54
+ console.log(` ${chalk.dim("$")} mthds install my-method-slug\n`);
44
55
  console.log(chalk.dim(" Docs: https://pipelex.dev/docs\n"));
45
56
  console.log(chalk.bold(" Telemetry:"));
46
57
  console.log(chalk.dim(" Anonymous usage data (method slug + timestamp) is collected\n to help rank methods. No personal info is collected.\n Opt out: DISABLE_TELEMETRY=1\n"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { RunnerType } from "../runners/types.js";
2
+ interface RunOptions {
3
+ pipe?: string;
4
+ inputs?: string;
5
+ output?: string;
6
+ noOutput?: boolean;
7
+ noPrettyPrint?: boolean;
8
+ runner?: RunnerType;
9
+ }
10
+ export declare function runPipeline(target: string, options: RunOptions): Promise<void>;
11
+ export {};
@@ -0,0 +1,44 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ import * as p from "@clack/prompts";
3
+ import { printLogo } from "./index.js";
4
+ import { createRunner } from "../runners/registry.js";
5
+ export async function runPipeline(target, options) {
6
+ printLogo();
7
+ p.intro("mthds run");
8
+ const runner = createRunner(options.runner);
9
+ const isBundle = target.endsWith(".plx");
10
+ const request = {};
11
+ if (isBundle) {
12
+ request.plx_content = readFileSync(target, "utf-8");
13
+ if (options.pipe) {
14
+ request.pipe_code = options.pipe;
15
+ }
16
+ }
17
+ else {
18
+ request.pipe_code = target;
19
+ }
20
+ if (options.inputs) {
21
+ request.inputs = JSON.parse(readFileSync(options.inputs, "utf-8"));
22
+ }
23
+ const s = p.spinner();
24
+ s.start("Executing pipeline...");
25
+ try {
26
+ const result = await runner.execute(request);
27
+ s.stop(`Pipeline ${result.pipeline_state.toLowerCase()}.`);
28
+ if (!options.noOutput && options.output) {
29
+ writeFileSync(options.output, JSON.stringify(result, null, 2) + "\n", "utf-8");
30
+ p.log.success(`Output written to ${options.output}`);
31
+ }
32
+ if (!options.noPrettyPrint && result.pipe_output) {
33
+ p.log.info(JSON.stringify(result.pipe_output, null, 2));
34
+ }
35
+ p.outro("Done");
36
+ }
37
+ catch (err) {
38
+ s.stop("Pipeline execution failed.");
39
+ p.log.error(err.message);
40
+ p.outro("");
41
+ process.exit(1);
42
+ }
43
+ }
44
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAYtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAmB;IAEnB,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAErB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,aAAa,CACX,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACtC,OAAO,CACR,CAAC;YACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACjD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACrC,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;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runnerSetDefault(name: string): Promise<void>;
2
+ export declare function runnerList(): Promise<void>;
@@ -0,0 +1,59 @@
1
+ import * as p from "@clack/prompts";
2
+ import chalk from "chalk";
3
+ import { printLogo } from "./index.js";
4
+ import { getConfigValue, setConfigValue } from "../config/config.js";
5
+ import { isPipelexInstalled } from "../runtime/check.js";
6
+ const KNOWN_RUNNERS = [
7
+ { type: "api", label: "Pipelex API", builtin: true },
8
+ { type: "pipelex", label: "Pipelex CLI (local)", builtin: false },
9
+ ];
10
+ function isRunnerAvailable(type) {
11
+ switch (type) {
12
+ case "api":
13
+ return true;
14
+ case "pipelex":
15
+ return isPipelexInstalled();
16
+ default:
17
+ return false;
18
+ }
19
+ }
20
+ export async function runnerSetDefault(name) {
21
+ printLogo();
22
+ p.intro("mthds runner set-default");
23
+ const known = KNOWN_RUNNERS.find((r) => r.type === name);
24
+ if (!known) {
25
+ p.log.error(`Unknown runner: ${name}`);
26
+ p.log.info(`Available runners: ${KNOWN_RUNNERS.map((r) => r.type).join(", ")}`);
27
+ p.outro("");
28
+ process.exit(1);
29
+ }
30
+ if (!known.builtin && !isRunnerAvailable(known.type)) {
31
+ p.log.error(`Runner "${name}" is not installed.`);
32
+ p.log.info(`Install it first: mthds setup runner ${name}`);
33
+ p.outro("");
34
+ process.exit(1);
35
+ }
36
+ setConfigValue("runner", name);
37
+ p.log.success(`Default runner set to ${name}.`);
38
+ p.outro("Done");
39
+ }
40
+ export async function runnerList() {
41
+ printLogo();
42
+ p.intro("mthds runner list");
43
+ const { value: currentDefault, source } = getConfigValue("runner");
44
+ const sourceLabel = source === "env" ? " (from env)" : source === "default" ? " (default)" : "";
45
+ p.log.info(`Default runner: ${chalk.bold(currentDefault)}${sourceLabel}\n`);
46
+ for (const r of KNOWN_RUNNERS) {
47
+ const available = isRunnerAvailable(r.type);
48
+ const isDefault = r.type === currentDefault;
49
+ const status = available
50
+ ? chalk.green("installed")
51
+ : r.builtin
52
+ ? chalk.green("built-in")
53
+ : chalk.dim("not installed");
54
+ const defaultMark = isDefault ? chalk.yellow(" (default)") : "";
55
+ p.log.info(` ${chalk.bold(r.type)} — ${r.label} ${status}${defaultMark}`);
56
+ }
57
+ p.outro("Done");
58
+ }
59
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/commands/runner.ts"],"names":[],"mappings":"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"}
@@ -3,23 +3,42 @@ import { isPipelexInstalled } from "../runtime/check.js";
3
3
  import { ensureRuntime } from "../runtime/installer.js";
4
4
  import { shutdown } from "../telemetry/posthog.js";
5
5
  import { printLogo } from "./index.js";
6
+ import { getConfigValue, setConfigValue } from "../config/config.js";
6
7
  export async function installRunner(name) {
7
8
  printLogo();
8
- p.intro("mthds setup");
9
+ p.intro("mthds setup runner");
9
10
  if (name !== "pipelex") {
10
11
  p.log.error(`Unknown runner: ${name}`);
11
- p.log.info("Available runners: pipelex");
12
- p.outro("Done");
12
+ p.log.info("Available runners: api (built-in), pipelex");
13
+ p.outro("");
13
14
  process.exit(1);
14
15
  }
15
16
  if (isPipelexInstalled()) {
16
17
  p.log.success("pipelex is already installed.");
17
- p.outro("Done");
18
- await shutdown();
19
- return;
20
18
  }
21
- await ensureRuntime();
22
- p.log.success("pipelex installed successfully.");
19
+ else {
20
+ await ensureRuntime();
21
+ p.log.success("pipelex installed successfully.");
22
+ }
23
+ // Ask to set as default
24
+ const { value: currentDefault } = getConfigValue("runner");
25
+ if (currentDefault === name) {
26
+ p.log.info(`${name} is already the default runner.`);
27
+ }
28
+ else {
29
+ const makeDefault = await p.confirm({
30
+ message: `Set ${name} as the default runner? (current default: ${currentDefault})`,
31
+ initialValue: false,
32
+ });
33
+ if (p.isCancel(makeDefault)) {
34
+ p.cancel("Cancelled.");
35
+ process.exit(0);
36
+ }
37
+ if (makeDefault) {
38
+ setConfigValue("runner", name);
39
+ p.log.success(`Default runner set to ${name}.`);
40
+ }
41
+ }
23
42
  p.outro("Done");
24
43
  await shutdown();
25
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,aAAa,EAAE,CAAC;IACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACzD,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,OAAO,IAAI,6CAA6C,cAAc,GAAG;YAClF,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { RunnerType } from "../runners/types.js";
2
+ export declare function validatePlx(target: string, options: {
3
+ pipe?: string;
4
+ bundle?: string;
5
+ runner?: RunnerType;
6
+ }): Promise<void>;
@@ -0,0 +1,41 @@
1
+ import { readFileSync } from "node:fs";
2
+ import * as p from "@clack/prompts";
3
+ import { printLogo } from "./index.js";
4
+ import { createRunner } from "../runners/registry.js";
5
+ export async function validatePlx(target, options) {
6
+ printLogo();
7
+ p.intro("mthds validate");
8
+ const runner = createRunner(options.runner);
9
+ // Resolve the PLX content from either the positional target or --bundle
10
+ const bundlePath = options.bundle ?? (target.endsWith(".plx") ? target : undefined);
11
+ if (!bundlePath) {
12
+ p.log.error("Provide a .plx bundle file to validate (positional or --bundle).");
13
+ p.outro("");
14
+ process.exit(1);
15
+ }
16
+ const plxContent = readFileSync(bundlePath, "utf-8");
17
+ const s = p.spinner();
18
+ s.start("Validating...");
19
+ try {
20
+ const result = await runner.validate({ plx_content: plxContent });
21
+ if (result.success) {
22
+ s.stop("Validation passed.");
23
+ p.log.success(result.message);
24
+ }
25
+ else {
26
+ s.stop("Validation failed.");
27
+ p.log.error(result.message);
28
+ }
29
+ p.outro("Done");
30
+ if (!result.success) {
31
+ process.exit(1);
32
+ }
33
+ }
34
+ catch (err) {
35
+ s.stop("Validation failed.");
36
+ p.log.error(err.message);
37
+ p.outro("");
38
+ process.exit(1);
39
+ }
40
+ }
41
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAgE;IAEhE,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,wEAAwE;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEpF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,CAAC,CAAC,GAAG,CAAC,KAAK,CACT,kEAAkE,CACnE,CAAC;QACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAErD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7B,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;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildPipeRequest, BuildPipeResponse, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse } from "./types.js";
2
+ export declare class ApiRunner implements Runner {
3
+ readonly type: RunnerType;
4
+ private readonly baseUrl;
5
+ private readonly apiKey;
6
+ constructor(baseUrl?: string, apiKey?: string);
7
+ private request;
8
+ private get;
9
+ private post;
10
+ health(): Promise<Record<string, unknown>>;
11
+ version(): Promise<Record<string, string>>;
12
+ buildInputs(request: BuildInputsRequest): Promise<unknown>;
13
+ buildOutput(request: BuildOutputRequest): Promise<unknown>;
14
+ buildPipe(request: BuildPipeRequest): Promise<BuildPipeResponse>;
15
+ buildRunner(request: BuildRunnerRequest): Promise<BuildRunnerResponse>;
16
+ execute(request: ExecuteRequest): Promise<PipelineResponse>;
17
+ validate(request: ValidateRequest): Promise<ValidateResponse>;
18
+ }
@@ -0,0 +1,66 @@
1
+ import { loadConfig } from "../config/config.js";
2
+ export class ApiRunner {
3
+ type = "api";
4
+ baseUrl;
5
+ apiKey;
6
+ constructor(baseUrl, apiKey) {
7
+ const config = loadConfig();
8
+ this.baseUrl = (baseUrl ?? config.apiUrl).replace(/\/+$/, "");
9
+ this.apiKey = apiKey ?? config.apiKey;
10
+ }
11
+ // ── HTTP helpers ────────────────────────────────────────────────
12
+ async request(method, path, body) {
13
+ const url = `${this.baseUrl}${path}`;
14
+ const headers = {
15
+ Accept: "application/json",
16
+ };
17
+ if (this.apiKey) {
18
+ headers["Authorization"] = `Bearer ${this.apiKey}`;
19
+ }
20
+ if (body !== undefined) {
21
+ headers["Content-Type"] = "application/json";
22
+ }
23
+ const res = await fetch(url, {
24
+ method,
25
+ headers,
26
+ body: body !== undefined ? JSON.stringify(body) : undefined,
27
+ });
28
+ if (!res.ok) {
29
+ const text = await res.text().catch(() => "");
30
+ throw new Error(`API ${method} ${path} failed (${res.status}): ${text || res.statusText}`);
31
+ }
32
+ return res.json();
33
+ }
34
+ get(path) {
35
+ return this.request("GET", path);
36
+ }
37
+ post(path, body) {
38
+ return this.request("POST", path, body);
39
+ }
40
+ // ── Runner implementation ───────────────────────────────────────
41
+ async health() {
42
+ return this.get("/health");
43
+ }
44
+ async version() {
45
+ return this.get("/api/v1/pipelex_version");
46
+ }
47
+ async buildInputs(request) {
48
+ return this.post("/api/v1/build/inputs", request);
49
+ }
50
+ async buildOutput(request) {
51
+ return this.post("/api/v1/build/output", request);
52
+ }
53
+ async buildPipe(request) {
54
+ return this.post("/api/v1/build/pipe", request);
55
+ }
56
+ async buildRunner(request) {
57
+ return this.post("/api/v1/build/runner", request);
58
+ }
59
+ async execute(request) {
60
+ return this.post("/api/v1/pipeline/execute", request);
61
+ }
62
+ async validate(request) {
63
+ return this.post("/api/v1/validate", request);
64
+ }
65
+ }
66
+ //# sourceMappingURL=api-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-runner.js","sourceRoot":"","sources":["../../src/runners/api-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgBjD,MAAM,OAAO,SAAS;IACX,IAAI,GAAe,KAAK,CAAC;IAEjB,OAAO,CAAS;IAChB,MAAM,CAAS;IAEhC,YAAY,OAAgB,EAAE,MAAe;QAC3C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;IACxC,CAAC;IAED,mEAAmE;IAE3D,KAAK,CAAC,OAAO,CACnB,MAAsB,EACtB,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,OAAO,MAAM,IAAI,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IAEO,GAAG,CAAI,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEO,IAAI,CAAI,IAAY,EAAE,IAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,mEAAmE;IAEnE,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAA2B;QAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { Runner, RunnerType, BuildInputsRequest, BuildOutputRequest, BuildPipeRequest, BuildPipeResponse, BuildRunnerRequest, BuildRunnerResponse, ExecuteRequest, PipelineResponse, ValidateRequest, ValidateResponse } from "./types.js";
2
+ export declare class PipelexRunner implements Runner {
3
+ readonly type: RunnerType;
4
+ private exec;
5
+ health(): Promise<Record<string, unknown>>;
6
+ version(): Promise<Record<string, string>>;
7
+ buildInputs(_request: BuildInputsRequest): Promise<unknown>;
8
+ buildOutput(_request: BuildOutputRequest): Promise<unknown>;
9
+ buildPipe(request: BuildPipeRequest): Promise<BuildPipeResponse>;
10
+ buildRunner(request: BuildRunnerRequest): Promise<BuildRunnerResponse>;
11
+ execute(request: ExecuteRequest): Promise<PipelineResponse>;
12
+ validate(request: ValidateRequest): Promise<ValidateResponse>;
13
+ }
@@ -0,0 +1,159 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ import { writeFileSync, readFileSync, mkdtempSync, rmSync, } from "node:fs";
4
+ import { join } from "node:path";
5
+ import { tmpdir } from "node:os";
6
+ const execFileAsync = promisify(execFile);
7
+ function notSupported(method) {
8
+ throw new Error(`PipelexRunner.${method}() has no CLI equivalent. Use the API runner instead.`);
9
+ }
10
+ function makeTmpDir() {
11
+ return mkdtempSync(join(tmpdir(), "mthds-"));
12
+ }
13
+ export class PipelexRunner {
14
+ type = "pipelex";
15
+ async exec(args) {
16
+ return execFileAsync("pipelex", args, { encoding: "utf-8" });
17
+ }
18
+ // ── Health & version ────────────────────────────────────────────
19
+ async health() {
20
+ try {
21
+ await this.exec(["show", "config"]);
22
+ return { status: "ok" };
23
+ }
24
+ catch {
25
+ throw new Error("pipelex CLI is not installed or not in PATH");
26
+ }
27
+ }
28
+ async version() {
29
+ const { stdout } = await this.exec(["--version"]);
30
+ return { pipelex: stdout.trim() };
31
+ }
32
+ // ── Build ───────────────────────────────────────────────────────
33
+ // buildInputs and buildOutput have no CLI equivalent.
34
+ async buildInputs(_request) {
35
+ notSupported("buildInputs");
36
+ }
37
+ async buildOutput(_request) {
38
+ notSupported("buildOutput");
39
+ }
40
+ // pipelex build pipe "PROMPT" -o <file>
41
+ async buildPipe(request) {
42
+ const tmp = makeTmpDir();
43
+ try {
44
+ const outPath = join(tmp, "bundle.plx");
45
+ await this.exec(["build", "pipe", request.brief, "-o", outPath]);
46
+ const plxContent = readFileSync(outPath, "utf-8");
47
+ return {
48
+ plx_content: plxContent,
49
+ pipelex_bundle_blueprint: {},
50
+ success: true,
51
+ message: "Pipeline generated via local CLI",
52
+ };
53
+ }
54
+ finally {
55
+ rmSync(tmp, { recursive: true, force: true });
56
+ }
57
+ }
58
+ // pipelex build runner <bundle.plx> --pipe <pipe_code> -o <file>
59
+ async buildRunner(request) {
60
+ const tmp = makeTmpDir();
61
+ try {
62
+ const bundlePath = join(tmp, "bundle.plx");
63
+ writeFileSync(bundlePath, request.plx_content, "utf-8");
64
+ const outPath = join(tmp, "runner.py");
65
+ await this.exec([
66
+ "build",
67
+ "runner",
68
+ bundlePath,
69
+ "--pipe",
70
+ request.pipe_code,
71
+ "-o",
72
+ outPath,
73
+ ]);
74
+ const pythonCode = readFileSync(outPath, "utf-8");
75
+ return {
76
+ python_code: pythonCode,
77
+ pipe_code: request.pipe_code,
78
+ success: true,
79
+ message: "Runner code generated via local CLI",
80
+ };
81
+ }
82
+ finally {
83
+ rmSync(tmp, { recursive: true, force: true });
84
+ }
85
+ }
86
+ // ── Pipeline execution ──────────────────────────────────────────
87
+ // pipelex run <target> [--pipe code] [--inputs file] [--output file]
88
+ async execute(request) {
89
+ const tmp = makeTmpDir();
90
+ try {
91
+ const args = ["run"];
92
+ if (request.plx_content) {
93
+ const bundlePath = join(tmp, "bundle.plx");
94
+ writeFileSync(bundlePath, request.plx_content, "utf-8");
95
+ args.push(bundlePath);
96
+ if (request.pipe_code) {
97
+ args.push("--pipe", request.pipe_code);
98
+ }
99
+ }
100
+ else if (request.pipe_code) {
101
+ args.push(request.pipe_code);
102
+ }
103
+ if (request.inputs) {
104
+ const inputsPath = join(tmp, "inputs.json");
105
+ writeFileSync(inputsPath, JSON.stringify(request.inputs), "utf-8");
106
+ args.push("--inputs", inputsPath);
107
+ }
108
+ const outputPath = join(tmp, "output.json");
109
+ args.push("--output", outputPath);
110
+ await this.exec(args);
111
+ const raw = JSON.parse(readFileSync(outputPath, "utf-8"));
112
+ // The CLI output is working memory JSON. Wrap it in PipelineResponse shape.
113
+ return {
114
+ pipeline_run_id: raw["pipeline_run_id"] ?? "local",
115
+ created_at: new Date().toISOString(),
116
+ pipeline_state: "COMPLETED",
117
+ finished_at: new Date().toISOString(),
118
+ pipe_output: raw["pipe_output"]
119
+ ? raw["pipe_output"]
120
+ : null,
121
+ main_stuff_name: raw["main_stuff_name"] ?? null,
122
+ };
123
+ }
124
+ finally {
125
+ rmSync(tmp, { recursive: true, force: true });
126
+ }
127
+ }
128
+ // ── Validation ──────────────────────────────────────────────────
129
+ // pipelex validate --bundle <file.plx>
130
+ async validate(request) {
131
+ const tmp = makeTmpDir();
132
+ try {
133
+ const bundlePath = join(tmp, "bundle.plx");
134
+ writeFileSync(bundlePath, request.plx_content, "utf-8");
135
+ await this.exec(["validate", "--bundle", bundlePath]);
136
+ return {
137
+ plx_content: request.plx_content,
138
+ pipelex_bundle_blueprint: {
139
+ domain: "local",
140
+ },
141
+ success: true,
142
+ message: "PLX content validated via local CLI",
143
+ };
144
+ }
145
+ catch (err) {
146
+ const message = err instanceof Error ? err.message : "Validation failed";
147
+ return {
148
+ plx_content: request.plx_content,
149
+ pipelex_bundle_blueprint: { domain: "local" },
150
+ success: false,
151
+ message,
152
+ };
153
+ }
154
+ finally {
155
+ rmSync(tmp, { recursive: true, force: true });
156
+ }
157
+ }
158
+ }
159
+ //# sourceMappingURL=pipelex-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelex-runner.js","sourceRoot":"","sources":["../../src/runners/pipelex-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Runner, RunnerType } from "./types.js";
2
+ export declare function createRunner(type?: RunnerType): Runner;
@@ -0,0 +1,15 @@
1
+ import { loadConfig } from "../config/config.js";
2
+ import { ApiRunner } from "./api-runner.js";
3
+ import { PipelexRunner } from "./pipelex-runner.js";
4
+ export function createRunner(type) {
5
+ const runnerType = type ?? loadConfig().runner;
6
+ switch (runnerType) {
7
+ case "api":
8
+ return new ApiRunner();
9
+ case "pipelex":
10
+ return new PipelexRunner();
11
+ default:
12
+ throw new Error(`Unknown runner type: ${runnerType}`);
13
+ }
14
+ }
15
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runners/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,MAAM,UAAU,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;IAE/C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAoB,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -1,11 +1,87 @@
1
1
  export type RunnerType = "api" | "pipelex";
2
- export interface RunOptions {
3
- input?: Record<string, unknown>;
2
+ export type PipelineState = "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED" | "ERROR" | "STARTED";
3
+ export type ConceptRepresentationFormat = "json" | "python" | "schema";
4
+ export interface BuildInputsRequest {
5
+ plx_content: string;
6
+ pipe_code: string;
4
7
  }
5
- export interface RunResult {
6
- output: unknown;
8
+ export interface BuildOutputRequest {
9
+ plx_content: string;
10
+ pipe_code: string;
11
+ format?: ConceptRepresentationFormat;
12
+ }
13
+ export interface BuildPipeRequest {
14
+ brief: string;
15
+ }
16
+ export interface BuildRunnerRequest {
17
+ plx_content: string;
18
+ pipe_code: string;
19
+ }
20
+ export interface ExecuteRequest {
21
+ /** PLX content to validate, load, and execute. Omit to run an already-loaded pipe. */
22
+ plx_content?: string;
23
+ pipe_code?: string;
24
+ inputs?: Record<string, unknown>;
25
+ }
26
+ export interface ValidateRequest {
27
+ plx_content: string;
28
+ }
29
+ export interface BuildPipeResponse {
30
+ plx_content: string;
31
+ pipelex_bundle_blueprint: Record<string, unknown>;
32
+ success: boolean;
33
+ message: string;
34
+ }
35
+ export interface BuildRunnerResponse {
36
+ python_code: string;
37
+ pipe_code: string;
38
+ success: boolean;
39
+ message: string;
40
+ }
41
+ export interface DictStuff {
42
+ concept: string;
43
+ content: unknown;
44
+ }
45
+ export interface DictWorkingMemory {
46
+ root: Record<string, DictStuff>;
47
+ aliases: Record<string, string>;
48
+ }
49
+ export interface DictPipeOutput {
50
+ working_memory: DictWorkingMemory;
51
+ graph_spec?: unknown;
52
+ pipeline_run_id: string;
53
+ }
54
+ export interface PipelineResponse {
55
+ pipeline_run_id: string;
56
+ created_at: string;
57
+ pipeline_state: PipelineState;
58
+ finished_at?: string | null;
59
+ pipe_output?: DictPipeOutput | null;
60
+ main_stuff_name?: string | null;
61
+ }
62
+ export interface PipelexBundleBlueprint {
63
+ source?: string | null;
64
+ domain: string;
65
+ description?: string | null;
66
+ system_prompt?: string | null;
67
+ main_pipe?: string | null;
68
+ concept?: Record<string, unknown> | null;
69
+ pipe?: Record<string, unknown> | null;
70
+ }
71
+ export interface ValidateResponse {
72
+ plx_content: string;
73
+ pipelex_bundle_blueprint: PipelexBundleBlueprint;
74
+ success: boolean;
75
+ message: string;
7
76
  }
8
77
  export interface Runner {
9
78
  readonly type: RunnerType;
10
- run(pipe: string, options?: RunOptions): Promise<RunResult>;
79
+ health(): Promise<Record<string, unknown>>;
80
+ version(): Promise<Record<string, string>>;
81
+ buildInputs(request: BuildInputsRequest): Promise<unknown>;
82
+ buildOutput(request: BuildOutputRequest): Promise<unknown>;
83
+ buildPipe(request: BuildPipeRequest): Promise<BuildPipeResponse>;
84
+ buildRunner(request: BuildRunnerRequest): Promise<BuildRunnerResponse>;
85
+ execute(request: ExecuteRequest): Promise<PipelineResponse>;
86
+ validate(request: ValidateRequest): Promise<ValidateResponse>;
11
87
  }
@@ -8,7 +8,6 @@ function isDisabled() {
8
8
  function getClient() {
9
9
  if (isDisabled())
10
10
  return null;
11
- console.log("PostHog API Key:", POSTHOG_API_KEY);
12
11
  if (!client) {
13
12
  client = new PostHog(POSTHOG_API_KEY, { host: POSTHOG_HOST, disableGeoip: true });
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../src/telemetry/posthog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAC1E,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,CAAC,OAAO,CAAC;QACd,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../src/telemetry/posthog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAC1E,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,CAAC,OAAO,CAAC;QACd,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mthds",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "CLI for composable methods for AI agents. Turn your knowledge processes into executable methods.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/Pipelex/mthds"
8
+ "url": "https://github.com/Pipelex/mthds-js"
9
9
  },
10
10
  "type": "module",
11
11
  "bin": {