mthds 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -4,8 +4,9 @@ import { createRequire } from "node:module";
4
4
  import * as p from "@clack/prompts";
5
5
  import { showBanner } from "./commands/index.js";
6
6
  import { printLogo } from "./commands/index.js";
7
- import { installSoftware } from "./commands/setup.js";
7
+ import { installRunner } from "./commands/setup.js";
8
8
  import { installMethod } from "./commands/install.js";
9
+ import { configSet, configGet, configList } from "./commands/config.js";
9
10
  const require = createRequire(import.meta.url);
10
11
  const pkg = require("../package.json");
11
12
  const program = new Command();
@@ -27,14 +28,40 @@ program
27
28
  .action(async (slug) => {
28
29
  await installMethod(slug);
29
30
  });
30
- // mthds setup software <name>
31
+ // mthds setup runner <name>
31
32
  const setup = program.command("setup").exitOverride();
32
33
  setup
33
- .command("software <name>")
34
- .description("Install a software runtime (e.g. pipelex)")
34
+ .command("runner <name>")
35
+ .description("Install a runner (e.g. pipelex)")
35
36
  .exitOverride()
36
37
  .action(async (name) => {
37
- await installSoftware(name);
38
+ await installRunner(name);
39
+ });
40
+ // mthds config set|get|list
41
+ const config = program.command("config").description("Manage configuration").exitOverride();
42
+ config
43
+ .command("set")
44
+ .argument("<key>", "Config key (runner, api-url, api-key)")
45
+ .argument("<value>", "Value to set")
46
+ .description("Set a config value")
47
+ .exitOverride()
48
+ .action(async (key, value) => {
49
+ await configSet(key, value);
50
+ });
51
+ config
52
+ .command("get")
53
+ .argument("<key>", "Config key (runner, api-url, api-key)")
54
+ .description("Get a config value")
55
+ .exitOverride()
56
+ .action(async (key) => {
57
+ await configGet(key);
58
+ });
59
+ config
60
+ .command("list")
61
+ .description("List all config values")
62
+ .exitOverride()
63
+ .action(async () => {
64
+ await configList();
38
65
  });
39
66
  // Default: show banner
40
67
  program.action(() => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function configSet(cliKey: string, value: string): Promise<void>;
2
+ export declare function configGet(cliKey: string): Promise<void>;
3
+ export declare function configList(): Promise<void>;
@@ -0,0 +1,69 @@
1
+ import * as p from "@clack/prompts";
2
+ import { printLogo } from "./index.js";
3
+ import { VALID_KEYS, resolveKey, getConfigValue, setConfigValue, listConfig, } from "../config/config.js";
4
+ const VALID_RUNNERS = ["api", "pipelex"];
5
+ function isValidUrl(s) {
6
+ try {
7
+ new URL(s);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ export async function configSet(cliKey, value) {
15
+ printLogo();
16
+ p.intro("mthds config set");
17
+ const configKey = resolveKey(cliKey);
18
+ if (!configKey) {
19
+ p.log.error(`Unknown config key: ${cliKey}`);
20
+ p.log.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
21
+ p.outro("");
22
+ process.exit(1);
23
+ }
24
+ // Validate value
25
+ if (configKey === "runner" && !VALID_RUNNERS.includes(value)) {
26
+ p.log.error(`Invalid runner: ${value}`);
27
+ p.log.info(`Valid runners: ${VALID_RUNNERS.join(", ")}`);
28
+ p.outro("");
29
+ process.exit(1);
30
+ }
31
+ if (configKey === "apiUrl" && !isValidUrl(value)) {
32
+ p.log.error(`Invalid URL: ${value}`);
33
+ p.outro("");
34
+ process.exit(1);
35
+ }
36
+ setConfigValue(configKey, value);
37
+ p.log.success(`${cliKey} = ${value}`);
38
+ p.outro("");
39
+ }
40
+ export async function configGet(cliKey) {
41
+ printLogo();
42
+ p.intro("mthds config get");
43
+ const configKey = resolveKey(cliKey);
44
+ if (!configKey) {
45
+ p.log.error(`Unknown config key: ${cliKey}`);
46
+ p.log.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
47
+ p.outro("");
48
+ process.exit(1);
49
+ }
50
+ const { value, source } = getConfigValue(configKey);
51
+ const sourceLabel = source === "env" ? " (from env)" : source === "default" ? " (default)" : "";
52
+ p.log.info(`${cliKey} = ${value}${sourceLabel}`);
53
+ p.outro("");
54
+ }
55
+ export async function configList() {
56
+ printLogo();
57
+ p.intro("mthds config list");
58
+ const entries = listConfig();
59
+ for (const entry of entries) {
60
+ const sourceLabel = entry.source === "env"
61
+ ? " (from env)"
62
+ : entry.source === "default"
63
+ ? " (default)"
64
+ : "";
65
+ p.log.info(`${entry.cliKey} = ${entry.value}${sourceLabel}`);
66
+ }
67
+ p.outro("");
68
+ }
69
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -32,12 +32,15 @@ export function showBanner() {
32
32
  console.log(` ${chalk.green("mthds")} ${chalk.yellow("<command>")} [options]\n`);
33
33
  console.log(chalk.bold(" Commands:"));
34
34
  console.log(` ${chalk.yellow("install <slug>")} Install a method`);
35
- console.log(` ${chalk.yellow("setup software <name>")} Install a software runtime`);
35
+ console.log(` ${chalk.yellow("setup runner <name>")} Install a runner`);
36
+ console.log(` ${chalk.yellow("config set <key> <val>")} Set a config value`);
37
+ console.log(` ${chalk.yellow("config get <key>")} Get a config value`);
38
+ console.log(` ${chalk.yellow("config list")} List all config values`);
36
39
  console.log(` ${chalk.yellow("--help")} Show this help message`);
37
40
  console.log(` ${chalk.yellow("--version")} Show version\n`);
38
41
  console.log(chalk.bold(" Examples:"));
39
42
  console.log(` ${chalk.dim("$")} mthds install my-method-slug`);
40
- console.log(` ${chalk.dim("$")} mthds setup software pipelex\n`);
43
+ console.log(` ${chalk.dim("$")} mthds setup runner pipelex\n`);
41
44
  console.log(chalk.dim(" Docs: https://pipelex.dev/docs\n"));
42
45
  console.log(chalk.bold(" Telemetry:"));
43
46
  console.log(chalk.dim(" Anonymous usage data (method slug + timestamp) is collected\n to help rank methods. No personal info is collected.\n Opt out: DISABLE_TELEMETRY=1\n"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG;IACX,4CAA4C;IAC5C,+CAA+C;IAC/C,mDAAmD;IACnD,8CAA8C;IAC9C,iDAAiD;CAClD,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CACjE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,6BAA6B,CAC1E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,0CAA0C,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,+BAA+B,CAChE,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAEpE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAChD,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,yJAAyJ,CAC1J,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG;IACX,4CAA4C;IAC5C,+CAA+C;IAC/C,mDAAmD;IACnD,8CAA8C;IAC9C,iDAAiD;CAClD,CAAC;AAEF,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAEpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CACjE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,qBAAqB,CAChE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,qBAAqB,CACnE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,2BAA2B,CACnE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,qCAAqC,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,0CAA0C,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,+BAA+B,CAChE,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAChD,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,yJAAyJ,CAC1J,CACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { join } from "node:path";
2
2
  import { homedir } from "node:os";
3
3
  import { mkdirSync } from "node:fs";
4
+ import { exec } from "node:child_process";
5
+ import { promisify } from "node:util";
6
+ const execAsync = promisify(exec);
4
7
  import * as p from "@clack/prompts";
8
+ import chalk from "chalk";
5
9
  import { isPipelexInstalled } from "../runtime/check.js";
6
10
  import { ensureRuntime } from "../runtime/installer.js";
7
11
  import { trackMethodInstall, shutdown } from "../telemetry/posthog.js";
@@ -68,16 +72,16 @@ export async function installMethod(slug) {
68
72
  p.cancel("Installation cancelled.");
69
73
  process.exit(0);
70
74
  }
71
- // Step 3: Optional software install
72
- const wantsSoftware = await p.confirm({
73
- message: "Do you want to install software now? (optional)",
75
+ // Step 3: Optional runner install
76
+ const wantsRunner = await p.confirm({
77
+ message: "Do you want to install the runner now? (optional)",
74
78
  initialValue: false,
75
79
  });
76
- if (p.isCancel(wantsSoftware)) {
80
+ if (p.isCancel(wantsRunner)) {
77
81
  p.cancel("Installation cancelled.");
78
82
  process.exit(0);
79
83
  }
80
- if (wantsSoftware) {
84
+ if (wantsRunner) {
81
85
  if (!isPipelexInstalled()) {
82
86
  await ensureRuntime();
83
87
  p.log.success("pipelex installed.");
@@ -98,6 +102,58 @@ export async function installMethod(slug) {
98
102
  location: selectedLocation,
99
103
  targetDir,
100
104
  });
105
+ // Step 5: Optional Pipelex skills
106
+ const SKILLS_REPO = "https://github.com/pipelex/skills";
107
+ const skillChoices = [
108
+ { value: "check", label: "check", hint: "Validate and review Pipelex workflow bundles without making changes" },
109
+ { value: "edit", label: "edit", hint: "Modify existing Pipelex workflow bundles" },
110
+ { value: "build", label: "build", hint: "Create new Pipelex workflow bundles from scratch" },
111
+ { value: "fix", label: "fix", hint: "Automatically fix issues in Pipelex workflow bundles" },
112
+ ];
113
+ let selectedSkills = [];
114
+ let emptyAttempts = 0;
115
+ // eslint-disable-next-line no-constant-condition
116
+ while (true) {
117
+ const hint = emptyAttempts > 0
118
+ ? chalk.yellow(" press space to select, enter to confirm")
119
+ : chalk.dim(" press space to select, enter to confirm");
120
+ const result = await p.multiselect({
121
+ message: `Which Pipelex skills do you want to install?\n${hint}`,
122
+ options: skillChoices,
123
+ required: false,
124
+ });
125
+ if (p.isCancel(result)) {
126
+ p.cancel("Installation cancelled.");
127
+ process.exit(0);
128
+ }
129
+ if (result.length === 0) {
130
+ emptyAttempts++;
131
+ if (emptyAttempts >= 2) {
132
+ break;
133
+ }
134
+ continue;
135
+ }
136
+ selectedSkills = result;
137
+ break;
138
+ }
139
+ if (selectedSkills.length > 0) {
140
+ const globalFlag = selectedLocation === Loc.Global ? " -g" : "";
141
+ const locationLabel = selectedLocation === Loc.Global ? "globally" : "locally";
142
+ const sk = p.spinner();
143
+ for (const skill of selectedSkills) {
144
+ sk.start(`Installing skill "${skill}" ${locationLabel}...`);
145
+ try {
146
+ await execAsync(`npx skills add ${SKILLS_REPO} --skill ${skill} --agent ${selectedAgent}${globalFlag} -y`, {
147
+ cwd: process.cwd(),
148
+ });
149
+ sk.stop(`Skill "${skill}" installed ${locationLabel}.`);
150
+ }
151
+ catch {
152
+ sk.stop(`Failed to install skill "${skill}".`);
153
+ p.log.warning(`Could not install skill "${skill}". You can retry manually:\n npx skills add ${SKILLS_REPO} --skill ${skill} --agent ${selectedAgent}${globalFlag}`);
154
+ }
155
+ }
156
+ }
101
157
  p.outro("Done");
102
158
  await shutdown();
103
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function installSoftware(name: string): Promise<void>;
1
+ export declare function installRunner(name: string): Promise<void>;
@@ -3,12 +3,12 @@ import { isPipelexInstalled } from "../runtime/check.js";
3
3
  import { ensureRuntime } from "../runtime/installer.js";
4
4
  import { shutdown } from "../telemetry/posthog.js";
5
5
  import { printLogo } from "./index.js";
6
- export async function installSoftware(name) {
6
+ export async function installRunner(name) {
7
7
  printLogo();
8
8
  p.intro("mthds setup");
9
9
  if (name !== "pipelex") {
10
- p.log.error(`Unknown software: ${name}`);
11
- p.log.info("Available software: pipelex");
10
+ p.log.error(`Unknown runner: ${name}`);
11
+ p.log.info("Available runners: pipelex");
12
12
  p.outro("Done");
13
13
  process.exit(1);
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,aAAa,EAAE,CAAC;IACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,SAAS,EAAE,CAAC;IACZ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEvB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,aAAa,EAAE,CAAC;IACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { RunnerType } from "../runners/types.js";
2
+ export interface MthdsConfig {
3
+ runner: RunnerType;
4
+ apiUrl: string;
5
+ apiKey: string;
6
+ }
7
+ export declare const VALID_KEYS: string[];
8
+ export declare function resolveKey(cliKey: string): keyof MthdsConfig | undefined;
9
+ export declare function loadConfig(): MthdsConfig;
10
+ export declare function getConfigValue(key: keyof MthdsConfig): {
11
+ value: string;
12
+ source: "env" | "file" | "default";
13
+ };
14
+ export declare function setConfigValue(key: keyof MthdsConfig, value: string): void;
15
+ export declare function listConfig(): Array<{
16
+ key: string;
17
+ cliKey: string;
18
+ value: string;
19
+ source: "env" | "file" | "default";
20
+ }>;
@@ -0,0 +1,79 @@
1
+ import { join } from "node:path";
2
+ import { homedir } from "node:os";
3
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
+ const CONFIG_DIR = join(homedir(), ".mthds");
5
+ const CONFIG_PATH = join(CONFIG_DIR, "config.json");
6
+ const DEFAULTS = {
7
+ runner: "api",
8
+ apiUrl: "https://api.pipelex.com",
9
+ apiKey: "",
10
+ };
11
+ /** Map from config key to env var name */
12
+ const ENV_OVERRIDES = {
13
+ runner: "MTHDS_RUNNER",
14
+ apiUrl: "MTHDS_API_URL",
15
+ apiKey: "MTHDS_API_KEY",
16
+ };
17
+ /** Map from CLI flag names (kebab-case) to config keys */
18
+ const KEY_ALIASES = {
19
+ runner: "runner",
20
+ "api-url": "apiUrl",
21
+ "api-key": "apiKey",
22
+ };
23
+ export const VALID_KEYS = Object.keys(KEY_ALIASES);
24
+ export function resolveKey(cliKey) {
25
+ return KEY_ALIASES[cliKey];
26
+ }
27
+ function readConfigFile() {
28
+ if (!existsSync(CONFIG_PATH))
29
+ return {};
30
+ try {
31
+ const raw = readFileSync(CONFIG_PATH, "utf-8");
32
+ return JSON.parse(raw);
33
+ }
34
+ catch {
35
+ return {};
36
+ }
37
+ }
38
+ function writeConfigFile(config) {
39
+ mkdirSync(CONFIG_DIR, { recursive: true });
40
+ writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2) + "\n", "utf-8");
41
+ }
42
+ export function loadConfig() {
43
+ const file = readConfigFile();
44
+ const merged = { ...DEFAULTS, ...file };
45
+ // Env vars take precedence
46
+ for (const [key, envName] of Object.entries(ENV_OVERRIDES)) {
47
+ const envVal = process.env[envName];
48
+ if (envVal !== undefined) {
49
+ merged[key] = envVal;
50
+ }
51
+ }
52
+ return merged;
53
+ }
54
+ export function getConfigValue(key) {
55
+ const envName = ENV_OVERRIDES[key];
56
+ const envVal = process.env[envName];
57
+ if (envVal !== undefined) {
58
+ return { value: envVal, source: "env" };
59
+ }
60
+ const file = readConfigFile();
61
+ if (key in file) {
62
+ return { value: String(file[key]), source: "file" };
63
+ }
64
+ return { value: String(DEFAULTS[key]), source: "default" };
65
+ }
66
+ export function setConfigValue(key, value) {
67
+ const file = readConfigFile();
68
+ file[key] = value;
69
+ writeConfigFile(file);
70
+ }
71
+ export function listConfig() {
72
+ const result = [];
73
+ for (const [cliKey, configKey] of Object.entries(KEY_ALIASES)) {
74
+ const { value, source } = getConfigValue(configKey);
75
+ result.push({ key: configKey, cliKey, value, source });
76
+ }
77
+ return result;
78
+ }
79
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type RunnerType = "api" | "pipelex";
2
+ export interface RunOptions {
3
+ input?: Record<string, unknown>;
4
+ }
5
+ export interface RunResult {
6
+ output: unknown;
7
+ }
8
+ export interface Runner {
9
+ readonly type: RunnerType;
10
+ run(pipe: string, options?: RunOptions): Promise<RunResult>;
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runners/types.ts"],"names":[],"mappings":""}
@@ -8,8 +8,9 @@ function isDisabled() {
8
8
  function getClient() {
9
9
  if (isDisabled())
10
10
  return null;
11
+ console.log("PostHog API Key:", POSTHOG_API_KEY);
11
12
  if (!client) {
12
- client = new PostHog(POSTHOG_API_KEY, { host: POSTHOG_HOST });
13
+ client = new PostHog(POSTHOG_API_KEY, { host: POSTHOG_HOST, disableGeoip: true });
13
14
  }
14
15
  return client;
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../src/telemetry/posthog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAC1E,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,CAAC,OAAO,CAAC;QACd,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../src/telemetry/posthog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAC1E,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEhD,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,UAAU,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,CAAC,OAAO,CAAC;QACd,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE;YACV,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "mthds",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "CLI for composable methods for AI agents. Turn your knowledge processes into executable methods.",
5
5
  "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Pipelex/mthds"
9
+ },
6
10
  "type": "module",
7
11
  "bin": {
8
12
  "mthds": "./dist/cli.js"
@@ -1 +0,0 @@
1
- export declare function runCommand(args: string[]): Promise<void>;
@@ -1,9 +0,0 @@
1
- import { spawnPipelex } from "../runtime/spawn.js";
2
- import { trackEvent, shutdown } from "../telemetry/posthog.js";
3
- export async function runCommand(args) {
4
- trackEvent("command_run", { command: args[0] ?? "unknown" });
5
- const exitCode = await spawnPipelex(args);
6
- await shutdown();
7
- process.exit(exitCode);
8
- }
9
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,UAAU,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,QAAQ,EAAE,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
package/dist/config.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export interface MthdsConfig {
2
- anonymousId: string;
3
- }
4
- export declare function loadConfig(): MthdsConfig;
package/dist/config.js DELETED
@@ -1,21 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join } from "node:path";
4
- import { randomUUID } from "node:crypto";
5
- const CONFIG_DIR = join(homedir(), ".pipelex");
6
- const CONFIG_FILE = join(CONFIG_DIR, "mthds.json");
7
- export function loadConfig() {
8
- if (!existsSync(CONFIG_DIR)) {
9
- mkdirSync(CONFIG_DIR, { recursive: true });
10
- }
11
- if (existsSync(CONFIG_FILE)) {
12
- const raw = readFileSync(CONFIG_FILE, "utf-8");
13
- return JSON.parse(raw);
14
- }
15
- const config = {
16
- anonymousId: randomUUID(),
17
- };
18
- writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), "utf-8");
19
- return config;
20
- }
21
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAMnD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAgB;QAC1B,WAAW,EAAE,UAAU,EAAE;KAC1B,CAAC;IAEF,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,4 +0,0 @@
1
- import { trackEvent, shutdown } from "./telemetry/posthog.js";
2
- trackEvent("installed");
3
- await shutdown();
4
- //# sourceMappingURL=postinstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE9D,UAAU,CAAC,WAAW,CAAC,CAAC;AACxB,MAAM,QAAQ,EAAE,CAAC"}