@auto-ai/agent 2.1.212 → 2.1.214

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 (506) hide show
  1. package/dist/safe-a/404/index.html +1 -1
  2. package/dist/safe-a/404.html +1 -1
  3. package/dist/safe-a/_next/static/{AY06zpWQV0yfK_fQwZZ5t → 8K8MheZHG-fXZxruG2Nc8}/_buildManifest.js +1 -1
  4. package/dist/safe-a/_next/static/chunks/{ab522ef4566e28db.js → 01766c1e2fdff227.js} +1 -1
  5. package/dist/safe-a/_next/static/chunks/{aa34ec2d74f7775c.js → 04c9439163b67552.js} +1 -1
  6. package/dist/safe-a/_next/static/chunks/05e1926dc5c477b7.js +1 -0
  7. package/dist/safe-a/_next/static/chunks/{e7d6284971d07422.js → 06b923aa1177f43f.js} +1 -1
  8. package/dist/safe-a/_next/static/chunks/{9924bd3807982f9c.js → 092c97532613af2a.js} +1 -1
  9. package/dist/safe-a/_next/static/chunks/0b5e5b964346a287.js +1 -0
  10. package/dist/safe-a/_next/static/chunks/0b639ff4f1971d14.js +1 -0
  11. package/dist/safe-a/_next/static/chunks/{7cd0d9159e722599.js → 0b69dba7f1e63f30.js} +1 -1
  12. package/dist/safe-a/_next/static/chunks/{af07509fa7bac8c4.js → 0ce6504fc10ce408.js} +1 -1
  13. package/dist/safe-a/_next/static/chunks/{e07906d264057e7b.js → 0e1e7d5f7a375308.js} +1 -1
  14. package/dist/safe-a/_next/static/chunks/{00b0744649a5e608.js → 0e8139882ad093d2.js} +1 -1
  15. package/dist/safe-a/_next/static/chunks/0ea5a62c3f30dc56.js +1 -0
  16. package/dist/safe-a/_next/static/chunks/0f1810e4c6b0dd0c.js +1 -0
  17. package/dist/safe-a/_next/static/chunks/{70b95d96e33a5d63.js → 0fa097a572705cfa.js} +1 -1
  18. package/dist/safe-a/_next/static/chunks/{faf267ae8eaabb78.js → 0fb0d030e8dee231.js} +1 -1
  19. package/dist/safe-a/_next/static/chunks/{ed4322c3137a7cbf.js → 0fd3876e0d9e8acc.js} +1 -1
  20. package/dist/safe-a/_next/static/chunks/{c43009f5a3f83289.js → 106955e3cc6a6843.js} +1 -1
  21. package/dist/safe-a/_next/static/chunks/{3f18c3fa64301e74.js → 1078bc1642db53ad.js} +1 -1
  22. package/dist/safe-a/_next/static/chunks/{a0256e00bbdc334c.js → 108a0b77418f1d31.js} +1 -1
  23. package/dist/safe-a/_next/static/chunks/1289fc2bb1119e18.js +1 -0
  24. package/dist/safe-a/_next/static/chunks/{967dfe61a543e533.js → 13b54d70a1ee1de7.js} +1 -1
  25. package/dist/safe-a/_next/static/chunks/{54a2df4508a1c311.js → 13f94fc3dda88c90.js} +1 -1
  26. package/dist/safe-a/_next/static/chunks/155374df9f6b4b9a.js +1 -0
  27. package/dist/safe-a/_next/static/chunks/{12932eb7d288b09b.js → 16ea1d3cf6db8a53.js} +1 -1
  28. package/dist/safe-a/_next/static/chunks/{23f50ba74d421ab3.js → 170f7361bd4d33e2.js} +1 -1
  29. package/dist/safe-a/_next/static/chunks/17722e3ac4e00587.js +1 -0
  30. package/dist/safe-a/_next/static/chunks/{c0960892f67b4256.js → 179a5dac78ab2cb9.js} +1 -1
  31. package/dist/safe-a/_next/static/chunks/{966730983f55a7c6.js → 1818d7a661948f6b.js} +1 -1
  32. package/dist/safe-a/_next/static/chunks/18977fe8f51209aa.js +1 -0
  33. package/dist/safe-a/_next/static/chunks/{57e13ec897ff78d6.js → 19584f955475ce91.js} +1 -1
  34. package/dist/safe-a/_next/static/chunks/1974f51c298bce94.js +1 -0
  35. package/dist/safe-a/_next/static/chunks/{948dc342d4746ffc.js → 19c1491e85e22b3b.js} +1 -1
  36. package/dist/safe-a/_next/static/chunks/{a8696c4a576878ae.js → 19ca17e5015c42a3.js} +1 -1
  37. package/dist/safe-a/_next/static/chunks/{03039556684e9812.js → 1a4b553856a8ffdf.js} +1 -1
  38. package/dist/safe-a/_next/static/chunks/{93588b2335ca95de.js → 1b55c29b8cad4a50.js} +1 -1
  39. package/dist/safe-a/_next/static/chunks/{878dd96f8fcd6bd4.js → 1bb28f71c19fa824.js} +1 -1
  40. package/dist/safe-a/_next/static/chunks/1bfa645704d9149a.js +1 -0
  41. package/dist/safe-a/_next/static/chunks/{fd3f75ac79c1d04e.js → 1c9321874fea5f0d.js} +1 -1
  42. package/dist/safe-a/_next/static/chunks/{8b1990cf2eb41663.js → 1d3e7886be9f671c.js} +1 -1
  43. package/dist/safe-a/_next/static/chunks/{d2bba4dbd6e24f7e.js → 1e17456ccebc9cd2.js} +1 -1
  44. package/dist/safe-a/_next/static/chunks/{2bd512c6acf9ee9b.js → 1e43922998a0ed2f.js} +1 -1
  45. package/dist/safe-a/_next/static/chunks/{d653880800910810.js → 1fec17d16aff9eed.js} +1 -1
  46. package/dist/safe-a/_next/static/chunks/{a39dba23f5098cde.js → 2046937bffedf074.js} +1 -1
  47. package/dist/safe-a/_next/static/chunks/219a3413675ba6f1.js +1 -0
  48. package/dist/safe-a/_next/static/chunks/{8cee526b3846c40b.js → 2326118ef1328bc5.js} +1 -1
  49. package/dist/safe-a/_next/static/chunks/236775e4ec4f8a94.js +1 -0
  50. package/dist/safe-a/_next/static/chunks/{afab34a5bb437673.js → 242529c986baeb00.js} +1 -1
  51. package/dist/safe-a/_next/static/chunks/27069b3f310e0a86.js +1 -0
  52. package/dist/safe-a/_next/static/chunks/{dfd8167d74bbaa3a.js → 270d7571d2eea071.js} +1 -1
  53. package/dist/safe-a/_next/static/chunks/{591fe54d06e0a33e.js → 27c407347ce26b78.js} +1 -1
  54. package/dist/safe-a/_next/static/chunks/{03af20498d43b518.js → 27ff2e69b2fd19e5.js} +1 -1
  55. package/dist/safe-a/_next/static/chunks/291c07da1c127dc1.js +1 -0
  56. package/dist/safe-a/_next/static/chunks/29676075a0390867.js +1 -0
  57. package/dist/safe-a/_next/static/chunks/{2be2d49054d4606c.js → 2c6d585a97629311.js} +1 -1
  58. package/dist/safe-a/_next/static/chunks/{1409701c73ffe517.js → 2df3e464b6247e75.js} +1 -1
  59. package/dist/safe-a/_next/static/chunks/2e574acbf68e77ff.js +1 -0
  60. package/dist/safe-a/_next/static/chunks/2e57b45e52bb735e.js +1 -0
  61. package/dist/safe-a/_next/static/chunks/{c537d051140acc61.js → 2ec6d7ddb4c04987.js} +1 -1
  62. package/dist/safe-a/_next/static/chunks/{dee1daaeed29e5a2.js → 2f7d30e66e995b02.js} +1 -1
  63. package/dist/safe-a/_next/static/chunks/{66247e9b3cf471f5.js → 2fab2306850ac97b.js} +1 -1
  64. package/dist/safe-a/_next/static/chunks/{9721e6d173bcda17.js → 2fcc6298b6dd7a82.js} +1 -1
  65. package/dist/safe-a/_next/static/chunks/{ccbe0fe39b523768.js → 303d9c2a2c956f25.js} +1 -1
  66. package/dist/safe-a/_next/static/chunks/32a7ca0a75a897da.js +1 -0
  67. package/dist/safe-a/_next/static/chunks/{06e2cd3fae94aae8.js → 32b4d63e10d31351.js} +1 -1
  68. package/dist/safe-a/_next/static/chunks/{4f55f5dfceddc1fe.js → 32b9bdd82a961878.js} +1 -1
  69. package/dist/safe-a/_next/static/chunks/3509a66e019ceae3.js +1 -0
  70. package/dist/safe-a/_next/static/chunks/{ae7e9c73a1d653fd.js → 3520f1af0a1b7f66.js} +1 -1
  71. package/dist/safe-a/_next/static/chunks/{7b6898a7f9df6495.js → 354aaa2e36b75b81.js} +1 -1
  72. package/dist/safe-a/_next/static/chunks/{e4776ea06fa1720a.js → 3590c4a4f40cdb5d.js} +1 -1
  73. package/dist/safe-a/_next/static/chunks/{2ccdfcf9ecfa2ea8.js → 35f1637c2feb232d.js} +1 -1
  74. package/dist/safe-a/_next/static/chunks/{94d40dcd515ca4ad.js → 37bbbf907196a5bf.js} +1 -1
  75. package/dist/safe-a/_next/static/chunks/{7ed753f2db91bc38.js → 37cfaa4963ac51f3.js} +1 -1
  76. package/dist/safe-a/_next/static/chunks/{29a317486c4ab7d7.js → 3934bd57f459566e.js} +1 -1
  77. package/dist/safe-a/_next/static/chunks/{a3af4dcdb725b47f.js → 3a947667fddbdd53.js} +1 -1
  78. package/dist/safe-a/_next/static/chunks/3aac5736e5781b46.js +1 -0
  79. package/dist/safe-a/_next/static/chunks/{f7d33f46dfbddf65.js → 3ae23df392f9bed8.js} +1 -1
  80. package/dist/safe-a/_next/static/chunks/{65ee07c4b6209141.js → 3ae4e2529aa621fb.js} +1 -1
  81. package/dist/safe-a/_next/static/chunks/{30f37e8e02339538.js → 3b2bb9f17546ee3e.js} +1 -1
  82. package/dist/safe-a/_next/static/chunks/{02339beb679bec8d.js → 3bcd531d40d6c019.js} +1 -1
  83. package/dist/safe-a/_next/static/chunks/3c695d1c2efbc749.js +1 -0
  84. package/dist/safe-a/_next/static/chunks/3d8e9a96a69193d4.js +1 -0
  85. package/dist/safe-a/_next/static/chunks/3dcb1dcf23e7ab9c.js +1 -0
  86. package/dist/safe-a/_next/static/chunks/3e2ea3a7fe64826d.js +1 -0
  87. package/dist/safe-a/_next/static/chunks/{472047ea96adfca5.js → 3e9c98df7d56e9b2.js} +1 -1
  88. package/dist/safe-a/_next/static/chunks/{3da255bcf22e013d.js → 3ec05a61e93547d3.js} +1 -1
  89. package/dist/safe-a/_next/static/chunks/3f6fe8a1903009ea.js +1 -0
  90. package/dist/safe-a/_next/static/chunks/3fb4674edcb2d726.js +1 -0
  91. package/dist/safe-a/_next/static/chunks/{c013a3a3b1574b7d.js → 3fd03b9ed21b30fc.js} +1 -1
  92. package/dist/safe-a/_next/static/chunks/40268f8e3ff0314e.js +1 -0
  93. package/dist/safe-a/_next/static/chunks/40a2fb9cf3a7e6fd.js +1 -0
  94. package/dist/safe-a/_next/static/chunks/{dabd2cc5e900d556.js → 40cc0252b2f1d855.js} +1 -1
  95. package/dist/safe-a/_next/static/chunks/{19a47cfc8ca4c0a7.js → 413a7be096275d7f.js} +1 -1
  96. package/dist/safe-a/_next/static/chunks/{e6c441f81a8ea81c.js → 44cbf68ad086a6a3.js} +1 -1
  97. package/dist/safe-a/_next/static/chunks/{435e18828af1d066.js → 459d401d9f9e5b9f.js} +1 -1
  98. package/dist/safe-a/_next/static/chunks/45ab9a1f693d609c.js +1 -0
  99. package/dist/safe-a/_next/static/chunks/{9db0d8129d6b7b5e.js → 481a2858f7df907d.js} +1 -1
  100. package/dist/safe-a/_next/static/chunks/{de208f3610c12b2c.js → 49df9708d6328c4a.js} +1 -1
  101. package/dist/safe-a/_next/static/chunks/{ad22e1613386ba8d.js → 4a340ea4ac145216.js} +1 -1
  102. package/dist/safe-a/_next/static/chunks/4a426c156537f974.js +1 -0
  103. package/dist/safe-a/_next/static/chunks/4be4ca8f1ec9c171.js +1 -0
  104. package/dist/safe-a/_next/static/chunks/4be779bcbd94352d.js +1 -0
  105. package/dist/safe-a/_next/static/chunks/4c33a1cc6db74105.js +1 -0
  106. package/dist/safe-a/_next/static/chunks/4d129d4e15c8c424.js +1 -0
  107. package/dist/safe-a/_next/static/chunks/{c84ea2dc8d3281e6.js → 4df298f5b420f474.js} +1 -1
  108. package/dist/safe-a/_next/static/chunks/{dfe4d8ffc37b96da.js → 4dfbfdff43b8479b.js} +1 -1
  109. package/dist/safe-a/_next/static/chunks/5069ee4aa806b0ea.js +1 -0
  110. package/dist/safe-a/_next/static/chunks/519049cd74a40910.js +1 -0
  111. package/dist/safe-a/_next/static/chunks/522518d740397639.js +1 -0
  112. package/dist/safe-a/_next/static/chunks/52e2164e45febae6.js +1 -0
  113. package/dist/safe-a/_next/static/chunks/{f8757d2c1a969081.js → 534b5acf573aa491.js} +1 -1
  114. package/dist/safe-a/_next/static/chunks/538cc02e54714b23.js +1 -0
  115. package/dist/safe-a/_next/static/chunks/{97d506a00590396c.js → 53be52c43a14557c.js} +1 -1
  116. package/dist/safe-a/_next/static/chunks/54c43751bf4c4da2.js +1 -0
  117. package/dist/safe-a/_next/static/chunks/{0c19efa935cdd816.js → 55087cc98e6237f1.js} +1 -1
  118. package/dist/safe-a/_next/static/chunks/{5c2a7e118fa66960.js → 55f8de91b4803778.js} +1 -1
  119. package/dist/safe-a/_next/static/chunks/{569dda34679bca70.js → 560ca23f77c0e819.js} +1 -1
  120. package/dist/safe-a/_next/static/chunks/{7c2d68248d759f50.js → 5798600d2ea8a3e8.js} +1 -1
  121. package/dist/safe-a/_next/static/chunks/{6e145bea7acc82b4.js → 57bb853857f3de83.js} +1 -1
  122. package/dist/safe-a/_next/static/chunks/{65963496d7fa49bc.js → 588e6975a7bd6671.js} +1 -1
  123. package/dist/safe-a/_next/static/chunks/58dfdb6e018c4a57.js +1 -0
  124. package/dist/safe-a/_next/static/chunks/{648649ebbc7565b9.js → 5a0b630678282d4f.js} +1 -1
  125. package/dist/safe-a/_next/static/chunks/{1f90e84b5a4dad81.js → 5a3e355216280144.js} +1 -1
  126. package/dist/safe-a/_next/static/chunks/{63f33483697b26ca.js → 5a4c198fd41e8ec4.js} +1 -1
  127. package/dist/safe-a/_next/static/chunks/5b916c9dc09e323c.js +1 -0
  128. package/dist/safe-a/_next/static/chunks/5ccd5a6ac9c2f980.js +1 -0
  129. package/dist/safe-a/_next/static/chunks/{eb248f97f593a288.js → 5d5333084191fb10.js} +1 -1
  130. package/dist/safe-a/_next/static/chunks/5d79b7f202080232.js +1 -0
  131. package/dist/safe-a/_next/static/chunks/{a367a4ab4b91ce6b.js → 5ea79c109cbe8a86.js} +1 -1
  132. package/dist/safe-a/_next/static/chunks/{daaffc256846db90.js → 5ee72092303043ef.js} +1 -1
  133. package/dist/safe-a/_next/static/chunks/{9583c5cc3861200c.js → 5fc8a5235ddfa787.js} +1 -1
  134. package/dist/safe-a/_next/static/chunks/{8c97e3b556b32001.js → 61ce261738313b8a.js} +1 -1
  135. package/dist/safe-a/_next/static/chunks/{503bbec2e3179a3c.js → 62d925bcc8518b6f.js} +1 -1
  136. package/dist/safe-a/_next/static/chunks/63ec034afca4b5d6.js +1 -0
  137. package/dist/safe-a/_next/static/chunks/{547eb82208058c71.js → 644aa76620718c98.js} +1 -1
  138. package/dist/safe-a/_next/static/chunks/{6d0bf0ac1fdb7eab.js → 648b653b36802fdc.js} +1 -1
  139. package/dist/safe-a/_next/static/chunks/{1d737ed6e08d2466.js → 6522643341a0921c.js} +1 -1
  140. package/dist/safe-a/_next/static/chunks/{829196dbf7eddb51.js → 65fb49c8a7f59842.js} +1 -1
  141. package/dist/safe-a/_next/static/chunks/{e878ffaf394e2c30.js → 65fe0975412ff703.js} +1 -1
  142. package/dist/safe-a/_next/static/chunks/6677c64fd587e78c.js +1 -0
  143. package/dist/safe-a/_next/static/chunks/{ea136b1a439307e8.js → 66b30159915524db.js} +1 -1
  144. package/dist/safe-a/_next/static/chunks/{cf99b249b986e2bd.js → 66ed07a735eac6e3.js} +1 -1
  145. package/dist/safe-a/_next/static/chunks/6785757cc05fec19.js +1 -0
  146. package/dist/safe-a/_next/static/chunks/{8aafb8ec5208a445.js → 67c9db5577080125.js} +1 -1
  147. package/dist/safe-a/_next/static/chunks/{ada2807c297fe674.js → 68bd2bd64624e20d.js} +1 -1
  148. package/dist/safe-a/_next/static/chunks/{774e554c11c8759a.js → 692e7ee14236fefb.js} +1 -1
  149. package/dist/safe-a/_next/static/chunks/696e3ddd135b85b4.js +1 -0
  150. package/dist/safe-a/_next/static/chunks/{dcdc329f64f1a7a8.js → 69cfdbc51cf2d3c3.js} +1 -1
  151. package/dist/safe-a/_next/static/chunks/{1aaf9fb00fb53ef9.js → 6ae709c575c74979.js} +1 -1
  152. package/dist/safe-a/_next/static/chunks/{dfbd9d8a4137edd6.js → 6b652524b5ffdd9e.js} +1 -1
  153. package/dist/safe-a/_next/static/chunks/{645741ee91707763.js → 6b7c3c962a14dc29.js} +1 -1
  154. package/dist/safe-a/_next/static/chunks/{ec24f7a0593636d9.js → 6bc7c57f119ad4f6.js} +1 -1
  155. package/dist/safe-a/_next/static/chunks/{2c0b2fd9fb2fea66.js → 6c3b2d0be1c633b6.js} +1 -1
  156. package/dist/safe-a/_next/static/chunks/{29cf9e89be8a7f75.js → 6cc2f7f962cdd082.js} +1 -1
  157. package/dist/safe-a/_next/static/chunks/6d1f15f3eb86ea37.js +1 -0
  158. package/dist/safe-a/_next/static/chunks/{3e45de4a81d1f7a6.js → 6d4209e94b1aafe6.js} +1 -1
  159. package/dist/safe-a/_next/static/chunks/{c43f94053172eb84.js → 6f3afa83656eab67.js} +1 -1
  160. package/dist/safe-a/_next/static/chunks/{b4d570502774dffb.js → 6f4460bd0b8a57af.js} +1 -1
  161. package/dist/safe-a/_next/static/chunks/{ec048ffab26ebcd6.js → 6fe835d41fdbd638.js} +1 -1
  162. package/dist/safe-a/_next/static/chunks/{6349c7cf3b394b81.js → 70459a2a4c45653e.js} +1 -1
  163. package/dist/safe-a/_next/static/chunks/{c5fd875d1d9fd6c4.js → 7137c7537c459c31.js} +1 -1
  164. package/dist/safe-a/_next/static/chunks/{740732a162598c49.js → 715c085d7c10eeda.js} +1 -1
  165. package/dist/safe-a/_next/static/chunks/{42d0ae4192d72f8e.js → 71668b2d16d048d8.js} +1 -1
  166. package/dist/safe-a/_next/static/chunks/71d3a80bc9d53b07.js +1 -0
  167. package/dist/safe-a/_next/static/chunks/{5c076874caf0532e.js → 71e3a90489469c28.js} +1 -1
  168. package/dist/safe-a/_next/static/chunks/{d0d06ea64246c2e0.js → 72a56bd75075fd83.js} +1 -1
  169. package/dist/safe-a/_next/static/chunks/{957b35b92a00be9d.js → 72ef1696f44fcf61.js} +1 -1
  170. package/dist/safe-a/_next/static/chunks/{5076e29ddf662e81.js → 736441266ceb14e2.js} +1 -1
  171. package/dist/safe-a/_next/static/chunks/{0f93a62e5e2db48b.js → 73cbf0064096e28c.js} +1 -1
  172. package/dist/safe-a/_next/static/chunks/7491dc26b3b05de9.js +1 -0
  173. package/dist/safe-a/_next/static/chunks/{ae1404fdd6ec935a.js → 751de74a23cc9036.js} +1 -1
  174. package/dist/safe-a/_next/static/chunks/{e632e1b120215697.js → 756b6c2e620386ff.js} +1 -1
  175. package/dist/safe-a/_next/static/chunks/{5ca0c9bb26daf732.js → 75a396e1752cd59d.js} +1 -1
  176. package/dist/safe-a/_next/static/chunks/764c541428e1c6eb.js +1 -0
  177. package/dist/safe-a/_next/static/chunks/{e7f1683dcd85bf06.js → 79128afded6e01d9.js} +1 -1
  178. package/dist/safe-a/_next/static/chunks/7988d5ea63356e10.js +1 -0
  179. package/dist/safe-a/_next/static/chunks/{cd733da27bed8af2.js → 7aa69fd5d97b7146.js} +1 -1
  180. package/dist/safe-a/_next/static/chunks/7b9c09d0ce43f1c2.js +1 -0
  181. package/dist/safe-a/_next/static/chunks/{9ae8f05f80dedfa4.js → 7d3bf918bccde738.js} +1 -1
  182. package/dist/safe-a/_next/static/chunks/7dbb8abebf50d816.js +1 -0
  183. package/dist/safe-a/_next/static/chunks/{fd9b8164ea743aa0.js → 7dd32128bdee61f7.js} +1 -1
  184. package/dist/safe-a/_next/static/chunks/7ef348801eff6590.js +1 -0
  185. package/dist/safe-a/_next/static/chunks/{2f35f32799fb08ac.js → 7f6e82ac63db5eff.js} +1 -1
  186. package/dist/safe-a/_next/static/chunks/{738c808ddc82ea44.js → 7fd45fb9cf0995f3.js} +1 -1
  187. package/dist/safe-a/_next/static/chunks/82614b5de9f78114.js +1 -0
  188. package/dist/safe-a/_next/static/chunks/{a12eeb7c77a7506f.js → 84185f4bb07ccbd7.js} +1 -1
  189. package/dist/safe-a/_next/static/chunks/85fc05549f7f100c.js +1 -0
  190. package/dist/safe-a/_next/static/chunks/{b0638abf4a6eb85f.js → 87e12ecbe9521f9b.js} +1 -1
  191. package/dist/safe-a/_next/static/chunks/{86c0a63bf95598a3.js → 88a999988f915988.js} +1 -1
  192. package/dist/safe-a/_next/static/chunks/88bc97899d2ce4e5.js +1 -0
  193. package/dist/safe-a/_next/static/chunks/8989a60219113c80.js +1 -0
  194. package/dist/safe-a/_next/static/chunks/{8e33e395e6224908.js → 8bdc142fad5847ed.js} +1 -1
  195. package/dist/safe-a/_next/static/chunks/{6818b9385873d081.js → 8deb0392842e5a01.js} +1 -1
  196. package/dist/safe-a/_next/static/chunks/8e5b2f279f1a9975.js +1 -0
  197. package/dist/safe-a/_next/static/chunks/{99ce8e2a747001a9.js → 8f038ff914c4b0df.js} +1 -1
  198. package/dist/safe-a/_next/static/chunks/{eaa820432740042a.js → 8f5be275907dd98c.js} +1 -1
  199. package/dist/safe-a/_next/static/chunks/{0518cc63903bebac.js → 9037530b0f1d5783.js} +1 -1
  200. package/dist/safe-a/_next/static/chunks/{b4db35dceb9577e1.js → 9078ad91aa20dca0.js} +1 -1
  201. package/dist/safe-a/_next/static/chunks/91e0df5a4c9d0bcd.js +1 -0
  202. package/dist/safe-a/_next/static/chunks/92c3617a4e22a464.js +1 -0
  203. package/dist/safe-a/_next/static/chunks/{eb34cdf40f4c4d62.js → 932d3fcc2596e8d5.js} +1 -1
  204. package/dist/safe-a/_next/static/chunks/937e26e6e01d9ec9.js +1 -0
  205. package/dist/safe-a/_next/static/chunks/93bfaf233e66b48c.js +1 -0
  206. package/dist/safe-a/_next/static/chunks/{3422b2c2f9bdf0e0.js → 94029062f236cadc.js} +1 -1
  207. package/dist/safe-a/_next/static/chunks/94e88cfda11697d2.js +1 -0
  208. package/dist/safe-a/_next/static/chunks/{55e32e78e4db3889.js → 95c4d26e469d1d8f.js} +1 -1
  209. package/dist/safe-a/_next/static/chunks/{b717d3610f87602f.js → 96026b5eb5d2566b.js} +1 -1
  210. package/dist/safe-a/_next/static/chunks/{ede1765e6899133a.js → 962a27e9c634b823.js} +1 -1
  211. package/dist/safe-a/_next/static/chunks/{093669121f3b7aa1.js → 966fb5830ce1029c.js} +1 -1
  212. package/dist/safe-a/_next/static/chunks/{aa8c7d3d99a14fdb.js → 9724567275720686.js} +1 -1
  213. package/dist/safe-a/_next/static/chunks/{aff6654f4fbc26b0.js → 98e243fb5992a71c.js} +1 -1
  214. package/dist/safe-a/_next/static/chunks/{fddfcced721d9669.js → 9a7b2a483b109c0a.js} +1 -1
  215. package/dist/safe-a/_next/static/chunks/9b3df6b20a9625d5.js +1 -0
  216. package/dist/safe-a/_next/static/chunks/9c6c00fa68012026.js +1 -0
  217. package/dist/safe-a/_next/static/chunks/{46568a8bad984d09.js → 9cb28a1dacb7ea6d.js} +1 -1
  218. package/dist/safe-a/_next/static/chunks/9ccf7a8bca1730bf.js +1 -0
  219. package/dist/safe-a/_next/static/chunks/{c2e5be103cef6113.js → 9e96c84b86d1bbf3.js} +1 -1
  220. package/dist/safe-a/_next/static/chunks/{38dcdbfb8c6966a9.js → 9f0ee4783140adf1.js} +1 -1
  221. package/dist/safe-a/_next/static/chunks/9fefea69ec034a63.js +1 -0
  222. package/dist/safe-a/_next/static/chunks/{d9bf3f0f6088ac8c.js → a1b9abf15c0f7655.js} +1 -1
  223. package/dist/safe-a/_next/static/chunks/{65159d9aa3ecc0c9.js → a37aa474433d29e3.js} +1 -1
  224. package/dist/safe-a/_next/static/chunks/a437ab944fe911da.js +1 -0
  225. package/dist/safe-a/_next/static/chunks/a4776dc3e00e5ab0.js +1 -0
  226. package/dist/safe-a/_next/static/chunks/{2331e2a388a9bd50.js → a5df6158856685f1.js} +1 -1
  227. package/dist/safe-a/_next/static/chunks/{8d76667bd2633e46.js → a6737fc58619eae5.js} +1 -1
  228. package/dist/safe-a/_next/static/chunks/{217c50478c5ea4d7.js → a6a98f9278704b6a.js} +1 -1
  229. package/dist/safe-a/_next/static/chunks/{6ecccb36549d3028.js → a7277c96f3669bea.js} +1 -1
  230. package/dist/safe-a/_next/static/chunks/{9b0ac8da8e1c0d7e.js → a9fed5c43d754a96.js} +1 -1
  231. package/dist/safe-a/_next/static/chunks/{6e663a2e3562125c.js → aa0a4c596151b22b.js} +1 -1
  232. package/dist/safe-a/_next/static/chunks/{f7ad257814e6e947.js → aa867a1fa8b105e1.js} +1 -1
  233. package/dist/safe-a/_next/static/chunks/abdf99ba76e0f571.js +1 -0
  234. package/dist/safe-a/_next/static/chunks/ad4ba491cf12423f.js +5 -0
  235. package/dist/safe-a/_next/static/chunks/{f40b91cb7cc58cf2.js → ad50a7d15cd9d9d8.js} +1 -1
  236. package/dist/safe-a/_next/static/chunks/{0708a65cc3ecf56b.js → af7b0bd1b40ad066.js} +1 -1
  237. package/dist/safe-a/_next/static/chunks/{9e9339584dbc8172.js → b24e3802454a5567.js} +1 -1
  238. package/dist/safe-a/_next/static/chunks/{e1416a0b2152bdbf.js → b29a85c3dae2bb9c.js} +1 -1
  239. package/dist/safe-a/_next/static/chunks/b30ee3cb6af32088.js +1 -0
  240. package/dist/safe-a/_next/static/chunks/b30f1da4e57f459a.js +1 -0
  241. package/dist/safe-a/_next/static/chunks/{129875fd1b096964.js → b360c9fc22dbf831.js} +1 -1
  242. package/dist/safe-a/_next/static/chunks/{ddc8a591c8943264.js → b3e79c76be269ccc.js} +1 -1
  243. package/dist/safe-a/_next/static/chunks/{82aea21a16d00076.js → b429be4e16fa1e00.js} +1 -1
  244. package/dist/safe-a/_next/static/chunks/{e66819cb4afcfe87.js → b61ec36c9bbca3e0.js} +1 -1
  245. package/dist/safe-a/_next/static/chunks/b62abd0d2ca9f56f.js +1 -0
  246. package/dist/safe-a/_next/static/chunks/{405cd8dd7faa6eaf.js → b65565677c3e8c0a.js} +1 -1
  247. package/dist/safe-a/_next/static/chunks/{37f3ea0b3cf40bca.js → b66afb4b0be97af8.js} +1 -1
  248. package/dist/safe-a/_next/static/chunks/{d53ff6336a32e4c5.js → b69f987a60b05db3.js} +1 -1
  249. package/dist/safe-a/_next/static/chunks/{9d65a2db77bf6c63.js → b78822282754a47c.js} +1 -1
  250. package/dist/safe-a/_next/static/chunks/b92c67520afabac2.js +1 -0
  251. package/dist/safe-a/_next/static/chunks/baed816b83bbd5b5.js +1 -0
  252. package/dist/safe-a/_next/static/chunks/{38e76abda882c1a8.js → bbaef90b0ce43019.js} +1 -1
  253. package/dist/safe-a/_next/static/chunks/{43392297dd43555d.js → bbcf9daa108b22fb.js} +1 -1
  254. package/dist/safe-a/_next/static/chunks/{f05af2c706c87fb5.js → bc7bda699a7ccda1.js} +1 -1
  255. package/dist/safe-a/_next/static/chunks/{f0a3b313fc0fcace.js → bd1f33816fa01c16.js} +1 -1
  256. package/dist/safe-a/_next/static/chunks/bd2dcf98c9b362f6.js +1 -0
  257. package/dist/safe-a/_next/static/chunks/{cb8a82631d87b798.js → bd984c5404403e7d.js} +1 -1
  258. package/dist/safe-a/_next/static/chunks/{6fc97877fbcf3403.js → bf2262100cea8c64.js} +1 -1
  259. package/dist/safe-a/_next/static/chunks/bf2c1c402dbcccdf.js +1 -0
  260. package/dist/safe-a/_next/static/chunks/bfc6ee42cec583d5.js +1 -0
  261. package/dist/safe-a/_next/static/chunks/{c5932397b84e3c27.js → c15069059c9d1f53.js} +1 -1
  262. package/dist/safe-a/_next/static/chunks/{9de7a5feb6be8bc3.js → c1615032cbbf5b56.js} +1 -1
  263. package/dist/safe-a/_next/static/chunks/{4c87634b39751c56.js → c2546d2b493dd907.js} +1 -1
  264. package/dist/safe-a/_next/static/chunks/{82cdf7e6dbe7070d.js → c3669d468d3f2b3a.js} +1 -1
  265. package/dist/safe-a/_next/static/chunks/c3b49937059d3d70.js +1 -0
  266. package/dist/safe-a/_next/static/chunks/{5a43f7cd89a42167.js → c5b5aba98d38ef23.js} +1 -1
  267. package/dist/safe-a/_next/static/chunks/c5be27a596acfa18.js +1 -0
  268. package/dist/safe-a/_next/static/chunks/{6e4e92cbcf961542.js → c6cc32860b96278f.js} +1 -1
  269. package/dist/safe-a/_next/static/chunks/{997894582876b3bb.js → c725524ea13a50ab.js} +1 -1
  270. package/dist/safe-a/_next/static/chunks/c8942bee3aebddae.js +1 -0
  271. package/dist/safe-a/_next/static/chunks/{fc3c1b765cc5906d.js → c8e45be36912e439.js} +1 -1
  272. package/dist/safe-a/_next/static/chunks/{5e4225518ccc365e.js → c933951b3113492f.js} +1 -1
  273. package/dist/safe-a/_next/static/chunks/c9813626ba898586.js +1 -0
  274. package/dist/safe-a/_next/static/chunks/ca2725c2b45709c1.js +1 -0
  275. package/dist/safe-a/_next/static/chunks/{47098fcba8e98974.js → caf4049dc563940e.js} +1 -1
  276. package/dist/safe-a/_next/static/chunks/cafadd69e03e6c4b.js +1 -0
  277. package/dist/safe-a/_next/static/chunks/{57bc9169370081d7.js → cba2741f84ef36ed.js} +1 -1
  278. package/dist/safe-a/_next/static/chunks/{47d485f30e419da8.js → cccecf726769787f.js} +1 -1
  279. package/dist/safe-a/_next/static/chunks/{261bf96e2331ea0a.js → cd0e7e3cc303b4e4.js} +1 -1
  280. package/dist/safe-a/_next/static/chunks/cd4556cbed1f8957.js +1 -0
  281. package/dist/safe-a/_next/static/chunks/{2f104b4be1990722.js → cd5eec7d305aa041.js} +1 -1
  282. package/dist/safe-a/_next/static/chunks/{3f74431cdf49e5e1.js → cfd9aff2dcf3adb9.js} +1 -1
  283. package/dist/safe-a/_next/static/chunks/{564507763428bfb0.js → d09636e7bcf60ad1.js} +1 -1
  284. package/dist/safe-a/_next/static/chunks/{dd59d0e313916320.js → d2d432a9facf4278.js} +1 -1
  285. package/dist/safe-a/_next/static/chunks/{fdf535baa39c0e26.js → d2e37b6d5ff62bcb.js} +1 -1
  286. package/dist/safe-a/_next/static/chunks/{fe840e6cda1c115e.js → d33a24782888b869.js} +1 -1
  287. package/dist/safe-a/_next/static/chunks/{7f611b9b215dfcef.js → d33e49aabd798892.js} +1 -1
  288. package/dist/safe-a/_next/static/chunks/{7d7ef3758ed7347b.js → d3990c1e87ef3e23.js} +1 -1
  289. package/dist/safe-a/_next/static/chunks/d433c87b0bc69cda.js +1 -0
  290. package/dist/safe-a/_next/static/chunks/{9a63abc493c1c840.js → d47cd27ac08f5429.js} +1 -1
  291. package/dist/safe-a/_next/static/chunks/{0e68cace7cf0464c.js → d599ef4d0f84a93d.js} +1 -1
  292. package/dist/safe-a/_next/static/chunks/{18570009118a0e76.js → d5e3d29f769997cc.js} +1 -1
  293. package/dist/safe-a/_next/static/chunks/{7e5b28d162f1ea9d.js → d69b21102305d19e.js} +1 -1
  294. package/dist/safe-a/_next/static/chunks/{b92da682bccc569b.js → d715e874b8ee8540.js} +1 -1
  295. package/dist/safe-a/_next/static/chunks/{1a91a01fbaf01e7e.js → d729414ff836cd53.js} +1 -1
  296. package/dist/safe-a/_next/static/chunks/{333630802bd6f1a6.js → d82740475fc07e98.js} +1 -1
  297. package/dist/safe-a/_next/static/chunks/{9bedfcbe8f9ff43f.js → d842d30dcb0f50a9.js} +1 -1
  298. package/dist/safe-a/_next/static/chunks/{502779251884e330.js → d8af8dadd0889c71.js} +1 -1
  299. package/dist/safe-a/_next/static/chunks/{50c602f1b79d61a7.js → d9b92ed2d544fca5.js} +1 -1
  300. package/dist/safe-a/_next/static/chunks/{d147ab3cf51edc42.js → da346aeed70dd39a.js} +1 -1
  301. package/dist/safe-a/_next/static/chunks/da9d2b7d381c1953.js +1 -0
  302. package/dist/safe-a/_next/static/chunks/dbbd673619a7f82f.js +1 -0
  303. package/dist/safe-a/_next/static/chunks/dc0bc471de951daf.js +1 -0
  304. package/dist/safe-a/_next/static/chunks/{9d8fff267f5576eb.js → dc2186b66132ca97.js} +1 -1
  305. package/dist/safe-a/_next/static/chunks/{d3fc1847f85d724b.js → de0ee516f6a1aa07.js} +1 -1
  306. package/dist/safe-a/_next/static/chunks/{473249ae7830085a.js → e04bace22e04d63c.js} +1 -1
  307. package/dist/safe-a/_next/static/chunks/{9b94620a86d2a1c2.js → e0c76ff7114dc8dc.js} +1 -1
  308. package/dist/safe-a/_next/static/chunks/{dc7f280eee64d574.js → e11d4fd8de65621d.js} +1 -1
  309. package/dist/safe-a/_next/static/chunks/{ec7ee73b22712e55.js → e1999bcadd3448e5.js} +1 -1
  310. package/dist/safe-a/_next/static/chunks/e2833182a81cd867.js +1 -0
  311. package/dist/safe-a/_next/static/chunks/{232cc01daaf29e5d.js → e3fe320ec1b8f889.js} +1 -1
  312. package/dist/safe-a/_next/static/chunks/{50cbc92b0512838a.js → e4973ad5c183f17a.js} +1 -1
  313. package/dist/safe-a/_next/static/chunks/{c8b301b059ee1946.js → e5275dcacbabc3e3.js} +1 -1
  314. package/dist/safe-a/_next/static/chunks/e60ef129113f6e24.js +1 -0
  315. package/dist/safe-a/_next/static/chunks/{8ebfebffa66b3ca7.js → e61019aedfdf554e.js} +1 -1
  316. package/dist/safe-a/_next/static/chunks/e6324292aef80338.js +1 -0
  317. package/dist/safe-a/_next/static/chunks/{e89655c05e6b5b1f.js → e7003dbd5d8cb2d1.js} +1 -1
  318. package/dist/safe-a/_next/static/chunks/{0d7d0d2beb29f175.js → e7bcbeb465fa49cf.js} +1 -1
  319. package/dist/safe-a/_next/static/chunks/e7f1a043618e43cf.js +1 -0
  320. package/dist/safe-a/_next/static/chunks/e8105dbb23b8e514.js +1 -0
  321. package/dist/safe-a/_next/static/chunks/{06a64fef342a5832.js → e96518d9cb5cbe1e.js} +1 -1
  322. package/dist/safe-a/_next/static/chunks/{e7731336476789d7.js → ea12d36cdfbaafa9.js} +1 -1
  323. package/dist/safe-a/_next/static/chunks/{05ac495e860ba7c2.js → ea2a84258a02d5c5.js} +1 -1
  324. package/dist/safe-a/_next/static/chunks/{b9b23fa418eacd67.js → ea36a5ae7c6ce34f.js} +1 -1
  325. package/dist/safe-a/_next/static/chunks/{fbb5b0d1f5b25465.js → eb2d81df9fe374a8.js} +1 -1
  326. package/dist/safe-a/_next/static/chunks/{30c0274cb379ab0d.js → eb9ae8e95cac1197.js} +1 -1
  327. package/dist/safe-a/_next/static/chunks/{abf043c7dd51a07b.js → ebb0ee69f6a7883e.js} +1 -1
  328. package/dist/safe-a/_next/static/chunks/{d84ed83f568f41c6.js → ebcbb5070eb8e29f.js} +1 -1
  329. package/dist/safe-a/_next/static/chunks/ebcd85ff4a1db0dc.js +5 -0
  330. package/dist/safe-a/_next/static/chunks/{5ad5a5ee1cc648ae.js → ee79511740d19885.js} +1 -1
  331. package/dist/safe-a/_next/static/chunks/eed0c3ef6a5c3706.js +1 -0
  332. package/dist/safe-a/_next/static/chunks/{404f44571be80b78.js → ef51763a796dde8b.js} +1 -1
  333. package/dist/safe-a/_next/static/chunks/{025f9752d60b79ce.js → f0cb9b2226c53ef9.js} +1 -1
  334. package/dist/safe-a/_next/static/chunks/{c5b0f8f27c2db9f1.js → f0d9f0621f8ec46d.js} +1 -1
  335. package/dist/safe-a/_next/static/chunks/f12f45a558c3fed2.js +1 -0
  336. package/dist/safe-a/_next/static/chunks/{868f60fa1a2ff26b.js → f1e5e295d4db5c0f.js} +1 -1
  337. package/dist/safe-a/_next/static/chunks/{3b0acee8a8035ee7.js → f1f911d553a62027.js} +1 -1
  338. package/dist/safe-a/_next/static/chunks/{36897fabf62bf445.js → f235a8df2f905e6a.js} +1 -1
  339. package/dist/safe-a/_next/static/chunks/{27b3d30516d46fc8.js → f36595b9995a49a9.js} +1 -1
  340. package/dist/safe-a/_next/static/chunks/f42a71992d139302.js +1 -0
  341. package/dist/safe-a/_next/static/chunks/{dd03bb14e8e590f0.js → f42d74f288f2229c.js} +1 -1
  342. package/dist/safe-a/_next/static/chunks/{f39ec71d70b31fe1.js → f461a75ec3b0e4e9.js} +1 -1
  343. package/dist/safe-a/_next/static/chunks/{9f7b593a28b4dbe4.js → f50fd84e477dbaeb.js} +1 -1
  344. package/dist/safe-a/_next/static/chunks/{4c19e1ee54dac526.js → f659a364f48244ea.js} +1 -1
  345. package/dist/safe-a/_next/static/chunks/{7c4b1ab5c0f1b167.js → f813c3d77459119f.js} +1 -1
  346. package/dist/safe-a/_next/static/chunks/{cac08e0e891f58d2.js → f9cb4b70f67c86d8.js} +1 -1
  347. package/dist/safe-a/_next/static/chunks/{2854919e0953bd0d.js → fa39b9f8bced4bcd.js} +1 -1
  348. package/dist/safe-a/_next/static/chunks/{4df5dd4e3c591164.js → fa5b61b8e7219fe6.js} +1 -1
  349. package/dist/safe-a/_next/static/chunks/{1386362cdfd92116.js → facb82117d49a6e1.js} +1 -1
  350. package/dist/safe-a/_next/static/chunks/{e1626e173f56ae31.js → fb05f79f5e4b514e.js} +1 -1
  351. package/dist/safe-a/_next/static/chunks/{18e062f9f23f27c0.js → fb0f4d868b87961b.js} +1 -1
  352. package/dist/safe-a/_next/static/chunks/{3d9ee9c4bc8e29b2.js → fb2f1266493dd820.js} +1 -1
  353. package/dist/safe-a/_next/static/chunks/fc2efa33a196ee45.js +1 -0
  354. package/dist/safe-a/_next/static/chunks/{a4ab363af889263f.js → fd3d43eb8557ee49.js} +1 -1
  355. package/dist/safe-a/_next/static/chunks/{8ead3da37182ce4c.js → fdfce6fa0b958336.js} +1 -1
  356. package/dist/safe-a/_next/static/chunks/{04ed04c00511a337.js → ff12eca45020947a.js} +1 -1
  357. package/dist/safe-a/_next/static/chunks/ff6860dcd793aa23.js +1 -0
  358. package/dist/safe-a/_next/static/chunks/{turbopack-25307b1915d537a0.js → turbopack-3d84668fefd38b4b.js} +1 -1
  359. package/dist/safe-a/_next/static/chunks/{turbopack-fd95f1c0ef78a441.js → turbopack-63952675b1d69124.js} +1 -1
  360. package/dist/safe-a/_next/static/chunks/turbopack-8b41433c9a94981f.js +3 -0
  361. package/dist/safe-a/index.html +2 -2
  362. package/dist/safe-a/index.txt +18 -18
  363. package/dist/safe-a/manage/about/index.html +2 -2
  364. package/dist/safe-a/manage/about/index.txt +15 -15
  365. package/dist/safe-a/manage/env/index.html +2 -2
  366. package/dist/safe-a/manage/env/index.txt +17 -17
  367. package/dist/safe-a/manage/geelib/index.html +2 -2
  368. package/dist/safe-a/manage/geelib/index.txt +17 -17
  369. package/dist/safe-a/manage/general/index.html +2 -2
  370. package/dist/safe-a/manage/general/index.txt +15 -15
  371. package/dist/safe-a/manage/git/index.html +2 -2
  372. package/dist/safe-a/manage/git/index.txt +17 -17
  373. package/dist/safe-a/manage/im/index.html +2 -2
  374. package/dist/safe-a/manage/im/index.txt +17 -17
  375. package/dist/safe-a/manage/index.html +2 -2
  376. package/dist/safe-a/manage/index.txt +12 -12
  377. package/dist/safe-a/manage/library/index.html +2 -2
  378. package/dist/safe-a/manage/library/index.txt +15 -15
  379. package/dist/safe-a/manage/mcp/index.html +2 -2
  380. package/dist/safe-a/manage/mcp/index.txt +15 -15
  381. package/dist/safe-a/manage/permissions/index.html +2 -2
  382. package/dist/safe-a/manage/permissions/index.txt +15 -15
  383. package/dist/safe-a/manage/skills/index.html +2 -2
  384. package/dist/safe-a/manage/skills/index.txt +15 -15
  385. package/dist/safe-a/manage/task/index.html +2 -2
  386. package/dist/safe-a/manage/task/index.txt +15 -15
  387. package/dist/safe-a/manage/teams/index.html +2 -2
  388. package/dist/safe-a/manage/teams/index.txt +15 -15
  389. package/dist/safe-a/manage/tools/index.html +2 -2
  390. package/dist/safe-a/manage/tools/index.txt +15 -15
  391. package/dist/ws-test/ws-test.css +0 -4
  392. package/dist/ws-test/ws-test.html +0 -21
  393. package/dist/ws-test/ws-test.js +72 -297
  394. package/mcps-runtime/claude-geelib-channel/server/index.mjs +0 -5
  395. package/mcps-runtime/claude-tuitui-channel/server/index.mjs +6 -0
  396. package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +1135 -4542
  397. package/package.json +6 -6
  398. package/.env.example +0 -7
  399. package/dist/safe-a/_next/static/chunks/00f91b7d88f62204.js +0 -1
  400. package/dist/safe-a/_next/static/chunks/03d9139a7df67167.js +0 -1
  401. package/dist/safe-a/_next/static/chunks/0699439b4e026cf9.js +0 -5
  402. package/dist/safe-a/_next/static/chunks/0d0a0fd8bc7c5154.js +0 -1
  403. package/dist/safe-a/_next/static/chunks/1116b1064a071974.js +0 -1
  404. package/dist/safe-a/_next/static/chunks/16ee3f2be4586638.js +0 -1
  405. package/dist/safe-a/_next/static/chunks/19023abd5e1bf1d1.js +0 -1
  406. package/dist/safe-a/_next/static/chunks/1a900b3c5a00d59b.js +0 -1
  407. package/dist/safe-a/_next/static/chunks/1b739dfdbcce05bd.js +0 -1
  408. package/dist/safe-a/_next/static/chunks/1d0273aae0bc102c.js +0 -1
  409. package/dist/safe-a/_next/static/chunks/1df41f8d439107ef.js +0 -1
  410. package/dist/safe-a/_next/static/chunks/1faaa282be969b14.js +0 -1
  411. package/dist/safe-a/_next/static/chunks/27d9a47efb23fd17.js +0 -1
  412. package/dist/safe-a/_next/static/chunks/29105a13d179d5b2.js +0 -1
  413. package/dist/safe-a/_next/static/chunks/29403b19d94e37bb.js +0 -1
  414. package/dist/safe-a/_next/static/chunks/29f39316c32518a2.js +0 -1
  415. package/dist/safe-a/_next/static/chunks/2a07e0d1ef712b41.js +0 -1
  416. package/dist/safe-a/_next/static/chunks/2b38c2b26760e4cb.js +0 -1
  417. package/dist/safe-a/_next/static/chunks/2bb180b50bafe979.js +0 -1
  418. package/dist/safe-a/_next/static/chunks/2ce249001ad95013.js +0 -1
  419. package/dist/safe-a/_next/static/chunks/33e878df066811db.js +0 -1
  420. package/dist/safe-a/_next/static/chunks/37615c61dd14fc8d.js +0 -1
  421. package/dist/safe-a/_next/static/chunks/37e4ac5f3654a688.js +0 -1
  422. package/dist/safe-a/_next/static/chunks/38d88de54642e44e.js +0 -1
  423. package/dist/safe-a/_next/static/chunks/38decd5cd3fe2525.js +0 -1
  424. package/dist/safe-a/_next/static/chunks/39fc6ad79e44f4df.js +0 -1
  425. package/dist/safe-a/_next/static/chunks/3ecc6705303560ea.js +0 -1
  426. package/dist/safe-a/_next/static/chunks/3fe95be4b92470e2.js +0 -1
  427. package/dist/safe-a/_next/static/chunks/4064e59727cba9b0.js +0 -1
  428. package/dist/safe-a/_next/static/chunks/44e9e0394b7b6f31.js +0 -1
  429. package/dist/safe-a/_next/static/chunks/4ae2c56fab8c060d.js +0 -1
  430. package/dist/safe-a/_next/static/chunks/4ca36e3fb45c2e71.js +0 -1
  431. package/dist/safe-a/_next/static/chunks/4cd41b402679f77d.js +0 -1
  432. package/dist/safe-a/_next/static/chunks/50f270f87470ca73.js +0 -1
  433. package/dist/safe-a/_next/static/chunks/5385bf74559eeabd.js +0 -1
  434. package/dist/safe-a/_next/static/chunks/54169c1554845574.js +0 -1
  435. package/dist/safe-a/_next/static/chunks/592e7a6b713dc645.js +0 -1
  436. package/dist/safe-a/_next/static/chunks/599abea9ac64aaf1.js +0 -1
  437. package/dist/safe-a/_next/static/chunks/5ae21c9105c6abb4.js +0 -1
  438. package/dist/safe-a/_next/static/chunks/5b4c1faefda9575b.js +0 -1
  439. package/dist/safe-a/_next/static/chunks/68255bcd6345edfd.js +0 -1
  440. package/dist/safe-a/_next/static/chunks/68f27d4f860d8f88.js +0 -1
  441. package/dist/safe-a/_next/static/chunks/6960a33147147a27.js +0 -1
  442. package/dist/safe-a/_next/static/chunks/6a199e5f9da2ec4e.js +0 -1
  443. package/dist/safe-a/_next/static/chunks/6f6140cbad7cdeea.js +0 -1
  444. package/dist/safe-a/_next/static/chunks/6faa53698dc67904.js +0 -1
  445. package/dist/safe-a/_next/static/chunks/727dc45d24782155.js +0 -1
  446. package/dist/safe-a/_next/static/chunks/74d8d2b653f61b70.js +0 -1
  447. package/dist/safe-a/_next/static/chunks/7562ab6463e9fc3f.js +0 -1
  448. package/dist/safe-a/_next/static/chunks/784ee151431c6634.js +0 -1
  449. package/dist/safe-a/_next/static/chunks/7afa34c1dc058648.js +0 -1
  450. package/dist/safe-a/_next/static/chunks/7b34873e2b22211d.js +0 -1
  451. package/dist/safe-a/_next/static/chunks/7bd04dff1e0d3a01.js +0 -1
  452. package/dist/safe-a/_next/static/chunks/7cadf95d4932deec.js +0 -1
  453. package/dist/safe-a/_next/static/chunks/7ccd9e31b61da21f.js +0 -1
  454. package/dist/safe-a/_next/static/chunks/7e2887a3269dfc01.js +0 -1
  455. package/dist/safe-a/_next/static/chunks/7f167fb0dbc03180.js +0 -1
  456. package/dist/safe-a/_next/static/chunks/80bd106b26a076af.js +0 -1
  457. package/dist/safe-a/_next/static/chunks/826c64c8601264b1.js +0 -1
  458. package/dist/safe-a/_next/static/chunks/8465e859bae24fbd.js +0 -1
  459. package/dist/safe-a/_next/static/chunks/846fd48826ed3d89.js +0 -1
  460. package/dist/safe-a/_next/static/chunks/84e8e1e50a6b3ab7.js +0 -1
  461. package/dist/safe-a/_next/static/chunks/87b0002602934525.js +0 -1
  462. package/dist/safe-a/_next/static/chunks/882686dd3b63f9d1.js +0 -1
  463. package/dist/safe-a/_next/static/chunks/88e4cdcdeff36154.js +0 -1
  464. package/dist/safe-a/_next/static/chunks/8c8b1e40b00409f5.js +0 -1
  465. package/dist/safe-a/_next/static/chunks/913de10eeb8a88d9.js +0 -1
  466. package/dist/safe-a/_next/static/chunks/92c1de3b7b8ff353.js +0 -1
  467. package/dist/safe-a/_next/static/chunks/996147dc11d8e745.js +0 -1
  468. package/dist/safe-a/_next/static/chunks/9971428081f87b2e.js +0 -1
  469. package/dist/safe-a/_next/static/chunks/9a5e8d11c09774ed.js +0 -1
  470. package/dist/safe-a/_next/static/chunks/9f8b67e210121299.js +0 -1
  471. package/dist/safe-a/_next/static/chunks/a333240ca95e9cf9.js +0 -1
  472. package/dist/safe-a/_next/static/chunks/a4b35c64097aeb05.js +0 -1
  473. package/dist/safe-a/_next/static/chunks/a6fda6a41633eb93.js +0 -1
  474. package/dist/safe-a/_next/static/chunks/a86fedb173944e90.js +0 -1
  475. package/dist/safe-a/_next/static/chunks/a9a12415c8875ad5.js +0 -1
  476. package/dist/safe-a/_next/static/chunks/ab91b57996557cd5.js +0 -1
  477. package/dist/safe-a/_next/static/chunks/ac0062f74360e8a1.js +0 -1
  478. package/dist/safe-a/_next/static/chunks/b0f0f19c125de544.js +0 -1
  479. package/dist/safe-a/_next/static/chunks/b31fde4b83862330.js +0 -1
  480. package/dist/safe-a/_next/static/chunks/b594aa86704b6429.js +0 -1
  481. package/dist/safe-a/_next/static/chunks/b744b1f1595cffb6.js +0 -1
  482. package/dist/safe-a/_next/static/chunks/b882523826ac1c83.js +0 -1
  483. package/dist/safe-a/_next/static/chunks/c2a354d059dc2745.js +0 -1
  484. package/dist/safe-a/_next/static/chunks/c3bcc6eb84ed7d30.js +0 -1
  485. package/dist/safe-a/_next/static/chunks/c6bad34be1aacd05.js +0 -5
  486. package/dist/safe-a/_next/static/chunks/c7ce2c0e40c62b6b.js +0 -1
  487. package/dist/safe-a/_next/static/chunks/c9527036b1a95d19.js +0 -1
  488. package/dist/safe-a/_next/static/chunks/ca31fc9ca02421c7.js +0 -1
  489. package/dist/safe-a/_next/static/chunks/d2644966a8736893.js +0 -1
  490. package/dist/safe-a/_next/static/chunks/d2b5664aa6eb613c.js +0 -1
  491. package/dist/safe-a/_next/static/chunks/d3072ff0f4d0f613.js +0 -1
  492. package/dist/safe-a/_next/static/chunks/d78975cda9119543.js +0 -1
  493. package/dist/safe-a/_next/static/chunks/dbf36b536a6c59ef.js +0 -1
  494. package/dist/safe-a/_next/static/chunks/e0b6375c01566831.js +0 -1
  495. package/dist/safe-a/_next/static/chunks/e79d1db952916e66.js +0 -1
  496. package/dist/safe-a/_next/static/chunks/e814d6bb4f565a59.js +0 -1
  497. package/dist/safe-a/_next/static/chunks/ece085cc915ab5e5.js +0 -1
  498. package/dist/safe-a/_next/static/chunks/f15c8b2639bebe0f.js +0 -1
  499. package/dist/safe-a/_next/static/chunks/f42445d9866f6b16.js +0 -1
  500. package/dist/safe-a/_next/static/chunks/fa0cb747819a4b88.js +0 -1
  501. package/dist/safe-a/_next/static/chunks/fb7bf2e8cee9c72f.js +0 -1
  502. package/dist/safe-a/_next/static/chunks/fe4fddbf85e1554b.js +0 -1
  503. package/dist/safe-a/_next/static/chunks/ff9ec21502a3b775.js +0 -1
  504. package/dist/safe-a/_next/static/chunks/turbopack-c8295da8707d94de.js +0 -3
  505. /package/dist/safe-a/_next/static/{AY06zpWQV0yfK_fQwZZ5t → 8K8MheZHG-fXZxruG2Nc8}/_clientMiddlewareManifest.json +0 -0
  506. /package/dist/safe-a/_next/static/{AY06zpWQV0yfK_fQwZZ5t → 8K8MheZHG-fXZxruG2Nc8}/_ssgManifest.js +0 -0
@@ -84,11 +84,6 @@
84
84
  const permissionDialogTitle = $('permissionDialogTitle')
85
85
  const permissionDialogDesc = $('permissionDialogDesc')
86
86
  const permissionDialogInput = $('permissionDialogInput')
87
- const apiErrorDialog = $('apiErrorDialog')
88
- const apiErrorDialogBackdrop = $('apiErrorDialogBackdrop')
89
- const apiErrorDialogDesc = $('apiErrorDialogDesc')
90
- const btnApiErrorOk = $('btnApiErrorOk')
91
- const btnApiErrorDialogClose = $('btnApiErrorDialogClose')
92
87
  const btnPermissionDialogClose = $('btnPermissionDialogClose')
93
88
  const btnPermissionDeny = $('btnPermissionDeny')
94
89
  const btnPermissionAllow = $('btnPermissionAllow')
@@ -116,7 +111,6 @@
116
111
  const scheduleTasksWrap = $('scheduleTasksWrap')
117
112
  const scheduleRunsWrap = $('scheduleRunsWrap')
118
113
  const scheduleTaskTableBody = $('scheduleTaskTableBody')
119
- const scheduleTasksPager = $('scheduleTasksPager')
120
114
  const scheduleManageEmpty = $('scheduleManageEmpty')
121
115
  const btnScheduleRunsBack = $('btnScheduleRunsBack')
122
116
  const scheduleRunsTitle = $('scheduleRunsTitle')
@@ -167,12 +161,6 @@
167
161
  let sessionRuntimePollTimer = null
168
162
  /** 当前附着 session 的 turn 是否进行中(由 query.progress 驱动) */
169
163
  let sessionTurnActive = false
170
- /** 当前 turn 是否已处理过 api_error 终态,避免重复弹窗与 abort */
171
- let apiErrorHandledForTurn = false
172
- /** 当前 turn 是否处于 api_error 重试中 */
173
- let apiErrorRetryingForTurn = false
174
- /** 最近一次 api_error 的可读文案,供重试耗尽后弹窗展示 */
175
- let lastApiErrorText = ''
176
164
  const pendingPromptsBarEl = $('pendingPromptsBar')
177
165
  const pendingPromptsListEl = $('pendingPromptsList')
178
166
  let pendingPromptsCache = []
@@ -364,6 +352,8 @@
364
352
  const LLM_MODEL_KEY = 'LLM_MODEL'
365
353
  const LLM_PROVIDER_ID_KEY = 'LLM_PROVIDER_ID'
366
354
  const WS_ALLOW_TOOL_ASK_KEY = 'WS_ALLOW_TOOL_ASK'
355
+ const TUITUI_CHANNEL_SESSION_KEY = 'TUITUI_CHANNEL_SESSION'
356
+ const TUITUI_CHANNEL_SESSION_ALLOWED = new Set(['0', '1'])
367
357
  const WS_PERMISSION_MODE_ALLOWED = new Set([
368
358
  'acceptEdits',
369
359
  'plan',
@@ -587,19 +577,50 @@
587
577
  label.setAttribute('for', 'agentEnvField_' + field.key)
588
578
  label.textContent = field.label
589
579
  const inputId = 'agentEnvField_' + field.key
590
- const textInput = document.createElement('input')
591
- textInput.id = inputId
592
- textInput.type = 'text'
593
- textInput.spellcheck = false
594
- textInput.className = 'agent-env-kv-input'
595
- textInput.placeholder = field.placeholder || ''
596
- textInput.value = typeof agentEnvFieldValues[field.key] === 'string'
597
- ? agentEnvFieldValues[field.key]
598
- : ''
599
- textInput.addEventListener('input', function () {
600
- agentEnvFieldValues[field.key] = textInput.value
601
- })
602
- const input = textInput
580
+ let input
581
+ if (field.key === TUITUI_CHANNEL_SESSION_KEY) {
582
+ /**
583
+ * 业务逻辑:推推常驻会话开关仅允许 0/1,与主进程 reconcileChannelPairSessions 读取一致。
584
+ */
585
+ const select = document.createElement('select')
586
+ select.id = inputId
587
+ select.className = 'agent-env-kv-input'
588
+ const channelSessionOptions = [
589
+ { value: '0', label: '禁用' },
590
+ { value: '1', label: '启用' },
591
+ ]
592
+ for (let k = 0; k < channelSessionOptions.length; k++) {
593
+ const option = document.createElement('option')
594
+ option.value = channelSessionOptions[k].value
595
+ option.textContent = channelSessionOptions[k].label
596
+ select.appendChild(option)
597
+ }
598
+ const currentChannelSession =
599
+ typeof agentEnvFieldValues[field.key] === 'string'
600
+ ? agentEnvFieldValues[field.key].trim()
601
+ : ''
602
+ select.value = TUITUI_CHANNEL_SESSION_ALLOWED.has(currentChannelSession)
603
+ ? currentChannelSession
604
+ : '0'
605
+ select.addEventListener('change', function () {
606
+ agentEnvFieldValues[field.key] = select.value
607
+ })
608
+ input = select
609
+ } else {
610
+ const textInput = document.createElement('input')
611
+ textInput.id = inputId
612
+ textInput.type = 'text'
613
+ textInput.spellcheck = false
614
+ textInput.className = 'agent-env-kv-input'
615
+ textInput.placeholder = field.placeholder || ''
616
+ textInput.value = typeof agentEnvFieldValues[field.key] === 'string'
617
+ ? agentEnvFieldValues[field.key]
618
+ : ''
619
+ textInput.addEventListener('input', function () {
620
+ agentEnvFieldValues[field.key] = textInput.value
621
+ })
622
+ input = textInput
623
+ }
603
624
  row.appendChild(label)
604
625
  row.appendChild(input)
605
626
  section.appendChild(row)
@@ -1533,10 +1554,6 @@
1533
1554
  return extractMessageBody(m).trim()
1534
1555
  }
1535
1556
  if (m.type === 'system') {
1536
- if (m.subtype === 'api_error') {
1537
- const apiText = extractApiErrorText(m)
1538
- if (apiText) return apiText
1539
- }
1540
1557
  if (typeof m.content === 'string') return m.content.trim()
1541
1558
  try {
1542
1559
  return JSON.stringify(m).slice(0, 800).trim()
@@ -1634,14 +1651,10 @@
1634
1651
  div.appendChild(md)
1635
1652
  container.appendChild(div)
1636
1653
  } else if (t === 'system') {
1637
- let raw =
1654
+ const raw =
1638
1655
  typeof m.content === 'string'
1639
1656
  ? m.content
1640
1657
  : JSON.stringify(m).slice(0, 800)
1641
- if (m.subtype === 'api_error') {
1642
- const apiText = extractApiErrorText(m)
1643
- if (apiText) raw = apiText
1644
- }
1645
1658
  if (!raw.trim()) continue
1646
1659
  const div = document.createElement('div')
1647
1660
  div.className = 'chat-msg chat-msg-system'
@@ -1985,151 +1998,6 @@
1985
1998
  permissionDialogBackdrop.addEventListener('click', () => respondToPermission('deny'))
1986
1999
  }
1987
2000
 
1988
- /**
1989
- * 从 system api_error 消息中提取可读错误文案。
1990
- * 上游 APIError 常嵌套多层 error 字段,需逐层下探并尝试解析 JSON 内 message。
1991
- */
1992
- function extractApiErrorText(msg) {
1993
- if (!msg || msg.type !== 'system' || msg.subtype !== 'api_error') return ''
1994
- const root = msg.error
1995
- if (!root || typeof root !== 'object') return 'LLM API 请求失败'
1996
-
1997
- let text = ''
1998
- const candidates = [
1999
- root.message,
2000
- root.error && root.error.message,
2001
- root.error && root.error.error && root.error.error.message,
2002
- root.error && root.error.error && root.error.error.error && root.error.error.error.message,
2003
- ]
2004
- for (let i = 0; i < candidates.length; i++) {
2005
- if (typeof candidates[i] === 'string' && candidates[i].trim()) {
2006
- text = candidates[i].trim()
2007
- break
2008
- }
2009
- }
2010
- if (!text) text = 'LLM API 请求失败'
2011
-
2012
- const jsonMatch = text.match(/\{[\s\S]*\}$/)
2013
- if (jsonMatch) {
2014
- try {
2015
- const parsed = JSON.parse(jsonMatch[0])
2016
- const inner = parsed.error || parsed
2017
- if (inner && typeof inner.message === 'string' && inner.message.trim()) {
2018
- const code = inner.code != null ? '(' + inner.code + ')' : ''
2019
- text = inner.message.trim() + code
2020
- }
2021
- } catch (_err) {
2022
- /* 非 JSON 后缀则保留原始 message */
2023
- }
2024
- }
2025
-
2026
- const attempt = Number.isFinite(msg.retryAttempt) ? msg.retryAttempt : null
2027
- const max = Number.isFinite(msg.maxRetries) ? msg.maxRetries : null
2028
- if (attempt != null && max != null) {
2029
- text += ' [重试 ' + attempt + '/' + max + ']'
2030
- }
2031
- if (typeof root.status === 'number') {
2032
- text = 'HTTP ' + root.status + ': ' + text
2033
- }
2034
- return text
2035
- }
2036
-
2037
- function hideApiErrorDialog() {
2038
- if (!apiErrorDialog) return
2039
- apiErrorDialog.classList.remove('is-open')
2040
- apiErrorDialog.setAttribute('aria-hidden', 'true')
2041
- }
2042
-
2043
- function showApiErrorDialog(message) {
2044
- if (!apiErrorDialog || !apiErrorDialogDesc) return
2045
- apiErrorDialogDesc.textContent =
2046
- typeof message === 'string' && message.trim() ? message.trim() : 'LLM API 请求失败'
2047
- apiErrorDialog.classList.add('is-open')
2048
- apiErrorDialog.setAttribute('aria-hidden', 'false')
2049
- }
2050
-
2051
- /** 向服务端发送 abort,终止当前 query 与子进程 turn */
2052
- function abortCurrentSessionTurn() {
2053
- if (!socket || socket.readyState !== WebSocket.OPEN) return
2054
- const payload = { type: 'abort' }
2055
- socket.send(JSON.stringify(payload))
2056
- logLine('→', payload)
2057
- }
2058
-
2059
- function resetApiErrorTurnState() {
2060
- apiErrorHandledForTurn = false
2061
- apiErrorRetryingForTurn = false
2062
- lastApiErrorText = ''
2063
- }
2064
-
2065
- /**
2066
- * api 重试全部耗尽:弹窗、abort、清除 calling。
2067
- * 由 session.error 或 turn.terminal failed 触发,不在首次 api_error 时 fail-fast。
2068
- */
2069
- function finalizeApiErrorTurn(errText) {
2070
- if (apiErrorHandledForTurn) return
2071
- apiErrorHandledForTurn = true
2072
- apiErrorRetryingForTurn = false
2073
- sessionTurnActive = false
2074
- showApiErrorDialog(errText || 'LLM API 请求失败')
2075
- abortCurrentSessionTurn()
2076
- setStatus('API 错误', 'err')
2077
- kickSessionRuntimePoll()
2078
- if (window.__lastSessions) {
2079
- renderSessionList(window.__lastSessions)
2080
- }
2081
- void loadSessions({ silent: true })
2082
- }
2083
-
2084
- /**
2085
- * 主 run 收到 api_error:重试期间仅更新状态栏,全部重试耗尽后再弹窗终止。
2086
- */
2087
- function handleApiErrorFromSystemMessage(msg, runId) {
2088
- if (runId !== 'main') return
2089
- if (apiErrorHandledForTurn) return
2090
- if (!msg || msg.type !== 'system' || msg.subtype !== 'api_error') return
2091
-
2092
- const retryAttempt = Number.isFinite(msg.retryAttempt) ? msg.retryAttempt : 0
2093
- const maxRetries = Number.isFinite(msg.maxRetries) ? msg.maxRetries : 10
2094
- lastApiErrorText = extractApiErrorText(msg)
2095
- apiErrorRetryingForTurn = true
2096
- setStatus('API 错误,重试 ' + retryAttempt + '/' + maxRetries + '…', 'err')
2097
- kickSessionRuntimePoll()
2098
- if (window.__lastSessions) {
2099
- renderSessionList(window.__lastSessions)
2100
- }
2101
- void loadSessions({ silent: true })
2102
- }
2103
-
2104
- /**
2105
- * session.error:若处于 api 重试链,表示重试已耗尽,走终态弹窗;否则仅更新状态。
2106
- */
2107
- function handleSessionErrorPayload(payload) {
2108
- if (apiErrorHandledForTurn) return
2109
- if (apiErrorRetryingForTurn) {
2110
- const errMsg =
2111
- lastApiErrorText ||
2112
- (payload && typeof payload.message === 'string' ? payload.message.trim() : '')
2113
- finalizeApiErrorTurn(errMsg || 'LLM API 请求失败')
2114
- return
2115
- }
2116
- const errMsg =
2117
- payload && typeof payload.message === 'string' && payload.message.trim()
2118
- ? payload.message.trim()
2119
- : 'unknown'
2120
- setStatus('错误: ' + errMsg, 'err')
2121
- }
2122
-
2123
- if (btnApiErrorOk) {
2124
- btnApiErrorOk.addEventListener('click', hideApiErrorDialog)
2125
- }
2126
- if (btnApiErrorDialogClose) {
2127
- btnApiErrorDialogClose.addEventListener('click', hideApiErrorDialog)
2128
- }
2129
- if (apiErrorDialogBackdrop) {
2130
- apiErrorDialogBackdrop.addEventListener('click', hideApiErrorDialog)
2131
- }
2132
-
2133
2001
  /** 解析并应用 WS v3 下行信封(protocolVersion === 3);旧名 applyEnvelopeV2 易误解,保留行为不变。 */
2134
2002
  function applyWsEnvelopeV3(data) {
2135
2003
  if (!data || typeof data !== 'object') return false
@@ -2148,11 +2016,6 @@
2148
2016
  if (type === 'conversation.delta') {
2149
2017
  const action = typeof payload.action === 'string' ? payload.action : ''
2150
2018
  const index = Number.isInteger(payload.index) ? payload.index : -1
2151
- const deltaContextPct = parseContextUsagePercent(payload.contextUsage)
2152
- if (typeof deltaContextPct === 'number') {
2153
- currentSessionContextPercent = deltaContextPct
2154
- updatePromptSessionInfo()
2155
- }
2156
2019
  const msg = payload.message
2157
2020
  const sourceAgent = resolveEnvelopeSourceAgent(runId, payload, data.agent_name)
2158
2021
  const runBuffer = ensureRunBuffer(runId)
@@ -2176,9 +2039,6 @@
2176
2039
  refreshSessionTitleFromChat(sessionIdInput.value.trim())
2177
2040
  }
2178
2041
  requestRenderChat()
2179
- if (msg && msg.type === 'system' && msg.subtype === 'api_error') {
2180
- handleApiErrorFromSystemMessage(msg, runId)
2181
- }
2182
2042
  return true
2183
2043
  }
2184
2044
  if (type === 'turn.terminal') {
@@ -2207,19 +2067,8 @@
2207
2067
  key: typeof data.eventId === 'string' ? data.eventId : '',
2208
2068
  })
2209
2069
  /** 主 run 一轮结束:清除「查询阶段: calling_model」等进行中状态 */
2210
- if (runId === 'main') {
2211
- if (
2212
- payload.status !== 'resolved' &&
2213
- apiErrorRetryingForTurn &&
2214
- !apiErrorHandledForTurn
2215
- ) {
2216
- finalizeApiErrorTurn(lastApiErrorText)
2217
- } else if (serverReady && !apiErrorHandledForTurn) {
2218
- setStatus('已就绪', 'ready')
2219
- }
2220
- if (!apiErrorHandledForTurn) {
2221
- resetApiErrorTurnState()
2222
- }
2070
+ if (runId === 'main' && serverReady) {
2071
+ setStatus('已就绪', 'ready')
2223
2072
  }
2224
2073
  requestRenderChat()
2225
2074
  return true
@@ -2281,9 +2130,6 @@
2281
2130
  })
2282
2131
  requestRenderChat()
2283
2132
  }
2284
- if (type === 'session.error' && runId === 'main') {
2285
- handleSessionErrorPayload(payload)
2286
- }
2287
2133
  return true
2288
2134
  }
2289
2135
  if (type === 'schedule.pending') {
@@ -2329,20 +2175,11 @@
2329
2175
  renderSessionList(window.__lastSessions)
2330
2176
  }
2331
2177
  if (phase === 'idle') {
2332
- sessionTurnActive = false
2333
- if (!apiErrorHandledForTurn && serverReady) {
2334
- setStatus('已就绪', 'ready')
2335
- }
2336
- if (!apiErrorHandledForTurn) {
2337
- apiErrorRetryingForTurn = false
2338
- lastApiErrorText = ''
2339
- }
2178
+ if (serverReady) setStatus('已就绪', 'ready')
2340
2179
  // 一轮 prompt 收尾后 transcript 已落盘,刷新列表以更新页签 firstPrompt/summary
2341
2180
  void loadSessions({ silent: true })
2342
2181
  } else if (phase) {
2343
- if (!apiErrorHandledForTurn && !apiErrorRetryingForTurn) {
2344
- setStatus('查询阶段: ' + phase + '…', '')
2345
- }
2182
+ setStatus('查询阶段: ' + phase + '…', '')
2346
2183
  void loadSessions({ silent: true })
2347
2184
  }
2348
2185
  return true
@@ -2658,15 +2495,9 @@
2658
2495
  return u.toString()
2659
2496
  }
2660
2497
 
2661
- function buildSchedulesUrl(page, pageSize) {
2498
+ function buildSchedulesUrl() {
2662
2499
  const u = new URL('/api/schedules', httpOriginForApi() + '/')
2663
2500
  u.searchParams.set('agent', currentAgentParam())
2664
- if (typeof page === 'number' && page >= 1) {
2665
- u.searchParams.set('page', String(page))
2666
- }
2667
- if (typeof pageSize === 'number' && pageSize >= 1) {
2668
- u.searchParams.set('pageSize', String(pageSize))
2669
- }
2670
2501
  return u.toString()
2671
2502
  }
2672
2503
 
@@ -2875,11 +2706,6 @@
2875
2706
  const scheduleManageState = {
2876
2707
  viewActive: false,
2877
2708
  contentView: 'list',
2878
- page: 1,
2879
- pageSize: 10,
2880
- total: 0,
2881
- totalPages: 0,
2882
- loading: false,
2883
2709
  }
2884
2710
 
2885
2711
  /** 切换定时任务列表与执行记录面板 */
@@ -3671,36 +3497,13 @@
3671
3497
  return formatScheduleFireAt(task.nextFireAt)
3672
3498
  }
3673
3499
 
3674
- /** 渲染定时任务列表分页控件 */
3675
- function renderScheduleTasksPager() {
3676
- if (!scheduleTasksPager) return
3677
- scheduleTasksPager.innerHTML = ''
3678
- const totalPages = scheduleManageState.totalPages || 0
3679
- scheduleTasksPager.hidden = totalPages <= 1
3680
- if (totalPages <= 1) return
3681
- const pager = createCloudPager(scheduleManageState, function (nextPage) {
3682
- void loadScheduleTasks(nextPage).catch(function (e) {
3683
- window.alert('加载失败: ' + e)
3684
- })
3685
- })
3686
- scheduleTasksPager.appendChild(pager)
3687
- }
3688
-
3689
3500
  /** 渲染定时任务表格 */
3690
- function renderScheduleTaskTable(tasks, timezone, total) {
3501
+ function renderScheduleTaskTable(tasks, timezone) {
3691
3502
  if (!scheduleTaskTableBody || !scheduleManageEmpty) return
3692
3503
  scheduleTaskTableBody.innerHTML = ''
3693
3504
  const list = Array.isArray(tasks) ? tasks : []
3694
- const totalCount =
3695
- typeof total === 'number' && Number.isFinite(total) ? total : list.length
3696
- if (totalCount > 0) {
3697
- scheduleManageEmpty.hidden = true
3698
- scheduleManageEmpty.classList.remove('is-error')
3699
- } else {
3700
- scheduleManageEmpty.hidden = false
3701
- scheduleManageEmpty.textContent = '暂无定时任务'
3702
- scheduleManageEmpty.classList.remove('is-error')
3703
- }
3505
+ scheduleManageEmpty.hidden = list.length > 0
3506
+ if (list.length > 0) scheduleManageEmpty.classList.remove('is-error')
3704
3507
  for (let i = 0; i < list.length; i++) {
3705
3508
  const task = list[i]
3706
3509
  if (!task || !task.id) continue
@@ -3756,42 +3559,18 @@
3756
3559
  }
3757
3560
  if (scheduleManageMeta) {
3758
3561
  scheduleManageMeta.textContent =
3759
- '时区: ' +
3760
- (timezone || 'local') +
3761
- ' · 共 ' +
3762
- totalCount +
3763
- ' 个任务' +
3764
- (scheduleManageState.totalPages > 1
3765
- ? ' · 第 ' +
3766
- scheduleManageState.page +
3767
- '/' +
3768
- scheduleManageState.totalPages +
3769
- ' 页'
3770
- : '')
3562
+ '时区: ' + (timezone || 'local') + ' · 共 ' + list.length + ' 个任务'
3771
3563
  }
3772
- renderScheduleTasksPager()
3773
3564
  }
3774
3565
 
3775
- /** 拉取 agent 定时任务(按创建时间倒序,分页) */
3776
- async function loadScheduleTasks(page) {
3777
- if (typeof page === 'number' && page >= 1) {
3778
- scheduleManageState.page = page
3779
- }
3780
- scheduleManageState.loading = true
3781
- renderScheduleTasksPager()
3782
- const res = await fetch(
3783
- buildSchedulesUrl(scheduleManageState.page, scheduleManageState.pageSize),
3784
- )
3566
+ /** 拉取 agent 全部定时任务 */
3567
+ async function loadScheduleTasks() {
3568
+ const res = await fetch(buildSchedulesUrl())
3785
3569
  const body = await res.json()
3786
- scheduleManageState.loading = false
3787
3570
  if (!res.ok) {
3788
3571
  throw new Error(body.message || body.error || res.statusText)
3789
3572
  }
3790
- scheduleManageState.page = Number(body.page) || scheduleManageState.page
3791
- scheduleManageState.pageSize = Number(body.pageSize) || scheduleManageState.pageSize
3792
- scheduleManageState.total = Number(body.total) || 0
3793
- scheduleManageState.totalPages = Number(body.totalPages) || 0
3794
- renderScheduleTaskTable(body.tasks, body.timezone, scheduleManageState.total)
3573
+ renderScheduleTaskTable(body.tasks, body.timezone)
3795
3574
  return body
3796
3575
  }
3797
3576
 
@@ -3844,7 +3623,7 @@
3844
3623
  if (scheduleCreateForm) scheduleCreateForm.hidden = true
3845
3624
  if (scheduleTaskNameInput) scheduleTaskNameInput.value = ''
3846
3625
  if (schedulePromptInput) schedulePromptInput.value = ''
3847
- await loadScheduleTasks(1)
3626
+ await loadScheduleTasks()
3848
3627
  }
3849
3628
 
3850
3629
  function buildScheduleRunUrl(id) {
@@ -3922,14 +3701,8 @@
3922
3701
  if (!scheduleRunsTableBody || !scheduleRunsEmpty) return
3923
3702
  scheduleRunsTableBody.innerHTML = ''
3924
3703
  const list = Array.isArray(runs) ? runs : []
3925
- if (list.length > 0) {
3926
- scheduleRunsEmpty.hidden = true
3927
- scheduleRunsEmpty.classList.remove('is-error')
3928
- } else {
3929
- scheduleRunsEmpty.hidden = false
3930
- scheduleRunsEmpty.textContent = '暂无执行记录'
3931
- scheduleRunsEmpty.classList.remove('is-error')
3932
- }
3704
+ scheduleRunsEmpty.hidden = list.length > 0
3705
+ if (list.length > 0) scheduleRunsEmpty.classList.remove('is-error')
3933
3706
  if (scheduleRunResultPre) {
3934
3707
  scheduleRunResultPre.hidden = true
3935
3708
  scheduleRunResultPre.textContent = ''
@@ -4092,19 +3865,14 @@
4092
3865
  if (!scheduleManageView) return
4093
3866
  setScheduleContentView('list')
4094
3867
  setScheduleManageVisible(true)
4095
- scheduleManageState.page = 1
4096
3868
  if (scheduleTaskTableBody) scheduleTaskTableBody.innerHTML = ''
4097
- if (scheduleTasksPager) {
4098
- scheduleTasksPager.innerHTML = ''
4099
- scheduleTasksPager.hidden = true
4100
- }
4101
3869
  if (scheduleManageEmpty) {
4102
3870
  scheduleManageEmpty.hidden = false
4103
3871
  scheduleManageEmpty.textContent = '加载中…'
4104
3872
  scheduleManageEmpty.classList.remove('is-error')
4105
3873
  }
4106
3874
  try {
4107
- await loadScheduleTasks(1)
3875
+ await loadScheduleTasks()
4108
3876
  } catch (e) {
4109
3877
  if (scheduleManageEmpty) {
4110
3878
  scheduleManageEmpty.hidden = false
@@ -5611,7 +5379,6 @@
5611
5379
  const text = getPromptPlainText()
5612
5380
  const trimmed = text.trim()
5613
5381
  if (!trimmed) return
5614
- resetApiErrorTurnState()
5615
5382
  setPendingUserEcho(trimmed)
5616
5383
  const payload = { type: 'prompt', text: text }
5617
5384
  autoScrollState.mode = 'FORCE_ON_SEND'
@@ -8702,6 +8469,14 @@
8702
8469
  : ''
8703
8470
  const value = String(raw ?? '').trim()
8704
8471
  if (!value) continue
8472
+ if (field.key === TUITUI_CHANNEL_SESSION_KEY) {
8473
+ if (!TUITUI_CHANNEL_SESSION_ALLOWED.has(value)) {
8474
+ return {
8475
+ ok: false,
8476
+ message: 'TUITUI_CHANNEL_SESSION 只允许 0(禁用)或 1(启用)',
8477
+ }
8478
+ }
8479
+ }
8705
8480
  out[field.key] = value
8706
8481
  }
8707
8482
  return { ok: true, env: out }
@@ -198,11 +198,6 @@ function startPollLoop() {
198
198
  if (pollTimer) {
199
199
  return
200
200
  }
201
- // 业务语义:geelib 单任务 session 仅出站工具,禁止启动轮询避免与监听 session 重复拉取
202
- if (String(process.env.GEELIB_ENABLE_POLL || '').trim() === '0') {
203
- logBoot('[POLL] skipped GEELIB_ENABLE_POLL=0')
204
- return
205
- }
206
201
  logBoot(`[POLL] start intervalMs=${pollIntervalMs}`)
207
202
  void pollAndNotify()
208
203
  pollTimer = setInterval(() => {
@@ -7,6 +7,8 @@ import {
7
7
  readFileSync,
8
8
  writeFileSync,
9
9
  } from "node:fs";
10
+ import { execFile } from "node:child_process";
11
+ import { promisify } from "node:util";
10
12
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
13
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
12
14
  import * as z from "zod";
@@ -34,6 +36,10 @@ const projectSettingsLocalFile = join(
34
36
  projectSettingsDir,
35
37
  "settings.local.json",
36
38
  );
39
+ const execFileAsync = promisify(execFile);
40
+ const CLAUDE_BIN = process.env.CLAUDE_BIN || "claude";
41
+ const AUTO_REPLY_ENABLED =
42
+ String(process.env.TUITUI_AUTO_REPLY || "true").toLowerCase() !== "false";
37
43
  const account = {
38
44
  appId: process.env.TUITUI_APP_ID,
39
45
  appSecret: process.env.TUITUI_APP_SECRET,