@grackle-ai/cli 0.30.0 → 0.31.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/commands/pair.d.ts +4 -0
- package/dist/commands/pair.d.ts.map +1 -0
- package/dist/commands/pair.js +28 -0
- package/dist/commands/pair.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +7 -20
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/serve.test.js +11 -13
- package/dist/commands/serve.test.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyB1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { createGrackleClient } from "../client.js";
|
|
3
|
+
/** Register the `pair` command that generates a new pairing code for web UI access. */
|
|
4
|
+
export function registerPairCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command("pair")
|
|
7
|
+
.description("Generate a new pairing code for the web UI")
|
|
8
|
+
.action(async () => {
|
|
9
|
+
const client = createGrackleClient();
|
|
10
|
+
const response = await client.generatePairingCode({});
|
|
11
|
+
console.log("");
|
|
12
|
+
console.log(chalk.bold(" Pairing code: ") + chalk.cyan(response.code));
|
|
13
|
+
console.log(chalk.bold(" URL: ") + response.url);
|
|
14
|
+
console.log("");
|
|
15
|
+
// Print QR code (best-effort)
|
|
16
|
+
try {
|
|
17
|
+
const qrcode = await import("qrcode");
|
|
18
|
+
const qr = await qrcode.toString(response.url, { type: "terminal", small: true });
|
|
19
|
+
console.log(qr);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// qrcode not installed — skip QR
|
|
23
|
+
}
|
|
24
|
+
console.log(chalk.dim(" Code expires in 5 minutes."));
|
|
25
|
+
console.log("");
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/commands/pair.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,8BAA8B;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuB3D"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/** Loopback addresses accepted by `--host`. Security policy: bind to loopback only. */
|
|
2
|
-
const LOOPBACK_HOSTS = new Set(["127.0.0.1", "::1"]);
|
|
3
|
-
/**
|
|
4
|
-
* Format a bind host for embedding in a URL.
|
|
5
|
-
* IPv6 literals (containing `:`) must be bracketed per RFC 2732.
|
|
6
|
-
*/
|
|
7
|
-
function formatHostForUrl(host) {
|
|
8
|
-
return host.includes(":") ? `[${host}]` : host;
|
|
9
|
-
}
|
|
10
1
|
/** Register the `serve` command that starts the Grackle server and web UI. */
|
|
11
2
|
export function registerServeCommand(program) {
|
|
12
3
|
program
|
|
@@ -14,22 +5,18 @@ export function registerServeCommand(program) {
|
|
|
14
5
|
.description("Start the Grackle server")
|
|
15
6
|
.option("--port <port>", "Server port", "7434")
|
|
16
7
|
.option("--web-port <port>", "Web UI port", "3000")
|
|
17
|
-
.option("--host <address>", "Bind address — must be a loopback address (127.0.0.1 or ::1)", "127.0.0.1")
|
|
18
8
|
.option("--mcp-port <port>", "MCP server port", "7435")
|
|
9
|
+
.option("--allow-network", "Bind to all interfaces (0.0.0.0) for LAN access")
|
|
19
10
|
.action(async (opts) => {
|
|
20
|
-
if (!LOOPBACK_HOSTS.has(opts.host)) {
|
|
21
|
-
console.error(`Error: --host must be a loopback address (127.0.0.1 or ::1). Got: ${opts.host}`);
|
|
22
|
-
console.error("Binding to non-loopback addresses would expose the API key to the network.");
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
11
|
process.env.GRACKLE_PORT = opts.port;
|
|
26
12
|
process.env.GRACKLE_WEB_PORT = opts.webPort;
|
|
27
13
|
process.env.GRACKLE_MCP_PORT = opts.mcpPort;
|
|
28
|
-
process.env.GRACKLE_HOST = opts.
|
|
29
|
-
|
|
30
|
-
console.log(`
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
process.env.GRACKLE_HOST = opts.allowNetwork ? "0.0.0.0" : "127.0.0.1";
|
|
15
|
+
console.log(`Starting Grackle server...`);
|
|
16
|
+
console.log(`gRPC on port ${opts.port}, Web UI on port ${opts.webPort}, MCP on port ${opts.mcpPort}`);
|
|
17
|
+
if (opts.allowNetwork) {
|
|
18
|
+
console.log("Network access enabled — binding to all interfaces");
|
|
19
|
+
}
|
|
33
20
|
// Dynamic import to start the server
|
|
34
21
|
await import("@grackle-ai/server");
|
|
35
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC;SAC9C,MAAM,CAAC,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC;SAClD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,CAAC;SACtD,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,CAAC;SAC5E,MAAM,CAAC,KAAK,EAAE,IAA+E,EAAE,EAAE;QAChG,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAEvE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,oBAAoB,IAAI,CAAC,OAAO,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -15,35 +15,33 @@ describe("registerServeCommand", () => {
|
|
|
15
15
|
vi.restoreAllMocks();
|
|
16
16
|
vi.resetModules();
|
|
17
17
|
});
|
|
18
|
-
it("
|
|
18
|
+
it("defaults to 127.0.0.1 bind host", async () => {
|
|
19
19
|
const { registerServeCommand } = await import("./serve.js");
|
|
20
20
|
const program = new Command();
|
|
21
21
|
program.exitOverride();
|
|
22
22
|
registerServeCommand(program);
|
|
23
|
-
await program.parseAsync(["serve"
|
|
24
|
-
expect(process.env.GRACKLE_HOST).toBe("
|
|
23
|
+
await program.parseAsync(["serve"], { from: "user" });
|
|
24
|
+
expect(process.env.GRACKLE_HOST).toBe("127.0.0.1");
|
|
25
25
|
expect(process.env.GRACKLE_PORT).toBe("7434");
|
|
26
26
|
expect(process.env.GRACKLE_WEB_PORT).toBe("3000");
|
|
27
27
|
});
|
|
28
|
-
it("
|
|
28
|
+
it("--allow-network sets GRACKLE_HOST to 0.0.0.0", async () => {
|
|
29
29
|
const { registerServeCommand } = await import("./serve.js");
|
|
30
30
|
const program = new Command();
|
|
31
31
|
program.exitOverride();
|
|
32
32
|
registerServeCommand(program);
|
|
33
|
-
await program.parseAsync(["serve"], { from: "user" });
|
|
34
|
-
expect(process.env.GRACKLE_HOST).toBe("
|
|
33
|
+
await program.parseAsync(["serve", "--allow-network"], { from: "user" });
|
|
34
|
+
expect(process.env.GRACKLE_HOST).toBe("0.0.0.0");
|
|
35
35
|
});
|
|
36
|
-
it("
|
|
37
|
-
// Suppress console.error so the expected rejection message does not pollute test output
|
|
38
|
-
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => undefined);
|
|
36
|
+
it("accepts custom port options", async () => {
|
|
39
37
|
const { registerServeCommand } = await import("./serve.js");
|
|
40
38
|
const program = new Command();
|
|
41
39
|
program.exitOverride();
|
|
42
40
|
registerServeCommand(program);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
expect(process.
|
|
46
|
-
expect(
|
|
41
|
+
await program.parseAsync(["serve", "--port", "8000", "--web-port", "8001", "--mcp-port", "8002"], { from: "user" });
|
|
42
|
+
expect(process.env.GRACKLE_PORT).toBe("8000");
|
|
43
|
+
expect(process.env.GRACKLE_WEB_PORT).toBe("8001");
|
|
44
|
+
expect(process.env.GRACKLE_MCP_PORT).toBe("8002");
|
|
47
45
|
});
|
|
48
46
|
});
|
|
49
47
|
//# sourceMappingURL=serve.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.test.js","sourceRoot":"","sources":["../../src/commands/serve.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,sFAAsF;AACtF,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAA6C,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAChC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAChC,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,YAAY,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"serve.test.js","sourceRoot":"","sources":["../../src/commands/serve.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { registerProjectCommands } from "./commands/project.js";
|
|
|
12
12
|
import { registerTaskCommands } from "./commands/task.js";
|
|
13
13
|
import { registerFindingCommands } from "./commands/findings.js";
|
|
14
14
|
import { registerPersonaCommands } from "./commands/persona.js";
|
|
15
|
+
import { registerPairCommand } from "./commands/pair.js";
|
|
15
16
|
import { renderBanner, getHelpFooter } from "./banner.js";
|
|
16
17
|
const esmRequire = createRequire(import.meta.url);
|
|
17
18
|
const { version } = esmRequire("../package.json");
|
|
@@ -45,6 +46,7 @@ registerProjectCommands(program);
|
|
|
45
46
|
registerTaskCommands(program);
|
|
46
47
|
registerFindingCommands(program);
|
|
47
48
|
registerPersonaCommands(program);
|
|
49
|
+
registerPairCommand(program);
|
|
48
50
|
program.parseAsync(process.argv).catch((err) => {
|
|
49
51
|
if (err instanceof ConnectError) {
|
|
50
52
|
console.error(chalk.red(`gRPC error [${Code[err.code]}]: ${err.rawMessage}`));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,UAAU,GAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAY,IAAI,OAAO,EAAE,CAAC;AAEvC,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,eAAe,EAAE,gCAAgC,CAAC;KACzD,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;IAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;IACvC,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.1",
|
|
4
4
|
"description": "Command-line interface for managing Grackle environments and agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
"cli-table3": "^0.6.0",
|
|
34
34
|
"commander": "^13.0.0",
|
|
35
35
|
"ora": "^8.0.0",
|
|
36
|
-
"
|
|
37
|
-
"@grackle-ai/
|
|
36
|
+
"qrcode": "^1.5.4",
|
|
37
|
+
"@grackle-ai/server": "0.31.1",
|
|
38
|
+
"@grackle-ai/common": "0.31.1"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@rushstack/heft": "1.2.4",
|