mthds 0.0.3 → 0.0.5
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/README.md +98 -6
- package/dist/client/client.d.ts +15 -0
- package/dist/client/client.js +64 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/exceptions.d.ts +6 -0
- package/dist/client/exceptions.js +13 -0
- package/dist/client/exceptions.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/models/index.d.ts +4 -0
- package/dist/client/models/index.js +2 -0
- package/dist/client/models/index.js.map +1 -0
- package/dist/client/models/pipe_output.d.ts +2 -0
- package/dist/client/models/pipe_output.js +2 -0
- package/dist/client/models/pipe_output.js.map +1 -0
- package/dist/client/models/pipeline_inputs.d.ts +3 -0
- package/dist/client/models/pipeline_inputs.js +2 -0
- package/dist/client/models/pipeline_inputs.js.map +1 -0
- package/dist/client/models/stuff.d.ts +1 -0
- package/dist/client/models/stuff.js +2 -0
- package/dist/client/models/stuff.js.map +1 -0
- package/dist/client/models/working_memory.d.ts +1 -0
- package/dist/client/models/working_memory.js +2 -0
- package/dist/client/models/working_memory.js.map +1 -0
- package/dist/client/pipeline.d.ts +36 -0
- package/dist/client/pipeline.js +2 -0
- package/dist/client/pipeline.js.map +1 -0
- package/dist/client/protocol.d.ts +5 -0
- package/dist/client/protocol.js +2 -0
- package/dist/client/protocol.js.map +1 -0
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/check.d.ts +0 -1
- package/dist/runtime/check.js +2 -14
- package/dist/runtime/check.js.map +1 -1
- package/dist/runtime/installer.js +13 -24
- package/dist/runtime/installer.js.map +1 -1
- package/package.json +14 -4
package/README.md
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
# mthds
|
|
2
2
|
|
|
3
|
-
CLI
|
|
3
|
+
CLI and SDK for **methods** — reusable workflows for AI coding agents.
|
|
4
|
+
|
|
5
|
+
The MTHDS open standard is defined at [mthds.ai](https://mthds.ai). Browse and discover public methods on the hub at [mthds.sh](https://mthds.sh).
|
|
4
6
|
|
|
5
7
|
## What is a method?
|
|
6
8
|
|
|
7
9
|
A method is a packaged workflow that an AI agent (like Claude Code) can use. Methods are stored in a registry and installed locally via their unique slug.
|
|
8
10
|
|
|
9
|
-
##
|
|
11
|
+
## CLI Usage
|
|
12
|
+
|
|
13
|
+
### Install a method
|
|
10
14
|
|
|
11
15
|
```bash
|
|
12
16
|
npx mthds install <slug>
|
|
@@ -17,7 +21,7 @@ The CLI will:
|
|
|
17
21
|
1. Look up the method in the registry
|
|
18
22
|
2. Ask which AI agent to install it for (Claude Code, with more coming soon)
|
|
19
23
|
3. Ask where to install — **local** (current project) or **global** (your machine)
|
|
20
|
-
4. Optionally install
|
|
24
|
+
4. Optionally install a [runner](#runners)
|
|
21
25
|
5. Write the method to `.claude/methods/<slug>/METHOD.mthds`
|
|
22
26
|
|
|
23
27
|
### Install locations
|
|
@@ -27,13 +31,101 @@ The CLI will:
|
|
|
27
31
|
| Local | `<cwd>/.claude/methods/<slug>/` |
|
|
28
32
|
| Global | `~/.claude/methods/<slug>/` |
|
|
29
33
|
|
|
30
|
-
##
|
|
34
|
+
## Runners
|
|
35
|
+
|
|
36
|
+
To execute a method, you need a **runner**. A runner is the engine that takes a method definition and actually runs it.
|
|
37
|
+
|
|
38
|
+
### Available runners
|
|
39
|
+
|
|
40
|
+
| Runner | Description |
|
|
41
|
+
|--------|-------------|
|
|
42
|
+
| **Pipelex** (local) | A Python-based runner you install on your machine. Install it with `npx mthds setup runner pipelex`. |
|
|
43
|
+
| **Pipelex API** (remote) | An API server that runs methods remotely. You can self-host it using [pipelex-api](https://github.com/Pipelex/pipelex-api) (open source). A public hosted API at `https://api.pipelex.com` is coming soon. |
|
|
44
|
+
|
|
45
|
+
These are the only runners that exist today. Feel free to create your own runner in a different language!
|
|
46
|
+
|
|
47
|
+
### Install the local runner
|
|
31
48
|
|
|
32
49
|
```bash
|
|
33
|
-
npx mthds setup
|
|
50
|
+
npx mthds setup runner pipelex
|
|
34
51
|
```
|
|
35
52
|
|
|
36
|
-
|
|
53
|
+
### Use the API runner
|
|
54
|
+
|
|
55
|
+
See the [SDK Usage](#sdk-usage) section below to connect to a Pipelex API instance.
|
|
56
|
+
|
|
57
|
+
## SDK Usage
|
|
58
|
+
|
|
59
|
+
Install the package:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install mthds
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Basic example
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { MthdsApiClient } from "mthds";
|
|
69
|
+
|
|
70
|
+
const client = new MthdsApiClient({
|
|
71
|
+
apiBaseUrl: "https://api.pipelex.com",
|
|
72
|
+
apiToken: "your-api-key",
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const result = await client.executePipeline({
|
|
76
|
+
pipe_code: "my-pipeline",
|
|
77
|
+
inputs: {
|
|
78
|
+
topic: "quantum computing",
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
console.log(result.pipe_output);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Self-hosted API
|
|
86
|
+
|
|
87
|
+
Point the client to your own [pipelex-api](https://github.com/Pipelex/pipelex-api) instance:
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
const client = new MthdsApiClient({
|
|
91
|
+
apiBaseUrl: "http://localhost:8081",
|
|
92
|
+
apiToken: "your-api-key",
|
|
93
|
+
});
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Environment variables
|
|
97
|
+
|
|
98
|
+
Instead of passing options to the constructor, you can set environment variables:
|
|
99
|
+
|
|
100
|
+
| Variable | Description |
|
|
101
|
+
|----------|-------------|
|
|
102
|
+
| `MTHDS_API_BASE_URL` | Base URL of the API |
|
|
103
|
+
| `MTHDS_API_KEY` | API authentication token |
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// Reads MTHDS_API_BASE_URL and MTHDS_API_KEY from the environment
|
|
107
|
+
const client = new MthdsApiClient();
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Methods
|
|
111
|
+
|
|
112
|
+
| Method | Description |
|
|
113
|
+
|--------|-------------|
|
|
114
|
+
| `executePipeline(options)` | Execute a pipeline and wait for the result |
|
|
115
|
+
| `startPipeline(options)` | Start a pipeline asynchronously |
|
|
116
|
+
|
|
117
|
+
### Pipeline options
|
|
118
|
+
|
|
119
|
+
| Option | Type | Description |
|
|
120
|
+
|--------|------|-------------|
|
|
121
|
+
| `pipe_code` | `string` | Pipeline code to execute |
|
|
122
|
+
| `mthds_content` | `string` | Raw method content (alternative to `pipe_code`) |
|
|
123
|
+
| `inputs` | `Record<string, string \| string[] \| object>` | Pipeline input variables |
|
|
124
|
+
| `output_name` | `string` | Name of the output to return |
|
|
125
|
+
| `output_multiplicity` | `boolean \| number` | Expected output multiplicity |
|
|
126
|
+
| `dynamic_output_concept_code` | `string` | Dynamic output concept code |
|
|
127
|
+
|
|
128
|
+
Either `pipe_code` or `mthds_content` must be provided.
|
|
37
129
|
|
|
38
130
|
## Telemetry
|
|
39
131
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RunnerProtocol } from "./protocol.js";
|
|
2
|
+
import type { ExecutePipelineOptions, PipelineExecuteResponse, PipelineStartResponse } from "./pipeline.js";
|
|
3
|
+
interface MthdsApiClientOptions {
|
|
4
|
+
apiToken?: string;
|
|
5
|
+
apiBaseUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class MthdsApiClient implements RunnerProtocol {
|
|
8
|
+
private readonly apiToken;
|
|
9
|
+
private readonly apiBaseUrl;
|
|
10
|
+
constructor(options?: MthdsApiClientOptions);
|
|
11
|
+
private makeApiCall;
|
|
12
|
+
executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecuteResponse>;
|
|
13
|
+
startPipeline(options: ExecutePipelineOptions): Promise<PipelineStartResponse>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ClientAuthenticationError, PipelineRequestError, } from "./exceptions.js";
|
|
2
|
+
export class MthdsApiClient {
|
|
3
|
+
apiToken;
|
|
4
|
+
apiBaseUrl;
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
this.apiToken = options.apiToken ?? process.env.MTHDS_API_KEY;
|
|
7
|
+
const resolvedBaseUrl = options.apiBaseUrl ?? process.env.MTHDS_API_BASE_URL;
|
|
8
|
+
if (!resolvedBaseUrl) {
|
|
9
|
+
throw new ClientAuthenticationError("API base URL is required for API execution");
|
|
10
|
+
}
|
|
11
|
+
this.apiBaseUrl = resolvedBaseUrl.replace(/\/+$/, "");
|
|
12
|
+
}
|
|
13
|
+
async makeApiCall(endpoint, pipelineRequest) {
|
|
14
|
+
const url = `${this.apiBaseUrl}/${endpoint}`;
|
|
15
|
+
const headers = {
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
};
|
|
18
|
+
if (this.apiToken) {
|
|
19
|
+
headers["Authorization"] = `Bearer ${this.apiToken}`;
|
|
20
|
+
}
|
|
21
|
+
const response = await fetch(url, {
|
|
22
|
+
method: "POST",
|
|
23
|
+
headers,
|
|
24
|
+
body: JSON.stringify(pipelineRequest),
|
|
25
|
+
signal: AbortSignal.timeout(1_200_000),
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
const text = await response.text().catch(() => "");
|
|
29
|
+
throw new PipelineRequestError(`API POST /${endpoint} failed (${response.status}): ${text || response.statusText}`);
|
|
30
|
+
}
|
|
31
|
+
return response.json();
|
|
32
|
+
}
|
|
33
|
+
async executePipeline(options) {
|
|
34
|
+
if (!options.pipe_code && !options.mthds_content) {
|
|
35
|
+
throw new PipelineRequestError("Either pipe_code or mthds_content must be provided to executePipeline.");
|
|
36
|
+
}
|
|
37
|
+
const request = {
|
|
38
|
+
pipe_code: options.pipe_code,
|
|
39
|
+
mthds_content: options.mthds_content,
|
|
40
|
+
inputs: options.inputs,
|
|
41
|
+
output_name: options.output_name,
|
|
42
|
+
output_multiplicity: options.output_multiplicity,
|
|
43
|
+
dynamic_output_concept_code: options.dynamic_output_concept_code,
|
|
44
|
+
};
|
|
45
|
+
const data = await this.makeApiCall("api/v1/pipeline/execute", request);
|
|
46
|
+
return data;
|
|
47
|
+
}
|
|
48
|
+
async startPipeline(options) {
|
|
49
|
+
if (!options.pipe_code && !options.mthds_content) {
|
|
50
|
+
throw new PipelineRequestError("Either pipe_code or mthds_content must be provided to startPipeline.");
|
|
51
|
+
}
|
|
52
|
+
const request = {
|
|
53
|
+
pipe_code: options.pipe_code,
|
|
54
|
+
mthds_content: options.mthds_content,
|
|
55
|
+
inputs: options.inputs,
|
|
56
|
+
output_name: options.output_name,
|
|
57
|
+
output_multiplicity: options.output_multiplicity,
|
|
58
|
+
dynamic_output_concept_code: options.dynamic_output_concept_code,
|
|
59
|
+
};
|
|
60
|
+
const data = await this.makeApiCall("api/v1/pipeline/start", request);
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class ClientAuthenticationError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = "ClientAuthenticationError";
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class PipelineRequestError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "PipelineRequestError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/client/exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MthdsApiClient } from "./client.js";
|
|
2
|
+
export type { RunnerProtocol } from "./protocol.js";
|
|
3
|
+
export { ClientAuthenticationError, PipelineRequestError, } from "./exceptions.js";
|
|
4
|
+
export type { PipelineState, PipelineRequest, PipelineExecuteResponse, PipelineStartResponse, ExecutePipelineOptions, } from "./pipeline.js";
|
|
5
|
+
export type { DictStuff, DictWorkingMemory, DictPipeOutput, VariableMultiplicity, StuffContentOrData, PipelineInputs, } from "./models/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/models/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipe_output.js","sourceRoot":"","sources":["../../../src/client/models/pipe_output.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline_inputs.js","sourceRoot":"","sources":["../../../src/client/models/pipeline_inputs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { DictStuff } from "../../runners/types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stuff.js","sourceRoot":"","sources":["../../../src/client/models/stuff.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { DictWorkingMemory } from "../../runners/types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"working_memory.js","sourceRoot":"","sources":["../../../src/client/models/working_memory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DictPipeOutput } from "./models/pipe_output.js";
|
|
2
|
+
import type { VariableMultiplicity } from "./models/pipe_output.js";
|
|
3
|
+
import type { PipelineInputs } from "./models/pipeline_inputs.js";
|
|
4
|
+
export type { PipelineState } from "../runners/types.js";
|
|
5
|
+
export interface PipelineRequest {
|
|
6
|
+
pipe_code?: string | null;
|
|
7
|
+
mthds_content?: string | null;
|
|
8
|
+
inputs?: PipelineInputs | null;
|
|
9
|
+
output_name?: string | null;
|
|
10
|
+
output_multiplicity?: VariableMultiplicity | null;
|
|
11
|
+
dynamic_output_concept_code?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface PipelineExecuteResponse {
|
|
14
|
+
pipeline_run_id: string;
|
|
15
|
+
created_at: string;
|
|
16
|
+
pipeline_state: string;
|
|
17
|
+
finished_at?: string | null;
|
|
18
|
+
main_stuff_name?: string | null;
|
|
19
|
+
pipe_output: DictPipeOutput;
|
|
20
|
+
}
|
|
21
|
+
export interface PipelineStartResponse {
|
|
22
|
+
pipeline_run_id: string;
|
|
23
|
+
created_at: string;
|
|
24
|
+
pipeline_state: string;
|
|
25
|
+
finished_at?: string | null;
|
|
26
|
+
main_stuff_name?: string | null;
|
|
27
|
+
pipe_output?: DictPipeOutput | null;
|
|
28
|
+
}
|
|
29
|
+
export interface ExecutePipelineOptions {
|
|
30
|
+
pipe_code?: string | null;
|
|
31
|
+
mthds_content?: string | null;
|
|
32
|
+
inputs?: PipelineInputs | null;
|
|
33
|
+
output_name?: string | null;
|
|
34
|
+
output_multiplicity?: VariableMultiplicity | null;
|
|
35
|
+
dynamic_output_concept_code?: string | null;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/client/pipeline.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ExecutePipelineOptions, PipelineExecuteResponse, PipelineStartResponse } from "./pipeline.js";
|
|
2
|
+
export interface RunnerProtocol {
|
|
3
|
+
executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecuteResponse>;
|
|
4
|
+
startPipeline(options: ExecutePipelineOptions): Promise<PipelineStartResponse>;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client/protocol.ts"],"names":[],"mappings":""}
|
package/dist/commands/index.js
CHANGED
|
@@ -52,7 +52,7 @@ export function showBanner() {
|
|
|
52
52
|
console.log(` ${chalk.dim("$")} mthds build pipe "Analyze a CV against a job offer"`);
|
|
53
53
|
console.log(` ${chalk.dim("$")} mthds validate my_bundle.plx`);
|
|
54
54
|
console.log(` ${chalk.dim("$")} mthds install my-method-slug\n`);
|
|
55
|
-
console.log(chalk.dim(" Docs: https://pipelex.
|
|
55
|
+
console.log(chalk.dim(" Docs: https://docs.pipelex.com \n"));
|
|
56
56
|
console.log(chalk.bold(" Telemetry:"));
|
|
57
57
|
console.log(chalk.dim(" Anonymous usage data (method slug + timestamp) is collected\n to help rank methods. No personal info is collected.\n Opt out: DISABLE_TELEMETRY=1\n"));
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./client/index.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
package/dist/runtime/check.d.ts
CHANGED
package/dist/runtime/check.js
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
|
-
export function isUvInstalled() {
|
|
3
|
-
try {
|
|
4
|
-
execFileSync("uv", ["--version"], { stdio: "ignore" });
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
catch {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
2
|
export function isPipelexInstalled() {
|
|
12
3
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
16
|
-
});
|
|
17
|
-
return output.includes("pipelex");
|
|
4
|
+
execFileSync("pipelex", ["--version"], { stdio: "ignore" });
|
|
5
|
+
return true;
|
|
18
6
|
}
|
|
19
7
|
catch {
|
|
20
8
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/runtime/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/runtime/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,YAAY,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,39 +1,28 @@
|
|
|
1
|
-
import { execSync
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import {
|
|
3
|
+
import { isPipelexInstalled } from "./check.js";
|
|
4
4
|
export async function ensureRuntime() {
|
|
5
|
-
if (!isUvInstalled()) {
|
|
6
|
-
await installUv();
|
|
7
|
-
}
|
|
8
5
|
if (!isPipelexInstalled()) {
|
|
9
6
|
await installPipelex();
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
async function installUv() {
|
|
13
|
-
const spinner = ora("Installing uv runtime...").start();
|
|
14
|
-
try {
|
|
15
|
-
execSync("curl -LsSf https://astral.sh/uv/install.sh | sh", {
|
|
16
|
-
stdio: "ignore",
|
|
17
|
-
shell: "/bin/sh",
|
|
18
|
-
});
|
|
19
|
-
spinner.succeed("uv installed");
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
spinner.fail("Failed to install uv");
|
|
23
|
-
throw new Error("Could not install uv. Please install it manually: https://docs.astral.sh/uv/getting-started/installation/");
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
9
|
async function installPipelex() {
|
|
27
|
-
const spinner = ora("
|
|
10
|
+
const spinner = ora("Installing pipelex...").start();
|
|
28
11
|
try {
|
|
29
|
-
|
|
30
|
-
stdio: "ignore"
|
|
31
|
-
}
|
|
12
|
+
if (process.platform === "win32") {
|
|
13
|
+
execSync('powershell -Command "irm https://pipelex.com/install.ps1 | iex"', { stdio: "ignore" });
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
execSync("curl -fsSL https://pipelex.com/install.sh | sh", {
|
|
17
|
+
stdio: "ignore",
|
|
18
|
+
shell: "/bin/sh",
|
|
19
|
+
});
|
|
20
|
+
}
|
|
32
21
|
spinner.succeed("pipelex installed");
|
|
33
22
|
}
|
|
34
23
|
catch (error) {
|
|
35
24
|
spinner.fail("Failed to install pipelex");
|
|
36
|
-
throw new Error("Could not install pipelex
|
|
25
|
+
throw new Error("Could not install pipelex. Please install it manually: https://pipelex.com");
|
|
37
26
|
}
|
|
38
27
|
}
|
|
39
28
|
//# sourceMappingURL=installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/runtime/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/runtime/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,QAAQ,CACN,iEAAiE,EACjE,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,gDAAgD,EAAE;gBACzD,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mthds",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "CLI for
|
|
3
|
+
"version": "0.0.5",
|
|
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": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/
|
|
8
|
+
"url": "https://github.com/mthds-ai/mthds-js"
|
|
9
9
|
},
|
|
10
10
|
"type": "module",
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
11
19
|
"bin": {
|
|
12
20
|
"mthds": "./dist/cli.js"
|
|
13
21
|
},
|
|
14
22
|
"scripts": {
|
|
15
|
-
"build": "tsc"
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"example": "npx tsx examples/call_api.ts"
|
|
16
25
|
},
|
|
17
26
|
"files": [
|
|
18
27
|
"dist/"
|
|
@@ -30,6 +39,7 @@
|
|
|
30
39
|
},
|
|
31
40
|
"devDependencies": {
|
|
32
41
|
"@types/node": "^22.12.0",
|
|
42
|
+
"tsx": "^4.19.0",
|
|
33
43
|
"typescript": "^5.7.3"
|
|
34
44
|
}
|
|
35
45
|
}
|