agent-relay 11.6.9 → 11.7.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/README.md +5 -0
- package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
- package/dist/cli/agent-relay-mcp.js +23 -5
- package/dist/cli/agent-relay-mcp.js.map +1 -1
- package/dist/cli/commands/fleet-agent.d.ts +152 -0
- package/dist/cli/commands/fleet-agent.d.ts.map +1 -0
- package/dist/cli/commands/fleet-agent.js +0 -0
- package/dist/cli/commands/fleet-agent.js.map +1 -0
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +195 -2
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/local-agent.d.ts +21 -1
- package/dist/cli/commands/local-agent.d.ts.map +1 -1
- package/dist/cli/commands/local-agent.js +83 -12
- package/dist/cli/commands/local-agent.js.map +1 -1
- package/dist/cli/lib/attach-input-recovery.d.ts +36 -5
- package/dist/cli/lib/attach-input-recovery.d.ts.map +1 -1
- package/dist/cli/lib/attach-input-recovery.js +51 -1
- package/dist/cli/lib/attach-input-recovery.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/package.json +8 -8
|
@@ -38,9 +38,37 @@ export declare const INPUT_REOPEN_ATTEMPT_TIMEOUT_MS = 15000;
|
|
|
38
38
|
* (`transport.ts:206-214`, `retryable: true`). That is flow control, not
|
|
39
39
|
* transport death: tearing the socket down and reopening it would drop every
|
|
40
40
|
* outstanding keystroke and re-run the identity gate, turning a slow broker
|
|
41
|
-
* into a detach.
|
|
41
|
+
* into a detach. See {@link isWriteTimeoutRejection} for the other rejection
|
|
42
|
+
* that must not trigger a teardown; every remaining rejection means the
|
|
43
|
+
* stream is gone or unusable.
|
|
42
44
|
*/
|
|
43
45
|
export declare function isBackpressureRejection(error: unknown): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* `PtyInputStream.send()` rejects with `worker_timeout` when the broker's
|
|
48
|
+
* `write_pty` ack for THAT ONE keystroke didn't arrive before
|
|
49
|
+
* `PTY_INPUT_ACK_TIMEOUT` (broker `api.rs`). That does not mean the worker is
|
|
50
|
+
* dead: a confirmed-dead worker is reaped independently and surfaces as
|
|
51
|
+
* `worker_disappeared`, and the broker keeps this WebSocket open for
|
|
52
|
+
* `worker_timeout` specifically (`pty_input_error_is_connection_fatal`,
|
|
53
|
+
* `listen_api.rs`) because a busy-but-alive coding agent that hasn't drained
|
|
54
|
+
* its stdin yet produces the exact same "no ack yet" as a wedged one — the
|
|
55
|
+
* broker has no other liveness signal to tell them apart. Tearing the whole
|
|
56
|
+
* input stream down and reconnecting over one slow ack is what produced the
|
|
57
|
+
* self-healing "input stream lost / reconnected after 1 attempt(s)" flap
|
|
58
|
+
* reported in relay#1544.
|
|
59
|
+
*
|
|
60
|
+
* Critically, a late ack is not a failed write: the broker's `write_all()`
|
|
61
|
+
* onto the PTY master is still blocking and pending when the ack times out,
|
|
62
|
+
* and it very likely completes once the busy child drains its stdin — the
|
|
63
|
+
* keystroke lands anyway. Rolling back the optimistic echo here would show
|
|
64
|
+
* the operator input vanishing right before it executes, a UI lie that is
|
|
65
|
+
* worse than the flap this module exists to fix and that the operator cannot
|
|
66
|
+
* recover from (they cannot tell whether it is safe to retype). So this code
|
|
67
|
+
* must NOT roll back the echo. Only a *confirmed* write failure — a different
|
|
68
|
+
* error code entirely — may roll it back, and that already falls through to
|
|
69
|
+
* {@link createInputStreamRecovery}'s default `recover()` path below.
|
|
70
|
+
*/
|
|
71
|
+
export declare function isWriteTimeoutRejection(error: unknown): boolean;
|
|
44
72
|
export interface InputStreamRecoveryOptions {
|
|
45
73
|
/** Log prefix tag — `drive` or `passthrough`. */
|
|
46
74
|
label: string;
|
|
@@ -108,10 +136,13 @@ export interface InputStreamRecovery {
|
|
|
108
136
|
/** Begin recovery. No-ops if already recovering or settled. */
|
|
109
137
|
recover(reason: string): void;
|
|
110
138
|
/**
|
|
111
|
-
* Classify a rejected `send()`.
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
139
|
+
* Classify a rejected `send()`. Two codes never enter recovery:
|
|
140
|
+
* `input_backpressure` is flow control on a healthy stream and only costs
|
|
141
|
+
* the optimistic echo, and `worker_timeout` is a late ack on a write that
|
|
142
|
+
* may still land, so it costs nothing — no rollback, no recovery. Every
|
|
143
|
+
* other rejection is treated as transport loss and enters recovery, which
|
|
144
|
+
* does roll back. Callers route every send rejection here rather than
|
|
145
|
+
* assuming loss.
|
|
115
146
|
*/
|
|
116
147
|
handleSendFailure(error: unknown): void;
|
|
117
148
|
/** Clears the backpressure latch so a later episode reports again. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-input-recovery.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/attach-input-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,2CAA2C;AAC3C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"attach-input-recovery.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/attach-input-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,2CAA2C;AAC3C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI/D;AAED,MAAM,WAAW,0BAA0B;IACzC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,iFAAiF;IACjF,UAAU,EAAE,MAAM,iBAAiB,CAAC;IACpC,sEAAsE;IACtE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oEAAoE;IACpE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAOD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,IAAI,iBAAiB,CAAC;IACxE,wCAAwC;IACxC,YAAY,IAAI,OAAO,CAAC;IACxB,+DAA+D;IAC/D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,sEAAsE;IACtE,eAAe,IAAI,IAAI,CAAC;IACxB,4DAA4D;IAC5D,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CA4QlG"}
|
|
@@ -37,11 +37,41 @@ export const INPUT_REOPEN_ATTEMPT_TIMEOUT_MS = 15_000;
|
|
|
37
37
|
* (`transport.ts:206-214`, `retryable: true`). That is flow control, not
|
|
38
38
|
* transport death: tearing the socket down and reopening it would drop every
|
|
39
39
|
* outstanding keystroke and re-run the identity gate, turning a slow broker
|
|
40
|
-
* into a detach.
|
|
40
|
+
* into a detach. See {@link isWriteTimeoutRejection} for the other rejection
|
|
41
|
+
* that must not trigger a teardown; every remaining rejection means the
|
|
42
|
+
* stream is gone or unusable.
|
|
41
43
|
*/
|
|
42
44
|
export function isBackpressureRejection(error) {
|
|
43
45
|
return (typeof error === 'object' && error !== null && error.code === 'input_backpressure');
|
|
44
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* `PtyInputStream.send()` rejects with `worker_timeout` when the broker's
|
|
49
|
+
* `write_pty` ack for THAT ONE keystroke didn't arrive before
|
|
50
|
+
* `PTY_INPUT_ACK_TIMEOUT` (broker `api.rs`). That does not mean the worker is
|
|
51
|
+
* dead: a confirmed-dead worker is reaped independently and surfaces as
|
|
52
|
+
* `worker_disappeared`, and the broker keeps this WebSocket open for
|
|
53
|
+
* `worker_timeout` specifically (`pty_input_error_is_connection_fatal`,
|
|
54
|
+
* `listen_api.rs`) because a busy-but-alive coding agent that hasn't drained
|
|
55
|
+
* its stdin yet produces the exact same "no ack yet" as a wedged one — the
|
|
56
|
+
* broker has no other liveness signal to tell them apart. Tearing the whole
|
|
57
|
+
* input stream down and reconnecting over one slow ack is what produced the
|
|
58
|
+
* self-healing "input stream lost / reconnected after 1 attempt(s)" flap
|
|
59
|
+
* reported in relay#1544.
|
|
60
|
+
*
|
|
61
|
+
* Critically, a late ack is not a failed write: the broker's `write_all()`
|
|
62
|
+
* onto the PTY master is still blocking and pending when the ack times out,
|
|
63
|
+
* and it very likely completes once the busy child drains its stdin — the
|
|
64
|
+
* keystroke lands anyway. Rolling back the optimistic echo here would show
|
|
65
|
+
* the operator input vanishing right before it executes, a UI lie that is
|
|
66
|
+
* worse than the flap this module exists to fix and that the operator cannot
|
|
67
|
+
* recover from (they cannot tell whether it is safe to retype). So this code
|
|
68
|
+
* must NOT roll back the echo. Only a *confirmed* write failure — a different
|
|
69
|
+
* error code entirely — may roll it back, and that already falls through to
|
|
70
|
+
* {@link createInputStreamRecovery}'s default `recover()` path below.
|
|
71
|
+
*/
|
|
72
|
+
export function isWriteTimeoutRejection(error) {
|
|
73
|
+
return (typeof error === 'object' && error !== null && error.code === 'worker_timeout');
|
|
74
|
+
}
|
|
45
75
|
function describeSendError(error) {
|
|
46
76
|
if (error instanceof Error)
|
|
47
77
|
return error.message;
|
|
@@ -61,6 +91,8 @@ export function createInputStreamRecovery(options) {
|
|
|
61
91
|
let releaseBackoff = null;
|
|
62
92
|
/** True once a backpressure episode has been reported; reset on the next good send. */
|
|
63
93
|
let backpressureReported = false;
|
|
94
|
+
/** True once a write-timeout episode has been reported; reset on the next good send. */
|
|
95
|
+
let writeTimeoutReported = false;
|
|
64
96
|
const cancel = () => {
|
|
65
97
|
if (timer) {
|
|
66
98
|
clearTimeout(timer);
|
|
@@ -103,6 +135,7 @@ export function createInputStreamRecovery(options) {
|
|
|
103
135
|
};
|
|
104
136
|
const noteSendSuccess = () => {
|
|
105
137
|
backpressureReported = false;
|
|
138
|
+
writeTimeoutReported = false;
|
|
106
139
|
};
|
|
107
140
|
const handleSendFailure = (sendError) => {
|
|
108
141
|
if (isBackpressureRejection(sendError)) {
|
|
@@ -118,6 +151,23 @@ export function createInputStreamRecovery(options) {
|
|
|
118
151
|
}
|
|
119
152
|
return;
|
|
120
153
|
}
|
|
154
|
+
if (isWriteTimeoutRejection(sendError)) {
|
|
155
|
+
// This one write's ack didn't arrive in time — the worker may just be
|
|
156
|
+
// busy, not dead (relay#1544). The transport already kept the socket
|
|
157
|
+
// open for this exact code, so recovering here would manufacture the
|
|
158
|
+
// reconnect this module exists to avoid. A late ack is not a failed
|
|
159
|
+
// write either: the broker's write to the PTY is still pending and
|
|
160
|
+
// very likely lands once the worker drains its stdin, so do NOT roll
|
|
161
|
+
// back the optimistic echo — doing so would erase input right before
|
|
162
|
+
// it executes, with no way for the operator to tell it happened. Only
|
|
163
|
+
// a confirmed write failure (a distinct error code) may roll it back,
|
|
164
|
+
// and that already falls through to `recover()` below.
|
|
165
|
+
if (!writeTimeoutReported) {
|
|
166
|
+
writeTimeoutReported = true;
|
|
167
|
+
log(`[${label}] ${name} did not confirm a keystroke in time (worker busy); it may still land.`);
|
|
168
|
+
}
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
121
171
|
recover(describeSendError(sendError));
|
|
122
172
|
};
|
|
123
173
|
const recover = (reason) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-input-recovery.js","sourceRoot":"","sources":["../../../src/cli/lib/attach-input-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,qFAAqF;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAC/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"attach-input-recovery.js","sourceRoot":"","sources":["../../../src/cli/lib/attach-input-recovery.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -295,7 +295,7 @@ __export(index_exports, {
|
|
|
295
295
|
module.exports = __toCommonJS(index_exports);
|
|
296
296
|
|
|
297
297
|
// ../../node_modules/@relaycast/sdk/dist/version.js
|
|
298
|
-
var SDK_VERSION = "8.0.
|
|
298
|
+
var SDK_VERSION = "8.0.4";
|
|
299
299
|
|
|
300
300
|
// ../../node_modules/zod/v4/classic/external.js
|
|
301
301
|
var external_exports = {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-relay",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.7.0",
|
|
4
4
|
"description": "Real-time agent-to-agent communication system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"pack:validate": "npm pack --dry-run"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@agent-relay/cloud": "11.
|
|
47
|
-
"@agent-relay/config": "11.
|
|
48
|
-
"@agent-relay/fleet": "11.
|
|
49
|
-
"@agent-relay/harness-driver": "11.
|
|
50
|
-
"@agent-relay/harnesses": "11.
|
|
51
|
-
"@agent-relay/sdk": "11.
|
|
52
|
-
"@agent-relay/utils": "11.
|
|
46
|
+
"@agent-relay/cloud": "11.7.0",
|
|
47
|
+
"@agent-relay/config": "11.7.0",
|
|
48
|
+
"@agent-relay/fleet": "11.7.0",
|
|
49
|
+
"@agent-relay/harness-driver": "11.7.0",
|
|
50
|
+
"@agent-relay/harnesses": "11.7.0",
|
|
51
|
+
"@agent-relay/sdk": "11.7.0",
|
|
52
|
+
"@agent-relay/utils": "11.7.0",
|
|
53
53
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
54
54
|
"@relayfile/client": "^0.10.27",
|
|
55
55
|
"@relayflows/cli": "1.0.1",
|