@elpapi42/pi-fleet-cli 0.1.0 → 0.2.0

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 CHANGED
@@ -1,10 +1,15 @@
1
1
  # @elpapi42/pi-fleet-cli
2
2
 
3
- The pi-fleet command-line client. It uses `@elpapi42/pi-fleet-sdk` as its only product dependency.
3
+ The `pif` command creates and discovers durable, host-local Pi agents.
4
4
 
5
5
  ```bash
6
6
  npm install --global @elpapi42/pi-fleet-cli
7
- pif --help
8
7
  ```
9
8
 
10
- Agent commands start in Slice 1.
9
+ ```bash
10
+ pif create researcher --cwd "$PWD"
11
+ pif list
12
+ pif status researcher
13
+ ```
14
+
15
+ Commands emit compact JSONL. Slice 1 supports Unix-like hosts with ZeroMQ `ipc://` support. It provides `create`, `list`, and `status`. Sending work, event streaming, recovery, retirement, compact, and destroy come in later slices.
package/dist/main.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export declare function run(args: readonly string[]): number;
2
+ export {};
3
3
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAWA,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAQnD"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/dist/main.js CHANGED
@@ -1,18 +1,63 @@
1
1
  #!/usr/bin/env node
2
- import { version } from "@elpapi42/pi-fleet-sdk";
2
+ import { connectPiFleet, version } from "@elpapi42/pi-fleet-sdk";
3
3
  const usage = `pi-fleet CLI ${version}
4
4
 
5
5
  Usage:
6
- pif --help
7
-
8
- Commands will be added with Slice 1.`;
9
- export function run(args) {
10
- if (args.length === 0 || args.includes("--help") || args.includes("-h")) {
11
- process.stdout.write(`${usage}\n`);
12
- return 0;
6
+ pif create NAME [INSTRUCTIONS] [--cwd PATH] [-- PI_ARGS...]
7
+ pif status NAME
8
+ pif list
9
+ pif --help`;
10
+ async function main(args) {
11
+ if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
12
+ console.log(usage);
13
+ return;
14
+ }
15
+ const client = await connectPiFleet();
16
+ try {
17
+ switch (args[0]) {
18
+ case "create": {
19
+ const [name, ...remaining] = args.slice(1);
20
+ if (!name)
21
+ throw new Error("Usage: pif create NAME [INSTRUCTIONS] [--cwd PATH] [-- PI_ARGS...]");
22
+ const instructions = remaining[0] && !remaining[0].startsWith("--") ? remaining.shift() : undefined;
23
+ const separator = remaining.indexOf("--");
24
+ const options = separator < 0 ? remaining : remaining.slice(0, separator);
25
+ const piArgs = separator < 0 ? [] : remaining.slice(separator + 1);
26
+ const cwdIndex = options.indexOf("--cwd");
27
+ if (cwdIndex >= 0 && (cwdIndex + 1 >= options.length || options.length !== 2)) {
28
+ throw new Error("Usage: pif create NAME [INSTRUCTIONS] [--cwd PATH] [-- PI_ARGS...]");
29
+ }
30
+ if (cwdIndex < 0 && options.length !== 0)
31
+ throw new Error("Usage: pif create NAME [INSTRUCTIONS] [--cwd PATH] [-- PI_ARGS...]");
32
+ const cwd = cwdIndex < 0 ? process.cwd() : options[cwdIndex + 1];
33
+ const agent = await client.create({ name, instructions, cwd, piArgs });
34
+ console.log(JSON.stringify({ id: agent.id, name: agent.name }));
35
+ return;
36
+ }
37
+ case "status": {
38
+ const name = args[1];
39
+ if (!name || args.length !== 2)
40
+ throw new Error("Usage: pif status NAME");
41
+ console.log(JSON.stringify(await (await client.get(name)).status()));
42
+ return;
43
+ }
44
+ case "list":
45
+ if (args.length !== 1)
46
+ throw new Error("Usage: pif list");
47
+ for (const agent of await client.list())
48
+ console.log(JSON.stringify(agent));
49
+ return;
50
+ default:
51
+ throw new Error(`Unknown command: ${args[0]}`);
52
+ }
53
+ }
54
+ finally {
55
+ await client.close();
13
56
  }
14
- process.stderr.write(`Unknown argument: ${args[0]}\nRun pif --help for usage.\n`);
15
- return 1;
16
57
  }
17
- process.exitCode = run(process.argv.slice(2));
58
+ void main(process.argv.slice(2)).catch((error) => {
59
+ const message = error instanceof Error ? error.message : String(error);
60
+ process.stderr.write(`${JSON.stringify({ error: message })}\n`);
61
+ process.exitCode = 1;
62
+ });
18
63
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,MAAM,KAAK,GAAG,gBAAgB,OAAO;;;;;qCAKA,CAAA;AAErC,MAAM,UAAU,GAAG,CAAC,IAAuB;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;QAClC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAA;IACjF,OAAO,CAAC,CAAA;AACV,CAAC;AAED,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elpapi42/pi-fleet-cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "CLI for durable, host-local Pi agents",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,6 +24,6 @@
24
24
  "test": "node --test test/*.test.mjs"
25
25
  },
26
26
  "dependencies": {
27
- "@elpapi42/pi-fleet-sdk": "0.1.0"
27
+ "@elpapi42/pi-fleet-sdk": "0.2.0"
28
28
  }
29
29
  }