@cotal-ai/connector-core 0.16.0 → 0.17.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/agent.d.ts +41 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +115 -25
- package/dist/agent.js.map +1 -1
- package/dist/control.d.ts +24 -0
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +96 -6
- package/dist/control.js.map +1 -1
- package/dist/docs-bundle.generated.d.ts.map +1 -1
- package/dist/docs-bundle.generated.js +19 -12
- package/dist/docs-bundle.generated.js.map +1 -1
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +58 -12
- package/dist/relay.js.map +1 -1
- package/package.json +2 -2
package/dist/agent.d.ts
CHANGED
|
@@ -68,6 +68,9 @@ export declare class MeshAgent extends EventEmitter {
|
|
|
68
68
|
* permanently degrades unknown ambient to pull-only for this session rather than risk a late
|
|
69
69
|
* live/durable copy changing from quiet to automatic. */
|
|
70
70
|
private evictedClassifications;
|
|
71
|
+
/** Surfaced to the host but not yet committed or abandoned, counted per holding frame because
|
|
72
|
+
* frames overlap. See {@link holdInFlight}. */
|
|
73
|
+
private inFlightIds;
|
|
71
74
|
private classificationUnsafe;
|
|
72
75
|
/** Terminal receive-time decisions that must survive the live→durable transition: successfully
|
|
73
76
|
* surfaced pull-only messages and hard drops under muted/focus. Capacity loss degrades the
|
|
@@ -126,6 +129,29 @@ export declare class MeshAgent extends EventEmitter {
|
|
|
126
129
|
/** Return pending messages in stable receive order. Automatic delivery excludes quiet ambient;
|
|
127
130
|
* pull-only is the explicit cotal_inbox lane. */
|
|
128
131
|
peekInbox(scope?: InboxScope): InboxItem[];
|
|
132
|
+
/** Mark a surfaced batch as mid-delivery, so the overflow valve will not ack it out from under the
|
|
133
|
+
* host. Pair with {@link releaseInFlight} on the delivery verdict, whichever way it goes.
|
|
134
|
+
*
|
|
135
|
+
* **Counted, not a set.** Hook frames overlap, so the same id is routinely in two open batches at
|
|
136
|
+
* once; if a hold were a boolean, the first frame's verdict would unprotect ids the second is
|
|
137
|
+
* still delivering, and an arrival between the two verdicts would ack one — the very loss this
|
|
138
|
+
* guard exists to stop, reached through the concurrency the per-frame keying deliberately allows.
|
|
139
|
+
*
|
|
140
|
+
* **All or nothing, and it says which.** At the ceiling this refuses the whole batch and returns
|
|
141
|
+
* `false`; the caller must then NOT surface it. Protecting only part of a batch, or protecting
|
|
142
|
+
* none while the caller surfaces anyway, silently reopens exactly the loss this guard exists to
|
|
143
|
+
* close — the unprotected ids sit in the inbox for the whole handoff window with the overflow
|
|
144
|
+
* valve free to ack them. Declining to surface costs a deferral: the messages stay buffered and go
|
|
145
|
+
* out on a later frame, once a verdict releases capacity. */
|
|
146
|
+
holdInFlight(ids: readonly string[]): boolean;
|
|
147
|
+
/** Whether this id is currently protected from the overflow valve — i.e. some frame is mid-delivery
|
|
148
|
+
* holding it. Read-only observability for the property {@link holdInFlight} establishes. A caller
|
|
149
|
+
* that needs a batch to actually BE in flight before it acts must wait on this, never on a sleep:
|
|
150
|
+
* the handoff runs through a real relay process whose latency is not the caller's to predict. */
|
|
151
|
+
isInFlight(id: string): boolean;
|
|
152
|
+
/** One frame's verdict is in (either way). The id is ordinary backlog again only once EVERY frame
|
|
153
|
+
* holding it has reported — a release from one must not speak for another still in flight. */
|
|
154
|
+
releaseInFlight(ids: readonly string[]): void;
|
|
129
155
|
/** Return scoped pending messages and ack them — call only when they're actually surfaced. */
|
|
130
156
|
drainInbox(limit?: number, scope?: InboxScope): InboxItem[];
|
|
131
157
|
/** Ack exact surfaced ids without assuming they still form the physical inbox prefix. Every
|
|
@@ -230,6 +256,21 @@ export declare class MeshAgent extends EventEmitter {
|
|
|
230
256
|
launchOptions?: Record<string, unknown>;
|
|
231
257
|
cwd?: string;
|
|
232
258
|
}): Promise<ControlReply>;
|
|
259
|
+
/** One v0.4 manager-endpoint invoke (P2 item 1, 1c.2b): the generic {@link CotalEndpoint.invokeService}
|
|
260
|
+
* path (describe → §13.7 store fetch → digest-verified recompile → typed command), adapted back to
|
|
261
|
+
* the {@link ControlReply} shape every tool above consumes. `undefined` args are stripped BEFORE the
|
|
262
|
+
* compiled input contract validates (closed schemas reject present-but-undefined keys; the ctl path
|
|
263
|
+
* shed them in JSON serialization). A broker-denied publish (a capability the caller's credential
|
|
264
|
+
* does not hold, e.g. a capability-less purge) has NO responder and surfaces as the deadline —
|
|
265
|
+
* named here so the refusal reads as the tier boundary it is. */
|
|
266
|
+
private managerInvoke;
|
|
267
|
+
/** Resolve a managed agent's CURRENT principal triple (owner-mode targets are (owner, actor,
|
|
268
|
+
* lifecycleUid), never an alias — §13.2) through the manager's `inspect` read. A STATIC row's
|
|
269
|
+
* `id` is the bare actor (nkey) under the caller's own owner; a USER-mode row's `id` is the
|
|
270
|
+
* composite `owner.actor` principal key — split it, or the embedded dot breaks the target
|
|
271
|
+
* block's subject arity. The owner-mode standing mint pins the caller's OWN owner, so a
|
|
272
|
+
* foreign-owner target is broker-denied at publish (the same own-domain boundary as ctl). */
|
|
273
|
+
private managerTargetFor;
|
|
233
274
|
/** Ask the manager to tear a teammate down (its `stop` op). Graceful by default —
|
|
234
275
|
* the session is told to exit cleanly (so it leaves the mesh) before the
|
|
235
276
|
* process/tab is closed; `graceful:false` is a hard, immediate kill.
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAML,aAAa,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
3
|
import { hostname } from "node:os";
|
|
4
|
-
import { normalizeMentions, subjectMatches, isConcreteChannel, channelInAllow, resolvePeer as resolvePeerInRoster, CotalEndpoint,
|
|
4
|
+
import { normalizeMentions, subjectMatches, isConcreteChannel, channelInAllow, resolvePeer as resolvePeerInRoster, CotalEndpoint, BASELINE_LIFECYCLE_ENDPOINT, EpEnvelopeError, partsToText, } from "@cotal-ai/core";
|
|
5
5
|
/** Client-side request window for the manager's readiness-waiting `start` op (#159 B1): the manager
|
|
6
6
|
* replies only on a REAL outcome — presence join, process exit, or its ~30s readiness backstop —
|
|
7
7
|
* so a spawn request must OUTLIVE that window, not the 5s op default. The tier rule forbids
|
|
@@ -81,6 +81,9 @@ export class MeshAgent extends EventEmitter {
|
|
|
81
81
|
* permanently degrades unknown ambient to pull-only for this session rather than risk a late
|
|
82
82
|
* live/durable copy changing from quiet to automatic. */
|
|
83
83
|
evictedClassifications = new Map();
|
|
84
|
+
/** Surfaced to the host but not yet committed or abandoned, counted per holding frame because
|
|
85
|
+
* frames overlap. See {@link holdInFlight}. */
|
|
86
|
+
inFlightIds = new Map();
|
|
84
87
|
classificationUnsafe = false;
|
|
85
88
|
/** Terminal receive-time decisions that must survive the live→durable transition: successfully
|
|
86
89
|
* surfaced pull-only messages and hard drops under muted/focus. Capacity loss degrades the
|
|
@@ -309,7 +312,14 @@ export class MeshAgent extends EventEmitter {
|
|
|
309
312
|
index = 0;
|
|
310
313
|
const [evicted] = this.inbox.splice(index, 1);
|
|
311
314
|
this.rememberEvicted(evicted);
|
|
312
|
-
|
|
315
|
+
// ...but NOT an id that is mid-delivery. Overflow prefers the oldest, which is exactly what a
|
|
316
|
+
// surfaced batch is made of, so without this an arrival can ack a message a host is still
|
|
317
|
+
// trying to hand to its runtime. Evicting bounds memory; acking is what makes it
|
|
318
|
+
// unrecoverable — gone from the buffer, never marked handled, no longer redeliverable. Left
|
|
319
|
+
// un-acked it redelivers; and if the delivery does succeed, {@link drainInboxIds} marks the
|
|
320
|
+
// now-missing id handled so that redelivery is silently acked.
|
|
321
|
+
if (!this.inFlightIds.has(evicted.item.id))
|
|
322
|
+
evicted.ack();
|
|
313
323
|
}
|
|
314
324
|
}
|
|
315
325
|
this.emit("incoming", item);
|
|
@@ -358,9 +368,7 @@ export class MeshAgent extends EventEmitter {
|
|
|
358
368
|
* remains a payload display label. Shared by live ingest and
|
|
359
369
|
* focus recall ({@link recallAmbient}). */
|
|
360
370
|
toInboxItem(m, kind, historical) {
|
|
361
|
-
const text = m.parts
|
|
362
|
-
.map((p) => (p.kind === "text" ? p.text : JSON.stringify(p.data)))
|
|
363
|
-
.join(" ");
|
|
371
|
+
const text = partsToText(m.parts);
|
|
364
372
|
return {
|
|
365
373
|
id: m.id,
|
|
366
374
|
ts: m.ts,
|
|
@@ -383,6 +391,51 @@ export class MeshAgent extends EventEmitter {
|
|
|
383
391
|
peekInbox(scope = "all") {
|
|
384
392
|
return this.inbox.filter((p) => this.inScope(p, scope)).map((p) => p.item);
|
|
385
393
|
}
|
|
394
|
+
/** Mark a surfaced batch as mid-delivery, so the overflow valve will not ack it out from under the
|
|
395
|
+
* host. Pair with {@link releaseInFlight} on the delivery verdict, whichever way it goes.
|
|
396
|
+
*
|
|
397
|
+
* **Counted, not a set.** Hook frames overlap, so the same id is routinely in two open batches at
|
|
398
|
+
* once; if a hold were a boolean, the first frame's verdict would unprotect ids the second is
|
|
399
|
+
* still delivering, and an arrival between the two verdicts would ack one — the very loss this
|
|
400
|
+
* guard exists to stop, reached through the concurrency the per-frame keying deliberately allows.
|
|
401
|
+
*
|
|
402
|
+
* **All or nothing, and it says which.** At the ceiling this refuses the whole batch and returns
|
|
403
|
+
* `false`; the caller must then NOT surface it. Protecting only part of a batch, or protecting
|
|
404
|
+
* none while the caller surfaces anyway, silently reopens exactly the loss this guard exists to
|
|
405
|
+
* close — the unprotected ids sit in the inbox for the whole handoff window with the overflow
|
|
406
|
+
* valve free to ack them. Declining to surface costs a deferral: the messages stay buffered and go
|
|
407
|
+
* out on a later frame, once a verdict releases capacity. */
|
|
408
|
+
holdInFlight(ids) {
|
|
409
|
+
let fresh = 0;
|
|
410
|
+
for (const id of ids)
|
|
411
|
+
if (!this.inFlightIds.has(id))
|
|
412
|
+
fresh++;
|
|
413
|
+
if (this.inFlightIds.size + fresh > MAX_INBOX * 2)
|
|
414
|
+
return false;
|
|
415
|
+
for (const id of ids)
|
|
416
|
+
this.inFlightIds.set(id, (this.inFlightIds.get(id) ?? 0) + 1);
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
/** Whether this id is currently protected from the overflow valve — i.e. some frame is mid-delivery
|
|
420
|
+
* holding it. Read-only observability for the property {@link holdInFlight} establishes. A caller
|
|
421
|
+
* that needs a batch to actually BE in flight before it acts must wait on this, never on a sleep:
|
|
422
|
+
* the handoff runs through a real relay process whose latency is not the caller's to predict. */
|
|
423
|
+
isInFlight(id) {
|
|
424
|
+
return this.inFlightIds.has(id);
|
|
425
|
+
}
|
|
426
|
+
/** One frame's verdict is in (either way). The id is ordinary backlog again only once EVERY frame
|
|
427
|
+
* holding it has reported — a release from one must not speak for another still in flight. */
|
|
428
|
+
releaseInFlight(ids) {
|
|
429
|
+
for (const id of ids) {
|
|
430
|
+
const held = this.inFlightIds.get(id);
|
|
431
|
+
if (held === undefined)
|
|
432
|
+
continue;
|
|
433
|
+
if (held <= 1)
|
|
434
|
+
this.inFlightIds.delete(id);
|
|
435
|
+
else
|
|
436
|
+
this.inFlightIds.set(id, held - 1);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
386
439
|
/** Return scoped pending messages and ack them — call only when they're actually surfaced. */
|
|
387
440
|
drainInbox(limit, scope = "all") {
|
|
388
441
|
const eligible = this.inbox.filter((p) => this.inScope(p, scope));
|
|
@@ -628,10 +681,52 @@ export class MeshAgent extends EventEmitter {
|
|
|
628
681
|
* operator-local intent, kept off the peer-facing spawn door — see #159.) */
|
|
629
682
|
async spawn(name, role, opts) {
|
|
630
683
|
this.assertConnected();
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
684
|
+
const args = { name, role, agent: opts?.agent, model: opts?.model, variant: opts?.variant, launchOptions: opts?.launchOptions, cwd: opts?.cwd };
|
|
685
|
+
// P2 item 2 (2b): spawn is an ACTION — follow the acceptance to the terminal so cotal_spawn
|
|
686
|
+
// stays synchronous (the MCP reply carries the live outcome, not the pre-launch acceptance).
|
|
687
|
+
return this.managerInvoke("spawn", args, { deadlineMs: SPAWN_TIMEOUT_MS, follow: true });
|
|
688
|
+
}
|
|
689
|
+
/** One v0.4 manager-endpoint invoke (P2 item 1, 1c.2b): the generic {@link CotalEndpoint.invokeService}
|
|
690
|
+
* path (describe → §13.7 store fetch → digest-verified recompile → typed command), adapted back to
|
|
691
|
+
* the {@link ControlReply} shape every tool above consumes. `undefined` args are stripped BEFORE the
|
|
692
|
+
* compiled input contract validates (closed schemas reject present-but-undefined keys; the ctl path
|
|
693
|
+
* shed them in JSON serialization). A broker-denied publish (a capability the caller's credential
|
|
694
|
+
* does not hold, e.g. a capability-less purge) has NO responder and surfaces as the deadline —
|
|
695
|
+
* named here so the refusal reads as the tier boundary it is. */
|
|
696
|
+
async managerInvoke(command, args, opts = {}) {
|
|
697
|
+
const clean = args === undefined ? undefined : Object.fromEntries(Object.entries(args).filter(([, v]) => v !== undefined));
|
|
698
|
+
let r;
|
|
699
|
+
try {
|
|
700
|
+
r = await this.ep.invokeService(BASELINE_LIFECYCLE_ENDPOINT, command, clean && Object.keys(clean).length ? clean : undefined, opts);
|
|
701
|
+
}
|
|
702
|
+
catch (e) {
|
|
703
|
+
if (e instanceof EpEnvelopeError)
|
|
704
|
+
return {
|
|
705
|
+
ok: false,
|
|
706
|
+
error: e.code === "deadline-exceeded"
|
|
707
|
+
? `${e.message} (no responder answered - a manager may be down, or this credential holds no "${command}" capability and the broker denied the request)`
|
|
708
|
+
: `${e.code}: ${e.message}`,
|
|
709
|
+
};
|
|
710
|
+
return { ok: false, error: e.message };
|
|
711
|
+
}
|
|
712
|
+
if (r.reply.ok !== true)
|
|
713
|
+
return { ok: false, error: r.reply.error?.message ?? r.reply.error?.code ?? "error" };
|
|
714
|
+
return { ok: true, ...(r.reply.data !== undefined ? { data: r.reply.data } : {}) };
|
|
715
|
+
}
|
|
716
|
+
/** Resolve a managed agent's CURRENT principal triple (owner-mode targets are (owner, actor,
|
|
717
|
+
* lifecycleUid), never an alias — §13.2) through the manager's `inspect` read. A STATIC row's
|
|
718
|
+
* `id` is the bare actor (nkey) under the caller's own owner; a USER-mode row's `id` is the
|
|
719
|
+
* composite `owner.actor` principal key — split it, or the embedded dot breaks the target
|
|
720
|
+
* block's subject arity. The owner-mode standing mint pins the caller's OWN owner, so a
|
|
721
|
+
* foreign-owner target is broker-denied at publish (the same own-domain boundary as ctl). */
|
|
722
|
+
async managerTargetFor(name) {
|
|
723
|
+
const info = await this.managerInvoke("inspect", { name });
|
|
724
|
+
if (!info.ok)
|
|
725
|
+
return { error: info };
|
|
726
|
+
const row = info.data;
|
|
727
|
+
const dot = row.id.indexOf(".");
|
|
728
|
+
const [owner, actor] = dot > 0 ? [row.id.slice(0, dot), row.id.slice(dot + 1)] : [this.ep.principal.owner, row.id];
|
|
729
|
+
return { target: { mode: "owner", owner, actor, lifecycleUid: row.lifecycleUid } };
|
|
635
730
|
}
|
|
636
731
|
/** Ask the manager to tear a teammate down (its `stop` op). Graceful by default —
|
|
637
732
|
* the session is told to exit cleanly (so it leaves the mesh) before the
|
|
@@ -644,33 +739,28 @@ export class MeshAgent extends EventEmitter {
|
|
|
644
739
|
async despawn(name, opts) {
|
|
645
740
|
this.assertConnected();
|
|
646
741
|
const graceful = opts?.graceful ?? true;
|
|
647
|
-
if (!name)
|
|
648
|
-
return this.
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
});
|
|
742
|
+
if (!name) // self-halt: the baseline `stop` command, authz-mode self (the caller triple IS the target)
|
|
743
|
+
return this.managerInvoke("stop", { graceful }, { target: { mode: "self" } });
|
|
744
|
+
const resolved = await this.managerTargetFor(name);
|
|
745
|
+
if ("error" in resolved)
|
|
746
|
+
return resolved.error;
|
|
747
|
+
return this.managerInvoke("despawn", { graceful }, { target: resolved.target });
|
|
654
748
|
}
|
|
655
749
|
/** Ask the manager to purge the space's retained chat backlog (its `purge` op). Cleanup only —
|
|
656
750
|
* it doesn't touch live agents or the anycast work queue. `includeDms` also clears DM history. */
|
|
657
751
|
async purgeHistory(opts) {
|
|
658
752
|
this.assertConnected();
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
args: { includeDms: opts?.includeDms ?? false },
|
|
662
|
-
});
|
|
753
|
+
const args = { includeDms: opts?.includeDms ?? false };
|
|
754
|
+
return this.managerInvoke("purge", args);
|
|
663
755
|
}
|
|
664
756
|
/** Define a persona and persist it as config (the manager's `definePersona` op writes
|
|
665
757
|
* .cotal/agents/<name>.md). On success, announce it on the channel — the "send it out"
|
|
666
758
|
* half — so peers see the new persona; `spawn(name)` then launches an agent wearing it. */
|
|
667
759
|
async definePersona(def) {
|
|
668
760
|
this.assertConnected();
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
args: { name: def.name, model: def.model, persona: def.prompt },
|
|
673
|
-
});
|
|
761
|
+
// role is policy — set at spawn, never via definePersona; the manager ignores it regardless.
|
|
762
|
+
const args = { name: def.name, model: def.model, persona: def.prompt };
|
|
763
|
+
const reply = await this.managerInvoke("define-persona", args);
|
|
674
764
|
if (reply.ok)
|
|
675
765
|
await this.send(`persona \`${def.name}\` is now available — spawn it to bring it online`);
|
|
676
766
|
return reply;
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/control.d.ts
CHANGED
|
@@ -17,6 +17,9 @@ export interface HookEvent {
|
|
|
17
17
|
}
|
|
18
18
|
/** Maps one hook event to the JSON reply the runtime applies. */
|
|
19
19
|
export type HookHandle = (agent: MeshAgent, ev: HookEvent) => Promise<Record<string, unknown>>;
|
|
20
|
+
/** One line a handoff-aware client writes back once the reply has cleared ITS output to the runtime.
|
|
21
|
+
* Content is irrelevant — arrival is the signal — but a stable token keeps a transcript readable. */
|
|
22
|
+
export declare const HANDOFF_RECEIPT = "{\"handoff\":\"ok\"}\n";
|
|
20
23
|
export interface ControlServerOpts {
|
|
21
24
|
/** Fail loud on a bind we can't hold. A managed listener (the in-agent MCP server, the Hermes
|
|
22
25
|
* sidecar) MUST own its endpoint: if `listen` errors (e.g. a squatter already holds the win32
|
|
@@ -28,6 +31,27 @@ export interface ControlServerOpts {
|
|
|
28
31
|
* its own clean teardown (close the server, `agent.stop()` to leave the mesh, then exit) — the
|
|
29
32
|
* server never owns `process.exit`. Absent → shutdown frames are accepted + acked but inert. */
|
|
30
33
|
onShutdown?: () => void;
|
|
34
|
+
/** Called once per handled hook frame, after the reply has been written, with whether it reached a
|
|
35
|
+
* LIVE client. A hook reply is the only vehicle for the peer messages a handler injects, and it is
|
|
36
|
+
* not guaranteed to arrive: the relay abandons the exchange after its own timeout, and the runtime
|
|
37
|
+
* can kill the hook process outright. A handler that surfaced messages therefore commits them on
|
|
38
|
+
* `delivered === true` and leaves them un-acked otherwise, so the durable redelivery brings them
|
|
39
|
+
* back instead of the batch being silently consumed.
|
|
40
|
+
*
|
|
41
|
+
* **Frames overlap, so correlate on `ev`.** This is the identical object passed to `handle`, and
|
|
42
|
+
* it is the only thing tying a verdict to the reply that carried a batch: each frame is its own
|
|
43
|
+
* connection, and a `PreToolUse` can land while a `UserPromptSubmit` reply is still being written.
|
|
44
|
+
* A single mutable "pending" slot will therefore commit one frame's messages on another frame's
|
|
45
|
+
* verdict. Key per event (a WeakMap, so a frame whose verdict never arrives is collected).
|
|
46
|
+
*
|
|
47
|
+
* How strong `delivered` is depends on the client. A client that sets `handoff: true` (the hook
|
|
48
|
+
* relay does) confirms only after its own write to the runtime-facing pipe completed cleanly —
|
|
49
|
+
* strictly more than a socket write, and still short of proof the host read or applied the reply:
|
|
50
|
+
* a small payload can sit in a kernel buffer that nobody ever drains. For any other client it
|
|
51
|
+
* means only "written to a socket that was still open" — exact for the case that matters, a client
|
|
52
|
+
* that had already gone away when we answered, but blind to one that dies with the reply
|
|
53
|
+
* unflushed downstream. Both are why this errs toward at-least-once. */
|
|
54
|
+
onReply?: (ev: HookEvent, delivered: boolean) => void;
|
|
31
55
|
}
|
|
32
56
|
/** The context block injected into a turn when peer messages are waiting (else undefined). */
|
|
33
57
|
export declare function formatInjection(items: InboxItem[]): string | undefined;
|
package/dist/control.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,MAAM,EAAe,MAAM,UAAU,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,iEAAiE;AACjE,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAU/F;sGACsG;AACtG,eAAO,MAAM,eAAe,2BAAuB,CAAC;AASpD,MAAM,WAAW,iBAAiB;IAChC;;;;qCAIiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;qGAEiG;IACjG,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;;;;;;;;;;;;;;;;;6EAmByE;IACzE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AA+BD,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,SAAS,CAKtE;AA4ED;;;;oDAIoD;AACpD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACzC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CAoFR"}
|
package/dist/control.js
CHANGED
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
import { createServer } from "node:net";
|
|
12
12
|
import { existsSync, unlinkSync } from "node:fs";
|
|
13
13
|
import { createHash, timingSafeEqual } from "node:crypto";
|
|
14
|
+
/** One line a handoff-aware client writes back once the reply has cleared ITS output to the runtime.
|
|
15
|
+
* Content is irrelevant — arrival is the signal — but a stable token keeps a transcript readable. */
|
|
16
|
+
export const HANDOFF_RECEIPT = '{"handoff":"ok"}\n';
|
|
17
|
+
/** Backstop for a client that declared `handoff` and then neither confirmed nor closed. The relay's
|
|
18
|
+
* own stdout backstop is 1s, and a client that dies takes the socket with it (→ `close` → not
|
|
19
|
+
* delivered), so this only catches a wedged one. Un-delivered on expiry: never commit on a guess. */
|
|
20
|
+
const HANDOFF_DEADLINE_MS = 5_000;
|
|
21
|
+
/** Bound on awaiting a NON-handoff client's reply write. Such a client makes no delivery promise, so
|
|
22
|
+
* this only stops one that never reads from pinning a handler; the socket is left alone to flush. */
|
|
23
|
+
const LEGACY_WRITE_DEADLINE_MS = 5_000;
|
|
14
24
|
/** Hard cap on the first (only) frame: a control request is a token + one small lifecycle event —
|
|
15
25
|
* kilobytes at most. Generous headroom for a legit event, tiny next to the ~512MB string limit an
|
|
16
26
|
* unauthenticated spewer would otherwise drive `buf` toward to crash the process. */
|
|
@@ -47,6 +57,85 @@ export function formatInjection(items) {
|
|
|
47
57
|
const tail = `(Reply with cotal_send / cotal_dm, or cotal_roster to see who's here.)`;
|
|
48
58
|
return `${head}\n${items.map(fmtItem).join("\n")}\n${tail}`;
|
|
49
59
|
}
|
|
60
|
+
/** Write one reply frame and report whether it actually reached the runtime.
|
|
61
|
+
*
|
|
62
|
+
* Two strengths, chosen by the client:
|
|
63
|
+
*
|
|
64
|
+
* - **Socket write** (default). Resolves `false` when the socket had already gone (the relay timed
|
|
65
|
+
* out and destroyed it, or the hook process was killed). This is as far as we can see on our own,
|
|
66
|
+
* and it is NOT the whole journey: the reply still has to cross the client's own output to the
|
|
67
|
+
* runtime, and a client that dies with it unflushed reads as delivered here.
|
|
68
|
+
* - **Confirmed handoff** (`handoff: true` in the request frame). We hold the connection open until
|
|
69
|
+
* the client writes {@link HANDOFF_RECEIPT} back, which it does only once the reply has cleared
|
|
70
|
+
* its output. A close, an error, or the deadline without that receipt is NOT delivered. This is
|
|
71
|
+
* what closes the large-reply hole: a 6 MiB injection that the relay's 1s stdout backstop kills
|
|
72
|
+
* mid-flush leaves the batch un-acked, so JetStream redelivers it. */
|
|
73
|
+
function writeReply(sock, reply, awaitHandoff) {
|
|
74
|
+
return new Promise((resolve) => {
|
|
75
|
+
let settled = false;
|
|
76
|
+
const done = (ok) => {
|
|
77
|
+
if (settled)
|
|
78
|
+
return;
|
|
79
|
+
settled = true;
|
|
80
|
+
resolve(ok);
|
|
81
|
+
};
|
|
82
|
+
// A destroyed/half-closed peer surfaces as an error or a close before the write ever finishes;
|
|
83
|
+
// `finish` (the end callback) precedes `close` on the success path, so the first signal wins.
|
|
84
|
+
sock.once("error", () => done(false));
|
|
85
|
+
sock.once("close", () => done(false));
|
|
86
|
+
if (!awaitHandoff) {
|
|
87
|
+
// This write used to be fire-and-forget; awaiting it means a peer that never reads can hold the
|
|
88
|
+
// handler open for as long as it likes (`end()`'s callback waits for the flush). Bound the WAIT
|
|
89
|
+
// rather than the socket: resolving early reports what we honestly know — not confirmed — while
|
|
90
|
+
// the kernel finishes the write in the background, so a merely slow reader is never truncated.
|
|
91
|
+
const stall = setTimeout(() => done(false), LEGACY_WRITE_DEADLINE_MS);
|
|
92
|
+
stall.unref?.();
|
|
93
|
+
try {
|
|
94
|
+
sock.end(JSON.stringify(reply) + "\n", ((err) => {
|
|
95
|
+
clearTimeout(stall);
|
|
96
|
+
done(!err);
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
clearTimeout(stall);
|
|
101
|
+
done(false); // already destroyed — end() throws rather than calling back
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const deadline = setTimeout(() => {
|
|
106
|
+
sock.destroy(); // wedged client: stop waiting, and do NOT credit a handoff we never saw
|
|
107
|
+
done(false);
|
|
108
|
+
}, HANDOFF_DEADLINE_MS);
|
|
109
|
+
deadline.unref?.();
|
|
110
|
+
let receipt = "";
|
|
111
|
+
sock.on("data", (d) => {
|
|
112
|
+
receipt += d;
|
|
113
|
+
if (!receipt.includes("\n"))
|
|
114
|
+
return;
|
|
115
|
+
clearTimeout(deadline);
|
|
116
|
+
try {
|
|
117
|
+
sock.end();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
/* client already gone; the receipt is what mattered and we have it */
|
|
121
|
+
}
|
|
122
|
+
done(true);
|
|
123
|
+
});
|
|
124
|
+
try {
|
|
125
|
+
// write, not end: the client cannot send its receipt down a connection we have half-closed.
|
|
126
|
+
sock.write(JSON.stringify(reply) + "\n", (err) => {
|
|
127
|
+
if (!err)
|
|
128
|
+
return;
|
|
129
|
+
clearTimeout(deadline);
|
|
130
|
+
done(false);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
clearTimeout(deadline);
|
|
135
|
+
done(false);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
50
139
|
/** Start the authenticated control server. One newline-delimited JSON {@link ControlFrame} → one
|
|
51
140
|
* reply per connection. The first thing every connection does is validate its `token` against the
|
|
52
141
|
* endpoint's (constant-time) — a mismatch is dropped before `handle` (or `onShutdown`) ever runs,
|
|
@@ -115,13 +204,14 @@ export function startControlServer(agent, endpoint, handle, opts = {}) {
|
|
|
115
204
|
return;
|
|
116
205
|
}
|
|
117
206
|
const ev = (frame.event ?? {});
|
|
207
|
+
const awaitHandoff = frame.handoff === true;
|
|
118
208
|
const reply = await handle(agent, ev);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
209
|
+
// Write FIRST, then report. `opts.onReply?.(ev, await writeReply(...))` short-circuits the
|
|
210
|
+
// whole call expression when `onReply` is absent — arguments included — so the reply was never
|
|
211
|
+
// written at all for the callers that do not observe delivery (opencode, hermes, pi, codex).
|
|
212
|
+
// Answering the client is the server's job; `onReply` only watches it.
|
|
213
|
+
const delivered = await writeReply(sock, reply, awaitHandoff);
|
|
214
|
+
opts.onReply?.(ev, delivered);
|
|
125
215
|
});
|
|
126
216
|
sock.on("error", () => {
|
|
127
217
|
/* ignore client errors */
|
package/dist/control.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAA4B,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoB1D;sGACsG;AACtG,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACpD;;sGAEsG;AACtG,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC;sGACsG;AACtG,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAoCvC;;sFAEsF;AACtF,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ;AACzC;;;uGAGuG;AACvG,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B;;oGAEoG;AACpG,SAAS,YAAY,CAAC,SAAkB,EAAE,MAAc;IACtD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,GAAG,CAAC,CAAY;IACvB,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED,SAAS,OAAO,CAAC,CAAY;IAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,+CAA+C;IAC3F,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,OAAO,MAAM,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,IAAI,GAAG,cAAc,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IAClG,MAAM,IAAI,GAAG,wEAAwE,CAAC;IACtF,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;yEAYyE;AACzE,SAAS,UAAU,CAAC,IAAY,EAAE,KAA8B,EAAE,YAAqB;IACrF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,EAAW,EAAQ,EAAE;YACjC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC;QACF,+FAA+F;QAC/F,8FAA8F;QAC9F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,gGAAgG;YAChG,gGAAgG;YAChG,gGAAgG;YAChG,+FAA+F;YAC/F,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,CAAC;YACtE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAkB,EAAE,EAAE;oBAC7D,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC,CAAe,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,4DAA4D;YAC3E,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,wEAAwE;YACxF,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC5B,OAAO,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO;YACpC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,sEAAsE;YACxE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,4FAA4F;YAC5F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAkB,EAAE,EAAE;gBAC9D,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;oDAIoD;AACpD,MAAM,UAAU,kBAAkB,CAChC,KAAgB,EAChB,QAAyC,EACzC,MAAkB,EAClB,OAA0B,EAAE;IAE5B,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IACpE,kGAAkG;IAClG,kGAAkG;IAClG,kGAAkG;IAClG,uEAAuE;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,kEAAkE;QACvF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,iGAAiG;QACjG,8FAA8F;QAC9F,4FAA4F;QAC5F,6FAA6F;QAC7F,gGAAgG;QAChG,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACpE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,+DAA+D;QACnF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,OAAO;gBAAE,OAAO;YACpB,GAAG,IAAI,CAAC,CAAC;YACT,IAAI,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,yEAAyE;gBACzF,OAAO;YACT,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,EAAE,GAAG,CAAC;gBAAE,OAAO,CAAC,yBAAyB;YAC7C,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,wEAAwE;YAChG,IAAI,KAAK,GAAiB,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAiB,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;YAC7D,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,sEAAsE;gBACtF,OAAO;YACT,CAAC;YACD,IAAK,KAA0B,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBAClD,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;gBACD,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,MAAM,EAAE,GAAG,CAAE,KAA6B,CAAC,KAAK,IAAI,EAAE,CAAc,CAAC;YACrE,MAAM,YAAY,GAAI,KAA+B,CAAC,OAAO,KAAK,IAAI,CAAC;YACvE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,2FAA2F;YAC3F,+FAA+F;YAC/F,6FAA6F;YAC7F,uEAAuE;YACvE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,0BAA0B;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA4C,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1F,+FAA+F;QAC/F,4FAA4F;QAC5F,kCAAkC;QAClC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,KAAK,GAAG,IAAI,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,IAAI,CAAC,CAAC,CAAC,6CAA6C;IACpH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|