@cotal-ai/cli 0.26.0 → 0.28.0-hack-20260823202734

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.
@@ -2,7 +2,8 @@ import * as p from "@clack/prompts";
2
2
  import { findMesh } from "@cotal-ai/workspace";
3
3
  import { bold, brand, brandBold, dim, ok } from "../lib/theme.js";
4
4
  import { abortIfCancel } from "../lib/cancel.js";
5
- import { candidateTarget, checkDialPolicy, checkEnforcement, checkMode, checkRoot, checkServer, checkTrust, isDir, probeEnforcement, spacesAtRoot, verifyTarget, writeRecord, } from "./meshes-add.js";
5
+ import { readFileSync } from "node:fs";
6
+ import { candidateTarget, checkDialPolicy, checkEnforcement, checkMode, checkRoot, checkServer, checkTrust, checkUserBundle, isDir, persistRemoteUserEntry, probeEnforcement, spacesAtRoot, tlsIntent, verifyTarget, verifyUserExchange, writeRecord, } from "./meshes-add.js";
6
7
  /** The real terminal, via clack. Cancellation (Ctrl-C / Esc) exits here rather than returning a
7
8
  * sentinel the wizard body would have to thread through every branch. */
8
9
  export function clackIO() {
@@ -71,8 +72,9 @@ export async function addWizard(seed, cwd, io = clackIO()) {
71
72
  // Classified as a CANDIDATE here (acceptance granted for the check) so an overlay
72
73
  // address survives the prompt and reaches the question below. Refusing it here made
73
74
  // that question unreachable: the operator could never say yes to something the
74
- // validator had already rejected.
75
- const d = checkDialPolicy(v, true);
75
+ // validator had already rejected. TLS intent comes from the typed scheme — the
76
+ // guided form's one source for it.
77
+ const d = checkDialPolicy(v, { tlsRequired: tlsIntent(v, false), allowUnencryptedOverlay: true });
76
78
  return d.ok ? undefined : d.message.replace(/^✗ /, "");
77
79
  },
78
80
  });
@@ -84,7 +86,7 @@ export async function addWizard(seed, cwd, io = clackIO()) {
84
86
  server = undefined;
85
87
  continue;
86
88
  }
87
- const dial = checkDialPolicy(server, true); // candidate; the ask below decides
89
+ const dial = checkDialPolicy(server, { tlsRequired: tlsIntent(server, false), allowUnencryptedOverlay: true }); // candidate; the ask below decides
88
90
  if (!dial.ok) {
89
91
  io.log.error(dial.message);
90
92
  server = undefined;
@@ -99,7 +101,7 @@ export async function addWizard(seed, cwd, io = clackIO()) {
99
101
  // register an overlay mesh at all, and silently accepting would be the warning-and-continue
100
102
  // shape that was just removed.
101
103
  if (ackedFor !== server) {
102
- const probe = checkDialPolicy(server, true);
104
+ const probe = checkDialPolicy(server, { tlsRequired: tlsIntent(server, false), allowUnencryptedOverlay: true });
103
105
  if (probe.ok && probe.value.residual) {
104
106
  io.log.warn(probe.value.residual);
105
107
  // DEFAULT DENY. This is the one confirmation in the wizard where pressing Enter must not
@@ -115,7 +117,7 @@ export async function addWizard(seed, cwd, io = clackIO()) {
115
117
  }
116
118
  // Re-checked with the REAL answer, so the decision is enforced by the same rule the flag form
117
119
  // uses rather than by the branch above happening to be right.
118
- const settled = checkDialPolicy(server, ackedFor === server);
120
+ const settled = checkDialPolicy(server, { tlsRequired: tlsIntent(server, false), allowUnencryptedOverlay: ackedFor === server });
119
121
  if (!settled.ok) {
120
122
  io.log.error(settled.message);
121
123
  server = undefined;
@@ -186,11 +188,66 @@ export async function addWizard(seed, cwd, io = clackIO()) {
186
188
  message: "That folder holds no credentials for this broker. What next?",
187
189
  options: [
188
190
  { value: "root", label: "Point at a different folder", hint: "one that already holds its credentials" },
191
+ { value: "bundle", label: "It is a hosted user-auth mesh - I have its trust bundle", hint: "a bundle.json exported where the mesh runs" },
189
192
  { value: "cancel", label: "Cancel" },
190
193
  ],
191
194
  });
192
195
  if (next === "cancel")
193
196
  return cancelled(io);
197
+ // THE ONE GUIDED USER-AUTH BRANCH. No rule lives here: the bundle validation, the exchange
198
+ // trust probe, the auth-required PASS, and the record writer are the same functions the flag
199
+ // form calls (meshes-add.ts owns them); this branch only asks for the file and presents
200
+ // failures.
201
+ if (next === "bundle") {
202
+ const path = await io.text({
203
+ message: "Path to the trust bundle (bundle.json)",
204
+ placeholder: "exported where the mesh runs",
205
+ validate: (p) => (p ? undefined : "Required - the bundle carries the pins this registration adopts."),
206
+ });
207
+ let rawBundle;
208
+ try {
209
+ rawBundle = readFileSync(path, "utf8");
210
+ }
211
+ catch (e) {
212
+ io.log.error(`Cannot read ${path} (${e.message})`);
213
+ return cancelled(io, "Nothing was registered.");
214
+ }
215
+ const parsed = checkUserBundle(rawBundle);
216
+ if (!parsed.ok) {
217
+ io.log.error(parsed.message);
218
+ return cancelled(io, "Nothing was registered.");
219
+ }
220
+ const b = parsed.value;
221
+ const userTls = b.tlsRequired || tlsIntent(server, false);
222
+ const userDial = checkDialPolicy(server, { tlsRequired: userTls, allowUnencryptedOverlay: ackedFor === server });
223
+ if (!userDial.ok) {
224
+ io.log.error(userDial.message);
225
+ return cancelled(io, "Nothing was registered.");
226
+ }
227
+ const exch = await verifyUserExchange(b.userAuth.endpoints.url, b.userAuth.idp.issuer);
228
+ if (!exch.ok) {
229
+ io.log.error(exch.message);
230
+ return cancelled(io, "Nothing was registered.");
231
+ }
232
+ const enforce = checkEnforcement("user", enforces, server, b.space, root);
233
+ if (!enforce.ok) {
234
+ io.log.error(enforce.message);
235
+ return cancelled(io, "Nothing was registered.");
236
+ }
237
+ io.note([
238
+ `space ${b.space}`,
239
+ `broker ${server}${userTls ? " (TLS required)" : ""}`,
240
+ `issuer ${b.userAuth.idp.issuer}`,
241
+ `audience ${b.userAuth.idp.audience}`,
242
+ `exchange ${b.userAuth.endpoints?.url}`,
243
+ ].join("\n"), brand("About to record (user-auth, pinned)"));
244
+ const goUser = await io.confirm({ message: "Register this user-auth mesh?" });
245
+ if (!goUser)
246
+ return cancelled(io, "Nothing was registered.");
247
+ persistRemoteUserEntry(b.space, server, root, b, userTls, Boolean(userDial.value.residual));
248
+ io.outro(ok(`Registered "${b.space}"`));
249
+ return true;
250
+ }
194
251
  root = undefined; // ask for a path; never re-infer, or this offers the same dead end again
195
252
  defaultRoot = undefined; // …and never offer the folder we just rejected as the default
196
253
  }
@@ -266,7 +323,7 @@ export async function addWizard(seed, cwd, io = clackIO()) {
266
323
  }
267
324
  // ── 5. verify for real, then confirm ──────────────────────────────────────────────────────────
268
325
  if (!unverified) {
269
- const target = candidateTarget(space, server, root, mode, trust.value);
326
+ const target = candidateTarget(space, server, root, mode, trust.value, tlsIntent(server, false));
270
327
  const spin = io.spinner();
271
328
  spin.start(mode === "auth" ? `Checking this folder's credentials for "${space}"` : `Checking the connection to "${space}"`);
272
329
  const verified = await verifyTarget(target);
@@ -300,6 +357,9 @@ export async function addWizard(seed, cwd, io = clackIO()) {
300
357
  // opt-in replaced, one surface over.
301
358
  const entry = {
302
359
  space, server: server, root, mode, origin: "manual",
360
+ // The guided form's TLS intent is the typed scheme, persisted the same way the flag form
361
+ // persists it — recorded strictness is what the dial policy relaxed on, so it must be carried.
362
+ ...(tlsIntent(server, false) ? { tlsRequired: true } : {}),
303
363
  // From the FINAL classification, never from "the operator accepted something earlier". The
304
364
  // flag form persists `dial.residual` for the same reason: the field is evidence about the
305
365
  // recorded target, and evidence that can detach from its subject is worse than none, because
@@ -1 +1 @@
1
- {"version":3,"file":"meshes-wizard.js","sourceRoot":"","sources":["../../src/commands/meshes-wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meshes-wizard.js","sourceRoot":"","sources":["../../src/commands/meshes-wizard.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,26 @@ export declare const meshesFlags: readonly [{
12
12
  }, {
13
13
  readonly name: "mode";
14
14
  readonly type: "string";
15
- readonly value: "<auth|open>";
16
- readonly description: "add: how the broker authenticates (default: inferred from --root)";
15
+ readonly value: "<auth|open|user>";
16
+ readonly description: "add: how the broker authenticates (default: inferred from --root; user needs --user-auth-file or --from)";
17
+ }, {
18
+ readonly name: "user-auth-file";
19
+ readonly type: "string";
20
+ readonly value: "<bundle.json>";
21
+ readonly description: "add --mode user: the pinned-trust bundle exported where the mesh runs";
22
+ }, {
23
+ readonly name: "from";
24
+ readonly type: "string";
25
+ readonly value: "<https url>";
26
+ readonly description: "add --mode user: fetch the mesh's /.well-known/cotal-mesh discovery document (pins are shown and confirmed)";
17
27
  }, {
18
28
  readonly name: "force";
19
29
  readonly type: "boolean";
20
30
  readonly description: "add: record without verifying, replacing any existing record · rm: drop a running mesh's record";
31
+ }, {
32
+ readonly name: "tls";
33
+ readonly type: "boolean";
34
+ readonly description: "add: require TLS on every connection resolved through this record (a tls:// --server implies it)";
21
35
  }, {
22
36
  readonly name: "allow-unencrypted-overlay";
23
37
  readonly type: "boolean";
@@ -1 +1 @@
1
- {"version":3,"file":"meshes.d.ts","sourceRoot":"","sources":["../../src/commands/meshes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAkC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA8CxG,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;EAMgB,CAAC;AAIzC,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AA2LD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAW/D"}
1
+ {"version":3,"file":"meshes.d.ts","sourceRoot":"","sources":["../../src/commands/meshes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAkC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkDxG,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASgB,CAAC;AAIzC,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5D;AAuVD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAa/D"}
@@ -1,10 +1,11 @@
1
+ import { readFileSync } from "node:fs";
1
2
  import {} from "@cotal-ai/core";
2
3
  import { authDir, clearCurrent, findMesh, getCurrent, loadMeshes, removeMesh, } from "@cotal-ai/workspace";
3
4
  import { c } from "../ui.js";
4
5
  import { pruneStaleMeshes } from "../lib/meshes.js";
5
6
  import { completingFlagValue } from "../lib/completion.js";
6
7
  import { liveMeshOwner } from "./clean.js";
7
- import { candidateTarget, checkDialPolicy, checkEnforcement, checkMode, checkRoot, checkServer, checkTrust, probeEnforcement, spacesAtRoot, verifyTarget, writeRecord, } from "./meshes-add.js";
8
+ import { candidateTarget, checkDialPolicy, checkEnforcement, checkMode, checkRoot, checkServer, checkTrust, checkUserBundle, persistRemoteUserEntry, probeEnforcement, spacesAtRoot, tlsIntent, verifyUserExchange, verifyTarget, writeRecord, } from "./meshes-add.js";
8
9
  import { addWizard, canPrompt } from "./meshes-wizard.js";
9
10
  /**
10
11
  * `cotal meshes` — the registry of meshes this machine can reach, and the two verbs that maintain
@@ -23,8 +24,11 @@ const SUBCOMMANDS = ["list", "add", "rm", "remove"];
23
24
  export const meshesFlags = [
24
25
  { name: "server", type: "string", value: "<url>", description: "add: the mesh's broker URL (required)" },
25
26
  { name: "root", type: "string", value: "<dir>", description: "add: folder holding this mesh's .cotal/auth + .cotal/agents (default: this project)" },
26
- { name: "mode", type: "string", value: "<auth|open>", description: "add: how the broker authenticates (default: inferred from --root)" },
27
+ { name: "mode", type: "string", value: "<auth|open|user>", description: "add: how the broker authenticates (default: inferred from --root; user needs --user-auth-file or --from)" },
28
+ { name: "user-auth-file", type: "string", value: "<bundle.json>", description: "add --mode user: the pinned-trust bundle exported where the mesh runs" },
29
+ { name: "from", type: "string", value: "<https url>", description: "add --mode user: fetch the mesh's /.well-known/cotal-mesh discovery document (pins are shown and confirmed)" },
27
30
  { name: "force", type: "boolean", description: "add: record without verifying, replacing any existing record · rm: drop a running mesh's record" },
31
+ { name: "tls", type: "boolean", description: "add: require TLS on every connection resolved through this record (a tls:// --server implies it)" },
28
32
  { name: "allow-unencrypted-overlay", type: "boolean", description: "add: accept that an overlay address is protected only while its tunnel is up (recorded on the entry)" },
29
33
  ];
30
34
  export async function meshes(args) {
@@ -81,9 +85,14 @@ async function listMeshes() {
81
85
  async function addMesh(positionals, v) {
82
86
  const space = positionals[0];
83
87
  if (positionals.length > 1) {
84
- console.error(c.red("usage: cotal meshes add <space> --server <url> [--root <dir>] [--mode auth|open]"));
88
+ console.error(c.red("usage: cotal meshes add <space> --server <url> [--root <dir>] [--mode auth|open|user]"));
85
89
  process.exit(1);
86
90
  }
91
+ // THE USER ARM — its own path because everything about it inverts the static flow: the server
92
+ // comes from the supplied bundle rather than --server, trust composes against a pinned exchange
93
+ // rather than on-disk material, and the enforcement PASS is the broker's refusal.
94
+ if (v.mode === "user" || v["user-auth-file"] || v.from)
95
+ return addUserMesh(space, v);
87
96
  // GUIDED FORM. A registration needs four facts, three of which the machine can find out — so a
88
97
  // command missing either irreducible one, on a real terminal, is an operator who would rather be
89
98
  // asked than read a usage line. Scripts and agents are unaffected: without a TTY (or with
@@ -105,9 +114,13 @@ async function addMesh(positionals, v) {
105
114
  process.exit(1);
106
115
  }
107
116
  const server = take(checkServer(v.server));
117
+ // The strictness this registration RECORDS — from --tls or a tls:// scheme — and therefore what
118
+ // every dial through the record will enforce. Sourced once, so the dial policy, the candidate
119
+ // probe and the written entry cannot disagree.
120
+ const tlsRequired = tlsIntent(server, Boolean(v.tls));
108
121
  // Above the `--force` branch on purpose: this decides whether credentials may cross the network
109
122
  // to that address at all, which `--force` ("the mesh is down right now") must never waive.
110
- const dial = take(checkDialPolicy(server, Boolean(v["allow-unencrypted-overlay"])));
123
+ const dial = take(checkDialPolicy(server, { tlsRequired, allowUnencryptedOverlay: Boolean(v["allow-unencrypted-overlay"]) }));
111
124
  // A permitted-but-not-guaranteed target is SAID OUT LOUD, never recorded quietly. Today that is
112
125
  // the overlay literal whose protection depends on a tunnel we cannot verify from here; the
113
126
  // operator is the only one who can know whether it is up, so the operator is told.
@@ -115,7 +128,7 @@ async function addMesh(positionals, v) {
115
128
  console.error(c.yellow(`! ${dial.residual}`));
116
129
  const root = take(checkRoot(v.root, process.cwd()));
117
130
  const accounts = take(spacesAtRoot(root));
118
- const mode = take(checkMode(space, root, accounts, v.mode));
131
+ const mode = take(checkMode(space, root, accounts, v.mode, false));
119
132
  if (mode === "open" && accounts.includes(space))
120
133
  console.log(c.dim(`note: ${authDir(root)} holds trust for "${space}", but --mode open records a credless connect`));
121
134
  const auth = take(checkTrust(mode, root, space));
@@ -131,14 +144,14 @@ async function addMesh(positionals, v) {
131
144
  // success line rather than pretending the mesh was checked.
132
145
  if (!v.force) {
133
146
  take(checkEnforcement(mode, await probeEnforcement(server), server, space, root));
134
- const verified = await verifyTarget(candidateTarget(space, server, root, mode, auth));
147
+ const verified = await verifyTarget(candidateTarget(space, server, root, mode, auth, tlsRequired));
135
148
  if (!verified.ok) {
136
149
  console.error(c.red(verified.message));
137
150
  console.error(c.dim("nothing was registered - fix the above, or `--force` to record it without verifying (e.g. the mesh is down right now)"));
138
151
  process.exit(1);
139
152
  }
140
153
  }
141
- const result = writeRecord({ space, server, root, mode, origin: "manual", ...(dial.residual ? { unencryptedOverlay: true } : {}), ts: new Date().toISOString() });
154
+ const result = writeRecord({ space, server, root, mode, origin: "manual", ...(tlsRequired ? { tlsRequired: true } : {}), ...(dial.residual ? { unencryptedOverlay: true } : {}), ts: new Date().toISOString() });
142
155
  console.log(c.green(`✓ registered "${space}"`),
143
156
  // "recorded without verifying" describes THIS registration, not a durable property of the
144
157
  // record: verification is point-in-time — a verified record loses it the moment a port is
@@ -152,6 +165,151 @@ async function addMesh(positionals, v) {
152
165
  if (result.keptCurrent)
153
166
  console.log(c.dim(`current is still "${result.keptCurrent}" - \`cotal use ${space}\` to switch`));
154
167
  }
168
+ /** `cotal meshes add <space> --mode user` — register a REMOTE user-auth mesh from supplied pinned
169
+ * trust. The pins are never guessed: they arrive in a bundle exported where the mesh runs
170
+ * (`--user-auth-file`), or in its HTTPS discovery document (`--from`), which is fetched, shown,
171
+ * and explicitly confirmed. Verification is the user arm's own: the pinned exchange must answer
172
+ * `/health` + `/jwks` as the pinned issuer, and the broker's auth-required refusal of a credless
173
+ * probe is the PASS. The registration still goes THROUGH the dial-policy fence — never around
174
+ * it — with the bundle's recorded strictness as the policy input. */
175
+ async function addUserMesh(spaceArg, v) {
176
+ if (v.mode !== undefined && v.mode !== "user") {
177
+ console.error(c.red(`✗ --user-auth-file/--from register a user-auth mesh - they cannot be combined with --mode ${v.mode}`));
178
+ process.exit(1);
179
+ }
180
+ if (v["user-auth-file"] && v.from) {
181
+ console.error(c.red("✗ pass either --user-auth-file or --from, not both - they are two sources for the same pinned trust"));
182
+ process.exit(1);
183
+ }
184
+ // No source supplied at all: this is the old blanket refusal's successor, and it must carry the
185
+ // way through. checkMode owns the sentence so both front ends refuse identically.
186
+ if (!v["user-auth-file"] && !v.from) {
187
+ const refusal = checkMode(spaceArg ?? "", "", [], "user", false);
188
+ console.error(c.red(refusal.ok ? "✗ --mode user needs --user-auth-file <bundle.json> or --from <https url>" : refusal.message));
189
+ process.exit(1);
190
+ }
191
+ // ── the pins ────────────────────────────────────────────────────────────────────────────────
192
+ let raw;
193
+ if (v["user-auth-file"]) {
194
+ try {
195
+ raw = readFileSync(v["user-auth-file"], "utf8");
196
+ }
197
+ catch (e) {
198
+ console.error(c.red(`✗ cannot read --user-auth-file ${v["user-auth-file"]} (${e.message})`));
199
+ process.exit(1);
200
+ }
201
+ }
202
+ else {
203
+ // HTTPS ONLY. The document IS the trust being adopted; fetching it in plaintext would let the
204
+ // network choose the pins, which is the exact failure pinning exists to prevent.
205
+ let disco;
206
+ try {
207
+ disco = new URL(v.from);
208
+ }
209
+ catch {
210
+ console.error(c.red(`✗ --from is not a URL`));
211
+ process.exit(1);
212
+ }
213
+ if (disco.protocol !== "https:") {
214
+ console.error(c.red(`✗ --from must be an https:// URL - the discovery document carries the trust pins this registration adopts, and a plaintext fetch lets the network choose them`));
215
+ process.exit(1);
216
+ }
217
+ // CONSENT BEFORE THE NETWORK. Fetching first meant a bare `--from <url>` reached out to a
218
+ // host the operator had not yet agreed to talk to, and on a pipe it did so with no way to
219
+ // agree at all. Ask for the address itself first; the pins fetched from it are confirmed
220
+ // separately below.
221
+ {
222
+ const { canPrompt, clackIO } = await import("./meshes-wizard.js");
223
+ if (!canPrompt()) {
224
+ console.error(c.red("✗ --from needs a terminal to display and confirm the fetched pins - in a script, export the bundle where the mesh runs and pass it with --user-auth-file"));
225
+ process.exit(1);
226
+ }
227
+ const goFetch = await clackIO().confirm({ message: `Fetch trust pins from ${disco.origin}?`, initialValue: false });
228
+ if (!goFetch) {
229
+ console.error(c.dim("nothing was fetched, nothing was registered"));
230
+ process.exit(1);
231
+ }
232
+ }
233
+ try {
234
+ // `redirect: "manual"`: a 302 can walk an https fetch down to http or onto another host,
235
+ // and the document IS the trust. A redirect is refused, never followed.
236
+ const res = await fetch(disco, { redirect: "manual", signal: AbortSignal.timeout(10_000) });
237
+ if (res.status >= 300 && res.status < 400) {
238
+ console.error(c.red(`✗ ${disco} answered ${res.status} (a redirect to ${JSON.stringify(res.headers.get("location") ?? "")}) - a redirect can move the fetch onto plaintext or onto another host, so it is refused rather than followed; publish the discovery document at the URL you pass`));
239
+ process.exit(1);
240
+ }
241
+ if (!res.ok) {
242
+ console.error(c.red(`✗ ${disco} answered ${res.status} - no discovery document there`));
243
+ process.exit(1);
244
+ }
245
+ raw = await res.text();
246
+ }
247
+ catch (e) {
248
+ console.error(c.red(`✗ could not fetch ${disco} (${e.message})`));
249
+ process.exit(1);
250
+ }
251
+ }
252
+ const bundle = take(checkUserBundle(raw));
253
+ const space = spaceArg ?? bundle.space;
254
+ if (spaceArg && bundle.space !== spaceArg) {
255
+ console.error(c.red(`✗ the bundle is for space "${bundle.space}" but the command names "${spaceArg}" - a bundle registers the space it was exported for`));
256
+ process.exit(1);
257
+ }
258
+ // A FETCHED document is displayed and explicitly confirmed before anything trusts it: the
259
+ // operator, not the network, adopts the pins. A file the operator already holds needs no
260
+ // confirmation — supplying it is the consent.
261
+ if (v.from) {
262
+ const { canPrompt, clackIO } = await import("./meshes-wizard.js");
263
+ if (!canPrompt()) {
264
+ console.error(c.red("✗ --from needs a terminal to display and confirm the fetched pins - in a script, export the bundle where the mesh runs and pass it with --user-auth-file"));
265
+ process.exit(1);
266
+ }
267
+ const io = clackIO();
268
+ io.note([
269
+ `space ${bundle.space}`,
270
+ `broker ${bundle.server}${bundle.tlsRequired ? " (TLS required)" : ""}`,
271
+ `IdP ${bundle.userAuth.idp.url}`,
272
+ `issuer ${bundle.userAuth.idp.issuer}`,
273
+ `audience ${bundle.userAuth.idp.audience}`,
274
+ `exchange ${bundle.userAuth.endpoints?.url}`,
275
+ ].join("\n"), "Pins fetched - trust them only if they match what the mesh's operator published");
276
+ const goOn = await io.confirm({ message: "Adopt these pins and register the mesh?", initialValue: false });
277
+ if (!goOn) {
278
+ console.error(c.dim("nothing was registered"));
279
+ return;
280
+ }
281
+ }
282
+ // ── the same fences as every other registration ──────────────────────────────────────────
283
+ const server = take(checkServer(v.server ?? bundle.server));
284
+ // The bundle's recorded strictness is a TLS-intent source of its own, alongside --tls and the
285
+ // scheme: the export states what the mesh's transport requires, and the record must carry it.
286
+ const tlsRequired = bundle.tlsRequired || tlsIntent(server, Boolean(v.tls));
287
+ const dial = take(checkDialPolicy(server, { tlsRequired, allowUnencryptedOverlay: Boolean(v["allow-unencrypted-overlay"]) }));
288
+ if (dial.residual)
289
+ console.error(c.yellow(`! ${dial.residual}`));
290
+ const root = take(checkRoot(v.root, process.cwd()));
291
+ take(checkMode(space, root, [], "user", true));
292
+ const existing = findMesh(space);
293
+ if (existing && !v.force) {
294
+ console.error(c.red(`✗ "${space}" is already registered at ${existing.server} (${existing.root}) - \`cotal meshes rm ${space}\` first, or --force to replace it`));
295
+ process.exit(1);
296
+ }
297
+ // ── the user arm's verification ────────────────────────────────────────────────────────────────
298
+ // Trust: the pinned exchange must answer as itself. Enforcement: the broker must REFUSE a bare
299
+ // connect — auth-required is the pass, because a user-mode target has no probe credential by
300
+ // design (preflightTarget refuses user targets outright for exactly that reason). Both run even
301
+ // under --force: unlike a static mesh, there is no "register it while it is down" story here —
302
+ // an unverifiable pin set is not a record worth writing.
303
+ take(await verifyUserExchange(bundle.userAuth.endpoints.url, bundle.userAuth.idp.issuer));
304
+ take(checkEnforcement("user", await probeEnforcement(server), server, space, root));
305
+ const result = persistRemoteUserEntry(space, server, root, bundle, tlsRequired, Boolean(dial.residual));
306
+ console.log(c.green(`✓ registered "${space}"`), c.dim(`${server} user ${root}`));
307
+ console.log(c.dim(` pinned issuer ${bundle.userAuth.idp.issuer} · exchange ${bundle.userAuth.endpoints?.url}`));
308
+ if (result.adoptedCurrent)
309
+ console.log(c.dim(`it is now the default mesh - \`cotal spawn\` from any directory joins it`));
310
+ else if (result.keptCurrent)
311
+ console.log(c.dim(`current is still "${result.keptCurrent}" - \`cotal use ${space}\` to switch`));
312
+ }
155
313
  /** Take a rule's value, or print its sentence and exit — the flag form's whole error posture. */
156
314
  function take(r) {
157
315
  if (r.ok)
@@ -215,7 +373,11 @@ async function removeMeshes(names, v) {
215
373
  export function meshesComplete(argv) {
216
374
  const flag = completingFlagValue(argv, meshesFlags);
217
375
  if (flag?.name === "mode")
218
- return { items: [{ value: "auth" }, { value: "open" }], directive: "nofiles" };
376
+ return { items: [{ value: "auth" }, { value: "open" }, { value: "user" }], directive: "nofiles" };
377
+ if (flag?.name === "user-auth-file")
378
+ return { items: [], directive: "default" }; // a file
379
+ if (flag?.name === "from")
380
+ return { items: [], directive: "nofiles" };
219
381
  if (flag?.name === "root")
220
382
  return { items: [], directive: "default" }; // a directory
221
383
  if (flag?.name === "server")
@@ -1 +1 @@
1
- {"version":3,"file":"meshes.js","sourceRoot":"","sources":["../../src/commands/meshes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meshes.js","sourceRoot":"","sources":["../../src/commands/meshes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../../src/commands/personas.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAwBxB,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB9D;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CA8BjE"}
1
+ {"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../../src/commands/personas.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAwBxB,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB9D;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CA+BjE"}
@@ -48,6 +48,7 @@ export function personasComplete(argv) {
48
48
  { name: "model", type: "string" },
49
49
  { name: "prompt", type: "string" },
50
50
  { name: "from", type: "string" },
51
+ { name: "subscribe", type: "string" },
51
52
  { name: "verbose", type: "boolean", short: "v" },
52
53
  { name: "running", type: "boolean" },
53
54
  { name: "force", type: "boolean" },
@@ -198,7 +199,16 @@ function create(name, v) {
198
199
  console.error(c.red("persona body is empty"));
199
200
  process.exit(1);
200
201
  }
201
- const def = { name, role: v.role, model: v.model, persona };
202
+ // The channels it reads are stated, never guessed: `--subscribe a,b` or `--subscribe ""` for an
203
+ // agent that reads none. There is no default, because the two possible ones are both wrong - a
204
+ // channel the author did not ask for, or an empty set indistinguishable from forgetting to say.
205
+ if (v.subscribe === undefined) {
206
+ console.error(c.red("--subscribe is required: name the channels this persona reads"));
207
+ console.error(c.dim('e.g. --subscribe general or --subscribe "" for an agent reachable only by direct message'));
208
+ process.exit(1);
209
+ }
210
+ const subscribe = v.subscribe.split(",").map((s) => s.trim()).filter(Boolean);
211
+ const def = { name, role: v.role, model: v.model, persona, subscribe };
202
212
  saveAtomic(path, def);
203
213
  console.log(c.green(`✓ wrote persona "${name}"`));
204
214
  console.log(c.dim(`${path}\nspawn it: cotal spawn ${name}${v.role ? ` --role ${v.role}` : ""}`));
@@ -237,7 +247,7 @@ function notFound(name, path) {
237
247
  }
238
248
  function usage() {
239
249
  console.error(c.red("usage: cotal personas <list [--verbose] [--running] | show <name> | edit <name> | " +
240
- 'new <name> (--prompt <text> | --from <file|->) [--role <r>] [--model <m>] [--force] | rm <name> --force>'));
250
+ 'new <name> (--prompt <text> | --from <file|->) --subscribe <a,b|""> [--role <r>] [--model <m>] [--force] | rm <name> --force>'));
241
251
  process.exit(1);
242
252
  }
243
253
  //# sourceMappingURL=personas.js.map