@cotal-ai/cli 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.
Files changed (130) hide show
  1. package/dist/command.d.ts +12 -3
  2. package/dist/command.d.ts.map +1 -1
  3. package/dist/command.js +58 -11
  4. package/dist/command.js.map +1 -1
  5. package/dist/commands/agents.d.ts +64 -0
  6. package/dist/commands/agents.d.ts.map +1 -0
  7. package/dist/commands/agents.js +83 -0
  8. package/dist/commands/agents.js.map +1 -0
  9. package/dist/commands/channels.d.ts +2 -1
  10. package/dist/commands/channels.d.ts.map +1 -1
  11. package/dist/commands/channels.js +3 -16
  12. package/dist/commands/channels.js.map +1 -1
  13. package/dist/commands/completion.d.ts +6 -5
  14. package/dist/commands/completion.d.ts.map +1 -1
  15. package/dist/commands/completion.js +37 -14
  16. package/dist/commands/completion.js.map +1 -1
  17. package/dist/commands/console.d.ts +2 -1
  18. package/dist/commands/console.d.ts.map +1 -1
  19. package/dist/commands/console.js +2 -12
  20. package/dist/commands/console.js.map +1 -1
  21. package/dist/commands/down.d.ts +3 -2
  22. package/dist/commands/down.d.ts.map +1 -1
  23. package/dist/commands/down.js +4 -12
  24. package/dist/commands/down.js.map +1 -1
  25. package/dist/commands/ext.d.ts +18 -0
  26. package/dist/commands/ext.d.ts.map +1 -0
  27. package/dist/commands/ext.js +220 -0
  28. package/dist/commands/ext.js.map +1 -0
  29. package/dist/commands/feedback.d.ts +2 -2
  30. package/dist/commands/feedback.d.ts.map +1 -1
  31. package/dist/commands/feedback.js +4 -283
  32. package/dist/commands/feedback.js.map +1 -1
  33. package/dist/commands/history.d.ts +2 -1
  34. package/dist/commands/history.d.ts.map +1 -1
  35. package/dist/commands/history.js +3 -13
  36. package/dist/commands/history.js.map +1 -1
  37. package/dist/commands/join.d.ts +2 -1
  38. package/dist/commands/join.d.ts.map +1 -1
  39. package/dist/commands/join.js +2 -18
  40. package/dist/commands/join.js.map +1 -1
  41. package/dist/commands/meshes.d.ts +2 -1
  42. package/dist/commands/meshes.d.ts.map +1 -1
  43. package/dist/commands/meshes.js +1 -1
  44. package/dist/commands/meshes.js.map +1 -1
  45. package/dist/commands/mint.d.ts +2 -1
  46. package/dist/commands/mint.d.ts.map +1 -1
  47. package/dist/commands/mint.js +3 -14
  48. package/dist/commands/mint.js.map +1 -1
  49. package/dist/commands/personas.d.ts +2 -2
  50. package/dist/commands/personas.d.ts.map +1 -1
  51. package/dist/commands/personas.js +23 -20
  52. package/dist/commands/personas.js.map +1 -1
  53. package/dist/commands/send.d.ts +2 -2
  54. package/dist/commands/send.d.ts.map +1 -1
  55. package/dist/commands/send.js +21 -24
  56. package/dist/commands/send.js.map +1 -1
  57. package/dist/commands/setup.d.ts +30 -8
  58. package/dist/commands/setup.d.ts.map +1 -1
  59. package/dist/commands/setup.js +151 -316
  60. package/dist/commands/setup.js.map +1 -1
  61. package/dist/commands/spawn.d.ts +117 -2
  62. package/dist/commands/spawn.d.ts.map +1 -1
  63. package/dist/commands/spawn.js +137 -48
  64. package/dist/commands/spawn.js.map +1 -1
  65. package/dist/commands/topology.d.ts +2 -1
  66. package/dist/commands/topology.d.ts.map +1 -1
  67. package/dist/commands/topology.js +4 -8
  68. package/dist/commands/topology.js.map +1 -1
  69. package/dist/commands/up.d.ts +9 -4
  70. package/dist/commands/up.d.ts.map +1 -1
  71. package/dist/commands/up.js +96 -56
  72. package/dist/commands/up.js.map +1 -1
  73. package/dist/commands/use.d.ts +2 -2
  74. package/dist/commands/use.d.ts.map +1 -1
  75. package/dist/commands/use.js +2 -2
  76. package/dist/commands/use.js.map +1 -1
  77. package/dist/ext-loader.d.ts +13 -0
  78. package/dist/ext-loader.d.ts.map +1 -0
  79. package/dist/ext-loader.js +121 -0
  80. package/dist/ext-loader.js.map +1 -0
  81. package/dist/index.d.ts +3 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +203 -70
  84. package/dist/index.js.map +1 -1
  85. package/dist/lib/attach-client.d.ts +20 -0
  86. package/dist/lib/attach-client.d.ts.map +1 -0
  87. package/dist/lib/attach-client.js +218 -0
  88. package/dist/lib/attach-client.js.map +1 -0
  89. package/dist/lib/completion.d.ts +8 -0
  90. package/dist/lib/completion.d.ts.map +1 -0
  91. package/dist/lib/completion.js +66 -0
  92. package/dist/lib/completion.js.map +1 -0
  93. package/dist/lib/connect.d.ts +1 -73
  94. package/dist/lib/connect.d.ts.map +1 -1
  95. package/dist/lib/connect.js +4 -90
  96. package/dist/lib/connect.js.map +1 -1
  97. package/dist/lib/control.d.ts +34 -0
  98. package/dist/lib/control.d.ts.map +1 -0
  99. package/dist/lib/control.js +65 -0
  100. package/dist/lib/control.js.map +1 -0
  101. package/dist/lib/delivery-proc.d.ts +2 -0
  102. package/dist/lib/delivery-proc.d.ts.map +1 -1
  103. package/dist/lib/manager-proc.d.ts +5 -13
  104. package/dist/lib/manager-proc.d.ts.map +1 -1
  105. package/dist/lib/manager-proc.js +3 -42
  106. package/dist/lib/manager-proc.js.map +1 -1
  107. package/dist/lib/manifest/live.d.ts.map +1 -1
  108. package/dist/lib/manifest/live.js +4 -1
  109. package/dist/lib/manifest/live.js.map +1 -1
  110. package/dist/lib/status.d.ts +8 -4
  111. package/dist/lib/status.d.ts.map +1 -1
  112. package/dist/lib/status.js +21 -5
  113. package/dist/lib/status.js.map +1 -1
  114. package/dist/ui.d.ts +1 -12
  115. package/dist/ui.d.ts.map +1 -1
  116. package/dist/ui.js +4 -12
  117. package/dist/ui.js.map +1 -1
  118. package/package.json +8 -6
  119. package/dist/commands/demo.d.ts +0 -2
  120. package/dist/commands/demo.d.ts.map +0 -1
  121. package/dist/commands/demo.js +0 -163
  122. package/dist/commands/demo.js.map +0 -1
  123. package/dist/commands/web.d.ts +0 -32
  124. package/dist/commands/web.d.ts.map +0 -1
  125. package/dist/commands/web.js +0 -307
  126. package/dist/commands/web.js.map +0 -1
  127. package/dist/web/app.js +0 -823
  128. package/dist/web/graph.html +0 -207
  129. package/dist/web/graph.js +0 -512
  130. package/dist/web/index.html +0 -350
@@ -1,5 +1,5 @@
1
- import { type ChannelRegistryFile } from "@cotal-ai/core";
2
- export declare function up(argv: string[]): Promise<void>;
1
+ import { type ChannelRegistryFile, type ParsedArgs } from "@cotal-ai/core";
2
+ export declare function up(args: ParsedArgs): Promise<void>;
3
3
  export interface DetachOpts {
4
4
  server?: string;
5
5
  storeDir?: string;
@@ -12,11 +12,15 @@ export interface DetachOpts {
12
12
  seed?: ChannelRegistryFile;
13
13
  /** Live boot lines, tailed from the server's log file (safe for a detached child). */
14
14
  onLine?: (line: string) => void;
15
+ /** Manifest launch (`cotal up -f`): the ONE control-plane manager started alongside the broker
16
+ * carries this runtime + resolved launch-spec path — never a second supervise (singleton lease). */
17
+ runtime?: string;
18
+ launch?: string;
15
19
  }
16
20
  /**
17
21
  * Start a background nats-server (JetStream), wait until it's reachable, pre-create the
18
- * space's streams, and leave it running detached (pid in `.cotal/nats.pid`). Shared by
19
- * `up --detach` and `cotal setup`. When `onLine` is given, boot output is tailed from the
22
+ * space's streams, and leave it running detached (pid in `.cotal/nats.pid`). Used by
23
+ * `up --detach`. When `onLine` is given, boot output is tailed from the
20
24
  * log file and forwarded — the child writes to the file (not a pipe), so it survives the
21
25
  * parent exiting.
22
26
  */
@@ -24,5 +28,6 @@ export declare function startMeshDetached(opts?: DetachOpts): Promise<{
24
28
  server: string;
25
29
  pid: number;
26
30
  source: string;
31
+ controlPlane: boolean;
27
32
  }>;
28
33
  //# sourceMappingURL=up.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAaA,OAAO,EAcL,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AAyBxB,wBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6HtD;AA8GD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsCvH"}
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAaA,OAAO,EAcL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAyBxB,wBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqHxD;AAmID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;yGACqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCjF"}
@@ -1,36 +1,21 @@
1
1
  import { spawn } from "node:child_process";
2
+ import { createServer } from "node:net";
2
3
  import { mkdirSync, writeFileSync, readFileSync, existsSync, openSync, statSync, readSync, closeSync, } from "node:fs";
3
4
  import { resolve } from "node:path";
4
- import { parseArgs } from "node:util";
5
5
  import { isReachable, DEFAULT_SERVER, createSpaceAuth, serverConfig, mintCreds, mintMembershipObserverCreds, newIdentity, setupSpaceStreams, seedChannelRegistry, ensureDefaultDeliveryClass, mkSecretDir, writeSecretFile, } from "@cotal-ai/core";
6
6
  import { authDir, loadSpaceAuth, saveSpaceAuth, clearCurrent, findMesh, getCurrent, loadMeshes, recordMesh, removeMesh, setCurrent, } from "@cotal-ai/workspace";
7
7
  import { resolveSpace } from "../lib/status.js";
8
8
  import { c } from "../ui.js";
9
9
  import { resolveNatsServer } from "../lib/nats-bin.js";
10
10
  import { cotalPath, cotalRoot } from "../lib/paths.js";
11
- import { ensureDelivery, stopDelivery, stopOldHostingManagerIfPresent } from "../lib/delivery-proc.js";
12
- import { startManagerDetached } from "../lib/manager-proc.js";
11
+ import { ensureControlPlane, stopDelivery } from "../lib/delivery-proc.js";
12
+ import { stopManager } from "../lib/manager-proc.js";
13
13
  import { loadManifest } from "../lib/manifest/index.js";
14
14
  import { buildLaunchSpec, genRunId, manifestToChannels, preflightConnectors, writeLaunchSpec } from "../lib/manifest/apply.js";
15
15
  import { renderUpPlan, renderInherited, renderWarnings } from "../lib/manifest/render.js";
16
16
  import { failManifest } from "./topology.js";
17
- export async function up(argv) {
18
- const { values } = parseArgs({
19
- args: argv,
20
- allowPositionals: true,
21
- options: {
22
- server: { type: "string" },
23
- "store-dir": { type: "string" },
24
- space: { type: "string" },
25
- open: { type: "boolean" }, // disable auth — run an open dev mesh
26
- channels: { type: "string" }, // seed the channel registry from this JSON file
27
- detach: { type: "boolean" }, // run the server in the background (pid in .cotal/nats.pid)
28
- host: { type: "string" }, // bind address (default 127.0.0.1 — loopback; 0.0.0.0 to expose with auth)
29
- runtime: { type: "string" }, // with -f: override the manifest's runtime (pty | tmux | cmux)
30
- file: { type: "string", short: "f" }, // a mesh manifest (cotal.yaml) — fresh broker + channels + agents
31
- "dry-run": { type: "boolean" }, // with -f: print the plan, mutate nothing
32
- },
33
- });
17
+ export async function up(args) {
18
+ const values = args.values;
34
19
  // `up -f cotal.yaml` is a distinct path: bring up a FRESH mesh described by a manifest (broker +
35
20
  // channels + booted agents). It owns the whole space; deploying onto a RUNNING mesh is `spawn -f`.
36
21
  // CLI flags override the manifest (flag > manifest > default) so the same file runs at a different
@@ -46,28 +31,33 @@ export async function up(argv) {
46
31
  });
47
32
  return;
48
33
  }
49
- const server = values.server ?? DEFAULT_SERVER;
34
+ let server = values.server ?? DEFAULT_SERVER;
50
35
  const host = values.host ?? "127.0.0.1";
51
36
  if (await isReachable(server)) {
52
37
  const space = values.space ?? resolveSpace(process.cwd());
53
38
  const root = cotalRoot();
54
- // A broker is already on this port. Only treat it as a no-op refresh when the registry confirms
55
- // it's THIS exact mesh (same server + root + space). Anything else a different space/root, or a
56
- // broker we never recorded we must NOT adopt: recording our space over it would let a later
57
- // `spawn --space <s>` load the wrong root's creds. Today one broker serves one space (auth binds
58
- // them), so a different space on this port can't be added to it yet — fail loudly and tell the
59
- // user to free the port. (Hosting several spaces on one broker is the planned multi-space work.)
39
+ // A broker is already on this port. Same root means "this project is already up" unless the
40
+ // operator explicitly asked for a second space in the same `.cotal/` root (unsupported today: pid,
41
+ // auth, and logs are root-scoped). Different root / unrecorded broker on the implicit default port
42
+ // gets a fresh free port instead of making the user hunt for one.
60
43
  const held = loadMeshes().find((m) => m.server === server);
61
- if (held && held.root === root && held.space === space) {
44
+ if (held && held.root === root && (held.space === space || values.space === undefined)) {
62
45
  // A refresh of the SAME already-running mesh — its mode is fixed by how the live broker was
63
46
  // started; preserve `held.mode` rather than relabel it from this invocation's `--open`.
64
- recordOurMesh({ space, server, root, mode: held.mode, ts: new Date().toISOString() });
65
- console.log(c.green(`✓ NATS already running at ${server}`));
47
+ recordOurMesh({ space: held.space, server, root, mode: held.mode, ts: new Date().toISOString() });
48
+ console.log(c.green(`✓ mesh "${held.space}" already running at ${server}`));
66
49
  return;
67
50
  }
68
51
  const who = held ? `mesh "${held.space}" (${held.root})` : "a broker not started here";
69
- console.error(c.red(`✗ ${server} is already in use by ${who} to run "${space}" use \`--server nats://${host}:<port>\` with a free port`));
70
- process.exit(1);
52
+ if (values.server === undefined && (!held || held.root !== root)) {
53
+ const next = await serverWithFreePort(server, host);
54
+ console.log(c.dim(`${server} is already in use by ${who}; starting "${space}" at ${next} instead`));
55
+ server = next;
56
+ }
57
+ else {
58
+ console.error(c.red(`✗ ${server} is already in use by ${who} — to run "${space}" use \`--server nats://${host}:<port>\` with a free port`));
59
+ process.exit(1);
60
+ }
71
61
  }
72
62
  if (values.detach) {
73
63
  const { pid, source } = await startMeshDetached({
@@ -91,24 +81,27 @@ export async function up(argv) {
91
81
  const seedFile = loadChannelsFile(values.channels);
92
82
  const setup = useAuth ? await authSetup(storeDir, server, space, host) : undefined;
93
83
  const port = Number(new URL(server).port) || 4222;
94
- const args = setup ? ["-c", setup.confPath] : ["-js", "-sd", storeDir, "-p", String(port), "-a", host];
84
+ const natsArgs = setup ? ["-c", setup.confPath] : ["-js", "-sd", storeDir, "-p", String(port), "-a", host];
95
85
  const { bin, source } = await resolveNatsServer();
96
86
  console.log(c.dim(`Starting nats-server (JetStream, ${useAuth ? "JWT auth" : "OPEN/no-auth"}, ${source}) — store: ${storeDir}, bind: ${host}`));
97
87
  console.log(c.dim("Press Ctrl-C to stop.\n"));
98
- const child = spawn(bin, args, { stdio: "inherit" });
88
+ const child = spawn(bin, natsArgs, { stdio: "inherit" });
99
89
  child.on("error", (err) => {
100
90
  console.error(c.red(`Failed to start nats-server: ${err.message}`));
101
91
  process.exit(1);
102
92
  });
103
- // The delivery daemon is coupled to the broker: stop it when this `up` stops (Ctrl-C), so the daemon
104
- // never outlives the broker it serves.
105
- const stop = () => { stopDelivery(); child.kill("SIGTERM"); };
93
+ // The control plane is coupled to the broker: stop the delivery daemon AND the detached manager
94
+ // when this `up` stops (Ctrl-C), so neither outlives the broker it serves — a surviving manager
95
+ // would reconnect-loop invisibly against the dead (or the NEXT) broker (the documented
96
+ // orphan-supervisor failure mode). Both kill by pidfile, symmetric.
97
+ const stop = () => { stopDelivery(); stopManager(); child.kill("SIGTERM"); };
106
98
  process.on("SIGINT", stop);
107
99
  process.on("SIGTERM", stop);
108
100
  // The broker is gone — drop it from the registry (and the `current` pointer if it was the default)
109
101
  // so a later `cotal spawn` doesn't try to join a dead mesh.
110
102
  child.on("exit", (code) => {
111
103
  stopDelivery();
104
+ stopManager();
112
105
  // Only unrecord if the registry still points at THIS broker. A newer broker for the same space
113
106
  // (a concurrent `up`, or a different-port re-up that recorded after us) may have replaced our
114
107
  // record — removing by name would clobber the live winner and hide it from the registry.
@@ -170,10 +163,21 @@ async function upManifest(file, opts) {
170
163
  console.error(c.red(`✗ connector preflight failed: ${conn}`));
171
164
  process.exit(1);
172
165
  }
173
- // 1) fresh broker + space streams + channels seeded from the manifest (in-memory seed).
166
+ // The resolved launch spec is written FIRST so the ONE control-plane manager that comes up with
167
+ // the broker (inside startMeshDetached) carries it. Exactly one manager serves a space (the
168
+ // singleton lease): a second `supervise` started here for the launch would race the plain one for
169
+ // the lease — the loser refuses, so either the agents never boot or the incumbent is orphaned
170
+ // behind an overwritten pid file. The manager materializes each transient persona and mints creds
171
+ // from the resolved policy — never re-reading a file for authority.
172
+ const specPath = writeLaunchSpec(cotalRoot(), buildLaunchSpec(eff, genRunId()));
173
+ // A leftover detached manager (its broker is gone — the reachability check above proved nothing
174
+ // lives at this address) would win the fresh mesh's lease and the launch manager would refuse.
175
+ // Stop it, so the manager started below WITH the launch spec is THE manager.
176
+ stopManager();
174
177
  let pid;
178
+ let controlPlane = false;
175
179
  try {
176
- ({ pid } = await startMeshDetached({ server, space: m.space, open, host, seed: manifestToChannels(eff) }));
180
+ ({ pid, controlPlane } = await startMeshDetached({ server, space: m.space, open, host, seed: manifestToChannels(eff), runtime, launch: specPath }));
177
181
  }
178
182
  catch (e) {
179
183
  console.error(c.red(`✗ ${e.message}`));
@@ -181,11 +185,14 @@ async function upManifest(file, opts) {
181
185
  }
182
186
  console.log(c.green(`✓ mesh "${m.space}" up at ${server}`) + c.dim(` (broker pid ${pid})`));
183
187
  console.log(c.dim(` seeded ${m.channels.length} channel(s): ${m.channels.map((ch) => "#" + ch.name).join(", ")}`));
184
- // 2) write the resolved launch spec + boot agents through a manager (it materializes each transient
185
- // persona and mints creds from the resolved policy never re-reading a file for authority).
186
- const specPath = writeLaunchSpec(cotalRoot(), buildLaunchSpec(eff, genRunId()));
187
- startManagerDetached({ space: m.space, server, runtime, launch: specPath });
188
- console.log(c.green(`✓ launching ${eff.agents.length} agent(s)`) + c.dim(` via manager (${runtime}) — see .cotal/manager.log`));
188
+ // Never claim a launch the control plane can't deliver: the manager carries the launch spec, so a
189
+ // degraded control plane (announced above) means the agents are NOT coming up.
190
+ if (controlPlane) {
191
+ console.log(c.green(`✓ launching ${eff.agents.length} agent(s)`) + c.dim(` via manager (${runtime}) see .cotal/manager.log`));
192
+ }
193
+ else {
194
+ console.error(c.red(`✗ ${eff.agents.length} agent(s) NOT launched — the control plane did not come up (see above)`));
195
+ }
189
196
  // Loud summary: any persona-inherited access an `include` manifest dragged in, plus warnings.
190
197
  const inherited = renderInherited(eff);
191
198
  if (inherited)
@@ -215,22 +222,31 @@ function applyUpOverrides(prepared, o) {
215
222
  },
216
223
  };
217
224
  }
218
- /** Start the server-side delivery daemon alongside the broker (auth mode only): old-manager preflight
219
- * first (so an old hosting manager can't double-bind), then the auth-gated daemon (a no-op in open
220
- * mode). Coupled to the broker by the daemon's own broker-gone watchdog + the `up`/`down` teardown. */
221
- async function startDeliveryWithBroker(space, server) {
225
+ /** Start the CONTROL PLANE alongside the broker: old-manager preflight → delivery daemon (auth
226
+ * mode only) detached manager. `up` is the launching command since `setup` became
227
+ * configure-only (stage 2b), the whole local stack comes up HERE, so `spawn --detach` /
228
+ * cotal_spawn find a manager without any setup side effect. Coupled to the broker by the
229
+ * daemon's watchdog + the `up`/`down` teardown. `mgr` rides through to the manager start — the
230
+ * `up -f` path hands THE manager its runtime + resolved launch spec here (one manager per space,
231
+ * so the launch can never be a second supervise). Returns whether the control plane came up, so a
232
+ * caller whose output claims a manager (the `up -f` launching line) can tell the truth. */
233
+ async function startDeliveryWithBroker(space, server, mgr) {
222
234
  try {
223
- stopOldHostingManagerIfPresent();
224
- await ensureDelivery({ space, server });
235
+ await ensureControlPlane({ space, server, ...mgr });
236
+ return true;
225
237
  }
226
- catch {
227
- /* non-fatal durable delivery degrades, live delivery is unaffected */
238
+ catch (e) {
239
+ // Non-fatal (live messaging is unaffected) but never SILENT: without the manager,
240
+ // `spawn --detach` / cotal_spawn have no responder, and the operator must hear it here,
241
+ // not as an unexplained "no manager reachable" later.
242
+ console.error(c.dim(`! control plane degraded: ${e.message} — durable delivery/manager may be down; start one with: cotal supervise`));
243
+ return false;
228
244
  }
229
245
  }
230
246
  /**
231
247
  * Start a background nats-server (JetStream), wait until it's reachable, pre-create the
232
- * space's streams, and leave it running detached (pid in `.cotal/nats.pid`). Shared by
233
- * `up --detach` and `cotal setup`. When `onLine` is given, boot output is tailed from the
248
+ * space's streams, and leave it running detached (pid in `.cotal/nats.pid`). Used by
249
+ * `up --detach`. When `onLine` is given, boot output is tailed from the
234
250
  * log file and forwarded — the child writes to the file (not a pipe), so it survives the
235
251
  * parent exiting.
236
252
  */
@@ -266,10 +282,10 @@ export async function startMeshDetached(opts = {}) {
266
282
  writeFileSync(cotalPath("nats.pid"), String(child.pid));
267
283
  await postStart(server, space, setup, seedFile);
268
284
  // Bring up the delivery daemon WITH the detached broker (auth mode only; `cotal down` tears both down).
269
- await startDeliveryWithBroker(space, server);
285
+ const controlPlane = await startDeliveryWithBroker(space, server, { runtime: opts.runtime, launch: opts.launch });
270
286
  // Detached: the registry entry outlives this process — `cotal down` removes it.
271
287
  recordOurMesh({ space, server, root: cotalRoot(), mode: useAuth ? "auth" : "open", ts: new Date().toISOString() });
272
- return { server, pid: child.pid ?? 0, source };
288
+ return { server, pid: child.pid ?? 0, source, controlPlane };
273
289
  }
274
290
  /** Today a root's `.cotal/auth` is created for one space (its account is space-bound), so starting it
275
291
  * under a *different* explicit `--space` would run that space's name against the other space's trust
@@ -349,6 +365,30 @@ async function waitReady(server, creds) {
349
365
  }
350
366
  return false;
351
367
  }
368
+ async function serverWithFreePort(server, host) {
369
+ const url = new URL(server);
370
+ url.port = String(await freePort(host));
371
+ return url.toString();
372
+ }
373
+ function freePort(host) {
374
+ return new Promise((resolve, reject) => {
375
+ const srv = createServer();
376
+ srv.unref();
377
+ srv.once("error", reject);
378
+ srv.listen(0, host, () => {
379
+ const addr = srv.address();
380
+ const port = typeof addr === "object" && addr ? addr.port : undefined;
381
+ srv.close((err) => {
382
+ if (err)
383
+ reject(err);
384
+ else if (port)
385
+ resolve(port);
386
+ else
387
+ reject(new Error("could not allocate a free port"));
388
+ });
389
+ });
390
+ });
391
+ }
352
392
  /** One-time space infrastructure once the server accepts connections: pre-create the space's
353
393
  * streams + KV buckets, and seed the channel registry. Done for BOTH modes — auth needs it
354
394
  * (agents are denied STREAM.CREATE), and open needs it too so anything that touches a stream
@@ -1 +1 @@
1
- {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { CompletionResult } from "@cotal-ai/core";
1
+ import type { CompletionResult, ParsedArgs } from "@cotal-ai/core";
2
2
  /** `cotal use <space>` — set the default mesh a bare `cotal spawn` (and friends) targets when more
3
3
  * than one is running. The kubectl `use-context` analogue. Validated against the live registry, so
4
4
  * you can't point `current` at a mesh that isn't up. */
5
- export declare function use(argv: string[]): Promise<void>;
5
+ export declare function use(args: ParsedArgs): Promise<void>;
6
6
  export declare function useComplete(argv: string[]): CompletionResult;
7
7
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKvD;;yDAEyD;AACzD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAI5D"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKnE;;yDAEyD;AACzD,wBAAsB,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAczD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAI5D"}
@@ -4,8 +4,8 @@ import { pruneStaleMeshes } from "../lib/meshes.js";
4
4
  /** `cotal use <space>` — set the default mesh a bare `cotal spawn` (and friends) targets when more
5
5
  * than one is running. The kubectl `use-context` analogue. Validated against the live registry, so
6
6
  * you can't point `current` at a mesh that isn't up. */
7
- export async function use(argv) {
8
- const space = argv[0];
7
+ export async function use(args) {
8
+ const space = args.positionals[0];
9
9
  if (!space) {
10
10
  console.error(c.red("usage: cotal use <space>"));
11
11
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;yDAEyD;AACzD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,gBAAgB,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,KAAK,qCAAqC,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACxF,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;yDAEyD;AACzD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAgB;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,gBAAgB,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,KAAK,qCAAqC,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACxF,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type Command, type Registry } from "@cotal-ai/core";
2
+ export declare function setCommandSurface(commands: Command[]): void;
3
+ export declare function commandSurface(): Command[];
4
+ /** True when this command is a manifest stub that must be materialized before parsing/running. */
5
+ export declare function isExtensionStub(cmd: Command): boolean;
6
+ /** Overlay the manifest's cached commands onto the registered surface. Returns the combined
7
+ * command list for help/complete/dispatch. Loud on builtin collisions; never imports. */
8
+ export declare function overlayExtensions(reg: Registry): Command[];
9
+ /** Swap an extension STUB for its live command: verify the version pin, import the package (it
10
+ * self-registers), and return the freshly-registered command. Every failure is loud and names
11
+ * the package. */
12
+ export declare function materializeExtensionCommand(stub: Command): Promise<Command>;
13
+ //# sourceMappingURL=ext-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ext-loader.d.ts","sourceRoot":"","sources":["../src/ext-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkDvE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAE3D;AACD,wBAAgB,cAAc,IAAI,OAAO,EAAE,CAE1C;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAErD;AAED;0FAC0F;AAC1F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,EAAE,CAyB1D;AAED;;mBAEmB;AACnB,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAiCjF"}
@@ -0,0 +1,121 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ import { registry } from "@cotal-ai/core";
5
+ import { extensionPackageDir, installedExtensionVersion, loadExtensionsManifest, } from "@cotal-ai/workspace";
6
+ import { c } from "./ui.js";
7
+ /**
8
+ * The installed-extensions loader — opt-in for the PUBLISHED binary only (`runCli(…, { extensions:
9
+ * true })`); library composition roots keep the explicit-import model.
10
+ *
11
+ * Discipline (design-review conditions):
12
+ * - Help and `__complete` see extension commands as manifest-cached STUBS (display surface only;
13
+ * a <TAB> or `--help` never imports an extension).
14
+ * - Running one imports its package lazily, which self-registers the LIVE command; parsing then
15
+ * uses the live specs — the cache never drives `run`'s input.
16
+ * - The pinned `name@version` is verified before the import; skew is a loud error prescribing
17
+ * `cotal ext add` again.
18
+ * - A cached name shadowed by a builtin (a base upgrade claimed it) is dropped from the surface
19
+ * with a loud stderr warning naming both sides and the fix — the builtin wins; the user's typed
20
+ * builtin command NEVER throws over the collision.
21
+ */
22
+ /** A display-only stub for the help/complete surface. Running it resolves the REAL command:
23
+ * verify pin → import (self-registers) → re-resolve → parse LIVE specs → run. */
24
+ function stubFor(ext, cached) {
25
+ return {
26
+ kind: "command",
27
+ name: cached.name,
28
+ summary: cached.summary,
29
+ group: cached.group ?? "Extensions",
30
+ usage: cached.usage,
31
+ hidden: cached.hidden,
32
+ flags: cached.flags,
33
+ positionals: cached.positionals,
34
+ // Marker consumed by runCli: dispatch must swap the stub for the live command before parsing.
35
+ extension: ext.pkg,
36
+ async run() {
37
+ throw new Error(`extension stub for ${ext.pkg}:${cached.name} was run directly — dispatcher bug`);
38
+ },
39
+ };
40
+ }
41
+ /** The dispatch surface runCli resolved this invocation (registered commands, plus extension
42
+ * stubs when the root opted in). The completion dispatcher reads it so <TAB> sees the same
43
+ * surface help does — set once per invocation by runCli, before any command runs. */
44
+ let surface;
45
+ export function setCommandSurface(commands) {
46
+ surface = commands;
47
+ }
48
+ export function commandSurface() {
49
+ return surface ?? registry.all("command");
50
+ }
51
+ /** True when this command is a manifest stub that must be materialized before parsing/running. */
52
+ export function isExtensionStub(cmd) {
53
+ return typeof cmd.extension === "string";
54
+ }
55
+ /** Overlay the manifest's cached commands onto the registered surface. Returns the combined
56
+ * command list for help/complete/dispatch. Loud on builtin collisions; never imports. */
57
+ export function overlayExtensions(reg) {
58
+ const commands = [...reg.all("command")];
59
+ const owner = new Map(); // command name → "" for a builtin, else the owning ext pkg
60
+ for (const cm of commands)
61
+ owner.set(cm.name, "");
62
+ for (const ext of loadExtensionsManifest().extensions) {
63
+ for (const cached of ext.commands) {
64
+ const holder = owner.get(cached.name);
65
+ if (holder !== undefined) {
66
+ // add() refuses fresh collisions, so this install predates the clash: a base upgrade
67
+ // shipped the name (builtin case), or the sibling was added under an older base that
68
+ // allowed it. First holder wins; the loser leaves the surface until the operator resolves.
69
+ console.error(c.red(holder === ""
70
+ ? `! command "${cached.name}" is provided by both this CLI and extension ${ext.pkg}@${ext.version} — the built-in wins; run \`cotal ext remove ${ext.pkg}\` (or update the extension) to clear this`
71
+ : `! command "${cached.name}" is provided by both extensions ${holder} and ${ext.pkg}@${ext.version} — ${holder} (installed first) wins; \`cotal ext remove\` one of them to clear this`));
72
+ continue;
73
+ }
74
+ owner.set(cached.name, ext.pkg);
75
+ commands.push(stubFor(ext, cached));
76
+ }
77
+ }
78
+ return commands;
79
+ }
80
+ /** Swap an extension STUB for its live command: verify the version pin, import the package (it
81
+ * self-registers), and return the freshly-registered command. Every failure is loud and names
82
+ * the package. */
83
+ export async function materializeExtensionCommand(stub) {
84
+ const pkg = stub.extension;
85
+ if (!pkg)
86
+ return stub; // not a stub — already live
87
+ const ext = loadExtensionsManifest().extensions.find((e) => e.pkg === pkg);
88
+ if (!ext)
89
+ throw new Error(`extension ${pkg} vanished from the manifest — \`cotal ext add\` it again`);
90
+ const onDisk = installedExtensionVersion(pkg);
91
+ if (!onDisk) {
92
+ throw new Error(`extension ${pkg} is in the manifest but not installed at ${extensionPackageDir(pkg)} — \`cotal ext add ${ext.spec}\` again`);
93
+ }
94
+ if (onDisk !== ext.version) {
95
+ throw new Error(`extension ${pkg} is ${onDisk} on disk but the manifest pinned ${ext.version} (its cached command surface may be stale) — re-add it: \`cotal ext add ${ext.spec}\``);
96
+ }
97
+ const dir = extensionPackageDir(pkg);
98
+ const meta = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
99
+ let entry = meta.main ?? "index.js";
100
+ const dot = meta.exports?.["."];
101
+ if (typeof dot === "string")
102
+ entry = dot;
103
+ else if (dot && typeof dot === "object") {
104
+ const d = dot;
105
+ entry = d.import ?? d.default ?? entry;
106
+ }
107
+ else if (typeof meta.exports === "string")
108
+ entry = meta.exports;
109
+ try {
110
+ await import(pathToFileURL(join(dir, entry)).href); // self-registers into OUR registry (core is linked)
111
+ }
112
+ catch (e) {
113
+ throw new Error(`extension ${pkg}@${ext.version} failed to import: ${e.message} — reinstall it: \`cotal ext add ${ext.spec}\``);
114
+ }
115
+ const live = registry.all("command").find((cm) => cm.name === stub.name);
116
+ if (!live) {
117
+ throw new Error(`extension ${pkg} imported but did not register "${stub.name}" — its cache is stale; re-add it: \`cotal ext add ${ext.spec}\``);
118
+ }
119
+ return live;
120
+ }
121
+ //# sourceMappingURL=ext-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ext-loader.js","sourceRoot":"","sources":["../src/ext-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAA+B,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AAEH;kFACkF;AAClF,SAAS,OAAO,CAAC,GAAuB,EAAE,MAAqB;IAC7D,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,YAAY;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,8FAA8F;QAC9F,SAAS,EAAE,GAAG,CAAC,GAAG;QAClB,KAAK,CAAC,GAAG;YACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,oCAAoC,CAAC,CAAC;QACpG,CAAC;KACiC,CAAC;AACvC,CAAC;AAED;;sFAEsF;AACtF,IAAI,OAA8B,CAAC;AACnC,MAAM,UAAU,iBAAiB,CAAC,QAAmB;IACnD,OAAO,GAAG,QAAQ,CAAC;AACrB,CAAC;AACD,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAU,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,OAAQ,GAAwC,CAAC,SAAS,KAAK,QAAQ,CAAC;AACjF,CAAC;AAED;0FAC0F;AAC1F,MAAM,UAAU,iBAAiB,CAAC,GAAa;IAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAU,SAAS,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,2DAA2D;IACpG,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC,UAAU,EAAE,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,qFAAqF;gBACrF,qFAAqF;gBACrF,2FAA2F;gBAC3F,OAAO,CAAC,KAAK,CACX,CAAC,CAAC,GAAG,CACH,MAAM,KAAK,EAAE;oBACX,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,gDAAgD,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,gDAAgD,GAAG,CAAC,GAAG,4CAA4C;oBACpM,CAAC,CAAC,cAAc,MAAM,CAAC,IAAI,oCAAoC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,MAAM,MAAM,yEAAyE,CAC3L,CACF,CAAC;gBACF,SAAS;YACX,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;mBAEmB;AACnB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAa;IAC7D,MAAM,GAAG,GAAI,IAAyC,CAAC,SAAS,CAAC;IACjE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,4BAA4B;IACnD,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC3E,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,0DAA0D,CAAC,CAAC;IACtG,MAAM,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,4CAA4C,mBAAmB,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;IAChJ,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,aAAa,GAAG,OAAO,MAAM,oCAAoC,GAAG,CAAC,OAAO,2EAA2E,GAAG,CAAC,IAAI,IAAI,CACpK,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAyC,CAAC;IACjH,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACpC,MAAM,GAAG,GAAI,IAAI,CAAC,OAA+C,EAAE,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,KAAK,GAAG,GAAG,CAAC;SACpC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,GAA6B,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,CAAC;SAAM,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oDAAoD;IAC1G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,sBAAuB,CAAW,CAAC,OAAO,oCAAoC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7I,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAU,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,mCAAmC,IAAI,CAAC,IAAI,sDAAsD,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAClJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export { runCli } from "./command.js";
2
2
  export { c, statusBadge } from "./ui.js";
3
+ export { spawnFlags } from "./commands/spawn.js";
4
+ export { START_TIMEOUT_MS } from "./lib/control.js";
5
+ export { launchAgent } from "./lib/manifest/live.js";
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuLA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwTA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}