comate-cli 0.10.8__tar.gz → 0.10.10__tar.gz
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.
- {comate_cli-0.10.8 → comate_cli-0.10.10}/PKG-INFO +1 -1
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/app.py +0 -19
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui.py +95 -19
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/input_behavior.py +9 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/render_panels.py +4 -1
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/update_check.py +28 -35
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/update_messages.py +43 -78
- {comate_cli-0.10.8 → comate_cli-0.10.10}/docs/startup-performance.md +19 -0
- comate_cli-0.10.10/docs/superpowers/plans/2026-07-07-tui-first-repaint-before-sdk-submit.md +734 -0
- comate_cli-0.10.10/docs/superpowers/plans/2026-07-07-windows-update-manual-rollback.md +928 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/pyproject.toml +1 -1
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_startup_order.py +0 -1
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_send_undo_window.py +90 -1
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_update_check.py +214 -119
- {comate_cli-0.10.8 → comate_cli-0.10.10}/uv.lock +2 -2
- comate_cli-0.10.8/comate_cli/terminal_agent/windows_updater.py +0 -442
- comate_cli-0.10.8/tests/test_windows_updater.py +0 -458
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/08b40bf6a68c85059572f3478db27d848acd36a6e8c6b89fa5173927210e7b53.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/0ff4f2f1382d2c19ca8d86e01ee8b6768b2fa925bdcf1e57829cecc590120371.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/1571cd767eb43ae39534d8f53f60bd56a2a537a64ecf8b5d93ee7556ea4cbb54.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/19ac2280798d9988d4bd8e29952989eabf0749b893d4026bf9786169cd50c659.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/24efc545d3f0b694a02cfa8022b8f93be27e57547a4f0661f608c80d9bc78113.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/3d69373ac48a465a06bd30094e4c28921c1201865c27dc0f012768799351c10b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/46c7def792f8820aff04a0083057d32079d7ccc208e394eb00a440618f4455ba.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/594a10eddaf1ea6344dc62d41af7146f6e52471ccf1ee1fba6e61376c3ba5bce.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/5e4d793a1bc3ae3b2c7fedb39645e04d3bd6a86ceb064ba99746d6164034942d.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/6a28b28d04d8cf003fc6e41560ad05af138aecfdb0f7f9978bf12a1d3b4e353a.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/8e9d29f51d07bd7d9cd02aae2cc12c1bd575f3748f6a2b9065dcad75973c1e90.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/954f324b297d871035343be09391bc7c5e0df38faf3f4a3a92be92685a9ad4e3.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/a58d73b67de68741d8e4e9e7d212a7e98a7db0b864113fbd2b9056b166095c85.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/b44535f54c0d62ce9f9fa3a673ccff0f6d17086dce54787da0f8ab910c2ed1c9.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/b8f6674b359865d1c0880633f552a30210a60d30d2c11370e9ab0457f65f75a3.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/da3d0964cd50a338b3dedc5212ee6d4d045c04629f62a0e948c905c3ec27ab4c.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/dfc071d5c7a17280f23b1875b16a0f38ff61736e5985b2c9e3056f741f17bd5d.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/e12f27ecae32f087ea8696b8061c42facb63a91b2b100568f3602cc2f0b6ce60.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/bash/fe60ed7a2e79c21b81416fa2e77c827ea64df5ba5b6cd343a9b423731dc15b4d.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/glob/dc28800ddef1229e5c0bd125335ab31d85d5f8aba0ff2713d09829671b70f2ec.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/glob/e6fa077dd5e2e19045abf084f97dcfbcbffc1571967a0243ca40ff996d8bc9f2.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/010b7d94484960699c5c28b5d2ea86d53c2d998a78141c75b834409de64bf25c.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0193f8465b3eaba72bb4f4f78d0376ca89a09d96e87bb9b63c4543023c6b5516.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/03edbaec20870710ae8531b002c837e2c092d53ed8b544d05330cf5fd699dcb4.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/09c695b86ba43584b134ed6ee26cbe023f58551e579158cf94790644ad6aaa53.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0b96a0a521f9d4c0a88fc75a2e5f69e4c4b7be8ea5d73599eab390c88d4098d8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0ba5851c04aaa37f25f6b0a37daa3522754d7865e79b3abf0daf8fca54fc07f7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0beb89f407f205d5b2fdb075c98869ffa5db8e2a3687706e06399d3f58a3278f.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0bf5d9171b6ec0a61962ae22ce8109a26abf764c031ddd5c8dcad25c678020ec.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0db7a1bd5eb18329885082bc554f4456a5c254b687c25c2b3611a364634badd8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0dd1a484cf5b506de9a8e85db9c9156e7623bc633c07d8805d83768edf1d1b68.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/0f48a977857dc6fe0658c5341b8b409205bb6391cc458d19d18f06b1c37e3b8c.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1194ded949e902bc25be21bfe63952a98381416bed255dc052b6715ebb81f11e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/134f90a9b26f8bbc6fc602c3a1301623823abec5cb8eb9680ea060bea5d78b07.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1461fb3572a606968e5d9738ec65dfe0cf4616ead5696f2b47dd36dd12cd8346.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/14f7537d8a7090ad8f6531bd9ecfadd9d727f2bf0c620afde878e8765d596cc8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/176241ffb6774d19531593769c50349debb431f8c888f8e4fb46178af6f8f9e6.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/17e25775e4ce9b0fcb34b7af659d7d72f53262b1b59c21190f450c4eda8bb6a2.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1a9cea8b7b788598502df8771b6c03f6b393613e1d911f04959ec59f3b7e9869.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1b2ee53405771f837aa234d5a8d128c3f1fd6f16306ec5c71e30df1a55f0eab8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1c265542a4a6dac9cdc557ba271a9022d5f5bfa044d7ae4201a302ee59517542.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1dd72f0779d1616cc4683de1565d1cc4242dee18987cfe5c9ead6ec445ab952f.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1f0f6484841d5396cfb19f060ada806f54d62594a2a6f81af4ed70d379bdb82e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/1f4854573b520c1a6e0fb4cd8488263f823a61a6867e4c7d92cdce74b4cb4d1b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/200787ede572c7eee4ff7cd579a936b8ab0ecf6f25bb2f6ac89dbd04fdac1ef7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/22fb4c5aa3fea197c71b90824449eca45095da4bd1c7bc76dbfb689abcd5cc49.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/29cd9403e9ab3dac5cc3a95fa0ede278decb57cf7183eaad8e29aed9903aba26.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/2aa8195d533da9ee878d5ff7e7c4574ad9dc54c57e85f0be801d9aa5ba7e9d65.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/2df4412a93598e76038f722e112a5519bbca58e31a27a471346aecf3c5d486b8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/2f04b6777f986f64bbdcdd828eb4a7fa5aa67872fc0d61e891d2af9ec51a6fb8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/3114f2804efe81842b21a85a4bc9eb2ef9f975c28e9220564e6cd2185fed11f7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/3240cf436c636223d89029d2859dc8b8bbc059ea3b8b9a3cdcececb6e75d6da9.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/3a03ca37d32ea15316bb77147116bf8eeaa55ea255b7819f1b6350e80cd38481.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/4274f27741d2a37b85ea968754ede69180f59300532f1c8e2c8bcc6cb57d93f8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/42c75defbb53e48d8521927f945412100cd487ad492ee1a57a57df3f64831096.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/435267ab04edbf55d21c169170faf8eca36f065abb282e9fd731cbf500763757.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/448d3ded3b00200238f3782ed0fb5fbe30166139308cfa6cd3e31867f3cf941e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/449ac499b090311eb8b5594f7646d84f67e9da1fad4ad968b772d4d8ab404141.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/45f0d5dda63863f163106fbf234ba98c6b2ba88ee63c308b922b6b18b9d6d179.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/48a5ea12ce666954aeb22afab26d199f9ceb7c5db99531077bed0298837a4777.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/4d6a33d9eaeb38ed7558b7e0162b399580b211cedefdd2a4126b6363b0616b9a.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/54822f93bd0f279a2dc67f57f4b49a549938346f606c3ea62f76573ed7c19729.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5592b8582682415bf399fd16bc4e354a8af6979acc7ee5f7d8161b6a2a090a6e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5697b946b47f9c271273606510662d25c579a1c3cd66a3f73f845178626adf8c.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/571cb6737be8d74e05976da2ba022ea1a5e191bdfeafa40b22834b61aca984ec.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/592ea99ad61dc416029a0a68a9ea47c765d706d7ffbae9cd697405da2dd8a9ec.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5c0df9216c4f53dc1c2d786266a137dbe326ab4363ddc40307fb21a00a9f94ac.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5ce22f90e1ec6217b95997fad94cc926c12ffdd6f3ef3e278bf0b89ecbcc6d62.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5dc1de7af87cb4091467bc5f0265745e602853afdc3863c267b6e90a26f412c9.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/5fff0b4efc09b785f1ee5dee2e5d7ad4e247bdb9c93f41b5814c9db1c04cb8d7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6249573679ee1a300a25baec32ea72ee34eeffb45f73f676cc0b0f0d11a2d31d.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6258f866ee46c82b3b4584aafd49625b86793f1324318970124c849013397865.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/640e6e9edd64f8ed1f4928e9af1f9890c17386cdbc86d329cc2256628e7c50bb.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/643717af84fd6f09302e9656f696f853b85dc10bdd144cc4b3ea064c0ee39056.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/65ed38867aa3162db6899d4f1b76907655d6af699cff567e2b776ec997f65b9e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/67196d9894f03b07594d654caf016388b13842a7b3d11466a7b7532727d11bfa.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6c6f4e1f9e1d09af3d8a7c10dd243df92781e6ebbbf4f1215c189d74b7a16e01.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6cfadf5d61982d2bb941416d5fefc22202df0bd4dde584321be50716843f2a4e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6dbade43d62180ae1367c70744d985615fe64768efba5c77317ea4c349aa7958.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/6e20e5b86fbf934bbe180ab38a81e259006f0fc43b4d650820994dea3ead8075.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/705ec2d0ab89a76fbc02a18d23d8bf10b26eebd5144911cb398e46e2374524cf.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/73f1fdec89c242b1c28093dcc12e830a4467c5c5197286879a25feda693b3ede.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/745e2b17c9b412d9d89d380626ceb2eb088b2d24e1a4f26be948061a8daaccdd.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/74bf1dc40d9b884a5312567e5bc923389e9bcd10e9efa1eb87a01c50b1e11ef1.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/758f6bd9fa04989fe968fb80567eb4a4d028e9dd6ca9c482c0a919a7c9da6dad.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/762dfb3969ac05cfd8ed58ea34abea8b4e4756ec5c8ef7496e49bb6f824439af.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/7880b26ed67f9abd746b4e5c7ccc009f97a16cc5245b4fb04e9e51faf2e99b43.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/7b530ebb0d7be5cb364886c326ac09fedb208520170ec424c0d66f2a049cd735.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/7d4e0f51f0fa21846dfda5ceebb79cf53d0e8abf1b2f86ecd09ddf06f85cd3bc.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/7d79d72b0ff97ae7703118b1c3edc22a3e9aad968baaeb1210281e1b3e0fdf75.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/81d4cf35489f009f64aba1f01c0a9c73ac256391d5369dbbae2b3f92c912afb0.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/89124ab34d06feebcf91d5fa7fd8d3f36493f0d62ae79b0f339f87a229333a3b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/8a1456d96d430228501f6c305ba67912312bfdd48b2841e2456160a02498ea5b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/8bc79492c38d7124f4214f0437350fb1cfadaf6635bc4391c69fe64c6e8f6096.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/8c95072ee427abdb9a07444bf26dc78e72cf93ed9e898d77dd9aa643f6f5b913.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/98060d6195be5fb98d6098eb947853a25a305bce1ebf5a4218ffb791379b9dc6.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/98b2832dd79c7972eb441b3102f1f6aa40ccb867d7771ec238142564a3b4a117.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/98b76a32c3a05f7d91b8b81518f28b613f7ccb373575858fd6aa2711ddbc382e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/9a5fd2d8be3b1e8ef2343f9a19bd75adba3687b2cb8234ee341d6cdc3ab1f361.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/9c80158f162aadb87f84195c4496a1c24f68ceca3535852835de9cf4e428d028.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/a9594b8f4f25e5b378fcc883960fa7afb2dea9d80851cb5d52f18d856be95219.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/abacaab899684c1677f97720dcfc4a6c1fbf98d2cfa44e25f040959586ccaa20.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/ac65e45db9f2c51a484173eb31b907c1cb007c5cacca21396790f5345968ca72.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/ac8641710e4c96567edad6364d218a08630ff20af9f075f61c20d013f9369648.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/ad798be6fa338bd3ee7fc49048192e39d3b2b78837051208815b817e5ca96793.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/b04c0955b68f788125018525e308e82987ada00d3943e21cb159f577319ccf11.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/b1b9c6d1eefe14c5076aa214fe4f98242f99ed9b146214d0305224539d8e78a1.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/b39bb289db5f9e4f31c67766f5e08333d10f384a2d5f6b71fb44522bc4f17f80.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/b64736bbdd8fe7ca1ff2ef98558f16f145ca437255ccebca44bf1041b0afbd55.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/b898cd80aa00ebdfda4ef314a4e245e62ee96c21935a7f332243a67b0072d1a0.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/c1a4508b9a74b3d1649f25dbd474780e6212ced036bbca6b4aac06d324ff10e9.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/c3c33582bb37fb71235e9d0fd2b8d2cc8c926cfcb014261356ea917db6417ebd.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/c63907ae1cb41e59de75df3d6e0dff27db2ce2434cac5f283a428e4fd9bee301.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/d2402b2d42c975305d4866353935ce285eb67ff7f2a2d74ee9be559d022c86f6.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/d4e8e439058ef24fb0671ee6674a5b854c17e0b93b012d2dbe8ed85928afe560.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/d8c8f51da7a2bc8977320248883adabe9a4d9da131e99f7dfe18a9c826b1c8b1.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/dbd79a71f323da5dc1570d5c8d6b99e73b642128697b6c51ab240379fa74f763.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/de09b36cc3fd06274fcdbfc7d431f170afe40b4fa8ddd5c0a281581ee03eabec.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/dfd45c97a1da7d27da6790c1b24048f584ed4f831e971cf3f4c366b7d8687980.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/e138fb7f4303433003aeeaf67b15d783b253696d3d24fd7dfacc50f619db04fd.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/e1ca31c715894314164641ba9d80dc13f7e8e146e8f77a995bc3650057ee3ba3.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/e6f0fb5f2688faeaa4875724c32f27e79d8a9710bbb91d2a950b84b3481fc374.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/e707578cd4b2132eae2e3bdfa918555c2a8f1f4ac52fd6dbc6fc9a347c44221b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/ea0fc86903a5bd1f02832cc3eed4446d55e16dc7df0298c5d74afa56a89a8ca7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/eab81978291f4725b9433192c5b7f4b5409cdcdeb80ffab9884c79ef230bdcdd.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f04828b2b54922581d7cde5351807a457896b2940fd748e8d706fd5dc4bed971.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f04b4f70fe5292dc485164699342c03f3cf4715ba0d5efa815cb7a332dd78c0b.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f2012bd41aa48cd2e3f56611f32b041bd41863b681a79d5ff5f515a97e7e1ddc.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f35c437708355261ca868cf38ade97384e86f24de9aab20849113dc78eb8564c.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f638dfe4edbde834bd968f4d479c1c535dff1dfac10f3e003ec8673d5eca5864.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/f916ed291897b4afb5f8a55f5e333a53f11540e2ade24f691a7828885aa77a32.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/fa3b737ee93d45bfff6e78245a5ecad2476dc7010c75c772abc1c272cddae072.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/fd1133b3a420133590ffb1c050a65477a4751902ca9b832db1c23a6fb90200b8.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/fe3df7b68f7041d210336363f5b11faf963427dbcf4027172e19db05f7b24fa1.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/grep_content/ff6b896f93f2ac018a3af519be3001d1e4c8ca6ef9ae3e051aa646b409b6773f.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/index.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/ls/4f2cd109869e06f70f28f7aaaa3163fea4731bbb92dc4da8ac25177d6f122f87.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/ls/768197391db12061fb74d56cad07e9331db0bd832503b5e40be76b49208a111a.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/ls/a560ae7492ac913282b703abd48897905727acc058d0f9346b17d450f32e1a8a.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/01f0c4c39cc01ec7d59077fa8bfca183cbd6c93d0a7083261f228badca115eba.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/03079608ffe5b120094798aababb67671a20f8466c0197044eacaea56fa12d30.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/08e5d1cdde9e2d6dff5435ee87c6710470709d83c271185eaaaa6d652068d80e.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/10f74765725e10bd94d92eb25cea495ea8cb9d9151397b05b200ed44a852d882.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/3faa3ddc36161e84da99e18707d61b7ffbbbeb8217c28a55a027134f8def5d17.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/45cd4ad764e19e3fc0481b8d8649c235ae51634eb41da0806f9f00ab1bdb640d.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/4fdacfc564ff558dd602f672edfbb4a72494d8e3c8937bcf0a3d15e085c4a0b7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/50eb11fb5aa96e54b2a7e68c0b9278ec3c07d222bad92270f4a51df58ca69e03.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/5a1f18c61191f6b4c1635363748a2aca49ad2183f046035728b5c23ee3df1123.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/72718c187cf24910d3c21d7e719e004efa27b4f5d7315bbe2b9a33e2494cc0f9.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/7fa851f7100b6e3e652604de11be2767b7a679aea40e941b0b1218478e5935ed.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/9d3ace7b725f6aa5809ca4bc298c5ac3d022cb92c29684c7709d63c9c5fd2ad4.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/dbeea3cc8bd22fdb703675e202063e7f4ce21ef00c5c83f74268cd6328ad912d.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/tool_result/ea66ecb02621262c26d0368c108d2f2f94e2d1f75dea6b38bf958c5bdbaa2ee7.txt +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/2669c40a92ce6395790ae997503be646bdc3af4a49f799b38d8380e5ecd1e015.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/5701edea87e370ce51349413bcba507833f48f2ad7337eef3deccc82c7d45a8d.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/5c0eeec3d9ab0a6881d12ebd5a95b6b71b90d47640e38c914232d75704332f54.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/80baa6870df61f51b68fadde829aa2ab889fd487f8a8171db36ea3b67ded24db.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/915acd44f3846631527a3cd62e81d9908bb7e8769b970208ffa3326c65df8778.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/a758c9f6242610e875e36aed11e99ac337359cbe512df15db6544504fa9e68b8.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/artifacts/webfetch/eca7d820f7461f58ee9b2b1e931842de54cd1ec023eca7a27e3bfb387efc6aa2.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/scheduled_prompts.json +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/SKILL.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/html2pptx.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/mce/mc.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/pack.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/unpack.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/validate.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/validation/base.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/validation/docx.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/validation/pptx.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml/scripts/validation/redlining.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/references/ooxml.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/scripts/html2pptx.js +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/scripts/inventory.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/scripts/rearrange.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/scripts/replace.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.agent/skills/powerpoint/scripts/thumbnail.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/.gitignore +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/CHANGELOG.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/CONTEXT.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/README.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/__main__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/distribution.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/main.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/mcp_cli.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/animations.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/approval_bridge.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/assistant_render.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/builtin_commands/.keep +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/builtin_commands/implement-plan.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/builtin_commands/learn.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/codenames.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/config/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/config/model.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/config/picker.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/config/picker_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/config/store.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/env_utils.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/error_display.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/event_renderer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/figures.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/file_ref_hint.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/fragment_utils.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/goal_edit_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/goal_resume_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/history_printer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/input_geometry.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/logging_adapter.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/logo.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/markdown_render.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/mention_completer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/message_style.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/models.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/path_context_hint.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/operation_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/preflight.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/preflight_wizard.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/print_mode.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/question_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/recap/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/recap/controller.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/resume_picker.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/resume_preview.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/resume_selector.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/approval.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/options.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/protocol.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/serde.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/server.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/session_host.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/stdin_reader.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc/stdio.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/selection_menu.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/skill_slash_input.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/slash_commands.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/startup.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/startup_profile.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/status_bar.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/statusline/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/statusline/model.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/statusline/picker.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/statusline/picker_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/statusline/store.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/text_effects.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/theme.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tips.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_approval_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_result_formatters.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_result_store.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_result_viewer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tool_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/transcript_viewer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/btw_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-comate/.gitignore +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-comate/comate_cli-0.7.10-py3-none-any.whl +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-comate/comate_cli-0.7.10.tar.gz +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-hico/.gitignore +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-hico/hico_cli-0.7.17-py3-none-any.whl +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/dist-hico/hico_cli-0.7.17.tar.gz +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/docs/cli-rpc-stdio-guide.md +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_model.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_picker_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_picker_ui.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_roundtrip.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_store_load.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/config/test_store_save.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/conftest.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/fixtures/fake_mcp_misbehaving_stdout.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/recap/test_idle_recap_controller.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/recap/test_recap_history_rendering.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/recap/test_tui_idle_recap_integration.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/statusline/__init__.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/statusline/test_model.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/statusline/test_picker_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/statusline/test_store.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_animations_styles.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_animator_shuffle.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_mcp_preload.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_preflight_gate.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_print_mode.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_profile_threading.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_pty_smoke.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_shutdown.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_startup_latency.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_token_cost_config.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_app_usage_line.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_approval_bridge.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_btw_slash_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_busy_slash_gating.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_cli_project_root.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_compact_command_semantics.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_completion_context_activation.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_completion_status_panel.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_context_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_custom_slash_commands.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_discover_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_distribution_contract.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_errors_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_approval_wait.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_boundary.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_e2e.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_log_boundary.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_log_queue.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_stream_staging.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_streaming.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_tool_args_progress.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_event_renderer_tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_file_ref_hint.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_format_error.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_goal_edit_handlers.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_goal_edit_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_goal_resume_tui.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_goal_resume_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_goal_slash_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_handle_error.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_drain_throttle.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_printer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_printer_log.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_printer_styles.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_printer_subtitle_position.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_printer_tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_sync.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_history_sync_tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_import_weight.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_input_behavior.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_input_history.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_installed_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_interrupt_exit_semantics.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_layout_coordinator.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_logging_adapter.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_logo.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_main_args.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_main_args_yolo.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_main_profile_entry.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_markdown_render.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_marketplaces_tab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_mcp_cli.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_mcp_slash_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_mention_completer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_menu_cursor_unification.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_message_style.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_model_switch_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_no_raw_colors.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_path_context_hint.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_permission_mode_cycle.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_plugin_operation_state.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_plugin_slash_commands.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_plugin_tui_components.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_preflight.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_preflight_copilot.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_pty_output_integrity.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_question_key_bindings.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_question_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_resume_picker.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_resume_preview.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_resume_selector.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rewind_command_semantics.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_approval.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_options.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_protocol.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_serde.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_server_methods.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_session_host.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_stdin_reader.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_rpc_stdio_transport.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_selection_menu.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_session_query_token_summary.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_shutdown_noise_guard.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_shutdown_noise_integration.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_skill_slash_input.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_skills_slash_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_slash_argument_hint.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_slash_clear.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_slash_completer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_slash_registry.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_startup_import_budget.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_startup_profile.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_status_bar.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_status_bar_transient.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_stream_staging_panel.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_style_class_coverage.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_task_panel_format.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_task_panel_key_bindings.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_task_panel_rendering.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_task_poll.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_theme.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tips.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_approval_key_bindings.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_approval_tui.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_approval_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_fold_panel.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_result_formatters.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_result_store.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_result_viewer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_result_viewer_key_bindings.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_view.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tool_view_styles.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_transcript_viewer.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_transcript_viewer_tool_fold.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_builtin_slash_chain.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_elapsed_status.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_esc_queue.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_llm_retry_panel.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_local_interactive_barrier.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_mcp_init_gate.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_paste_newline_guard.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_paste_placeholder.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_provider_error_shield.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_queue_preview.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_queue_sdk_source.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_scheduled_fire_log.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_split_invariance.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_startup_latency.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_team_messages.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_thinking_display.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_tool_result_registry_lifecycle.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_tui_window_too_small_fallback.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_usage_command.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_wellformed_terminal_input.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tests/test_wrap_user_text.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tools/logo_lab.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tools/nico_preview.py +0 -0
- {comate_cli-0.10.8 → comate_cli-0.10.10}/tools/startup_bench.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: comate-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.10
|
|
4
4
|
Summary: Comate terminal CLI built on comate-agent-sdk
|
|
5
5
|
Project-URL: Homepage, https://github.com/AndyLee1024/agent-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/AndyLee1024/agent-sdk
|
|
@@ -105,23 +105,6 @@ async def _handle_update_on_launch(
|
|
|
105
105
|
return False
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
def _show_startup_update_result(target: UpdateTarget) -> None:
|
|
109
|
-
"""Display a detached updater result file if one exists."""
|
|
110
|
-
try:
|
|
111
|
-
from comate_cli.terminal_agent.windows_updater import (
|
|
112
|
-
consume_update_result,
|
|
113
|
-
format_update_result_message,
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
result = consume_update_result(target.package)
|
|
117
|
-
if result is None:
|
|
118
|
-
return
|
|
119
|
-
style = "green" if result.status == "success" else "yellow"
|
|
120
|
-
console.print(f"[{style}]{format_update_result_message(result, target=target)}[/]")
|
|
121
|
-
except Exception:
|
|
122
|
-
logger.debug("startup update result display failed", exc_info=True)
|
|
123
|
-
|
|
124
|
-
|
|
125
108
|
async def _handle_background_update_on_launch(
|
|
126
109
|
info: UpdateInfo,
|
|
127
110
|
*,
|
|
@@ -788,8 +771,6 @@ async def run(
|
|
|
788
771
|
return
|
|
789
772
|
|
|
790
773
|
if interactive:
|
|
791
|
-
_show_startup_update_result(update_target)
|
|
792
|
-
|
|
793
774
|
_check_update_func, get_pending_update_prompt_info = _import_update_check_core()
|
|
794
775
|
pending_info = get_pending_update_prompt_info(target=update_target)
|
|
795
776
|
if pending_info is not None:
|
|
@@ -10,7 +10,7 @@ import logging
|
|
|
10
10
|
import random
|
|
11
11
|
import time
|
|
12
12
|
from collections.abc import Callable
|
|
13
|
-
from contextlib import suppress
|
|
13
|
+
from contextlib import nullcontext, suppress
|
|
14
14
|
from dataclasses import dataclass
|
|
15
15
|
from pathlib import Path
|
|
16
16
|
from typing import Any
|
|
@@ -48,6 +48,7 @@ from comate_agent_sdk.agent.events import (
|
|
|
48
48
|
from comate_agent_sdk.agent.recap import generate_recap
|
|
49
49
|
from comate_agent_sdk.agent.goal_state import GoalStatus
|
|
50
50
|
from comate_agent_sdk.agent.queue_types import MessageOrigin
|
|
51
|
+
from comate_agent_sdk.utils.first_turn_profile import FirstTurnProfiler
|
|
51
52
|
|
|
52
53
|
from comate_cli.terminal_agent.animations import (
|
|
53
54
|
DEFAULT_STATUS_PHRASES,
|
|
@@ -232,6 +233,7 @@ class TerminalAgentTUI(
|
|
|
232
233
|
self._session = session
|
|
233
234
|
self._approval_bridge = approval_bridge
|
|
234
235
|
self._yolo = yolo
|
|
236
|
+
self._first_turn_profiler = FirstTurnProfiler.from_env(logger=logger).child("tui")
|
|
235
237
|
self._status_bar = status_bar
|
|
236
238
|
try:
|
|
237
239
|
self._status_bar.set_mode(self._current_permission_mode())
|
|
@@ -275,6 +277,7 @@ class TerminalAgentTUI(
|
|
|
275
277
|
self._compact_cancel_requested = False
|
|
276
278
|
self._pending_exit_after_compact_cancel = False
|
|
277
279
|
self._queued_display_by_message_id: dict[str, str] = {}
|
|
280
|
+
self._submitted_queue_preview_suppressed_ids: set[str] = set()
|
|
278
281
|
self._waiting_for_input = False
|
|
279
282
|
self._pending_questions: list[dict[str, Any]] | None = None
|
|
280
283
|
self._ui_mode = UIMode.NORMAL
|
|
@@ -1351,17 +1354,20 @@ class TerminalAgentTUI(
|
|
|
1351
1354
|
submit_text: str,
|
|
1352
1355
|
display_text: str,
|
|
1353
1356
|
) -> None:
|
|
1357
|
+
self._first_turn_mark("enter_staging.start")
|
|
1354
1358
|
if self._staging_payload is not None:
|
|
1355
1359
|
if bool(getattr(self, "_staging_submitted", False)):
|
|
1356
1360
|
self._flush_staging_to_scrollback()
|
|
1357
1361
|
else:
|
|
1358
1362
|
self._commit_staging()
|
|
1359
1363
|
|
|
1364
|
+
with self._first_turn_span("enter_staging.compute_file_ref_hints"):
|
|
1365
|
+
file_ref_hints = tuple(self._renderer.compute_file_ref_hints(display_text))
|
|
1360
1366
|
self._staging_payload = _StagedMessagePayload(
|
|
1361
1367
|
raw_text=raw_text,
|
|
1362
1368
|
submit_text=submit_text,
|
|
1363
1369
|
display_text=display_text,
|
|
1364
|
-
file_ref_hints=
|
|
1370
|
+
file_ref_hints=file_ref_hints,
|
|
1365
1371
|
)
|
|
1366
1372
|
self._staging_deadline = None
|
|
1367
1373
|
self._staging_recallable = True
|
|
@@ -1378,6 +1384,7 @@ class TerminalAgentTUI(
|
|
|
1378
1384
|
self._schedule_background(self._animation_controller.start())
|
|
1379
1385
|
self._render_dirty = True
|
|
1380
1386
|
self._invalidate()
|
|
1387
|
+
self._first_turn_mark("enter_staging.done")
|
|
1381
1388
|
|
|
1382
1389
|
def _recall_latest_turn_after_interrupt(self) -> bool:
|
|
1383
1390
|
if not bool(getattr(self, "_pending_latest_recall_on_interrupt", False)):
|
|
@@ -1456,10 +1463,13 @@ class TerminalAgentTUI(
|
|
|
1456
1463
|
return False
|
|
1457
1464
|
|
|
1458
1465
|
def _commit_staging(self) -> bool:
|
|
1466
|
+
self._first_turn_mark("commit_staging.start")
|
|
1459
1467
|
payload = self._staging_payload
|
|
1460
1468
|
if payload is None:
|
|
1469
|
+
self._first_turn_mark("commit_staging.no_payload")
|
|
1461
1470
|
return False
|
|
1462
1471
|
if bool(getattr(self, "_staging_submitted", False)):
|
|
1472
|
+
self._first_turn_mark("commit_staging.already_submitted")
|
|
1463
1473
|
return False
|
|
1464
1474
|
|
|
1465
1475
|
# 不在此处清除 staging — 延迟到 _drain_history_async 的 run_in_terminal
|
|
@@ -1473,19 +1483,38 @@ class TerminalAgentTUI(
|
|
|
1473
1483
|
self._render_dirty = True
|
|
1474
1484
|
self._invalidate()
|
|
1475
1485
|
self._schedule_background(self._queue_staged_busy_message(payload))
|
|
1486
|
+
self._first_turn_mark("commit_staging.scheduled_busy_queue")
|
|
1476
1487
|
else:
|
|
1477
1488
|
self._staging_deadline = None
|
|
1478
1489
|
self._staging_recallable = False
|
|
1479
1490
|
self._staging_submitted = True
|
|
1480
1491
|
self._schedule_background(
|
|
1481
|
-
self.
|
|
1492
|
+
self._submit_staged_user_message_after_first_repaint(
|
|
1482
1493
|
payload.submit_text,
|
|
1483
1494
|
display_text=payload.display_text,
|
|
1484
1495
|
defer_user_seed=True,
|
|
1485
1496
|
)
|
|
1486
1497
|
)
|
|
1498
|
+
self._first_turn_mark("commit_staging.scheduled_submit")
|
|
1499
|
+
self._first_turn_mark("commit_staging.done")
|
|
1487
1500
|
return True
|
|
1488
1501
|
|
|
1502
|
+
async def _submit_staged_user_message_after_first_repaint(
|
|
1503
|
+
self,
|
|
1504
|
+
text: str,
|
|
1505
|
+
*,
|
|
1506
|
+
display_text: str | None,
|
|
1507
|
+
defer_user_seed: bool,
|
|
1508
|
+
) -> None:
|
|
1509
|
+
self._first_turn_mark("submit_staged.yield_for_first_repaint.start")
|
|
1510
|
+
await asyncio.sleep(0)
|
|
1511
|
+
self._first_turn_mark("submit_staged.yield_for_first_repaint.done")
|
|
1512
|
+
await self._submit_user_message(
|
|
1513
|
+
text,
|
|
1514
|
+
display_text=display_text,
|
|
1515
|
+
defer_user_seed=defer_user_seed,
|
|
1516
|
+
)
|
|
1517
|
+
|
|
1489
1518
|
async def _queue_staged_busy_message(self, payload: _StagedMessagePayload) -> None:
|
|
1490
1519
|
try:
|
|
1491
1520
|
message_id = await self._session.send(payload.submit_text)
|
|
@@ -1588,10 +1617,12 @@ class TerminalAgentTUI(
|
|
|
1588
1617
|
defer_user_seed: bool = False,
|
|
1589
1618
|
allow_latest_recall_on_interrupt: bool = True,
|
|
1590
1619
|
) -> None:
|
|
1620
|
+
self._first_turn_mark("submit_user_message.start")
|
|
1591
1621
|
if self._busy:
|
|
1592
1622
|
self._renderer.append_system_message(
|
|
1593
1623
|
"A task is currently running. Please wait.", severity="error"
|
|
1594
1624
|
)
|
|
1625
|
+
self._first_turn_mark("submit_user_message.rejected_busy")
|
|
1595
1626
|
return
|
|
1596
1627
|
|
|
1597
1628
|
if self._ui_mode == UIMode.QUESTION:
|
|
@@ -1601,6 +1632,7 @@ class TerminalAgentTUI(
|
|
|
1601
1632
|
self._interrupt_requested_at = None
|
|
1602
1633
|
|
|
1603
1634
|
self._set_busy(True)
|
|
1635
|
+
self._first_turn_mark("submit_user_message.busy_set")
|
|
1604
1636
|
self._allow_latest_recall_on_interrupt = allow_latest_recall_on_interrupt
|
|
1605
1637
|
self._run_start_time = time.monotonic()
|
|
1606
1638
|
self._waiting_for_input = False
|
|
@@ -1628,29 +1660,42 @@ class TerminalAgentTUI(
|
|
|
1628
1660
|
)
|
|
1629
1661
|
self._last_turn_user_preview = preview_text
|
|
1630
1662
|
self._refresh_layers()
|
|
1663
|
+
self._first_turn_mark("submit_user_message.layers_refreshed")
|
|
1631
1664
|
|
|
1632
1665
|
# 启动提交动画
|
|
1633
1666
|
await self._animation_controller.start()
|
|
1667
|
+
self._first_turn_mark("submit_user_message.animation_started")
|
|
1634
1668
|
|
|
1635
1669
|
# @path context hint injection
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1670
|
+
with self._first_turn_span("submit_user_message.path_context_hint"):
|
|
1671
|
+
try:
|
|
1672
|
+
path_hint_source = (
|
|
1673
|
+
text.provider_content
|
|
1674
|
+
if isinstance(text, RenderedAuthoredTurnInput)
|
|
1675
|
+
else text
|
|
1676
|
+
)
|
|
1677
|
+
hint = (
|
|
1678
|
+
build_path_context_hint(path_hint_source, Path.cwd())
|
|
1679
|
+
if isinstance(path_hint_source, str)
|
|
1680
|
+
else None
|
|
1681
|
+
)
|
|
1682
|
+
if hint is not None:
|
|
1683
|
+
self._session._agent._context.add_system_reminder_message(hint)
|
|
1684
|
+
except Exception:
|
|
1685
|
+
logger.debug("path context hint injection failed", exc_info=True)
|
|
1651
1686
|
|
|
1652
1687
|
try:
|
|
1653
|
-
|
|
1688
|
+
with self._first_turn_span("submit_user_message.session_send"):
|
|
1689
|
+
message_id = await self._session.send(text)
|
|
1690
|
+
suppressed_ids = getattr(
|
|
1691
|
+
self,
|
|
1692
|
+
"_submitted_queue_preview_suppressed_ids",
|
|
1693
|
+
None,
|
|
1694
|
+
)
|
|
1695
|
+
if not isinstance(suppressed_ids, set):
|
|
1696
|
+
suppressed_ids = set()
|
|
1697
|
+
self._submitted_queue_preview_suppressed_ids = suppressed_ids
|
|
1698
|
+
suppressed_ids.add(str(message_id))
|
|
1654
1699
|
except Exception as exc:
|
|
1655
1700
|
logger.exception("send failed")
|
|
1656
1701
|
await self._handle_error(exc)
|
|
@@ -1674,6 +1719,17 @@ class TerminalAgentTUI(
|
|
|
1674
1719
|
QueueDirtyReason.CANCELLED,
|
|
1675
1720
|
QueueDirtyReason.CLEARED,
|
|
1676
1721
|
}:
|
|
1722
|
+
suppressed_ids = getattr(
|
|
1723
|
+
self,
|
|
1724
|
+
"_submitted_queue_preview_suppressed_ids",
|
|
1725
|
+
None,
|
|
1726
|
+
)
|
|
1727
|
+
if isinstance(suppressed_ids, set):
|
|
1728
|
+
if event.reason is QueueDirtyReason.CLEARED:
|
|
1729
|
+
suppressed_ids.clear()
|
|
1730
|
+
else:
|
|
1731
|
+
for message_id in event.message_ids:
|
|
1732
|
+
suppressed_ids.discard(str(message_id))
|
|
1677
1733
|
for message_id in event.message_ids:
|
|
1678
1734
|
self._queued_display_by_message_id.pop(
|
|
1679
1735
|
str(message_id),
|
|
@@ -1681,8 +1737,15 @@ class TerminalAgentTUI(
|
|
|
1681
1737
|
)
|
|
1682
1738
|
self._clear_queued_admission_busy_if_stale()
|
|
1683
1739
|
if event.reason is QueueDirtyReason.CONSUMED:
|
|
1740
|
+
suppressed_ids = getattr(
|
|
1741
|
+
self,
|
|
1742
|
+
"_submitted_queue_preview_suppressed_ids",
|
|
1743
|
+
None,
|
|
1744
|
+
)
|
|
1684
1745
|
consumed_human_displays: list[str] = []
|
|
1685
1746
|
for message_id, origin in zip(event.message_ids, event.origins):
|
|
1747
|
+
if isinstance(suppressed_ids, set):
|
|
1748
|
+
suppressed_ids.discard(str(message_id))
|
|
1686
1749
|
if origin is not MessageOrigin.HUMAN:
|
|
1687
1750
|
continue
|
|
1688
1751
|
display_text = self._queued_display_by_message_id.pop(
|
|
@@ -1919,6 +1982,19 @@ class TerminalAgentTUI(
|
|
|
1919
1982
|
|
|
1920
1983
|
task.add_done_callback(_done)
|
|
1921
1984
|
|
|
1985
|
+
def _first_turn_mark(self, phase: str) -> None:
|
|
1986
|
+
profiler = getattr(self, "_first_turn_profiler", None)
|
|
1987
|
+
mark = getattr(profiler, "mark", None)
|
|
1988
|
+
if callable(mark):
|
|
1989
|
+
mark(phase)
|
|
1990
|
+
|
|
1991
|
+
def _first_turn_span(self, phase: str) -> Any:
|
|
1992
|
+
profiler = getattr(self, "_first_turn_profiler", None)
|
|
1993
|
+
span = getattr(profiler, "span", None)
|
|
1994
|
+
if callable(span):
|
|
1995
|
+
return span(phase)
|
|
1996
|
+
return nullcontext()
|
|
1997
|
+
|
|
1922
1998
|
def _start_mention_cache_warmup(self) -> None:
|
|
1923
1999
|
mention_completer = getattr(self, "_mention_completer", None)
|
|
1924
2000
|
start_warmup = getattr(mention_completer, "start_deep_cache_warmup", None)
|
{comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/input_behavior.py
RENAMED
|
@@ -20,6 +20,9 @@ from comate_cli.terminal_agent.tui_parts.ui_mode import UIMode
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class InputBehaviorMixin:
|
|
23
|
+
def _first_turn_mark(self, phase: str) -> None:
|
|
24
|
+
del phase
|
|
25
|
+
|
|
23
26
|
def _sync_local_interactive_ui_barrier(self) -> None:
|
|
24
27
|
return
|
|
25
28
|
|
|
@@ -454,15 +457,19 @@ class InputBehaviorMixin:
|
|
|
454
457
|
return True
|
|
455
458
|
|
|
456
459
|
def _submit_from_input(self) -> None:
|
|
460
|
+
self._first_turn_mark("input.submit_from_input.start")
|
|
457
461
|
if self._ui_mode != UIMode.NORMAL:
|
|
462
|
+
self._first_turn_mark("input.submit_from_input.non_normal_mode")
|
|
458
463
|
return
|
|
459
464
|
|
|
460
465
|
raw_text = self._input_area.text
|
|
461
466
|
display_text, submit_text = self._resolve_submit_texts(raw_text)
|
|
462
467
|
if not submit_text.strip():
|
|
463
468
|
if bool(getattr(self, "_staging_submitted", False)):
|
|
469
|
+
self._first_turn_mark("input.submit_from_input.empty_submitted_staging")
|
|
464
470
|
return
|
|
465
471
|
self._commit_staging()
|
|
472
|
+
self._first_turn_mark("input.submit_from_input.done")
|
|
466
473
|
return
|
|
467
474
|
|
|
468
475
|
recall_text = raw_text
|
|
@@ -514,6 +521,7 @@ class InputBehaviorMixin:
|
|
|
514
521
|
|
|
515
522
|
if raw_text.startswith("/"):
|
|
516
523
|
self._schedule_background(self._execute_command(display_text.strip()))
|
|
524
|
+
self._first_turn_mark("input.submit_from_input.slash_scheduled")
|
|
517
525
|
return
|
|
518
526
|
|
|
519
527
|
previous_staging_payload = getattr(self, "_staging_payload", None)
|
|
@@ -528,3 +536,4 @@ class InputBehaviorMixin:
|
|
|
528
536
|
and current_staging_payload is not previous_staging_payload
|
|
529
537
|
):
|
|
530
538
|
self._commit_staging()
|
|
539
|
+
self._first_turn_mark("input.submit_from_input.done")
|
{comate_cli-0.10.8 → comate_cli-0.10.10}/comate_cli/terminal_agent/tui_parts/render_panels.py
RENAMED
|
@@ -28,7 +28,6 @@ from comate_cli.terminal_agent.figures import (
|
|
|
28
28
|
DOWN_ARROW,
|
|
29
29
|
ELLIPSIS,
|
|
30
30
|
FAST_PLAY_ICON,
|
|
31
|
-
PAUSE_ICON,
|
|
32
31
|
TASK_IN_PROGRESS,
|
|
33
32
|
TASK_PENDING,
|
|
34
33
|
TASK_BLOCKED,
|
|
@@ -169,10 +168,14 @@ class RenderPanelsMixin:
|
|
|
169
168
|
except Exception:
|
|
170
169
|
logger.debug("failed to read queue preview snapshot", exc_info=True)
|
|
171
170
|
return []
|
|
171
|
+
suppressed_ids = getattr(self, "_submitted_queue_preview_suppressed_ids", set())
|
|
172
|
+
if not isinstance(suppressed_ids, set):
|
|
173
|
+
suppressed_ids = set()
|
|
172
174
|
return [
|
|
173
175
|
message
|
|
174
176
|
for message in snapshot
|
|
175
177
|
if getattr(message, "origin", None) == MessageOrigin.HUMAN
|
|
178
|
+
and str(getattr(message, "message_id", "")) not in suppressed_ids
|
|
176
179
|
]
|
|
177
180
|
|
|
178
181
|
def _visible_queued_message_ids(self) -> set[str] | None:
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import contextlib
|
|
5
5
|
import importlib.metadata
|
|
6
|
-
import locale
|
|
7
6
|
import logging
|
|
8
7
|
import os
|
|
9
8
|
import ssl
|
|
@@ -105,6 +104,25 @@ class UpdateTarget:
|
|
|
105
104
|
)
|
|
106
105
|
|
|
107
106
|
|
|
107
|
+
def windows_update_command(target: UpdateTarget) -> tuple[str, ...]:
|
|
108
|
+
"""Windows manual update command with venv repair via --reinstall."""
|
|
109
|
+
return (
|
|
110
|
+
"uv",
|
|
111
|
+
"tool",
|
|
112
|
+
"install",
|
|
113
|
+
f"{target.package}@latest",
|
|
114
|
+
"--force",
|
|
115
|
+
"--reinstall",
|
|
116
|
+
"--refresh-package",
|
|
117
|
+
target.package,
|
|
118
|
+
*target.install_args,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def windows_update_command_text(target: UpdateTarget) -> str:
|
|
123
|
+
return " ".join(windows_update_command(target))
|
|
124
|
+
|
|
125
|
+
|
|
108
126
|
@dataclass(frozen=True, slots=True)
|
|
109
127
|
class UpdateInfo:
|
|
110
128
|
package: str
|
|
@@ -154,21 +172,15 @@ def _coerce_update_target(
|
|
|
154
172
|
|
|
155
173
|
|
|
156
174
|
def _is_chinese_locale() -> bool:
|
|
157
|
-
"""判断当前系统 locale
|
|
158
|
-
|
|
175
|
+
"""判断当前系统 locale 是否为中国大陆简体环境(决定是否走清华镜像源)。"""
|
|
176
|
+
from comate_cli.terminal_agent.update_messages import system_locale_candidates
|
|
177
|
+
|
|
178
|
+
# zh_tw(台湾)和 zh_hk(香港)不走清华镜像源;OR 语义:任一来源为中文即用镜像。
|
|
159
179
|
cn_prefixes = ("zh_cn", "zh_sg", "zh_mo", "zh_hans")
|
|
160
|
-
for
|
|
161
|
-
|
|
162
|
-
if any(
|
|
180
|
+
for candidate in system_locale_candidates():
|
|
181
|
+
value = candidate.lower()
|
|
182
|
+
if any(value.startswith(prefix) for prefix in cn_prefixes):
|
|
163
183
|
return True
|
|
164
|
-
try:
|
|
165
|
-
lang, _ = locale.getlocale()
|
|
166
|
-
if lang:
|
|
167
|
-
lang_lower = lang.lower()
|
|
168
|
-
if any(lang_lower.startswith(prefix) for prefix in cn_prefixes):
|
|
169
|
-
return True
|
|
170
|
-
except Exception:
|
|
171
|
-
pass
|
|
172
184
|
return False
|
|
173
185
|
|
|
174
186
|
|
|
@@ -411,8 +423,6 @@ def format_update_hint(info: UpdateInfo, target: UpdateTarget | None = None) ->
|
|
|
411
423
|
is_windows = sys.platform == "win32"
|
|
412
424
|
command = _format_update_command(update_target)
|
|
413
425
|
if is_windows:
|
|
414
|
-
from comate_cli.terminal_agent.windows_updater import windows_update_command_text
|
|
415
|
-
|
|
416
426
|
command = windows_update_command_text(update_target)
|
|
417
427
|
hint_template = messages.windows_hint if is_windows else messages.hint
|
|
418
428
|
return hint_template.format(
|
|
@@ -595,34 +605,17 @@ async def run_update_command(
|
|
|
595
605
|
command_text = " ".join(command)
|
|
596
606
|
messages = get_update_messages()
|
|
597
607
|
if sys.platform == "win32":
|
|
598
|
-
from comate_cli.terminal_agent.windows_updater import (
|
|
599
|
-
spawn_detached_updater,
|
|
600
|
-
windows_update_command_text,
|
|
601
|
-
)
|
|
602
|
-
|
|
603
|
-
windows_command_text = windows_update_command_text(update_target)
|
|
604
|
-
|
|
605
|
-
if spawn_detached_updater(info, target=update_target):
|
|
606
|
-
console.out(
|
|
607
|
-
messages.windows_update_scheduled.format(
|
|
608
|
-
product=update_target.product_label,
|
|
609
|
-
latest=info.latest_version,
|
|
610
|
-
current=info.current_version,
|
|
611
|
-
),
|
|
612
|
-
end="\n",
|
|
613
|
-
)
|
|
614
|
-
return True
|
|
615
608
|
console.out(
|
|
616
609
|
messages.windows_manual_update.format(
|
|
617
610
|
product=update_target.product_label,
|
|
618
611
|
package=update_target.package,
|
|
619
|
-
command=
|
|
612
|
+
command=windows_update_command_text(update_target),
|
|
620
613
|
current=info.current_version,
|
|
621
614
|
latest=info.latest_version,
|
|
622
615
|
),
|
|
623
616
|
end="\n",
|
|
624
617
|
)
|
|
625
|
-
return
|
|
618
|
+
return True
|
|
626
619
|
|
|
627
620
|
console.print(f"Updating {update_target.product_label} via `{command_text}`...")
|
|
628
621
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import locale
|
|
4
|
+
import logging
|
|
4
5
|
import os
|
|
6
|
+
import sys
|
|
5
7
|
from dataclasses import dataclass
|
|
6
8
|
|
|
9
|
+
logger = logging.getLogger(__name__)
|
|
10
|
+
|
|
7
11
|
|
|
8
12
|
@dataclass(frozen=True, slots=True)
|
|
9
13
|
class UpdateMessages:
|
|
@@ -16,10 +20,6 @@ class UpdateMessages:
|
|
|
16
20
|
skip_until_next_version_label: str
|
|
17
21
|
continue_label: str
|
|
18
22
|
windows_manual_update: str
|
|
19
|
-
windows_update_scheduled: str
|
|
20
|
-
windows_update_result_success: str
|
|
21
|
-
windows_update_result_failed: str
|
|
22
|
-
windows_update_result_timeout: str
|
|
23
23
|
success: str
|
|
24
24
|
failure: str
|
|
25
25
|
|
|
@@ -35,7 +35,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
35
35
|
"Close {product}, then run `{command}` in a new CMD or PowerShell to update."
|
|
36
36
|
),
|
|
37
37
|
title="✨ Update available! {current} -> {latest}",
|
|
38
|
-
show_update_command_label="
|
|
38
|
+
show_update_command_label="Show update command and exit",
|
|
39
39
|
update_now_label="Update now (runs `{command}`)",
|
|
40
40
|
skip_label="Skip",
|
|
41
41
|
skip_until_next_version_label="Skip until next version",
|
|
@@ -48,23 +48,6 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
48
48
|
"uv tool uninstall {package}\n\n"
|
|
49
49
|
"Then run the install command again."
|
|
50
50
|
),
|
|
51
|
-
windows_update_scheduled=(
|
|
52
|
-
"🚀 Background update scheduled: {product} will update to {latest} "
|
|
53
|
-
"automatically once this {product} process exits. "
|
|
54
|
-
"The result will be shown on next launch."
|
|
55
|
-
),
|
|
56
|
-
windows_update_result_success=(
|
|
57
|
-
"🎉 {product} was updated to {latest} in the background (previous: {current})."
|
|
58
|
-
),
|
|
59
|
-
windows_update_result_failed=(
|
|
60
|
-
"Background update to {latest} failed (exit code {code}). Close all {product} "
|
|
61
|
-
"windows and run `{command}` in a new CMD or PowerShell to update manually."
|
|
62
|
-
),
|
|
63
|
-
windows_update_result_timeout=(
|
|
64
|
-
"Background update to {latest} did not run: {product} did not finish "
|
|
65
|
-
'shutting down before the wait limit. Choose "Update now" again, or run '
|
|
66
|
-
"`{command}` manually."
|
|
67
|
-
),
|
|
68
51
|
success="🎉 Update ran successfully! Please restart {product}.",
|
|
69
52
|
failure=(
|
|
70
53
|
"Update failed with exit code {code}. The current installation may still "
|
|
@@ -81,7 +64,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
81
64
|
"请关闭 {product},然后在新的 CMD 或 PowerShell 中运行 `{command}` 更新。"
|
|
82
65
|
),
|
|
83
66
|
title="✨ 发现新版本!{current} -> {latest}",
|
|
84
|
-
show_update_command_label="
|
|
67
|
+
show_update_command_label="显示更新命令并退出",
|
|
85
68
|
update_now_label="立即更新(运行 `{command}`)",
|
|
86
69
|
skip_label="跳过",
|
|
87
70
|
skip_until_next_version_label="跳过此版本",
|
|
@@ -94,21 +77,6 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
94
77
|
"uv tool uninstall {package}\n\n"
|
|
95
78
|
"然后再次运行安装命令。"
|
|
96
79
|
),
|
|
97
|
-
windows_update_scheduled=(
|
|
98
|
-
"🚀 已安排后台更新:当前 {product} 进程退出后将自动升级到 {latest},"
|
|
99
|
-
"结果将在下次启动时显示。"
|
|
100
|
-
),
|
|
101
|
-
windows_update_result_success=(
|
|
102
|
-
"🎉 {product} 已在后台自动更新到 {latest}(原 {current})。"
|
|
103
|
-
),
|
|
104
|
-
windows_update_result_failed=(
|
|
105
|
-
"后台更新到 {latest} 失败(退出码 {code})。请关闭所有 {product} 窗口后,"
|
|
106
|
-
"在新的 CMD 或 PowerShell 中运行 `{command}` 手动更新。"
|
|
107
|
-
),
|
|
108
|
-
windows_update_result_timeout=(
|
|
109
|
-
"后台更新到 {latest} 未执行:{product} 退出未完成,等待超时。"
|
|
110
|
-
"可再次选择“立即更新”,或手动运行 `{command}`。"
|
|
111
|
-
),
|
|
112
80
|
success="🎉 更新命令已成功执行!请重启 {product}。",
|
|
113
81
|
failure=(
|
|
114
82
|
"更新失败,退出码:{code}。当前安装可能仍可使用;如果 {product} "
|
|
@@ -125,7 +93,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
125
93
|
"請關閉 {product},然後在新的 CMD 或 PowerShell 中執行 `{command}` 更新。"
|
|
126
94
|
),
|
|
127
95
|
title="✨ 發現新版本!{current} -> {latest}",
|
|
128
|
-
show_update_command_label="
|
|
96
|
+
show_update_command_label="顯示更新命令並退出",
|
|
129
97
|
update_now_label="立即更新(執行 `{command}`)",
|
|
130
98
|
skip_label="略過",
|
|
131
99
|
skip_until_next_version_label="略過此版本",
|
|
@@ -138,21 +106,6 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
138
106
|
"uv tool uninstall {package}\n\n"
|
|
139
107
|
"然後再次執行安裝命令。"
|
|
140
108
|
),
|
|
141
|
-
windows_update_scheduled=(
|
|
142
|
-
"🚀 已排定背景更新:目前 {product} 程序結束後將自動升級到 {latest},"
|
|
143
|
-
"結果將於下次啟動時顯示。"
|
|
144
|
-
),
|
|
145
|
-
windows_update_result_success=(
|
|
146
|
-
"🎉 {product} 已在背景自動更新到 {latest}(原 {current})。"
|
|
147
|
-
),
|
|
148
|
-
windows_update_result_failed=(
|
|
149
|
-
"背景更新到 {latest} 失敗(結束碼 {code})。請關閉所有 {product} 視窗後,"
|
|
150
|
-
"在新的 CMD 或 PowerShell 中執行 `{command}` 手動更新。"
|
|
151
|
-
),
|
|
152
|
-
windows_update_result_timeout=(
|
|
153
|
-
"背景更新到 {latest} 未執行:{product} 結束未完成,等待逾時。"
|
|
154
|
-
"可再次選擇「立即更新」,或手動執行 `{command}`。"
|
|
155
|
-
),
|
|
156
109
|
success="🎉 更新命令已成功執行!請重新啟動 {product}。",
|
|
157
110
|
failure=(
|
|
158
111
|
"更新失敗,結束碼:{code}。目前安裝可能仍可使用;如果 {product} "
|
|
@@ -169,7 +122,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
169
122
|
"{product} を閉じてから、新しい CMD または PowerShell で `{command}` を実行してください。"
|
|
170
123
|
),
|
|
171
124
|
title="✨ 新しいバージョンがあります!{current} -> {latest}",
|
|
172
|
-
show_update_command_label="
|
|
125
|
+
show_update_command_label="更新コマンドを表示して終了",
|
|
173
126
|
update_now_label="今すぐ更新(`{command}` を実行)",
|
|
174
127
|
skip_label="スキップ",
|
|
175
128
|
skip_until_next_version_label="このバージョンをスキップ",
|
|
@@ -182,23 +135,6 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
182
135
|
"uv tool uninstall {package}\n\n"
|
|
183
136
|
"その後、インストールコマンドをもう一度実行してください。"
|
|
184
137
|
),
|
|
185
|
-
windows_update_scheduled=(
|
|
186
|
-
"🚀 バックグラウンド更新を予約しました:現在の {product} プロセスが終了すると"
|
|
187
|
-
"自動的に {latest} へ更新されます。結果は次回起動時に表示されます。"
|
|
188
|
-
),
|
|
189
|
-
windows_update_result_success=(
|
|
190
|
-
"🎉 {product} はバックグラウンドで {latest} に更新されました(以前:{current})。"
|
|
191
|
-
),
|
|
192
|
-
windows_update_result_failed=(
|
|
193
|
-
"{latest} へのバックグラウンド更新に失敗しました(終了コード {code})。"
|
|
194
|
-
"すべての {product} ウィンドウを閉じてから、新しい CMD または PowerShell で `{command}` "
|
|
195
|
-
"を実行して手動で更新してください。"
|
|
196
|
-
),
|
|
197
|
-
windows_update_result_timeout=(
|
|
198
|
-
"{latest} へのバックグラウンド更新は実行されませんでした:{product} が"
|
|
199
|
-
"待機時間内に終了しませんでした。もう一度「今すぐ更新」を選ぶか、"
|
|
200
|
-
"`{command}` を手動で実行してください。"
|
|
201
|
-
),
|
|
202
138
|
success="🎉 更新コマンドが正常に完了しました。{product} を再起動してください。",
|
|
203
139
|
failure=(
|
|
204
140
|
"更新に失敗しました。終了コード:{code}。現在のインストールはまだ使える"
|
|
@@ -209,16 +145,45 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
209
145
|
}
|
|
210
146
|
|
|
211
147
|
|
|
212
|
-
def
|
|
148
|
+
def _windows_ui_locale() -> str | None:
|
|
149
|
+
"""Return the Windows user UI locale string, or None when unavailable."""
|
|
150
|
+
if sys.platform != "win32":
|
|
151
|
+
return None
|
|
152
|
+
try:
|
|
153
|
+
import ctypes
|
|
154
|
+
|
|
155
|
+
lang_id = ctypes.windll.kernel32.GetUserDefaultUILanguage()
|
|
156
|
+
return locale.windows_locale.get(lang_id)
|
|
157
|
+
except Exception:
|
|
158
|
+
logger.debug("windows UI locale detection failed", exc_info=True)
|
|
159
|
+
return None
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def system_locale_candidates() -> list[str]:
|
|
163
|
+
"""Return non-empty locale candidates in user-intent priority order."""
|
|
164
|
+
candidates: list[str] = []
|
|
213
165
|
for env_var in ("LC_ALL", "LC_MESSAGES", "LANG", "LANGUAGE"):
|
|
214
|
-
|
|
215
|
-
if
|
|
216
|
-
|
|
166
|
+
value = os.environ.get(env_var)
|
|
167
|
+
if value:
|
|
168
|
+
candidates.append(value)
|
|
169
|
+
windows_locale = _windows_ui_locale()
|
|
170
|
+
if windows_locale:
|
|
171
|
+
candidates.append(windows_locale)
|
|
217
172
|
try:
|
|
218
173
|
lang, _encoding = locale.getlocale()
|
|
219
174
|
except Exception:
|
|
220
|
-
|
|
221
|
-
|
|
175
|
+
lang = None
|
|
176
|
+
if lang:
|
|
177
|
+
candidates.append(lang)
|
|
178
|
+
return candidates
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def detect_update_locale() -> str:
|
|
182
|
+
for candidate in system_locale_candidates():
|
|
183
|
+
normalized = _normalize_locale(candidate)
|
|
184
|
+
if normalized:
|
|
185
|
+
return normalized
|
|
186
|
+
return "en"
|
|
222
187
|
|
|
223
188
|
|
|
224
189
|
def get_update_messages(locale_key: str | None = None) -> UpdateMessages:
|