agentgui 1.0.689 → 1.0.691
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/lib/claude-runner.js +4 -0
- package/lib/ws-handlers-conv.js +10 -2
- package/package.json +1 -1
- package/server.js +47 -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/acp-queries.js +0 -182
- 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/lib/claude-runner.js
CHANGED
|
@@ -88,6 +88,10 @@ class AgentRunner {
|
|
|
88
88
|
onRateLimit = null
|
|
89
89
|
} = config;
|
|
90
90
|
|
|
91
|
+
if (process.env.DEBUG === '1') {
|
|
92
|
+
const sp = config.systemPrompt;
|
|
93
|
+
console.error(`[prompt-trace] convId=${config.conversationId} promptType=${typeof prompt} promptLen=${String(prompt).length} prompt0=${String(prompt).slice(0, 100)} sysLen=${sp ? String(sp).length : 0}`);
|
|
94
|
+
}
|
|
91
95
|
const args = this.buildArgs(prompt, config);
|
|
92
96
|
const spawnOpts = getSpawnOptions(cwd);
|
|
93
97
|
if (Object.keys(this.spawnEnv).length > 0) {
|
package/lib/ws-handlers-conv.js
CHANGED
|
@@ -7,7 +7,7 @@ function expandTilde(p) { return p && p.startsWith('~') ? path.join(os.homedir()
|
|
|
7
7
|
|
|
8
8
|
export function register(router, deps) {
|
|
9
9
|
const { queries, activeExecutions, messageQueues, rateLimitState,
|
|
10
|
-
broadcastSync, processMessageWithStreaming, cleanupExecution } = deps;
|
|
10
|
+
broadcastSync, processMessageWithStreaming, cleanupExecution, logError = () => {} } = deps;
|
|
11
11
|
|
|
12
12
|
// Per-conversation queue seq counter for event ordering
|
|
13
13
|
const queueSeqByConv = new Map();
|
|
@@ -179,7 +179,7 @@ export function register(router, deps) {
|
|
|
179
179
|
activeExecutions.set(convId, { pid: null, startTime: Date.now(), sessionId: session.id, lastActivity: Date.now() });
|
|
180
180
|
queries.setIsStreaming(convId, true);
|
|
181
181
|
broadcastSync({ type: 'streaming_start', sessionId: session.id, conversationId: convId, messageId: message.id, agentId, timestamp: Date.now() });
|
|
182
|
-
processMessageWithStreaming(convId, message.id, session.id, content, agentId, model, subAgent).catch(
|
|
182
|
+
processMessageWithStreaming(convId, message.id, session.id, content, agentId, model, subAgent).catch(e => logError('startExecution', e, { convId }));
|
|
183
183
|
return session;
|
|
184
184
|
}
|
|
185
185
|
|
|
@@ -199,6 +199,10 @@ export function register(router, deps) {
|
|
|
199
199
|
const subAgent = p.subAgent || conv.subAgent || null;
|
|
200
200
|
const idempotencyKey = p.idempotencyKey || null;
|
|
201
201
|
const rawContent = p.content;
|
|
202
|
+
if (rawContent !== undefined && typeof rawContent !== 'string') {
|
|
203
|
+
console.warn(`[ws-validation] msg.send content is ${typeof rawContent}: ${JSON.stringify(rawContent).slice(0, 200)}`);
|
|
204
|
+
logError('ws-content-type', new TypeError(`non-string content in msg.send`), { method: 'msg.send', type: typeof rawContent });
|
|
205
|
+
}
|
|
202
206
|
p.content = typeof rawContent === 'string' ? rawContent : (rawContent ? JSON.stringify(rawContent) : '');
|
|
203
207
|
const message = queries.createMessage(p.id, 'user', p.content, idempotencyKey);
|
|
204
208
|
queries.createEvent('message.created', { role: 'user', messageId: message.id }, p.id);
|
|
@@ -225,6 +229,10 @@ export function register(router, deps) {
|
|
|
225
229
|
const conv = queries.getConversation(p.id);
|
|
226
230
|
if (!conv) notFound('Conversation not found');
|
|
227
231
|
const rawContent = p.content || p.message;
|
|
232
|
+
if (rawContent !== undefined && typeof rawContent !== 'string') {
|
|
233
|
+
console.warn(`[ws-validation] msg.stream content is ${typeof rawContent}: ${JSON.stringify(rawContent).slice(0, 200)}`);
|
|
234
|
+
logError('ws-content-type', new TypeError(`non-string content in msg.stream`), { method: 'msg.stream', type: typeof rawContent });
|
|
235
|
+
}
|
|
228
236
|
const prompt = typeof rawContent === 'string' ? rawContent : (rawContent ? JSON.stringify(rawContent) : '');
|
|
229
237
|
const agentId = p.agentId || conv.agentType || conv.agentId || 'claude-code';
|
|
230
238
|
const model = p.model || conv.model || null;
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -309,6 +309,14 @@ const debugLog = (msg) => {
|
|
|
309
309
|
console.error(`[${timestamp}] ${msg}`);
|
|
310
310
|
};
|
|
311
311
|
|
|
312
|
+
const _errLogPath = path.join(os.homedir(), 'logs', 'agentgui-errors.log');
|
|
313
|
+
function logError(op, err, ctx = {}) {
|
|
314
|
+
try {
|
|
315
|
+
const line = JSON.stringify({ ts: new Date().toISOString(), op, msg: err?.message, stack: err?.stack, ...ctx }) + '\n';
|
|
316
|
+
fs.appendFile(_errLogPath, line, () => {});
|
|
317
|
+
} catch (_) {}
|
|
318
|
+
}
|
|
319
|
+
|
|
312
320
|
// Atomic cleanup function - ensures consistent state across all data structures
|
|
313
321
|
function cleanupExecution(conversationId, broadcastCompletion = false) {
|
|
314
322
|
debugLog(`[cleanup] Starting cleanup for ${conversationId}`);
|
|
@@ -586,6 +594,7 @@ async function initializeAgentDiscovery() {
|
|
|
586
594
|
console.log('[AGENTS] Total count:', discoveredAgents.length);
|
|
587
595
|
} catch (err) {
|
|
588
596
|
console.error('[AGENTS] Discovery error:', err.message);
|
|
597
|
+
logError('initializeAgentDiscovery', err);
|
|
589
598
|
}
|
|
590
599
|
}
|
|
591
600
|
|
|
@@ -1269,6 +1278,7 @@ const server = http.createServer(async (req, res) => {
|
|
|
1269
1278
|
.catch(err => {
|
|
1270
1279
|
console.error(`[messages] Uncaught error for conv ${conversationId}:`, err.message);
|
|
1271
1280
|
debugLog(`[messages] Uncaught error: ${err.message}`);
|
|
1281
|
+
logError('processMessageWithStreaming', err, { convId: conversationId });
|
|
1272
1282
|
});
|
|
1273
1283
|
return;
|
|
1274
1284
|
}
|
|
@@ -1777,6 +1787,40 @@ const server = http.createServer(async (req, res) => {
|
|
|
1777
1787
|
return;
|
|
1778
1788
|
}
|
|
1779
1789
|
|
|
1790
|
+
if (pathOnly === '/api/health' && req.method === 'GET') {
|
|
1791
|
+
let dbStatus = { ok: true };
|
|
1792
|
+
try { queries._db.prepare('SELECT 1').get(); } catch (e) { dbStatus = { ok: false, error: e.message }; }
|
|
1793
|
+
const queueSizes = {};
|
|
1794
|
+
for (const [k, v] of messageQueues) queueSizes[k] = v.length;
|
|
1795
|
+
sendJSON(req, res, 200, {
|
|
1796
|
+
uptime: process.uptime(),
|
|
1797
|
+
db: dbStatus,
|
|
1798
|
+
activeExecutionCount: activeExecutions.size,
|
|
1799
|
+
queueSizes,
|
|
1800
|
+
wsClientCount: syncClients.size,
|
|
1801
|
+
memory: process.memoryUsage()
|
|
1802
|
+
});
|
|
1803
|
+
return;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
if (pathOnly === '/api/debug' && req.method === 'GET') {
|
|
1807
|
+
const execSnap = {};
|
|
1808
|
+
for (const [k, v] of activeExecutions) execSnap[k] = { pid: v.pid, startTime: v.startTime, sessionId: v.sessionId, lastActivity: v.lastActivity };
|
|
1809
|
+
const queueSnap = {};
|
|
1810
|
+
for (const [k, v] of messageQueues) queueSnap[k] = { length: v.length, messageIds: v.map(m => m.messageId) };
|
|
1811
|
+
let streamingConvs = [];
|
|
1812
|
+
try { streamingConvs = queries.getConversationsList().filter(c => c.isStreaming).map(c => ({ id: c.id, isStreaming: c.isStreaming })); } catch (_) {}
|
|
1813
|
+
const clientSubs = [];
|
|
1814
|
+
for (const ws of syncClients) clientSubs.push({ clientId: ws.clientId, subs: ws.subscriptions ? [...ws.subscriptions] : [] });
|
|
1815
|
+
let recentErrors = [];
|
|
1816
|
+
try {
|
|
1817
|
+
const raw = fs.readFileSync(_errLogPath, 'utf8');
|
|
1818
|
+
recentErrors = raw.trim().split('\n').slice(-20).map(l => { try { return JSON.parse(l); } catch { return l; } });
|
|
1819
|
+
} catch (_) {}
|
|
1820
|
+
sendJSON(req, res, 200, { activeExecutions: execSnap, messageQueues: queueSnap, streamingConversations: streamingConvs, wsClients: clientSubs, recentErrors });
|
|
1821
|
+
return;
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1780
1824
|
if (pathOnly === '/api/tools' && req.method === 'GET') {
|
|
1781
1825
|
console.log('[TOOLS-API] Handling GET /api/tools');
|
|
1782
1826
|
try {
|
|
@@ -1899,6 +1943,7 @@ const server = http.createServer(async (req, res) => {
|
|
|
1899
1943
|
installCompleted = true;
|
|
1900
1944
|
const error = err?.message || 'Unknown error';
|
|
1901
1945
|
console.error(`[TOOLS-API] Install error for ${toolId}:`, error);
|
|
1946
|
+
logError('toolInstall', err, { toolId });
|
|
1902
1947
|
queries.updateToolStatus(toolId, { status: 'failed', error_message: error });
|
|
1903
1948
|
broadcastSync({ type: 'tool_install_failed', toolId, data: { success: false, error } });
|
|
1904
1949
|
queries.addToolInstallHistory(toolId, 'install', 'failed', error);
|
|
@@ -1958,6 +2003,7 @@ const server = http.createServer(async (req, res) => {
|
|
|
1958
2003
|
updateCompleted = true;
|
|
1959
2004
|
const error = err?.message || 'Unknown error';
|
|
1960
2005
|
console.error(`[TOOLS-API] Update error for ${toolId}:`, error);
|
|
2006
|
+
logError('toolUpdate', err, { toolId });
|
|
1961
2007
|
queries.updateToolStatus(toolId, { status: 'failed', error_message: error });
|
|
1962
2008
|
broadcastSync({ type: 'tool_update_failed', toolId, data: { success: false, error } });
|
|
1963
2009
|
queries.addToolInstallHistory(toolId, 'update', 'failed', error);
|
|
@@ -4095,7 +4141,7 @@ const wsRouter = new WsRouter();
|
|
|
4095
4141
|
|
|
4096
4142
|
registerConvHandlers(wsRouter, {
|
|
4097
4143
|
queries, activeExecutions, messageQueues, rateLimitState,
|
|
4098
|
-
broadcastSync, processMessageWithStreaming, cleanupExecution
|
|
4144
|
+
broadcastSync, processMessageWithStreaming, cleanupExecution, logError
|
|
4099
4145
|
});
|
|
4100
4146
|
|
|
4101
4147
|
console.log('[INIT] About to call registerSessionHandlers, discoveredAgents.length:', discoveredAgents.length);
|
|
@@ -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
|
-
|