agent-tower 0.6.0-beta.13 → 0.6.0-beta.15
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/executors/default-providers.json +1 -0
- package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +232 -6
- package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
- package/dist/runtime/__tests__/acp-driver.test.js +24 -0
- package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
- package/dist/runtime/__tests__/runtime-coordinator.test.js +205 -7
- package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
- package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
- package/dist/runtime/acp/acp-driver.js +188 -61
- package/dist/runtime/acp/acp-driver.js.map +1 -1
- package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
- package/dist/runtime/acp/codex-provider-config.js +4 -0
- package/dist/runtime/acp/codex-provider-config.js.map +1 -1
- package/dist/runtime/contracts.d.ts +12 -0
- package/dist/runtime/contracts.d.ts.map +1 -1
- package/dist/runtime/runtime-coordinator.d.ts +22 -1
- package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
- package/dist/runtime/runtime-coordinator.js +214 -26
- package/dist/runtime/runtime-coordinator.js.map +1 -1
- package/dist/services/__tests__/session-manager.lifecycle.test.js +578 -68
- package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
- package/dist/services/__tests__/session-manager.team-run.test.js +2 -1
- package/dist/services/__tests__/session-manager.team-run.test.js.map +1 -1
- package/dist/services/session-manager.d.ts +14 -8
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/session-manager.js +359 -176
- package/dist/services/session-manager.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-aLGw8pYk.js → AgentDemoPage-04hKRdNk.js} +1 -1
- package/dist/web/assets/{AgentEnvironmentSettingsPage-BYcH_wMz.js → AgentEnvironmentSettingsPage-TnYB_gn_.js} +1 -1
- package/dist/web/assets/{AgentLogo-Dyqxcj5s.js → AgentLogo-BQ4AhPCM.js} +1 -1
- package/dist/web/assets/ConversationPage-GSAFcHuX.js +3 -0
- package/dist/web/assets/CreateTaskInput-DSl73Wwc.js +1 -0
- package/dist/web/assets/{DemoPage-m92AArTk.js → DemoPage-BKlcChAw.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-P5HcwCXo.js → GeneralSettingsPage-sVFvK9Oe.js} +1 -1
- package/dist/web/assets/{Icons-BFOphLw-.js → Icons-DGahMuvC.js} +1 -1
- package/dist/web/assets/{LoadingPreviewPage-CfT4FIyb.js → LoadingPreviewPage-CZ2N3qZc.js} +1 -1
- package/dist/web/assets/{McpSettingsPage-BI_b78L_.js → McpSettingsPage-KZFzkxCs.js} +1 -1
- package/dist/web/assets/{MemberAvatar-1UlgMZMM.js → MemberAvatar-5bEbGww5.js} +1 -1
- package/dist/web/assets/{NotificationSettingsPage-CQCyq9QZ.js → NotificationSettingsPage-hVClKCOc.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-ojhJXLWb.js → ProfileSettingsPage-BICdSvU4.js} +1 -1
- package/dist/web/assets/{ProjectKanbanPage-DK3rZJzY.js → ProjectKanbanPage-D62MacD4.js} +27 -27
- package/dist/web/assets/{ProjectSettingsPage-MGB631ia.js → ProjectSettingsPage-aMerK2A7.js} +1 -1
- package/dist/web/assets/{ProviderSettingsPage-CMZvEWMa.js → ProviderSettingsPage-Djd3iQfB.js} +1 -1
- package/dist/web/assets/{SettingsMasterDetail-9CnCBuNZ.js → SettingsMasterDetail-Czojx5vD.js} +1 -1
- package/dist/web/assets/{TeamSettingsPage-BUXKd5UF.js → TeamSettingsPage-B3-4MXXx.js} +1 -1
- package/dist/web/assets/{arc-2leUEhVa.js → arc-DzPiJSKL.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-CDgYR44L.js → architectureDiagram-3BPJPVTR-EhKxHp4t.js} +1 -1
- package/dist/web/assets/{arrow-left-Jn-v17JF.js → arrow-left-2dTz1a0q.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-CzfIh31g.js → blockDiagram-GPEHLZMM-BHcWmA7M.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-BzzBXKEF.js → c4Diagram-AAUBKEIU-D59zNlIS.js} +1 -1
- package/dist/web/assets/channel-BpGJqMDu.js +1 -0
- package/dist/web/assets/check-CYQXIceH.js +1 -0
- package/dist/web/assets/{chevron-down-CpKODb7Y.js → chevron-down-BTGC8Sed.js} +1 -1
- package/dist/web/assets/{chevron-right-CBoUSXVq.js → chevron-right-BEw6jjbJ.js} +1 -1
- package/dist/web/assets/{chevron-up-KZ1hsL8y.js → chevron-up-D_Hmx6ug.js} +1 -1
- package/dist/web/assets/{chunk-2J33WTMH-GJE6LCGS.js → chunk-2J33WTMH-nk1Ieiq7.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-Bw_ITp1Q.js → chunk-4BX2VUAB-xl3tQkpA.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-DQ-XuWbD.js → chunk-55IACEB6-Bj12k-M-.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-BgL49Dtw.js → chunk-727SXJPM-DeL4hVho.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-dRTVohoy.js → chunk-AQP2D5EJ-xyt_hZ7N.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-BZtRjoH7.js → chunk-FMBD7UC4-DMpougEb.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-CN3wND6y.js → chunk-ND2GUHAM-D2qjylxW.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-CMwbobMj.js → chunk-QZHKN3VN-BjCtAePb.js} +1 -1
- package/dist/web/assets/{circle-alert-kELlE07n.js → circle-alert-BGbIBYEs.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-M-OAZSzx.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-M-OAZSzx.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-B1YC7dLa.js → code-block-OCS4YCEC-DnfSnuHM.js} +1 -1
- package/dist/web/assets/{confirm-dialog-DDWlvtJs.js → confirm-dialog-C8rPqdFE.js} +1 -1
- package/dist/web/assets/{cose-bilkent-S5V4N54A-C6xD7kmY.js → cose-bilkent-S5V4N54A-DD3H-OxN.js} +1 -1
- package/dist/web/assets/{cssMode-lB5vNGvS.js → cssMode-DR6Jf3-g.js} +1 -1
- package/dist/web/assets/{dagre-BM42HDAG-BqTCYMO6.js → dagre-BM42HDAG-Bw6aZrG9.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-BsMq3s5l.js → diagram-2AECGRRQ-Bm8oLz0N.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-l4izpv7Z.js → diagram-5GNKFQAL-CL9Xaz3k.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-uWDq6Yzo.js → diagram-KO2AKTUF-KbdYV5XJ.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-Dbd4fnFa.js → diagram-LMA3HP47-CYo7CoGp.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-BC-27mkr.js → diagram-OG6HWLK6-CFPSh1Sm.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-DrCP0Xt8.js → erDiagram-TEJ5UH35-Dh9qfvJz.js} +1 -1
- package/dist/web/assets/{flowDiagram-I6XJVG4X-BqNsQuUr.js → flowDiagram-I6XJVG4X-8EMyvj0V.js} +1 -1
- package/dist/web/assets/{folder-picker-CBVEWiuS.js → folder-picker-iHGLWmJF.js} +1 -1
- package/dist/web/assets/{freemarker2-Bos_2jdw.js → freemarker2-Dhyh-DXo.js} +1 -1
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-CZOrG-5M.js → ganttDiagram-6RSMTGT7-BE5FBwwf.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-Dp3i5ehs.js → gitGraphDiagram-PVQCEYII-Dx2x_Y6A.js} +1 -1
- package/dist/web/assets/{handlebars-C7Elz3nH.js → handlebars-BB4WaAAq.js} +1 -1
- package/dist/web/assets/{html-EvsHOk5n.js → html-BluMUCI1.js} +1 -1
- package/dist/web/assets/{htmlMode-CTlhNZgJ.js → htmlMode-Dk0meNHs.js} +1 -1
- package/dist/web/assets/{index-hPp73HMS.js → index-9oo7US_J.js} +4 -4
- package/dist/web/assets/{index-BGajgi5H.js → index-B0gHfTIK.js} +3 -3
- package/dist/web/assets/{infoDiagram-5YYISTIA-C6NnR_Zb.js → infoDiagram-5YYISTIA-0BPLGHMf.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-C1SOf-Ko.js → ishikawaDiagram-YF4QCWOH-BnoV5etH.js} +1 -1
- package/dist/web/assets/javascript-Cwz9LBET.js +1 -0
- package/dist/web/assets/{journeyDiagram-JHISSGLW--GKMSbPz.js → journeyDiagram-JHISSGLW-D8_dQMoV.js} +1 -1
- package/dist/web/assets/{jsonMode-Bbh3Gbb8.js → jsonMode-DWAIY3Zm.js} +1 -1
- package/dist/web/assets/{kanban-definition-UN3LZRKU-Car5iy0R.js → kanban-definition-UN3LZRKU-CcP-UBWq.js} +1 -1
- package/dist/web/assets/{layers-WOwm63Fo.js → layers-B4Hb2k1E.js} +1 -1
- package/dist/web/assets/{linear-ChUj9SvT.js → linear-CFeIj_93.js} +1 -1
- package/dist/web/assets/{liquid-BXFWITFq.js → liquid-DszhNRew.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DQ2CrOBI.js → lspLanguageFeatures-DyajWL04.js} +1 -1
- package/dist/web/assets/{mdx-vHLpslzI.js → mdx-D3Dg3IU3.js} +1 -1
- package/dist/web/assets/{mermaid-NOHMQCX5-CzwPLFrI.js → mermaid-NOHMQCX5-De7jApSL.js} +4 -4
- package/dist/web/assets/{message-square-DgdFa1Kc.js → message-square-Dly_bein.js} +1 -1
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-CfzbnHY_.js → mindmap-definition-RKZ34NQL-BBl0Q2SW.js} +1 -1
- package/dist/web/assets/{modal-QnCJhV9P.js → modal-CyT9BpRm.js} +1 -1
- package/dist/web/assets/{monaco-CbFQByO7.js → monaco-DBlH7Gvr.js} +3 -3
- package/dist/web/assets/{pencil-CNVU3zfM.js → pencil-BLlfV3fH.js} +1 -1
- package/dist/web/assets/{pieDiagram-4H26LBE5-CDqYJneU.js → pieDiagram-4H26LBE5-BVrsUXUt.js} +1 -1
- package/dist/web/assets/{python-BhFSY_J2.js → python-C1GF9JX6.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-B6ChDIx2.js → quadrantDiagram-W4KKPZXB-Brnd7Z-x.js} +1 -1
- package/dist/web/assets/{razor-Cx_DrE-V.js → razor-CNwR1Ppb.js} +1 -1
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-DefLT9NZ.js → requirementDiagram-4Y6WPE33-BEL5JUv5.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-CQHnovPz.js → sankeyDiagram-5OEKKPKP-Dg3pq8MF.js} +1 -1
- package/dist/web/assets/{select-CmbeAAVh.js → select-BQuOHpgx.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DZuaKm7C.js → sequenceDiagram-3UESZ5HK-DvXxqwal.js} +1 -1
- package/dist/web/assets/{server-BUivqMYo.js → server-DmNZ4TcQ.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-DvxpChEC.js → stateDiagram-AJRCARHV-BSXeM4wR.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Cjr-lS2a.js +1 -0
- package/dist/web/assets/{switch-CiOyM13e.js → switch-BDzVWx67.js} +1 -1
- package/dist/web/assets/{textarea-D4HkYa3u.js → textarea-D4CrProF.js} +1 -1
- package/dist/web/assets/{timeline-definition-PNZ67QCA-BRu-tS-p.js → timeline-definition-PNZ67QCA-3rH0QWp7.js} +1 -1
- package/dist/web/assets/{trash-2-DPxBnxJM.js → trash-2-DHu1aC-u.js} +1 -1
- package/dist/web/assets/{tsMode-CHcZwUmC.js → tsMode-Z5KzKNgl.js} +1 -1
- package/dist/web/assets/{typescript-CvtjMxoq.js → typescript-Cg8IFK7o.js} +1 -1
- package/dist/web/assets/{upload-YmLtnZsU.js → upload-DQPwfdPh.js} +1 -1
- package/dist/web/assets/{use-profiles-OJAwfc90.js → use-profiles-DI5-xqHU.js} +1 -1
- package/dist/web/assets/{use-projects-iob5C7Xk.js → use-projects-Cs0-FMed.js} +1 -1
- package/dist/web/assets/{use-providers-Cj9S9_2q.js → use-providers-BoVFTPYO.js} +1 -1
- package/dist/web/assets/{useNormalizedLogs-BhN4AN4f.js → useNormalizedLogs-DhoOmBJo.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-CtZ_3Ld0.js → vennDiagram-CIIHVFJN-DAjUhsg9.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-h9yfTmIn.js → wardley-L42UT6IY-Db8PSpCZ.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-CWXtZtix.js → wardleyDiagram-YWT4CUSO-DfXfIOXM.js} +1 -1
- package/dist/web/assets/{xml-DhyGRwiG.js → xml-UOLWFxtD.js} +1 -1
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-BLuWVWlL.js → xychartDiagram-2RQKCTM6-C41mtVgh.js} +1 -1
- package/dist/web/assets/{yaml-Cpi6SvoR.js → yaml-CeY5SySy.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +2 -2
- package/dist/web/assets/ConversationPage-BBnK1qA_.js +0 -3
- package/dist/web/assets/CreateTaskInput-B11wGhDW.js +0 -1
- package/dist/web/assets/channel-XuYe6lH7.js +0 -1
- package/dist/web/assets/check-FwR4dMNY.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-DWSNJHiT.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-DWSNJHiT.js +0 -1
- package/dist/web/assets/javascript-Desq1P0G.js +0 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-BbrRYMxK.js +0 -1
|
@@ -31,9 +31,12 @@ class AcpDriverSession {
|
|
|
31
31
|
sessionReady = false;
|
|
32
32
|
sessionBootstrapUpdates;
|
|
33
33
|
closed = false;
|
|
34
|
-
|
|
34
|
+
launchCleanupOwnerIds = new Set();
|
|
35
35
|
transportResetPromise;
|
|
36
36
|
closePromise;
|
|
37
|
+
transportGeneration = 0;
|
|
38
|
+
processCleanupEvidence = new WeakMap();
|
|
39
|
+
pendingProcessManagers = new Set();
|
|
37
40
|
negotiatedCapabilities = {
|
|
38
41
|
loadSession: false,
|
|
39
42
|
terminalInput: false,
|
|
@@ -71,7 +74,7 @@ class AcpDriverSession {
|
|
|
71
74
|
throw markPreChildProcessFailure(error);
|
|
72
75
|
}
|
|
73
76
|
const session = new AcpDriverSession(input, definition, profile);
|
|
74
|
-
await session.connect(sink);
|
|
77
|
+
await session.connect(sink, input.launchClaimNumber ?? 1, input.admissionSignal);
|
|
75
78
|
return session;
|
|
76
79
|
}
|
|
77
80
|
get capabilities() {
|
|
@@ -87,8 +90,16 @@ class AcpDriverSession {
|
|
|
87
90
|
if (this.closed) {
|
|
88
91
|
throw new AgentRuntimeError('connection_closed', 'prompt', 'ACP connection is closed', true);
|
|
89
92
|
}
|
|
90
|
-
if (!this.connection)
|
|
91
|
-
await this.connect(sink, turn.launchClaimNumber ?? 1);
|
|
93
|
+
if (!this.connection) {
|
|
94
|
+
await this.connect(sink, turn.launchClaimNumber ?? 1, turn.admissionSignal);
|
|
95
|
+
}
|
|
96
|
+
this.assertAdmissionActive(turn.admissionSignal, 'prompt');
|
|
97
|
+
const connection = this.connection;
|
|
98
|
+
if (!connection) {
|
|
99
|
+
throw new AgentRuntimeError('connection_closed', 'prompt', 'ACP connection is closed', true);
|
|
100
|
+
}
|
|
101
|
+
const generation = this.transportGeneration;
|
|
102
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'prompt');
|
|
92
103
|
if (this.currentTurnId) {
|
|
93
104
|
throw new AgentRuntimeError('turn_already_running', 'prompt', 'ACP turn is already running', false);
|
|
94
105
|
}
|
|
@@ -103,10 +114,14 @@ class AcpDriverSession {
|
|
|
103
114
|
this.clearTurn(turn.turnId);
|
|
104
115
|
throw error;
|
|
105
116
|
}
|
|
106
|
-
|
|
107
|
-
|
|
117
|
+
try {
|
|
118
|
+
// Even a sessionReady fast path yields at the await above. Disposal can
|
|
119
|
+
// win in that microtask window, so prompt needs its own final gate.
|
|
120
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'prompt');
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
108
123
|
this.clearTurn(turn.turnId);
|
|
109
|
-
throw
|
|
124
|
+
throw error;
|
|
110
125
|
}
|
|
111
126
|
const request = connection.agent.request(acp.methods.agent.session.prompt, {
|
|
112
127
|
sessionId: this.requireExternalSessionId(),
|
|
@@ -174,22 +189,23 @@ class AcpDriverSession {
|
|
|
174
189
|
finally {
|
|
175
190
|
// A launch-helper cleanup failure must not leave a permanently resolved
|
|
176
191
|
// close promise: a later lifecycle boundary can retry the helper.
|
|
177
|
-
if (this.closePromise === close
|
|
192
|
+
if (this.closePromise === close
|
|
193
|
+
&& (this.pendingProcessManagers.size > 0 || this.launchCleanupOwnerIds.size > 0)) {
|
|
178
194
|
this.closePromise = undefined;
|
|
179
195
|
}
|
|
180
196
|
}
|
|
181
197
|
}
|
|
182
198
|
projector;
|
|
183
|
-
async connect(sink, launchClaimNumber = this.input.launchClaimNumber ?? 1) {
|
|
199
|
+
async connect(sink, launchClaimNumber = this.input.launchClaimNumber ?? 1, admissionSignal) {
|
|
184
200
|
if (this.transportResetPromise)
|
|
185
201
|
await this.transportResetPromise;
|
|
186
|
-
|
|
187
|
-
throw new AgentRuntimeError('connection_closed', 'initialize', 'ACP connection is closed', true);
|
|
188
|
-
}
|
|
202
|
+
this.assertAdmissionActive(admissionSignal, 'initialize');
|
|
189
203
|
if (this.connection)
|
|
190
204
|
return;
|
|
191
|
-
if (this.processManager)
|
|
205
|
+
if (this.processManager || this.pendingProcessManagers.size > 0)
|
|
192
206
|
await this.resetTransport();
|
|
207
|
+
this.assertAdmissionActive(admissionSignal, 'initialize');
|
|
208
|
+
const generation = this.transportGeneration;
|
|
193
209
|
let launch;
|
|
194
210
|
try {
|
|
195
211
|
launch = await this.definition.resolveLaunch(this.input, this.providerProfile);
|
|
@@ -197,21 +213,30 @@ class AcpDriverSession {
|
|
|
197
213
|
catch (error) {
|
|
198
214
|
throw markPreChildProcessFailure(error);
|
|
199
215
|
}
|
|
200
|
-
|
|
216
|
+
const launchCleanupOwnerId = launch.cleanup
|
|
201
217
|
? acpLaunchCleanupRegistry.register(launch.cleanup, `${this.input.agentType}:${this.input.towerSessionId}`)
|
|
202
218
|
: undefined;
|
|
219
|
+
if (launchCleanupOwnerId)
|
|
220
|
+
this.launchCleanupOwnerIds.add(launchCleanupOwnerId);
|
|
221
|
+
let manager;
|
|
222
|
+
let connection;
|
|
223
|
+
let processStarted = false;
|
|
203
224
|
const runtimeInstanceId = randomUUID();
|
|
204
|
-
this.currentRuntimeInstanceId = runtimeInstanceId;
|
|
205
|
-
const manager = new AcpProcessManager({
|
|
206
|
-
command: launch.command,
|
|
207
|
-
args: launch.args,
|
|
208
|
-
cwd: launch.cwd,
|
|
209
|
-
env: launch.env,
|
|
210
|
-
maxStdoutFrameBytes: this.definition.maxStdoutFrameBytes,
|
|
211
|
-
transformStdoutFrame: this.definition.transformStdoutFrame,
|
|
212
|
-
});
|
|
213
|
-
this.processManager = manager;
|
|
214
225
|
try {
|
|
226
|
+
this.assertStartupCurrent(generation, admissionSignal, 'initialize', true);
|
|
227
|
+
manager = new AcpProcessManager({
|
|
228
|
+
command: launch.command,
|
|
229
|
+
args: launch.args,
|
|
230
|
+
cwd: launch.cwd,
|
|
231
|
+
env: launch.env,
|
|
232
|
+
maxStdoutFrameBytes: this.definition.maxStdoutFrameBytes,
|
|
233
|
+
transformStdoutFrame: this.definition.transformStdoutFrame,
|
|
234
|
+
});
|
|
235
|
+
this.processManager = manager;
|
|
236
|
+
this.currentRuntimeInstanceId = runtimeInstanceId;
|
|
237
|
+
// No await occurs between the generation check and AcpProcessManager's
|
|
238
|
+
// synchronous spawn call, so disposal cannot cross this final spawn gate.
|
|
239
|
+
this.assertStartupCurrent(generation, admissionSignal, 'spawn', true);
|
|
215
240
|
const streams = await manager.start();
|
|
216
241
|
await sink.process({
|
|
217
242
|
type: 'started',
|
|
@@ -222,6 +247,13 @@ class AcpDriverSession {
|
|
|
222
247
|
birthMarker: streams.birthMarker,
|
|
223
248
|
ownershipToken: streams.ownershipToken,
|
|
224
249
|
});
|
|
250
|
+
processStarted = true;
|
|
251
|
+
this.processCleanupEvidence.set(manager, {
|
|
252
|
+
sink,
|
|
253
|
+
runtimeInstanceId,
|
|
254
|
+
launchClaimNumber,
|
|
255
|
+
});
|
|
256
|
+
this.assertStartupCurrent(generation, admissionSignal, 'initialize', false);
|
|
225
257
|
manager.onExit((exit) => {
|
|
226
258
|
void (async () => {
|
|
227
259
|
await sink.process({
|
|
@@ -231,20 +263,17 @@ class AcpDriverSession {
|
|
|
231
263
|
signal: exit.signal,
|
|
232
264
|
launchClaimNumber,
|
|
233
265
|
}).catch(() => undefined);
|
|
234
|
-
if (!this.closed && this.processManager === manager) {
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
await this.resetTransport(
|
|
238
|
-
await sink.process({
|
|
239
|
-
type: 'tree_cleanup_completed',
|
|
240
|
-
runtimeInstanceId,
|
|
241
|
-
launchClaimNumber,
|
|
242
|
-
});
|
|
266
|
+
if (!this.closed && this.transportGeneration === generation && this.processManager === manager) {
|
|
267
|
+
const activeConnection = this.connection;
|
|
268
|
+
activeConnection?.close(new AgentRuntimeError('process_exit', 'runtime', exit.stderrExcerpt || `ACP adapter exited with code ${exit.exitCode ?? 'unknown'}`, true));
|
|
269
|
+
await this.resetTransport(activeConnection, generation);
|
|
243
270
|
}
|
|
244
271
|
})().catch(() => undefined);
|
|
245
272
|
});
|
|
246
273
|
const app = acp.client({ name: 'agent-tower' })
|
|
247
274
|
.onNotification(acp.methods.client.session.update, async ({ params }) => {
|
|
275
|
+
if (!connection || !this.isTransportCurrent(generation, connection))
|
|
276
|
+
return;
|
|
248
277
|
if (this.sessionBootstrapUpdates) {
|
|
249
278
|
this.sessionBootstrapUpdates.push(params);
|
|
250
279
|
if (this.sessionBootstrapUpdates.length > MAX_SESSION_BOOTSTRAP_UPDATES) {
|
|
@@ -257,9 +286,13 @@ class AcpDriverSession {
|
|
|
257
286
|
this.projector?.project(params);
|
|
258
287
|
})
|
|
259
288
|
.onRequest(acp.methods.client.session.requestPermission, async ({ params, signal }) => {
|
|
289
|
+
if (!connection || !this.isTransportCurrent(generation, connection)) {
|
|
290
|
+
return { outcome: { outcome: 'cancelled' } };
|
|
291
|
+
}
|
|
260
292
|
return this.handlePermission(params, signal);
|
|
261
293
|
});
|
|
262
|
-
|
|
294
|
+
connection = app.connect(acp.ndJsonStream(streams.input, streams.output));
|
|
295
|
+
this.assertStartupCurrent(generation, admissionSignal, 'initialize', false);
|
|
263
296
|
this.connection = connection;
|
|
264
297
|
const clientCapabilities = mergeClientCapabilities(this.definition.clientCapabilities?.(this.providerProfile));
|
|
265
298
|
const initialize = connection.agent.request(acp.methods.agent.initialize, {
|
|
@@ -268,6 +301,7 @@ class AcpDriverSession {
|
|
|
268
301
|
clientCapabilities,
|
|
269
302
|
});
|
|
270
303
|
const response = await withTimeout(initialize, this.definition.initializeTimeoutMs ?? CONNECT_TIMEOUT_MS, 'ACP initialize timed out');
|
|
304
|
+
this.assertTransportCurrent(generation, connection, admissionSignal, 'initialize');
|
|
271
305
|
if (response.protocolVersion !== acp.PROTOCOL_VERSION) {
|
|
272
306
|
throw new AgentRuntimeError('protocol_mismatch', 'initialize', 'ACP protocol version mismatch', false);
|
|
273
307
|
}
|
|
@@ -277,6 +311,7 @@ class AcpDriverSession {
|
|
|
277
311
|
catch (error) {
|
|
278
312
|
throw normalizeAcpError(error, 'authenticate');
|
|
279
313
|
}
|
|
314
|
+
this.assertTransportCurrent(generation, connection, admissionSignal, 'authenticate');
|
|
280
315
|
this.negotiatedCapabilities = {
|
|
281
316
|
loadSession: response.agentCapabilities?.loadSession === true,
|
|
282
317
|
terminalInput: false,
|
|
@@ -284,50 +319,104 @@ class AcpDriverSession {
|
|
|
284
319
|
permissions: true,
|
|
285
320
|
};
|
|
286
321
|
this.supportsSessionResume = response.agentCapabilities?.sessionCapabilities?.resume != null;
|
|
287
|
-
|
|
322
|
+
const monitoredConnection = connection;
|
|
323
|
+
void monitoredConnection.closed.then(() => this.handleUnexpectedConnectionClose(monitoredConnection), () => this.handleUnexpectedConnectionClose(monitoredConnection));
|
|
288
324
|
}
|
|
289
325
|
catch (error) {
|
|
290
|
-
|
|
326
|
+
if (this.transportGeneration === generation && (this.processManager === manager || this.connection === connection)) {
|
|
327
|
+
await this.resetTransport(connection, generation).catch(() => undefined);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
connection?.close();
|
|
331
|
+
let cleanupError;
|
|
332
|
+
if (processStarted && manager) {
|
|
333
|
+
try {
|
|
334
|
+
await this.stopAndConfirmProcessTree(manager);
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
cleanupError = error;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
if (launchCleanupOwnerId)
|
|
341
|
+
await this.cleanupLaunchWithRetry(launchCleanupOwnerId);
|
|
342
|
+
if (cleanupError)
|
|
343
|
+
throw cleanupError;
|
|
344
|
+
}
|
|
291
345
|
throw normalizeAcpError(error, 'initialize');
|
|
292
346
|
}
|
|
293
347
|
}
|
|
348
|
+
assertAdmissionActive(signal, stage) {
|
|
349
|
+
if (this.closed) {
|
|
350
|
+
throw markPreChildProcessFailure(new AgentRuntimeError('connection_closed', stage, 'ACP connection is closed', true));
|
|
351
|
+
}
|
|
352
|
+
if (!signal?.aborted)
|
|
353
|
+
return;
|
|
354
|
+
const reason = signal.reason;
|
|
355
|
+
throw markPreChildProcessFailure(reason instanceof Error
|
|
356
|
+
? reason
|
|
357
|
+
: new AgentRuntimeError('runtime_admission_cancelled', stage, 'ACP startup admission was cancelled by runtime disposal', true));
|
|
358
|
+
}
|
|
359
|
+
assertStartupCurrent(generation, signal, stage, preChild) {
|
|
360
|
+
let error;
|
|
361
|
+
if (this.closed) {
|
|
362
|
+
error = new AgentRuntimeError('connection_closed', stage, 'ACP connection is closed', true);
|
|
363
|
+
}
|
|
364
|
+
else if (this.transportGeneration !== generation) {
|
|
365
|
+
error = new AgentRuntimeError('runtime_generation_stale', stage, 'ACP transport generation changed during startup', true);
|
|
366
|
+
}
|
|
367
|
+
else if (signal?.aborted) {
|
|
368
|
+
error = signal.reason instanceof Error
|
|
369
|
+
? signal.reason
|
|
370
|
+
: new AgentRuntimeError('runtime_admission_cancelled', stage, 'ACP startup admission was cancelled by runtime disposal', true);
|
|
371
|
+
}
|
|
372
|
+
if (!error)
|
|
373
|
+
return;
|
|
374
|
+
throw preChild ? markPreChildProcessFailure(error) : error;
|
|
375
|
+
}
|
|
376
|
+
assertTransportCurrent(generation, connection, signal, stage) {
|
|
377
|
+
this.assertStartupCurrent(generation, signal, stage, false);
|
|
378
|
+
if (this.connection !== connection) {
|
|
379
|
+
throw new AgentRuntimeError('runtime_generation_stale', stage, 'ACP transport was replaced during startup', true);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
isTransportCurrent(generation, connection) {
|
|
383
|
+
return !this.closed
|
|
384
|
+
&& this.transportGeneration === generation
|
|
385
|
+
&& this.connection === connection;
|
|
386
|
+
}
|
|
294
387
|
handleUnexpectedConnectionClose(connection) {
|
|
295
388
|
if (this.closed || this.connection !== connection)
|
|
296
389
|
return;
|
|
297
390
|
this.invalidatePermissions(this.currentSink);
|
|
298
391
|
void this.resetTransport(connection).catch(() => undefined);
|
|
299
392
|
}
|
|
300
|
-
async resetTransport(expectedConnection) {
|
|
393
|
+
async resetTransport(expectedConnection, expectedGeneration) {
|
|
301
394
|
if (this.transportResetPromise)
|
|
302
395
|
return this.transportResetPromise;
|
|
303
396
|
if (expectedConnection && this.connection !== expectedConnection)
|
|
304
397
|
return;
|
|
398
|
+
if (expectedGeneration != null && this.transportGeneration !== expectedGeneration)
|
|
399
|
+
return;
|
|
305
400
|
const connection = this.connection;
|
|
306
401
|
const manager = this.processManager;
|
|
402
|
+
const managers = new Set(this.pendingProcessManagers);
|
|
403
|
+
if (manager)
|
|
404
|
+
managers.add(manager);
|
|
405
|
+
const cleanupOwnerIds = [...this.launchCleanupOwnerIds];
|
|
406
|
+
this.transportGeneration += 1;
|
|
307
407
|
this.connection = undefined;
|
|
308
408
|
this.processManager = undefined;
|
|
309
409
|
this.sessionReady = false;
|
|
310
410
|
connection?.close();
|
|
311
411
|
const reset = (async () => {
|
|
312
|
-
|
|
313
|
-
try {
|
|
314
|
-
await manager?.stop();
|
|
315
|
-
}
|
|
316
|
-
catch (error) {
|
|
317
|
-
// Keep a failed manager attached so close/connect can retry its owned
|
|
318
|
-
// process-tree cleanup instead of treating a root exit as confirmed.
|
|
319
|
-
if (manager && !this.processManager)
|
|
320
|
-
this.processManager = manager;
|
|
321
|
-
stopError = error;
|
|
322
|
-
}
|
|
412
|
+
const stops = await Promise.allSettled([...managers].map((ownedManager) => this.stopAndConfirmProcessTree(ownedManager)));
|
|
323
413
|
// Owned-tree confirmation is the safety-critical result used by
|
|
324
414
|
// admission/recovery. Auxiliary launch cleanup is independent and can
|
|
325
415
|
// be retried without converting a confirmed tree into a failed runtime.
|
|
326
|
-
await this.cleanupLaunchWithRetry();
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
throw stopError;
|
|
416
|
+
await Promise.all(cleanupOwnerIds.map((ownerId) => this.cleanupLaunchWithRetry(ownerId)));
|
|
417
|
+
const failedStop = stops.find((result) => result.status === 'rejected');
|
|
418
|
+
if (failedStop?.status === 'rejected')
|
|
419
|
+
throw failedStop.reason;
|
|
331
420
|
})();
|
|
332
421
|
this.transportResetPromise = reset;
|
|
333
422
|
try {
|
|
@@ -338,20 +427,49 @@ class AcpDriverSession {
|
|
|
338
427
|
this.transportResetPromise = undefined;
|
|
339
428
|
}
|
|
340
429
|
}
|
|
341
|
-
async
|
|
342
|
-
const
|
|
343
|
-
if (!
|
|
430
|
+
async confirmProcessTreeCleanup(manager) {
|
|
431
|
+
const evidence = this.processCleanupEvidence.get(manager);
|
|
432
|
+
if (!evidence)
|
|
344
433
|
return;
|
|
434
|
+
if (evidence.confirmation)
|
|
435
|
+
return evidence.confirmation;
|
|
436
|
+
const confirmation = evidence.sink.process({
|
|
437
|
+
type: 'tree_cleanup_completed',
|
|
438
|
+
runtimeInstanceId: evidence.runtimeInstanceId,
|
|
439
|
+
launchClaimNumber: evidence.launchClaimNumber,
|
|
440
|
+
});
|
|
441
|
+
evidence.confirmation = confirmation;
|
|
442
|
+
try {
|
|
443
|
+
await confirmation;
|
|
444
|
+
}
|
|
445
|
+
catch (error) {
|
|
446
|
+
if (evidence.confirmation === confirmation)
|
|
447
|
+
evidence.confirmation = undefined;
|
|
448
|
+
throw error;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
async stopAndConfirmProcessTree(manager) {
|
|
452
|
+
try {
|
|
453
|
+
await manager.stop();
|
|
454
|
+
await this.confirmProcessTreeCleanup(manager);
|
|
455
|
+
this.pendingProcessManagers.delete(manager);
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
this.pendingProcessManagers.add(manager);
|
|
459
|
+
throw error;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
async cleanupLaunch(ownerId) {
|
|
345
463
|
await acpLaunchCleanupRegistry.runWithImmediateRetries(ownerId);
|
|
346
464
|
// Successful owners are removed from the registry. Keep failed owner IDs
|
|
347
465
|
// attached so a later close/reset can retry the same callback.
|
|
348
466
|
if (!acpLaunchCleanupRegistry.getState(ownerId)) {
|
|
349
|
-
this.
|
|
467
|
+
this.launchCleanupOwnerIds.delete(ownerId);
|
|
350
468
|
}
|
|
351
469
|
}
|
|
352
|
-
async cleanupLaunchWithRetry() {
|
|
470
|
+
async cleanupLaunchWithRetry(ownerId) {
|
|
353
471
|
try {
|
|
354
|
-
await this.cleanupLaunch();
|
|
472
|
+
await this.cleanupLaunch(ownerId);
|
|
355
473
|
}
|
|
356
474
|
catch (error) {
|
|
357
475
|
console.warn('[AcpRuntimeDriver] Auxiliary launch cleanup scheduled for retry', error);
|
|
@@ -363,6 +481,8 @@ class AcpDriverSession {
|
|
|
363
481
|
const connection = this.connection;
|
|
364
482
|
if (!connection)
|
|
365
483
|
throw new AgentRuntimeError('connection_closed', 'session', 'ACP connection is closed', true);
|
|
484
|
+
const generation = this.transportGeneration;
|
|
485
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
366
486
|
const requestedExternalId = turn.resumeExternalSessionId ?? this.currentExternalSessionId;
|
|
367
487
|
const mcpServers = buildAcpMcpServers(this.input.env);
|
|
368
488
|
const sessionMetadata = this.definition.sessionMetadata?.(this.providerProfile) ?? {};
|
|
@@ -372,6 +492,7 @@ class AcpDriverSession {
|
|
|
372
492
|
const shouldResumeWithoutHistory = Boolean(requestedExternalId)
|
|
373
493
|
&& resumeMode === 'resume'
|
|
374
494
|
&& this.supportsSessionResume;
|
|
495
|
+
let resolvedExternalSessionId;
|
|
375
496
|
try {
|
|
376
497
|
if (requestedExternalId) {
|
|
377
498
|
if (!shouldResumeWithoutHistory && !this.negotiatedCapabilities.loadSession) {
|
|
@@ -390,8 +511,10 @@ class AcpDriverSession {
|
|
|
390
511
|
mcpServers,
|
|
391
512
|
...sessionMetadata,
|
|
392
513
|
});
|
|
393
|
-
this.
|
|
514
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
394
515
|
await this.definition.configureSession?.(connection.agent, requestedExternalId, response, this.providerProfile);
|
|
516
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
517
|
+
resolvedExternalSessionId = requestedExternalId;
|
|
395
518
|
}
|
|
396
519
|
else {
|
|
397
520
|
const response = await connection.agent.request(acp.methods.agent.session.new, {
|
|
@@ -399,16 +522,20 @@ class AcpDriverSession {
|
|
|
399
522
|
mcpServers,
|
|
400
523
|
...sessionMetadata,
|
|
401
524
|
});
|
|
402
|
-
this.
|
|
525
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
403
526
|
await this.definition.configureSession?.(connection.agent, response.sessionId, response, this.providerProfile);
|
|
527
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
528
|
+
resolvedExternalSessionId = response.sessionId;
|
|
404
529
|
}
|
|
405
530
|
await new Promise((resolve) => setImmediate(resolve));
|
|
531
|
+
this.assertTransportCurrent(generation, connection, turn.admissionSignal, 'session');
|
|
406
532
|
}
|
|
407
533
|
finally {
|
|
408
534
|
if (this.sessionBootstrapUpdates === bootstrapUpdates) {
|
|
409
535
|
this.sessionBootstrapUpdates = undefined;
|
|
410
536
|
}
|
|
411
537
|
}
|
|
538
|
+
this.currentExternalSessionId = resolvedExternalSessionId;
|
|
412
539
|
const externalSessionId = this.requireExternalSessionId();
|
|
413
540
|
turn.msgStore.pushSessionId(externalSessionId);
|
|
414
541
|
const patch = setSessionId(externalSessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-driver.js","sourceRoot":"","sources":["../../../src/runtime/acp/acp-driver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp-driver.js","sourceRoot":"","sources":["../../../src/runtime/acp/acp-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-provider-config.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-provider-config.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAU7B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,qBAAqB,CAAC;IACtC,qBAAqB,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4BD,0FAA0F;AAC1F,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,0BAA0B,CAuI5B"}
|
|
@@ -3,6 +3,7 @@ import { AgentType, normalizeRuntimePermissionMode, } from '@agent-tower/shared'
|
|
|
3
3
|
import { CODEX_HTTP_ONLY_OPENAI_PROVIDER_ID } from '../../executors/codex.executor.js';
|
|
4
4
|
import { CODEX_OPENAI_COMPATIBLE_PROVIDER_NAME, resolveEffectiveProviderConnection, } from '../../services/provider-effective-connection.service.js';
|
|
5
5
|
import { AgentRuntimeError } from '../errors.js';
|
|
6
|
+
const DEFAULT_MODEL_CONTEXT_WINDOW = 800_000;
|
|
6
7
|
function isRecord(value) {
|
|
7
8
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
8
9
|
}
|
|
@@ -46,6 +47,9 @@ export function projectCodexAcpProvider(provider, inheritedEnvironment) {
|
|
|
46
47
|
throw new AgentRuntimeError('provider_config_invalid', 'provider_config', 'Codex Provider settings must be valid TOML', false, { cause: error });
|
|
47
48
|
}
|
|
48
49
|
}
|
|
50
|
+
if (!Object.prototype.hasOwnProperty.call(codexConfig, 'model_context_window')) {
|
|
51
|
+
codexConfig.model_context_window = DEFAULT_MODEL_CONTEXT_WINDOW;
|
|
52
|
+
}
|
|
49
53
|
const connection = resolveEffectiveProviderConnection(provider);
|
|
50
54
|
if (connection.diagnostics.length > 0) {
|
|
51
55
|
throw new AgentRuntimeError('provider_config_invalid', 'provider_config', connection.diagnostics.map(diagnostic => diagnostic.message).join('; '), false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-provider-config.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,SAAS,EACT,8BAA8B,GAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EACL,qCAAqC,EACrC,kCAAkC,GACnC,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-provider-config.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-provider-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,6 +76,8 @@ export interface RuntimeOpenInput {
|
|
|
76
76
|
env: ExecutionEnv;
|
|
77
77
|
externalSessionId?: string | null;
|
|
78
78
|
launchClaimNumber?: number;
|
|
79
|
+
/** Cancelled when disposal wins before the runtime startup handoff completes. */
|
|
80
|
+
admissionSignal?: AbortSignal;
|
|
79
81
|
}
|
|
80
82
|
/** `load` restores this transcript; `resume` only continues the agent's native context. */
|
|
81
83
|
export type RuntimeResumeMode = 'load' | 'resume';
|
|
@@ -88,6 +90,14 @@ export interface RuntimeRunTurnInput {
|
|
|
88
90
|
/** Local entry that must remain after any history imported by session/load. */
|
|
89
91
|
historyBoundaryEntryId?: string;
|
|
90
92
|
launchClaimNumber?: number;
|
|
93
|
+
/** Cancelled when disposal wins before the runtime startup handoff completes. */
|
|
94
|
+
admissionSignal?: AbortSignal;
|
|
95
|
+
}
|
|
96
|
+
/** Short-lived, per-Tower-session lease for durable launch preparation and driver handoff. */
|
|
97
|
+
export interface RuntimeStartAdmission {
|
|
98
|
+
readonly towerSessionId: string;
|
|
99
|
+
readonly signal: AbortSignal;
|
|
100
|
+
throwIfCancelled(): void;
|
|
91
101
|
}
|
|
92
102
|
export interface RuntimeTurnOutcome {
|
|
93
103
|
stopReason?: string;
|
|
@@ -128,6 +138,8 @@ export interface StartRuntimeTurnInput extends RuntimeOpenInput {
|
|
|
128
138
|
resumeExternalSessionId?: string | null;
|
|
129
139
|
resumeMode?: RuntimeResumeMode;
|
|
130
140
|
historyBoundaryEntryId?: string;
|
|
141
|
+
/** Supplied only by RuntimeCoordinator.withStartAdmission(). */
|
|
142
|
+
admission?: RuntimeStartAdmission;
|
|
131
143
|
}
|
|
132
144
|
export interface RuntimeTurnHandle {
|
|
133
145
|
turnId: string;
|