mthds 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/agent/commands/api-commands.d.ts +13 -0
  2. package/dist/agent/commands/api-commands.js +494 -0
  3. package/dist/agent/commands/api-commands.js.map +1 -0
  4. package/dist/agent/commands/pipelex-commands.d.ts +13 -0
  5. package/dist/agent/commands/pipelex-commands.js +63 -0
  6. package/dist/agent/commands/pipelex-commands.js.map +1 -0
  7. package/dist/agent/commands/pipelex-passthrough.d.ts +15 -0
  8. package/dist/agent/commands/pipelex-passthrough.js +43 -0
  9. package/dist/agent/commands/pipelex-passthrough.js.map +1 -0
  10. package/dist/agent/commands/validate.js +1 -1
  11. package/dist/agent/commands/validate.js.map +1 -1
  12. package/dist/agent-cli.d.ts +8 -2
  13. package/dist/agent-cli.js +86 -215
  14. package/dist/agent-cli.js.map +1 -1
  15. package/dist/cli/commands/build.d.ts +0 -3
  16. package/dist/cli/commands/build.js +3 -50
  17. package/dist/cli/commands/build.js.map +1 -1
  18. package/dist/cli/commands/index.js +0 -1
  19. package/dist/cli/commands/index.js.map +1 -1
  20. package/dist/cli/commands/run.js +1 -1
  21. package/dist/cli/commands/run.js.map +1 -1
  22. package/dist/cli/commands/validate.js +1 -1
  23. package/dist/cli/commands/validate.js.map +1 -1
  24. package/dist/cli.js +2 -13
  25. package/dist/cli.js.map +1 -1
  26. package/dist/client/client.js +6 -6
  27. package/dist/client/client.js.map +1 -1
  28. package/dist/client/pipeline.d.ts +2 -2
  29. package/dist/runners/api-runner.d.ts +5 -2
  30. package/dist/runners/api-runner.js +20 -3
  31. package/dist/runners/api-runner.js.map +1 -1
  32. package/dist/runners/pipelex-runner.d.ts +5 -2
  33. package/dist/runners/pipelex-runner.js +82 -57
  34. package/dist/runners/pipelex-runner.js.map +1 -1
  35. package/dist/runners/types.d.ts +54 -18
  36. package/package.json +1 -1
  37. package/dist/agent/commands/build.d.ts +0 -35
  38. package/dist/agent/commands/build.js +0 -334
  39. package/dist/agent/commands/build.js.map +0 -1
  40. package/dist/agent/commands/pipelex.d.ts +0 -16
  41. package/dist/agent/commands/pipelex.js +0 -118
  42. package/dist/agent/commands/pipelex.js.map +0 -1
@@ -1,334 +0,0 @@
1
- /**
2
- * Agent build subcommands — generate pipelines, runner code, inputs, and output schemas.
3
- * Outputs JSON only.
4
- */
5
- import { readFileSync, writeFileSync } from "node:fs";
6
- import { agentSuccess, agentError, AGENT_ERROR_DOMAINS } from "../output.js";
7
- import { createRunner } from "../../runners/registry.js";
8
- import { isPipelexRunner } from "../../cli/commands/utils.js";
9
- /** Extract raw args after `build <subcommand>`, filtering out --runner, -L/--library-dir, and --log-level */
10
- function extractPassthroughArgs() {
11
- const argv = process.argv;
12
- const buildIdx = argv.indexOf("build");
13
- if (buildIdx === -1)
14
- return [];
15
- const raw = argv.slice(buildIdx + 2); // skip "build" + subcommand
16
- const result = [];
17
- let i = 0;
18
- while (i < raw.length) {
19
- if (raw[i] === "--runner" ||
20
- raw[i] === "-L" ||
21
- raw[i] === "--library-dir" ||
22
- raw[i] === "--log-level") {
23
- i += 2; // skip flag + value
24
- }
25
- else if (raw[i].startsWith("--runner=") ||
26
- raw[i].startsWith("--library-dir=") ||
27
- raw[i].startsWith("--log-level=")) {
28
- i += 1; // skip combined flag=value
29
- }
30
- else {
31
- result.push(raw[i]);
32
- i++;
33
- }
34
- }
35
- return result;
36
- }
37
- // ── build pipe ────────────────────────────────────────────────────────
38
- export async function agentBuildPipe(brief, options) {
39
- const libraryDirs = options.libraryDir?.length
40
- ? options.libraryDir
41
- : undefined;
42
- let runner;
43
- try {
44
- runner = createRunner(options.runner, libraryDirs);
45
- }
46
- catch (err) {
47
- agentError(err.message, "RunnerError", {
48
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
49
- });
50
- }
51
- if (isPipelexRunner(runner)) {
52
- try {
53
- await runner.buildPassthrough("pipe", extractPassthroughArgs());
54
- }
55
- catch (err) {
56
- agentError(err.message, "RunnerError", {
57
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
58
- });
59
- }
60
- return;
61
- }
62
- try {
63
- const result = await runner.buildPipe({ brief, output: options.output });
64
- if (result.mthds_content && options.output) {
65
- writeFileSync(options.output, result.mthds_content, "utf-8");
66
- }
67
- agentSuccess({
68
- success: result.success,
69
- message: result.message,
70
- mthds_content: result.mthds_content,
71
- pipelex_bundle_blueprint: result.pipelex_bundle_blueprint,
72
- });
73
- }
74
- catch (err) {
75
- agentError(err.message, "RunnerError", {
76
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
77
- });
78
- }
79
- }
80
- // ── build runner method ──────────────────────────────────────────────
81
- export async function agentBuildRunnerMethod(name, options) {
82
- const libraryDirs = options.libraryDir?.length
83
- ? options.libraryDir
84
- : undefined;
85
- let runner;
86
- try {
87
- runner = createRunner(options.runner, libraryDirs);
88
- }
89
- catch (err) {
90
- agentError(err.message, "RunnerError", {
91
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
92
- });
93
- }
94
- if (isPipelexRunner(runner)) {
95
- try {
96
- await runner.buildPassthrough("runner", extractPassthroughArgs());
97
- }
98
- catch (err) {
99
- agentError(err.message, "RunnerError", {
100
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
101
- });
102
- }
103
- return;
104
- }
105
- agentError("Method target is not yet supported for the API runner. Use 'mthds-agent build runner pipe <target>' instead, or specify a different runner with --runner <name>.", "ArgumentError", { error_domain: AGENT_ERROR_DOMAINS.ARGUMENT });
106
- }
107
- // ── build runner pipe ────────────────────────────────────────────────
108
- export async function agentBuildRunnerPipe(target, options) {
109
- const libraryDirs = options.libraryDir?.length
110
- ? options.libraryDir
111
- : undefined;
112
- let runner;
113
- try {
114
- runner = createRunner(options.runner, libraryDirs);
115
- }
116
- catch (err) {
117
- agentError(err.message, "RunnerError", {
118
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
119
- });
120
- }
121
- if (isPipelexRunner(runner)) {
122
- try {
123
- await runner.buildPassthrough("runner", extractPassthroughArgs());
124
- }
125
- catch (err) {
126
- agentError(err.message, "RunnerError", {
127
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
128
- });
129
- }
130
- return;
131
- }
132
- if (!target.endsWith(".mthds")) {
133
- agentError("build runner requires a .mthds bundle file as the target.", "ArgumentError", { error_domain: AGENT_ERROR_DOMAINS.ARGUMENT });
134
- }
135
- if (!options.pipe) {
136
- agentError("--pipe is required when using the API runner.", "ArgumentError", {
137
- error_domain: AGENT_ERROR_DOMAINS.ARGUMENT,
138
- });
139
- }
140
- let mthdsContent;
141
- try {
142
- mthdsContent = readFileSync(target, "utf-8");
143
- }
144
- catch (err) {
145
- agentError(`Cannot read bundle: ${err.message}`, "IOError", { error_domain: AGENT_ERROR_DOMAINS.IO });
146
- }
147
- try {
148
- const result = await runner.buildRunner({
149
- mthds_content: mthdsContent,
150
- pipe_code: options.pipe,
151
- });
152
- if (options.output) {
153
- writeFileSync(options.output, result.python_code, "utf-8");
154
- }
155
- agentSuccess({
156
- success: result.success,
157
- message: result.message,
158
- python_code: result.python_code,
159
- pipe_code: result.pipe_code,
160
- });
161
- }
162
- catch (err) {
163
- agentError(err.message, "RunnerError", {
164
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
165
- });
166
- }
167
- }
168
- // ── build inputs method ──────────────────────────────────────────────
169
- export async function agentBuildInputsMethod(name, options) {
170
- const libraryDirs = options.libraryDir?.length
171
- ? options.libraryDir
172
- : undefined;
173
- let runner;
174
- try {
175
- runner = createRunner(options.runner, libraryDirs);
176
- }
177
- catch (err) {
178
- agentError(err.message, "RunnerError", {
179
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
180
- });
181
- }
182
- if (isPipelexRunner(runner)) {
183
- try {
184
- await runner.buildPassthrough("inputs", extractPassthroughArgs());
185
- }
186
- catch (err) {
187
- agentError(err.message, "RunnerError", {
188
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
189
- });
190
- }
191
- return;
192
- }
193
- agentError("Method target is not yet supported for the API runner. Use 'mthds-agent build inputs pipe <target>' instead, or specify a different runner with --runner <name>.", "ArgumentError", { error_domain: AGENT_ERROR_DOMAINS.ARGUMENT });
194
- }
195
- // ── build inputs pipe ────────────────────────────────────────────────
196
- export async function agentBuildInputsPipe(target, options) {
197
- const libraryDirs = options.libraryDir?.length
198
- ? options.libraryDir
199
- : undefined;
200
- let runner;
201
- try {
202
- runner = createRunner(options.runner, libraryDirs);
203
- }
204
- catch (err) {
205
- agentError(err.message, "RunnerError", {
206
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
207
- });
208
- }
209
- if (isPipelexRunner(runner)) {
210
- try {
211
- await runner.buildPassthrough("inputs", extractPassthroughArgs());
212
- }
213
- catch (err) {
214
- agentError(err.message, "RunnerError", {
215
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
216
- });
217
- }
218
- return;
219
- }
220
- if (!options.pipe) {
221
- agentError("--pipe is required when using the API runner.", "ArgumentError", {
222
- error_domain: AGENT_ERROR_DOMAINS.ARGUMENT,
223
- });
224
- }
225
- let mthdsContent;
226
- try {
227
- mthdsContent = readFileSync(target, "utf-8");
228
- }
229
- catch (err) {
230
- agentError(`Cannot read bundle: ${err.message}`, "IOError", { error_domain: AGENT_ERROR_DOMAINS.IO });
231
- }
232
- try {
233
- const result = await runner.buildInputs({
234
- mthds_content: mthdsContent,
235
- pipe_code: options.pipe,
236
- });
237
- agentSuccess({
238
- success: true,
239
- inputs: result,
240
- });
241
- }
242
- catch (err) {
243
- agentError(err.message, "RunnerError", {
244
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
245
- });
246
- }
247
- }
248
- // ── build output method ──────────────────────────────────────────────
249
- export async function agentBuildOutputMethod(name, options) {
250
- const libraryDirs = options.libraryDir?.length
251
- ? options.libraryDir
252
- : undefined;
253
- let runner;
254
- try {
255
- runner = createRunner(options.runner, libraryDirs);
256
- }
257
- catch (err) {
258
- agentError(err.message, "RunnerError", {
259
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
260
- });
261
- }
262
- if (isPipelexRunner(runner)) {
263
- try {
264
- await runner.buildPassthrough("output", extractPassthroughArgs());
265
- }
266
- catch (err) {
267
- agentError(err.message, "RunnerError", {
268
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
269
- });
270
- }
271
- return;
272
- }
273
- agentError("Method target is not yet supported for the API runner. Use 'mthds-agent build output pipe <target>' instead, or specify a different runner with --runner <name>.", "ArgumentError", { error_domain: AGENT_ERROR_DOMAINS.ARGUMENT });
274
- }
275
- // ── build output pipe ────────────────────────────────────────────────
276
- export async function agentBuildOutputPipe(target, options) {
277
- const libraryDirs = options.libraryDir?.length
278
- ? options.libraryDir
279
- : undefined;
280
- let runner;
281
- try {
282
- runner = createRunner(options.runner, libraryDirs);
283
- }
284
- catch (err) {
285
- agentError(err.message, "RunnerError", {
286
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
287
- });
288
- }
289
- if (isPipelexRunner(runner)) {
290
- try {
291
- await runner.buildPassthrough("output", extractPassthroughArgs());
292
- }
293
- catch (err) {
294
- agentError(err.message, "RunnerError", {
295
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
296
- });
297
- }
298
- return;
299
- }
300
- if (!options.pipe) {
301
- agentError("--pipe is required when using the API runner.", "ArgumentError", {
302
- error_domain: AGENT_ERROR_DOMAINS.ARGUMENT,
303
- });
304
- }
305
- let mthdsContent;
306
- try {
307
- mthdsContent = readFileSync(target, "utf-8");
308
- }
309
- catch (err) {
310
- agentError(`Cannot read bundle: ${err.message}`, "IOError", { error_domain: AGENT_ERROR_DOMAINS.IO });
311
- }
312
- const validFormats = ["json", "python", "schema"];
313
- const format = (options.format ?? "schema");
314
- if (!validFormats.includes(format)) {
315
- agentError(`Invalid format "${format}". Must be one of: ${validFormats.join(", ")}`, "ArgumentError", { error_domain: AGENT_ERROR_DOMAINS.ARGUMENT });
316
- }
317
- try {
318
- const result = await runner.buildOutput({
319
- mthds_content: mthdsContent,
320
- pipe_code: options.pipe,
321
- format: format,
322
- });
323
- agentSuccess({
324
- success: true,
325
- output: result,
326
- });
327
- }
328
- catch (err) {
329
- agentError(err.message, "RunnerError", {
330
- error_domain: AGENT_ERROR_DOMAINS.RUNNER,
331
- });
332
- }
333
- }
334
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/agent/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Passthrough command group that forwards to pipelex-agent.
3
- *
4
- * mthds-agent pipelex <cmd> [args...] -> pipelex-agent <cmd> [args...]
5
- */
6
- import { Command } from "commander";
7
- /**
8
- * Extract top-level options from remaining args so they can be prepended
9
- * before the subcommand. Commander.js's passThroughOptions prevents the
10
- * parent program from consuming these when they appear after subcommand args.
11
- */
12
- export declare function extractTopLevelOptions(args: string[]): {
13
- topLevel: string[];
14
- rest: string[];
15
- };
16
- export declare function registerPipelexCommands(program: Command, logLevelArgs: () => string[], autoInstall: () => boolean): void;
@@ -1,118 +0,0 @@
1
- /**
2
- * Passthrough command group that forwards to pipelex-agent.
3
- *
4
- * mthds-agent pipelex <cmd> [args...] -> pipelex-agent <cmd> [args...]
5
- */
6
- import { passthrough } from "../passthrough.js";
7
- /** Options that pipelex-agent accepts only at the top level (before the subcommand). */
8
- const TOP_LEVEL_OPTIONS = ["--log-level"];
9
- /**
10
- * Extract top-level options from remaining args so they can be prepended
11
- * before the subcommand. Commander.js's passThroughOptions prevents the
12
- * parent program from consuming these when they appear after subcommand args.
13
- */
14
- export function extractTopLevelOptions(args) {
15
- const topLevel = [];
16
- const rest = [];
17
- let i = 0;
18
- while (i < args.length) {
19
- const arg = args[i];
20
- if (arg === "--") {
21
- rest.push(...args.slice(i));
22
- break;
23
- }
24
- if (TOP_LEVEL_OPTIONS.includes(arg)) {
25
- if (i + 1 < args.length) {
26
- topLevel.push(arg, args[i + 1]);
27
- i += 2;
28
- }
29
- else {
30
- // No value follows — leave the bare flag in rest as-is.
31
- rest.push(arg);
32
- i += 1;
33
- }
34
- }
35
- else if (TOP_LEVEL_OPTIONS.some((opt) => arg.startsWith(`${opt}=`))) {
36
- topLevel.push(arg);
37
- i += 1;
38
- }
39
- else {
40
- rest.push(arg);
41
- i++;
42
- }
43
- }
44
- return { topLevel, rest };
45
- }
46
- const PIPELEX_COMMANDS = [
47
- "init",
48
- "validate",
49
- "inputs",
50
- "concept",
51
- "pipe",
52
- "assemble",
53
- "models",
54
- "doctor",
55
- ];
56
- /** Commands forwarded to `pipelex` (interactive CLI) instead of `pipelex-agent`. */
57
- const PIPELEX_INTERACTIVE_COMMANDS = ["login"];
58
- const PIPELEX_RUN_SUBCOMMANDS = ["pipe", "bundle", "method"];
59
- export function registerPipelexCommands(program, logLevelArgs, autoInstall) {
60
- const pipelexGroup = program
61
- .command("pipelex")
62
- .description("Forward commands to pipelex-agent")
63
- .passThroughOptions()
64
- .allowUnknownOption();
65
- // Interactive commands go to `pipelex` (not pipelex-agent) because they
66
- // require browser interaction (e.g. login opens the browser for OAuth).
67
- for (const subcmd of PIPELEX_INTERACTIVE_COMMANDS) {
68
- pipelexGroup
69
- .command(subcmd)
70
- .description(`Forward to pipelex ${subcmd}`)
71
- .allowUnknownOption()
72
- .allowExcessArguments(true)
73
- .passThroughOptions()
74
- .action((_options, cmd) => {
75
- const remaining = cmd.args;
76
- passthrough("pipelex", [subcmd, "--no-logo", ...remaining], {
77
- autoInstall: autoInstall(),
78
- });
79
- });
80
- }
81
- for (const subcmd of PIPELEX_COMMANDS) {
82
- pipelexGroup
83
- .command(subcmd)
84
- .description(`Forward to pipelex-agent ${subcmd}`)
85
- .allowUnknownOption()
86
- .allowExcessArguments(true)
87
- .passThroughOptions()
88
- .action((_options, cmd) => {
89
- const { topLevel, rest } = extractTopLevelOptions(cmd.args);
90
- passthrough("pipelex-agent", [...logLevelArgs(), ...topLevel, subcmd, ...rest], {
91
- autoInstall: autoInstall(),
92
- });
93
- });
94
- }
95
- // Register `run` as a sub-group with `pipe` and `method` subcommands:
96
- // mthds-agent pipelex run pipe <args> -> pipelex-agent run pipe <args>
97
- // mthds-agent pipelex run method <args> -> pipelex-agent run method <args>
98
- const runGroup = pipelexGroup
99
- .command("run")
100
- .description("Forward to pipelex-agent run (pipe, bundle, or method)")
101
- .passThroughOptions()
102
- .allowUnknownOption();
103
- for (const runSub of PIPELEX_RUN_SUBCOMMANDS) {
104
- runGroup
105
- .command(runSub)
106
- .description(`Forward to pipelex-agent run ${runSub}`)
107
- .allowUnknownOption()
108
- .allowExcessArguments(true)
109
- .passThroughOptions()
110
- .action((_options, cmd) => {
111
- const { topLevel, rest } = extractTopLevelOptions(cmd.args);
112
- passthrough("pipelex-agent", [...logLevelArgs(), ...topLevel, "run", runSub, ...rest], {
113
- autoInstall: autoInstall(),
114
- });
115
- });
116
- }
117
- }
118
- //# sourceMappingURL=pipelex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipelex.js","sourceRoot":"","sources":["../../../src/agent/commands/pipelex.ts"],"names":[],"mappings":"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"}