@cotal-ai/cli 0.1.0 → 0.1.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/commands/channels.d.ts +11 -0
- package/dist/commands/channels.d.ts.map +1 -0
- package/dist/commands/channels.js +108 -0
- package/dist/commands/channels.js.map +1 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +36 -3
- package/dist/commands/up.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cotal channels` — inspect and mutate the per-space channel registry (replay policy,
|
|
3
|
+
* description, instructions) while the mesh is up. Writes are privileged: in auth mode the
|
|
4
|
+
* command mints ephemeral manager creds from `.cotal/auth`; in open mode it connects plainly.
|
|
5
|
+
*
|
|
6
|
+
* cotal channels list
|
|
7
|
+
* cotal channels set <name> [--replay|--no-replay] [--desc <s>] [--instructions <s>]
|
|
8
|
+
* cotal channels default --replay|--no-replay
|
|
9
|
+
*/
|
|
10
|
+
export declare function channels(argv: string[]): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=channels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD5D"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { parseArgs } from "node:util";
|
|
2
|
+
import { authDir, loadSpaceAuth, mintCreds, newIdentity, DEFAULT_SERVER, seedChannelRegistry, readChannelRegistry, effectiveReplay, } from "@cotal-ai/core";
|
|
3
|
+
import { c } from "../ui.js";
|
|
4
|
+
/**
|
|
5
|
+
* `cotal channels` — inspect and mutate the per-space channel registry (replay policy,
|
|
6
|
+
* description, instructions) while the mesh is up. Writes are privileged: in auth mode the
|
|
7
|
+
* command mints ephemeral manager creds from `.cotal/auth`; in open mode it connects plainly.
|
|
8
|
+
*
|
|
9
|
+
* cotal channels list
|
|
10
|
+
* cotal channels set <name> [--replay|--no-replay] [--desc <s>] [--instructions <s>]
|
|
11
|
+
* cotal channels default --replay|--no-replay
|
|
12
|
+
*/
|
|
13
|
+
export async function channels(argv) {
|
|
14
|
+
const { values, positionals } = parseArgs({
|
|
15
|
+
args: argv,
|
|
16
|
+
allowPositionals: true,
|
|
17
|
+
options: {
|
|
18
|
+
server: { type: "string" },
|
|
19
|
+
space: { type: "string" },
|
|
20
|
+
replay: { type: "boolean" },
|
|
21
|
+
"no-replay": { type: "boolean" },
|
|
22
|
+
window: { type: "string" }, // backfill window, e.g. 24h / 30m / 7d
|
|
23
|
+
desc: { type: "string" },
|
|
24
|
+
instructions: { type: "string" },
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
const server = values.server ?? DEFAULT_SERVER;
|
|
28
|
+
const space = values.space ?? "demo";
|
|
29
|
+
// Tri-state replay: --replay → true, --no-replay → false, neither → leave unchanged.
|
|
30
|
+
const replay = values["no-replay"] ? false : values.replay ? true : undefined;
|
|
31
|
+
const creds = await managerCreds(); // undefined ⇒ open mode
|
|
32
|
+
switch (positionals[0]) {
|
|
33
|
+
case "list": {
|
|
34
|
+
printRegistry(await readChannelRegistry({ servers: server, space, creds }));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
case "set": {
|
|
38
|
+
const name = positionals[1];
|
|
39
|
+
if (!name)
|
|
40
|
+
return usage();
|
|
41
|
+
const cfg = {};
|
|
42
|
+
if (replay !== undefined)
|
|
43
|
+
cfg.replay = replay;
|
|
44
|
+
if (values.window !== undefined)
|
|
45
|
+
cfg.replayWindow = values.window;
|
|
46
|
+
if (values.desc !== undefined)
|
|
47
|
+
cfg.description = values.desc;
|
|
48
|
+
if (values.instructions !== undefined)
|
|
49
|
+
cfg.instructions = values.instructions;
|
|
50
|
+
if (!Object.keys(cfg).length) {
|
|
51
|
+
console.error(c.red("nothing to set — pass --replay/--no-replay, --window, --desc, or --instructions"));
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
await seedChannelRegistry({ servers: server, space, creds, file: { channels: { [name]: cfg } } });
|
|
55
|
+
console.log(c.green(`✓ set #${name} in "${space}"`));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
case "default": {
|
|
59
|
+
const defaults = {};
|
|
60
|
+
if (replay !== undefined)
|
|
61
|
+
defaults.replay = replay;
|
|
62
|
+
if (values.window !== undefined)
|
|
63
|
+
defaults.replayWindow = values.window;
|
|
64
|
+
if (!Object.keys(defaults).length) {
|
|
65
|
+
console.error(c.red("usage: cotal channels default [--replay|--no-replay] [--window <dur>]"));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
await seedChannelRegistry({ servers: server, space, creds, file: { defaults } });
|
|
69
|
+
console.log(c.green(`✓ set space defaults in "${space}"`));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
default:
|
|
73
|
+
return usage();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Privileged creds for a registry write: mint ephemeral manager creds from the space auth
|
|
77
|
+
* (auth mode), or undefined to connect open. Throws nothing — open mode is the no-auth dev mesh. */
|
|
78
|
+
async function managerCreds() {
|
|
79
|
+
const auth = loadSpaceAuth(authDir(process.cwd()));
|
|
80
|
+
if (!auth)
|
|
81
|
+
return undefined;
|
|
82
|
+
return mintCreds(auth, newIdentity(), "manager");
|
|
83
|
+
}
|
|
84
|
+
function printRegistry(reg) {
|
|
85
|
+
const def = reg.defaults?.replay;
|
|
86
|
+
const dw = reg.defaults?.replayWindow;
|
|
87
|
+
console.log(c.dim(`space default replay: ${def === undefined ? "true (built-in)" : def}${dw ? `, window=${dw}` : ""}`));
|
|
88
|
+
const entries = Object.entries(reg.channels ?? {}).sort((a, b) => a[0].localeCompare(b[0]));
|
|
89
|
+
if (!entries.length) {
|
|
90
|
+
console.log(c.dim("no channel entries yet."));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
for (const [name, cfg] of entries) {
|
|
94
|
+
const effective = effectiveReplay(cfg, reg.defaults);
|
|
95
|
+
const src = cfg.replay === undefined ? " (default)" : "";
|
|
96
|
+
const win = cfg.replayWindow ?? reg.defaults?.replayWindow;
|
|
97
|
+
console.log(`#${name} replay=${effective}${src}${effective && win ? ` window=${win}` : ""}`);
|
|
98
|
+
if (cfg.description)
|
|
99
|
+
console.log(c.dim(` ${cfg.description}`));
|
|
100
|
+
if (cfg.instructions)
|
|
101
|
+
console.log(c.dim(` usage: ${cfg.instructions}`));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function usage() {
|
|
105
|
+
console.error(c.red("usage: cotal channels <list | set <name> [--replay|--no-replay] [--window <dur>] [--desc <s>] [--instructions <s>] | default [--replay|--no-replay] [--window <dur>]> [--space <s>] [--server <url>]"));
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/commands/channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAqBA,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEtD"}
|
package/dist/commands/up.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { mkdirSync, writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { parseArgs } from "node:util";
|
|
5
|
-
import { isReachable, DEFAULT_SERVER, authDir, createSpaceAuth, loadSpaceAuth, saveSpaceAuth, serverConfig, mintCreds, newIdentity, setupSpaceStreams, } from "@cotal-ai/core";
|
|
5
|
+
import { isReachable, DEFAULT_SERVER, authDir, createSpaceAuth, loadSpaceAuth, saveSpaceAuth, serverConfig, mintCreds, newIdentity, setupSpaceStreams, seedChannelRegistry, } from "@cotal-ai/core";
|
|
6
6
|
import { c } from "../ui.js";
|
|
7
7
|
export async function up(argv) {
|
|
8
8
|
const { values } = parseArgs({
|
|
@@ -13,6 +13,7 @@ export async function up(argv) {
|
|
|
13
13
|
"store-dir": { type: "string" },
|
|
14
14
|
space: { type: "string" },
|
|
15
15
|
open: { type: "boolean" }, // disable auth — run an open dev mesh
|
|
16
|
+
channels: { type: "string" }, // seed the channel registry from this JSON file
|
|
16
17
|
},
|
|
17
18
|
});
|
|
18
19
|
const server = values.server ?? DEFAULT_SERVER;
|
|
@@ -26,8 +27,12 @@ export async function up(argv) {
|
|
|
26
27
|
// minted creds. `--open` runs the unauthenticated dev mesh instead.
|
|
27
28
|
const useAuth = !values.open;
|
|
28
29
|
const space = values.space ?? "demo";
|
|
30
|
+
const seedFile = loadChannelsFile(values.channels);
|
|
29
31
|
const setup = useAuth ? await authSetup(storeDir, server, space) : undefined;
|
|
30
|
-
|
|
32
|
+
// Auth mode's port comes from the generated config; open mode must pass it explicitly, else
|
|
33
|
+
// nats-server ignores --server's port and binds the default 4222.
|
|
34
|
+
const port = Number(new URL(server).port) || 4222;
|
|
35
|
+
const args = setup ? ["-c", setup.confPath] : ["-js", "-sd", storeDir, "-p", String(port)];
|
|
31
36
|
console.log(c.dim(useAuth
|
|
32
37
|
? `Starting nats-server (JetStream, JWT auth) — store: ${storeDir}`
|
|
33
38
|
: `Starting nats-server (JetStream, OPEN/no-auth) — store: ${storeDir}`));
|
|
@@ -52,9 +57,37 @@ export async function up(argv) {
|
|
|
52
57
|
}
|
|
53
58
|
await setupSpaceStreams({ servers: server, space, creds: setup.creds });
|
|
54
59
|
console.log(c.dim("Pre-created CHAT/DM/TASK streams for the space."));
|
|
60
|
+
if (seedFile) {
|
|
61
|
+
await seedChannelRegistry({ servers: server, space, creds: setup.creds, file: seedFile });
|
|
62
|
+
console.log(c.dim("Seeded the channel registry."));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (seedFile) {
|
|
66
|
+
// Open mode: the bucket is created lazily — wait for the server, then seed it (no creds).
|
|
67
|
+
for (let i = 0; i < 50; i++) {
|
|
68
|
+
if (await isReachable(server))
|
|
69
|
+
break;
|
|
70
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
71
|
+
}
|
|
72
|
+
await seedChannelRegistry({ servers: server, space, file: seedFile });
|
|
73
|
+
console.log(c.dim("Seeded the channel registry."));
|
|
55
74
|
}
|
|
56
75
|
await new Promise(() => { });
|
|
57
76
|
}
|
|
77
|
+
/** Load the declarative channels-config file to seed the registry. An explicit `--channels`
|
|
78
|
+
* path that's missing is a hard error; the default `.cotal/channels.json` is optional (absent
|
|
79
|
+
* ⇒ nothing to seed). */
|
|
80
|
+
function loadChannelsFile(explicit) {
|
|
81
|
+
const path = resolve(explicit ?? ".cotal/channels.json");
|
|
82
|
+
if (!existsSync(path)) {
|
|
83
|
+
if (explicit) {
|
|
84
|
+
console.error(c.red(`channels file not found: ${path}`));
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
90
|
+
}
|
|
58
91
|
/** Ensure the space's trust material exists, render a server config, and mint a privileged
|
|
59
92
|
* setup creds (used to pre-create streams once the server is up). The account signing key
|
|
60
93
|
* in `.cotal/auth` is what `cotal mint` and the manager later use to issue per-agent creds. */
|
package/dist/commands/up.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6EA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { console_ } from "./commands/console.js";
|
|
|
6
6
|
import { web } from "./commands/web.js";
|
|
7
7
|
import { spawn } from "./commands/spawn.js";
|
|
8
8
|
import { mint } from "./commands/mint.js";
|
|
9
|
+
import { channels } from "./commands/channels.js";
|
|
9
10
|
/** The minimal mesh CLI: thin NATS clients (up/join/watch), plus `spawn` — a
|
|
10
11
|
* foreground agent launch that reuses the connector's launch recipe. Self-registers
|
|
11
12
|
* on import; heavier surfaces (the manager's control plane) register the same way
|
|
@@ -60,6 +61,13 @@ const baseCommands = [
|
|
|
60
61
|
summary: "mint a creds file for a space (auth mode) — mint <name> --profile <agent|observer> [--out <path>]",
|
|
61
62
|
run: mint,
|
|
62
63
|
},
|
|
64
|
+
{
|
|
65
|
+
kind: "command",
|
|
66
|
+
name: "channels",
|
|
67
|
+
group: "Mesh",
|
|
68
|
+
summary: "inspect/set channel registry — channels <list | set <name> [--replay|--no-replay] [--desc <s>] [--instructions <s>] | default --replay|--no-replay>",
|
|
69
|
+
run: channels,
|
|
70
|
+
},
|
|
63
71
|
];
|
|
64
72
|
registry.register(...baseCommands);
|
|
65
73
|
export { runCli } from "./command.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;kCAGkC;AAClC,MAAM,YAAY,GAAc;IAC9B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,oGAAoG;QAC7G,GAAG,EAAE,EAAE;KACR;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,kEAAkE;QAC3E,GAAG,EAAE,IAAI;KACV;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,+CAA+C;QACxD,GAAG,EAAE,KAAK;KACX;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,0DAA0D;QACnE,GAAG,EAAE,QAAQ;KACd;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,wGAAwG;QACjH,GAAG,EAAE,GAAG;KACT;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,QAAQ;QACf,OAAO,EACL,6HAA6H;QAC/H,GAAG,EAAE,KAAK;KACX;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,mGAAmG;QAC5G,GAAG,EAAE,IAAI;KACV;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,MAAM;QACb,OAAO,EACL,qJAAqJ;QACvJ,GAAG,EAAE,QAAQ;KACd;CACF,CAAC;AAEF,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/Cotal-AI/Cotal.git",
|
|
8
|
+
"directory": "implementations/cli"
|
|
9
|
+
},
|
|
5
10
|
"type": "module",
|
|
6
11
|
"main": "./dist/index.js",
|
|
7
12
|
"types": "./dist/index.d.ts",
|
|
@@ -12,7 +17,7 @@
|
|
|
12
17
|
}
|
|
13
18
|
},
|
|
14
19
|
"dependencies": {
|
|
15
|
-
"@cotal-ai/core": "0.1.
|
|
20
|
+
"@cotal-ai/core": "0.1.2"
|
|
16
21
|
},
|
|
17
22
|
"files": [
|
|
18
23
|
"dist"
|