@cotal-ai/cli 0.10.0 → 0.11.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 +11 -3
- package/dist/command.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +30 -13
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/channels.d.ts.map +1 -1
- package/dist/commands/channels.js +16 -6
- package/dist/commands/channels.js.map +1 -1
- package/dist/commands/completion.js +5 -5
- package/dist/commands/console.d.ts +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +17 -11
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/doctor.d.ts +14 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +171 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/down-manifest.js +15 -15
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +42 -5
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/ext.js +11 -11
- package/dist/commands/feedback.js +2 -2
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +7 -3
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/join.d.ts.map +1 -1
- package/dist/commands/join.js +14 -7
- package/dist/commands/join.js.map +1 -1
- package/dist/commands/meshes.js +2 -2
- package/dist/commands/mint.d.ts.map +1 -1
- package/dist/commands/mint.js +16 -5
- package/dist/commands/mint.js.map +1 -1
- package/dist/commands/models.d.ts +29 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +54 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/personas.js +4 -4
- package/dist/commands/send.js +1 -1
- package/dist/commands/setup.js +25 -25
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/spawn-manifest.d.ts.map +1 -1
- package/dist/commands/spawn-manifest.js +47 -25
- package/dist/commands/spawn-manifest.js.map +1 -1
- package/dist/commands/spawn.d.ts +11 -0
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +276 -47
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/status.d.ts +15 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +237 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/topology.js +2 -2
- package/dist/commands/up.d.ts +5 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +269 -48
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/use.js +1 -1
- package/dist/console/commands.js +2 -2
- package/dist/console/mesh.js +1 -1
- package/dist/console/mesh.js.map +1 -1
- package/dist/console/root.d.ts +15 -3
- package/dist/console/root.d.ts.map +1 -1
- package/dist/console/root.js +12 -7
- package/dist/console/root.js.map +1 -1
- package/dist/console/ui/Confirm.js +1 -1
- package/dist/console/ui/Confirm.js.map +1 -1
- package/dist/console/ui/Feed.js +1 -1
- package/dist/console/ui/Feed.js.map +1 -1
- package/dist/console/ui/Help.js +2 -2
- package/dist/console/ui/Help.js.map +1 -1
- package/dist/console/ui/NeedsYou.js +1 -1
- package/dist/console/ui/NeedsYou.js.map +1 -1
- package/dist/console/ui/SpacePicker.js +1 -1
- package/dist/console/ui/SpacePicker.js.map +1 -1
- package/dist/console/ui/Tiles.js +1 -1
- package/dist/console/ui/topo/Map.js +1 -1
- package/dist/console/ui/topo/Map.js.map +1 -1
- package/dist/console/ui/topo/Matrix.js +2 -2
- package/dist/console/ui/topo/Matrix.js.map +1 -1
- package/dist/console/ui/topo/Sequence.js +1 -1
- package/dist/console/ui/topo/Sequence.js.map +1 -1
- package/dist/ext-loader.js +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -17
- package/dist/index.js.map +1 -1
- package/dist/lib/attach-client.js +1 -1
- package/dist/lib/auth-proc.d.ts +19 -0
- package/dist/lib/auth-proc.d.ts.map +1 -0
- package/dist/lib/auth-proc.js +81 -0
- package/dist/lib/auth-proc.js.map +1 -0
- package/dist/lib/connect.d.ts +1 -1
- package/dist/lib/connect.d.ts.map +1 -1
- package/dist/lib/connect.js +2 -2
- package/dist/lib/connect.js.map +1 -1
- package/dist/lib/control.d.ts +14 -6
- package/dist/lib/control.d.ts.map +1 -1
- package/dist/lib/control.js +23 -11
- package/dist/lib/control.js.map +1 -1
- package/dist/lib/delivery-proc.js +2 -2
- package/dist/lib/manifest/apply.d.ts +3 -2
- package/dist/lib/manifest/apply.d.ts.map +1 -1
- package/dist/lib/manifest/apply.js +12 -2
- package/dist/lib/manifest/apply.js.map +1 -1
- package/dist/lib/manifest/ledger.js +4 -4
- package/dist/lib/manifest/live.d.ts +23 -9
- package/dist/lib/manifest/live.d.ts.map +1 -1
- package/dist/lib/manifest/live.js +22 -12
- package/dist/lib/manifest/live.js.map +1 -1
- package/dist/lib/manifest/model.d.ts +6 -1
- package/dist/lib/manifest/model.d.ts.map +1 -1
- package/dist/lib/manifest/prepare.d.ts +4 -1
- package/dist/lib/manifest/prepare.d.ts.map +1 -1
- package/dist/lib/manifest/prepare.js +8 -3
- package/dist/lib/manifest/prepare.js.map +1 -1
- package/dist/lib/manifest/render.d.ts.map +1 -1
- package/dist/lib/manifest/render.js +14 -13
- package/dist/lib/manifest/render.js.map +1 -1
- package/dist/lib/manifest/resolve.js +20 -6
- package/dist/lib/manifest/resolve.js.map +1 -1
- package/dist/lib/manifest/schema.d.ts +6 -1
- package/dist/lib/manifest/schema.d.ts.map +1 -1
- package/dist/lib/manifest/schema.js +12 -3
- package/dist/lib/manifest/schema.js.map +1 -1
- package/dist/lib/self-exec.d.ts +7 -2
- package/dist/lib/self-exec.d.ts.map +1 -1
- package/dist/lib/self-exec.js +14 -3
- package/dist/lib/self-exec.js.map +1 -1
- package/dist/lib/setup-log.js +1 -1
- package/dist/lib/status.d.ts +1 -1
- package/dist/lib/status.d.ts.map +1 -1
- package/dist/lib/status.js +22 -5
- package/dist/lib/status.js.map +1 -1
- package/dist/lib/transient.d.ts +8 -10
- package/dist/lib/transient.d.ts.map +1 -1
- package/dist/lib/transient.js +11 -11
- package/dist/lib/transient.js.map +1 -1
- package/dist/render.js +2 -2
- package/dist/ui.js +1 -1
- package/dist/ui.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type CompletionResult, type ParsedArgs } from "@cotal-ai/core";
|
|
2
|
+
export declare const modelsFlags: readonly [{
|
|
3
|
+
readonly name: "space";
|
|
4
|
+
readonly type: "string";
|
|
5
|
+
readonly value: "<s>";
|
|
6
|
+
readonly description: "target space (default: the resolved mesh)";
|
|
7
|
+
}, {
|
|
8
|
+
readonly name: "server";
|
|
9
|
+
readonly type: "string";
|
|
10
|
+
readonly value: "<url>";
|
|
11
|
+
readonly description: "broker URL (overrides the mesh registry entry)";
|
|
12
|
+
}, {
|
|
13
|
+
readonly name: "creds";
|
|
14
|
+
readonly type: "string";
|
|
15
|
+
readonly value: "<path>";
|
|
16
|
+
readonly description: "creds file for an off-registry connection";
|
|
17
|
+
}, {
|
|
18
|
+
readonly name: "agent";
|
|
19
|
+
readonly type: "string";
|
|
20
|
+
readonly value: "<connector>";
|
|
21
|
+
readonly description: "connector to inspect (default: all registered connectors)";
|
|
22
|
+
}, {
|
|
23
|
+
readonly name: "refresh";
|
|
24
|
+
readonly type: "boolean";
|
|
25
|
+
readonly description: "ask the connector to refresh its provider cache";
|
|
26
|
+
}];
|
|
27
|
+
export declare function modelsComplete(argv: string[]): CompletionResult;
|
|
28
|
+
export declare function models(args: ParsedArgs): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,gBAAgB,EAA8F,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMlM,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;EAIgB,CAAC;AAEzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAM/D;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAO5D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CONTROL_PRIVILEGED, registry } from "@cotal-ai/core";
|
|
2
|
+
import { loadMeshes, targetFlags } from "@cotal-ai/workspace";
|
|
3
|
+
import { c } from "../ui.js";
|
|
4
|
+
import { askManager, failIfNotOk, resolveControlTarget } from "../lib/control.js";
|
|
5
|
+
import { completingFlagValue } from "../lib/completion.js";
|
|
6
|
+
export const modelsFlags = [
|
|
7
|
+
...targetFlags,
|
|
8
|
+
{ name: "agent", type: "string", value: "<connector>", description: "connector to inspect (default: all registered connectors)" },
|
|
9
|
+
{ name: "refresh", type: "boolean", description: "ask the connector to refresh its provider cache" },
|
|
10
|
+
];
|
|
11
|
+
export function modelsComplete(argv) {
|
|
12
|
+
const flag = completingFlagValue(argv, modelsFlags);
|
|
13
|
+
if (flag?.name === "space")
|
|
14
|
+
return { items: loadMeshes().map((m) => ({ value: m.space })), directive: "nofiles" };
|
|
15
|
+
if (flag?.name === "agent")
|
|
16
|
+
return { items: registry.all("connector").map((c) => ({ value: c.name })), directive: "nofiles" };
|
|
17
|
+
if (flag?.name === "creds")
|
|
18
|
+
return { items: [], directive: "default" };
|
|
19
|
+
return { items: [], directive: "nofiles" };
|
|
20
|
+
}
|
|
21
|
+
export async function models(args) {
|
|
22
|
+
const v = args.values;
|
|
23
|
+
const t = await resolveControlTarget(v, "control-caller-privileged");
|
|
24
|
+
const reply = await askManager(t.space, t.server, "models", { agent: v.agent, refresh: v.refresh === true }, t.auth, CONTROL_PRIVILEGED);
|
|
25
|
+
failIfNotOk(reply);
|
|
26
|
+
const rows = Array.isArray(reply.data) ? reply.data : [reply.data];
|
|
27
|
+
for (const row of rows)
|
|
28
|
+
renderCatalog(row);
|
|
29
|
+
}
|
|
30
|
+
function renderCatalog(row) {
|
|
31
|
+
if (!row.supported) {
|
|
32
|
+
console.log(`${c.bold(row.agent)} ${c.dim("no model catalog exposed")}`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (row.error) {
|
|
36
|
+
console.log(`${c.bold(row.agent)} ${c.red(row.error)}`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
console.log(c.bold(row.agent) + (row.source ? c.dim(` ${row.source}`) : ""));
|
|
40
|
+
if (!row.models.length) {
|
|
41
|
+
console.log(c.dim(" (no models reported)"));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const pad = Math.max(...row.models.map((m) => m.id.length));
|
|
45
|
+
for (const model of row.models)
|
|
46
|
+
renderModel(model, pad);
|
|
47
|
+
}
|
|
48
|
+
function renderModel(model, pad) {
|
|
49
|
+
const name = model.name && model.name !== model.id ? c.dim(` ${model.name}`) : "";
|
|
50
|
+
console.log(` ${model.id.padEnd(pad)}${name}`);
|
|
51
|
+
if (model.variants?.length)
|
|
52
|
+
console.log(c.dim(` ${"".padEnd(pad)} variants: ${model.variants.map((v) => v.name).join(", ")}`));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -144,7 +144,7 @@ function edit(name) {
|
|
|
144
144
|
return notFound(name, path);
|
|
145
145
|
const editor = process.env.VISUAL || process.env.EDITOR;
|
|
146
146
|
if (!editor) {
|
|
147
|
-
console.error(c.red("no editor set
|
|
147
|
+
console.error(c.red("no editor set - export EDITOR (or VISUAL), e.g. export EDITOR=vim"));
|
|
148
148
|
process.exit(1);
|
|
149
149
|
}
|
|
150
150
|
// Hand the terminal to the editor (inherit stdio so it draws). $EDITOR may carry flags
|
|
@@ -155,7 +155,7 @@ function edit(name) {
|
|
|
155
155
|
process.exit(1);
|
|
156
156
|
}
|
|
157
157
|
if (res.status !== 0) {
|
|
158
|
-
console.error(c.red(`editor exited ${res.signal ? `on ${res.signal}` : `with status ${res.status}`}
|
|
158
|
+
console.error(c.red(`editor exited ${res.signal ? `on ${res.signal}` : `with status ${res.status}`} - not saved`));
|
|
159
159
|
process.exit(1);
|
|
160
160
|
}
|
|
161
161
|
// Re-validate: a save that breaks the frontmatter must fail loud, not ship a broken card.
|
|
@@ -163,7 +163,7 @@ function edit(name) {
|
|
|
163
163
|
loadAgentFile(path);
|
|
164
164
|
}
|
|
165
165
|
catch (e) {
|
|
166
|
-
console.error(c.red(`⨯ "${name}" is now unparseable
|
|
166
|
+
console.error(c.red(`⨯ "${name}" is now unparseable - fix it:`));
|
|
167
167
|
console.error(c.dim(` ${e.message}`));
|
|
168
168
|
process.exit(1);
|
|
169
169
|
}
|
|
@@ -179,7 +179,7 @@ function create(name, v) {
|
|
|
179
179
|
assertValidName(name); // shared reserved-character guard (also rejects "/")
|
|
180
180
|
const path = agentFilePath(cotalRoot(), name);
|
|
181
181
|
if (existsSync(path) && !v.force) {
|
|
182
|
-
console.error(c.red(`persona "${name}" already exists
|
|
182
|
+
console.error(c.red(`persona "${name}" already exists - pass --force to overwrite`));
|
|
183
183
|
console.error(c.dim(path));
|
|
184
184
|
process.exit(1);
|
|
185
185
|
}
|
package/dist/commands/send.js
CHANGED
|
@@ -40,7 +40,7 @@ async function dm(values, positionals) {
|
|
|
40
40
|
catch (e) {
|
|
41
41
|
if (!(e instanceof AmbiguousPeerError))
|
|
42
42
|
throw e;
|
|
43
|
-
console.error(c.red(`"${target}" is ambiguous
|
|
43
|
+
console.error(c.red(`"${target}" is ambiguous - DM by instance id instead:`));
|
|
44
44
|
for (const cand of e.candidates)
|
|
45
45
|
console.error(c.dim(` ${cand.name} (${cand.status}) ${cand.id}`));
|
|
46
46
|
await ep.stop();
|
package/dist/commands/setup.js
CHANGED
|
@@ -16,7 +16,7 @@ import { cotalOnPath, displayCmd, isNpx, selfArgv } from "../lib/self-exec.js";
|
|
|
16
16
|
import { cotalPath } from "../lib/paths.js";
|
|
17
17
|
const ONBOARD_VERSION = "2";
|
|
18
18
|
const README_URL = "https://github.com/Cotal-AI/Cotal/blob/main/README.md";
|
|
19
|
-
const CC_DOCS_URL = "https://github.com/Cotal-AI/Cotal/blob/main/docs/claude
|
|
19
|
+
const CC_DOCS_URL = "https://github.com/Cotal-AI/Cotal/blob/main/docs/connect-claude.md";
|
|
20
20
|
const NATS_RELEASES_URL = "https://github.com/nats-io/nats-server/releases";
|
|
21
21
|
/** `cotal setup`'s grammar — configure-only knobs. The old `--auth`/`--open` flags configured the
|
|
22
22
|
* MESH MODE at setup-launch time; setup no longer launches anything, so both are gone here —
|
|
@@ -70,7 +70,7 @@ async function runFirstRun(yes, demo) {
|
|
|
70
70
|
{
|
|
71
71
|
name: "nats-binary",
|
|
72
72
|
title: "Locate the NATS server",
|
|
73
|
-
explain: "Cotal runs on NATS + JetStream, the wire your agents speak over. (Located only
|
|
73
|
+
explain: "Cotal runs on NATS + JetStream, the wire your agents speak over. (Located only - `cotal up` starts it.)",
|
|
74
74
|
context: [NATS_RELEASES_URL, README_URL],
|
|
75
75
|
async run() {
|
|
76
76
|
const r = await resolveNatsServer();
|
|
@@ -99,7 +99,7 @@ async function runFirstRun(yes, demo) {
|
|
|
99
99
|
// Your agent: the generic `default` persona a bare `cotal spawn` launches — one agent, yours to
|
|
100
100
|
// shape. This is the whole first-run default; the guided expert team is opt-in right below.
|
|
101
101
|
seedDefaultAgent();
|
|
102
|
-
p.log.success("Seeded your agent (.cotal/agents/default.md)
|
|
102
|
+
p.log.success("Seeded your agent (.cotal/agents/default.md) - spawn it with `cotal spawn` once your mesh is up");
|
|
103
103
|
log.line("default-agent: wrote default.md");
|
|
104
104
|
// The guided expert team (david the engineer + sven the guide + me, your session) is opt-in:
|
|
105
105
|
// `cotal setup --demo` (or `--full`). Keeps the default first run to one agent, not a crowd.
|
|
@@ -127,13 +127,13 @@ async function runFirstRun(yes, demo) {
|
|
|
127
127
|
`${ok("✓")} stop everything ${dim(`${cmd} down`)}`,
|
|
128
128
|
];
|
|
129
129
|
const tail = demo
|
|
130
|
-
? [dim(`Visual dashboard: ${cmd} ext add cotal-web · then ${cmd} web`)]
|
|
130
|
+
? [dim(`Visual dashboard: ${cmd} ext add @cotal-ai/web · then ${cmd} web`)]
|
|
131
131
|
: [
|
|
132
|
-
dim(`Want a visual dashboard? ${cmd} ext add cotal-web · then ${cmd} web`),
|
|
132
|
+
dim(`Want a visual dashboard? ${cmd} ext add @cotal-ai/web · then ${cmd} web`),
|
|
133
133
|
dim(`Want a guided team (david the engineer, sven the guide)? ${cmd} setup --demo`),
|
|
134
134
|
];
|
|
135
135
|
note([
|
|
136
|
-
"Everything is configured
|
|
136
|
+
"Everything is configured - nothing has been started. Bring your mesh up when you're ready:",
|
|
137
137
|
"",
|
|
138
138
|
...driveLines,
|
|
139
139
|
"",
|
|
@@ -156,7 +156,7 @@ export async function offerGlobalInstall(yes) {
|
|
|
156
156
|
if (!yes && process.stdin.isTTY) {
|
|
157
157
|
const go = abortIfCancel(await p.confirm({ message: "Install `cotal` globally so you can just type `cotal`?", initialValue: true }));
|
|
158
158
|
if (!go) {
|
|
159
|
-
p.log.info(`No problem
|
|
159
|
+
p.log.info(`No problem - keep using ${dim("npx cotal-ai")}. Install later with ${dim("npm i -g cotal-ai")}.`);
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
162
|
}
|
|
@@ -165,7 +165,7 @@ export async function offerGlobalInstall(yes) {
|
|
|
165
165
|
s.start("Installing cotal globally");
|
|
166
166
|
const r = spawnSync("npm", ["install", "-g", pkg], { encoding: "utf8" });
|
|
167
167
|
if (r.status === 0) {
|
|
168
|
-
s.stop("Installed
|
|
168
|
+
s.stop("Installed - you can now run `cotal`");
|
|
169
169
|
}
|
|
170
170
|
else {
|
|
171
171
|
s.stop("Couldn't install globally");
|
|
@@ -235,7 +235,7 @@ async function runEnsure(demo) {
|
|
|
235
235
|
await readyCard(process.cwd());
|
|
236
236
|
}
|
|
237
237
|
/** True when an installed extension contributes the `web` command (the dashboard moved out to
|
|
238
|
-
*
|
|
238
|
+
* `@cotal-ai/web` in stage 4) — decides whether the ready-card says "start it" or "install it". */
|
|
239
239
|
function webInstalled() {
|
|
240
240
|
try {
|
|
241
241
|
return loadExtensionsManifest().extensions.some((e) => e.commands.some((cm) => cm.name === "web"));
|
|
@@ -246,7 +246,7 @@ function webInstalled() {
|
|
|
246
246
|
}
|
|
247
247
|
/** Install the dashboard extension once, without turning setup into a launch command. This reuses the
|
|
248
248
|
* public `ext add` path in a child process so package install, peer linking, command verification,
|
|
249
|
-
* and manifest writes stay identical to an explicit `cotal ext add cotal-web`. Best-effort: setup is
|
|
249
|
+
* and manifest writes stay identical to an explicit `cotal ext add @cotal-ai/web`. Best-effort: setup is
|
|
250
250
|
* still useful on locked-down machines where npm/registry access is unavailable. */
|
|
251
251
|
async function ensureWebExtension() {
|
|
252
252
|
if (webInstalled())
|
|
@@ -266,11 +266,11 @@ async function ensureWebExtension() {
|
|
|
266
266
|
}
|
|
267
267
|
s.stop("Couldn't install the web dashboard extension");
|
|
268
268
|
const tail = `${r.stdout ?? ""}${r.stderr ?? ""}`.trim().split("\n").slice(-6).join("\n");
|
|
269
|
-
p.log.warn(`${tail ? `${tail}\n\n` : ""}Install it later with ${dim(`${displayCmd()} ext add cotal-web`)}.`);
|
|
269
|
+
p.log.warn(`${tail ? `${tail}\n\n` : ""}Install it later with ${dim(`${displayCmd()} ext add @cotal-ai/web`)}.`);
|
|
270
270
|
}
|
|
271
271
|
function defaultWebExtensionSpec() {
|
|
272
272
|
const local = join(import.meta.dirname, "..", "..", "..", "web");
|
|
273
|
-
return existsSync(join(local, "package.json")) ? local : "cotal-web";
|
|
273
|
+
return existsSync(join(local, "package.json")) ? local : "@cotal-ai/web";
|
|
274
274
|
}
|
|
275
275
|
/** The `cotal · status` one-glance card: machine + mesh + web + manager status (read-only
|
|
276
276
|
* probes — displaying state is not depending on it), plus the key commands. */
|
|
@@ -285,9 +285,9 @@ async function readyCard(cwd) {
|
|
|
285
285
|
note([
|
|
286
286
|
line(m.nats !== "missing", `NATS ${dim(m.nats === "missing" ? "missing" : m.nats)}`),
|
|
287
287
|
line(m.claudePlugin, `plugin ${dim(m.claudePlugin ? "installed" : "not installed")}`),
|
|
288
|
-
line(mesh.reachable, `mesh ${dim(mesh.reachable ? `${mesh.server} · space ${mesh.space}` : `down
|
|
289
|
-
line(web, `web ${dim(web ? WEB_URL : webInstalled() ? `down
|
|
290
|
-
line(mgr, `manager ${dim(mgr ? "running" : `not running
|
|
288
|
+
line(mesh.reachable, `mesh ${dim(mesh.reachable ? `${mesh.server} · space ${mesh.space}` : `down · start: ${cmd} up --detach`)}`),
|
|
289
|
+
line(web, `web ${dim(web ? WEB_URL : webInstalled() ? `down · start: ${cmd} web` : `not installed · retry: ${cmd} setup`)}`),
|
|
290
|
+
line(mgr, `manager ${dim(mgr ? "running" : `not running · start: ${cmd} up, or: ${cmd} supervise`)}`),
|
|
291
291
|
"",
|
|
292
292
|
`start the mesh: ${dim(`${cmd} up --detach`)}`,
|
|
293
293
|
// Match the hint to what's actually on disk: the guided team (with --demo) vs the one default agent.
|
|
@@ -375,7 +375,7 @@ allowPublish: [">"]
|
|
|
375
375
|
capabilities: [spawn]
|
|
376
376
|
---
|
|
377
377
|
|
|
378
|
-
You are an agent on the Cotal mesh
|
|
378
|
+
You are an agent on the Cotal mesh - a shared space where agents join, see who's around, and
|
|
379
379
|
coordinate as peers rather than working in silos. Use the Cotal tools available to you to find
|
|
380
380
|
your peers and work with them. Edit this file to give yourself a name, role, and purpose.
|
|
381
381
|
`;
|
|
@@ -399,12 +399,12 @@ function seedDemoTeam(log) {
|
|
|
399
399
|
for (const [name, body] of Object.entries(DEMO_AGENTS)) {
|
|
400
400
|
writeDemoAgent(cotalPath("agents", `${name}.md`), body);
|
|
401
401
|
}
|
|
402
|
-
p.log.success("Added the guided team
|
|
402
|
+
p.log.success("Added the guided team - david (the engineer), sven (the guide), and your session (me); spawn them when your mesh is up");
|
|
403
403
|
log?.line("demo-agents: wrote david + sven + me");
|
|
404
404
|
}
|
|
405
405
|
const DEMO_AGENTS = {
|
|
406
406
|
david: `---
|
|
407
|
-
${MANAGED_MARKER}
|
|
407
|
+
${MANAGED_MARKER} - edit DEMO_AGENTS in the cotal CLI; delete this line to keep local changes
|
|
408
408
|
name: david
|
|
409
409
|
role: cotal-tech
|
|
410
410
|
description: "the engineer: how Cotal works (the wire, NATS, connectors, integration)."
|
|
@@ -417,16 +417,16 @@ You are david, Cotal's engineer, live on the web for agents with the operator wh
|
|
|
417
417
|
up. You help them set up and experiment. Your topic is how Cotal works: the wire contract (subjects,
|
|
418
418
|
message schemas, presence), NATS and JetStream underneath, the endpoint/connector model, the
|
|
419
419
|
delivery modes (multicast, unicast, anycast), and how to get any agent or framework onto the mesh.
|
|
420
|
-
You ground every answer in the real thing, never a guess. Start from \`docs/
|
|
421
|
-
is and its core primitives) and \`docs/getting-started.md\`, then read the source for your topic
|
|
422
|
-
\`docs/architecture.md\`, \`docs/claude
|
|
420
|
+
You ground every answer in the real thing, never a guess. Start from \`docs/what-is-cotal.md\` (what Cotal
|
|
421
|
+
is and its core primitives) and \`docs/getting-started.md\`, then read the source for your topic:
|
|
422
|
+
\`docs/architecture.md\`, \`docs/connect-claude.md\`, \`docs/setup-internals.md\`, and, in a
|
|
423
423
|
source checkout, \`packages/\` and \`extensions/\`. Quote the exact subjects, message kinds, config, and
|
|
424
424
|
commands; if the docs don't cover it, say so rather than inventing. If they aren't on disk, look
|
|
425
425
|
them up at https://github.com/Cotal-AI/Cotal. If a question is really about use-cases or what to
|
|
426
426
|
build, hand it to your peer sven.
|
|
427
427
|
`,
|
|
428
428
|
sven: `---
|
|
429
|
-
${MANAGED_MARKER}
|
|
429
|
+
${MANAGED_MARKER} - edit DEMO_AGENTS in the cotal CLI; delete this line to keep local changes
|
|
430
430
|
name: sven
|
|
431
431
|
role: cotal-guide
|
|
432
432
|
description: "the guide: what to build with Cotal (examples, setups, getting the most out of it)."
|
|
@@ -437,8 +437,8 @@ allowPublish: [general]
|
|
|
437
437
|
|
|
438
438
|
You are sven, Cotal's guide, live on the web for agents with the operator who just set Cotal up.
|
|
439
439
|
You help them set up and experiment. You design multi-agent setups: who should be on a space, how
|
|
440
|
-
they'd coordinate, what's worth trying
|
|
441
|
-
features. Start from \`docs/
|
|
440
|
+
they'd coordinate, what's worth trying - grounded in what Cotal can actually do, never made-up
|
|
441
|
+
features. Start from \`docs/what-is-cotal.md\` (what Cotal is and its core primitives - channels, anycast,
|
|
442
442
|
presence, spawn, personas, delivery modes) and \`docs/getting-started.md\`; read the matching example
|
|
443
443
|
in \`examples/*/README.md\` (indexed in \`docs/examples.md\`) before sketching, and reach for
|
|
444
444
|
\`docs/architecture.md\` when you need a primitive to design something new. Cite the example or
|
|
@@ -446,7 +446,7 @@ primitive you're drawing on. If they aren't on disk, look them up at https://git
|
|
|
446
446
|
For deep how-it-works or integration details, pull in your peer david.
|
|
447
447
|
`,
|
|
448
448
|
me: `---
|
|
449
|
-
${MANAGED_MARKER}
|
|
449
|
+
${MANAGED_MARKER} - edit DEMO_AGENTS in the cotal CLI; delete this line to keep local changes
|
|
450
450
|
name: me
|
|
451
451
|
role: operator
|
|
452
452
|
description: "your own session on the Cotal mesh."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-manifest.d.ts","sourceRoot":"","sources":["../../src/commands/spawn-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-manifest.d.ts","sourceRoot":"","sources":["../../src/commands/spawn-manifest.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qGAAqG;IACrG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAQD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8N1F"}
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { readFileSync } from "node:fs";
|
|
16
16
|
import { resolve } from "node:path";
|
|
17
|
-
import { DEFAULT_SERVER, MANAGER_LEASE_TTL_MS, mintCreds, newIdentity, readChannelRegistry, seedChannelRegistry, } from "@cotal-ai/core";
|
|
17
|
+
import { DEFAULT_SERVER, MANAGER_LEASE_TTL_MS, mintCreds, newIdentity, readChannelRegistry, seedChannelRegistry, CONTROL_ADMIN, CONTROL_PRIVILEGED, } from "@cotal-ai/core";
|
|
18
18
|
import { c } from "../ui.js";
|
|
19
19
|
import { cotalRoot } from "../lib/paths.js";
|
|
20
|
-
import { connectOrExit } from "../lib/connect.js";
|
|
20
|
+
import { connectOrExit, userViewAuthOrExit } from "../lib/connect.js";
|
|
21
21
|
import { startManagerDetached } from "../lib/manager-proc.js";
|
|
22
22
|
import { loadManifest } from "../lib/manifest/index.js";
|
|
23
23
|
import { buildLaunchSpec, channelsSeed, genRunId, preflightConnectors, writeLaunchSpec } from "../lib/manifest/apply.js";
|
|
@@ -40,7 +40,7 @@ export async function spawnManifest(file, flags) {
|
|
|
40
40
|
failManifest(e);
|
|
41
41
|
}
|
|
42
42
|
if (flags.runtime && !RUNTIMES.includes(flags.runtime)) {
|
|
43
|
-
console.error(c.red(`✗ unknown --runtime "${flags.runtime}"
|
|
43
|
+
console.error(c.red(`✗ unknown --runtime "${flags.runtime}" - expected ${RUNTIMES.join(", ")}`));
|
|
44
44
|
process.exit(1);
|
|
45
45
|
}
|
|
46
46
|
const eff = applyOverrides(prepared, flags);
|
|
@@ -55,10 +55,18 @@ export async function spawnManifest(file, flags) {
|
|
|
55
55
|
}
|
|
56
56
|
// spawn -f deploys onto a RUNNING mesh — the broker MUST be reachable (opposite of up -f). Resolve
|
|
57
57
|
// the mesh + mint a scoped `deployer` cred from the local registry/auth (same-checkout): the one
|
|
58
|
-
// connectProbe endpoint below reads live state (roster/registry/membership/lease) AND
|
|
58
|
+
// connectProbe endpoint below reads live state (roster/registry/membership/lease) AND control-
|
|
59
59
|
// calls the manager's `launch`/`ps` — no `$JS.>`, no STREAM.DELETE, no DM read, no self-post. The
|
|
60
60
|
// channel SEED rides a separate `channel-writer` cred (below), so the deploy cred writes no KV.
|
|
61
|
+
//
|
|
62
|
+
// USER MODE: the same read/probe surface rides a "deployer" VIEW bearer — exchange-gated on
|
|
63
|
+
// ledger scope "spawn" (deploying YOUR OWN team is spawn-grade, the own-agent owner-domain
|
|
64
|
+
// model) — with the control calls on the PRIVILEGED tier, where the manager enforces that the
|
|
65
|
+
// launch spec's stamped owner equals the caller's owner. The channel seed alone stays
|
|
66
|
+
// operator-grade (a "channel-writer" view, scope "admin", below).
|
|
61
67
|
const connection = await connectOrExit({ server: m.broker?.servers ?? flags.server, space }, "deployer");
|
|
68
|
+
const user = connection.bearer ? await userViewAuthOrExit(connection, "deployer") : undefined;
|
|
69
|
+
const tier = user ? CONTROL_PRIVILEGED : CONTROL_ADMIN;
|
|
62
70
|
const root = cotalRoot();
|
|
63
71
|
// Same-checkout invariant (security/UX): the launch spec, the ledger, and the manager `spawn -f`
|
|
64
72
|
// drives all live under THIS checkout's `.cotal`. Deploying onto a mesh recorded by a different
|
|
@@ -66,11 +74,11 @@ export async function spawnManifest(file, flags) {
|
|
|
66
74
|
// resolved mesh is registered to this root; a raw off-registry target (no recorded root) isn't
|
|
67
75
|
// supported for a manifest deploy.
|
|
68
76
|
if (!connection.root) {
|
|
69
|
-
console.error(c.red(`✗ spawn -f needs a mesh registered to this checkout
|
|
77
|
+
console.error(c.red(`✗ spawn -f needs a mesh registered to this checkout - a raw off-registry target (--server/--space) isn't supported for a manifest deploy`));
|
|
70
78
|
process.exit(1);
|
|
71
79
|
}
|
|
72
80
|
if (resolve(connection.root) !== resolve(root)) {
|
|
73
|
-
console.error(c.red(`✗ mesh "${space}" belongs to a different checkout (${connection.root})
|
|
81
|
+
console.error(c.red(`✗ mesh "${space}" belongs to a different checkout (${connection.root}) - \`spawn -f\` / \`down -f\` are same-checkout; run them from ${connection.root}`));
|
|
74
82
|
process.exit(1);
|
|
75
83
|
}
|
|
76
84
|
const manifestHash = hashManifestSource(readFileSync(abs, "utf8"));
|
|
@@ -85,7 +93,7 @@ export async function spawnManifest(file, flags) {
|
|
|
85
93
|
process.exit(1);
|
|
86
94
|
}
|
|
87
95
|
if (priors.length > 1) {
|
|
88
|
-
console.error(c.red(`✗ ${priors.length} runs already deployed this manifest (${priors.map((p) => p.ledger.runId).join(", ")})
|
|
96
|
+
console.error(c.red(`✗ ${priors.length} runs already deployed this manifest (${priors.map((p) => p.ledger.runId).join(", ")}) - tear one down first: \`cotal down -f ${file} --run <id>\``));
|
|
89
97
|
process.exit(1);
|
|
90
98
|
}
|
|
91
99
|
const prior = priors[0]?.ledger;
|
|
@@ -93,8 +101,17 @@ export async function spawnManifest(file, flags) {
|
|
|
93
101
|
const ownedKeys = new Set(prior?.created.channels ?? []);
|
|
94
102
|
const ownedIds = new Set((prior?.created.agents ?? []).map((a) => a.id));
|
|
95
103
|
const ownedNames = new Set((prior?.created.agents ?? []).map((a) => a.name));
|
|
96
|
-
const liveRegistry = await readChannelRegistry({
|
|
97
|
-
|
|
104
|
+
const liveRegistry = await readChannelRegistry({
|
|
105
|
+
servers: connection.server,
|
|
106
|
+
space,
|
|
107
|
+
...(user ? { bearer: user.bearer, sentinelCreds: user.sentinelCreds } : { creds: connection.creds }),
|
|
108
|
+
});
|
|
109
|
+
const ep = await connectProbe({
|
|
110
|
+
space,
|
|
111
|
+
server: connection.server,
|
|
112
|
+
creds: connection.creds,
|
|
113
|
+
user: user ? { source: user.source, sentinelCreds: user.sentinelCreds, owner: user.owner, actor: user.actor } : undefined,
|
|
114
|
+
});
|
|
98
115
|
try {
|
|
99
116
|
const roster = await settleRoster(ep);
|
|
100
117
|
const membership = await ep.readMembership().catch((e) => {
|
|
@@ -117,7 +134,7 @@ export async function spawnManifest(file, flags) {
|
|
|
117
134
|
const allow = new Set(flags.allowStale ?? []);
|
|
118
135
|
const unwaived = agentPlan.stale.filter((e) => !allow.has(e.agent.name));
|
|
119
136
|
if (unwaived.length) {
|
|
120
|
-
console.error(c.red(`✗ ${unwaived.length} declared agent(s) are stale (policy changed)
|
|
137
|
+
console.error(c.red(`✗ ${unwaived.length} declared agent(s) are stale (policy changed) - restart required:`));
|
|
121
138
|
for (const e of unwaived)
|
|
122
139
|
console.error(c.red(` ${e.agent.name}: ${e.prior?.name} hash ${e.prior?.hash.slice(0, 8)} → ${e.hash.slice(0, 8)}`));
|
|
123
140
|
console.error(c.dim(` Waive (they keep running the OLD policy until restarted): --allow-stale ${unwaived.map((e) => e.agent.name).join(",")}`));
|
|
@@ -126,12 +143,15 @@ export async function spawnManifest(file, flags) {
|
|
|
126
143
|
console.log(renderSpawnPlan(eff, channelPlan, agentPlan, unmanaged, { server: connection.server, runId, dryRun: false }), "\n");
|
|
127
144
|
// 1) Seed ONLY brand-new channel keys — no defaults, no pre-existing/unmanaged card mutation. The
|
|
128
145
|
// write rides a SEPARATE, narrow `channel-writer` cred (the `deployer` cred writes no KV); open/raw
|
|
129
|
-
// meshes have no signing seed → fall back to the connection creds.
|
|
146
|
+
// meshes have no signing seed → fall back to the connection creds. USER MODE: the seed is
|
|
147
|
+
// space-level infrastructure — a one-shot "channel-writer" VIEW (ledger scope "admin"); a
|
|
148
|
+
// channel-declaring manifest under a spawn-only caller refuses HERE, naming the exact
|
|
149
|
+
// re-grant, before any write (deploying without channel declarations needs only "spawn").
|
|
130
150
|
if (channelPlan.create.length) {
|
|
131
|
-
const
|
|
132
|
-
? await
|
|
133
|
-
: connection.creds;
|
|
134
|
-
await seedChannelRegistry({ servers: connection.server, space,
|
|
151
|
+
const seedAuth = user
|
|
152
|
+
? await userViewAuthOrExit(connection, "channel-writer").then((p) => ({ bearer: p.bearer, sentinelCreds: p.sentinelCreds }))
|
|
153
|
+
: { creds: connection.auth ? await mintCreds(connection.auth, newIdentity(), "channel-writer") : connection.creds };
|
|
154
|
+
await seedChannelRegistry({ servers: connection.server, space, ...seedAuth, file: channelsSeed(channelPlan.create) });
|
|
135
155
|
}
|
|
136
156
|
// 2-4) Boot the will-create agents through the workspace-local manager's admin `launch` op,
|
|
137
157
|
// capturing the SPAWNED name + id the ledger keys on (creds are filed under the
|
|
@@ -140,8 +160,10 @@ export async function spawnManifest(file, flags) {
|
|
|
140
160
|
const agents = [...(prior?.created.agents ?? [])];
|
|
141
161
|
const launchedNow = [];
|
|
142
162
|
if (agentPlan.willCreate.length) {
|
|
143
|
-
// The manager reads the run spec by runId on each `launch`.
|
|
144
|
-
|
|
163
|
+
// The manager reads the run spec by runId on each `launch`. USER MODE stamps the deploy's
|
|
164
|
+
// owner (the login's derived owner, read from the deployer-view bearer) into the spec — the
|
|
165
|
+
// manager launches the agents under it AND enforces it equals the launch caller's owner.
|
|
166
|
+
writeLaunchSpec(root, buildLaunchSpec(eff, runId, user?.owner), { update: Boolean(prior) });
|
|
145
167
|
// Ensure a manager is SERVING this space, then validate it's ours — the lease is the authoritative
|
|
146
168
|
// owner record. A held lease alone is not proof a manager is alive (a crashed holder's key lingers
|
|
147
169
|
// until the bucket TTL, MANAGER_LEASE_TTL_MS), so read it (fast) and, when one exists, PROBE control to tell
|
|
@@ -152,12 +174,12 @@ export async function spawnManifest(file, flags) {
|
|
|
152
174
|
// Nobody owns the space — stand up a manager (it acquires the lease on boot).
|
|
153
175
|
startManagerDetached({ space, server: connection.server, runtime });
|
|
154
176
|
}
|
|
155
|
-
else if (!(await waitManagerReady(ep, MANAGER_PROBE_MS))) {
|
|
177
|
+
else if (!(await waitManagerReady(ep, MANAGER_PROBE_MS, tier))) {
|
|
156
178
|
// A lease exists but its holder doesn't answer control — a STALE key a crashed manager left. It
|
|
157
179
|
// blocks a replacement's acquire until the bucket TTL expires; wait it out, then stand one up.
|
|
158
180
|
console.log(c.dim(` ~ a manager lease for "${space}" is present but unanswered (holder pid ${held.pid}); waiting up to ${Math.ceil(MANAGER_LEASE_TTL_MS / 1000)}s for it to expire…`));
|
|
159
181
|
if (!(await waitLeaseGone(ep, MANAGER_LEASE_TTL_MS + 5_000))) {
|
|
160
|
-
console.error(c.red(`✗ a manager lease for "${space}" is still held by an unresponsive holder (pid ${held.pid}) after its TTL
|
|
182
|
+
console.error(c.red(`✗ a manager lease for "${space}" is still held by an unresponsive holder (pid ${held.pid}) after its TTL - stop it or check .cotal/manager.log`));
|
|
161
183
|
process.exit(1);
|
|
162
184
|
}
|
|
163
185
|
startManagerDetached({ space, server: connection.server, runtime });
|
|
@@ -166,25 +188,25 @@ export async function spawnManifest(file, flags) {
|
|
|
166
188
|
// serving, then validate THE HOLDER THAT ACTUALLY ANSWERED by re-reading the CURRENT lease (not the
|
|
167
189
|
// `held` snapshot, which can turn over during the probe / a concurrent start — TOCTOU). Fail LOUD if
|
|
168
190
|
// a foreign-checkout or wrong-runtime manager won the space before we launch into it.
|
|
169
|
-
if (!(await waitManagerReady(ep))) {
|
|
170
|
-
console.error(c.red("✗ manager did not become ready for control
|
|
191
|
+
if (!(await waitManagerReady(ep, undefined, tier))) {
|
|
192
|
+
console.error(c.red("✗ manager did not become ready for control - see .cotal/manager.log"));
|
|
171
193
|
process.exit(1);
|
|
172
194
|
}
|
|
173
195
|
const live = await ep.readManagerLease();
|
|
174
196
|
if (!live) {
|
|
175
|
-
console.error(c.red(`✗ "${space}" has no manager lease after the manager became ready
|
|
197
|
+
console.error(c.red(`✗ "${space}" has no manager lease after the manager became ready - re-run \`cotal spawn -f\``));
|
|
176
198
|
process.exit(1);
|
|
177
199
|
}
|
|
178
200
|
if (resolve(live.root) !== resolve(root)) {
|
|
179
|
-
console.error(c.red(`✗ a manager from a different checkout serves "${space}" (root ${live.root})
|
|
201
|
+
console.error(c.red(`✗ a manager from a different checkout serves "${space}" (root ${live.root}) - stop it, or run spawn -f from there`));
|
|
180
202
|
process.exit(1);
|
|
181
203
|
}
|
|
182
204
|
if (live.runtime !== runtime) {
|
|
183
|
-
console.error(c.red(`✗ a ${live.runtime} manager already serves "${space}" but runtime ${runtime} was requested
|
|
205
|
+
console.error(c.red(`✗ a ${live.runtime} manager already serves "${space}" but runtime ${runtime} was requested - stop it, or match it with --runtime ${live.runtime}`));
|
|
184
206
|
process.exit(1);
|
|
185
207
|
}
|
|
186
208
|
for (const e of agentPlan.willCreate) {
|
|
187
|
-
const reply = await launchAgent(ep, runId, e.agent.name);
|
|
209
|
+
const reply = await launchAgent(ep, runId, e.agent.name, tier);
|
|
188
210
|
if (!reply.ok) {
|
|
189
211
|
console.error(c.red(`✗ ${e.agent.name}: ${reply.error ?? "launch failed"}`));
|
|
190
212
|
continue;
|