mthds 0.0.1 → 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.
Files changed (48) hide show
  1. package/dist/cli.js +136 -7
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/build.d.ts +19 -0
  4. package/dist/commands/build.js +128 -0
  5. package/dist/commands/build.js.map +1 -0
  6. package/dist/commands/config.d.ts +3 -0
  7. package/dist/commands/config.js +69 -0
  8. package/dist/commands/config.js.map +1 -0
  9. package/dist/commands/index.js +21 -7
  10. package/dist/commands/index.js.map +1 -1
  11. package/dist/commands/install.js +61 -5
  12. package/dist/commands/install.js.map +1 -1
  13. package/dist/commands/run.d.ts +11 -1
  14. package/dist/commands/run.js +42 -7
  15. package/dist/commands/run.js.map +1 -1
  16. package/dist/commands/runner.d.ts +2 -0
  17. package/dist/commands/runner.js +59 -0
  18. package/dist/commands/runner.js.map +1 -0
  19. package/dist/commands/setup.d.ts +1 -1
  20. package/dist/commands/setup.js +29 -10
  21. package/dist/commands/setup.js.map +1 -1
  22. package/dist/commands/validate.d.ts +6 -0
  23. package/dist/commands/validate.js +41 -0
  24. package/dist/commands/validate.js.map +1 -0
  25. package/dist/config/config.d.ts +20 -0
  26. package/dist/config/config.js +79 -0
  27. package/dist/config/config.js.map +1 -0
  28. package/dist/runners/api-runner.d.ts +18 -0
  29. package/dist/runners/api-runner.js +66 -0
  30. package/dist/runners/api-runner.js.map +1 -0
  31. package/dist/runners/pipelex-runner.d.ts +13 -0
  32. package/dist/runners/pipelex-runner.js +159 -0
  33. package/dist/runners/pipelex-runner.js.map +1 -0
  34. package/dist/runners/registry.d.ts +2 -0
  35. package/dist/runners/registry.js +15 -0
  36. package/dist/runners/registry.js.map +1 -0
  37. package/dist/runners/types.d.ts +87 -0
  38. package/dist/runners/types.js +2 -0
  39. package/dist/runners/types.js.map +1 -0
  40. package/dist/telemetry/posthog.js +1 -1
  41. package/dist/telemetry/posthog.js.map +1 -1
  42. package/package.json +5 -1
  43. package/dist/config.d.ts +0 -4
  44. package/dist/config.js +0 -21
  45. package/dist/config.js.map +0 -1
  46. package/dist/postinstall.d.ts +0 -1
  47. package/dist/postinstall.js +0 -4
  48. package/dist/postinstall.js.map +0 -1
package/dist/cli.js CHANGED
@@ -4,8 +4,16 @@ import { createRequire } from "node:module";
4
4
  import * as p from "@clack/prompts";
5
5
  import { showBanner } from "./commands/index.js";
6
6
  import { printLogo } from "./commands/index.js";
7
- import { installSoftware } from "./commands/setup.js";
7
+ import { installRunner } from "./commands/setup.js";
8
8
  import { installMethod } from "./commands/install.js";
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
+ }
9
17
  const require = createRequire(import.meta.url);
10
18
  const pkg = require("../package.json");
11
19
  const program = new Command();
@@ -13,12 +21,81 @@ program
13
21
  .name("mthds")
14
22
  .version(pkg.version)
15
23
  .description("CLI bridge to the Pipelex runtime")
24
+ .option("--runner <type>", "Runner to use (api, pipelex)")
16
25
  .exitOverride()
17
26
  .configureOutput({
18
27
  writeOut: () => { },
19
28
  writeErr: () => { },
20
29
  });
21
- // 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> ───────────────────────────────────────────
22
99
  program
23
100
  .command("install")
24
101
  .argument("<slug>", "Method slug to install")
@@ -27,14 +104,60 @@ program
27
104
  .action(async (slug) => {
28
105
  await installMethod(slug);
29
106
  });
30
- // mthds setup software <name>
107
+ // ── mthds setup runner <name> ──────────────────────────────────────
31
108
  const setup = program.command("setup").exitOverride();
32
109
  setup
33
- .command("software <name>")
34
- .description("Install a software runtime (e.g. pipelex)")
110
+ .command("runner <name>")
111
+ .description("Install a runner (e.g. pipelex)")
112
+ .exitOverride()
113
+ .action(async (name) => {
114
+ await installRunner(name);
115
+ });
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")
35
125
  .exitOverride()
36
126
  .action(async (name) => {
37
- await installSoftware(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 ──────────────────────────────────────
137
+ const config = program.command("config").description("Manage configuration").exitOverride();
138
+ config
139
+ .command("set")
140
+ .argument("<key>", "Config key (runner, api-url, api-key)")
141
+ .argument("<value>", "Value to set")
142
+ .description("Set a config value")
143
+ .exitOverride()
144
+ .action(async (key, value) => {
145
+ await configSet(key, value);
146
+ });
147
+ config
148
+ .command("get")
149
+ .argument("<key>", "Config key (runner, api-url, api-key)")
150
+ .description("Get a config value")
151
+ .exitOverride()
152
+ .action(async (key) => {
153
+ await configGet(key);
154
+ });
155
+ config
156
+ .command("list")
157
+ .description("List all config values")
158
+ .exitOverride()
159
+ .action(async () => {
160
+ await configList();
38
161
  });
39
162
  // Default: show banner
40
163
  program.action(() => {
@@ -53,7 +176,13 @@ program.parseAsync(process.argv).catch((err) => {
53
176
  .replace(/^Error: /, "");
54
177
  p.log.error(message);
55
178
  if (err.code === "commander.missingArgument") {
56
- 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
+ }
57
186
  }
58
187
  p.outro("");
59
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":"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;AAOtD,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,OAAyC;IAEzC,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxB,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;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAwD;IAExD,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,UAAkB,CAAC;IACvB,IAAI,QAAgB,CAAC;IAErB,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC9D,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CACT,+EAA+E,CAChF,CAAC;QACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,8BAA8B;IACxC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxB,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;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAsC;IAEtC,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,OAAO,CAAC,IAAI;SACxB,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxB,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;AAED,uEAAuE;AAEvE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,OAAuD;IAEvD,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,MAAM,EAAG,OAAO,CAAC,MAAsC,IAAI,QAAQ;SACpE,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxB,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,3 @@
1
+ export declare function configSet(cliKey: string, value: string): Promise<void>;
2
+ export declare function configGet(cliKey: string): Promise<void>;
3
+ export declare function configList(): Promise<void>;
@@ -0,0 +1,69 @@
1
+ import * as p from "@clack/prompts";
2
+ import { printLogo } from "./index.js";
3
+ import { VALID_KEYS, resolveKey, getConfigValue, setConfigValue, listConfig, } from "../config/config.js";
4
+ const VALID_RUNNERS = ["api", "pipelex"];
5
+ function isValidUrl(s) {
6
+ try {
7
+ new URL(s);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ export async function configSet(cliKey, value) {
15
+ printLogo();
16
+ p.intro("mthds config set");
17
+ const configKey = resolveKey(cliKey);
18
+ if (!configKey) {
19
+ p.log.error(`Unknown config key: ${cliKey}`);
20
+ p.log.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
21
+ p.outro("");
22
+ process.exit(1);
23
+ }
24
+ // Validate value
25
+ if (configKey === "runner" && !VALID_RUNNERS.includes(value)) {
26
+ p.log.error(`Invalid runner: ${value}`);
27
+ p.log.info(`Valid runners: ${VALID_RUNNERS.join(", ")}`);
28
+ p.outro("");
29
+ process.exit(1);
30
+ }
31
+ if (configKey === "apiUrl" && !isValidUrl(value)) {
32
+ p.log.error(`Invalid URL: ${value}`);
33
+ p.outro("");
34
+ process.exit(1);
35
+ }
36
+ setConfigValue(configKey, value);
37
+ p.log.success(`${cliKey} = ${value}`);
38
+ p.outro("");
39
+ }
40
+ export async function configGet(cliKey) {
41
+ printLogo();
42
+ p.intro("mthds config get");
43
+ const configKey = resolveKey(cliKey);
44
+ if (!configKey) {
45
+ p.log.error(`Unknown config key: ${cliKey}`);
46
+ p.log.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
47
+ p.outro("");
48
+ process.exit(1);
49
+ }
50
+ const { value, source } = getConfigValue(configKey);
51
+ const sourceLabel = source === "env" ? " (from env)" : source === "default" ? " (default)" : "";
52
+ p.log.info(`${cliKey} = ${value}${sourceLabel}`);
53
+ p.outro("");
54
+ }
55
+ export async function configList() {
56
+ printLogo();
57
+ p.intro("mthds config list");
58
+ const entries = listConfig();
59
+ for (const entry of entries) {
60
+ const sourceLabel = entry.source === "env"
61
+ ? " (from env)"
62
+ : entry.source === "default"
63
+ ? " (default)"
64
+ : "";
65
+ p.log.info(`${entry.cliKey} = ${entry.value}${sourceLabel}`);
66
+ }
67
+ p.outro("");
68
+ }
69
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -30,14 +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 software <name>")} Install a software runtime`);
36
- console.log(` ${chalk.yellow("--help")} Show this help message`);
37
- 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`);
38
49
  console.log(chalk.bold(" Examples:"));
39
- console.log(` ${chalk.dim("$")} mthds install my-method-slug`);
40
- console.log(` ${chalk.dim("$")} mthds setup software 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`);
41
55
  console.log(chalk.dim(" Docs: https://pipelex.dev/docs\n"));
42
56
  console.log(chalk.bold(" Telemetry:"));
43
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG;IACX,4CAA4C;IAC5C,+CAA+C;IAC/C,mDAAmD;IACnD,8CAA8C;IAC9C,iDAAiD;CAClD,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CACjE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,6BAA6B,CAC1E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,0CAA0C,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,+BAA+B,CAChE,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAEpE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAChD,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,yJAAyJ,CAC1J,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import { join } from "node:path";
2
2
  import { homedir } from "node:os";
3
3
  import { mkdirSync } from "node:fs";
4
+ import { exec } from "node:child_process";
5
+ import { promisify } from "node:util";
6
+ const execAsync = promisify(exec);
4
7
  import * as p from "@clack/prompts";
8
+ import chalk from "chalk";
5
9
  import { isPipelexInstalled } from "../runtime/check.js";
6
10
  import { ensureRuntime } from "../runtime/installer.js";
7
11
  import { trackMethodInstall, shutdown } from "../telemetry/posthog.js";
@@ -68,16 +72,16 @@ export async function installMethod(slug) {
68
72
  p.cancel("Installation cancelled.");
69
73
  process.exit(0);
70
74
  }
71
- // Step 3: Optional software install
72
- const wantsSoftware = await p.confirm({
73
- message: "Do you want to install software now? (optional)",
75
+ // Step 3: Optional runner install
76
+ const wantsRunner = await p.confirm({
77
+ message: "Do you want to install the runner now? (optional)",
74
78
  initialValue: false,
75
79
  });
76
- if (p.isCancel(wantsSoftware)) {
80
+ if (p.isCancel(wantsRunner)) {
77
81
  p.cancel("Installation cancelled.");
78
82
  process.exit(0);
79
83
  }
80
- if (wantsSoftware) {
84
+ if (wantsRunner) {
81
85
  if (!isPipelexInstalled()) {
82
86
  await ensureRuntime();
83
87
  p.log.success("pipelex installed.");
@@ -98,6 +102,58 @@ export async function installMethod(slug) {
98
102
  location: selectedLocation,
99
103
  targetDir,
100
104
  });
105
+ // Step 5: Optional Pipelex skills
106
+ const SKILLS_REPO = "https://github.com/pipelex/skills";
107
+ const skillChoices = [
108
+ { value: "check", label: "check", hint: "Validate and review Pipelex workflow bundles without making changes" },
109
+ { value: "edit", label: "edit", hint: "Modify existing Pipelex workflow bundles" },
110
+ { value: "build", label: "build", hint: "Create new Pipelex workflow bundles from scratch" },
111
+ { value: "fix", label: "fix", hint: "Automatically fix issues in Pipelex workflow bundles" },
112
+ ];
113
+ let selectedSkills = [];
114
+ let emptyAttempts = 0;
115
+ // eslint-disable-next-line no-constant-condition
116
+ while (true) {
117
+ const hint = emptyAttempts > 0
118
+ ? chalk.yellow(" press space to select, enter to confirm")
119
+ : chalk.dim(" press space to select, enter to confirm");
120
+ const result = await p.multiselect({
121
+ message: `Which Pipelex skills do you want to install?\n${hint}`,
122
+ options: skillChoices,
123
+ required: false,
124
+ });
125
+ if (p.isCancel(result)) {
126
+ p.cancel("Installation cancelled.");
127
+ process.exit(0);
128
+ }
129
+ if (result.length === 0) {
130
+ emptyAttempts++;
131
+ if (emptyAttempts >= 2) {
132
+ break;
133
+ }
134
+ continue;
135
+ }
136
+ selectedSkills = result;
137
+ break;
138
+ }
139
+ if (selectedSkills.length > 0) {
140
+ const globalFlag = selectedLocation === Loc.Global ? " -g" : "";
141
+ const locationLabel = selectedLocation === Loc.Global ? "globally" : "locally";
142
+ const sk = p.spinner();
143
+ for (const skill of selectedSkills) {
144
+ sk.start(`Installing skill "${skill}" ${locationLabel}...`);
145
+ try {
146
+ await execAsync(`npx skills add ${SKILLS_REPO} --skill ${skill} --agent ${selectedAgent}${globalFlag} -y`, {
147
+ cwd: process.cwd(),
148
+ });
149
+ sk.stop(`Skill "${skill}" installed ${locationLabel}.`);
150
+ }
151
+ catch {
152
+ sk.stop(`Failed to install skill "${skill}".`);
153
+ p.log.warning(`Could not install skill "${skill}". You can retry manually:\n npx skills add ${SKILLS_REPO} --skill ${skill} --agent ${selectedAgent}${globalFlag}`);
154
+ }
155
+ }
156
+ }
101
157
  p.outro("Done");
102
158
  await shutdown();
103
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1,11 @@
1
- export declare function runCommand(args: string[]): Promise<void>;
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 {};