@cotal-ai/connector-core 0.16.0 → 0.18.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 +65 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +188 -29
- 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 +24 -17
- 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/dist/tool-specs.d.ts.map +1 -1
- package/dist/tool-specs.js +34 -4
- package/dist/tool-specs.js.map +1 -1
- package/package.json +2 -2
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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-bundle.generated.d.ts","sourceRoot":"","sources":["../src/docs-bundle.generated.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"docs-bundle.generated.d.ts","sourceRoot":"","sources":["../src/docs-bundle.generated.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,WAAW,EAAE,UAyQzB,CAAC"}
|