agent-tower 0.7.0-beta.0 → 0.7.0-beta.2
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/runtime/acp/acp-driver.d.ts.map +1 -1
- package/dist/runtime/acp/acp-driver.js +25 -2
- package/dist/runtime/acp/acp-driver.js.map +1 -1
- package/dist/services/__tests__/member-heartbeat-scheduler.test.js +29 -0
- package/dist/services/__tests__/member-heartbeat-scheduler.test.js.map +1 -1
- package/dist/services/__tests__/team-member-admission-barrier.test.d.ts +2 -0
- package/dist/services/__tests__/team-member-admission-barrier.test.d.ts.map +1 -0
- package/dist/services/__tests__/team-member-admission-barrier.test.js +51 -0
- package/dist/services/__tests__/team-member-admission-barrier.test.js.map +1 -0
- package/dist/services/__tests__/team-reconciler.service.test.js +115 -0
- package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
- package/dist/services/__tests__/team-scheduler.service.test.js +87 -0
- package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
- package/dist/services/member-heartbeat-scheduler.d.ts +11 -0
- package/dist/services/member-heartbeat-scheduler.d.ts.map +1 -1
- package/dist/services/member-heartbeat-scheduler.js +31 -2
- package/dist/services/member-heartbeat-scheduler.js.map +1 -1
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/session-manager.js +1 -1
- package/dist/services/session-manager.js.map +1 -1
- package/dist/services/team-member-admission-barrier.d.ts +23 -1
- package/dist/services/team-member-admission-barrier.d.ts.map +1 -1
- package/dist/services/team-member-admission-barrier.js +68 -2
- package/dist/services/team-member-admission-barrier.js.map +1 -1
- package/dist/services/team-reconciler.service.d.ts +20 -2
- package/dist/services/team-reconciler.service.d.ts.map +1 -1
- package/dist/services/team-reconciler.service.js +112 -20
- package/dist/services/team-reconciler.service.js.map +1 -1
- package/dist/services/team-scheduler.service.d.ts +7 -0
- package/dist/services/team-scheduler.service.d.ts.map +1 -1
- package/dist/services/team-scheduler.service.js +15 -5
- package/dist/services/team-scheduler.service.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-Cb99MrCc.js → AgentDemoPage-DP9u0ylA.js} +1 -1
- package/dist/web/assets/{AgentEnvironmentSettingsPage-ebCjwkrN.js → AgentEnvironmentSettingsPage-B571SLF5.js} +1 -1
- package/dist/web/assets/{AgentLogo-DonTQxM9.js → AgentLogo-VGcaaJum.js} +1 -1
- package/dist/web/assets/ConversationPage-CbMlQ5UC.js +3 -0
- package/dist/web/assets/CreateTaskInput-kkWy5nmc.js +1 -0
- package/dist/web/assets/{DemoPage-Bgivi3Ks.js → DemoPage-CpMV8Rv7.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-DvMYB2cP.js → GeneralSettingsPage-BvME4SJc.js} +1 -1
- package/dist/web/assets/{Icons-CjfPc49M.js → Icons-DXzgw2xT.js} +1 -1
- package/dist/web/assets/{LoadingPreviewPage-CYzE_rah.js → LoadingPreviewPage-D6OzaV9-.js} +1 -1
- package/dist/web/assets/{McpSettingsPage-D5OEjiw4.js → McpSettingsPage-CCWuZ-IU.js} +1 -1
- package/dist/web/assets/{MemberAvatar-CK6Kg4RE.js → MemberAvatar-DeKYSBH9.js} +1 -1
- package/dist/web/assets/{NotificationSettingsPage-G7b4V0bX.js → NotificationSettingsPage-BOhJqIXv.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-nKzInN5R.js → ProfileSettingsPage-BEMuDjhF.js} +1 -1
- package/dist/web/assets/{ProjectKanbanPage-BbRguX0a.js → ProjectKanbanPage-Ka243_RU.js} +5 -5
- package/dist/web/assets/{ProjectSettingsPage-B_uG_eME.js → ProjectSettingsPage-sE0Thu7d.js} +1 -1
- package/dist/web/assets/{ProviderSettingsPage-Yhr6QSK3.js → ProviderSettingsPage-BCXTXcbc.js} +1 -1
- package/dist/web/assets/{SettingsMasterDetail-fY_-qGyA.js → SettingsMasterDetail-DmqYixrL.js} +1 -1
- package/dist/web/assets/{TeamSettingsPage-C3bS2GiK.js → TeamSettingsPage-Dxk7-1fD.js} +1 -1
- package/dist/web/assets/{arc-BO0W2mHj.js → arc-Bl7tPfS7.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-C3cEkBBe.js → architectureDiagram-3BPJPVTR-CoP7qomY.js} +1 -1
- package/dist/web/assets/{arrow-left-KfI6LIDH.js → arrow-left-4_9exfZH.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-DWXMs31a.js → blockDiagram-GPEHLZMM-Dyj3wCtX.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-Br4Xlw_Z.js → c4Diagram-AAUBKEIU-BHpYwHH5.js} +1 -1
- package/dist/web/assets/channel-D6ei4By-.js +1 -0
- package/dist/web/assets/check-CIGH6GLr.js +1 -0
- package/dist/web/assets/{chevron-down-BeBVnkqU.js → chevron-down-B8PIP1yU.js} +1 -1
- package/dist/web/assets/{chevron-right-Q1Dgt2I3.js → chevron-right-h-JkCAHM.js} +1 -1
- package/dist/web/assets/{chevron-up-D2HXcF3G.js → chevron-up-C5SQd6qy.js} +1 -1
- package/dist/web/assets/{chunk-2J33WTMH-BX5SFZtu.js → chunk-2J33WTMH--mm3IA_q.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-CQvYESAm.js → chunk-4BX2VUAB-DSTjg6vT.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-D9YFdDf3.js → chunk-55IACEB6-BMI8DRl6.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-BUCrEURW.js → chunk-727SXJPM-DB6yt8nI.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-C8ERMAty.js → chunk-AQP2D5EJ-BMFO2BIQ.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-CzEZabFM.js → chunk-FMBD7UC4-BWW53Tgv.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-Dw35tn0f.js → chunk-ND2GUHAM-3Q1rz4Rn.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-CR7z6_1v.js → chunk-QZHKN3VN-DHZfBhTv.js} +1 -1
- package/dist/web/assets/{circle-alert-Dwtt3OAP.js → circle-alert-B2WJJFVc.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-Dy0gEbpJ.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Dy0gEbpJ.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-CAzJ3mQn.js → code-block-OCS4YCEC-DAvNvPo_.js} +1 -1
- package/dist/web/assets/{confirm-dialog-BcfJ2Xus.js → confirm-dialog-59aNupkb.js} +1 -1
- package/dist/web/assets/{cose-bilkent-S5V4N54A-CUXR9dk3.js → cose-bilkent-S5V4N54A-BkBXPAOW.js} +1 -1
- package/dist/web/assets/{cssMode-BpC8I4Ek.js → cssMode-r4PsUEeI.js} +1 -1
- package/dist/web/assets/{dagre-BM42HDAG-Dhy7S5s1.js → dagre-BM42HDAG-0o3tAN58.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-DIR5PGZF.js → diagram-2AECGRRQ-BaozWVAC.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-DzXKfh_N.js → diagram-5GNKFQAL-BQGxsEX-.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-us7dQ7xA.js → diagram-KO2AKTUF-BhOfCrvE.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-BjK9ExKN.js → diagram-LMA3HP47-1C0Ajian.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-BTx88v4L.js → diagram-OG6HWLK6-BZsvylQi.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-8rgd6uCk.js → erDiagram-TEJ5UH35-BODPoCQX.js} +1 -1
- package/dist/web/assets/{flowDiagram-I6XJVG4X-C47DsydX.js → flowDiagram-I6XJVG4X-B0BsMsro.js} +1 -1
- package/dist/web/assets/{folder-picker-NzVodD5j.js → folder-picker-B5RdK3CX.js} +1 -1
- package/dist/web/assets/{freemarker2-Gzu5EJMh.js → freemarker2-B62GnwxO.js} +1 -1
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-B7qxtFDa.js → ganttDiagram-6RSMTGT7-BsXOoMru.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DtXsV-rD.js → gitGraphDiagram-PVQCEYII-DVuq4oVA.js} +1 -1
- package/dist/web/assets/{handlebars-3Znn7m4J.js → handlebars-BBm4KBDp.js} +1 -1
- package/dist/web/assets/{html-Dgt18Ofs.js → html-BlMJourI.js} +1 -1
- package/dist/web/assets/{htmlMode-C2t1O0sW.js → htmlMode-vGjPTlal.js} +1 -1
- package/dist/web/assets/{index-BVh0eL1_.js → index-BziFEuBL.js} +4 -4
- package/dist/web/assets/{index--1agBpnq.js → index-DfRNL5pP.js} +4 -4
- package/dist/web/assets/index-KjsBZlkg.css +1 -0
- package/dist/web/assets/{infoDiagram-5YYISTIA-AQRMJJ6t.js → infoDiagram-5YYISTIA-CkI-s2fN.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CTcfBywF.js → ishikawaDiagram-YF4QCWOH-DExbu0jt.js} +1 -1
- package/dist/web/assets/javascript-CnnNs3bZ.js +1 -0
- package/dist/web/assets/{journeyDiagram-JHISSGLW-CRv0PNLh.js → journeyDiagram-JHISSGLW-C03_8hib.js} +1 -1
- package/dist/web/assets/{jsonMode-DQPoQ9kR.js → jsonMode-SxmrKu-q.js} +1 -1
- package/dist/web/assets/{kanban-definition-UN3LZRKU-AcoPh0xh.js → kanban-definition-UN3LZRKU-CkQ5JqTm.js} +1 -1
- package/dist/web/assets/{layers-DePAliGw.js → layers-DVjF8vaY.js} +1 -1
- package/dist/web/assets/{linear-GlxaBVoM.js → linear-VXyesiU2.js} +1 -1
- package/dist/web/assets/{liquid-Dr6EmgCe.js → liquid-B_CJMcDS.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DN91604C.js → lspLanguageFeatures-D46XQnYj.js} +1 -1
- package/dist/web/assets/{mdx-JG8OT2YG.js → mdx-B2i6poYS.js} +1 -1
- package/dist/web/assets/mermaid-NOHMQCX5-Cxj8y3xL.js +125 -0
- package/dist/web/assets/{message-square-DWgJpKCx.js → message-square-BleDaJqD.js} +1 -1
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-DGrhHpUO.js → mindmap-definition-RKZ34NQL-OB13sryT.js} +1 -1
- package/dist/web/assets/{modal-CORyqdln.js → modal-DCycqy3L.js} +1 -1
- package/dist/web/assets/{monaco-ORn-kQwM.js → monaco-C5uCiSc1.js} +3 -3
- package/dist/web/assets/{pencil-B1BeYe1f.js → pencil-7Lu7CiFO.js} +1 -1
- package/dist/web/assets/{pieDiagram-4H26LBE5-BX2kHm8X.js → pieDiagram-4H26LBE5-CU-pnTSj.js} +1 -1
- package/dist/web/assets/{python-v-kAqpdQ.js → python-CdqaVxbU.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D8kpdSHK.js → quadrantDiagram-W4KKPZXB-yZ7s-n8V.js} +1 -1
- package/dist/web/assets/{razor-1mzCjQ7_.js → razor-BZtfxDHk.js} +1 -1
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-BeCKrFYk.js → requirementDiagram-4Y6WPE33-B0anLb96.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-BhppOHK-.js → sankeyDiagram-5OEKKPKP-DHcV9eve.js} +1 -1
- package/dist/web/assets/{select-C0_GwcaL.js → select-EnAkHFwg.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-kd48NbrY.js → sequenceDiagram-3UESZ5HK-DqgRRD9W.js} +1 -1
- package/dist/web/assets/{server-ezmEd1Bn.js → server-a_4ZRCwE.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-BVEJJ862.js → stateDiagram-AJRCARHV-BM_vAe4X.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DXSW0BBn.js +1 -0
- package/dist/web/assets/{switch-DTs2bsdf.js → switch-D_UoJD1K.js} +1 -1
- package/dist/web/assets/{textarea-DDugro1C.js → textarea-Cmy7-X_E.js} +1 -1
- package/dist/web/assets/{timeline-definition-PNZ67QCA-DSTFfNuv.js → timeline-definition-PNZ67QCA-BRstBzgi.js} +1 -1
- package/dist/web/assets/{trash-2-0qxC5GZF.js → trash-2-0UA8zJ8I.js} +1 -1
- package/dist/web/assets/{tsMode-BiIcawoi.js → tsMode-BASXySxT.js} +1 -1
- package/dist/web/assets/{typescript-ChINO0ge.js → typescript-DbOfWuuq.js} +1 -1
- package/dist/web/assets/{upload-Bvn4pVZf.js → upload-CfzBeWxL.js} +1 -1
- package/dist/web/assets/{use-profiles-DQpUUzXs.js → use-profiles-MVQfFrhT.js} +1 -1
- package/dist/web/assets/{use-projects-BQB2BPEN.js → use-projects-CJ8Wn6Xl.js} +1 -1
- package/dist/web/assets/{use-providers--I6m_J5h.js → use-providers-DvV0mdqo.js} +1 -1
- package/dist/web/assets/{useNormalizedLogs-BB31QSMo.js → useNormalizedLogs-D8-yjxOI.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-CQ8tm8nY.js → vennDiagram-CIIHVFJN-DzhupKpF.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-DKg1J16d.js → wardley-L42UT6IY-BwWhS3dk.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DnqGz1sa.js → wardleyDiagram-YWT4CUSO-iG6xXnIJ.js} +1 -1
- package/dist/web/assets/{xml-YFMD1O7m.js → xml-Dn2Ep0JI.js} +1 -1
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-BTCVgq8k.js → xychartDiagram-2RQKCTM6-hgKK9aU8.js} +1 -1
- package/dist/web/assets/{yaml-pAIxoEG3.js → yaml-CA2Cgl3R.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/ConversationPage-Bd1WHiCB.js +0 -3
- package/dist/web/assets/CreateTaskInput-C9aO7QVE.js +0 -1
- package/dist/web/assets/channel-TREDjZBM.js +0 -1
- package/dist/web/assets/check-VbbiSgv8.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-C8tJPglt.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-C8tJPglt.js +0 -1
- package/dist/web/assets/index-CVgeXPf_.css +0 -1
- package/dist/web/assets/javascript-BfysNn1k.js +0 -1
- package/dist/web/assets/mermaid-NOHMQCX5-Cc97ICqZ.js +0 -122
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-aOH6_7W_.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-driver.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/acp-driver.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"acp-driver.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/acp-driver.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAmCzB,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,mBAAmB;IAE1B,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;CAG1F"}
|
|
@@ -13,6 +13,13 @@ import { reconcileAcpHistoryEntries } from './history-reconciler.js';
|
|
|
13
13
|
import { AcpProjector } from './projector.js';
|
|
14
14
|
const CONNECT_TIMEOUT_MS = 15_000;
|
|
15
15
|
const MAX_SESSION_BOOTSTRAP_UPDATES = 1_000;
|
|
16
|
+
/**
|
|
17
|
+
* Debug-only instrumentation for the session/load ↔ reconcile path.
|
|
18
|
+
* Off by default; only logs, never changes behaviour.
|
|
19
|
+
* Enable with DEBUG_ACP_RECONCILE=true to measure how often `session/load`
|
|
20
|
+
* replay produces a whole-array `replace /entries` frame and how large it is.
|
|
21
|
+
*/
|
|
22
|
+
const DEBUG_ACP_RECONCILE = process.env.DEBUG_ACP_RECONCILE === 'true';
|
|
16
23
|
export class AcpRuntimeDriver {
|
|
17
24
|
type = RuntimeType.ACP;
|
|
18
25
|
async open(input, sink) {
|
|
@@ -563,13 +570,29 @@ class AcpDriverSession {
|
|
|
563
570
|
});
|
|
564
571
|
for (const update of updates)
|
|
565
572
|
replayProjector.project(update);
|
|
566
|
-
const
|
|
567
|
-
|
|
573
|
+
const sessionRef = this.currentExternalSessionId ?? 'unknown';
|
|
574
|
+
// Hoisted so the debug branch never adds an extra getSnapshot() replay.
|
|
575
|
+
const localEntries = turn.msgStore.getSnapshot().entries;
|
|
576
|
+
const replayedEntries = replayStore.getSnapshot().entries;
|
|
577
|
+
const localEntryCount = localEntries.length;
|
|
578
|
+
const replayedEntryCount = replayedEntries.length;
|
|
579
|
+
const mergedEntries = reconcileAcpHistoryEntries(localEntries, replayedEntries, { historyBoundaryEntryId: turn.historyBoundaryEntryId });
|
|
580
|
+
if (!mergedEntries) {
|
|
581
|
+
if (DEBUG_ACP_RECONCILE) {
|
|
582
|
+
console.log(`[AcpRuntimeDriver:reconcile] externalSessionId=${sessionRef} resumeMode=load action=skip(no-change) `
|
|
583
|
+
+ `replayUpdates=${updates.length} localEntries=${localEntryCount} replayedEntries=${replayedEntryCount}`);
|
|
584
|
+
}
|
|
568
585
|
return;
|
|
586
|
+
}
|
|
569
587
|
const patch = [{ op: 'replace', path: '/entries', value: mergedEntries }];
|
|
570
588
|
turn.msgStore.entryIndex.startFrom(mergedEntries.length);
|
|
571
589
|
const seq = turn.msgStore.pushPatch(patch);
|
|
572
590
|
sink.stream({ type: 'conversation_patch', patch, seq });
|
|
591
|
+
if (DEBUG_ACP_RECONCILE) {
|
|
592
|
+
console.log(`[AcpRuntimeDriver:reconcile] externalSessionId=${sessionRef} resumeMode=load action=replace-all-entries `
|
|
593
|
+
+ `replayUpdates=${updates.length} localEntries=${localEntryCount} replayedEntries=${replayedEntryCount} `
|
|
594
|
+
+ `mergedEntries=${mergedEntries.length} frameBytes=${JSON.stringify(patch).length} seq=${seq}`);
|
|
595
|
+
}
|
|
573
596
|
}
|
|
574
597
|
handlePermission(params, signal) {
|
|
575
598
|
const sink = this.currentSink;
|
|
@@ -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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"}
|
|
@@ -77,5 +77,34 @@ describe('MemberHeartbeatScheduler queue pump', () => {
|
|
|
77
77
|
expect(queuePump.reconcileQueuedWork).toHaveBeenCalledTimes(2);
|
|
78
78
|
scheduler.stop();
|
|
79
79
|
});
|
|
80
|
+
it('continues the remaining stages when one stage hangs past its timeout', async () => {
|
|
81
|
+
vi.spyOn(console, 'error').mockImplementation(() => undefined);
|
|
82
|
+
const reconciler = {
|
|
83
|
+
reconcilePendingRuntimeCleanup: vi.fn(() => new Promise(() => undefined)),
|
|
84
|
+
reconcileOrphanInvocations: vi.fn(async () => undefined),
|
|
85
|
+
reconcileIncompleteTerminalInvocations: vi.fn(async () => undefined),
|
|
86
|
+
reconcileStalledInvocations: vi.fn(async () => undefined),
|
|
87
|
+
reconcileDueRoomReplyReminders: vi.fn(async () => 0),
|
|
88
|
+
};
|
|
89
|
+
const queuePump = {
|
|
90
|
+
reconcileQueuedWork: vi.fn(async () => 0),
|
|
91
|
+
};
|
|
92
|
+
const scheduler = new MemberHeartbeatScheduler({
|
|
93
|
+
eventBus: {},
|
|
94
|
+
sessionManager: {},
|
|
95
|
+
reconciler,
|
|
96
|
+
queuePump,
|
|
97
|
+
tickIntervalMs: 30_000,
|
|
98
|
+
stageTimeoutMs: 5_000,
|
|
99
|
+
});
|
|
100
|
+
scheduler.start();
|
|
101
|
+
await vi.advanceTimersByTimeAsync(15_000);
|
|
102
|
+
expect(reconciler.reconcileOrphanInvocations).toHaveBeenCalledTimes(1);
|
|
103
|
+
expect(reconciler.reconcileIncompleteTerminalInvocations).toHaveBeenCalledTimes(1);
|
|
104
|
+
expect(reconciler.reconcileStalledInvocations).toHaveBeenCalledTimes(1);
|
|
105
|
+
expect(reconciler.reconcileDueRoomReplyReminders).toHaveBeenCalledTimes(1);
|
|
106
|
+
expect(queuePump.reconcileQueuedWork).toHaveBeenCalledTimes(1);
|
|
107
|
+
scheduler.stop();
|
|
108
|
+
});
|
|
80
109
|
});
|
|
81
110
|
//# sourceMappingURL=member-heartbeat-scheduler.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-heartbeat-scheduler.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/member-heartbeat-scheduler.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"member-heartbeat-scheduler.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/member-heartbeat-scheduler.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-member-admission-barrier.test.d.ts","sourceRoot":"","sources":["../../../src/services/__tests__/team-member-admission-barrier.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { acquireTeamMemberAdmission, MemberAdmissionBusyError, } from '../team-member-admission-barrier.js';
|
|
3
|
+
describe('team member admission barrier', () => {
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
vi.restoreAllMocks();
|
|
6
|
+
vi.useRealTimers();
|
|
7
|
+
});
|
|
8
|
+
it('fails fast with MEMBER_ADMISSION_BUSY instead of waiting on a stuck owner', async () => {
|
|
9
|
+
const teamRunId = 'run-busy';
|
|
10
|
+
const memberId = 'member-busy';
|
|
11
|
+
const releaseStuckOwner = await acquireTeamMemberAdmission(teamRunId, memberId, {
|
|
12
|
+
holder: 'stuck-owner',
|
|
13
|
+
});
|
|
14
|
+
await expect(acquireTeamMemberAdmission(teamRunId, memberId, { holder: 'stopMemberWork', timeoutMs: 20 })).rejects.toMatchObject({
|
|
15
|
+
name: 'MemberAdmissionBusyError',
|
|
16
|
+
code: 'MEMBER_ADMISSION_BUSY',
|
|
17
|
+
statusCode: 409,
|
|
18
|
+
holderLabel: 'stuck-owner',
|
|
19
|
+
});
|
|
20
|
+
// A fail-fast waiter must never force-release the real owner: the member
|
|
21
|
+
// still cannot start a second concurrent session.
|
|
22
|
+
await expect(acquireTeamMemberAdmission(teamRunId, memberId, { timeoutMs: 10 })).rejects.toBeInstanceOf(MemberAdmissionBusyError);
|
|
23
|
+
releaseStuckOwner();
|
|
24
|
+
});
|
|
25
|
+
it('passes an abandoned waiter slot through without breaking exclusivity', async () => {
|
|
26
|
+
const teamRunId = 'run-chain';
|
|
27
|
+
const memberId = 'member-chain';
|
|
28
|
+
const releaseHolder = await acquireTeamMemberAdmission(teamRunId, memberId, { holder: 'holder' });
|
|
29
|
+
await expect(acquireTeamMemberAdmission(teamRunId, memberId, { timeoutMs: 20 })).rejects.toBeInstanceOf(MemberAdmissionBusyError);
|
|
30
|
+
let secondAcquired = false;
|
|
31
|
+
const second = acquireTeamMemberAdmission(teamRunId, memberId, { holder: 'second' }).then((release) => {
|
|
32
|
+
secondAcquired = true;
|
|
33
|
+
return release;
|
|
34
|
+
});
|
|
35
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
36
|
+
expect(secondAcquired).toBe(false);
|
|
37
|
+
releaseHolder();
|
|
38
|
+
const releaseSecond = await second;
|
|
39
|
+
expect(secondAcquired).toBe(true);
|
|
40
|
+
releaseSecond();
|
|
41
|
+
});
|
|
42
|
+
it('warns when a labeled holder keeps the barrier beyond the hold threshold', async () => {
|
|
43
|
+
vi.useFakeTimers();
|
|
44
|
+
const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
|
|
45
|
+
const release = await acquireTeamMemberAdmission('run-warn', 'member-warn', { holder: 'slow-owner' });
|
|
46
|
+
await vi.advanceTimersByTimeAsync(60_000);
|
|
47
|
+
expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining("held by 'slow-owner'"));
|
|
48
|
+
release();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=team-member-admission-barrier.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-member-admission-barrier.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/team-member-admission-barrier.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1602,6 +1602,121 @@ describe('TeamReconcilerService', () => {
|
|
|
1602
1602
|
expect(messenger.sendMessage).toHaveBeenCalledWith(invocation.sessionId, TEAM_ROOM_REPLY_REMINDER, undefined, invocation.id);
|
|
1603
1603
|
expect(scheduler.releaseInvocationLocks).not.toHaveBeenCalled();
|
|
1604
1604
|
});
|
|
1605
|
+
it('sends the room reply reminder only after releasing member admission', async () => {
|
|
1606
|
+
const { workspace, teamRun, members } = await createFixture();
|
|
1607
|
+
const request = await createWorkRequest({ teamRunId: teamRun.id, targetMemberId: members[0].id });
|
|
1608
|
+
const invocation = await createRunningInvocation({
|
|
1609
|
+
teamRunId: teamRun.id,
|
|
1610
|
+
workRequestId: request.id,
|
|
1611
|
+
memberId: members[0].id,
|
|
1612
|
+
workspaceId: workspace.id,
|
|
1613
|
+
});
|
|
1614
|
+
// The production messenger is SessionManager, whose sendMessage acquires the
|
|
1615
|
+
// same per-member barrier. A mock that skips the barrier keeps this path
|
|
1616
|
+
// green while the real wiring self-deadlocks.
|
|
1617
|
+
const sendMessage = vi.fn(async () => {
|
|
1618
|
+
const release = await acquireTeamMemberAdmission(teamRun.id, members[0].id);
|
|
1619
|
+
release();
|
|
1620
|
+
return null;
|
|
1621
|
+
});
|
|
1622
|
+
const lockedService = new TeamReconcilerService({
|
|
1623
|
+
scheduler,
|
|
1624
|
+
sessionMessenger: { sendMessage },
|
|
1625
|
+
eventBus,
|
|
1626
|
+
now: () => new Date(Date.UTC(2026, 0, 1, 0, 0, 0)),
|
|
1627
|
+
scheduleReminders: false,
|
|
1628
|
+
});
|
|
1629
|
+
const outcome = await Promise.race([
|
|
1630
|
+
lockedService.handleSessionExit(invocation.sessionId),
|
|
1631
|
+
new Promise((resolve) => setTimeout(() => resolve('TIMEOUT'), 1_000)),
|
|
1632
|
+
]);
|
|
1633
|
+
expect(outcome).toBe(true);
|
|
1634
|
+
expect(sendMessage).toHaveBeenCalledWith(invocation.sessionId, TEAM_ROOM_REPLY_REMINDER, undefined, invocation.id);
|
|
1635
|
+
await expect(prisma.agentInvocation.findUniqueOrThrow({ where: { id: invocation.id } })).resolves.toMatchObject({
|
|
1636
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1637
|
+
roomReplyReminderCount: 1,
|
|
1638
|
+
});
|
|
1639
|
+
});
|
|
1640
|
+
it('keeps reminding a waiting invocation whose session completed its turn normally', async () => {
|
|
1641
|
+
const { workspace, teamRun, members } = await createFixture();
|
|
1642
|
+
const request = await createWorkRequest({ teamRunId: teamRun.id, targetMemberId: members[0].id });
|
|
1643
|
+
const invocation = await createRunningInvocation({
|
|
1644
|
+
teamRunId: teamRun.id,
|
|
1645
|
+
workRequestId: request.id,
|
|
1646
|
+
memberId: members[0].id,
|
|
1647
|
+
workspaceId: workspace.id,
|
|
1648
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1649
|
+
roomReplyReminderCount: 1,
|
|
1650
|
+
});
|
|
1651
|
+
await prisma.agentInvocation.update({
|
|
1652
|
+
where: { id: invocation.id },
|
|
1653
|
+
data: { nextRoomReplyReminderAt: new Date(0) },
|
|
1654
|
+
});
|
|
1655
|
+
await service.reconcileDueRoomReplyReminders();
|
|
1656
|
+
await expect(prisma.agentInvocation.findUniqueOrThrow({ where: { id: invocation.id } })).resolves.toMatchObject({
|
|
1657
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1658
|
+
roomReplyReminderCount: 2,
|
|
1659
|
+
});
|
|
1660
|
+
expect(messenger.sendMessage).toHaveBeenCalledWith(invocation.sessionId, TEAM_ROOM_REPLY_REMINDER, undefined, invocation.id);
|
|
1661
|
+
});
|
|
1662
|
+
it('fails a waiting invocation immediately when its session died abnormally', async () => {
|
|
1663
|
+
const { workspace, teamRun, members } = await createFixture();
|
|
1664
|
+
const request = await createWorkRequest({ teamRunId: teamRun.id, targetMemberId: members[0].id });
|
|
1665
|
+
const invocation = await createRunningInvocation({
|
|
1666
|
+
teamRunId: teamRun.id,
|
|
1667
|
+
workRequestId: request.id,
|
|
1668
|
+
memberId: members[0].id,
|
|
1669
|
+
workspaceId: workspace.id,
|
|
1670
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1671
|
+
roomReplyReminderCount: 1,
|
|
1672
|
+
});
|
|
1673
|
+
await prisma.session.update({ where: { id: invocation.sessionId }, data: { status: 'FAILED' } });
|
|
1674
|
+
await prisma.agentInvocation.update({
|
|
1675
|
+
where: { id: invocation.id },
|
|
1676
|
+
data: { nextRoomReplyReminderAt: new Date(0) },
|
|
1677
|
+
});
|
|
1678
|
+
expect(lockService.acquire(invocation.id, ['workspace:task:write'])).toBe(true);
|
|
1679
|
+
await service.reconcileDueRoomReplyReminders();
|
|
1680
|
+
await expect(prisma.agentInvocation.findUniqueOrThrow({ where: { id: invocation.id } })).resolves.toMatchObject({
|
|
1681
|
+
status: 'FAILED',
|
|
1682
|
+
roomReplyReminderCount: 0,
|
|
1683
|
+
nextRoomReplyReminderAt: null,
|
|
1684
|
+
});
|
|
1685
|
+
await expect(prisma.workRequest.findUniqueOrThrow({ where: { id: request.id } })).resolves.toMatchObject({
|
|
1686
|
+
status: 'FAILED',
|
|
1687
|
+
});
|
|
1688
|
+
expect(scheduler.releaseInvocationLocks).toHaveBeenCalledWith(invocation.id);
|
|
1689
|
+
expect(messenger.sendMessage).not.toHaveBeenCalled();
|
|
1690
|
+
});
|
|
1691
|
+
it('leaves a healthy WAITING_ROOM_REPLY invocation alone on the startup scan', async () => {
|
|
1692
|
+
const { workspace, teamRun, members } = await createFixture();
|
|
1693
|
+
const request = await createWorkRequest({ teamRunId: teamRun.id, targetMemberId: members[0].id });
|
|
1694
|
+
const invocation = await createRunningInvocation({
|
|
1695
|
+
teamRunId: teamRun.id,
|
|
1696
|
+
workRequestId: request.id,
|
|
1697
|
+
memberId: members[0].id,
|
|
1698
|
+
workspaceId: workspace.id,
|
|
1699
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1700
|
+
roomReplyReminderCount: 1,
|
|
1701
|
+
});
|
|
1702
|
+
// The fixture session finished normally (COMPLETED) and its cleanup is
|
|
1703
|
+
// confirmed, which is also true of a crashed one; only the status list can
|
|
1704
|
+
// keep the orphan scan from failing this legal follow-up state.
|
|
1705
|
+
await prisma.agentInvocation.update({
|
|
1706
|
+
where: { id: invocation.id },
|
|
1707
|
+
data: { nextRoomReplyReminderAt: new Date(Date.UTC(2030, 0, 1)) },
|
|
1708
|
+
});
|
|
1709
|
+
expect(lockService.acquire(invocation.id, ['workspace:task:write'])).toBe(true);
|
|
1710
|
+
await service.reconcileOrphanInvocations();
|
|
1711
|
+
await expect(prisma.agentInvocation.findUniqueOrThrow({ where: { id: invocation.id } })).resolves.toMatchObject({
|
|
1712
|
+
status: 'WAITING_ROOM_REPLY',
|
|
1713
|
+
nextRoomReplyReminderAt: new Date(Date.UTC(2030, 0, 1)),
|
|
1714
|
+
});
|
|
1715
|
+
await expect(prisma.workRequest.findUniqueOrThrow({ where: { id: request.id } })).resolves.toMatchObject({
|
|
1716
|
+
status: 'STARTED',
|
|
1717
|
+
});
|
|
1718
|
+
expect(scheduler.releaseInvocationLocks).not.toHaveBeenCalledWith(invocation.id);
|
|
1719
|
+
});
|
|
1605
1720
|
it('ignores forged non-agent RoomMessages with senderInvocationId during reconcile', async () => {
|
|
1606
1721
|
const { workspace, teamRun, members } = await createFixture();
|
|
1607
1722
|
const request = await createWorkRequest({ teamRunId: teamRun.id, targetMemberId: members[0].id });
|