@cotal-ai/cli 0.21.0 → 0.23.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.
@@ -71,13 +71,17 @@ export declare const attachFlags: readonly [{
71
71
  readonly type: "string";
72
72
  readonly value: "<instance>";
73
73
  readonly description: "target a specific manager instance id (multi-manager space); default = class anycast";
74
+ }, {
75
+ readonly name: "no-reconnect";
76
+ readonly type: "boolean";
77
+ readonly description: "exit when the session ends instead of re-establishing it";
74
78
  }];
75
79
  /** `cotal input`: type into a seat without holding a terminal open. `--text` is a VALUE flag, so
76
80
  * its argument is taken verbatim and may begin with `/` or `-` (`--text "/compact"`) - which is
77
81
  * the point: a harness command is exactly the payload that would be eaten by a positional
78
82
  * grammar. `--no-enter` is a declared boolean literally named `no-enter` rather than a negation
79
83
  * of an `enter` flag: node's `parseArgs` does not negate under `strict`, and the CLI already
80
- * spells this shape (`--no-open`, `--no-replay`, `--no-transcript`). */
84
+ * spells this shape (`--no-open`, `--no-replay`). */
81
85
  export declare const inputFlags: readonly [{
82
86
  readonly name: "space";
83
87
  readonly type: "string";
@@ -116,6 +120,56 @@ export declare const inputFlags: readonly [{
116
120
  export declare function managedAgentComplete(argv: string[]): CompletionResult;
117
121
  export declare function stop(args: ParsedArgs): Promise<void>;
118
122
  export declare function ps(args: ParsedArgs): Promise<void>;
123
+ /** What a caller should DO about a manager refusal. `denied` will not change by asking again;
124
+ * `gone` is the seat the manager no longer knows, so there is nothing left to attach to; anything
125
+ * else is worth another attempt. */
126
+ export type AttachRefusal = "denied" | "gone" | "transient";
127
+ /**
128
+ * Classify a refusal on the manager's error CODE, never on its wording. The wording is operator
129
+ * copy and changes; the code is the contract. Getting this wrong in either direction is a real
130
+ * failure: reading `permission-denied` as transient turns a refusal into an infinite retry loop
131
+ * against a manager that has already said no, and reading `not-found` as transient does the same
132
+ * to a seat that no longer exists.
133
+ */
134
+ export declare function attachRefusal(code: string | undefined): AttachRefusal;
135
+ /**
136
+ * What a re-establishment TELLS the operator while it keeps trying, and what it keeps to itself.
137
+ * Returns the line to print, or undefined for silence.
138
+ *
139
+ * Only the MANAGER's own refusal is relayed, and only when it changes. An operator watching
140
+ * `reconnecting` for ten minutes cannot otherwise tell a sleeping laptop from a manager that is at
141
+ * its session ceiling, and the ceiling is the one a person can act on. Repeating a steady refusal
142
+ * on every attempt would bury it.
143
+ *
144
+ * A LOCAL failure to reach anything is deliberately silent: it is already what `connection lost,
145
+ * reconnecting` says, and the copy on this path is written for someone who just typed a command
146
+ * ("no mesh running at X - run `cotal up`"), which is the wrong thing to tell someone whose wifi
147
+ * dropped.
148
+ */
149
+ export declare function reconnectNotice(est: {
150
+ fromManager?: true;
151
+ message: string;
152
+ }, alreadySaid: string): string | undefined;
153
+ /**
154
+ * The line an exit owes an operator about sessions this attach could not hand back, or nothing.
155
+ *
156
+ * Suppressed on `gone`, and that is not tidiness. That verdict exists because the manager answered
157
+ * `not-found`, which it only answers once the seat has been freed, and freeing a seat ends every
158
+ * session bound to it (`freeSlot` into `endForTarget`, on despawn, self-stop, reap and natural exit
159
+ * alike). The sessions this would name have already been collected, so naming them would be
160
+ * inventing work for someone who is about to close their terminal.
161
+ */
162
+ export declare function heldSessionNotice(pending: number, verdict: AttachVerdict["kind"]): string | undefined;
163
+ /** How the attach finished, decided inside the loop and acted on outside it — so the terminal is
164
+ * always given back before anything prints or exits. */
165
+ type AttachVerdict = {
166
+ kind: "ended";
167
+ } | {
168
+ kind: "gone";
169
+ } | {
170
+ kind: "failed";
171
+ message: string;
172
+ };
119
173
  export declare function attach(args: ParsedArgs): Promise<void>;
120
174
  /**
121
175
  * `cotal input --name <seat> --text <text> [--no-enter]`: deliver one line of text into a running
@@ -129,4 +183,5 @@ export declare function attach(args: ParsedArgs): Promise<void>;
129
183
  * delivered.
130
184
  */
131
185
  export declare function input(args: ParsedArgs): Promise<void>;
186
+ export {};
132
187
  //# sourceMappingURL=agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,gBAAgB,EAAkC,KAAK,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAuB1K,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;EAAgH,CAAC;AACvI,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;EAAkE,CAAC;AACvF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;EAAqH,CAAC;AAC9I;;;;;yEAKyE;AACzE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMiB,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAQrE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1D;AA8JD,wBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FxD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3D"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,gBAAgB,EAAkC,KAAK,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAuB3L,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;EAAgH,CAAC;AACvI,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;EAAkE,CAAC;AAKvF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsI,CAAC;AAC/J;;;;;sDAKsD;AACtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMiB,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAQrE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1D;AA8JD,wBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FxD;AAuDD;;qCAEqC;AACrC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAIrE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE;IAAE,WAAW,CAAC,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrH;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAIrG;AAiRD;yDACyD;AACzD,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB3D"}
@@ -1,9 +1,9 @@
1
- import { mintCreds, newIdentity, standaloneConnectOpts } from "@cotal-ai/core";
1
+ import { mintCreds, newIdentity, openSessionRail, standaloneConnectOpts } from "@cotal-ai/core";
2
2
  import { authDir, findCotalRoot, loadMeshes, loadSpaceAuth, targetFlags } from "@cotal-ai/workspace";
3
3
  import { connect } from "@nats-io/transport-node";
4
4
  import { c } from "../ui.js";
5
5
  import { askManager, scatterManager, failIfNotOk, resolveControlTarget, onInstanceOrExit } from "../lib/control.js";
6
- import { attachClient, detachKey, meshSessionTransport } from "../lib/attach-client.js";
6
+ import { attachClient, detachKey, holdTerminal, isTransportEnd, meshSessionTransport } from "../lib/attach-client.js";
7
7
  import { completingFlagValue } from "../lib/completion.js";
8
8
  /**
9
9
  * The manager's operator clients — thin control-plane request/reply commands (`stop`/`ps`/
@@ -19,13 +19,17 @@ const nameFlag = (what) => ({ name: "name", type: "string", value: "<n>", descri
19
19
  const onFlag = { name: "on", type: "string", value: "<instance>", description: "target a specific manager instance id (multi-manager space); default = class anycast" };
20
20
  export const stopFlags = [...targetFlags, nameFlag("managed agent to stop (required)"), onFlag];
21
21
  export const psFlags = [...targetFlags, onFlag];
22
- export const attachFlags = [...targetFlags, nameFlag("managed agent to attach to (required)"), onFlag];
22
+ /** `--no-reconnect`: one session, exit when it ends, whatever ended it. The default reconnects,
23
+ * which is right for a person at a terminal and wrong for a script that wants a single run with a
24
+ * single exit code. */
25
+ const noReconnectFlag = { name: "no-reconnect", type: "boolean", description: "exit when the session ends instead of re-establishing it" };
26
+ export const attachFlags = [...targetFlags, nameFlag("managed agent to attach to (required)"), onFlag, noReconnectFlag];
23
27
  /** `cotal input`: type into a seat without holding a terminal open. `--text` is a VALUE flag, so
24
28
  * its argument is taken verbatim and may begin with `/` or `-` (`--text "/compact"`) - which is
25
29
  * the point: a harness command is exactly the payload that would be eaten by a positional
26
30
  * grammar. `--no-enter` is a declared boolean literally named `no-enter` rather than a negation
27
31
  * of an `enter` flag: node's `parseArgs` does not negate under `strict`, and the CLI already
28
- * spells this shape (`--no-open`, `--no-replay`, `--no-transcript`). */
32
+ * spells this shape (`--no-open`, `--no-replay`). */
29
33
  export const inputFlags = [
30
34
  ...targetFlags,
31
35
  nameFlag("managed agent to type into (required)"),
@@ -280,44 +284,400 @@ export async function ps(args) {
280
284
  printAgentRow(r, " ");
281
285
  }
282
286
  }
283
- export async function attach(args) {
284
- const v = args.values;
285
- if (!v.name) {
286
- console.error(c.red("--name is required"));
287
- process.exit(1);
287
+ /** Re-establishment backoff, in order; the last value is the cap and repeats forever. A seat that
288
+ * exists is worth waiting for — the operator asked to be attached to it, and the alternative is
289
+ * the terminal they walked away from being gone when they come back. */
290
+ const RECONNECT_BACKOFF_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
291
+ /** How long any single wait on a LINK may take before the loop stops waiting on it. Neither
292
+ * `flush()` nor `drain()` carries a deadline of its own, and `connect`'s `timeout` covers only the
293
+ * dial: a link that half-opens AFTER connect (the exact slow death this command exists for) would
294
+ * otherwise pin the loop, and the detach key with it, until the connection's own heartbeat gave up
295
+ * around two minutes later. */
296
+ const LINK_DEADLINE_MS = 5_000;
297
+ /** Race a link round trip against a deadline, and answer `no` if the deadline wins. The timer is
298
+ * deliberately NOT unref'd: it is the only thing keeping the process alive while we wait on a
299
+ * socket that will never answer, and an unref'd one lets node empty its loop and abort the whole
300
+ * command on a pending await instead of finishing the wait and printing why. It is cleared as soon
301
+ * as either side settles, so a healthy link is never held open for the remainder of the deadline. */
302
+ const withDeadline = async (work, ms) => {
303
+ let timer;
304
+ const deadline = new Promise((r) => { timer = setTimeout(() => r(false), ms); });
305
+ try {
306
+ return await Promise.race([work, deadline]);
307
+ }
308
+ finally {
309
+ clearTimeout(timer);
288
310
  }
311
+ };
312
+ /** Did a flush RETURN inside the deadline? That, and not the publish, is what says a frame left:
313
+ * publishing is a local buffer write. A rejection and a timeout are the same answer here, `no`. */
314
+ const flushed = (nc) => withDeadline(nc.flush().then(() => true, () => false), LINK_DEADLINE_MS);
315
+ /** Give a connection back, bounded. Draining is another flush, so a link that has already missed
316
+ * its deadline is closed outright instead of being asked to drain through the same dead socket.
317
+ * A drain that REJECTS has closed nothing either: it gives up inside that same flush, before the
318
+ * close it would have done, so a rejection means close it here or leak the socket. */
319
+ const closeLink = async (nc) => {
320
+ const drained = await withDeadline(nc.drain().then(() => true, () => false), LINK_DEADLINE_MS);
321
+ // The close gets the same deadline as everything else on this path. Tearing a socket down is
322
+ // local work and should not be able to wait at all, but "should not" is what the drain above was
323
+ // supposed to be too, and a bound that covers every wait but one is a bound with a footnote.
324
+ if (!drained)
325
+ await withDeadline(nc.close().then(() => true, () => true), LINK_DEADLINE_MS);
326
+ };
327
+ /** A session that ran at least this long counts as one that WORKED, whether or not the seat spoke.
328
+ * Below it, a link that comes up for the control round trip and dies again is a flap, and resetting
329
+ * the backoff on those re-mints a grant, a credential and a hand-back connection every second. */
330
+ const SESSION_WORKED_MS = 5_000;
331
+ /**
332
+ * Classify a refusal on the manager's error CODE, never on its wording. The wording is operator
333
+ * copy and changes; the code is the contract. Getting this wrong in either direction is a real
334
+ * failure: reading `permission-denied` as transient turns a refusal into an infinite retry loop
335
+ * against a manager that has already said no, and reading `not-found` as transient does the same
336
+ * to a seat that no longer exists.
337
+ */
338
+ export function attachRefusal(code) {
339
+ if (code === "permission-denied")
340
+ return "denied";
341
+ if (code === "not-found")
342
+ return "gone";
343
+ return "transient";
344
+ }
345
+ /**
346
+ * What a re-establishment TELLS the operator while it keeps trying, and what it keeps to itself.
347
+ * Returns the line to print, or undefined for silence.
348
+ *
349
+ * Only the MANAGER's own refusal is relayed, and only when it changes. An operator watching
350
+ * `reconnecting` for ten minutes cannot otherwise tell a sleeping laptop from a manager that is at
351
+ * its session ceiling, and the ceiling is the one a person can act on. Repeating a steady refusal
352
+ * on every attempt would bury it.
353
+ *
354
+ * A LOCAL failure to reach anything is deliberately silent: it is already what `connection lost,
355
+ * reconnecting` says, and the copy on this path is written for someone who just typed a command
356
+ * ("no mesh running at X - run `cotal up`"), which is the wrong thing to tell someone whose wifi
357
+ * dropped.
358
+ */
359
+ export function reconnectNotice(est, alreadySaid) {
360
+ if (!est.fromManager || est.message === alreadySaid)
361
+ return undefined;
362
+ return `[cotal: ${est.message}]`;
363
+ }
364
+ /**
365
+ * The line an exit owes an operator about sessions this attach could not hand back, or nothing.
366
+ *
367
+ * Suppressed on `gone`, and that is not tidiness. That verdict exists because the manager answered
368
+ * `not-found`, which it only answers once the seat has been freed, and freeing a seat ends every
369
+ * session bound to it (`freeSlot` into `endForTarget`, on despawn, self-stop, reap and natural exit
370
+ * alike). The sessions this would name have already been collected, so naming them would be
371
+ * inventing work for someone who is about to close their terminal.
372
+ */
373
+ export function heldSessionNotice(pending, verdict) {
374
+ if (pending < 1 || verdict === "gone")
375
+ return undefined;
376
+ const what = pending === 1 ? "a session" : `${pending} sessions`;
377
+ return `[cotal: the manager still holds ${what} from the lost link; each frees when the seat or the manager ends it]`;
378
+ }
379
+ /**
380
+ * Ask the manager for a session and open it: a FRESH grant, a FRESH per-session caller credential,
381
+ * a FRESH connection, every time. Nothing is carried over from a previous attempt, so a reconnect
382
+ * re-runs the manager's whole authorization path (`serveGated` → `authorizeNamed` → a one-use
383
+ * holder-bound grant with its own TTL) exactly as the first attach did. A revoked or expired grant
384
+ * cannot be kept alive by reconnecting, because no grant is ever presented twice.
385
+ */
386
+ async function establishAttachSession(v, on, reconnect, first) {
387
+ // A reconnect must never cross a path that can END THE PROCESS. The mesh resolve and its
388
+ // preflight are written to do exactly that ("no mesh running at X - run `cotal up`"), which is
389
+ // the right answer for a person who just typed a command and the wrong one for a link that is
390
+ // coming back. So a RE-ESTABLISHMENT asks for the throwing form and treats the refusal as the
391
+ // transient it is.
392
+ //
393
+ // Keyed off `first`, NOT off the reconnect flag, and the difference is user-visible. A refusal
394
+ // that escapes as an exception is rendered by the dispatcher's generic handler, which prints
395
+ // `✗ ${message}` over a sentence that already opens with `✗` and drops the refusal's hint line.
396
+ // The reconnect flag is on by DEFAULT, so keying on it sent the very first attach down that path
397
+ // and turned today's "no mesh running at X - run `cotal up`" into a double mark with no remedy.
398
+ // The first attempt is not a re-establishment and has nothing to survive for.
399
+ //
400
+ // `pinForTarget` is deliberately not crossed here: seat locality is resolved ONCE, before the
401
+ // loop, and the pin is carried in. It is the other step on this path that exits.
289
402
  // Same reach routing as stop: static mesh → any-mode on the `control-caller-admin` instrument;
290
403
  // user mesh → the operator's own bearer with owner reach, the manager deciding (own owner-domain
291
404
  // passes with "spawn", cross-owner needs ledger "admin").
292
- // Same seat-locality rule as stop, and it matters more here: attaching to a seat means reaching
293
- // the process, which only its host manager has.
294
- const on = await pinForTarget(v, "cotal attach");
295
- const t = await resolveControlTarget(v, "control-caller-admin", on);
405
+ const t = await resolveControlTarget(v, "control-caller-admin", on, first ? {} : { onRefusal: "throw" });
296
406
  const reach = t.auth.bearer ? "owner" : "any";
297
407
  const reply = await askManager(t.space, t.server, "attach", { name: v.name }, t.auth, reach, undefined, { instanceId: on });
298
- failIfNotOk(reply);
408
+ if (!reply.ok)
409
+ return { ok: false, kind: attachRefusal(reply.code), message: reply.error ?? "error", fromManager: true };
299
410
  // P2 item 6: the reply is the holder-bound §13.6 session GRANT (no ws:// URL). Redeem it over the
300
411
  // mesh — mint a per-session, rails-only caller cred from the local space seed, connect, and drive
301
412
  // the terminal through the session rail. USER mesh (bearer, no local seed): refuse LOUD — the
302
413
  // 2-step user-mode redemption callout is the #29 follow-up, deliberately not wired here.
303
414
  const { grant } = reply.data;
304
415
  const auth = loadSpaceAuth(authDir(findCotalRoot()), t.space);
305
- if (!auth) {
306
- console.error(c.red("mesh attach needs the local space seed (static auth mesh); user-mode session redemption is the #29 callout follow-up, not wired yet"));
307
- process.exit(1);
308
- }
416
+ if (!auth)
417
+ return {
418
+ ok: false, kind: "fatal",
419
+ message: "mesh attach needs the local space seed (static auth mesh); user-mode session redemption is the #29 callout follow-up, not wired yet",
420
+ };
309
421
  const id = newIdentity();
310
422
  const creds = await mintCreds(auth, id, "session-caller", {
311
423
  sessionCaller: { endpoint: grant.endpoint, sessionId: grant.sessionId, epoch: grant.serving.epoch },
312
424
  expiresAt: Math.floor(grant.exp / 1000), // grant.exp is ms (now+ttlMs); the JWT exp is seconds
313
425
  });
314
- const nc = await connect({ servers: t.server, ...standaloneConnectOpts({ creds, tls: false }), inboxPrefix: `_INBOX_${id.id}`, maxReconnectAttempts: -1 });
315
- console.error(c.dim(`attached to ${v.name} - ${detachKey().label} to detach`));
426
+ // maxReconnectAttempts is the whole difference between the two modes, and it is deliberate.
427
+ // ONE-SHOT keeps the old -1: the NATS layer redials forever under a single session.
428
+ // RECONNECTING uses 0, because that redial is what breaks the attach rather than saving it — the
429
+ // session is already dead by the time the link comes back (the serving rail either kept
430
+ // advancing `seq` into a subject nobody was subscribed to, so the restored subscription faults
431
+ // with `gap`, or it stalled out and closed while this side was away, so nothing ever arrives
432
+ // again). Owning re-establishment here means the link coming back produces a real session with a
433
+ // real repaint, instead of a restored socket over a session that ended without us.
434
+ const nc = await connect({
435
+ servers: t.server,
436
+ ...standaloneConnectOpts({ creds, tls: false }),
437
+ inboxPrefix: `_INBOX_${id.id}`,
438
+ maxReconnectAttempts: reconnect ? 0 : -1,
439
+ // Detection latency is part of the defect, not a detail of it. A laptop waking from sleep does
440
+ // not always get a socket error: the connection can sit half-open, and on the stock two-minute
441
+ // ping with two misses the client would not learn its link was dead for about four minutes,
442
+ // with the terminal frozen the whole time. Ten seconds puts that in tens of seconds. Only on
443
+ // the reconnecting path, so `--no-reconnect` keeps today's timing along with today's exit.
444
+ //
445
+ // NOT MEASURED by this change's suite, and said so rather than implied: the smoke severs the
446
+ // link by destroying sockets, so every number it prints is close detection. A fault model that
447
+ // half-opens a link is what would grade this line, and it does not exist here yet.
448
+ ...(reconnect ? { pingInterval: 10_000 } : {}),
449
+ });
450
+ return { ok: true, nc, grant, creds, inbox: id.id, server: t.server };
451
+ }
452
+ /**
453
+ * Tell the manager a session is over, so it gets its slot back.
454
+ *
455
+ * NOTHING on the serving side reaps a session whose caller went away while the seat is quiet: the
456
+ * rail's stall watchdog only arms once the send window FILLS (`endpoint-session-rail.ts`), an idle
457
+ * seat never fills it, and the bridge has no expiry timer of its own. Measured against a manager
458
+ * with an idle seat: 45s of dead link left the live-session count at 1, and the reconnect took it
459
+ * to 2 — one slot per outage, held until the seat or the manager ends it, against a ceiling of 64.
460
+ *
461
+ * The mechanism is the advisory close frame the rail already defines; the manager's bridge ends on
462
+ * it. It has to be published with THIS session's caller credential, the only one scoped to this
463
+ * session's subjects, so a re-establishment cannot send it on the abandoned session's behalf — a
464
+ * fresh session's credential covers a fresh session's subjects. Hence a short-lived connection
465
+ * minted from the credential the abandoned session already had.
466
+ */
467
+ async function releaseAbandonedSession(s) {
468
+ const nc = await connect({
469
+ servers: s.server,
470
+ ...standaloneConnectOpts({ creds: s.creds, tls: false }),
471
+ inboxPrefix: `_INBOX_${s.inbox}`,
472
+ maxReconnectAttempts: 0,
473
+ timeout: LINK_DEADLINE_MS,
474
+ // The same short ping the reconnecting session uses. This connection exists BECAUSE a link died,
475
+ // so it is the last one that should be left waiting on the stock two-minute heartbeat to find
476
+ // out that the replacement died too.
477
+ pingInterval: 10_000,
478
+ });
479
+ try {
480
+ // The rail is opened only because `close()` is the public way to speak the framing; no timers,
481
+ // and it tears itself down on the same call.
482
+ openSessionRail({ nc, grant: s.grant, role: "caller", onData: () => { }, idleCreditMs: 0, stallTimeoutMs: 0 }).close();
483
+ // Throwing is what keeps the record: the caller holds the session until a flush RETURNS.
484
+ if (!(await flushed(nc)))
485
+ throw new Error(`the close frame for session ${s.grant.sessionId} never left`);
486
+ }
487
+ finally {
488
+ await closeLink(nc);
489
+ }
490
+ }
491
+ /** Watch stdin for the detach key while there is NO session reading it. Without this the key is
492
+ * dead for as long as a reconnect takes, which is exactly when an operator is most likely to give
493
+ * up and press it. Non-detach keystrokes are dropped: there is no seat to send them to, and
494
+ * buffering them would replay a burst into the agent on reconnect. */
495
+ function watchDetachKey(byte) {
496
+ const stdin = process.stdin;
497
+ let hit;
498
+ const pressed = new Promise((r) => { hit = r; });
499
+ const onData = (d) => { if (d.length === 1 && d[0] === byte)
500
+ hit(); };
501
+ stdin.on("data", onData);
502
+ stdin.resume();
503
+ return { pressed, stop: () => { stdin.off("data", onData); stdin.pause(); } };
504
+ }
505
+ /**
506
+ * The attach loop. One session at a time; when the LINK breaks and the operator did not detach, it
507
+ * re-establishes with backoff and keeps going, because the seat is still there and the terminal the
508
+ * operator walked away from should still be theirs when they come back.
509
+ */
510
+ async function runAttachLoop(vv, pin, reconnect, key, hold) {
511
+ let first = true;
512
+ let attempt = 0; // consecutive re-establishment attempts since the last live session
513
+ // Sessions the manager still counts, waiting to be told. A LIST rather than one slot: a second
514
+ // link death before the first hand-back lands would overwrite the first and leak it with nothing
515
+ // said. It cannot grow without bound, because every entry needed a successful establishment, and
516
+ // successful establishments are exactly what the manager's own session ceiling counts.
517
+ const abandoned = [];
518
+ let saidWhy = ""; // the last transient refusal printed, so a steady reason prints once, not per attempt
519
+ // Give the manager its slots back. Oldest first, and one failure ends the round rather than
520
+ // skipping ahead, because the reason is the link and the link is the same for all of them.
521
+ const releaseAbandoned = async () => {
522
+ while (abandoned.length > 0) {
523
+ try {
524
+ await releaseAbandonedSession(abandoned[0]);
525
+ abandoned.shift();
526
+ }
527
+ catch {
528
+ break;
529
+ }
530
+ }
531
+ };
532
+ // Every exit runs through here, so the one thing an operator cannot see for themselves is never
533
+ // swallowed. It TRIES first: an operator who detaches during the backoff may well be doing it
534
+ // because the link came back, and returning straight out would leave a slot held that one dial
535
+ // would have freed. The attempt is bounded exactly like every other, and what it could not
536
+ // deliver is what gets said. What to say, and when to say nothing, is `heldSessionNotice`.
537
+ const done = async (v) => {
538
+ if (v.kind !== "gone")
539
+ await releaseAbandoned();
540
+ const notice = heldSessionNotice(abandoned.length, v.kind);
541
+ if (notice)
542
+ console.error(c.dim(notice));
543
+ return v;
544
+ };
545
+ for (;;) {
546
+ if (!first) {
547
+ // Back off BEFORE the attempt, and stay interruptible: the detach key must work while we
548
+ // wait, not only while a session is up. The timer is CLEARED rather than left to the race,
549
+ // because losing a `Promise.race` does not stop a `setTimeout`: the detach is honoured at
550
+ // once, the terminal comes back and `detached from` prints, and then node holds the process
551
+ // open until the abandoned timer fires. On the 30s rung that is half a minute of a shell that
552
+ // has already said it detached and will not give the prompt back. Measured before this line
553
+ // existed: press to first output 0.1s, press to EXIT 27.0s with the next attempt 26.9s away,
554
+ // and 8.3s with it 8.1s away, tracking the rung rather than the work.
555
+ const ms = RECONNECT_BACKOFF_MS[Math.min(attempt, RECONNECT_BACKOFF_MS.length - 1)];
556
+ const watch = watchDetachKey(key.byte);
557
+ let timer;
558
+ const waited = new Promise((r) => { timer = setTimeout(() => r(false), ms); });
559
+ const detached = await Promise.race([waited, watch.pressed.then(() => true)]);
560
+ clearTimeout(timer);
561
+ watch.stop();
562
+ if (detached)
563
+ return await done({ kind: "ended" });
564
+ attempt++;
565
+ }
566
+ // Give the manager its slots back BEFORE claiming another one. The order is load-bearing at the
567
+ // ceiling: a client that claims first is refused by the very sessions it abandoned. A failure
568
+ // is retried on the next attempt and accounted for by `done` if it never lands.
569
+ await releaseAbandoned();
570
+ let est;
571
+ try {
572
+ est = await establishAttachSession(vv, pin, reconnect, first);
573
+ }
574
+ catch (e) {
575
+ // The FIRST attempt throws exactly as it always has — the CLI's top-level handler renders
576
+ // it. Only a reconnect turns a thrown establishment into another attempt.
577
+ if (first)
578
+ throw e;
579
+ est = { ok: false, kind: "transient", message: e.message };
580
+ }
581
+ if (!est.ok) {
582
+ // Nothing changes for the first attach: any refusal is the same loud exit as before.
583
+ if (first || est.kind === "fatal" || est.kind === "denied")
584
+ return await done({ kind: "failed", message: est.message });
585
+ if (est.kind === "gone")
586
+ return await done({ kind: "gone" });
587
+ const notice = reconnectNotice(est, saidWhy);
588
+ if (notice) {
589
+ saidWhy = est.message;
590
+ console.error(c.dim(notice));
591
+ }
592
+ continue; // transient: the manager or the link is unreachable right now
593
+ }
594
+ saidWhy = "";
595
+ if (first)
596
+ console.error(c.dim(`attached to ${vv.name} - ${key.label} to detach`));
597
+ else
598
+ console.error(c.dim("[cotal: reconnected]"));
599
+ first = false;
600
+ let outcome;
601
+ const startedAt = Date.now();
602
+ const transport = meshSessionTransport(est.nc, est.grant);
603
+ try {
604
+ // The manager replays its byte-exact backlog snapshot on every open (the `ready` handshake
605
+ // in session/bridge.ts), so the reconnected screen repaints through the path that already
606
+ // exists; there is no second backlog here.
607
+ outcome = await attachClient(transport, hold);
608
+ }
609
+ finally {
610
+ // Hand the session back. With the link still up that is one advisory frame over the
611
+ // connection already open (a rail that broke while the socket lived — a stall, a gap — is
612
+ // exactly this case, and it is idempotent after a detach has already closed it). The FLUSH is
613
+ // what decides whether it left, not the publish: a link can die between the closed-check and
614
+ // the frame, which is the same slow death this whole change is about. Only a flush that
615
+ // returned counts as handed back; anything else keeps the credential for the next attempt,
616
+ // and see releaseAbandonedSession for why no other credential can carry it.
617
+ let handedBack = false;
618
+ if (!est.nc.isClosed()) {
619
+ transport.close();
620
+ handedBack = await flushed(est.nc);
621
+ }
622
+ if (!handedBack && reconnect) {
623
+ abandoned.push({ grant: est.grant, creds: est.creds, inbox: est.inbox, server: est.server });
624
+ }
625
+ await closeLink(est.nc);
626
+ }
627
+ // The backoff resets on a session that WORKED, not on one that merely opened. `carried` is not
628
+ // enough on its own: a seat that has produced nothing has an empty backlog snapshot, so a
629
+ // perfectly healthy attach to a QUIET agent would never reset and would climb to the 30s cap
630
+ // over a few blips, which is the seat this whole change cares most about. A session that simply
631
+ // lasted is the other half of the same question.
632
+ if (outcome.carried || Date.now() - startedAt >= SESSION_WORKED_MS)
633
+ attempt = 0;
634
+ if (!reconnect) {
635
+ // One-shot: a faulted session still throws, so `--no-reconnect` exits the way it does today.
636
+ if (outcome.error)
637
+ throw outcome.error;
638
+ return await done({ kind: "ended" });
639
+ }
640
+ if (!isTransportEnd(outcome.reason)) {
641
+ // A faulted end this classification does not recognise is NOT a detach. Printing
642
+ // `detached from` over it would be the silent swallow this whole change exists to remove,
643
+ // so it exits non-zero carrying the fault. Every `fireEnd` site passes a reason today, so
644
+ // this is a guard against a future one that forgets, not a live path.
645
+ if (outcome.error)
646
+ return await done({ kind: "failed", message: outcome.error.message });
647
+ return await done({ kind: "ended" });
648
+ }
649
+ console.error(c.dim("[cotal: connection lost, reconnecting]"));
650
+ }
651
+ }
652
+ export async function attach(args) {
653
+ const v = args.values;
654
+ if (!v.name) {
655
+ console.error(c.red("--name is required"));
656
+ process.exit(1);
657
+ }
658
+ const reconnecting = v["no-reconnect"] !== true;
659
+ // Seat-locality first, exactly as `stop` does it: attaching to a seat means reaching the process,
660
+ // which only its host manager has. Resolved ONCE — the seat does not move between reconnects, and
661
+ // a manager that stops answering is a transient the loop already retries through.
662
+ const on = await pinForTarget(v, "cotal attach");
663
+ const detach = detachKey();
664
+ const hold = holdTerminal();
665
+ let verdict;
316
666
  try {
317
- await attachClient(meshSessionTransport(nc, grant));
667
+ verdict = await runAttachLoop(v, on, reconnecting, detach, hold);
318
668
  }
319
669
  finally {
320
- await nc.drain().catch(() => nc.close());
670
+ // The terminal comes back before anything else happens, whatever ended the attach — including
671
+ // a throw out of the one-shot path, which is how `--no-reconnect` keeps its old exit.
672
+ hold.restore();
673
+ }
674
+ if (verdict.kind === "failed") {
675
+ console.error(c.red(`✗ ${verdict.message}`));
676
+ process.exit(1);
677
+ }
678
+ if (verdict.kind === "gone") {
679
+ console.error(c.dim(`\nseat ${v.name} is gone`));
680
+ return;
321
681
  }
322
682
  console.error(c.dim(`\ndetached from ${v.name}`));
323
683
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAA6F,MAAM,gBAAgB,CAAC;AAC3L,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,OAAO,EAAuB,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAgC,MAAM,mBAAmB,CAAC;AAClJ,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAqB,MAAM,yBAAyB,CAAC;AACzI,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAChC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAU,CAAC;AAE/E;;;qCAGqC;AACrC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,sFAAsF,EAAW,CAAC;AACjL,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,EAAE,QAAQ,CAAC,kCAAkC,CAAC,EAAE,MAAM,CAAwC,CAAC;AACvI,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,EAAE,MAAM,CAAwC,CAAC;AACvF;;wBAEwB;AACxB,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0DAA0D,EAAW,CAAC;AACpJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,QAAQ,CAAC,uCAAuC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAwC,CAAC;AAC/J;;;;;sDAKsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,WAAW;IACd,QAAQ,CAAC,uCAAuC,CAAC;IACjD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,4EAA4E,EAAE;IAC5I,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACnG,MAAM;CACgC,CAAC;AAEzC,MAAM,UAAU,oBAAoB,CAAC,IAAc;IACjD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO;QAAE,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;IAClH,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACvE,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACzH,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAsC,CAAC;IACtD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,+FAA+F;IAC/F,wFAAwF;IACxF,cAAc;IACd,0FAA0F;IAC1F,2FAA2F;IAC3F,6FAA6F;IAC7F,yFAAyF;IACzF,iGAAiG;IACjG,kGAAkG;IAClG,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1H,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,8FAA8F;IAC9F,sFAAsF;IACtF,6EAA6E;IAC7E,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtI,CAAC;AAcD,oEAAoE;AACpE,SAAS,SAAS,CAAC,EAAU;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AAC5C,CAAC;AAyBD,KAAK,UAAU,UAAU,CAAC,CAA+B,EAAE,IAAY;IACrE,+FAA+F;IAC/F,+FAA+F;IAC/F,4FAA4F;IAC5F,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,wDAAwD;IACtG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3F,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,IAA+B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IAC5G,IAAI,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;AACpE,CAAC;AAED;qFACqF;AACrF,KAAK,UAAU,YAAY,CAAC,CAA+B,EAAE,IAAY;IACvE,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IAC9C,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC9C,8FAA8F;IAC9F,6FAA6F;IAC7F,8FAA8F;IAC9F,6FAA6F;IAC7F,+DAA+D;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM;QACnC,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,uEAAuE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,qJAAqJ,IAAI,gDAAgD;QACtU,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,IAAI,mBAAmB,GAAG,CAAC,OAAO,gDAAgD,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,gBAAgB,CAAC,QAA6C,EAAE,UAAkB;IACzF,IAAI,QAAQ,KAAK,MAAM;QACrB,OAAO,CACL,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,+FAA+F,CAAC;YACtG,CAAC,CAAC,GAAG,CAAC,iEAAiE,UAAU,EAAE,CAAC,CACrF,CAAC;IACJ,MAAM,GAAG,GACP,QAAQ,KAAK,eAAe;QAC1B,CAAC,CAAC,2FAA2F;QAC7F,CAAC,CAAC,QAAQ,KAAK,YAAY;YACzB,CAAC,CAAC,0EAA0E;YAC5E,CAAC,CAAC,yFAAyF,CAAC;IAClG,OAAO,CAAC,CAAC,GAAG,CAAC,2CAA2C,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;mCASmC;AACnC,SAAS,aAAa,CAAC,CAAW,EAAE,MAAM,GAAG,EAAE;IAC7C,MAAM,IAAI,GACR,CAAC,CAAC,MAAM,KAAK,SAAS;QACpB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ;YACrB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GACR,CAAC,CAAC,IAAI,KAAK,QAAQ;QACjB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;YACpB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;YACvB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;gBACpB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;oBACpB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;oBACrB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,+FAA+F;IAC/F,iDAAiD;IACjD,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CACtE,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CACzB,KAAK,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3E,CAAC;IACF,kGAAkG;IAClG,mEAAmE;IACnE,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAgB;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAoC,CAAC;IACpD,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9C,4FAA4F;IAC5F,kFAAkF;IAClF,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACzE,iGAAiG;IACjG,yEAAyE;IACzE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACnH,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,IAAI,GAAI,KAAK,CAAC,IAAmB,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,4FAA4F;IAC5F,6FAA6F;IAC7F,sBAAsB;IACtB,EAAE;IACF,sFAAsF;IACtF,0FAA0F;IAC1F,yFAAyF;IACzF,wFAAwF;IACxF,wFAAwF;IACxF,EAAE;IACF,+FAA+F;IAC/F,+FAA+F;IAC/F,uBAAuB;IACvB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,8FAA8F;QAC9F,+DAA+D;QAC/D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACnG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,IAAI,GAAI,KAAK,CAAC,IAAmB,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,mEAAmE;IACnE,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAChG,CAAC;IACF,gGAAgG;IAChG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAmB,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,oGAAoG;IACpG,EAAE;IACF,gGAAgG;IAChG,gGAAgG;IAChG,6FAA6F;IAC7F,4FAA4F;IAC5F,iGAAiG;IACjG,6FAA6F;IAC7F,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,6FAA6F;YAC7F,4FAA4F;YAC5F,kDAAkD;YAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrF,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAI,IAAI,CAAC,IAAmB,IAAI,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7H,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;yEAEyE;AACzE,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAG5E;;;;gCAIgC;AAChC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B;;;;sGAIsG;AACtG,MAAM,YAAY,GAAG,KAAK,EAAE,IAAsB,EAAE,EAAU,EAAoB,EAAE;IAClF,IAAI,KAAgD,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC;QAAC,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAAC,CAAC;YAAS,CAAC;QAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;AACvF,CAAC,CAAC;AAEF;oGACoG;AACpG,MAAM,OAAO,GAAG,CAAC,EAAkB,EAAoB,EAAE,CACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAE3E;;;uFAGuF;AACvF,MAAM,SAAS,GAAG,KAAK,EAAE,EAAkB,EAAiB,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC/F,6FAA6F;IAC7F,iGAAiG;IACjG,6FAA6F;IAC7F,IAAI,CAAC,OAAO;QAAE,MAAM,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF;;mGAEmG;AACnG,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAchC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,GAA4C,EAAE,WAAmB;IAC/F,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACtE,OAAO,WAAW,GAAG,CAAC,OAAO,GAAG,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,OAA8B;IAC/E,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,CAAC;IACjE,OAAO,mCAAmC,IAAI,uEAAuE,CAAC;AACxH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,sBAAsB,CACnC,CAAiC,EACjC,EAAsB,EACtB,SAAkB,EAClB,KAAc;IAEd,yFAAyF;IACzF,+FAA+F;IAC/F,8FAA8F;IAC9F,8FAA8F;IAC9F,mBAAmB;IACnB,EAAE;IACF,+FAA+F;IAC/F,6FAA6F;IAC7F,gGAAgG;IAChG,iGAAiG;IACjG,gGAAgG;IAChG,8EAA8E;IAC9E,EAAE;IACF,8FAA8F;IAC9F,iFAAiF;IACjF,+FAA+F;IAC/F,iGAAiG;IACjG,0DAA0D;IAC1D,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5H,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzH,kGAAkG;IAClG,kGAAkG;IAClG,8FAA8F;IAC9F,yFAAyF;IACzF,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAA+B,CAAC;IACxD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI;QACP,OAAO;YACL,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO;YACxB,OAAO,EAAE,qIAAqI;SAC/I,CAAC;IACJ,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE;QACxD,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;QACnG,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,sDAAsD;KAChG,CAAC,CAAC;IACH,4FAA4F;IAC5F,oFAAoF;IACpF,iGAAiG;IACjG,wFAAwF;IACxF,+FAA+F;IAC/F,6FAA6F;IAC7F,iGAAiG;IACjG,mFAAmF;IACnF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC/C,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;QAC9B,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,+FAA+F;QAC/F,+FAA+F;QAC/F,4FAA4F;QAC5F,6FAA6F;QAC7F,2FAA2F;QAC3F,EAAE;QACF,6FAA6F;QAC7F,+FAA+F;QAC/F,mFAAmF;QACnF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACxE,CAAC;AAKD;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,uBAAuB,CAAC,CAAY;IACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACxD,WAAW,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE;QAChC,oBAAoB,EAAE,CAAC;QACvB,OAAO,EAAE,gBAAgB;QACzB,iGAAiG;QACjG,8FAA8F;QAC9F,qCAAqC;QACrC,YAAY,EAAE,MAAM;KACrB,CAAC,CAAC;IACH,IAAI,CAAC;QACH,+FAA+F;QAC/F,6CAA6C;QAC7C,eAAe,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACtH,yFAAyF;QACzF,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,SAAS,aAAa,CAAC,CAAC;IAC3G,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;uEAGuE;AACvE,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,GAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,CAAC,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAC1B,EAAkC,EAClC,GAAuB,EACvB,SAAkB,EAClB,GAAiC,EACjC,IAAkB;IAElB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,oEAAoE;IACrF,+FAA+F;IAC/F,iGAAiG;IACjG,iGAAiG;IACjG,uFAAuF;IACvF,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC,sFAAsF;IACxG,4FAA4F;IAC5F,2FAA2F;IAC3F,MAAM,gBAAgB,GAAG,KAAK,IAAmB,EAAE;QACjD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM;YAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IACF,gGAAgG;IAChG,8FAA8F;IAC9F,+FAA+F;IAC/F,2FAA2F;IAC3F,2FAA2F;IAC3F,MAAM,IAAI,GAAG,KAAK,EAAE,CAAgB,EAA0B,EAAE;QAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,SAAS,CAAC;QACR,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,yFAAyF;YACzF,2FAA2F;YAC3F,0FAA0F;YAC1F,4FAA4F;YAC5F,8FAA8F;YAC9F,4FAA4F;YAC5F,6FAA6F;YAC7F,sEAAsE;YACtE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAgD,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9E,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,QAAQ;gBAAE,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,gGAAgG;QAChG,8FAA8F;QAC9F,gFAAgF;QAChF,MAAM,gBAAgB,EAAE,CAAC;QACzB,IAAI,GAAgB,CAAC;QACrB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0FAA0F;YAC1F,0EAA0E;YAC1E,IAAI,KAAK;gBAAE,MAAM,CAAC,CAAC;YACnB,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,qFAAqF;YACrF,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACxH,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/B,CAAC;YACD,SAAS,CAAC,8DAA8D;QAC1E,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC;;YAC9E,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,KAAK,GAAG,KAAK,CAAC;QACd,IAAI,OAAO,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,2FAA2F;YAC3F,0FAA0F;YAC1F,2CAA2C;YAC3C,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,oFAAoF;YACpF,0FAA0F;YAC1F,8FAA8F;YAC9F,6FAA6F;YAC7F,wFAAwF;YACxF,2FAA2F;YAC3F,4EAA4E;YAC5E,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACvB,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,+FAA+F;QAC/F,0FAA0F;QAC1F,6FAA6F;QAC7F,gGAAgG;QAChG,iDAAiD;QACjD,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,iBAAiB;YAAE,OAAO,GAAG,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,6FAA6F;YAC7F,IAAI,OAAO,CAAC,KAAK;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC;YACvC,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,iFAAiF;YACjF,0FAA0F;YAC1F,0FAA0F;YAC1F,sEAAsE;YACtE,IAAI,OAAO,CAAC,KAAK;gBAAE,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzF,OAAO,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAwC,CAAC;IACxD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAChD,kGAAkG;IAClG,kGAAkG;IAClG,kFAAkF;IAClF,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,CAAU,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,IAAI,OAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;YAAS,CAAC;QACT,8FAA8F;QAC9F,sFAAsF;QACtF,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAEpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAgB;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAuC,CAAC;IACvD,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,2FAA2F;IAC3F,+FAA+F;IAC/F,+FAA+F;IAC/F,4FAA4F;IAC5F,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,CAAU,EAAE,aAAa,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACxK,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAuC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,KAAK,UAAU,EAGhB,MAAM,gBAAgB,CAAC;AAKxB;;;;oGAIoG;AACpG,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA8I1D"}
1
+ {"version":3,"file":"mint.d.ts","sourceRoot":"","sources":["../../src/commands/mint.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,KAAK,UAAU,EAGhB,MAAM,gBAAgB,CAAC;AAKxB;;;;oGAIoG;AACpG,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmK1D"}