@cotal-ai/manager 0.9.0 → 0.10.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.
@@ -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/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,12 +26,16 @@ 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;
28
41
  /** Opaque host-local session id to FORK into the mesh (the `--resume` flag), forwarded verbatim to
@@ -32,6 +45,19 @@ export interface StartAgentOpts {
32
45
  /** Mirror the session's transcript to `tr-<name>`. Defaults to off; `true` (the
33
46
  * `--transcript` flag) opts in. */
34
47
  transcript?: boolean;
48
+ /** Initial prompt auto-submitted at session start (the `--prompt` flag), forwarded verbatim to
49
+ * the connector. Imperative-only: never set from `resolved` (a manifest carries no prompt). */
50
+ prompt?: string;
51
+ /** Access-policy overrides (the `--subscribe` / `--allow-subscribe` / `--allow-publish` flags):
52
+ * win over the persona file exactly as in foreground `cotal spawn`, and are minted into the
53
+ * creds AND forwarded to the connector from ONE source. Imperative-only — a manifest launch
54
+ * (`resolved`) is the access authority and rejects these. */
55
+ subscribe?: string[];
56
+ allowSubscribe?: string[];
57
+ allowPublish?: string[];
58
+ /** `--share-tools` selection narrowing which of the operator's configured MCP servers this
59
+ * agent gets (absent → all declared for the connector — the pre-merge manager behavior). */
60
+ shareTools?: string;
35
61
  /** A fully-resolved launch profile (from a mesh manifest via `supervise --launch`). When present,
36
62
  * `startAgent` takes identity/role/ACLs/capabilities/model from here — NOT from a persona file —
37
63
  * and `config` points at the materialized transient persona the connector reads. The persona file
@@ -66,6 +92,10 @@ export declare class Manager {
66
92
  /** Space trust material when the mesh runs in auth mode (`.cotal/auth` present);
67
93
  * the manager mints per-agent creds from it at spawn. Undefined when the mesh is open. */
68
94
  private auth?;
95
+ /** Readiness-race backstop (#159 B1) — the {@link READINESS_TIMEOUT_MS} constant, held as an instance
96
+ * field so a test can shorten it (the join/exit signals are event-driven; only the backstop is timed).
97
+ * Production leaves it at the constant. */
98
+ private readinessTimeoutMs;
69
99
  private leaseInfo?;
70
100
  private leaseRevision?;
71
101
  private leaseTimer?;
@@ -74,6 +104,16 @@ export declare class Manager {
74
104
  /** The console page URL (manager-hosted, loopback). */
75
105
  get consoleUrl(): string;
76
106
  start(): Promise<void>;
107
+ /** Tear down every managed agent's footprint — the shared teardown for EVERY manager-exit path (#159
108
+ * B2): graceful {@link stop} AND the fail-closed lease-loss exit ({@link renewLease}). A manager exit is
109
+ * a mass agent-exit, and without this its agents' footprints (creds files + `dm_`/`dlv_` durables + ACL
110
+ * rows) would orphan exactly as the per-agent exit path prevents. Hard-stop each child (an exit has no
111
+ * time for the graceful grace window) and AWAIT its deprovision — bounded per agent (`withTimeout`) and
112
+ * best-effort (`allSettled` + a loud log), so one slow/failed teardown can neither hang nor abort exit.
113
+ * The creds file is dropped even if the broker teardown fails (see {@link deprovision}). Deliberately
114
+ * touches NEITHER the lease NOR the endpoints — the caller owns those (and lease loss must NOT release
115
+ * the key, which may now belong to a replacement holder). */
116
+ private teardownManagedAgents;
77
117
  stop(): Promise<void>;
78
118
  /** Refresh the singleton lease before the bucket TTL expires it. On loss (missed the TTL, or another
79
119
  * manager took over after a gap) FAIL CLOSED: stop serving control at once so we can't double-process
@@ -98,7 +138,13 @@ export declare class Manager {
98
138
  * exit handlers / leaves the mesh), so first send a cooperative `{op:"shutdown"}` over its authed
99
139
  * control endpoint; the agent exits cleanly and the runtime hard-kills as a fallback after its
100
140
  * grace window. POSIX delivers SIGTERM→SIGKILL natively, so it keeps the signal path. A hard stop
101
- * (`graceful:false`, e.g. emergency reap) skips the cooperative step on every platform. */
141
+ * (`graceful:false`, e.g. emergency reap) skips the cooperative step on every platform.
142
+ *
143
+ * BEST-EFFORT / never throws (#159 B2): a runtime hard-stop CAN throw (tmux `closeWindow` / cmux
144
+ * `closeWorkspace` are direct calls), and every caller (despawn / self-stop / reap / shutdown) frees the
145
+ * slot + deprovisions RIGHT AFTER — so a throwing stop must not abort that cleanup and leak the agent's
146
+ * footprint, nor (in `reapChildrenOf`) abort the reap of later siblings. The failure is logged loudly,
147
+ * never swallowed silently. Being the single stop chokepoint, guarding here covers all callers at once. */
102
148
  private stopHandle;
103
149
  /** Drop a live agent's slot. When `floor` is set and the agent died young (lived less than
104
150
  * MIN_LIFETIME), push a cooling stamp so the freed slot still counts toward the ceiling until it
@@ -106,6 +152,19 @@ export declare class Manager {
106
152
  * covered (P4c). Floor self + own-child despawn and natural exit; NEVER admin despawn (operator
107
153
  * emergency-kill stays unthrottled) and NEVER the reserved-rollback path (no cold-start paid). */
108
154
  private freeSlot;
155
+ /** Tear down a departed agent's minted footprint (#159 B2, auth mode): its id-keyed durables
156
+ * (`dm_<id>`, `dlv_<id>`), its read-ACL row, and its creds file — everything the spawn's
157
+ * `provisionAgent` + creds-write left behind. Mints an EPHEMERAL, TARGET-PINNED `deprovisioner` cred
158
+ * (mirrors the ephemeral `provisioner`/`purger`): it can delete only THIS agent's id-keyed footprint,
159
+ * never a peer's and never the role-shared `svc_<role>` (which its siblings still bind). Open mesh →
160
+ * no-op (nothing was minted). Idempotent at the broker (missing consumer / ACL row = no-op) and on
161
+ * disk (`force` tolerates an absent creds file, e.g. a ledgered deploy that wrote none).
162
+ *
163
+ * Removing the creds file is footprint REDUCTION, not revocation: a JWT copied off disk before exit
164
+ * keeps its inline publish/live-sub/control grants until key rotation or JWT expiry — cred revocation
165
+ * is the separate per-user-auth work, not this. Tearing down the durables + ACL row still shrinks the
166
+ * delivery surface a stale copy could use. */
167
+ private deprovision;
109
168
  /** Reap a parent's children on its exit (P4b): stop + free every agent whose `spawner` is the
110
169
  * exited agent's id, so orphans don't ratchet the ceiling shut. Recursive — a reaped child's
111
170
  * own children are reaped too. Exit-driven, so each freed slot is rate-floored like a despawn. */
@@ -149,6 +208,24 @@ export declare class Manager {
149
208
  * defaulting to the manager's own id for roster/pre-spawn — recorded for the spawner
150
209
  * ledger (own-children despawn + reap-on-parent-exit). */
151
210
  startAgent(opts: StartAgentOpts, spawner?: string): Promise<ControlReply>;
211
+ /** #159 B1: wait for a detached launch to reach a REAL outcome before replying — never a liveness-
212
+ * inferring timer. Races three:
213
+ * • the assigned id joins presence (live) → **started** — the honest signal (the manager owns mesh
214
+ * lifecycle, not app health, so `ok:true` means "it joined the mesh", not "fully healthy");
215
+ * • the child process exits → **failed** — surface its last output and reap the slot;
216
+ * • neither within {@link readinessTimeoutMs} → **uncertain** — a non-success diagnostic that does NOT
217
+ * deprovision (it may still be booting; the caller keeps {@link watchExit} wired so a later death is
218
+ * still reaped).
219
+ * Presence is keyed on the EXACT freshly-minted id, never the name — a fresh id has no prior record, so
220
+ * any live presence for it is from THIS launch (stale/same-name records can't false-start it). The
221
+ * `"presence"` event is only a wake; the roster is re-read as the source of truth (subscribe-then-check
222
+ * catches a join/exit that landed before we subscribed). Runtimes that stream no exit signal (tmux/cmux,
223
+ * whose `attach()` throws) race presence-vs-backstop only — better than the old "assume up". */
224
+ private awaitReadiness;
225
+ /** Last non-empty line of terminal output as a single trimmed, control-char-stripped snippet
226
+ * (≤160 chars) — a readable one-line cause for an early-exit diagnostic, never the raw ANSI
227
+ * scrollback. */
228
+ private tail;
152
229
  /** Subscribe to a managed agent's process-exit so a self-driven exit frees its slot and reaps
153
230
  * its children (P4b/P4c). Only pty streams exit (via the attach session's `onExit`); tmux/cmux
154
231
  * attach() throws, so this is a no-op there — a self-EXITED agent under those runtimes is reaped
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAuB,YAAY,EAAiD,eAAe,EAAa,MAAM,gBAAgB,CAAC;AACnJ,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAa5B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;0GAC0G;AAC1G,MAAM,WAAW,cAAc;IAC7B;;0GAEsG;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gEAC4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;4GAEwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;wCACoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;sDAGkD;IAClD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;iGAE6F;IAC7F,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAuBD;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D;gGAC4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C;gGAC4F;IAC5F,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,EAAE,CAAiB;IAC3B;+FAC2F;IAC3F,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,SAAS,CAAC,CAAkC;IACpD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAiC;gBAExC,IAAI,EAAE,cAAc;IAehC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,uDAAuD;IACvD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6EtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B;;;wGAGoG;YACtF,UAAU;YAaV,MAAM;IA0DpB;;;;yEAIqE;IACrE,OAAO,CAAC,cAAc;IAMtB;;;;6DAIyD;IACzD,OAAO,CAAC,UAAU;IAclB;;;;;gGAK4F;IAC5F,OAAO,CAAC,UAAU;IAKlB;;;;uGAImG;IACnG,OAAO,CAAC,QAAQ;IAMhB;;uGAEmG;IACnG,OAAO,CAAC,cAAc;IAStB;;oGAEgG;IAChG,OAAO,CAAC,WAAW;IAKnB;iGAC6F;IAC7F,OAAO,CAAC,SAAS;IAMjB;;sDAEkD;IAClD,OAAO,CAAC,UAAU;IAIlB;;8DAE0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAItD;;;;0EAIsE;IAChE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IASzE,kFAAkF;IAClF,OAAO,CAAC,OAAO;IAqBf;;;;;;;wCAOoC;YACtB,QAAQ;IA0BtB;;;;;+DAK2D;IACrD,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAuM/E;;;;;kGAK8F;IAC9F,OAAO,CAAC,SAAS;IAQjB;0GACsG;IACtG,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAYd;;;;uGAImG;YACrF,eAAe;IAuB7B;;;gCAG4B;YACd,OAAO;IAgBrB;;;;;;;;4GAQwG;IACxG,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,QAAQ;IAqBhB,wFAAwF;IACxF,OAAO,CAAC,IAAI;CAgBb"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAsC,YAAY,EAAiD,eAAe,EAAa,MAAM,gBAAgB,CAAC;AAClK,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AAY5B;;;;;;;sDAOsD;AACtD,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAiB3C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;0GAC0G;AAC1G,MAAM,WAAW,cAAc;IAC7B;;0GAEsG;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,8GAA8G;IAC9G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gEAC4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;mFAE+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;4GAEwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;wCACoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;oGACgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;kEAG8D;IAC9D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;iGAC6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;sDAGkD;IAClD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;iGAE6F;IAC7F,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAuBD;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D;gGAC4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C;gGAC4F;IAC5F,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,EAAE,CAAiB;IAC3B;+FAC2F;IAC3F,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB;;gDAE4C;IAC5C,OAAO,CAAC,kBAAkB,CAAwB;IAClD,OAAO,CAAC,SAAS,CAAC,CAAkC;IACpD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAiC;gBAExC,IAAI,EAAE,cAAc;IAehC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,uDAAuD;IACvD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E5B;;;;;;;;kEAQ8D;YAChD,qBAAqB;IAgB7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;wGAGoG;YACtF,UAAU;YAgBV,MAAM;IA0DpB;;;;yEAIqE;IACrE,OAAO,CAAC,cAAc;IAMtB;;;;6DAIyD;IACzD,OAAO,CAAC,UAAU;IAclB;;;;;;;;;;;gHAW4G;IAC5G,OAAO,CAAC,UAAU;IASlB;;;;uGAImG;IACnG,OAAO,CAAC,QAAQ;IAYhB;;;;;;;;;;;mDAW+C;YACjC,WAAW;IAiBzB;;uGAEmG;IACnG,OAAO,CAAC,cAAc;IAStB;;oGAEgG;IAChG,OAAO,CAAC,WAAW;IAKnB;iGAC6F;IAC7F,OAAO,CAAC,SAAS;IAMjB;;sDAEkD;IAClD,OAAO,CAAC,UAAU;IAIlB;;8DAE0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAItD;;;;0EAIsE;IAChE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IASzE,kFAAkF;IAClF,OAAO,CAAC,OAAO;IA2Cf;;;;;;;wCAOoC;YACtB,QAAQ;IA0BtB;;;;;+DAK2D;IACrD,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA8O/E;;;;;;;;;;;;qGAYiG;YACnF,cAAc;IAsD5B;;sBAEkB;IAClB,OAAO,CAAC,IAAI;IAaZ;;;;;kGAK8F;IAC9F,OAAO,CAAC,SAAS;IAcjB;0GACsG;IACtG,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAYd;;;;uGAImG;YACrF,eAAe;IAuB7B;;;gCAG4B;YACd,OAAO;IAgBrB;;;;;;;;4GAQwG;IACxG,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,QAAQ;IAqBhB,wFAAwF;IACxF,OAAO,CAAC,IAAI;CAgBb"}