@cotal-ai/cli 0.40.0 → 0.41.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/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +3 -1
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +14 -2
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/mint.d.ts +41 -0
- package/dist/commands/mint.d.ts.map +1 -1
- package/dist/commands/mint.js +66 -14
- package/dist/commands/mint.js.map +1 -1
- package/dist/commands/personas.d.ts.map +1 -1
- package/dist/commands/personas.js +66 -17
- package/dist/commands/personas.js.map +1 -1
- package/dist/commands/send.js +20 -4
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +56 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +119 -21
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +27 -4
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +94 -19
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +8 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/lib/auth-proc.d.ts.map +1 -1
- package/dist/lib/auth-proc.js +16 -1
- package/dist/lib/auth-proc.js.map +1 -1
- package/dist/lib/delivery-proc.d.ts.map +1 -1
- package/dist/lib/delivery-proc.js +16 -2
- package/dist/lib/delivery-proc.js.map +1 -1
- package/dist/lib/manager-proc.d.ts.map +1 -1
- package/dist/lib/manager-proc.js +22 -2
- package/dist/lib/manager-proc.js.map +1 -1
- package/dist/lib/personas.d.ts +22 -5
- package/dist/lib/personas.d.ts.map +1 -1
- package/dist/lib/personas.js +5 -6
- package/dist/lib/personas.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,9 +2,8 @@ import { spawnSync } from "node:child_process";
|
|
|
2
2
|
import { existsSync, readFileSync, renameSync, rmSync } from "node:fs";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { agentFilePath, assertValidName, loadAgentFile, saveAgentFile, } from "@cotal-ai/core";
|
|
5
|
-
import { loadMeshes, targetFlags } from "@cotal-ai/workspace";
|
|
6
|
-
import {
|
|
7
|
-
import { completingFlagValue, positionalsForCompletion } from "../lib/completion.js";
|
|
5
|
+
import { isWorkspaceTargetError, loadMeshes, renderWorkspaceError, resolveMeshTarget, targetFlags } from "@cotal-ai/workspace";
|
|
6
|
+
import { completedFlagValue, completingFlagValue, positionalsForCompletion } from "../lib/completion.js";
|
|
8
7
|
import { listPersonas, listPersonaNames, personasDir } from "../lib/personas.js";
|
|
9
8
|
import { openTransient } from "../lib/transient.js";
|
|
10
9
|
import { c } from "../ui.js";
|
|
@@ -19,6 +18,18 @@ import { c } from "../ui.js";
|
|
|
19
18
|
* cotal personas edit <name>
|
|
20
19
|
* cotal personas new <name> (--prompt <text> | --from <file|->) [--role <r>] [--model <m>] [--force]
|
|
21
20
|
* cotal personas rm <name> --force
|
|
21
|
+
*
|
|
22
|
+
* WHICH CATALOG IT ACTS ON. Every subcommand resolves the MESH's root through
|
|
23
|
+
* {@link resolveMeshTarget} — the same resolution `cotal spawn` uses — and never the cwd.
|
|
24
|
+
* "Local" above means "files on this machine, not a wire call"; it does not mean "whatever
|
|
25
|
+
* directory you are standing in". Those two readings came apart badly: until this was fixed the
|
|
26
|
+
* listing took `listPersonas()`'s silent cwd default while `spawn` passed the resolved mesh root,
|
|
27
|
+
* so from one cwd `personas` listed a set `spawn` could not launch a single member of.
|
|
28
|
+
*
|
|
29
|
+
* That also makes `--space`/`--server` real HERE, not just for the `--running` overlay: naming a
|
|
30
|
+
* mesh now moves the catalog the command reads and writes, so two spaces give two answers from
|
|
31
|
+
* one cwd. Mesh resolution is offline and pure (registry + `current` + the cwd project, no
|
|
32
|
+
* broker), so the offline subcommands stay offline.
|
|
22
33
|
*/
|
|
23
34
|
/** Persona names are also filenames and spawn names — mirror the `cotal_persona` tool's pattern. */
|
|
24
35
|
const NAME_RE = /^[A-Za-z0-9_-]+$/;
|
|
@@ -29,17 +40,40 @@ export async function personas(args) {
|
|
|
29
40
|
case "list":
|
|
30
41
|
return list(values.verbose === true, values.running === true, values);
|
|
31
42
|
case "show":
|
|
32
|
-
return show(positionals[1]);
|
|
43
|
+
return show(positionals[1], values);
|
|
33
44
|
case "edit":
|
|
34
|
-
return edit(positionals[1]);
|
|
45
|
+
return edit(positionals[1], values);
|
|
35
46
|
case "new":
|
|
36
47
|
return create(positionals[1], values);
|
|
37
48
|
case "rm":
|
|
38
|
-
return remove(positionals[1], values.force === true);
|
|
49
|
+
return remove(positionals[1], values.force === true, values);
|
|
39
50
|
default:
|
|
40
51
|
return usage();
|
|
41
52
|
}
|
|
42
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* The root whose `.cotal/agents` this command acts on: the RESOLVED MESH's, honouring
|
|
56
|
+
* `--space`/`--server`, exactly as `cotal spawn` resolves it.
|
|
57
|
+
*
|
|
58
|
+
* Resolution is offline and pure (registry + `current` + the cwd project) so `show`/`edit`/`new`/
|
|
59
|
+
* `rm` and the plain listing still work with no broker. It is deliberately NOT wrapped in a cwd
|
|
60
|
+
* fallback: when the target cannot be resolved the command says so and exits, because the only
|
|
61
|
+
* alternative is to silently act on some other directory's catalog — the exact defect this
|
|
62
|
+
* command is being fixed for. `--creds` is auth material, not a location, so it plays no part
|
|
63
|
+
* here; it stays what it always was, an input to the live `--running` overlay.
|
|
64
|
+
*/
|
|
65
|
+
function targetRoot(values) {
|
|
66
|
+
try {
|
|
67
|
+
return resolveMeshTarget(process.cwd(), { space: values.space, server: values.server }).root;
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
if (isWorkspaceTargetError(e)) {
|
|
71
|
+
console.error(c.red(renderWorkspaceError({ kind: "target", error: e })));
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
throw e;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
43
77
|
/** Argument completion: subcommands, then persona names for `show`/`rm`. */
|
|
44
78
|
export function personasComplete(argv) {
|
|
45
79
|
const flags = [
|
|
@@ -71,14 +105,29 @@ export function personasComplete(argv) {
|
|
|
71
105
|
};
|
|
72
106
|
if (positionals.length <= 1)
|
|
73
107
|
return subs; // completing the subcommand
|
|
74
|
-
if (positionals[0] === "show" || positionals[0] === "edit" || positionals[0] === "rm")
|
|
75
|
-
|
|
108
|
+
if (positionals[0] === "show" || positionals[0] === "edit" || positionals[0] === "rm") {
|
|
109
|
+
// Complete from the TARGET mesh's catalog, matching what the subcommand will actually open —
|
|
110
|
+
// a <TAB> that offers a name the command then reports as missing is worse than no completion.
|
|
111
|
+
// Resolved offline (no probe), and FAIL CLOSED: with no single target, offer nothing rather
|
|
112
|
+
// than throw into the operator's shell (the same posture as `spawnComplete`).
|
|
113
|
+
try {
|
|
114
|
+
const root = resolveMeshTarget(process.cwd(), {
|
|
115
|
+
space: completedFlagValue(argv, flags, "space"),
|
|
116
|
+
server: completedFlagValue(argv, flags, "server"),
|
|
117
|
+
}).root;
|
|
118
|
+
return { items: listPersonaNames(root).map((value) => ({ value })), directive: "nofiles" };
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return { items: [], directive: "nofiles" };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
76
124
|
return { items: [], directive: "nofiles" };
|
|
77
125
|
}
|
|
78
126
|
async function list(verbose, running, values) {
|
|
79
|
-
const
|
|
127
|
+
const root = targetRoot(values);
|
|
128
|
+
const entries = listPersonas(root);
|
|
80
129
|
if (!entries.length) {
|
|
81
|
-
console.log(c.dim(`no personas in ${personasDir()}\n`) +
|
|
130
|
+
console.log(c.dim(`no personas in ${personasDir(root)}\n`) +
|
|
82
131
|
c.dim('create one: cotal personas new <name> --prompt "<who they are>"'));
|
|
83
132
|
return;
|
|
84
133
|
}
|
|
@@ -125,10 +174,10 @@ async function presentNames(values) {
|
|
|
125
174
|
await ep.stop();
|
|
126
175
|
}
|
|
127
176
|
}
|
|
128
|
-
function show(name) {
|
|
177
|
+
function show(name, values) {
|
|
129
178
|
if (!name)
|
|
130
179
|
return usage();
|
|
131
|
-
const path = agentFilePath(
|
|
180
|
+
const path = agentFilePath(targetRoot(values), name);
|
|
132
181
|
if (!existsSync(path))
|
|
133
182
|
return notFound(name, path);
|
|
134
183
|
// Print the file verbatim — the canonical card (frontmatter + persona body).
|
|
@@ -137,10 +186,10 @@ function show(name) {
|
|
|
137
186
|
}
|
|
138
187
|
/** `cotal personas edit <name>` — open the card in $EDITOR (or $VISUAL), then re-validate on exit
|
|
139
188
|
* so a save that breaks the frontmatter fails loud instead of silently shipping a bad card. */
|
|
140
|
-
function edit(name) {
|
|
189
|
+
function edit(name, values) {
|
|
141
190
|
if (!name)
|
|
142
191
|
return usage();
|
|
143
|
-
const path = agentFilePath(
|
|
192
|
+
const path = agentFilePath(targetRoot(values), name);
|
|
144
193
|
if (!existsSync(path))
|
|
145
194
|
return notFound(name, path);
|
|
146
195
|
const editor = process.env.VISUAL || process.env.EDITOR;
|
|
@@ -178,7 +227,7 @@ function create(name, v) {
|
|
|
178
227
|
process.exit(1);
|
|
179
228
|
}
|
|
180
229
|
assertValidName(name); // shared reserved-character guard (also rejects "/")
|
|
181
|
-
const path = agentFilePath(
|
|
230
|
+
const path = agentFilePath(targetRoot(v), name);
|
|
182
231
|
if (existsSync(path) && !v.force) {
|
|
183
232
|
console.error(c.red(`persona "${name}" already exists - pass --force to overwrite`));
|
|
184
233
|
console.error(c.dim(path));
|
|
@@ -213,10 +262,10 @@ function create(name, v) {
|
|
|
213
262
|
console.log(c.green(`✓ wrote persona "${name}"`));
|
|
214
263
|
console.log(c.dim(`${path}\nspawn it: cotal spawn ${name}${v.role ? ` --role ${v.role}` : ""}`));
|
|
215
264
|
}
|
|
216
|
-
function remove(name, force) {
|
|
265
|
+
function remove(name, force, values) {
|
|
217
266
|
if (!name)
|
|
218
267
|
return usage();
|
|
219
|
-
const path = agentFilePath(
|
|
268
|
+
const path = agentFilePath(targetRoot(values), name);
|
|
220
269
|
if (!existsSync(path))
|
|
221
270
|
return notFound(name, path);
|
|
222
271
|
if (!force) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/commands/personas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/commands/personas.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/send.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolvePeer, AmbiguousPeerError, } from "@cotal-ai/core";
|
|
2
|
-
import { loadMeshes, targetFlags } from "@cotal-ai/workspace";
|
|
2
|
+
import { loadMeshes, resolveMeshTarget, targetFlags } from "@cotal-ai/workspace";
|
|
3
3
|
import { c } from "../ui.js";
|
|
4
|
-
import { completingFlagValue, positionalsForCompletion } from "../lib/completion.js";
|
|
4
|
+
import { completedFlagValue, completingFlagValue, positionalsForCompletion } from "../lib/completion.js";
|
|
5
5
|
import { openTransient } from "../lib/transient.js";
|
|
6
6
|
import { listDeclaredChannels, listDeclaredRoles } from "../lib/personas.js";
|
|
7
7
|
import { mentionsIn } from "../lib/mentions.js";
|
|
@@ -108,14 +108,30 @@ export function sendComplete(argv) {
|
|
|
108
108
|
const [mode, ...rest] = positionals;
|
|
109
109
|
if (mode === "msg" && rest.length <= 1)
|
|
110
110
|
return {
|
|
111
|
-
items: listDeclaredChannels
|
|
111
|
+
items: declaredFrom(argv, listDeclaredChannels).map((value) => ({ value, description: "declared channel" })),
|
|
112
112
|
directive: "nofiles",
|
|
113
113
|
};
|
|
114
114
|
if (mode === "ask" && rest.length <= 1)
|
|
115
115
|
return {
|
|
116
|
-
items: listDeclaredRoles
|
|
116
|
+
items: declaredFrom(argv, listDeclaredRoles).map((value) => ({ value, description: "declared role" })),
|
|
117
117
|
directive: "nofiles",
|
|
118
118
|
};
|
|
119
119
|
return { items: [], directive: "nofiles" };
|
|
120
120
|
}
|
|
121
|
+
/** Channels/roles declared by the TARGET mesh's personas — `cotal send` acts on the mesh
|
|
122
|
+
* `--space`/`--server` resolve to, so its completions must come from that mesh's catalog and not
|
|
123
|
+
* from whatever project the operator happens to be standing in. Offline (no probe: a <TAB> never
|
|
124
|
+
* opens the network) and FAIL CLOSED — with no single resolvable target, or a malformed persona
|
|
125
|
+
* file (see `declaredValues`), offer nothing rather than throw into the operator's shell. */
|
|
126
|
+
function declaredFrom(argv, list) {
|
|
127
|
+
try {
|
|
128
|
+
return list(resolveMeshTarget(process.cwd(), {
|
|
129
|
+
space: completedFlagValue(argv, targetFlags, "space"),
|
|
130
|
+
server: completedFlagValue(argv, targetFlags, "server"),
|
|
131
|
+
}).root);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
121
137
|
//# sourceMappingURL=send.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,GAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Connector, type ConnectorSetupProvider, type ParsedArgs } from "@cotal-ai/core";
|
|
2
|
+
import { type MeshTarget } from "@cotal-ai/workspace";
|
|
2
3
|
import { type Step } from "../lib/steps.js";
|
|
3
4
|
/** `cotal setup`'s grammar — configure-only knobs. The old `--auth`/`--open` flags configured the
|
|
4
5
|
* MESH MODE at setup-launch time; setup no longer launches anything, so both are gone here —
|
|
@@ -85,4 +86,59 @@ export declare const LEGACY_DEFAULT_AGENT: string;
|
|
|
85
86
|
* static template smoke can grade the upgrade decision without touching real setup state. */
|
|
86
87
|
export declare function migrateLegacyDefaultAgent(current: string): string | undefined;
|
|
87
88
|
export declare function reconcileDefaultAgent(path: string): "seeded" | "migrated" | "unchanged";
|
|
89
|
+
/**
|
|
90
|
+
* WHERE a seeded persona has to land: the catalog `cotal spawn` will actually READ.
|
|
91
|
+
*
|
|
92
|
+
* Setup used to derive this from the cwd (`cotalPath("agents", …)`, a `findCotalRoot` walk up from
|
|
93
|
+
* `process.cwd()`), while `spawn` reads the RESOLVED MESH's root (`resolveMeshTarget(...).root`,
|
|
94
|
+
* see spawn.ts's `agentFilePath(target.root, ref)`). On any machine where those two disagree —
|
|
95
|
+
* a cwd outside every project, so the walk lands on `~`, plus a mesh registered against some
|
|
96
|
+
* other root — setup dutifully wrote a file spawn would never open, and `cotal spawn` went on
|
|
97
|
+
* saying "no default persona yet - run `cotal setup` to seed one" after you ran exactly that.
|
|
98
|
+
* The remedy the error named did not fix the error.
|
|
99
|
+
*
|
|
100
|
+
* So resolve the destination the way spawn does, and report which question it answered:
|
|
101
|
+
*
|
|
102
|
+
* - `mesh` — a mesh resolved; `dir` is ITS `.cotal/agents`, the catalog spawn reads.
|
|
103
|
+
* - `cwd` — no mesh resolved at all (a fresh machine, before the first `cotal up`, which is
|
|
104
|
+
* the ordinary first-run case). Setup must still work there, so it falls back to
|
|
105
|
+
* the cwd walk — the OLD behavior, now reached deliberately and named in the
|
|
106
|
+
* output rather than taken silently.
|
|
107
|
+
*
|
|
108
|
+
* `reason` carries the resolver's own sentence for the cwd case, so the fallback can say WHY it
|
|
109
|
+
* had no mesh to seed into instead of asserting one.
|
|
110
|
+
*/
|
|
111
|
+
interface SeedDestination {
|
|
112
|
+
/** The `.cotal/agents` directory to write into — absolute. */
|
|
113
|
+
dir: string;
|
|
114
|
+
source: "mesh" | "cwd";
|
|
115
|
+
/** The resolved mesh, when one resolved. */
|
|
116
|
+
target?: MeshTarget;
|
|
117
|
+
/** Why no mesh resolved, for `source: "cwd"`. */
|
|
118
|
+
reason?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Resolve the persona catalog to seed into, offline. `cwd` is a parameter so the smoke can drive
|
|
122
|
+
* this without chdir'ing a shared process; production always passes `process.cwd()`.
|
|
123
|
+
*
|
|
124
|
+
* Deliberately NOT `resolveTargetOrExit`: that prunes the registry and exits the process on an
|
|
125
|
+
* unresolved mesh. Setup is the command you run BEFORE a mesh exists, and on a fresh machine it
|
|
126
|
+
* must still seed a persona rather than refuse.
|
|
127
|
+
*
|
|
128
|
+
* The fallback is narrow ON PURPOSE — `no-meshes` and nothing else. "No mesh is running" has one
|
|
129
|
+
* honest answer (this folder), so seeding there and saying so is right. But `ambiguous-target`
|
|
130
|
+
* (several meshes up, none selected) is a case where the OPERATOR has a real choice, and quietly
|
|
131
|
+
* seeding the cwd would be this very defect wearing a different hat: a root chosen for them,
|
|
132
|
+
* without being asked, that the spawn they run next may not read. Every other resolution failure
|
|
133
|
+
* — unreadable trust, a stale auth root, an unrecorded user-auth space — is a fault to repair, not
|
|
134
|
+
* a licence to guess a directory. Those RETHROW, and `command.ts` renders them with their own
|
|
135
|
+
* recovery copy.
|
|
136
|
+
*/
|
|
137
|
+
export declare function seedDestinationFor(cwd: string): SeedDestination;
|
|
138
|
+
/** Resolve, disclose and write through setup's shipped destination wiring. The smoke disables only
|
|
139
|
+
* the presentation step while keeping the production resolver-to-writer path intact. */
|
|
140
|
+
export declare function seedDefaultForSetup(cwd: string, announce?: boolean): SeedDestination;
|
|
141
|
+
/** The write itself, seam-exported for the smoke: reconcile into an explicit catalog directory. */
|
|
142
|
+
export declare function seedDefaultAgentInto(dir: string): void;
|
|
143
|
+
export {};
|
|
88
144
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,SAAS,EAA6B,KAAK,sBAAsB,EAAkE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,SAAS,EAA6B,KAAK,sBAAsB,EAAkE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnM,OAAO,EAUL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAatD;;;yFAGyF;AACzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;EAKiB,CAAC;AAEzC;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D;AAkJD;;;gGAGgG;AAChG,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpE;AAaD;gFACgF;AAChF,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;yGAEyG;AACzG,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,SAAS,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAgB,GAC3C,uBAAuB,EAAE,CAmB3B;AAED;2EAC2E;AAC3E,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAMlE;AAgDD;;;+DAG+D;AAC/D,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAGzG;AAED;;;0CAG0C;AAC1C,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAYnH;AAgBD;4EAC4E;AAC5E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC,GAAG,OAAO,CAElG;AAwFD;;;;;;;;wCAQwC;AACxC,eAAO,MAAM,aAAa,idAczB,CAAC;AAEF;uGACuG;AACvG,eAAO,MAAM,oBAAoB,QAgBrB,CAAC;AAEb;;8FAE8F;AAC9F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAUvF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,UAAU,eAAe;IACvB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAa/D;AAuDD;yFACyF;AACzF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,eAAe,CAIjF;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQtD"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
2
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
4
|
import * as p from "@clack/prompts";
|
|
5
5
|
import { registry } from "@cotal-ai/core";
|
|
6
|
-
import { homeCotalDir, installedExtensionVersion, loadExtensionsManifest, manifestExtensionNames, provenance } from "@cotal-ai/workspace";
|
|
6
|
+
import { findCotalRoot, homeCotalDir, installedExtensionVersion, isWorkspaceTargetError, loadExtensionsManifest, manifestExtensionNames, personaDir, provenance, resolveMeshTarget, } from "@cotal-ai/workspace";
|
|
7
7
|
import { materializeExtension } from "../ext-loader.js";
|
|
8
8
|
import { agentSkillsHome, canonicalSkillNames, canonicalSkillsDir, installAgentSkills } from "../lib/agent-skills.js";
|
|
9
9
|
import { cliVersion } from "../lib/version.js";
|
|
@@ -16,7 +16,6 @@ import { isOnboarded, markOnboarded } from "../lib/onboard.js";
|
|
|
16
16
|
import { machineStatus, meshStatus, onPath, webUp, WEB_URL } from "../lib/status.js";
|
|
17
17
|
import { managerUp } from "../lib/manager-proc.js";
|
|
18
18
|
import { cotalOnPath, displayCmd, isNpx, selfArgv } from "../lib/self-exec.js";
|
|
19
|
-
import { cotalPath } from "../lib/paths.js";
|
|
20
19
|
const ONBOARD_VERSION = "2";
|
|
21
20
|
const README_URL = "https://github.com/Cotal-AI/Cotal/blob/main/README.md";
|
|
22
21
|
const NATS_RELEASES_URL = "https://github.com/nats-io/nats-server/releases";
|
|
@@ -132,13 +131,17 @@ async function runFirstRun(yes, demo) {
|
|
|
132
131
|
}
|
|
133
132
|
// Your agent: the generic `default` persona a bare `cotal spawn` launches — one agent, yours to
|
|
134
133
|
// shape. This is the whole first-run default; the guided expert team is opt-in right below.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
//
|
|
135
|
+
// The destination is resolved ONCE, the way `spawn` resolves it, and announced BEFORE the write:
|
|
136
|
+
// the persona has to land in the catalog spawn reads, and when that is not this folder the user
|
|
137
|
+
// has to be told so by the output rather than discover it from a refusal an hour later.
|
|
138
|
+
const dest = seedDefaultForSetup(process.cwd());
|
|
139
|
+
p.log.success(`Seeded your agent (${join(dest.dir, "default.md")}) - spawn it with \`${displayCmd()} spawn\` once your mesh is up`);
|
|
140
|
+
log.line(`default-agent: wrote ${join(dest.dir, "default.md")} (${dest.source === "mesh" ? `mesh ${dest.target.space}` : "cwd fallback"})`);
|
|
138
141
|
// The guided expert team (david the engineer + sven the guide + me, your session) is opt-in:
|
|
139
142
|
// `cotal setup --demo` (or `--full`). Keeps the default first run to one agent, not a crowd.
|
|
140
143
|
if (demo)
|
|
141
|
-
seedDemoTeam(log);
|
|
144
|
+
seedDemoTeam(dest, log);
|
|
142
145
|
// Cotal's own skills, for the non-Claude harnesses, via the cross-vendor `.agents/skills` convention.
|
|
143
146
|
const skills = seedAgentSkills(log);
|
|
144
147
|
p.log.success(`Installed ${skills.installed.length} cross-vendor skill${skills.installed.length !== 1 ? "s" : ""} (${skills.installed.join(", ")}) to ~/.agents/skills; read by Codex, Cursor, OpenCode, Gemini CLI, and Windsurf`);
|
|
@@ -277,9 +280,12 @@ async function pickConnectors(candidates, yes) {
|
|
|
277
280
|
* missing (announced). Nothing is launched — the card tells you what's down and how to start it.
|
|
278
281
|
* `--demo` here adds the guided team to an already-configured machine (no need to re-narrate). */
|
|
279
282
|
async function runEnsure(demo) {
|
|
280
|
-
|
|
283
|
+
// Same destination question as the first run, same disclosure: a repeat `cotal setup` is exactly
|
|
284
|
+
// what the old refusal told the user to run, so it above all must seed where `spawn` reads.
|
|
285
|
+
const dest = seedDefaultForSetup(process.cwd()); // ensure `cotal spawn` (no name) always has a default to launch
|
|
286
|
+
p.log.success(`Your agent: ${join(dest.dir, "default.md")}`);
|
|
281
287
|
if (demo)
|
|
282
|
-
seedDemoTeam(); // `cotal setup --demo` on a configured machine: add the team, then card
|
|
288
|
+
seedDemoTeam(dest); // `cotal setup --demo` on a configured machine: add the team, then card
|
|
283
289
|
await reconcileConnectorSkills();
|
|
284
290
|
seedAgentSkills(); // reconcile the cross-vendor `.agents/skills` drop so an upgrade + re-run isn't stale
|
|
285
291
|
// A repeat `npx cotal-ai setup` on an onboarded machine that still lacks a durable `cotal` must
|
|
@@ -358,7 +364,11 @@ async function readyCard(cwd) {
|
|
|
358
364
|
const web = await webUp();
|
|
359
365
|
const mgr = managerUp();
|
|
360
366
|
const cmd = displayCmd();
|
|
361
|
-
|
|
367
|
+
// Read the demo marker out of the catalog the card's own `spawn` hints will resolve — the same
|
|
368
|
+
// seed destination, not a second cwd-derived guess. Hinting `cotal spawn me` off a `david.md` in
|
|
369
|
+
// a directory spawn never opens is the identical defect, one line further down the output.
|
|
370
|
+
const personas = seedDestination();
|
|
371
|
+
const hasDemo = existsSync(join(personas.dir, "david.md")); // the guided team is present ⇒ richer hint
|
|
362
372
|
const line = (on, text) => `${on ? ok("✓") : dim("○")} ${text}`;
|
|
363
373
|
note([
|
|
364
374
|
line(m.nats !== "missing", `NATS ${dim(m.nats === "missing" ? "missing" : m.nats)}`),
|
|
@@ -470,11 +480,95 @@ export function reconcileDefaultAgent(path) {
|
|
|
470
480
|
writeFileSync(path, DEFAULT_AGENT);
|
|
471
481
|
return "seeded";
|
|
472
482
|
}
|
|
473
|
-
/**
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
|
|
477
|
-
|
|
483
|
+
/**
|
|
484
|
+
* Resolve the persona catalog to seed into, offline. `cwd` is a parameter so the smoke can drive
|
|
485
|
+
* this without chdir'ing a shared process; production always passes `process.cwd()`.
|
|
486
|
+
*
|
|
487
|
+
* Deliberately NOT `resolveTargetOrExit`: that prunes the registry and exits the process on an
|
|
488
|
+
* unresolved mesh. Setup is the command you run BEFORE a mesh exists, and on a fresh machine it
|
|
489
|
+
* must still seed a persona rather than refuse.
|
|
490
|
+
*
|
|
491
|
+
* The fallback is narrow ON PURPOSE — `no-meshes` and nothing else. "No mesh is running" has one
|
|
492
|
+
* honest answer (this folder), so seeding there and saying so is right. But `ambiguous-target`
|
|
493
|
+
* (several meshes up, none selected) is a case where the OPERATOR has a real choice, and quietly
|
|
494
|
+
* seeding the cwd would be this very defect wearing a different hat: a root chosen for them,
|
|
495
|
+
* without being asked, that the spawn they run next may not read. Every other resolution failure
|
|
496
|
+
* — unreadable trust, a stale auth root, an unrecorded user-auth space — is a fault to repair, not
|
|
497
|
+
* a licence to guess a directory. Those RETHROW, and `command.ts` renders them with their own
|
|
498
|
+
* recovery copy.
|
|
499
|
+
*/
|
|
500
|
+
export function seedDestinationFor(cwd) {
|
|
501
|
+
try {
|
|
502
|
+
const target = resolveMeshTarget(cwd, {});
|
|
503
|
+
// `personaRoot` is the target's own `<root>/.cotal/agents` — the exact string spawn resolves
|
|
504
|
+
// its persona file under. Taken from the target rather than recomputed, so the two cannot drift.
|
|
505
|
+
return { dir: target.personaRoot, source: "mesh", target };
|
|
506
|
+
}
|
|
507
|
+
catch (e) {
|
|
508
|
+
// ONLY "there is no mesh at all" falls back. Anything else is a decision that is not setup's
|
|
509
|
+
// to make, or a fault that wants fixing; either way the cwd is not the answer.
|
|
510
|
+
if (isWorkspaceTargetError(e) && e.code === "no-meshes")
|
|
511
|
+
return { dir: personaDir(findCotalRoot(cwd)), source: "cwd", reason: e.message };
|
|
512
|
+
throw e;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
function seedDestination() {
|
|
516
|
+
return seedDestinationFor(process.cwd());
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Say where the personas are going, ABSOLUTE, before anything is written.
|
|
520
|
+
*
|
|
521
|
+
* The rule is NOT "never use the cwd" — it is "never use a root SILENTLY". The whole defect was a
|
|
522
|
+
* cwd-derived root substituted for the mesh's without the output disclosing it, so the user read
|
|
523
|
+
* `Seeded your agent (.cotal/agents/default.md)` and reasonably assumed the folder they were
|
|
524
|
+
* standing in. Every path through this function therefore names the destination in full:
|
|
525
|
+
*
|
|
526
|
+
* - mesh root == cwd root : the ordinary single-project case. Still printed, just without the
|
|
527
|
+
* comparison, because there is no divergence to explain.
|
|
528
|
+
* - mesh root != cwd root : the case that bit. Prints BOTH roots, so the difference is visible
|
|
529
|
+
* in the output rather than discoverable only from a later refusal.
|
|
530
|
+
* - no mesh at all : the fresh-machine fallback, where the cwd IS the honest answer. Says
|
|
531
|
+
* it fell back, why, and where it is writing.
|
|
532
|
+
*/
|
|
533
|
+
function announceSeedDestination(dest) {
|
|
534
|
+
if (dest.source === "cwd") {
|
|
535
|
+
p.log.info(`No mesh resolved yet (${dest.reason}) - seeding into this folder's catalog:\n` +
|
|
536
|
+
` ${dest.dir}\n` +
|
|
537
|
+
`Once a mesh is running, \`${displayCmd()} setup\` seeds into THAT mesh's root instead.`);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
const t = dest.target;
|
|
541
|
+
// The cwd's own answer, for comparison only — never to choose with.
|
|
542
|
+
const cwdRoot = findCotalRoot();
|
|
543
|
+
if (resolve(cwdRoot) === resolve(t.root)) {
|
|
544
|
+
p.log.info(`Seeding personas for mesh "${t.space}" into:\n ${dest.dir}`);
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
p.log.info(`Seeding into mesh "${t.space}"'s personas, not this folder's:\n` +
|
|
548
|
+
` writing to ${dest.dir}\n` +
|
|
549
|
+
` mesh "${t.space}" (${t.server}) root ${t.root}\n` +
|
|
550
|
+
` this folder would have used ${cwdRoot}\n` +
|
|
551
|
+
`\`${displayCmd()} spawn\` reads the mesh's catalog, so that is where the persona has to live.`);
|
|
552
|
+
}
|
|
553
|
+
/** Seed the default persona if it's missing, or migrate the byte-exact legacy template, in the
|
|
554
|
+
* catalog `cotal spawn` actually reads. Called from both first-run and repeat-run paths so new
|
|
555
|
+
* installs and untouched upgrades get the current grant while edited personas are never
|
|
556
|
+
* overwritten. Returns the destination so the caller can report the ABSOLUTE path it wrote. */
|
|
557
|
+
function seedDefaultAgent(dest = seedDestination()) {
|
|
558
|
+
seedDefaultAgentInto(dest.dir);
|
|
559
|
+
return dest;
|
|
560
|
+
}
|
|
561
|
+
/** Resolve, disclose and write through setup's shipped destination wiring. The smoke disables only
|
|
562
|
+
* the presentation step while keeping the production resolver-to-writer path intact. */
|
|
563
|
+
export function seedDefaultForSetup(cwd, announce = true) {
|
|
564
|
+
const dest = seedDestinationFor(cwd);
|
|
565
|
+
if (announce)
|
|
566
|
+
announceSeedDestination(dest);
|
|
567
|
+
return seedDefaultAgent(dest);
|
|
568
|
+
}
|
|
569
|
+
/** The write itself, seam-exported for the smoke: reconcile into an explicit catalog directory. */
|
|
570
|
+
export function seedDefaultAgentInto(dir) {
|
|
571
|
+
const path = join(dir, "default.md");
|
|
478
572
|
const result = reconcileDefaultAgent(path);
|
|
479
573
|
if (result === "migrated") {
|
|
480
574
|
provenance.wrote("updated default persona permissions", path);
|
|
@@ -487,14 +581,18 @@ function seedDefaultAgent() {
|
|
|
487
581
|
* opt-in richer first experience (`cotal setup --demo` / `--full`). These are setup-managed, unlike
|
|
488
582
|
* the seed-once default: refreshed when a DEMO_AGENTS body changes so persona edits actually land,
|
|
489
583
|
* but a file you've taken ownership of is backed up first, never silently lost (see writeDemoAgent).
|
|
490
|
-
* Every write is announced; `log` (present only in the narrated first run) also records it.
|
|
491
|
-
|
|
492
|
-
|
|
584
|
+
* Every write is announced; `log` (present only in the narrated first run) also records it.
|
|
585
|
+
*
|
|
586
|
+
* Takes the SAME destination the default persona used, so the team can never land in a different
|
|
587
|
+
* catalog than the default — one `cotal spawn david` reading a root that `cotal spawn` does not is
|
|
588
|
+
* the same defect wearing a different name. */
|
|
589
|
+
function seedDemoTeam(dest, log) {
|
|
590
|
+
mkdirSync(dest.dir, { recursive: true });
|
|
493
591
|
for (const [name, body] of Object.entries(DEMO_AGENTS)) {
|
|
494
|
-
writeDemoAgent(
|
|
592
|
+
writeDemoAgent(join(dest.dir, `${name}.md`), body);
|
|
495
593
|
}
|
|
496
|
-
p.log.success(
|
|
497
|
-
log?.line(
|
|
594
|
+
p.log.success(`Added the guided team - david (the engineer), sven (the guide), and your session (me) in ${dest.dir}; spawn them when your mesh is up`);
|
|
595
|
+
log?.line(`demo-agents: wrote david + sven + me into ${dest.dir}`);
|
|
498
596
|
}
|
|
499
597
|
const DEMO_AGENTS = {
|
|
500
598
|
david: `---
|