@simonepri/refined-antigravity-acp 0.2.0 → 1.0.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/bin/cli.js +2 -51
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +44 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/{command.d.ts → core/command.d.ts} +4 -0
- package/dist/src/core/command.d.ts.map +1 -0
- package/dist/src/{command.js → core/command.js} +27 -11
- package/dist/src/core/command.js.map +1 -0
- package/dist/src/core/pipeline.d.ts +20 -0
- package/dist/src/core/pipeline.d.ts.map +1 -0
- package/dist/src/core/pipeline.js +94 -0
- package/dist/src/core/pipeline.js.map +1 -0
- package/dist/src/core/session-cache.d.ts +12 -0
- package/dist/src/core/session-cache.d.ts.map +1 -0
- package/dist/src/core/session-cache.js +85 -0
- package/dist/src/core/session-cache.js.map +1 -0
- package/dist/src/core/supervisor.d.ts +90 -0
- package/dist/src/core/supervisor.d.ts.map +1 -0
- package/dist/src/core/supervisor.js +582 -0
- package/dist/src/core/supervisor.js.map +1 -0
- package/dist/src/core/telemetry.d.ts +23 -0
- package/dist/src/core/telemetry.d.ts.map +1 -0
- package/dist/src/core/telemetry.js +75 -0
- package/dist/src/core/telemetry.js.map +1 -0
- package/dist/src/core/transport.d.ts +7 -0
- package/dist/src/core/transport.d.ts.map +1 -0
- package/dist/src/core/transport.js +37 -0
- package/dist/src/core/transport.js.map +1 -0
- package/dist/src/core/types.d.ts +293 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +78 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/fixes/active-turn-collision/index.d.ts +27 -0
- package/dist/src/fixes/active-turn-collision/index.d.ts.map +1 -0
- package/dist/src/fixes/active-turn-collision/index.js +117 -0
- package/dist/src/fixes/active-turn-collision/index.js.map +1 -0
- package/dist/src/fixes/cancellation-leak/index.d.ts +17 -0
- package/dist/src/fixes/cancellation-leak/index.d.ts.map +1 -0
- package/dist/src/fixes/cancellation-leak/index.js +57 -0
- package/dist/src/fixes/cancellation-leak/index.js.map +1 -0
- package/dist/src/fixes/dangling-tool-calls/index.d.ts +32 -0
- package/dist/src/fixes/dangling-tool-calls/index.d.ts.map +1 -0
- package/dist/src/fixes/dangling-tool-calls/index.js +188 -0
- package/dist/src/fixes/dangling-tool-calls/index.js.map +1 -0
- package/dist/src/fixes/dropped-history-chunks/index.d.ts +47 -0
- package/dist/src/fixes/dropped-history-chunks/index.d.ts.map +1 -0
- package/dist/src/fixes/dropped-history-chunks/index.js +202 -0
- package/dist/src/fixes/dropped-history-chunks/index.js.map +1 -0
- package/dist/src/fixes/flattened-model-efforts/index.d.ts +39 -0
- package/dist/src/fixes/flattened-model-efforts/index.d.ts.map +1 -0
- package/dist/src/fixes/flattened-model-efforts/index.js +306 -0
- package/dist/src/fixes/flattened-model-efforts/index.js.map +1 -0
- package/dist/src/fixes/index.d.ts +25 -0
- package/dist/src/fixes/index.d.ts.map +1 -0
- package/dist/src/fixes/index.js +61 -0
- package/dist/src/fixes/index.js.map +1 -0
- package/dist/src/fixes/malformed-stream-syntax/index.d.ts +44 -0
- package/dist/src/fixes/malformed-stream-syntax/index.d.ts.map +1 -0
- package/dist/src/fixes/malformed-stream-syntax/index.js +346 -0
- package/dist/src/fixes/malformed-stream-syntax/index.js.map +1 -0
- package/dist/src/fixes/missing-localharness/index.d.ts +20 -0
- package/dist/src/fixes/missing-localharness/index.d.ts.map +1 -0
- package/dist/src/fixes/missing-localharness/index.js +103 -0
- package/dist/src/fixes/missing-localharness/index.js.map +1 -0
- package/dist/src/fixes/missing-question-fallback/index.d.ts +30 -0
- package/dist/src/fixes/missing-question-fallback/index.d.ts.map +1 -0
- package/dist/src/fixes/missing-question-fallback/index.js +119 -0
- package/dist/src/fixes/missing-question-fallback/index.js.map +1 -0
- package/dist/src/fixes/missing-slash-skills/index.d.ts +17 -0
- package/dist/src/fixes/missing-slash-skills/index.d.ts.map +1 -0
- package/dist/src/fixes/missing-slash-skills/index.js +107 -0
- package/dist/src/fixes/missing-slash-skills/index.js.map +1 -0
- package/dist/src/{skills.d.ts → fixes/missing-slash-skills/skills.d.ts} +2 -1
- package/dist/src/fixes/missing-slash-skills/skills.d.ts.map +1 -0
- package/dist/src/fixes/missing-slash-skills/skills.js +199 -0
- package/dist/src/fixes/missing-slash-skills/skills.js.map +1 -0
- package/dist/src/fixes/missing-system-prompt/index.d.ts +19 -0
- package/dist/src/fixes/missing-system-prompt/index.d.ts.map +1 -0
- package/dist/src/fixes/missing-system-prompt/index.js +118 -0
- package/dist/src/fixes/missing-system-prompt/index.js.map +1 -0
- package/dist/src/fixes/missing-usage-metrics/index.d.ts +26 -0
- package/dist/src/fixes/missing-usage-metrics/index.d.ts.map +1 -0
- package/dist/src/fixes/missing-usage-metrics/index.js +132 -0
- package/dist/src/fixes/missing-usage-metrics/index.js.map +1 -0
- package/dist/src/fixes/noisy-stderr-logs/index.d.ts +15 -0
- package/dist/src/fixes/noisy-stderr-logs/index.d.ts.map +1 -0
- package/dist/src/fixes/noisy-stderr-logs/index.js +23 -0
- package/dist/src/fixes/noisy-stderr-logs/index.js.map +1 -0
- package/dist/src/fixes/non-canonical-mode-ids/index.d.ts +26 -0
- package/dist/src/fixes/non-canonical-mode-ids/index.d.ts.map +1 -0
- package/dist/src/fixes/non-canonical-mode-ids/index.js +47 -0
- package/dist/src/fixes/non-canonical-mode-ids/index.js.map +1 -0
- package/dist/src/fixes/orphaned-checkpoints/index.d.ts +31 -0
- package/dist/src/fixes/orphaned-checkpoints/index.d.ts.map +1 -0
- package/dist/src/fixes/orphaned-checkpoints/index.js +82 -0
- package/dist/src/fixes/orphaned-checkpoints/index.js.map +1 -0
- package/dist/src/fixes/silent-background-tasks/index.d.ts +66 -0
- package/dist/src/fixes/silent-background-tasks/index.d.ts.map +1 -0
- package/dist/src/fixes/silent-background-tasks/index.js +491 -0
- package/dist/src/fixes/silent-background-tasks/index.js.map +1 -0
- package/dist/src/{mcp-proxy.d.ts → fixes/stale-mcp-endpoints/index.d.ts} +31 -4
- package/dist/src/fixes/stale-mcp-endpoints/index.d.ts.map +1 -0
- package/dist/src/{mcp-proxy.js → fixes/stale-mcp-endpoints/index.js} +162 -14
- package/dist/src/fixes/stale-mcp-endpoints/index.js.map +1 -0
- package/dist/src/fixes/subagent-hang/index.d.ts +2 -0
- package/dist/src/fixes/subagent-hang/index.d.ts.map +1 -0
- package/dist/src/fixes/subagent-hang/index.js +2 -0
- package/dist/src/fixes/subagent-hang/index.js.map +1 -0
- package/dist/src/fixes/subagent-hang/subagent-hang.d.ts +43 -0
- package/dist/src/fixes/subagent-hang/subagent-hang.d.ts.map +1 -0
- package/dist/src/fixes/subagent-hang/subagent-hang.js +114 -0
- package/dist/src/fixes/subagent-hang/subagent-hang.js.map +1 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +43 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/protobuf.d.ts +9 -0
- package/dist/src/lib/protobuf.d.ts.map +1 -0
- package/dist/src/lib/protobuf.js +89 -0
- package/dist/src/lib/protobuf.js.map +1 -0
- package/package.json +22 -7
- package/readme.md +147 -141
- package/assets/icon.svg +0 -3
- package/build/paseo/assets/icon.svg +0 -3
- package/build/paseo/assets/logo.svg +0 -62
- package/build/paseo/index.server.ts +0 -9
- package/build/paseo/paseo-plugin.json +0 -7
- package/build/paseo/server/agy-patch.ts +0 -445
- package/build/paseo/server/auth.ts +0 -122
- package/build/paseo/server/command.ts +0 -92
- package/build/paseo/server/connector.ts +0 -1371
- package/build/paseo/server/history.ts +0 -157
- package/build/paseo/server/mcp-proxy.ts +0 -375
- package/build/paseo/server/provider.ts +0 -37
- package/build/paseo/server/sanitize.ts +0 -286
- package/build/paseo/server/skills.ts +0 -183
- package/build/paseo/server/steering.ts +0 -199
- package/dist/index.server.d.ts +0 -4
- package/dist/index.server.d.ts.map +0 -1
- package/dist/index.server.js +0 -7
- package/dist/index.server.js.map +0 -1
- package/dist/src/agy-patch.d.ts +0 -65
- package/dist/src/agy-patch.d.ts.map +0 -1
- package/dist/src/agy-patch.js +0 -351
- package/dist/src/agy-patch.js.map +0 -1
- package/dist/src/auth.d.ts +0 -27
- package/dist/src/auth.d.ts.map +0 -1
- package/dist/src/auth.js +0 -113
- package/dist/src/auth.js.map +0 -1
- package/dist/src/command.d.ts.map +0 -1
- package/dist/src/command.js.map +0 -1
- package/dist/src/connector.d.ts +0 -187
- package/dist/src/connector.d.ts.map +0 -1
- package/dist/src/connector.js +0 -1127
- package/dist/src/connector.js.map +0 -1
- package/dist/src/history.d.ts +0 -12
- package/dist/src/history.d.ts.map +0 -1
- package/dist/src/history.js +0 -152
- package/dist/src/history.js.map +0 -1
- package/dist/src/mcp-proxy.d.ts.map +0 -1
- package/dist/src/mcp-proxy.js.map +0 -1
- package/dist/src/provider.d.ts +0 -11
- package/dist/src/provider.d.ts.map +0 -1
- package/dist/src/provider.js +0 -31
- package/dist/src/provider.js.map +0 -1
- package/dist/src/sanitize.d.ts +0 -29
- package/dist/src/sanitize.d.ts.map +0 -1
- package/dist/src/sanitize.js +0 -237
- package/dist/src/sanitize.js.map +0 -1
- package/dist/src/skills.d.ts.map +0 -1
- package/dist/src/skills.js +0 -140
- package/dist/src/skills.js.map +0 -1
- package/dist/src/steering.d.ts +0 -30
- package/dist/src/steering.d.ts.map +0 -1
- package/dist/src/steering.js +0 -174
- package/dist/src/steering.js.map +0 -1
- package/paseo-plugin.json +0 -8
- package/scripts/build-paseo.js +0 -60
package/dist/bin/cli.js
CHANGED
|
@@ -1,55 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
async function main() {
|
|
5
|
-
const connector = createAntigravityConnector();
|
|
6
|
-
const stream = await connector();
|
|
7
|
-
const reader = stream.readable.getReader();
|
|
8
|
-
(async () => {
|
|
9
|
-
try {
|
|
10
|
-
while (true) {
|
|
11
|
-
const { done, value } = await reader.read();
|
|
12
|
-
if (done)
|
|
13
|
-
break;
|
|
14
|
-
process.stdout.write(JSON.stringify(value) + "\n");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
catch (err) {
|
|
18
|
-
console.error("[refined-antigravity-acp] Stdio readable stream error:", err);
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
})();
|
|
22
|
-
const writer = stream.writable.getWriter();
|
|
23
|
-
const rl = readline.createInterface({
|
|
24
|
-
input: process.stdin,
|
|
25
|
-
terminal: false,
|
|
26
|
-
});
|
|
27
|
-
rl.on("line", (line) => {
|
|
28
|
-
const trimmed = line.trim();
|
|
29
|
-
if (!trimmed)
|
|
30
|
-
return;
|
|
31
|
-
try {
|
|
32
|
-
const msg = JSON.parse(trimmed);
|
|
33
|
-
writer.write(msg).catch((err) => {
|
|
34
|
-
console.error("[refined-antigravity-acp] Failed to forward ACP message:", err);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// Drop malformed input line
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
rl.on("close", async () => {
|
|
42
|
-
try {
|
|
43
|
-
await writer.close();
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
// Writer may already be closed
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
process.on("SIGINT", () => process.exit(0));
|
|
50
|
-
process.on("SIGTERM", () => process.exit(0));
|
|
51
|
-
}
|
|
52
|
-
main().catch((err) => {
|
|
2
|
+
import { runCli } from "../src/cli.js";
|
|
3
|
+
runCli().catch((err) => {
|
|
53
4
|
console.error("[refined-antigravity-acp] Fatal error:", err);
|
|
54
5
|
process.exit(1);
|
|
55
6
|
});
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAGA,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC5C"}
|
package/dist/src/cli.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import readline from "node:readline";
|
|
2
|
+
import { createAntigravityConnector } from "./index.js";
|
|
3
|
+
export async function runCli() {
|
|
4
|
+
const connector = createAntigravityConnector();
|
|
5
|
+
const stream = await connector();
|
|
6
|
+
process.on("SIGINT", () => process.exit(0));
|
|
7
|
+
process.on("SIGTERM", () => process.exit(0));
|
|
8
|
+
const writeStdout = (async () => {
|
|
9
|
+
for await (const value of stream.readable) {
|
|
10
|
+
process.stdout.write(JSON.stringify(value) + "\n");
|
|
11
|
+
}
|
|
12
|
+
})();
|
|
13
|
+
const writer = stream.writable.getWriter();
|
|
14
|
+
const rl = readline.createInterface({
|
|
15
|
+
input: process.stdin,
|
|
16
|
+
terminal: false,
|
|
17
|
+
});
|
|
18
|
+
const readStdin = (async () => {
|
|
19
|
+
try {
|
|
20
|
+
for await (const line of rl) {
|
|
21
|
+
const trimmed = line.trim();
|
|
22
|
+
if (!trimmed)
|
|
23
|
+
continue;
|
|
24
|
+
try {
|
|
25
|
+
const msg = JSON.parse(trimmed);
|
|
26
|
+
await writer.write(msg);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Drop malformed input line or forward error
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
try {
|
|
35
|
+
await writer.close();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Writer may already be closed
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
})();
|
|
42
|
+
await Promise.all([writeStdout, readStdin]);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,SAAS,GAAG,0BAA0B,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IAEjC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;QAC9B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAChC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export declare const DEFAULT_AGY_VERSION = "1.2.1";
|
|
2
|
+
export declare function getAgyVersion(): string;
|
|
3
|
+
export declare function getBinaryUrls(version?: string): Record<string, string>;
|
|
4
|
+
export declare function getBinaryUrl(platformKey: string | null | undefined, version?: string): string | null;
|
|
1
5
|
export declare function getPlatformKey(platform?: NodeJS.Platform, arch?: string): string | null;
|
|
2
6
|
export declare function extractZip(zipPath: string, targetDir: string): void;
|
|
3
7
|
export declare function ensureAntigravityBinary(): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/core/command.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,wBAAgB,aAAa,IAAI,MAAM,CAMtC;AAMD,wBAAgB,aAAa,CAAC,OAAO,GAAE,MAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASvF;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,GAAE,MAAwB,GAChC,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,cAAc,CAC5B,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAqB,GAC1B,MAAM,GAAG,IAAI,CAGf;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOnE;AAYD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,CAsB/D;AAcD,wBAAgB,UAAU,CACxB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,QAAQ,qBAAkC,GACzC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAMhC"}
|
|
@@ -2,16 +2,33 @@ import fs from "node:fs";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { execFileSync } from "node:child_process";
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
export const DEFAULT_AGY_VERSION = "1.2.1";
|
|
6
|
+
export function getAgyVersion() {
|
|
7
|
+
return (process.env.REFINED_AGY_OFFICIAL_ACP_VERSION?.trim() ||
|
|
8
|
+
process.env.REFINED_AGY_VERSION?.trim() ||
|
|
9
|
+
DEFAULT_AGY_VERSION);
|
|
10
|
+
}
|
|
11
|
+
function getArchivePrefix(version) {
|
|
12
|
+
return version.startsWith("1.1.") ? "agy-acp-server-agy_acp_server_" : "agy-acp-server-";
|
|
13
|
+
}
|
|
14
|
+
export function getBinaryUrls(version = getAgyVersion()) {
|
|
15
|
+
const prefix = getArchivePrefix(version);
|
|
16
|
+
return {
|
|
17
|
+
"darwin-arm64": `https://dl.google.com/agy-extensions/releases/macos/${prefix}${version}-darwin-arm64.zip`,
|
|
18
|
+
"linux-x64": `https://dl.google.com/agy-extensions/releases/linux/${prefix}${version}-linux-x86_64.zip`,
|
|
19
|
+
"linux-arm64": `https://dl.google.com/agy-extensions/releases/linux/${prefix}${version}-linux-arm64.zip`,
|
|
20
|
+
"win32-x64": `https://dl.google.com/agy-extensions/releases/windows/${prefix}${version}-windows-x86_64.zip`,
|
|
21
|
+
"win32-arm64": `https://dl.google.com/agy-extensions/releases/windows/${prefix}${version}-windows-arm64.zip`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function getBinaryUrl(platformKey, version = getAgyVersion()) {
|
|
25
|
+
if (!platformKey)
|
|
26
|
+
return null;
|
|
27
|
+
return getBinaryUrls(version)[platformKey] ?? null;
|
|
28
|
+
}
|
|
12
29
|
export function getPlatformKey(platform = process.platform, arch = process.arch) {
|
|
13
30
|
const key = `${platform}-${arch}`;
|
|
14
|
-
return
|
|
31
|
+
return key in getBinaryUrls() ? key : null;
|
|
15
32
|
}
|
|
16
33
|
export function extractZip(zipPath, targetDir) {
|
|
17
34
|
fs.mkdirSync(targetDir, { recursive: true, mode: 0o755 });
|
|
@@ -32,8 +49,7 @@ async function downloadBinaryZip(url) {
|
|
|
32
49
|
return tempZip;
|
|
33
50
|
}
|
|
34
51
|
export async function ensureAntigravityBinary() {
|
|
35
|
-
const
|
|
36
|
-
const url = platformKey ? BINARY_URLS[platformKey] : null;
|
|
52
|
+
const url = getBinaryUrl(getPlatformKey());
|
|
37
53
|
if (!url) {
|
|
38
54
|
throw new Error(`Unsupported platform for Antigravity ACP: ${process.platform} (${process.arch})`);
|
|
39
55
|
}
|
|
@@ -64,7 +80,7 @@ function resolveExecutable(platform, override) {
|
|
|
64
80
|
];
|
|
65
81
|
return candidates.find((p) => fs.existsSync(p)) ?? defaultName;
|
|
66
82
|
}
|
|
67
|
-
export function agyCommand(platform = process.platform, override = process.env.
|
|
83
|
+
export function agyCommand(platform = process.platform, override = process.env.REFINED_AGY_ACP_BIN) {
|
|
68
84
|
if (platform !== "darwin" && platform !== "linux" && platform !== "win32") {
|
|
69
85
|
throw new Error(`Antigravity ACP server does not support ${platform}`);
|
|
70
86
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/core/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ChildProcess } from "node:child_process";
|
|
2
|
+
import type { AcpStreamMessage, AcpFix, CoreContext, InboundContext, OutboundContext, StderrContext } from "./types.js";
|
|
3
|
+
export declare class AcpPipeline {
|
|
4
|
+
readonly fixes: AcpFix[];
|
|
5
|
+
private readonly spawnFixes;
|
|
6
|
+
private readonly outboundFixes;
|
|
7
|
+
private readonly inboundFixes;
|
|
8
|
+
private readonly turnEndFixes;
|
|
9
|
+
private readonly stderrFixes;
|
|
10
|
+
private readonly recycleFixes;
|
|
11
|
+
constructor(fixes: AcpFix[]);
|
|
12
|
+
applySpawn(env: NodeJS.ProcessEnv, cmd: string, args: string[]): void;
|
|
13
|
+
applyOutbound(msg: AcpStreamMessage, context: OutboundContext): Promise<AcpStreamMessage | null>;
|
|
14
|
+
applyInbound(msg: AcpStreamMessage, context: InboundContext): Promise<AcpStreamMessage[]>;
|
|
15
|
+
applyTurnEnd(sessionId: string, context: InboundContext): AcpStreamMessage[];
|
|
16
|
+
applyStderrLine(line: string, context: StderrContext): boolean;
|
|
17
|
+
applyRecycle(session: Parameters<NonNullable<AcpFix["onRecycle"]>>[0], newChild: ChildProcess, context: CoreContext): Promise<void>;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;aAQM,KAAK,EAAE,MAAM,EAAE;IAP3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAW;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;gBAEZ,KAAK,EAAE,MAAM,EAAE;IAS3C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAM/D,aAAa,CACjB,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAe7B,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAwB/F,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,gBAAgB,EAAE;IAW5E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAUxD,YAAY,CAChB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAMhB,OAAO,IAAI,IAAI;CAKhB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export class AcpPipeline {
|
|
2
|
+
fixes;
|
|
3
|
+
spawnFixes;
|
|
4
|
+
outboundFixes;
|
|
5
|
+
inboundFixes;
|
|
6
|
+
turnEndFixes;
|
|
7
|
+
stderrFixes;
|
|
8
|
+
recycleFixes;
|
|
9
|
+
constructor(fixes) {
|
|
10
|
+
this.fixes = fixes;
|
|
11
|
+
this.spawnFixes = fixes.filter((f) => typeof f.onSpawn === "function");
|
|
12
|
+
this.outboundFixes = fixes.filter((f) => typeof f.onOutbound === "function");
|
|
13
|
+
this.inboundFixes = fixes.filter((f) => typeof f.onInbound === "function");
|
|
14
|
+
this.turnEndFixes = fixes.filter((f) => typeof f.onTurnEnd === "function");
|
|
15
|
+
this.stderrFixes = fixes.filter((f) => typeof f.onStderrLine === "function");
|
|
16
|
+
this.recycleFixes = fixes.filter((f) => typeof f.onRecycle === "function");
|
|
17
|
+
}
|
|
18
|
+
applySpawn(env, cmd, args) {
|
|
19
|
+
for (const fix of this.spawnFixes) {
|
|
20
|
+
fix.onSpawn?.(env, cmd, args);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async applyOutbound(msg, context) {
|
|
24
|
+
const enrichedContext = context.fixes
|
|
25
|
+
? context
|
|
26
|
+
: { ...context, fixes: this.fixes };
|
|
27
|
+
let current = msg;
|
|
28
|
+
for (const fix of this.outboundFixes) {
|
|
29
|
+
const res = await fix.onOutbound(current, enrichedContext);
|
|
30
|
+
if (res === null || res === undefined) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
current = res;
|
|
34
|
+
}
|
|
35
|
+
return current;
|
|
36
|
+
}
|
|
37
|
+
async applyInbound(msg, context) {
|
|
38
|
+
let current = [msg];
|
|
39
|
+
for (const fix of this.inboundFixes) {
|
|
40
|
+
if (current.length === 1) {
|
|
41
|
+
const first = current[0];
|
|
42
|
+
if (!first)
|
|
43
|
+
return [];
|
|
44
|
+
const res = await fix.onInbound(first, context);
|
|
45
|
+
if (!Array.isArray(res) || res.length === 0)
|
|
46
|
+
return [];
|
|
47
|
+
current = res;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const nextBatch = [];
|
|
51
|
+
for (const m of current) {
|
|
52
|
+
const res = await fix.onInbound(m, context);
|
|
53
|
+
if (Array.isArray(res) && res.length > 0) {
|
|
54
|
+
nextBatch.push(...res);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
current = nextBatch;
|
|
58
|
+
if (current.length === 0)
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return current;
|
|
63
|
+
}
|
|
64
|
+
applyTurnEnd(sessionId, context) {
|
|
65
|
+
const messages = [];
|
|
66
|
+
for (const fix of this.turnEndFixes) {
|
|
67
|
+
const res = fix.onTurnEnd(sessionId, context);
|
|
68
|
+
if (Array.isArray(res) && res.length > 0) {
|
|
69
|
+
messages.push(...res);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return messages;
|
|
73
|
+
}
|
|
74
|
+
applyStderrLine(line, context) {
|
|
75
|
+
let suppressed = false;
|
|
76
|
+
for (const fix of this.stderrFixes) {
|
|
77
|
+
if (fix.onStderrLine(line, context)) {
|
|
78
|
+
suppressed = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return suppressed;
|
|
82
|
+
}
|
|
83
|
+
async applyRecycle(session, newChild, context) {
|
|
84
|
+
for (const fix of this.recycleFixes) {
|
|
85
|
+
await fix.onRecycle(session, newChild, context);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
dispose() {
|
|
89
|
+
for (const fix of this.fixes) {
|
|
90
|
+
fix.dispose?.();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AcpStreamMessage, CachedSessionMetadata, SessionCache } from "./types.js";
|
|
2
|
+
export declare function createSessionCache(): SessionCache;
|
|
3
|
+
export { getFixData, getOrCreateFixData, setFixData } from "./types.js";
|
|
4
|
+
export declare function getSession(cache: SessionCache, sessionId?: string | null): CachedSessionMetadata | undefined;
|
|
5
|
+
export declare function getOrCreateSession(cache: SessionCache, sessionId: string): CachedSessionMetadata;
|
|
6
|
+
export declare function resolveResponseSession(msg: AcpStreamMessage, cache?: SessionCache): string | undefined;
|
|
7
|
+
export declare function extractSessionId(msg: AcpStreamMessage): string | undefined;
|
|
8
|
+
export declare function trackPendingRequestSession(cache: SessionCache, id: string | number, sessionId: string): void;
|
|
9
|
+
export declare function clearPendingRequestSessions(cache: SessionCache): void;
|
|
10
|
+
export declare function recordPendingSessionMetadata(cache: SessionCache, id: string | number, metadata: Partial<CachedSessionMetadata>): void;
|
|
11
|
+
export declare function recordAllocatedSessionMeta(id: string | number, sessionId: string, cache: SessionCache): void;
|
|
12
|
+
//# sourceMappingURL=session-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cache.d.ts","sourceRoot":"","sources":["../../../src/core/session-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,kBAAkB,IAAI,YAAY,CAOjD;AAED,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExE,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,qBAAqB,GAAG,SAAS,CAEnC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB,CAahG;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE,YAAY,GACnB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAI1E;AAoBD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,IAAI,CAMN;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAErE;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,QAAQ,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACvC,IAAI,CAMN;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,GAClB,IAAI,CAMN"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function createSessionCache() {
|
|
2
|
+
return {
|
|
3
|
+
sessions: new Map(),
|
|
4
|
+
pendingSessionMetadata: new Map(),
|
|
5
|
+
pendingRequestSessions: new Map(),
|
|
6
|
+
cachedInitializeParams: undefined,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export { getFixData, getOrCreateFixData, setFixData } from "./types.js";
|
|
10
|
+
export function getSession(cache, sessionId) {
|
|
11
|
+
return sessionId ? cache.sessions.get(sessionId) : undefined;
|
|
12
|
+
}
|
|
13
|
+
export function getOrCreateSession(cache, sessionId) {
|
|
14
|
+
let session = cache.sessions.get(sessionId);
|
|
15
|
+
if (!session) {
|
|
16
|
+
session = {
|
|
17
|
+
sessionId,
|
|
18
|
+
lastConfigOptions: new Map(),
|
|
19
|
+
fixData: new Map(),
|
|
20
|
+
};
|
|
21
|
+
cache.sessions.set(sessionId, session);
|
|
22
|
+
}
|
|
23
|
+
else if (!session.fixData) {
|
|
24
|
+
session.fixData = new Map();
|
|
25
|
+
}
|
|
26
|
+
return session;
|
|
27
|
+
}
|
|
28
|
+
export function resolveResponseSession(msg, cache) {
|
|
29
|
+
if (!cache || !("id" in msg) || msg.id === null || msg.id === undefined)
|
|
30
|
+
return undefined;
|
|
31
|
+
const sessionId = cache.pendingRequestSessions.get(msg.id);
|
|
32
|
+
if (sessionId !== undefined)
|
|
33
|
+
cache.pendingRequestSessions.delete(msg.id);
|
|
34
|
+
return sessionId;
|
|
35
|
+
}
|
|
36
|
+
export function extractSessionId(msg) {
|
|
37
|
+
if (!("params" in msg) || !msg.params || typeof msg.params !== "object")
|
|
38
|
+
return undefined;
|
|
39
|
+
const params = msg.params;
|
|
40
|
+
return typeof params.sessionId === "string" ? params.sessionId : undefined;
|
|
41
|
+
}
|
|
42
|
+
function applyPendingSessionMetadata(session, pending) {
|
|
43
|
+
if (pending.cwd !== undefined)
|
|
44
|
+
session.cwd = pending.cwd;
|
|
45
|
+
if (pending._meta !== undefined)
|
|
46
|
+
session._meta = pending._meta;
|
|
47
|
+
if (pending.lastModeId !== undefined)
|
|
48
|
+
session.lastModeId = pending.lastModeId;
|
|
49
|
+
if (pending.fixData) {
|
|
50
|
+
session.fixData ??= new Map();
|
|
51
|
+
for (const [key, value] of pending.fixData.entries()) {
|
|
52
|
+
session.fixData.set(key, value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const MAX_PENDING_REQUEST_SESSIONS = 1000;
|
|
57
|
+
const MAX_PENDING_SESSION_METADATA = 200;
|
|
58
|
+
export function trackPendingRequestSession(cache, id, sessionId) {
|
|
59
|
+
if (cache.pendingRequestSessions.size >= MAX_PENDING_REQUEST_SESSIONS) {
|
|
60
|
+
const oldest = cache.pendingRequestSessions.keys().next().value;
|
|
61
|
+
if (oldest !== undefined)
|
|
62
|
+
cache.pendingRequestSessions.delete(oldest);
|
|
63
|
+
}
|
|
64
|
+
cache.pendingRequestSessions.set(id, sessionId);
|
|
65
|
+
}
|
|
66
|
+
export function clearPendingRequestSessions(cache) {
|
|
67
|
+
cache.pendingRequestSessions.clear();
|
|
68
|
+
}
|
|
69
|
+
export function recordPendingSessionMetadata(cache, id, metadata) {
|
|
70
|
+
if (cache.pendingSessionMetadata.size >= MAX_PENDING_SESSION_METADATA) {
|
|
71
|
+
const oldest = cache.pendingSessionMetadata.keys().next().value;
|
|
72
|
+
if (oldest !== undefined)
|
|
73
|
+
cache.pendingSessionMetadata.delete(oldest);
|
|
74
|
+
}
|
|
75
|
+
cache.pendingSessionMetadata.set(id, metadata);
|
|
76
|
+
}
|
|
77
|
+
export function recordAllocatedSessionMeta(id, sessionId, cache) {
|
|
78
|
+
const pending = cache.pendingSessionMetadata.get(id);
|
|
79
|
+
if (!pending)
|
|
80
|
+
return;
|
|
81
|
+
cache.pendingSessionMetadata.delete(id);
|
|
82
|
+
const session = getOrCreateSession(cache, sessionId);
|
|
83
|
+
applyPendingSessionMetadata(session, pending);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=session-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cache.js","sourceRoot":"","sources":["../../../src/core/session-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChildProcess } from "node:child_process";
|
|
2
|
+
import { type AcpStreamMessage, type CachedSessionMetadata, type CoreContext, type SessionCache, type UrlRewriter } from "./types.js";
|
|
3
|
+
import type { AcpPipeline } from "./pipeline.js";
|
|
4
|
+
export declare const RECYCLE_ID_PREFIX = "__refined_agy_recycle_";
|
|
5
|
+
export declare const RECYCLE_INIT_ID = "__refined_agy_recycle_init";
|
|
6
|
+
export declare const RECYCLE_LOAD_ID = "__refined_agy_recycle_load";
|
|
7
|
+
export declare const RECYCLE_MODE_ID = "__refined_agy_recycle_mode";
|
|
8
|
+
export declare const RECYCLE_CONFIG_PREFIX = "__refined_agy_recycle_config_";
|
|
9
|
+
export interface SupervisorOptions {
|
|
10
|
+
cmd: string;
|
|
11
|
+
args: string[];
|
|
12
|
+
initialChild: ChildProcess;
|
|
13
|
+
pipeline: AcpPipeline;
|
|
14
|
+
sessionCache?: SessionCache | undefined;
|
|
15
|
+
proxies?: UrlRewriter | undefined;
|
|
16
|
+
spawnProcess?: ((cmd: string, args: string[]) => ChildProcess | Promise<ChildProcess>) | undefined;
|
|
17
|
+
recycleTimeoutMs?: number | undefined;
|
|
18
|
+
/** Total spawn+resync attempts per recycle before giving up (including the first). */
|
|
19
|
+
recycleSpawnAttempts?: number | undefined;
|
|
20
|
+
/** Delay between failed respawn attempts. */
|
|
21
|
+
recycleRetryDelayMs?: number | undefined;
|
|
22
|
+
}
|
|
23
|
+
export declare class ProcessSupervisor implements CoreContext {
|
|
24
|
+
currentChild: ChildProcess;
|
|
25
|
+
isRecycling: boolean;
|
|
26
|
+
isClosed: boolean;
|
|
27
|
+
readonly sessionCache: SessionCache;
|
|
28
|
+
proxies?: UrlRewriter | undefined;
|
|
29
|
+
readonly pipeline: AcpPipeline;
|
|
30
|
+
private readonly cmd;
|
|
31
|
+
private readonly args;
|
|
32
|
+
private readonly spawnFn;
|
|
33
|
+
private readonly recycleTimeoutMs;
|
|
34
|
+
private readonly recycleSpawnAttempts;
|
|
35
|
+
private readonly recycleRetryDelayMs;
|
|
36
|
+
private readonly pendingRequests;
|
|
37
|
+
private readonly suppressedResponseIds;
|
|
38
|
+
private activeRecycle;
|
|
39
|
+
private rlOut;
|
|
40
|
+
private rlErr;
|
|
41
|
+
private readableController;
|
|
42
|
+
private readonly baseContext;
|
|
43
|
+
private readonly stderrContext;
|
|
44
|
+
constructor(options: SupervisorOptions);
|
|
45
|
+
setController(controller: ReadableStreamDefaultController<AcpStreamMessage>): void;
|
|
46
|
+
forwardInbound(msg: AcpStreamMessage): void;
|
|
47
|
+
writeToChild(msg: AcpStreamMessage): Promise<void>;
|
|
48
|
+
declareHang(sessionId: string, promptId: string | number, reason: string): void;
|
|
49
|
+
triggerRecycle(session: CachedSessionMetadata): Promise<void>;
|
|
50
|
+
sendInternalRequest(msg: AcpStreamMessage, timeoutMs?: number): Promise<AcpStreamMessage>;
|
|
51
|
+
private tryHandleInternalRecycle;
|
|
52
|
+
private tryHandleSuppressedResponse;
|
|
53
|
+
private createContext;
|
|
54
|
+
private recordOutboundSessionNew;
|
|
55
|
+
private recordOutboundSessionLoad;
|
|
56
|
+
private recordOutboundSetMode;
|
|
57
|
+
private recordOutboundSetConfigOption;
|
|
58
|
+
private handleSessionLifecycleMetadata;
|
|
59
|
+
private recordOutboundMetadata;
|
|
60
|
+
private trackPendingRequestSession;
|
|
61
|
+
private prepareOutboundSession;
|
|
62
|
+
handleOutbound(msg: AcpStreamMessage, proxies?: UrlRewriter): Promise<void>;
|
|
63
|
+
private recordInboundSessionAllocation;
|
|
64
|
+
private dispatchInboundPipeline;
|
|
65
|
+
handleStdoutLine(line: string): Promise<void>;
|
|
66
|
+
handleStderrLine(line: string): void;
|
|
67
|
+
private bindChild;
|
|
68
|
+
private rejectPendingRequests;
|
|
69
|
+
private closeController;
|
|
70
|
+
private handleChildClose;
|
|
71
|
+
private resyncSessionLoad;
|
|
72
|
+
private resyncSessionMode;
|
|
73
|
+
private resyncSessionConfig;
|
|
74
|
+
private performResync;
|
|
75
|
+
private cleanupOldChild;
|
|
76
|
+
recycleProcess(session: CachedSessionMetadata): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Gives up on recycling after every spawn attempt failed: tears down whatever
|
|
79
|
+
* child is left and fatally closes the stream with a clear, aggregated error
|
|
80
|
+
* instead of leaving callers to interpret a raw timeout from the last attempt.
|
|
81
|
+
*/
|
|
82
|
+
private failRecycle;
|
|
83
|
+
close(): void;
|
|
84
|
+
abort(): void;
|
|
85
|
+
createStreams(): {
|
|
86
|
+
readable: ReadableStream<AcpStreamMessage>;
|
|
87
|
+
writable: WritableStream<AcpStreamMessage>;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/core/supervisor.ts"],"names":[],"mappings":"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"}
|