@integrity-labs/agt-cli 0.28.914 → 0.28.916
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.
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
safeWriteJsonAtomic,
|
|
64
64
|
setConfigHash,
|
|
65
65
|
tripClass
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-OJK2OMY7.js";
|
|
67
67
|
import {
|
|
68
68
|
getProjectDir as getProjectDir2,
|
|
69
69
|
getReadyTasks,
|
|
@@ -13818,7 +13818,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13818
13818
|
var lastVersionCheckAt = 0;
|
|
13819
13819
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13820
13820
|
var lastResponsivenessProbeAt = 0;
|
|
13821
|
-
var agtCliVersion = true ? "0.28.
|
|
13821
|
+
var agtCliVersion = true ? "0.28.916" : "dev";
|
|
13822
13822
|
function resolveBrewPath(execFileSync2) {
|
|
13823
13823
|
try {
|
|
13824
13824
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -88,6 +88,68 @@ function logErr(msg) {
|
|
|
88
88
|
process.stderr.write(`[remote-oauth-proxy:${label}] ${msg}
|
|
89
89
|
`);
|
|
90
90
|
}
|
|
91
|
+
function describeWriteError(err) {
|
|
92
|
+
const code = err?.code;
|
|
93
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
94
|
+
return typeof code === "string" ? `${code}: ${msg}` : msg;
|
|
95
|
+
}
|
|
96
|
+
var stdoutWriteFailures = 0;
|
|
97
|
+
function writeFailureCount() {
|
|
98
|
+
return stdoutWriteFailures;
|
|
99
|
+
}
|
|
100
|
+
function handleStdoutWriteFailure(err) {
|
|
101
|
+
stdoutWriteFailures += 1;
|
|
102
|
+
logErr(`stdout write FAILED (${describeWriteError(err)}); reply dropped, proxy continuing`);
|
|
103
|
+
if (err?.code === "EPIPE") {
|
|
104
|
+
logErr("stdout is closed (EPIPE) - the transport peer is gone; exiting rather than running silent");
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function createReplyWriter(write, onFailure, waitForDrain = () => Promise.resolve()) {
|
|
109
|
+
const report = (err) => {
|
|
110
|
+
try {
|
|
111
|
+
onFailure(err);
|
|
112
|
+
} catch {
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
let writeLock = Promise.resolve();
|
|
116
|
+
return (replies) => {
|
|
117
|
+
writeLock = writeLock.then(async () => {
|
|
118
|
+
for (const reply of replies) {
|
|
119
|
+
try {
|
|
120
|
+
if (write(reply + "\n") === false) await waitForDrain();
|
|
121
|
+
} catch (err) {
|
|
122
|
+
report(err);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}).catch((err) => {
|
|
126
|
+
report(err);
|
|
127
|
+
});
|
|
128
|
+
return writeLock;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function awaitDrain(out) {
|
|
132
|
+
if (out.destroyed) return Promise.resolve();
|
|
133
|
+
return new Promise((resolve) => {
|
|
134
|
+
const done = () => {
|
|
135
|
+
out.off("drain", done);
|
|
136
|
+
out.off("error", done);
|
|
137
|
+
out.off("close", done);
|
|
138
|
+
resolve();
|
|
139
|
+
};
|
|
140
|
+
out.on("drain", done);
|
|
141
|
+
out.on("error", done);
|
|
142
|
+
out.on("close", done);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function createStdoutReplyWriter(out = process.stdout) {
|
|
146
|
+
out.on("error", handleStdoutWriteFailure);
|
|
147
|
+
return createReplyWriter(
|
|
148
|
+
(chunk) => out.write(chunk),
|
|
149
|
+
handleStdoutWriteFailure,
|
|
150
|
+
() => awaitDrain(out)
|
|
151
|
+
);
|
|
152
|
+
}
|
|
91
153
|
function parsePreEnableToolsets(raw) {
|
|
92
154
|
const seen = /* @__PURE__ */ new Set();
|
|
93
155
|
const out = [];
|
|
@@ -500,13 +562,7 @@ async function main() {
|
|
|
500
562
|
process.exit(1);
|
|
501
563
|
}
|
|
502
564
|
const rl = createInterface({ input: process.stdin, crlfDelay: Infinity });
|
|
503
|
-
|
|
504
|
-
const writeReplies = (replies) => {
|
|
505
|
-
writeLock = writeLock.then(() => {
|
|
506
|
-
for (const reply of replies) process.stdout.write(reply + "\n");
|
|
507
|
-
});
|
|
508
|
-
return writeLock;
|
|
509
|
-
};
|
|
565
|
+
const writeReplies = createStdoutReplyWriter();
|
|
510
566
|
const inflight = /* @__PURE__ */ new Set();
|
|
511
567
|
rl.on("line", (line) => {
|
|
512
568
|
const text = line.trim();
|
|
@@ -539,7 +595,7 @@ async function main() {
|
|
|
539
595
|
});
|
|
540
596
|
await new Promise((resolve) => rl.on("close", () => resolve()));
|
|
541
597
|
await Promise.all([...inflight]);
|
|
542
|
-
await
|
|
598
|
+
await writeReplies([]);
|
|
543
599
|
}
|
|
544
600
|
var invokedDirectly = (() => {
|
|
545
601
|
try {
|
|
@@ -556,15 +612,20 @@ if (invokedDirectly) {
|
|
|
556
612
|
export {
|
|
557
613
|
ACTIVATION_TOOL,
|
|
558
614
|
activationRefusalMessage,
|
|
615
|
+
awaitDrain,
|
|
559
616
|
buildEnableToolsetRequest,
|
|
560
617
|
buildForwardHeaders,
|
|
561
618
|
buildToolsListRequest,
|
|
562
619
|
callRefusal,
|
|
563
620
|
claimGroupTools,
|
|
621
|
+
createReplyWriter,
|
|
622
|
+
createStdoutReplyWriter,
|
|
623
|
+
describeWriteError,
|
|
564
624
|
extractJsonRpcMessages,
|
|
565
625
|
extractToolsArray,
|
|
566
626
|
filterToolsListMessage,
|
|
567
627
|
forward,
|
|
628
|
+
handleStdoutWriteFailure,
|
|
568
629
|
isManagedActivationCall,
|
|
569
630
|
isToolArgRejected,
|
|
570
631
|
isToolCallBlocked,
|
|
@@ -576,5 +637,6 @@ export {
|
|
|
576
637
|
parseToolAllowlist,
|
|
577
638
|
readCurrentToken,
|
|
578
639
|
stripActivationTool,
|
|
579
|
-
toolName
|
|
640
|
+
toolName,
|
|
641
|
+
writeFailureCount
|
|
580
642
|
};
|