comate-cli 0.10.4__tar.gz → 0.10.6__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.4 → comate_cli-0.10.6}/PKG-INFO +1 -1
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/update_messages.py +16 -16
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/windows_updater.py +33 -1
- {comate_cli-0.10.4 → comate_cli-0.10.6}/pyproject.toml +1 -1
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_update_check.py +4 -2
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_windows_updater.py +37 -1
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/08b40bf6a68c85059572f3478db27d848acd36a6e8c6b89fa5173927210e7b53.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/0ff4f2f1382d2c19ca8d86e01ee8b6768b2fa925bdcf1e57829cecc590120371.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/1571cd767eb43ae39534d8f53f60bd56a2a537a64ecf8b5d93ee7556ea4cbb54.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/19ac2280798d9988d4bd8e29952989eabf0749b893d4026bf9786169cd50c659.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/24efc545d3f0b694a02cfa8022b8f93be27e57547a4f0661f608c80d9bc78113.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/3d69373ac48a465a06bd30094e4c28921c1201865c27dc0f012768799351c10b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/46c7def792f8820aff04a0083057d32079d7ccc208e394eb00a440618f4455ba.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/594a10eddaf1ea6344dc62d41af7146f6e52471ccf1ee1fba6e61376c3ba5bce.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/5e4d793a1bc3ae3b2c7fedb39645e04d3bd6a86ceb064ba99746d6164034942d.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/6a28b28d04d8cf003fc6e41560ad05af138aecfdb0f7f9978bf12a1d3b4e353a.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/8e9d29f51d07bd7d9cd02aae2cc12c1bd575f3748f6a2b9065dcad75973c1e90.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/954f324b297d871035343be09391bc7c5e0df38faf3f4a3a92be92685a9ad4e3.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/a58d73b67de68741d8e4e9e7d212a7e98a7db0b864113fbd2b9056b166095c85.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/b44535f54c0d62ce9f9fa3a673ccff0f6d17086dce54787da0f8ab910c2ed1c9.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/b8f6674b359865d1c0880633f552a30210a60d30d2c11370e9ab0457f65f75a3.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/da3d0964cd50a338b3dedc5212ee6d4d045c04629f62a0e948c905c3ec27ab4c.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/dfc071d5c7a17280f23b1875b16a0f38ff61736e5985b2c9e3056f741f17bd5d.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/e12f27ecae32f087ea8696b8061c42facb63a91b2b100568f3602cc2f0b6ce60.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/bash/fe60ed7a2e79c21b81416fa2e77c827ea64df5ba5b6cd343a9b423731dc15b4d.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/glob/dc28800ddef1229e5c0bd125335ab31d85d5f8aba0ff2713d09829671b70f2ec.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/glob/e6fa077dd5e2e19045abf084f97dcfbcbffc1571967a0243ca40ff996d8bc9f2.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/010b7d94484960699c5c28b5d2ea86d53c2d998a78141c75b834409de64bf25c.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0193f8465b3eaba72bb4f4f78d0376ca89a09d96e87bb9b63c4543023c6b5516.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/03edbaec20870710ae8531b002c837e2c092d53ed8b544d05330cf5fd699dcb4.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/09c695b86ba43584b134ed6ee26cbe023f58551e579158cf94790644ad6aaa53.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0b96a0a521f9d4c0a88fc75a2e5f69e4c4b7be8ea5d73599eab390c88d4098d8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0ba5851c04aaa37f25f6b0a37daa3522754d7865e79b3abf0daf8fca54fc07f7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0beb89f407f205d5b2fdb075c98869ffa5db8e2a3687706e06399d3f58a3278f.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0bf5d9171b6ec0a61962ae22ce8109a26abf764c031ddd5c8dcad25c678020ec.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0db7a1bd5eb18329885082bc554f4456a5c254b687c25c2b3611a364634badd8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0dd1a484cf5b506de9a8e85db9c9156e7623bc633c07d8805d83768edf1d1b68.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/0f48a977857dc6fe0658c5341b8b409205bb6391cc458d19d18f06b1c37e3b8c.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1194ded949e902bc25be21bfe63952a98381416bed255dc052b6715ebb81f11e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/134f90a9b26f8bbc6fc602c3a1301623823abec5cb8eb9680ea060bea5d78b07.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1461fb3572a606968e5d9738ec65dfe0cf4616ead5696f2b47dd36dd12cd8346.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/14f7537d8a7090ad8f6531bd9ecfadd9d727f2bf0c620afde878e8765d596cc8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/176241ffb6774d19531593769c50349debb431f8c888f8e4fb46178af6f8f9e6.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/17e25775e4ce9b0fcb34b7af659d7d72f53262b1b59c21190f450c4eda8bb6a2.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1a9cea8b7b788598502df8771b6c03f6b393613e1d911f04959ec59f3b7e9869.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1b2ee53405771f837aa234d5a8d128c3f1fd6f16306ec5c71e30df1a55f0eab8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1c265542a4a6dac9cdc557ba271a9022d5f5bfa044d7ae4201a302ee59517542.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1dd72f0779d1616cc4683de1565d1cc4242dee18987cfe5c9ead6ec445ab952f.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1f0f6484841d5396cfb19f060ada806f54d62594a2a6f81af4ed70d379bdb82e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/1f4854573b520c1a6e0fb4cd8488263f823a61a6867e4c7d92cdce74b4cb4d1b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/200787ede572c7eee4ff7cd579a936b8ab0ecf6f25bb2f6ac89dbd04fdac1ef7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/22fb4c5aa3fea197c71b90824449eca45095da4bd1c7bc76dbfb689abcd5cc49.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/29cd9403e9ab3dac5cc3a95fa0ede278decb57cf7183eaad8e29aed9903aba26.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/2aa8195d533da9ee878d5ff7e7c4574ad9dc54c57e85f0be801d9aa5ba7e9d65.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/2df4412a93598e76038f722e112a5519bbca58e31a27a471346aecf3c5d486b8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/2f04b6777f986f64bbdcdd828eb4a7fa5aa67872fc0d61e891d2af9ec51a6fb8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/3114f2804efe81842b21a85a4bc9eb2ef9f975c28e9220564e6cd2185fed11f7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/3240cf436c636223d89029d2859dc8b8bbc059ea3b8b9a3cdcececb6e75d6da9.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/3a03ca37d32ea15316bb77147116bf8eeaa55ea255b7819f1b6350e80cd38481.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/4274f27741d2a37b85ea968754ede69180f59300532f1c8e2c8bcc6cb57d93f8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/42c75defbb53e48d8521927f945412100cd487ad492ee1a57a57df3f64831096.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/435267ab04edbf55d21c169170faf8eca36f065abb282e9fd731cbf500763757.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/448d3ded3b00200238f3782ed0fb5fbe30166139308cfa6cd3e31867f3cf941e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/449ac499b090311eb8b5594f7646d84f67e9da1fad4ad968b772d4d8ab404141.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/45f0d5dda63863f163106fbf234ba98c6b2ba88ee63c308b922b6b18b9d6d179.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/48a5ea12ce666954aeb22afab26d199f9ceb7c5db99531077bed0298837a4777.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/4d6a33d9eaeb38ed7558b7e0162b399580b211cedefdd2a4126b6363b0616b9a.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/54822f93bd0f279a2dc67f57f4b49a549938346f606c3ea62f76573ed7c19729.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5592b8582682415bf399fd16bc4e354a8af6979acc7ee5f7d8161b6a2a090a6e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5697b946b47f9c271273606510662d25c579a1c3cd66a3f73f845178626adf8c.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/571cb6737be8d74e05976da2ba022ea1a5e191bdfeafa40b22834b61aca984ec.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/592ea99ad61dc416029a0a68a9ea47c765d706d7ffbae9cd697405da2dd8a9ec.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5c0df9216c4f53dc1c2d786266a137dbe326ab4363ddc40307fb21a00a9f94ac.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5ce22f90e1ec6217b95997fad94cc926c12ffdd6f3ef3e278bf0b89ecbcc6d62.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5dc1de7af87cb4091467bc5f0265745e602853afdc3863c267b6e90a26f412c9.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/5fff0b4efc09b785f1ee5dee2e5d7ad4e247bdb9c93f41b5814c9db1c04cb8d7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6249573679ee1a300a25baec32ea72ee34eeffb45f73f676cc0b0f0d11a2d31d.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6258f866ee46c82b3b4584aafd49625b86793f1324318970124c849013397865.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/640e6e9edd64f8ed1f4928e9af1f9890c17386cdbc86d329cc2256628e7c50bb.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/643717af84fd6f09302e9656f696f853b85dc10bdd144cc4b3ea064c0ee39056.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/65ed38867aa3162db6899d4f1b76907655d6af699cff567e2b776ec997f65b9e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/67196d9894f03b07594d654caf016388b13842a7b3d11466a7b7532727d11bfa.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6c6f4e1f9e1d09af3d8a7c10dd243df92781e6ebbbf4f1215c189d74b7a16e01.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6cfadf5d61982d2bb941416d5fefc22202df0bd4dde584321be50716843f2a4e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6dbade43d62180ae1367c70744d985615fe64768efba5c77317ea4c349aa7958.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/6e20e5b86fbf934bbe180ab38a81e259006f0fc43b4d650820994dea3ead8075.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/705ec2d0ab89a76fbc02a18d23d8bf10b26eebd5144911cb398e46e2374524cf.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/73f1fdec89c242b1c28093dcc12e830a4467c5c5197286879a25feda693b3ede.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/745e2b17c9b412d9d89d380626ceb2eb088b2d24e1a4f26be948061a8daaccdd.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/74bf1dc40d9b884a5312567e5bc923389e9bcd10e9efa1eb87a01c50b1e11ef1.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/758f6bd9fa04989fe968fb80567eb4a4d028e9dd6ca9c482c0a919a7c9da6dad.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/762dfb3969ac05cfd8ed58ea34abea8b4e4756ec5c8ef7496e49bb6f824439af.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/7880b26ed67f9abd746b4e5c7ccc009f97a16cc5245b4fb04e9e51faf2e99b43.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/7b530ebb0d7be5cb364886c326ac09fedb208520170ec424c0d66f2a049cd735.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/7d4e0f51f0fa21846dfda5ceebb79cf53d0e8abf1b2f86ecd09ddf06f85cd3bc.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/7d79d72b0ff97ae7703118b1c3edc22a3e9aad968baaeb1210281e1b3e0fdf75.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/81d4cf35489f009f64aba1f01c0a9c73ac256391d5369dbbae2b3f92c912afb0.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/89124ab34d06feebcf91d5fa7fd8d3f36493f0d62ae79b0f339f87a229333a3b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/8a1456d96d430228501f6c305ba67912312bfdd48b2841e2456160a02498ea5b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/8bc79492c38d7124f4214f0437350fb1cfadaf6635bc4391c69fe64c6e8f6096.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/8c95072ee427abdb9a07444bf26dc78e72cf93ed9e898d77dd9aa643f6f5b913.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/98060d6195be5fb98d6098eb947853a25a305bce1ebf5a4218ffb791379b9dc6.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/98b2832dd79c7972eb441b3102f1f6aa40ccb867d7771ec238142564a3b4a117.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/98b76a32c3a05f7d91b8b81518f28b613f7ccb373575858fd6aa2711ddbc382e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/9a5fd2d8be3b1e8ef2343f9a19bd75adba3687b2cb8234ee341d6cdc3ab1f361.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/9c80158f162aadb87f84195c4496a1c24f68ceca3535852835de9cf4e428d028.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/a9594b8f4f25e5b378fcc883960fa7afb2dea9d80851cb5d52f18d856be95219.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/abacaab899684c1677f97720dcfc4a6c1fbf98d2cfa44e25f040959586ccaa20.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/ac65e45db9f2c51a484173eb31b907c1cb007c5cacca21396790f5345968ca72.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/ac8641710e4c96567edad6364d218a08630ff20af9f075f61c20d013f9369648.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/ad798be6fa338bd3ee7fc49048192e39d3b2b78837051208815b817e5ca96793.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/b04c0955b68f788125018525e308e82987ada00d3943e21cb159f577319ccf11.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/b1b9c6d1eefe14c5076aa214fe4f98242f99ed9b146214d0305224539d8e78a1.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/b39bb289db5f9e4f31c67766f5e08333d10f384a2d5f6b71fb44522bc4f17f80.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/b64736bbdd8fe7ca1ff2ef98558f16f145ca437255ccebca44bf1041b0afbd55.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/b898cd80aa00ebdfda4ef314a4e245e62ee96c21935a7f332243a67b0072d1a0.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/c1a4508b9a74b3d1649f25dbd474780e6212ced036bbca6b4aac06d324ff10e9.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/c3c33582bb37fb71235e9d0fd2b8d2cc8c926cfcb014261356ea917db6417ebd.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/c63907ae1cb41e59de75df3d6e0dff27db2ce2434cac5f283a428e4fd9bee301.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/d2402b2d42c975305d4866353935ce285eb67ff7f2a2d74ee9be559d022c86f6.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/d4e8e439058ef24fb0671ee6674a5b854c17e0b93b012d2dbe8ed85928afe560.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/d8c8f51da7a2bc8977320248883adabe9a4d9da131e99f7dfe18a9c826b1c8b1.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/dbd79a71f323da5dc1570d5c8d6b99e73b642128697b6c51ab240379fa74f763.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/de09b36cc3fd06274fcdbfc7d431f170afe40b4fa8ddd5c0a281581ee03eabec.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/dfd45c97a1da7d27da6790c1b24048f584ed4f831e971cf3f4c366b7d8687980.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/e138fb7f4303433003aeeaf67b15d783b253696d3d24fd7dfacc50f619db04fd.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/e1ca31c715894314164641ba9d80dc13f7e8e146e8f77a995bc3650057ee3ba3.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/e6f0fb5f2688faeaa4875724c32f27e79d8a9710bbb91d2a950b84b3481fc374.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/e707578cd4b2132eae2e3bdfa918555c2a8f1f4ac52fd6dbc6fc9a347c44221b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/ea0fc86903a5bd1f02832cc3eed4446d55e16dc7df0298c5d74afa56a89a8ca7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/eab81978291f4725b9433192c5b7f4b5409cdcdeb80ffab9884c79ef230bdcdd.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f04828b2b54922581d7cde5351807a457896b2940fd748e8d706fd5dc4bed971.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f04b4f70fe5292dc485164699342c03f3cf4715ba0d5efa815cb7a332dd78c0b.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f2012bd41aa48cd2e3f56611f32b041bd41863b681a79d5ff5f515a97e7e1ddc.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f35c437708355261ca868cf38ade97384e86f24de9aab20849113dc78eb8564c.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f638dfe4edbde834bd968f4d479c1c535dff1dfac10f3e003ec8673d5eca5864.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/f916ed291897b4afb5f8a55f5e333a53f11540e2ade24f691a7828885aa77a32.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/fa3b737ee93d45bfff6e78245a5ecad2476dc7010c75c772abc1c272cddae072.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/fd1133b3a420133590ffb1c050a65477a4751902ca9b832db1c23a6fb90200b8.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/fe3df7b68f7041d210336363f5b11faf963427dbcf4027172e19db05f7b24fa1.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/grep_content/ff6b896f93f2ac018a3af519be3001d1e4c8ca6ef9ae3e051aa646b409b6773f.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/index.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/ls/4f2cd109869e06f70f28f7aaaa3163fea4731bbb92dc4da8ac25177d6f122f87.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/ls/768197391db12061fb74d56cad07e9331db0bd832503b5e40be76b49208a111a.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/ls/a560ae7492ac913282b703abd48897905727acc058d0f9346b17d450f32e1a8a.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/01f0c4c39cc01ec7d59077fa8bfca183cbd6c93d0a7083261f228badca115eba.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/03079608ffe5b120094798aababb67671a20f8466c0197044eacaea56fa12d30.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/08e5d1cdde9e2d6dff5435ee87c6710470709d83c271185eaaaa6d652068d80e.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/10f74765725e10bd94d92eb25cea495ea8cb9d9151397b05b200ed44a852d882.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/3faa3ddc36161e84da99e18707d61b7ffbbbeb8217c28a55a027134f8def5d17.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/45cd4ad764e19e3fc0481b8d8649c235ae51634eb41da0806f9f00ab1bdb640d.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/4fdacfc564ff558dd602f672edfbb4a72494d8e3c8937bcf0a3d15e085c4a0b7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/50eb11fb5aa96e54b2a7e68c0b9278ec3c07d222bad92270f4a51df58ca69e03.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/5a1f18c61191f6b4c1635363748a2aca49ad2183f046035728b5c23ee3df1123.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/72718c187cf24910d3c21d7e719e004efa27b4f5d7315bbe2b9a33e2494cc0f9.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/7fa851f7100b6e3e652604de11be2767b7a679aea40e941b0b1218478e5935ed.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/9d3ace7b725f6aa5809ca4bc298c5ac3d022cb92c29684c7709d63c9c5fd2ad4.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/dbeea3cc8bd22fdb703675e202063e7f4ce21ef00c5c83f74268cd6328ad912d.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/tool_result/ea66ecb02621262c26d0368c108d2f2f94e2d1f75dea6b38bf958c5bdbaa2ee7.txt +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/2669c40a92ce6395790ae997503be646bdc3af4a49f799b38d8380e5ecd1e015.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/5701edea87e370ce51349413bcba507833f48f2ad7337eef3deccc82c7d45a8d.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/5c0eeec3d9ab0a6881d12ebd5a95b6b71b90d47640e38c914232d75704332f54.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/80baa6870df61f51b68fadde829aa2ab889fd487f8a8171db36ea3b67ded24db.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/915acd44f3846631527a3cd62e81d9908bb7e8769b970208ffa3326c65df8778.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/a758c9f6242610e875e36aed11e99ac337359cbe512df15db6544504fa9e68b8.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/artifacts/webfetch/eca7d820f7461f58ee9b2b1e931842de54cd1ec023eca7a27e3bfb387efc6aa2.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/scheduled_prompts.json +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/SKILL.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/html2pptx.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/mce/mc.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2010.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2012.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2018.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/pack.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/unpack.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/validate.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/validation/base.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/validation/docx.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/validation/pptx.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml/scripts/validation/redlining.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/references/ooxml.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/scripts/html2pptx.js +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/scripts/inventory.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/scripts/rearrange.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/scripts/replace.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.agent/skills/powerpoint/scripts/thumbnail.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/.gitignore +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/CHANGELOG.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/CONTEXT.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/README.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/__main__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/distribution.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/main.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/mcp_cli.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/animations.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/app.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/approval_bridge.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/assistant_render.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/builtin_commands/.keep +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/builtin_commands/implement-plan.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/builtin_commands/learn.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/codenames.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/config/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/config/model.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/config/picker.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/config/picker_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/config/store.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/env_utils.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/error_display.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/event_renderer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/figures.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/file_ref_hint.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/fragment_utils.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/goal_edit_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/goal_resume_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/history_printer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/input_geometry.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/logging_adapter.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/logo.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/markdown_render.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/mention_completer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/message_style.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/models.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/path_context_hint.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/operation_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/preflight.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/preflight_wizard.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/print_mode.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/question_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/recap/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/recap/controller.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/resume_picker.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/resume_preview.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/resume_selector.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/approval.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/options.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/protocol.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/serde.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/server.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/session_host.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/stdin_reader.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc/stdio.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/selection_menu.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/skill_slash_input.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/slash_commands.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/startup.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/startup_profile.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/status_bar.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/statusline/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/statusline/model.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/statusline/picker.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/statusline/picker_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/statusline/store.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/text_effects.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/theme.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tips.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_approval_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_result_formatters.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_result_store.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_result_viewer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tool_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/transcript_viewer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/btw_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/comate_cli/terminal_agent/update_check.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-comate/.gitignore +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-comate/comate_cli-0.7.10-py3-none-any.whl +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-comate/comate_cli-0.7.10.tar.gz +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-hico/.gitignore +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-hico/hico_cli-0.7.17-py3-none-any.whl +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/dist-hico/hico_cli-0.7.17.tar.gz +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/docs/cli-rpc-stdio-guide.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/docs/startup-performance.md +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_model.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_picker_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_picker_ui.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_roundtrip.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_store_load.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/config/test_store_save.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/conftest.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/fixtures/fake_mcp_misbehaving_stdout.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/recap/test_idle_recap_controller.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/recap/test_recap_history_rendering.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/recap/test_tui_idle_recap_integration.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/statusline/__init__.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/statusline/test_model.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/statusline/test_picker_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/statusline/test_store.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_animations_styles.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_animator_shuffle.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_mcp_preload.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_preflight_gate.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_print_mode.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_profile_threading.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_pty_smoke.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_shutdown.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_startup_latency.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_startup_order.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_token_cost_config.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_app_usage_line.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_approval_bridge.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_btw_slash_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_busy_slash_gating.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_cli_project_root.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_compact_command_semantics.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_completion_context_activation.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_completion_status_panel.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_context_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_custom_slash_commands.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_discover_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_distribution_contract.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_errors_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_approval_wait.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_boundary.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_e2e.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_log_boundary.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_log_queue.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_stream_staging.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_streaming.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_tool_args_progress.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_event_renderer_tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_file_ref_hint.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_format_error.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_goal_edit_handlers.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_goal_edit_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_goal_resume_tui.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_goal_resume_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_goal_slash_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_handle_error.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_drain_throttle.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_printer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_printer_log.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_printer_styles.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_printer_subtitle_position.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_printer_tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_sync.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_history_sync_tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_import_weight.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_input_behavior.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_input_history.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_installed_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_interrupt_exit_semantics.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_layout_coordinator.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_logging_adapter.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_logo.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_main_args.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_main_args_yolo.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_main_profile_entry.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_markdown_render.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_marketplaces_tab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_mcp_cli.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_mcp_slash_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_mention_completer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_menu_cursor_unification.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_message_style.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_model_switch_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_no_raw_colors.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_path_context_hint.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_permission_mode_cycle.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_plugin_operation_state.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_plugin_slash_commands.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_plugin_tui_components.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_preflight.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_preflight_copilot.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_pty_output_integrity.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_question_key_bindings.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_question_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_resume_picker.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_resume_preview.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_resume_selector.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rewind_command_semantics.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_approval.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_options.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_protocol.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_serde.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_server_methods.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_session_host.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_stdin_reader.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_rpc_stdio_transport.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_selection_menu.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_session_query_token_summary.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_shutdown_noise_guard.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_shutdown_noise_integration.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_skill_slash_input.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_skills_slash_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_slash_argument_hint.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_slash_clear.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_slash_completer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_slash_registry.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_startup_import_budget.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_startup_profile.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_status_bar.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_status_bar_transient.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_stream_staging_panel.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_style_class_coverage.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_task_panel_format.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_task_panel_key_bindings.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_task_panel_rendering.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_task_poll.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_theme.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tips.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_approval_key_bindings.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_approval_tui.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_approval_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_fold_panel.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_result_formatters.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_result_store.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_result_viewer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_result_viewer_key_bindings.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_view.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tool_view_styles.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_transcript_viewer.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_transcript_viewer_tool_fold.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_builtin_slash_chain.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_elapsed_status.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_esc_queue.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_llm_retry_panel.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_local_interactive_barrier.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_mcp_init_gate.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_paste_newline_guard.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_paste_placeholder.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_provider_error_shield.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_queue_preview.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_queue_sdk_source.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_scheduled_fire_log.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_send_undo_window.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_split_invariance.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_startup_latency.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_team_messages.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_thinking_display.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_tool_result_registry_lifecycle.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_tui_window_too_small_fallback.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_usage_command.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_wellformed_terminal_input.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tests/test_wrap_user_text.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tools/logo_lab.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tools/nico_preview.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/tools/startup_bench.py +0 -0
- {comate_cli-0.10.4 → comate_cli-0.10.6}/uv.lock +0 -0
|
@@ -32,7 +32,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
32
32
|
),
|
|
33
33
|
windows_hint=(
|
|
34
34
|
"✨ New version available: {latest} (current: {current}) "
|
|
35
|
-
"Close {product}, then run `{command}` in a new PowerShell to update."
|
|
35
|
+
"Close {product}, then run `{command}` in a new CMD or PowerShell to update."
|
|
36
36
|
),
|
|
37
37
|
title="✨ Update available! {current} -> {latest}",
|
|
38
38
|
show_update_command_label="Update now (completes after exit)",
|
|
@@ -42,7 +42,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
42
42
|
continue_label="Press enter to continue",
|
|
43
43
|
windows_manual_update=(
|
|
44
44
|
"Windows cannot safely update {product} from inside the running process.\n\n"
|
|
45
|
-
"Close all {product} windows, then run this in a new PowerShell:\n\n"
|
|
45
|
+
"Close all {product} windows, then run this in a new CMD or PowerShell:\n\n"
|
|
46
46
|
"{command}\n\n"
|
|
47
47
|
"If the current installation is already broken, run:\n\n"
|
|
48
48
|
"uv tool uninstall {package}\n\n"
|
|
@@ -50,7 +50,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
50
50
|
),
|
|
51
51
|
windows_update_scheduled=(
|
|
52
52
|
"🚀 Background update scheduled: {product} will update to {latest} "
|
|
53
|
-
"automatically once
|
|
53
|
+
"automatically once this {product} process exits. "
|
|
54
54
|
"The result will be shown on next launch."
|
|
55
55
|
),
|
|
56
56
|
windows_update_result_success=(
|
|
@@ -58,7 +58,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
58
58
|
),
|
|
59
59
|
windows_update_result_failed=(
|
|
60
60
|
"Background update to {latest} failed (exit code {code}). Close all {product} "
|
|
61
|
-
"windows and run `{command}` in a new PowerShell to update manually."
|
|
61
|
+
"windows and run `{command}` in a new CMD or PowerShell to update manually."
|
|
62
62
|
),
|
|
63
63
|
windows_update_result_timeout=(
|
|
64
64
|
"Background update to {latest} did not run: {product} did not finish "
|
|
@@ -78,7 +78,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
78
78
|
),
|
|
79
79
|
windows_hint=(
|
|
80
80
|
"✨ 发现新版本:{latest}(当前:{current}) "
|
|
81
|
-
"请关闭 {product},然后在新的 PowerShell 中运行 `{command}` 更新。"
|
|
81
|
+
"请关闭 {product},然后在新的 CMD 或 PowerShell 中运行 `{command}` 更新。"
|
|
82
82
|
),
|
|
83
83
|
title="✨ 发现新版本!{current} -> {latest}",
|
|
84
84
|
show_update_command_label="立即更新(退出后自动完成)",
|
|
@@ -88,14 +88,14 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
88
88
|
continue_label="按 Enter 继续",
|
|
89
89
|
windows_manual_update=(
|
|
90
90
|
"Windows 无法在当前运行中的 {product} 进程内安全更新。\n\n"
|
|
91
|
-
"请关闭所有 {product} 窗口,然后在新的 PowerShell 中运行:\n\n"
|
|
91
|
+
"请关闭所有 {product} 窗口,然后在新的 CMD 或 PowerShell 中运行:\n\n"
|
|
92
92
|
"{command}\n\n"
|
|
93
93
|
"如果当前安装已经损坏,请先运行:\n\n"
|
|
94
94
|
"uv tool uninstall {package}\n\n"
|
|
95
95
|
"然后再次运行安装命令。"
|
|
96
96
|
),
|
|
97
97
|
windows_update_scheduled=(
|
|
98
|
-
"🚀
|
|
98
|
+
"🚀 已安排后台更新:当前 {product} 进程退出后将自动升级到 {latest},"
|
|
99
99
|
"结果将在下次启动时显示。"
|
|
100
100
|
),
|
|
101
101
|
windows_update_result_success=(
|
|
@@ -103,7 +103,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
103
103
|
),
|
|
104
104
|
windows_update_result_failed=(
|
|
105
105
|
"后台更新到 {latest} 失败(退出码 {code})。请关闭所有 {product} 窗口后,"
|
|
106
|
-
"在新的 PowerShell 中运行 `{command}` 手动更新。"
|
|
106
|
+
"在新的 CMD 或 PowerShell 中运行 `{command}` 手动更新。"
|
|
107
107
|
),
|
|
108
108
|
windows_update_result_timeout=(
|
|
109
109
|
"后台更新到 {latest} 未执行:{product} 退出未完成,等待超时。"
|
|
@@ -122,7 +122,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
122
122
|
),
|
|
123
123
|
windows_hint=(
|
|
124
124
|
"✨ 發現新版本:{latest}(目前:{current}) "
|
|
125
|
-
"請關閉 {product},然後在新的 PowerShell 中執行 `{command}` 更新。"
|
|
125
|
+
"請關閉 {product},然後在新的 CMD 或 PowerShell 中執行 `{command}` 更新。"
|
|
126
126
|
),
|
|
127
127
|
title="✨ 發現新版本!{current} -> {latest}",
|
|
128
128
|
show_update_command_label="立即更新(結束後自動完成)",
|
|
@@ -132,14 +132,14 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
132
132
|
continue_label="按 Enter 繼續",
|
|
133
133
|
windows_manual_update=(
|
|
134
134
|
"Windows 無法在目前執行中的 {product} 程序內安全更新。\n\n"
|
|
135
|
-
"請關閉所有 {product} 視窗,然後在新的 PowerShell 中執行:\n\n"
|
|
135
|
+
"請關閉所有 {product} 視窗,然後在新的 CMD 或 PowerShell 中執行:\n\n"
|
|
136
136
|
"{command}\n\n"
|
|
137
137
|
"如果目前安裝已損壞,請先執行:\n\n"
|
|
138
138
|
"uv tool uninstall {package}\n\n"
|
|
139
139
|
"然後再次執行安裝命令。"
|
|
140
140
|
),
|
|
141
141
|
windows_update_scheduled=(
|
|
142
|
-
"🚀
|
|
142
|
+
"🚀 已排定背景更新:目前 {product} 程序結束後將自動升級到 {latest},"
|
|
143
143
|
"結果將於下次啟動時顯示。"
|
|
144
144
|
),
|
|
145
145
|
windows_update_result_success=(
|
|
@@ -147,7 +147,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
147
147
|
),
|
|
148
148
|
windows_update_result_failed=(
|
|
149
149
|
"背景更新到 {latest} 失敗(結束碼 {code})。請關閉所有 {product} 視窗後,"
|
|
150
|
-
"在新的 PowerShell 中執行 `{command}` 手動更新。"
|
|
150
|
+
"在新的 CMD 或 PowerShell 中執行 `{command}` 手動更新。"
|
|
151
151
|
),
|
|
152
152
|
windows_update_result_timeout=(
|
|
153
153
|
"背景更新到 {latest} 未執行:{product} 結束未完成,等待逾時。"
|
|
@@ -166,7 +166,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
166
166
|
),
|
|
167
167
|
windows_hint=(
|
|
168
168
|
"✨ 新しいバージョンがあります:{latest}(現在:{current}) "
|
|
169
|
-
"{product} を閉じてから、新しい PowerShell で `{command}` を実行してください。"
|
|
169
|
+
"{product} を閉じてから、新しい CMD または PowerShell で `{command}` を実行してください。"
|
|
170
170
|
),
|
|
171
171
|
title="✨ 新しいバージョンがあります!{current} -> {latest}",
|
|
172
172
|
show_update_command_label="今すぐ更新(終了後に自動実行)",
|
|
@@ -176,14 +176,14 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
176
176
|
continue_label="Enter で続行",
|
|
177
177
|
windows_manual_update=(
|
|
178
178
|
"Windows では、実行中の {product} プロセス内で安全に更新できません。\n\n"
|
|
179
|
-
"すべての {product} ウィンドウを閉じてから、新しい PowerShell で次を実行してください:\n\n"
|
|
179
|
+
"すべての {product} ウィンドウを閉じてから、新しい CMD または PowerShell で次を実行してください:\n\n"
|
|
180
180
|
"{command}\n\n"
|
|
181
181
|
"現在のインストールが壊れている場合は、先に次を実行してください:\n\n"
|
|
182
182
|
"uv tool uninstall {package}\n\n"
|
|
183
183
|
"その後、インストールコマンドをもう一度実行してください。"
|
|
184
184
|
),
|
|
185
185
|
windows_update_scheduled=(
|
|
186
|
-
"🚀
|
|
186
|
+
"🚀 バックグラウンド更新を予約しました:現在の {product} プロセスが終了すると"
|
|
187
187
|
"自動的に {latest} へ更新されます。結果は次回起動時に表示されます。"
|
|
188
188
|
),
|
|
189
189
|
windows_update_result_success=(
|
|
@@ -191,7 +191,7 @@ _MESSAGES: dict[str, UpdateMessages] = {
|
|
|
191
191
|
),
|
|
192
192
|
windows_update_result_failed=(
|
|
193
193
|
"{latest} へのバックグラウンド更新に失敗しました(終了コード {code})。"
|
|
194
|
-
"すべての {product} ウィンドウを閉じてから、新しい PowerShell で `{command}` "
|
|
194
|
+
"すべての {product} ウィンドウを閉じてから、新しい CMD または PowerShell で `{command}` "
|
|
195
195
|
"を実行して手動で更新してください。"
|
|
196
196
|
),
|
|
197
197
|
windows_update_result_timeout=(
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Windows cannot rebuild a running uv tool environment safely: the trampoline
|
|
4
4
|
executable and the venv python.exe can be locked by the running process. The
|
|
5
5
|
Windows update path therefore starts a detached PowerShell process, waits for
|
|
6
|
-
|
|
6
|
+
the launching CLI process to exit, runs uv, and leaves a result file for the
|
|
7
|
+
next launch.
|
|
7
8
|
"""
|
|
8
9
|
|
|
9
10
|
from __future__ import annotations
|
|
@@ -13,6 +14,7 @@ import logging
|
|
|
13
14
|
import os
|
|
14
15
|
import shutil
|
|
15
16
|
import subprocess
|
|
17
|
+
import time
|
|
16
18
|
from contextlib import suppress
|
|
17
19
|
from dataclasses import dataclass
|
|
18
20
|
from pathlib import Path
|
|
@@ -34,6 +36,8 @@ UPDATER_CREATIONFLAGS = (
|
|
|
34
36
|
|
|
35
37
|
_PARENT_WAIT_TIMEOUT_SECONDS = 60
|
|
36
38
|
_POST_PARENT_EXIT_GRACE_MS = 800
|
|
39
|
+
_UPDATER_STARTUP_WAIT_SECONDS = 3.0
|
|
40
|
+
_UPDATER_STARTUP_POLL_SECONDS = 0.05
|
|
37
41
|
_VALID_STATUSES = frozenset({"success", "failed", "timeout"})
|
|
38
42
|
|
|
39
43
|
_SCRIPT_TEMPLATE = """\
|
|
@@ -173,6 +177,23 @@ def _log_path(package: str, updates_dir: Path) -> Path:
|
|
|
173
177
|
return updates_dir / f"{_package_key(package)}.log"
|
|
174
178
|
|
|
175
179
|
|
|
180
|
+
def _wait_for_updater_start(log_file: Path) -> bool:
|
|
181
|
+
"""Return True once the detached helper has started running its script."""
|
|
182
|
+
if log_file.exists():
|
|
183
|
+
return True
|
|
184
|
+
timeout = max(0.0, _UPDATER_STARTUP_WAIT_SECONDS)
|
|
185
|
+
if timeout <= 0.0:
|
|
186
|
+
return False
|
|
187
|
+
deadline = time.monotonic() + timeout
|
|
188
|
+
while True:
|
|
189
|
+
if log_file.exists():
|
|
190
|
+
return True
|
|
191
|
+
remaining = deadline - time.monotonic()
|
|
192
|
+
if remaining <= 0:
|
|
193
|
+
return False
|
|
194
|
+
time.sleep(min(_UPDATER_STARTUP_POLL_SECONDS, remaining))
|
|
195
|
+
|
|
196
|
+
|
|
176
197
|
def _ps_quote(value: str) -> str:
|
|
177
198
|
return "'" + value.replace("'", "''") + "'"
|
|
178
199
|
|
|
@@ -259,8 +280,11 @@ def spawn_detached_updater(
|
|
|
259
280
|
logger.debug("uv executable not found; falling back to manual update copy")
|
|
260
281
|
return False
|
|
261
282
|
script_file = _script_path(target.package, resolved_dir)
|
|
283
|
+
log_file = _log_path(target.package, resolved_dir)
|
|
262
284
|
try:
|
|
263
285
|
resolved_dir.mkdir(parents=True, exist_ok=True)
|
|
286
|
+
with suppress(OSError):
|
|
287
|
+
log_file.unlink(missing_ok=True)
|
|
264
288
|
script_file.write_text(
|
|
265
289
|
build_updater_script(
|
|
266
290
|
info=info,
|
|
@@ -275,6 +299,7 @@ def spawn_detached_updater(
|
|
|
275
299
|
[
|
|
276
300
|
"powershell.exe",
|
|
277
301
|
"-NoProfile",
|
|
302
|
+
"-NonInteractive",
|
|
278
303
|
"-ExecutionPolicy",
|
|
279
304
|
"Bypass",
|
|
280
305
|
"-File",
|
|
@@ -286,6 +311,13 @@ def spawn_detached_updater(
|
|
|
286
311
|
stderr=subprocess.DEVNULL,
|
|
287
312
|
close_fds=True,
|
|
288
313
|
)
|
|
314
|
+
if not _wait_for_updater_start(log_file):
|
|
315
|
+
logger.warning(
|
|
316
|
+
"detached updater did not create startup log within %.1fs: %s",
|
|
317
|
+
_UPDATER_STARTUP_WAIT_SECONDS,
|
|
318
|
+
log_file,
|
|
319
|
+
)
|
|
320
|
+
return False
|
|
289
321
|
except OSError:
|
|
290
322
|
logger.warning("failed to spawn detached updater", exc_info=True)
|
|
291
323
|
with suppress(OSError):
|
|
@@ -339,7 +339,6 @@ class TestCheckUpdate(unittest.IsolatedAsyncioTestCase):
|
|
|
339
339
|
original_run_in_executor = loop.run_in_executor
|
|
340
340
|
|
|
341
341
|
def _run_in_executor(executor, func, *args): # noqa: ANN001
|
|
342
|
-
del func, args
|
|
343
342
|
if executor is None:
|
|
344
343
|
default_executor_calls.append(executor)
|
|
345
344
|
raise AssertionError("update check must not use the default executor")
|
|
@@ -727,7 +726,7 @@ class TestCheckUpdate(unittest.IsolatedAsyncioTestCase):
|
|
|
727
726
|
hint,
|
|
728
727
|
)
|
|
729
728
|
|
|
730
|
-
def
|
|
729
|
+
def test_format_update_hint_supports_cmd_and_powershell_on_windows_zh_cn(self) -> None:
|
|
731
730
|
info = UpdateInfo(
|
|
732
731
|
package="comate-cli",
|
|
733
732
|
current_version="0.3.3",
|
|
@@ -750,6 +749,7 @@ class TestCheckUpdate(unittest.IsolatedAsyncioTestCase):
|
|
|
750
749
|
):
|
|
751
750
|
hint = format_update_hint(info)
|
|
752
751
|
|
|
752
|
+
self.assertIn("CMD", hint)
|
|
753
753
|
self.assertIn("PowerShell", hint)
|
|
754
754
|
self.assertIn("关闭", hint)
|
|
755
755
|
self.assertNotIn("终端", hint)
|
|
@@ -912,6 +912,8 @@ class TestCheckUpdate(unittest.IsolatedAsyncioTestCase):
|
|
|
912
912
|
"uv tool install comate-cli@latest --force --reinstall --refresh-package comate-cli",
|
|
913
913
|
output,
|
|
914
914
|
)
|
|
915
|
+
self.assertIn("CMD", output)
|
|
916
|
+
self.assertIn("PowerShell", output)
|
|
915
917
|
|
|
916
918
|
async def test_windows_update_path_spawns_detached_updater_and_stops_launch(
|
|
917
919
|
self,
|
|
@@ -4,7 +4,7 @@ import json
|
|
|
4
4
|
import tempfile
|
|
5
5
|
import unittest
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from unittest.mock import patch
|
|
7
|
+
from unittest.mock import MagicMock, patch
|
|
8
8
|
|
|
9
9
|
from comate_cli.terminal_agent.update_check import UpdateInfo, UpdateTarget
|
|
10
10
|
|
|
@@ -269,6 +269,16 @@ class TestSpawnDetachedUpdater(unittest.TestCase):
|
|
|
269
269
|
patch.object(windows_updater.subprocess, "Popen") as mock_popen,
|
|
270
270
|
):
|
|
271
271
|
tmp = Path(tmp_str)
|
|
272
|
+
|
|
273
|
+
def _fake_popen(*args, **kwargs):
|
|
274
|
+
del args, kwargs
|
|
275
|
+
(tmp / "acme_cli.log").write_text(
|
|
276
|
+
"updater started parent_pid=4242",
|
|
277
|
+
encoding="utf-8",
|
|
278
|
+
)
|
|
279
|
+
return MagicMock()
|
|
280
|
+
|
|
281
|
+
mock_popen.side_effect = _fake_popen
|
|
272
282
|
ok = windows_updater.spawn_detached_updater(
|
|
273
283
|
_acme_info(), target=_acme_target(), updates_dir=tmp
|
|
274
284
|
)
|
|
@@ -287,6 +297,7 @@ class TestSpawnDetachedUpdater(unittest.TestCase):
|
|
|
287
297
|
[
|
|
288
298
|
"powershell.exe",
|
|
289
299
|
"-NoProfile",
|
|
300
|
+
"-NonInteractive",
|
|
290
301
|
"-ExecutionPolicy",
|
|
291
302
|
"Bypass",
|
|
292
303
|
"-File",
|
|
@@ -301,6 +312,31 @@ class TestSpawnDetachedUpdater(unittest.TestCase):
|
|
|
301
312
|
self.assertEqual(kwargs["stdout"], sp.DEVNULL)
|
|
302
313
|
self.assertEqual(kwargs["stderr"], sp.DEVNULL)
|
|
303
314
|
|
|
315
|
+
def test_spawn_returns_false_when_helper_does_not_create_startup_log(self) -> None:
|
|
316
|
+
from comate_cli.terminal_agent import windows_updater
|
|
317
|
+
|
|
318
|
+
with (
|
|
319
|
+
tempfile.TemporaryDirectory() as tmp_str,
|
|
320
|
+
patch.object(windows_updater.os, "getpid", return_value=4242),
|
|
321
|
+
patch.object(windows_updater.shutil, "which", return_value="C:\\uv\\uv.exe"),
|
|
322
|
+
patch.object(windows_updater.subprocess, "Popen") as mock_popen,
|
|
323
|
+
patch.object(
|
|
324
|
+
windows_updater,
|
|
325
|
+
"_UPDATER_STARTUP_WAIT_SECONDS",
|
|
326
|
+
0.0,
|
|
327
|
+
create=True,
|
|
328
|
+
),
|
|
329
|
+
):
|
|
330
|
+
tmp = Path(tmp_str)
|
|
331
|
+
ok = windows_updater.spawn_detached_updater(
|
|
332
|
+
_acme_info(), target=_acme_target(), updates_dir=tmp
|
|
333
|
+
)
|
|
334
|
+
|
|
335
|
+
self.assertFalse(ok)
|
|
336
|
+
mock_popen.assert_called_once()
|
|
337
|
+
self.assertTrue((tmp / "acme_cli-updater.ps1").exists())
|
|
338
|
+
self.assertFalse((tmp / "acme_cli.log").exists())
|
|
339
|
+
|
|
304
340
|
def test_missing_uv_returns_false_without_script(self) -> None:
|
|
305
341
|
from comate_cli.terminal_agent import windows_updater
|
|
306
342
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|