@cotal-ai/cli 0.39.1 → 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.
Files changed (42) hide show
  1. package/dist/commands/clean.d.ts.map +1 -1
  2. package/dist/commands/clean.js +3 -1
  3. package/dist/commands/clean.js.map +1 -1
  4. package/dist/commands/down.d.ts.map +1 -1
  5. package/dist/commands/down.js +14 -2
  6. package/dist/commands/down.js.map +1 -1
  7. package/dist/commands/mint.d.ts +41 -0
  8. package/dist/commands/mint.d.ts.map +1 -1
  9. package/dist/commands/mint.js +66 -14
  10. package/dist/commands/mint.js.map +1 -1
  11. package/dist/commands/personas.d.ts.map +1 -1
  12. package/dist/commands/personas.js +66 -17
  13. package/dist/commands/personas.js.map +1 -1
  14. package/dist/commands/send.js +20 -4
  15. package/dist/commands/send.js.map +1 -1
  16. package/dist/commands/setup.d.ts +56 -0
  17. package/dist/commands/setup.d.ts.map +1 -1
  18. package/dist/commands/setup.js +119 -21
  19. package/dist/commands/setup.js.map +1 -1
  20. package/dist/commands/spawn.d.ts.map +1 -1
  21. package/dist/commands/spawn.js +27 -4
  22. package/dist/commands/spawn.js.map +1 -1
  23. package/dist/commands/status.d.ts.map +1 -1
  24. package/dist/commands/status.js +94 -19
  25. package/dist/commands/status.js.map +1 -1
  26. package/dist/commands/up.d.ts.map +1 -1
  27. package/dist/commands/up.js +8 -2
  28. package/dist/commands/up.js.map +1 -1
  29. package/dist/lib/auth-proc.d.ts.map +1 -1
  30. package/dist/lib/auth-proc.js +16 -1
  31. package/dist/lib/auth-proc.js.map +1 -1
  32. package/dist/lib/delivery-proc.d.ts.map +1 -1
  33. package/dist/lib/delivery-proc.js +16 -2
  34. package/dist/lib/delivery-proc.js.map +1 -1
  35. package/dist/lib/manager-proc.d.ts.map +1 -1
  36. package/dist/lib/manager-proc.js +22 -2
  37. package/dist/lib/manager-proc.js.map +1 -1
  38. package/dist/lib/personas.d.ts +22 -5
  39. package/dist/lib/personas.d.ts.map +1 -1
  40. package/dist/lib/personas.js +5 -6
  41. package/dist/lib/personas.js.map +1 -1
  42. package/package.json +5 -5
@@ -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 { cotalRoot } from "../lib/paths.js";
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
- return { items: listPersonaNames().map((value) => ({ value })), directive: "nofiles" };
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 entries = listPersonas();
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(cotalRoot(), name);
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(cotalRoot(), name);
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(cotalRoot(), name);
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(cotalRoot(), name);
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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"}
@@ -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().map((value) => ({ value, description: "declared channel" })),
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().map((value) => ({ value, description: "declared role" })),
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":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
@@ -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;AAMnM,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AActD;;;yFAGyF;AACzF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;EAKiB,CAAC;AAEzC;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3D;AA8ID;;;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;AA6CD;;;+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;AAoFD;;;;;;;;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"}
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"}
@@ -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
- seedDefaultAgent();
136
- p.log.success("Seeded your agent (.cotal/agents/default.md) - spawn it with `cotal spawn` once your mesh is up");
137
- log.line("default-agent: wrote default.md");
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
- seedDefaultAgent(); // ensure `cotal spawn` (no name) always has a default to launch
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
- const hasDemo = existsSync(cotalPath("agents", "david.md")); // the guided team is present richer hint
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
- /** Seed the default persona if it's missing, or migrate the byte-exact legacy template. Called from
474
- * both first-run and repeat-run paths so new installs and untouched upgrades get the current grant
475
- * while edited personas are never overwritten. */
476
- function seedDefaultAgent() {
477
- const path = cotalPath("agents", "default.md");
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
- function seedDemoTeam(log) {
492
- mkdirSync(cotalPath("agents"), { recursive: true });
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(cotalPath("agents", `${name}.md`), body);
592
+ writeDemoAgent(join(dest.dir, `${name}.md`), body);
495
593
  }
496
- p.log.success("Added the guided team - david (the engineer), sven (the guide), and your session (me); spawn them when your mesh is up");
497
- log?.line("demo-agents: wrote david + sven + me");
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: `---