@mariozechner/pi 0.2.4 → 0.5.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.
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,348 @@
1
+ #!/usr/bin/env node
2
+ import chalk from "chalk";
3
+ import { spawn } from "child_process";
4
+ import { readFileSync } from "fs";
5
+ import { dirname, join } from "path";
6
+ import { fileURLToPath } from "url";
7
+ import { listModels, startModel, stopModel, viewLogs } from "./commands/models.js";
8
+ import { listPods, removePodCommand, setupPod, switchActivePod } from "./commands/pods.js";
9
+ import { promptModel } from "./commands/prompt.js";
10
+ import { getActivePod, loadConfig } from "./config.js";
11
+ import { sshExecStream } from "./ssh.js";
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ const packageJson = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
15
+ function printHelp() {
16
+ console.log(`pi v${packageJson.version} - Manage vLLM deployments on GPU pods
17
+
18
+ Pod Management:
19
+ pi pods setup <name> "<ssh>" --mount "<mount>" Setup pod with mount command
20
+ Options:
21
+ --vllm release Install latest vLLM release >=0.10.0 (default)
22
+ --vllm nightly Install vLLM nightly build (latest features)
23
+ --vllm gpt-oss Install vLLM 0.10.1+gptoss with PyTorch nightly (GPT-OSS only)
24
+ pi pods List all pods (* = active)
25
+ pi pods active <name> Switch active pod
26
+ pi pods remove <name> Remove pod from local config
27
+ pi shell [<name>] Open shell on pod (active or specified)
28
+ pi ssh [<name>] "<command>" Run SSH command on pod
29
+
30
+ Model Management:
31
+ pi start <model> --name <name> [options] Start a model
32
+ --memory <percent> GPU memory allocation (30%, 50%, 90%)
33
+ --context <size> Context window (4k, 8k, 16k, 32k, 64k, 128k)
34
+ --gpus <count> Number of GPUs to use (predefined models only)
35
+ --vllm <args...> Pass remaining args to vLLM (ignores other options)
36
+ pi stop [<name>] Stop model (or all if no name)
37
+ pi list List running models
38
+ pi logs <name> Stream model logs
39
+ pi agent <name> ["<message>"...] [options] Chat with model using agent & tools
40
+ pi agent <name> [options] Interactive chat mode
41
+ --continue, -c Continue previous session
42
+ --json Output as JSONL
43
+ (All pi-agent options are supported)
44
+
45
+ All model commands support --pod <name> to override the active pod.
46
+
47
+ Environment:
48
+ HF_TOKEN HuggingFace token for model downloads
49
+ PI_API_KEY API key for vLLM endpoints
50
+ PI_CONFIG_DIR Config directory (default: ~/.pi)`);
51
+ }
52
+ // Parse command line arguments
53
+ const args = process.argv.slice(2);
54
+ if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
55
+ printHelp();
56
+ process.exit(0);
57
+ }
58
+ if (args[0] === "--version" || args[0] === "-v") {
59
+ console.log(packageJson.version);
60
+ process.exit(0);
61
+ }
62
+ const command = args[0];
63
+ const subcommand = args[1];
64
+ // Main command handler
65
+ try {
66
+ // Handle "pi pods" commands
67
+ if (command === "pods") {
68
+ if (!subcommand) {
69
+ // pi pods - list all pods
70
+ listPods();
71
+ }
72
+ else if (subcommand === "setup") {
73
+ // pi pods setup <name> "<ssh>" [--mount "<mount>"] [--models-path <path>] [--vllm release|nightly|gpt-oss]
74
+ const name = args[2];
75
+ const sshCmd = args[3];
76
+ if (!name || !sshCmd) {
77
+ console.error('Usage: pi pods setup <name> "<ssh>" [--mount "<mount>"] [--models-path <path>] [--vllm release|nightly|gpt-oss]');
78
+ process.exit(1);
79
+ }
80
+ // Parse options
81
+ const options = {};
82
+ for (let i = 4; i < args.length; i++) {
83
+ if (args[i] === "--mount" && i + 1 < args.length) {
84
+ options.mount = args[i + 1];
85
+ i++;
86
+ }
87
+ else if (args[i] === "--models-path" && i + 1 < args.length) {
88
+ options.modelsPath = args[i + 1];
89
+ i++;
90
+ }
91
+ else if (args[i] === "--vllm" && i + 1 < args.length) {
92
+ const vllmType = args[i + 1];
93
+ if (vllmType === "release" || vllmType === "nightly" || vllmType === "gpt-oss") {
94
+ options.vllm = vllmType;
95
+ }
96
+ else {
97
+ console.error(chalk.red(`Invalid vLLM type: ${vllmType}`));
98
+ console.error("Valid options: release, nightly, gpt-oss");
99
+ process.exit(1);
100
+ }
101
+ i++;
102
+ }
103
+ }
104
+ // If --mount provided but no --models-path, try to extract path from mount command
105
+ if (options.mount && !options.modelsPath) {
106
+ // Extract last part of mount command as models path
107
+ const parts = options.mount.trim().split(" ");
108
+ const lastPart = parts[parts.length - 1];
109
+ if (lastPart?.startsWith("/")) {
110
+ options.modelsPath = lastPart;
111
+ }
112
+ }
113
+ await setupPod(name, sshCmd, options);
114
+ }
115
+ else if (subcommand === "active") {
116
+ // pi pods active <name>
117
+ const name = args[2];
118
+ if (!name) {
119
+ console.error("Usage: pi pods active <name>");
120
+ process.exit(1);
121
+ }
122
+ switchActivePod(name);
123
+ }
124
+ else if (subcommand === "remove") {
125
+ // pi pods remove <name>
126
+ const name = args[2];
127
+ if (!name) {
128
+ console.error("Usage: pi pods remove <name>");
129
+ process.exit(1);
130
+ }
131
+ removePodCommand(name);
132
+ }
133
+ else {
134
+ console.error(`Unknown pods subcommand: ${subcommand}`);
135
+ process.exit(1);
136
+ }
137
+ }
138
+ else {
139
+ // Parse --pod override for model commands
140
+ let podOverride;
141
+ const podIndex = args.indexOf("--pod");
142
+ if (podIndex !== -1 && podIndex + 1 < args.length) {
143
+ podOverride = args[podIndex + 1];
144
+ // Remove --pod and its value from args
145
+ args.splice(podIndex, 2);
146
+ }
147
+ // Handle SSH/shell commands and model commands
148
+ switch (command) {
149
+ case "shell": {
150
+ // pi shell [<name>] - open interactive shell
151
+ const podName = args[1];
152
+ let podInfo = null;
153
+ if (podName) {
154
+ const config = loadConfig();
155
+ const pod = config.pods[podName];
156
+ if (pod) {
157
+ podInfo = { name: podName, pod };
158
+ }
159
+ }
160
+ else {
161
+ podInfo = getActivePod();
162
+ }
163
+ if (!podInfo) {
164
+ if (podName) {
165
+ console.error(chalk.red(`Pod '${podName}' not found`));
166
+ }
167
+ else {
168
+ console.error(chalk.red("No active pod. Use 'pi pods active <name>' to set one."));
169
+ }
170
+ process.exit(1);
171
+ }
172
+ console.log(chalk.green(`Connecting to pod '${podInfo.name}'...`));
173
+ // Execute SSH in interactive mode
174
+ const sshArgs = podInfo.pod.ssh.split(" ").slice(1); // Remove 'ssh' from command
175
+ const sshProcess = spawn("ssh", sshArgs, {
176
+ stdio: "inherit",
177
+ env: process.env,
178
+ });
179
+ sshProcess.on("exit", (code) => {
180
+ process.exit(code || 0);
181
+ });
182
+ break;
183
+ }
184
+ case "ssh": {
185
+ // pi ssh [<name>] "<command>" - run command via SSH
186
+ let podName;
187
+ let sshCommand;
188
+ if (args.length === 2) {
189
+ // pi ssh "<command>" - use active pod
190
+ sshCommand = args[1];
191
+ }
192
+ else if (args.length === 3) {
193
+ // pi ssh <name> "<command>"
194
+ podName = args[1];
195
+ sshCommand = args[2];
196
+ }
197
+ else {
198
+ console.error('Usage: pi ssh [<name>] "<command>"');
199
+ process.exit(1);
200
+ }
201
+ let podInfo = null;
202
+ if (podName) {
203
+ const config = loadConfig();
204
+ const pod = config.pods[podName];
205
+ if (pod) {
206
+ podInfo = { name: podName, pod };
207
+ }
208
+ }
209
+ else {
210
+ podInfo = getActivePod();
211
+ }
212
+ if (!podInfo) {
213
+ if (podName) {
214
+ console.error(chalk.red(`Pod '${podName}' not found`));
215
+ }
216
+ else {
217
+ console.error(chalk.red("No active pod. Use 'pi pods active <name>' to set one."));
218
+ }
219
+ process.exit(1);
220
+ }
221
+ console.log(chalk.gray(`Running on pod '${podInfo.name}': ${sshCommand}`));
222
+ // Execute command and stream output
223
+ const exitCode = await sshExecStream(podInfo.pod.ssh, sshCommand);
224
+ process.exit(exitCode);
225
+ break;
226
+ }
227
+ case "start": {
228
+ // pi start <model> --name <name> [options]
229
+ const modelId = args[1];
230
+ if (!modelId) {
231
+ // Show available models
232
+ const { showKnownModels } = await import("./commands/models.js");
233
+ await showKnownModels();
234
+ process.exit(0);
235
+ }
236
+ // Parse options
237
+ let name;
238
+ let memory;
239
+ let context;
240
+ let gpus;
241
+ const vllmArgs = [];
242
+ let inVllmArgs = false;
243
+ for (let i = 2; i < args.length; i++) {
244
+ if (inVllmArgs) {
245
+ vllmArgs.push(args[i]);
246
+ }
247
+ else if (args[i] === "--name" && i + 1 < args.length) {
248
+ name = args[i + 1];
249
+ i++;
250
+ }
251
+ else if (args[i] === "--memory" && i + 1 < args.length) {
252
+ memory = args[i + 1];
253
+ i++;
254
+ }
255
+ else if (args[i] === "--context" && i + 1 < args.length) {
256
+ context = args[i + 1];
257
+ i++;
258
+ }
259
+ else if (args[i] === "--gpus" && i + 1 < args.length) {
260
+ gpus = parseInt(args[i + 1]);
261
+ if (Number.isNaN(gpus) || gpus < 1) {
262
+ console.error(chalk.red("--gpus must be a positive number"));
263
+ process.exit(1);
264
+ }
265
+ i++;
266
+ }
267
+ else if (args[i] === "--vllm") {
268
+ inVllmArgs = true;
269
+ }
270
+ }
271
+ if (!name) {
272
+ console.error("--name is required");
273
+ process.exit(1);
274
+ }
275
+ // Warn if --vllm is used with other parameters
276
+ if (vllmArgs.length > 0 && (memory || context || gpus)) {
277
+ console.log(chalk.yellow("⚠ Warning: --memory, --context, and --gpus are ignored when --vllm is specified"));
278
+ console.log(chalk.yellow(" Using only custom vLLM arguments"));
279
+ console.log("");
280
+ }
281
+ await startModel(modelId, name, {
282
+ pod: podOverride,
283
+ memory,
284
+ context,
285
+ gpus,
286
+ vllmArgs: vllmArgs.length > 0 ? vllmArgs : undefined,
287
+ });
288
+ break;
289
+ }
290
+ case "stop": {
291
+ // pi stop [name] - stop specific model or all models
292
+ const name = args[1];
293
+ if (!name) {
294
+ // Stop all models on the active pod
295
+ const { stopAllModels } = await import("./commands/models.js");
296
+ await stopAllModels({ pod: podOverride });
297
+ }
298
+ else {
299
+ await stopModel(name, { pod: podOverride });
300
+ }
301
+ break;
302
+ }
303
+ case "list":
304
+ // pi list
305
+ await listModels({ pod: podOverride });
306
+ break;
307
+ case "logs": {
308
+ // pi logs <name>
309
+ const name = args[1];
310
+ if (!name) {
311
+ console.error("Usage: pi logs <name>");
312
+ process.exit(1);
313
+ }
314
+ await viewLogs(name, { pod: podOverride });
315
+ break;
316
+ }
317
+ case "agent": {
318
+ // pi agent <name> [messages...] [options]
319
+ const name = args[1];
320
+ if (!name) {
321
+ console.error("Usage: pi agent <name> [messages...] [options]");
322
+ process.exit(1);
323
+ }
324
+ const apiKey = process.env.PI_API_KEY;
325
+ // Pass all args after the model name
326
+ const agentArgs = args.slice(2);
327
+ // If no messages provided, it's interactive mode
328
+ await promptModel(name, agentArgs, {
329
+ pod: podOverride,
330
+ apiKey,
331
+ }).catch(() => {
332
+ // Error already handled in promptModel, just exit cleanly
333
+ process.exit(0);
334
+ });
335
+ break;
336
+ }
337
+ default:
338
+ console.error(`Unknown command: ${command}`);
339
+ printHelp();
340
+ process.exit(1);
341
+ }
342
+ }
343
+ }
344
+ catch (error) {
345
+ console.error("Error:", error);
346
+ process.exit(1);
347
+ }
348
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Start a model
3
+ */
4
+ export declare const startModel: (modelId: string, name: string, options: {
5
+ pod?: string;
6
+ vllmArgs?: string[];
7
+ memory?: string;
8
+ context?: string;
9
+ gpus?: number;
10
+ }) => Promise<void>;
11
+ /**
12
+ * Stop a model
13
+ */
14
+ export declare const stopModel: (name: string, options: {
15
+ pod?: string;
16
+ }) => Promise<void>;
17
+ /**
18
+ * Stop all models on a pod
19
+ */
20
+ export declare const stopAllModels: (options: {
21
+ pod?: string;
22
+ }) => Promise<void>;
23
+ /**
24
+ * List all models
25
+ */
26
+ export declare const listModels: (options: {
27
+ pod?: string;
28
+ }) => Promise<void>;
29
+ /**
30
+ * View model logs
31
+ */
32
+ export declare const viewLogs: (name: string, options: {
33
+ pod?: string;
34
+ }) => Promise<void>;
35
+ /**
36
+ * Show known models and their hardware requirements
37
+ */
38
+ export declare const showKnownModels: () => Promise<void>;
39
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AA0EA;;GAEG;AACH,eAAO,MAAM,UAAU,GACtB,SAAS,MAAM,EACf,MAAM,MAAM,EACZ,SAAS;IACR,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,kBAuRD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,EAAE,SAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,kBA0BtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,SAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,kBA2B5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,kBAwEzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,EAAE,SAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,kBA+BrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBA4J3B,CAAC"}