agentgui 1.0.690 → 1.0.692
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/package.json +1 -1
- package/CACHE_DESYNC_PREVENTION.md +0 -219
- package/SYNC_ARCHITECTURE.md +0 -279
- package/TOOLS-FIX-SUMMARY.md +0 -122
- package/TOOLS_COMPLETION_REPORT.md +0 -199
- package/TOOLS_DEBUG_SUMMARY.md +0 -105
- package/TOOL_TRACKING_FIX.md +0 -136
- package/VOICE_FIX_ANALYSIS.md +0 -121
- package/build-portable.js +0 -197
- package/docs/SYNC_TO_DISPLAY_REPORT.md +0 -279
- package/docs/index.html +0 -254
- package/docs/screenshot-conversation.png +0 -0
- package/docs/screenshot-dark-conversation.png +0 -0
- package/docs/screenshot-dark.png +0 -0
- package/docs/screenshot-files.png +0 -0
- package/docs/screenshot-light.png +0 -0
- package/docs/screenshot-terminal.png +0 -0
- package/docs/screenshot-tools.png +0 -0
- package/docs/script.js +0 -38
- package/docs/stats.json +0 -4
- package/docs/styles.css +0 -301
- package/index.html +0 -250
- package/loggedin/BrowserMetrics-spare.pma +0 -0
- package/loggedin/Default/Account Web Data +0 -0
- package/loggedin/Default/Account Web Data-journal +0 -0
- package/loggedin/Default/Affiliation Database +0 -0
- package/loggedin/Default/Affiliation Database-journal +0 -0
- package/loggedin/Default/AutofillAiModelCache/LOCK +0 -0
- package/loggedin/Default/AutofillAiModelCache/LOG +0 -0
- package/loggedin/Default/AutofillAiModelCache/LOG.old +0 -0
- package/loggedin/Default/AutofillStrikeDatabase/LOCK +0 -0
- package/loggedin/Default/AutofillStrikeDatabase/LOG +0 -0
- package/loggedin/Default/AutofillStrikeDatabase/LOG.old +0 -0
- package/loggedin/Default/BookmarkMergedSurfaceOrdering +0 -2
- package/loggedin/Default/BudgetDatabase/LOCK +0 -0
- package/loggedin/Default/BudgetDatabase/LOG +0 -0
- package/loggedin/Default/BudgetDatabase/LOG.old +0 -0
- package/loggedin/Default/Cache/Cache_Data/003201f86cea6c9b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/006938640bb02bd3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/00d59e04e625f507_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/02d56ed4cfaf4728_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/02e7136c40809696_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0319805d2dcf43c2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/04fe4266c6198058_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/051e39094e1dd062_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/055af0c7c151bbf6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/06263ac8c2ae173c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/062f8d36bbe3113b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/06308e033d290d36_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/06d597ddfd252f15_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/07f7759c858a3f6b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/080ce0abdc8d0132_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/082ab980b4effb16_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/08358debb9ddfcc8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/09bf9b68a39822df_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0a398d4e5aa46dea_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0aa6a64a8d0023e9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0b2e1968306261af_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0b3f19a154735a4b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0baee8e0bcfcfc33_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0be8af2779924ab2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0c50a10bf3132b68_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0cc5be4c306dea58_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0cd13b80f2436b57_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0d3228b818932140_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0d5c110d8402b8f9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0d6ece6a8198460e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0dcc6105201041d9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0dd4fc755d7de941_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0dd6b517306f5784_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0ea9a6218cafdb52_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/0f9c14b9f37eb6e0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/101c433de7920d29_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/102ca1c0b1e7f6b8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1038e0e0a5559ac4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/10dccba532f14a40_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1158d5b3882cea33_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/11b8525b2d33ed30_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/11c593312862fb72_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/11f4fe0afa21c60b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1295327a00480840_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/12ed6e0c7d56a241_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/131d39682ef045a7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/13eab63691940bd8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/140b3d4fdcb17cc6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/141ff487e8fe8a36_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1423c7ebcdfe529e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1488d525ce5896f5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/162c1653493784d2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/16e050f5cda2a9d9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/16eb80e90bd3c649_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1820e7d65caa882c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/185358b4be1fdd41_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/192e030692c98c42_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/19ee57a9d87a4f94_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1aa7c82fa5a19856_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1aec95fae714aa9f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1afb222f4fb27ea8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1b1f6c77f224871b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1b2894787a5d386e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1b29335114745b13_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1bddb74676ae6b64_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1c242d16d0fbde93_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1c464336fb9aef91_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1d5232c7d0a274fc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1d81fe8b7d477963_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1dba07b76457d209_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1e43bf9a12f88786_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1e605787105af129_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1e67dd1ddd39ef62_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1e9a2db52074d1ff_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1ebfbd109fac3379_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1eda8663fd494b8e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1f1c445d4e63ab25_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1f7faf29a134683b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/1fa955bc2e31d6c8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2016ee08184592e8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/20e301617c21ec3b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/210bee3454a0b33f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/21573459011da142_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/22338befa3822d89_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/234db4f7bcf29eb6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/23f8c701bd36ef95_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2411c0c64dbace94_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/253cc3d433629518_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/25cccf2c35bdb832_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/25d493fde15f22f7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/271f5260a6d7ded5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/283dbc5875f0b09c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/287dbdd8ec2cec32_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/293d3f9bb9a4db67_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/299a05f851dd0a2d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2a2698f970e29d12_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2a534feb7f662914_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2a877c4b77c661eb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2ad11d7c54a2b693_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2b50c6e9f1e9e2f9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2b5c6f12bec3e963_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2b7c6ff9e95bf9e9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2c62cbc900ccb28a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2d5605c2a202d5cd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2d8ab1fabc71735e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2dff89cac1333f6a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/2ff602bffc75a780_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/301ac07ead689bd1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3056a9c7ce4dbe5a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/30f3dd0ddaa97d7f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/314e4c07e1ee112f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/31aebfb6ac4f19ca_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/31ef4814f0f42387_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/31fe2604b0835bc0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/34fd94c74f2de47f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/35b80a7b1e702405_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3664f98e3812cbeb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/36f24a583da39c3c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/37b45a4af06b3382_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/37bb0783eae4fe02_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/37d1fef5733bb327_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/385d6de1cb9d8a8f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/38cfce0805463ae0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/38d024ca4da1ae90_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/38ee99c753f849a2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/394188f4ff7ad751_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/39efac8dc71ca7ec_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3a3d2eefdcaf1968_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3a82e4e171b96d67_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3b331ab89063de97_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3b536ab8619433bc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3b9ee7a740faf7af_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3bb0b0adb54c34ad_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3c163fe8d1f4307a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3c640c6bef6a5ccf_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3c8e090a1f3cb2a7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3ca1b210697ae1c7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3ca64e0372e541a6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3cb1663b21a9611d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3d0581b54ff2ab13_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3daac9cd98fb2141_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3ebd689087f07c75_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3f582059d7269d8a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/3f9c2c08a8717887_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4033f7a40b1b23cb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/40b8503739b21a61_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/410ecb2b61c422f6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/41332c8b55b47250_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4311fdfc1e3061ba_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4342adde68970056_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4344a77bdc95836e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4361c37983c8d810_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/43c5faf6832a1955_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/43cf9a5915948dfc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4445f22006b12f65_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/444c163fd8a005cd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/44786dff50925da3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/447ba76440c7742d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/44c6d1d9e6e3f2c8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/44d27be7dc42c474_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/44f875f60140252e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/451e96da41c2b937_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/452687982de1acb7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4554301241754104_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/455642d27713cd28_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/45c1008ffa08c340_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/45fb3a80813cff6f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/469960b0295c908f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/46c92350c54f43de_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/46cbbf373a6bc426_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4705152348789c5e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/47ce18bce08e656f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/481d474e7275b29c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4859dcd6395250e9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/486cb342bb7ef296_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/48925fa900707a50_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/49345ecb1709f529_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/49e6045301a1466e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4a75d4a1be65552b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4ab4470c01101008_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4c38db34643e4368_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4c84fb4b9fa9355e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4cacbe29e41d5f50_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4d321b91e0fa03fc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4d5269cb701efead_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4d8bb493dfd9a35a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4d9ae92ef5356d4a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4ddba1969633e8d4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4e139028a11fce1f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4e1a72e3dbb919f9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4e6e4f25f7d18443_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/4f255cf2280d8787_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5002322f6e6b6719_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/504e289626e340bd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5088dcf02d7652fa_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/509f231509ab7bd4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/519a2407f4a189c7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/51be76d79525f2b2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/51da7e091bc2a9f8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/528996c3c00f7f26_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/52fb7697a6208529_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/537888309b98e6d4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/540babc768daec52_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/544de42abc13dcd1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5607a9a721456112_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/560e680891ef9622_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/561660a4b64b385f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/56d19c9292c72eae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/56ea69ae8e311571_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/570c782386cea305_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/584490d6da7183c7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5880ea79239e80b9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/58ddf2962030ad88_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/58f17211d6b5fdc4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5970e24d515edf70_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/59815ed95e72c069_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5af073415ffd05f0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5afe862bb90ee7a8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5b5d1763ccbd8af0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5c41e1d0d32a929d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5cb669f921b0fe77_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5cbcc0bd4ce1ed3c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5d45630f76aced81_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5e48c04439b3cc3b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5ef7a6d98358ec43_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5f2232333795b38d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5f4fdcbebfd7af9f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/5f900ef153be6632_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/60ad5d2e05232a90_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/60c50408b2112aa1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/617c02a167953baa_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/627d005422dcd059_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/63a1a69f11303564_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/64093c5b2de2beeb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/648e3db6cff6f16d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/64b0b1893e529767_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/65ffc7f5241f0324_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/661bb5dda928b1c9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/66b40b1fd1456a5f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/66c24e99b4736be0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/66ea89f29b935fe3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/66f574de8a93189f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/672c40da5ff180bb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/683f0ba474864b72_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/68773724b60bbb11_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/68e8a729c67cfc10_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6a061876f3a0181b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6a77c5e50086dfaa_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6aaa996500c2250d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6cbb3e81e9dfcdc5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6d33978d779eceed_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6d7e829997c3bcef_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6da39165fa3bb657_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6f15a92262146ef0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/6f4ddb537a83d4ae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/70d96111b776ba72_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/71954629024f044d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/71acfc1d4a3f4669_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/720bf5ca6e4b5e19_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/72f0653ff25a3ca9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7312d63abda4b086_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/740cc8cc1155a9e9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/754824f95f8cc9ac_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/763c62db2e2b84b5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/76941709133485ae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/76b679e684825066_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/76f9b84ac6411e9f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7895b669629c580c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/78b2d7d952dff981_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/791289f825450743_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7abc28f02af2087c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7abf97ff9ab96e8d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7aebbcab60771599_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7c6348cf937f3647_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7d006f16312fc1de_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7dbab8a819256e85_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7e1fa40020ce532a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7e54ccf1ac07921c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7f12f170e8e9d598_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7f33fdd518c76cae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/7fc392748e29d7bd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/809d196a9a2ade02_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8123c404e8965973_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/81c5ba09429c6dde_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/81e4bb826e33efd5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/82bb25fc65766004_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/83951b48ca84415b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/84e0333de09dc5d8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/851a570031855a03_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/855900c2d9a7621d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/855a7a4c54d501ce_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/85c20ab8d4d683f3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/85c914a48bd796cf_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/85c9ea53b42b621f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/863e79184bb0495a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/86c3c0eef7509aab_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/87b61cc4fb039ef2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/88d34ce6d03d6ab4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8949e2ce7f94e5ba_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8a77fec96ac8d8cc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8a7f828f1545b905_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8ba75e0710cf0c79_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8c033abf9cd4780c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8c491a7454d2ac31_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8c8b33ea2fe0b250_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8cd6d260873b5193_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8cdb2158bf9969a1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8e3cebba0647014e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8e598028090623b3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8e9a2065b9736cc1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8f11ad6b417d76fb_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8f1f419b62883a9b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8f29fc368f20c354_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8f910fecbc938c75_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/8ff6eb155f4b1137_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/900f3ccb19270f9b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/90bd331f7e1eea2d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/91679a5a3af58fef_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9282547935875298_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/92a52bba2be28308_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/939ef9aaed5bbfb1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/941187b1b8acaf4a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/95594d4ad9cb7e91_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9566af6c0a691e12_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/95c2582efe086b83_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/970f6a0ea1360b5a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/97d8c8f1cad9191a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9a804f96a1995751_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9a8e723750d25a9f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9a96cb8ccb98ebea_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9aaec5d9f2b87afc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9b480ef07e464e58_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9b6c4496345229d7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9c5ee0fed7d3ead0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9c8a2963d698390f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9cd6567c966e14ef_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9da2bc3b2ae1018e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9db3ca459a8313e1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9e4f5756eb297578_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/9f6301c02112ba85_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a01be171f5e1d783_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a06301007b7cda37_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a15dd5d82bf0ecb3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a1c832e1a25f4751_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a1d534d4c81411fe_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a302c12740f209f5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a34b9e039fa6c063_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a42c7a3275069c73_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a44f91bfde060925_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a4cb0037ebbfa79b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a60a03c7e46c6943_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a6239850d1528442_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a625c8c8aeef8f51_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a657dd12286a6432_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a659410aa50e5c4a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a6a57b85052e64f9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a6e46e23adfc6a65_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a8d98d955a016fef_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a8ebecc21afa40ec_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/a9f5a69d1c90b9a1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/aa23cb0643dd0d4a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ac69ad73a2b2effd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/acb312512d7848d9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/acdfa24e97ae8dff_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ad3052c3a641162f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ad46a6add8c41674_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/aeab39179acf8d3f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/af259cc0e93d245c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/af28a53296d54fa1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/af2f5873e00410ba_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/af6a6acb885e5eca_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/af907e97a6882a8e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/afb2d0c5ea88d0e8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b000a46652ec9a36_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b0044554711d50a5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b11853a790c21200_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b134bb03721b18dd_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b16b63f45354ad3e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b1be170cb26239b5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b24c1dc319fe1269_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b34f24e3113fe0b3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b3af4b9c6e1dbde4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b519dd165398b5ff_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b5626afe03bbc7e1_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b5a88797115e9d8f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b5e18684c8bed17b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b6c955a0efa173e3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b774ad05037fe633_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/b8c9b10372e91256_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bb2ed8ea9087a5bc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bb93c6744f9de051_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bb955bde4d8c4184_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bc54d848fe181620_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bd67f268675fae10_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bd8dbfbc4c054d75_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/be0d47a1282db95f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/be50d7ce59ce98fe_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bee025fa4619e688_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/bf3d986c5330dd0d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c0598eb323b3d5dc_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c07c00fa3293910e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c09734dd7de73504_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c1a90c698b14f7a5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c217c9d87a73c174_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c2b5644c71e84095_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c2fc9803ddd79c58_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c31eac27872ed673_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c3d543023ff67b14_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c5090953ca817eaa_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c5f259090048d935_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c6ddb9757956b50c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c7135e6bcd4a4aba_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c77f3068e545df1b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c7de1ae11ae65d7c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c83fabdea96eb8d3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/c87e29c1b28becd6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ca02a5047aa2f719_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cb267e8dabeba71b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cc04b6d24da1648a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cc18024f9442e479_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cc8abf926f4327aa_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ccf0c79e29e26de9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ccfe0adc53858e08_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cd18446e5ff634b9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cd43a4df7dd49106_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cd648c0c7188cace_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cd9ff6708b79c960_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cda9c44767bc73be_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ce15e9dbf2859ab7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ce481bff53b5283d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ceffcbc54ba4ca4e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cfbf07e43f39bff8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/cff2c70c8942401d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d06ca2cef4b0ff43_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d08f0c5e602a7d6d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d0e1a429b070c582_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d25bf5d214eca43e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d289451be51eaa1c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d37fad599b446488_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d39dc388ea91af30_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d3d4799d089725c0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d3e1e32d1072452b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d57d319c58e38216_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d5f3b5783fa5cf92_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d5f3efc21d2a021b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d646276f95837823_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d79598190c245f97_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d7ad6d1ea765967d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d7c17d59dbd4c895_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d85f0220303398ae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d86bef90177c633a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d8a493a6c00e7bb7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/d9dfff90e9cec564_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/da060b4294ddaa41_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dad73b108deca793_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dca56046d29d549a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dcf7537e526e0e10_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dd482a2c4280bc3f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/de271d2f349d2737_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/de27f18e48871bc6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/de4d3736b43a8690_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/df9d4a04ca0b70ff_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dfddd05c412d12c9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/dfe9f8a18a8bb8f4_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e09c58ac4aef6c0e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e0a6713e04676a5f_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e0a9dbf2be0d52f9_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e12089f7248084a3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e219d9b46f8dc14c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e2a4ef9010061825_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e35474af367c7d6a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e3fcfe2b75df843d_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e54b632d10c1a2f6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e73e7cd8cc7d206b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e8118a633e0db759_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/e95202457107224e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ea294765ca0e32fe_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/eb45cb99ed6b8e44_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ebc0b88852ca775b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ebeeac46d8c559f7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ec89328ff97c9322_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ecbbd221ebb0529a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ed3e4cf4247b6e19_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ed5152d08612b2ae_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ed6fc5f8cda6b1db_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/eed12fb5e5924236_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ef5416fe390c093e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ef624ee6d503df41_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/efae7d673f2c1d70_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f0338d31d777a682_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f0a5a6420622e2c0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f0ab5ae1a6579065_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f1954aa7a1d47ea7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f218dd1f4993aeb5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f2404d404df93a69_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f28b30274f85cc46_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f2fd023db410bbe0_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f3718b0fc28dfef5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f3bae28053f60023_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f3e98a53c5575189_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f4021f056e21aac3_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f45a4a04d72490f7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f536d18bbc6028a2_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f60d5fcefccac70c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f65c332e2fabb6fe_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f6ea1747196eeb26_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f6f51b93bff46ed6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f78ba468e3c37fdf_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f7e3b88b3f2e805a_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f7e9f36aaf17cc3e_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/f958ca39c7ec5381_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fad59652dfc55cd6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fadc4c64ce4adbf6_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fb617e02b8bf7d88_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fc6b91094e0a37af_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fcaabfc909485f0c_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fcec173e317f05d7_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fd3c34b2e14afb97_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fdacc4feb19d44c8_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fe2cc74250509955_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fe39372ed25e9ba5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fe66c97ab493620b_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/fedc5c00224e06d5_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/ff9df6b96fd1ee13_0 +0 -0
- package/loggedin/Default/Cache/Cache_Data/index +0 -0
- package/loggedin/Default/Cache/Cache_Data/index-dir/the-real-index +0 -0
- package/loggedin/Default/Cache/No_Vary_Search/journal.baj +0 -1
- package/loggedin/Default/Cache/No_Vary_Search/snapshot.baf +0 -0
- package/loggedin/Default/ClientCertificates/LOCK +0 -0
- package/loggedin/Default/ClientCertificates/LOG +0 -0
- package/loggedin/Default/ClientCertificates/LOG.old +0 -0
- package/loggedin/Default/Code Cache/js/02a677eb444015d5_0 +0 -0
- package/loggedin/Default/Code Cache/js/02eb93eccbfc8b71_0 +0 -0
- package/loggedin/Default/Code Cache/js/05f0e53f031bbe4a_0 +0 -0
- package/loggedin/Default/Code Cache/js/082f4113db336e35_0 +0 -0
- package/loggedin/Default/Code Cache/js/0909561cde18bcfe_0 +0 -0
- package/loggedin/Default/Code Cache/js/094f5e548f6b0a78_0 +0 -0
- package/loggedin/Default/Code Cache/js/09555bad14151a6e_0 +0 -0
- package/loggedin/Default/Code Cache/js/09985e1a74ec5f01_0 +0 -0
- package/loggedin/Default/Code Cache/js/0bbbff8620079a5a_0 +0 -0
- package/loggedin/Default/Code Cache/js/0bdb6ee2032e3d80_0 +0 -0
- package/loggedin/Default/Code Cache/js/0bf113ed6234523d_0 +0 -0
- package/loggedin/Default/Code Cache/js/0ceb29bde7f2bfee_0 +0 -0
- package/loggedin/Default/Code Cache/js/0e85d564ebd5060d_0 +0 -0
- package/loggedin/Default/Code Cache/js/1052bcc2c0f879d6_0 +0 -0
- package/loggedin/Default/Code Cache/js/10612969ae1e8847_0 +0 -0
- package/loggedin/Default/Code Cache/js/124709d50921985b_0 +0 -0
- package/loggedin/Default/Code Cache/js/13dd261cf717edb4_0 +0 -0
- package/loggedin/Default/Code Cache/js/16a8191ed856f7a1_0 +0 -0
- package/loggedin/Default/Code Cache/js/1720d8e67eec652d_0 +0 -0
- package/loggedin/Default/Code Cache/js/1934102e0cefe95c_0 +0 -0
- package/loggedin/Default/Code Cache/js/1afdfd893122614d_0 +0 -0
- package/loggedin/Default/Code Cache/js/1b3a722f3bf2da74_0 +0 -0
- package/loggedin/Default/Code Cache/js/1c59b339591fd439_0 +0 -0
- package/loggedin/Default/Code Cache/js/1c64f9be9a5b6d57_0 +0 -0
- package/loggedin/Default/Code Cache/js/1d032b1406d120c7_0 +0 -0
- package/loggedin/Default/Code Cache/js/1fb4eff35182c43d_0 +0 -0
- package/loggedin/Default/Code Cache/js/20a5e89b23d5b15c_0 +0 -0
- package/loggedin/Default/Code Cache/js/240f7c23cbd4d115_0 +0 -0
- package/loggedin/Default/Code Cache/js/245e4850cb572838_0 +0 -0
- package/loggedin/Default/Code Cache/js/249f25cbf4fb7501_0 +0 -0
- package/loggedin/Default/Code Cache/js/24b4ae97109789d5_0 +0 -0
- package/loggedin/Default/Code Cache/js/25f846253926b960_0 +0 -0
- package/loggedin/Default/Code Cache/js/26c288ebb2870761_0 +0 -0
- package/loggedin/Default/Code Cache/js/281aa6186c629247_0 +0 -0
- package/loggedin/Default/Code Cache/js/2c0271a321f223d3_0 +0 -0
- package/loggedin/Default/Code Cache/js/2cd6ce521bb432a0_0 +0 -0
- package/loggedin/Default/Code Cache/js/2cecf0d2ca8a630a_0 +0 -0
- package/loggedin/Default/Code Cache/js/2e38b220e395eb3a_0 +0 -0
- package/loggedin/Default/Code Cache/js/3043c149bf73d936_0 +0 -0
- package/loggedin/Default/Code Cache/js/310b61ec7b8d127b_0 +0 -0
- package/loggedin/Default/Code Cache/js/3110d2eb61b58fec_0 +0 -0
- package/loggedin/Default/Code Cache/js/3147a9ed2d61c831_0 +0 -0
- package/loggedin/Default/Code Cache/js/31dc059b11a411fc_0 +0 -0
- package/loggedin/Default/Code Cache/js/331a5c938428f46a_0 +0 -0
- package/loggedin/Default/Code Cache/js/335e69ddec2b9ac6_0 +0 -0
- package/loggedin/Default/Code Cache/js/33d3178af4b6c471_0 +0 -0
- package/loggedin/Default/Code Cache/js/34501a1a4c375242_0 +0 -0
- package/loggedin/Default/Code Cache/js/348b47e22d161e8e_0 +0 -0
- package/loggedin/Default/Code Cache/js/38803fc0f3591ea1_0 +0 -0
- package/loggedin/Default/Code Cache/js/38bdaf8270a2eea9_0 +0 -0
- package/loggedin/Default/Code Cache/js/39a788b26f102870_0 +0 -0
- package/loggedin/Default/Code Cache/js/3bb2eea779d54328_0 +0 -0
- package/loggedin/Default/Code Cache/js/3d5ed2dddcb7fbbf_0 +0 -0
- package/loggedin/Default/Code Cache/js/3d8dd962061fa933_0 +0 -0
- package/loggedin/Default/Code Cache/js/3de77516cf008c10_0 +0 -0
- package/loggedin/Default/Code Cache/js/3e66435b290d190c_0 +0 -0
- package/loggedin/Default/Code Cache/js/3f5de8a53d52d34b_0 +0 -0
- package/loggedin/Default/Code Cache/js/409b6af0466e1d1f_0 +0 -0
- package/loggedin/Default/Code Cache/js/40dffa3a3cc135e8_0 +0 -0
- package/loggedin/Default/Code Cache/js/41f7696a39232dc5_0 +0 -0
- package/loggedin/Default/Code Cache/js/42f46e5991fc0b5c_0 +0 -0
- package/loggedin/Default/Code Cache/js/43064d43ae24385d_0 +0 -0
- package/loggedin/Default/Code Cache/js/430de5821eaebd92_0 +0 -0
- package/loggedin/Default/Code Cache/js/43b9e396b3fd74ec_0 +0 -0
- package/loggedin/Default/Code Cache/js/4426fafe8e53fdd7_0 +0 -0
- package/loggedin/Default/Code Cache/js/446ef81112fa1fe2_0 +0 -0
- package/loggedin/Default/Code Cache/js/44a8e7b527323ae8_0 +0 -0
- package/loggedin/Default/Code Cache/js/45619f073b524faa_0 +0 -0
- package/loggedin/Default/Code Cache/js/4585eaca8c2586f3_0 +0 -0
- package/loggedin/Default/Code Cache/js/45cdf00e1e88fe84_0 +0 -0
- package/loggedin/Default/Code Cache/js/4a12fef1500f7d4e_0 +0 -0
- package/loggedin/Default/Code Cache/js/4aaaa5b02f85b7b5_0 +0 -0
- package/loggedin/Default/Code Cache/js/4ce8010d340012e0_0 +0 -0
- package/loggedin/Default/Code Cache/js/4d19530be8c1d25d_0 +0 -0
- package/loggedin/Default/Code Cache/js/4fa1d510d73c2f11_0 +0 -0
- package/loggedin/Default/Code Cache/js/51083862ec47ec7b_0 +0 -0
- package/loggedin/Default/Code Cache/js/519cc6556e9986a8_0 +0 -0
- package/loggedin/Default/Code Cache/js/52804ae7eecdb355_0 +0 -0
- package/loggedin/Default/Code Cache/js/52b48ab656b3fdfd_0 +0 -0
- package/loggedin/Default/Code Cache/js/539c7f73fd9d867b_0 +0 -0
- package/loggedin/Default/Code Cache/js/54005b571293665d_0 +0 -0
- package/loggedin/Default/Code Cache/js/5402f591fd3fee3b_0 +0 -0
- package/loggedin/Default/Code Cache/js/55b5039bfe0ef979_0 +0 -0
- package/loggedin/Default/Code Cache/js/55e9141a31179b1e_0 +0 -0
- package/loggedin/Default/Code Cache/js/5685ff0930a9e494_0 +0 -0
- package/loggedin/Default/Code Cache/js/577ff7e5fa0a55f0_0 +0 -0
- package/loggedin/Default/Code Cache/js/57863c5d85e71113_0 +0 -0
- package/loggedin/Default/Code Cache/js/57a31d76cc856d8f_0 +0 -0
- package/loggedin/Default/Code Cache/js/594d12bf8db8ed67_0 +0 -0
- package/loggedin/Default/Code Cache/js/5ca5c4562a21d5aa_0 +0 -0
- package/loggedin/Default/Code Cache/js/5d855dd178400c1b_0 +0 -0
- package/loggedin/Default/Code Cache/js/5db2333d10498efa_0 +0 -0
- package/loggedin/Default/Code Cache/js/5dbc47a0e40037a4_0 +0 -0
- package/loggedin/Default/Code Cache/js/6071944c5e8c704f_0 +0 -0
- package/loggedin/Default/Code Cache/js/6167d8ed6ac8aecf_0 +0 -0
- package/loggedin/Default/Code Cache/js/61fd2db9177919a7_0 +0 -0
- package/loggedin/Default/Code Cache/js/6232505f9af746d6_0 +0 -0
- package/loggedin/Default/Code Cache/js/6235a7643cd57ab4_0 +0 -0
- package/loggedin/Default/Code Cache/js/63b5b0065eca8970_0 +0 -0
- package/loggedin/Default/Code Cache/js/648e85602e06e9b1_0 +0 -0
- package/loggedin/Default/Code Cache/js/65577872fb9c4675_0 +0 -0
- package/loggedin/Default/Code Cache/js/6744f008c36a5cf0_0 +0 -0
- package/loggedin/Default/Code Cache/js/67504c107c2824d5_0 +0 -0
- package/loggedin/Default/Code Cache/js/67ae86f99dadf263_0 +0 -0
- package/loggedin/Default/Code Cache/js/67d36ea768dea887_0 +0 -0
- package/loggedin/Default/Code Cache/js/68ef3bd46b509ba8_0 +0 -0
- package/loggedin/Default/Code Cache/js/6a60954ed1ec2838_0 +0 -0
- package/loggedin/Default/Code Cache/js/6a7ce3f7cb73d7b9_0 +0 -0
- package/loggedin/Default/Code Cache/js/6dc30cd96b58b3fd_0 +0 -0
- package/loggedin/Default/Code Cache/js/6debfb1bbf1032d6_0 +0 -0
- package/loggedin/Default/Code Cache/js/6e6f45989aa3d658_0 +0 -0
- package/loggedin/Default/Code Cache/js/72e78b8761a89faf_0 +0 -0
- package/loggedin/Default/Code Cache/js/7375130cb8825fb1_0 +0 -0
- package/loggedin/Default/Code Cache/js/73f8a8cf85c4f983_0 +0 -0
- package/loggedin/Default/Code Cache/js/7428f42e7d87dc5e_0 +0 -0
- package/loggedin/Default/Code Cache/js/7452bfc56fee1509_0 +0 -0
- package/loggedin/Default/Code Cache/js/74e19219410ea20c_0 +0 -0
- package/loggedin/Default/Code Cache/js/764bf1612aee367c_0 +0 -0
- package/loggedin/Default/Code Cache/js/773c34d1760e94b1_0 +0 -0
- package/loggedin/Default/Code Cache/js/7793e1813c9daa45_0 +0 -0
- package/loggedin/Default/Code Cache/js/77fd1b74f81619ee_0 +0 -0
- package/loggedin/Default/Code Cache/js/7bb232657ed1870b_0 +0 -0
- package/loggedin/Default/Code Cache/js/8010b7d244a107a5_0 +0 -0
- package/loggedin/Default/Code Cache/js/81d39bf1d53a4f53_0 +0 -0
- package/loggedin/Default/Code Cache/js/842f43a4eb7bbdeb_0 +0 -0
- package/loggedin/Default/Code Cache/js/886e62dbb85a64b2_0 +0 -0
- package/loggedin/Default/Code Cache/js/8875188e49da0b33_0 +0 -0
- package/loggedin/Default/Code Cache/js/88bb566c7bbece71_0 +0 -0
- package/loggedin/Default/Code Cache/js/88ca67fd7377e5a9_0 +0 -0
- package/loggedin/Default/Code Cache/js/8a428341e1bd0133_0 +0 -0
- package/loggedin/Default/Code Cache/js/8ba1b1ae6d57e06e_0 +0 -0
- package/loggedin/Default/Code Cache/js/8bcf66549424afa7_0 +0 -0
- package/loggedin/Default/Code Cache/js/8bfc5b06bdef85df_0 +0 -0
- package/loggedin/Default/Code Cache/js/8e03731f55ec0425_0 +0 -0
- package/loggedin/Default/Code Cache/js/8e41906d89445a70_0 +0 -0
- package/loggedin/Default/Code Cache/js/90cc8ebf4f3bb535_0 +0 -0
- package/loggedin/Default/Code Cache/js/911abf910d14705e_0 +0 -0
- package/loggedin/Default/Code Cache/js/91240897cf880621_0 +0 -0
- package/loggedin/Default/Code Cache/js/91936bebb0b9d91b_0 +0 -0
- package/loggedin/Default/Code Cache/js/9313580ce576830f_0 +0 -0
- package/loggedin/Default/Code Cache/js/93bbae1084e1aa8e_0 +0 -0
- package/loggedin/Default/Code Cache/js/944b0bcf0e75b5a4_0 +0 -0
- package/loggedin/Default/Code Cache/js/95a34bc196529dfe_0 +0 -0
- package/loggedin/Default/Code Cache/js/960662a17cbf5041_0 +0 -0
- package/loggedin/Default/Code Cache/js/97b36d4dbd2c2464_0 +0 -0
- package/loggedin/Default/Code Cache/js/987ac223fc74144b_0 +0 -0
- package/loggedin/Default/Code Cache/js/9b60821e1c6895cc_0 +0 -0
- package/loggedin/Default/Code Cache/js/9d1d22afd65cfbef_0 +0 -0
- package/loggedin/Default/Code Cache/js/a1f603c48fb228e1_0 +0 -0
- package/loggedin/Default/Code Cache/js/a271122fd3b7aeea_0 +0 -0
- package/loggedin/Default/Code Cache/js/a2f5a9e96492a574_0 +0 -0
- package/loggedin/Default/Code Cache/js/a33a25118e385766_0 +0 -0
- package/loggedin/Default/Code Cache/js/a4957a45688773d6_0 +0 -0
- package/loggedin/Default/Code Cache/js/a4b86d67d1adf390_0 +0 -0
- package/loggedin/Default/Code Cache/js/a5601f394b1c4d1e_0 +0 -0
- package/loggedin/Default/Code Cache/js/a6298c2ee082008f_0 +0 -0
- package/loggedin/Default/Code Cache/js/a69424dc0437ae19_0 +0 -0
- package/loggedin/Default/Code Cache/js/a697a042196f0f78_0 +0 -0
- package/loggedin/Default/Code Cache/js/a6deccf72f200a9c_0 +0 -0
- package/loggedin/Default/Code Cache/js/a781b14472660ebd_0 +0 -0
- package/loggedin/Default/Code Cache/js/a8dcd1762665258f_0 +0 -0
- package/loggedin/Default/Code Cache/js/a9eded8a71f66e8d_0 +0 -0
- package/loggedin/Default/Code Cache/js/aa8cc5b65d61f87c_0 +0 -0
- package/loggedin/Default/Code Cache/js/abf3a0910fc009ef_0 +0 -0
- package/loggedin/Default/Code Cache/js/acdf811c3c15518d_0 +0 -0
- package/loggedin/Default/Code Cache/js/ad9378ad4a2395ec_0 +0 -0
- package/loggedin/Default/Code Cache/js/ae93a6448fc487a5_0 +0 -0
- package/loggedin/Default/Code Cache/js/af2ab6d8cc69d224_0 +0 -0
- package/loggedin/Default/Code Cache/js/b0e6f3590a96dc51_0 +0 -0
- package/loggedin/Default/Code Cache/js/b1aa1350d4481fde_0 +0 -0
- package/loggedin/Default/Code Cache/js/b1dea319b6000491_0 +0 -0
- package/loggedin/Default/Code Cache/js/b9eef565ef6b00e9_0 +0 -0
- package/loggedin/Default/Code Cache/js/bb05c3d4883d43ef_0 +0 -0
- package/loggedin/Default/Code Cache/js/bba5ddcc1118da05_0 +0 -0
- package/loggedin/Default/Code Cache/js/bcbe80e9a695014c_0 +0 -0
- package/loggedin/Default/Code Cache/js/be60bdb4dfaf22e2_0 +0 -0
- package/loggedin/Default/Code Cache/js/be81827df3395598_0 +0 -0
- package/loggedin/Default/Code Cache/js/bf12f231c49b0183_0 +0 -0
- package/loggedin/Default/Code Cache/js/c01411876c5ada52_0 +0 -0
- package/loggedin/Default/Code Cache/js/c170cb0292747b06_0 +0 -0
- package/loggedin/Default/Code Cache/js/c218cb031005ae8b_0 +0 -0
- package/loggedin/Default/Code Cache/js/c546618c466a5586_0 +0 -0
- package/loggedin/Default/Code Cache/js/c894917acaabe613_0 +0 -0
- package/loggedin/Default/Code Cache/js/c8ebe46037aec8b0_0 +0 -0
- package/loggedin/Default/Code Cache/js/ca261546e88116f4_0 +0 -0
- package/loggedin/Default/Code Cache/js/cb8484806a2fa865_0 +0 -0
- package/loggedin/Default/Code Cache/js/cdd23f8ed59bf5fa_0 +0 -0
- package/loggedin/Default/Code Cache/js/cee0ac1ac31fff1a_0 +0 -0
- package/loggedin/Default/Code Cache/js/d403860d5d06b9bb_0 +0 -0
- package/loggedin/Default/Code Cache/js/d40644e7f46754a8_0 +0 -0
- package/loggedin/Default/Code Cache/js/d4deb20d294650d9_0 +0 -0
- package/loggedin/Default/Code Cache/js/d600b9c9974593d0_0 +0 -0
- package/loggedin/Default/Code Cache/js/d60d9943ef76812b_0 +0 -0
- package/loggedin/Default/Code Cache/js/d6c480e823b2ed6a_0 +0 -0
- package/loggedin/Default/Code Cache/js/d6c7801bd3be30df_0 +0 -0
- package/loggedin/Default/Code Cache/js/d77db83135fe9378_0 +0 -0
- package/loggedin/Default/Code Cache/js/d7cc357a7e4e6fd8_0 +0 -0
- package/loggedin/Default/Code Cache/js/da60a09d85c8a39a_0 +0 -0
- package/loggedin/Default/Code Cache/js/db0b06b51758927e_0 +0 -0
- package/loggedin/Default/Code Cache/js/db50b6276845ed92_0 +0 -0
- package/loggedin/Default/Code Cache/js/e074f18caed258f9_0 +0 -0
- package/loggedin/Default/Code Cache/js/e1addd7a425eaf6e_0 +0 -0
- package/loggedin/Default/Code Cache/js/e326c9b6a673b0f9_0 +0 -0
- package/loggedin/Default/Code Cache/js/eba82945560ef5be_0 +0 -0
- package/loggedin/Default/Code Cache/js/ecc0577353daf79c_0 +0 -0
- package/loggedin/Default/Code Cache/js/efa30e832a4bfe40_0 +0 -0
- package/loggedin/Default/Code Cache/js/efe97d2435a94cec_0 +0 -0
- package/loggedin/Default/Code Cache/js/f01a14395db8a5c1_0 +0 -0
- package/loggedin/Default/Code Cache/js/f0e4ccc3186eb77d_0 +0 -0
- package/loggedin/Default/Code Cache/js/f120de6fd50119e2_0 +0 -0
- package/loggedin/Default/Code Cache/js/f25a2f2fb28139b2_0 +0 -0
- package/loggedin/Default/Code Cache/js/f2b3f49d066c15d6_0 +0 -0
- package/loggedin/Default/Code Cache/js/f3376d92bd5101bd_0 +0 -0
- package/loggedin/Default/Code Cache/js/f4ff6859a531317d_0 +0 -0
- package/loggedin/Default/Code Cache/js/f9df73b18b9e5ad3_0 +0 -0
- package/loggedin/Default/Code Cache/js/faa484da1ba8cd74_0 +0 -0
- package/loggedin/Default/Code Cache/js/fd3256827cb8105f_0 +0 -0
- package/loggedin/Default/Code Cache/js/fdef6f8f260905de_0 +0 -0
- package/loggedin/Default/Code Cache/js/ff19af676f8d483b_0 +0 -0
- package/loggedin/Default/Code Cache/js/ffa97664e06252c5_0 +0 -0
- package/loggedin/Default/Code Cache/js/ffafe89b93d8df1e_0 +0 -0
- package/loggedin/Default/Code Cache/js/ffb24406b8f6a79b_0 +0 -0
- package/loggedin/Default/Code Cache/js/index +0 -0
- package/loggedin/Default/Code Cache/js/index-dir/the-real-index +0 -0
- package/loggedin/Default/Code Cache/wasm/index +0 -0
- package/loggedin/Default/Code Cache/wasm/index-dir/the-real-index +0 -0
- package/loggedin/Default/Cookies +0 -0
- package/loggedin/Default/Cookies-journal +0 -0
- package/loggedin/Default/DIPS +0 -0
- package/loggedin/Default/DIPS-wal +0 -0
- package/loggedin/Default/DawnGraphiteCache/data_0 +0 -0
- package/loggedin/Default/DawnGraphiteCache/data_1 +0 -0
- package/loggedin/Default/DawnGraphiteCache/data_2 +0 -0
- package/loggedin/Default/DawnGraphiteCache/data_3 +0 -0
- package/loggedin/Default/DawnGraphiteCache/index +0 -0
- package/loggedin/Default/DawnWebGPUCache/data_0 +0 -0
- package/loggedin/Default/DawnWebGPUCache/data_1 +0 -0
- package/loggedin/Default/DawnWebGPUCache/data_2 +0 -0
- package/loggedin/Default/DawnWebGPUCache/data_3 +0 -0
- package/loggedin/Default/DawnWebGPUCache/index +0 -0
- package/loggedin/Default/Extension Rules/CURRENT +0 -1
- package/loggedin/Default/Extension Rules/LOCK +0 -0
- package/loggedin/Default/Extension Rules/LOG +0 -2
- package/loggedin/Default/Extension Rules/MANIFEST-000001 +0 -0
- package/loggedin/Default/Extension Scripts/CURRENT +0 -1
- package/loggedin/Default/Extension Scripts/LOCK +0 -0
- package/loggedin/Default/Extension Scripts/LOG +0 -2
- package/loggedin/Default/Extension Scripts/MANIFEST-000001 +0 -0
- package/loggedin/Default/Extension State/CURRENT +0 -1
- package/loggedin/Default/Extension State/LOCK +0 -0
- package/loggedin/Default/Extension State/LOG +0 -3
- package/loggedin/Default/Extension State/LOG.old +0 -2
- package/loggedin/Default/Extension State/MANIFEST-000001 +0 -0
- package/loggedin/Default/Favicons +0 -0
- package/loggedin/Default/Favicons-journal +0 -0
- package/loggedin/Default/Feature Engagement Tracker/AvailabilityDB/LOCK +0 -0
- package/loggedin/Default/Feature Engagement Tracker/AvailabilityDB/LOG +0 -0
- package/loggedin/Default/Feature Engagement Tracker/AvailabilityDB/LOG.old +0 -0
- package/loggedin/Default/Feature Engagement Tracker/EventDB/LOCK +0 -0
- package/loggedin/Default/Feature Engagement Tracker/EventDB/LOG +0 -0
- package/loggedin/Default/Feature Engagement Tracker/EventDB/LOG.old +0 -0
- package/loggedin/Default/GCM Store/CURRENT +0 -1
- package/loggedin/Default/GCM Store/LOCK +0 -0
- package/loggedin/Default/GCM Store/LOG +0 -3
- package/loggedin/Default/GCM Store/LOG.old +0 -2
- package/loggedin/Default/GCM Store/MANIFEST-000001 +0 -0
- package/loggedin/Default/GPUCache/data_0 +0 -0
- package/loggedin/Default/GPUCache/data_1 +0 -0
- package/loggedin/Default/GPUCache/data_2 +0 -0
- package/loggedin/Default/GPUCache/data_3 +0 -0
- package/loggedin/Default/GPUCache/index +0 -0
- package/loggedin/Default/History +0 -0
- package/loggedin/Default/History-journal +0 -0
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/000009.ldb +0 -0
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/CURRENT +0 -1
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/LOCK +0 -0
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/LOG +0 -13
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/LOG.old +0 -6
- package/loggedin/Default/IndexedDB/https_docstudio-6bb70.web.app_0.indexeddb.leveldb/MANIFEST-000001 +0 -0
- package/loggedin/Default/LOCK +0 -0
- package/loggedin/Default/LOG +0 -0
- package/loggedin/Default/LOG.old +0 -0
- package/loggedin/Default/Local Storage/leveldb/CURRENT +0 -1
- package/loggedin/Default/Local Storage/leveldb/LOCK +0 -0
- package/loggedin/Default/Local Storage/leveldb/LOG +0 -3
- package/loggedin/Default/Local Storage/leveldb/LOG.old +0 -2
- package/loggedin/Default/Local Storage/leveldb/MANIFEST-000001 +0 -0
- package/loggedin/Default/Login Data +0 -0
- package/loggedin/Default/Login Data For Account +0 -0
- package/loggedin/Default/Login Data For Account-journal +0 -0
- package/loggedin/Default/Login Data-journal +0 -0
- package/loggedin/Default/MediaDeviceSalts +0 -0
- package/loggedin/Default/MediaDeviceSalts-journal +0 -0
- package/loggedin/Default/Network Action Predictor +0 -0
- package/loggedin/Default/Network Action Predictor-journal +0 -0
- package/loggedin/Default/Network Persistent State +0 -1
- package/loggedin/Default/PersistentOriginTrials/LOCK +0 -0
- package/loggedin/Default/PersistentOriginTrials/LOG +0 -0
- package/loggedin/Default/PersistentOriginTrials/LOG.old +0 -0
- package/loggedin/Default/Preferences +0 -1
- package/loggedin/Default/PreferredApps +0 -1
- package/loggedin/Default/README +0 -1
- package/loggedin/Default/Reporting and NEL +0 -0
- package/loggedin/Default/Reporting and NEL-journal +0 -0
- package/loggedin/Default/SCT Auditing Pending Reports +0 -1
- package/loggedin/Default/Safe Browsing Cookies +0 -0
- package/loggedin/Default/Safe Browsing Cookies-journal +0 -0
- package/loggedin/Default/Secure Preferences +0 -1
- package/loggedin/Default/Segmentation Platform/SegmentInfoDB/LOCK +0 -0
- package/loggedin/Default/Segmentation Platform/SegmentInfoDB/LOG +0 -0
- package/loggedin/Default/Segmentation Platform/SegmentInfoDB/LOG.old +0 -0
- package/loggedin/Default/Segmentation Platform/SignalDB/LOCK +0 -0
- package/loggedin/Default/Segmentation Platform/SignalDB/LOG +0 -0
- package/loggedin/Default/Segmentation Platform/SignalDB/LOG.old +0 -0
- package/loggedin/Default/Segmentation Platform/SignalStorageConfigDB/LOCK +0 -0
- package/loggedin/Default/Segmentation Platform/SignalStorageConfigDB/LOG +0 -0
- package/loggedin/Default/Segmentation Platform/SignalStorageConfigDB/LOG.old +0 -0
- package/loggedin/Default/ServerCertificate +0 -0
- package/loggedin/Default/ServerCertificate-journal +0 -0
- package/loggedin/Default/Session Storage/CURRENT +0 -1
- package/loggedin/Default/Session Storage/LOCK +0 -0
- package/loggedin/Default/Session Storage/LOG +0 -3
- package/loggedin/Default/Session Storage/LOG.old +0 -2
- package/loggedin/Default/Session Storage/MANIFEST-000001 +0 -0
- package/loggedin/Default/Sessions/Session_13417681599024288 +0 -0
- package/loggedin/Default/Sessions/Session_13417683231893833 +0 -0
- package/loggedin/Default/Sessions/Tabs_13417683232240265 +0 -0
- package/loggedin/Default/Shared Dictionary/cache/index +0 -0
- package/loggedin/Default/Shared Dictionary/cache/index-dir/the-real-index +0 -0
- package/loggedin/Default/Shared Dictionary/db +0 -0
- package/loggedin/Default/Shared Dictionary/db-journal +0 -0
- package/loggedin/Default/SharedStorage +0 -0
- package/loggedin/Default/SharedStorage-wal +0 -0
- package/loggedin/Default/Shortcuts +0 -0
- package/loggedin/Default/Shortcuts-journal +0 -0
- package/loggedin/Default/Site Characteristics Database/CURRENT +0 -1
- package/loggedin/Default/Site Characteristics Database/LOCK +0 -0
- package/loggedin/Default/Site Characteristics Database/LOG +0 -3
- package/loggedin/Default/Site Characteristics Database/LOG.old +0 -2
- package/loggedin/Default/Site Characteristics Database/MANIFEST-000001 +0 -0
- package/loggedin/Default/Sync Data/LevelDB/CURRENT +0 -1
- package/loggedin/Default/Sync Data/LevelDB/LOCK +0 -0
- package/loggedin/Default/Sync Data/LevelDB/LOG +0 -3
- package/loggedin/Default/Sync Data/LevelDB/LOG.old +0 -2
- package/loggedin/Default/Sync Data/LevelDB/MANIFEST-000001 +0 -0
- package/loggedin/Default/Top Sites +0 -0
- package/loggedin/Default/Top Sites-journal +0 -0
- package/loggedin/Default/TransportSecurity +0 -1
- package/loggedin/Default/Trust Tokens +0 -0
- package/loggedin/Default/Trust Tokens-journal +0 -0
- package/loggedin/Default/VideoDecodeStats/LOCK +0 -0
- package/loggedin/Default/VideoDecodeStats/LOG +0 -0
- package/loggedin/Default/Web Data +0 -0
- package/loggedin/Default/Web Data-journal +0 -0
- package/loggedin/Default/WebStorage/QuotaManager +0 -0
- package/loggedin/Default/WebStorage/QuotaManager-journal +0 -0
- package/loggedin/Default/chrome_cart_db/LOCK +0 -0
- package/loggedin/Default/chrome_cart_db/LOG +0 -0
- package/loggedin/Default/chrome_cart_db/LOG.old +0 -0
- package/loggedin/Default/commerce_subscription_db/LOCK +0 -0
- package/loggedin/Default/commerce_subscription_db/LOG +0 -0
- package/loggedin/Default/commerce_subscription_db/LOG.old +0 -0
- package/loggedin/Default/discount_infos_db/LOCK +0 -0
- package/loggedin/Default/discount_infos_db/LOG +0 -0
- package/loggedin/Default/discount_infos_db/LOG.old +0 -0
- package/loggedin/Default/discounts_db/LOCK +0 -0
- package/loggedin/Default/discounts_db/LOG +0 -0
- package/loggedin/Default/discounts_db/LOG.old +0 -0
- package/loggedin/Default/heavy_ad_intervention_opt_out.db +0 -0
- package/loggedin/Default/heavy_ad_intervention_opt_out.db-journal +0 -0
- package/loggedin/Default/parcel_tracking_db/LOCK +0 -0
- package/loggedin/Default/parcel_tracking_db/LOG +0 -0
- package/loggedin/Default/parcel_tracking_db/LOG.old +0 -0
- package/loggedin/Default/passkey_enclave_state +0 -1
- package/loggedin/Default/shared_proto_db/CURRENT +0 -1
- package/loggedin/Default/shared_proto_db/LOCK +0 -0
- package/loggedin/Default/shared_proto_db/LOG +0 -3
- package/loggedin/Default/shared_proto_db/LOG.old +0 -2
- package/loggedin/Default/shared_proto_db/MANIFEST-000001 +0 -0
- package/loggedin/Default/shared_proto_db/metadata/CURRENT +0 -1
- package/loggedin/Default/shared_proto_db/metadata/LOCK +0 -0
- package/loggedin/Default/shared_proto_db/metadata/LOG +0 -3
- package/loggedin/Default/shared_proto_db/metadata/LOG.old +0 -2
- package/loggedin/Default/shared_proto_db/metadata/MANIFEST-000001 +0 -0
- package/loggedin/Default/trusted_vault.pb +0 -2
- package/loggedin/Dictionaries/en-US-10-1.bdic +0 -0
- package/loggedin/GrShaderCache/data_0 +0 -0
- package/loggedin/GrShaderCache/data_1 +0 -0
- package/loggedin/GrShaderCache/data_2 +0 -0
- package/loggedin/GrShaderCache/data_3 +0 -0
- package/loggedin/GrShaderCache/index +0 -0
- package/loggedin/GraphiteDawnCache/data_0 +0 -0
- package/loggedin/GraphiteDawnCache/data_1 +0 -0
- package/loggedin/GraphiteDawnCache/data_2 +0 -0
- package/loggedin/GraphiteDawnCache/data_3 +0 -0
- package/loggedin/GraphiteDawnCache/index +0 -0
- package/loggedin/Last Version +0 -1
- package/loggedin/Local State +0 -1
- package/loggedin/ShaderCache/data_0 +0 -0
- package/loggedin/ShaderCache/data_1 +0 -0
- package/loggedin/ShaderCache/data_2 +0 -0
- package/loggedin/ShaderCache/data_3 +0 -0
- package/loggedin/ShaderCache/index +0 -0
- package/loggedin/Variations +0 -1
- package/loggedin/component_crx_cache/metadata.json +0 -1
- package/loggedin/extensions_crx_cache/metadata.json +0 -1
- package/loggedin/first_party_sets.db +0 -0
- package/loggedin/first_party_sets.db-journal +0 -0
- package/loggedin/segmentation_platform/ukm_db +0 -0
- package/loggedin/segmentation_platform/ukm_db-wal +0 -0
- package/openapi.json +0 -3310
- package/portable-entry.js +0 -45
- package/readme.md +0 -297
- package/scripts/take-screenshots.sh +0 -77
- package/static/event-rendering-showcase.html +0 -708
- package/static/templates/INDEX.html +0 -465
- package/static/templates/README.md +0 -190
- package/static/templates/agent-capabilities.html +0 -56
- package/static/templates/agent-metadata-panel.html +0 -44
- package/static/templates/agent-status-badge.html +0 -30
- package/static/templates/code-annotation-panel.html +0 -155
- package/static/templates/code-suggestion-panel.html +0 -184
- package/static/templates/command-header.html +0 -77
- package/static/templates/command-output-scrollable.html +0 -118
- package/static/templates/elapsed-time.html +0 -54
- package/static/templates/error-alert.html +0 -106
- package/static/templates/error-history-timeline.html +0 -160
- package/static/templates/error-recovery-options.html +0 -109
- package/static/templates/error-stack-trace.html +0 -95
- package/static/templates/error-summary.html +0 -80
- package/static/templates/event-counter.html +0 -48
- package/static/templates/execution-actions.html +0 -97
- package/static/templates/execution-progress-bar.html +0 -80
- package/static/templates/execution-stepper.html +0 -120
- package/static/templates/file-breadcrumb.html +0 -118
- package/static/templates/file-diff-viewer.html +0 -121
- package/static/templates/file-metadata.html +0 -133
- package/static/templates/file-read-panel.html +0 -66
- package/static/templates/file-write-panel.html +0 -120
- package/static/templates/git-branch-remote.html +0 -107
- package/static/templates/git-diff-list.html +0 -101
- package/static/templates/git-log-visualization.html +0 -153
- package/static/templates/git-status-panel.html +0 -115
- package/static/templates/image-display.html +0 -76
- package/static/templates/quality-metrics-display.html +0 -170
- package/static/templates/terminal-output-panel.html +0 -87
- package/static/templates/test-results-display.html +0 -144
- package/static/tools-ui-test.html +0 -551
- package/test-http-tools.js +0 -101
- package/test-system-validation.js +0 -188
- package/tests/cache-desync-test.js +0 -209
package/package.json
CHANGED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
# Cache Desync Prevention Implementation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The conversation thread cache in AgentGUI (stored in `ConversationManager.conversations`) is now protected against desynchronization through atomic mutation points and version tracking.
|
|
6
|
-
|
|
7
|
-
## Problem Solved
|
|
8
|
-
|
|
9
|
-
**Before:** Multiple code paths could mutate `this.conversations` independently:
|
|
10
|
-
- `loadConversations()` polling every 30s
|
|
11
|
-
- WebSocket handlers creating/updating/deleting conversations in real-time
|
|
12
|
-
- Manual delete operations
|
|
13
|
-
|
|
14
|
-
Result: Array could enter intermediate states during concurrent operations, causing:
|
|
15
|
-
- Stale UI displays
|
|
16
|
-
- Lost updates when poll overwrites WebSocket changes
|
|
17
|
-
- Race conditions between server and client state
|
|
18
|
-
|
|
19
|
-
**After:** All mutations route through a single atomic operation with:
|
|
20
|
-
- Version tracking for cache coherency
|
|
21
|
-
- Source attribution for debugging
|
|
22
|
-
- Timestamp recording for audit trails
|
|
23
|
-
- No intermediate states visible to UI
|
|
24
|
-
|
|
25
|
-
## Implementation Details
|
|
26
|
-
|
|
27
|
-
### Single Mutation Point: _updateConversations()
|
|
28
|
-
|
|
29
|
-
Location: `static/js/conversations.js` lines 110-128
|
|
30
|
-
|
|
31
|
-
```javascript
|
|
32
|
-
_updateConversations(newArray, source, context = {}) {
|
|
33
|
-
const oldLen = this.conversations.length;
|
|
34
|
-
const newLen = Array.isArray(newArray) ? newArray.length : 0;
|
|
35
|
-
const mutationId = ++this._conversationVersion;
|
|
36
|
-
const timestamp = Date.now();
|
|
37
|
-
|
|
38
|
-
this.conversations = Array.isArray(newArray) ? newArray : [];
|
|
39
|
-
this._lastMutationSource = source;
|
|
40
|
-
this._lastMutationTime = timestamp;
|
|
41
|
-
|
|
42
|
-
window._conversationCacheVersion = mutationId;
|
|
43
|
-
|
|
44
|
-
if (context.verbose) {
|
|
45
|
-
console.log(`[ConvMgr] mutation #${mutationId} (${source}): ${oldLen} → ${newLen} items, ts=${timestamp}`);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return { version: mutationId, timestamp, oldLen, newLen };
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Key Features:**
|
|
53
|
-
- Atomic: Replaces entire array reference, never partial mutations
|
|
54
|
-
- Versioned: Increments counter on every mutation
|
|
55
|
-
- Sourced: Records where mutation originated (poll, add, update, delete, clear_all, ws_clear_all)
|
|
56
|
-
- Timestamped: Records when mutation occurred
|
|
57
|
-
- Observable: Exposes version via `window._conversationCacheVersion` for debugging
|
|
58
|
-
|
|
59
|
-
### All Mutation Paths Routed
|
|
60
|
-
|
|
61
|
-
| Method | Source | Line | What It Does |
|
|
62
|
-
|--------|--------|------|-----------|
|
|
63
|
-
| `loadConversations()` | 'poll' | 445 | Server poll every 30s |
|
|
64
|
-
| `addConversation(conv)` | 'add' | 558 | New conversation created |
|
|
65
|
-
| `updateConversation(id, updates)` | 'update' | 567 | Conversation metadata changed |
|
|
66
|
-
| `deleteConversation(id)` | 'delete' | 577 | Conversation deleted |
|
|
67
|
-
| `confirmDeleteAll()` | 'clear_all' | 316 | All conversations cleared |
|
|
68
|
-
| WebSocket handler | 'ws_clear_all' | 596 | Server broadcast clear |
|
|
69
|
-
|
|
70
|
-
### Version Tracking
|
|
71
|
-
|
|
72
|
-
State variables added to constructor:
|
|
73
|
-
- `this._conversationVersion = 0` - Current mutation counter
|
|
74
|
-
- `this._lastMutationSource = null` - Source of last mutation
|
|
75
|
-
- `this._lastMutationTime = 0` - Timestamp of last mutation
|
|
76
|
-
|
|
77
|
-
Global exposure:
|
|
78
|
-
- `window._conversationCacheVersion` - Updated on each mutation
|
|
79
|
-
- `getConversationCacheVersion()" - Getter for version
|
|
80
|
-
|
|
81
|
-
## Testing
|
|
82
|
-
|
|
83
|
-
Comprehensive test suite covers 8 scenarios:
|
|
84
|
-
|
|
85
|
-
1. Single add operation
|
|
86
|
-
2. Version increments on each mutation
|
|
87
|
-
3. Poll overwrites cache atomically
|
|
88
|
-
4. Concurrent add + poll (race condition)
|
|
89
|
-
5. Update preserves order
|
|
90
|
-
6. Delete maintains array integrity
|
|
91
|
-
7. Mutation source tracking
|
|
92
|
-
8. No intermediate states
|
|
93
|
-
|
|
94
|
-
Run tests:
|
|
95
|
-
```bash
|
|
96
|
-
node tests/cache-desync-test.js
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Result: All 8/8 tests pass.
|
|
100
|
-
|
|
101
|
-
## Preventing Cache Desync: How It Works
|
|
102
|
-
|
|
103
|
-
### Scenario 1: Concurrent WebSocket Add + Poll
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
t0: WebSocket 'conversation_created' arrives
|
|
107
|
-
→ addConversation() called
|
|
108
|
-
→ _updateConversations([new_conv, ...old], 'add')
|
|
109
|
-
→ version = 1, array contains new + old
|
|
110
|
-
|
|
111
|
-
t1: 30s poll timer fires
|
|
112
|
-
→ loadConversations() called with old cached server data
|
|
113
|
-
→ _updateConversations([old1, old2, ...], 'poll')
|
|
114
|
-
→ version = 2, array overwrites with server snapshot
|
|
115
|
-
|
|
116
|
-
Result: Consistent state - either new+old (version 1) or server data (version 2)
|
|
117
|
-
Never partial/intermediate state visible to UI
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Scenario 2: Update During Transition
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
t0: WebSocket 'conversation_updated' arrives for conv #1
|
|
124
|
-
→ updateConversation('conv-1', {title: 'New'})
|
|
125
|
-
→ Creates new array with updated object at index 1
|
|
126
|
-
→ _updateConversations(newArray, 'update')
|
|
127
|
-
→ Entire array replaced atomically
|
|
128
|
-
|
|
129
|
-
Result: All items stay in original order + positions
|
|
130
|
-
Update is transactional - either fully applied or not at all
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
## Observability
|
|
134
|
-
|
|
135
|
-
### Debugging Cache State
|
|
136
|
-
|
|
137
|
-
In browser console:
|
|
138
|
-
```javascript
|
|
139
|
-
// Get current version
|
|
140
|
-
window._conversationCacheVersion // → 15
|
|
141
|
-
|
|
142
|
-
// Get conversation manager instance
|
|
143
|
-
window.conversationManager.getConversationCacheVersion() // → 15
|
|
144
|
-
|
|
145
|
-
// Last mutation source
|
|
146
|
-
window.conversationManager._lastMutationSource // → 'update'
|
|
147
|
-
|
|
148
|
-
// Last mutation timestamp
|
|
149
|
-
window.conversationManager._lastMutationTime // → 1705412890123
|
|
150
|
-
|
|
151
|
-
// Full conversations array
|
|
152
|
-
window.conversationManager.conversations // → [...]
|
|
153
|
-
|
|
154
|
-
// Enable verbose logging
|
|
155
|
-
window.conversationManager._updateConversations(
|
|
156
|
-
window.conversationManager.conversations,
|
|
157
|
-
'debug',
|
|
158
|
-
{ verbose: true }
|
|
159
|
-
)
|
|
160
|
-
// Output: [ConvMgr] mutation #16 (debug): 3 → 3 items, ts=...
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Mutation Log
|
|
164
|
-
|
|
165
|
-
Each mutation source ('poll', 'add', 'update', 'delete', 'clear_all', 'ws_clear_all') can be filtered to understand timing:
|
|
166
|
-
|
|
167
|
-
```javascript
|
|
168
|
-
// Capture mutations for 1 minute
|
|
169
|
-
const mutations = [];
|
|
170
|
-
const originalUpdate = window.conversationManager._updateConversations;
|
|
171
|
-
window.conversationManager._updateConversations = function(arr, src, ctx) {
|
|
172
|
-
mutations.push({ src, time: Date.now() });
|
|
173
|
-
return originalUpdate.call(this, arr, src, ctx);
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
// Later: analyze
|
|
177
|
-
mutations.filter(m => m.src === 'poll') // All polls
|
|
178
|
-
mutations.filter(m => m.src.includes('ws')) // All WebSocket events
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Edge Cases Handled
|
|
182
|
-
|
|
183
|
-
1. **Nonexistent conversation update** - No version increment if not found
|
|
184
|
-
2. **Duplicate add** - Already-exists check prevents duplicate
|
|
185
|
-
3. **Empty load** - Handles `data.conversations || []` safely
|
|
186
|
-
4. **Rapid mutations** - Each increments version, no race condition
|
|
187
|
-
5. **Concurrent add + delete** - Both atomic, no orphaned references
|
|
188
|
-
|
|
189
|
-
## Future Enhancements
|
|
190
|
-
|
|
191
|
-
Potential follow-ups (not implemented):
|
|
192
|
-
|
|
193
|
-
- **Conflict detection:** Track last-write-wins vs. merge strategies
|
|
194
|
-
- **Optimistic updates:** Append version to pending updates
|
|
195
|
-
- **Cache invalidation:** TTL-based refresh of stale entries
|
|
196
|
-
- **Replay capability:** Use version counter to detect gaps in WebSocket stream
|
|
197
|
-
- **CRDT integration:** Replace array with conflict-free replicated data type
|
|
198
|
-
|
|
199
|
-
## Files Modified
|
|
200
|
-
|
|
201
|
-
- `static/js/conversations.js` (+45 lines, -8 lines)
|
|
202
|
-
- Added atomic mutation point
|
|
203
|
-
- Routed all 6 mutation paths through it
|
|
204
|
-
- Added version tracking and observability
|
|
205
|
-
|
|
206
|
-
## Testing
|
|
207
|
-
|
|
208
|
-
Created `tests/cache-desync-test.js` with 8 comprehensive test cases covering:
|
|
209
|
-
- Basic mutations
|
|
210
|
-
- Concurrent scenarios
|
|
211
|
-
- Race conditions
|
|
212
|
-
- State preservation
|
|
213
|
-
- Source tracking
|
|
214
|
-
|
|
215
|
-
All tests pass (8/8).
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
**Summary:** Cache desync is prevented by enforcing all mutations through a single atomic operation with version tracking. No intermediate states exist. Concurrent WebSocket and polling scenarios are safe.
|
package/SYNC_ARCHITECTURE.md
DELETED
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
# AgentGUI Sync-to-Display Architecture Report
|
|
2
|
-
|
|
3
|
-
## Executive Summary
|
|
4
|
-
|
|
5
|
-
The sync-to-display system handles real-time synchronization of execution state from server to client display. Current implementation has been improved through multiple fixes, particularly for queue display consistency and steering support. This document consolidates the architecture and identifies remaining optimization opportunities.
|
|
6
|
-
|
|
7
|
-
## Architecture Overview
|
|
8
|
-
|
|
9
|
-
### 1. Broadcast System (server.js:4269-4317)
|
|
10
|
-
|
|
11
|
-
**BROADCAST_TYPES** - Global broadcast events sent to ALL connected clients:
|
|
12
|
-
- `message_created`, `conversation_created/updated/deleted`
|
|
13
|
-
- `queue_status`, `queue_updated`
|
|
14
|
-
- `streaming_start`, `streaming_progress`, `streaming_complete`, `streaming_error`
|
|
15
|
-
- `rate_limit_hit`, `rate_limit_clear`
|
|
16
|
-
- Tool-related events (`tool_*`, `tools_*`)
|
|
17
|
-
- Voice/speech events
|
|
18
|
-
- PM2 monitoring events
|
|
19
|
-
|
|
20
|
-
**broadcastSync()** function (line 4288):
|
|
21
|
-
```
|
|
22
|
-
1. Check if event.type is in BROADCAST_TYPES
|
|
23
|
-
2. If broadcast: send to ALL syncClients
|
|
24
|
-
3. If targeted: send to sessionId or conversationId subscribers only
|
|
25
|
-
4. Also dispatch to SSE stream handlers if active
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### 2. Client-Side Message Reception (static/js/client.js)
|
|
29
|
-
|
|
30
|
-
**handleWsMessage()** routes events by type:
|
|
31
|
-
```javascript
|
|
32
|
-
case 'message_created': handleMessageCreated(data)
|
|
33
|
-
case 'queue_status': handleQueueStatus(data)
|
|
34
|
-
case 'streaming_start': handleStreamingStart(data)
|
|
35
|
-
case 'streaming_progress': handleStreamingProgress(data)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### 3. Display Rendering Layers
|
|
39
|
-
|
|
40
|
-
**Layer 1: Message Rendering** (handleMessageCreated)
|
|
41
|
-
- Checks if message already exists (prevents duplicates)
|
|
42
|
-
- For user messages: finds optimistic message, updates it
|
|
43
|
-
- For assistant messages: skips if streaming (handled by chunks)
|
|
44
|
-
|
|
45
|
-
**Layer 2: Streaming Progress** (handleStreamingProgress)
|
|
46
|
-
- Adds chunks to queue
|
|
47
|
-
- Batches rendering via StreamingRenderer
|
|
48
|
-
- Handles thinking blocks directly
|
|
49
|
-
|
|
50
|
-
**Layer 3: Queue Indicator** (fetchAndRenderQueue)
|
|
51
|
-
- Polls via `q.ls` RPC every interval
|
|
52
|
-
- Displays queued items in yellow control blocks
|
|
53
|
-
- Renders with Edit/Delete/Steer buttons
|
|
54
|
-
|
|
55
|
-
**Layer 4: Conversation State** (handleConversationUpdated)
|
|
56
|
-
- Updates isStreaming flag
|
|
57
|
-
- Refreshes UI based on new state
|
|
58
|
-
|
|
59
|
-
## Recent Fixes & Status
|
|
60
|
-
|
|
61
|
-
### Fixed Issues
|
|
62
|
-
|
|
63
|
-
✅ **Queue Message Duplication** (commit fbfd1ad)
|
|
64
|
-
- Problem: Queued messages appeared as both user prompt + queue item
|
|
65
|
-
- Solution: Skip optimistic message when conversation is streaming
|
|
66
|
-
- Impact: Clean queue display, no duplication
|
|
67
|
-
|
|
68
|
-
✅ **Steering Support** (commit 81d83af)
|
|
69
|
-
- Problem: Steering showed "Process not available" error
|
|
70
|
-
- Solution: Keep stdin open (supportsStdin=true, closeStdin=false)
|
|
71
|
-
- Impact: Users can send follow-up prompts during execution
|
|
72
|
-
|
|
73
|
-
✅ **Chunk Rendering Race** (Session 3a)
|
|
74
|
-
- Problem: Early chunks missed before polling started
|
|
75
|
-
- Solution: Immediate chunk fetch on streaming_start
|
|
76
|
-
- Impact: No missing initial output
|
|
77
|
-
|
|
78
|
-
✅ **Dark Mode Selection** (fsbrowse)
|
|
79
|
-
- Problem: Selection states hard to see in dark mode
|
|
80
|
-
- Solution: Theme-aware colors for hover/focus
|
|
81
|
-
- Impact: Better visual feedback in both themes
|
|
82
|
-
|
|
83
|
-
### Remaining Consistency Issues
|
|
84
|
-
|
|
85
|
-
⚠️ **Queue State Sync Timing**
|
|
86
|
-
- Queue created on server via enqueue()
|
|
87
|
-
- message_created broadcast may arrive before queue is populated
|
|
88
|
-
- Client fetchAndRenderQueue() polls but timing is unpredictable
|
|
89
|
-
- No atomic operation ensuring client sees both message and queue
|
|
90
|
-
|
|
91
|
-
⚠️ **Multiple Sources of Truth**
|
|
92
|
-
- Server: database, active execution map, queue map
|
|
93
|
-
- Client: message list, streaming set, queue indicator
|
|
94
|
-
- Conversation state: isStreaming flag can desync if connection drops
|
|
95
|
-
- No single authoritative state object
|
|
96
|
-
|
|
97
|
-
⚠️ **Optimistic Message Updates**
|
|
98
|
-
- Client creates optimistic "sending" message on submit
|
|
99
|
-
- Server creates actual message and broadcasts
|
|
100
|
-
- handleMessageCreated() finds and updates optimistic message
|
|
101
|
-
- If network is slow, both may briefly exist
|
|
102
|
-
|
|
103
|
-
⚠️ **Queue Execution Transition**
|
|
104
|
-
- Queue items don't explicitly transition to executed
|
|
105
|
-
- Client must poll queue indicator to see it disappear
|
|
106
|
-
- No event indicating "queue item now executing"
|
|
107
|
-
- Confusing UX when queue suddenly empties
|
|
108
|
-
|
|
109
|
-
## Data Flow Examples
|
|
110
|
-
|
|
111
|
-
### Normal Execution (Ctrl+Enter with no active stream)
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
User input: "Write a function"
|
|
115
|
-
↓
|
|
116
|
-
startExecution()
|
|
117
|
-
→ _showOptimisticMessage(pendingId, content) // yellow "sending..." message
|
|
118
|
-
↓
|
|
119
|
-
streamToConversation() → msg.stream RPC
|
|
120
|
-
↓
|
|
121
|
-
Server: msg.stream handler
|
|
122
|
-
→ createMessage(p.id, 'user', prompt)
|
|
123
|
-
→ broadcastSync({ type: 'message_created', ... })
|
|
124
|
-
→ startExecution() -> streaming_start broadcast
|
|
125
|
-
↓
|
|
126
|
-
Client: message_created event
|
|
127
|
-
→ handleMessageCreated()
|
|
128
|
-
→ Finds optimistic message by ID
|
|
129
|
-
→ Updates it (removes "sending" style, adds timestamp)
|
|
130
|
-
↓
|
|
131
|
-
Client: streaming_start event
|
|
132
|
-
→ Disables input, shows "thinking..."
|
|
133
|
-
→ Subscribes to session
|
|
134
|
-
→ Starts chunk polling
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Queue Case (Ctrl+Enter while streaming) - NOW FIXED
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
User input: "Now add subtraction" during execution
|
|
141
|
-
↓
|
|
142
|
-
startExecution()
|
|
143
|
-
→ isStreaming = true
|
|
144
|
-
→ SKIP _showOptimisticMessage ✓ (FIXED)
|
|
145
|
-
↓
|
|
146
|
-
streamToConversation() → msg.stream RPC
|
|
147
|
-
↓
|
|
148
|
-
Server: msg.stream handler
|
|
149
|
-
→ createMessage(p.id, 'user', prompt)
|
|
150
|
-
→ broadcastSync({ type: 'message_created', ... })
|
|
151
|
-
→ activeExecutions.has(p.id) = true
|
|
152
|
-
→ enqueue(p.id, prompt, ...)
|
|
153
|
-
→ broadcastSync({ type: 'queue_status', ... })
|
|
154
|
-
↓
|
|
155
|
-
Client: message_created event
|
|
156
|
-
→ handleMessageCreated()
|
|
157
|
-
→ Message is not in current conversation display
|
|
158
|
-
→ Emit event but don't render
|
|
159
|
-
↓
|
|
160
|
-
Client: queue_status event
|
|
161
|
-
→ handleQueueStatus()
|
|
162
|
-
→ fetchAndRenderQueue()
|
|
163
|
-
→ Displays in yellow queue indicator ✓
|
|
164
|
-
↓
|
|
165
|
-
Result: Message only in queue, no duplication ✓
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Steering (Ctrl+Enter + Steer button during execution)
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
User clicks Steer button on queued message
|
|
172
|
-
↓
|
|
173
|
-
Client: conv.steer RPC with JSON-RPC format
|
|
174
|
-
↓
|
|
175
|
-
Server: conv.steer handler
|
|
176
|
-
→ Finds active process stdin
|
|
177
|
-
→ Writes JSON-RPC prompt request
|
|
178
|
-
→ Removes from queue (optional)
|
|
179
|
-
↓
|
|
180
|
-
Claude Code: Receives JSON-RPC on stdin
|
|
181
|
-
→ Processes prompt immediately
|
|
182
|
-
→ Continues execution with new direction
|
|
183
|
-
↓
|
|
184
|
-
Client: receives streaming_progress chunks
|
|
185
|
-
→ Renders new content below existing output
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Consistency Guarantees
|
|
189
|
-
|
|
190
|
-
### What IS Consistent
|
|
191
|
-
- Messages don't duplicate (handled in handleMessageCreated)
|
|
192
|
-
- Streaming chunks are ordered (via session ID subscription)
|
|
193
|
-
- Queue items maintain order (FIFO in server queue map)
|
|
194
|
-
- Tool installations tracked atomically (per-tool in database)
|
|
195
|
-
|
|
196
|
-
### What IS NOT Guaranteed
|
|
197
|
-
- Client queue display and server queue state may briefly desync
|
|
198
|
-
- If connection drops mid-queue, client state becomes stale
|
|
199
|
-
- No explicit confirmation that user message was queued
|
|
200
|
-
- Queue item execution not signaled with explicit event
|
|
201
|
-
|
|
202
|
-
## Recommendations for Further Improvement
|
|
203
|
-
|
|
204
|
-
### Priority 1: Explicit Queue Lifecycle
|
|
205
|
-
Add dedicated broadcast events:
|
|
206
|
-
```javascript
|
|
207
|
-
'message_queued' // Sent when msg added to queue
|
|
208
|
-
'queue_item_executing' // Sent when queue item becomes active
|
|
209
|
-
'queue_item_completed' // Sent when queue item finished
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Priority 2: Atomic State Snapshots
|
|
213
|
-
Periodically broadcast conversation state:
|
|
214
|
-
```javascript
|
|
215
|
-
{
|
|
216
|
-
type: 'conversation_state',
|
|
217
|
-
conversationId,
|
|
218
|
-
state: {
|
|
219
|
-
isStreaming: boolean,
|
|
220
|
-
messageCount: number,
|
|
221
|
-
queueLength: number,
|
|
222
|
-
lastMessageId: string,
|
|
223
|
-
lastUpdate: timestamp
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### Priority 3: Deterministic Client State Machine
|
|
229
|
-
Each conversation has explicit state mode:
|
|
230
|
-
```javascript
|
|
231
|
-
state = {
|
|
232
|
-
mode: 'IDLE' | 'STREAMING' | 'QUEUED',
|
|
233
|
-
messages: [],
|
|
234
|
-
queue: [],
|
|
235
|
-
isTransitioning: boolean // true when queue→execute
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Priority 4: Connection Recovery
|
|
240
|
-
After reconnect, fetch complete conversation state:
|
|
241
|
-
```javascript
|
|
242
|
-
await wsClient.rpc('conv.sync', { id: conversationId })
|
|
243
|
-
// Returns: { messages, queue, isStreaming, chunks }
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
## Testing Matrix
|
|
247
|
-
|
|
248
|
-
| Scenario | Before Fix | After Fix | Status |
|
|
249
|
-
|----------|-----------|-----------|--------|
|
|
250
|
-
| Ctrl+Enter (not streaming) | ✓ Works | ✓ Works | ✓ OK |
|
|
251
|
-
| Ctrl+Enter (streaming) | ✗ Duplicate | ✓ Single queue item | ✓ FIXED |
|
|
252
|
-
| Queue indicator updates | ⚠️ Polling | ⚠️ Polling | ⚠️ Could improve |
|
|
253
|
-
| Steering works | ✗ "Not available" | ✓ Works | ✓ FIXED |
|
|
254
|
-
| Multiple queued items | ⚠️ Order unclear | ⚠️ Order unclear | ⚠️ OK but could confirm |
|
|
255
|
-
| Page reload with queue | ✗ Queue lost | ✓ Persisted | ✓ OK |
|
|
256
|
-
| Network disconnect | ⚠️ State stale | ⚠️ State stale | ⚠️ Could improve |
|
|
257
|
-
|
|
258
|
-
## Files Modified in Latest Session
|
|
259
|
-
|
|
260
|
-
1. **lib/claude-runner.js** - Steering support
|
|
261
|
-
- Changed `supportsStdin: false` → `true`
|
|
262
|
-
- Changed `closeStdin: true` → `false`
|
|
263
|
-
- Removed positional prompt argument
|
|
264
|
-
|
|
265
|
-
2. **static/js/client.js** - Queue display fix
|
|
266
|
-
- Skip optimistic message when streaming
|
|
267
|
-
- Skip confirm/fail handlers for queued messages
|
|
268
|
-
|
|
269
|
-
3. **static/index.html** - Hamburger animation
|
|
270
|
-
- Added `transition: none` to .sidebar
|
|
271
|
-
|
|
272
|
-
4. **fsbrowse/public/style.css** - Dark mode colors
|
|
273
|
-
- Improved hover states
|
|
274
|
-
- Theme-aware modal focus colors
|
|
275
|
-
|
|
276
|
-
## Conclusion
|
|
277
|
-
|
|
278
|
-
The sync-to-display system is now more consistent with the queue display fix and steering support. The architecture handles the primary use cases well, but could benefit from explicit lifecycle events and atomic state snapshots for guaranteed consistency. The current implementation is pragmatic and performant, trading off some guarantees for simplicity and responsiveness.
|
|
279
|
-
|
package/TOOLS-FIX-SUMMARY.md
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# CLI Tools Detection and Agent Dropdown Fixes
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
Three critical issues were identified and fixed in the tools and agent systems:
|
|
5
|
-
1. CLI tools showing as "Not installed" despite being in PATH
|
|
6
|
-
2. Agent dropdown not showing Claude Code
|
|
7
|
-
3. /api/tools endpoint hanging during tool detection
|
|
8
|
-
|
|
9
|
-
## Issues Fixed
|
|
10
|
-
|
|
11
|
-
### Issue 1: CLI Tools Not Detected (lib/tool-manager.js)
|
|
12
|
-
|
|
13
|
-
**Root Cause**: `execSync` was being used but not imported at module level. The code had:
|
|
14
|
-
```javascript
|
|
15
|
-
// BEFORE (broken)
|
|
16
|
-
const { execSync } = require('child_process'); // Inside function
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
This caused "require is not defined" errors in ES modules.
|
|
20
|
-
|
|
21
|
-
**Fix**: Import `execSync` at the top of the file:
|
|
22
|
-
```javascript
|
|
23
|
-
// AFTER (fixed)
|
|
24
|
-
import { spawn, execSync } from 'child_process';
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Changes Made**:
|
|
28
|
-
- Line 1: Added `execSync` to the child_process import
|
|
29
|
-
- checkCliInstalled() now uses the imported execSync directly
|
|
30
|
-
- getCliVersion() now uses the imported execSync directly
|
|
31
|
-
- Reduced version check timeout from 5000ms to 2000ms to prevent hangs
|
|
32
|
-
- Added better error handling for CLI version detection
|
|
33
|
-
|
|
34
|
-
**Impact**: CLI tools (claude, opencode, gemini, kilo, codex) are now properly detected as installed when present in PATH.
|
|
35
|
-
|
|
36
|
-
### Issue 2: /api/tools Endpoint Hanging (server.js)
|
|
37
|
-
|
|
38
|
-
**Root Cause**: The `/api/tools` endpoint was calling `getAllToolsAsync()` which attempted to fetch published versions from npm registry. Some tools like opencode have long-running or hanging --version commands, causing the entire endpoint to hang.
|
|
39
|
-
|
|
40
|
-
**Fix**: Use `Promise.race` with a timeout to return immediately with cached data:
|
|
41
|
-
```javascript
|
|
42
|
-
// Lines 1844-1846
|
|
43
|
-
const tools = await Promise.race([
|
|
44
|
-
toolManager.getAllToolsAsync(true), // skipPublishedVersion=true for fast response
|
|
45
|
-
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 1500))
|
|
46
|
-
]);
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Changes Made**:
|
|
50
|
-
- Added timeout of 1500ms to the API call
|
|
51
|
-
- Pass `skipPublishedVersion=true` to skip network calls during initial detection
|
|
52
|
-
- Fall back to cached tool statuses if timeout occurs
|
|
53
|
-
- Ensures UI remains responsive when fetching tool data
|
|
54
|
-
|
|
55
|
-
**Impact**: `/api/tools` endpoint now responds within 2 seconds instead of hanging indefinitely.
|
|
56
|
-
|
|
57
|
-
### Issue 3: Claude Code Agent Dropdown
|
|
58
|
-
|
|
59
|
-
**Current State**: Claude Code agent SHOULD appear in the dropdown because:
|
|
60
|
-
|
|
61
|
-
1. **Server-side** (server.js lines 461-492):
|
|
62
|
-
- `discoverAgents()` function checks for `claude` command in PATH
|
|
63
|
-
- If found → agent is added with detected path
|
|
64
|
-
- If NOT found → fallback ensures Claude Code is ALWAYS added as npx-launchable (lines 486-488)
|
|
65
|
-
|
|
66
|
-
2. **Agent RPC Handler** (lib/ws-handlers-session.js lines 104-111):
|
|
67
|
-
- `agent.ls` RPC handler returns all discoveredAgents
|
|
68
|
-
- Includes Claude Code from the fallback mechanism
|
|
69
|
-
|
|
70
|
-
3. **Frontend** (static/js/client.js lines 2145-2149):
|
|
71
|
-
- Calls `window.wsClient.rpc('agent.ls')` to fetch agents
|
|
72
|
-
- Populates UI with returned agents
|
|
73
|
-
|
|
74
|
-
**Verification Needed**:
|
|
75
|
-
- Check if browser console shows agent list includes 'claude-code'
|
|
76
|
-
- Verify /api/agents HTTP endpoint returns Claude Code
|
|
77
|
-
- Check if agent.ls RPC message logs show Claude Code being returned
|
|
78
|
-
|
|
79
|
-
## Files Modified
|
|
80
|
-
|
|
81
|
-
1. **lib/tool-manager.js**
|
|
82
|
-
- Line 1: Import execSync from child_process
|
|
83
|
-
- Lines 180-215: Enhanced CLI detection functions
|
|
84
|
-
- Line 208: Reduced timeout for version checks
|
|
85
|
-
- Lines 290, 475: Pass skipPublishedVersion parameter
|
|
86
|
-
|
|
87
|
-
2. **lib/speech.js**
|
|
88
|
-
- Line 47: Removed unused `splitSentences` export (webtalk handles splitting)
|
|
89
|
-
|
|
90
|
-
3. **server.js**
|
|
91
|
-
- Lines 1844-1847: Added Promise.race with timeout for /api/tools
|
|
92
|
-
- Lines 1862-1864: Added timeout error handling with fallback
|
|
93
|
-
|
|
94
|
-
4. **.prd** (Work tracking)
|
|
95
|
-
- Updated with completion status for CLI detection fixes
|
|
96
|
-
|
|
97
|
-
## Testing Checklist
|
|
98
|
-
|
|
99
|
-
- [ ] `claude --version` returns a version number in PATH
|
|
100
|
-
- [ ] GET /api/tools returns installed=true for cli-claude
|
|
101
|
-
- [ ] GET /api/tools completes within 2 seconds
|
|
102
|
-
- [ ] /api/agents includes Claude Code agent
|
|
103
|
-
- [ ] agent.ls RPC message returns Claude Code
|
|
104
|
-
- [ ] Agent dropdown in UI shows Claude Code
|
|
105
|
-
- [ ] Can create conversation with Claude Code agent
|
|
106
|
-
- [ ] No "Not installed" messages for detected tools
|
|
107
|
-
- [ ] Server startup auto-detection logs show CLI tools found
|
|
108
|
-
|
|
109
|
-
## Known Limitations
|
|
110
|
-
|
|
111
|
-
1. **CLI Version Detection**: Some tools (opencode, gemini, kilo) may return 'unknown' version if --version command doesn't return standard semantic version format
|
|
112
|
-
|
|
113
|
-
2. **Timeout Edge Case**: If /api/tools times out, it returns cached data from previous request. New tools won't show until cache expires (30 minutes) or server restarts
|
|
114
|
-
|
|
115
|
-
3. **Fallback Behavior**: Claude Code appears as npx-launchable even if `claude` binary is not in PATH. This allows users to still launch Claude Code via npm.
|
|
116
|
-
|
|
117
|
-
## Next Steps
|
|
118
|
-
|
|
119
|
-
1. Verify agent dropdown shows Claude Code after fixes
|
|
120
|
-
2. Test auto-installation of CLI tools on startup
|
|
121
|
-
3. Verify version detection works for all tools
|
|
122
|
-
4. Test update detection and installation for CLI tools
|