@auto-ai/agent 2.1.207 → 2.1.209
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +7 -0
- package/dist/safe-a/404/index.html +1 -1
- package/dist/safe-a/404.html +1 -1
- package/dist/safe-a/_next/static/{XLLZk_sGEUiYPoRmYU_f9 → Y4PlJTxK6TQphwzXXWsHY}/_buildManifest.js +1 -1
- package/dist/safe-a/_next/static/chunks/{0e8139882ad093d2.js → 00b0744649a5e608.js} +1 -1
- package/dist/safe-a/_next/static/chunks/00f91b7d88f62204.js +1 -0
- package/dist/safe-a/_next/static/chunks/{3bcd531d40d6c019.js → 02339beb679bec8d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f0cb9b2226c53ef9.js → 025f9752d60b79ce.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1a4b553856a8ffdf.js → 03039556684e9812.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{27ff2e69b2fd19e5.js → 03af20498d43b518.js} +1 -1
- package/dist/safe-a/_next/static/chunks/03d9139a7df67167.js +1 -0
- package/dist/safe-a/_next/static/chunks/{ff12eca45020947a.js → 04ed04c00511a337.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{9037530b0f1d5783.js → 0518cc63903bebac.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{ea2a84258a02d5c5.js → 05ac495e860ba7c2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/0699439b4e026cf9.js +5 -0
- package/dist/safe-a/_next/static/chunks/{e96518d9cb5cbe1e.js → 06a64fef342a5832.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{32b4d63e10d31351.js → 06e2cd3fae94aae8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{af7b0bd1b40ad066.js → 0708a65cc3ecf56b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{966fb5830ce1029c.js → 093669121f3b7aa1.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{55087cc98e6237f1.js → 0c19efa935cdd816.js} +1 -1
- package/dist/safe-a/_next/static/chunks/0d0a0fd8bc7c5154.js +1 -0
- package/dist/safe-a/_next/static/chunks/{e7bcbeb465fa49cf.js → 0d7d0d2beb29f175.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d599ef4d0f84a93d.js → 0e68cace7cf0464c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{73cbf0064096e28c.js → 0f93a62e5e2db48b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/1116b1064a071974.js +1 -0
- package/dist/safe-a/_next/static/chunks/{16ea1d3cf6db8a53.js → 12932eb7d288b09b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b360c9fc22dbf831.js → 129875fd1b096964.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{facb82117d49a6e1.js → 1386362cdfd92116.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2df3e464b6247e75.js → 1409701c73ffe517.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d5e3d29f769997cc.js → 18570009118a0e76.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{fb0f4d868b87961b.js → 18e062f9f23f27c0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/19023abd5e1bf1d1.js +1 -0
- package/dist/safe-a/_next/static/chunks/{413a7be096275d7f.js → 19a47cfc8ca4c0a7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/1a900b3c5a00d59b.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d729414ff836cd53.js → 1a91a01fbaf01e7e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6ae709c575c74979.js → 1aaf9fb00fb53ef9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/1b739dfdbcce05bd.js +1 -0
- package/dist/safe-a/_next/static/chunks/1d0273aae0bc102c.js +1 -0
- package/dist/safe-a/_next/static/chunks/{6522643341a0921c.js → 1d737ed6e08d2466.js} +1 -1
- package/dist/safe-a/_next/static/chunks/1df41f8d439107ef.js +1 -0
- package/dist/safe-a/_next/static/chunks/{5a3e355216280144.js → 1f90e84b5a4dad81.js} +1 -1
- package/dist/safe-a/_next/static/chunks/1faaa282be969b14.js +1 -0
- package/dist/safe-a/_next/static/chunks/{a6a98f9278704b6a.js → 217c50478c5ea4d7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e3fe320ec1b8f889.js → 232cc01daaf29e5d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a5df6158856685f1.js → 2331e2a388a9bd50.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{170f7361bd4d33e2.js → 23f50ba74d421ab3.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{cd0e7e3cc303b4e4.js → 261bf96e2331ea0a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f36595b9995a49a9.js → 27b3d30516d46fc8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/27d9a47efb23fd17.js +1 -0
- package/dist/safe-a/_next/static/chunks/{fa39b9f8bced4bcd.js → 2854919e0953bd0d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/29105a13d179d5b2.js +1 -0
- package/dist/safe-a/_next/static/chunks/29403b19d94e37bb.js +1 -0
- package/dist/safe-a/_next/static/chunks/{3934bd57f459566e.js → 29a317486c4ab7d7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6cc2f7f962cdd082.js → 29cf9e89be8a7f75.js} +1 -1
- package/dist/safe-a/_next/static/chunks/29f39316c32518a2.js +1 -0
- package/dist/safe-a/_next/static/chunks/2a07e0d1ef712b41.js +1 -0
- package/dist/safe-a/_next/static/chunks/2b38c2b26760e4cb.js +1 -0
- package/dist/safe-a/_next/static/chunks/2bb180b50bafe979.js +1 -0
- package/dist/safe-a/_next/static/chunks/{1e43922998a0ed2f.js → 2bd512c6acf9ee9b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2c6d585a97629311.js → 2be2d49054d4606c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6c3b2d0be1c633b6.js → 2c0b2fd9fb2fea66.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{35f1637c2feb232d.js → 2ccdfcf9ecfa2ea8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/2ce249001ad95013.js +1 -0
- package/dist/safe-a/_next/static/chunks/{cd5eec7d305aa041.js → 2f104b4be1990722.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7f6e82ac63db5eff.js → 2f35f32799fb08ac.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{eb9ae8e95cac1197.js → 30c0274cb379ab0d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3b2bb9f17546ee3e.js → 30f37e8e02339538.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7dd32128bdee61f7.js → 31c93ba513dea5e7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d82740475fc07e98.js → 333630802bd6f1a6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/33e878df066811db.js +1 -0
- package/dist/safe-a/_next/static/chunks/{94029062f236cadc.js → 3422b2c2f9bdf0e0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f235a8df2f905e6a.js → 36897fabf62bf445.js} +1 -1
- package/dist/safe-a/_next/static/chunks/37615c61dd14fc8d.js +1 -0
- package/dist/safe-a/_next/static/chunks/37e4ac5f3654a688.js +1 -0
- package/dist/safe-a/_next/static/chunks/{b66afb4b0be97af8.js → 37f3ea0b3cf40bca.js} +1 -1
- package/dist/safe-a/_next/static/chunks/38d88de54642e44e.js +1 -0
- package/dist/safe-a/_next/static/chunks/{9f0ee4783140adf1.js → 38dcdbfb8c6966a9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/38decd5cd3fe2525.js +1 -0
- package/dist/safe-a/_next/static/chunks/{bbaef90b0ce43019.js → 38e76abda882c1a8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/39fc6ad79e44f4df.js +1 -0
- package/dist/safe-a/_next/static/chunks/{f1f911d553a62027.js → 3b0acee8a8035ee7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{fb2f1266493dd820.js → 3d9ee9c4bc8e29b2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3ec05a61e93547d3.js → 3da255bcf22e013d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6d4209e94b1aafe6.js → 3e45de4a81d1f7a6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/3ecc6705303560ea.js +1 -0
- package/dist/safe-a/_next/static/chunks/3efccd72f964d9d3.js +1 -0
- package/dist/safe-a/_next/static/chunks/{1078bc1642db53ad.js → 3f18c3fa64301e74.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{cfd9aff2dcf3adb9.js → 3f74431cdf49e5e1.js} +1 -1
- package/dist/safe-a/_next/static/chunks/3fe95be4b92470e2.js +1 -0
- package/dist/safe-a/_next/static/chunks/{ef51763a796dde8b.js → 404f44571be80b78.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b65565677c3e8c0a.js → 405cd8dd7faa6eaf.js} +1 -1
- package/dist/safe-a/_next/static/chunks/4064e59727cba9b0.js +1 -0
- package/dist/safe-a/_next/static/chunks/{bbcf9daa108b22fb.js → 43392297dd43555d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{459d401d9f9e5b9f.js → 435e18828af1d066.js} +1 -1
- package/dist/safe-a/_next/static/chunks/44e9e0394b7b6f31.js +1 -0
- package/dist/safe-a/_next/static/chunks/{9cb28a1dacb7ea6d.js → 46568a8bad984d09.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{caf4049dc563940e.js → 47098fcba8e98974.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3e9c98df7d56e9b2.js → 472047ea96adfca5.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e04bace22e04d63c.js → 473249ae7830085a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{cccecf726769787f.js → 47d485f30e419da8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/4ae2c56fab8c060d.js +1 -0
- package/dist/safe-a/_next/static/chunks/{f659a364f48244ea.js → 4c19e1ee54dac526.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c2546d2b493dd907.js → 4c87634b39751c56.js} +1 -1
- package/dist/safe-a/_next/static/chunks/4ca36e3fb45c2e71.js +1 -0
- package/dist/safe-a/_next/static/chunks/4cd41b402679f77d.js +1 -0
- package/dist/safe-a/_next/static/chunks/4d97363bb1a6633d.js +1 -0
- package/dist/safe-a/_next/static/chunks/{fa5b61b8e7219fe6.js → 4df5dd4e3c591164.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{32b9bdd82a961878.js → 4f55f5dfceddc1fe.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d8af8dadd0889c71.js → 502779251884e330.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{62d925bcc8518b6f.js → 503bbec2e3179a3c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{736441266ceb14e2.js → 5076e29ddf662e81.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d9b92ed2d544fca5.js → 50c602f1b79d61a7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e4973ad5c183f17a.js → 50cbc92b0512838a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/50f270f87470ca73.js +1 -0
- package/dist/safe-a/_next/static/chunks/5385bf74559eeabd.js +1 -0
- package/dist/safe-a/_next/static/chunks/54169c1554845574.js +1 -0
- package/dist/safe-a/_next/static/chunks/{644aa76620718c98.js → 547eb82208058c71.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{13f94fc3dda88c90.js → 54a2df4508a1c311.js} +1 -1
- package/dist/safe-a/_next/static/chunks/54ce15edde8ce98c.js +1 -0
- package/dist/safe-a/_next/static/chunks/{95c4d26e469d1d8f.js → 55e32e78e4db3889.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d09636e7bcf60ad1.js → 564507763428bfb0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{560ca23f77c0e819.js → 569dda34679bca70.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{cba2741f84ef36ed.js → 57bc9169370081d7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{19584f955475ce91.js → 57e13ec897ff78d6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{27c407347ce26b78.js → 591fe54d06e0a33e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/592e7a6b713dc645.js +1 -0
- package/dist/safe-a/_next/static/chunks/599abea9ac64aaf1.js +1 -0
- package/dist/safe-a/_next/static/chunks/{c5b5aba98d38ef23.js → 5a43f7cd89a42167.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{ee79511740d19885.js → 5ad5a5ee1cc648ae.js} +1 -1
- package/dist/safe-a/_next/static/chunks/5ae21c9105c6abb4.js +1 -0
- package/dist/safe-a/_next/static/chunks/{71e3a90489469c28.js → 5c076874caf0532e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{55f8de91b4803778.js → 5c2a7e118fa66960.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{75a396e1752cd59d.js → 5ca0c9bb26daf732.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c933951b3113492f.js → 5e4225518ccc365e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{70459a2a4c45653e.js → 6349c7cf3b394b81.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{5a4c198fd41e8ec4.js → 63f33483697b26ca.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6b7c3c962a14dc29.js → 645741ee91707763.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{5a0b630678282d4f.js → 648649ebbc7565b9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a37aa474433d29e3.js → 65159d9aa3ecc0c9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{588e6975a7bd6671.js → 65963496d7fa49bc.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3ae4e2529aa621fb.js → 65ee07c4b6209141.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2fab2306850ac97b.js → 66247e9b3cf471f5.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{8deb0392842e5a01.js → 6818b9385873d081.js} +1 -1
- package/dist/safe-a/_next/static/chunks/68255bcd6345edfd.js +1 -0
- package/dist/safe-a/_next/static/chunks/68f27d4f860d8f88.js +1 -0
- package/dist/safe-a/_next/static/chunks/6960a33147147a27.js +1 -0
- package/dist/safe-a/_next/static/chunks/{648b653b36802fdc.js → 6d0bf0ac1fdb7eab.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{57bb853857f3de83.js → 6e145bea7acc82b4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c6cc32860b96278f.js → 6e4e92cbcf961542.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{aa0a4c596151b22b.js → 6e663a2e3562125c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a7277c96f3669bea.js → 6ecccb36549d3028.js} +1 -1
- package/dist/safe-a/_next/static/chunks/6f6140cbad7cdeea.js +1 -0
- package/dist/safe-a/_next/static/chunks/6faa53698dc67904.js +1 -0
- package/dist/safe-a/_next/static/chunks/{bf2262100cea8c64.js → 6fc97877fbcf3403.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{0fa097a572705cfa.js → 70b95d96e33a5d63.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b81c0c834a36e7e9.js → 713b097e1a0b340b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/727dc45d24782155.js +1 -0
- package/dist/safe-a/_next/static/chunks/{7fd45fb9cf0995f3.js → 738c808ddc82ea44.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{715c085d7c10eeda.js → 740732a162598c49.js} +1 -1
- package/dist/safe-a/_next/static/chunks/74d8d2b653f61b70.js +1 -0
- package/dist/safe-a/_next/static/chunks/7562ab6463e9fc3f.js +1 -0
- package/dist/safe-a/_next/static/chunks/{692e7ee14236fefb.js → 774e554c11c8759a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/784ee151431c6634.js +1 -0
- package/dist/safe-a/_next/static/chunks/7afa34c1dc058648.js +1 -0
- package/dist/safe-a/_next/static/chunks/7b34873e2b22211d.js +1 -0
- package/dist/safe-a/_next/static/chunks/{354aaa2e36b75b81.js → 7b6898a7f9df6495.js} +1 -1
- package/dist/safe-a/_next/static/chunks/7bd04dff1e0d3a01.js +1 -0
- package/dist/safe-a/_next/static/chunks/{5798600d2ea8a3e8.js → 7c2d68248d759f50.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f813c3d77459119f.js → 7c4b1ab5c0f1b167.js} +1 -1
- package/dist/safe-a/_next/static/chunks/7cadf95d4932deec.js +1 -0
- package/dist/safe-a/_next/static/chunks/7ccd9e31b61da21f.js +1 -0
- package/dist/safe-a/_next/static/chunks/{0b69dba7f1e63f30.js → 7cd0d9159e722599.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d3990c1e87ef3e23.js → 7d7ef3758ed7347b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/7e2887a3269dfc01.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d69b21102305d19e.js → 7e5b28d162f1ea9d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{37cfaa4963ac51f3.js → 7ed753f2db91bc38.js} +1 -1
- package/dist/safe-a/_next/static/chunks/7f167fb0dbc03180.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d33e49aabd798892.js → 7f611b9b215dfcef.js} +1 -1
- package/dist/safe-a/_next/static/chunks/80bd106b26a076af.js +1 -0
- package/dist/safe-a/_next/static/chunks/826c64c8601264b1.js +1 -0
- package/dist/safe-a/_next/static/chunks/{65fb49c8a7f59842.js → 829196dbf7eddb51.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b429be4e16fa1e00.js → 82aea21a16d00076.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c3669d468d3f2b3a.js → 82cdf7e6dbe7070d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/8465e859bae24fbd.js +1 -0
- package/dist/safe-a/_next/static/chunks/84e8e1e50a6b3ab7.js +1 -0
- package/dist/safe-a/_next/static/chunks/{f1e5e295d4db5c0f.js → 868f60fa1a2ff26b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{88a999988f915988.js → 86c0a63bf95598a3.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1bb28f71c19fa824.js → 878dd96f8fcd6bd4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/87b0002602934525.js +1 -0
- package/dist/safe-a/_next/static/chunks/882686dd3b63f9d1.js +1 -0
- package/dist/safe-a/_next/static/chunks/88e4cdcdeff36154.js +1 -0
- package/dist/safe-a/_next/static/chunks/{67c9db5577080125.js → 8aafb8ec5208a445.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1d3e7886be9f671c.js → 8b1990cf2eb41663.js} +1 -1
- package/dist/safe-a/_next/static/chunks/8c8b1e40b00409f5.js +1 -0
- package/dist/safe-a/_next/static/chunks/{61ce261738313b8a.js → 8c97e3b556b32001.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2326118ef1328bc5.js → 8cee526b3846c40b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a6737fc58619eae5.js → 8d76667bd2633e46.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{8bdc142fad5847ed.js → 8e33e395e6224908.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{fdfce6fa0b958336.js → 8ead3da37182ce4c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e61019aedfdf554e.js → 8ebfebffa66b3ca7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/913de10eeb8a88d9.js +1 -0
- package/dist/safe-a/_next/static/chunks/92c1de3b7b8ff353.js +1 -0
- package/dist/safe-a/_next/static/chunks/{1b55c29b8cad4a50.js → 93588b2335ca95de.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{19c1491e85e22b3b.js → 948dc342d4746ffc.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{37bbbf907196a5bf.js → 94d40dcd515ca4ad.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{72ef1696f44fcf61.js → 957b35b92a00be9d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{5fc8a5235ddfa787.js → 9583c5cc3861200c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1818d7a661948f6b.js → 966730983f55a7c6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{13b54d70a1ee1de7.js → 967dfe61a543e533.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2fcc6298b6dd7a82.js → 9721e6d173bcda17.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{53be52c43a14557c.js → 97d506a00590396c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c986c8a9aca6f35a.js → 98a2db7a6b8d43c0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{092c97532613af2a.js → 9924bd3807982f9c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/996147dc11d8e745.js +1 -0
- package/dist/safe-a/_next/static/chunks/{c725524ea13a50ab.js → 997894582876b3bb.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{8f038ff914c4b0df.js → 99ce8e2a747001a9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/9a5e8d11c09774ed.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d47cd27ac08f5429.js → 9a63abc493c1c840.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7d3bf918bccde738.js → 9ae8f05f80dedfa4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a9fed5c43d754a96.js → 9b0ac8da8e1c0d7e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e0c76ff7114dc8dc.js → 9b94620a86d2a1c2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d842d30dcb0f50a9.js → 9bedfcbe8f9ff43f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b78822282754a47c.js → 9d65a2db77bf6c63.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{dc2186b66132ca97.js → 9d8fff267f5576eb.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{481a2858f7df907d.js → 9db0d8129d6b7b5e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c1615032cbbf5b56.js → 9de7a5feb6be8bc3.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b24e3802454a5567.js → 9e9339584dbc8172.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f50fd84e477dbaeb.js → 9f7b593a28b4dbe4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/9f8b67e210121299.js +1 -0
- package/dist/safe-a/_next/static/chunks/{108a0b77418f1d31.js → a0256e00bbdc334c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{84185f4bb07ccbd7.js → a12eeb7c77a7506f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/a333240ca95e9cf9.js +1 -0
- package/dist/safe-a/_next/static/chunks/{5ea79c109cbe8a86.js → a367a4ab4b91ce6b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2046937bffedf074.js → a39dba23f5098cde.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3a947667fddbdd53.js → a3af4dcdb725b47f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{fd3d43eb8557ee49.js → a4ab363af889263f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/a4b35c64097aeb05.js +1 -0
- package/dist/safe-a/_next/static/chunks/a6fda6a41633eb93.js +1 -0
- package/dist/safe-a/_next/static/chunks/{19ca17e5015c42a3.js → a8696c4a576878ae.js} +1 -1
- package/dist/safe-a/_next/static/chunks/a86fedb173944e90.js +1 -0
- package/dist/safe-a/_next/static/chunks/a9a12415c8875ad5.js +1 -0
- package/dist/safe-a/_next/static/chunks/{04c9439163b67552.js → aa34ec2d74f7775c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{9724567275720686.js → aa8c7d3d99a14fdb.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{01766c1e2fdff227.js → ab522ef4566e28db.js} +1 -1
- package/dist/safe-a/_next/static/chunks/ab91b57996557cd5.js +1 -0
- package/dist/safe-a/_next/static/chunks/{ebb0ee69f6a7883e.js → abf043c7dd51a07b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/ac0062f74360e8a1.js +1 -0
- package/dist/safe-a/_next/static/chunks/{4a340ea4ac145216.js → ad22e1613386ba8d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{68bd2bd64624e20d.js → ada2807c297fe674.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{751de74a23cc9036.js → ae1404fdd6ec935a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3520f1af0a1b7f66.js → ae7e9c73a1d653fd.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{0ce6504fc10ce408.js → af07509fa7bac8c4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{242529c986baeb00.js → afab34a5bb437673.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{98e243fb5992a71c.js → aff6654f4fbc26b0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{87e12ecbe9521f9b.js → b0638abf4a6eb85f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/b08f1ee81b569c60.js +1 -0
- package/dist/safe-a/_next/static/chunks/b0f0f19c125de544.js +1 -0
- package/dist/safe-a/_next/static/chunks/{6f4460bd0b8a57af.js → b4d570502774dffb.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{9078ad91aa20dca0.js → b4db35dceb9577e1.js} +1 -1
- package/dist/safe-a/_next/static/chunks/b594aa86704b6429.js +1 -0
- package/dist/safe-a/_next/static/chunks/{96026b5eb5d2566b.js → b717d3610f87602f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/b882523826ac1c83.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d715e874b8ee8540.js → b92da682bccc569b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{ea36a5ae7c6ce34f.js → b9b23fa418eacd67.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3fd03b9ed21b30fc.js → c013a3a3b1574b7d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{179a5dac78ab2cb9.js → c0960892f67b4256.js} +1 -1
- package/dist/safe-a/_next/static/chunks/c2a354d059dc2745.js +1 -0
- package/dist/safe-a/_next/static/chunks/{9e96c84b86d1bbf3.js → c2e5be103cef6113.js} +1 -1
- package/dist/safe-a/_next/static/chunks/c3bcc6eb84ed7d30.js +1 -0
- package/dist/safe-a/_next/static/chunks/{106955e3cc6a6843.js → c43009f5a3f83289.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6f3afa83656eab67.js → c43f94053172eb84.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2ec6d7ddb4c04987.js → c537d051140acc61.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c15069059c9d1f53.js → c5932397b84e3c27.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f0d9f0621f8ec46d.js → c5b0f8f27c2db9f1.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7137c7537c459c31.js → c5fd875d1d9fd6c4.js} +1 -1
- package/dist/safe-a/_next/static/chunks/c6bad34be1aacd05.js +5 -0
- package/dist/safe-a/_next/static/chunks/{4df298f5b420f474.js → c84ea2dc8d3281e6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e5275dcacbabc3e3.js → c8b301b059ee1946.js} +1 -1
- package/dist/safe-a/_next/static/chunks/c9204488e115fc38.js +1 -0
- package/dist/safe-a/_next/static/chunks/c9527036b1a95d19.js +1 -0
- package/dist/safe-a/_next/static/chunks/ca31fc9ca02421c7.js +1 -0
- package/dist/safe-a/_next/static/chunks/{f9cb4b70f67c86d8.js → cac08e0e891f58d2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{bd984c5404403e7d.js → cb8a82631d87b798.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{303d9c2a2c956f25.js → ccbe0fe39b523768.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{7aa69fd5d97b7146.js → cd733da27bed8af2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{66ed07a735eac6e3.js → cf99b249b986e2bd.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{72a56bd75075fd83.js → d0d06ea64246c2e0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{da346aeed70dd39a.js → d147ab3cf51edc42.js} +1 -1
- package/dist/safe-a/_next/static/chunks/d1e3d3d09ff4ed38.js +1 -0
- package/dist/safe-a/_next/static/chunks/d2644966a8736893.js +1 -0
- package/dist/safe-a/_next/static/chunks/d2b5664aa6eb613c.js +1 -0
- package/dist/safe-a/_next/static/chunks/{1e17456ccebc9cd2.js → d2bba4dbd6e24f7e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/d3072ff0f4d0f613.js +1 -0
- package/dist/safe-a/_next/static/chunks/{de0ee516f6a1aa07.js → d3fc1847f85d724b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b69f987a60b05db3.js → d53ff6336a32e4c5.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1fec17d16aff9eed.js → d653880800910810.js} +1 -1
- package/dist/safe-a/_next/static/chunks/d6c35821582ac6a8.js +1 -0
- package/dist/safe-a/_next/static/chunks/d78975cda9119543.js +1 -0
- package/dist/safe-a/_next/static/chunks/{ebcbb5070eb8e29f.js → d84ed83f568f41c6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{a1b9abf15c0f7655.js → d9bf3f0f6088ac8c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{5ee72092303043ef.js → daaffc256846db90.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{40cc0252b2f1d855.js → dabd2cc5e900d556.js} +1 -1
- package/dist/safe-a/_next/static/chunks/dbf36b536a6c59ef.js +1 -0
- package/dist/safe-a/_next/static/chunks/{e11d4fd8de65621d.js → dc7f280eee64d574.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{69cfdbc51cf2d3c3.js → dcdc329f64f1a7a8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f42d74f288f2229c.js → dd03bb14e8e590f0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d2d432a9facf4278.js → dd59d0e313916320.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b3e79c76be269ccc.js → ddc8a591c8943264.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{49df9708d6328c4a.js → de208f3610c12b2c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{2f7d30e66e995b02.js → dee1daaeed29e5a2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6b652524b5ffdd9e.js → dfbd9d8a4137edd6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{270d7571d2eea071.js → dfd8167d74bbaa3a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{4dfbfdff43b8479b.js → dfe4d8ffc37b96da.js} +1 -1
- package/dist/safe-a/_next/static/chunks/e048616a4731c6b2.js +1 -0
- package/dist/safe-a/_next/static/chunks/{0e1e7d5f7a375308.js → e07906d264057e7b.js} +1 -1
- package/dist/safe-a/_next/static/chunks/e0b6375c01566831.js +1 -0
- package/dist/safe-a/_next/static/chunks/{b29a85c3dae2bb9c.js → e1416a0b2152bdbf.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{fb05f79f5e4b514e.js → e1626e173f56ae31.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3590c4a4f40cdb5d.js → e4776ea06fa1720a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{756b6c2e620386ff.js → e632e1b120215697.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{b61ec36c9bbca3e0.js → e66819cb4afcfe87.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{44cbf68ad086a6a3.js → e6c441f81a8ea81c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{ea12d36cdfbaafa9.js → e7731336476789d7.js} +1 -1
- package/dist/safe-a/_next/static/chunks/e79d1db952916e66.js +1 -0
- package/dist/safe-a/_next/static/chunks/{06b923aa1177f43f.js → e7d6284971d07422.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{79128afded6e01d9.js → e7f1683dcd85bf06.js} +1 -1
- package/dist/safe-a/_next/static/chunks/e814d6bb4f565a59.js +1 -0
- package/dist/safe-a/_next/static/chunks/{65fe0975412ff703.js → e878ffaf394e2c30.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e7003dbd5d8cb2d1.js → e89655c05e6b5b1f.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{66b30159915524db.js → ea136b1a439307e8.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{8f5be275907dd98c.js → eaa820432740042a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{5d5333084191fb10.js → eb248f97f593a288.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{932d3fcc2596e8d5.js → eb34cdf40f4c4d62.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6fe835d41fdbd638.js → ec048ffab26ebcd6.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{6bc7c57f119ad4f6.js → ec24f7a0593636d9.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{e1999bcadd3448e5.js → ec7ee73b22712e55.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{0fd3876e0d9e8acc.js → ed4322c3137a7cbf.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{962a27e9c634b823.js → ede1765e6899133a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{bc7bda699a7ccda1.js → f05af2c706c87fb5.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{bd1f33816fa01c16.js → f0a3b313fc0fcace.js} +1 -1
- package/dist/safe-a/_next/static/chunks/f15c8b2639bebe0f.js +1 -0
- package/dist/safe-a/_next/static/chunks/{f461a75ec3b0e4e9.js → f39ec71d70b31fe1.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{ad50a7d15cd9d9d8.js → f40b91cb7cc58cf2.js} +1 -1
- package/dist/safe-a/_next/static/chunks/f42445d9866f6b16.js +1 -0
- package/dist/safe-a/_next/static/chunks/{aa867a1fa8b105e1.js → f7ad257814e6e947.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{3ae23df392f9bed8.js → f7d33f46dfbddf65.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{534b5acf573aa491.js → f8757d2c1a969081.js} +1 -1
- package/dist/safe-a/_next/static/chunks/fa0cb747819a4b88.js +1 -0
- package/dist/safe-a/_next/static/chunks/{0fb0d030e8dee231.js → faf267ae8eaabb78.js} +1 -1
- package/dist/safe-a/_next/static/chunks/fb7bf2e8cee9c72f.js +1 -0
- package/dist/safe-a/_next/static/chunks/{eb2d81df9fe374a8.js → fbb5b0d1f5b25465.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{c8e45be36912e439.js → fc3c1b765cc5906d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{1c9321874fea5f0d.js → fd3f75ac79c1d04e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{9a7b2a483b109c0a.js → fddfcced721d9669.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{d2e37b6d5ff62bcb.js → fdf535baa39c0e26.js} +1 -1
- package/dist/safe-a/_next/static/chunks/fe4fddbf85e1554b.js +1 -0
- package/dist/safe-a/_next/static/chunks/{d33a24782888b869.js → fe840e6cda1c115e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/ff9ec21502a3b775.js +1 -0
- package/dist/safe-a/_next/static/chunks/{turbopack-3d84668fefd38b4b.js → turbopack-25307b1915d537a0.js} +1 -1
- package/dist/safe-a/_next/static/chunks/turbopack-c8295da8707d94de.js +3 -0
- package/dist/safe-a/_next/static/chunks/{turbopack-63952675b1d69124.js → turbopack-fd95f1c0ef78a441.js} +1 -1
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +18 -18
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +15 -15
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +17 -17
- package/dist/safe-a/manage/geelib/index.html +2 -2
- package/dist/safe-a/manage/geelib/index.txt +17 -17
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +15 -15
- package/dist/safe-a/manage/git/index.html +2 -2
- package/dist/safe-a/manage/git/index.txt +17 -17
- package/dist/safe-a/manage/im/index.html +2 -2
- package/dist/safe-a/manage/im/index.txt +17 -17
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +12 -12
- package/dist/safe-a/manage/library/index.html +2 -2
- package/dist/safe-a/manage/library/index.txt +15 -15
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +15 -15
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +15 -15
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +15 -15
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +15 -15
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +15 -15
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +15 -15
- package/dist/ws-test/ws-test.css +4 -0
- package/dist/ws-test/ws-test.html +21 -0
- package/dist/ws-test/ws-test.js +297 -72
- package/mcps-runtime/claude-tuitui-channel/server/index.mjs +0 -6
- package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +4508 -1134
- package/package.json +6 -6
- package/dist/safe-a/_next/static/chunks/05e1926dc5c477b7.js +0 -1
- package/dist/safe-a/_next/static/chunks/0b639ff4f1971d14.js +0 -1
- package/dist/safe-a/_next/static/chunks/0ea5a62c3f30dc56.js +0 -1
- package/dist/safe-a/_next/static/chunks/0f1810e4c6b0dd0c.js +0 -1
- package/dist/safe-a/_next/static/chunks/1130da797f872f0e.js +0 -1
- package/dist/safe-a/_next/static/chunks/1289fc2bb1119e18.js +0 -1
- package/dist/safe-a/_next/static/chunks/155374df9f6b4b9a.js +0 -1
- package/dist/safe-a/_next/static/chunks/17722e3ac4e00587.js +0 -1
- package/dist/safe-a/_next/static/chunks/18977fe8f51209aa.js +0 -1
- package/dist/safe-a/_next/static/chunks/1974f51c298bce94.js +0 -1
- package/dist/safe-a/_next/static/chunks/1bfa645704d9149a.js +0 -1
- package/dist/safe-a/_next/static/chunks/1c5adfc7c1c7d389.js +0 -1
- package/dist/safe-a/_next/static/chunks/1da49ae596352b69.js +0 -1
- package/dist/safe-a/_next/static/chunks/219a3413675ba6f1.js +0 -1
- package/dist/safe-a/_next/static/chunks/236775e4ec4f8a94.js +0 -1
- package/dist/safe-a/_next/static/chunks/27069b3f310e0a86.js +0 -1
- package/dist/safe-a/_next/static/chunks/291c07da1c127dc1.js +0 -1
- package/dist/safe-a/_next/static/chunks/29676075a0390867.js +0 -1
- package/dist/safe-a/_next/static/chunks/2e574acbf68e77ff.js +0 -1
- package/dist/safe-a/_next/static/chunks/2f474d38a46f537c.js +0 -1
- package/dist/safe-a/_next/static/chunks/32a7ca0a75a897da.js +0 -1
- package/dist/safe-a/_next/static/chunks/3509a66e019ceae3.js +0 -1
- package/dist/safe-a/_next/static/chunks/3aac5736e5781b46.js +0 -1
- package/dist/safe-a/_next/static/chunks/3c695d1c2efbc749.js +0 -1
- package/dist/safe-a/_next/static/chunks/3d8e9a96a69193d4.js +0 -1
- package/dist/safe-a/_next/static/chunks/3dcb1dcf23e7ab9c.js +0 -1
- package/dist/safe-a/_next/static/chunks/3e2ea3a7fe64826d.js +0 -1
- package/dist/safe-a/_next/static/chunks/3f6fe8a1903009ea.js +0 -1
- package/dist/safe-a/_next/static/chunks/3fb4674edcb2d726.js +0 -1
- package/dist/safe-a/_next/static/chunks/40268f8e3ff0314e.js +0 -1
- package/dist/safe-a/_next/static/chunks/40a2fb9cf3a7e6fd.js +0 -1
- package/dist/safe-a/_next/static/chunks/45ab9a1f693d609c.js +0 -1
- package/dist/safe-a/_next/static/chunks/461246e3ff85f221.js +0 -1
- package/dist/safe-a/_next/static/chunks/4a426c156537f974.js +0 -1
- package/dist/safe-a/_next/static/chunks/4be4ca8f1ec9c171.js +0 -1
- package/dist/safe-a/_next/static/chunks/4be779bcbd94352d.js +0 -1
- package/dist/safe-a/_next/static/chunks/4c33a1cc6db74105.js +0 -1
- package/dist/safe-a/_next/static/chunks/4d129d4e15c8c424.js +0 -1
- package/dist/safe-a/_next/static/chunks/5069ee4aa806b0ea.js +0 -1
- package/dist/safe-a/_next/static/chunks/519049cd74a40910.js +0 -1
- package/dist/safe-a/_next/static/chunks/522518d740397639.js +0 -1
- package/dist/safe-a/_next/static/chunks/52e2164e45febae6.js +0 -1
- package/dist/safe-a/_next/static/chunks/538cc02e54714b23.js +0 -1
- package/dist/safe-a/_next/static/chunks/546f232d695d6e60.js +0 -1
- package/dist/safe-a/_next/static/chunks/54c43751bf4c4da2.js +0 -1
- package/dist/safe-a/_next/static/chunks/5b916c9dc09e323c.js +0 -1
- package/dist/safe-a/_next/static/chunks/5ccd5a6ac9c2f980.js +0 -1
- package/dist/safe-a/_next/static/chunks/5d79b7f202080232.js +0 -1
- package/dist/safe-a/_next/static/chunks/63ec034afca4b5d6.js +0 -1
- package/dist/safe-a/_next/static/chunks/6677c64fd587e78c.js +0 -1
- package/dist/safe-a/_next/static/chunks/6785757cc05fec19.js +0 -1
- package/dist/safe-a/_next/static/chunks/696e3ddd135b85b4.js +0 -1
- package/dist/safe-a/_next/static/chunks/6d1f15f3eb86ea37.js +0 -1
- package/dist/safe-a/_next/static/chunks/7145a30cb461e3ab.js +0 -1
- package/dist/safe-a/_next/static/chunks/71d3a80bc9d53b07.js +0 -1
- package/dist/safe-a/_next/static/chunks/764c541428e1c6eb.js +0 -1
- package/dist/safe-a/_next/static/chunks/7988d5ea63356e10.js +0 -1
- package/dist/safe-a/_next/static/chunks/7b9c09d0ce43f1c2.js +0 -1
- package/dist/safe-a/_next/static/chunks/7dbb8abebf50d816.js +0 -1
- package/dist/safe-a/_next/static/chunks/7ef348801eff6590.js +0 -1
- package/dist/safe-a/_next/static/chunks/82614b5de9f78114.js +0 -1
- package/dist/safe-a/_next/static/chunks/83c83eead018326a.js +0 -1
- package/dist/safe-a/_next/static/chunks/85fc05549f7f100c.js +0 -1
- package/dist/safe-a/_next/static/chunks/88bc97899d2ce4e5.js +0 -1
- package/dist/safe-a/_next/static/chunks/8989a60219113c80.js +0 -1
- package/dist/safe-a/_next/static/chunks/92c3617a4e22a464.js +0 -1
- package/dist/safe-a/_next/static/chunks/937e26e6e01d9ec9.js +0 -1
- package/dist/safe-a/_next/static/chunks/93bfaf233e66b48c.js +0 -1
- package/dist/safe-a/_next/static/chunks/94e88cfda11697d2.js +0 -1
- package/dist/safe-a/_next/static/chunks/9b3df6b20a9625d5.js +0 -1
- package/dist/safe-a/_next/static/chunks/9c6c00fa68012026.js +0 -1
- package/dist/safe-a/_next/static/chunks/9ccf7a8bca1730bf.js +0 -1
- package/dist/safe-a/_next/static/chunks/9fefea69ec034a63.js +0 -1
- package/dist/safe-a/_next/static/chunks/a437ab944fe911da.js +0 -1
- package/dist/safe-a/_next/static/chunks/a4776dc3e00e5ab0.js +0 -1
- package/dist/safe-a/_next/static/chunks/abdf99ba76e0f571.js +0 -1
- package/dist/safe-a/_next/static/chunks/ad4ba491cf12423f.js +0 -5
- package/dist/safe-a/_next/static/chunks/b30f1da4e57f459a.js +0 -1
- package/dist/safe-a/_next/static/chunks/b92c67520afabac2.js +0 -1
- package/dist/safe-a/_next/static/chunks/baed816b83bbd5b5.js +0 -1
- package/dist/safe-a/_next/static/chunks/bd2dcf98c9b362f6.js +0 -1
- package/dist/safe-a/_next/static/chunks/bf2c1c402dbcccdf.js +0 -1
- package/dist/safe-a/_next/static/chunks/bfc6ee42cec583d5.js +0 -1
- package/dist/safe-a/_next/static/chunks/c3b49937059d3d70.js +0 -1
- package/dist/safe-a/_next/static/chunks/c5be27a596acfa18.js +0 -1
- package/dist/safe-a/_next/static/chunks/c8942bee3aebddae.js +0 -1
- package/dist/safe-a/_next/static/chunks/c9813626ba898586.js +0 -1
- package/dist/safe-a/_next/static/chunks/ca2725c2b45709c1.js +0 -1
- package/dist/safe-a/_next/static/chunks/cafadd69e03e6c4b.js +0 -1
- package/dist/safe-a/_next/static/chunks/cd4556cbed1f8957.js +0 -1
- package/dist/safe-a/_next/static/chunks/d433c87b0bc69cda.js +0 -1
- package/dist/safe-a/_next/static/chunks/dbbd673619a7f82f.js +0 -1
- package/dist/safe-a/_next/static/chunks/dc0bc471de951daf.js +0 -1
- package/dist/safe-a/_next/static/chunks/e2833182a81cd867.js +0 -1
- package/dist/safe-a/_next/static/chunks/e60ef129113f6e24.js +0 -1
- package/dist/safe-a/_next/static/chunks/e6324292aef80338.js +0 -1
- package/dist/safe-a/_next/static/chunks/e7f1a043618e43cf.js +0 -1
- package/dist/safe-a/_next/static/chunks/e8105dbb23b8e514.js +0 -1
- package/dist/safe-a/_next/static/chunks/ebcd85ff4a1db0dc.js +0 -5
- package/dist/safe-a/_next/static/chunks/eed0c3ef6a5c3706.js +0 -1
- package/dist/safe-a/_next/static/chunks/f12f45a558c3fed2.js +0 -1
- package/dist/safe-a/_next/static/chunks/f42a71992d139302.js +0 -1
- package/dist/safe-a/_next/static/chunks/fc2efa33a196ee45.js +0 -1
- package/dist/safe-a/_next/static/chunks/ff6860dcd793aa23.js +0 -1
- package/dist/safe-a/_next/static/chunks/turbopack-8b41433c9a94981f.js +0 -3
- /package/dist/safe-a/_next/static/{XLLZk_sGEUiYPoRmYU_f9 → Y4PlJTxK6TQphwzXXWsHY}/_clientMiddlewareManifest.json +0 -0
- /package/dist/safe-a/_next/static/{XLLZk_sGEUiYPoRmYU_f9 → Y4PlJTxK6TQphwzXXWsHY}/_ssgManifest.js +0 -0
package/dist/ws-test/ws-test.js
CHANGED
|
@@ -84,6 +84,11 @@
|
|
|
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')
|
|
87
92
|
const btnPermissionDialogClose = $('btnPermissionDialogClose')
|
|
88
93
|
const btnPermissionDeny = $('btnPermissionDeny')
|
|
89
94
|
const btnPermissionAllow = $('btnPermissionAllow')
|
|
@@ -111,6 +116,7 @@
|
|
|
111
116
|
const scheduleTasksWrap = $('scheduleTasksWrap')
|
|
112
117
|
const scheduleRunsWrap = $('scheduleRunsWrap')
|
|
113
118
|
const scheduleTaskTableBody = $('scheduleTaskTableBody')
|
|
119
|
+
const scheduleTasksPager = $('scheduleTasksPager')
|
|
114
120
|
const scheduleManageEmpty = $('scheduleManageEmpty')
|
|
115
121
|
const btnScheduleRunsBack = $('btnScheduleRunsBack')
|
|
116
122
|
const scheduleRunsTitle = $('scheduleRunsTitle')
|
|
@@ -161,6 +167,12 @@
|
|
|
161
167
|
let sessionRuntimePollTimer = null
|
|
162
168
|
/** 当前附着 session 的 turn 是否进行中(由 query.progress 驱动) */
|
|
163
169
|
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 = ''
|
|
164
176
|
const pendingPromptsBarEl = $('pendingPromptsBar')
|
|
165
177
|
const pendingPromptsListEl = $('pendingPromptsList')
|
|
166
178
|
let pendingPromptsCache = []
|
|
@@ -352,8 +364,6 @@
|
|
|
352
364
|
const LLM_MODEL_KEY = 'LLM_MODEL'
|
|
353
365
|
const LLM_PROVIDER_ID_KEY = 'LLM_PROVIDER_ID'
|
|
354
366
|
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'])
|
|
357
367
|
const WS_PERMISSION_MODE_ALLOWED = new Set([
|
|
358
368
|
'acceptEdits',
|
|
359
369
|
'plan',
|
|
@@ -577,50 +587,19 @@
|
|
|
577
587
|
label.setAttribute('for', 'agentEnvField_' + field.key)
|
|
578
588
|
label.textContent = field.label
|
|
579
589
|
const inputId = 'agentEnvField_' + field.key
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
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
|
-
}
|
|
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
|
|
624
603
|
row.appendChild(label)
|
|
625
604
|
row.appendChild(input)
|
|
626
605
|
section.appendChild(row)
|
|
@@ -1554,6 +1533,10 @@
|
|
|
1554
1533
|
return extractMessageBody(m).trim()
|
|
1555
1534
|
}
|
|
1556
1535
|
if (m.type === 'system') {
|
|
1536
|
+
if (m.subtype === 'api_error') {
|
|
1537
|
+
const apiText = extractApiErrorText(m)
|
|
1538
|
+
if (apiText) return apiText
|
|
1539
|
+
}
|
|
1557
1540
|
if (typeof m.content === 'string') return m.content.trim()
|
|
1558
1541
|
try {
|
|
1559
1542
|
return JSON.stringify(m).slice(0, 800).trim()
|
|
@@ -1651,10 +1634,14 @@
|
|
|
1651
1634
|
div.appendChild(md)
|
|
1652
1635
|
container.appendChild(div)
|
|
1653
1636
|
} else if (t === 'system') {
|
|
1654
|
-
|
|
1637
|
+
let raw =
|
|
1655
1638
|
typeof m.content === 'string'
|
|
1656
1639
|
? m.content
|
|
1657
1640
|
: JSON.stringify(m).slice(0, 800)
|
|
1641
|
+
if (m.subtype === 'api_error') {
|
|
1642
|
+
const apiText = extractApiErrorText(m)
|
|
1643
|
+
if (apiText) raw = apiText
|
|
1644
|
+
}
|
|
1658
1645
|
if (!raw.trim()) continue
|
|
1659
1646
|
const div = document.createElement('div')
|
|
1660
1647
|
div.className = 'chat-msg chat-msg-system'
|
|
@@ -1998,6 +1985,151 @@
|
|
|
1998
1985
|
permissionDialogBackdrop.addEventListener('click', () => respondToPermission('deny'))
|
|
1999
1986
|
}
|
|
2000
1987
|
|
|
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
|
+
|
|
2001
2133
|
/** 解析并应用 WS v3 下行信封(protocolVersion === 3);旧名 applyEnvelopeV2 易误解,保留行为不变。 */
|
|
2002
2134
|
function applyWsEnvelopeV3(data) {
|
|
2003
2135
|
if (!data || typeof data !== 'object') return false
|
|
@@ -2016,6 +2148,11 @@
|
|
|
2016
2148
|
if (type === 'conversation.delta') {
|
|
2017
2149
|
const action = typeof payload.action === 'string' ? payload.action : ''
|
|
2018
2150
|
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
|
+
}
|
|
2019
2156
|
const msg = payload.message
|
|
2020
2157
|
const sourceAgent = resolveEnvelopeSourceAgent(runId, payload, data.agent_name)
|
|
2021
2158
|
const runBuffer = ensureRunBuffer(runId)
|
|
@@ -2039,6 +2176,9 @@
|
|
|
2039
2176
|
refreshSessionTitleFromChat(sessionIdInput.value.trim())
|
|
2040
2177
|
}
|
|
2041
2178
|
requestRenderChat()
|
|
2179
|
+
if (msg && msg.type === 'system' && msg.subtype === 'api_error') {
|
|
2180
|
+
handleApiErrorFromSystemMessage(msg, runId)
|
|
2181
|
+
}
|
|
2042
2182
|
return true
|
|
2043
2183
|
}
|
|
2044
2184
|
if (type === 'turn.terminal') {
|
|
@@ -2067,8 +2207,19 @@
|
|
|
2067
2207
|
key: typeof data.eventId === 'string' ? data.eventId : '',
|
|
2068
2208
|
})
|
|
2069
2209
|
/** 主 run 一轮结束:清除「查询阶段: calling_model」等进行中状态 */
|
|
2070
|
-
if (runId === 'main'
|
|
2071
|
-
|
|
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
|
+
}
|
|
2072
2223
|
}
|
|
2073
2224
|
requestRenderChat()
|
|
2074
2225
|
return true
|
|
@@ -2130,6 +2281,9 @@
|
|
|
2130
2281
|
})
|
|
2131
2282
|
requestRenderChat()
|
|
2132
2283
|
}
|
|
2284
|
+
if (type === 'session.error' && runId === 'main') {
|
|
2285
|
+
handleSessionErrorPayload(payload)
|
|
2286
|
+
}
|
|
2133
2287
|
return true
|
|
2134
2288
|
}
|
|
2135
2289
|
if (type === 'schedule.pending') {
|
|
@@ -2175,11 +2329,20 @@
|
|
|
2175
2329
|
renderSessionList(window.__lastSessions)
|
|
2176
2330
|
}
|
|
2177
2331
|
if (phase === 'idle') {
|
|
2178
|
-
|
|
2332
|
+
sessionTurnActive = false
|
|
2333
|
+
if (!apiErrorHandledForTurn && serverReady) {
|
|
2334
|
+
setStatus('已就绪', 'ready')
|
|
2335
|
+
}
|
|
2336
|
+
if (!apiErrorHandledForTurn) {
|
|
2337
|
+
apiErrorRetryingForTurn = false
|
|
2338
|
+
lastApiErrorText = ''
|
|
2339
|
+
}
|
|
2179
2340
|
// 一轮 prompt 收尾后 transcript 已落盘,刷新列表以更新页签 firstPrompt/summary
|
|
2180
2341
|
void loadSessions({ silent: true })
|
|
2181
2342
|
} else if (phase) {
|
|
2182
|
-
|
|
2343
|
+
if (!apiErrorHandledForTurn && !apiErrorRetryingForTurn) {
|
|
2344
|
+
setStatus('查询阶段: ' + phase + '…', '')
|
|
2345
|
+
}
|
|
2183
2346
|
void loadSessions({ silent: true })
|
|
2184
2347
|
}
|
|
2185
2348
|
return true
|
|
@@ -2495,9 +2658,15 @@
|
|
|
2495
2658
|
return u.toString()
|
|
2496
2659
|
}
|
|
2497
2660
|
|
|
2498
|
-
function buildSchedulesUrl() {
|
|
2661
|
+
function buildSchedulesUrl(page, pageSize) {
|
|
2499
2662
|
const u = new URL('/api/schedules', httpOriginForApi() + '/')
|
|
2500
2663
|
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
|
+
}
|
|
2501
2670
|
return u.toString()
|
|
2502
2671
|
}
|
|
2503
2672
|
|
|
@@ -2706,6 +2875,11 @@
|
|
|
2706
2875
|
const scheduleManageState = {
|
|
2707
2876
|
viewActive: false,
|
|
2708
2877
|
contentView: 'list',
|
|
2878
|
+
page: 1,
|
|
2879
|
+
pageSize: 10,
|
|
2880
|
+
total: 0,
|
|
2881
|
+
totalPages: 0,
|
|
2882
|
+
loading: false,
|
|
2709
2883
|
}
|
|
2710
2884
|
|
|
2711
2885
|
/** 切换定时任务列表与执行记录面板 */
|
|
@@ -3497,13 +3671,36 @@
|
|
|
3497
3671
|
return formatScheduleFireAt(task.nextFireAt)
|
|
3498
3672
|
}
|
|
3499
3673
|
|
|
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
|
+
|
|
3500
3689
|
/** 渲染定时任务表格 */
|
|
3501
|
-
function renderScheduleTaskTable(tasks, timezone) {
|
|
3690
|
+
function renderScheduleTaskTable(tasks, timezone, total) {
|
|
3502
3691
|
if (!scheduleTaskTableBody || !scheduleManageEmpty) return
|
|
3503
3692
|
scheduleTaskTableBody.innerHTML = ''
|
|
3504
3693
|
const list = Array.isArray(tasks) ? tasks : []
|
|
3505
|
-
|
|
3506
|
-
|
|
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
|
+
}
|
|
3507
3704
|
for (let i = 0; i < list.length; i++) {
|
|
3508
3705
|
const task = list[i]
|
|
3509
3706
|
if (!task || !task.id) continue
|
|
@@ -3559,18 +3756,42 @@
|
|
|
3559
3756
|
}
|
|
3560
3757
|
if (scheduleManageMeta) {
|
|
3561
3758
|
scheduleManageMeta.textContent =
|
|
3562
|
-
'时区: ' +
|
|
3759
|
+
'时区: ' +
|
|
3760
|
+
(timezone || 'local') +
|
|
3761
|
+
' · 共 ' +
|
|
3762
|
+
totalCount +
|
|
3763
|
+
' 个任务' +
|
|
3764
|
+
(scheduleManageState.totalPages > 1
|
|
3765
|
+
? ' · 第 ' +
|
|
3766
|
+
scheduleManageState.page +
|
|
3767
|
+
'/' +
|
|
3768
|
+
scheduleManageState.totalPages +
|
|
3769
|
+
' 页'
|
|
3770
|
+
: '')
|
|
3563
3771
|
}
|
|
3772
|
+
renderScheduleTasksPager()
|
|
3564
3773
|
}
|
|
3565
3774
|
|
|
3566
|
-
/** 拉取 agent
|
|
3567
|
-
async function loadScheduleTasks() {
|
|
3568
|
-
|
|
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
|
+
)
|
|
3569
3785
|
const body = await res.json()
|
|
3786
|
+
scheduleManageState.loading = false
|
|
3570
3787
|
if (!res.ok) {
|
|
3571
3788
|
throw new Error(body.message || body.error || res.statusText)
|
|
3572
3789
|
}
|
|
3573
|
-
|
|
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)
|
|
3574
3795
|
return body
|
|
3575
3796
|
}
|
|
3576
3797
|
|
|
@@ -3623,7 +3844,7 @@
|
|
|
3623
3844
|
if (scheduleCreateForm) scheduleCreateForm.hidden = true
|
|
3624
3845
|
if (scheduleTaskNameInput) scheduleTaskNameInput.value = ''
|
|
3625
3846
|
if (schedulePromptInput) schedulePromptInput.value = ''
|
|
3626
|
-
await loadScheduleTasks()
|
|
3847
|
+
await loadScheduleTasks(1)
|
|
3627
3848
|
}
|
|
3628
3849
|
|
|
3629
3850
|
function buildScheduleRunUrl(id) {
|
|
@@ -3701,8 +3922,14 @@
|
|
|
3701
3922
|
if (!scheduleRunsTableBody || !scheduleRunsEmpty) return
|
|
3702
3923
|
scheduleRunsTableBody.innerHTML = ''
|
|
3703
3924
|
const list = Array.isArray(runs) ? runs : []
|
|
3704
|
-
|
|
3705
|
-
|
|
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
|
+
}
|
|
3706
3933
|
if (scheduleRunResultPre) {
|
|
3707
3934
|
scheduleRunResultPre.hidden = true
|
|
3708
3935
|
scheduleRunResultPre.textContent = ''
|
|
@@ -3865,14 +4092,19 @@
|
|
|
3865
4092
|
if (!scheduleManageView) return
|
|
3866
4093
|
setScheduleContentView('list')
|
|
3867
4094
|
setScheduleManageVisible(true)
|
|
4095
|
+
scheduleManageState.page = 1
|
|
3868
4096
|
if (scheduleTaskTableBody) scheduleTaskTableBody.innerHTML = ''
|
|
4097
|
+
if (scheduleTasksPager) {
|
|
4098
|
+
scheduleTasksPager.innerHTML = ''
|
|
4099
|
+
scheduleTasksPager.hidden = true
|
|
4100
|
+
}
|
|
3869
4101
|
if (scheduleManageEmpty) {
|
|
3870
4102
|
scheduleManageEmpty.hidden = false
|
|
3871
4103
|
scheduleManageEmpty.textContent = '加载中…'
|
|
3872
4104
|
scheduleManageEmpty.classList.remove('is-error')
|
|
3873
4105
|
}
|
|
3874
4106
|
try {
|
|
3875
|
-
await loadScheduleTasks()
|
|
4107
|
+
await loadScheduleTasks(1)
|
|
3876
4108
|
} catch (e) {
|
|
3877
4109
|
if (scheduleManageEmpty) {
|
|
3878
4110
|
scheduleManageEmpty.hidden = false
|
|
@@ -5379,6 +5611,7 @@
|
|
|
5379
5611
|
const text = getPromptPlainText()
|
|
5380
5612
|
const trimmed = text.trim()
|
|
5381
5613
|
if (!trimmed) return
|
|
5614
|
+
resetApiErrorTurnState()
|
|
5382
5615
|
setPendingUserEcho(trimmed)
|
|
5383
5616
|
const payload = { type: 'prompt', text: text }
|
|
5384
5617
|
autoScrollState.mode = 'FORCE_ON_SEND'
|
|
@@ -8469,14 +8702,6 @@
|
|
|
8469
8702
|
: ''
|
|
8470
8703
|
const value = String(raw ?? '').trim()
|
|
8471
8704
|
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
|
-
}
|
|
8480
8705
|
out[field.key] = value
|
|
8481
8706
|
}
|
|
8482
8707
|
return { ok: true, env: out }
|
|
@@ -7,8 +7,6 @@ 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";
|
|
12
10
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
13
11
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
14
12
|
import * as z from "zod";
|
|
@@ -36,10 +34,6 @@ const projectSettingsLocalFile = join(
|
|
|
36
34
|
projectSettingsDir,
|
|
37
35
|
"settings.local.json",
|
|
38
36
|
);
|
|
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";
|
|
43
37
|
const account = {
|
|
44
38
|
appId: process.env.TUITUI_APP_ID,
|
|
45
39
|
appSecret: process.env.TUITUI_APP_SECRET,
|