@cotal-ai/manager 0.9.1 → 0.10.1

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.
@@ -1,27 +1,2 @@
1
- import { type Profile } from "@cotal-ai/core";
2
- type Values = Record<string, string | undefined>;
3
- /** Resolve which running mesh a control command (`ps`/`start`/`stop`/`attach`) targets, with the
4
- * same precedence + preflight as the rest of the CLI ({@link resolveMeshTarget} / `connectOrExit`):
5
- * 1. explicit `--creds` → a raw off-registry connection (plain reachability, no prune). Space
6
- * defaults to this folder's auth-space via {@link spaceFor} (a deliberate manager-command
7
- * choice — more correct than `DEFAULT_SPACE` for a non-default-space project, and what these
8
- * commands did before — NOT `connectOrExit`'s `DEFAULT_SPACE`).
9
- * 2. `--server` + an UNregistered `--space` → a raw OPEN off-registry connection, no creds (the
10
- * same escape hatch `connectOrExit` has; plain reachability, no prune).
11
- * 3. otherwise the registry/`current` resolver, with the same stale-prune + friendly preflight —
12
- * so `cotal ps --space <name>` reaches that mesh's RECORDED broker instead of silently assuming
13
- * `DEFAULT_SERVER` (:4222); `--server` overrides. The tier-scoped caller cred (`profile`) is minted
14
- * from the RESOLVED mesh's own recorded root (so `--space other` loads other's auth, guarded by
15
- * `targetFromEntry`'s `auth.space === m.space` check), or none for an open mesh.
16
- * Shares `@cotal-ai/workspace`'s `preflightTarget`/`pruneStaleMeshes` with the CLI, so a dead/mismatched entry gets
17
- * the same one-sentence message + stale-prune the rest of the CLI gives — not a raw NATS trace. The
18
- * pre-resolution sweep runs only for bare / `--server`-only resolution; an explicit `--space` is
19
- * resolved + preflighted directly (so a `--server` override can recover a dead-recorded mesh).
20
- * `ask()` can therefore trust the target is reachable + auth-valid. */
21
- export declare function resolveManagerTarget(v: Values, profile: Profile): Promise<{
22
- space: string;
23
- server: string;
24
- creds?: string;
25
- }>;
26
1
  export {};
27
2
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAcL,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AAqBxB,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AA+BjD;;;;;;;;;;;;;;;;;wEAiBwE;AACxE,wBAAsB,oBAAoB,CACxC,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC5D"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":""}
package/dist/commands.js CHANGED
@@ -1,266 +1,28 @@
1
- import { parseArgs } from "node:util";
2
- import { readFileSync } from "node:fs";
3
- import { join } from "node:path";
4
- import { CotalEndpoint, isReachable, DEFAULT_SERVER, DEFAULT_SPACE, mintCreds, newIdentity, registry, probeConnect, CONTROL_PRIVILEGED, CONTROL_ADMIN, } from "@cotal-ai/core";
5
- import { authDir, findCotalRoot, loadSpaceAuth, findMesh, isWorkspaceTargetError, resolveMeshTarget, preflightTarget, pruneStaleMeshes, removeMesh, renderWorkspaceError, } from "@cotal-ai/workspace";
1
+ import { isReachable, DEFAULT_SERVER, DEFAULT_SPACE, registry, } from "@cotal-ai/core";
2
+ import { authDir, findCotalRoot, loadSpaceAuth } from "@cotal-ai/workspace";
6
3
  import { Manager } from "./manager.js";
7
4
  import { loadRoster } from "./roster.js";
8
5
  import { loadLaunchSpec, materializePersona, launchAgentToStartOpts } from "./launch.js";
9
6
  import {} from "./runtime/index.js";
10
- import { attachClient } from "./attach-client.js";
11
7
  import { c } from "./ui.js";
12
8
  /** The space to operate on: explicit `--space`, else this folder's `.cotal/auth` space, else the
13
9
  * default — so a manually-run manager matches the folder's mesh instead of assuming the default. */
14
10
  function spaceFor(v) {
15
11
  return v.space ?? loadSpaceAuth(authDir(findCotalRoot()))?.space ?? DEFAULT_SPACE;
16
12
  }
17
- /** Raw off-registry reachability — one plain sentence, never a registry/stale-entry message and
18
- * never a prune. Used by the `--creds` and `--server`+unregistered-`--space` escape hatches, which
19
- * connect to a broker the operator named, not the registry. The manager's copy of the CLI's
20
- * `reachableOrExit` (an implementation can't import another); the wording lives in `@cotal-ai/workspace`. */
21
- async function reachableOrExit(server, auth = {}) {
22
- const probe = await probeConnect(server, auth);
23
- if (probe.ok)
24
- return;
25
- console.error(c.red(renderWorkspaceError({ kind: "reachable", reason: probe.reason, server })));
26
- process.exit(1);
27
- }
28
- /** Confirm a registry-resolved mesh is up + accepts these creds — replacing the raw NATS auth trace
29
- * with one sentence and pruning a stale entry. The manager's copy of the CLI's `preflightOrExit`:
30
- * the probe/classify/render/prune-decision live in `@cotal-ai/workspace` (`preflightTarget`); this owns
31
- * the I/O — it acts on the prune decision, colours, and exits. */
32
- async function preflightOrExit(target, probeCreds) {
33
- const r = await preflightTarget(target, probeCreds);
34
- if (r.ok)
35
- return;
36
- if (r.prune)
37
- removeMesh(target.space);
38
- console.error(c.red(renderWorkspaceError({ kind: "preflight", failure: r.kind, target, pruned: r.prune })));
39
- process.exit(1);
40
- }
41
- /** Resolve which running mesh a control command (`ps`/`start`/`stop`/`attach`) targets, with the
42
- * same precedence + preflight as the rest of the CLI ({@link resolveMeshTarget} / `connectOrExit`):
43
- * 1. explicit `--creds` → a raw off-registry connection (plain reachability, no prune). Space
44
- * defaults to this folder's auth-space via {@link spaceFor} (a deliberate manager-command
45
- * choice — more correct than `DEFAULT_SPACE` for a non-default-space project, and what these
46
- * commands did before — NOT `connectOrExit`'s `DEFAULT_SPACE`).
47
- * 2. `--server` + an UNregistered `--space` → a raw OPEN off-registry connection, no creds (the
48
- * same escape hatch `connectOrExit` has; plain reachability, no prune).
49
- * 3. otherwise the registry/`current` resolver, with the same stale-prune + friendly preflight —
50
- * so `cotal ps --space <name>` reaches that mesh's RECORDED broker instead of silently assuming
51
- * `DEFAULT_SERVER` (:4222); `--server` overrides. The tier-scoped caller cred (`profile`) is minted
52
- * from the RESOLVED mesh's own recorded root (so `--space other` loads other's auth, guarded by
53
- * `targetFromEntry`'s `auth.space === m.space` check), or none for an open mesh.
54
- * Shares `@cotal-ai/workspace`'s `preflightTarget`/`pruneStaleMeshes` with the CLI, so a dead/mismatched entry gets
55
- * the same one-sentence message + stale-prune the rest of the CLI gives — not a raw NATS trace. The
56
- * pre-resolution sweep runs only for bare / `--server`-only resolution; an explicit `--space` is
57
- * resolved + preflighted directly (so a `--server` override can recover a dead-recorded mesh).
58
- * `ask()` can therefore trust the target is reachable + auth-valid. */
59
- export async function resolveManagerTarget(v, profile) {
60
- if (v.creds) {
61
- const server = v.server ?? DEFAULT_SERVER;
62
- const creds = readFileSync(v.creds, "utf8");
63
- await reachableOrExit(server, { creds });
64
- return { space: spaceFor(v), server, creds };
65
- }
66
- // A raw OPEN off-registry mesh: explicit `--server` + a `--space` that isn't registered. Naming
67
- // both is as deliberate as `--creds`, but an open broker has no creds to pass — connect bare,
68
- // off-registry (no registry lookup, no prune). Mirrors `connectOrExit`'s same-shaped escape hatch;
69
- // a registered `--space` still goes through the resolver below (which honors `--server` as override).
70
- if (v.server && v.space && !findMesh(v.space)) {
71
- await reachableOrExit(v.server, {});
72
- return { space: v.space, server: v.server, creds: undefined };
73
- }
74
- // Sweep dead entries before resolving ONLY when we must CHOOSE one (bare / `--server`-only). An
75
- // explicit `--space` names its target, so pre-pruning would erase a dead-recorded mesh that the
76
- // operator is recovering with a live `--server` override — resolve it and let preflight verify +
77
- // prune-on-dead (with the friendly message), honoring the override. Without `--space`, a dead
78
- // entry must not be offered, so the sweep stays.
79
- if (!v.space)
80
- await pruneStaleMeshes();
81
- let target;
82
- try {
83
- target = resolveMeshTarget(process.cwd(), { server: v.server, space: v.space });
84
- }
85
- catch (e) {
86
- if (isWorkspaceTargetError(e)) {
87
- console.error(c.red(renderWorkspaceError({ kind: "target", error: e })));
88
- process.exit(1);
89
- }
90
- throw e;
91
- }
92
- const creds = target.auth ? await mintCreds(target.auth, newIdentity(), profile) : undefined;
93
- await preflightOrExit(target, creds);
94
- return { space: target.space, server: target.server, creds };
95
- }
96
- function parse(argv) {
97
- const { values, positionals } = parseArgs({
98
- args: argv,
99
- allowPositionals: true,
100
- options: {
101
- space: { type: "string" },
102
- server: { type: "string" },
103
- name: { type: "string" },
104
- role: { type: "string" },
105
- agent: { type: "string" },
106
- config: { type: "string" },
107
- model: { type: "string" }, // start: model override, wins over the agent file's `model:`
108
- resume: { type: "string" }, // start: fork an existing session id into the mesh (host-local; claude only)
109
- roster: { type: "string" },
110
- creds: { type: "string" },
111
- runtime: { type: "string" }, // supervise: force pty | tmux | cmux (default pty)
112
- "console-port": { type: "string" },
113
- drive: { type: "boolean" },
114
- transcript: { type: "boolean" },
115
- "no-transcript": { type: "boolean" },
116
- spawn: { type: "string" }, // comma-separated agent names to pre-spawn at startup
117
- launch: { type: "string" }, // supervise: a resolved mesh-manifest launch spec (cotal up -f / spawn -f)
118
- cwd: { type: "string" }, // working directory to root the spawned agent at
119
- },
120
- });
121
- // These commands are flags-only — reject stray positionals instead of silently ignoring them
122
- // (e.g. `cotal supervise up`, fat-fingering `cotal up`).
123
- if (positionals.length) {
124
- const x = positionals[0];
125
- const hint = x === "up" ? " — did you mean `cotal up`?" : x === "go" ? " — did you mean `cotal go`?" : "";
126
- console.error(c.red(`✗ unexpected argument: ${x}${hint}`));
127
- process.exit(1);
128
- }
129
- return values;
130
- }
131
- /** Connect a short-lived client with the resolved creds, send one control request to the manager,
132
- * disconnect. The target is already reachability- + auth-preflighted by {@link resolveManagerTarget}
133
- * (which prints the friendly message + prunes on failure), so this connects straight through. `tier`
134
- * picks the control subject: privileged for start/ps; admin for the operator's cross-agent ops
135
- * (stop/attach/purge), which the manager refuses on the privileged subject for a non-owner. `creds`
136
- * is the tier-scoped caller cred resolved by {@link resolveManagerTarget} (`control-caller-privileged`
137
- * for start/ps, `control-caller-admin` for stop/attach — each holds ONLY its own tier's pub grant, so
138
- * `tier` here matches the cred the caller minted), or undefined on an open mesh. */
139
- async function ask(space, server, op, args, creds, tier = CONTROL_PRIVILEGED) {
140
- const ep = new CotalEndpoint({
141
- space,
142
- servers: server,
143
- creds,
144
- channels: [],
145
- consume: false, // request/reply only — binds no consumers (and under auth has no pre-created DM durable)
146
- registerPresence: false,
147
- watchPresence: false,
148
- card: { name: "cli", kind: "endpoint" },
149
- });
150
- ep.on("error", (e) => console.error(c.red("! " + e.message)));
151
- await ep.start();
152
- try {
153
- return await ep.requestControl(tier, { op, args });
154
- }
155
- catch (e) {
156
- return { ok: false, error: `no manager reachable (${e.message})` };
157
- }
158
- finally {
159
- await ep.stop();
160
- }
161
- }
162
- function failIfNotOk(reply) {
163
- if (!reply.ok) {
164
- console.error(c.red(`✗ ${reply.error ?? "error"}`));
165
- process.exit(1);
166
- }
167
- }
168
- async function start(argv) {
169
- const v = parse(argv);
170
- if (!v.name) {
171
- console.error(c.red("--name is required"));
172
- process.exit(1);
173
- }
174
- // `--resume ""` asked to resume but named no session — fail loud, don't silently start fresh.
175
- if (v.resume !== undefined && !v.resume.trim()) {
176
- console.error(c.red("--resume needs a session id (got an empty value)"));
177
- process.exit(1);
178
- }
179
- const t = await resolveManagerTarget(v, "control-caller-privileged");
180
- const reply = await ask(t.space, t.server, "start", {
181
- name: v.name,
182
- role: v.role,
183
- agent: v.agent,
184
- config: v.config,
185
- model: v.model,
186
- resume: v.resume, // fork an existing session into the mesh (host-local id; caveated for detached start — see docs)
187
- // Opt-in: only sent when `--transcript` is given; absent => the daemon's default (mirror off).
188
- transcript: v.transcript ? true : undefined,
189
- cwd: v.cwd,
190
- }, t.creds);
191
- failIfNotOk(reply);
192
- const d = reply.data;
193
- console.log(c.green(`✓ started ${c.bold(d.name)}`) +
194
- c.dim(` (${d.role ?? "no role"} · ${d.agent} · ${d.mode})`));
195
- }
196
- async function stop(argv) {
197
- const v = parse(argv);
198
- if (!v.name) {
199
- console.error(c.red("--name is required"));
200
- process.exit(1);
201
- }
202
- // Operator stop is a cross-agent (admin) op — the CLI operator isn't the agent's spawner, so the
203
- // privileged subject would reject it; the admin tier reaches any agent. The scoped `control-caller-admin`
204
- // cred holds ONLY `ctl.<admin>.<id>` (that IS the cross-agent authority — the manager doesn't re-check
205
- // the caller), so it reaches this op and nothing else.
206
- const t = await resolveManagerTarget(v, "control-caller-admin");
207
- const reply = await ask(t.space, t.server, "stop", {
208
- name: v.name,
209
- }, t.creds, CONTROL_ADMIN);
210
- failIfNotOk(reply);
211
- console.log(c.dim(`✓ stopped ${v.name}`));
212
- }
213
- async function ps(argv) {
214
- const v = parse(argv);
215
- const t = await resolveManagerTarget(v, "control-caller-privileged");
216
- const reply = await ask(t.space, t.server, "ps", undefined, t.creds);
217
- failIfNotOk(reply);
218
- const rows = reply.data ?? [];
219
- if (!rows.length) {
220
- console.log(c.dim("(no managed agents)"));
221
- return;
222
- }
223
- for (const r of rows) {
224
- const status = r.mesh === "absent"
225
- ? c.yellow("starting…")
226
- : r.mesh === "offline"
227
- ? c.dim("offline")
228
- : r.mesh === "working"
229
- ? c.green("working")
230
- : r.mesh === "waiting"
231
- ? c.yellow("waiting")
232
- : c.cyan(r.mesh);
233
- console.log(`${c.bold(r.name)}${r.role ? c.dim("/" + r.role) : ""} ${c.dim(r.agent + " · " + r.mode)} ${status}`);
234
- }
235
- }
236
- async function attach(argv) {
237
- const v = parse(argv);
238
- if (!v.name) {
239
- console.error(c.red("--name is required"));
240
- process.exit(1);
241
- }
242
- // Operator attach is a cross-agent (admin) op — same reasoning as stop (the operator isn't the
243
- // spawner; admin reaches any agent). Scoped `control-caller-admin`: ctl.<admin> only.
244
- const t = await resolveManagerTarget(v, "control-caller-admin");
245
- const reply = await ask(t.space, t.server, "attach", {
246
- name: v.name,
247
- }, t.creds, CONTROL_ADMIN);
248
- failIfNotOk(reply);
249
- const { ws } = reply.data;
250
- console.error(c.dim(`attached to ${v.name} — Ctrl-] to detach`));
251
- await attachClient(ws);
252
- console.error(c.dim(`\ndetached from ${v.name}`));
253
- }
254
13
  /** Run a manager daemon in this process (the long-lived supervisor), then block.
255
14
  * `pty` ships with the manager; `tmux` and `cmux` need their integration imported by
256
- * the composition root (the `cotal` binary does). Stays alive until SIGINT/SIGTERM. */
15
+ * the composition root (the `cotal` binary does). Stays alive until SIGINT/SIGTERM.
16
+ *
17
+ * The operator CLIENTS of this daemon — detached launch (`cotal spawn --detach`), `stop`, `ps`,
18
+ * `attach` — live in `@cotal-ai/cli` since stage 2a of the CLI rework: they are thin control-plane
19
+ * request/reply commands, not daemon code. This package registers only the daemon runner. */
257
20
  // `--runtime` forces the manager runtime; honored only on the `supervise` path (default
258
21
  // pty). `cmux` gives each teammate its own cmux tab — `cotal supervise --runtime cmux` is
259
- // the cmux-tab manager. The session machinery launches it with `--runtime cmux --space <space>`
260
- // contiguous, which is what `cmuxManagerRunning` pgreps for.
22
+ // the cmux-tab manager.
261
23
  const RUNTIME_OVERRIDES = ["pty", "tmux", "cmux"];
262
- async function runManager(argv, defaultRuntime) {
263
- const v = parse(argv);
24
+ async function runManager(args, defaultRuntime) {
25
+ const v = args.values;
264
26
  let runtime = defaultRuntime;
265
27
  if (defaultRuntime === "auto" && v.runtime) {
266
28
  if (!RUNTIME_OVERRIDES.includes(v.runtime)) {
@@ -295,13 +57,13 @@ async function runManager(argv, defaultRuntime) {
295
57
  console.log(c.green("✓ manager up") +
296
58
  c.dim(` (space ${space} · ${mgr.runtimeKind})`) +
297
59
  `\n console: ${mgr.consoleUrl}` +
298
- c.dim("\n spawn: cotal start --name <persona> · stop: cotal stop --name <n> (Ctrl-C to shut down)"));
60
+ c.dim("\n spawn: cotal spawn --detach <persona> · stop: cotal stop --name <n> (Ctrl-C to shut down)"));
299
61
  // Register shutdown handlers before any spawning, so a Ctrl-C during the (possibly slow,
300
62
  // staggered) boot tears the manager and its spawned teammates down rather than orphaning them.
301
63
  const shutdown = () => void mgr.stop().then(() => process.exit(0));
302
64
  process.on("SIGINT", shutdown);
303
65
  process.on("SIGTERM", shutdown);
304
- // Declarative boot: bring up each rostered agent through the same spawn path as `start`.
66
+ // Declarative boot: bring up each rostered agent through the same spawn path as a detached spawn.
305
67
  // A failed entry is logged but non-fatal — healthy agents stay up and the operator can
306
68
  // fix the roster without the supervisor crash-looping.
307
69
  for (const entry of roster) {
@@ -366,44 +128,24 @@ async function runManager(argv, defaultRuntime) {
366
128
  }
367
129
  await new Promise(() => { });
368
130
  }
369
- /** The manager's control-plane commands the `supervise` daemon runner plus thin NATS
370
- * request/reply clients that drive a running manager. Self-registered on import; the `cotal`
371
- * binary resolves them from the registry. */
131
+ /** The manager's one command: the `supervise` daemon runner. Self-registered on import; the
132
+ * `cotal` binary resolves it from the registry. */
372
133
  const managerCommands = [
373
134
  {
374
135
  kind: "command",
375
136
  name: "supervise",
376
137
  group: "Manager",
377
138
  summary: "run a manager — [--runtime <pty|tmux|cmux>] (default pty; tmux/cmux are explicit-only, each teammate in its own window/tab) [--space <s>] [--server <url>] [--console-port <n>] [--roster <file>] [--launch <spec>]",
378
- run: (argv) => runManager(argv, "auto"),
379
- },
380
- {
381
- kind: "command",
382
- name: "start",
383
- group: "Control plane",
384
- summary: "ask the manager to spawn a persona — --name <persona> [--role <r>] [--agent <a>] [--config <file>] [--model <m>] [--cwd <dir>] [--resume <id> (pair with --cwd)] (loads .cotal/agents/<persona>.md; the peer joins under its name:)",
385
- run: start,
386
- },
387
- {
388
- kind: "command",
389
- name: "stop",
390
- group: "Control plane",
391
- summary: "ask the manager to stop an agent — --name <n>",
392
- run: stop,
393
- },
394
- {
395
- kind: "command",
396
- name: "ps",
397
- group: "Control plane",
398
- summary: "list managed agents + their mesh status",
399
- run: ps,
400
- },
401
- {
402
- kind: "command",
403
- name: "attach",
404
- group: "Control plane",
405
- summary: "stream + drive an agent's terminal (pty runtime) — --name <n>",
406
- run: attach,
139
+ flags: [
140
+ { name: "space", type: "string", value: "<s>", description: "space to supervise (default: this folder's auth space)" },
141
+ { name: "server", type: "string", value: "<url>", description: "broker URL (default: the local mesh)" },
142
+ { name: "runtime", type: "string", value: "<pty|tmux|cmux>", description: "agent runtime (default pty; tmux/cmux are explicit-only)" },
143
+ { name: "console-port", type: "string", value: "<n>", description: "protocol-console port" },
144
+ { name: "roster", type: "string", value: "<file>", description: "declarative roster to boot at startup" },
145
+ { name: "launch", type: "string", value: "<spec>", description: "resolved mesh-manifest launch spec (cotal up -f / spawn -f)" },
146
+ { name: "spawn", type: "string", value: "<names>", description: "comma-separated personas to pre-spawn at startup" },
147
+ ],
148
+ run: (args) => runManager(args, "auto"),
407
149
  },
408
150
  ];
409
151
  registry.register(...managerCommands);
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./commands.js";
2
- export { Manager, type ManagerOptions } from "./manager.js";
2
+ export { Manager, READINESS_TIMEOUT_MS, type ManagerOptions } from "./manager.js";
3
3
  export { createRuntime } from "./runtime/index.js";
4
4
  export type { Runtime, AgentHandle, AttachSession, RuntimeKind, RuntimeMode } from "./runtime/index.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import "./commands.js"; // self-registers the control-plane commands on import
2
- export { Manager } from "./manager.js";
2
+ export { Manager, READINESS_TIMEOUT_MS } from "./manager.js";
3
3
  export { createRuntime } from "./runtime/index.js";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAuB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC,CAAC,sDAAsD;AAE9E,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/launch.d.ts CHANGED
@@ -10,16 +10,17 @@ export declare function loadLaunchSpec(path: string): MeshLaunchSpec;
10
10
  * applies, and the spec's self-declared `runId` must match the requested one. */
11
11
  export declare function launchSpecForRun(root: string, runId: string): MeshLaunchSpec;
12
12
  /** Materialize one resolved agent's persona to a transient file the connector reads, and return its
13
- * path. Carries only what a connector needs (identity/role/model/description + body) plus a loud
13
+ * path. Carries only what a connector needs (identity/role/model/variant/description + body) plus a loud
14
14
  * generated-artifact header — never ACL/capability frontmatter (creds come from the spec's policy). */
15
15
  export declare function materializePersona(root: string, runId: string, a: MeshLaunchAgent): string;
16
- /** Build the manager spawn opts for a launch agent: identity/role/model + the resolved object
16
+ /** Build the manager spawn opts for a launch agent: identity/role/model/variant + the resolved object
17
17
  * (which carries the ACL authority) + the materialized configPath. */
18
18
  export declare function launchAgentToStartOpts(a: MeshLaunchAgent, configPath: string): {
19
19
  name: string;
20
20
  agent: string;
21
21
  role?: string;
22
22
  model?: string;
23
+ variant?: string;
23
24
  config: string;
24
25
  resolved: MeshLaunchAgent;
25
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgG,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAwCzK;qGACqG;AACrG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAe3D;AAED;;;;;kFAKkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAe5E;AA2BD;;wGAEwG;AACxG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAiB1F;AAED;uEACuE;AACvE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAEA"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgG,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAyCzK;qGACqG;AACrG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAe3D;AAED;;;;;kFAKkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAe5E;AA2BD;;wGAEwG;AACxG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAkB1F;AAED;uEACuE;AACvE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAEA"}
package/dist/launch.js CHANGED
@@ -21,6 +21,7 @@ const LaunchAgentSchema = z.strictObject({
21
21
  agent: z.string().regex(TOKEN, "agent must be a connector token ([A-Za-z0-9_-])"),
22
22
  role: z.string().regex(TOKEN, "role must be a route-safe token ([A-Za-z0-9_-])").optional(),
23
23
  model: z.string().optional(),
24
+ variant: z.string().min(1).optional(),
24
25
  description: z.string().optional(),
25
26
  body: z.string().optional(),
26
27
  capabilities: z.array(z.string().regex(TOKEN, "capability must be a safe token ([A-Za-z0-9_-])")).optional(),
@@ -110,7 +111,7 @@ function validateLaunchPolicy(a) {
110
111
  throw new Error(`${where}: unknown capability "${cap}" (known: ${[...KNOWN_CAPABILITIES].join(", ")})`);
111
112
  }
112
113
  /** Materialize one resolved agent's persona to a transient file the connector reads, and return its
113
- * path. Carries only what a connector needs (identity/role/model/description + body) plus a loud
114
+ * path. Carries only what a connector needs (identity/role/model/variant/description + body) plus a loud
114
115
  * generated-artifact header — never ACL/capability frontmatter (creds come from the spec's policy). */
115
116
  export function materializePersona(root, runId, a) {
116
117
  // 0700 dirs created component-by-component, refusing a symlinked parent (writes can't escape the
@@ -124,6 +125,8 @@ export function materializePersona(root, runId, a) {
124
125
  fm.push(`role: ${scalar(a.role)}`);
125
126
  if (a.model)
126
127
  fm.push(`model: ${scalar(a.model)}`);
128
+ if (a.variant)
129
+ fm.push(`variant: ${scalar(a.variant)}`);
127
130
  if (a.description)
128
131
  fm.push(`description: ${scalar(a.description)}`);
129
132
  fm.push("---", "");
@@ -134,10 +137,10 @@ export function materializePersona(root, runId, a) {
134
137
  writeFileSync(path, `${fm.join("\n")}${header}\n\n${body}`, { mode: 0o600, flag: "wx" });
135
138
  return path;
136
139
  }
137
- /** Build the manager spawn opts for a launch agent: identity/role/model + the resolved object
140
+ /** Build the manager spawn opts for a launch agent: identity/role/model/variant + the resolved object
138
141
  * (which carries the ACL authority) + the materialized configPath. */
139
142
  export function launchAgentToStartOpts(a, configPath) {
140
- return { name: a.name, agent: a.agent, role: a.role, model: a.model, config: configPath, resolved: a };
143
+ return { name: a.name, agent: a.agent, role: a.role, model: a.model, variant: a.variant, config: configPath, resolved: a };
141
144
  }
142
145
  /** Quote a frontmatter scalar so the agent-file parser reads it back unchanged (it strips a matching
143
146
  * outer quote pair). Plain tokens pass through; anything with structural chars is double-quoted. */
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAA6C,MAAM,gBAAgB,CAAC;AAEzK;;;;;;;;GAQG;AAEH,6FAA6F;AAC7F,qGAAqG;AACrG,qGAAqG;AACrG,MAAM,KAAK,GAAG,kBAAkB,CAAC;AACjC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC;AAEzF,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,iDAAiD,CAAC;IACjF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC,QAAQ,EAAE;IAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5G,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CACnC,CAAC,CAAC;AAEH;qGACqG;AACrG,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,CAAC,OAAO;QACZ,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C;QACnE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,wDAAwD;IACnF,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC;AAChB,CAAC;AAED;;;;;kFAKkF;AAClF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,yCAAyC;IACjG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,yBAAyB,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC;IACP,IAAI,CAAC;QACH,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,oBAAoB,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,KAAK,+BAA+B,KAAK,GAAG,CAAC,CAAC;IACnH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oGAAoG;AACpG,gGAAgG;AAChG,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9C;;;2GAG2G;AAC3G,SAAS,oBAAoB,CAAC,CAAkB;IAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC;IACzC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,CAAU;QACvI,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,mDAAmD,CAAC,CAAC;QAC5H,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC7G,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,YAAY,IAAI,EAAE;QACpC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,yBAAyB,GAAG,aAAa,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9I,CAAC;AAED;;wGAEwG;AACxG,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAa,EAAE,CAAkB;IAChF,iGAAiG;IACjG,yFAAyF;IACzF,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,4BAA4B,GAAG,EAAE,CAAC,CAAC;IAC1G,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,IAAI;QAAE,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,WAAW;QAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACpE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,IAAI,cAAc,CAAC;IAC5C,MAAM,MAAM,GAAG,mEAAmE,KAAK,mFAAmF,GAAG,oFAAoF,CAAC;IAClQ,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,0FAA0F;IAC1F,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,sBAAsB,CAAC,CAAkB,EAAE,UAAkB;IAQ3E,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzG,CAAC;AAED;qGACqG;AACrG,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
package/dist/manager.d.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  import type { ControlReply, MeshLaunchAgent } from "@cotal-ai/core";
2
2
  import { type RuntimeMode } from "./runtime/index.js";
3
+ /** Backstop for the detached-launch readiness race (#159 B1). `startAgent` waits on two REAL outcomes —
4
+ * the assigned id joining the mesh (presence) = started, the child process exiting = failed — NOT a
5
+ * liveness-inferring timer. This is only the last-resort bound for "neither happened in time": the launch
6
+ * is then reported UNCERTAIN (a non-success reply that does NOT deprovision — it may still be booting, or
7
+ * stuck before connector startup). Generous, since a real cold agent join can take several seconds. Held
8
+ * as an instance field ({@link Manager.readinessTimeoutMs}) so a test can shorten it. Exported so the
9
+ * launch-parity smoke can assert every launch client's request timeout OUTLIVES this window — the tier
10
+ * rule forbids the clients importing it directly. */
11
+ export declare const READINESS_TIMEOUT_MS = 30000;
3
12
  export interface ManagerOptions {
4
13
  space: string;
5
14
  servers?: string;
@@ -17,14 +26,20 @@ export interface StartAgentOpts {
17
26
  * `.cotal/agents/<name>.md`. NOT the mesh identity: the spawned peer presents under the file's
18
27
  * own `name:` (auto-numbered on collision). The file must exist (no silent default-ACL fallback). */
19
28
  name: string;
20
- /** Connector / agent type — resolved from the registry. Defaults to `"cotal"`. */
29
+ /** Connector / agent type — resolved from the registry. Defaults to `COTAL_DEFAULT_AGENT`, else `"cotal"`. */
21
30
  agent?: string;
22
31
  role?: string;
23
32
  /** Explicit agent-file path that overrides the `name` ref for *which file to load* (identity still
24
33
  * comes from that file's `name:`). The file must exist. */
25
34
  config?: string;
35
+ /** Presence-identity OVERRIDE (the `--name` flag with a positional/`--config` naming the file):
36
+ * wins over the persona file's `name:`, exactly as in foreground `cotal spawn`. Imperative-only —
37
+ * a manifest launch (`resolved`) is the identity authority and rejects it. */
38
+ identity?: string;
26
39
  /** Model override (the `--model` flag). Takes precedence over the agent file's `model:`. */
27
40
  model?: string;
41
+ /** Model variant override (the `--variant` flag). Takes precedence over the agent file's `variant:`. */
42
+ variant?: string;
28
43
  /** Opaque host-local session id to FORK into the mesh (the `--resume` flag), forwarded verbatim to
29
44
  * the connector. Only ever set from imperative control args (`opStart`), NEVER from `resolved` —
30
45
  * the manifest path stays resume-free by construction. Unsupported connectors throw at buildLaunch. */
@@ -32,6 +47,19 @@ export interface StartAgentOpts {
32
47
  /** Mirror the session's transcript to `tr-<name>`. Defaults to off; `true` (the
33
48
  * `--transcript` flag) opts in. */
34
49
  transcript?: boolean;
50
+ /** Initial prompt auto-submitted at session start (the `--prompt` flag), forwarded verbatim to
51
+ * the connector. Imperative-only: never set from `resolved` (a manifest carries no prompt). */
52
+ prompt?: string;
53
+ /** Access-policy overrides (the `--subscribe` / `--allow-subscribe` / `--allow-publish` flags):
54
+ * win over the persona file exactly as in foreground `cotal spawn`, and are minted into the
55
+ * creds AND forwarded to the connector from ONE source. Imperative-only — a manifest launch
56
+ * (`resolved`) is the access authority and rejects these. */
57
+ subscribe?: string[];
58
+ allowSubscribe?: string[];
59
+ allowPublish?: string[];
60
+ /** `--share-tools` selection narrowing which of the operator's configured MCP servers this
61
+ * agent gets (absent → all declared for the connector — the pre-merge manager behavior). */
62
+ shareTools?: string;
35
63
  /** A fully-resolved launch profile (from a mesh manifest via `supervise --launch`). When present,
36
64
  * `startAgent` takes identity/role/ACLs/capabilities/model from here — NOT from a persona file —
37
65
  * and `config` points at the materialized transient persona the connector reads. The persona file
@@ -166,6 +194,9 @@ export declare class Manager {
166
194
  waitForPresence(name: string, timeoutMs?: number): Promise<boolean>;
167
195
  /** Parse an untyped control-plane `start` request into {@link StartAgentOpts}. */
168
196
  private opStart;
197
+ /** Return connector-provided model catalogs for selector UIs. Optional by connector: a host with no
198
+ * local model-list API reports `supported:false` rather than blocking the manager. */
199
+ private opModels;
169
200
  /** Boot one resolved agent from a mesh-manifest launch spec, for `cotal spawn -f` onto a RUNNING
170
201
  * manager. The request carries a `{ runId, name }`, NEVER a path: the manager derives + validates
171
202
  * `.cotal/run/<runId>.json` itself ({@link launchSpecForRun} — token-safe id, no-follow,