@cotal-ai/manager 0.48.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +4 -2
  2. package/dist/commands.d.ts +1 -0
  3. package/dist/commands.d.ts.map +1 -1
  4. package/dist/commands.js +136 -41
  5. package/dist/commands.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/manager-service-contract.d.ts.map +1 -1
  10. package/dist/manager-service-contract.js +17 -2
  11. package/dist/manager-service-contract.js.map +1 -1
  12. package/dist/manager.d.ts +190 -26
  13. package/dist/manager.d.ts.map +1 -1
  14. package/dist/manager.js +772 -203
  15. package/dist/manager.js.map +1 -1
  16. package/dist/remote-authority.d.ts +22 -2
  17. package/dist/remote-authority.d.ts.map +1 -1
  18. package/dist/remote-authority.js +124 -2
  19. package/dist/remote-authority.js.map +1 -1
  20. package/dist/remote-register.d.ts.map +1 -1
  21. package/dist/remote-register.js +5 -1
  22. package/dist/remote-register.js.map +1 -1
  23. package/dist/resume.d.ts +5 -0
  24. package/dist/resume.d.ts.map +1 -1
  25. package/dist/resume.js +14 -2
  26. package/dist/resume.js.map +1 -1
  27. package/dist/run-hosting.d.ts +24 -3
  28. package/dist/run-hosting.d.ts.map +1 -1
  29. package/dist/run-hosting.js +97 -8
  30. package/dist/run-hosting.js.map +1 -1
  31. package/dist/runtime/custodial-pty.d.ts +10 -3
  32. package/dist/runtime/custodial-pty.d.ts.map +1 -1
  33. package/dist/runtime/custodial-pty.js +27 -5
  34. package/dist/runtime/custodial-pty.js.map +1 -1
  35. package/dist/runtime/index.d.ts +50 -0
  36. package/dist/runtime/index.d.ts.map +1 -1
  37. package/dist/runtime/index.js +34 -0
  38. package/dist/runtime/index.js.map +1 -1
  39. package/dist/runtime/pty.d.ts.map +1 -1
  40. package/dist/runtime/pty.js +28 -26
  41. package/dist/runtime/pty.js.map +1 -1
  42. package/dist/session/plane.d.ts +2 -1
  43. package/dist/session/plane.d.ts.map +1 -1
  44. package/dist/session/plane.js +3 -2
  45. package/dist/session/plane.js.map +1 -1
  46. package/dist/static-lifecycle.d.ts +1 -0
  47. package/dist/static-lifecycle.d.ts.map +1 -1
  48. package/dist/static-lifecycle.js +5 -0
  49. package/dist/static-lifecycle.js.map +1 -1
  50. package/package.json +11 -10
@@ -44,7 +44,8 @@
44
44
  import { randomBytes } from "node:crypto";
45
45
  import { credsAuthenticator } from "@nats-io/transport-node";
46
46
  import { jetstream, jetstreamManager } from "@nats-io/jetstream";
47
- import { COTAL_LANG_RUN_HOST, DEFAULT_SERVER, EpEnvelopeError, LANG_PROBLEM_DETAIL_KIND, RUN_ACTIVATION_WAIT_MS, RUN_HOST_KIND, dialerFor, inspectCredHealth, mintCreds, newIdentity, newTakeoverId, openRecordsBucket, readRunProgram, readRunRecord, registry, standaloneConnectOpts, walkKvEntries, } from "@cotal-ai/core";
47
+ import { Kvm } from "@nats-io/kv";
48
+ import { COTAL_LANG_RUN_HOST, DEFAULT_SERVER, EpEnvelopeError, LANG_PROBLEM_DETAIL_KIND, RUN_ACTIVATION_WAIT_MS, RUN_HOST_KIND, dialerFor, inspectCredHealth, mintCreds, newIdentity, newTakeoverId, admissionBucket, createRunAdmission, readRunAdmission, revokeRunAdmission, withIssuerSession, isIssuedCaller, EP_UNBOUND_CALLER_AUTHORITY, openRecordsBucket, readRunProgram, readRunRecord, registry, standaloneConnectOpts, walkKvEntries, } from "@cotal-ai/core";
48
49
  const DEFAULT_CHECKPOINT_TIMEOUT = "1h";
49
50
  /** How many launches (start or resume) may be in their activation wait at once. Each holds a
50
51
  * standing connection and a minted credential; past this a caller is refused `resource-exhausted`
@@ -70,8 +71,15 @@ export class RunHosting {
70
71
  if (!this.reconciled)
71
72
  throw new EpEnvelopeError("unavailable", "the manager is still taking back the workflow runs a predecessor was driving; retry shortly (SPEC 14.3)");
72
73
  }
73
- /** `run-start`: validate, mint the id, launch the drive, answer. The drive continues off-handler. */
74
- async start(args) {
74
+ /** `run-start`: validate, mint the id, ADMIT the run under the caller's issued authority
75
+ * (SPEC 14.8), launch the drive, answer. The drive continues off-handler.
76
+ *
77
+ * Admission is what confines the run: the caller's request rode the versioned rail, so the
78
+ * broker pinned its generation; the evidence the issuer recorded for that generation is
79
+ * resolved (active, source live, linearized by a second read) and its ceiling becomes the
80
+ * run's channel ceiling. A legacy arrival carries no binding and is refused by name, never
81
+ * routed through the host's own authority. */
82
+ async start(ctx, args) {
75
83
  this.assertReconciled();
76
84
  const host = this.host();
77
85
  const verdict = host.validate(args.source, args.file);
@@ -85,6 +93,7 @@ export class RunHosting {
85
93
  // Minted here, never caller-supplied: the records table binds run-id minting to the driver.
86
94
  // 128 bits, the width the spec's other minted identifiers carry.
87
95
  const runId = `run-${randomBytes(16).toString("hex")}`;
96
+ const admission = await this.admit(ctx, runId);
88
97
  await this.launch(host, {
89
98
  mode: "new",
90
99
  runId,
@@ -93,9 +102,68 @@ export class RunHosting {
93
102
  epoch: 1,
94
103
  fencingToken: 1,
95
104
  timeout: args.timeout ?? DEFAULT_CHECKPOINT_TIMEOUT,
105
+ admission,
96
106
  });
97
107
  return { runId };
98
108
  }
109
+ /** Resolve the caller's issued authority and write the run's admission record, create-only,
110
+ * BEFORE the driver is launched and before the start reply. The ceiling is the evidence's,
111
+ * verbatim; nothing is read from a mutable ledger or an agent file. */
112
+ async admit(ctx, runId) {
113
+ const caller = ctx.subject.caller;
114
+ const auth = this.ctx.auth;
115
+ if (auth === undefined)
116
+ throw new EpEnvelopeError("unimplemented", `an open mesh issues no caller authority and keeps no admission, so it hosts no run in space ${this.ctx.space}; runs need a static-auth mesh (SPEC 14.8)`);
117
+ if (ctx.subject.rail !== "v1" || !isIssuedCaller(caller))
118
+ throw new EpEnvelopeError("permission-denied", `run-start binds a run to the caller's issued authority, and this request rode the legacy rail with none; re-mint the credential as an issuance and call on the versioned rail (SPEC 13.15, 14.8)`, [{ kind: EP_UNBOUND_CALLER_AUTHORITY, owner: caller.owner, actor: caller.actor, uid: caller.uid }]);
119
+ const ref = { space: this.ctx.space, owner: caller.owner, actor: caller.actor, uid: caller.uid, generation: caller.generation };
120
+ const resolved = await withIssuerSession({ servers: this.ctx.servers ?? DEFAULT_SERVER, space: this.ctx.space, auth, tls: false }, (s) => s.store.resolve(ref, s.sourceIsLive));
121
+ const admission = {
122
+ version: 1,
123
+ space: this.ctx.space,
124
+ endpoint: this.ctx.endpoint,
125
+ runId,
126
+ instanceId: this.ctx.instanceId,
127
+ caller,
128
+ ceiling: resolved.evidence.permissions,
129
+ provenance: { kind: "issued", ref, resolvedRevision: resolved.revision },
130
+ admittedAt: Date.now(),
131
+ };
132
+ await this.withAdmitter(runId, (kv) => createRunAdmission(kv, admission));
133
+ return { admission, revoked: undefined };
134
+ }
135
+ /** One admission-store write over an ephemeral `run-admitter` credential pinned to this run. */
136
+ async withAdmitter(runId, fn) {
137
+ const auth = this.ctx.auth;
138
+ if (auth === undefined)
139
+ throw new EpEnvelopeError("unimplemented", "an open mesh admits no hosted run (SPEC 14.8)");
140
+ const nc = await dialerFor(this.ctx.servers ?? DEFAULT_SERVER)({
141
+ servers: this.ctx.servers ?? DEFAULT_SERVER,
142
+ ...standaloneConnectOpts({
143
+ creds: await mintCreds(auth, newIdentity(), "run-admitter", { runAdmitter: { endpoint: this.ctx.endpoint, runId } }),
144
+ /* not yet wired to a recorded transport */ tls: false,
145
+ }),
146
+ maxReconnectAttempts: 0,
147
+ });
148
+ try {
149
+ return await fn(await new Kvm(nc).open(admissionBucket(this.ctx.space)));
150
+ }
151
+ finally {
152
+ await nc.drain().catch(() => nc.close());
153
+ }
154
+ }
155
+ /** The admission a resume, takeover or reconcile continues under: the ORIGINAL record, with
156
+ * its current revocation state. A new requester cannot widen it; a run with none was admitted
157
+ * before SPEC 14.8 or by a host that never admitted it, and is not resumed here. */
158
+ async admitted(runId) {
159
+ return await this.withOperator({ runId }, (planes) => readRunAdmission(planes.jsm, this.ctx.space, this.ctx.endpoint, runId));
160
+ }
161
+ /** Revoke a hosted run (SPEC 14.8): the marker is create-only and independent of the immutable
162
+ * admission; every later channel effect of the run refuses on reading it, and a drive parked in
163
+ * a wait ends within one poll. Idempotent. */
164
+ async revoke(runId, by, reason) {
165
+ await this.withAdmitter(runId, (kv) => revokeRunAdmission(kv, this.ctx.endpoint, { version: 1, runId, by, reason, revokedAt: Date.now() }));
166
+ }
99
167
  /** `run-resume`: take a recorded run over under a fresh takeover and continue it from its journal.
100
168
  * The source is the recorded program; a run started before programs were recorded has no
101
169
  * hosted resume, and says so. The slot is claimed before the record read, so a second resume
@@ -106,12 +174,17 @@ export class RunHosting {
106
174
  const slot = this.claim(args.runId);
107
175
  let found;
108
176
  try {
109
- found = await this.withOperator({ runId: args.runId }, async (_planes, kv) => {
177
+ found = await this.withOperator({ runId: args.runId }, async (planes, kv) => {
110
178
  const record = await readRunRecord(kv, this.ctx.endpoint, args.runId);
111
179
  if (record === undefined)
112
180
  return undefined;
113
181
  const program = await readRunProgram(kv, this.ctx.endpoint, args.runId);
114
- return { status: record.status?.value, program };
182
+ // The ORIGINAL admission, with its current revocation state (SPEC 14.8): a resume never
183
+ // re-admits under the resuming caller, and a revoked run is not continued.
184
+ const admission = await readRunAdmission(planes.jsm, this.ctx.space, this.ctx.endpoint, args.runId);
185
+ if (admission.revoked !== undefined)
186
+ throw new EpEnvelopeError("permission-denied", `run ${args.runId} was revoked by ${admission.revoked.by} (${admission.revoked.reason}); a revoked run is not resumed (SPEC 14.8)`);
187
+ return { status: record.status?.value, program, admission };
115
188
  });
116
189
  if (found === undefined)
117
190
  throw new EpEnvelopeError("not-found", `run ${args.runId}: no record on endpoint ${this.ctx.endpoint}; a run that was never started cannot be resumed`);
@@ -129,6 +202,7 @@ export class RunHosting {
129
202
  runId: args.runId,
130
203
  source: found.program.source,
131
204
  ...(found.program.file !== undefined ? { file: found.program.file } : {}),
205
+ admission: found.admission,
132
206
  epoch: (found.status?.epoch ?? 0) + 1,
133
207
  fencingToken: (found.status?.fencingToken ?? 0) + 1,
134
208
  timeout: args.timeout ?? DEFAULT_CHECKPOINT_TIMEOUT,
@@ -196,7 +270,7 @@ export class RunHosting {
196
270
  async takeBack() {
197
271
  let inherited = [];
198
272
  try {
199
- inherited = await this.withOperator({}, async (_planes, kv) => {
273
+ inherited = await this.withOperator({}, async (planes, kv) => {
200
274
  const out = [];
201
275
  for (const e of await walkKvEntries(kv, `run.${this.ctx.endpoint}.*.spec`)) {
202
276
  const runId = e.key.split(".")[2];
@@ -211,7 +285,21 @@ export class RunHosting {
211
285
  this.ctx.log(`! run ${runId} is recorded running with no recorded program; it cannot be taken back here - resume it from a terminal with \`cotal run resume ${runId} --local --file <program>\``);
212
286
  continue;
213
287
  }
214
- out.push({ runId, epoch: status.epoch + 1, fencingToken: status.fencingToken + 1, source: program.source, ...(program.file !== undefined ? { file: program.file } : {}) });
288
+ // A run whose admission is missing, unreadable or revoked is NOT taken back (SPEC 14.8):
289
+ // it stays parked, named in the log, until an operator admits or revokes it explicitly.
290
+ let admission;
291
+ try {
292
+ admission = await readRunAdmission(planes.jsm, this.ctx.space, this.ctx.endpoint, runId);
293
+ }
294
+ catch (e) {
295
+ this.ctx.log(`! run ${runId} stays parked: ${e.message}`);
296
+ continue;
297
+ }
298
+ if (admission.revoked !== undefined) {
299
+ this.ctx.log(`! run ${runId} stays parked: revoked by ${admission.revoked.by} (${admission.revoked.reason})`);
300
+ continue;
301
+ }
302
+ out.push({ runId, epoch: status.epoch + 1, fencingToken: status.fencingToken + 1, source: program.source, ...(program.file !== undefined ? { file: program.file } : {}), admission });
215
303
  }
216
304
  return out;
217
305
  });
@@ -225,7 +313,7 @@ export class RunHosting {
225
313
  const host = this.host();
226
314
  for (const r of inherited) {
227
315
  try {
228
- await this.launch(host, { mode: "existing", runId: r.runId, source: r.source, ...(r.file !== undefined ? { file: r.file } : {}), epoch: r.epoch, fencingToken: r.fencingToken, timeout: DEFAULT_CHECKPOINT_TIMEOUT });
316
+ await this.launch(host, { mode: "existing", runId: r.runId, source: r.source, ...(r.file !== undefined ? { file: r.file } : {}), epoch: r.epoch, fencingToken: r.fencingToken, timeout: DEFAULT_CHECKPOINT_TIMEOUT, admission: r.admission });
229
317
  }
230
318
  catch (e) {
231
319
  this.ctx.log(`! run ${r.runId} could not be taken back: ${e.message}`);
@@ -392,6 +480,7 @@ export class RunHosting {
392
480
  instanceId: this.ctx.instanceId,
393
481
  epoch: req.epoch,
394
482
  defaultCheckpointTimeout: req.timeout,
483
+ admission: req.admission,
395
484
  // The broker's own max_payload, minus headroom for the record envelope around the entry.
396
485
  ...(typeof max === "number" && max > 4096 ? { resultBytes: max - 4096 } : {}),
397
486
  }, mediator);
@@ -1 +1 @@
1
- {"version":3,"file":"run-hosting.js","sourceRoot":"","sources":["../src/run-hosting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-hosting.js","sourceRoot":"","sources":["../src/run-hosting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,2BAA2B,EAI3B,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,aAAa,GAYd,MAAM,gBAAgB,CAAC;AAkCxB,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC;;6FAE6F;AAC7F,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,OAAO,UAAU;IAMQ;IALZ,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,SAAS,GAAG,CAAC,CAAC;IACd,UAAU,GAAG,KAAK,CAAC;IACnB,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAA6B,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IAEvD;wFACoF;IAC5E,IAAI;QACV,OAAO,QAAQ,CAAC,OAAO,CAAU,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;IAED;wCACoC;IAC5B,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,yGAAyG,CAAC,CAAC;IACxJ,CAAC;IAED;;;;;;;mDAO+C;IAC/C,KAAK,CAAC,KAAK,CAAC,GAAmB,EAAE,IAAyD;QACxF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,4FAA4F;YAC5F,sFAAsF;YACtF,2FAA2F;YAC3F,6BAA6B;YAC7B,MAAM,IAAI,eAAe,CACvB,aAAa,EACb,kCAAkC,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAC3G,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACpF,CAAC;QACJ,CAAC;QACD,4FAA4F;QAC5F,iEAAiE;QACjE,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,IAAI,EAAE,KAAK;YACX,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,0BAA0B;YACnD,SAAS;SACV,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;4EAEwE;IAChE,KAAK,CAAC,KAAK,CAAC,GAAmB,EAAE,KAAa;QACpD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YACpB,MAAM,IAAI,eAAe,CAAC,eAAe,EAAE,+FAA+F,IAAI,CAAC,GAAG,CAAC,KAAK,4CAA4C,CAAC,CAAC;QACxM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,kMAAkM,EAClM,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CACnG,CAAC;QACJ,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAChI,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CACvI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,MAAM,SAAS,GAAiB;YAC9B,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACrB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAC3B,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;YAC/B,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW;YACtC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACxE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1E,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC3C,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,YAAY,CAAI,KAAa,EAAE,EAA0B;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,eAAe,EAAE,+CAA+C,CAAC,CAAC;QACpH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc;YAC3C,GAAG,qBAAqB,CAAC;gBACvB,KAAK,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;gBACpH,2CAA2C,CAAC,GAAG,EAAE,KAAK;aACvD,CAAC;YACF,oBAAoB,EAAE,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;yFAEqF;IAC7E,KAAK,CAAC,QAAQ,CAAC,KAAa;QAClC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAChI,CAAC;IAED;;mDAE+C;IAC/C,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,EAAU,EAAE,MAAc;QACpD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9I,CAAC;IAED;;;yEAGqE;IACrE,KAAK,CAAC,MAAM,CAAC,IAAyC;QACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,KAA4H,CAAC;QACjI,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;gBAC1E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtE,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;gBAC3C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxE,wFAAwF;gBACxF,2EAA2E;gBAC3E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpG,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS;oBACjC,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,OAAO,IAAI,CAAC,KAAK,mBAAmB,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,MAAM,6CAA6C,CAAC,CAAC;gBACrL,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,KAAK,SAAS;gBACrB,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,KAAK,2BAA2B,IAAI,CAAC,GAAG,CAAC,QAAQ,kDAAkD,CAAC,CAAC;YAC1J,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;gBAC7B,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,OAAO,IAAI,CAAC,KAAK,8HAA8H,IAAI,CAAC,KAAK,6BAA6B,CAAC,CAAC;QAC7O,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,8DAA8D;YAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,CAAC;QACV,CAAC;QACD,iGAAiG;QACjG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;YACrC,YAAY,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,0BAA0B;SACpD,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;4EAIwE;IACxE,KAAK,CAAC,MAAM,CAAC,IAA+F,EAAE,EAAU;QACtH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpD,IAAI,IAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAC1F,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qFAAqF;YACrF,uFAAuF;YACvF,IAAI,CAAC,YAAY,eAAe;gBAAE,MAAM,CAAC,CAAC;YAC1C,IAAK,CAAuB,CAAC,IAAI,KAAK,mBAAmB;gBAAE,MAAM,IAAI,eAAe,CAAC,WAAW,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;YACxH,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CACtF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,QAAQ;YACR,IAAI;YACJ,EAAE;YACF,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;SAChB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,MAAM,CAAC,IAA0C;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAChG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,KAAK,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,IAAI,CAAC,IAA2B;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CACjH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;;;;gGAK4F;IAC5F,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,SAAS,GAAyH,EAAE,CAAC;QACzI,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;gBAC3D,MAAM,GAAG,GAAqB,EAAE,CAAC;gBACjC,KAAK,MAAM,CAAC,IAAI,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,EAAE,CAAC;oBAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,KAAK,KAAK,SAAS;wBAAE,SAAS;oBAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACjE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;oBACrC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;wBAAE,SAAS;oBACjE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,mIAAmI,KAAK,6BAA6B,CAAC,CAAC;wBAClM,SAAS;oBACX,CAAC;oBACD,yFAAyF;oBACzF,wFAAwF;oBACxF,IAAI,SAA2B,CAAC;oBAChC,IAAI,CAAC;wBACH,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC3F,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,kBAAmB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;wBACrE,SAAS;oBACX,CAAC;oBACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,6BAA6B,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC9G,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxL,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,yCAA0C,CAAW,CAAC,OAAO,wGAAwG,CAAC,CAAC;YACpL,OAAO;QACT,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAChP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,6BAA8B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0CAA0C,SAAS,CAAC,MAAM,0BAA0B,CAAC,CAAC;IACrG,CAAC;IAED;;yDAEqD;IACrD,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7I,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChF,IAAI,CAAC;oBACH,GAAG,CAAC,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpF,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChG,IAAI,CAAC;oBACH,GAAG,CAAC,aAAa,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxG,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,KAAK,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;gEAI4D;IAC5D,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC9J,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpI,IAAI,OAAO;gBAAE,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;;gBACzD,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,2EAA2E;IAC3E,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;sCAEkC;IAC1B,KAAK,CAAC,KAAa;QACzB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,KAAK,0CAA0C,CAAC,CAAC;QACxH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,CAAC;QAClH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;8DAC0D;IAClD,IAAI,CAAC,IAAe;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED;;iGAE6F;IACrF,KAAK,CAAC,MAAM,CAClB,IAAa,EACb,GAAkK,EAClK,OAAmB;QAEnB,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,iDAAiD,CAAC,CAAC;YAC/G,IAAI,IAAI,CAAC,SAAS,IAAI,aAAa;gBACjC,MAAM,IAAI,eAAe,CAAC,oBAAoB,EAAE,GAAG,aAAa,oFAAoF,CAAC,CAAC;YACxJ,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0FAA0F;YAC1F,2EAA2E;YAC3E,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,IAAa,EACb,GAAkK,EAClK,IAAe;QAEf,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI;YAChB,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;gBAC5C,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;aAC5H,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,aAAa,GAAG,IAAI;YACxB,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE;gBACtD,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;aAC9H,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QACd,8FAA8F;QAC9F,8CAA8C;QAC9C,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9H,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,+FAA+F;QAC/F,uEAAuE;QACvE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc;YAC3C,GAAG,CAAC,KAAK,KAAK,SAAS;gBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,QAAQ,CAAC,EAAE,EAAE,EAAE;gBACnI,CAAC,CAAC,EAAE,CAAC;YACP,oBAAoB,EAAE,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,IAAI,MAAqB,CAAC;QAC1B,IAAI,QAAuB,CAAC;QAC5B,IAAI,UAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAC5I,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;gBAC/D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc;gBAC3C,GAAG,CAAC,aAAa,KAAK,SAAS;oBAC7B,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,gBAAgB,CAAC,EAAE,EAAE,EAAE;oBACnJ,CAAC,CAAC,EAAE,CAAC;gBACP,oBAAoB,EAAE,CAAC,CAAC;aACzB,CAAC,CAAC;YACH,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YAClL,sFAAsF;YACtF,uFAAuF;YACvF,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,iDAAiD,CAAC,CAAC;QACjH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC;YAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,CAAC;QACV,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;QACjC,wFAAwF;QACxF,MAAM,aAAa,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAChH,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAC3B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE;gBACjG,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;gBAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,wBAAwB,EAAE,GAAG,CAAC,OAAO;gBACrC,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,yFAAyF;gBACzF,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3D,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,2FAA2F;YAC3F,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,UAAU,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,2FAA2F;YAC3F,qFAAqF;YACrF,wFAAwF;YACxF,mCAAmC;YACnC,KAAK,CAAC,OAAO,CAAC,2DAA4D,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,KAAK,cAAc,UAAU,GAAG,CAAC,CAAC;IAChK,CAAC;IAED;;4FAEwF;IAChF,KAAK,CAAC,SAAS,CAAC,EAAM,EAAE,GAAqC,EAAE,KAAmB;QACxF,MAAM,QAAQ,GAAG,KAAK,IAAsB,EAAE,CAC5C,CAAC,MAAM,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;QAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;QACrD,SAAS,CAAC;YACR,IAAI,MAAM,QAAQ,EAAE;gBAAE,OAAO;YAC7B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,OAAO,CAAY,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,MAAM,QAAQ,EAAE;oBAAE,OAAO;gBAC7B,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,EAClE,OAAO,GAAG,CAAC,KAAK,mBAAmB,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAChE,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBACvB,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,GAAG,CAAC,KAAK,uCAAuC,sBAAsB,GAAG,IAAI,yFAAyF,GAAG,CAAC,KAAK,gBAAgB,CAAC,CAAC;QACrP,CAAC;IACH,CAAC;IAED;;;0DAGsD;IAC9C,KAAK,CAAC,YAAY,CACxB,KAAyE,EACzE,EAAqE;QAErE,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,cAAc;YAC3C,GAAG,CAAC,IAAI;gBACN,CAAC,CAAC,qBAAqB,CAAC;oBACpB,KAAK,EAAE,MAAM,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE;wBAC1D,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACxK,CAAC;oBACF,2CAA2C,CAAC,GAAG,EAAE,KAAK;iBACvD,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;YACP,oBAAoB,EAAE,CAAC;SACxB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvD,OAAO,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QACzH,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF;AAED,4FAA4F;AAC5F,SAAS,YAAY,CAAC,CAA0B;IAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAgC,CAAC;IACpE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,GAAmB;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,gBAAgB,GAAG,CAAC,KAAK,UAAU,CAAC;IAC3E,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,cAAc,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxH,CAAC"}
@@ -1,16 +1,23 @@
1
- import type { AgentHandle, AttachSession, LaunchSpec, Runtime, RuntimeReference } from "@cotal-ai/core";
1
+ import type { AgentHandle, AttachSession, LaunchSpec, RuntimeReference } from "@cotal-ai/core";
2
+ import type { CustodialRuntime, RuntimeReapEvidence } from "./index.js";
2
3
  /**
3
4
  * Production pty runtime on Linux: a one-shot launcher starts a detached
4
5
  * per-seat custodian, then this process holds only a proxy AgentHandle.
5
6
  * `createRuntime("pty")` does not construct this class off Linux. Spawn and
6
7
  * adopt still throw the named transport error if it is instantiated there.
7
8
  */
8
- export declare class CustodialPtyRuntime implements Runtime {
9
+ export declare class CustodialPtyRuntime implements CustodialRuntime {
9
10
  private readonly root;
10
11
  readonly kind: "pty";
12
+ readonly supportsRelease = true;
11
13
  constructor(root?: string);
12
- spawn(name: string, spec: LaunchSpec, cwd: string): AgentHandle;
14
+ /** Mint the custody id for a seat about to be launched. Nothing is written here: the id names a
15
+ * directory the custodian creates at launch, so a reserved id that is never spawned reaps as
16
+ * `absent`. The manager records this reference durably before it calls {@link spawn}. */
17
+ reserve(): RuntimeReference;
18
+ spawn(name: string, spec: LaunchSpec, cwd: string, reference?: RuntimeReference): AgentHandle;
13
19
  adopt(reference: RuntimeReference): AgentHandle;
20
+ reap(reference: RuntimeReference): Promise<RuntimeReapEvidence>;
14
21
  }
15
22
  export type { AttachSession };
16
23
  //# sourceMappingURL=custodial-pty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custodial-pty.d.ts","sourceRoot":"","sources":["../../src/runtime/custodial-pty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOxG;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,OAAO;IAGrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;gBAEF,IAAI,GAAE,MAA4D;IAI/F,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAW/D,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW;CAKhD;AAED,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"custodial-pty.d.ts","sourceRoot":"","sources":["../../src/runtime/custodial-pty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAOxE;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAI9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,eAAe,QAAQ;gBAEH,IAAI,GAAE,MAA4D;IAI/F;;8FAE0F;IAC1F,OAAO,IAAI,gBAAgB;IAK3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,WAAW;IAe7F,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW;IAOzC,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAMtE;AAED,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { mkdirSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { homedir } from "node:os";
4
- import { adoptSeatSync, launchSeat, loadSeat, unsupportedTransport } from "@cotal-ai/seat";
4
+ import { adoptSeatSync, launchSeat, loadSeat, reapSeat, seatId, unsupportedTransport } from "@cotal-ai/seat";
5
5
  function defaultCustodyRoot() {
6
6
  return join(homedir(), ".cotal", "seats");
7
7
  }
@@ -14,27 +14,49 @@ function defaultCustodyRoot() {
14
14
  export class CustodialPtyRuntime {
15
15
  root;
16
16
  kind = "pty";
17
+ supportsRelease = true;
17
18
  constructor(root = process.env.COTAL_SEAT_ROOT ?? defaultCustodyRoot()) {
18
19
  this.root = root;
19
20
  mkdirSync(this.root, { recursive: true, mode: 0o700 });
20
21
  }
21
- spawn(name, spec, cwd) {
22
+ /** Mint the custody id for a seat about to be launched. Nothing is written here: the id names a
23
+ * directory the custodian creates at launch, so a reserved id that is never spawned reaps as
24
+ * `absent`. The manager records this reference durably before it calls {@link spawn}. */
25
+ reserve() {
22
26
  if (process.platform !== "linux")
23
27
  throw unsupportedTransport();
28
+ return { kind: this.kind, id: seatId() };
29
+ }
30
+ spawn(name, spec, cwd, reference) {
31
+ if (process.platform !== "linux")
32
+ throw unsupportedTransport();
33
+ if (reference !== undefined && reference.kind !== "pty")
34
+ throw new Error(`cannot spawn under runtime kind "${reference.kind}" with pty`);
24
35
  const rec = launchSeat({
25
36
  root: this.root,
26
37
  name,
27
- spec: { command: spec.command, args: spec.args, env: spec.env ?? {}, confirm: Boolean(spec.confirm) },
38
+ spec: { command: spec.command, args: spec.args, env: spec.env ?? {}, confirm: spec.confirm },
28
39
  cwd,
40
+ ...(reference ? { id: reference.id } : {}),
29
41
  });
30
- return adoptSeatSync(rec);
42
+ const seat = adoptSeatSync(rec);
43
+ return { ...seat, release: () => seat.close() };
31
44
  }
32
45
  adopt(reference) {
33
46
  if (process.platform !== "linux")
34
47
  throw unsupportedTransport();
35
48
  if (reference.kind !== "pty")
36
49
  throw new Error(`cannot adopt runtime kind "${reference.kind}" with pty`);
37
- return adoptSeatSync(loadSeat(this.root, reference.id));
50
+ const seat = adoptSeatSync(loadSeat(this.root, reference.id));
51
+ return { ...seat, release: () => seat.close() };
52
+ }
53
+ async reap(reference) {
54
+ if (process.platform !== "linux")
55
+ throw unsupportedTransport();
56
+ if (reference.kind !== "pty")
57
+ throw new Error(`cannot reap runtime kind "${reference.kind}" with pty`);
58
+ const evidence = await reapSeat(this.root, reference.id);
59
+ return evidence.outcome === "absent" ? { outcome: "absent" } : { outcome: "reaped", detail: evidence.detail };
38
60
  }
39
61
  }
40
62
  //# sourceMappingURL=custodial-pty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custodial-pty.js","sourceRoot":"","sources":["../../src/runtime/custodial-pty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3F,SAAS,kBAAkB;IACzB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAGD;IAFpB,IAAI,GAAG,KAAc,CAAC;IAE/B,YAA6B,OAAe,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,kBAAkB,EAAE;QAAlE,SAAI,GAAJ,IAAI,CAA8D;QAC7F,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,IAAgB,EAAE,GAAW;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,oBAAoB,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,UAAU,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;YACJ,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrG,GAAG;SACJ,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,GAAG,CAA2B,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAA2B;QAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,oBAAoB,EAAE,CAAC;QAC/D,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,IAAI,YAAY,CAAC,CAAC;QACxG,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAA2B,CAAC;IACpF,CAAC;CACF"}
1
+ {"version":3,"file":"custodial-pty.js","sourceRoot":"","sources":["../../src/runtime/custodial-pty.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,56 @@ import { type AgentHandle, type Runtime, type RuntimeKind, type RuntimeReference
2
2
  export type { Runtime, RuntimeKind, AgentHandle, AttachSession } from "@cotal-ai/core";
3
3
  /** Adopt a durable handle, or refuse by name when this runtime has no adopt method. */
4
4
  export declare function requireRuntimeAdopt(runtime: Runtime, reference: RuntimeReference): AgentHandle;
5
+ /** What a {@link CustodialRuntime.reap} proved. `absent`: the custody record for that reference
6
+ * could not be read. That is a statement about ADDRESSABILITY, not about liveness, and the two are
7
+ * not the same fact: a custodian that dies after spawning its child and before writing the record
8
+ * leaves a LIVE seat and no record, and a stale or wrong reference looks for a record that exists
9
+ * at a different path. `reaped`: every process the record named was signalled and verified gone, or
10
+ * found already gone by identity. Only `reaped` proves anything about a process. */
11
+ export type RuntimeReapEvidence = {
12
+ outcome: "absent";
13
+ } | {
14
+ outcome: "reaped";
15
+ detail: string;
16
+ };
17
+ /** A reap that could not PROVE the seat gone, thrown by {@link requireRuntimeReap} on an `absent`
18
+ * outcome so no caller can render it as a disposal it did not make. Carries the reference so the
19
+ * operator has the one thing that lets them go look: what to search for. */
20
+ export declare class RuntimeReapUnproven extends Error {
21
+ readonly reference: RuntimeReference;
22
+ constructor(runtimeKind: string, reference: RuntimeReference);
23
+ }
24
+ /**
25
+ * A runtime that OWNS the processes it starts, durably enough to address them after the manager
26
+ * that started them is gone.
27
+ *
28
+ * This is deliberately NOT on the core {@link Runtime} contract. Core hosts the extension contracts
29
+ * so that any backend can implement them, and these two cannot be implemented by a backend that
30
+ * delegates to an external surface: `tmux`, `cmux`, `orca` and `herdr` do not own a process to
31
+ * signal or a custody record to pre-mint against, so the methods would have no meaning for them
32
+ * rather than merely no implementation. `adopt` stays on the generic contract because "reattach to
33
+ * a handle you created" is something a delegating backend could one day mean.
34
+ *
35
+ * `reserve` mints the custody reference BEFORE any process exists, so the caller can record it
36
+ * durably and hand the same reference to `spawn`; the reference then precedes the processes it
37
+ * addresses. `reap` signals only a process whose identity it verifies against its own record,
38
+ * proves it and its descendants gone, and forgets the record.
39
+ */
40
+ export interface CustodialRuntime extends Runtime {
41
+ reserve(): RuntimeReference;
42
+ reap(reference: RuntimeReference): Promise<RuntimeReapEvidence>;
43
+ }
44
+ /** Whether this backend custodies its own processes. Both methods are required together: a runtime
45
+ * that could mint references but never prove them gone would have the manager record references no
46
+ * successor can act on, which is worse than recording none. */
47
+ export declare function isCustodialRuntime(runtime: Runtime): runtime is CustodialRuntime;
48
+ /** Reap an orphaned custody by reference, or refuse by name when this runtime does not custody its
49
+ * own processes. Absent means REFUSE, never "assume gone": the lifecycle stays held rather than
50
+ * retiring over a live seat. */
51
+ export declare function requireRuntimeReap(runtime: Runtime, reference: RuntimeReference): Promise<{
52
+ outcome: "reaped";
53
+ detail: string;
54
+ }>;
5
55
  /** How a manager picks its backend. `auto` is the deterministic default — always `pty`. External
6
56
  * runtimes are never auto-selected; choose one explicitly, which resolves
7
57
  * the integration from the registry and fails loud if it isn't imported. No fallbacks. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIzI,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvF,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAI9F;AAED;;2FAE2F;AAC3F,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAE/C;;qFAEqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA0BzE;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAQ1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIzI,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvF,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,GAAG,WAAW,CAI9F;AAED;;;;;qFAKqF;AACrF,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG;;6EAE6E;AAC7E,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBACzB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB;CAQ7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,OAAO,IAAI,gBAAgB,CAAC;IAC5B,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjE;AAED;;gEAEgE;AAChE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAGhF;AAED;;iCAEiC;AACjC,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAUhD;AAED;;2FAE2F;AAC3F,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAE/C;;qFAEqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA0BzE;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAQ1E"}
@@ -9,6 +9,40 @@ export function requireRuntimeAdopt(runtime, reference) {
9
9
  throw new Error(`runtime "${runtime.kind}" does not support adopt`);
10
10
  return runtime.adopt(reference);
11
11
  }
12
+ /** A reap that could not PROVE the seat gone, thrown by {@link requireRuntimeReap} on an `absent`
13
+ * outcome so no caller can render it as a disposal it did not make. Carries the reference so the
14
+ * operator has the one thing that lets them go look: what to search for. */
15
+ export class RuntimeReapUnproven extends Error {
16
+ reference;
17
+ constructor(runtimeKind, reference) {
18
+ super(`runtime "${runtimeKind}" holds no custody record for ${reference.kind}:${reference.id}, so the seat it addresses is NOT proved gone; ` +
19
+ `a custodian that died before writing its record leaves a live seat behind this same outcome`);
20
+ this.name = "RuntimeReapUnproven";
21
+ this.reference = reference;
22
+ }
23
+ }
24
+ /** Whether this backend custodies its own processes. Both methods are required together: a runtime
25
+ * that could mint references but never prove them gone would have the manager record references no
26
+ * successor can act on, which is worse than recording none. */
27
+ export function isCustodialRuntime(runtime) {
28
+ const r = runtime;
29
+ return typeof r.reserve === "function" && typeof r.reap === "function";
30
+ }
31
+ /** Reap an orphaned custody by reference, or refuse by name when this runtime does not custody its
32
+ * own processes. Absent means REFUSE, never "assume gone": the lifecycle stays held rather than
33
+ * retiring over a live seat. */
34
+ export async function requireRuntimeReap(runtime, reference) {
35
+ if (!isCustodialRuntime(runtime))
36
+ throw new Error(`runtime "${runtime.kind}" does not support reap; the orphaned process for ${reference.kind}:${reference.id} cannot be proved gone`);
37
+ const evidence = await runtime.reap(reference);
38
+ // The refusal this function's contract promises, made structural: `absent` never leaves here, so
39
+ // the return type carries no branch a caller could render as success. Placing it at the callsites
40
+ // instead left each one free to describe an unread record as a reaped process, which is what both
41
+ // of them did.
42
+ if (evidence.outcome === "absent")
43
+ throw new RuntimeReapUnproven(runtime.kind, reference);
44
+ return evidence;
45
+ }
12
46
  /** Build the runtime a manager will spawn through. `pty` ships with the manager and is what `auto`
13
47
  * resolves to. Every other name resolves a self-registered {@link RuntimeProvider}; an explicit
14
48
  * provider that is absent or unreachable throws, never a silent fallback to pty. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAiG,MAAM,gBAAgB,CAAC;AACzI,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,SAA2B;IAC/E,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU;QACrC,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAOD;;qFAEqF;AACrF,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,OAAe;IAC9D,MAAM,IAAI,GAAgB,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,8FAA8F;QAC9F,kGAAkG;QAClG,uGAAuG;QACvG,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG;YACtB,MAAM,IAAI,KAAK,CACb,yEAAyE,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK;gBAChG,iGAAiG;gBACjG,wEAAwE,CAC3E,CAAC;QACJ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACnE,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAkB,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,yGAAyG,CAClI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4CAA4C,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,iBAAiB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAChE,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAiG,MAAM,gBAAgB,CAAC;AACzI,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,SAA2B;IAC/E,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU;QACrC,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAUD;;6EAE6E;AAC7E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,SAAS,CAAmB;IACrC,YAAY,WAAmB,EAAE,SAA2B;QAC1D,KAAK,CACH,YAAY,WAAW,iCAAiC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,iDAAiD;YACrI,6FAA6F,CAChG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAuBD;;gEAEgE;AAChE,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,CAAC,GAAG,OAAoC,CAAC;IAC/C,OAAO,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AACzE,CAAC;AAED;;iCAEiC;AACjC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAgB,EAChB,SAA2B;IAE3B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,qDAAqD,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,wBAAwB,CAAC,CAAC;IACvJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,iGAAiG;IACjG,kGAAkG;IAClG,kGAAkG;IAClG,eAAe;IACf,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1F,OAAO,QAAQ,CAAC;AAClB,CAAC;AAOD;;qFAEqF;AACrF,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,OAAe;IAC9D,MAAM,IAAI,GAAgB,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,8FAA8F;QAC9F,kGAAkG;QAClG,uGAAuG;QACvG,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG;YACtB,MAAM,IAAI,KAAK,CACb,yEAAyE,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK;gBAChG,iGAAiG;gBACjG,wEAAwE,CAC3E,CAAC;QACJ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACnE,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAkB,SAAS,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,yGAAyG,CAClI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4CAA4C,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,iBAAiB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAChE,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5B,SAAS,CAAC;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAqBxG;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAE/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAiL/D,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW;CAGjD;AAED,2FAA2F;AAC3F,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/runtime/pty.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAiB,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAcxG;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAE/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;IAuL/D,KAAK,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW;CAGjD;AAED,2FAA2F;AAC3F,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
@@ -1,22 +1,15 @@
1
1
  import * as pty from "@lydell/node-pty";
2
2
  import Headless from "@xterm/headless";
3
3
  import { SerializeAddon } from "@xterm/addon-serialize";
4
- import { unsupportedTransport } from "@cotal-ai/seat";
4
+ import { StartupConfirmMatcher, unmatchedConfirmMessage, unsupportedTransport } from "@cotal-ai/seat";
5
5
  import { preparePtyLaunch } from "./windows-launch.js";
6
6
  const DEFAULT_COLS = 120;
7
7
  const DEFAULT_ROWS = 32;
8
8
  /** How many rows of history the attach-time screen mirror retains (see spawn) so a late attach
9
9
  * still sees output that scrolled past. */
10
10
  const SCROLLBACK_ROWS = 1000;
11
- /** Spacing between auto-confirm Enter presses, and how many to send. Claude's startup gates
12
- * (workspace-trust, then the dev-channels warning) each wait for Enter and neither has a headless
13
- * override. The count is variable — a fresh folder shows both, a re-launch on a now-trusted folder
14
- * shows only the channels gate — and each gate's screen is static once rendered, so we don't match
15
- * text or count prompts: press Enter blindly a few times, spaced so each press lands on the next
16
- * gate and a dropped press is retried. Both gates default-highlight "proceed", so Enter accepts the
17
- * safe option; any extra press lands on Claude's empty input as a no-op. */
18
- const CONFIRM_INTERVAL_MS = 1_000;
19
- const MAX_CONFIRMS = 5;
11
+ /** Bounded early-output window for the connector-declared startup confirmation prompt. */
12
+ const CONFIRM_TIMEOUT_MS = 15_000;
20
13
  /** Grace window for a clean exit before a graceful stop escalates to SIGKILL. */
21
14
  const GRACE_MS = 3_000;
22
15
  /**
@@ -67,26 +60,33 @@ export class LegacyPtyRuntime {
67
60
  // Retained here so `exitInfo` can answer after the fact; stays undefined while the child lives,
68
61
  // because "not exited yet" and "exited cleanly" must never read the same.
69
62
  let exit;
70
- // Clear Claude's startup gates (workspace-trust, dev-channels warning) by pressing Enter on a
71
- // timer during the startup window see CONFIRM_INTERVAL_MS for why this is blind, not output-
72
- // driven. A spawn that opts in sets `spec.confirm` truthy.
63
+ // Honor LaunchSpec.confirm literally: match the connector-owned text in normalized early output,
64
+ // press Enter exactly once when it appears, and fail loud if the declared gate never materializes.
65
+ const confirmMatcher = spec.confirm ? new StartupConfirmMatcher(spec.confirm) : undefined;
73
66
  let confirmTimer;
74
- if (spec.confirm) {
75
- let presses = 0;
76
- confirmTimer = setInterval(() => {
77
- if (!alive || presses++ >= MAX_CONFIRMS) {
78
- clearInterval(confirmTimer);
79
- confirmTimer = undefined;
67
+ if (confirmMatcher) {
68
+ confirmTimer = setTimeout(() => {
69
+ if (!alive)
80
70
  return;
81
- }
82
- proc.write("\r");
83
- }, CONFIRM_INTERVAL_MS);
71
+ const message = unmatchedConfirmMessage(confirmMatcher.prompt, CONFIRM_TIMEOUT_MS);
72
+ term.write(`\r\n${message}\r\n`);
73
+ const b = Buffer.from(`\r\n${message}\r\n`, "utf8");
74
+ for (const fn of dataSubs)
75
+ fn(b);
76
+ proc.kill(process.platform === "win32" ? undefined : "SIGTERM");
77
+ }, CONFIRM_TIMEOUT_MS);
84
78
  }
85
79
  proc.onData((d) => {
86
80
  term.write(d); // mirror into the screen model for attach-time reconstruction
87
81
  const b = Buffer.from(d, "utf8");
88
82
  for (const fn of dataSubs)
89
83
  fn(b);
84
+ if (confirmMatcher?.push(d)) {
85
+ proc.write("\r");
86
+ if (confirmTimer)
87
+ clearTimeout(confirmTimer);
88
+ confirmTimer = undefined;
89
+ }
90
90
  });
91
91
  proc.onExit(({ exitCode, signal }) => {
92
92
  alive = false;
@@ -94,7 +94,7 @@ export class LegacyPtyRuntime {
94
94
  // present-or-absent rather than coalesced into one number.
95
95
  exit = { code: exitCode, ...(signal === undefined ? {} : { signal }) };
96
96
  if (confirmTimer)
97
- clearInterval(confirmTimer);
97
+ clearTimeout(confirmTimer);
98
98
  for (const fn of exitSubs)
99
99
  fn();
100
100
  });
@@ -160,9 +160,11 @@ export class LegacyPtyRuntime {
160
160
  // `interrupt` and the session's own `write` are: node-pty throws on a dead handle, and the
161
161
  // manager has already refused a non-running agent before it gets here, so this guard covers
162
162
  // only the narrow race where the child exits between that check and this call.
163
- write: (data) => {
164
- if (alive)
165
- proc.write(data);
163
+ write: async (data) => {
164
+ if (!alive)
165
+ throw new Error(`seat ${name} is not running; the PTY rejected the write`);
166
+ proc.write(data);
167
+ return Buffer.byteLength(data, "utf8");
166
168
  },
167
169
  attach: () => ({
168
170
  get cols() {