@cotal-ai/cli 0.5.0 → 0.6.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/dist/command.d.ts.map +1 -1
- package/dist/command.js +3 -2
- package/dist/command.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +5 -1
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/down.d.ts +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +6 -1
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/mint.d.ts +4 -1
- package/dist/commands/mint.d.ts.map +1 -1
- package/dist/commands/mint.js +26 -3
- package/dist/commands/mint.js.map +1 -1
- package/dist/commands/send.d.ts +8 -15
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +41 -24
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +23 -18
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +22 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -41
- package/dist/index.js.map +1 -1
- package/dist/lib/delivery-proc.d.ts +35 -0
- package/dist/lib/delivery-proc.d.ts.map +1 -0
- package/dist/lib/delivery-proc.js +128 -0
- package/dist/lib/delivery-proc.js.map +1 -0
- package/dist/lib/manager-proc.d.ts +11 -2
- package/dist/lib/manager-proc.d.ts.map +1 -1
- package/dist/lib/manager-proc.js +43 -3
- package/dist/lib/manager-proc.js.map +1 -1
- package/dist/render.js +1 -1
- package/package.json +2 -2
- package/dist/commands/signer.d.ts +0 -6
- package/dist/commands/signer.d.ts.map +0 -1
- package/dist/commands/signer.js +0 -30
- package/dist/commands/signer.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -4
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -7
- package/dist/commands/watch.js.map +0 -1
package/dist/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiCxD;mFACmF;AACnF,wBAAsB,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B9E"}
|
package/dist/command.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { c } from "./ui.js";
|
|
2
2
|
function help(commands) {
|
|
3
|
-
// `__`-prefixed commands are internal (e.g. `__complete`, the completion dispatcher)
|
|
4
|
-
|
|
3
|
+
// `__`-prefixed commands are internal (e.g. `__complete`, the completion dispatcher); `hidden`
|
|
4
|
+
// ones are runnable dev/test aids (e.g. `demo`) kept off the surface — hide both.
|
|
5
|
+
const visible = commands.filter((cmd) => !cmd.name.startsWith("__") && !cmd.hidden);
|
|
5
6
|
const groups = new Map();
|
|
6
7
|
for (const cmd of visible) {
|
|
7
8
|
const g = cmd.group ?? "Commands";
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAE5B,SAAS,IAAI,CAAC,QAAmB;IAC/B,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA+BxB;2DAC2D;AAC3D,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AA+BxB;2DAC2D;AAC3D,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5D;AAmED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9D;AAqDD,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CASnE"}
|
|
@@ -32,7 +32,11 @@ function emit(items, directive) {
|
|
|
32
32
|
/** The hidden dispatcher the shell stubs call. `argv` is the words after `cotal`, up to and
|
|
33
33
|
* including the (possibly empty) word being completed. */
|
|
34
34
|
export async function complete(argv) {
|
|
35
|
-
|
|
35
|
+
// Mirror help()'s visibility: drop `__`-internal and `hidden` commands (e.g. `demo`) so the
|
|
36
|
+
// completion surface matches the listed one.
|
|
37
|
+
const commands = registry
|
|
38
|
+
.all("command")
|
|
39
|
+
.filter((cmd) => !cmd.name.startsWith("__") && !cmd.hidden);
|
|
36
40
|
// Word 0 (the command name itself): offer the command names.
|
|
37
41
|
if (argv.length <= 1) {
|
|
38
42
|
emit(commands.map((cmd) => ({ value: cmd.name, description: cmd.summary })), "nofiles");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,QAAQ,GAIT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AAEH;qEACqE;AACrE,SAAS,IAAI,CAAC,KAAuB,EAAE,SAAqD;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;2DAC2D;AAC3D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,QAAQ,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/down.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** Stop the background processes started by `cotal up --detach` / `cotal setup`:
|
|
2
|
-
* the manager, the web dashboard, and the mesh. */
|
|
2
|
+
* the manager, the delivery daemon, the web dashboard, and the mesh. */
|
|
3
3
|
export declare function down(): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=down.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAIA;
|
|
1
|
+
{"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAIA;yEACyE;AACzE,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1C"}
|
package/dist/commands/down.js
CHANGED
|
@@ -2,10 +2,11 @@ import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
|
2
2
|
import { c } from "../ui.js";
|
|
3
3
|
import { cotalPath } from "../lib/paths.js";
|
|
4
4
|
/** Stop the background processes started by `cotal up --detach` / `cotal setup`:
|
|
5
|
-
* the manager, the web dashboard, and the mesh. */
|
|
5
|
+
* the manager, the delivery daemon, the web dashboard, and the mesh. */
|
|
6
6
|
export async function down() {
|
|
7
7
|
const targets = [
|
|
8
8
|
["manager.pid", "manager"],
|
|
9
|
+
["delivery.pid", "delivery daemon"],
|
|
9
10
|
["web.pid", "web dashboard"],
|
|
10
11
|
["nats.pid", "nats-server"],
|
|
11
12
|
];
|
|
@@ -17,6 +18,10 @@ export async function down() {
|
|
|
17
18
|
any = true;
|
|
18
19
|
stop(pidPath, label);
|
|
19
20
|
}
|
|
21
|
+
// Non-pid control-plane artifacts: the delivery daemon's scoped creds + the manager's delivery-aware
|
|
22
|
+
// marker. Drop them with the processes so a stale creds file / marker never lingers.
|
|
23
|
+
for (const f of ["delivery.creds", "manager.delivery-aware"])
|
|
24
|
+
rmSync(cotalPath(f), { force: true });
|
|
20
25
|
if (!any) {
|
|
21
26
|
console.error(c.red("Nothing running here (no .cotal/*.pid). Was it started with `cotal up` / `cotal setup`?"));
|
|
22
27
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;
|
|
1
|
+
{"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;yEACyE;AACzE,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,OAAO,GAA4B;QACvC,CAAC,aAAa,EAAE,SAAS,CAAC;QAC1B,CAAC,cAAc,EAAE,iBAAiB,CAAC;QACnC,CAAC,SAAS,EAAE,eAAe,CAAC;QAC5B,CAAC,UAAU,EAAE,aAAa,CAAC;KAC5B,CAAC;IACF,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACnC,GAAG,GAAG,IAAI,CAAC;QACX,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,qGAAqG;IACrG,qFAAqF;IACrF,KAAK,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;QAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,OAAe,EAAE,KAAa;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/commands/mint.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
/** Out-of-band cred minting: generate an identity, sign a profile-scoped user JWT with the
|
|
2
|
-
* space's account signing key, and write a creds file the agent/observer loads to join.
|
|
2
|
+
* space's account signing key, and write a creds file the agent/observer loads to join.
|
|
3
|
+
* `--signer` instead emits a stripped signer file — only the account signing material
|
|
4
|
+
* (`space` + `account.pub` + `account.signingSeed`), no operator root-of-trust — to mount into a
|
|
5
|
+
* containerized manager so it can mint per-agent creds without holding the account-minting key. */
|
|
3
6
|
export declare function mint(argv: string[]): Promise<void>;
|
|
4
7
|
//# sourceMappingURL=mint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"AAgBA;;;;oGAIoG;AACpG,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyExD"}
|
package/dist/commands/mint.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { mkdirSync, writeFileSync, existsSync } from "node:fs";
|
|
2
2
|
import { resolve, join, dirname } from "node:path";
|
|
3
3
|
import { parseArgs } from "node:util";
|
|
4
|
-
import { authDir, agentFilePath, loadAgentFile, loadSpaceAuth, mintCreds, newIdentity, } from "@cotal-ai/core";
|
|
4
|
+
import { authDir, agentFilePath, loadAgentFile, loadSpaceAuth, mintCreds, newIdentity, stripSpaceAuth, } from "@cotal-ai/core";
|
|
5
5
|
import { cotalRoot } from "../lib/paths.js";
|
|
6
6
|
import { c } from "../ui.js";
|
|
7
7
|
/** Out-of-band cred minting: generate an identity, sign a profile-scoped user JWT with the
|
|
8
|
-
* space's account signing key, and write a creds file the agent/observer loads to join.
|
|
8
|
+
* space's account signing key, and write a creds file the agent/observer loads to join.
|
|
9
|
+
* `--signer` instead emits a stripped signer file — only the account signing material
|
|
10
|
+
* (`space` + `account.pub` + `account.signingSeed`), no operator root-of-trust — to mount into a
|
|
11
|
+
* containerized manager so it can mint per-agent creds without holding the account-minting key. */
|
|
9
12
|
export async function mint(argv) {
|
|
10
13
|
const { values, positionals } = parseArgs({
|
|
11
14
|
args: argv,
|
|
@@ -13,10 +16,31 @@ export async function mint(argv) {
|
|
|
13
16
|
options: {
|
|
14
17
|
profile: { type: "string" },
|
|
15
18
|
out: { type: "string" },
|
|
19
|
+
signer: { type: "boolean" }, // emit a stripped signer file instead of agent/observer creds
|
|
20
|
+
force: { type: "boolean" }, // (--signer) overwrite an existing signer file
|
|
16
21
|
"allow-subscribe": { type: "string" }, // read ACL override (comma-separated)
|
|
17
22
|
"allow-publish": { type: "string" }, // post ACL override (comma-separated)
|
|
18
23
|
},
|
|
19
24
|
});
|
|
25
|
+
const dir = authDir(cotalRoot());
|
|
26
|
+
// `--signer`: no identity, no name — strip this space's auth.json to its account signing material.
|
|
27
|
+
if (values.signer) {
|
|
28
|
+
const auth = loadSpaceAuth(dir);
|
|
29
|
+
if (!auth) {
|
|
30
|
+
console.error(c.red("no space auth found here — run `cotal up` first"));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
const out = resolve(values.out ?? "signer.json");
|
|
34
|
+
if (existsSync(out) && !values.force) {
|
|
35
|
+
console.error(c.red(`${out} already exists — pass --force to overwrite`));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
writeFileSync(out, JSON.stringify(stripSpaceAuth(auth), null, 2), { mode: 0o600 });
|
|
39
|
+
console.log(c.green(`✓ wrote signer for space "${auth.space}"`));
|
|
40
|
+
console.log(c.dim(` ${out}`));
|
|
41
|
+
console.log(c.dim(" mount read-only at /workspace/.cotal/auth/auth.json in the container"));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
20
44
|
const name = positionals[0];
|
|
21
45
|
if (!name) {
|
|
22
46
|
console.error(c.red("usage: cotal mint <name> --profile <agent|observer|admin> [--allow-subscribe a,b] [--allow-publish a,b] [--out <path>]"));
|
|
@@ -28,7 +52,6 @@ export async function mint(argv) {
|
|
|
28
52
|
console.error(c.red(`unknown profile "${profile}" — expected agent, observer, or admin`));
|
|
29
53
|
process.exit(1);
|
|
30
54
|
}
|
|
31
|
-
const dir = authDir(cotalRoot());
|
|
32
55
|
const auth = loadSpaceAuth(dir);
|
|
33
56
|
if (!auth) {
|
|
34
57
|
console.error(c.red("no space auth found here — run `cotal up` first"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mint.js","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,aAAa,EACb,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"mint.js","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/send.d.ts
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import { type CompletionResult } from "@cotal-ai/core";
|
|
2
|
-
/** `cotal
|
|
3
|
-
export declare function
|
|
4
|
-
/** `cotal
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* workspace intent, not a claim about what exists on the mesh. Only the channel position
|
|
11
|
-
* completes; the message text offers nothing. Fail-closed: a malformed agent file throws, so the
|
|
12
|
-
* completer declines rather than offering a silently-partial set (see {@link listDeclaredChannels}). */
|
|
13
|
-
export declare function msgComplete(argv: string[]): CompletionResult;
|
|
14
|
-
/** Complete `cotal ask <role>` from the roles the local persona files declare — same local-only,
|
|
15
|
-
* fail-closed contract as {@link msgComplete}. */
|
|
16
|
-
export declare function askComplete(argv: string[]): CompletionResult;
|
|
2
|
+
/** `cotal send <dm|msg|ask> …` — dispatch one-shot send by delivery mode, then exit. */
|
|
3
|
+
export declare function send(argv: string[]): Promise<void>;
|
|
4
|
+
/** Complete `cotal send <dm|msg|ask> …`. Word 0 offers the sub-verbs; `msg`/`ask` then complete
|
|
5
|
+
* their target from the channels/roles the local persona files declare — never the live broker (a
|
|
6
|
+
* <TAB> stays offline by contract), and fail-closed (a malformed agent file makes the completer
|
|
7
|
+
* decline rather than offer a silently-partial set; see {@link listDeclaredChannels}). `dm` offers
|
|
8
|
+
* nothing: peer presence is live, so it can't be completed offline. */
|
|
9
|
+
export declare function sendComplete(argv: string[]): CompletionResult;
|
|
17
10
|
//# sourceMappingURL=send.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAyBxB,
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAyBxB,wFAAwF;AACxF,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASxD;AAiED;;;;wEAIwE;AACxE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAsB7D"}
|
package/dist/commands/send.js
CHANGED
|
@@ -5,9 +5,9 @@ import { openTransient } from "../lib/transient.js";
|
|
|
5
5
|
import { listDeclaredChannels, listDeclaredRoles } from "../lib/personas.js";
|
|
6
6
|
import { mentionsIn } from "../lib/mentions.js";
|
|
7
7
|
/**
|
|
8
|
-
* One-shot send
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* One-shot send command — `cotal send <dm|msg|ask>` — the headless equivalent of the console's
|
|
9
|
+
* `:dm` / `:msg` / `:ask`. The sub-verb picks the delivery mode (`unicast` / `multicast` /
|
|
10
|
+
* `anycast`); each connects, sends one message, and exits. Fire-and-forget: no reply waiting.
|
|
11
11
|
*/
|
|
12
12
|
const SEND_OPTS = {
|
|
13
13
|
space: { type: "string" },
|
|
@@ -18,12 +18,24 @@ const SEND_OPTS = {
|
|
|
18
18
|
function targetAndText(positionals, strip) {
|
|
19
19
|
return { target: positionals[0]?.replace(strip, ""), text: positionals.slice(1).join(" ").trim() };
|
|
20
20
|
}
|
|
21
|
-
/** `cotal
|
|
22
|
-
export async function
|
|
21
|
+
/** `cotal send <dm|msg|ask> …` — dispatch one-shot send by delivery mode, then exit. */
|
|
22
|
+
export async function send(argv) {
|
|
23
|
+
const [mode, ...rest] = argv;
|
|
24
|
+
if (mode === "dm")
|
|
25
|
+
return dm(rest);
|
|
26
|
+
if (mode === "msg")
|
|
27
|
+
return msg(rest);
|
|
28
|
+
if (mode === "ask")
|
|
29
|
+
return ask(rest);
|
|
30
|
+
console.error('usage: cotal send <dm <agent> | msg <channel> | ask <role>> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
/** `cotal send dm <agent> "<text>"` — one unicast to a peer by name, then exit. */
|
|
34
|
+
async function dm(argv) {
|
|
23
35
|
const { values, positionals } = parseArgs({ args: argv, allowPositionals: true, options: SEND_OPTS });
|
|
24
36
|
const { target, text } = targetAndText(positionals, /^@/);
|
|
25
37
|
if (!target || !text) {
|
|
26
|
-
console.error('usage: cotal dm <agent> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
38
|
+
console.error('usage: cotal send dm <agent> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
27
39
|
process.exit(1);
|
|
28
40
|
}
|
|
29
41
|
const { ep, space } = await openTransient(values, "send");
|
|
@@ -55,12 +67,12 @@ export async function dm(argv) {
|
|
|
55
67
|
console.log(c.green(`→ ${peer.card.name}`) + c.dim(` ${text}`));
|
|
56
68
|
await ep.stop();
|
|
57
69
|
}
|
|
58
|
-
/** `cotal msg <channel> "<text>"` — one broadcast to a channel, then exit. */
|
|
59
|
-
|
|
70
|
+
/** `cotal send msg <channel> "<text>"` — one broadcast to a channel, then exit. */
|
|
71
|
+
async function msg(argv) {
|
|
60
72
|
const { values, positionals } = parseArgs({ args: argv, allowPositionals: true, options: SEND_OPTS });
|
|
61
73
|
const { target: channel, text } = targetAndText(positionals, /^#/);
|
|
62
74
|
if (!channel || !text) {
|
|
63
|
-
console.error('usage: cotal msg <channel> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
75
|
+
console.error('usage: cotal send msg <channel> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
64
76
|
process.exit(1);
|
|
65
77
|
}
|
|
66
78
|
const { ep } = await openTransient(values, "send");
|
|
@@ -68,12 +80,12 @@ export async function msg(argv) {
|
|
|
68
80
|
console.log(c.green(`→ #${channel}`) + c.dim(` ${text}`));
|
|
69
81
|
await ep.stop();
|
|
70
82
|
}
|
|
71
|
-
/** `cotal ask <role> "<text>"` — one anycast to a role/service (exactly one instance),
|
|
72
|
-
|
|
83
|
+
/** `cotal send ask <role> "<text>"` — one anycast to a role/service (exactly one instance), exit. */
|
|
84
|
+
async function ask(argv) {
|
|
73
85
|
const { values, positionals } = parseArgs({ args: argv, allowPositionals: true, options: SEND_OPTS });
|
|
74
86
|
const { target: role, text } = targetAndText(positionals, /^@/);
|
|
75
87
|
if (!role || !text) {
|
|
76
|
-
console.error('usage: cotal ask <role> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
88
|
+
console.error('usage: cotal send ask <role> "<text>" [--space <s>] [--server <url>] [--creds <path>]');
|
|
77
89
|
process.exit(1);
|
|
78
90
|
}
|
|
79
91
|
const { ep } = await openTransient(values, "send");
|
|
@@ -81,23 +93,28 @@ export async function ask(argv) {
|
|
|
81
93
|
console.log(c.green(`→ @${role}`) + c.dim(` ${text}`));
|
|
82
94
|
await ep.stop();
|
|
83
95
|
}
|
|
84
|
-
/** Complete `cotal
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
export function
|
|
96
|
+
/** Complete `cotal send <dm|msg|ask> …`. Word 0 offers the sub-verbs; `msg`/`ask` then complete
|
|
97
|
+
* their target from the channels/roles the local persona files declare — never the live broker (a
|
|
98
|
+
* <TAB> stays offline by contract), and fail-closed (a malformed agent file makes the completer
|
|
99
|
+
* decline rather than offer a silently-partial set; see {@link listDeclaredChannels}). `dm` offers
|
|
100
|
+
* nothing: peer presence is live, so it can't be completed offline. */
|
|
101
|
+
export function sendComplete(argv) {
|
|
90
102
|
if (argv.length <= 1)
|
|
103
|
+
return {
|
|
104
|
+
items: [
|
|
105
|
+
{ value: "dm", description: "unicast to a peer" },
|
|
106
|
+
{ value: "msg", description: "broadcast to a channel" },
|
|
107
|
+
{ value: "ask", description: "anycast to a role" },
|
|
108
|
+
],
|
|
109
|
+
directive: "nofiles",
|
|
110
|
+
};
|
|
111
|
+
const [mode, ...rest] = argv;
|
|
112
|
+
if (mode === "msg" && rest.length <= 1)
|
|
91
113
|
return {
|
|
92
114
|
items: listDeclaredChannels().map((value) => ({ value, description: "declared channel" })),
|
|
93
115
|
directive: "nofiles",
|
|
94
116
|
};
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
/** Complete `cotal ask <role>` from the roles the local persona files declare — same local-only,
|
|
98
|
-
* fail-closed contract as {@link msgComplete}. */
|
|
99
|
-
export function askComplete(argv) {
|
|
100
|
-
if (argv.length <= 1)
|
|
117
|
+
if (mode === "ask" && rest.length <= 1)
|
|
101
118
|
return {
|
|
102
119
|
items: listDeclaredRoles().map((value) => ({ value, description: "declared role" })),
|
|
103
120
|
directive: "nofiles",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,WAAW,EACX,kBAAkB,GAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;GAIG;AAEH,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACjB,CAAC;AAIX,yFAAyF;AACzF,SAAS,aAAa,CAAC,WAAqB,EAAE,KAAa;IACzD,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACrG,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAwCA;;4FAE4F;AAC5F,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzD;AAED;;0EAE0E;AAC1E,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtD;AAwID;;;gGAGgG;AAChG,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpE"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -15,7 +15,8 @@ import { isOnboarded, markOnboarded } from "../lib/onboard.js";
|
|
|
15
15
|
import { machineStatus, meshStatus, onPath, resolveSpace } from "../lib/status.js";
|
|
16
16
|
import { startMeshDetached, up } from "./up.js";
|
|
17
17
|
import { ensureWeb, webUp, WEB_URL } from "./web.js";
|
|
18
|
-
import { cmuxManagerRunning,
|
|
18
|
+
import { cmuxManagerRunning, managerUp, pgrepMatches, stopManager } from "../lib/manager-proc.js";
|
|
19
|
+
import { ensureControlPlane } from "../lib/delivery-proc.js";
|
|
19
20
|
import { cotalOnPath, displayCmd, isNpx, selfArgv } from "../lib/self-exec.js";
|
|
20
21
|
import { cotalPath, cotalRoot } from "../lib/paths.js";
|
|
21
22
|
import { spawn } from "./spawn.js";
|
|
@@ -36,13 +37,15 @@ export async function setup(argv) {
|
|
|
36
37
|
options: {
|
|
37
38
|
full: { type: "boolean" },
|
|
38
39
|
yes: { type: "boolean", short: "y" },
|
|
39
|
-
auth: { type: "boolean" }, //
|
|
40
|
+
auth: { type: "boolean" }, // (now the DEFAULT; kept for back-compat / explicitness)
|
|
41
|
+
open: { type: "boolean" }, // opt OUT of auth — a frictionless loopback-only open mesh (no JWT/ACLs, no durable backstop)
|
|
40
42
|
},
|
|
41
43
|
});
|
|
42
|
-
// `--yes` (agents/CI) always runs the full flow non-interactively. The
|
|
43
|
-
//
|
|
44
|
+
// `--yes` (agents/CI) always runs the full flow non-interactively. The mesh is AUTHED by default
|
|
45
|
+
// (JWT/ACLs — the trust-first default, and what the server-side delivery daemon needs to run); `--open`
|
|
46
|
+
// opts out to a frictionless loopback-only open mesh with no auth (and so no durable backstop).
|
|
44
47
|
if (!isOnboarded() || values.full || values.yes)
|
|
45
|
-
await runFirstRun(Boolean(values.yes),
|
|
48
|
+
await runFirstRun(Boolean(values.yes), Boolean(values.open));
|
|
46
49
|
else
|
|
47
50
|
await runEnsure();
|
|
48
51
|
}
|
|
@@ -52,8 +55,9 @@ export async function setup(argv) {
|
|
|
52
55
|
export async function go(argv) {
|
|
53
56
|
return setup(argv);
|
|
54
57
|
}
|
|
55
|
-
/** The full, narrated first-run experience. `yes` = non-interactive accept-all; `open` = run the
|
|
56
|
-
*
|
|
58
|
+
/** The full, narrated first-run experience. `yes` = non-interactive accept-all; `open` = run the mesh
|
|
59
|
+
* WITHOUT auth (the `--open` opt-out; auth is the default). Auth mode also brings up the server-side
|
|
60
|
+
* delivery daemon (durable backstop); open mode is live-only. */
|
|
57
61
|
async function runFirstRun(yes, open) {
|
|
58
62
|
splash();
|
|
59
63
|
p.intro(brandBold("Welcome to Cotal"));
|
|
@@ -162,9 +166,10 @@ async function runFirstRun(yes, open) {
|
|
|
162
166
|
if (!yes)
|
|
163
167
|
await offerDemo(found.claude);
|
|
164
168
|
else {
|
|
165
|
-
// Agents/CI: bring up the control plane
|
|
169
|
+
// Agents/CI: bring up the control plane (delivery daemon, auth only → manager) so cotal_spawn /
|
|
170
|
+
// despawn / purge work right away.
|
|
166
171
|
try {
|
|
167
|
-
|
|
172
|
+
await ensureControlPlane({ space: resolveSpace(process.cwd()), server: DEFAULT_SERVER });
|
|
168
173
|
}
|
|
169
174
|
catch {
|
|
170
175
|
/* non-fatal */
|
|
@@ -276,8 +281,8 @@ async function offerDemo(haveClaude) {
|
|
|
276
281
|
return;
|
|
277
282
|
}
|
|
278
283
|
// Non-cmux: a background pty manager pre-spawns david/sven (managed, despawnable), then we
|
|
279
|
-
// hand this terminal to the driving session.
|
|
280
|
-
|
|
284
|
+
// hand this terminal to the driving session. (auth → delivery daemon first, then the manager.)
|
|
285
|
+
await ensureControlPlane({ space: resolveSpace(process.cwd()), server: DEFAULT_SERVER, spawn: [...DEMO_TEAM] });
|
|
281
286
|
p.outro(brand("Launching your session... david and sven are warming up in the background."));
|
|
282
287
|
await spawn(["me", "--prompt", ME_GREETING]);
|
|
283
288
|
process.exit(0);
|
|
@@ -286,10 +291,10 @@ async function offerDemo(haveClaude) {
|
|
|
286
291
|
else if (isTTY && haveAgents && !haveClaude) {
|
|
287
292
|
p.log.info(`The demo needs Claude Code. Install it (https://claude.com/claude-code), then run \`${displayCmd()} go\`.`);
|
|
288
293
|
}
|
|
289
|
-
// Declined, or no Claude: start the background
|
|
290
|
-
// purge still work, then leave them the quick-reference card.
|
|
294
|
+
// Declined, or no Claude: start the background control plane (delivery daemon, auth only → pty
|
|
295
|
+
// manager) so cotal_spawn / despawn / purge still work, then leave them the quick-reference card.
|
|
291
296
|
try {
|
|
292
|
-
|
|
297
|
+
await ensureControlPlane({ space: resolveSpace(process.cwd()), server: DEFAULT_SERVER });
|
|
293
298
|
}
|
|
294
299
|
catch {
|
|
295
300
|
/* non-fatal: the card still shows how to start it */
|
|
@@ -328,8 +333,8 @@ function ensureCmuxSession(cwd) {
|
|
|
328
333
|
const cotal = selfArgv();
|
|
329
334
|
const run = (...args) => ({ command: cotal[0], args: [...cotal.slice(1), ...args], cwd });
|
|
330
335
|
const space = resolveSpace(cwd);
|
|
331
|
-
// `space` reaches the panes as a discrete argv token, but keep it a bare token anyway
|
|
332
|
-
//
|
|
336
|
+
// `space` reaches the panes as a discrete argv token, but keep it a bare token anyway so it can't
|
|
337
|
+
// confuse downstream parsing.
|
|
333
338
|
if (!/^[A-Za-z0-9_.-]+$/.test(space))
|
|
334
339
|
throw new Error(`cotal setup: unsafe space ${JSON.stringify(space)} (allowed: letters, digits, _ . -)`);
|
|
335
340
|
// Control plane: a cmux-runtime manager that pre-spawns david/sven into their own tabs and owns
|
|
@@ -340,7 +345,7 @@ function ensureCmuxSession(cwd) {
|
|
|
340
345
|
if (!cmuxManagerRunning(space)) {
|
|
341
346
|
for (const label of ["cotal-manager", ...DEMO_TEAM.map((n) => `cotal-${n}`)])
|
|
342
347
|
closeStaleTabs(term, label);
|
|
343
|
-
term.open("cotal-manager", { panes: [run("cmux", "--space", space, "--spawn", DEMO_TEAM.join(","))] }, { focus: false });
|
|
348
|
+
term.open("cotal-manager", { panes: [run("supervise", "--runtime", "cmux", "--space", space, "--spawn", DEMO_TEAM.join(","))] }, { focus: false });
|
|
344
349
|
}
|
|
345
350
|
// Your focused driver: console + the "me" session. Gate on the live driving session (not the
|
|
346
351
|
// persistent tab) so a session you're driving is never disturbed; a dead/closed one gets its stale
|
|
@@ -397,7 +402,7 @@ async function runEnsure() {
|
|
|
397
402
|
if (inCmuxSurface())
|
|
398
403
|
ensureCmuxSession(cotalRoot());
|
|
399
404
|
else
|
|
400
|
-
|
|
405
|
+
await ensureControlPlane({ space: mesh.space, server: mesh.server });
|
|
401
406
|
}
|
|
402
407
|
catch {
|
|
403
408
|
/* non-fatal */
|