comate-cli 0.12.6b2__tar.gz → 0.12.7b1__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.12.6b2 → comate_cli-0.12.7b1}/CHANGELOG.md +39 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/CONTEXT.md +8 -6
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/PKG-INFO +30 -2
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/README.md +27 -0
- comate_cli-0.12.7b1/bash_settle_diag.log +41 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/distribution.py +2 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/main.py +76 -6
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/app.py +32 -40
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/session_report.py +24 -7
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/event_renderer.py +115 -18
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/i18n/_en.py +10 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/i18n/_ja.py +10 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/i18n/_zh.py +8 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/i18n/message.py +6 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/job_indicator.py +1 -1
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/jobs_menu.py +6 -3
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/logging_adapter.py +16 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/side_install.py +9 -3
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/skills_menu.py +2 -2
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/status_bar.py +9 -9
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/text_effects.py +17 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_fold.py +33 -3
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_result_formatters.py +29 -20
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_view.py +5 -5
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui.py +11 -9
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/commands.py +57 -11
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/history_sync.py +39 -13
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/input_behavior.py +12 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/render_panels.py +2 -2
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/shell_mode.py +50 -4
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/update_check.py +32 -195
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/update_messages.py +54 -77
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/pyproject.toml +3 -2
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/conftest.py +40 -0
- comate_cli-0.12.7b1/tests/fixtures/mcp_stub_stdio_server.py +16 -0
- comate_cli-0.12.7b1/tests/test_app_disallowed_tools.py +163 -0
- comate_cli-0.12.7b1/tests/test_app_pty_live_tail.py +196 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_session_report.py +142 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer.py +2 -2
- comate_cli-0.12.7b1/tests/test_event_renderer_bash_background.py +140 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_mcp_background.py +58 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_streaming.py +137 -6
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_sync_tool_fold.py +182 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_job_indicator.py +15 -10
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_job_indicator_host.py +29 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_job_indicator_pty.py +6 -5
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_jobs_state.py +5 -4
- comate_cli-0.12.7b1/tests/test_live_output_tail.py +52 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_logging_adapter.py +97 -1
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_main_args.py +102 -1
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_cli_auth.py +8 -2
- comate_cli-0.12.7b1/tests/test_mcp_cli_stdout_encoding.py +123 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_slash_command.py +213 -0
- comate_cli-0.12.7b1/tests/test_plugin_mcp_keeps_disk_servers.py +185 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_slash_commands.py +1 -1
- comate_cli-0.12.7b1/tests/test_print_mode_stdout_encoding.py +141 -0
- comate_cli-0.12.7b1/tests/test_running_tool_live_tail.py +292 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_selection_menu.py +6 -6
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_shell_mode.py +31 -7
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_side_install.py +26 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_skills_slash_command.py +3 -3
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_status_bar.py +17 -15
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_status_bar_mid_turn_refresh.py +1 -1
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_result_formatters.py +62 -1
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_path_upgrade.py +35 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_update_check.py +189 -399
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/uv.lock +5 -3
- comate_cli-0.12.6b2/.agent/artifacts/bash/08b40bf6a68c85059572f3478db27d848acd36a6e8c6b89fa5173927210e7b53.json +0 -12
- comate_cli-0.12.6b2/.agent/artifacts/bash/0ff4f2f1382d2c19ca8d86e01ee8b6768b2fa925bdcf1e57829cecc590120371.txt +0 -1302
- comate_cli-0.12.6b2/.agent/artifacts/bash/1571cd767eb43ae39534d8f53f60bd56a2a537a64ecf8b5d93ee7556ea4cbb54.txt +0 -202
- comate_cli-0.12.6b2/.agent/artifacts/bash/19ac2280798d9988d4bd8e29952989eabf0749b893d4026bf9786169cd50c659.txt +0 -710
- comate_cli-0.12.6b2/.agent/artifacts/bash/24efc545d3f0b694a02cfa8022b8f93be27e57547a4f0661f608c80d9bc78113.txt +0 -7
- comate_cli-0.12.6b2/.agent/artifacts/bash/3d69373ac48a465a06bd30094e4c28921c1201865c27dc0f012768799351c10b.txt +0 -748
- comate_cli-0.12.6b2/.agent/artifacts/bash/46c7def792f8820aff04a0083057d32079d7ccc208e394eb00a440618f4455ba.json +0 -18
- comate_cli-0.12.6b2/.agent/artifacts/bash/594a10eddaf1ea6344dc62d41af7146f6e52471ccf1ee1fba6e61376c3ba5bce.json +0 -16
- comate_cli-0.12.6b2/.agent/artifacts/bash/5e4d793a1bc3ae3b2c7fedb39645e04d3bd6a86ceb064ba99746d6164034942d.json +0 -13
- comate_cli-0.12.6b2/.agent/artifacts/bash/6a28b28d04d8cf003fc6e41560ad05af138aecfdb0f7f9978bf12a1d3b4e353a.json +0 -13
- comate_cli-0.12.6b2/.agent/artifacts/bash/8e9d29f51d07bd7d9cd02aae2cc12c1bd575f3748f6a2b9065dcad75973c1e90.json +0 -13
- comate_cli-0.12.6b2/.agent/artifacts/bash/954f324b297d871035343be09391bc7c5e0df38faf3f4a3a92be92685a9ad4e3.txt +0 -7
- comate_cli-0.12.6b2/.agent/artifacts/bash/a58d73b67de68741d8e4e9e7d212a7e98a7db0b864113fbd2b9056b166095c85.txt +0 -1752
- comate_cli-0.12.6b2/.agent/artifacts/bash/b44535f54c0d62ce9f9fa3a673ccff0f6d17086dce54787da0f8ab910c2ed1c9.json +0 -13
- comate_cli-0.12.6b2/.agent/artifacts/bash/b8f6674b359865d1c0880633f552a30210a60d30d2c11370e9ab0457f65f75a3.txt +0 -708
- comate_cli-0.12.6b2/.agent/artifacts/bash/da3d0964cd50a338b3dedc5212ee6d4d045c04629f62a0e948c905c3ec27ab4c.json +0 -14
- comate_cli-0.12.6b2/.agent/artifacts/bash/dfc071d5c7a17280f23b1875b16a0f38ff61736e5985b2c9e3056f741f17bd5d.json +0 -13
- comate_cli-0.12.6b2/.agent/artifacts/bash/e12f27ecae32f087ea8696b8061c42facb63a91b2b100568f3602cc2f0b6ce60.json +0 -12
- comate_cli-0.12.6b2/.agent/artifacts/bash/fe60ed7a2e79c21b81416fa2e77c827ea64df5ba5b6cd343a9b423731dc15b4d.txt +0 -747
- comate_cli-0.12.6b2/.agent/artifacts/glob/dc28800ddef1229e5c0bd125335ab31d85d5f8aba0ff2713d09829671b70f2ec.json +0 -107
- comate_cli-0.12.6b2/.agent/artifacts/glob/e6fa077dd5e2e19045abf084f97dcfbcbffc1571967a0243ca40ff996d8bc9f2.json +0 -93
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/010b7d94484960699c5c28b5d2ea86d53c2d998a78141c75b834409de64bf25c.txt +0 -63
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0193f8465b3eaba72bb4f4f78d0376ca89a09d96e87bb9b63c4543023c6b5516.txt +0 -44
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/021a341ef368f43394d1e54f24c5865c84aa9f6cbaeec777d0a09ca5431af82b.txt +0 -131
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/03edbaec20870710ae8531b002c837e2c092d53ed8b544d05330cf5fd699dcb4.txt +0 -71
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0499bd5aca13709d7ad1c6ad597adf8ca169359342fec01b6dacb83005854de1.txt +0 -65
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/09c695b86ba43584b134ed6ee26cbe023f58551e579158cf94790644ad6aaa53.txt +0 -148
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0b96a0a521f9d4c0a88fc75a2e5f69e4c4b7be8ea5d73599eab390c88d4098d8.txt +0 -234
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0ba5851c04aaa37f25f6b0a37daa3522754d7865e79b3abf0daf8fca54fc07f7.txt +0 -56
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0beb89f407f205d5b2fdb075c98869ffa5db8e2a3687706e06399d3f58a3278f.txt +0 -66
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0bf5d9171b6ec0a61962ae22ce8109a26abf764c031ddd5c8dcad25c678020ec.txt +0 -35
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0db7a1bd5eb18329885082bc554f4456a5c254b687c25c2b3611a364634badd8.txt +0 -79
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0dd1a484cf5b506de9a8e85db9c9156e7623bc633c07d8805d83768edf1d1b68.txt +0 -567
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/0f48a977857dc6fe0658c5341b8b409205bb6391cc458d19d18f06b1c37e3b8c.txt +0 -52
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1194ded949e902bc25be21bfe63952a98381416bed255dc052b6715ebb81f11e.txt +0 -52
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/134f90a9b26f8bbc6fc602c3a1301623823abec5cb8eb9680ea060bea5d78b07.txt +0 -331
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1461fb3572a606968e5d9738ec65dfe0cf4616ead5696f2b47dd36dd12cd8346.txt +0 -326
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/14d7326d6dc701ca7e331efa97cede45e6b53b98c5f1a784d438db4bccb2853a.txt +0 -66
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/14f7537d8a7090ad8f6531bd9ecfadd9d727f2bf0c620afde878e8765d596cc8.txt +0 -258
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/176241ffb6774d19531593769c50349debb431f8c888f8e4fb46178af6f8f9e6.txt +0 -161
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/17e25775e4ce9b0fcb34b7af659d7d72f53262b1b59c21190f450c4eda8bb6a2.txt +0 -198
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1a9cea8b7b788598502df8771b6c03f6b393613e1d911f04959ec59f3b7e9869.txt +0 -40
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1b2ee53405771f837aa234d5a8d128c3f1fd6f16306ec5c71e30df1a55f0eab8.txt +0 -145
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1c265542a4a6dac9cdc557ba271a9022d5f5bfa044d7ae4201a302ee59517542.txt +0 -79
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1cf1dda756728f6ba6712be0349c949ac8487d9515bfd8f8941cd53fd96bea76.txt +0 -268
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1dd72f0779d1616cc4683de1565d1cc4242dee18987cfe5c9ead6ec445ab952f.txt +0 -399
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1f0f6484841d5396cfb19f060ada806f54d62594a2a6f81af4ed70d379bdb82e.txt +0 -188
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/1f4854573b520c1a6e0fb4cd8488263f823a61a6867e4c7d92cdce74b4cb4d1b.txt +0 -35
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/200787ede572c7eee4ff7cd579a936b8ab0ecf6f25bb2f6ac89dbd04fdac1ef7.txt +0 -97
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/212ec2839d46d8d2f64dbbb9e0a4ed8b962178113fe8dfc1f29ccbc02fd46e14.txt +0 -80
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/22fb4c5aa3fea197c71b90824449eca45095da4bd1c7bc76dbfb689abcd5cc49.txt +0 -212
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/2932089e3759921321ff908eb7998bb849c234380e04f3f7a5171fc9f432ef2f.txt +0 -54
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/29cd9403e9ab3dac5cc3a95fa0ede278decb57cf7183eaad8e29aed9903aba26.txt +0 -95
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/2aa8195d533da9ee878d5ff7e7c4574ad9dc54c57e85f0be801d9aa5ba7e9d65.txt +0 -61
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/2df4412a93598e76038f722e112a5519bbca58e31a27a471346aecf3c5d486b8.txt +0 -647
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/2f04b6777f986f64bbdcdd828eb4a7fa5aa67872fc0d61e891d2af9ec51a6fb8.txt +0 -71
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/3114f2804efe81842b21a85a4bc9eb2ef9f975c28e9220564e6cd2185fed11f7.txt +0 -440
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/3240cf436c636223d89029d2859dc8b8bbc059ea3b8b9a3cdcececb6e75d6da9.txt +0 -57
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/3a03ca37d32ea15316bb77147116bf8eeaa55ea255b7819f1b6350e80cd38481.txt +0 -60
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/3b2c13e633a6c9633f53342cc76ec87e4863d24fde2312e88b1bd546e194666f.txt +0 -341
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/4274f27741d2a37b85ea968754ede69180f59300532f1c8e2c8bcc6cb57d93f8.txt +0 -115
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/42c75defbb53e48d8521927f945412100cd487ad492ee1a57a57df3f64831096.txt +0 -24
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/435267ab04edbf55d21c169170faf8eca36f065abb282e9fd731cbf500763757.txt +0 -150
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/448d3ded3b00200238f3782ed0fb5fbe30166139308cfa6cd3e31867f3cf941e.txt +0 -411
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/449ac499b090311eb8b5594f7646d84f67e9da1fad4ad968b772d4d8ab404141.txt +0 -134
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/45f0d5dda63863f163106fbf234ba98c6b2ba88ee63c308b922b6b18b9d6d179.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/48a5ea12ce666954aeb22afab26d199f9ceb7c5db99531077bed0298837a4777.txt +0 -399
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/4d6a33d9eaeb38ed7558b7e0162b399580b211cedefdd2a4126b6363b0616b9a.txt +0 -152
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/54822f93bd0f279a2dc67f57f4b49a549938346f606c3ea62f76573ed7c19729.txt +0 -218
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5529a626789de692d52c89bc7fc6a60cf8f97522641ca7c20459f76a3107f841.txt +0 -59
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5592b8582682415bf399fd16bc4e354a8af6979acc7ee5f7d8161b6a2a090a6e.txt +0 -66
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5697b946b47f9c271273606510662d25c579a1c3cd66a3f73f845178626adf8c.txt +0 -60
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/571cb6737be8d74e05976da2ba022ea1a5e191bdfeafa40b22834b61aca984ec.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/592ea99ad61dc416029a0a68a9ea47c765d706d7ffbae9cd697405da2dd8a9ec.txt +0 -120
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5c0df9216c4f53dc1c2d786266a137dbe326ab4363ddc40307fb21a00a9f94ac.txt +0 -163
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5ce22f90e1ec6217b95997fad94cc926c12ffdd6f3ef3e278bf0b89ecbcc6d62.txt +0 -57
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5dc1de7af87cb4091467bc5f0265745e602853afdc3863c267b6e90a26f412c9.txt +0 -609
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5e648bf7034fb52a2216f915aa95cfa96f6f5038e27f521266a23f2d800fa5bc.txt +0 -198
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/5fff0b4efc09b785f1ee5dee2e5d7ad4e247bdb9c93f41b5814c9db1c04cb8d7.txt +0 -220
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6249573679ee1a300a25baec32ea72ee34eeffb45f73f676cc0b0f0d11a2d31d.txt +0 -258
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6258f866ee46c82b3b4584aafd49625b86793f1324318970124c849013397865.txt +0 -75
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/640e6e9edd64f8ed1f4928e9af1f9890c17386cdbc86d329cc2256628e7c50bb.txt +0 -91
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/643717af84fd6f09302e9656f696f853b85dc10bdd144cc4b3ea064c0ee39056.txt +0 -94
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/65ed38867aa3162db6899d4f1b76907655d6af699cff567e2b776ec997f65b9e.txt +0 -44
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/67196d9894f03b07594d654caf016388b13842a7b3d11466a7b7532727d11bfa.txt +0 -58
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6775046194b93d29bf37cb7185f9b808ebd4938f14659e76bfe2daf6dcbbb135.txt +0 -73
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/68ac5bf6206064b6d2d7c44f800cc58795c9ea0362132c438fa33c53b9586aa9.txt +0 -149
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6c6f4e1f9e1d09af3d8a7c10dd243df92781e6ebbbf4f1215c189d74b7a16e01.txt +0 -151
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6cfadf5d61982d2bb941416d5fefc22202df0bd4dde584321be50716843f2a4e.txt +0 -90
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6dbade43d62180ae1367c70744d985615fe64768efba5c77317ea4c349aa7958.txt +0 -134
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/6e20e5b86fbf934bbe180ab38a81e259006f0fc43b4d650820994dea3ead8075.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/705ec2d0ab89a76fbc02a18d23d8bf10b26eebd5144911cb398e46e2374524cf.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/73f1fdec89c242b1c28093dcc12e830a4467c5c5197286879a25feda693b3ede.txt +0 -109
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/745e2b17c9b412d9d89d380626ceb2eb088b2d24e1a4f26be948061a8daaccdd.txt +0 -66
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/74bf1dc40d9b884a5312567e5bc923389e9bcd10e9efa1eb87a01c50b1e11ef1.txt +0 -152
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/758f6bd9fa04989fe968fb80567eb4a4d028e9dd6ca9c482c0a919a7c9da6dad.txt +0 -59
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/762dfb3969ac05cfd8ed58ea34abea8b4e4756ec5c8ef7496e49bb6f824439af.txt +0 -61
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/7880b26ed67f9abd746b4e5c7ccc009f97a16cc5245b4fb04e9e51faf2e99b43.txt +0 -61
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/7b530ebb0d7be5cb364886c326ac09fedb208520170ec424c0d66f2a049cd735.txt +0 -164
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/7d4e0f51f0fa21846dfda5ceebb79cf53d0e8abf1b2f86ecd09ddf06f85cd3bc.txt +0 -14
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/7d79d72b0ff97ae7703118b1c3edc22a3e9aad968baaeb1210281e1b3e0fdf75.txt +0 -261
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/7f6ae5a9bc2404aef026b13c8a360c1c687ea1c1509b65429239928d9f8560bb.txt +0 -91
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/81d4cf35489f009f64aba1f01c0a9c73ac256391d5369dbbae2b3f92c912afb0.txt +0 -618
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/8261ffc4381d4293b7675eabe7956c75c75890e45387cbfba52dd2f1fdb12939.txt +0 -176
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/84edad480d7623c75eb5026afb01a8381f7ed22a15ba43ddb89107821ece3893.txt +0 -667
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/89124ab34d06feebcf91d5fa7fd8d3f36493f0d62ae79b0f339f87a229333a3b.txt +0 -147
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/8a1456d96d430228501f6c305ba67912312bfdd48b2841e2456160a02498ea5b.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/8bc79492c38d7124f4214f0437350fb1cfadaf6635bc4391c69fe64c6e8f6096.txt +0 -4
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/8c95072ee427abdb9a07444bf26dc78e72cf93ed9e898d77dd9aa643f6f5b913.txt +0 -58
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/8df1e210850f75543f8fb545a963ec57b161dca48a8deba2241611dd6b9fd4eb.txt +0 -59
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/9388950ba2ced7980db5beb500eec752bdf25fbe59b6a95ed8c3bee218e5fb58.txt +0 -73
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/97081bbfef1b6bbdfa1d160d122767a871db324afd40d2f3c625f9cd8b2e23f3.txt +0 -65
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/98060d6195be5fb98d6098eb947853a25a305bce1ebf5a4218ffb791379b9dc6.txt +0 -161
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/98b2832dd79c7972eb441b3102f1f6aa40ccb867d7771ec238142564a3b4a117.txt +0 -113
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/98b76a32c3a05f7d91b8b81518f28b613f7ccb373575858fd6aa2711ddbc382e.txt +0 -85
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/9a5fd2d8be3b1e8ef2343f9a19bd75adba3687b2cb8234ee341d6cdc3ab1f361.txt +0 -97
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/9c80158f162aadb87f84195c4496a1c24f68ceca3535852835de9cf4e428d028.txt +0 -6
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/9d34f05ccc7150bc7a1878d112f08fafbaa4d4e420dbd7f1129dc1046c697e39.txt +0 -166
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/a9594b8f4f25e5b378fcc883960fa7afb2dea9d80851cb5d52f18d856be95219.txt +0 -72
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/aa8a10a861a188abbbbbe27b7a52f539442bb273a1ad9b1aa1c31910cfad5561.txt +0 -20
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/abacaab899684c1677f97720dcfc4a6c1fbf98d2cfa44e25f040959586ccaa20.txt +0 -157
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ac65e45db9f2c51a484173eb31b907c1cb007c5cacca21396790f5345968ca72.txt +0 -145
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ac8641710e4c96567edad6364d218a08630ff20af9f075f61c20d013f9369648.txt +0 -79
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ac94d3b218537471b6ac89a8da0c454d9d25801ffd4c88ea862bf0893c5e0812.txt +0 -206
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ad798be6fa338bd3ee7fc49048192e39d3b2b78837051208815b817e5ca96793.txt +0 -52
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b04c0955b68f788125018525e308e82987ada00d3943e21cb159f577319ccf11.txt +0 -103
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b1b9c6d1eefe14c5076aa214fe4f98242f99ed9b146214d0305224539d8e78a1.txt +0 -558
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b28aa6d5d336c7da99b72949fa0e09580cde07499cb1d7e611f14e2b426fb9fe.txt +0 -184
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b39bb289db5f9e4f31c67766f5e08333d10f384a2d5f6b71fb44522bc4f17f80.txt +0 -175
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b64736bbdd8fe7ca1ff2ef98558f16f145ca437255ccebca44bf1041b0afbd55.txt +0 -141
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b898cd80aa00ebdfda4ef314a4e245e62ee96c21935a7f332243a67b0072d1a0.txt +0 -172
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/b9c8c69d370fcd4291d5d1ed72b9f823df340a9d4f904c3965cca93c257294f2.txt +0 -119
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/c11eb234db46678fa7ac871e396a067c238bd37414fad52e3be433933ffe7878.txt +0 -852
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/c1a4508b9a74b3d1649f25dbd474780e6212ced036bbca6b4aac06d324ff10e9.txt +0 -71
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/c3c33582bb37fb71235e9d0fd2b8d2cc8c926cfcb014261356ea917db6417ebd.txt +0 -96
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/c42bd0a52664189ec6fafa76458456048c5c73907bbadddd205371b55def9393.txt +0 -104
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/c63907ae1cb41e59de75df3d6e0dff27db2ce2434cac5f283a428e4fd9bee301.txt +0 -66
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/d2402b2d42c975305d4866353935ce285eb67ff7f2a2d74ee9be559d022c86f6.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/d4e8e439058ef24fb0671ee6674a5b854c17e0b93b012d2dbe8ed85928afe560.txt +0 -102
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/d8c8f51da7a2bc8977320248883adabe9a4d9da131e99f7dfe18a9c826b1c8b1.txt +0 -123
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/db71617421ab524615206740825824b73f3c407c93a18e2a01d8c80789c02b3c.txt +0 -409
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/dbd79a71f323da5dc1570d5c8d6b99e73b642128697b6c51ab240379fa74f763.txt +0 -71
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/de09b36cc3fd06274fcdbfc7d431f170afe40b4fa8ddd5c0a281581ee03eabec.txt +0 -58
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/dfd45c97a1da7d27da6790c1b24048f584ed4f831e971cf3f4c366b7d8687980.txt +0 -385
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e138fb7f4303433003aeeaf67b15d783b253696d3d24fd7dfacc50f619db04fd.txt +0 -90
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e1ca31c715894314164641ba9d80dc13f7e8e146e8f77a995bc3650057ee3ba3.txt +0 -44
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e6f0fb5f2688faeaa4875724c32f27e79d8a9710bbb91d2a950b84b3481fc374.txt +0 -90
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e707578cd4b2132eae2e3bdfa918555c2a8f1f4ac52fd6dbc6fc9a347c44221b.txt +0 -183
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e74f8ab779842b213be16f0a58ee7c973c6a4eb4e7c6b56b4087e3016183f8ef.txt +0 -89
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/e80bedeb209049fe7a38ade5aa7976dc3fe2ecbeb6cd150a8fa44489172d6e9b.txt +0 -43
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ea0fc86903a5bd1f02832cc3eed4446d55e16dc7df0298c5d74afa56a89a8ca7.txt +0 -199
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/eab81978291f4725b9433192c5b7f4b5409cdcdeb80ffab9884c79ef230bdcdd.txt +0 -411
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ef7bd4368558b2b411c410c936554d99ecc0f2fe647a970208f8b0c986e3921c.txt +0 -74
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f04828b2b54922581d7cde5351807a457896b2940fd748e8d706fd5dc4bed971.txt +0 -331
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f04b4f70fe5292dc485164699342c03f3cf4715ba0d5efa815cb7a332dd78c0b.txt +0 -76
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f0b079f5b4d5a0be065ccb03a2471835cab5b3fd4452439bbd3bf46d401d8a3a.txt +0 -24
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f2012bd41aa48cd2e3f56611f32b041bd41863b681a79d5ff5f515a97e7e1ddc.txt +0 -153
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f35c437708355261ca868cf38ade97384e86f24de9aab20849113dc78eb8564c.txt +0 -142
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f638dfe4edbde834bd968f4d479c1c535dff1dfac10f3e003ec8673d5eca5864.txt +0 -94
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/f916ed291897b4afb5f8a55f5e333a53f11540e2ade24f691a7828885aa77a32.txt +0 -77
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/fa3b737ee93d45bfff6e78245a5ecad2476dc7010c75c772abc1c272cddae072.txt +0 -31
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/fd1133b3a420133590ffb1c050a65477a4751902ca9b832db1c23a6fb90200b8.txt +0 -127
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/fe3df7b68f7041d210336363f5b11faf963427dbcf4027172e19db05f7b24fa1.txt +0 -127
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ff07c3d10b81977aa6c7769465dbab4754e11bd84225afba1b17eff2824ad28d.txt +0 -70
- comate_cli-0.12.6b2/.agent/artifacts/grep_content/ff6b896f93f2ac018a3af519be3001d1e4c8ca6ef9ae3e051aa646b409b6773f.txt +0 -85
- comate_cli-0.12.6b2/.agent/artifacts/index.json +0 -1715
- comate_cli-0.12.6b2/.agent/artifacts/ls/4f2cd109869e06f70f28f7aaaa3163fea4731bbb92dc4da8ac25177d6f122f87.json +0 -719
- comate_cli-0.12.6b2/.agent/artifacts/ls/768197391db12061fb74d56cad07e9331db0bd832503b5e40be76b49208a111a.json +0 -53
- comate_cli-0.12.6b2/.agent/artifacts/ls/a560ae7492ac913282b703abd48897905727acc058d0f9346b17d450f32e1a8a.json +0 -755
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/01f0c4c39cc01ec7d59077fa8bfca183cbd6c93d0a7083261f228badca115eba.txt +0 -16
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/03079608ffe5b120094798aababb67671a20f8466c0197044eacaea56fa12d30.txt +0 -713
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/08e5d1cdde9e2d6dff5435ee87c6710470709d83c271185eaaaa6d652068d80e.txt +0 -379
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/10f74765725e10bd94d92eb25cea495ea8cb9d9151397b05b200ed44a852d882.txt +0 -16
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/3faa3ddc36161e84da99e18707d61b7ffbbbeb8217c28a55a027134f8def5d17.txt +0 -1602
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/45cd4ad764e19e3fc0481b8d8649c235ae51634eb41da0806f9f00ab1bdb640d.txt +0 -1833
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/4fdacfc564ff558dd602f672edfbb4a72494d8e3c8937bcf0a3d15e085c4a0b7.txt +0 -1745
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/50eb11fb5aa96e54b2a7e68c0b9278ec3c07d222bad92270f4a51df58ca69e03.txt +0 -460
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/5a1f18c61191f6b4c1635363748a2aca49ad2183f046035728b5c23ee3df1123.txt +0 -379
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/72718c187cf24910d3c21d7e719e004efa27b4f5d7315bbe2b9a33e2494cc0f9.txt +0 -433
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/7fa851f7100b6e3e652604de11be2767b7a679aea40e941b0b1218478e5935ed.txt +0 -1039
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/9d3ace7b725f6aa5809ca4bc298c5ac3d022cb92c29684c7709d63c9c5fd2ad4.txt +0 -1814
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/dbeea3cc8bd22fdb703675e202063e7f4ce21ef00c5c83f74268cd6328ad912d.txt +0 -1694
- comate_cli-0.12.6b2/.agent/artifacts/tool_result/ea66ecb02621262c26d0368c108d2f2f94e2d1f75dea6b38bf958c5bdbaa2ee7.txt +0 -710
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/2669c40a92ce6395790ae997503be646bdc3af4a49f799b38d8380e5ecd1e015.md +0 -1241
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/5701edea87e370ce51349413bcba507833f48f2ad7337eef3deccc82c7d45a8d.md +0 -2
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/5c0eeec3d9ab0a6881d12ebd5a95b6b71b90d47640e38c914232d75704332f54.md +0 -2
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/80baa6870df61f51b68fadde829aa2ab889fd487f8a8171db36ea3b67ded24db.md +0 -3
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/915acd44f3846631527a3cd62e81d9908bb7e8769b970208ffa3326c65df8778.md +0 -2072
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/a758c9f6242610e875e36aed11e99ac337359cbe512df15db6544504fa9e68b8.md +0 -18
- comate_cli-0.12.6b2/.agent/artifacts/webfetch/eca7d820f7461f58ee9b2b1e931842de54cd1ec023eca7a27e3bfb387efc6aa2.md +0 -1
- comate_cli-0.12.6b2/.agent/skills/powerpoint/SKILL.md +0 -36
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/html2pptx.md +0 -625
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/mce/mc.xsd +0 -75
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2010.xsd +0 -560
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2012.xsd +0 -67
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-2018.xsd +0 -14
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cex-2018.xsd +0 -20
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-cid-2016.xsd +0 -13
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/schemas/microsoft/wml-symex-2015.xsd +0 -8
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/pack.py +0 -159
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/unpack.py +0 -29
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/validate.py +0 -69
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/validation/base.py +0 -951
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/validation/docx.py +0 -274
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/validation/pptx.py +0 -315
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml/scripts/validation/redlining.py +0 -279
- comate_cli-0.12.6b2/.agent/skills/powerpoint/references/ooxml.md +0 -427
- comate_cli-0.12.6b2/.agent/skills/powerpoint/scripts/html2pptx.js +0 -979
- comate_cli-0.12.6b2/.agent/skills/powerpoint/scripts/inventory.py +0 -1020
- comate_cli-0.12.6b2/.agent/skills/powerpoint/scripts/rearrange.py +0 -231
- comate_cli-0.12.6b2/.agent/skills/powerpoint/scripts/replace.py +0 -385
- comate_cli-0.12.6b2/.agent/skills/powerpoint/scripts/thumbnail.py +0 -450
- comate_cli-0.12.6b2/dist-comate/.gitignore +0 -1
- comate_cli-0.12.6b2/dist-comate/comate_cli-0.7.10-py3-none-any.whl +0 -0
- comate_cli-0.12.6b2/dist-comate/comate_cli-0.7.10.tar.gz +0 -0
- comate_cli-0.12.6b2/dist-hico/.gitignore +0 -1
- comate_cli-0.12.6b2/dist-hico/hico_cli-0.7.17-py3-none-any.whl +0 -0
- comate_cli-0.12.6b2/dist-hico/hico_cli-0.7.17.tar.gz +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/.agent/scheduled_prompts.json +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/.gitignore +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/.python-version +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/__main__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/device_identity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/mcp_cli.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/animations.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/approval_bridge.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/approval_content_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/assistant_render.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/announcements.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/client.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/feedback.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/provider_snapshot.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/rating.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/runtime.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/session_title.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/tasks.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/bash_command_display.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/browser_open.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/builtin_commands/.keep +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/builtin_commands/commit.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/builtin_commands/implement-plan.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/builtin_commands/learn.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/builtin_commands/open-pr.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/clipboard_image.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/clipboard_text.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/codenames.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/edit_session.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/picker_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config/store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/config_check.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/console_profile.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/context_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/effort_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/effort_ruler.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/effort_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/env_utils.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/error_display.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/exit_confirm_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/exit_watchdog.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/figures.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/file_ref_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/focus_events.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/fragment_utils.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/goal_edit_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/goal_resume_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/history_printer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/i18n/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/image_chips.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/input_geometry.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/job_activity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/jobs_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/locale.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/logging_file_handler.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/logo.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/loop_freeze_watchdog.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/markdown_render.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/mcp_serve.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/mention_completer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/menu_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/message_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/model_tier_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/models.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/output_style_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/auto_update_runner.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/auto_update_store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/components/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/components/detail_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/components/plugin_list.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/components/search_box.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/components/tab_bar.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/marketplace_install_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/operation_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/plugin_picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/tabs/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/tabs/discover_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/tabs/errors_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/tabs/installed_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/plugins/tabs/marketplaces_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/preflight.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/preflight_wizard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/preflight_wizard_ui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/print_mode.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/question_broker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/question_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/recap/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/recap/controller.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/resume_picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/resume_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/resume_selector.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/rpc_commands.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/rpc_relay.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/rpc_ws.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/scm_request_status.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/selection_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/sigint_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/skill_slash_input.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/slash_commands.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/startup.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/startup_profile.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/statusline/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/statusline/model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/statusline/picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/statusline/picker_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/statusline/store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/stream_pacer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/suggestion/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/suggestion/controller.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/synchronized_output.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/theme.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tip_highlight.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tips.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_approval_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_fold_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_result_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_result_store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tool_result_viewer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/transcript_viewer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/approval_queue.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/btw_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/mcp_auth_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/mcp_connecting_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/resize_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/run_clock.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/ultracode_keyword.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/workflows_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/workflows_panel_model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_title.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/update_cli.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/docs/cli-rpc-stdio-guide.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/docs/release-notes/0.12.3.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/docs/startup-performance.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/docs/superpowers/plans/2026-07-07-tui-first-repaint-before-sdk-submit.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/docs/superpowers/plans/2026-07-07-windows-update-manual-rollback.md +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/_fake_anthropic_server.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/_rpc_ws_client.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_config_exit.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_edit_session.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_picker_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_picker_ui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_roundtrip.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_runtime_settings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_skills_denylist_migration.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_store_load.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/config/test_store_save.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/fixtures/exit_watchdog_child.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/fixtures/fake_mcp_misbehaving_stdout.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/recap/test_idle_recap_controller.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/recap/test_recap_history_rendering.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/recap/test_tui_idle_recap_integration.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/statusline/__init__.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/statusline/test_model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/statusline/test_picker_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/statusline/test_store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/suggestion/test_next_step_suggestion_controller.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/suggestion/test_next_step_suggestion_render.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/suggestion/test_tab_accepts_next_step_suggestion.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/suggestion/test_tui_next_step_suggestion_integration.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_animations_styles.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_animator_shuffle.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_config_check_gate.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_exit_lifecycle.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_mcp_needs_auth_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_mcp_preload.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_mcp_preload_kick.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_preflight_gate.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_print_mode.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_profile_threading.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_pty_ctrl_b.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_pty_ctrl_c_exit.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_pty_shell_mode.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_pty_smoke.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_shutdown.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_startup_latency.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_startup_order.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_token_cost_config.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_app_usage_line.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_approval_bridge.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_approval_content_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_announcements.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_client.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_feedback.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_provider_snapshot.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_rating.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_backend_tasks.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_btw_slash_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_builtin_marketplaces.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_busy_slash_gating.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_cli_project_root.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_clipboard_chip_restore.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_clipboard_image_reader.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_clipboard_text.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_commands_system_messages.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_compact_command_semantics.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_completion_context_activation.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_completion_status_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_config_check.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_console_profile.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_context_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_context_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_context_view_tool_search.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ctrl_b_background.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ctrl_c_clear_input.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_custom_slash_commands.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_device_identity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_discover_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_distribution_contract.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_drain_frame_atomicity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_effort_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_effort_menu_frame_rate.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_effort_ruler.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_effort_slash_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_effort_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_errors_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_approval_wait.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_boundary.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_budget_floor.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_e2e.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_fixed_overhead.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_idle_prune.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_jobs.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_log_boundary.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_log_queue.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_oversized_tools.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_provider_overflow.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_shell.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_stream_pacing.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_stream_staging.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_tool_args_progress.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_tool_fold.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_event_renderer_tool_search_notice.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_exit_confirm_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_exit_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_exit_watchdog.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_exit_watchdog_subprocess.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_file_ref_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_focus_events.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_format_error.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_edit_handlers.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_edit_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_paused_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_resume_tui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_resume_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_goal_slash_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_handle_error.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_drain_throttle.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_printer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_printer_log.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_printer_styles.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_printer_subtitle_position.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_printer_tool_fold.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_history_sync.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_i18n.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_image_chip_deletion.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_image_chips.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_image_preprocess_offload_lag.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_import_weight.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_input_behavior.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_input_history.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_input_separator_counter.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_installed_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_interrupt_exit_semantics.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_job_activity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_jobs_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_jobs_menu_host.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_jobs_menu_pty.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_key_bindings_system_messages.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_layout_coordinator.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_loading_line_fragments.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_loading_modal_suppression.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_loading_tip_picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_logging_file_handler.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_logo.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_loop_freeze_watchdog.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_main_args_yolo.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_main_profile_entry.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_markdown_render.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_marketplace_add_commands.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_marketplace_install_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_marketplaces_tab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_auth_panel_pty.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_cli.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_cli_scope_defaults.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_jobs_pty.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_panel_auth.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mcp_serve.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_mention_completer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_menu_cursor_unification.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_menu_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_menu_panel_pty.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_message_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_modal_freeze_timing.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_modal_panel_visibility.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_model_switch_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_model_tier_style.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_no_raw_colors.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_output_style_slash_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_permission_mode_cycle.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_auto_update_runner.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_auto_update_store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_auto_update_tui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_operation_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_plugin_tui_components.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_preflight.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_preflight_copilot.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_preflight_wizard_ui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_print_mode_monitor_cap.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_pty_output_integrity.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_question_broker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_question_key_bindings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_question_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_resize_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_resume_picker.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_resume_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_resume_selector.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rewind_command_semantics.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_mode_logging.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_relay_dial_out.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_relay_e2e_smoke.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_relay_process_smoke.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_v4_stdio_smoke.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_v4_ws_smoke.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_rpc_ws_bind_failure.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_run_clock.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_running_tool_status_line.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_scm_request_status.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_scrollback_write_encoding.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_session_auto_title.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_session_query_token_summary.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_settings_write_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_shutdown_noise_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_shutdown_noise_integration.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_sigint_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_sigint_key_binding.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_skill_slash_input.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_slash_add_dir.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_slash_argument_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_slash_clear.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_slash_completer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_slash_registry.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_startup_import_budget.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_startup_profile.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_status_bar_request_status.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_status_bar_transient.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_stream_pacer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_stream_pacing_tick.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_stream_staging_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_style_class_coverage.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_synchronized_output.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tab_title.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_task_panel_format.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_task_panel_key_bindings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_task_panel_rendering.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_task_poll.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_terminal_title.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_theme.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tip_highlight.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tips.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_todo_panel_busy_gating.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_approval_key_bindings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_approval_tui.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_approval_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_approval_view_workflow.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_call_protection.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_fold.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_fold_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_fold_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_result_state.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_result_store.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_result_viewer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_result_viewer_key_bindings.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_view.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tool_view_styles.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_transcript_viewer.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_transcript_viewer_record_matching.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_transcript_viewer_tool_fold.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_builtin_slash_chain.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_deferred_prewarm.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_elapsed_status.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_esc_queue.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_exit_idempotence.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_exit_paced_tail.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_exit_pending_logs.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_hot_reload.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_chip_retention.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_chip_seed.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_paste.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_restore.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_image_submit.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_interrupt_queue_recall.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_llm_retry_panel.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_loading_tip_rotation.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_local_interactive_barrier.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_mcp_init_gate.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_paste_history_persistence.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_paste_newline_guard.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_paste_placeholder.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_plugin_load.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_provider_error_shield.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_queue_pop_images.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_queue_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_queue_sdk_source.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_replace_session_resume_hint.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_scheduled_fire_log.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_scratchpad_fold_wiring.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_send_undo_window.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_session_observers.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_shutdown_cancel_propagation.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_split_invariance.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_startup_latency.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_surrogate_repair.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_thinking_display.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_tool_result_registry_lifecycle.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_tui_window_too_small_fallback.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ui_mode_derivation.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ui_tick_exception_isolation.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ultracode_keyword.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ultracode_keyword_frame_rate.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ultracode_keyword_submit.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_ultracode_shimmer_render.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_update_cli.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_upstream_surrogate_merge_characterization.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_usage_command.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_wellformed_terminal_input.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_whitelabel_clear_logo.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_windows_sigint_console.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_workflows_menu.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_workflows_menu_host.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_workflows_menu_pty.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_workflows_panel_model.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_wrap_user_text.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tests/test_zipapp_launcher_path.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/diagnose_windows_shim_rename.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/logo_lab.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/nico_preview.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/probe_conhost_char_width.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/probe_conhost_render_replay.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/startup_bench.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/transcript_viewer_bench.py +0 -0
- {comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/tools/verify_windows_self_update_semantics.py +0 -0
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
### Added
|
|
6
6
|
|
|
7
|
+
- `--disallowed-tools <names>` 启动参数:本次会话不把这些 tool 发给模型,子 agent 也拿不到(进入 SDK 的 `AgentConfig.disallowed_tools`)。名字逗号分隔,参数可重复,结果按出现顺序合并去重;只认精确名字,MCP tool 写 `mcp__<server>__<tool>`。TUI、`resume`、`--rpc-stdio`、`--rpc-ws`、`--rpc-relay` 都生效(RPC 下对整个进程生效);`-p` 下与它自带的 `SendMessage` 取并集。以下情况都在启动前报错退出:值为空、含 `*`、写了 `Agent` 或 `Skill`(这两个去掉后会话无法创建)、内置名拼错或大小写不对(`mcp__` 开头的名字不检查,MCP 在启动后才连接)。`comate mcp serve` 不支持。
|
|
8
|
+
- 运行中的 Bash 显示 Live Output Tail:模型调用的 Bash 运行时,底部 running-tool 面板每秒读取一次最近输出,在签名行与 Running 状态行之间显示最多 3 个非空行(第一行带 `⎿`),`\r` 覆写的进度条只显示最后一段;`!` 命令活动区从 5 行改为 3 行。两处共用同一套行处理:丢空行、长行按显示宽度截断加 `…` 不折行(中文 / emoji 占 2 列)。命令结束、ctrl+b 转后台或中断后尾部立即消失,不进滚动区;折叠的 Bash 与子 agent 的 Bash 不受影响。
|
|
7
9
|
- Interpreter Migration(macOS/Linux):CLI 不在 Python 3.12 上、并且没有待更新的新版本时,第一次启动在界面之前显示一行提示,之后的启动显示全屏提示,只有「立即迁移」和「跳过」。「立即迁移」把**当前版本**(`<包名>==<当前版本>`,带发行版的安装参数)用 `--python 3.12` 重装,成功后提示重启,本次启动停止;失败只显示一行原因(uv 输出的最后一行),继续在当前 Python 上进入界面。「跳过」不记住,下次启动再问。已经在 3.12、editable 安装、PATH 里没有 uv、Windows 都不提示;有待更新的新版本时只显示更新提示(接受更新会顺带迁移到 3.12)。文案四种语言齐全。
|
|
10
|
+
- 白牌 Python 下载镜像:发行版 profile 的 `UpdateSource` 新增可选字段 `python_install_mirror`。设置后,CLI 运行的 uv 安装命令(macOS/Linux 的 Self-Update 与 Interpreter Migration、Windows 旁装)在子进程环境里设 `UV_PYTHON_INSTALL_MIRROR` 为这个值,不看 locale,并且盖过简中用户的 npmmirror;用户自己设置的 `UV_PYTHON_INSTALL_MIRROR` 仍然优先。Windows 降级给出手动命令时,命令上方多出 PowerShell 与 CMD 两种设置镜像的写法,命令本身不变;文案四种语言齐全。公网 comate 不设置这个字段,行为不变(ADR 0056)。
|
|
8
11
|
- Event loop 冻结看门狗:界面动画 / 计时停住超过 2 秒时,独立线程把主线程当时的调用栈连同最近的首轮阶段名、busy / staging / 动画状态写进 `~/.comate/logs/agent.log`(WARNING),同一次冻结在 2 秒、5 秒、15 秒各记一次;默认开启,设 `COMATE_TUI_LOOP_WATCHDOG=0` 关闭。原有的「TUI event loop lag detected」日志现在带阶段名,且空闲态(无请求、无动画)的停顿超过 2 秒也记一条 INFO,不再静默(阈值 `AGENT_SDK_TUI_EVENT_LOOP_IDLE_LAG_THRESHOLD_S`)。此前冻结日志只能说明停了多久,说不出停在哪,多次 3–37 秒冻结因此无法归因。
|
|
9
12
|
- 思考时长:隐藏 thinking 时,一段思考正常结束后,loading 行括号里的呼吸黄 badge 换成静态暗灰的时长短语,显示 3 秒后消失。短语与 badge 逐档对应:`thought for 8s with high effort`(max / xhigh / high 同句式)、`ultra thought for 8s`、`thought for 8s`(medium / 无生效档)、`thought briefly for 8s`(low);60 秒及以上显示 `1m 5s`。不足 1 秒、中断、stream 重试、思考中途打开 thinking 显示、turn 结束时都不显示。固定英文,不随界面语言变化;不写 scrollback。
|
|
10
13
|
- MCP 工具搜索(SDK):MCP 工具很多时,工具 schema 改为按需加载——模型先只看到工具名清单,需要时调用内置 `ToolSearch` 加载,下一步才能调用该工具。默认 `auto`(延迟候选 schema ≥ 生效窗口 10% 且数量 ≥ 30 时启用),可用环境变量 `COMATE_AGENT_SDK_TOOL_SEARCH`(`auto` / `auto:P` / `auto:P:C` / `on` / `off`)调整。首次启用时终端提示一次;`/context` 拆分显示 MCP 工具与已加载 / 延迟候选数;单个 MCP 工具定义超过窗口 5% 时启动后警告。comate-cli 与 comate-rpc 的 `comate-agent-sdk` 下限抬到 0.12.20(SDK 同步升版,新事件 `ToolSearchEnabledEvent`)。
|
|
@@ -72,6 +75,7 @@
|
|
|
72
75
|
|
|
73
76
|
### Changed
|
|
74
77
|
|
|
78
|
+
- 状态栏的 Job Indicator 只统计正在运行的后台 job:后台 subagent 跑完一轮进入待命(idle)后,不再显示 `x agent`;1 个运行中、2 个待命时显示 `1 agent`。待命的 agent 仍可在 `/ps` 里查看和停止,退出确认仍会提示它们(ADR 0050 补充)。
|
|
75
79
|
- Self-Update 固定到 Python 3.12:`comate update`、启动时的「立即更新」、Windows 旁装,以及 Windows 自动路径不可用时显示的手动修复命令,都让新版本装在 Python 3.12 上(uv 命令带 `--python 3.12`;机器上没有 3.12 时 uv 会自动下载)。原因:uv 在读包之前就选好解释器,并且忽略 `requires-python` 的上限,所以以前用户会跑在 3.11 / 3.13 / 3.14 等不同版本上,而且不带 `--python` 的重装会把已经在 3.12 上的环境换成别的版本。白牌发行版在 `install_args` 里自己指定了 `--python` 时,以白牌的为准。`requires-python` 不变,3.11–3.13 继续支持。决策见 ADR 0055。
|
|
76
80
|
- 简中用户更新时,uv 需要下载的 Python 改走国内镜像(npmmirror 的 python-build-standalone),不再依赖 GitHub;进程内重装和 Windows 旁装都生效。你自己设置了 `UV_PYTHON_INSTALL_MIRROR` 时以你的为准;其他语言环境不变。
|
|
77
81
|
- resume 选择器的预览键由 Ctrl+V 改为 Ctrl+A:VS Code、Windows Terminal 等终端把 Ctrl+V 截成粘贴,按下后剪贴板文本会落进搜索框,进不了预览。搜索模式下也可以按 Ctrl+A 预览,Esc 或再按 Ctrl+A 关闭后回到搜索框,搜索词保持不变;代价是搜索框内 Ctrl+A 不再移到行首。
|
|
@@ -96,8 +100,43 @@
|
|
|
96
100
|
以及设计稿 docs/superpowers/specs/2026-05-18-auto-compact-awareness-design.md
|
|
97
101
|
已写的写法对齐,少占两列宽。
|
|
98
102
|
|
|
103
|
+
### Removed
|
|
104
|
+
|
|
105
|
+
- Interpreter Migration(macOS/Linux):启动时不再提示把当前版本迁移到 Python 3.12。不在 3.12 上的用户继续在当前 Python 上运行,下一次 Self-Update 时装到 3.12(Self-Update 仍然带 `--python 3.12`,ADR 0055)。以前写进设置的 `migration_hinted_python` 不再读取,留在文件里不影响任何行为。
|
|
106
|
+
|
|
99
107
|
### Fixed
|
|
100
108
|
|
|
109
|
+
- 输入框里 `@` 一个图片文件后不再变成 `[Pasted image #N: 文件名]`:路径落在 `@` 引用里时(补全、手打、
|
|
110
|
+
粘贴都算)保持 `@path` 文本,和其他 `@文件` 一样只给模型路径提示,模型需要时自己用 Read 看图。
|
|
111
|
+
前面没有 `@` 的粘贴 / 拖入图片路径仍然变成图片 chip;`@a.png /tmp/b.png` 这样的混合粘贴整段保持文本。
|
|
112
|
+
- `@path` 路径提示(SDK)按 Read 工具的分类输出:图片显示 `image (.png, 120 KB)`,PDF 显示
|
|
113
|
+
`pdf (.pdf, 2.1 MB)`,二进制文件显示 `binary (.zip, 3.2 MB)`,不再给这些文件数「行数」
|
|
114
|
+
(此前 png 会显示成 `file (.png, 464 lines)`)。二进制判断和 Read 用同一份规则(后缀黑名单 + 前 8 KB
|
|
115
|
+
内容扫描,带文本 BOM 的不算),规则从 Read 工具内部移到 `system_tools/text_codec.py`,Read 行为不变。
|
|
116
|
+
- 模型回复的正文末尾带多个换行时(常见于调用工具之前),scrollback 中正文和下一行之间不再出现长空白:
|
|
117
|
+
显示层丢掉正文段末尾的空行,正文中间连续的多个空行只显示 1 个;代码块内的空行原样保留。
|
|
118
|
+
只改显示,transcript 与发给模型的上下文中的原文不变。
|
|
119
|
+
- git 不在 PATH 时,SDK 采集 GIT_ENV 发出的 WARNING「未找到 git 可执行文件,无法采集 GIT_ENV」不再刷进
|
|
120
|
+
TUI scrollhistory:终端用户看到也无法在会话里行动(装 git / 修 PATH 都在会话外)。文件日志
|
|
121
|
+
(`~/.comate/logs/agent.log`)与其它宿主不受影响;同一来源的「执行 git 命令失败」ERROR 是未预期异常,
|
|
122
|
+
仍然显示。
|
|
123
|
+
- 装了带 `.mcp.json` 的插件后,TUI 会话丢失全部用户 MCP server:启动注入插件时,插件 server 被写进
|
|
124
|
+
`AgentConfig.mcp_servers`,legacy 解析模式下这等于「只用这些 server」,user / project / local 三层
|
|
125
|
+
`.mcp.json` 全部失效;随后的重新加载关闭了已连上的 server,移除了它们的工具,`/mcp` 里显示
|
|
126
|
+
`Not initialized`。`-p` 与 `comate mcp list` 不加载插件,不受影响。现在 CLI 使用 merge 解析模式,
|
|
127
|
+
插件 server 写进 plugin 层,叠加在磁盘三层之下(同名时磁盘优先);`/reload-plugins` 只移除插件 server。
|
|
128
|
+
没有插件时解析结果不变(ADR 0057)。
|
|
129
|
+
- 插件 `.mcp.json` 用 Claude Code 生态的 `{"mcpServers": {...}}` 包装格式时(例如 Anthropic 的 `data`
|
|
130
|
+
插件),解析出一个假 server `<插件名>:mcpServers`(`stdio server 缺少 command`),里面的 server 一个也连不上。
|
|
131
|
+
现在顶层 `mcpServers` 是对象时读它里面的内容,平铺格式不变,两种都加 `<插件名>:` 前缀。`/mcp` 列表现在
|
|
132
|
+
也显示插件 server:状态、工具,详情页显示来源插件和插件的 `.mcp.json` 路径。插件 server 可以在 `/mcp`
|
|
133
|
+
里 Disable:在 `~/.agent/.mcp.json` 写一条同名 `{"enabled": false}`,重启后仍然禁用,插件本身和其他
|
|
134
|
+
server 不受影响;Enable 删除这一条(插件已卸载后留下的这一条也能在 `/mcp` 里 Enable 清掉)。插件 server 的单个工具开关仍为只读。新文案三语齐全。
|
|
135
|
+
- 插件 `plugin.json` 里写的 `mcpServers` 以前被悄悄忽略,现在生效:可以是内联对象,也可以是相对插件根目录的
|
|
136
|
+
JSON 文件路径(字符串或字符串数组,文件格式同 `.mcp.json`),和插件的 `.mcp.json` 合并,都加 `<插件名>:`
|
|
137
|
+
前缀;同名时 `.mcp.json` 优先并在日志里打 WARNING。路径超出插件根目录、文件读不了、值类型不对时打 WARNING
|
|
138
|
+
跳过这一项,插件其他内容照常加载;插件 MCP 配置文件顶层不是 JSON 对象时也改为跳过,不再让整个插件加载失败。
|
|
139
|
+
`/mcp` 详情页对这些 server 仍显示插件 `.mcp.json` 路径(待修)。
|
|
101
140
|
- 切换窗口后运行中的任务被中断、输入框多出 `[O[I`:终端开着焦点上报(DECSET 1004,
|
|
102
141
|
例如 Windows PowerShell 经 ssh 连到远程服务器)时,窗口失焦 / 得焦会发 `ESC[O` / `ESC[I`。
|
|
103
142
|
prompt_toolkit 不认识这两条序列,把它们拆成 Esc 加两个普通字符,Esc 就中断了本轮。
|
|
@@ -13,7 +13,7 @@ _Avoid_: menu output(菜单输出), history block(历史块), 全屏 pic
|
|
|
13
13
|
_Avoid_: footer(Menu Panel 自己有页脚), bottom toolbar(prompt_toolkit 的术语,本项目不使用), 补全状态行(与 Status Bar 共用同一个位置,但是另一个东西)
|
|
14
14
|
|
|
15
15
|
**Job Indicator(后台任务指示)**:
|
|
16
|
-
Status Bar 左列里按类别显示的后台 job 数量,例如 `2 agents`、`1 shell`、`1 workflow`、`1 MCP call`。类别:agents(agent job)、shells(bash 与 monitor job)、workflows(workflow job)、mcp(MCP
|
|
16
|
+
Status Bar 左列里按类别显示的后台 job 数量,例如 `2 agents`、`1 shell`、`1 workflow`、`1 MCP call`。类别:agents(agent job)、shells(bash 与 monitor job)、workflows(workflow job)、mcp(MCP 后台调用)。只统计仍在运行的 job,待命(idle)的 job 不计(它们仍在 Jobs Menu 里);数量为 0 的类别不显示。选中一个 Job Indicator 并确认,会打开该类别的菜单。它取代了输入框上方常驻的 jobs 面板。
|
|
17
17
|
_Avoid_: pill(口头说法), jobs 面板(已删除的旧区域), 后台任务栏
|
|
18
18
|
|
|
19
19
|
**Jobs Menu(后台任务菜单)**:
|
|
@@ -224,10 +224,6 @@ _Avoid_: symlink swap, shim update, rename dance
|
|
|
224
224
|
The rule that a completed Self-Update takes effect only for processes started afterwards. Running sessions keep their version until they exit.
|
|
225
225
|
_Avoid_: hot upgrade, live upgrade
|
|
226
226
|
|
|
227
|
-
**Interpreter Migration**:
|
|
228
|
-
Reinstalling the *same* installed CLI version onto the target Python runtime (3.12, ADR 0055), offered at launch on macOS/Linux when the CLI runs on another interpreter and no newer version is pending. It is not a Self-Update (the version does not change), but it obeys Restart-to-Apply and reuses the in-process reinstall path. It always needs the user's confirmation in the launch prompt, because rebuilding the tool environment can break other running sessions.
|
|
229
|
-
_Avoid_: runtime upgrade, Python update, re-pin
|
|
230
|
-
|
|
231
227
|
## Tool Result Display Language
|
|
232
228
|
|
|
233
229
|
**Tool Result Preview**:
|
|
@@ -334,6 +330,10 @@ _Avoid_: todo panel, tasklist (spoken shorthand only)
|
|
|
334
330
|
A state in which the run is alive but does not advance any task: context compaction in progress, or an LLM retry backoff countdown. Only the countdown counts as Stall Status; the retried request itself does not.
|
|
335
331
|
_Avoid_: blocking status ("blocking" in this repo means blocking the event loop), waiting state
|
|
336
332
|
|
|
333
|
+
**Live Output Tail**:
|
|
334
|
+
The last 3 non-empty lines of a running foreground shell command's output, shown under that command in the bottom interaction band and refreshed once per second. It applies to the user's `!` commands and to the main agent's Bash calls that show a `Running…` line; folded Bash calls and subagent Bash calls have none. It is transient: it never enters scrollback, the transcript, or the model's context, and it disappears when the command ends or moves to the background.
|
|
335
|
+
_Avoid_: staging (that is the stream staging window), live log, output streaming
|
|
336
|
+
|
|
337
337
|
## Event Loop Health Language
|
|
338
338
|
|
|
339
339
|
**Event Loop Lag**:
|
|
@@ -389,7 +389,7 @@ _Avoid_: lag log, profiler output (the profiler records phase durations, not a s
|
|
|
389
389
|
- **Self-Update** and **Plugin Auto Update** are separate concepts with separate vocabularies: a **Version Check** orders versions, plugin **Update Detection** only compares for equality. Neither triggers the other.
|
|
390
390
|
- A **Side-Install** followed by an **Entrypoint Flip** is one Self-Update strategy; an in-process reinstall of the current installation is another. Which one applies is a property of the platform, not of the user's choice.
|
|
391
391
|
- **Restart-to-Apply** holds for every Self-Update strategy and mirrors the plugin **Update Effectiveness Boundary**: on-disk state changes, the running process does not.
|
|
392
|
-
- **
|
|
392
|
+
- **Self-Update** is the only way an installation reaches the target Python (3.12, ADR 0055). A CLI that runs on another interpreter stays there until its next Self-Update.
|
|
393
393
|
|
|
394
394
|
- A **Session Title** is a fact of the session, not of the **Session Report**: it exists whether or not a report backend is configured, and the report only mirrors it. **Durable Title Completion** is therefore judged from the session's own metadata.
|
|
395
395
|
- A **Session Title** is generated from the session's earliest **Committed Title Input**, never from the latest one. A resumed session without a title is titled from its original first input, so the title does not change to whatever was typed after resume.
|
|
@@ -416,6 +416,8 @@ _Avoid_: lag log, profiler output (the profiler records phase durations, not a s
|
|
|
416
416
|
|
|
417
417
|
## Flagged ambiguities
|
|
418
418
|
|
|
419
|
+
- "staging" 只指 stream staging window(模型正文提交到 scrollback 之前的暂存区)。运行中工具下面的 `Running…` 区域不叫 staging;那里显示的 shell 输出尾部叫 **Live Output Tail**。
|
|
420
|
+
|
|
419
421
|
- 代码里的 `_menu_panel_active()` 实际含义是“使用共享 `MenuPanel` 外壳”,不含 `/statusline`、marketplace 安装、`/goal edit`,因此与本术语表的 **Menu Panel**(slash 命令打开的暂态操作界面)并不等价。判断 **Status Bar** 是否隐藏另用独立集合,不复用它。
|
|
420
422
|
|
|
421
423
|
- OpenWorker still shows `HIGH` as **Max** (ADR-0017/0019); the agreed family-wide name is **Elite** (ADR-0023). Until OpenWorker is updated, the same Provider-Pool Level has two display names across products.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: comate-cli
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.7b1
|
|
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
|
|
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Requires-Python: <3.14,>=3.11
|
|
17
17
|
Requires-Dist: charset-normalizer==3.4.7
|
|
18
|
-
Requires-Dist: comate-agent-sdk<0.13,>=0.12.
|
|
18
|
+
Requires-Dist: comate-agent-sdk<0.13,>=0.12.24
|
|
19
19
|
Requires-Dist: comate-rpc<0.2,>=0.1.4
|
|
20
20
|
Requires-Dist: concurrent-log-handler>=0.9.25
|
|
21
21
|
Requires-Dist: curl-cffi==0.13.0
|
|
@@ -23,6 +23,7 @@ Requires-Dist: httpx<0.29.0,>=0.28.1
|
|
|
23
23
|
Requires-Dist: packaging>=21.0
|
|
24
24
|
Requires-Dist: pillow==12.2.0
|
|
25
25
|
Requires-Dist: prompt-toolkit>=3.0
|
|
26
|
+
Requires-Dist: pygments>=2.19
|
|
26
27
|
Requires-Dist: requests==2.32.5
|
|
27
28
|
Requires-Dist: rich>=14.0
|
|
28
29
|
Requires-Dist: setproctitle>=1.3.7
|
|
@@ -45,6 +46,33 @@ uv tool install comate-cli
|
|
|
45
46
|
comate
|
|
46
47
|
```
|
|
47
48
|
|
|
49
|
+
### 简体中文用户
|
|
50
|
+
|
|
51
|
+
Python 解释器从 npmmirror 下载,包从清华 PyPI 镜像下载,运行时固定为 Python 3.12(ADR 0055)。
|
|
52
|
+
|
|
53
|
+
macOS / Linux(bash、zsh):
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
UV_PYTHON_INSTALL_MIRROR=https://registry.npmmirror.com/-/binary/python-build-standalone \
|
|
57
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Windows PowerShell(两行在同一个窗口里运行):
|
|
61
|
+
|
|
62
|
+
```powershell
|
|
63
|
+
$env:UV_PYTHON_INSTALL_MIRROR="https://registry.npmmirror.com/-/binary/python-build-standalone"
|
|
64
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Windows CMD(两行在同一个窗口里运行):
|
|
68
|
+
|
|
69
|
+
```bat
|
|
70
|
+
set "UV_PYTHON_INSTALL_MIRROR=https://registry.npmmirror.com/-/binary/python-build-standalone"
|
|
71
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
清华镜像同步 PyPI 有延迟。新版本刚发布时,如果清华上还没有,去掉 `--default-index ...` 直接从官方 PyPI 安装即可,Python 仍走 npmmirror。
|
|
75
|
+
|
|
48
76
|
## 内置 Marketplace 扩展
|
|
49
77
|
|
|
50
78
|
发行版可通过 `DistributionProfile.builtin_marketplaces` 提供
|
|
@@ -15,6 +15,33 @@ uv tool install comate-cli
|
|
|
15
15
|
comate
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
### 简体中文用户
|
|
19
|
+
|
|
20
|
+
Python 解释器从 npmmirror 下载,包从清华 PyPI 镜像下载,运行时固定为 Python 3.12(ADR 0055)。
|
|
21
|
+
|
|
22
|
+
macOS / Linux(bash、zsh):
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
UV_PYTHON_INSTALL_MIRROR=https://registry.npmmirror.com/-/binary/python-build-standalone \
|
|
26
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Windows PowerShell(两行在同一个窗口里运行):
|
|
30
|
+
|
|
31
|
+
```powershell
|
|
32
|
+
$env:UV_PYTHON_INSTALL_MIRROR="https://registry.npmmirror.com/-/binary/python-build-standalone"
|
|
33
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Windows CMD(两行在同一个窗口里运行):
|
|
37
|
+
|
|
38
|
+
```bat
|
|
39
|
+
set "UV_PYTHON_INSTALL_MIRROR=https://registry.npmmirror.com/-/binary/python-build-standalone"
|
|
40
|
+
uv tool install comate-cli --python 3.12 --default-index https://pypi.tuna.tsinghua.edu.cn/simple
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
清华镜像同步 PyPI 有延迟。新版本刚发布时,如果清华上还没有,去掉 `--default-index ...` 直接从官方 PyPI 安装即可,Python 仍走 npmmirror。
|
|
44
|
+
|
|
18
45
|
## 内置 Marketplace 扩展
|
|
19
46
|
|
|
20
47
|
发行版可通过 `DistributionProfile.builtin_marketplaces` 提供
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
2026-11-02 12:52:02,880 platform=Linux-7.0.0-30-generic-x86_64-with-glibc2.43 python=3.13.18 psutil=7.2.2
|
|
2
|
+
2026-11-02 12:52:02,880 bash=/bin/bash cwd=/tmp/claude-1000/-home-andy-works-agent-sdk/81e18132-c517-4c2e-a0a5-45ee51dd802e/scratchpad output_dir=/tmp/claude-1000/-home-andy-works-agent-sdk/81e18132-c517-4c2e-a0a5-45ee51dd802e/scratchpad/.agent/artifacts/bash runs=1
|
|
3
|
+
2026-11-02 12:52:02,881 process count=393
|
|
4
|
+
2026-11-02 12:52:02,881 step 列:loop = 在 event loop 线程同步执行(生产现状);thread = 在 daemon 线程执行(候选修法)
|
|
5
|
+
2026-11-02 12:52:02,911 run=1 loop script mkstemp+write+close duration_ms= 0.1 loop_max_gap_ms= 10.3 result=.tmp_bash_script_s89rx0gd.sh
|
|
6
|
+
2026-11-02 12:52:02,943 run=1 loop output mkstemp duration_ms= 0.1 loop_max_gap_ms= 10.3 result=.tmp_bash_pt593nyv.txt
|
|
7
|
+
2026-11-02 12:52:02,973 run=1 loop cwd mkstemp duration_ms= 0.1 loop_max_gap_ms= 10.2 result=.tmp_bash_cwd_zr16nfyp.txt
|
|
8
|
+
2026-11-02 12:52:02,996 run=1 thread command run (spawn+exit, thread) duration_ms= 21.9 loop_max_gap_ms= 11.6 result=exit=0 pump_alive=False
|
|
9
|
+
2026-11-02 12:52:03,027 run=1 loop exited root: psutil.Process(pid) duration_ms= 0.3 loop_max_gap_ms= 10.3 NoSuchProcess: process PID not found (pid=96922)
|
|
10
|
+
2026-11-02 12:52:03,059 run=1 loop exited root: children(recursive=True) duration_ms= 0.0 loop_max_gap_ms= 10.4 result=skipped: root process already gone
|
|
11
|
+
2026-11-02 12:52:03,090 run=1 loop exited root: kill() duration_ms= 0.0 loop_max_gap_ms= 10.4 result=skipped: root process already gone
|
|
12
|
+
2026-11-02 12:52:03,141 run=1 loop exited root: _ppid_map() duration_ms= 19.3 loop_max_gap_ms= 19.3 result=dict[393]
|
|
13
|
+
2026-11-02 12:52:03,195 run=1 thread exited root: psutil.Process(pid) duration_ms= 0.3 loop_max_gap_ms= 10.3 NoSuchProcess: process PID not found (pid=96927)
|
|
14
|
+
2026-11-02 12:52:03,227 run=1 thread exited root: children(recursive=True) duration_ms= 0.4 loop_max_gap_ms= 10.6 result=skipped: root process already gone
|
|
15
|
+
2026-11-02 12:52:03,259 run=1 thread exited root: kill() duration_ms= 0.8 loop_max_gap_ms= 10.6 result=skipped: root process already gone
|
|
16
|
+
2026-11-02 12:52:03,310 run=1 thread exited root: _ppid_map() duration_ms= 19.9 loop_max_gap_ms= 10.5 result=dict[393]
|
|
17
|
+
2026-11-02 12:52:03,645 run=1 loop live root: psutil.Process(pid) duration_ms= 0.3 loop_max_gap_ms= 10.4 result=96936
|
|
18
|
+
2026-11-02 12:52:03,684 run=1 loop live root: children(recursive=True) duration_ms= 7.5 loop_max_gap_ms= 10.4 result=list[0]
|
|
19
|
+
2026-11-02 12:52:03,715 run=1 loop live root: kill() duration_ms= 0.1 loop_max_gap_ms= 10.3 result=1
|
|
20
|
+
2026-11-02 12:52:03,756 run=1 loop live root: _ppid_map() duration_ms= 9.1 loop_max_gap_ms= 10.5 result=dict[394]
|
|
21
|
+
2026-11-02 12:52:03,788 run=1 loop unlink x3 duration_ms= 0.1 loop_max_gap_ms= 10.3 result=3
|
|
22
|
+
2026-11-02 12:52:03,788 ---- summary (max over 1 runs) ----
|
|
23
|
+
2026-11-02 12:52:03,789 loop exited root: _ppid_map() median_ms= 19.3 max_ms= 19.3 loop_max_gap_ms= 19.3
|
|
24
|
+
2026-11-02 12:52:03,789 thread command run (spawn+exit, thread) median_ms= 21.9 max_ms= 21.9 loop_max_gap_ms= 11.6
|
|
25
|
+
2026-11-02 12:52:03,789 thread exited root: children(recursive=True) median_ms= 0.4 max_ms= 0.4 loop_max_gap_ms= 10.6
|
|
26
|
+
2026-11-02 12:52:03,789 thread exited root: kill() median_ms= 0.8 max_ms= 0.8 loop_max_gap_ms= 10.6
|
|
27
|
+
2026-11-02 12:52:03,789 thread exited root: _ppid_map() median_ms= 19.9 max_ms= 19.9 loop_max_gap_ms= 10.5
|
|
28
|
+
2026-11-02 12:52:03,789 loop live root: _ppid_map() median_ms= 9.1 max_ms= 9.1 loop_max_gap_ms= 10.5
|
|
29
|
+
2026-11-02 12:52:03,790 loop exited root: children(recursive=True) median_ms= 0.0 max_ms= 0.0 loop_max_gap_ms= 10.4
|
|
30
|
+
2026-11-02 12:52:03,790 loop exited root: kill() median_ms= 0.0 max_ms= 0.0 loop_max_gap_ms= 10.4
|
|
31
|
+
2026-11-02 12:52:03,790 loop live root: psutil.Process(pid) median_ms= 0.3 max_ms= 0.3 loop_max_gap_ms= 10.4
|
|
32
|
+
2026-11-02 12:52:03,790 loop live root: children(recursive=True) median_ms= 7.5 max_ms= 7.5 loop_max_gap_ms= 10.4
|
|
33
|
+
2026-11-02 12:52:03,790 loop script mkstemp+write+close median_ms= 0.1 max_ms= 0.1 loop_max_gap_ms= 10.3
|
|
34
|
+
2026-11-02 12:52:03,790 loop output mkstemp median_ms= 0.1 max_ms= 0.1 loop_max_gap_ms= 10.3
|
|
35
|
+
2026-11-02 12:52:03,790 loop exited root: psutil.Process(pid) median_ms= 0.3 max_ms= 0.3 loop_max_gap_ms= 10.3
|
|
36
|
+
2026-11-02 12:52:03,790 thread exited root: psutil.Process(pid) median_ms= 0.3 max_ms= 0.3 loop_max_gap_ms= 10.3
|
|
37
|
+
2026-11-02 12:52:03,791 loop live root: kill() median_ms= 0.1 max_ms= 0.1 loop_max_gap_ms= 10.3
|
|
38
|
+
2026-11-02 12:52:03,791 loop unlink x3 median_ms= 0.1 max_ms= 0.1 loop_max_gap_ms= 10.3
|
|
39
|
+
2026-11-02 12:52:03,791 loop cwd mkstemp median_ms= 0.1 max_ms= 0.1 loop_max_gap_ms= 10.2
|
|
40
|
+
2026-11-02 12:52:03,794 log: /home/andy/works/agent-sdk/packages/comate_cli/bash_settle_diag.log
|
|
41
|
+
2026-11-02 12:52:03,794 json: /home/andy/works/agent-sdk/packages/comate_cli/bash_settle_diag.json
|
|
@@ -38,6 +38,8 @@ class UpdateSource:
|
|
|
38
38
|
fetch_latest: LatestVersionFetcher
|
|
39
39
|
install_args: tuple[str, ...] = ()
|
|
40
40
|
release_notes_url: str | None = None
|
|
41
|
+
# Python 下载镜像(UV_PYTHON_INSTALL_MIRROR),盖过简中 locale 的 npmmirror(ADR 0056)。
|
|
42
|
+
python_install_mirror: str | None = None
|
|
41
43
|
|
|
42
44
|
def __post_init__(self) -> None:
|
|
43
45
|
if not callable(self.fetch_latest):
|
|
@@ -94,9 +94,10 @@ _SYSTEM_PROMPT_OPTIONS: dict[str, str] = {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
# (rpc_stdio, resume_session_id, resume_select, print_prompt, output_format, prompt_flags, rpc_relay,
|
|
97
|
-
# add_dirs, rpc_ws_port, yolo);rpc_ws_port 为 None 表示不是 --rpc-ws,0 表示由系统挑空闲端口;
|
|
97
|
+
# disallowed_tools, add_dirs, rpc_ws_port, yolo);rpc_ws_port 为 None 表示不是 --rpc-ws,0 表示由系统挑空闲端口;
|
|
98
98
|
# rpc_relay 为 None 表示不是 --rpc-relay,否则是(中转地址, Agent 令牌, 是否允许远程切到 bypassPermissions);
|
|
99
|
-
# prompt_flags 是 system prompt 四个参数的原始值,没给时各字段为 None
|
|
99
|
+
# prompt_flags 是 system prompt 四个参数的原始值,没给时各字段为 None;
|
|
100
|
+
# disallowed_tools 是 --disallowed-tools 的名字,按出现顺序去重,没给时为空。
|
|
100
101
|
ParsedArgs = tuple[
|
|
101
102
|
bool,
|
|
102
103
|
str | None,
|
|
@@ -106,6 +107,7 @@ ParsedArgs = tuple[
|
|
|
106
107
|
SystemPromptFlags,
|
|
107
108
|
tuple[str, str, bool] | None,
|
|
108
109
|
tuple[str, ...],
|
|
110
|
+
tuple[str, ...],
|
|
109
111
|
int | None,
|
|
110
112
|
bool,
|
|
111
113
|
]
|
|
@@ -339,6 +341,10 @@ def _usage_text(command_name: str = "comate") -> str:
|
|
|
339
341
|
" --add-dir <path> Grant tool read/write access to an extra directory\n"
|
|
340
342
|
" (repeatable). Applies to subagents too."
|
|
341
343
|
"\n"
|
|
344
|
+
" --disallowed-tools <names>\n"
|
|
345
|
+
" Remove tools from this session (comma-separated, repeatable).\n"
|
|
346
|
+
" Applies to subagents too. Exact names only, no wildcards;\n"
|
|
347
|
+
" MCP tools are written mcp__<server>__<tool>\n"
|
|
342
348
|
" --system-prompt <text>\n"
|
|
343
349
|
" Replace the opening of the system prompt (who the agent is and\n"
|
|
344
350
|
" how it works); guardrail sections always stay\n"
|
|
@@ -396,6 +402,35 @@ def _parse_rpc_relay(relay_url: str | None, token_arg: str | None) -> tuple[str,
|
|
|
396
402
|
return relay_url, token
|
|
397
403
|
|
|
398
404
|
|
|
405
|
+
# 不能用 --disallowed-tools 去掉的 tool:SDK 在会话创建时才因它们抛 ValueError
|
|
406
|
+
# (Agent 一定触发,Skill 只要还有模型可调用的 skill 就触发),RPC 模式下要到
|
|
407
|
+
# session.open 才暴露,所以在解析期就拦住。
|
|
408
|
+
_UNREMOVABLE_TOOLS = ("Agent", "Skill")
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
def _split_disallowed_tools(value: str) -> list[str]:
|
|
412
|
+
"""--disallowed-tools 的一个值 → 名字列表:逗号分隔,去首尾空白,丢空项。
|
|
413
|
+
|
|
414
|
+
只认精确名字:SDK 对通配符静默不生效,放过去用户会以为已经去掉了。
|
|
415
|
+
内置名是否存在留给 app._build_agent 检查(那时 SDK 已导入,解析期不多导入)。
|
|
416
|
+
"""
|
|
417
|
+
names = [name for name in (part.strip() for part in value.split(",")) if name]
|
|
418
|
+
if not names:
|
|
419
|
+
from comate_cli.terminal_agent.i18n import i18n, message
|
|
420
|
+
|
|
421
|
+
raise _ArgumentError(i18n(message.disallowed_tools_requires_value))
|
|
422
|
+
for name in names:
|
|
423
|
+
if "*" in name:
|
|
424
|
+
from comate_cli.terminal_agent.i18n import i18n, message
|
|
425
|
+
|
|
426
|
+
raise _ArgumentError(i18n(message.disallowed_tools_wildcard, name=name))
|
|
427
|
+
if name in _UNREMOVABLE_TOOLS:
|
|
428
|
+
from comate_cli.terminal_agent.i18n import i18n, message
|
|
429
|
+
|
|
430
|
+
raise _ArgumentError(i18n(message.disallowed_tools_unsupported, name=name))
|
|
431
|
+
return names
|
|
432
|
+
|
|
433
|
+
|
|
399
434
|
def _parse_args(argv: list[str]) -> ParsedArgs:
|
|
400
435
|
rpc_stdio = False
|
|
401
436
|
rpc_ws = False
|
|
@@ -411,6 +446,7 @@ def _parse_args(argv: list[str]) -> ParsedArgs:
|
|
|
411
446
|
output_format_explicit = False
|
|
412
447
|
positionals: list[str] = []
|
|
413
448
|
add_dirs: list[str] = []
|
|
449
|
+
disallowed_tools: list[str] = []
|
|
414
450
|
prompt_flags: dict[str, PromptFlag] = {}
|
|
415
451
|
yolo = False
|
|
416
452
|
|
|
@@ -493,6 +529,17 @@ def _parse_args(argv: list[str]) -> ParsedArgs:
|
|
|
493
529
|
add_dirs.append(value)
|
|
494
530
|
index += 1
|
|
495
531
|
continue
|
|
532
|
+
if arg == "--disallowed-tools" or arg.startswith("--disallowed-tools="):
|
|
533
|
+
if arg == "--disallowed-tools":
|
|
534
|
+
index += 1
|
|
535
|
+
value = argv[index] if index < len(argv) else ""
|
|
536
|
+
else:
|
|
537
|
+
value = arg.partition("=")[2]
|
|
538
|
+
for name in _split_disallowed_tools(value):
|
|
539
|
+
if name not in disallowed_tools:
|
|
540
|
+
disallowed_tools.append(name)
|
|
541
|
+
index += 1
|
|
542
|
+
continue
|
|
496
543
|
name, has_value, value = arg.partition("=")
|
|
497
544
|
if name in _SYSTEM_PROMPT_OPTIONS:
|
|
498
545
|
if not has_value:
|
|
@@ -567,12 +614,13 @@ def _parse_args(argv: list[str]) -> ParsedArgs:
|
|
|
567
614
|
|
|
568
615
|
raise _ArgumentError(i18n(message.rpc_mode_print_conflict, flag=rpc_flag))
|
|
569
616
|
print_prompt = " ".join(positionals) if positionals else ""
|
|
570
|
-
return rpc_stdio, None, False, print_prompt, output_format, system_prompt_flags, None, tuple(add_dirs), None, yolo
|
|
617
|
+
return rpc_stdio, None, False, print_prompt, output_format, system_prompt_flags, None, tuple(disallowed_tools), tuple(add_dirs), None, yolo
|
|
571
618
|
|
|
572
619
|
# Non -p mode: original logic
|
|
573
620
|
if not positionals:
|
|
574
621
|
return (
|
|
575
|
-
rpc_stdio, None, False, None, output_format, system_prompt_flags, rpc_relay, tuple(
|
|
622
|
+
rpc_stdio, None, False, None, output_format, system_prompt_flags, rpc_relay, tuple(disallowed_tools),
|
|
623
|
+
tuple(add_dirs), rpc_ws_port, yolo
|
|
576
624
|
)
|
|
577
625
|
|
|
578
626
|
command = positionals[0]
|
|
@@ -585,10 +633,10 @@ def _parse_args(argv: list[str]) -> ParsedArgs:
|
|
|
585
633
|
raise _ArgumentError(i18n(message.rpc_mode_resume_unsupported, flag=rpc_flag))
|
|
586
634
|
|
|
587
635
|
if len(positionals) == 1:
|
|
588
|
-
return rpc_stdio, None, True, None, output_format, system_prompt_flags, None, tuple(add_dirs), None, yolo
|
|
636
|
+
return rpc_stdio, None, True, None, output_format, system_prompt_flags, None, tuple(disallowed_tools), tuple(add_dirs), None, yolo
|
|
589
637
|
|
|
590
638
|
if len(positionals) == 2:
|
|
591
|
-
return rpc_stdio, positionals[1], False, None, output_format, system_prompt_flags, None, tuple(add_dirs), None, yolo
|
|
639
|
+
return rpc_stdio, positionals[1], False, None, output_format, system_prompt_flags, None, tuple(disallowed_tools), tuple(add_dirs), None, yolo
|
|
592
640
|
|
|
593
641
|
raise _ArgumentError("resume accepts at most one <session_id>")
|
|
594
642
|
|
|
@@ -776,6 +824,23 @@ def _build_wellformed_input():
|
|
|
776
824
|
return inp
|
|
777
825
|
|
|
778
826
|
|
|
827
|
+
def _use_utf8_stdout_when_redirected() -> None:
|
|
828
|
+
"""stdout 不是 TTY 时改用 UTF-8 输出(票 tui-plugin-mcp-override/05、07)。
|
|
829
|
+
|
|
830
|
+
Windows 上重定向的 stdout 取 locale 编码 cp936/GBK,`mcp list` 的 `✓`/`✗`、
|
|
831
|
+
`-p` 模式结果里的 emoji 编不出来会崩。调用方:`mcp` 子命令分支、`-p` 分支。
|
|
832
|
+
agent 的 Bash 工具按 UTF-8 解码子进程输出,所以改 UTF-8 而不只是 errors="replace"。
|
|
833
|
+
TTY 不动:Windows 控制台本来就走 Unicode 控制台 API(PEP 528)。
|
|
834
|
+
"""
|
|
835
|
+
stdout = sys.stdout
|
|
836
|
+
if stdout is None or not hasattr(stdout, "reconfigure"):
|
|
837
|
+
return
|
|
838
|
+
isatty = getattr(stdout, "isatty", None)
|
|
839
|
+
if callable(isatty) and isatty():
|
|
840
|
+
return
|
|
841
|
+
stdout.reconfigure(encoding="utf-8", errors="replace")
|
|
842
|
+
|
|
843
|
+
|
|
779
844
|
def main(argv: list[str] | None = None, *, profile=None) -> None:
|
|
780
845
|
from comate_cli.distribution import DEFAULT_PROFILE
|
|
781
846
|
from comate_cli.terminal_title import (
|
|
@@ -834,6 +899,7 @@ def main(argv: list[str] | None = None, *, profile=None) -> None:
|
|
|
834
899
|
if run_argv and run_argv[0] == "mcp":
|
|
835
900
|
from comate_cli.mcp_cli import McpCliError, run_mcp_command
|
|
836
901
|
|
|
902
|
+
_use_utf8_stdout_when_redirected()
|
|
837
903
|
try:
|
|
838
904
|
run_mcp_command(run_argv[1:], command_name=command_name)
|
|
839
905
|
return
|
|
@@ -866,6 +932,7 @@ def main(argv: list[str] | None = None, *, profile=None) -> None:
|
|
|
866
932
|
print_output_format,
|
|
867
933
|
system_prompt_flags,
|
|
868
934
|
rpc_relay,
|
|
935
|
+
disallowed_tools,
|
|
869
936
|
add_dirs_raw,
|
|
870
937
|
rpc_ws_port,
|
|
871
938
|
yolo,
|
|
@@ -881,6 +948,8 @@ def main(argv: list[str] | None = None, *, profile=None) -> None:
|
|
|
881
948
|
# Assemble print mode message
|
|
882
949
|
print_message: str | None = None
|
|
883
950
|
if print_prompt is not None:
|
|
951
|
+
# 票 tui-plugin-mcp-override/07:结果在最后一步才写 stdout,GBK 编不出 emoji 会丢掉整个结果。
|
|
952
|
+
_use_utf8_stdout_when_redirected()
|
|
884
953
|
stdin_text = _read_stdin_if_ready(sys.stdin)
|
|
885
954
|
parts = [p for p in (stdin_text.strip(), print_prompt.strip()) if p]
|
|
886
955
|
if not parts:
|
|
@@ -920,6 +989,7 @@ def main(argv: list[str] | None = None, *, profile=None) -> None:
|
|
|
920
989
|
print_message=print_message,
|
|
921
990
|
print_output_format=print_output_format,
|
|
922
991
|
add_dirs=add_dirs,
|
|
992
|
+
disallowed_tools=disallowed_tools,
|
|
923
993
|
yolo=yolo,
|
|
924
994
|
system_prompt_flags=system_prompt_flags,
|
|
925
995
|
process_start_perf=_PROCESS_START_PERF,
|
|
@@ -106,41 +106,6 @@ async def _handle_update_on_launch(
|
|
|
106
106
|
return False
|
|
107
107
|
|
|
108
108
|
|
|
109
|
-
async def _handle_migration_on_launch(
|
|
110
|
-
*,
|
|
111
|
-
target: UpdateTarget,
|
|
112
|
-
python_version: tuple[int, int] | None = None,
|
|
113
|
-
) -> bool:
|
|
114
|
-
"""Interpreter Migration 的启动前提示(macOS/Linux,纯本地判断)。
|
|
115
|
-
|
|
116
|
-
python_version 默认取当前解释器,测试注入。返回 True 表示迁移成功、启动应停止
|
|
117
|
-
(Restart-to-Apply)。迁移一定要用户在全屏提示里确认:重建 tool 环境可能破坏
|
|
118
|
-
其他正在运行的会话,所以不做后台静默迁移。
|
|
119
|
-
"""
|
|
120
|
-
from comate_cli.terminal_agent import update_check
|
|
121
|
-
|
|
122
|
-
try:
|
|
123
|
-
info = update_check.get_pending_migration_info(
|
|
124
|
-
target=target, python_version=python_version
|
|
125
|
-
)
|
|
126
|
-
if info is None:
|
|
127
|
-
return False
|
|
128
|
-
if update_check.decide_migration_prompt(info) == update_check.UpdatePromptDecision.SHOW_HINT:
|
|
129
|
-
console.print(
|
|
130
|
-
update_check.format_migration_hint(info, target),
|
|
131
|
-
style="dim",
|
|
132
|
-
markup=False,
|
|
133
|
-
)
|
|
134
|
-
update_check.mark_migration_hinted(info)
|
|
135
|
-
return False
|
|
136
|
-
choice = await update_check.show_migration_prompt(info, target)
|
|
137
|
-
if choice == update_check.MigrationPromptChoice.MIGRATE_NOW:
|
|
138
|
-
return await update_check.run_migration_command(console, info, target)
|
|
139
|
-
except Exception:
|
|
140
|
-
logger.debug("startup interpreter migration prompt failed", exc_info=True)
|
|
141
|
-
return False
|
|
142
|
-
|
|
143
|
-
|
|
144
109
|
async def _handle_background_update_on_launch(
|
|
145
110
|
info: UpdateInfo,
|
|
146
111
|
*,
|
|
@@ -773,6 +738,29 @@ def _resolve_prompt_flag(prompt_flag: "PromptFlag | None") -> str | None:
|
|
|
773
738
|
return content
|
|
774
739
|
|
|
775
740
|
|
|
741
|
+
def _exit_on_unknown_disallowed_tools(names: tuple[str, ...] | None) -> None:
|
|
742
|
+
"""--disallowed-tools 的内置名必须精确(区分大小写)匹配 SDK 系统 tool,否则报错退出。
|
|
743
|
+
|
|
744
|
+
去掉 tool 是一道限制,拼错就等于没去掉(SDK 对不认识的名字静默不生效),所以 fail fast。
|
|
745
|
+
按全部系统 tool 比对,不管当前模式下是否可见。mcp__ 开头的不查:MCP 启动后才连接,
|
|
746
|
+
server 不再提供的名字也是合法状态(ADR 0032)。报错方式同 _resolve_prompt_flag:
|
|
747
|
+
stderr 按界面语言写一行 + 退出码 2,不出 traceback。
|
|
748
|
+
"""
|
|
749
|
+
if not names:
|
|
750
|
+
return
|
|
751
|
+
# 只在给了名字时导入;Agent 构造本来也会导入它,这里只是提前。
|
|
752
|
+
from comate_agent_sdk.system_tools.tools import SYSTEM_TOOLS
|
|
753
|
+
|
|
754
|
+
known = {tool.name for tool in SYSTEM_TOOLS}
|
|
755
|
+
unknown = [name for name in names if not name.startswith("mcp__") and name not in known]
|
|
756
|
+
if not unknown:
|
|
757
|
+
return
|
|
758
|
+
from comate_cli.terminal_agent.i18n import i18n, message
|
|
759
|
+
|
|
760
|
+
sys.stderr.write(f"{i18n(message.disallowed_tools_unknown, names=', '.join(unknown))}\n")
|
|
761
|
+
raise SystemExit(2)
|
|
762
|
+
|
|
763
|
+
|
|
776
764
|
def _build_agent(
|
|
777
765
|
*,
|
|
778
766
|
project_root: Path | None = None,
|
|
@@ -802,6 +790,7 @@ def _build_agent(
|
|
|
802
790
|
if profiler is not None:
|
|
803
791
|
profiler.mark("agent.config.load.done")
|
|
804
792
|
disallowed_tools = _merge_disallowed_tools(extra_disallowed_tools)
|
|
793
|
+
_exit_on_unknown_disallowed_tools(disallowed_tools)
|
|
805
794
|
|
|
806
795
|
if add_dirs:
|
|
807
796
|
logger.info(
|
|
@@ -840,6 +829,9 @@ def _build_agent(
|
|
|
840
829
|
tool_approval_callback=approval_bridge,
|
|
841
830
|
prewarm=prewarm, # type: ignore[arg-type]
|
|
842
831
|
attribution=attribution,
|
|
832
|
+
# ADR 0057:插件 MCP server 走 plugin 层叠加在磁盘三层之下。legacy 下任何非空
|
|
833
|
+
# mcp_servers 都会让磁盘三层整体失效;mcp_servers 保持 None 时 merge 与 legacy 磁盘结果相同。
|
|
834
|
+
mcp_resolution_mode="merge",
|
|
843
835
|
)
|
|
844
836
|
if profiler is not None:
|
|
845
837
|
profiler.mark("agent.construct.start")
|
|
@@ -1297,6 +1289,7 @@ async def run(
|
|
|
1297
1289
|
print_message: str | None = None,
|
|
1298
1290
|
print_output_format: str = "text",
|
|
1299
1291
|
add_dirs: tuple[Path, ...] = (),
|
|
1292
|
+
disallowed_tools: tuple[str, ...] = (),
|
|
1300
1293
|
yolo: bool = False,
|
|
1301
1294
|
system_prompt_flags: "SystemPromptFlags | None" = None,
|
|
1302
1295
|
process_start_perf: float | None = None,
|
|
@@ -1412,9 +1405,6 @@ async def run(
|
|
|
1412
1405
|
)
|
|
1413
1406
|
if should_stop:
|
|
1414
1407
|
return
|
|
1415
|
-
# 有待更新版本时它自己不提示(优先级规则在 get_pending_migration_info 里)。
|
|
1416
|
-
if await _handle_migration_on_launch(target=update_target):
|
|
1417
|
-
return
|
|
1418
1408
|
|
|
1419
1409
|
_run_startup_hooks(profile)
|
|
1420
1410
|
profiler.mark("agent.build.start")
|
|
@@ -1449,8 +1439,10 @@ async def run(
|
|
|
1449
1439
|
agent = _build_agent(
|
|
1450
1440
|
project_root=project_root,
|
|
1451
1441
|
profiler=profiler,
|
|
1452
|
-
|
|
1453
|
-
|
|
1442
|
+
# --disallowed-tools 与 -p 自带的限制取并集,用户参数不能把后者冲掉。
|
|
1443
|
+
extra_disallowed_tools=_merge_disallowed_tools(
|
|
1444
|
+
disallowed_tools,
|
|
1445
|
+
PRINT_MODE_DISALLOWED_TOOLS if print_message is not None else None,
|
|
1454
1446
|
),
|
|
1455
1447
|
add_dirs=add_dirs,
|
|
1456
1448
|
system_role=profile.system_role,
|
{comate_cli-0.12.6b2 → comate_cli-0.12.7b1}/comate_cli/terminal_agent/backend/session_report.py
RENAMED
|
@@ -386,16 +386,33 @@ async def upload_spool_file(
|
|
|
386
386
|
payload_bytes = await asyncio.to_thread( # to_thread: bounded-local, one capped report JSON file
|
|
387
387
|
path.read_bytes
|
|
388
388
|
)
|
|
389
|
+
except FileNotFoundError:
|
|
390
|
+
# 并发上传方 ack 删除后,drain 可能仍持有这条路径;正常竞争,不是损坏。
|
|
391
|
+
logger.debug("session report spool already removed by another uploader: %s", path)
|
|
392
|
+
return True
|
|
393
|
+
except OSError:
|
|
394
|
+
# Windows 杀毒/索引/同步盘会短暂锁文件;内容未损坏,留给下次启动的 drain 重试、prune 兜底。
|
|
395
|
+
logger.warning(
|
|
396
|
+
"session report spool read failed, will retry on next startup: %s", path
|
|
397
|
+
)
|
|
398
|
+
return False
|
|
399
|
+
try:
|
|
389
400
|
payload = json.loads(payload_bytes)
|
|
390
401
|
if not isinstance(payload, dict):
|
|
391
|
-
raise ValueError("
|
|
402
|
+
raise ValueError("payload is not an object")
|
|
392
403
|
session_id = validate_session_id(str(payload.get("session_id", "")))
|
|
393
|
-
except Exception:
|
|
394
|
-
logger.warning("discarding invalid session report spool: %s", path)
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
404
|
+
except Exception as exc:
|
|
405
|
+
logger.warning("discarding invalid session report spool: %s (%s)", path, exc)
|
|
406
|
+
try:
|
|
407
|
+
await asyncio.to_thread( # to_thread: bounded-local, one invalid spool unlink
|
|
408
|
+
path.unlink,
|
|
409
|
+
missing_ok=True,
|
|
410
|
+
)
|
|
411
|
+
except OSError:
|
|
412
|
+
# unlink 也可能被文件锁挡住;内容已判无效,留给 prune 兜底删除,不向调用方抛出。
|
|
413
|
+
logger.warning(
|
|
414
|
+
"session report spool discard unlink failed, left for prune: %s", path
|
|
415
|
+
)
|
|
399
416
|
return True
|
|
400
417
|
disposition = await client.put_session_report(
|
|
401
418
|
session_id=session_id,
|