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 +106 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts +19 -0
- package/dist/commands/build.js +128 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/index.js +21 -10
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/run.d.ts +11 -0
- package/dist/commands/run.js +44 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/runner.d.ts +2 -0
- package/dist/commands/runner.js +59 -0
- package/dist/commands/runner.js.map +1 -0
- package/dist/commands/setup.js +27 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/validate.d.ts +6 -0
- package/dist/commands/validate.js +41 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/runners/api-runner.d.ts +18 -0
- package/dist/runners/api-runner.js +66 -0
- package/dist/runners/api-runner.js.map +1 -0
- package/dist/runners/pipelex-runner.d.ts +13 -0
- package/dist/runners/pipelex-runner.js +159 -0
- package/dist/runners/pipelex-runner.js.map +1 -0
- package/dist/runners/registry.d.ts +2 -0
- package/dist/runners/registry.js +15 -0
- package/dist/runners/registry.js.map +1 -0
- package/dist/runners/types.d.ts +81 -5
- package/dist/telemetry/posthog.js +0 -1
- package/dist/telemetry/posthog.js.map +1 -1
- package/package.json +2 -2
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
|
|
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
|
|
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
|
-
|
|
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":";AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
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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"}
|
package/dist/commands/index.js
CHANGED
|
@@ -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("
|
|
34
|
-
console.log(` ${chalk.yellow("
|
|
35
|
-
console.log(` ${chalk.yellow("
|
|
36
|
-
console.log(` ${chalk.yellow("
|
|
37
|
-
console.log(` ${chalk.yellow("
|
|
38
|
-
console.log(` ${chalk.yellow("
|
|
39
|
-
console.log(` ${chalk.yellow("
|
|
40
|
-
console.log(
|
|
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
|
|
43
|
-
console.log(` ${chalk.dim("$")} mthds
|
|
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":"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,
|
|
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,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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"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -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("
|
|
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
|
-
|
|
22
|
-
|
|
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;
|
|
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,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":"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"}
|
|
@@ -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,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"}
|
package/dist/runners/types.d.ts
CHANGED
|
@@ -1,11 +1,87 @@
|
|
|
1
1
|
export type RunnerType = "api" | "pipelex";
|
|
2
|
-
export
|
|
3
|
-
|
|
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
|
|
6
|
-
|
|
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
|
-
|
|
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
|
}
|
|
@@ -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,
|
|
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.
|
|
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": {
|