@simonepri/refined-antigravity-acp 0.1.2 → 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.
Files changed (165) hide show
  1. package/dist/bin/cli.js +2 -51
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/src/cli.d.ts +2 -0
  4. package/dist/src/cli.d.ts.map +1 -0
  5. package/dist/src/cli.js +44 -0
  6. package/dist/src/cli.js.map +1 -0
  7. package/dist/src/{command.d.ts → core/command.d.ts} +4 -0
  8. package/dist/src/core/command.d.ts.map +1 -0
  9. package/dist/src/{command.js → core/command.js} +27 -11
  10. package/dist/src/core/command.js.map +1 -0
  11. package/dist/src/core/pipeline.d.ts +20 -0
  12. package/dist/src/core/pipeline.d.ts.map +1 -0
  13. package/dist/src/core/pipeline.js +94 -0
  14. package/dist/src/core/pipeline.js.map +1 -0
  15. package/dist/src/core/session-cache.d.ts +12 -0
  16. package/dist/src/core/session-cache.d.ts.map +1 -0
  17. package/dist/src/core/session-cache.js +85 -0
  18. package/dist/src/core/session-cache.js.map +1 -0
  19. package/dist/src/core/supervisor.d.ts +90 -0
  20. package/dist/src/core/supervisor.d.ts.map +1 -0
  21. package/dist/src/core/supervisor.js +582 -0
  22. package/dist/src/core/supervisor.js.map +1 -0
  23. package/dist/src/core/telemetry.d.ts +23 -0
  24. package/dist/src/core/telemetry.d.ts.map +1 -0
  25. package/dist/src/core/telemetry.js +75 -0
  26. package/dist/src/core/telemetry.js.map +1 -0
  27. package/dist/src/core/transport.d.ts +7 -0
  28. package/dist/src/core/transport.d.ts.map +1 -0
  29. package/dist/src/core/transport.js +37 -0
  30. package/dist/src/core/transport.js.map +1 -0
  31. package/dist/src/core/types.d.ts +293 -0
  32. package/dist/src/core/types.d.ts.map +1 -0
  33. package/dist/src/core/types.js +78 -0
  34. package/dist/src/core/types.js.map +1 -0
  35. package/dist/src/fixes/active-turn-collision/index.d.ts +27 -0
  36. package/dist/src/fixes/active-turn-collision/index.d.ts.map +1 -0
  37. package/dist/src/fixes/active-turn-collision/index.js +117 -0
  38. package/dist/src/fixes/active-turn-collision/index.js.map +1 -0
  39. package/dist/src/fixes/cancellation-leak/index.d.ts +17 -0
  40. package/dist/src/fixes/cancellation-leak/index.d.ts.map +1 -0
  41. package/dist/src/fixes/cancellation-leak/index.js +57 -0
  42. package/dist/src/fixes/cancellation-leak/index.js.map +1 -0
  43. package/dist/src/fixes/dangling-tool-calls/index.d.ts +32 -0
  44. package/dist/src/fixes/dangling-tool-calls/index.d.ts.map +1 -0
  45. package/dist/src/fixes/dangling-tool-calls/index.js +188 -0
  46. package/dist/src/fixes/dangling-tool-calls/index.js.map +1 -0
  47. package/dist/src/fixes/dropped-history-chunks/index.d.ts +47 -0
  48. package/dist/src/fixes/dropped-history-chunks/index.d.ts.map +1 -0
  49. package/dist/src/fixes/dropped-history-chunks/index.js +202 -0
  50. package/dist/src/fixes/dropped-history-chunks/index.js.map +1 -0
  51. package/dist/src/fixes/flattened-model-efforts/index.d.ts +39 -0
  52. package/dist/src/fixes/flattened-model-efforts/index.d.ts.map +1 -0
  53. package/dist/src/fixes/flattened-model-efforts/index.js +306 -0
  54. package/dist/src/fixes/flattened-model-efforts/index.js.map +1 -0
  55. package/dist/src/fixes/index.d.ts +25 -0
  56. package/dist/src/fixes/index.d.ts.map +1 -0
  57. package/dist/src/fixes/index.js +61 -0
  58. package/dist/src/fixes/index.js.map +1 -0
  59. package/dist/src/fixes/malformed-stream-syntax/index.d.ts +44 -0
  60. package/dist/src/fixes/malformed-stream-syntax/index.d.ts.map +1 -0
  61. package/dist/src/fixes/malformed-stream-syntax/index.js +346 -0
  62. package/dist/src/fixes/malformed-stream-syntax/index.js.map +1 -0
  63. package/dist/src/fixes/missing-localharness/index.d.ts +20 -0
  64. package/dist/src/fixes/missing-localharness/index.d.ts.map +1 -0
  65. package/dist/src/fixes/missing-localharness/index.js +103 -0
  66. package/dist/src/fixes/missing-localharness/index.js.map +1 -0
  67. package/dist/src/fixes/missing-question-fallback/index.d.ts +30 -0
  68. package/dist/src/fixes/missing-question-fallback/index.d.ts.map +1 -0
  69. package/dist/src/fixes/missing-question-fallback/index.js +119 -0
  70. package/dist/src/fixes/missing-question-fallback/index.js.map +1 -0
  71. package/dist/src/fixes/missing-slash-skills/index.d.ts +17 -0
  72. package/dist/src/fixes/missing-slash-skills/index.d.ts.map +1 -0
  73. package/dist/src/fixes/missing-slash-skills/index.js +107 -0
  74. package/dist/src/fixes/missing-slash-skills/index.js.map +1 -0
  75. package/dist/src/{skills.d.ts → fixes/missing-slash-skills/skills.d.ts} +2 -1
  76. package/dist/src/fixes/missing-slash-skills/skills.d.ts.map +1 -0
  77. package/dist/src/fixes/missing-slash-skills/skills.js +199 -0
  78. package/dist/src/fixes/missing-slash-skills/skills.js.map +1 -0
  79. package/dist/src/fixes/missing-system-prompt/index.d.ts +19 -0
  80. package/dist/src/fixes/missing-system-prompt/index.d.ts.map +1 -0
  81. package/dist/src/fixes/missing-system-prompt/index.js +118 -0
  82. package/dist/src/fixes/missing-system-prompt/index.js.map +1 -0
  83. package/dist/src/fixes/missing-usage-metrics/index.d.ts +26 -0
  84. package/dist/src/fixes/missing-usage-metrics/index.d.ts.map +1 -0
  85. package/dist/src/fixes/missing-usage-metrics/index.js +132 -0
  86. package/dist/src/fixes/missing-usage-metrics/index.js.map +1 -0
  87. package/dist/src/fixes/noisy-stderr-logs/index.d.ts +15 -0
  88. package/dist/src/fixes/noisy-stderr-logs/index.d.ts.map +1 -0
  89. package/dist/src/fixes/noisy-stderr-logs/index.js +23 -0
  90. package/dist/src/fixes/noisy-stderr-logs/index.js.map +1 -0
  91. package/dist/src/fixes/non-canonical-mode-ids/index.d.ts +26 -0
  92. package/dist/src/fixes/non-canonical-mode-ids/index.d.ts.map +1 -0
  93. package/dist/src/fixes/non-canonical-mode-ids/index.js +47 -0
  94. package/dist/src/fixes/non-canonical-mode-ids/index.js.map +1 -0
  95. package/dist/src/fixes/orphaned-checkpoints/index.d.ts +31 -0
  96. package/dist/src/fixes/orphaned-checkpoints/index.d.ts.map +1 -0
  97. package/dist/src/fixes/orphaned-checkpoints/index.js +82 -0
  98. package/dist/src/fixes/orphaned-checkpoints/index.js.map +1 -0
  99. package/dist/src/fixes/silent-background-tasks/index.d.ts +66 -0
  100. package/dist/src/fixes/silent-background-tasks/index.d.ts.map +1 -0
  101. package/dist/src/fixes/silent-background-tasks/index.js +491 -0
  102. package/dist/src/fixes/silent-background-tasks/index.js.map +1 -0
  103. package/dist/src/{mcp-proxy.d.ts → fixes/stale-mcp-endpoints/index.d.ts} +31 -4
  104. package/dist/src/fixes/stale-mcp-endpoints/index.d.ts.map +1 -0
  105. package/dist/src/{mcp-proxy.js → fixes/stale-mcp-endpoints/index.js} +162 -14
  106. package/dist/src/fixes/stale-mcp-endpoints/index.js.map +1 -0
  107. package/dist/src/fixes/subagent-hang/index.d.ts +2 -0
  108. package/dist/src/fixes/subagent-hang/index.d.ts.map +1 -0
  109. package/dist/src/fixes/subagent-hang/index.js +2 -0
  110. package/dist/src/fixes/subagent-hang/index.js.map +1 -0
  111. package/dist/src/fixes/subagent-hang/subagent-hang.d.ts +43 -0
  112. package/dist/src/fixes/subagent-hang/subagent-hang.d.ts.map +1 -0
  113. package/dist/src/fixes/subagent-hang/subagent-hang.js +114 -0
  114. package/dist/src/fixes/subagent-hang/subagent-hang.js.map +1 -0
  115. package/dist/src/index.d.ts +27 -0
  116. package/dist/src/index.d.ts.map +1 -0
  117. package/dist/src/index.js +43 -0
  118. package/dist/src/index.js.map +1 -0
  119. package/dist/src/lib/protobuf.d.ts +9 -0
  120. package/dist/src/lib/protobuf.d.ts.map +1 -0
  121. package/dist/src/lib/protobuf.js +89 -0
  122. package/dist/src/lib/protobuf.js.map +1 -0
  123. package/package.json +22 -4
  124. package/readme.md +147 -141
  125. package/assets/icon.svg +0 -3
  126. package/dist/index.server.d.ts +0 -4
  127. package/dist/index.server.d.ts.map +0 -1
  128. package/dist/index.server.js +0 -7
  129. package/dist/index.server.js.map +0 -1
  130. package/dist/src/agy-patch.d.ts +0 -65
  131. package/dist/src/agy-patch.d.ts.map +0 -1
  132. package/dist/src/agy-patch.js +0 -351
  133. package/dist/src/agy-patch.js.map +0 -1
  134. package/dist/src/auth.d.ts +0 -27
  135. package/dist/src/auth.d.ts.map +0 -1
  136. package/dist/src/auth.js +0 -113
  137. package/dist/src/auth.js.map +0 -1
  138. package/dist/src/command.d.ts.map +0 -1
  139. package/dist/src/command.js.map +0 -1
  140. package/dist/src/connector.d.ts +0 -188
  141. package/dist/src/connector.d.ts.map +0 -1
  142. package/dist/src/connector.js +0 -1138
  143. package/dist/src/connector.js.map +0 -1
  144. package/dist/src/history.d.ts +0 -12
  145. package/dist/src/history.d.ts.map +0 -1
  146. package/dist/src/history.js +0 -152
  147. package/dist/src/history.js.map +0 -1
  148. package/dist/src/mcp-proxy.d.ts.map +0 -1
  149. package/dist/src/mcp-proxy.js.map +0 -1
  150. package/dist/src/provider.d.ts +0 -11
  151. package/dist/src/provider.d.ts.map +0 -1
  152. package/dist/src/provider.js +0 -31
  153. package/dist/src/provider.js.map +0 -1
  154. package/dist/src/sanitize.d.ts +0 -29
  155. package/dist/src/sanitize.d.ts.map +0 -1
  156. package/dist/src/sanitize.js +0 -237
  157. package/dist/src/sanitize.js.map +0 -1
  158. package/dist/src/skills.d.ts.map +0 -1
  159. package/dist/src/skills.js +0 -140
  160. package/dist/src/skills.js.map +0 -1
  161. package/dist/src/steering.d.ts +0 -30
  162. package/dist/src/steering.d.ts.map +0 -1
  163. package/dist/src/steering.js +0 -174
  164. package/dist/src/steering.js.map +0 -1
  165. package/paseo-plugin.json +0 -7
@@ -0,0 +1,582 @@
1
+ import readline from "node:readline";
2
+ import { ACP_METHODS, STOP_REASONS, } from "./types.js";
3
+ import { createSessionCache, extractSessionId, getSession, getOrCreateSession, recordAllocatedSessionMeta, recordPendingSessionMetadata, resolveResponseSession, trackPendingRequestSession, clearPendingRequestSessions, } from "./session-cache.js";
4
+ import { defaultSpawnProcess, traceAcp, writeJsonMessage } from "./transport.js";
5
+ export const RECYCLE_ID_PREFIX = "__refined_agy_recycle_";
6
+ export const RECYCLE_INIT_ID = `${RECYCLE_ID_PREFIX}init`;
7
+ export const RECYCLE_LOAD_ID = `${RECYCLE_ID_PREFIX}load`;
8
+ export const RECYCLE_MODE_ID = `${RECYCLE_ID_PREFIX}mode`;
9
+ export const RECYCLE_CONFIG_PREFIX = `${RECYCLE_ID_PREFIX}config_`;
10
+ const DEFAULT_RECYCLE_TIMEOUT_MS = 10_000;
11
+ const DEFAULT_RECYCLE_SPAWN_ATTEMPTS = 3;
12
+ const DEFAULT_RECYCLE_RETRY_DELAY_MS = 500;
13
+ function parseEnvMs(val, defaultMs) {
14
+ if (!val)
15
+ return defaultMs;
16
+ const num = Number(val);
17
+ return Number.isFinite(num) && num > 0 ? num : defaultMs;
18
+ }
19
+ function delay(ms) {
20
+ return new Promise((resolve) => setTimeout(resolve, ms));
21
+ }
22
+ export class ProcessSupervisor {
23
+ currentChild;
24
+ isRecycling = false;
25
+ isClosed = false;
26
+ sessionCache;
27
+ proxies;
28
+ pipeline;
29
+ cmd;
30
+ args;
31
+ spawnFn;
32
+ recycleTimeoutMs;
33
+ recycleSpawnAttempts;
34
+ recycleRetryDelayMs;
35
+ pendingRequests = new Map();
36
+ suppressedResponseIds = new Set();
37
+ activeRecycle = null;
38
+ rlOut = null;
39
+ rlErr = null;
40
+ readableController = null;
41
+ baseContext;
42
+ stderrContext;
43
+ constructor(options) {
44
+ this.cmd = options.cmd;
45
+ this.args = options.args;
46
+ this.currentChild = options.initialChild;
47
+ this.pipeline = options.pipeline;
48
+ this.sessionCache = options.sessionCache ?? createSessionCache();
49
+ this.proxies = options.proxies;
50
+ this.spawnFn =
51
+ options.spawnProcess ?? ((cmd, args) => defaultSpawnProcess(cmd, args, this.pipeline));
52
+ this.recycleTimeoutMs =
53
+ options.recycleTimeoutMs ??
54
+ parseEnvMs(process.env.REFINED_AGY_RECYCLE_TIMEOUT_MS, DEFAULT_RECYCLE_TIMEOUT_MS);
55
+ this.recycleSpawnAttempts = options.recycleSpawnAttempts ?? DEFAULT_RECYCLE_SPAWN_ATTEMPTS;
56
+ this.recycleRetryDelayMs = options.recycleRetryDelayMs ?? DEFAULT_RECYCLE_RETRY_DELAY_MS;
57
+ this.baseContext = {
58
+ sessionCache: this.sessionCache,
59
+ forwardInbound: (m) => this.forwardInbound(m),
60
+ writeToChild: (m) => this.writeToChild(m),
61
+ sendInternalRequest: (m, t) => this.sendInternalRequest(m, t),
62
+ triggerRecycle: (s) => this.triggerRecycle(s),
63
+ declareHang: (s, p, r) => this.declareHang(s, p, r),
64
+ };
65
+ Object.defineProperty(this.baseContext, "proxies", {
66
+ get: () => this.proxies,
67
+ enumerable: true,
68
+ configurable: true,
69
+ });
70
+ this.stderrContext = this.baseContext;
71
+ this.bindChild(this.currentChild);
72
+ }
73
+ setController(controller) {
74
+ this.readableController = controller;
75
+ }
76
+ forwardInbound(msg) {
77
+ try {
78
+ this.readableController?.enqueue(msg);
79
+ }
80
+ catch {
81
+ // Controller may already be closed
82
+ }
83
+ }
84
+ async writeToChild(msg) {
85
+ if (this.activeRecycle) {
86
+ await this.activeRecycle;
87
+ }
88
+ if (this.isClosed)
89
+ return;
90
+ traceAcp("client->agy", msg);
91
+ await writeJsonMessage(this.currentChild, msg);
92
+ }
93
+ declareHang(sessionId, promptId, reason) {
94
+ console.error(`[refined-antigravity-acp] Session ${sessionId} hung on prompt ${promptId} (${reason}); emitting synthetic end_turn & scheduling recycle`);
95
+ if (this.suppressedResponseIds.size >= 1000) {
96
+ const oldest = this.suppressedResponseIds.keys().next().value;
97
+ if (oldest !== undefined)
98
+ this.suppressedResponseIds.delete(oldest);
99
+ }
100
+ this.suppressedResponseIds.add(promptId);
101
+ const session = getOrCreateSession(this.sessionCache, sessionId);
102
+ session.needsRecycle = true;
103
+ const syntheticMsg = {
104
+ jsonrpc: "2.0",
105
+ id: promptId,
106
+ result: { stopReason: STOP_REASONS.END_TURN },
107
+ };
108
+ this.forwardInbound(syntheticMsg);
109
+ }
110
+ async triggerRecycle(session) {
111
+ if (this.activeRecycle) {
112
+ await this.activeRecycle;
113
+ return;
114
+ }
115
+ this.activeRecycle = this.recycleProcess(session);
116
+ try {
117
+ await this.activeRecycle;
118
+ }
119
+ finally {
120
+ this.activeRecycle = null;
121
+ }
122
+ }
123
+ sendInternalRequest(msg, timeoutMs = this.recycleTimeoutMs) {
124
+ const id = msg.id;
125
+ if (id === undefined || id === null) {
126
+ return Promise.reject(new Error("Internal request missing id"));
127
+ }
128
+ return new Promise((resolve, reject) => {
129
+ const timer = setTimeout(() => {
130
+ this.pendingRequests.delete(id);
131
+ reject(new Error(`Internal request ${String(msg.method)} (${id}) timed out after ${timeoutMs}ms`));
132
+ }, timeoutMs);
133
+ this.pendingRequests.set(id, { resolve, reject, timer });
134
+ if (!this.currentChild.stdin?.writable) {
135
+ clearTimeout(timer);
136
+ this.pendingRequests.delete(id);
137
+ reject(new Error("Child stdin not writable for internal request"));
138
+ return;
139
+ }
140
+ writeJsonMessage(this.currentChild, msg).catch((err) => {
141
+ clearTimeout(timer);
142
+ this.pendingRequests.delete(id);
143
+ reject(err);
144
+ });
145
+ });
146
+ }
147
+ tryHandleInternalRecycle(msg) {
148
+ if (!("id" in msg) || msg.id === null || msg.id === undefined)
149
+ return false;
150
+ const idStr = String(msg.id);
151
+ if (!idStr.startsWith(RECYCLE_ID_PREFIX))
152
+ return false;
153
+ const pending = this.pendingRequests.get(msg.id);
154
+ if (pending) {
155
+ clearTimeout(pending.timer);
156
+ this.pendingRequests.delete(msg.id);
157
+ if ("error" in msg && msg.error) {
158
+ pending.reject(new Error(msg.error.message || "Recycle request failed"));
159
+ }
160
+ else {
161
+ pending.resolve(msg);
162
+ }
163
+ }
164
+ return true;
165
+ }
166
+ tryHandleSuppressedResponse(msg) {
167
+ if (!("id" in msg) || msg.id === null || msg.id === undefined)
168
+ return false;
169
+ if (this.suppressedResponseIds.has(msg.id)) {
170
+ this.suppressedResponseIds.delete(msg.id);
171
+ console.error(`[refined-antigravity-acp] Dropped late response for hung prompt ${msg.id}`);
172
+ return true;
173
+ }
174
+ return false;
175
+ }
176
+ createContext(session, proxies, isRecycling) {
177
+ return {
178
+ ...this.baseContext,
179
+ proxies: proxies ?? this.proxies,
180
+ session,
181
+ isRecycling,
182
+ };
183
+ }
184
+ recordOutboundSessionNew(msg) {
185
+ if (!("id" in msg) || msg.id === null || msg.id === undefined)
186
+ return;
187
+ const p = msg.params;
188
+ if (!p)
189
+ return;
190
+ const pending = this.sessionCache.pendingSessionMetadata.get(msg.id) ?? {};
191
+ if (p.cwd !== undefined)
192
+ pending.cwd = p.cwd;
193
+ if (p._meta !== undefined)
194
+ pending._meta = p._meta;
195
+ if (p.modeId !== undefined)
196
+ pending.lastModeId = p.modeId;
197
+ recordPendingSessionMetadata(this.sessionCache, msg.id, pending);
198
+ }
199
+ recordOutboundSessionLoad(msg) {
200
+ const p = msg.params;
201
+ if (!p?.sessionId)
202
+ return;
203
+ const session = getOrCreateSession(this.sessionCache, p.sessionId);
204
+ if (p.cwd !== undefined)
205
+ session.cwd = p.cwd;
206
+ if (p._meta !== undefined)
207
+ session._meta = p._meta;
208
+ const mode = p.modeId ??
209
+ (p._meta && typeof p._meta === "object" && "modeId" in p._meta
210
+ ? p._meta.modeId
211
+ : undefined);
212
+ if (mode !== undefined)
213
+ session.lastModeId = mode;
214
+ }
215
+ recordOutboundSetMode(msg) {
216
+ const p = msg.params;
217
+ if (p?.sessionId && p.modeId) {
218
+ getOrCreateSession(this.sessionCache, p.sessionId).lastModeId = p.modeId;
219
+ }
220
+ }
221
+ recordOutboundSetConfigOption(msg) {
222
+ const p = msg.params;
223
+ if (p?.sessionId && p.configId) {
224
+ getOrCreateSession(this.sessionCache, p.sessionId).lastConfigOptions.set(p.configId, {
225
+ value: p.value,
226
+ type: p.type,
227
+ });
228
+ }
229
+ }
230
+ handleSessionLifecycleMetadata(msg) {
231
+ if (!("method" in msg))
232
+ return;
233
+ const isClose = msg.method === ACP_METHODS.SESSION_CLOSE;
234
+ const isDelete = msg.method === ACP_METHODS.SESSION_DELETE;
235
+ if (!isClose && !isDelete)
236
+ return;
237
+ const p = msg.params;
238
+ if (p?.sessionId) {
239
+ this.sessionCache.sessions.delete(p.sessionId);
240
+ }
241
+ }
242
+ recordOutboundMetadata(msg) {
243
+ if (!("method" in msg))
244
+ return;
245
+ switch (msg.method) {
246
+ case ACP_METHODS.INITIALIZE:
247
+ this.sessionCache.cachedInitializeParams = msg.params;
248
+ break;
249
+ case ACP_METHODS.SESSION_NEW:
250
+ this.recordOutboundSessionNew(msg);
251
+ break;
252
+ case ACP_METHODS.SESSION_LOAD:
253
+ this.recordOutboundSessionLoad(msg);
254
+ break;
255
+ case ACP_METHODS.SESSION_SET_MODE:
256
+ this.recordOutboundSetMode(msg);
257
+ break;
258
+ case ACP_METHODS.SESSION_SET_CONFIG_OPTION:
259
+ this.recordOutboundSetConfigOption(msg);
260
+ break;
261
+ default:
262
+ this.handleSessionLifecycleMetadata(msg);
263
+ break;
264
+ }
265
+ }
266
+ trackPendingRequestSession(msg, sessionId) {
267
+ if (!sessionId || !("id" in msg) || msg.id === null || msg.id === undefined)
268
+ return;
269
+ trackPendingRequestSession(this.sessionCache, msg.id, sessionId);
270
+ }
271
+ async prepareOutboundSession(session) {
272
+ if (this.activeRecycle) {
273
+ await this.activeRecycle;
274
+ if (this.isClosed)
275
+ return false;
276
+ }
277
+ if (session?.needsRecycle) {
278
+ await this.triggerRecycle(session);
279
+ }
280
+ return !this.isClosed;
281
+ }
282
+ async handleOutbound(msg, proxies) {
283
+ if (this.isClosed)
284
+ return;
285
+ if (proxies && !this.proxies)
286
+ this.proxies = proxies;
287
+ this.recordOutboundMetadata(msg);
288
+ const sessionId = extractSessionId(msg);
289
+ const session = getSession(this.sessionCache, sessionId);
290
+ const ready = await this.prepareOutboundSession(session);
291
+ if (!ready)
292
+ return;
293
+ const context = this.createContext(session, proxies);
294
+ const transformed = await this.pipeline.applyOutbound(msg, context);
295
+ if (transformed === null)
296
+ return;
297
+ this.trackPendingRequestSession(msg, sessionId);
298
+ await this.writeToChild(transformed);
299
+ }
300
+ recordInboundSessionAllocation(msg) {
301
+ if (!("result" in msg) || !msg.result || typeof msg.result !== "object")
302
+ return;
303
+ const res = msg.result;
304
+ if (typeof res.sessionId === "string" &&
305
+ "id" in msg &&
306
+ msg.id !== null &&
307
+ msg.id !== undefined) {
308
+ recordAllocatedSessionMeta(msg.id, res.sessionId, this.sessionCache);
309
+ }
310
+ }
311
+ async dispatchInboundPipeline(msg, sessionId, context) {
312
+ try {
313
+ const messages = await this.pipeline.applyInbound(msg, context);
314
+ for (const m of messages)
315
+ this.forwardInbound(m);
316
+ if ("result" in msg && sessionId) {
317
+ const turnEndMessages = this.pipeline.applyTurnEnd(sessionId, context);
318
+ for (const m of turnEndMessages)
319
+ this.forwardInbound(m);
320
+ }
321
+ }
322
+ catch (err) {
323
+ console.error("[refined-antigravity-acp] Inbound handling failed; forwarding raw message:", err);
324
+ this.forwardInbound(msg);
325
+ }
326
+ }
327
+ async handleStdoutLine(line) {
328
+ if (this.isClosed)
329
+ return;
330
+ let msg;
331
+ try {
332
+ msg = JSON.parse(line);
333
+ }
334
+ catch {
335
+ return;
336
+ }
337
+ traceAcp("agy->client", msg);
338
+ if (this.tryHandleInternalRecycle(msg) || this.tryHandleSuppressedResponse(msg))
339
+ return;
340
+ const responseSessionId = resolveResponseSession(msg, this.sessionCache);
341
+ const sessionId = responseSessionId ?? extractSessionId(msg);
342
+ this.recordInboundSessionAllocation(msg);
343
+ const session = getSession(this.sessionCache, sessionId);
344
+ const context = this.createContext(session, undefined, this.isRecycling);
345
+ await this.dispatchInboundPipeline(msg, sessionId, context);
346
+ }
347
+ handleStderrLine(line) {
348
+ const suppressed = this.pipeline.applyStderrLine(line, this.stderrContext);
349
+ if (!suppressed) {
350
+ process.stderr.write(line + "\n");
351
+ }
352
+ }
353
+ bindChild(child) {
354
+ if (child.stdout) {
355
+ this.rlOut = readline.createInterface({ input: child.stdout, crlfDelay: Infinity });
356
+ this.rlOut.on("line", (line) => {
357
+ this.handleStdoutLine(line).catch((err) => {
358
+ console.error("[refined-antigravity-acp] Error in handleStdoutLine:", err);
359
+ });
360
+ });
361
+ }
362
+ if (child.stderr) {
363
+ this.rlErr = readline.createInterface({ input: child.stderr, crlfDelay: Infinity });
364
+ this.rlErr.on("line", (line) => this.handleStderrLine(line));
365
+ }
366
+ child.on("close", () => this.handleChildClose());
367
+ child.on("error", (err) => this.handleChildClose(err));
368
+ }
369
+ rejectPendingRequests(err) {
370
+ const error = err ?? new Error("Child process closed");
371
+ for (const pending of this.pendingRequests.values()) {
372
+ clearTimeout(pending.timer);
373
+ pending.reject(error);
374
+ }
375
+ this.pendingRequests.clear();
376
+ this.suppressedResponseIds.clear();
377
+ clearPendingRequestSessions(this.sessionCache);
378
+ }
379
+ closeController(err) {
380
+ try {
381
+ if (err)
382
+ this.readableController?.error(err);
383
+ else
384
+ this.readableController?.close();
385
+ }
386
+ catch {
387
+ // Controller may already be closed
388
+ }
389
+ }
390
+ handleChildClose(err) {
391
+ if (this.isRecycling || this.isClosed)
392
+ return;
393
+ this.isClosed = true;
394
+ this.pipeline.dispose();
395
+ this.rlErr?.close();
396
+ this.rlOut?.close();
397
+ this.rejectPendingRequests(err);
398
+ this.closeController(err);
399
+ }
400
+ async resyncSessionLoad(session, context) {
401
+ const loadParams = { sessionId: session.sessionId };
402
+ if (session.cwd !== undefined)
403
+ loadParams.cwd = session.cwd;
404
+ if (session._meta !== undefined)
405
+ loadParams._meta = session._meta;
406
+ const loadMsg = {
407
+ jsonrpc: "2.0",
408
+ id: RECYCLE_LOAD_ID,
409
+ method: ACP_METHODS.SESSION_LOAD,
410
+ params: loadParams,
411
+ };
412
+ const transformedLoad = await this.pipeline.applyOutbound(loadMsg, context);
413
+ await this.sendInternalRequest(transformedLoad ?? loadMsg);
414
+ }
415
+ async resyncSessionMode(session, context) {
416
+ if (!session.lastModeId)
417
+ return;
418
+ const modeMsg = {
419
+ jsonrpc: "2.0",
420
+ id: RECYCLE_MODE_ID,
421
+ method: ACP_METHODS.SESSION_SET_MODE,
422
+ params: { sessionId: session.sessionId, modeId: session.lastModeId },
423
+ };
424
+ const transformedMode = await this.pipeline.applyOutbound(modeMsg, context);
425
+ await this.sendInternalRequest(transformedMode ?? modeMsg);
426
+ }
427
+ async resyncSessionConfig(session, context) {
428
+ if (!session.lastConfigOptions)
429
+ return;
430
+ for (const [configId, opt] of session.lastConfigOptions.entries()) {
431
+ const configParams = {
432
+ sessionId: session.sessionId,
433
+ configId,
434
+ value: opt.value,
435
+ };
436
+ if (opt.type !== undefined)
437
+ configParams.type = opt.type;
438
+ const cfgMsg = {
439
+ jsonrpc: "2.0",
440
+ id: `${RECYCLE_CONFIG_PREFIX}${configId}`,
441
+ method: ACP_METHODS.SESSION_SET_CONFIG_OPTION,
442
+ params: configParams,
443
+ };
444
+ const transformedCfg = await this.pipeline.applyOutbound(cfgMsg, context);
445
+ await this.sendInternalRequest(transformedCfg ?? cfgMsg);
446
+ }
447
+ }
448
+ async performResync(session, newChild) {
449
+ const initParams = this.sessionCache.cachedInitializeParams ?? {
450
+ protocolVersion: 1,
451
+ clientCapabilities: {},
452
+ clientInfo: { name: "refined-antigravity-acp", version: "0.2.0" },
453
+ };
454
+ await this.sendInternalRequest({
455
+ jsonrpc: "2.0",
456
+ id: RECYCLE_INIT_ID,
457
+ method: "initialize",
458
+ params: initParams,
459
+ });
460
+ await this.pipeline.applyRecycle(session, newChild, this);
461
+ const context = this.createContext(session);
462
+ await this.resyncSessionLoad(session, context);
463
+ await this.resyncSessionMode(session, context);
464
+ await this.resyncSessionConfig(session, context);
465
+ }
466
+ cleanupOldChild() {
467
+ const oldChild = this.currentChild;
468
+ this.rlOut?.close();
469
+ this.rlErr?.close();
470
+ this.rlOut = null;
471
+ this.rlErr = null;
472
+ if (oldChild && !oldChild.killed) {
473
+ oldChild.kill("SIGKILL");
474
+ }
475
+ this.suppressedResponseIds.clear();
476
+ clearPendingRequestSessions(this.sessionCache);
477
+ }
478
+ async recycleProcess(session) {
479
+ this.isRecycling = true;
480
+ let lastErr;
481
+ for (let attempt = 1; attempt <= this.recycleSpawnAttempts; attempt++) {
482
+ this.cleanupOldChild();
483
+ try {
484
+ const newChild = await this.spawnFn(this.cmd, this.args);
485
+ this.currentChild = newChild;
486
+ this.bindChild(newChild);
487
+ await this.performResync(session, newChild);
488
+ session.needsRecycle = false;
489
+ this.isRecycling = false;
490
+ return;
491
+ }
492
+ catch (err) {
493
+ lastErr = err;
494
+ const attemptsLeft = this.recycleSpawnAttempts - attempt;
495
+ console.error(`[refined-antigravity-acp] Process recycle attempt ${attempt}/${this.recycleSpawnAttempts} failed` +
496
+ (attemptsLeft > 0
497
+ ? `; retrying in ${this.recycleRetryDelayMs}ms (${attemptsLeft} attempt(s) left):`
498
+ : ", no attempts left:"), err);
499
+ if (attemptsLeft > 0) {
500
+ await delay(this.recycleRetryDelayMs);
501
+ }
502
+ }
503
+ }
504
+ this.isRecycling = false;
505
+ this.failRecycle(session, lastErr);
506
+ }
507
+ /**
508
+ * Gives up on recycling after every spawn attempt failed: tears down whatever
509
+ * child is left and fatally closes the stream with a clear, aggregated error
510
+ * instead of leaving callers to interpret a raw timeout from the last attempt.
511
+ */
512
+ failRecycle(session, err) {
513
+ this.isClosed = true;
514
+ this.pipeline.dispose();
515
+ this.rlErr?.close();
516
+ this.rlOut?.close();
517
+ if (this.currentChild && !this.currentChild.killed) {
518
+ this.currentChild.kill("SIGKILL");
519
+ }
520
+ const reason = err instanceof Error ? err.message : String(err);
521
+ const errorObj = new Error(`Process recycle for session ${session.sessionId} failed after ${this.recycleSpawnAttempts} attempt(s): ${reason}`);
522
+ console.error(`[refined-antigravity-acp] ${errorObj.message}`);
523
+ try {
524
+ this.readableController?.error(errorObj);
525
+ }
526
+ catch {
527
+ // Controller may already be closed
528
+ }
529
+ throw errorObj;
530
+ }
531
+ close() {
532
+ if (this.isClosed)
533
+ return;
534
+ this.isClosed = true;
535
+ this.pipeline.dispose();
536
+ this.rlErr?.close();
537
+ this.rlOut?.close();
538
+ this.currentChild.stdin?.end();
539
+ if (!this.currentChild.killed) {
540
+ this.currentChild.kill("SIGTERM");
541
+ }
542
+ this.rejectPendingRequests(new Error("Supervisor closed"));
543
+ this.closeController();
544
+ }
545
+ abort() {
546
+ if (this.isClosed)
547
+ return;
548
+ this.isClosed = true;
549
+ this.pipeline.dispose();
550
+ this.rlErr?.close();
551
+ this.rlOut?.close();
552
+ this.currentChild.stdin?.end();
553
+ if (!this.currentChild.killed) {
554
+ this.currentChild.kill("SIGKILL");
555
+ }
556
+ this.rejectPendingRequests(new Error("Supervisor aborted"));
557
+ this.closeController();
558
+ }
559
+ createStreams() {
560
+ const readable = new ReadableStream({
561
+ start: (controller) => {
562
+ this.setController(controller);
563
+ },
564
+ cancel: () => {
565
+ this.close();
566
+ },
567
+ });
568
+ const writable = new WritableStream({
569
+ write: async (msg) => {
570
+ await this.handleOutbound(msg);
571
+ },
572
+ close: () => {
573
+ this.close();
574
+ },
575
+ abort: () => {
576
+ this.abort();
577
+ },
578
+ });
579
+ return { readable, writable };
580
+ }
581
+ }
582
+ //# sourceMappingURL=supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/core/supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare const RAW_WS_MSG_MARKER = "RAW WS MSG:";
2
+ export declare const TELEMETRY_STATES: {
3
+ readonly WAITING_FOR_TASKS: "STATE_WAITING_FOR_TASKS";
4
+ readonly FULLY_IDLE: "STATE_FULLY_IDLE";
5
+ readonly IDLE: "STATE_IDLE";
6
+ readonly RUNNING: "STATE_RUNNING";
7
+ readonly COMPLETE: "STATE_COMPLETE";
8
+ readonly ACTIVE: "STATE_ACTIVE";
9
+ };
10
+ export declare const TARGET_ENVIRONMENT = "TARGET_ENVIRONMENT";
11
+ export interface TrajectoryStateUpdate {
12
+ trajectoryId: string;
13
+ state: string;
14
+ }
15
+ export interface StepUpdate {
16
+ trajectoryId: string;
17
+ state: string;
18
+ target?: string | undefined;
19
+ source?: string | undefined;
20
+ }
21
+ export declare function parseTrajectoryStateUpdate(line: string): TrajectoryStateUpdate | null;
22
+ export declare function parseStepUpdate(line: string): StepUpdate | null;
23
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/core/telemetry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAyCD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAErF;AAqBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAE/D"}