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.
Files changed (150) hide show
  1. package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
  2. package/dist/runtime/acp/acp-driver.js +25 -2
  3. package/dist/runtime/acp/acp-driver.js.map +1 -1
  4. package/dist/services/__tests__/member-heartbeat-scheduler.test.js +29 -0
  5. package/dist/services/__tests__/member-heartbeat-scheduler.test.js.map +1 -1
  6. package/dist/services/__tests__/team-member-admission-barrier.test.d.ts +2 -0
  7. package/dist/services/__tests__/team-member-admission-barrier.test.d.ts.map +1 -0
  8. package/dist/services/__tests__/team-member-admission-barrier.test.js +51 -0
  9. package/dist/services/__tests__/team-member-admission-barrier.test.js.map +1 -0
  10. package/dist/services/__tests__/team-reconciler.service.test.js +115 -0
  11. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  12. package/dist/services/__tests__/team-scheduler.service.test.js +87 -0
  13. package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
  14. package/dist/services/member-heartbeat-scheduler.d.ts +11 -0
  15. package/dist/services/member-heartbeat-scheduler.d.ts.map +1 -1
  16. package/dist/services/member-heartbeat-scheduler.js +31 -2
  17. package/dist/services/member-heartbeat-scheduler.js.map +1 -1
  18. package/dist/services/session-manager.d.ts.map +1 -1
  19. package/dist/services/session-manager.js +1 -1
  20. package/dist/services/session-manager.js.map +1 -1
  21. package/dist/services/team-member-admission-barrier.d.ts +23 -1
  22. package/dist/services/team-member-admission-barrier.d.ts.map +1 -1
  23. package/dist/services/team-member-admission-barrier.js +68 -2
  24. package/dist/services/team-member-admission-barrier.js.map +1 -1
  25. package/dist/services/team-reconciler.service.d.ts +20 -2
  26. package/dist/services/team-reconciler.service.d.ts.map +1 -1
  27. package/dist/services/team-reconciler.service.js +112 -20
  28. package/dist/services/team-reconciler.service.js.map +1 -1
  29. package/dist/services/team-scheduler.service.d.ts +7 -0
  30. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  31. package/dist/services/team-scheduler.service.js +15 -5
  32. package/dist/services/team-scheduler.service.js.map +1 -1
  33. package/dist/web/assets/{AgentDemoPage-Cb99MrCc.js → AgentDemoPage-DP9u0ylA.js} +1 -1
  34. package/dist/web/assets/{AgentEnvironmentSettingsPage-ebCjwkrN.js → AgentEnvironmentSettingsPage-B571SLF5.js} +1 -1
  35. package/dist/web/assets/{AgentLogo-DonTQxM9.js → AgentLogo-VGcaaJum.js} +1 -1
  36. package/dist/web/assets/ConversationPage-CbMlQ5UC.js +3 -0
  37. package/dist/web/assets/CreateTaskInput-kkWy5nmc.js +1 -0
  38. package/dist/web/assets/{DemoPage-Bgivi3Ks.js → DemoPage-CpMV8Rv7.js} +1 -1
  39. package/dist/web/assets/{GeneralSettingsPage-DvMYB2cP.js → GeneralSettingsPage-BvME4SJc.js} +1 -1
  40. package/dist/web/assets/{Icons-CjfPc49M.js → Icons-DXzgw2xT.js} +1 -1
  41. package/dist/web/assets/{LoadingPreviewPage-CYzE_rah.js → LoadingPreviewPage-D6OzaV9-.js} +1 -1
  42. package/dist/web/assets/{McpSettingsPage-D5OEjiw4.js → McpSettingsPage-CCWuZ-IU.js} +1 -1
  43. package/dist/web/assets/{MemberAvatar-CK6Kg4RE.js → MemberAvatar-DeKYSBH9.js} +1 -1
  44. package/dist/web/assets/{NotificationSettingsPage-G7b4V0bX.js → NotificationSettingsPage-BOhJqIXv.js} +1 -1
  45. package/dist/web/assets/{ProfileSettingsPage-nKzInN5R.js → ProfileSettingsPage-BEMuDjhF.js} +1 -1
  46. package/dist/web/assets/{ProjectKanbanPage-BbRguX0a.js → ProjectKanbanPage-Ka243_RU.js} +5 -5
  47. package/dist/web/assets/{ProjectSettingsPage-B_uG_eME.js → ProjectSettingsPage-sE0Thu7d.js} +1 -1
  48. package/dist/web/assets/{ProviderSettingsPage-Yhr6QSK3.js → ProviderSettingsPage-BCXTXcbc.js} +1 -1
  49. package/dist/web/assets/{SettingsMasterDetail-fY_-qGyA.js → SettingsMasterDetail-DmqYixrL.js} +1 -1
  50. package/dist/web/assets/{TeamSettingsPage-C3bS2GiK.js → TeamSettingsPage-Dxk7-1fD.js} +1 -1
  51. package/dist/web/assets/{arc-BO0W2mHj.js → arc-Bl7tPfS7.js} +1 -1
  52. package/dist/web/assets/{architectureDiagram-3BPJPVTR-C3cEkBBe.js → architectureDiagram-3BPJPVTR-CoP7qomY.js} +1 -1
  53. package/dist/web/assets/{arrow-left-KfI6LIDH.js → arrow-left-4_9exfZH.js} +1 -1
  54. package/dist/web/assets/{blockDiagram-GPEHLZMM-DWXMs31a.js → blockDiagram-GPEHLZMM-Dyj3wCtX.js} +1 -1
  55. package/dist/web/assets/{c4Diagram-AAUBKEIU-Br4Xlw_Z.js → c4Diagram-AAUBKEIU-BHpYwHH5.js} +1 -1
  56. package/dist/web/assets/channel-D6ei4By-.js +1 -0
  57. package/dist/web/assets/check-CIGH6GLr.js +1 -0
  58. package/dist/web/assets/{chevron-down-BeBVnkqU.js → chevron-down-B8PIP1yU.js} +1 -1
  59. package/dist/web/assets/{chevron-right-Q1Dgt2I3.js → chevron-right-h-JkCAHM.js} +1 -1
  60. package/dist/web/assets/{chevron-up-D2HXcF3G.js → chevron-up-C5SQd6qy.js} +1 -1
  61. package/dist/web/assets/{chunk-2J33WTMH-BX5SFZtu.js → chunk-2J33WTMH--mm3IA_q.js} +1 -1
  62. package/dist/web/assets/{chunk-4BX2VUAB-CQvYESAm.js → chunk-4BX2VUAB-DSTjg6vT.js} +1 -1
  63. package/dist/web/assets/{chunk-55IACEB6-D9YFdDf3.js → chunk-55IACEB6-BMI8DRl6.js} +1 -1
  64. package/dist/web/assets/{chunk-727SXJPM-BUCrEURW.js → chunk-727SXJPM-DB6yt8nI.js} +1 -1
  65. package/dist/web/assets/{chunk-AQP2D5EJ-C8ERMAty.js → chunk-AQP2D5EJ-BMFO2BIQ.js} +1 -1
  66. package/dist/web/assets/{chunk-FMBD7UC4-CzEZabFM.js → chunk-FMBD7UC4-BWW53Tgv.js} +1 -1
  67. package/dist/web/assets/{chunk-ND2GUHAM-Dw35tn0f.js → chunk-ND2GUHAM-3Q1rz4Rn.js} +1 -1
  68. package/dist/web/assets/{chunk-QZHKN3VN-CR7z6_1v.js → chunk-QZHKN3VN-DHZfBhTv.js} +1 -1
  69. package/dist/web/assets/{circle-alert-Dwtt3OAP.js → circle-alert-B2WJJFVc.js} +1 -1
  70. package/dist/web/assets/classDiagram-4FO5ZUOK-Dy0gEbpJ.js +1 -0
  71. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Dy0gEbpJ.js +1 -0
  72. package/dist/web/assets/{code-block-OCS4YCEC-CAzJ3mQn.js → code-block-OCS4YCEC-DAvNvPo_.js} +1 -1
  73. package/dist/web/assets/{confirm-dialog-BcfJ2Xus.js → confirm-dialog-59aNupkb.js} +1 -1
  74. package/dist/web/assets/{cose-bilkent-S5V4N54A-CUXR9dk3.js → cose-bilkent-S5V4N54A-BkBXPAOW.js} +1 -1
  75. package/dist/web/assets/{cssMode-BpC8I4Ek.js → cssMode-r4PsUEeI.js} +1 -1
  76. package/dist/web/assets/{dagre-BM42HDAG-Dhy7S5s1.js → dagre-BM42HDAG-0o3tAN58.js} +1 -1
  77. package/dist/web/assets/{diagram-2AECGRRQ-DIR5PGZF.js → diagram-2AECGRRQ-BaozWVAC.js} +1 -1
  78. package/dist/web/assets/{diagram-5GNKFQAL-DzXKfh_N.js → diagram-5GNKFQAL-BQGxsEX-.js} +1 -1
  79. package/dist/web/assets/{diagram-KO2AKTUF-us7dQ7xA.js → diagram-KO2AKTUF-BhOfCrvE.js} +1 -1
  80. package/dist/web/assets/{diagram-LMA3HP47-BjK9ExKN.js → diagram-LMA3HP47-1C0Ajian.js} +1 -1
  81. package/dist/web/assets/{diagram-OG6HWLK6-BTx88v4L.js → diagram-OG6HWLK6-BZsvylQi.js} +1 -1
  82. package/dist/web/assets/{erDiagram-TEJ5UH35-8rgd6uCk.js → erDiagram-TEJ5UH35-BODPoCQX.js} +1 -1
  83. package/dist/web/assets/{flowDiagram-I6XJVG4X-C47DsydX.js → flowDiagram-I6XJVG4X-B0BsMsro.js} +1 -1
  84. package/dist/web/assets/{folder-picker-NzVodD5j.js → folder-picker-B5RdK3CX.js} +1 -1
  85. package/dist/web/assets/{freemarker2-Gzu5EJMh.js → freemarker2-B62GnwxO.js} +1 -1
  86. package/dist/web/assets/{ganttDiagram-6RSMTGT7-B7qxtFDa.js → ganttDiagram-6RSMTGT7-BsXOoMru.js} +1 -1
  87. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DtXsV-rD.js → gitGraphDiagram-PVQCEYII-DVuq4oVA.js} +1 -1
  88. package/dist/web/assets/{handlebars-3Znn7m4J.js → handlebars-BBm4KBDp.js} +1 -1
  89. package/dist/web/assets/{html-Dgt18Ofs.js → html-BlMJourI.js} +1 -1
  90. package/dist/web/assets/{htmlMode-C2t1O0sW.js → htmlMode-vGjPTlal.js} +1 -1
  91. package/dist/web/assets/{index-BVh0eL1_.js → index-BziFEuBL.js} +4 -4
  92. package/dist/web/assets/{index--1agBpnq.js → index-DfRNL5pP.js} +4 -4
  93. package/dist/web/assets/index-KjsBZlkg.css +1 -0
  94. package/dist/web/assets/{infoDiagram-5YYISTIA-AQRMJJ6t.js → infoDiagram-5YYISTIA-CkI-s2fN.js} +1 -1
  95. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CTcfBywF.js → ishikawaDiagram-YF4QCWOH-DExbu0jt.js} +1 -1
  96. package/dist/web/assets/javascript-CnnNs3bZ.js +1 -0
  97. package/dist/web/assets/{journeyDiagram-JHISSGLW-CRv0PNLh.js → journeyDiagram-JHISSGLW-C03_8hib.js} +1 -1
  98. package/dist/web/assets/{jsonMode-DQPoQ9kR.js → jsonMode-SxmrKu-q.js} +1 -1
  99. package/dist/web/assets/{kanban-definition-UN3LZRKU-AcoPh0xh.js → kanban-definition-UN3LZRKU-CkQ5JqTm.js} +1 -1
  100. package/dist/web/assets/{layers-DePAliGw.js → layers-DVjF8vaY.js} +1 -1
  101. package/dist/web/assets/{linear-GlxaBVoM.js → linear-VXyesiU2.js} +1 -1
  102. package/dist/web/assets/{liquid-Dr6EmgCe.js → liquid-B_CJMcDS.js} +1 -1
  103. package/dist/web/assets/{lspLanguageFeatures-DN91604C.js → lspLanguageFeatures-D46XQnYj.js} +1 -1
  104. package/dist/web/assets/{mdx-JG8OT2YG.js → mdx-B2i6poYS.js} +1 -1
  105. package/dist/web/assets/mermaid-NOHMQCX5-Cxj8y3xL.js +125 -0
  106. package/dist/web/assets/{message-square-DWgJpKCx.js → message-square-BleDaJqD.js} +1 -1
  107. package/dist/web/assets/{mindmap-definition-RKZ34NQL-DGrhHpUO.js → mindmap-definition-RKZ34NQL-OB13sryT.js} +1 -1
  108. package/dist/web/assets/{modal-CORyqdln.js → modal-DCycqy3L.js} +1 -1
  109. package/dist/web/assets/{monaco-ORn-kQwM.js → monaco-C5uCiSc1.js} +3 -3
  110. package/dist/web/assets/{pencil-B1BeYe1f.js → pencil-7Lu7CiFO.js} +1 -1
  111. package/dist/web/assets/{pieDiagram-4H26LBE5-BX2kHm8X.js → pieDiagram-4H26LBE5-CU-pnTSj.js} +1 -1
  112. package/dist/web/assets/{python-v-kAqpdQ.js → python-CdqaVxbU.js} +1 -1
  113. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D8kpdSHK.js → quadrantDiagram-W4KKPZXB-yZ7s-n8V.js} +1 -1
  114. package/dist/web/assets/{razor-1mzCjQ7_.js → razor-BZtfxDHk.js} +1 -1
  115. package/dist/web/assets/{requirementDiagram-4Y6WPE33-BeCKrFYk.js → requirementDiagram-4Y6WPE33-B0anLb96.js} +1 -1
  116. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-BhppOHK-.js → sankeyDiagram-5OEKKPKP-DHcV9eve.js} +1 -1
  117. package/dist/web/assets/{select-C0_GwcaL.js → select-EnAkHFwg.js} +1 -1
  118. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-kd48NbrY.js → sequenceDiagram-3UESZ5HK-DqgRRD9W.js} +1 -1
  119. package/dist/web/assets/{server-ezmEd1Bn.js → server-a_4ZRCwE.js} +1 -1
  120. package/dist/web/assets/{stateDiagram-AJRCARHV-BVEJJ862.js → stateDiagram-AJRCARHV-BM_vAe4X.js} +1 -1
  121. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DXSW0BBn.js +1 -0
  122. package/dist/web/assets/{switch-DTs2bsdf.js → switch-D_UoJD1K.js} +1 -1
  123. package/dist/web/assets/{textarea-DDugro1C.js → textarea-Cmy7-X_E.js} +1 -1
  124. package/dist/web/assets/{timeline-definition-PNZ67QCA-DSTFfNuv.js → timeline-definition-PNZ67QCA-BRstBzgi.js} +1 -1
  125. package/dist/web/assets/{trash-2-0qxC5GZF.js → trash-2-0UA8zJ8I.js} +1 -1
  126. package/dist/web/assets/{tsMode-BiIcawoi.js → tsMode-BASXySxT.js} +1 -1
  127. package/dist/web/assets/{typescript-ChINO0ge.js → typescript-DbOfWuuq.js} +1 -1
  128. package/dist/web/assets/{upload-Bvn4pVZf.js → upload-CfzBeWxL.js} +1 -1
  129. package/dist/web/assets/{use-profiles-DQpUUzXs.js → use-profiles-MVQfFrhT.js} +1 -1
  130. package/dist/web/assets/{use-projects-BQB2BPEN.js → use-projects-CJ8Wn6Xl.js} +1 -1
  131. package/dist/web/assets/{use-providers--I6m_J5h.js → use-providers-DvV0mdqo.js} +1 -1
  132. package/dist/web/assets/{useNormalizedLogs-BB31QSMo.js → useNormalizedLogs-D8-yjxOI.js} +1 -1
  133. package/dist/web/assets/{vennDiagram-CIIHVFJN-CQ8tm8nY.js → vennDiagram-CIIHVFJN-DzhupKpF.js} +1 -1
  134. package/dist/web/assets/{wardley-L42UT6IY-DKg1J16d.js → wardley-L42UT6IY-BwWhS3dk.js} +1 -1
  135. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DnqGz1sa.js → wardleyDiagram-YWT4CUSO-iG6xXnIJ.js} +1 -1
  136. package/dist/web/assets/{xml-YFMD1O7m.js → xml-Dn2Ep0JI.js} +1 -1
  137. package/dist/web/assets/{xychartDiagram-2RQKCTM6-BTCVgq8k.js → xychartDiagram-2RQKCTM6-hgKK9aU8.js} +1 -1
  138. package/dist/web/assets/{yaml-pAIxoEG3.js → yaml-CA2Cgl3R.js} +1 -1
  139. package/dist/web/index.html +2 -2
  140. package/package.json +1 -1
  141. package/dist/web/assets/ConversationPage-Bd1WHiCB.js +0 -3
  142. package/dist/web/assets/CreateTaskInput-C9aO7QVE.js +0 -1
  143. package/dist/web/assets/channel-TREDjZBM.js +0 -1
  144. package/dist/web/assets/check-VbbiSgv8.js +0 -1
  145. package/dist/web/assets/classDiagram-4FO5ZUOK-C8tJPglt.js +0 -1
  146. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-C8tJPglt.js +0 -1
  147. package/dist/web/assets/index-CVgeXPf_.css +0 -1
  148. package/dist/web/assets/javascript-BfysNn1k.js +0 -1
  149. package/dist/web/assets/mermaid-NOHMQCX5-Cc97ICqZ.js +0 -122
  150. 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;AA2BzB,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"}
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 mergedEntries = reconcileAcpHistoryEntries(turn.msgStore.getSnapshot().entries, replayStore.getSnapshot().entries, { historyBoundaryEntryId: turn.historyBoundaryEntryId });
567
- if (!mergedEntries)
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=team-member-admission-barrier.test.d.ts.map
@@ -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 });