mthds 0.0.7 → 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.
Files changed (238) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +46 -6
  3. package/dist/agent/commands/build.d.ts +35 -0
  4. package/dist/agent/commands/build.js +334 -0
  5. package/dist/agent/commands/build.js.map +1 -0
  6. package/dist/agent/commands/config.d.ts +6 -0
  7. package/dist/agent/commands/config.js +50 -0
  8. package/dist/agent/commands/config.js.map +1 -0
  9. package/dist/agent/commands/install.d.ts +14 -0
  10. package/dist/agent/commands/install.js +178 -0
  11. package/dist/agent/commands/install.js.map +1 -0
  12. package/dist/agent/commands/pipelex.d.ts +7 -0
  13. package/dist/agent/commands/pipelex.js +56 -0
  14. package/dist/agent/commands/pipelex.js.map +1 -0
  15. package/dist/agent/commands/plxt.d.ts +7 -0
  16. package/dist/agent/commands/plxt.js +27 -0
  17. package/dist/agent/commands/plxt.js.map +1 -0
  18. package/dist/agent/commands/validate.d.ts +15 -0
  19. package/dist/agent/commands/validate.js +118 -0
  20. package/dist/agent/commands/validate.js.map +1 -0
  21. package/dist/agent/output.d.ts +25 -0
  22. package/dist/agent/output.js +51 -0
  23. package/dist/agent/output.js.map +1 -0
  24. package/dist/agent/passthrough.d.ts +5 -0
  25. package/dist/agent/passthrough.js +19 -0
  26. package/dist/agent/passthrough.js.map +1 -0
  27. package/dist/agent-cli.d.ts +8 -0
  28. package/dist/agent-cli.js +237 -0
  29. package/dist/agent-cli.js.map +1 -0
  30. package/dist/cli/commands/build.d.ts +31 -0
  31. package/dist/cli/commands/build.js +305 -0
  32. package/dist/cli/commands/build.js.map +1 -0
  33. package/dist/{commands → cli/commands}/config.js +4 -4
  34. package/dist/cli/commands/config.js.map +1 -0
  35. package/dist/{commands → cli/commands}/index.js +20 -18
  36. package/dist/cli/commands/index.js.map +1 -0
  37. package/dist/{commands → cli/commands}/install.js +126 -110
  38. package/dist/cli/commands/install.js.map +1 -0
  39. package/dist/cli/commands/package/add.d.ts +6 -0
  40. package/dist/cli/commands/package/add.js +9 -0
  41. package/dist/cli/commands/package/add.js.map +1 -0
  42. package/dist/cli/commands/package/init.d.ts +3 -0
  43. package/dist/cli/commands/package/init.js +108 -0
  44. package/dist/cli/commands/package/init.js.map +1 -0
  45. package/dist/cli/commands/package/install.d.ts +3 -0
  46. package/dist/cli/commands/package/install.js +97 -0
  47. package/dist/cli/commands/package/install.js.map +1 -0
  48. package/dist/cli/commands/package/list.d.ts +3 -0
  49. package/dist/cli/commands/package/list.js +58 -0
  50. package/dist/cli/commands/package/list.js.map +1 -0
  51. package/dist/cli/commands/package/lock.d.ts +3 -0
  52. package/dist/cli/commands/package/lock.js +37 -0
  53. package/dist/cli/commands/package/lock.js.map +1 -0
  54. package/dist/cli/commands/package/update.d.ts +3 -0
  55. package/dist/cli/commands/package/update.js +35 -0
  56. package/dist/cli/commands/package/update.js.map +1 -0
  57. package/dist/cli/commands/package/validate.d.ts +3 -0
  58. package/dist/cli/commands/package/validate.js +76 -0
  59. package/dist/cli/commands/package/validate.js.map +1 -0
  60. package/dist/cli/commands/run.d.ts +12 -0
  61. package/dist/cli/commands/run.js +95 -0
  62. package/dist/cli/commands/run.js.map +1 -0
  63. package/dist/cli/commands/setup.d.ts +3 -0
  64. package/dist/cli/commands/setup.js +168 -0
  65. package/dist/cli/commands/setup.js.map +1 -0
  66. package/dist/cli/commands/utils.d.ts +9 -0
  67. package/dist/cli/commands/utils.js +34 -0
  68. package/dist/cli/commands/utils.js.map +1 -0
  69. package/dist/cli/commands/validate.d.ts +10 -0
  70. package/dist/cli/commands/validate.js +93 -0
  71. package/dist/cli/commands/validate.js.map +1 -0
  72. package/dist/cli.js +270 -93
  73. package/dist/cli.js.map +1 -1
  74. package/dist/client/client.js +2 -2
  75. package/dist/client/client.js.map +1 -1
  76. package/dist/config/config.d.ts +5 -20
  77. package/dist/config/config.js +5 -78
  78. package/dist/config/config.js.map +1 -1
  79. package/dist/config/credentials.d.ts +25 -0
  80. package/dist/config/credentials.js +230 -0
  81. package/dist/config/credentials.js.map +1 -0
  82. package/dist/installer/agents/registry.d.ts +12 -0
  83. package/dist/installer/agents/registry.js +78 -0
  84. package/dist/installer/agents/registry.js.map +1 -0
  85. package/dist/installer/agents/types.d.ts +16 -0
  86. package/dist/installer/agents/types.js +6 -0
  87. package/dist/installer/agents/types.js.map +1 -0
  88. package/dist/installer/resolver/address.d.ts +2 -0
  89. package/dist/installer/resolver/address.js.map +1 -0
  90. package/dist/{resolver → installer/resolver}/github.d.ts +1 -1
  91. package/dist/{resolver → installer/resolver}/github.js +2 -2
  92. package/dist/installer/resolver/github.js.map +1 -0
  93. package/dist/installer/resolver/index.d.ts +6 -0
  94. package/dist/{resolver → installer/resolver}/index.js +1 -1
  95. package/dist/installer/resolver/index.js.map +1 -0
  96. package/dist/{resolver → installer/resolver}/local.d.ts +1 -1
  97. package/dist/{resolver → installer/resolver}/local.js +2 -2
  98. package/dist/installer/resolver/local.js.map +1 -0
  99. package/dist/installer/runtime/check.js.map +1 -0
  100. package/dist/installer/runtime/installer.js.map +1 -0
  101. package/dist/installer/runtime/spawn.js.map +1 -0
  102. package/dist/{telemetry → installer/telemetry}/posthog.d.ts +2 -5
  103. package/dist/installer/telemetry/posthog.js +55 -0
  104. package/dist/installer/telemetry/posthog.js.map +1 -0
  105. package/dist/package/bundle-metadata.d.ts +8 -0
  106. package/dist/package/bundle-metadata.js +2 -0
  107. package/dist/package/bundle-metadata.js.map +1 -0
  108. package/dist/package/bundle-scanner.d.ts +18 -0
  109. package/dist/package/bundle-scanner.js +77 -0
  110. package/dist/package/bundle-scanner.js.map +1 -0
  111. package/dist/package/dependency-resolver.d.ts +32 -0
  112. package/dist/package/dependency-resolver.js +298 -0
  113. package/dist/package/dependency-resolver.js.map +1 -0
  114. package/dist/package/discovery.d.ts +9 -0
  115. package/dist/package/discovery.js +32 -0
  116. package/dist/package/discovery.js.map +1 -0
  117. package/dist/package/exceptions.d.ts +36 -0
  118. package/dist/package/exceptions.js +73 -0
  119. package/dist/package/exceptions.js.map +1 -0
  120. package/dist/package/lock-file.d.ts +27 -0
  121. package/dist/package/lock-file.js +137 -0
  122. package/dist/package/lock-file.js.map +1 -0
  123. package/dist/package/manifest/convert.d.ts +14 -0
  124. package/dist/package/manifest/convert.js +83 -0
  125. package/dist/package/manifest/convert.js.map +1 -0
  126. package/dist/package/manifest/parser.d.ts +9 -0
  127. package/dist/package/manifest/parser.js +261 -0
  128. package/dist/package/manifest/parser.js.map +1 -0
  129. package/dist/package/manifest/schema.d.ts +71 -0
  130. package/dist/package/manifest/schema.js +73 -0
  131. package/dist/package/manifest/schema.js.map +1 -0
  132. package/dist/{resolver → package/manifest}/types.d.ts +2 -5
  133. package/dist/{resolver → package/manifest}/types.js.map +1 -1
  134. package/dist/{resolver → package/manifest}/validate.js +25 -20
  135. package/dist/package/manifest/validate.js.map +1 -0
  136. package/dist/package/manifest/validation.d.ts +10 -0
  137. package/dist/package/manifest/validation.js +34 -0
  138. package/dist/package/manifest/validation.js.map +1 -0
  139. package/dist/package/package-cache.d.ts +24 -0
  140. package/dist/package/package-cache.js +92 -0
  141. package/dist/package/package-cache.js.map +1 -0
  142. package/dist/package/qualified-ref.d.ts +41 -0
  143. package/dist/package/qualified-ref.js +105 -0
  144. package/dist/package/qualified-ref.js.map +1 -0
  145. package/dist/package/semver.d.ts +33 -0
  146. package/dist/package/semver.js +77 -0
  147. package/dist/package/semver.js.map +1 -0
  148. package/dist/package/vcs-resolver.d.ts +19 -0
  149. package/dist/package/vcs-resolver.js +115 -0
  150. package/dist/package/vcs-resolver.js.map +1 -0
  151. package/dist/package/visibility.d.ts +25 -0
  152. package/dist/package/visibility.js +132 -0
  153. package/dist/package/visibility.js.map +1 -0
  154. package/dist/runners/api-runner.d.ts +3 -0
  155. package/dist/runners/api-runner.js +9 -1
  156. package/dist/runners/api-runner.js.map +1 -1
  157. package/dist/runners/pipelex-runner.d.ts +16 -2
  158. package/dist/runners/pipelex-runner.js +155 -41
  159. package/dist/runners/pipelex-runner.js.map +1 -1
  160. package/dist/runners/registry.d.ts +1 -1
  161. package/dist/runners/registry.js +5 -4
  162. package/dist/runners/registry.js.map +1 -1
  163. package/dist/runners/types.d.ts +17 -10
  164. package/dist/runners/types.js +6 -1
  165. package/dist/runners/types.js.map +1 -1
  166. package/package.json +7 -4
  167. package/dist/agents/claude-code.d.ts +0 -2
  168. package/dist/agents/claude-code.js +0 -36
  169. package/dist/agents/claude-code.js.map +0 -1
  170. package/dist/agents/cursor.d.ts +0 -2
  171. package/dist/agents/cursor.js +0 -11
  172. package/dist/agents/cursor.js.map +0 -1
  173. package/dist/agents/github-copilot.d.ts +0 -2
  174. package/dist/agents/github-copilot.js +0 -11
  175. package/dist/agents/github-copilot.js.map +0 -1
  176. package/dist/agents/registry.d.ts +0 -4
  177. package/dist/agents/registry.js +0 -24
  178. package/dist/agents/registry.js.map +0 -1
  179. package/dist/agents/types.d.ts +0 -25
  180. package/dist/agents/types.js +0 -11
  181. package/dist/agents/types.js.map +0 -1
  182. package/dist/agents/windsurf.d.ts +0 -2
  183. package/dist/agents/windsurf.js +0 -11
  184. package/dist/agents/windsurf.js.map +0 -1
  185. package/dist/commands/build.d.ts +0 -19
  186. package/dist/commands/build.js +0 -128
  187. package/dist/commands/build.js.map +0 -1
  188. package/dist/commands/config.js.map +0 -1
  189. package/dist/commands/index.js.map +0 -1
  190. package/dist/commands/install.js.map +0 -1
  191. package/dist/commands/run.d.ts +0 -11
  192. package/dist/commands/run.js +0 -44
  193. package/dist/commands/run.js.map +0 -1
  194. package/dist/commands/runner.d.ts +0 -2
  195. package/dist/commands/runner.js +0 -59
  196. package/dist/commands/runner.js.map +0 -1
  197. package/dist/commands/setup.d.ts +0 -1
  198. package/dist/commands/setup.js +0 -45
  199. package/dist/commands/setup.js.map +0 -1
  200. package/dist/commands/telemetry.d.ts +0 -3
  201. package/dist/commands/telemetry.js +0 -49
  202. package/dist/commands/telemetry.js.map +0 -1
  203. package/dist/commands/validate.d.ts +0 -6
  204. package/dist/commands/validate.js +0 -41
  205. package/dist/commands/validate.js.map +0 -1
  206. package/dist/resolver/address.d.ts +0 -2
  207. package/dist/resolver/address.js.map +0 -1
  208. package/dist/resolver/github.js.map +0 -1
  209. package/dist/resolver/index.d.ts +0 -6
  210. package/dist/resolver/index.js.map +0 -1
  211. package/dist/resolver/local.js.map +0 -1
  212. package/dist/resolver/validate.js.map +0 -1
  213. package/dist/runtime/check.js.map +0 -1
  214. package/dist/runtime/installer.js.map +0 -1
  215. package/dist/runtime/spawn.js.map +0 -1
  216. package/dist/supabase/client.d.ts +0 -4
  217. package/dist/supabase/client.js +0 -5
  218. package/dist/supabase/client.js.map +0 -1
  219. package/dist/supabase/methods.d.ts +0 -2
  220. package/dist/supabase/methods.js +0 -13
  221. package/dist/supabase/methods.js.map +0 -1
  222. package/dist/supabase/types.d.ts +0 -30
  223. package/dist/supabase/types.js +0 -2
  224. package/dist/supabase/types.js.map +0 -1
  225. package/dist/telemetry/posthog.js +0 -117
  226. package/dist/telemetry/posthog.js.map +0 -1
  227. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  228. /package/dist/{commands → cli/commands}/index.d.ts +0 -0
  229. /package/dist/{commands → cli/commands}/install.d.ts +0 -0
  230. /package/dist/{resolver → installer/resolver}/address.js +0 -0
  231. /package/dist/{runtime → installer/runtime}/check.d.ts +0 -0
  232. /package/dist/{runtime → installer/runtime}/check.js +0 -0
  233. /package/dist/{runtime → installer/runtime}/installer.d.ts +0 -0
  234. /package/dist/{runtime → installer/runtime}/installer.js +0 -0
  235. /package/dist/{runtime → installer/runtime}/spawn.d.ts +0 -0
  236. /package/dist/{runtime → installer/runtime}/spawn.js +0 -0
  237. /package/dist/{resolver → package/manifest}/types.js +0 -0
  238. /package/dist/{resolver → package/manifest}/validate.d.ts +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Evotis S.A.S.
3
+ Copyright (c) 2026 Evotis S.A.S.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -10,6 +10,27 @@ A method is a packaged workflow that an AI agent (like Claude Code) can use. Met
10
10
 
11
11
  ## CLI Usage
12
12
 
13
+ For the full CLI reference, see [CLI.md](./CLI.md).
14
+
15
+ ### Quick Start
16
+
17
+ ```bash
18
+ # Set up the API runner (interactive — prompts for URL and key)
19
+ mthds setup runner api
20
+
21
+ # Or set up the pipelex runner (local)
22
+ mthds setup runner pipelex
23
+
24
+ # Run a pipeline
25
+ mthds run pipe my_pipe_code
26
+
27
+ # Validate a bundle
28
+ mthds validate ./bundle.mthds
29
+
30
+ # Install a method from the hub
31
+ mthds install org/repo
32
+ ```
33
+
13
34
  ### Install a method
14
35
 
15
36
  ```bash
@@ -116,9 +137,28 @@ These are the only runners that exist today. Feel free to create your own runner
116
137
  npx mthds setup runner pipelex
117
138
  ```
118
139
 
119
- ### Use the API runner
140
+ ### Configure the API runner
141
+
142
+ The API runner is the default. Set it up interactively:
143
+
144
+ ```bash
145
+ mthds setup runner api
146
+ ```
147
+
148
+ This prompts for the API URL and API key (masked input) and saves them to `~/.mthds/credentials`.
149
+
150
+ You can also set values directly:
151
+
152
+ ```bash
153
+ mthds config set api-key YOUR_KEY
154
+ mthds config set api-url https://your-api-instance.com
155
+ ```
156
+
157
+ Credentials are stored in `~/.mthds/credentials` and shared between mthds-js and mthds-python.
158
+
159
+ You can also use environment variables (`PIPELEX_API_KEY`, `PIPELEX_API_URL`) which take precedence over the credentials file.
120
160
 
121
- See the [SDK Usage](#sdk-usage) section below to connect to a Pipelex API instance.
161
+ See the [SDK Usage](#sdk-usage) section below to connect to a Pipelex API instance programmatically.
122
162
 
123
163
  ## SDK Usage
124
164
 
@@ -165,11 +205,11 @@ Instead of passing options to the constructor, you can set environment variables
165
205
 
166
206
  | Variable | Description |
167
207
  |----------|-------------|
168
- | `MTHDS_API_BASE_URL` | Base URL of the API |
169
- | `MTHDS_API_KEY` | API authentication token |
208
+ | `PIPELEX_API_URL` | Base URL of the API |
209
+ | `PIPELEX_API_KEY` | API authentication token |
170
210
 
171
211
  ```typescript
172
- // Reads MTHDS_API_BASE_URL and MTHDS_API_KEY from the environment
212
+ // Reads PIPELEX_API_URL and PIPELEX_API_KEY from the environment
173
213
  const client = new MthdsApiClient();
174
214
  ```
175
215
 
@@ -200,7 +240,7 @@ Anonymous usage data is collected to help rank methods on the leaderboard. Each
200
240
  To opt out:
201
241
 
202
242
  ```bash
203
- DISABLE_TELEMETRY=1 npx mthds install <slug>
243
+ mthds telemetry disable
204
244
  ```
205
245
 
206
246
  ## Development
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Agent build subcommands — generate pipelines, runner code, inputs, and output schemas.
3
+ * Outputs JSON only.
4
+ */
5
+ import type { RunnerType } from "../../runners/types.js";
6
+ interface WithRunner {
7
+ runner?: RunnerType;
8
+ libraryDir?: string[];
9
+ }
10
+ export declare function agentBuildPipe(brief: string, options: {
11
+ output?: string;
12
+ } & WithRunner): Promise<void>;
13
+ export declare function agentBuildRunnerMethod(name: string, options: {
14
+ pipe?: string;
15
+ output?: string;
16
+ } & WithRunner): Promise<void>;
17
+ export declare function agentBuildRunnerPipe(target: string, options: {
18
+ pipe?: string;
19
+ output?: string;
20
+ } & WithRunner): Promise<void>;
21
+ export declare function agentBuildInputsMethod(name: string, options: {
22
+ pipe?: string;
23
+ } & WithRunner): Promise<void>;
24
+ export declare function agentBuildInputsPipe(target: string, options: {
25
+ pipe?: string;
26
+ } & WithRunner): Promise<void>;
27
+ export declare function agentBuildOutputMethod(name: string, options: {
28
+ pipe?: string;
29
+ format?: string;
30
+ } & WithRunner): Promise<void>;
31
+ export declare function agentBuildOutputPipe(target: string, options: {
32
+ pipe?: string;
33
+ format?: string;
34
+ } & WithRunner): Promise<void>;
35
+ export {};
@@ -0,0 +1,334 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/agent/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Agent config commands — manage configuration with JSON output.
3
+ */
4
+ export declare function agentConfigSet(cliKey: string, value: string): Promise<void>;
5
+ export declare function agentConfigGet(cliKey: string): Promise<void>;
6
+ export declare function agentConfigList(): Promise<void>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Agent config commands — manage configuration with JSON output.
3
+ */
4
+ import { agentSuccess, agentError, AGENT_ERROR_DOMAINS } from "../output.js";
5
+ import { VALID_KEYS, resolveKey, getConfigValue, setConfigValue, listConfig, } from "../../config/config.js";
6
+ import { RUNNER_NAMES } from "../../runners/types.js";
7
+ function isValidUrl(s) {
8
+ try {
9
+ new URL(s);
10
+ return true;
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ }
16
+ export async function agentConfigSet(cliKey, value) {
17
+ const configKey = resolveKey(cliKey);
18
+ if (!configKey) {
19
+ agentError(`Unknown config key: ${cliKey}. Valid keys: ${VALID_KEYS.join(", ")}`, "ConfigError", { error_domain: AGENT_ERROR_DOMAINS.CONFIG });
20
+ }
21
+ if (configKey === "runner" && !RUNNER_NAMES.includes(value)) {
22
+ agentError(`Invalid runner: ${value}. Valid runners: ${RUNNER_NAMES.join(", ")}`, "ConfigError", { error_domain: AGENT_ERROR_DOMAINS.CONFIG });
23
+ }
24
+ if (configKey === "apiUrl" && !isValidUrl(value)) {
25
+ agentError(`Invalid URL: ${value}`, "ConfigError", {
26
+ error_domain: AGENT_ERROR_DOMAINS.CONFIG,
27
+ });
28
+ }
29
+ setConfigValue(configKey, value);
30
+ agentSuccess({ success: true, key: cliKey, value });
31
+ }
32
+ export async function agentConfigGet(cliKey) {
33
+ const configKey = resolveKey(cliKey);
34
+ if (!configKey) {
35
+ agentError(`Unknown config key: ${cliKey}. Valid keys: ${VALID_KEYS.join(", ")}`, "ConfigError", { error_domain: AGENT_ERROR_DOMAINS.CONFIG });
36
+ }
37
+ const { value, source } = getConfigValue(configKey);
38
+ agentSuccess({ key: cliKey, value, source });
39
+ }
40
+ export async function agentConfigList() {
41
+ const entries = listConfig();
42
+ agentSuccess({
43
+ config: entries.map((e) => ({
44
+ key: e.cliKey,
45
+ value: e.value,
46
+ source: e.source,
47
+ })),
48
+ });
49
+ }
50
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/commands/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,UAAU,CACR,uBAAuB,MAAM,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrE,aAAa,EACb,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAmB,CAAC,EAAE,CAAC;QAC1E,UAAU,CACR,mBAAmB,KAAK,oBAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrE,aAAa,EACb,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,UAAU,CAAC,gBAAgB,KAAK,EAAE,EAAE,aAAa,EAAE;YACjD,YAAY,EAAE,mBAAmB,CAAC,MAAM;SACzC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,UAAU,CACR,uBAAuB,MAAM,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrE,aAAa,EACb,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,YAAY,CAAC;QACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,EAAE,CAAC,CAAC,MAAM;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Non-interactive agent install command.
3
+ * All choices are required CLI flags — no prompts, no clack.
4
+ */
5
+ interface AgentInstallOptions {
6
+ local?: string;
7
+ agent?: string;
8
+ location?: string;
9
+ method?: string;
10
+ skills?: boolean;
11
+ noRunner?: boolean;
12
+ }
13
+ export declare function agentInstall(address: string | undefined, options: AgentInstallOptions): Promise<void>;
14
+ export {};