mthds 0.0.6 → 0.0.8
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/LICENSE +1 -1
- package/README.md +51 -11
- package/dist/agent/commands/build.d.ts +35 -0
- package/dist/agent/commands/build.js +334 -0
- package/dist/agent/commands/build.js.map +1 -0
- package/dist/agent/commands/config.d.ts +6 -0
- package/dist/agent/commands/config.js +50 -0
- package/dist/agent/commands/config.js.map +1 -0
- package/dist/agent/commands/install.d.ts +14 -0
- package/dist/agent/commands/install.js +178 -0
- package/dist/agent/commands/install.js.map +1 -0
- package/dist/agent/commands/pipelex.d.ts +7 -0
- package/dist/agent/commands/pipelex.js +56 -0
- package/dist/agent/commands/pipelex.js.map +1 -0
- package/dist/agent/commands/plxt.d.ts +7 -0
- package/dist/agent/commands/plxt.js +27 -0
- package/dist/agent/commands/plxt.js.map +1 -0
- package/dist/agent/commands/validate.d.ts +15 -0
- package/dist/agent/commands/validate.js +118 -0
- package/dist/agent/commands/validate.js.map +1 -0
- package/dist/agent/output.d.ts +25 -0
- package/dist/agent/output.js +51 -0
- package/dist/agent/output.js.map +1 -0
- package/dist/agent/passthrough.d.ts +5 -0
- package/dist/agent/passthrough.js +19 -0
- package/dist/agent/passthrough.js.map +1 -0
- package/dist/agent-cli.d.ts +8 -0
- package/dist/agent-cli.js +237 -0
- package/dist/agent-cli.js.map +1 -0
- package/dist/cli/commands/build.d.ts +31 -0
- package/dist/cli/commands/build.js +305 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/{commands → cli/commands}/config.js +4 -4
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/{commands → cli/commands}/index.js +20 -18
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/install.js +275 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/package/add.d.ts +6 -0
- package/dist/cli/commands/package/add.js +9 -0
- package/dist/cli/commands/package/add.js.map +1 -0
- package/dist/cli/commands/package/init.d.ts +3 -0
- package/dist/cli/commands/package/init.js +108 -0
- package/dist/cli/commands/package/init.js.map +1 -0
- package/dist/cli/commands/package/install.d.ts +3 -0
- package/dist/cli/commands/package/install.js +97 -0
- package/dist/cli/commands/package/install.js.map +1 -0
- package/dist/cli/commands/package/list.d.ts +3 -0
- package/dist/cli/commands/package/list.js +58 -0
- package/dist/cli/commands/package/list.js.map +1 -0
- package/dist/cli/commands/package/lock.d.ts +3 -0
- package/dist/cli/commands/package/lock.js +37 -0
- package/dist/cli/commands/package/lock.js.map +1 -0
- package/dist/cli/commands/package/update.d.ts +3 -0
- package/dist/cli/commands/package/update.js +35 -0
- package/dist/cli/commands/package/update.js.map +1 -0
- package/dist/cli/commands/package/validate.d.ts +3 -0
- package/dist/cli/commands/package/validate.js +76 -0
- package/dist/cli/commands/package/validate.js.map +1 -0
- package/dist/cli/commands/run.d.ts +12 -0
- package/dist/cli/commands/run.js +95 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +3 -0
- package/dist/cli/commands/setup.js +168 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/utils.d.ts +9 -0
- package/dist/cli/commands/utils.js +34 -0
- package/dist/cli/commands/utils.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +10 -0
- package/dist/cli/commands/validate.js +93 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli.js +276 -99
- package/dist/cli.js.map +1 -1
- package/dist/client/client.js +2 -2
- package/dist/client/client.js.map +1 -1
- package/dist/config/config.d.ts +5 -20
- package/dist/config/config.js +5 -78
- package/dist/config/config.js.map +1 -1
- package/dist/config/credentials.d.ts +25 -0
- package/dist/config/credentials.js +230 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/installer/agents/registry.d.ts +12 -0
- package/dist/installer/agents/registry.js +78 -0
- package/dist/installer/agents/registry.js.map +1 -0
- package/dist/installer/agents/types.d.ts +16 -0
- package/dist/installer/agents/types.js +6 -0
- package/dist/installer/agents/types.js.map +1 -0
- package/dist/installer/resolver/address.d.ts +2 -0
- package/dist/installer/resolver/address.js.map +1 -0
- package/dist/{resolver → installer/resolver}/github.d.ts +1 -1
- package/dist/{resolver → installer/resolver}/github.js +2 -2
- package/dist/installer/resolver/github.js.map +1 -0
- package/dist/installer/resolver/index.d.ts +6 -0
- package/dist/{resolver → installer/resolver}/index.js +1 -1
- package/dist/installer/resolver/index.js.map +1 -0
- package/dist/{resolver → installer/resolver}/local.d.ts +1 -1
- package/dist/{resolver → installer/resolver}/local.js +2 -2
- package/dist/installer/resolver/local.js.map +1 -0
- package/dist/installer/runtime/check.js.map +1 -0
- package/dist/installer/runtime/installer.js.map +1 -0
- package/dist/installer/runtime/spawn.js.map +1 -0
- package/dist/{telemetry → installer/telemetry}/posthog.d.ts +2 -5
- package/dist/installer/telemetry/posthog.js +55 -0
- package/dist/installer/telemetry/posthog.js.map +1 -0
- package/dist/package/bundle-metadata.d.ts +8 -0
- package/dist/package/bundle-metadata.js +2 -0
- package/dist/package/bundle-metadata.js.map +1 -0
- package/dist/package/bundle-scanner.d.ts +18 -0
- package/dist/package/bundle-scanner.js +77 -0
- package/dist/package/bundle-scanner.js.map +1 -0
- package/dist/package/dependency-resolver.d.ts +32 -0
- package/dist/package/dependency-resolver.js +298 -0
- package/dist/package/dependency-resolver.js.map +1 -0
- package/dist/package/discovery.d.ts +9 -0
- package/dist/package/discovery.js +32 -0
- package/dist/package/discovery.js.map +1 -0
- package/dist/package/exceptions.d.ts +36 -0
- package/dist/package/exceptions.js +73 -0
- package/dist/package/exceptions.js.map +1 -0
- package/dist/package/lock-file.d.ts +27 -0
- package/dist/package/lock-file.js +137 -0
- package/dist/package/lock-file.js.map +1 -0
- package/dist/package/manifest/convert.d.ts +14 -0
- package/dist/package/manifest/convert.js +83 -0
- package/dist/package/manifest/convert.js.map +1 -0
- package/dist/package/manifest/parser.d.ts +9 -0
- package/dist/package/manifest/parser.js +261 -0
- package/dist/package/manifest/parser.js.map +1 -0
- package/dist/package/manifest/schema.d.ts +71 -0
- package/dist/package/manifest/schema.js +73 -0
- package/dist/package/manifest/schema.js.map +1 -0
- package/dist/{resolver → package/manifest}/types.d.ts +2 -5
- package/dist/{resolver → package/manifest}/types.js.map +1 -1
- package/dist/{resolver → package/manifest}/validate.js +25 -20
- package/dist/package/manifest/validate.js.map +1 -0
- package/dist/package/manifest/validation.d.ts +10 -0
- package/dist/package/manifest/validation.js +34 -0
- package/dist/package/manifest/validation.js.map +1 -0
- package/dist/package/package-cache.d.ts +24 -0
- package/dist/package/package-cache.js +92 -0
- package/dist/package/package-cache.js.map +1 -0
- package/dist/package/qualified-ref.d.ts +41 -0
- package/dist/package/qualified-ref.js +105 -0
- package/dist/package/qualified-ref.js.map +1 -0
- package/dist/package/semver.d.ts +33 -0
- package/dist/package/semver.js +77 -0
- package/dist/package/semver.js.map +1 -0
- package/dist/package/vcs-resolver.d.ts +19 -0
- package/dist/package/vcs-resolver.js +115 -0
- package/dist/package/vcs-resolver.js.map +1 -0
- package/dist/package/visibility.d.ts +25 -0
- package/dist/package/visibility.js +132 -0
- package/dist/package/visibility.js.map +1 -0
- package/dist/runners/api-runner.d.ts +3 -0
- package/dist/runners/api-runner.js +9 -1
- package/dist/runners/api-runner.js.map +1 -1
- package/dist/runners/pipelex-runner.d.ts +16 -2
- package/dist/runners/pipelex-runner.js +155 -41
- package/dist/runners/pipelex-runner.js.map +1 -1
- package/dist/runners/registry.d.ts +1 -1
- package/dist/runners/registry.js +5 -4
- package/dist/runners/registry.js.map +1 -1
- package/dist/runners/types.d.ts +17 -10
- package/dist/runners/types.js +6 -1
- package/dist/runners/types.js.map +1 -1
- package/package.json +7 -4
- package/dist/agents/claude-code.d.ts +0 -2
- package/dist/agents/claude-code.js +0 -36
- package/dist/agents/claude-code.js.map +0 -1
- package/dist/agents/cursor.d.ts +0 -2
- package/dist/agents/cursor.js +0 -11
- package/dist/agents/cursor.js.map +0 -1
- package/dist/agents/github-copilot.d.ts +0 -2
- package/dist/agents/github-copilot.js +0 -11
- package/dist/agents/github-copilot.js.map +0 -1
- package/dist/agents/registry.d.ts +0 -4
- package/dist/agents/registry.js +0 -24
- package/dist/agents/registry.js.map +0 -1
- package/dist/agents/types.d.ts +0 -25
- package/dist/agents/types.js +0 -11
- package/dist/agents/types.js.map +0 -1
- package/dist/agents/windsurf.d.ts +0 -2
- package/dist/agents/windsurf.js +0 -11
- package/dist/agents/windsurf.js.map +0 -1
- package/dist/commands/build.d.ts +0 -19
- package/dist/commands/build.js +0 -128
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/index.js.map +0 -1
- package/dist/commands/install.js +0 -252
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/run.d.ts +0 -11
- package/dist/commands/run.js +0 -44
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/runner.d.ts +0 -2
- package/dist/commands/runner.js +0 -59
- package/dist/commands/runner.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -1
- package/dist/commands/setup.js +0 -45
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/telemetry.d.ts +0 -3
- package/dist/commands/telemetry.js +0 -49
- package/dist/commands/telemetry.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -6
- package/dist/commands/validate.js +0 -41
- package/dist/commands/validate.js.map +0 -1
- package/dist/resolver/address.d.ts +0 -2
- package/dist/resolver/address.js.map +0 -1
- package/dist/resolver/github.js.map +0 -1
- package/dist/resolver/index.d.ts +0 -6
- package/dist/resolver/index.js.map +0 -1
- package/dist/resolver/local.js.map +0 -1
- package/dist/resolver/validate.js.map +0 -1
- package/dist/runtime/check.js.map +0 -1
- package/dist/runtime/installer.js.map +0 -1
- package/dist/runtime/spawn.js.map +0 -1
- package/dist/supabase/client.d.ts +0 -4
- package/dist/supabase/client.js +0 -5
- package/dist/supabase/client.js.map +0 -1
- package/dist/supabase/methods.d.ts +0 -2
- package/dist/supabase/methods.js +0 -13
- package/dist/supabase/methods.js.map +0 -1
- package/dist/supabase/types.d.ts +0 -30
- package/dist/supabase/types.js +0 -2
- package/dist/supabase/types.js.map +0 -1
- package/dist/telemetry/posthog.js +0 -117
- package/dist/telemetry/posthog.js.map +0 -1
- /package/dist/{commands → cli/commands}/config.d.ts +0 -0
- /package/dist/{commands → cli/commands}/index.d.ts +0 -0
- /package/dist/{commands → cli/commands}/install.d.ts +0 -0
- /package/dist/{resolver → installer/resolver}/address.js +0 -0
- /package/dist/{runtime → installer/runtime}/check.d.ts +0 -0
- /package/dist/{runtime → installer/runtime}/check.js +0 -0
- /package/dist/{runtime → installer/runtime}/installer.d.ts +0 -0
- /package/dist/{runtime → installer/runtime}/installer.js +0 -0
- /package/dist/{runtime → installer/runtime}/spawn.d.ts +0 -0
- /package/dist/{runtime → installer/runtime}/spawn.js +0 -0
- /package/dist/{resolver → package/manifest}/types.js +0 -0
- /package/dist/{resolver → package/manifest}/validate.d.ts +0 -0
|
@@ -1,19 +1,74 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
1
|
+
import { execFile, spawn } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
|
-
import { writeFileSync, readFileSync, mkdtempSync, rmSync, } from "node:fs";
|
|
3
|
+
import { existsSync, mkdirSync, writeFileSync, readFileSync, mkdtempSync, rmSync, } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
|
-
import { tmpdir } from "node:os";
|
|
5
|
+
import { homedir, tmpdir } from "node:os";
|
|
6
|
+
import { Runners } from "./types.js";
|
|
6
7
|
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
8
|
function makeTmpDir() {
|
|
11
9
|
return mkdtempSync(join(tmpdir(), "mthds-"));
|
|
12
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Return the default methods directory (~/.mthds/methods).
|
|
13
|
+
*/
|
|
14
|
+
function getMethodsDir() {
|
|
15
|
+
return join(homedir(), ".mthds", "methods");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Ensure the output directory exists and return the pipelex `-o` base path.
|
|
19
|
+
* Pipelex treats `-o <path>` as a base name and creates `<path>_NN/`,
|
|
20
|
+
* so we pass `<dir>/bundle` to get output inside `<dir>/`.
|
|
21
|
+
*/
|
|
22
|
+
function resolveOutputBase(output) {
|
|
23
|
+
const dir = output ?? getMethodsDir();
|
|
24
|
+
if (!existsSync(dir)) {
|
|
25
|
+
mkdirSync(dir, { recursive: true });
|
|
26
|
+
}
|
|
27
|
+
return join(dir, "bundle");
|
|
28
|
+
}
|
|
13
29
|
export class PipelexRunner {
|
|
14
|
-
type =
|
|
30
|
+
type = Runners.PIPELEX;
|
|
31
|
+
libraryDirs;
|
|
32
|
+
constructor(libraryDirs) {
|
|
33
|
+
this.libraryDirs = libraryDirs ?? [];
|
|
34
|
+
}
|
|
35
|
+
libraryArgs() {
|
|
36
|
+
return this.libraryDirs.flatMap((dir) => ["-L", dir]);
|
|
37
|
+
}
|
|
15
38
|
async exec(args) {
|
|
16
|
-
return execFileAsync("pipelex", args, {
|
|
39
|
+
return execFileAsync("pipelex", [...args, ...this.libraryArgs()], {
|
|
40
|
+
encoding: "utf-8",
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run pipelex with stdout and stderr inherited (streamed to the terminal).
|
|
45
|
+
* Use this for long-running or interactive commands.
|
|
46
|
+
*/
|
|
47
|
+
async execStreaming(args, inheritStdin = false) {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const child = spawn("pipelex", [...args, ...this.libraryArgs()], {
|
|
50
|
+
stdio: [inheritStdin ? "inherit" : "ignore", "inherit", "inherit"],
|
|
51
|
+
});
|
|
52
|
+
child.on("error", (err) => reject(new Error(`pipelex not found: ${err.message}`)));
|
|
53
|
+
child.on("close", (code) => {
|
|
54
|
+
if (code === 0) {
|
|
55
|
+
resolve();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
reject(new Error(`pipelex exited with code ${code}`));
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// ── CLI passthrough ──────────────────────────────────────────
|
|
64
|
+
async buildPassthrough(subcommand, rawArgs) {
|
|
65
|
+
await this.execStreaming(["build", subcommand, ...rawArgs]);
|
|
66
|
+
}
|
|
67
|
+
async runPassthrough(rawArgs) {
|
|
68
|
+
await this.execStreaming(["run", ...rawArgs], true);
|
|
69
|
+
}
|
|
70
|
+
async validatePassthrough(rawArgs) {
|
|
71
|
+
await this.execStreaming(["validate", ...rawArgs]);
|
|
17
72
|
}
|
|
18
73
|
// ── Health & version ────────────────────────────────────────────
|
|
19
74
|
async health() {
|
|
@@ -31,38 +86,73 @@ export class PipelexRunner {
|
|
|
31
86
|
}
|
|
32
87
|
// ── Build ───────────────────────────────────────────────────────
|
|
33
88
|
// buildInputs and buildOutput have no CLI equivalent.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
89
|
+
// pipelex build inputs <bundle.mthds> --pipe <pipe_code>
|
|
90
|
+
async buildInputs(request) {
|
|
91
|
+
const tmp = makeTmpDir();
|
|
92
|
+
try {
|
|
93
|
+
const bundlePath = join(tmp, "bundle.mthds");
|
|
94
|
+
writeFileSync(bundlePath, request.mthds_content, "utf-8");
|
|
95
|
+
const { stdout } = await this.exec([
|
|
96
|
+
"build",
|
|
97
|
+
"inputs",
|
|
98
|
+
bundlePath,
|
|
99
|
+
"--pipe",
|
|
100
|
+
request.pipe_code,
|
|
101
|
+
]);
|
|
102
|
+
return JSON.parse(stdout);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
106
|
+
}
|
|
39
107
|
}
|
|
40
|
-
// pipelex build pipe
|
|
41
|
-
async
|
|
108
|
+
// pipelex build output <bundle.mthds> --pipe <pipe_code> [--format <fmt>]
|
|
109
|
+
async buildOutput(request) {
|
|
42
110
|
const tmp = makeTmpDir();
|
|
43
111
|
try {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
112
|
+
const bundlePath = join(tmp, "bundle.mthds");
|
|
113
|
+
writeFileSync(bundlePath, request.mthds_content, "utf-8");
|
|
114
|
+
const args = [
|
|
115
|
+
"build",
|
|
116
|
+
"output",
|
|
117
|
+
bundlePath,
|
|
118
|
+
"--pipe",
|
|
119
|
+
request.pipe_code,
|
|
120
|
+
];
|
|
121
|
+
if (request.format) {
|
|
122
|
+
args.push("--format", request.format);
|
|
123
|
+
}
|
|
124
|
+
const { stdout } = await this.exec(args);
|
|
125
|
+
return JSON.parse(stdout);
|
|
53
126
|
}
|
|
54
127
|
finally {
|
|
55
128
|
rmSync(tmp, { recursive: true, force: true });
|
|
56
129
|
}
|
|
57
130
|
}
|
|
58
|
-
// pipelex build
|
|
131
|
+
// pipelex build pipe "PROMPT" -o <dir>
|
|
132
|
+
async buildPipe(request) {
|
|
133
|
+
const outputDir = resolveOutputBase(request.output);
|
|
134
|
+
await this.execStreaming([
|
|
135
|
+
"build",
|
|
136
|
+
"pipe",
|
|
137
|
+
request.brief,
|
|
138
|
+
"-o",
|
|
139
|
+
outputDir,
|
|
140
|
+
]);
|
|
141
|
+
return {
|
|
142
|
+
mthds_content: "",
|
|
143
|
+
pipelex_bundle_blueprint: {},
|
|
144
|
+
success: true,
|
|
145
|
+
message: `Pipeline built successfully — saved to ${outputDir}`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// pipelex build runner <bundle.mthds> --pipe <pipe_code> -o <file>
|
|
59
149
|
async buildRunner(request) {
|
|
60
150
|
const tmp = makeTmpDir();
|
|
61
151
|
try {
|
|
62
|
-
const bundlePath = join(tmp, "bundle.
|
|
63
|
-
writeFileSync(bundlePath, request.
|
|
152
|
+
const bundlePath = join(tmp, "bundle.mthds");
|
|
153
|
+
writeFileSync(bundlePath, request.mthds_content, "utf-8");
|
|
64
154
|
const outPath = join(tmp, "runner.py");
|
|
65
|
-
await this.
|
|
155
|
+
await this.execStreaming([
|
|
66
156
|
"build",
|
|
67
157
|
"runner",
|
|
68
158
|
bundlePath,
|
|
@@ -89,9 +179,9 @@ export class PipelexRunner {
|
|
|
89
179
|
const tmp = makeTmpDir();
|
|
90
180
|
try {
|
|
91
181
|
const args = ["run"];
|
|
92
|
-
if (request.
|
|
93
|
-
const bundlePath = join(tmp, "bundle.
|
|
94
|
-
writeFileSync(bundlePath, request.
|
|
182
|
+
if (request.mthds_content) {
|
|
183
|
+
const bundlePath = join(tmp, "bundle.mthds");
|
|
184
|
+
writeFileSync(bundlePath, request.mthds_content, "utf-8");
|
|
95
185
|
args.push(bundlePath);
|
|
96
186
|
if (request.pipe_code) {
|
|
97
187
|
args.push("--pipe", request.pipe_code);
|
|
@@ -105,10 +195,12 @@ export class PipelexRunner {
|
|
|
105
195
|
writeFileSync(inputsPath, JSON.stringify(request.inputs), "utf-8");
|
|
106
196
|
args.push("--inputs", inputsPath);
|
|
107
197
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const raw =
|
|
198
|
+
args.push("--output-dir", tmp);
|
|
199
|
+
await this.execStreaming(args);
|
|
200
|
+
const wmPath = join(tmp, "working_memory.json");
|
|
201
|
+
const raw = existsSync(wmPath)
|
|
202
|
+
? JSON.parse(readFileSync(wmPath, "utf-8"))
|
|
203
|
+
: {};
|
|
112
204
|
// The CLI output is working memory JSON. Wrap it in PipelineResponse shape.
|
|
113
205
|
return {
|
|
114
206
|
pipeline_run_id: raw["pipeline_run_id"] ?? "local",
|
|
@@ -126,26 +218,26 @@ export class PipelexRunner {
|
|
|
126
218
|
}
|
|
127
219
|
}
|
|
128
220
|
// ── Validation ──────────────────────────────────────────────────
|
|
129
|
-
// pipelex validate --bundle <file.
|
|
221
|
+
// pipelex validate --bundle <file.mthds>
|
|
130
222
|
async validate(request) {
|
|
131
223
|
const tmp = makeTmpDir();
|
|
132
224
|
try {
|
|
133
|
-
const bundlePath = join(tmp, "bundle.
|
|
134
|
-
writeFileSync(bundlePath, request.
|
|
225
|
+
const bundlePath = join(tmp, "bundle.mthds");
|
|
226
|
+
writeFileSync(bundlePath, request.mthds_content, "utf-8");
|
|
135
227
|
await this.exec(["validate", "--bundle", bundlePath]);
|
|
136
228
|
return {
|
|
137
|
-
|
|
229
|
+
mthds_content: request.mthds_content,
|
|
138
230
|
pipelex_bundle_blueprint: {
|
|
139
231
|
domain: "local",
|
|
140
232
|
},
|
|
141
233
|
success: true,
|
|
142
|
-
message: "
|
|
234
|
+
message: "Bundle validated via local CLI",
|
|
143
235
|
};
|
|
144
236
|
}
|
|
145
237
|
catch (err) {
|
|
146
238
|
const message = err instanceof Error ? err.message : "Validation failed";
|
|
147
239
|
return {
|
|
148
|
-
|
|
240
|
+
mthds_content: request.mthds_content,
|
|
149
241
|
pipelex_bundle_blueprint: { domain: "local" },
|
|
150
242
|
success: false,
|
|
151
243
|
message,
|
|
@@ -155,5 +247,27 @@ export class PipelexRunner {
|
|
|
155
247
|
rmSync(tmp, { recursive: true, force: true });
|
|
156
248
|
}
|
|
157
249
|
}
|
|
250
|
+
// ── RunnerProtocol implementation ─────────────────────────────────
|
|
251
|
+
async executePipeline(options) {
|
|
252
|
+
const request = {
|
|
253
|
+
mthds_content: options.mthds_content ?? undefined,
|
|
254
|
+
pipe_code: options.pipe_code ?? undefined,
|
|
255
|
+
inputs: options.inputs
|
|
256
|
+
? Object.fromEntries(Object.entries(options.inputs).map(([k, v]) => [k, v]))
|
|
257
|
+
: undefined,
|
|
258
|
+
};
|
|
259
|
+
const response = await this.execute(request);
|
|
260
|
+
return {
|
|
261
|
+
pipeline_run_id: response.pipeline_run_id,
|
|
262
|
+
created_at: response.created_at,
|
|
263
|
+
pipeline_state: response.pipeline_state,
|
|
264
|
+
finished_at: response.finished_at,
|
|
265
|
+
main_stuff_name: response.main_stuff_name,
|
|
266
|
+
pipe_output: response.pipe_output,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
async startPipeline(_options) {
|
|
270
|
+
throw new Error("startPipeline is not supported by the pipelex CLI runner. Use the API runner instead.");
|
|
271
|
+
}
|
|
158
272
|
}
|
|
159
273
|
//# sourceMappingURL=pipelex-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelex-runner.js","sourceRoot":"","sources":["../../src/runners/pipelex-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipelex-runner.js","sourceRoot":"","sources":["../../src/runners/pipelex-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAsBrC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,SAAS,UAAU;IACjB,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAA0B;IACnD,MAAM,GAAG,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,OAAO,aAAa;IACf,IAAI,GAAe,OAAO,CAAC,OAAO,CAAC;IAC3B,WAAW,CAAW;IAEvC,YAAY,WAAsB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;IACvC,CAAC;IAEO,WAAW;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,IAAc;QAEd,OAAO,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YAChE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,YAAY,GAAG,KAAK;QAC9D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;gBAC/D,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;aACnE,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CACvD,CAAC;YACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAEhE,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,OAAiB;QAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAiB;QACpC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAiB;QACzC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,mEAAmE;IAEnE,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,sDAAsD;IAEtD,yDAAyD;IACzD,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAE1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;gBACjC,OAAO;gBACP,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,OAAO,CAAC,SAAS;aAClB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAE1D,MAAM,IAAI,GAAG;gBACX,OAAO;gBACP,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,OAAO,CAAC,SAAS;aAClB,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,SAAS,CAAC,OAAyB;QACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,OAAO;YACP,MAAM;YACN,OAAO,CAAC,KAAK;YACb,IAAI;YACJ,SAAS;SACV,CAAC,CAAC;QACH,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,wBAAwB,EAAE,EAAE;YAC5B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,0CAA0C,SAAS,EAAE;SAC/D,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,WAAW,CACf,OAA2B;QAE3B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,aAAa,CAAC;gBACvB,OAAO;gBACP,QAAQ;gBACR,UAAU;gBACV,QAAQ;gBACR,OAAO,CAAC,SAAS;gBACjB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO;gBACL,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,qCAAqC;aAC/C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,qEAAqE;IAErE,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAC5C,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAC9B,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YAE/B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAA6B;gBACxE,CAAC,CAAC,EAAE,CAAC;YAEP,4EAA4E;YAC5E,OAAO;gBACL,eAAe,EAAG,GAAG,CAAC,iBAAiB,CAAY,IAAI,OAAO;gBAC9D,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,cAAc,EAAE,WAAW;gBAC3B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;oBAC7B,CAAC,CAAE,GAAG,CAAC,aAAa,CAAqC;oBACzD,CAAC,CAAC,IAAI;gBACR,eAAe,EACZ,GAAG,CAAC,iBAAiB,CAAwB,IAAI,IAAI;aACzD,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,yCAAyC;IAEzC,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAE1D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAEtD,OAAO;gBACL,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,wBAAwB,EAAE;oBACxB,MAAM,EAAE,OAAO;iBAChB;gBACD,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,gCAAgC;aAC1C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC3D,OAAO;gBACL,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,wBAAwB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC7C,OAAO,EAAE,KAAK;gBACd,OAAO;aACR,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,qEAAqE;IAErE,KAAK,CAAC,eAAe,CACnB,OAA+B;QAE/B,MAAM,OAAO,GAAmB;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,SAAS;YACjD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;YACzC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACpB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACvD;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO;YACL,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAwC;SAC/D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgC;QAEhC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Runner, RunnerType } from "./types.js";
|
|
2
|
-
export declare function createRunner(type?: RunnerType): Runner;
|
|
2
|
+
export declare function createRunner(type?: RunnerType, libraryDirs?: string[]): Runner;
|
package/dist/runners/registry.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { loadConfig } from "../config/config.js";
|
|
2
|
+
import { Runners } from "./types.js";
|
|
2
3
|
import { ApiRunner } from "./api-runner.js";
|
|
3
4
|
import { PipelexRunner } from "./pipelex-runner.js";
|
|
4
|
-
export function createRunner(type) {
|
|
5
|
+
export function createRunner(type, libraryDirs) {
|
|
5
6
|
const runnerType = type ?? loadConfig().runner;
|
|
6
7
|
switch (runnerType) {
|
|
7
|
-
case
|
|
8
|
+
case Runners.API:
|
|
8
9
|
return new ApiRunner();
|
|
9
|
-
case
|
|
10
|
-
return new PipelexRunner();
|
|
10
|
+
case Runners.PIPELEX:
|
|
11
|
+
return new PipelexRunner(libraryDirs);
|
|
11
12
|
default:
|
|
12
13
|
throw new Error(`Unknown runner type: ${runnerType}`);
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runners/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runners/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,YAAY,CAC1B,IAAiB,EACjB,WAAsB;IAEtB,MAAM,UAAU,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;IAE/C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,GAAG;YACd,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,KAAK,OAAO,CAAC,OAAO;YAClB,OAAO,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;QACxC;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAoB,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
|
package/dist/runners/types.d.ts
CHANGED
|
@@ -1,33 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
import type { RunnerProtocol } from "../client/protocol.js";
|
|
2
|
+
export declare const Runners: {
|
|
3
|
+
readonly API: "api";
|
|
4
|
+
readonly PIPELEX: "pipelex";
|
|
5
|
+
};
|
|
6
|
+
export type RunnerType = (typeof Runners)[keyof typeof Runners];
|
|
7
|
+
export declare const RUNNER_NAMES: RunnerType[];
|
|
2
8
|
export type PipelineState = "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED" | "ERROR" | "STARTED";
|
|
3
9
|
export type ConceptRepresentationFormat = "json" | "python" | "schema";
|
|
4
10
|
export interface BuildInputsRequest {
|
|
5
|
-
|
|
11
|
+
mthds_content: string;
|
|
6
12
|
pipe_code: string;
|
|
7
13
|
}
|
|
8
14
|
export interface BuildOutputRequest {
|
|
9
|
-
|
|
15
|
+
mthds_content: string;
|
|
10
16
|
pipe_code: string;
|
|
11
17
|
format?: ConceptRepresentationFormat;
|
|
12
18
|
}
|
|
13
19
|
export interface BuildPipeRequest {
|
|
14
20
|
brief: string;
|
|
21
|
+
output?: string;
|
|
15
22
|
}
|
|
16
23
|
export interface BuildRunnerRequest {
|
|
17
|
-
|
|
24
|
+
mthds_content: string;
|
|
18
25
|
pipe_code: string;
|
|
19
26
|
}
|
|
20
27
|
export interface ExecuteRequest {
|
|
21
|
-
/**
|
|
22
|
-
|
|
28
|
+
/** MTHDS bundle content to validate, load, and execute. Omit to run an already-loaded pipe. */
|
|
29
|
+
mthds_content?: string;
|
|
23
30
|
pipe_code?: string;
|
|
24
31
|
inputs?: Record<string, unknown>;
|
|
25
32
|
}
|
|
26
33
|
export interface ValidateRequest {
|
|
27
|
-
|
|
34
|
+
mthds_content: string;
|
|
28
35
|
}
|
|
29
36
|
export interface BuildPipeResponse {
|
|
30
|
-
|
|
37
|
+
mthds_content: string;
|
|
31
38
|
pipelex_bundle_blueprint: Record<string, unknown>;
|
|
32
39
|
success: boolean;
|
|
33
40
|
message: string;
|
|
@@ -69,12 +76,12 @@ export interface PipelexBundleBlueprint {
|
|
|
69
76
|
pipe?: Record<string, unknown> | null;
|
|
70
77
|
}
|
|
71
78
|
export interface ValidateResponse {
|
|
72
|
-
|
|
79
|
+
mthds_content: string;
|
|
73
80
|
pipelex_bundle_blueprint: PipelexBundleBlueprint;
|
|
74
81
|
success: boolean;
|
|
75
82
|
message: string;
|
|
76
83
|
}
|
|
77
|
-
export interface Runner {
|
|
84
|
+
export interface Runner extends RunnerProtocol {
|
|
78
85
|
readonly type: RunnerType;
|
|
79
86
|
health(): Promise<Record<string, unknown>>;
|
|
80
87
|
version(): Promise<Record<string, string>>;
|
package/dist/runners/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runners/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runners/types.ts"],"names":[],"mappings":"AAEA,uEAAuE;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAiB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mthds",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "CLI and SDK for MTHDS — the open standard for reusable AI agent methods. Install, execute, and manage methods.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"bin": {
|
|
20
|
-
"mthds": "./dist/cli.js"
|
|
20
|
+
"mthds": "./dist/cli.js",
|
|
21
|
+
"mthds-agent": "./dist/agent-cli.js"
|
|
21
22
|
},
|
|
22
23
|
"scripts": {
|
|
23
24
|
"build": "tsc",
|
|
@@ -32,15 +33,17 @@
|
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@clack/prompts": "^1.0.0",
|
|
35
|
-
"@supabase/supabase-js": "^2.95.3",
|
|
36
36
|
"chalk": "^5.4.1",
|
|
37
37
|
"commander": "^13.1.0",
|
|
38
38
|
"ora": "^8.2.0",
|
|
39
39
|
"posthog-node": "^4.4.0",
|
|
40
|
-
"
|
|
40
|
+
"semver": "^7.7.4",
|
|
41
|
+
"smol-toml": "^1.6.0",
|
|
42
|
+
"zod": "^4.3.6"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
45
|
"@types/node": "^22.12.0",
|
|
46
|
+
"@types/semver": "^7.7.1",
|
|
44
47
|
"tsx": "^4.19.0",
|
|
45
48
|
"typescript": "^5.7.3",
|
|
46
49
|
"vitest": "^4.0.18"
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { join, dirname, resolve } from "node:path";
|
|
2
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
-
import * as p from "@clack/prompts";
|
|
4
|
-
import { Agent } from "./types.js";
|
|
5
|
-
export const claudeCodeHandler = {
|
|
6
|
-
id: Agent.ClaudeCode,
|
|
7
|
-
label: "Claude Code",
|
|
8
|
-
supported: true,
|
|
9
|
-
async installMethod(ctx) {
|
|
10
|
-
const s = p.spinner();
|
|
11
|
-
const { repo } = ctx;
|
|
12
|
-
for (const method of repo.methods) {
|
|
13
|
-
const installDir = resolve(join(ctx.targetDir, repo.repoName, method.slug));
|
|
14
|
-
s.start(`Installing "${method.slug}" to ${installDir}...`);
|
|
15
|
-
// Create the install directory
|
|
16
|
-
mkdirSync(installDir, { recursive: true });
|
|
17
|
-
// Write METHODS.toml (verbatim raw string)
|
|
18
|
-
writeFileSync(join(installDir, "METHODS.toml"), method.rawManifest, "utf-8");
|
|
19
|
-
// Write all .mthds files, preserving directory structure
|
|
20
|
-
for (const file of method.files) {
|
|
21
|
-
const filePath = resolve(join(installDir, file.relativePath));
|
|
22
|
-
if (!filePath.startsWith(installDir + "/")) {
|
|
23
|
-
throw new Error(`Path traversal detected: "${file.relativePath}" escapes install directory.`);
|
|
24
|
-
}
|
|
25
|
-
mkdirSync(dirname(filePath), { recursive: true });
|
|
26
|
-
writeFileSync(filePath, file.content, "utf-8");
|
|
27
|
-
}
|
|
28
|
-
const fileCount = method.files.length;
|
|
29
|
-
const filesMsg = fileCount === 0
|
|
30
|
-
? "(manifest only)"
|
|
31
|
-
: `(${fileCount} .mthds file${fileCount > 1 ? "s" : ""})`;
|
|
32
|
-
s.stop(`Installed "${method.slug}" to ${installDir} ${filesMsg}`);
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=claude-code.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/agents/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,EAAE,EAAE,KAAK,CAAC,UAAU;IACpB,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,IAAI;IAEf,KAAK,CAAC,aAAa,CAAC,GAAmB;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5E,CAAC,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,QAAQ,UAAU,KAAK,CAAC,CAAC;YAE3D,+BAA+B;YAC/B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3C,2CAA2C;YAC3C,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAE7E,yDAAyD;YACzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,YAAY,8BAA8B,CAAC,CAAC;gBAChG,CAAC;gBACD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,SAAS,KAAK,CAAC;gBAC9B,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI,SAAS,eAAe,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YAE5D,CAAC,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,IAAI,QAAQ,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/agents/cursor.d.ts
DELETED
package/dist/agents/cursor.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Agent } from "./types.js";
|
|
2
|
-
export const cursorHandler = {
|
|
3
|
-
id: Agent.Cursor,
|
|
4
|
-
label: "Cursor",
|
|
5
|
-
supported: false,
|
|
6
|
-
hint: "coming soon",
|
|
7
|
-
async installMethod(_ctx) {
|
|
8
|
-
throw new Error("Cursor is not supported yet.");
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,EAAE,EAAE,KAAK,CAAC,MAAM;IAChB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,aAAa;IAEnB,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;CACF,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Agent } from "./types.js";
|
|
2
|
-
export const githubCopilotHandler = {
|
|
3
|
-
id: Agent.GithubCopilot,
|
|
4
|
-
label: "GitHub Copilot",
|
|
5
|
-
supported: false,
|
|
6
|
-
hint: "coming soon",
|
|
7
|
-
async installMethod(_ctx) {
|
|
8
|
-
throw new Error("GitHub Copilot is not supported yet.");
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=github-copilot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../src/agents/github-copilot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,EAAE,EAAE,KAAK,CAAC,aAAa;IACvB,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,aAAa;IAEnB,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAC"}
|
package/dist/agents/registry.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { claudeCodeHandler } from "./claude-code.js";
|
|
2
|
-
import { cursorHandler } from "./cursor.js";
|
|
3
|
-
import { windsurfHandler } from "./windsurf.js";
|
|
4
|
-
import { githubCopilotHandler } from "./github-copilot.js";
|
|
5
|
-
const handlers = new Map([
|
|
6
|
-
[claudeCodeHandler.id, claudeCodeHandler],
|
|
7
|
-
[cursorHandler.id, cursorHandler],
|
|
8
|
-
[windsurfHandler.id, windsurfHandler],
|
|
9
|
-
[githubCopilotHandler.id, githubCopilotHandler],
|
|
10
|
-
]);
|
|
11
|
-
export function getAgentHandler(agent) {
|
|
12
|
-
const handler = handlers.get(agent);
|
|
13
|
-
if (!handler) {
|
|
14
|
-
throw new Error(`No handler registered for agent: ${agent}`);
|
|
15
|
-
}
|
|
16
|
-
return handler;
|
|
17
|
-
}
|
|
18
|
-
export function getAllAgents() {
|
|
19
|
-
return [...handlers.values()];
|
|
20
|
-
}
|
|
21
|
-
export function getSupportedAgents() {
|
|
22
|
-
return getAllAgents().filter((h) => h.supported);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,QAAQ,GAAqC,IAAI,GAAG,CAAC;IACzD,CAAC,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,CAAC;IACzC,CAAC,aAAa,CAAC,EAAE,EAAE,aAAa,CAAC;IACjC,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC;IACrC,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC"}
|
package/dist/agents/types.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export declare const Agent: {
|
|
2
|
-
readonly ClaudeCode: "claude-code";
|
|
3
|
-
readonly Cursor: "cursor";
|
|
4
|
-
readonly Windsurf: "windsurf";
|
|
5
|
-
readonly GithubCopilot: "github-copilot";
|
|
6
|
-
};
|
|
7
|
-
export type Agent = (typeof Agent)[keyof typeof Agent];
|
|
8
|
-
export declare const InstallLocation: {
|
|
9
|
-
readonly Local: "local";
|
|
10
|
-
readonly Global: "global";
|
|
11
|
-
};
|
|
12
|
-
export type InstallLocation = (typeof InstallLocation)[keyof typeof InstallLocation];
|
|
13
|
-
export interface InstallContext {
|
|
14
|
-
readonly repo: import("../resolver/types.js").ResolvedRepo;
|
|
15
|
-
readonly agent: Agent;
|
|
16
|
-
readonly location: InstallLocation;
|
|
17
|
-
readonly targetDir: string;
|
|
18
|
-
}
|
|
19
|
-
export interface AgentHandler {
|
|
20
|
-
readonly id: Agent;
|
|
21
|
-
readonly label: string;
|
|
22
|
-
readonly supported: boolean;
|
|
23
|
-
readonly hint?: string;
|
|
24
|
-
installMethod(ctx: InstallContext): Promise<void>;
|
|
25
|
-
}
|
package/dist/agents/types.js
DELETED
package/dist/agents/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAIX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC"}
|
package/dist/agents/windsurf.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Agent } from "./types.js";
|
|
2
|
-
export const windsurfHandler = {
|
|
3
|
-
id: Agent.Windsurf,
|
|
4
|
-
label: "Windsurf",
|
|
5
|
-
supported: false,
|
|
6
|
-
hint: "coming soon",
|
|
7
|
-
async installMethod(_ctx) {
|
|
8
|
-
throw new Error("Windsurf is not supported yet.");
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=windsurf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/agents/windsurf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,EAAE,EAAE,KAAK,CAAC,QAAQ;IAClB,KAAK,EAAE,UAAU;IACjB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,aAAa;IAEnB,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;CACF,CAAC"}
|