@cotal-ai/cli 0.22.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.
- package/dist/commands/agents.d.ts +55 -0
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +381 -21
- package/dist/commands/agents.js.map +1 -1
- package/dist/lib/attach-client.d.ts +40 -1
- package/dist/lib/attach-client.d.ts.map +1 -1
- package/dist/lib/attach-client.js +109 -29
- package/dist/lib/attach-client.js.map +1 -1
- package/dist/lib/connect.d.ts +1 -1
- package/dist/lib/connect.d.ts.map +1 -1
- package/dist/lib/connect.js +1 -1
- package/dist/lib/connect.js.map +1 -1
- package/dist/lib/control.d.ts +14 -1
- package/dist/lib/control.d.ts.map +1 -1
- package/dist/lib/control.js +20 -5
- package/dist/lib/control.js.map +1 -1
- package/package.json +3 -3
|
@@ -71,6 +71,10 @@ 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
|
|
@@ -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,
|
|
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"}
|
package/dist/commands/agents.js
CHANGED
|
@@ -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,7 +19,11 @@ 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
|
-
|
|
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
|
|
@@ -280,44 +284,400 @@ export async function ps(args) {
|
|
|
280
284
|
printAgentRow(r, " ");
|
|
281
285
|
}
|
|
282
286
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
307
|
-
|
|
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
|
-
|
|
315
|
-
|
|
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
|
|
667
|
+
verdict = await runAttachLoop(v, on, reconnecting, detach, hold);
|
|
318
668
|
}
|
|
319
669
|
finally {
|
|
320
|
-
|
|
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":"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"}
|
|
@@ -34,13 +34,52 @@ export interface TerminalTransport {
|
|
|
34
34
|
/** Detach: signal the remote and stop locally. */
|
|
35
35
|
close(): void;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* The operator's terminal, held ACROSS attach attempts. A reconnect re-establishes the SESSION,
|
|
39
|
+
* not the terminal: restoring raw mode and leaving the child's alternate screen between attempts
|
|
40
|
+
* would flash the shell's screen back and then repaint over it, which is exactly the garble the
|
|
41
|
+
* reconnect is supposed to spare the operator. So the two facts that outlive one session — the
|
|
42
|
+
* mode the terminal was in before we touched it, and whether the child has us in its alternate
|
|
43
|
+
* screen — live here, and the undo runs exactly once, when the attach really ends.
|
|
44
|
+
*
|
|
45
|
+
* `attachClient` creates its own when no hold is passed, which is the one-shot behaviour: enter on
|
|
46
|
+
* ready, undo on end.
|
|
47
|
+
*/
|
|
48
|
+
export interface TerminalHold {
|
|
49
|
+
/** Raw mode on, remembering what we found. Idempotent across reconnects. */
|
|
50
|
+
enterRaw(): void;
|
|
51
|
+
/** Is the child in its alternate screen right now? Carried across reconnects so the final undo
|
|
52
|
+
* leaves that buffer exactly when the child put us there. */
|
|
53
|
+
altScreen: boolean;
|
|
54
|
+
/** Undo every mode we changed, leave the alternate screen if the child put us there, and give
|
|
55
|
+
* the terminal back the raw mode it had. Idempotent. */
|
|
56
|
+
restore(): void;
|
|
57
|
+
}
|
|
58
|
+
export declare function holdTerminal(): TerminalHold;
|
|
59
|
+
/**
|
|
60
|
+
* Why a session ended, as {@link attachClient} resolves it. The reason is the peer's distinct `end`
|
|
61
|
+
* reason, the transport's own (`detached`, `peer-closed`, `connection-closed`), or the broken
|
|
62
|
+
* rail's protocol-fault name. `error` is set when the end was a fault rather than a clean close;
|
|
63
|
+
* it is DATA here rather than a rejection, because a caller that reconnects has to read the reason
|
|
64
|
+
* to decide, and an exception carries it only as prose.
|
|
65
|
+
*/
|
|
66
|
+
export interface AttachOutcome {
|
|
67
|
+
readonly reason: string;
|
|
68
|
+
readonly error?: Error;
|
|
69
|
+
/** Did any seat output actually reach the terminal? The manager replays its backlog snapshot on
|
|
70
|
+
* every open, so a session that carried nothing never got that far — which is how a caller that
|
|
71
|
+
* reconnects tells a session that worked from one that died on the way up. */
|
|
72
|
+
readonly carried: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** Did the session end because the LINK broke (so re-establishing is the honest response)? */
|
|
75
|
+
export declare function isTransportEnd(reason: string): boolean;
|
|
37
76
|
/**
|
|
38
77
|
* Drive a manager's attach session from the terminal: raw-mode stdin streams to the remote PTY,
|
|
39
78
|
* PTY output streams to stdout, and SIGWINCH-style resizes are forwarded. The detach key (Ctrl-]
|
|
40
79
|
* by default, {@link detachKey}) detaches without killing the agent. Transport-agnostic over the
|
|
41
80
|
* mesh §13.6 session.
|
|
42
81
|
*/
|
|
43
|
-
export declare function attachClient(transport: TerminalTransport): Promise<
|
|
82
|
+
export declare function attachClient(transport: TerminalTransport, hold?: TerminalHold): Promise<AttachOutcome>;
|
|
44
83
|
/**
|
|
45
84
|
* The mesh §13.6 SESSION transport: the item-6 replacement for the loopback WebSocket. Given a
|
|
46
85
|
* connection scoped to the session's eps rails and the redeemed grant, it opens the caller rail,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-client.d.ts","sourceRoot":"","sources":["../../src/lib/attach-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAgF,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjI;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAYhF;AAwDD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1C;kEAC8D;IAC9D,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,uCAAuC;IACvC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"attach-client.d.ts","sourceRoot":"","sources":["../../src/lib/attach-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAgF,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjI;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAYhF;AAwDD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1C;kEAC8D;IAC9D,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,uCAAuC;IACvC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,IAAI,IAAI,CAAC;IACjB;kEAC8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB;6DACyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,YAAY,IAAI,YAAY,CAoB3C;AAYD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;mFAE+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAqBD,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CA2ItG;AAGD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA0D/F"}
|
|
@@ -70,13 +70,71 @@ const lastIndexOfRe = (re, s) => {
|
|
|
70
70
|
last = m.index;
|
|
71
71
|
return last;
|
|
72
72
|
};
|
|
73
|
+
export function holdTerminal() {
|
|
74
|
+
const stdin = process.stdin;
|
|
75
|
+
const wasRaw = stdin.isRaw ?? false;
|
|
76
|
+
let entered = false;
|
|
77
|
+
let restored = false;
|
|
78
|
+
return {
|
|
79
|
+
altScreen: false,
|
|
80
|
+
enterRaw() {
|
|
81
|
+
if (entered)
|
|
82
|
+
return;
|
|
83
|
+
entered = true;
|
|
84
|
+
if (stdin.isTTY)
|
|
85
|
+
stdin.setRawMode(true);
|
|
86
|
+
},
|
|
87
|
+
restore() {
|
|
88
|
+
if (restored)
|
|
89
|
+
return;
|
|
90
|
+
restored = true;
|
|
91
|
+
if (process.stdout.isTTY)
|
|
92
|
+
process.stdout.write(RESTORE + (this.altScreen ? ALT_LEAVE_SEQ : ""));
|
|
93
|
+
if (stdin.isTTY)
|
|
94
|
+
stdin.setRawMode(wasRaw);
|
|
95
|
+
stdin.pause();
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** Register the stdout EPIPE/EIO no-op ONCE for the process. Idempotent by construction: a
|
|
100
|
+
* reconnecting attach calls {@link attachClient} once per attempt and each call would otherwise
|
|
101
|
+
* add another listener that nothing ever removes. */
|
|
102
|
+
let stdoutErrorSwallowed = false;
|
|
103
|
+
function swallowStdoutPipeErrors() {
|
|
104
|
+
if (stdoutErrorSwallowed)
|
|
105
|
+
return;
|
|
106
|
+
stdoutErrorSwallowed = true;
|
|
107
|
+
process.stdout.on("error", () => { });
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The TRANSPORT-class end reasons: the link broke, the session did not finish. Every one of these
|
|
111
|
+
* means the seat is still there and a fresh session would reach it.
|
|
112
|
+
*
|
|
113
|
+
* The nine fault names are core's own, not a list invented here: `openSessionRail`'s
|
|
114
|
+
* `onProtocolError` documents its whole vocabulary as "the session is broken — close and
|
|
115
|
+
* re-establish" (SPEC 13.6). Added to them are the three ends that are not rail faults but are
|
|
116
|
+
* still the link dying: the peer closing its rail, and this side's NATS connection going away.
|
|
117
|
+
*
|
|
118
|
+
* Deliberately NOT here, so a reconnect never papers over a finished session: `detached` (the
|
|
119
|
+
* operator pressed the key), and the manager's terminal reasons — `process-exit` (the agent
|
|
120
|
+
* exited), `target-despawn`, `manager-restart`, `expired` (the grant's TTL elapsed). Those end the
|
|
121
|
+
* attach, and the CLI says which.
|
|
122
|
+
*/
|
|
123
|
+
const TRANSPORT_END_REASONS = new Set([
|
|
124
|
+
"garbled-frame", "gap", "credit-overrun", "flood", "subscription", "stall", "handler", "publish", "seq-exhausted",
|
|
125
|
+
"peer-closed", "closed", "connection-closed",
|
|
126
|
+
]);
|
|
127
|
+
/** Did the session end because the LINK broke (so re-establishing is the honest response)? */
|
|
128
|
+
export function isTransportEnd(reason) {
|
|
129
|
+
return TRANSPORT_END_REASONS.has(reason);
|
|
130
|
+
}
|
|
73
131
|
/**
|
|
74
132
|
* Drive a manager's attach session from the terminal: raw-mode stdin streams to the remote PTY,
|
|
75
133
|
* PTY output streams to stdout, and SIGWINCH-style resizes are forwarded. The detach key (Ctrl-]
|
|
76
134
|
* by default, {@link detachKey}) detaches without killing the agent. Transport-agnostic over the
|
|
77
135
|
* mesh §13.6 session.
|
|
78
136
|
*/
|
|
79
|
-
export function attachClient(transport) {
|
|
137
|
+
export function attachClient(transport, hold) {
|
|
80
138
|
// Resolve the detach key before connecting so a bad COTAL_DETACH_KEY fails loudly up front
|
|
81
139
|
// (matching the manager's other fail-fast exits) instead of after an attach we'd only tear down.
|
|
82
140
|
let detach;
|
|
@@ -87,17 +145,24 @@ export function attachClient(transport) {
|
|
|
87
145
|
console.error(c.red(`✗ ${e.message}`));
|
|
88
146
|
process.exit(1);
|
|
89
147
|
}
|
|
90
|
-
|
|
148
|
+
// A caller that reconnects owns the terminal across attempts and undoes it once at the end;
|
|
149
|
+
// without a hold this session owns it, which is the one-shot behaviour.
|
|
150
|
+
const ownsTerminal = hold === undefined;
|
|
151
|
+
const term = hold ?? holdTerminal();
|
|
152
|
+
return new Promise((resolve) => {
|
|
91
153
|
const stdin = process.stdin;
|
|
92
|
-
const wasRaw = stdin.isRaw ?? false;
|
|
93
154
|
// A broken local pipe (terminal closed / SIGHUP) makes stdout writes async-error on a later
|
|
94
155
|
// tick; with no listener that EPIPE/EIO becomes an uncaughtException — crashing on the per-frame
|
|
95
|
-
// PTY write or the on-detach restore write.
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
|
|
156
|
+
// PTY write or the on-detach restore write. It must outlive the async error tick, so it is NOT
|
|
157
|
+
// removed in cleanup — which is exactly why it is registered once per PROCESS rather than once
|
|
158
|
+
// per attempt: a reconnect loop calls this function again on every re-establishment, and one
|
|
159
|
+
// listener per attempt walks into MaxListenersExceededWarning during a long outage.
|
|
160
|
+
swallowStdoutPipeErrors();
|
|
161
|
+
// Wheel-scroll state (see MOUSE_ON above): whether the child is in the alternate screen (on the
|
|
162
|
+
// hold, since it outlives one session) and a buffer for an SGR mouse report split across stdin
|
|
163
|
+
// reads (per-session: bytes still in flight when a link dies are gone with it).
|
|
164
|
+
// Did this session ever put bytes on the terminal (see AttachOutcome.carried)?
|
|
165
|
+
let carried = false;
|
|
101
166
|
let mouseBuf = "";
|
|
102
167
|
// Carry the tail of the previous output frame so an alt-screen escape split across ws frames
|
|
103
168
|
// (e.g. `ESC[?10` then `49h`) is still detected; 16 bytes covers these private-mode sequences.
|
|
@@ -112,10 +177,10 @@ export function attachClient(transport) {
|
|
|
112
177
|
if (enter === -1 && leave === -1)
|
|
113
178
|
return;
|
|
114
179
|
const nowAlt = enter > leave;
|
|
115
|
-
if (nowAlt === altScreen)
|
|
180
|
+
if (nowAlt === term.altScreen)
|
|
116
181
|
return;
|
|
117
|
-
altScreen = nowAlt;
|
|
118
|
-
if (altScreen) {
|
|
182
|
+
term.altScreen = nowAlt;
|
|
183
|
+
if (term.altScreen) {
|
|
119
184
|
if (process.stdout.isTTY)
|
|
120
185
|
process.stdout.write(MOUSE_ON);
|
|
121
186
|
}
|
|
@@ -134,7 +199,7 @@ export function attachClient(transport) {
|
|
|
134
199
|
return;
|
|
135
200
|
}
|
|
136
201
|
// Inline child: forward keystrokes raw (its wheel scrolls the local terminal, not the app).
|
|
137
|
-
if (!altScreen) {
|
|
202
|
+
if (!term.altScreen) {
|
|
138
203
|
transport.send(d);
|
|
139
204
|
return;
|
|
140
205
|
}
|
|
@@ -181,36 +246,38 @@ export function attachClient(transport) {
|
|
|
181
246
|
stdin.off("data", onInput);
|
|
182
247
|
process.stdout.off("resize", sendResize);
|
|
183
248
|
// Undo terminal modes the (still-running) agent's TUI enabled — it won't restore us on detach.
|
|
184
|
-
// If the child put us in its alternate screen
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
|
|
249
|
+
// If the child put us in its alternate screen, leave it too so the terminal isn't stranded in
|
|
250
|
+
// the alt buffer; an inline child keeps its scrollback. Only when this session OWNS the
|
|
251
|
+
// terminal: a reconnecting caller undoes it once, after the last attempt, so the screen does
|
|
252
|
+
// not flash back to the shell and get repainted over between sessions.
|
|
253
|
+
if (ownsTerminal)
|
|
254
|
+
term.restore();
|
|
255
|
+
else
|
|
256
|
+
stdin.pause();
|
|
191
257
|
};
|
|
192
258
|
transport.onReady(() => {
|
|
193
259
|
// Make an override visible (the CLI's "attached to X — Ctrl-] to detach" hint still prints the
|
|
194
260
|
// default label). Only on override, so the default case stays free of duplicate noise.
|
|
195
261
|
if (detach.overridden)
|
|
196
262
|
console.error(c.dim(`detach key: ${detach.label} (via COTAL_DETACH_KEY)`));
|
|
197
|
-
|
|
198
|
-
stdin.setRawMode(true);
|
|
263
|
+
term.enterRaw();
|
|
199
264
|
stdin.resume();
|
|
200
265
|
sendResize();
|
|
201
266
|
process.stdout.on("resize", sendResize);
|
|
202
267
|
stdin.on("data", onInput);
|
|
203
268
|
});
|
|
204
269
|
transport.onData((data) => {
|
|
270
|
+
carried = true;
|
|
205
271
|
trackAltScreen(data);
|
|
206
272
|
process.stdout.write(data);
|
|
207
273
|
});
|
|
208
|
-
transport.onEnd((err) => {
|
|
274
|
+
transport.onEnd((err, reason) => {
|
|
209
275
|
cleanup();
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
276
|
+
// The reason is DATA, not an exception: a reconnecting caller reads it to decide whether the
|
|
277
|
+
// link broke or the session finished. A transport with nothing to say about a faulted end
|
|
278
|
+
// reports `error`, which is never in the transport-class set; the loop exits non-zero on it
|
|
279
|
+
// rather than calling it a detach, so an unnamed fault is still loud.
|
|
280
|
+
resolve({ reason: reason ?? (err ? "error" : "detached"), carried, ...(err ? { error: err } : {}) });
|
|
214
281
|
});
|
|
215
282
|
});
|
|
216
283
|
}
|
|
@@ -253,8 +320,16 @@ export function meshSessionTransport(nc, grant) {
|
|
|
253
320
|
onDataCb?.(Buffer.from(`\r\n[cotal: ${frame.bytes} bytes dropped - backpressure]\r\n`));
|
|
254
321
|
},
|
|
255
322
|
onClose: () => fireEnd(undefined, "peer-closed"),
|
|
256
|
-
|
|
323
|
+
// The fault NAME rides alongside the error. It used to live only inside the message, where the
|
|
324
|
+
// only way to tell a broken link from a finished session was to parse English.
|
|
325
|
+
onProtocolError: (reason) => fireEnd(new Error(`mesh session transport error: ${reason}`), reason),
|
|
257
326
|
});
|
|
327
|
+
// The connection going away ends the session, and says so. Without this a link that dies past the
|
|
328
|
+
// serving side's stall watchdog leaves the caller subscribed to a session nobody is serving: the
|
|
329
|
+
// manager's `end` and `close` frames were published while this side was disconnected and EPS has
|
|
330
|
+
// no retention, so they are simply gone, and the attach hangs on a dead session with no output,
|
|
331
|
+
// no error and no end. `nc.closed()` is the one signal that still arrives.
|
|
332
|
+
void nc.closed().then((err) => fireEnd(err ?? undefined, "connection-closed"));
|
|
258
333
|
// The caller's `out` subscription must be live before the serving side is asked to replay (EPS is
|
|
259
334
|
// at-most-once, no retention). flush() forces the SUB, then we send `ready` and go.
|
|
260
335
|
void nc.flush().then(() => {
|
|
@@ -265,7 +340,12 @@ export function meshSessionTransport(nc, grant) {
|
|
|
265
340
|
}
|
|
266
341
|
catch { /* broken/full: the onProtocolError path ends the session */ }
|
|
267
342
|
onReadyCb?.();
|
|
268
|
-
|
|
343
|
+
// A flush that FAILS means the connection went away before the session ever opened, which is the
|
|
344
|
+
// link and not the session. Without a reason here the end reads as a plain `error`, which is in
|
|
345
|
+
// no classification, so a reconnect would treat a link that died between connect() and the first
|
|
346
|
+
// flush as a finished session and stop: the exact failure this path exists to remove, in the
|
|
347
|
+
// window where a flapping link is most likely to land.
|
|
348
|
+
}).catch((e) => fireEnd(e, "connection-closed"));
|
|
269
349
|
return {
|
|
270
350
|
onReady: (cb) => { onReadyCb = cb; },
|
|
271
351
|
onData: (cb) => { onDataCb = cb; },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-client.js","sourceRoot":"","sources":["../../src/lib/attach-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attach-client.js","sourceRoot":"","sources":["../../src/lib/attach-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAqB,MAAM,gBAAgB,CAAC;AACjI,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAClF,MAAM,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,wDAAwD;YACvF,4CAA4C,CAC/C,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,SAAS,GAAG,oEAAoE,CAAC,CAAC,yBAAyB;AACjH,MAAM,OAAO,GACX,SAAS;IACT,aAAa,GAAG,sBAAsB;IACtC,aAAa,GAAG,sBAAsB;IACtC,UAAU,GAAG,+GAA+G;IAC5H,OAAO,GAAG,6BAA6B;IACvC,WAAW,GAAG,cAAc;IAC5B,SAAS,CAAC,CAAC,mBAAmB;AAEhC,mGAAmG;AACnG,sGAAsG;AACtG,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,kGAAkG;AAClG,uGAAuG;AACvG,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,sEAAsE;AAE3G,2FAA2F;AAC3F,mGAAmG;AACnG,sGAAsG;AACtG,kGAAkG;AAClG,sGAAsG;AACtG,+FAA+F;AAC/F,iGAAiG;AACjG,qGAAqG;AACrG,4FAA4F;AAC5F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,CAAC,qCAAqC;AAChF,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,iFAAiF;AACjF,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,gEAAgE;AAChE,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAE9C,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,CAAS,EAAU,EAAE;IACtD,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA8CF,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,QAAQ;YACN,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,KAAK,CAAC,KAAK;gBAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,IAAI,KAAK,CAAC,KAAK;gBAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;sDAEsD;AACtD,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,SAAS,uBAAuB;IAC9B,IAAI,oBAAoB;QAAE,OAAO;IACjC,oBAAoB,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAkBD;;;;;;;;;;;;;GAaG;AACH,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IACzD,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe;IACjH,aAAa,EAAE,QAAQ,EAAE,mBAAmB;CAC7C,CAAC,CAAC;AAEH,8FAA8F;AAC9F,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAA4B,EAAE,IAAmB;IAC5E,2FAA2F;IAC3F,iGAAiG;IACjG,IAAI,MAAoC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,4FAA4F;IAC5F,wEAAwE;IACxE,MAAM,YAAY,GAAG,IAAI,KAAK,SAAS,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC;IACpC,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,4FAA4F;QAC5F,iGAAiG;QACjG,+FAA+F;QAC/F,+FAA+F;QAC/F,6FAA6F;QAC7F,oFAAoF;QACpF,uBAAuB,EAAE,CAAC;QAE1B,gGAAgG;QAChG,+FAA+F;QAC/F,gFAAgF;QAChF,+EAA+E;QAC/E,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,6FAA6F;QAC7F,+FAA+F;QAC/F,sFAAsF;QACtF,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,iGAAiG;QACjG,MAAM,cAAc,GAAG,CAAC,IAAY,EAAQ,EAAE;YAC5C,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC7C,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAO;YACzC,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;YAC7B,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS;gBAAE,OAAO;YACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,wFAAwF;gBACxF,wFAAwF;gBACxF,QAAQ,GAAG,EAAE,CAAC;gBACd,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE,CACtB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3C,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,4FAA4F;YAC5F,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,6FAA6F;YAC7F,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,SAAS,CAAC;gBACR,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,4FAA4F;oBAC5F,0FAA0F;oBAC1F,yFAAyF;oBACzF,6BAA6B;oBAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChD,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;oBACjD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;oBAClD,MAAM;gBACR,CAAC;gBACD,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,0FAA0F;oBAC1F,+EAA+E;oBAC/E,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,QAAQ,GAAG,IAAI,CAAC;yBAC7C,CAAC;wBACJ,GAAG,IAAI,IAAI,CAAC;wBACZ,QAAQ,GAAG,EAAE,CAAC;oBAChB,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,GAAG,IAAI;oBAAE,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,wBAAwB;;oBACzE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iEAAiE;gBACnF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,GAAG;gBAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,+FAA+F;YAC/F,8FAA8F;YAC9F,wFAAwF;YACxF,6FAA6F;YAC7F,uEAAuE;YACvE,IAAI,YAAY;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;;gBAC5B,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC;QAEF,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE;YACrB,+FAA+F;YAC/F,uFAAuF;YACvF,IAAI,MAAM,CAAC,UAAU;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,GAAG,IAAI,CAAC;YACf,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC9B,OAAO,EAAE,CAAC;YACV,6FAA6F;YAC7F,0FAA0F;YAC1F,4FAA4F;YAC5F,sEAAsE;YACtE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAkB,EAAE,KAAmB;IAC1E,IAAI,QAA+C,CAAC;IACpD,IAAI,OAA6D,CAAC;IAClE,IAAI,SAAmC,CAAC;IACxC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,MAAe,EAAQ,EAAE;QACrD,IAAI,KAAK;YAAE,OAAO;QAClB,KAAK,GAAG,IAAI,CAAC;QACb,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,EAAE;QACF,KAAK;QACL,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO;YAAC,CAAC,CAAC,wCAAwC;YACrG,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM;gBAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACtE,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK;gBAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;iBACxD,IAAI,KAAK,CAAC,CAAC,KAAK,MAAM;gBAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,KAAK,oCAAoC,CAAC,CAAC,CAAC;QACvH,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC;QAChD,+FAA+F;QAC/F,+EAA+E;QAC/E,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;KACnG,CAAC,CAAC;IAEH,kGAAkG;IAClG,iGAAiG;IACjG,iGAAiG;IACjG,gGAAgG;IAChG,2EAA2E;IAC3E,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAE,GAAyB,IAAI,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEtG,kGAAkG;IAClG,oFAAoF;IACpF,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACxB,IAAI,KAAK;YAAE,OAAO;QAClB,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,4DAA4D,CAAC,CAAC;QACzG,SAAS,EAAE,EAAE,CAAC;QACd,iGAAiG;QACjG,gGAAgG;QAChG,iGAAiG;QACjG,6FAA6F;QAC7F,uDAAuD;IACzD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,CAAC;QACpK,0FAA0F;QAC1F,8FAA8F;QAC9F,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC;QAClI,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC"}
|
package/dist/lib/connect.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { connectOrExit, connectUserControlOrExit, endpointAuth, reachableOrExit, refuseStaticCredsForKnownUserAuthOrExit, resolveTargetOrExit, preflightOrExit, classifyPreflightFailure, userViewAuth, userViewAuthOrExit, type UserViewAuth, type ConnectFlags, type Connection, type RawAuth, type PreflightFailure, } from "@cotal-ai/workspace";
|
|
1
|
+
export { connectOrExit, connectOrThrow, ConnectRefusal, connectUserControlOrExit, endpointAuth, reachableOrExit, refuseStaticCredsForKnownUserAuthOrExit, resolveTargetOrExit, preflightOrExit, classifyPreflightFailure, userViewAuth, userViewAuthOrExit, type UserViewAuth, type ConnectFlags, type Connection, type RawAuth, type PreflightFailure, } from "@cotal-ai/workspace";
|
|
2
2
|
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/lib/connect.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,uCAAuC,EACvC,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/lib/connect.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,uCAAuC,EACvC,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
|
package/dist/lib/connect.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// The connect-or-exit wrappers moved into `@cotal-ai/workspace` (stage 4) so every command
|
|
2
2
|
// surface — this CLI and @cotal-ai/web — resolves meshes identically. Re-exported here
|
|
3
3
|
// so existing importers (and `connect.smoke.ts`) keep resolving them from this module unchanged.
|
|
4
|
-
export { connectOrExit, connectUserControlOrExit, endpointAuth, reachableOrExit, refuseStaticCredsForKnownUserAuthOrExit, resolveTargetOrExit, preflightOrExit, classifyPreflightFailure, userViewAuth, userViewAuthOrExit, } from "@cotal-ai/workspace";
|
|
4
|
+
export { connectOrExit, connectOrThrow, ConnectRefusal, connectUserControlOrExit, endpointAuth, reachableOrExit, refuseStaticCredsForKnownUserAuthOrExit, resolveTargetOrExit, preflightOrExit, classifyPreflightFailure, userViewAuth, userViewAuthOrExit, } from "@cotal-ai/workspace";
|
|
5
5
|
//# sourceMappingURL=connect.js.map
|
package/dist/lib/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/lib/connect.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,uFAAuF;AACvF,iGAAiG;AACjG,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,uCAAuC,EACvC,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAMnB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/lib/connect.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,uFAAuF;AACvF,iGAAiG;AACjG,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,uCAAuC,EACvC,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAMnB,MAAM,qBAAqB,CAAC"}
|
package/dist/lib/control.d.ts
CHANGED
|
@@ -33,7 +33,15 @@ export declare function resolveControlTarget(flags: ConnectFlags, profile: Profi
|
|
|
33
33
|
* so the one-shot credential carries the exact `ep.inst.…` rows for it. Omitted ⇒ class rails
|
|
34
34
|
* only, exactly as before. It has to arrive HERE rather than at the invoke: the instrument is
|
|
35
35
|
* minted during this resolve, and a credential cannot gain a rail after it is issued. */
|
|
36
|
-
instanceId?: string
|
|
36
|
+
instanceId?: string,
|
|
37
|
+
/** `onRefusal: "throw"` makes an unresolvable or unreachable mesh a THROWN
|
|
38
|
+
* {@link ConnectRefusal} instead of a printed sentence and `process.exit(1)`. A command that is
|
|
39
|
+
* one shot deep wants the exit; a loop that has to survive the broker being briefly gone (the
|
|
40
|
+
* attach reconnect) cannot use a path that ends the process, and "no mesh running at X - run
|
|
41
|
+
* `cotal up`" is the wrong answer to a link that is coming back. */
|
|
42
|
+
opts?: {
|
|
43
|
+
onRefusal?: "exit" | "throw";
|
|
44
|
+
}): Promise<{
|
|
37
45
|
space: string;
|
|
38
46
|
server: string;
|
|
39
47
|
auth: ControlAuth;
|
|
@@ -48,8 +56,13 @@ export type ControlReach = "owner" | "any";
|
|
|
48
56
|
* deadline elapsed with nothing attributed to the request). `up`'s resume readiness poll keys on it;
|
|
49
57
|
* it used to key on the message prefix, which turned an operator-facing string into a control-flow
|
|
50
58
|
* predicate in another file. */
|
|
59
|
+
/** The manager's error CODE, when there was one. A caller that has to DECIDE on a refusal — the
|
|
60
|
+
* attach loop distinguishing "you may not" from "that seat is gone" from "try again" — was left
|
|
61
|
+
* matching English, because both renderings below collapse the envelope to
|
|
62
|
+
* `message ?? code` and the code is the only stable half. */
|
|
51
63
|
export type ManagerReply = ControlReply & {
|
|
52
64
|
unanswered?: boolean;
|
|
65
|
+
code?: string;
|
|
53
66
|
};
|
|
54
67
|
/** What the calling command declares about pinning. Passed ONLY by a command that offers `--on`
|
|
55
68
|
* (`ps`, `stop`, `attach`, `spawn --detach`), with `instanceId` set to what the operator typed, if
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/lib/control.ts"],"names":[],"mappings":"AAAA,OAAO,EAqBL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAEvB,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOjG,OAAO,
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/lib/control.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/control.js
CHANGED
|
@@ -3,7 +3,7 @@ import { PermissionViolationError, connect } from "@nats-io/transport-node";
|
|
|
3
3
|
import { jetstreamManager } from "@nats-io/jetstream";
|
|
4
4
|
import { authDir, endpointAuth, findCotalRoot, isWorkspaceTargetError, loadSpaceAuth, resolveMeshTarget, pruneStaleMeshes, renderWorkspaceError, soleSpaceOf, } from "@cotal-ai/workspace";
|
|
5
5
|
import { c, staleStoreHint } from "../ui.js";
|
|
6
|
-
import { connectOrExit, connectUserControlOrExit } from "./connect.js";
|
|
6
|
+
import { connectOrExit, connectOrThrow, connectUserControlOrExit } from "./connect.js";
|
|
7
7
|
/** The only {@link MeshTargetErrorCode}s that mean "there is NO registry entry here", and so the
|
|
8
8
|
* only ones the mode peek in {@link resolveControlTarget} may absorb. **Every other code is
|
|
9
9
|
* NON-ABSENCE and must fail loud** — which is the precise claim, and covers more than one
|
|
@@ -36,7 +36,14 @@ export async function resolveControlTarget(flags, profile,
|
|
|
36
36
|
* so the one-shot credential carries the exact `ep.inst.…` rows for it. Omitted ⇒ class rails
|
|
37
37
|
* only, exactly as before. It has to arrive HERE rather than at the invoke: the instrument is
|
|
38
38
|
* minted during this resolve, and a credential cannot gain a rail after it is issued. */
|
|
39
|
-
instanceId
|
|
39
|
+
instanceId,
|
|
40
|
+
/** `onRefusal: "throw"` makes an unresolvable or unreachable mesh a THROWN
|
|
41
|
+
* {@link ConnectRefusal} instead of a printed sentence and `process.exit(1)`. A command that is
|
|
42
|
+
* one shot deep wants the exit; a loop that has to survive the broker being briefly gone (the
|
|
43
|
+
* attach reconnect) cannot use a path that ends the process, and "no mesh running at X - run
|
|
44
|
+
* `cotal up`" is the wrong answer to a link that is coming back. */
|
|
45
|
+
opts = {}) {
|
|
46
|
+
const connect_ = opts.onRefusal === "throw" ? connectOrThrow : connectOrExit;
|
|
40
47
|
const withSpace = flags.creds
|
|
41
48
|
? { ...flags, space: flags.space ?? soleSpaceOf(authDir(findCotalRoot())) ?? DEFAULT_SPACE }
|
|
42
49
|
: flags;
|
|
@@ -96,7 +103,7 @@ instanceId) {
|
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
// Static / open / raw-creds: mint the requested instrument (or bare open connect).
|
|
99
|
-
const conn = await
|
|
106
|
+
const conn = await connect_(withSpace, profile, ...(instanceId !== undefined ? [{ instanceId }] : []));
|
|
100
107
|
return {
|
|
101
108
|
space: conn.space,
|
|
102
109
|
server: conn.server,
|
|
@@ -170,7 +177,11 @@ async function askManagerEp(space, server, op, args, auth, reach, timeoutMs, pin
|
|
|
170
177
|
// the spawn-scoped user bearers - the 1c.2b read narrowing - and hangs their stop/attach).
|
|
171
178
|
const info = await invokeCommand(nc, space, service, "inspect", { name }, { deadlineMs: 10_000 });
|
|
172
179
|
if (info.reply.ok !== true)
|
|
173
|
-
return {
|
|
180
|
+
return {
|
|
181
|
+
ok: false,
|
|
182
|
+
error: `could not resolve "${name}": ${info.reply.error?.message ?? info.reply.error?.code ?? "inspect failed"}`,
|
|
183
|
+
...(info.reply.error?.code ? { code: info.reply.error.code } : {}),
|
|
184
|
+
};
|
|
174
185
|
const row = info.reply.data;
|
|
175
186
|
// A STATIC row's `id` is the bare actor under the caller's own owner; a USER-mode row's `id`
|
|
176
187
|
// is the composite `owner.actor` principal key - split it (an embedded dot would break the
|
|
@@ -204,7 +215,11 @@ async function askManagerEp(space, server, op, args, auth, reach, timeoutMs, pin
|
|
|
204
215
|
? await submitAndFollowGoal(nc, space, BASELINE_LIFECYCLE_ENDPOINT, caller, timeoutMs ?? START_TIMEOUT_MS, submit)
|
|
205
216
|
: await submit();
|
|
206
217
|
if (r.reply.ok !== true)
|
|
207
|
-
return {
|
|
218
|
+
return {
|
|
219
|
+
ok: false,
|
|
220
|
+
error: r.reply.error?.message ?? r.reply.error?.code ?? "error",
|
|
221
|
+
...(r.reply.error?.code ? { code: r.reply.error.code } : {}),
|
|
222
|
+
};
|
|
208
223
|
// The ep `models` reply is normalized to `{catalogs}` — unwrap so call sites keep the ctl shape.
|
|
209
224
|
const data = mapped.command === "models" ? r.reply.data.catalogs : r.reply.data;
|
|
210
225
|
return { ok: true, ...(data !== undefined ? { data } : {}) };
|
package/dist/lib/control.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/lib/control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/lib/control.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/cli",
|
|
3
3
|
"description": "Cotal mesh CLI: up, join, watch, console, spawn, mint, channels, history, ext.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.23.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
29
|
"zod": "^4.4.3",
|
|
30
30
|
"ws": "^8.21.0",
|
|
31
|
-
"@cotal-ai/core": "0.
|
|
32
|
-
"@cotal-ai/workspace": "0.
|
|
31
|
+
"@cotal-ai/core": "0.23.0",
|
|
32
|
+
"@cotal-ai/workspace": "0.23.0"
|
|
33
33
|
},
|
|
34
34
|
"optionalDependencies": {
|
|
35
35
|
"@eplightning/nats-server-darwin-arm64": "^2.14.0",
|