agim-cli 1.2.107 → 1.2.109

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 (175) hide show
  1. package/CHANGELOG.md +60 -1
  2. package/dist/cli-ui/env-file.js +1 -1
  3. package/dist/cli-ui/env-file.js.map +1 -1
  4. package/dist/core/llm/agent-loop.d.ts +41 -0
  5. package/dist/core/llm/agent-loop.d.ts.map +1 -1
  6. package/dist/core/llm/agent-loop.js +231 -142
  7. package/dist/core/llm/agent-loop.js.map +1 -1
  8. package/dist/core/llm/mcp-client.d.ts +10 -0
  9. package/dist/core/llm/mcp-client.d.ts.map +1 -1
  10. package/dist/core/llm/mcp-client.js +35 -6
  11. package/dist/core/llm/mcp-client.js.map +1 -1
  12. package/dist/core/llm/mcp-registry.d.ts +4 -0
  13. package/dist/core/llm/mcp-registry.d.ts.map +1 -1
  14. package/dist/core/llm/mcp-registry.js +36 -10
  15. package/dist/core/llm/mcp-registry.js.map +1 -1
  16. package/dist/core/llm/openai-compat-provider.d.ts +28 -5
  17. package/dist/core/llm/openai-compat-provider.d.ts.map +1 -1
  18. package/dist/core/llm/openai-compat-provider.js +72 -12
  19. package/dist/core/llm/openai-compat-provider.js.map +1 -1
  20. package/dist/plugins/agents/native/index.d.ts.map +1 -1
  21. package/dist/plugins/agents/native/index.js +30 -0
  22. package/dist/plugins/agents/native/index.js.map +1 -1
  23. package/dist/web/public/assets/{a2a-DCgHD3C7.js → a2a-DjyqPnWh.js} +2 -2
  24. package/dist/web/public/assets/{a2a-DCgHD3C7.js.map → a2a-DjyqPnWh.js.map} +1 -1
  25. package/dist/web/public/assets/{activity-CqIdqoFx.js → activity-Dy3elxiH.js} +2 -2
  26. package/dist/web/public/assets/{activity-CqIdqoFx.js.map → activity-Dy3elxiH.js.map} +1 -1
  27. package/dist/web/public/assets/{admins-Cfm5YCFY.js → admins-p5qJnsCS.js} +2 -2
  28. package/dist/web/public/assets/{admins-Cfm5YCFY.js.map → admins-p5qJnsCS.js.map} +1 -1
  29. package/dist/web/public/assets/{agents-CXy1c3ml.js → agents-BK-LNF6u.js} +2 -2
  30. package/dist/web/public/assets/{agents-CXy1c3ml.js.map → agents-BK-LNF6u.js.map} +1 -1
  31. package/dist/web/public/assets/{approvals-DzfXTuHD.js → approvals-BR1f5zmP.js} +2 -2
  32. package/dist/web/public/assets/{approvals-DzfXTuHD.js.map → approvals-BR1f5zmP.js.map} +1 -1
  33. package/dist/web/public/assets/{asks-hv8KYkMv.js → asks-1MaTIfZO.js} +2 -2
  34. package/dist/web/public/assets/{asks-hv8KYkMv.js.map → asks-1MaTIfZO.js.map} +1 -1
  35. package/dist/web/public/assets/{audit-N2_Hb8ID.js → audit-jSgqqxdG.js} +2 -2
  36. package/dist/web/public/assets/{audit-N2_Hb8ID.js.map → audit-jSgqqxdG.js.map} +1 -1
  37. package/dist/web/public/assets/{bell-B2EC2Smm.js → bell-LeCqn72n.js} +2 -2
  38. package/dist/web/public/assets/{bell-B2EC2Smm.js.map → bell-LeCqn72n.js.map} +1 -1
  39. package/dist/web/public/assets/{bgjobs-Dnik8OzW.js → bgjobs-BPyKhOuq.js} +2 -2
  40. package/dist/web/public/assets/{bgjobs-Dnik8OzW.js.map → bgjobs-BPyKhOuq.js.map} +1 -1
  41. package/dist/web/public/assets/{brain-CBk_86fd.js → brain-CPuDSbdC.js} +2 -2
  42. package/dist/web/public/assets/{brain-CBk_86fd.js.map → brain-CPuDSbdC.js.map} +1 -1
  43. package/dist/web/public/assets/{briefcase-BqvjWo9V.js → briefcase-Ck3PTo9z.js} +2 -2
  44. package/dist/web/public/assets/{briefcase-BqvjWo9V.js.map → briefcase-Ck3PTo9z.js.map} +1 -1
  45. package/dist/web/public/assets/{chevron-right-JI5zm1vU.js → chevron-right-CNLUFBr6.js} +2 -2
  46. package/dist/web/public/assets/{chevron-right-JI5zm1vU.js.map → chevron-right-CNLUFBr6.js.map} +1 -1
  47. package/dist/web/public/assets/{circle-check-BoARt50L.js → circle-check-CsSqoqeq.js} +2 -2
  48. package/dist/web/public/assets/{circle-check-BoARt50L.js.map → circle-check-CsSqoqeq.js.map} +1 -1
  49. package/dist/web/public/assets/{circle-check-big-DElVlKvH.js → circle-check-big-NZvva0KN.js} +2 -2
  50. package/dist/web/public/assets/{circle-check-big-DElVlKvH.js.map → circle-check-big-NZvva0KN.js.map} +1 -1
  51. package/dist/web/public/assets/{circle-x-DO-2tGgt.js → circle-x-CFWz6gEd.js} +2 -2
  52. package/dist/web/public/assets/{circle-x-DO-2tGgt.js.map → circle-x-CFWz6gEd.js.map} +1 -1
  53. package/dist/web/public/assets/{confirm-dialog-WAkeu7Va.js → confirm-dialog-DgO--07o.js} +2 -2
  54. package/dist/web/public/assets/{confirm-dialog-WAkeu7Va.js.map → confirm-dialog-DgO--07o.js.map} +1 -1
  55. package/dist/web/public/assets/{data-table-BXUgaJFG.js → data-table-D-Zgmc4f.js} +2 -2
  56. package/dist/web/public/assets/{data-table-BXUgaJFG.js.map → data-table-D-Zgmc4f.js.map} +1 -1
  57. package/dist/web/public/assets/{dialog-C1_Gr4a-.js → dialog-CQgpA4K2.js} +2 -2
  58. package/dist/web/public/assets/{dialog-C1_Gr4a-.js.map → dialog-CQgpA4K2.js.map} +1 -1
  59. package/dist/web/public/assets/{download-DaQMiRdc.js → download-DKzhn49i.js} +2 -2
  60. package/dist/web/public/assets/{download-DaQMiRdc.js.map → download-DKzhn49i.js.map} +1 -1
  61. package/dist/web/public/assets/{email-DaE3P0Pi.js → email-j2wp12wu.js} +2 -2
  62. package/dist/web/public/assets/{email-DaE3P0Pi.js.map → email-j2wp12wu.js.map} +1 -1
  63. package/dist/web/public/assets/{empty-state--wTr0nEY.js → empty-state-C_hR--ro.js} +2 -2
  64. package/dist/web/public/assets/{empty-state--wTr0nEY.js.map → empty-state-C_hR--ro.js.map} +1 -1
  65. package/dist/web/public/assets/{external-link-BMsOzlAO.js → external-link-CoqEoAcO.js} +2 -2
  66. package/dist/web/public/assets/{external-link-BMsOzlAO.js.map → external-link-CoqEoAcO.js.map} +1 -1
  67. package/dist/web/public/assets/{eye-DyUOG2VV.js → eye-CXOBz4Cl.js} +2 -2
  68. package/dist/web/public/assets/{eye-DyUOG2VV.js.map → eye-CXOBz4Cl.js.map} +1 -1
  69. package/dist/web/public/assets/{facts-BsU_itZp.js → facts-CJDnig7y.js} +2 -2
  70. package/dist/web/public/assets/{facts-BsU_itZp.js.map → facts-CJDnig7y.js.map} +1 -1
  71. package/dist/web/public/assets/{goals-D5MmIEKE.js → goals-D89OCyJN.js} +2 -2
  72. package/dist/web/public/assets/{goals-D5MmIEKE.js.map → goals-D89OCyJN.js.map} +1 -1
  73. package/dist/web/public/assets/{health-BHHdheFW.js → health-BQwZeXAS.js} +2 -2
  74. package/dist/web/public/assets/{health-BHHdheFW.js.map → health-BQwZeXAS.js.map} +1 -1
  75. package/dist/web/public/assets/{heart-pulse-CHnf3dk9.js → heart-pulse-BzJZEKl7.js} +2 -2
  76. package/dist/web/public/assets/{heart-pulse-CHnf3dk9.js.map → heart-pulse-BzJZEKl7.js.map} +1 -1
  77. package/dist/web/public/assets/{heartbeat-wKQjksPH.js → heartbeat-D4kJCmkw.js} +2 -2
  78. package/dist/web/public/assets/{heartbeat-wKQjksPH.js.map → heartbeat-D4kJCmkw.js.map} +1 -1
  79. package/dist/web/public/assets/{hot-BF4yOa64.js → hot-R6aOoPMY.js} +2 -2
  80. package/dist/web/public/assets/{hot-BF4yOa64.js.map → hot-R6aOoPMY.js.map} +1 -1
  81. package/dist/web/public/assets/{index-CUlfCXYW.js → index-DVf2XlVZ.js} +34 -34
  82. package/dist/web/public/assets/index-DVf2XlVZ.js.map +1 -0
  83. package/dist/web/public/assets/{installed-ChSSxLpe.js → installed-DSJ7AiMe.js} +2 -2
  84. package/dist/web/public/assets/{installed-ChSSxLpe.js.map → installed-DSJ7AiMe.js.map} +1 -1
  85. package/dist/web/public/assets/{jobs-Bl_FJXMV.js → jobs-CdVDgq8m.js} +2 -2
  86. package/dist/web/public/assets/{jobs-Bl_FJXMV.js.map → jobs-CdVDgq8m.js.map} +1 -1
  87. package/dist/web/public/assets/{layout-rdDZbKKf.js → layout-BKjENLxQ.js} +2 -2
  88. package/dist/web/public/assets/{layout-rdDZbKKf.js.map → layout-BKjENLxQ.js.map} +1 -1
  89. package/dist/web/public/assets/{layout-CTgw-R_J.js → layout-BLKq93Z4.js} +2 -2
  90. package/dist/web/public/assets/{layout-CTgw-R_J.js.map → layout-BLKq93Z4.js.map} +1 -1
  91. package/dist/web/public/assets/{layout-B4VFa896.js → layout-BqilVxGS.js} +2 -2
  92. package/dist/web/public/assets/{layout-B4VFa896.js.map → layout-BqilVxGS.js.map} +1 -1
  93. package/dist/web/public/assets/{layout-BnTMi2Vm.js → layout-CvmElCgO.js} +2 -2
  94. package/dist/web/public/assets/{layout-BnTMi2Vm.js.map → layout-CvmElCgO.js.map} +1 -1
  95. package/dist/web/public/assets/{layout-DNcGVE9i.js → layout-Dj03GsQJ.js} +2 -2
  96. package/dist/web/public/assets/{layout-DNcGVE9i.js.map → layout-Dj03GsQJ.js.map} +1 -1
  97. package/dist/web/public/assets/{llm-2BhcOCUt.js → llm-C5Uob7Ci.js} +2 -2
  98. package/dist/web/public/assets/{llm-2BhcOCUt.js.map → llm-C5Uob7Ci.js.map} +1 -1
  99. package/dist/web/public/assets/{loader-circle-BeeODmoF.js → loader-circle-DdWIiO8L.js} +2 -2
  100. package/dist/web/public/assets/{loader-circle-BeeODmoF.js.map → loader-circle-DdWIiO8L.js.map} +1 -1
  101. package/dist/web/public/assets/{map-pin-Bib-61c8.js → map-pin-kO-wD4fU.js} +2 -2
  102. package/dist/web/public/assets/{map-pin-Bib-61c8.js.map → map-pin-kO-wD4fU.js.map} +1 -1
  103. package/dist/web/public/assets/{mcp-RhWfVYQA.js → mcp-DL5oUQgm.js} +2 -2
  104. package/dist/web/public/assets/{mcp-RhWfVYQA.js.map → mcp-DL5oUQgm.js.map} +1 -1
  105. package/dist/web/public/assets/{memos-D0aauhFt.js → memos-Ab9Rp5v_.js} +2 -2
  106. package/dist/web/public/assets/{memos-D0aauhFt.js.map → memos-Ab9Rp5v_.js.map} +1 -1
  107. package/dist/web/public/assets/{messengers-BWqF9z0b.js → messengers-D0a8jlLw.js} +2 -2
  108. package/dist/web/public/assets/{messengers-BWqF9z0b.js.map → messengers-D0a8jlLw.js.map} +1 -1
  109. package/dist/web/public/assets/{native-agent-Be7FW740.js → native-agent-Bnz7Inoh.js} +2 -2
  110. package/dist/web/public/assets/{native-agent-Be7FW740.js.map → native-agent-Bnz7Inoh.js.map} +1 -1
  111. package/dist/web/public/assets/{network-CGq_PEku.js → network-BrQvlSjl.js} +2 -2
  112. package/dist/web/public/assets/{network-CGq_PEku.js.map → network-BrQvlSjl.js.map} +1 -1
  113. package/dist/web/public/assets/{outbox-B8raDIpY.js → outbox-BNDPAlVy.js} +2 -2
  114. package/dist/web/public/assets/{outbox-B8raDIpY.js.map → outbox-BNDPAlVy.js.map} +1 -1
  115. package/dist/web/public/assets/{pagination-BaOx4wBN.js → pagination-CyoXKAm9.js} +2 -2
  116. package/dist/web/public/assets/{pagination-BaOx4wBN.js.map → pagination-CyoXKAm9.js.map} +1 -1
  117. package/dist/web/public/assets/{persona-DfJOKp-G.js → persona-Bxqqj1yV.js} +2 -2
  118. package/dist/web/public/assets/{persona-DfJOKp-G.js.map → persona-Bxqqj1yV.js.map} +1 -1
  119. package/dist/web/public/assets/{play-Bn15ljVu.js → play-B7ZN5aFX.js} +2 -2
  120. package/dist/web/public/assets/{play-Bn15ljVu.js.map → play-B7ZN5aFX.js.map} +1 -1
  121. package/dist/web/public/assets/{plus-ta7et8lU.js → plus-DzvDGrh0.js} +2 -2
  122. package/dist/web/public/assets/{plus-ta7et8lU.js.map → plus-DzvDGrh0.js.map} +1 -1
  123. package/dist/web/public/assets/{policy-BIPMjtiz.js → policy-CSl5ENVs.js} +2 -2
  124. package/dist/web/public/assets/{policy-BIPMjtiz.js.map → policy-CSl5ENVs.js.map} +1 -1
  125. package/dist/web/public/assets/{refresh-ccw-CweZfxgw.js → refresh-ccw-B8Fzl2uq.js} +2 -2
  126. package/dist/web/public/assets/{refresh-ccw-CweZfxgw.js.map → refresh-ccw-B8Fzl2uq.js.map} +1 -1
  127. package/dist/web/public/assets/{reminders-uWllha6u.js → reminders-CmLd8DLt.js} +2 -2
  128. package/dist/web/public/assets/{reminders-uWllha6u.js.map → reminders-CmLd8DLt.js.map} +1 -1
  129. package/dist/web/public/assets/{save-BsDR6-4Z.js → save-JKib3YIn.js} +2 -2
  130. package/dist/web/public/assets/{save-BsDR6-4Z.js.map → save-JKib3YIn.js.map} +1 -1
  131. package/dist/web/public/assets/{schedules-COWq8_0O.js → schedules-B-770HIa.js} +2 -2
  132. package/dist/web/public/assets/{schedules-COWq8_0O.js.map → schedules-B-770HIa.js.map} +1 -1
  133. package/dist/web/public/assets/{search-COTgXLCn.js → search-Bc7OS8FB.js} +2 -2
  134. package/dist/web/public/assets/{search-COTgXLCn.js.map → search-Bc7OS8FB.js.map} +1 -1
  135. package/dist/web/public/assets/{security-BCuwv4RN.js → security-CD8INSD5.js} +2 -2
  136. package/dist/web/public/assets/{security-BCuwv4RN.js.map → security-CD8INSD5.js.map} +1 -1
  137. package/dist/web/public/assets/{service-6x5gzuKT.js → service-CFB2QfK6.js} +2 -2
  138. package/dist/web/public/assets/{service-6x5gzuKT.js.map → service-CFB2QfK6.js.map} +1 -1
  139. package/dist/web/public/assets/{status-badge-CiY-R4cR.js → status-badge---MleYSt.js} +2 -2
  140. package/dist/web/public/assets/{status-badge-CiY-R4cR.js.map → status-badge---MleYSt.js.map} +1 -1
  141. package/dist/web/public/assets/{subtasks-QTIxglPc.js → subtasks-CzToK_65.js} +2 -2
  142. package/dist/web/public/assets/{subtasks-QTIxglPc.js.map → subtasks-CzToK_65.js.map} +1 -1
  143. package/dist/web/public/assets/{table-BQd1FahX.js → table-Dg3N5NYh.js} +2 -2
  144. package/dist/web/public/assets/{table-BQd1FahX.js.map → table-Dg3N5NYh.js.map} +1 -1
  145. package/dist/web/public/assets/{topn-D7mnFIN8.js → topn-CePuMziu.js} +2 -2
  146. package/dist/web/public/assets/{topn-D7mnFIN8.js.map → topn-CePuMziu.js.map} +1 -1
  147. package/dist/web/public/assets/{trash-2-CqpK78qO.js → trash-2-LmyUghia.js} +2 -2
  148. package/dist/web/public/assets/{trash-2-CqpK78qO.js.map → trash-2-LmyUghia.js.map} +1 -1
  149. package/dist/web/public/assets/{use-background-tasks-E1AqQHuk.js → use-background-tasks-CmVigPtZ.js} +2 -2
  150. package/dist/web/public/assets/{use-background-tasks-E1AqQHuk.js.map → use-background-tasks-CmVigPtZ.js.map} +1 -1
  151. package/dist/web/public/assets/{use-llm-admin-C5j8A81P.js → use-llm-admin-D8Go_PKM.js} +2 -2
  152. package/dist/web/public/assets/{use-llm-admin-C5j8A81P.js.map → use-llm-admin-D8Go_PKM.js.map} +1 -1
  153. package/dist/web/public/assets/{use-memory-e4psRiYj.js → use-memory-BDuQTDX0.js} +2 -2
  154. package/dist/web/public/assets/{use-memory-e4psRiYj.js.map → use-memory-BDuQTDX0.js.map} +1 -1
  155. package/dist/web/public/assets/{use-observability-xdJotn0L.js → use-observability-CiO9A5Z9.js} +2 -2
  156. package/dist/web/public/assets/{use-observability-xdJotn0L.js.map → use-observability-CiO9A5Z9.js.map} +1 -1
  157. package/dist/web/public/assets/{use-settings-DbvYjLo8.js → use-settings-fG28ShvX.js} +2 -2
  158. package/dist/web/public/assets/{use-settings-DbvYjLo8.js.map → use-settings-fG28ShvX.js.map} +1 -1
  159. package/dist/web/public/assets/{use-workspace-CXkiS0Ho.js → use-workspace-CE3JTeap.js} +2 -2
  160. package/dist/web/public/assets/{use-workspace-CXkiS0Ho.js.map → use-workspace-CE3JTeap.js.map} +1 -1
  161. package/dist/web/public/assets/{useQuery-CPWNEU8n.js → useQuery-BtY7wSLM.js} +2 -2
  162. package/dist/web/public/assets/{useQuery-CPWNEU8n.js.map → useQuery-BtY7wSLM.js.map} +1 -1
  163. package/dist/web/public/assets/{vector-B52Da4cl.js → vector-CakzHMP0.js} +2 -2
  164. package/dist/web/public/assets/{vector-B52Da4cl.js.map → vector-CakzHMP0.js.map} +1 -1
  165. package/dist/web/public/assets/{viewer-Fr6DcgPb.js → viewer-DWOOXMMI.js} +2 -2
  166. package/dist/web/public/assets/{viewer-Fr6DcgPb.js.map → viewer-DWOOXMMI.js.map} +1 -1
  167. package/dist/web/public/assets/{workspace-B9SHz-uT.js → workspace-BnlWyXR1.js} +2 -2
  168. package/dist/web/public/assets/{workspace-B9SHz-uT.js.map → workspace-BnlWyXR1.js.map} +1 -1
  169. package/dist/web/public/assets/{workspaces-DNPDEzPP.js → workspaces-DTXat9Xq.js} +2 -2
  170. package/dist/web/public/assets/{workspaces-DNPDEzPP.js.map → workspaces-DTXat9Xq.js.map} +1 -1
  171. package/dist/web/public/assets/{x-DqRovlI4.js → x-BVwIUHdL.js} +2 -2
  172. package/dist/web/public/assets/{x-DqRovlI4.js.map → x-BVwIUHdL.js.map} +1 -1
  173. package/dist/web/public/index.html +1 -1
  174. package/package.json +1 -1
  175. package/dist/web/public/assets/index-CUlfCXYW.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../../src/core/llm/agent-loop.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,4CAA4C;AAC5C,kEAAkE;AAClE,mEAAmE;AACnE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,EAAE;AACF,0BAA0B;AAC1B,uDAAuD;AACvD,8DAA8D;AAC9D,qEAAqE;AACrE,oEAAoE;AACpE,kEAAkE;AAClE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,mEAAmE;AACnE,iEAAiE;AACjE,kEAAkE;AAClE,+BAA+B;AAE/B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAY/C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEnE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;AAEzD,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAE,+CAA+C;AAEzF,wEAAwE;AACxE,uEAAuE;AACvE,qEAAqE;AACrE,mEAAmE;AACnE,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAC/B,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAE1B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,OAAwB,IAAI,OAAO,EAAE;IACnF,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,OAAO,KAAK,KAAK,WAAW;QAAE,OAAO,MAAM,CAAA;IAC/C,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAA;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAe,CAAC;QAAE,OAAO,cAAc,CAAA;IACpD,IAAI,CAAC,GAAG,CAAC,KAAe,CAAC,CAAA;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACzE,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAA;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACpC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;AACvG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,IAAY;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACnF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,WAAW,CACzB,OAAsE;IAEtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;WACxC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;WAClD,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAA;AACjE,CAAC;AAgBD;;+BAE+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAiB,KAAK,IAAI,EAAE,CAAC,OAAO,CAAA;AAuJhE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAqB;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,sBAAsB,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/E,oEAAoE;IACpE,gEAAgE;IAChE,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAA;IACzD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe,CAAA;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAEnD,oDAAoD;IACpD,MAAM,OAAO,GAAiB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACpD,MAAM,SAAS,GAAqB,EAAE,CAAA;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,4EAA4E;IAC5E,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,yDAAyD;IACzD,IAAI,qBAAqB,GAAG,CAAC,CAAA;IAE7B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,IAAI;gBAChB,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,SAAS;aACxB,CAAA;QACH,CAAC;QAED,IAAI,MAAkB,CAAA;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1C,MAAM,EAAE,KAAK,CAAC,YAAY;gBAC1B,KAAK;gBACL,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS;gBACT,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK;gBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW;gBAC3C,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS;gBACvC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;aACxC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,4BAA4B;gBACnC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBAC5B,IAAI,EAAE,GAAG,EAAE,GAAG;aACf,CAAC,CAAA;YACF,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YACjD,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,IAAI,GAAG,CAAC;gBACpB,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,OAAO;gBACrB,KAAK,EAAE,GAAG;aACX,CAAA;QACH,CAAC;QAED,cAAc,CACZ,KAAK,CAAC,KAAK,EAAE,EAAE;QACf,gEAAgE;QAChE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACzD,MAAM,CAAC,IAAI,CAAC,MAAM,EAClB,IAAI,EACJ,SAAS,EACT,MAAM,CAAC,KAAK,CAAC,OAAO,CACrB,CAAA;QAED,0DAA0D;QAC1D,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7F,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU,EAAE,IAAI,GAAG,CAAC;gBACpB,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAA;QACH,CAAC;QAED,4DAA4D;QAC5D,kDAAkD;QAClD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,IAAI;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAA;QAEF,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,oEAAoE;QACpE,0DAA0D;QAC1D,oEAAoE;QACpE,gEAAgE;QAChE,+DAA+D;QAC/D,oCAAoC;QACpC,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAA;QAC5C,MAAM,YAAY,GAA6B,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5F,MAAM,WAAW,GAAiC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/F,MAAM,YAAY,GAAoB,EAAE,CAAA;QAExC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAK;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAE,CAAA;YAEnC,6DAA6D;YAC7D,6DAA6D;YAC7D,wCAAwC;YACxC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/C,MAAM,UAAU,GAAG;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,EAAE;gBACX,OAAO;gBACP,SAAS,EAAE,EAAE;aACd,CAAA;YAED,iEAAiE;YACjE,8DAA8D;YAC9D,sBAAsB;YACtB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACvD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAA;gBACzD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;gBAC5E,WAAW,CAAC,GAAG,CAAC,GAAG;oBACjB,GAAG,UAAU;oBACb,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;iBAC5C,CAAA;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,8DAA8D;gBAC9D,4DAA4D;gBAC5D,2DAA2D;gBAC3D,MAAM,QAAQ,GAAG,6CAA6C,CAAA;gBAC9D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;gBAC5E,WAAW,CAAC,GAAG,CAAC,GAAG;oBACjB,GAAG,UAAU;oBACb,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;iBAC5C,CAAA;gBACD,SAAQ;YACV,CAAC;YAED,8DAA8D;YAC9D,mEAAmE;YACnE,+DAA+D;YAC/D,wDAAwD;YACxD,MAAM,YAAY,GAAG,QAAQ,CAAA;YAC7B,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;gBAC5C,IAAI,CAAC;oBAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;gBACrF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACrB,IAAI,UAA4B,CAAA;gBAChC,IAAI,CAAC;oBACH,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;gBACtD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC5D,UAAU,GAAG,EAAE,IAAI,EAAE,eAAe,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;oBAC3E,GAAG,CAAC,IAAI,CAAC;wBACP,KAAK,EAAE,2BAA2B;wBAClC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;qBAC1B,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;gBAClC,IAAI,CAAC;oBAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;gBAClI,YAAY,CAAC,GAAG,CAAC,GAAG;oBAClB,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,OAAO,EAAE,UAAU,CAAC,IAAI;iBACzB,CAAA;gBACD,WAAW,CAAC,GAAG,CAAC,GAAG;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,SAAS;oBACtC,UAAU;oBACV,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBACtC,OAAO;oBACP,SAAS,EAAE,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;iBACjE,CAAA;YACH,CAAC,CAAA;YAED,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjD,IAAI,UAAU,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,yDAAyD;gBACzD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClD,CAAC;gBACD,MAAM,WAAW,EAAE,CAAA;YACrB,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAC3B,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAC1B,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,4DAA4D;QAC5D,kEAAkE;QAClE,kEAAkE;QAClE,qDAAqD;QACrD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YAC1C,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,gCAAgC;gBACvC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACvC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,IAAI;gBACJ,cAAc,EAAE,SAAS,CAAC,MAAM;aACjC,EAAE,kBAAkB,CAAC,CAAC,IAAI,uDAAuD,IAAI,EAAE,CAAC,CAAA;YACzF,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,IAAI,GAAG,CAAC;gBACpB,SAAS;gBACT,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,YAAY;aAC3B,CAAA;QACH,CAAC;QAED,6DAA6D;QAC7D,gEAAgE;QAChE,mEAAmE;QACnE,sDAAsD;QACtD,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAA;QACtC,MAAM,cAAc,GAAG,UAAU,KAAK,QAAQ;eACzC,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5E,IACE,KAAK,CAAC,YAAY;eACf,cAAc;eACd,SAAS,CAAC,MAAM,IAAI,qBAAqB;eACzC,gBAAgB,GAAG,gBAAgB;eACnC,SAAS,CAAC,MAAM,GAAG,qBAAqB,IAAI,cAAc,EAC7D,CAAC;YACD,gBAAgB,IAAI,CAAC,CAAA;YACrB,qBAAqB,GAAG,SAAS,CAAC,MAAM,CAAA;YACxC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;YACnC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;gBAClC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;gBACjC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;gBACvC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;gBACrC,eAAe,EAAE,MAAM;aACxB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7B,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,gCAAgC;gBACvC,IAAI;gBACJ,cAAc,EAAE,SAAS,CAAC,MAAM;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAA;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC;oBACP,KAAK,EAAE,+BAA+B;oBACtC,IAAI;oBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,EAAE,yCAAyC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBACtE,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,UAAU,EAAE,IAAI,GAAG,CAAC;oBACpB,SAAS;oBACT,KAAK,EAAE,QAAQ;oBACf,YAAY,EAAE,WAAW;oBACzB,yDAAyD;oBACzD,0DAA0D;oBAC1D,yDAAyD;oBACzD,2DAA2D;oBAC3D,0DAA0D;oBAC1D,KAAK,EAAE,OAAO,CAAC,QAAQ;wBACrB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,iBAAiB,OAAO,CAAC,QAAQ,EAAE;wBACtD,CAAC,CAAC,OAAO,CAAC,MAAM;iBACnB,CAAA;YACH,CAAC;QACH,CAAC;QACD,mEAAmE;IACrE,CAAC;IAED,oEAAoE;IACpE,MAAM,CAAC,OAAO,EAAE,CAAA;IAChB,OAAO;QACL,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,SAAS;QACT,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,gBAAgB;KAC/B,CAAA;AACH,CAAC;AAED,wEAAwE;AAExE,SAAS,UAAU,CAAC,GAAa,EAAE,GAAa;IAC9C,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACzC,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,YAAY,CAAA;IAC/D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAC7C,GAAG,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAA;IAC3E,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACxC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,CAAA;IAC5D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAA;IAChD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,UAAmC,EAAE,SAA6B;IAGrF,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAiB,CAAC,EAAE,CAAA;IAClE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;IAClC,IAAI,KAAK,GAA0B,IAAI,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO,EAAE,CAAA;;YAC5B,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAC7D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACvG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YAC1D,KAA+B,CAAC,KAAK,EAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,UAAU;gBAAE,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;KACF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,IAAkB,EAClB,IAAqB,EACrB,OAAe;IAEf,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACtD,CAAC,CAAA;QACF,mEAAmE;QACnE,OAAO,MAAM,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,KAA0C,EAC1C,SAAiB,EACjB,SAAiB,EACjB,WAAmB,EACnB,OAAgB,EAChB,KAAc,EACd,IAAa;IAEb,IAAI,CAAC,KAAK;QAAE,OAAM;IAClB,IAAI,CAAC;QACH,aAAa,CAAC;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;YACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,mBAAmB;YAC3C,SAAS;YACT,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,OAAO;YACP,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;AACrC,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { ToolDef } from './provider-base.js';
2
+ /** v1.2.108 — TTL for the per-server tools-list cache. See
3
+ * `McpClient.cachedTools` for the policy. */
4
+ export declare const TOOLS_TTL_MS: number;
2
5
  /**
3
6
  * Tool naming policy: `mcp_{server}_{tool}`. Avoids name collisions when
4
7
  * two servers advertise the same tool name (common: every server has
@@ -50,8 +53,15 @@ export declare class McpClient {
50
53
  /**
51
54
  * Discover the server's tool roster and project into agim ToolDef[].
52
55
  * Applies `enabledTools` filter and the namespaced-name policy.
56
+ * Cache TTL: TOOLS_TTL_MS (env IMHUB_MCP_TOOLS_TTL_MS, default 5 min,
57
+ * 0 = no cache). Use `refresh()` to force a re-list immediately.
53
58
  */
54
59
  listAvailableTools(): Promise<ToolDef[]>;
60
+ /** Force-drop the tools-list cache so the next `listAvailableTools()`
61
+ * call hits the server again. Used after the agim operator knows the
62
+ * upstream server changed (manual refresh in the web admin, or — in
63
+ * the future — an MCP `tools/list_changed` notification). */
64
+ refresh(): void;
55
65
  /**
56
66
  * Invoke a tool by either the namespaced or original name. Returns
57
67
  * the concatenated text content + an isError flag (the MCP spec
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mcp-client.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAMjD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAQD;;gEAEgE;AAChE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;qEACqE;AACrE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,MAAM,CAAsB;IAKpC,OAAO,CAAC,WAAW,CAAoE;gBAE3E,GAAG,EAAE,eAAe;IAMhC,uDAAuD;IACvD,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAgC9C;;;;;;OAMG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAqC7H,qCAAqC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,oBAAoB;CAW7B;AAmCD;0EAC0E;AAC1E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhF;AASD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mcp-client.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAMjD;8CAC8C;AAC9C,eAAO,MAAM,YAAY,EAAE,MAMvB,CAAA;AAEJ;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAQD;;gEAEgE;AAChE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;qEACqE;AACrE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,MAAM,CAAsB;IAUpC,OAAO,CAAC,WAAW,CAIJ;gBAEH,GAAG,EAAE,eAAe;IAMhC,uDAAuD;IACvD,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAuC9C;;;kEAG8D;IAC9D,OAAO,IAAI,IAAI;IAIf;;;;;;OAMG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAqC7H,qCAAqC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,oBAAoB;CAW7B;AAmCD;0EAC0E;AAC1E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhF;AASD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAErE"}
@@ -34,6 +34,17 @@ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/
34
34
  import { logger as rootLogger } from '../logger.js';
35
35
  const log = rootLogger.child({ component: 'mcp-client' });
36
36
  const DEFAULT_TOOL_TIMEOUT_MS = 30_000;
37
+ /** v1.2.108 — TTL for the per-server tools-list cache. See
38
+ * `McpClient.cachedTools` for the policy. */
39
+ export const TOOLS_TTL_MS = (() => {
40
+ const raw = process.env.IMHUB_MCP_TOOLS_TTL_MS;
41
+ if (raw == null || raw === '')
42
+ return 5 * 60 * 1000;
43
+ const n = Number(raw);
44
+ if (!Number.isFinite(n) || n < 0)
45
+ return 5 * 60 * 1000;
46
+ return Math.floor(n);
47
+ })();
37
48
  /**
38
49
  * Tool naming policy: `mcp_{server}_{tool}`. Avoids name collisions when
39
50
  * two servers advertise the same tool name (common: every server has
@@ -59,10 +70,15 @@ export class McpClient {
59
70
  cfg;
60
71
  toolTimeoutMs;
61
72
  client = null;
62
- // Cache the listTools() result so the agent loop doesn't pay the
63
- // round-trip cost on every iteration. Servers that hot-reload tools
64
- // mid-session would need an explicit refresh hook; punt until a real
65
- // case appears.
73
+ // v1.2.108 — Cache listTools() with a TTL so the agent loop doesn't
74
+ // pay the round-trip cost on every iteration BUT also picks up server-
75
+ // side tool additions / schema changes within ~5 min without an agim
76
+ // restart. TTL configurable via IMHUB_MCP_TOOLS_TTL_MS:
77
+ // - >0 → cache for that many ms (default 5 min)
78
+ // - 0 → never cache (always re-list; useful for development)
79
+ // Callers that just learned the server changed (e.g. an MCP
80
+ // `tools/list_changed` notification someday) can call `refresh()` to
81
+ // force-drop the cache immediately.
66
82
  cachedTools = null;
67
83
  constructor(cfg) {
68
84
  this.name = cfg.name;
@@ -95,12 +111,18 @@ export class McpClient {
95
111
  /**
96
112
  * Discover the server's tool roster and project into agim ToolDef[].
97
113
  * Applies `enabledTools` filter and the namespaced-name policy.
114
+ * Cache TTL: TOOLS_TTL_MS (env IMHUB_MCP_TOOLS_TTL_MS, default 5 min,
115
+ * 0 = no cache). Use `refresh()` to force a re-list immediately.
98
116
  */
99
117
  async listAvailableTools() {
100
118
  if (!this.client)
101
119
  throw new Error(`mcp-client[${this.name}]: not connected`);
102
- if (this.cachedTools)
120
+ const now = Date.now();
121
+ if (this.cachedTools
122
+ && TOOLS_TTL_MS > 0
123
+ && now - this.cachedTools.fetchedAt < TOOLS_TTL_MS) {
103
124
  return this.cachedTools.full;
125
+ }
104
126
  const resp = await this.client.listTools({});
105
127
  // resp.tools shape per MCP spec: [{name, description?, inputSchema}]
106
128
  const filter = this.cfg.enabledTools && this.cfg.enabledTools.length > 0
@@ -122,13 +144,20 @@ export class McpClient {
122
144
  parameters: ensureObjectSchema(t.inputSchema),
123
145
  });
124
146
  }
125
- this.cachedTools = { full: out, byCallName };
147
+ this.cachedTools = { full: out, byCallName, fetchedAt: now };
126
148
  log.info({
127
149
  event: 'mcp.tools.listed', server: this.name,
128
150
  count: out.length, filtered: filter !== null,
129
151
  });
130
152
  return out;
131
153
  }
154
+ /** Force-drop the tools-list cache so the next `listAvailableTools()`
155
+ * call hits the server again. Used after the agim operator knows the
156
+ * upstream server changed (manual refresh in the web admin, or — in
157
+ * the future — an MCP `tools/list_changed` notification). */
158
+ refresh() {
159
+ this.cachedTools = null;
160
+ }
132
161
  /**
133
162
  * Invoke a tool by either the namespaced or original name. Returns
134
163
  * the concatenated text content + an isError flag (the MCP spec
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../src/core/llm/mcp-client.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yCAAyC;AACzC,EAAE;AACF,uBAAuB;AACvB,0EAA0E;AAC1E,sEAAsE;AACtE,qEAAqE;AACrE,8DAA8D;AAC9D,uEAAuE;AACvE,kEAAkE;AAClE,yDAAyD;AACzD,uEAAuE;AACvE,6CAA6C;AAC7C,EAAE;AACF,iDAAiD;AACjD,kEAAkE;AAClE,qDAAqD;AACrD,qEAAqE;AACrE,qCAAqC;AACrC,kEAAkE;AAClE,mEAAmE;AACnE,gEAAgE;AAChE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,oEAAoE;AACpE,mEAAmE;AACnE,gBAAgB;AAEhB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAClG,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AAGnD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAA;AAEzD,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IACzE,OAAO,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,QAAgB;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IACzD,OAAO,OAAO,UAAU,IAAI,QAAQ,EAAE,CAAA;AACxC,CAAC;AAyBD;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACX,IAAI,CAAQ;IACJ,GAAG,CAAiB;IACpB,aAAa,CAAQ;IAC9B,MAAM,GAAkB,IAAI,CAAA;IACpC,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,gBAAgB;IACR,WAAW,GAAgE,IAAI,CAAA;IAEvF,YAAY,GAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAA;IACnE,CAAC;IAED,uDAAuD;IACvD,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAA;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM,CAAE,aAAa;QACtC,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE;QACzC,mEAAmE;QACnE,4BAA4B;QAC5B,EAAE,YAAY,EAAE,EAAE,EAAE,CACrB,CAAA;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI;YACzC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAA;QAC5E,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QAElD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC5C,qEAAqE;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;eACnE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAC5E,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;YAChC,CAAC,CAAC,IAAI,CAAA;QAER,MAAM,GAAG,GAAc,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAE,yBAAyB;QACvE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAA6F,EAAE,CAAC;YACnH,IAAI,CAAC,CAAC,EAAE,IAAI;gBAAE,SAAQ;YACtB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YACpD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAQ;YACtE,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YAClC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBACnE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;aAC9C,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAA;QAC5C,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI;YAC5C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI;SAC7C,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAA6B,EAAE,OAAiC,EAAE;QACjG,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAA;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,iBAAiB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC7D,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CACrC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EACvC,SAAS,EACT;gBACE,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CACF,CAAA;YACD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAkB,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACtC,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY;gBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBAC1B,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO;aAC5B,CAAC,CAAA;YACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY;gBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBAC1B,GAAG,EAAE,GAAG;aACT,CAAC,CAAA;YACF,OAAO,EAAE,IAAI,EAAE,yBAAyB,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAChE,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QACxB,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;IAEO,oBAAoB,CAAC,QAAgB;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,iEAAiE;QACjE,wDAAwD;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;QACpC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,yEAAyE;AAEzE,SAAS,cAAc,CAAC,GAAoB;IAC1C,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,IAAI,oBAAoB,CAAC;YAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7C,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;aACtC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,IAAI,6BAA6B,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACxD,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;SACtC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,sDAAsD,CAAC,CAAA;AAC/F,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAoB;IAC7C,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,OAAO,CAAA;IAC/B,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,yEAAyE;AAEzE;0EAC0E;AAC1E,MAAM,UAAU,0BAA0B,CAAC,GAAY;IACrD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,GAA8B,CAAA;IACvC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,KAAK,IAAI,OAAoD,EAAE,CAAC;QACzE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAQ;QACjD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../../src/core/llm/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { type ToolCallResult } from './mcp-client.js';
2
2
  import type { ToolDef } from './provider-base.js';
3
+ /** Exponential backoff for the Nth consecutive reconnect failure. First
4
+ * attempt (failures=0) waits `base`; each subsequent failure doubles
5
+ * until `cap`. Exported for unit tests. */
6
+ export declare function computeReconnectCooldownMs(failures: number, base?: number, cap?: number): number;
3
7
  /**
4
8
  * Build McpClient instances from config. Idempotent — repeated calls
5
9
  * fully replace the previous state (any open connections are closed
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mcp-registry.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AA8DjD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/G;AAED;;yDAEyD;AACzD,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAClC,OAAO,CAAC,cAAc,CAAC,CAgDzB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvF,UAAU,EAAE,MAAM,CAAA;CACnB,CAaA;AAED;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C;AAED;4CAC4C;AAC5C,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"mcp-registry.d.ts","sourceRoot":"","sources":["../../../src/core/llm/mcp-registry.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AA+CjD;;4CAE4C;AAC5C,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,SAAoB,EACxB,GAAG,SAAmB,GACrB,MAAM,CAGR;AAsCD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/G;AAED;;yDAEyD;AACzD,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAClC,OAAO,CAAC,cAAc,CAAC,CAgDzB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvF,UAAU,EAAE,MAAM,CAAA;CACnB,CAaA;AAED;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C;AAED;4CAC4C;AAC5C,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -27,25 +27,46 @@ function freshState() {
27
27
  unhealthy: new Map(),
28
28
  toolsByCallName: new Map(),
29
29
  lastReconnectAt: new Map(),
30
+ reconnectFailures: new Map(),
30
31
  };
31
32
  }
32
- /** v1.2.96 — minimum interval between reconnect attempts for the same
33
- * server. 5 s is short enough to feel snappy when an MCP server just
34
- * blipped, long enough that a permanently-broken server doesn't get
35
- * hammered tool-call-by-tool-call. Configurable via env for ops who
36
- * want to tune; default is fine for most. */
37
- const RECONNECT_COOLDOWN_MS = (() => {
38
- const raw = process.env.IMHUB_MCP_RECONNECT_COOLDOWN_MS;
33
+ /** v1.2.96 / v1.2.108 base/cap for the reconnect cooldown. Base is
34
+ * also what `IMHUB_MCP_RECONNECT_COOLDOWN_MS` used to mean (kept as an
35
+ * alias for the env name nobody read the docs on). Cap is the max wait
36
+ * between attempts after the server has failed repeatedly — beyond ~60s
37
+ * we'd rather let the operator notice than keep silently retrying. */
38
+ const RECONNECT_BASE_MS = (() => {
39
+ const raw = process.env.IMHUB_MCP_RECONNECT_BASE_MS ?? process.env.IMHUB_MCP_RECONNECT_COOLDOWN_MS;
39
40
  if (!raw)
40
41
  return 5_000;
41
42
  const n = parseInt(raw, 10);
42
43
  return Number.isFinite(n) && n >= 0 ? n : 5_000;
43
44
  })();
45
+ const RECONNECT_MAX_MS = (() => {
46
+ const raw = process.env.IMHUB_MCP_RECONNECT_MAX_MS;
47
+ if (!raw)
48
+ return 60_000;
49
+ const n = parseInt(raw, 10);
50
+ return Number.isFinite(n) && n >= 0 ? n : 60_000;
51
+ })();
52
+ /** Exponential backoff for the Nth consecutive reconnect failure. First
53
+ * attempt (failures=0) waits `base`; each subsequent failure doubles
54
+ * until `cap`. Exported for unit tests. */
55
+ export function computeReconnectCooldownMs(failures, base = RECONNECT_BASE_MS, cap = RECONNECT_MAX_MS) {
56
+ if (failures <= 0)
57
+ return base;
58
+ return Math.min(cap, base * Math.pow(2, failures));
59
+ }
44
60
  async function tryReconnect(server, client) {
45
61
  const now = Date.now();
46
62
  const last = state.lastReconnectAt.get(server) ?? 0;
47
- if (now - last < RECONNECT_COOLDOWN_MS) {
48
- log.debug({ event: 'mcp-registry.reconnect_throttled', server, msSinceLast: now - last });
63
+ const failures = state.reconnectFailures.get(server) ?? 0;
64
+ const cooldown = computeReconnectCooldownMs(failures);
65
+ if (now - last < cooldown) {
66
+ log.debug({
67
+ event: 'mcp-registry.reconnect_throttled',
68
+ server, msSinceLast: now - last, cooldown, failures,
69
+ });
49
70
  return false;
50
71
  }
51
72
  state.lastReconnectAt.set(server, now);
@@ -55,12 +76,17 @@ async function tryReconnect(server, client) {
55
76
  // a fresh handshake.
56
77
  await client.close();
57
78
  await client.connect();
79
+ state.reconnectFailures.delete(server); // reset on success
58
80
  log.info({ event: 'mcp-registry.reconnected', server });
59
81
  return true;
60
82
  }
61
83
  catch (err) {
62
84
  const msg = err instanceof Error ? err.message : String(err);
63
- log.warn({ event: 'mcp-registry.reconnect_failed', server, err: msg });
85
+ state.reconnectFailures.set(server, failures + 1);
86
+ log.warn({
87
+ event: 'mcp-registry.reconnect_failed',
88
+ server, err: msg, failures: failures + 1, nextCooldownMs: computeReconnectCooldownMs(failures + 1),
89
+ });
64
90
  state.unhealthy.set(server, msg);
65
91
  return false;
66
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../../src/core/llm/mcp-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../../src/core/llm/mcp-registry.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,21 @@ export interface OpenAICompatProviderConfig extends Omit<ProviderConfigBase, 'pr
31
31
  * 'gpt-4.1', 'qwen-vl', or 'glm-4v'. Override explicitly when needed. */
32
32
  vision?: boolean;
33
33
  }
34
+ /** Parse an HTTP `Retry-After` header per RFC 9110: either delta-seconds
35
+ * (e.g. "30") or an HTTP-date. Returns ms-from-now, clamped to ≥0.
36
+ * Returns null on null / empty / unparsable. Exported for unit tests. */
37
+ export declare function parseRetryAfter(header: string | null | undefined): number | null;
38
+ /** Compute backoff for retry `attempt` (1-based). Honors any `Retry-After`
39
+ * the server sent — we wait at least that long (server knows when it's
40
+ * next available). Exponential 250ms × 2^(attempt-1) with full jitter
41
+ * on top to spread thundering herd. Capped at 30s — anything longer and
42
+ * the worker is better off surrendering to the caller's fallback path.
43
+ * `nowJitter` is injectable for deterministic tests. */
44
+ export declare function computeBackoffMs(attempt: number, retryAfterMs: number | null, opts?: {
45
+ base?: number;
46
+ cap?: number;
47
+ jitter?: () => number;
48
+ }): number;
34
49
  /**
35
50
  * Concrete provider for any OpenAI-compatible `/v1/chat/completions`
36
51
  * endpoint. Single-shot chat is the only Stage-1 path we care about —
@@ -54,11 +69,19 @@ export declare class OpenAICompatProvider extends LlmProvider {
54
69
  private _buildBody;
55
70
  private _postJson;
56
71
  /**
57
- * fetch + minimal retry. We backoff with a tiny fixed delay rather
58
- * than honoring Retry-After because Stage 1 callers (distill /
59
- * intent) have very short deadlines long backoffs would force a
60
- * fallback to CLI anyway, which is the whole point of "transient
61
- * retry, then surrender".
72
+ * fetch + transient retry with Retry-After + exponential backoff + jitter.
73
+ * Earlier versions used a tiny fixed delay and ignored `Retry-After`,
74
+ * which made DeepSeek / Moonshot 429s flap straight to the fallback
75
+ * provider (cold start + model-semantics swap) instead of waiting the
76
+ * few seconds the upstream actually asked for. We now honor the header
77
+ * as a hard floor; exponential backoff with jitter rides on top to
78
+ * avoid thundering-herd against the upstream's recovery window.
79
+ *
80
+ * Defaults: 3 retries (= 4 attempts), 250ms base, doubling per attempt,
81
+ * capped at 30s. Override via `IMHUB_LLM_RETRY_MAX` env (clamped [0,10])
82
+ * or the `retryOnTransient` ctor option. The cap exists because beyond
83
+ * ~30s the worker is better off surrendering so the agent loop can pick
84
+ * a fallback provider.
62
85
  */
63
86
  private _fetchWithRetry;
64
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compat-provider.d.ts","sourceRoot":"","sources":["../../../src/core/llm/openai-compat-provider.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,WAAW,EAEX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAKxB,MAAM,oBAAoB,CAAA;AAG3B,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC1F;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;sDAGkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC;qEACiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;2CAEuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;8EAK0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAKD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,GAAG,EAAE,0BAA0B;IAiBlC,cAAc,IAAI,OAAO;cAIlB,QAAQ,CACtB,QAAQ,EAAE,UAAU,EAAE,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,UAAU,CAAC;cAkBL,cAAc,CAC7B,QAAQ,EAAE,UAAU,EAAE,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC,eAAe,CAAC;IAsDjC;;;;OAIG;IACH,OAAO,CAAC,UAAU;YA0BJ,SAAS;IAevB;;;;;;OAMG;YACW,eAAe;CAiD9B"}
1
+ {"version":3,"file":"openai-compat-provider.d.ts","sourceRoot":"","sources":["../../../src/core/llm/openai-compat-provider.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,WAAW,EAEX,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAKxB,MAAM,oBAAoB,CAAA;AAG3B,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC1F;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;sDAGkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC;qEACiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;2CAEuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;8EAK0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAOD;;0EAE0E;AAC1E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAkBhF;AAED;;;;;yDAKyD;AACzD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAChE,MAAM,CAQR;AAUD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,GAAG,EAAE,0BAA0B;IAiBlC,cAAc,IAAI,OAAO;cAIlB,QAAQ,CACtB,QAAQ,EAAE,UAAU,EAAE,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,UAAU,CAAC;cAkBL,cAAc,CAC7B,QAAQ,EAAE,UAAU,EAAE,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC,eAAe,CAAC;IAsDjC;;;;OAIG;IACH,OAAO,CAAC,UAAU;YA0BJ,SAAS;IAevB;;;;;;;;;;;;;;OAcG;YACW,eAAe;CAgD9B"}
@@ -25,7 +25,60 @@
25
25
  import { LlmProvider, LlmProviderError, } from './provider-base.js';
26
26
  import { statSync as fsStatSync, readFileSync as fsReadFileSync } from 'node:fs';
27
27
  const DEFAULT_BASE_URL = 'https://api.openai.com/v1';
28
- const DEFAULT_RETRY = 1;
28
+ const DEFAULT_RETRY = 3;
29
+ const BASE_BACKOFF_MS = 250;
30
+ const MAX_BACKOFF_MS = 30_000;
31
+ /** Parse an HTTP `Retry-After` header per RFC 9110: either delta-seconds
32
+ * (e.g. "30") or an HTTP-date. Returns ms-from-now, clamped to ≥0.
33
+ * Returns null on null / empty / unparsable. Exported for unit tests. */
34
+ export function parseRetryAfter(header) {
35
+ if (!header)
36
+ return null;
37
+ const s = String(header).trim();
38
+ if (!s)
39
+ return null;
40
+ // delta-seconds form
41
+ if (/^\d+(?:\.\d+)?$/.test(s)) {
42
+ const n = Number(s);
43
+ if (Number.isFinite(n) && n >= 0)
44
+ return Math.floor(n * 1000);
45
+ return null;
46
+ }
47
+ // HTTP-date form (RFC 1123 etc.). Gate by length first: every RFC 7231
48
+ // HTTP-date variant (IMF-fixdate / obs-RFC850 / ANSI C asctime) is ≥24
49
+ // chars; without this gate Node's `Date.parse` loosely accepts e.g.
50
+ // "-5" as "5 BC" and `Math.max(0, …)` would swallow it as 0.
51
+ if (s.length < 20)
52
+ return null;
53
+ const t = Date.parse(s);
54
+ if (Number.isNaN(t))
55
+ return null;
56
+ return Math.max(0, t - Date.now());
57
+ }
58
+ /** Compute backoff for retry `attempt` (1-based). Honors any `Retry-After`
59
+ * the server sent — we wait at least that long (server knows when it's
60
+ * next available). Exponential 250ms × 2^(attempt-1) with full jitter
61
+ * on top to spread thundering herd. Capped at 30s — anything longer and
62
+ * the worker is better off surrendering to the caller's fallback path.
63
+ * `nowJitter` is injectable for deterministic tests. */
64
+ export function computeBackoffMs(attempt, retryAfterMs, opts = {}) {
65
+ const base = opts.base ?? BASE_BACKOFF_MS;
66
+ const cap = opts.cap ?? MAX_BACKOFF_MS;
67
+ const jitter = opts.jitter ?? (() => 0.8 + Math.random() * 0.4);
68
+ const exp = Math.min(cap, base * Math.pow(2, Math.max(0, attempt - 1)));
69
+ const withJitter = Math.floor(exp * jitter());
70
+ const floor = Math.max(0, retryAfterMs ?? 0);
71
+ return Math.min(cap, Math.max(floor, withJitter));
72
+ }
73
+ function resolveDefaultRetry() {
74
+ const raw = process.env.IMHUB_LLM_RETRY_MAX;
75
+ if (!raw)
76
+ return DEFAULT_RETRY;
77
+ const n = Number(raw);
78
+ if (!Number.isFinite(n) || n < 0)
79
+ return DEFAULT_RETRY;
80
+ return Math.min(10, Math.floor(n));
81
+ }
29
82
  /**
30
83
  * Concrete provider for any OpenAI-compatible `/v1/chat/completions`
31
84
  * endpoint. Single-shot chat is the only Stage-1 path we care about —
@@ -44,7 +97,7 @@ export class OpenAICompatProvider extends LlmProvider {
44
97
  });
45
98
  this.baseUrl = (cfg.baseUrl || DEFAULT_BASE_URL).replace(/\/+$/, '');
46
99
  this.extraHeaders = cfg.extraHeaders || {};
47
- this.retryOnTransient = Math.max(0, cfg.retryOnTransient ?? DEFAULT_RETRY);
100
+ this.retryOnTransient = Math.max(0, Math.min(10, cfg.retryOnTransient ?? resolveDefaultRetry()));
48
101
  if (typeof cfg.vision === 'boolean') {
49
102
  this.vision = cfg.vision;
50
103
  }
@@ -184,11 +237,19 @@ export class OpenAICompatProvider extends LlmProvider {
184
237
  return json;
185
238
  }
186
239
  /**
187
- * fetch + minimal retry. We backoff with a tiny fixed delay rather
188
- * than honoring Retry-After because Stage 1 callers (distill /
189
- * intent) have very short deadlines long backoffs would force a
190
- * fallback to CLI anyway, which is the whole point of "transient
191
- * retry, then surrender".
240
+ * fetch + transient retry with Retry-After + exponential backoff + jitter.
241
+ * Earlier versions used a tiny fixed delay and ignored `Retry-After`,
242
+ * which made DeepSeek / Moonshot 429s flap straight to the fallback
243
+ * provider (cold start + model-semantics swap) instead of waiting the
244
+ * few seconds the upstream actually asked for. We now honor the header
245
+ * as a hard floor; exponential backoff with jitter rides on top to
246
+ * avoid thundering-herd against the upstream's recovery window.
247
+ *
248
+ * Defaults: 3 retries (= 4 attempts), 250ms base, doubling per attempt,
249
+ * capped at 30s. Override via `IMHUB_LLM_RETRY_MAX` env (clamped [0,10])
250
+ * or the `retryOnTransient` ctor option. The cap exists because beyond
251
+ * ~30s the worker is better off surrendering so the agent loop can pick
252
+ * a fallback provider.
192
253
  */
193
254
  async _fetchWithRetry(url, body, signal) {
194
255
  let lastErr;
@@ -223,10 +284,8 @@ export class OpenAICompatProvider extends LlmProvider {
223
284
  if (!transient || attempts >= maxAttempts) {
224
285
  throw new LlmProviderError(this.name, `HTTP ${resp.status} from ${this.providerType}: ${bodyText || '(no body)'}`, { httpStatus: resp.status, transient });
225
286
  }
226
- // Transient and budget remaining — sleep and let the while loop
227
- // tick to the next attempt. The retry budget is the only thing
228
- // standing between us and an infinite loop.
229
- await sleep(250 * attempts, signal);
287
+ const retryAfterMs = parseRetryAfter(resp.headers.get('retry-after'));
288
+ await sleep(computeBackoffMs(attempts, retryAfterMs), signal);
230
289
  }
231
290
  catch (err) {
232
291
  // AbortError propagates immediately — callers wired timeouts on
@@ -235,7 +294,8 @@ export class OpenAICompatProvider extends LlmProvider {
235
294
  throw err;
236
295
  lastErr = err;
237
296
  if (attempts < maxAttempts) {
238
- await sleep(250 * attempts, signal);
297
+ // Transport errors have no Retry-After to consult.
298
+ await sleep(computeBackoffMs(attempts, null), signal);
239
299
  }
240
300
  }
241
301
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compat-provider.js","sourceRoot":"","sources":["../../../src/core/llm/openai-compat-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-compat-provider.js","sourceRoot":"","sources":["../../../src/core/llm/openai-compat-provider.ts"],"names":[],"mappings":"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"}