termdock 1.4.325 → 1.4.326

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 (347) hide show
  1. package/dist/client/assets/App-DrnLToMO.js +186 -0
  2. package/dist/client/assets/App-DrnLToMO.js.br +0 -0
  3. package/dist/client/assets/App-DrnLToMO.js.gz +0 -0
  4. package/dist/client/assets/ArchitecturePanel-CGjioSu0.js +9 -0
  5. package/dist/client/assets/ArchitecturePanel-CGjioSu0.js.br +0 -0
  6. package/dist/client/assets/ArchitecturePanel-CGjioSu0.js.gz +0 -0
  7. package/dist/client/assets/{ChangeWalkthroughPanel-ChPZVfRz.js → ChangeWalkthroughPanel-BsG5tR4F.js} +1 -1
  8. package/dist/client/assets/ChangeWalkthroughPanel-BsG5tR4F.js.br +0 -0
  9. package/dist/client/assets/ChangeWalkthroughPanel-BsG5tR4F.js.gz +0 -0
  10. package/dist/client/assets/{CollaborationMainWorkspace-DkNhqCj4.js → CollaborationMainWorkspace-KMTTUtsp.js} +1 -1
  11. package/dist/client/assets/CollaborationMainWorkspace-KMTTUtsp.js.br +0 -0
  12. package/dist/client/assets/CollaborationMainWorkspace-KMTTUtsp.js.gz +0 -0
  13. package/dist/client/assets/CollaborationTaskContent-D-qPRh4f.js +2 -0
  14. package/dist/client/assets/ComputerControlView-Bh3aWVA-.js +5 -0
  15. package/dist/client/assets/ComputerControlView-Bh3aWVA-.js.br +0 -0
  16. package/dist/client/assets/ComputerControlView-Bh3aWVA-.js.gz +0 -0
  17. package/dist/client/assets/{DagPlayground-BIL5vjer.js → DagPlayground-761ejCr8.js} +1 -1
  18. package/dist/client/assets/DagPlayground-761ejCr8.js.br +0 -0
  19. package/dist/client/assets/DagPlayground-761ejCr8.js.gz +0 -0
  20. package/dist/client/assets/{DiffLab-CX1AwU2v.js → DiffLab-yWG9ju3P.js} +1 -1
  21. package/dist/client/assets/DiffLab-yWG9ju3P.js.br +0 -0
  22. package/dist/client/assets/DiffLab-yWG9ju3P.js.gz +0 -0
  23. package/dist/client/assets/{DiffReview-CLc1hwO7.js → DiffReview-02640ofg.js} +1 -1
  24. package/dist/client/assets/DiffReview-02640ofg.js.br +0 -0
  25. package/dist/client/assets/DiffReview-02640ofg.js.gz +0 -0
  26. package/dist/client/assets/{DiffReviewLab-DE6m1o4p.js → DiffReviewLab-D0W0SEIG.js} +1 -1
  27. package/dist/client/assets/DiffReviewLab-D0W0SEIG.js.br +0 -0
  28. package/dist/client/assets/DiffReviewLab-D0W0SEIG.js.gz +0 -0
  29. package/dist/client/assets/{DiffViewer-BDwtwbQM.js → DiffViewer-CLjrE1oE.js} +1 -1
  30. package/dist/client/assets/DiffViewer-CLjrE1oE.js.br +0 -0
  31. package/dist/client/assets/DiffViewer-CLjrE1oE.js.gz +0 -0
  32. package/dist/client/assets/{ModelPreview-DEwATnxi.js → ModelPreview-BnIvn0Fn.js} +1 -1
  33. package/dist/client/assets/ModelPreview-BnIvn0Fn.js.br +0 -0
  34. package/dist/client/assets/ModelPreview-BnIvn0Fn.js.gz +0 -0
  35. package/dist/client/assets/{RightSidebar-jOQJePDV.js → RightSidebar-Dx4Jf94o.js} +27 -27
  36. package/dist/client/assets/RightSidebar-Dx4Jf94o.js.br +0 -0
  37. package/dist/client/assets/RightSidebar-Dx4Jf94o.js.gz +0 -0
  38. package/dist/client/assets/{abnfDiagram-VCTEODGH-GBSf8AEr.js → abnfDiagram-VCTEODGH-C-k_lOuF.js} +1 -1
  39. package/dist/client/assets/abnfDiagram-VCTEODGH-C-k_lOuF.js.br +0 -0
  40. package/dist/client/assets/abnfDiagram-VCTEODGH-C-k_lOuF.js.gz +0 -0
  41. package/dist/client/assets/{app-VCmiASzh.js → app-DNdmWYEJ.js} +13 -13
  42. package/dist/client/assets/app-DNdmWYEJ.js.br +0 -0
  43. package/dist/client/assets/app-DNdmWYEJ.js.gz +0 -0
  44. package/dist/client/assets/{arc-BecvFgjf.js → arc-DvBgO2ML.js} +1 -1
  45. package/dist/client/assets/arc-DvBgO2ML.js.br +0 -0
  46. package/dist/client/assets/arc-DvBgO2ML.js.gz +0 -0
  47. package/dist/client/assets/{architectureDiagram-5GKGNRK7-Cfk47zEF.js → architectureDiagram-5GKGNRK7-BrZRHTn8.js} +1 -1
  48. package/dist/client/assets/architectureDiagram-5GKGNRK7-BrZRHTn8.js.br +0 -0
  49. package/dist/client/assets/architectureDiagram-5GKGNRK7-BrZRHTn8.js.gz +0 -0
  50. package/dist/client/assets/{blockDiagram-I7D4REHJ-BHYgsLvx.js → blockDiagram-I7D4REHJ-DuvUrrD4.js} +1 -1
  51. package/dist/client/assets/blockDiagram-I7D4REHJ-DuvUrrD4.js.br +0 -0
  52. package/dist/client/assets/blockDiagram-I7D4REHJ-DuvUrrD4.js.gz +0 -0
  53. package/dist/client/assets/{c4Diagram-7LVT6UL2-ClWWjTyz.js → c4Diagram-7LVT6UL2-BHM4QTZx.js} +1 -1
  54. package/dist/client/assets/c4Diagram-7LVT6UL2-BHM4QTZx.js.br +0 -0
  55. package/dist/client/assets/c4Diagram-7LVT6UL2-BHM4QTZx.js.gz +0 -0
  56. package/dist/client/assets/channel-BqA2i16W.js +1 -0
  57. package/dist/client/assets/{chunk-2Q5K7J3B-Cat1Dsqx.js → chunk-2Q5K7J3B-TnQro6-_.js} +1 -1
  58. package/dist/client/assets/{chunk-5VM5RSS4-CT0S2-E8.js → chunk-5VM5RSS4-Vl8qqZf_.js} +1 -1
  59. package/dist/client/assets/{chunk-F27PBJKO-7o5_yA1b.js → chunk-F27PBJKO-DH6GfEdY.js} +1 -1
  60. package/dist/client/assets/chunk-F27PBJKO-DH6GfEdY.js.br +0 -0
  61. package/dist/client/assets/chunk-F27PBJKO-DH6GfEdY.js.gz +0 -0
  62. package/dist/client/assets/{chunk-IMKFNOWR-iAZxGMup.js → chunk-IMKFNOWR-DpKvDckf.js} +1 -1
  63. package/dist/client/assets/chunk-IMKFNOWR-DpKvDckf.js.br +0 -0
  64. package/dist/client/assets/chunk-IMKFNOWR-DpKvDckf.js.gz +0 -0
  65. package/dist/client/assets/{chunk-JWPE2WC7-DLvwOWZm.js → chunk-JWPE2WC7-DP773yal.js} +1 -1
  66. package/dist/client/assets/{chunk-POPQ4Y6H-BpiRuG56.js → chunk-POPQ4Y6H-BoR9GKji.js} +1 -1
  67. package/dist/client/assets/{chunk-SVP7TREG-DpB7xpqI.js → chunk-SVP7TREG-DFbN0Uvp.js} +1 -1
  68. package/dist/client/assets/chunk-SVP7TREG-DFbN0Uvp.js.br +0 -0
  69. package/dist/client/assets/chunk-SVP7TREG-DFbN0Uvp.js.gz +0 -0
  70. package/dist/client/assets/{chunk-TICWLB2K-Z_Sti6yX.js → chunk-TICWLB2K-BCoshST2.js} +1 -1
  71. package/dist/client/assets/{chunk-TICWLB2K-Z_Sti6yX.js.br → chunk-TICWLB2K-BCoshST2.js.br} +0 -0
  72. package/dist/client/assets/chunk-TICWLB2K-BCoshST2.js.gz +0 -0
  73. package/dist/client/assets/{chunk-XXDRQBXY-DKngx1rf.js → chunk-XXDRQBXY-DMAOtV4y.js} +1 -1
  74. package/dist/client/assets/classDiagram-ZZMXUADV-ChnKE-K2.js +1 -0
  75. package/dist/client/assets/classDiagram-v2-VYDZK3BY-ChnKE-K2.js +1 -0
  76. package/dist/client/assets/{cose-bilkent-JH36ORCC-CDo8eUXo.js → cose-bilkent-JH36ORCC-BlsyBXEx.js} +1 -1
  77. package/dist/client/assets/cose-bilkent-JH36ORCC-BlsyBXEx.js.br +0 -0
  78. package/dist/client/assets/cose-bilkent-JH36ORCC-BlsyBXEx.js.gz +0 -0
  79. package/dist/client/assets/{cynefin-OW5HDTMX-R6vltrl4.js → cynefin-OW5HDTMX-Btg93pC8.js} +1 -1
  80. package/dist/client/assets/cynefin-OW5HDTMX-Btg93pC8.js.br +0 -0
  81. package/dist/client/assets/cynefin-OW5HDTMX-Btg93pC8.js.gz +0 -0
  82. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-BTGMG-zO.js → cynefinDiagram-5FMLGOSQ-TenkE0c6.js} +1 -1
  83. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-TenkE0c6.js.br +0 -0
  84. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-TenkE0c6.js.gz +0 -0
  85. package/dist/client/assets/{dagre-GXQ25YYZ-D67dNSHU.js → dagre-GXQ25YYZ-BPYSZagf.js} +1 -1
  86. package/dist/client/assets/dagre-GXQ25YYZ-BPYSZagf.js.br +0 -0
  87. package/dist/client/assets/dagre-GXQ25YYZ-BPYSZagf.js.gz +0 -0
  88. package/dist/client/assets/{diagram-S7CK7UJ4-CxZmcHs4.js → diagram-S7CK7UJ4-BrJ04LYZ.js} +1 -1
  89. package/dist/client/assets/diagram-S7CK7UJ4-BrJ04LYZ.js.br +0 -0
  90. package/dist/client/assets/diagram-S7CK7UJ4-BrJ04LYZ.js.gz +0 -0
  91. package/dist/client/assets/{diagram-UQ7AKVKN-BErivsDz.js → diagram-UQ7AKVKN-DFHufHof.js} +1 -1
  92. package/dist/client/assets/diagram-UQ7AKVKN-DFHufHof.js.br +0 -0
  93. package/dist/client/assets/diagram-UQ7AKVKN-DFHufHof.js.gz +0 -0
  94. package/dist/client/assets/{diagram-VSXAHHWV-BQWEvK9d.js → diagram-VSXAHHWV-CFidKRGl.js} +1 -1
  95. package/dist/client/assets/diagram-VSXAHHWV-CFidKRGl.js.br +0 -0
  96. package/dist/client/assets/diagram-VSXAHHWV-CFidKRGl.js.gz +0 -0
  97. package/dist/client/assets/{diagram-VX7I27RA-COR5k4JL.js → diagram-VX7I27RA-C8arbI7W.js} +1 -1
  98. package/dist/client/assets/diagram-VX7I27RA-C8arbI7W.js.br +0 -0
  99. package/dist/client/assets/diagram-VX7I27RA-C8arbI7W.js.gz +0 -0
  100. package/dist/client/assets/{diagram-Z3DM3KII-Cx6oTlVi.js → diagram-Z3DM3KII-fMLMbGcS.js} +1 -1
  101. package/dist/client/assets/diagram-Z3DM3KII-fMLMbGcS.js.br +0 -0
  102. package/dist/client/assets/diagram-Z3DM3KII-fMLMbGcS.js.gz +0 -0
  103. package/dist/client/assets/{ebnfDiagram-PWID7BFC-dKNZki9k.js → ebnfDiagram-PWID7BFC-BjBUR2zi.js} +1 -1
  104. package/dist/client/assets/ebnfDiagram-PWID7BFC-BjBUR2zi.js.br +0 -0
  105. package/dist/client/assets/ebnfDiagram-PWID7BFC-BjBUR2zi.js.gz +0 -0
  106. package/dist/client/assets/{erDiagram-RLTQ6QDP-DD06d9Gl.js → erDiagram-RLTQ6QDP-BVDyIbY-.js} +1 -1
  107. package/dist/client/assets/{erDiagram-RLTQ6QDP-DD06d9Gl.js.br → erDiagram-RLTQ6QDP-BVDyIbY-.js.br} +0 -0
  108. package/dist/client/assets/erDiagram-RLTQ6QDP-BVDyIbY-.js.gz +0 -0
  109. package/dist/client/assets/{flowDiagram-HODETNUW-DXNAvw1d.js → flowDiagram-HODETNUW-Dej14Ugo.js} +1 -1
  110. package/dist/client/assets/flowDiagram-HODETNUW-Dej14Ugo.js.br +0 -0
  111. package/dist/client/assets/flowDiagram-HODETNUW-Dej14Ugo.js.gz +0 -0
  112. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-BSMu3Rsd.js → ganttDiagram-EL5Y4UJY-4q8Cv5Jl.js} +1 -1
  113. package/dist/client/assets/ganttDiagram-EL5Y4UJY-4q8Cv5Jl.js.br +0 -0
  114. package/dist/client/assets/ganttDiagram-EL5Y4UJY-4q8Cv5Jl.js.gz +0 -0
  115. package/dist/client/assets/{gestureArbiter-D1TteC76.js → gestureArbiter-q3jASYgN.js} +1 -1
  116. package/dist/client/assets/gestureArbiter-q3jASYgN.js.br +0 -0
  117. package/dist/client/assets/gestureArbiter-q3jASYgN.js.gz +0 -0
  118. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-DNDKI803.js → gitGraphDiagram-WWUBYQGX-DnE330VW.js} +1 -1
  119. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DnE330VW.js.br +0 -0
  120. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DnE330VW.js.gz +0 -0
  121. package/dist/client/assets/index-Dd_3ISCb.css +1 -0
  122. package/dist/client/assets/index-Dd_3ISCb.css.br +0 -0
  123. package/dist/client/assets/{index-Ctz-IDjR.css.gz → index-Dd_3ISCb.css.gz} +0 -0
  124. package/dist/client/assets/{infoDiagram-27XIBGKW-BRmB1D5B.js → infoDiagram-27XIBGKW-BJyKPHsP.js} +1 -1
  125. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DXU4nnZ6.js → ishikawaDiagram-5VMMS53U-CJV8ONjw.js} +1 -1
  126. package/dist/client/assets/ishikawaDiagram-5VMMS53U-CJV8ONjw.js.br +0 -0
  127. package/dist/client/assets/ishikawaDiagram-5VMMS53U-CJV8ONjw.js.gz +0 -0
  128. package/dist/client/assets/{journeyDiagram-3NMN7TZE-DFx7AfiP.js → journeyDiagram-3NMN7TZE-C_dzPksa.js} +1 -1
  129. package/dist/client/assets/journeyDiagram-3NMN7TZE-C_dzPksa.js.br +0 -0
  130. package/dist/client/assets/journeyDiagram-3NMN7TZE-C_dzPksa.js.gz +0 -0
  131. package/dist/client/assets/{kanban-definition-UXKFOSKX-B1ikfXJe.js → kanban-definition-UXKFOSKX-05lEbrKo.js} +1 -1
  132. package/dist/client/assets/kanban-definition-UXKFOSKX-05lEbrKo.js.br +0 -0
  133. package/dist/client/assets/kanban-definition-UXKFOSKX-05lEbrKo.js.gz +0 -0
  134. package/dist/client/assets/{layout-DkyvZr1Y.js → layout-CV4xlefz.js} +1 -1
  135. package/dist/client/assets/layout-CV4xlefz.js.br +0 -0
  136. package/dist/client/assets/layout-CV4xlefz.js.gz +0 -0
  137. package/dist/client/assets/{linear-CECAbRuX.js → linear-Ne3ggM1q.js} +1 -1
  138. package/dist/client/assets/linear-Ne3ggM1q.js.br +0 -0
  139. package/dist/client/assets/linear-Ne3ggM1q.js.gz +0 -0
  140. package/dist/client/assets/{mermaid.core-CYY7Wb75.js → mermaid.core-CAOB7F_V.js} +5 -5
  141. package/dist/client/assets/mermaid.core-CAOB7F_V.js.br +0 -0
  142. package/dist/client/assets/mermaid.core-CAOB7F_V.js.gz +0 -0
  143. package/dist/client/assets/{mindmap-definition-YA3MSWOX-CTs-Y3Lq.js → mindmap-definition-YA3MSWOX-BWwXAlmP.js} +1 -1
  144. package/dist/client/assets/mindmap-definition-YA3MSWOX-BWwXAlmP.js.br +0 -0
  145. package/dist/client/assets/mindmap-definition-YA3MSWOX-BWwXAlmP.js.gz +0 -0
  146. package/dist/client/assets/{passwordBootstrap-CPNGDwv6.js → passwordBootstrap-Cm1ye6eX.js} +1 -1
  147. package/dist/client/assets/passwordBootstrap-Cm1ye6eX.js.br +0 -0
  148. package/dist/client/assets/passwordBootstrap-Cm1ye6eX.js.gz +0 -0
  149. package/dist/client/assets/{pegDiagram-XKGWAZYB-Y1oZrwtK.js → pegDiagram-XKGWAZYB-DKhyr6CD.js} +1 -1
  150. package/dist/client/assets/pegDiagram-XKGWAZYB-DKhyr6CD.js.br +0 -0
  151. package/dist/client/assets/pegDiagram-XKGWAZYB-DKhyr6CD.js.gz +0 -0
  152. package/dist/client/assets/{pieDiagram-E7YTZNPT-DYSm5OxQ.js → pieDiagram-E7YTZNPT-h2Q03QIh.js} +1 -1
  153. package/dist/client/assets/pieDiagram-E7YTZNPT-h2Q03QIh.js.br +0 -0
  154. package/dist/client/assets/pieDiagram-E7YTZNPT-h2Q03QIh.js.gz +0 -0
  155. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-DpibIBz0.js → quadrantDiagram-AXDQQJYC-CWxDTEGF.js} +1 -1
  156. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-DpibIBz0.js.br → quadrantDiagram-AXDQQJYC-CWxDTEGF.js.br} +0 -0
  157. package/dist/client/assets/quadrantDiagram-AXDQQJYC-CWxDTEGF.js.gz +0 -0
  158. package/dist/client/assets/{railroadDiagram-O6MQD6OU-b7jp7C1K.js → railroadDiagram-O6MQD6OU-BY5sm6Td.js} +1 -1
  159. package/dist/client/assets/railroadDiagram-O6MQD6OU-BY5sm6Td.js.br +0 -0
  160. package/dist/client/assets/railroadDiagram-O6MQD6OU-BY5sm6Td.js.gz +0 -0
  161. package/dist/client/assets/rdpSession-CWvrHSd8.js +1 -0
  162. package/dist/client/assets/rdpSession-CWvrHSd8.js.br +0 -0
  163. package/dist/client/assets/rdpSession-CWvrHSd8.js.gz +0 -0
  164. package/dist/client/assets/{referenceLongPress-BPQ_i68g.js → referenceLongPress-5uMCEptL.js} +1 -1
  165. package/dist/client/assets/referenceLongPress-5uMCEptL.js.br +0 -0
  166. package/dist/client/assets/referenceLongPress-5uMCEptL.js.gz +0 -0
  167. package/dist/client/assets/{requirementDiagram-BXWQKSXE-BMinO1mf.js → requirementDiagram-BXWQKSXE-D8IK92YE.js} +1 -1
  168. package/dist/client/assets/requirementDiagram-BXWQKSXE-D8IK92YE.js.br +0 -0
  169. package/dist/client/assets/requirementDiagram-BXWQKSXE-D8IK92YE.js.gz +0 -0
  170. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-CmC977VA.js → sankeyDiagram-P5KCCOFB-NkH3NrGx.js} +1 -1
  171. package/dist/client/assets/sankeyDiagram-P5KCCOFB-NkH3NrGx.js.br +0 -0
  172. package/dist/client/assets/sankeyDiagram-P5KCCOFB-NkH3NrGx.js.gz +0 -0
  173. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-D6eGbgK8.js → sequenceDiagram-WJ2MYXX4-DieLFBCA.js} +1 -1
  174. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-DieLFBCA.js.br +0 -0
  175. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-DieLFBCA.js.gz +0 -0
  176. package/dist/client/assets/{sizeCapture-INFHLROL-CnRvyBd8.js → sizeCapture-INFHLROL-C-rwOQvA.js} +1 -1
  177. package/dist/client/assets/sizeCapture-INFHLROL-C-rwOQvA.js.br +0 -0
  178. package/dist/client/assets/sizeCapture-INFHLROL-C-rwOQvA.js.gz +0 -0
  179. package/dist/client/assets/{sparkles-DzadqrlX.js → sparkles-Cku-tzxx.js} +1 -1
  180. package/dist/client/assets/{stateDiagram-D77RDMKH-DRSalH10.js → stateDiagram-D77RDMKH-C7mgOyy6.js} +1 -1
  181. package/dist/client/assets/stateDiagram-D77RDMKH-C7mgOyy6.js.br +0 -0
  182. package/dist/client/assets/stateDiagram-D77RDMKH-C7mgOyy6.js.gz +0 -0
  183. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BDWPsG19.js +1 -0
  184. package/dist/client/assets/{swimlanes-42K2YHIH-u-NnDSzq.js → swimlanes-42K2YHIH-C4aAuzlE.js} +1 -1
  185. package/dist/client/assets/swimlanes-42K2YHIH-C4aAuzlE.js.br +0 -0
  186. package/dist/client/assets/swimlanes-42K2YHIH-C4aAuzlE.js.gz +0 -0
  187. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DE8jpsjW.js +8 -0
  188. package/dist/client/assets/{timeline-definition-24CTP7MA-DkLijg_J.js → timeline-definition-24CTP7MA-CKntrnOJ.js} +1 -1
  189. package/dist/client/assets/timeline-definition-24CTP7MA-CKntrnOJ.js.br +0 -0
  190. package/dist/client/assets/{timeline-definition-24CTP7MA-DkLijg_J.js.gz → timeline-definition-24CTP7MA-CKntrnOJ.js.gz} +0 -0
  191. package/dist/client/assets/{triangle-alert-D_6xTTiX.js → triangle-alert-DPNiOY7C.js} +1 -1
  192. package/dist/client/assets/{vennDiagram-4TSXK5OY-AWGJtiv3.js → vennDiagram-4TSXK5OY-W9jedFfD.js} +1 -1
  193. package/dist/client/assets/vennDiagram-4TSXK5OY-W9jedFfD.js.br +0 -0
  194. package/dist/client/assets/vennDiagram-4TSXK5OY-W9jedFfD.js.gz +0 -0
  195. package/dist/client/assets/{videoCompression-D3y7Bq8J.js → videoCompression-BYHN4Eba.js} +1 -1
  196. package/dist/client/assets/videoCompression-BYHN4Eba.js.br +0 -0
  197. package/dist/client/assets/videoCompression-BYHN4Eba.js.gz +0 -0
  198. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-DI0aZr_y.js → wardleyDiagram-VM6X3IG4-CzvXMjBC.js} +1 -1
  199. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CzvXMjBC.js.br +0 -0
  200. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CzvXMjBC.js.gz +0 -0
  201. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-CCoIN3uU.js → xychartDiagram-S5SC5T6Z-VD8CKhIU.js} +1 -1
  202. package/dist/client/assets/xychartDiagram-S5SC5T6Z-VD8CKhIU.js.br +0 -0
  203. package/dist/client/assets/xychartDiagram-S5SC5T6Z-VD8CKhIU.js.gz +0 -0
  204. package/dist/client/index.html +2 -2
  205. package/dist/client/index.html.br +0 -0
  206. package/dist/client/index.html.gz +0 -0
  207. package/dist/client/sw.js +1 -1
  208. package/dist/client/sw.js.br +0 -0
  209. package/dist/client/sw.js.gz +0 -0
  210. package/dist/server/agent/integrationServer.js +6 -1
  211. package/dist/server/routes/terminal.js +21 -13
  212. package/dist/server/utils/hostResources.js +35 -0
  213. package/dist/server/utils/tmuxRecoveryOperations.js +72 -18
  214. package/package.json +1 -1
  215. package/runtime-manifest.json +3 -3
  216. package/dist/client/assets/App-D8MWr9xp.js +0 -186
  217. package/dist/client/assets/App-D8MWr9xp.js.br +0 -0
  218. package/dist/client/assets/App-D8MWr9xp.js.gz +0 -0
  219. package/dist/client/assets/ArchitecturePanel-CJXvqmtu.js +0 -9
  220. package/dist/client/assets/ArchitecturePanel-CJXvqmtu.js.br +0 -0
  221. package/dist/client/assets/ArchitecturePanel-CJXvqmtu.js.gz +0 -0
  222. package/dist/client/assets/ChangeWalkthroughPanel-ChPZVfRz.js.br +0 -0
  223. package/dist/client/assets/ChangeWalkthroughPanel-ChPZVfRz.js.gz +0 -0
  224. package/dist/client/assets/CollaborationMainWorkspace-DkNhqCj4.js.br +0 -0
  225. package/dist/client/assets/CollaborationMainWorkspace-DkNhqCj4.js.gz +0 -0
  226. package/dist/client/assets/CollaborationTaskContent-BA3bVNJo.js +0 -2
  227. package/dist/client/assets/ComputerControlView-BTntDI6C.js +0 -5
  228. package/dist/client/assets/ComputerControlView-BTntDI6C.js.br +0 -0
  229. package/dist/client/assets/ComputerControlView-BTntDI6C.js.gz +0 -0
  230. package/dist/client/assets/DagPlayground-BIL5vjer.js.br +0 -0
  231. package/dist/client/assets/DagPlayground-BIL5vjer.js.gz +0 -0
  232. package/dist/client/assets/DiffLab-CX1AwU2v.js.br +0 -0
  233. package/dist/client/assets/DiffLab-CX1AwU2v.js.gz +0 -0
  234. package/dist/client/assets/DiffReview-CLc1hwO7.js.br +0 -0
  235. package/dist/client/assets/DiffReview-CLc1hwO7.js.gz +0 -0
  236. package/dist/client/assets/DiffReviewLab-DE6m1o4p.js.br +0 -0
  237. package/dist/client/assets/DiffReviewLab-DE6m1o4p.js.gz +0 -0
  238. package/dist/client/assets/DiffViewer-BDwtwbQM.js.br +0 -0
  239. package/dist/client/assets/DiffViewer-BDwtwbQM.js.gz +0 -0
  240. package/dist/client/assets/ModelPreview-DEwATnxi.js.br +0 -0
  241. package/dist/client/assets/ModelPreview-DEwATnxi.js.gz +0 -0
  242. package/dist/client/assets/RightSidebar-jOQJePDV.js.br +0 -0
  243. package/dist/client/assets/RightSidebar-jOQJePDV.js.gz +0 -0
  244. package/dist/client/assets/abnfDiagram-VCTEODGH-GBSf8AEr.js.br +0 -0
  245. package/dist/client/assets/abnfDiagram-VCTEODGH-GBSf8AEr.js.gz +0 -0
  246. package/dist/client/assets/app-VCmiASzh.js.br +0 -0
  247. package/dist/client/assets/app-VCmiASzh.js.gz +0 -0
  248. package/dist/client/assets/arc-BecvFgjf.js.br +0 -0
  249. package/dist/client/assets/arc-BecvFgjf.js.gz +0 -0
  250. package/dist/client/assets/architectureDiagram-5GKGNRK7-Cfk47zEF.js.br +0 -0
  251. package/dist/client/assets/architectureDiagram-5GKGNRK7-Cfk47zEF.js.gz +0 -0
  252. package/dist/client/assets/blockDiagram-I7D4REHJ-BHYgsLvx.js.br +0 -0
  253. package/dist/client/assets/blockDiagram-I7D4REHJ-BHYgsLvx.js.gz +0 -0
  254. package/dist/client/assets/c4Diagram-7LVT6UL2-ClWWjTyz.js.br +0 -0
  255. package/dist/client/assets/c4Diagram-7LVT6UL2-ClWWjTyz.js.gz +0 -0
  256. package/dist/client/assets/channel-8F8qxLSK.js +0 -1
  257. package/dist/client/assets/chunk-F27PBJKO-7o5_yA1b.js.br +0 -0
  258. package/dist/client/assets/chunk-F27PBJKO-7o5_yA1b.js.gz +0 -0
  259. package/dist/client/assets/chunk-IMKFNOWR-iAZxGMup.js.br +0 -0
  260. package/dist/client/assets/chunk-IMKFNOWR-iAZxGMup.js.gz +0 -0
  261. package/dist/client/assets/chunk-SVP7TREG-DpB7xpqI.js.br +0 -0
  262. package/dist/client/assets/chunk-SVP7TREG-DpB7xpqI.js.gz +0 -0
  263. package/dist/client/assets/chunk-TICWLB2K-Z_Sti6yX.js.gz +0 -0
  264. package/dist/client/assets/classDiagram-ZZMXUADV-C0AmKz7U.js +0 -1
  265. package/dist/client/assets/classDiagram-v2-VYDZK3BY-C0AmKz7U.js +0 -1
  266. package/dist/client/assets/cose-bilkent-JH36ORCC-CDo8eUXo.js.br +0 -0
  267. package/dist/client/assets/cose-bilkent-JH36ORCC-CDo8eUXo.js.gz +0 -0
  268. package/dist/client/assets/cynefin-OW5HDTMX-R6vltrl4.js.br +0 -0
  269. package/dist/client/assets/cynefin-OW5HDTMX-R6vltrl4.js.gz +0 -0
  270. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-BTGMG-zO.js.br +0 -0
  271. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-BTGMG-zO.js.gz +0 -0
  272. package/dist/client/assets/dagre-GXQ25YYZ-D67dNSHU.js.br +0 -0
  273. package/dist/client/assets/dagre-GXQ25YYZ-D67dNSHU.js.gz +0 -0
  274. package/dist/client/assets/diagram-S7CK7UJ4-CxZmcHs4.js.br +0 -0
  275. package/dist/client/assets/diagram-S7CK7UJ4-CxZmcHs4.js.gz +0 -0
  276. package/dist/client/assets/diagram-UQ7AKVKN-BErivsDz.js.br +0 -0
  277. package/dist/client/assets/diagram-UQ7AKVKN-BErivsDz.js.gz +0 -0
  278. package/dist/client/assets/diagram-VSXAHHWV-BQWEvK9d.js.br +0 -0
  279. package/dist/client/assets/diagram-VSXAHHWV-BQWEvK9d.js.gz +0 -0
  280. package/dist/client/assets/diagram-VX7I27RA-COR5k4JL.js.br +0 -0
  281. package/dist/client/assets/diagram-VX7I27RA-COR5k4JL.js.gz +0 -0
  282. package/dist/client/assets/diagram-Z3DM3KII-Cx6oTlVi.js.br +0 -0
  283. package/dist/client/assets/diagram-Z3DM3KII-Cx6oTlVi.js.gz +0 -0
  284. package/dist/client/assets/ebnfDiagram-PWID7BFC-dKNZki9k.js.br +0 -0
  285. package/dist/client/assets/ebnfDiagram-PWID7BFC-dKNZki9k.js.gz +0 -0
  286. package/dist/client/assets/erDiagram-RLTQ6QDP-DD06d9Gl.js.gz +0 -0
  287. package/dist/client/assets/flowDiagram-HODETNUW-DXNAvw1d.js.br +0 -0
  288. package/dist/client/assets/flowDiagram-HODETNUW-DXNAvw1d.js.gz +0 -0
  289. package/dist/client/assets/ganttDiagram-EL5Y4UJY-BSMu3Rsd.js.br +0 -0
  290. package/dist/client/assets/ganttDiagram-EL5Y4UJY-BSMu3Rsd.js.gz +0 -0
  291. package/dist/client/assets/gestureArbiter-D1TteC76.js.br +0 -0
  292. package/dist/client/assets/gestureArbiter-D1TteC76.js.gz +0 -0
  293. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DNDKI803.js.br +0 -0
  294. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DNDKI803.js.gz +0 -0
  295. package/dist/client/assets/index-Ctz-IDjR.css +0 -1
  296. package/dist/client/assets/index-Ctz-IDjR.css.br +0 -0
  297. package/dist/client/assets/ishikawaDiagram-5VMMS53U-DXU4nnZ6.js.br +0 -0
  298. package/dist/client/assets/ishikawaDiagram-5VMMS53U-DXU4nnZ6.js.gz +0 -0
  299. package/dist/client/assets/journeyDiagram-3NMN7TZE-DFx7AfiP.js.br +0 -0
  300. package/dist/client/assets/journeyDiagram-3NMN7TZE-DFx7AfiP.js.gz +0 -0
  301. package/dist/client/assets/kanban-definition-UXKFOSKX-B1ikfXJe.js.br +0 -0
  302. package/dist/client/assets/kanban-definition-UXKFOSKX-B1ikfXJe.js.gz +0 -0
  303. package/dist/client/assets/layout-DkyvZr1Y.js.br +0 -0
  304. package/dist/client/assets/layout-DkyvZr1Y.js.gz +0 -0
  305. package/dist/client/assets/linear-CECAbRuX.js.br +0 -0
  306. package/dist/client/assets/linear-CECAbRuX.js.gz +0 -0
  307. package/dist/client/assets/mermaid.core-CYY7Wb75.js.br +0 -0
  308. package/dist/client/assets/mermaid.core-CYY7Wb75.js.gz +0 -0
  309. package/dist/client/assets/mindmap-definition-YA3MSWOX-CTs-Y3Lq.js.br +0 -0
  310. package/dist/client/assets/mindmap-definition-YA3MSWOX-CTs-Y3Lq.js.gz +0 -0
  311. package/dist/client/assets/passwordBootstrap-CPNGDwv6.js.br +0 -0
  312. package/dist/client/assets/passwordBootstrap-CPNGDwv6.js.gz +0 -0
  313. package/dist/client/assets/pegDiagram-XKGWAZYB-Y1oZrwtK.js.br +0 -0
  314. package/dist/client/assets/pegDiagram-XKGWAZYB-Y1oZrwtK.js.gz +0 -0
  315. package/dist/client/assets/pieDiagram-E7YTZNPT-DYSm5OxQ.js.br +0 -0
  316. package/dist/client/assets/pieDiagram-E7YTZNPT-DYSm5OxQ.js.gz +0 -0
  317. package/dist/client/assets/quadrantDiagram-AXDQQJYC-DpibIBz0.js.gz +0 -0
  318. package/dist/client/assets/railroadDiagram-O6MQD6OU-b7jp7C1K.js.br +0 -0
  319. package/dist/client/assets/railroadDiagram-O6MQD6OU-b7jp7C1K.js.gz +0 -0
  320. package/dist/client/assets/rdpSession-DU_OJfX5.js +0 -1
  321. package/dist/client/assets/rdpSession-DU_OJfX5.js.br +0 -0
  322. package/dist/client/assets/rdpSession-DU_OJfX5.js.gz +0 -0
  323. package/dist/client/assets/referenceLongPress-BPQ_i68g.js.br +0 -0
  324. package/dist/client/assets/referenceLongPress-BPQ_i68g.js.gz +0 -0
  325. package/dist/client/assets/requirementDiagram-BXWQKSXE-BMinO1mf.js.br +0 -0
  326. package/dist/client/assets/requirementDiagram-BXWQKSXE-BMinO1mf.js.gz +0 -0
  327. package/dist/client/assets/sankeyDiagram-P5KCCOFB-CmC977VA.js.br +0 -0
  328. package/dist/client/assets/sankeyDiagram-P5KCCOFB-CmC977VA.js.gz +0 -0
  329. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D6eGbgK8.js.br +0 -0
  330. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D6eGbgK8.js.gz +0 -0
  331. package/dist/client/assets/sizeCapture-INFHLROL-CnRvyBd8.js.br +0 -0
  332. package/dist/client/assets/sizeCapture-INFHLROL-CnRvyBd8.js.gz +0 -0
  333. package/dist/client/assets/stateDiagram-D77RDMKH-DRSalH10.js.br +0 -0
  334. package/dist/client/assets/stateDiagram-D77RDMKH-DRSalH10.js.gz +0 -0
  335. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DKe8v_ic.js +0 -1
  336. package/dist/client/assets/swimlanes-42K2YHIH-u-NnDSzq.js.br +0 -0
  337. package/dist/client/assets/swimlanes-42K2YHIH-u-NnDSzq.js.gz +0 -0
  338. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-ei5b8ZYx.js +0 -8
  339. package/dist/client/assets/timeline-definition-24CTP7MA-DkLijg_J.js.br +0 -0
  340. package/dist/client/assets/vennDiagram-4TSXK5OY-AWGJtiv3.js.br +0 -0
  341. package/dist/client/assets/vennDiagram-4TSXK5OY-AWGJtiv3.js.gz +0 -0
  342. package/dist/client/assets/videoCompression-D3y7Bq8J.js.br +0 -0
  343. package/dist/client/assets/videoCompression-D3y7Bq8J.js.gz +0 -0
  344. package/dist/client/assets/wardleyDiagram-VM6X3IG4-DI0aZr_y.js.br +0 -0
  345. package/dist/client/assets/wardleyDiagram-VM6X3IG4-DI0aZr_y.js.gz +0 -0
  346. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CCoIN3uU.js.br +0 -0
  347. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CCoIN3uU.js.gz +0 -0
@@ -4,10 +4,27 @@ import { randomUUID } from 'node:crypto';
4
4
  export function summarizeRecoveryOperation(operation) {
5
5
  const counts = operation.items.reduce((total, item) => {
6
6
  total.total += 1;
7
- total[item.state] += 1;
7
+ if (item.state === 'resource_wait') {
8
+ total.resource_wait += 1;
9
+ total.paused_count += 1;
10
+ }
11
+ else if (item.state === 'paused') {
12
+ total.paused_count += 1;
13
+ if (item.pauseReason === 'resources')
14
+ total.resource_wait += 1;
15
+ }
16
+ else if (item.state === 'queued' && operation.paused) {
17
+ total.paused_count += 1;
18
+ }
19
+ else {
20
+ total[item.state] += 1;
21
+ }
8
22
  return total;
9
- }, { total: 0, queued: 0, resource_wait: 0, running: 0, succeeded: 0, failed: 0 });
10
- return { ...structuredClone(operation), ...counts };
23
+ }, { total: 0, queued: 0, resource_wait: 0, running: 0, succeeded: 0, failed: 0, paused_count: 0 });
24
+ return { ...structuredClone(operation), ...counts, counts: {
25
+ total: counts.total, queued: counts.queued, running: counts.running,
26
+ succeeded: counts.succeeded, failed: counts.failed, paused: counts.paused_count,
27
+ } };
11
28
  }
12
29
  export class TmuxRecoveryOperationError extends Error {
13
30
  code;
@@ -78,7 +95,8 @@ export class TmuxRecoveryOperationStore {
78
95
  if (item.state === 'running') {
79
96
  // A killed worker may have submitted the native resume before it died.
80
97
  // The runner always performs an exact-owner reconciliation before it launches.
81
- item.state = 'queued';
98
+ item.state = operation.paused ? 'paused' : 'queued';
99
+ item.pauseReason = operation.paused ? 'manual' : undefined;
82
100
  item.phase = 'restart_reconciliation';
83
101
  item.errorCode = 'RECOVERY_WORKER_RESTARTED';
84
102
  item.error = 'Service restarted during recovery; exact runtime ownership will be reconciled before retry.';
@@ -86,7 +104,7 @@ export class TmuxRecoveryOperationStore {
86
104
  }
87
105
  }
88
106
  if (!terminalState(operation.state) && !operation.paused)
89
- operation.state = 'queued';
107
+ operation.state = operation.items.some(item => item.state === 'paused' && item.pauseReason === 'resources') ? 'paused' : 'queued';
90
108
  operation.updatedAt = recovered ? now : operation.updatedAt;
91
109
  }
92
110
  if (recovered)
@@ -109,7 +127,7 @@ export class TmuxRecoveryOperationStore {
109
127
  ? { ...input.scope, sessionIds: [...new Set(input.scope.sessionIds ?? [])].sort() }
110
128
  : structuredClone(input.scope);
111
129
  const fingerprint = requestHash({ incidentId: input.incidentId, sessionIds, scope, concurrency });
112
- const existingKey = this.state.operations.find(operation => operation.idempotencyKey === input.idempotencyKey);
130
+ const existingKey = this.state.operations.find(operation => operation.idempotencyKey === input.idempotencyKey || operation.idempotencyKeyAliases?.includes(input.idempotencyKey));
113
131
  if (existingKey) {
114
132
  if (existingKey.requestHash !== fingerprint)
115
133
  throw new TmuxRecoveryOperationError('IDEMPOTENCY_CONFLICT', 'The idempotency key was already used for a different recovery request.');
@@ -118,9 +136,19 @@ export class TmuxRecoveryOperationStore {
118
136
  if (this.state.operations.length >= 2000)
119
137
  throw new TmuxRecoveryOperationError('RECOVERY_OPERATION_LIMIT', 'Recovery operation history is full; archive diagnostics before creating another operation.');
120
138
  const inProgress = this.state.operations.find(operation => !terminalState(operation.state)
121
- && operation.items.some(item => sessionIds.includes(item.sessionId) && (item.state === 'queued' || item.state === 'resource_wait' || item.state === 'running')));
122
- if (inProgress)
123
- throw new TmuxRecoveryOperationError('RECOVERY_SESSION_IN_PROGRESS', 'At least one selected session is already in a recovery operation.', inProgress.id);
139
+ && operation.requestHash === fingerprint
140
+ && operation.items.some(item => sessionIds.includes(item.sessionId) && (item.state === 'queued' || item.state === 'resource_wait' || item.state === 'paused' || item.state === 'running')));
141
+ if (inProgress) {
142
+ inProgress.idempotencyKeyAliases = [...new Set([...(inProgress.idempotencyKeyAliases ?? []), input.idempotencyKey])];
143
+ inProgress.updatedAt = Date.now();
144
+ await this.persist();
145
+ this.emit();
146
+ return structuredClone(inProgress);
147
+ }
148
+ const overlapping = this.state.operations.find(operation => !terminalState(operation.state)
149
+ && operation.items.some(item => sessionIds.includes(item.sessionId) && (item.state === 'queued' || item.state === 'resource_wait' || item.state === 'paused' || item.state === 'running')));
150
+ if (overlapping)
151
+ throw new TmuxRecoveryOperationError('RECOVERY_SESSION_IN_PROGRESS', 'At least one selected session is already in a recovery operation.', overlapping.id);
124
152
  const now = Date.now();
125
153
  const operation = {
126
154
  id: randomUUID(), incidentId: input.incidentId, idempotencyKey: input.idempotencyKey,
@@ -157,6 +185,13 @@ export class TmuxRecoveryOperationStore {
157
185
  return null;
158
186
  if (!terminalState(operation.state)) {
159
187
  operation.paused = true;
188
+ operation.pauseReason = 'manual';
189
+ for (const item of operation.items) {
190
+ if (item.state === 'queued' || item.state === 'resource_wait' || (item.state === 'paused' && item.pauseReason === 'resources')) {
191
+ item.state = 'paused';
192
+ item.pauseReason = 'manual';
193
+ }
194
+ }
160
195
  operation.state = 'paused';
161
196
  operation.updatedAt = Date.now();
162
197
  await this.persist();
@@ -170,7 +205,16 @@ export class TmuxRecoveryOperationStore {
170
205
  return null;
171
206
  if (!terminalState(operation.state)) {
172
207
  operation.paused = false;
173
- operation.state = 'queued';
208
+ operation.pauseReason = undefined;
209
+ for (const item of operation.items) {
210
+ if (item.state === 'paused' && item.pauseReason === 'manual') {
211
+ item.state = item.resourceWaitReason ? 'paused' : 'queued';
212
+ item.pauseReason = item.resourceWaitReason ? 'resources' : undefined;
213
+ }
214
+ }
215
+ const waitingForResources = operation.items.some(item => item.state === 'paused' && item.pauseReason === 'resources');
216
+ operation.state = waitingForResources ? 'paused' : 'queued';
217
+ operation.pauseReason = waitingForResources ? 'resources' : undefined;
174
218
  operation.updatedAt = Date.now();
175
219
  await this.persist();
176
220
  this.emit();
@@ -184,7 +228,8 @@ export class TmuxRecoveryOperationStore {
184
228
  const lastCompleted = [...items].filter(item => item.completedAt !== null).sort((a, b) => (b.completedAt ?? 0) - (a.completedAt ?? 0))[0];
185
229
  return {
186
230
  queued: items.filter(item => item.state === 'queued').length,
187
- resource_wait: items.filter(item => item.state === 'resource_wait').length,
231
+ paused: items.filter(item => item.state === 'paused' || item.state === 'resource_wait').length,
232
+ resource_wait: items.filter(item => item.state === 'resource_wait' || (item.state === 'paused' && item.pauseReason === 'resources')).length,
188
233
  running: items.filter(item => item.state === 'running').length,
189
234
  activeLaunches: this.active,
190
235
  lastCompletedAt: lastCompleted?.completedAt ?? null,
@@ -213,8 +258,8 @@ export class TmuxRecoveryOperationStore {
213
258
  while (this.active < this.concurrencyLimit) {
214
259
  const candidate = this.state.operations.find(operation => !operation.paused && !terminalState(operation.state)
215
260
  && operation.items.filter(item => item.state === 'running').length < operation.concurrency
216
- && operation.items.some(item => (item.state === 'queued' || item.state === 'resource_wait') && !deferred.has(`${operation.id}:${item.sessionId}`)));
217
- const item = candidate?.items.find(entry => (entry.state === 'queued' || entry.state === 'resource_wait') && !deferred.has(`${candidate.id}:${entry.sessionId}`));
261
+ && operation.items.some(item => (item.state === 'queued' || item.state === 'resource_wait' || (item.state === 'paused' && item.pauseReason === 'resources')) && !deferred.has(`${operation.id}:${item.sessionId}`)));
262
+ const item = candidate?.items.find(entry => (entry.state === 'queued' || entry.state === 'resource_wait' || (entry.state === 'paused' && entry.pauseReason === 'resources')) && !deferred.has(`${candidate.id}:${entry.sessionId}`));
218
263
  if (!candidate || !item)
219
264
  break;
220
265
  if (this.admission) {
@@ -228,10 +273,12 @@ export class TmuxRecoveryOperationStore {
228
273
  item.memAvailableBytes = admission.memAvailableBytes;
229
274
  item.estimatedRssBytes = admission.estimatedRssBytes ?? item.estimatedRssBytes;
230
275
  if (!admission.admitted) {
231
- item.state = 'resource_wait';
276
+ item.state = 'paused';
277
+ item.pauseReason = 'resources';
232
278
  item.phase = 'resource_wait';
233
279
  item.resourceWaitReason = admission.reason ?? 'Resource budget is not currently available.';
234
- candidate.state = 'resource_wait';
280
+ candidate.pauseReason = 'resources';
281
+ candidate.state = candidate.items.some(candidateItem => candidateItem.state === 'running') ? 'running' : 'paused';
235
282
  candidate.updatedAt = Date.now();
236
283
  deferred.add(`${candidate.id}:${item.sessionId}`);
237
284
  await this.persist();
@@ -239,6 +286,8 @@ export class TmuxRecoveryOperationStore {
239
286
  continue;
240
287
  }
241
288
  item.resourceWaitReason = undefined;
289
+ item.pauseReason = undefined;
290
+ candidate.pauseReason = candidate.items.some(candidateItem => candidateItem.state === 'paused' && candidateItem.pauseReason === 'resources' && candidateItem !== item) ? 'resources' : undefined;
242
291
  }
243
292
  if (candidate.paused)
244
293
  break;
@@ -255,7 +304,7 @@ export class TmuxRecoveryOperationStore {
255
304
  void this.execute(candidate, item);
256
305
  }
257
306
  if (this.state.operations.some(operation => !operation.paused && !terminalState(operation.state)
258
- && operation.items.some(item => item.state === 'resource_wait'))) {
307
+ && operation.items.some(item => item.state === 'resource_wait' || (item.state === 'paused' && item.pauseReason === 'resources')))) {
259
308
  const retry = setTimeout(() => void this.pump(), 5_000);
260
309
  retry.unref?.();
261
310
  }
@@ -299,15 +348,20 @@ export class TmuxRecoveryOperationStore {
299
348
  finally {
300
349
  item.completedAt = Date.now();
301
350
  operation.updatedAt = item.completedAt;
302
- const hasPending = operation.items.some(candidate => candidate.state === 'queued' || candidate.state === 'resource_wait' || candidate.state === 'running');
351
+ const hasPending = operation.items.some(candidate => candidate.state === 'queued' || candidate.state === 'resource_wait' || candidate.state === 'paused' || candidate.state === 'running');
303
352
  if (!hasPending) {
304
353
  operation.paused = false;
354
+ operation.pauseReason = undefined;
305
355
  operation.state = operation.items.some(candidate => candidate.state === 'failed') ? 'partial_failure' : 'succeeded';
306
356
  }
307
357
  else {
308
358
  operation.state = operation.paused ? 'paused'
309
359
  : operation.items.some(candidate => candidate.state === 'running') ? 'running'
310
- : operation.items.some(candidate => candidate.state === 'queued') ? 'queued' : 'resource_wait';
360
+ : operation.items.some(candidate => candidate.state === 'queued') ? 'queued' : 'paused';
361
+ if (operation.paused)
362
+ operation.pauseReason = 'manual';
363
+ else if (!operation.items.some(candidate => candidate.state === 'running' || candidate.state === 'queued'))
364
+ operation.pauseReason = 'resources';
311
365
  }
312
366
  this.active = Math.max(0, this.active - 1);
313
367
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termdock",
3
- "version": "1.4.325",
3
+ "version": "1.4.326",
4
4
  "description": "A complete web-based terminal application with modern UI",
5
5
  "type": "module",
6
6
  "main": ".desktop-dist/main.js",
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "packageName": "termdock",
4
- "version": "1.4.325",
4
+ "version": "1.4.326",
5
5
  "runtimeProtocolVersion": 1,
6
6
  "minimumDesktopVersion": "1.4.46",
7
7
  "nodeMajor": 22,
8
8
  "dependencyHash": "sha256-oaGYi/P5ob8sd6VnNBOwshKozjhdV+hYiCmLAsn5x00=",
9
- "serverBundleHash": "sha256-lFOekSTHpHZrRuNcWm20UDGwKSjiviUQKjaT/zSYBvc=",
10
- "clientBundleHash": "sha256-RVhKCGWk1bExA0aa9FHB8dutqDr/aCkALgScfT+IS80=",
9
+ "serverBundleHash": "sha256-8rbCJEWANeXtZp/cvJ7UT9tGunnkMMxL7mcvARckvLQ=",
10
+ "clientBundleHash": "sha256-9MzxeyAxwRf4rg374l2f6wUzrybLPL+H5boh1/uodkQ=",
11
11
  "entrypoint": "dist/server/cli.js",
12
12
  "clientEntrypoint": "dist/client/index.html"
13
13
  }