Are we tiny?#
gptme is intended to be small and simple, and focus on doing the right thing in the right way, rather than all the things in all the ways.
The benefits of this approach are many:
It is easier to understand and maintain.
It is easier to contribute to.
It is easier to learn.
It is easier to extend.
It is more fun to work on.
Being aggressive about keeping things small and simple is a way to keep the project maintainable and fun to work on. The fastest way to kill a project is to make it too big and complex, and suffer burnout as a result.
Another major benefit of keeping things small and simple is that it makes it easier for AI to understand and work with the codebase. This is a major goal of the project, and it is important to keep in mind that the simpler the codebase is, the easier it will be for AI to work with it:
“The simpler your API is, the more effectively the AI can harness it when generating code.”
—Kenneth Reitz (and many others)
To that end, in this document we will present some statistics about the current state of the project, trying to be mindful to keep an eye on this page and make sure we are not growing too much.
Startup time#
$ make bench-import
make[2]: Entering directory '/home/runner/work/gptme/gptme'
Benchmarking import time for gptme
time uv run python -X importtime -m gptme --model openai --non-interactive 2>&1 | grep "import time" | cut -d'|' -f 2- | sort -n | tail -n 10
222262 | anthropic.lib.vertex._client
222435 | anthropic.lib.vertex
222514 | gptme
250971 | anthropic.types
401305 | anthropic.types.beta
401354 | anthropic.types.beta.beta_message
403802 | anthropic.lib.middleware._fallbacks
403983 | anthropic.lib.middleware
1021730 | anthropic
1021761 | anthropic._types
real 0m1.821s
user 0m1.582s
sys 0m0.276s
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
$ make bench-startup
make[2]: Entering directory '/home/runner/work/gptme/gptme'
Benchmarking startup time for gptme
Benchmark 1: import gptme.cli.main
Time (mean ± σ): 270.5 ms ± 2.4 ms [User: 236.0 ms, System: 34.4 ms]
Range (min … max): 266.7 ms … 273.3 ms 10 runs
Benchmark 2: gptme --help
Time (mean ± σ): 1.582 s ± 0.065 s [User: 1.392 s, System: 0.190 s]
Range (min … max): 1.521 s … 1.751 s 10 runs
Benchmark 3: full start/exit cycle
Time (mean ± σ): 3.229 s ± 0.035 s [User: 3.275 s, System: 1.606 s]
Range (min … max): 3.176 s … 3.277 s 10 runs
Summary
import gptme.cli.main ran
5.85 ± 0.25 times faster than gptme --help
11.94 ± 0.17 times faster than full start/exit cycle
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
Lines of code#
LoC Core#
$ make cloc-core
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/*.py gptme/llm/*.py gptme/util/*.py gptme/tools/base.py gptme/tools/__init__.py gptme/hooks/__init__.py gptme/plugins/__init__.py gptme/lessons/*.py --by-file --hide-rate --quiet | tail -n +2
-----------------------------------------------------------------------------------------------
File blank comment code
-----------------------------------------------------------------------------------------------
gptme/llm/llm_openai.py 387 617 2237
gptme/util/gh.py 244 303 1219
gptme/llm/llm_anthropic.py 277 372 1216
gptme/tools/base.py 214 344 1067
gptme/util/review.py 183 336 989
gptme/llm/__init__.py 182 318 957
gptme/util/context.py 181 296 886
gptme/chat.py 128 285 864
gptme/codeblock.py 85 405 812
gptme/tools/__init__.py 177 219 719
gptme/llm/openai_responses.py 115 69 684
gptme/lessons/installer.py 151 179 653
gptme/llm/llm_openai_subscription.py 148 175 637
gptme/util/completion_verification.py 81 28 635
gptme/util/capabilities_export.py 60 71 560
gptme/message.py 139 273 523
gptme/util/prompt.py 104 159 478
gptme/telemetry.py 103 74 456
gptme/lessons/index.py 126 167 452
gptme/util/_telemetry.py 112 159 443
gptme/lessons/auto_include.py 108 211 436
gptme/workspace_snapshot.py 54 70 425
gptme/util/cost_display.py 81 80 406
gptme/llm/llm_openai_models.py 6 61 401
gptme/init.py 72 122 382
gptme/llm/llm_grok_subscription.py 95 81 381
gptme/info.py 98 80 365
gptme/lessons/hybrid_matcher.py 122 162 364
gptme/checkpoint.py 81 53 363
gptme/llm/local_discovery.py 64 35 351
gptme/sandbox.py 95 208 350
gptme/util/safety.py 57 63 330
gptme/attestation.py 71 2 307
gptme/llm/validate.py 45 64 303
gptme/plugins/__init__.py 101 133 295
gptme/util/reduce.py 73 90 294
gptme/knowledge.py 76 101 288
gptme/util/tool_display.py 36 23 273
gptme/profiles.py 66 68 268
gptme/anti_slop.py 43 112 260
gptme/llm/recovery.py 52 57 258
gptme/hooks/__init__.py 22 51 231
gptme/lessons/parser.py 77 124 229
gptme/util/auto_naming.py 67 74 226
gptme/model_attestation.py 63 78 223
gptme/lessons/commands.py 91 48 219
gptme/lessons/selector.py 18 21 218
gptme/util/_sound_sounddevice.py 57 50 218
gptme/lessons/skill_events.py 33 26 208
gptme/util/git_worktree.py 42 71 204
gptme/util/sound.py 65 72 200
gptme/util/export.py 40 41 197
gptme/util/clipboard.py 26 19 193
gptme/prompt_queue.py 49 35 188
gptme/llm/responses_phase.py 22 29 181
gptme/util/tokens.py 54 76 175
gptme/llm/llm_gptme.py 70 125 174
gptme/circuit_breaker.py 49 72 171
gptme/util/cost_tracker.py 56 99 169
gptme/util/tool_format.py 48 76 169
gptme/llm/utils.py 56 92 165
gptme/dirs.py 72 101 163
gptme/llm/_degeneration.py 41 74 162
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/util/__init__.py 34 30 156
gptme/lessons/skill_commands.py 47 58 144
gptme/llm/request_limits.py 26 19 133
gptme/util/replay.py 42 49 129
gptme/k_best.py 34 40 125
gptme/util/ask_execute.py 26 44 116
gptme/llm/llm_openrouter_subscription.py 35 43 113
gptme/util/redact.py 38 149 110
gptme/util/master_context.py 37 57 108
gptme/util/interrupt.py 46 38 107
gptme/lessons/matcher.py 35 47 103
gptme/util/context_measurement.py 18 26 100
gptme/__version__.py 21 17 99
gptme/util/context_budget.py 21 53 92
gptme/constants.py 43 50 88
gptme/util/tree.py 21 15 87
gptme/util/context_savings.py 20 6 77
gptme/util/output_storage.py 31 40 76
gptme/util/generate_name.py 5 6 74
gptme/llm/llm_anthropic_models_deprecated.py 5 11 70
gptme/llm/retry_abort.py 24 66 70
gptme/session.py 39 64 70
gptme/util/_sound_cmd.py 22 18 68
gptme/util/file_write.py 8 20 68
gptme/llm/retry_policy.py 19 24 60
gptme/util/uri.py 29 42 59
gptme/util/cost.py 20 21 55
gptme/util/history.py 17 7 55
gptme/credentials.py 16 7 53
gptme/util/context_dedup.py 41 93 53
gptme/util/terminal.py 28 23 53
gptme/llm/provider_plugins.py 40 37 52
gptme/status_provider.py 24 60 47
gptme/llm/llm_mock.py 16 22 41
gptme/util/file_storage.py 30 47 40
gptme/util/keyword_matching.py 35 66 39
gptme/__init__.py 10 4 38
gptme/util/useredit.py 15 18 36
gptme/util/summary.py 8 6 33
gptme/util/content.py 18 24 30
gptme/util/install.py 13 25 30
gptme/util/git_cmd.py 12 30 29
gptme/util/notification_ready.py 9 6 29
gptme/executor.py 18 26 25
gptme/util/clock.py 13 16 25
gptme/util/conversation_ids.py 7 4 22
gptme/lessons/__init__.py 7 15 21
gptme/util/multiprompt.py 6 8 14
gptme/__main__.py 2 0 12
gptme/util/stdio.py 8 9 12
gptme/util/rich_text.py 6 10 7
gptme/llm/constants.py 2 6 5
-----------------------------------------------------------------------------------------------
SUM: 6963 9815 31385
-----------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC LLM#
$ make cloc-llm
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/llm/*.py --by-file --hide-rate --quiet | tail -n +2
-----------------------------------------------------------------------------------------------
File blank comment code
-----------------------------------------------------------------------------------------------
gptme/llm/llm_openai.py 387 617 2237
gptme/llm/llm_anthropic.py 277 372 1216
gptme/llm/__init__.py 182 318 957
gptme/llm/openai_responses.py 115 69 684
gptme/llm/llm_openai_subscription.py 148 175 637
gptme/llm/llm_openai_models.py 6 61 401
gptme/llm/llm_grok_subscription.py 95 81 381
gptme/llm/local_discovery.py 64 35 351
gptme/llm/validate.py 45 64 303
gptme/llm/recovery.py 52 57 258
gptme/llm/responses_phase.py 22 29 181
gptme/llm/llm_gptme.py 70 125 174
gptme/llm/utils.py 56 92 165
gptme/llm/_degeneration.py 41 74 162
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/llm/request_limits.py 26 19 133
gptme/llm/llm_openrouter_subscription.py 35 43 113
gptme/llm/llm_anthropic_models_deprecated.py 5 11 70
gptme/llm/retry_abort.py 24 66 70
gptme/llm/retry_policy.py 19 24 60
gptme/llm/provider_plugins.py 40 37 52
gptme/llm/llm_mock.py 16 22 41
gptme/llm/constants.py 2 6 5
-----------------------------------------------------------------------------------------------
SUM: 1732 2411 8808
-----------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC Tools#
$ make cloc-tools
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/tools/*.py gptme/hooks/*.py gptme/plugins/*.py --by-file --hide-rate --quiet | tail -n +2
------------------------------------------------------------------------------------------
File blank comment code
------------------------------------------------------------------------------------------
gptme/tools/shell.py 400 746 2929
gptme/tools/computer.py 437 864 1659
gptme/hooks/workspace_agents.py 237 153 1244
gptme/tools/base.py 214 344 1067
gptme/tools/convert.py 151 139 1004
gptme/tools/watch.py 144 195 997
gptme/tools/shell_background.py 144 155 914
gptme/tools/python_kernel.py 132 257 836
gptme/tools/chats.py 142 189 820
gptme/tools/mcp_adapter.py 247 272 804
gptme/tools/_browser_playwright.py 253 327 795
gptme/tools/__init__.py 177 219 719
gptme/tools/complete.py 111 179 715
gptme/hooks/_secret_reach.py 50 72 711
gptme/tools/gh.py 146 143 709
gptme/tools/browser.py 281 457 696
gptme/tools/python.py 158 220 671
gptme/tools/shell_validation.py 153 359 649
gptme/tools/computer_transport.py 151 125 567
gptme/tools/tmux.py 103 203 559
gptme/tools/hashline_edit.py 128 416 513
gptme/hooks/registry.py 102 87 503
gptme/tools/todo.py 117 146 475
gptme/tools/read.py 66 105 458
gptme/tools/lessons.py 121 138 452
gptme/tools/patch_many.py 63 82 421
gptme/tools/save.py 84 84 393
gptme/tools/restart.py 94 126 379
gptme/hooks/anomaly_watchdog.py 137 207 370
gptme/hooks/dirty_diff.py 59 108 369
gptme/tools/mcp.py 103 103 339
gptme/hooks/cost_awareness.py 84 81 337
gptme/tools/shell_flags.py 60 257 315
gptme/tools/_browser_thread.py 63 78 313
gptme/plugins/__init__.py 101 133 295
gptme/tools/precommit.py 82 114 284
gptme/hooks/agents_md_inject.py 64 121 281
gptme/tools/patch.py 64 108 277
gptme/plugins/security.py 47 76 269
gptme/tools/rag.py 91 148 264
gptme/hooks/elicitation.py 95 136 262
gptme/hooks/__init__.py 22 51 231
gptme/hooks/aw_watcher_agent.py 49 21 217
gptme/hooks/guardrails.py 69 91 203
gptme/hooks/auto_snapshots.py 51 66 201
gptme/tools/morph.py 43 56 197
gptme/hooks/script.py 21 8 189
gptme/tools/pruner.py 44 0 188
gptme/hooks/_credential_output.py 18 22 181
gptme/hooks/time_awareness.py 50 74 180
gptme/tools/request_tool_change.py 35 33 173
gptme/tools/shell_memory.py 37 29 170
gptme/hooks/cache_awareness.py 118 186 168
gptme/tools/vision.py 38 49 165
gptme/hooks/types.py 96 136 163
gptme/hooks/cli_confirm.py 52 59 156
gptme/tools/form.py 42 65 148
gptme/hooks/token_awareness.py 47 50 147
gptme/tools/elicit.py 40 123 138
gptme/hooks/tool_target_instructions.py 37 47 136
gptme/hooks/injection_screening.py 33 39 126
gptme/hooks/confirm.py 57 95 124
gptme/hooks/form_autodetect.py 48 65 123
gptme/tools/recall.py 25 20 123
gptme/hooks/server_confirm.py 51 59 122
gptme/tools/vent.py 40 67 120
gptme/plugins/registry.py 40 41 119
gptme/hooks/server_elicit.py 52 56 113
gptme/tools/computer_semantic.py 61 129 110
gptme/tools/choice.py 34 41 108
gptme/tools/memory.py 35 41 108
gptme/hooks/active_context.py 25 23 100
gptme/tools/_computer_gate.py 33 61 100
gptme/tools/screenshot.py 30 45 100
gptme/plugins/entrypoints.py 28 49 91
gptme/tools/_url_safety.py 32 50 91
gptme/hooks/knowledge_inject.py 21 37 90
gptme/tools/_browser_lynx.py 11 8 85
gptme/tools/progress.py 24 53 83
gptme/tools/autocommit.py 38 58 81
gptme/tools/_browser_perplexity.py 22 16 60
gptme/tools/clarify.py 17 26 57
gptme/hooks/cwd_changed.py 18 11 54
gptme/hooks/mcp_namespace_hint.py 21 24 54
gptme/hooks/markdown_validation.py 36 41 51
gptme/tools/_allowlist.py 18 15 48
gptme/hooks/test.py 14 6 41
gptme/tools/native_names.py 10 8 32
gptme/hooks/cwd_awareness.py 11 18 29
gptme/hooks/auto_confirm.py 11 9 24
gptme/tools/_hashline_snapshot.py 16 15 23
gptme/plugins/plugin.py 25 39 17
gptme/hooks/_policy_block.py 10 13 14
gptme/tools/_browser_format.py 3 5 3
------------------------------------------------------------------------------------------
SUM: 7515 10921 32609
------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC Server#
$ make cloc-server
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/server --by-file --hide-rate --quiet | tail -n +2
-------------------------------------------------------------------------------------------
File blank comment code
-------------------------------------------------------------------------------------------
gptme/server/api_v2.py 545 501 3277
gptme/server/session_step.py 194 441 1315
gptme/server/api_v2_sessions.py 133 202 990
gptme/server/openapi_docs.py 309 210 941
gptme/server/tasks_api.py 193 130 680
gptme/server/a2a_api.py 103 46 551
gptme/server/artifacts_api.py 107 110 538
gptme/server/session_models.py 88 177 510
gptme/server/workspace_api.py 101 104 497
gptme/server/external_sessions.py 59 92 372
gptme/server/cli.py 56 105 306
gptme/server/preview_proxy_api.py 86 150 306
gptme/server/tools_api.py 58 49 250
gptme/server/computer_view/computer.html 12 3 237
gptme/server/auth.py 77 118 222
gptme/server/computer_api.py 51 55 222
gptme/server/api_v2_common.py 113 96 215
gptme/server/panels_api.py 51 51 204
gptme/server/acp_session_runtime.py 34 30 169
gptme/server/app.py 41 143 155
gptme/server/client.py 63 79 149
gptme/server/api_v2_agents.py 25 17 139
gptme/server/skills_api.py 32 4 125
gptme/server/metrics.py 37 19 124
gptme/server/tts_api.py 24 18 101
gptme/server/token_file.py 13 13 31
gptme/server/__init__.py 5 8 9
gptme/server/constants.py 7 11 9
gptme/server/__main__.py 1 0 3
-------------------------------------------------------------------------------------------
SUM: 2618 2982 12647
-------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC Tests#
$ make cloc-tests
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc tests --by-file --hide-rate --quiet | tail -n +2
----------------------------------------------------------------------------------------------------
File blank comment code
----------------------------------------------------------------------------------------------------
tests/test_subagent_unit.py 1532 734 6191
tests/test_server_v2.py 1035 405 4618
tests/test_llm_openai.py 945 568 3807
tests/test_auto_compact.py 1065 574 3660
tests/test_tui.py 694 365 3384
tests/test_util_review.py 616 419 3039
tests/test_tools_subagent.py 863 444 2893
tests/test_server_v2_sessions.py 378 278 2579
tests/test_doctor.py 542 222 2461
tests/test_config.py 561 596 2240
tests/test_tools_shell.py 562 538 1923
tests/test_chat.py 508 288 1782
tests/test_cli.py 459 186 1698
tests/test_init.py 258 147 1597
tests/test_util_cli.py 413 245 1585
tests/test_memory_store.py 208 79 1571
tests/test_tools_watch.py 256 67 1514
tests/test_acp_agent.py 410 197 1490
tests/test_codeblock.py 550 1068 1419
tests/test_eval_behavioral.py 867 967 1357
tests/test_tools_shell_validation.py 383 258 1321
tests/test_tools_browser.py 359 80 1304
tests/test_tools_complete.py 250 264 1302
tests/test_util_cli_review_watch.py 317 189 1283
tests/test_tools_convert.py 305 132 1267
tests/test_tools_todo_isolation.py 160 11 1265
tests/test_tools_computer.py 438 271 1259
tests/test_util_gh.py 263 176 1226
tests/test_llm_anthropic.py 264 91 1194
tests/test_tools_hashline_edit.py 227 228 1170
tests/test_server.py 301 206 1147
tests/test_llm_utils.py 310 142 1108
tests/test_tools_gh.py 186 102 1094
tests/test_tools_base.py 340 114 1054
tests/test_eval.py 189 108 999
tests/test_cmd_service.py 219 194 981
tests/test_info.py 183 78 972
tests/test_shell_background.py 211 104 970
tests/test_lessons_auto_include.py 256 220 968
tests/test_tools_patch_many.py 190 114 958
tests/test_computer_audit.py 264 183 955
tests/test_logmanager.py 260 180 942
tests/test_dataset.py 192 50 930
tests/test_tools_python_kernel.py 303 122 926
tests/test_compaction_recall.py 187 17 902
tests/test_mcp_adapter.py 222 109 901
tests/test_eval_leaderboard.py 126 104 883
tests/test_llm_openai_subscription.py 186 80 853
tests/test_knowledge.py 323 71 842
tests/test_tasks_api.py 185 69 831
tests/test_eval_computer_suite.py 328 149 819
tests/test_util_gh_mocked.py 157 122 819
tests/test_tools_precommit.py 136 98 818
tests/test_prompt_templates.py 260 193 812
tests/test_context.py 319 133 806
tests/test_sandbox.py 195 105 801
tests/test_guardrail_secret_reach.py 163 81 791
tests/test_cost_display.py 110 68 776
tests/test_acp_session_runtime.py 232 78 750
tests/test_server_workspace.py 149 154 743
tests/test_tools.py 240 120 722
tests/test_eventlog.py 163 94 717
tests/test_hooks_registry.py 253 97 716
tests/test_computer_transport.py 267 91 713
tests/test_tools_restart.py 157 67 708
tests/test_agent.py 205 115 707
tests/test_message.py 230 148 692
tests/test_tui_e2e.py 108 134 680
tests/test_llm_models_resolution.py 223 181 677
tests/test_relevance_pruning.py 266 134 672
tests/test_tools_lessons.py 145 53 664
tests/test_json_output.py 114 84 643
tests/test_cli_status.py 246 138 642
tests/test_context_scout.py 109 89 641
tests/test_subagent_budget.py 166 144 626
tests/test_commands.py 180 74 623
tests/test_skill_install_replacement.py 131 3 613
tests/test_prompts.py 179 111 611
tests/test_chat_transient_recovery.py 103 16 609
tests/test_explicit_attachments.py 84 9 609
tests/test_computer_doctor_cmd.py 88 58 607
tests/conftest.py 168 291 598
tests/test_dirs.py 135 93 598
tests/test_tools_read.py 193 70 598
tests/test_mcp_server.py 139 49 596
tests/test_server_panels.py 65 40 585
tests/test_server_subscription_connect.py 160 39 584
tests/test_tui_completion.py 82 11 582
tests/test_tools_request_tool_change.py 117 43 578
tests/test_server_session_models.py 198 157 576
tests/test_served_model_metadata.py 116 24 573
tests/test_lessons_index.py 185 171 568
tests/test_llm_models.py 174 118 558
tests/test_util_cli_mcp.py 130 68 552
tests/test_memory_index_policy.py 98 39 551
tests/test_eval_subagent.py 119 56 547
tests/test_computer_actions.py 165 125 546
tests/test_subagent_persistence.py 68 1 543
tests/test_execenv.py 99 68 539
tests/test_server_path_traversal.py 139 105 539
tests/test_model_attestation.py 115 30 537
tests/test_memory_migrate_knowledge.py 82 30 534
tests/test_responses_phase.py 54 16 534
tests/test_gptme_provider.py 176 84 532
tests/test_cc_memory.py 113 108 530
tests/test_hooks_cost_awareness.py 73 61 525
tests/test_server_bad_input.py 122 106 524
tests/test_lessons.py 156 153 517
tests/test_workspace_api.py 116 22 508
tests/test_capabilities_export.py 65 27 506
tests/test_file_publication.py 96 23 504
tests/test_overflow_recovery.py 72 8 498
tests/test_checkpoint.py 127 23 495
tests/test_config_workspace_publication.py 79 14 492
tests/test_conversations.py 70 44 492
tests/test_hooks_cache_awareness.py 151 44 484
tests/test_computer_demo_cmd.py 144 75 482
tests/test_snapshot_command.py 117 57 476
tests/test_llm_openai_sampling.py 99 12 469
tests/test_shell_foreground_promotion.py 104 23 464
tests/test_chats_stats.py 83 34 462
tests/test_tools_save.py 124 42 462
tests/test_server_skill_events.py 58 4 461
tests/test_skill_installer.py 138 154 459
tests/test_llm_auth.py 153 55 458
tests/test_tools_browser_thread.py 117 49 450
tests/test_cli_from_turn.py 81 23 447
tests/test_hooks_dirty_diff.py 178 27 444
tests/test_telemetry.py 112 232 443
tests/test_python_kernel_raster.py 62 13 440
tests/test_util_cli_providers.py 93 42 438
tests/test_cli_resume.py 100 22 436
tests/test_compaction_native_anthropic.py 78 23 436
tests/test_tools_rag.py 115 39 436
tests/test_cost_tracker.py 50 27 424
tests/test_lessons_commands.py 157 82 422
tests/test_external_sessions.py 116 67 421
tests/test_reduce.py 125 157 420
tests/test_chats_clean_safety.py 81 21 419
tests/context/test_task_analyzer.py 90 44 418
tests/test_lessons_parser.py 188 239 417
tests/test_unified_plugins.py 110 44 417
tests/test_server_artifacts.py 66 32 415
tests/test_llm_grok_subscription.py 121 28 414
tests/test_subagent_worktree_isolation.py 129 70 414
tests/test_provider_plugins.py 100 39 409
tests/test_tools_precommit_paths.py 56 25 407
tests/test_llm_validate.py 78 64 404
tests/test_tools_mcp.py 102 20 398
tests/test_mcp_discovery.py 114 43 397
tests/test_tools_morph.py 101 70 396
tests/test_hybrid_lessons.py 100 58 395
tests/test_profiles.py 88 37 395
tests/test_computer_latency_cmd.py 93 42 393
tests/test_chats_external_search.py 87 63 389
tests/test_tui_literal_thinking.py 52 3 386
tests/test_util_cli_attest.py 91 7 386
tests/test_guardrail_hook.py 95 74 385
tests/test_search_alias.py 65 56 385
tests/test_server_v2_auto_stepping.py 72 55 383
tests/test_lessons_selector.py 55 38 374
tests/test_github_ci_self_heal.py 71 6 371
tests/test_anti_slop.py 108 61 370
tests/test_preview_proxy.py 98 46 370
tests/test_server_v2_agents.py 67 28 370
tests/test_lessons_emissions.py 59 3 368
tests/test_computer_record.py 119 30 364
tests/test_eval_behavioral_solutions.py 281 848 364
tests/test_replay.py 120 110 361
tests/test_subscription_terminal_recovery.py 42 5 360
tests/test_context_providers.py 183 121 356
tests/test_workspace_agents.py 154 59 353
tests/test_lessons_matcher.py 99 86 352
tests/test_tools_convert_publication.py 55 17 352
tests/test_complete.py 84 72 351
tests/test_computer_use_integration.py 140 143 349
tests/test_dataset_history.py 43 36 347
tests/test_util_hooks.py 85 93 347
tests/test_skill_commands.py 113 49 342
tests/test_computer_semantic_fixtures.py 92 107 340
tests/test_hol_guard_shell_hook.py 52 10 340
tests/test_agent_doctor.py 74 35 338
tests/test_completion_verification.py 78 1 337
tests/test_script_hooks.py 55 7 336
tests/test_eval_trends.py 35 22 335
tests/test_context_selector.py 94 48 334
tests/test_shell_redact_secrets.py 68 11 334
tests/test_llm_anthropic_system_messages.py 41 5 331
tests/test_tools_python.py 133 74 331
tests/test_tools_vision.py 65 40 331
tests/test_llm_generation_recovery.py 82 2 326
tests/test_tools_tmux_quoting.py 33 8 325
tests/test_circuit_breaker.py 98 69 322
tests/test_util_tool_format.py 78 32 322
tests/test_ephemeral.py 87 56 321
tests/test_mcp.py 94 62 321
tests/test_util_safety.py 96 22 321
tests/test_workspace_snapshot.py 105 46 319
tests/test_browser_open_page_session.py 66 49 318
tests/test_util_cli_batch.py 64 12 317
tests/test_util_cli_skills.py 118 89 315
tests/test_skill_metrics.py 38 2 312
tests/test_util_export.py 72 29 309
tests/test_browser.py 140 71 308
tests/test_hooks_knowledge_inject.py 74 6 305
tests/test_llm_request_limits.py 55 2 301
tests/test_config_encoding.py 154 195 300
tests/test_llm_openai_reasoning_effort.py 87 19 300
tests/context/test_adaptive_compressor.py 58 44 298
tests/test_responses_partial_tools.py 39 1 298
tests/test_eval_swebench.py 78 41 294
tests/test_tui_frames.py 49 40 293
tests/test_plugins.py 110 85 292
tests/test_git_worktree.py 73 41 291
tests/lessons/test_wildcard_matching.py 114 125 287
tests/test_hooks_server_confirm.py 78 33 285
tests/test_server_a2a.py 64 20 283
tests/test_util_tokens.py 130 71 282
tests/test_shell_completion_loop.py 26 11 280
tests/test_auto_naming.py 80 48 277
tests/test_commands_llm.py 32 1 276
tests/test_computer_video_frames_cli.py 67 12 274
tests/test_tool_conditionals.py 89 1 274
tests/test_tools_todo.py 126 83 274
tests/test_python_kernel_raster_limits.py 55 5 273
tests/test_transcript_durability.py 51 22 272
tests/test_computer_docker_config.py 59 92 271
tests/test_hooks.py 130 49 271
tests/lessons/test_bm25_parity.py 67 70 266
tests/test_url_safety.py 113 38 266
tests/test_compaction_review_regressions.py 45 13 264
tests/test_shell_completion_wait.py 47 5 263
tests/test_server_startup.py 39 65 261
tests/test_tools_parameter_conformance.py 54 79 260
tests/test_tools_autocommit.py 99 47 259
tests/test_terminal_startup_latency.py 77 32 257
tests/test_tool_use.py 60 66 255
tests/test_opencode_go.py 24 4 254
tests/test_custom_providers.py 74 103 253
tests/test_eval_claude_code.py 66 27 253
tests/test_lessons_integration.py 97 66 252
tests/test_prompt_tools.py 57 30 249
tests/test_tools_screenshot.py 59 52 249
tests/test_vision_transport.py 39 4 249
tests/test_util_cli_models.py 43 44 248
tests/test_skill_events.py 49 2 246
tests/test_agents_md_inject.py 44 40 245
tests/test_track_tokens.py 63 29 245
tests/test_util_clipboard_paste.py 55 30 243
tests/test_llm_retry_policy.py 90 19 242
tests/test_local_discovery.py 63 18 242
tests/test_tools_convert_tiff.py 20 10 242
tests/test_tools_patch_many_confirmation.py 47 4 242
tests/test_cli_context_files.py 31 23 241
tests/test_compaction_measurement.py 43 12 241
tests/test_responses_stream_errors.py 37 3 241
tests/test_tools_convert_sources.py 36 21 241
tests/test_computer_x11_integration.py 87 87 240
tests/test_model_selection_trace_export.py 70 19 237
tests/test_server_default_profile.py 78 44 236
tests/test_memory_match.py 34 9 235
tests/test_tools_patch.py 118 226 235
tests/test_cli_stats.py 62 27 234
tests/test_onboard.py 56 49 232
tests/test_util_cli_batch_stop_metadata.py 52 9 232
tests/test_shell_allowlist_autoconfirm.py 58 62 231
tests/test_subagent_roundtrip.py 74 52 230
tests/test_computer_settle.py 90 78 228
tests/test_hooks_cwd_changed.py 55 24 227
tests/test_chats_json.py 32 17 225
tests/test_cli_fatal_error_envelope.py 46 40 225
tests/test_release_source.py 20 10 225
tests/test_shell_restart.py 62 45 225
tests/test_server_fresh_bad_input.py 46 44 224
tests/test_tui_recovery.py 31 7 222
tests/test_browser_lynx.py 70 16 220
tests/test_server_tools_query.py 59 39 220
tests/test_sdk_stream_terminal.py 27 2 218
tests/test_util_keyword_matching.py 75 46 218
tests/test_chats_read.py 29 4 217
tests/test_lessons_tool.py 62 34 216
tests/test_llm_retry_abort.py 85 62 216
tests/test_config_trust.py 94 43 212
tests/test_conversation_metadata_readonly.py 31 16 212
tests/test_perf.py 67 54 212
tests/test_tools_append_hooks.py 43 1 212
tests/test_context_budget.py 72 38 209
tests/test_executor.py 50 31 209
tests/test_server_api_v2_common.py 55 52 209
tests/test_workspace_memory_policy.py 40 3 209
tests/test_autocompact_scoring.py 86 39 208
tests/test_browser_state.py 83 33 208
tests/test_server_v2_hooks.py 80 60 207
tests/test_cli_elicitation.py 45 2 206
tests/test_tui_skill_events.py 24 5 206
tests/test_oauth_openrouter.py 62 9 205
tests/test_shell_stream_oneshot.py 71 44 204
tests/test_perf_tui.py 57 51 203
tests/test_util_file_storage.py 51 36 203
tests/test_subagent_parent_isolation.py 56 30 202
tests/test_acp_client.py 72 36 201
tests/test_recovery_stream_overload.py 27 3 200
tests/test_tutorial.py 85 7 200
tests/test_tools_tmux_compounds.py 37 1 199
tests/test_browser_state_load_failure.py 19 6 198
tests/test_vent.py 39 10 198
tests/test_chats_clean.py 46 18 196
tests/test_execute_msg_hook_call_id.py 70 52 196
tests/test_shell_memory.py 43 7 196
tests/test_util_interrupt.py 68 44 196
tests/test_save_confirmation_baseline.py 32 1 193
tests/test_tools_convert_percent_inputs.py 19 4 192
tests/test_computer_task.py 116 31 189
tests/test_credential_output_integration.py 34 25 189
tests/test_summary_model.py 46 3 189
tests/test_openrouter_pricing_overrides.py 31 5 188
tests/test_file_selector_integration.py 53 24 186
tests/test_tools_convert_docx.py 33 3 186
tests/test_tools_convert_docx_literals.py 19 3 185
tests/test_chats_matching_snippets.py 13 6 184
tests/test_native_tool_names.py 28 1 184
tests/test_tools_chats.py 43 22 184
tests/test_tools_gh_pagination.py 24 1 184
tests/test_workspace_snapshot_namespace.py 17 3 184
tests/test_computer_screenshot_cli.py 53 12 183
tests/test_fold_mid_system.py 74 43 183
tests/test_foreground_output_dedup.py 38 16 182
tests/test_k_best.py 76 23 182
tests/test_memory_tool.py 38 11 181
tests/test_dspy_hybrid.py 65 45 179
tests/test_tools_tmux.py 77 65 179
tests/test_dspy_basic.py 66 44 177
tests/test_sdk_recovery_redirects.py 15 2 176
tests/test_chats_native_snippets.py 31 2 175
tests/test_subagent_shell_pgid_kill.py 40 31 174
tests/test_tools_choice.py 59 26 173
tests/test_chats_export.py 48 17 172
tests/test_util_cli_generate.py 35 7 172
tests/test_acp_types.py 35 12 171
tests/test_toolspec_read_only.py 40 12 171
tests/test_browser_navigation_live.py 28 9 170
tests/test_tools_form.py 34 19 169
tests/test_util_terminal.py 52 34 168
tests/test_memory_cli_metadata.py 16 8 167
tests/test_python_streams.py 27 2 167
tests/test_tauri_apt_setup.py 19 10 167
tests/test_tools_elicit.py 50 25 167
tests/test_tools_time_awareness.py 52 34 167
tests/test_chat_config.py 65 51 164
tests/test_tui_visual.py 50 47 164
tests/test_backtrack.py 39 11 163
tests/test_util_cost.py 29 26 163
tests/test_acp_protocol_logging.py 56 15 160
tests/test_tree.py 64 40 160
tests/test_acp_stdout.py 76 37 158
tests/test_server_v2_tool_confirmation.py 33 33 158
tests/test_uri.py 55 30 158
tests/test_tools_convert_orientation.py 34 11 157
tests/test_commands_account.py 37 6 156
tests/test_openai_responses_input.py 17 9 156
tests/test_eval_pass_rate_gate.py 48 9 154
tests/test_git_cmd_resolver.py 45 34 154
tests/test_patch_exact_uniqueness.py 19 2 153
tests/test_server_config_workspace_containment.py 42 46 153
tests/test_timings.py 66 50 153
tests/test_subagent_integration.py 48 21 152
tests/test_prompt_queue.py 48 17 151
tests/test_util_tree.py 44 33 151
tests/test_shell_max_output_bytes.py 63 80 150
tests/test_tools_gh_merge_guards.py 18 1 149
tests/fixtures/provider_test_scaffold.py 76 68 148
tests/test_util_install.py 34 31 148
tests/test_master_context.py 39 24 147
tests/test_misc_subprocess_timeouts.py 48 30 146
tests/test_tools_watch_timer_deadline.py 20 2 146
tests/test_tui_output_collapse.py 20 4 145
tests/test_credential_output.py 8 2 144
tests/test_subagent_concurrency.py 37 16 144
tests/test_dependabot_automerge.py 27 11 141
tests/test_server_elicitation.py 47 17 141
tests/test_backtrack_identity.py 27 2 140
tests/test_tools_token_awareness.py 59 47 140
tests/test_dspy_integration.py 54 32 139
tests/test_computer_milestone_integration.py 61 59 138
tests/test_subagent_summary.py 19 2 138
tests/test_tools_convert_pdf_first_page.py 16 8 138
tests/test_util_content.py 49 25 137
tests/test_browser_blockage.py 46 97 136
tests/test_browser_executable_path_env.py 28 32 135
tests/test_cli_explain.py 53 18 135
tests/test_prompt_fragments.py 20 1 135
tests/test_browser_state_publication.py 18 4 134
tests/test_computer_gate.py 76 40 133
tests/test_git_worktree_inspection.py 19 2 131
tests/test_shell_parser.py 31 17 131
tests/test_agent_workspace_timeouts.py 41 22 129
tests/test_morph_source_admission.py 19 20 129
tests/test_snapshot_list.py 45 7 129
tests/test_acp_adapter.py 42 33 128
tests/test_build_distribution.py 14 7 128
tests/test_cwe214_docker_env_leak.py 42 41 128
tests/test_server_webui_dir.py 61 23 128
tests/test_server_tools_allowlist.py 47 2 127
tests/test_active_context.py 41 22 126
tests/test_docs_structure.py 31 29 126
tests/test_chats_rename.py 48 19 125
tests/test_util_context_dedup.py 61 43 125
tests/test_treeofthoughts.py 34 23 124
tests/test_computer_risk_streaming.py 54 44 123
tests/test_llm_image_attachments.py 17 1 123
tests/test_prompt.py 36 36 123
tests/test_subagent_planner_roles.py 39 30 121
tests/test_eval_format_routing.py 30 25 120
tests/test_tui_before_tool_execution.py 21 9 120
tests/test_integration_phase4.py 22 19 119
tests/test_compaction_reminder.py 29 1 118
tests/test_cost_cache_cold_warning.py 33 8 118
tests/test_cli_non_utf8_input.py 28 8 117
tests/test_agent_service_timeouts.py 19 18 116
tests/test_browser_navigation.py 20 4 115
tests/test_server_cli_fallback.py 18 13 115
tests/thread_leak.py 34 55 115
tests/test_tools_tmux_native_panes.py 22 2 114
tests/test_cli_auth.py 24 4 113
tests/test_lessons_status.py 67 96 113
tests/test_server_host_validation.py 46 29 112
tests/test_subagent_tool_format.py 31 17 112
tests/test_tools_convert_document_publication.py 17 5 112
tests/test_hashline_confirmation_ownership.py 12 2 111
tests/test_tools_write_encoding.py 20 2 111
tests/test_python_kernel_stdin.py 16 3 110
tests/test_tools_convert_video_filenames.py 9 2 110
tests/test_computer_run_task_cli.py 40 14 109
tests/test_browser_session_persistence.py 62 33 108
tests/test_cost_awareness_delayed_warning.py 42 32 108
tests/test_restart_argv.py 9 3 108
tests/test_util_export_browser.py 14 14 108
tests/test_validate_release_package.py 29 2 108
tests/test_build_changelog.py 24 13 107
tests/test_server_perf.py 23 38 107
tests/test_setup_completions.py 32 6 106
tests/test_server_parent_death_watcher.py 25 38 103
tests/test_util_output_storage.py 23 13 103
tests/test_appimage_release.py 9 5 102
tests/test_command_completion.py 33 23 100
tests/test_eval_constraint_satisfaction.py 24 8 100
tests/test_hooks_mcp_namespace_hint.py 30 14 100
tests/test_generation_pre_snapshot_boundary.py 38 39 99
tests/test_knowledge_subprocess.py 8 4 99
tests/test_shell_output_boundaries.py 13 4 99
tests/test_tools_convert_docx_hyperlinks.py 21 4 99
tests/test_thread_leak.py 29 7 98
tests/test_server_auth.py 46 25 97
tests/test_util.py 46 86 96
tests/test_agent_fork_command.py 18 5 95
tests/test_openrouter_cache_pricing.py 28 5 95
tests/test_policy_block.py 29 9 95
tests/test_session.py 40 21 95
tests/test_server_v2_sse.py 26 27 94
tests/test_tools_convert_literal_inputs.py 7 1 93
tests/test_tools_convert_literal_paths.py 9 1 93
tests/test_logmanager_locking.py 20 5 91
tests/test_server_etag.py 22 5 91
tests/test_shell_sigterm.py 11 57 91
tests/test_agent_memory.py 26 17 90
tests/test_python_backend_selection.py 22 1 89
tests/test_swebench_utils.py 27 2 89
tests/test_commands_rag.py 16 2 88
tests/test_server_cors.py 33 20 88
tests/test_tools_vision_exif.py 12 3 88
tests/test_browser_github_routing.py 27 0 86
tests/test_browser_screenshot.py 14 1 86
tests/test_shell_state_contract.py 7 4 86
tests/test_output_format.py 29 21 84
tests/test_shell_high_fd.py 28 29 83
tests/test_cli_llm_generate.py 19 12 82
tests/test_cli_sound.py 26 2 82
tests/test_tool_description_cap.py 29 13 82
tests/test_eval_swebench_retrieval.py 25 4 81
tests/test_release_preflight.py 5 2 81
tests/test_prompt_skills_summary.py 44 44 80
tests/test_windows_signing.py 5 2 80
tests/fixtures/hol_guard_shell_hook.py 28 25 77
tests/test_eval_timeouts.py 32 33 77
tests/test_xml_format.py 33 91 77
tests/test_attachment_loading.py 17 5 76
tests/test_acp_recovery.py 13 2 75
tests/test_markdown_validation.py 43 34 75
tests/test_shell_issue729.py 50 52 75
tests/test_logmanager_fork_locking.py 19 156 74
tests/test_patch_literal_comments.py 15 1 74
tests/test_setup_api_key.py 19 1 74
tests/test_subscription_pricing.py 27 14 74
tests/test_pytest_timeout_retry_interaction.py 21 25 73
tests/test_shell_issue772.py 48 47 73
tests/test_llm_empty_stream.py 33 4 72
tests/test_python_support.py 14 5 72
tests/test_acp_e2e_smoke.py 23 27 71
tests/test_server_audio_transcription.py 20 15 69
tests/test_hooks_form_autodetect.py 22 34 68
tests/test_browser_markdown_literals.py 13 1 67
tests/test_docs_tool_formats_coverage.py 16 15 67
tests/test_tools_watch_run_utf8.py 11 2 67
tests/test_util_context_savings.py 12 0 66
tests/test_computer_api.py 90 401 65
tests/test_eval_tool_efficiency.py 20 11 64
tests/test_tools_native_kwargs.py 23 6 64
tests/test_build_apt_retry.py 5 30 62
tests/test_cli_hooks_settings_shape.py 12 1 62
tests/test_entrypoints.py 26 37 60
tests/test_llm_mock.py 22 12 60
tests/test_shell_escaped_pipes.py 9 2 60
tests/test_shell_output_mixing_issue408.py 25 29 60
tests/test_eval_practical20.py 27 8 59
tests/test_logmanager_corrupt_lines.py 17 11 59
tests/test_server_client.py 33 26 59
tests/test_server_metrics.py 20 20 59
tests/test_shell_memory_limit.py 18 14 59
tests/test_useredit.py 16 3 58
tests/test_openrouter_reported_cost.py 18 1 57
tests/test_webui_redirects.py 11 7 57
tests/test_chat_history.py 14 12 56
tests/test_cli_init.py 19 2 56
tests/test_browser_reconnect_owner.py 11 3 55
tests/test_computer_artifacts.py 14 3 54
tests/test_server_skills_api.py 13 1 54
tests/test_context_status.py 11 2 53
tests/test_eval_practical17.py 33 3 53
tests/test_eval_practical18.py 23 4 53
tests/test_eval_practical19.py 23 6 53
tests/test_server_tts_api.py 21 0 53
tests/test_checkpoint_restart.py 10 1 51
tests/test_github_bot.py 12 1 51
tests/test_util_generate_name.py 19 11 50
tests/fixtures/review/v2_full.json 0 0 49
tests/test_execute_msg_defensive.py 19 19 49
tests/test_recovery_strict_exhaustion.py 7 2 48
tests/test_tool_memory_native.py 14 2 48
tests/test_pytest_retry_tmp_path_interaction.py 17 26 47
tests/test_dspy_gepa.py 18 9 46
tests/test_import_boundaries.py 8 12 46
tests/test_demo_capture.py 19 9 45
tests/test_recovery_nested_budget.py 11 2 45
tests/test-integration.sh 22 36 43
tests/test_pdf_to_images.py 13 13 43
tests/test_cli_context_non_utf8.py 11 1 41
tests/test_check_rst_formatting.py 28 59 40
tests/test_tools_read_range_decoding.py 7 2 40
tests/test_shell_fd_leak.py 23 16 39
tests/test_utils.py 14 17 38
tests/test_message_command.py 14 13 36
tests/test_python_kernel_review_regressions.py 13 1 36
tests/snapshots/tui_stream.svg 3 0 35
tests/test_tools_pruner.py 9 0 35
tests/test_chat_config_readonly.py 15 1 34
tests/test_cli_confirm_hook.py 24 20 34
tests/test_credentials.py 16 0 34
tests/test_logmanager_reader_context.py 9 62 34
tests/snapshots/tui_idle.svg 3 0 33
tests/snapshots/tui_inline.svg 3 0 33
tests/test_shell_for_loop_issue724.py 16 24 33
tests/test_subagent_log_lock.py 9 3 33
tests/test_docker_lockfile.py 9 3 30
tests/test_project_config_list_types.py 6 1 30
tests/test_user_config_isolation.py 10 3 30
tests/test_agent_merge_project_config.py 16 11 29
tests/test_package_exports.py 10 3 29
tests/test_cmd_init_toml_name.py 12 1 28
tests/test_eval_practical16.py 11 0 28
tests/test_lessons_frontmatter_name_type.py 11 1 28
tests/test_tool_preview_content.py 12 3 28
tests/data/git-log-oneline.txt 0 0 27
tests/test_browser_markdown_packaging.py 3 1 26
tests/test_quota_skip.py 5 3 26
tests/data/example-patch-codeblock.txt 4 0 25
tests/data/gh-issue-list.txt 0 0 25
tests/fixtures/retry_server.py 11 13 25
tests/data/example-interrupted.txt 8 0 24
tests/test_tool_loading_duplicate.py 16 15 24
tests/test_credentials_integration.py 8 0 22
tests/test_constants.py 11 13 19
tests/test_server_cli_tools.py 12 4 19
tests/test_tools_shell_multiline.py 7 19 19
tests/test_browser_format.py 8 6 18
tests/test_session_allowlist_isolation.py 14 31 17
tests/test_llm_summarize_terminal_projection.py 9 9 15
tests/test_screenshot.py 9 6 15
tests/fixtures/review/v2_minimal.json 0 0 11
tests/retry_compat.py 8 22 6
----------------------------------------------------------------------------------------------------
SUM: 52885 31974 210525
----------------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC Eval#
$ make cloc-eval
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/eval/**.py --by-file --hide-rate --quiet | tail -n +2
------------------------------------------------------------------------------------------
File blank comment code
------------------------------------------------------------------------------------------
gptme/eval/main.py 110 133 944
gptme/eval/leaderboard.py 149 485 817
gptme/eval/execenv.py 114 215 733
gptme/eval/run.py 75 126 592
gptme/eval/trends.py 59 31 317
gptme/eval/types.py 35 69 110
gptme/eval/pass_rate_gate.py 23 44 75
gptme/eval/filestore.py 11 8 63
gptme/eval/cost.py 18 25 40
gptme/eval/__init__.py 2 2 4
gptme/eval/__main__.py 1 0 3
------------------------------------------------------------------------------------------
SUM: 597 1138 3698
------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
LoC Total#
$ make cloc-total
make[2]: Entering directory '/home/runner/work/gptme/gptme'
cloc gptme/agent/service.py gptme/agent/doctor.py gptme/agent/cli.py gptme/agent/workspace.py gptme/agent/__init__.py gptme/oauth/__init__.py gptme/oauth/openrouter.py gptme/tools/shell_flags.py gptme/tools/_browser_format.py gptme/tools/pruner.py gptme/tools/computer_semantic.py gptme/tools/patch.py gptme/tools/chats.py gptme/tools/python.py gptme/tools/memory.py gptme/tools/_browser_thread.py gptme/tools/rag.py gptme/tools/shell.py gptme/tools/native_names.py gptme/tools/convert.py gptme/tools/choice.py gptme/tools/_browser_perplexity.py gptme/tools/shell_background.py gptme/tools/gh.py gptme/tools/browser.py gptme/tools/shell_validation.py gptme/tools/autocompact/context_provider.py gptme/tools/autocompact/native_anthropic.py gptme/tools/autocompact/config.py gptme/tools/autocompact/handlers.py gptme/tools/autocompact/resume.py gptme/tools/autocompact/hook.py gptme/tools/autocompact/engine.py gptme/tools/autocompact/decision.py gptme/tools/autocompact/__init__.py gptme/tools/autocompact/scoring.py gptme/tools/autocompact/recovery.py gptme/tools/autocompact/events.py gptme/tools/lessons.py gptme/tools/save.py gptme/tools/progress.py gptme/tools/tmux.py gptme/tools/mcp.py gptme/tools/subagent/hooks.py gptme/tools/subagent/control.py gptme/tools/subagent/batch.py gptme/tools/subagent/concurrency.py gptme/tools/subagent/persistence.py gptme/tools/subagent/types.py gptme/tools/subagent/api.py gptme/tools/subagent/__init__.py gptme/tools/subagent/context.py gptme/tools/subagent/execution.py gptme/tools/_browser_playwright.py gptme/tools/todo.py gptme/tools/form.py gptme/tools/vent.py gptme/tools/morph.py gptme/tools/mcp_adapter.py gptme/tools/_browser_lynx.py gptme/tools/_computer_gate.py gptme/tools/read.py gptme/tools/watch.py gptme/tools/__init__.py gptme/tools/recall.py gptme/tools/_allowlist.py gptme/tools/elicit.py gptme/tools/base.py gptme/tools/complete.py gptme/tools/python_kernel.py gptme/tools/autocommit.py gptme/tools/request_tool_change.py gptme/tools/vision.py gptme/tools/precommit.py gptme/tools/computer_transport.py gptme/tools/restart.py gptme/tools/hashline_edit.py gptme/tools/computer.py gptme/tools/screenshot.py gptme/tools/shell_memory.py gptme/tools/clarify.py gptme/tools/_hashline_snapshot.py gptme/tools/patch_many.py gptme/tools/_url_safety.py gptme/constants.py gptme/hooks/_policy_block.py gptme/hooks/server_confirm.py gptme/hooks/knowledge_inject.py gptme/hooks/active_context.py gptme/hooks/mcp_namespace_hint.py gptme/hooks/agents_md_inject.py gptme/hooks/dirty_diff.py gptme/hooks/token_awareness.py gptme/hooks/auto_snapshots.py gptme/hooks/cost_awareness.py gptme/hooks/guardrails.py gptme/hooks/markdown_validation.py gptme/hooks/_credential_output.py gptme/hooks/server_elicit.py gptme/hooks/types.py gptme/hooks/auto_confirm.py gptme/hooks/workspace_agents.py gptme/hooks/cli_confirm.py gptme/hooks/script.py gptme/hooks/injection_screening.py gptme/hooks/test.py gptme/hooks/aw_watcher_agent.py gptme/hooks/__init__.py gptme/hooks/cwd_awareness.py gptme/hooks/confirm.py gptme/hooks/anomaly_watchdog.py gptme/hooks/elicitation.py gptme/hooks/tool_target_instructions.py gptme/hooks/_secret_reach.py gptme/hooks/form_autodetect.py gptme/hooks/cache_awareness.py gptme/hooks/registry.py gptme/hooks/cwd_changed.py gptme/hooks/tests/test_confirm.py gptme/hooks/tests/test_guardrails.py gptme/hooks/tests/test_cwd_awareness.py gptme/hooks/tests/test_cache_awareness.py gptme/hooks/tests/test_auto_confirm.py gptme/hooks/tests/test_server_confirm.py gptme/hooks/tests/test_elicitation.py gptme/hooks/tests/test_anomaly_watchdog.py gptme/hooks/tests/test_workspace_agents.py gptme/hooks/tests/test_token_awareness.py gptme/hooks/tests/test_form_autodetect.py gptme/hooks/tests/__init__.py gptme/hooks/tests/test_aw_watcher_agent.py gptme/hooks/tests/test_injection_screening.py gptme/hooks/tests/test_tool_target_instructions.py gptme/hooks/tests/test_cli_confirm.py gptme/hooks/tests/test_server_elicit.py gptme/hooks/tests/test_active_context.py gptme/hooks/tests/test_cost_awareness.py gptme/hooks/tests/test_time_awareness.py gptme/hooks/tests/test_agents_md_inject.py gptme/hooks/tests/test_markdown_validation.py gptme/hooks/time_awareness.py gptme/acp/types.py gptme/acp/agent.py gptme/acp/__init__.py gptme/acp/adapter.py gptme/acp/client.py gptme/acp/__main__.py gptme/util/capabilities_export.py gptme/util/git_worktree.py gptme/util/context_savings.py gptme/util/completion_verification.py gptme/util/master_context.py gptme/util/clipboard.py gptme/util/sound.py gptme/util/_sound_sounddevice.py gptme/util/context_measurement.py gptme/util/cost_tracker.py gptme/util/uri.py gptme/util/gh.py gptme/util/rich_text.py gptme/util/cost_display.py gptme/util/reduce.py gptme/util/multiprompt.py gptme/util/safety.py gptme/util/context_budget.py gptme/util/_sound_cmd.py gptme/util/file_storage.py gptme/util/context_dedup.py gptme/util/interrupt.py gptme/util/git_cmd.py gptme/util/tokens.py gptme/util/useredit.py gptme/util/_telemetry.py gptme/util/prompt.py gptme/util/keyword_matching.py gptme/util/__init__.py gptme/util/generate_name.py gptme/util/tool_display.py gptme/util/output_storage.py gptme/util/content.py gptme/util/tool_format.py gptme/util/export.py gptme/util/stdio.py gptme/util/cost.py gptme/util/terminal.py gptme/util/ask_execute.py gptme/util/review.py gptme/util/summary.py gptme/util/context.py gptme/util/conversation_ids.py gptme/util/tree.py gptme/util/clock.py gptme/util/auto_naming.py gptme/util/file_write.py gptme/util/redact.py gptme/util/history.py gptme/util/notification_ready.py gptme/util/replay.py gptme/util/install.py gptme/workspace_snapshot.py gptme/eval/pass_rate_gate.py gptme/eval/swe_extra/swe_bench_extra_data.py gptme/eval/swe_extra/__init__.py gptme/eval/swe_extra/swe_bench_test_spec.py gptme/eval/swe_extra/swe_bench_constants.py gptme/eval/swe_extra/run_swe_extra.py gptme/eval/suites/practical8.py gptme/eval/suites/practical21.py gptme/eval/suites/practical9.py gptme/eval/suites/practical20.py gptme/eval/suites/practical23.py gptme/eval/suites/practical6.py gptme/eval/suites/browser.py gptme/eval/suites/practical.py gptme/eval/suites/practical4.py gptme/eval/suites/constraint_satisfaction.py gptme/eval/suites/subagent.py gptme/eval/suites/practical10.py gptme/eval/suites/practical12.py gptme/eval/suites/practical18.py gptme/eval/suites/practical17.py gptme/eval/suites/practical13.py gptme/eval/suites/basic.py gptme/eval/suites/practical27.py gptme/eval/suites/practical31.py gptme/eval/suites/practical14.py gptme/eval/suites/practical3.py gptme/eval/suites/practical33.py gptme/eval/suites/practical30.py gptme/eval/suites/__init__.py gptme/eval/suites/practical24.py gptme/eval/suites/practical29.py gptme/eval/suites/practical16.py gptme/eval/suites/practical28.py gptme/eval/suites/practical11.py gptme/eval/suites/practical32.py gptme/eval/suites/practical19.py gptme/eval/suites/practical2.py gptme/eval/suites/practical7.py gptme/eval/suites/practical22.py gptme/eval/suites/practical26.py gptme/eval/suites/init_projects.py gptme/eval/suites/practical5.py gptme/eval/suites/practical25.py gptme/eval/suites/computer.py gptme/eval/suites/behavioral/merge_conflict_resolution.py gptme/eval/suites/behavioral/rate_limiting.py gptme/eval/suites/behavioral/_common.py gptme/eval/suites/behavioral/fix_mutable_default.py gptme/eval/suites/behavioral/add_logging.py gptme/eval/suites/behavioral/scope_discipline_bugfix.py gptme/eval/suites/behavioral/use_existing_helper.py gptme/eval/suites/behavioral/handle_specific_exception.py gptme/eval/suites/behavioral/root_cause_pipeline_debug.py gptme/eval/suites/behavioral/bounded_bugfix_with_decoys.py gptme/eval/suites/behavioral/write_test_suite.py gptme/eval/suites/behavioral/fix_security_path_traversal.py gptme/eval/suites/behavioral/implement_priority_queue.py gptme/eval/suites/behavioral/refactor_for_testability.py gptme/eval/suites/behavioral/noisy_worktree_fix.py gptme/eval/suites/behavioral/circuit_breaker.py gptme/eval/suites/behavioral/fix_data_mutation.py gptme/eval/suites/behavioral/add_feature_preserve_default.py gptme/eval/suites/behavioral/extract_function_refactor.py gptme/eval/suites/behavioral/optimize_n_squared.py gptme/eval/suites/behavioral/stage_new_files.py gptme/eval/suites/behavioral/retry_with_backoff.py gptme/eval/suites/behavioral/validate_user_input.py gptme/eval/suites/behavioral/add_type_hints.py gptme/eval/suites/behavioral/test_driven_error_handling.py gptme/eval/suites/behavioral/implement_memoization.py gptme/eval/suites/behavioral/__init__.py gptme/eval/suites/behavioral/debug_data_pipeline.py gptme/eval/suites/behavioral/add_deprecation_warning.py gptme/eval/suites/behavioral/multi_file_rename.py gptme/eval/suites/behavioral/add_docstrings.py gptme/eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py gptme/eval/suites/behavioral/remove_dead_code.py gptme/eval/suites/behavioral/implement_lru_cache.py gptme/eval/suites/behavioral/git_selective_commit.py gptme/eval/suites/behavioral/implement_event_emitter.py gptme/eval/suites/behavioral/iterative_debug.py gptme/eval/suites/practical15.py gptme/eval/tbench/run.py gptme/eval/tbench/agent.py gptme/eval/tbench/__init__.py gptme/eval/trends.py gptme/eval/filestore.py gptme/eval/types.py gptme/eval/run.py gptme/eval/execenv.py gptme/eval/dspy/signatures.py gptme/eval/dspy/metrics.py gptme/eval/dspy/cli.py gptme/eval/dspy/experiments.py gptme/eval/dspy/prompt_optimizer.py gptme/eval/dspy/__init__.py gptme/eval/dspy/hybrid_optimizer.py gptme/eval/dspy/tasks.py gptme/eval/dspy/__main__.py gptme/eval/main.py gptme/eval/__init__.py gptme/eval/agents/claude_code.py gptme/eval/agents/swebench.py gptme/eval/agents/__init__.py gptme/eval/cost.py gptme/eval/swebench/retrieval.py gptme/eval/swebench/evaluate.py gptme/eval/swebench/utils.py gptme/eval/swebench/info.py gptme/eval/swebench/main.py gptme/eval/swebench/__init__.py gptme/eval/swebench/__main__.py gptme/eval/leaderboard.py gptme/eval/__main__.py gptme/model_attestation.py gptme/context/task_analyzer.py gptme/context/config.py gptme/context/selector/config.py gptme/context/selector/file_integration.py gptme/context/selector/__init__.py gptme/context/selector/rule_based.py gptme/context/selector/file_config.py gptme/context/selector/base.py gptme/context/selector/file_selector.py gptme/context/selector/hybrid.py gptme/context/selector/llm_based.py gptme/context/adaptive_compressor.py gptme/context/compress.py gptme/context/__init__.py gptme/context/scout.py gptme/memory/roots.py gptme/memory/schema.py gptme/memory/__init__.py gptme/memory/recall.py gptme/memory/store.py gptme/memory/policy.py gptme/memory/match.py gptme/session.py gptme/credentials.py gptme/prompts/context_cmd.py gptme/prompts/skills.py gptme/prompts/chat_history.py gptme/prompts/workspace.py gptme/prompts/__init__.py gptme/prompts/templates.py gptme/checkpoint.py gptme/info.py gptme/dataset/trajectory_to_env.py gptme/dataset/__init__.py gptme/chat.py gptme/__version__.py gptme/profiles.py gptme/circuit_breaker.py gptme/telemetry.py gptme/tui/statusline.py gptme/tui/main.py gptme/tui/app.py gptme/tui/__init__.py gptme/dirs.py gptme/lessons/matcher.py gptme/lessons/skills/python-repl/python_helpers.py gptme/lessons/auto_include.py gptme/lessons/selector.py gptme/lessons/parser.py gptme/lessons/hybrid_matcher.py gptme/lessons/skill_events.py gptme/lessons/skill_commands.py gptme/lessons/__init__.py gptme/lessons/installer.py gptme/lessons/commands.py gptme/lessons/index.py gptme/llm/constants.py gptme/llm/llm_mock.py gptme/llm/provider_plugins.py gptme/llm/request_limits.py gptme/llm/local_discovery.py gptme/llm/retry_policy.py gptme/llm/utils.py gptme/llm/llm_openrouter_subscription.py gptme/llm/models/recommended.py gptme/llm/models/types.py gptme/llm/models/__init__.py gptme/llm/models/data.py gptme/llm/models/listing.py gptme/llm/models/resolution.py gptme/llm/responses_phase.py gptme/llm/llm_anthropic_models_deprecated.py gptme/llm/llm_openai_models.py gptme/llm/openai_responses.py gptme/llm/_degeneration.py gptme/llm/llm_openai_subscription.py gptme/llm/__init__.py gptme/llm/llm_openai.py gptme/llm/llm_openai_models_deprecated.py gptme/llm/retry_abort.py gptme/llm/llm_gptme.py gptme/llm/validate.py gptme/llm/llm_grok_subscription.py gptme/llm/recovery.py gptme/llm/llm_anthropic.py gptme/message.py gptme/mcp/server.py gptme/mcp/__init__.py gptme/mcp/registry.py gptme/mcp/client.py gptme/__init__.py gptme/anti_slop.py gptme/commands/rag.py gptme/commands/meta.py gptme/commands/session.py gptme/commands/checkpoint.py gptme/commands/llm.py gptme/commands/account.py gptme/commands/__init__.py gptme/commands/export.py gptme/commands/backtrack.py gptme/commands/base.py gptme/commands/snapshot.py gptme/prompt_queue.py gptme/cli/cmd_init.py gptme/cli/cmd_mcp_serve.py gptme/cli/cmd_computer.py gptme/cli/cmd_slop.py gptme/cli/cmd_chats.py gptme/cli/cmd_status.py gptme/cli/cmd_review_pr.py gptme/cli/util.py gptme/cli/auth.py gptme/cli/checkpoint.py gptme/cli/cmd_batch.py gptme/cli/cmd_snapshot.py gptme/cli/cmd_attest.py gptme/cli/cmd_stats.py gptme/cli/cmd_memory.py gptme/cli/doctor.py gptme/cli/cmd_skills.py gptme/cli/cmd_mcp.py gptme/cli/cmd_hooks.py gptme/cli/cmd_agents.py gptme/cli/cmd_sound.py gptme/cli/cmd_dataset.py gptme/cli/main.py gptme/cli/cmd_knowledge.py gptme/cli/__init__.py gptme/cli/cmd_resume.py gptme/cli/setup.py gptme/cli/cmd_service.py gptme/cli/onboard.py gptme/cli/wut.py gptme/cli/cmd_review_watch.py gptme/cli/cmd_review.py gptme/cli/cmd_tutorial.py gptme/cli/cmd_explain.py gptme/cli/cmd_capabilities.py gptme/sandbox.py gptme/logmanager/conversations.py gptme/logmanager/manager.py gptme/logmanager/locking.py gptme/logmanager/fork.py gptme/logmanager/__init__.py gptme/logmanager/eventlog.py gptme/logmanager/durability.py gptme/logmanager/cleanup.py gptme/logmanager/conv_checkpoints.py gptme/init.py gptme/codeblock.py gptme/k_best.py gptme/status_provider.py gptme/config/project.py gptme/config/user.py gptme/config/chat.py gptme/config/models.py gptme/config/trust.py gptme/config/core.py gptme/config/__init__.py gptme/config/cli_setup.py gptme/attestation.py gptme/knowledge.py gptme/executor.py gptme/server/tools_api.py gptme/server/constants.py gptme/server/api_v2.py gptme/server/api_v2_common.py gptme/server/auth.py gptme/server/acp_session_runtime.py gptme/server/metrics.py gptme/server/api_v2_sessions.py gptme/server/skills_api.py gptme/server/tasks_api.py gptme/server/preview_proxy_api.py gptme/server/cli.py gptme/server/external_sessions.py gptme/server/session_step.py gptme/server/api_v2_agents.py gptme/server/artifacts_api.py gptme/server/app.py gptme/server/__init__.py gptme/server/openapi_docs.py gptme/server/panels_api.py gptme/server/workspace_api.py gptme/server/token_file.py gptme/server/a2a_api.py gptme/server/computer_api.py gptme/server/client.py gptme/server/tts_api.py gptme/server/session_models.py gptme/server/__main__.py gptme/plugins/entrypoints.py gptme/plugins/__init__.py gptme/plugins/security.py gptme/plugins/registry.py gptme/plugins/plugin.py gptme/__main__.py tests/test_shell_for_loop_issue724.py tests/test_context_budget.py tests/test_tool_use.py tests/test_tools_shell.py tests/test_agent.py tests/test_context.py tests/test_shell_redact_secrets.py tests/test_credential_output_integration.py tests/test_browser_github_routing.py tests/test_sdk_stream_terminal.py tests/test_computer_x11_integration.py tests/test_tools_base.py tests/test_lessons_status.py tests/test_logmanager_reader_context.py tests/test_util_context_dedup.py tests/test_subagent_summary.py tests/test_capabilities_export.py tests/test_acp_agent.py tests/test_tools_time_awareness.py tests/test_browser.py tests/test_lessons_emissions.py tests/test_browser_screenshot.py tests/test_server_api_v2_common.py tests/test_vision_transport.py tests/test_conversation_metadata_readonly.py tests/test_lessons_auto_include.py tests/test_llm_openai_reasoning_effort.py tests/test_k_best.py tests/test_tools_convert_pdf_first_page.py tests/test_computer_api.py tests/test_credentials_integration.py tests/test_computer_run_task_cli.py tests/test_terminal_startup_latency.py tests/test_server_config_workspace_containment.py tests/test_cli_init.py tests/test_tools_tmux_quoting.py tests/test_computer_latency_cmd.py tests/test_tools_convert_literal_paths.py tests/test_chats_stats.py tests/test_subagent_worktree_isolation.py tests/test_timings.py tests/test_llm_validate.py tests/test_subscription_pricing.py tests/test_acp_recovery.py tests/test_guardrail_hook.py tests/test_recovery_nested_budget.py tests/test_hooks_cache_awareness.py tests/test_chat.py tests/test_tui_output_collapse.py tests/test_execute_msg_defensive.py tests/test_util_install.py tests/test_browser_markdown_literals.py tests/test_shell_restart.py tests/test_init.py tests/test_prompt.py tests/test_tools_complete.py tests/test_doctor.py tests/test_tools_watch_timer_deadline.py tests/test_release_preflight.py tests/test_memory_tool.py tests/test_custom_providers.py tests/test_script_hooks.py tests/test_tools_choice.py tests/test_external_sessions.py tests/test_tools_patch_many.py tests/test_server_v2_hooks.py tests/test_toolspec_read_only.py tests/test_cc_memory.py tests/thread_leak.py tests/test_uri.py tests/test_subagent_roundtrip.py tests/test_hooks_form_autodetect.py tests/test_lessons.py tests/retry_compat.py tests/test_util_context_savings.py tests/test_tui_visual.py tests/test_eventlog.py tests/test_build_apt_retry.py tests/test_lessons_index.py tests/test_shell_issue729.py tests/test_llm_generation_recovery.py tests/test_telemetry.py tests/test_sdk_recovery_redirects.py tests/test_docker_lockfile.py tests/test_llm_models_resolution.py tests/test_guardrail_secret_reach.py tests/test_responses_partial_tools.py tests/test_cli_confirm_hook.py tests/context/test_adaptive_compressor.py tests/context/test_task_analyzer.py tests/test_context_scout.py tests/test_tools_read.py tests/test_subagent_tool_format.py tests/test_project_config_list_types.py tests/test_tools_computer.py tests/test_anti_slop.py tests/test_server_elicitation.py tests/test_utils.py tests/test_prompts.py tests/test_tools_convert_orientation.py tests/test_tools_pruner.py tests/test_backtrack.py tests/test_execute_msg_hook_call_id.py tests/test_python_streams.py tests/test_tools_python_kernel.py tests/test_tools_append_hooks.py tests/test_acp_e2e_smoke.py tests/test_lessons_tool.py tests/test_oauth_openrouter.py tests/test_computer_audit.py tests/test_restart_argv.py tests/test_memory_store.py tests/test_config_workspace_publication.py tests/test_cli_stats.py tests/test_chats_export.py tests/test_compaction_recall.py tests/test_tools_form.py tests/test_compaction_native_anthropic.py tests/test_user_config_isolation.py tests/test_demo_capture.py tests/test_commands_llm.py tests/test_pdf_to_images.py tests/test_cli_context_non_utf8.py tests/test_chat_transient_recovery.py tests/test_codeblock.py tests/test_util_export.py tests/test_tui_completion.py tests/test_cli_llm_generate.py tests/test_overflow_recovery.py tests/test_cost_awareness_delayed_warning.py tests/test_tools_gh_pagination.py tests/test_util_cli_review_watch.py tests/test_master_context.py tests/test_executor.py tests/test_output_format.py tests/test_util_output_storage.py tests/test_llm_request_limits.py tests/test_server_client.py tests/test_tools_browser.py tests/test_tools_browser_thread.py tests/test_dirs.py tests/test_eval_swebench_retrieval.py tests/test_util_safety.py tests/test_memory_match.py tests/test_compaction_review_regressions.py tests/test_util_gh_mocked.py tests/test_message.py tests/test_browser_session_persistence.py tests/test_browser_state_publication.py tests/test_llm_openai.py tests/test_cli_resume.py tests/test_commands_account.py tests/test_acp_client.py tests/test_import_boundaries.py tests/test_server.py tests/test_recovery_stream_overload.py tests/test_server_parent_death_watcher.py tests/test_chats_native_snippets.py tests/test_llm_models.py tests/test_setup_api_key.py tests/test_explicit_attachments.py tests/test_docs_tool_formats_coverage.py tests/test_tools_convert_sources.py tests/test_responses_stream_errors.py tests/test_subagent_integration.py tests/test_shell_allowlist_autoconfirm.py tests/test_shell_memory.py tests/test_git_cmd_resolver.py tests/test_util_terminal.py tests/test_computer_screenshot_cli.py tests/test_server_host_validation.py tests/test_llm_anthropic.py tests/test_tui.py tests/test_knowledge.py tests/test_autocompact_scoring.py tests/test_chats_clean.py tests/test_hooks_dirty_diff.py tests/test_prompt_tools.py tests/test_auto_compact.py tests/test_chats_clean_safety.py tests/test_shell_sigterm.py tests/test_util_cli_mcp.py tests/test_server_panels.py tests/test_release_source.py tests/test_tools_convert_publication.py tests/test_tools_native_kwargs.py tests/test_commands.py tests/test_lessons_integration.py tests/test_computer_record.py tests/test_tools_patch_many_confirmation.py tests/test_useredit.py tests/test_shell_background.py tests/test_cli_auth.py tests/test_tools_write_encoding.py tests/test_util_content.py tests/test_transcript_durability.py tests/test_server_subscription_connect.py tests/test_tui_frames.py tests/test_snapshot_list.py tests/test_util_cli_models.py tests/test_setup_completions.py tests/test_util_cost.py tests/test_util_hooks.py tests/test_pytest_timeout_retry_interaction.py tests/test_subagent_planner_roles.py tests/test_opencode_go.py tests/test_python_support.py tests/test_server_auth.py tests/test_tools_screenshot.py tests/test_computer_task.py tests/test_dspy_gepa.py tests/test_shell_foreground_promotion.py tests/test_hooks.py tests/test_conversations.py tests/test_acp_session_runtime.py tests/test_provider_plugins.py tests/test_util_keyword_matching.py tests/test_openrouter_cache_pricing.py tests/test_cli_elicitation.py tests/test_cli_explain.py tests/test_util_cli_batch_stop_metadata.py tests/test_python_kernel_review_regressions.py tests/test_server_tools_query.py tests/test_server_metrics.py tests/test_misc_subprocess_timeouts.py tests/test_swebench_utils.py tests/test_compaction_measurement.py tests/test_json_output.py tests/test_native_tool_names.py tests/test_util.py tests/test_computer_transport.py tests/test_logmanager_corrupt_lines.py tests/test_shell_state_contract.py tests/test_validate_release_package.py tests/test_acp_protocol_logging.py tests/test_tools_save.py tests/test_util_cli_providers.py tests/test_cwe214_docker_env_leak.py tests/test_subagent_persistence.py tests/test_computer_gate.py tests/test_server_tools_allowlist.py tests/test_attachment_loading.py tests/test_entrypoints.py tests/test_gptme_provider.py tests/test_tools_morph.py tests/test_browser_blockage.py tests/test_server_webui_dir.py tests/test_eval_computer_suite.py tests/test_shell_escaped_pipes.py tests/test_checkpoint_restart.py tests/test_pytest_retry_tmp_path_interaction.py tests/test_model_selection_trace_export.py tests/test_webui_redirects.py tests/test_tools_token_awareness.py tests/test_message_command.py tests/test_vent.py tests/test_logmanager.py tests/fixtures/provider_test_scaffold.py tests/fixtures/hol_guard_shell_hook.py tests/fixtures/retry_server.py tests/test_policy_block.py tests/test_tool_loading_duplicate.py tests/test_chats_json.py tests/test_tools_convert_video_filenames.py tests/test_shell_fd_leak.py tests/test_computer_actions.py tests/test_server_workspace.py tests/test_prompt_templates.py tests/test_util_tool_format.py tests/test_prompt_skills_summary.py tests/test_dspy_hybrid.py tests/test_lessons_commands.py tests/test_openrouter_pricing_overrides.py tests/test_preview_proxy.py tests/test_hooks_server_confirm.py tests/test_morph_source_admission.py tests/test_eval_swebench.py tests/test_knowledge_subprocess.py tests/test_lessons_parser.py tests/test_workspace_agents.py tests/test_hooks_cost_awareness.py tests/test_context_status.py tests/test_llm_mock.py tests/test_github_bot.py tests/test_util_cli_batch.py tests/test_server_fresh_bad_input.py tests/test_shell_memory_limit.py tests/test_server_skills_api.py tests/test_tools_vision_exif.py tests/test_agent_doctor.py tests/test_docs_structure.py tests/test_tools_request_tool_change.py tests/test_dspy_integration.py tests/test_shell_issue772.py tests/test_mcp_adapter.py tests/test_info.py tests/test_onboard.py tests/test_prompt_fragments.py tests/test_hybrid_lessons.py tests/lessons/test_wildcard_matching.py tests/lessons/test_bm25_parity.py tests/test_server_audio_transcription.py tests/test_profiles.py tests/test_eval_subagent.py tests/test_computer_settle.py tests/test_tutorial.py tests/test_browser_executable_path_env.py tests/test_file_publication.py tests/test_eval_behavioral_solutions.py tests/test_tools_restart.py tests/test_computer_doctor_cmd.py tests/test_llm_openai_subscription.py tests/test_tools_rag.py tests/test_eval_pass_rate_gate.py tests/test_server_v2_agents.py tests/test_tools_convert_tiff.py tests/test_tools_shell_validation.py tests/conftest.py tests/test_llm_retry_abort.py tests/test_cmd_init_toml_name.py tests/test_util_cli_generate.py tests/test_credential_output.py tests/test_eval_leaderboard.py tests/test_hooks_knowledge_inject.py tests/test_server_artifacts.py tests/test_auto_naming.py tests/test_tools_convert_percent_inputs.py tests/test_backtrack_identity.py tests/test_python_backend_selection.py tests/test_util_clipboard_paste.py tests/test_responses_phase.py tests/test_lessons_frontmatter_name_type.py tests/test_llm_image_attachments.py tests/test_computer_video_frames_cli.py tests/test_tools_gh.py tests/test_tools_convert_document_publication.py tests/test_server_startup.py tests/test_skill_install_replacement.py tests/test_cli_status.py tests/test_tools_tmux_compounds.py tests/test_hooks_cwd_changed.py tests/test_tools_hashline_edit.py tests/test_tools_watch.py tests/test_tui_e2e.py tests/test_browser_state_load_failure.py tests/test_cost_display.py tests/test_computer_milestone_integration.py tests/test_server_path_traversal.py tests/test_patch_exact_uniqueness.py tests/test_config_trust.py tests/test_browser_lynx.py tests/test_llm_summarize_terminal_projection.py tests/test_workspace_api.py tests/test_complete.py tests/test_browser_navigation_live.py tests/test_tools_precommit.py tests/test_util_export_browser.py tests/test_tui_recovery.py tests/test_eval_practical18.py tests/test_summary_model.py tests/test_subagent_log_lock.py tests/test_browser_markdown_packaging.py tests/test_tools_precommit_paths.py tests/test_eval_practical19.py tests/test_sandbox.py tests/test_openai_responses_input.py tests/test_browser_state.py tests/test_tools_parameter_conformance.py tests/test_server_cli_fallback.py tests/test_eval_timeouts.py tests/test_server_default_profile.py tests/test_commands_rag.py tests/test_tools_vision.py tests/test_replay.py tests/test_memory_cli_metadata.py tests/test_circuit_breaker.py tests/test_tauri_apt_setup.py tests/test_server_skill_events.py tests/test_server_v2_sse.py tests/test_local_discovery.py tests/test_skill_events.py tests/test_git_worktree_inspection.py tests/test_thread_leak.py tests/test_util_tree.py tests/test_computer_artifacts.py tests/test_subagent_shell_pgid_kill.py tests/test_build_distribution.py tests/test_acp_types.py tests/test_computer_demo_cmd.py tests/test_tools_todo_isolation.py tests/test_search_alias.py tests/test_dependabot_automerge.py tests/test_subagent_budget.py tests/test_tui_skill_events.py tests/test_util_interrupt.py tests/test_quota_skip.py tests/test_llm_anthropic_system_messages.py tests/test_util_file_storage.py tests/test_package_exports.py tests/test_eval_behavioral.py tests/test_tools_read_range_decoding.py tests/test_tool_description_cap.py tests/test_tools_todo.py tests/test_subscription_terminal_recovery.py tests/test_eval.py tests/test_eval_practical16.py tests/test_llm_utils.py tests/test_tui_before_tool_execution.py tests/test_dataset_history.py tests/test_foreground_output_dedup.py tests/test_lessons_selector.py tests/test_tui_literal_thinking.py tests/test_logmanager_fork_locking.py tests/test_logmanager_locking.py tests/test_check_rst_formatting.py tests/test_llm_retry_policy.py tests/test_plugins.py tests/test_computer_risk_streaming.py tests/test_shell_completion_wait.py tests/test_config_encoding.py tests/test_mcp_discovery.py tests/test_subagent_concurrency.py tests/test_cmd_service.py tests/test_server_v2_auto_stepping.py tests/test_cli_non_utf8_input.py tests/test_patch_literal_comments.py tests/test_track_tokens.py tests/test_tools_convert_docx_hyperlinks.py tests/test_tool_preview_content.py tests/test_server_tts_api.py tests/test_workspace_snapshot.py tests/test_tools_autocommit.py tests/test_chats_external_search.py tests/test_skill_installer.py tests/test_appimage_release.py tests/test_prompt_queue.py tests/test_python_kernel_raster_limits.py tests/test_agent_workspace_timeouts.py tests/test_cli_sound.py tests/test_chat_config.py tests/test_execenv.py tests/test_chats_rename.py tests/test_windows_signing.py tests/test_cli_fatal_error_envelope.py tests/test_tool_memory_native.py tests/test_python_kernel_raster.py tests/test_tools_convert_docx.py tests/test_xml_format.py tests/test_memory_migrate_knowledge.py tests/test_completion_verification.py tests/test_tools_elicit.py tests/test_memory_index_policy.py tests/test_util_gh.py tests/test_computer_use_integration.py tests/test_generation_pre_snapshot_boundary.py tests/test_util_cli_attest.py tests/test_shell_max_output_bytes.py tests/test_eval_practical20.py tests/test_cli_from_turn.py tests/test_credentials.py tests/test_chats_matching_snippets.py tests/test_hooks_mcp_namespace_hint.py tests/test_tools_lessons.py tests/test_openrouter_reported_cost.py tests/test_server_v2_tool_confirmation.py tests/test_skill_metrics.py tests/test_tool_conditionals.py tests/test_perf.py tests/test_shell_output_boundaries.py tests/test_cli.py tests/test_perf_tui.py tests/test_browser_reconnect_owner.py tests/test_python_kernel_stdin.py tests/test_shell_output_mixing_issue408.py tests/test_tools_tmux.py tests/test_shell_completion_loop.py tests/test_recovery_strict_exhaustion.py tests/test_eval_format_routing.py tests/test_subagent_unit.py tests/test_tools_convert_docx_literals.py tests/test_server_bad_input.py tests/test_subagent_parent_isolation.py tests/test_active_context.py tests/test_browser_navigation.py tests/test_unified_plugins.py tests/test_util_review.py tests/test_util_generate_name.py tests/test_session_allowlist_isolation.py tests/test_agent_memory.py tests/test_relevance_pruning.py tests/test_computer_semantic_fixtures.py tests/test_llm_empty_stream.py tests/test_cli_hooks_settings_shape.py tests/test_build_changelog.py tests/test_hol_guard_shell_hook.py tests/test_skill_commands.py tests/test_agent_merge_project_config.py tests/test_github_ci_self_heal.py tests/test_session.py tests/test_server_v2.py tests/test_tools_patch.py tests/test_constants.py tests/test_cost_cache_cold_warning.py tests/test_context_providers.py tests/test_tools_convert_literal_inputs.py tests/test_dataset.py tests/test_git_worktree.py tests/test_server_perf.py tests/test_tools_shell_multiline.py tests/test_snapshot_command.py tests/test_chat_config_readonly.py tests/test_browser_open_page_session.py tests/test_tools_tmux_native_panes.py tests/test_eval_constraint_satisfaction.py tests/test_screenshot.py tests/test_lessons_matcher.py tests/test_agents_md_inject.py tests/test_shell_high_fd.py tests/test_url_safety.py tests/test_tree.py tests/test_hashline_confirmation_ownership.py tests/test_command_completion.py tests/test_shell_parser.py tests/test_acp_adapter.py tests/test_hooks_registry.py tests/test_util_tokens.py tests/test_treeofthoughts.py tests/test_server_a2a.py tests/test_util_cli_skills.py tests/test_cost_tracker.py tests/test_tools_subagent.py tests/test_agent_fork_command.py tests/test_server_cli_tools.py tests/test_ephemeral.py tests/test_server_etag.py tests/test_eval_claude_code.py tests/test_server_session_models.py tests/test_eval_tool_efficiency.py tests/test_fold_mid_system.py tests/test_util_cli.py tests/test_server_v2_sessions.py tests/test_workspace_memory_policy.py tests/test_chat_history.py tests/test_server_cors.py tests/test_config.py tests/test_workspace_snapshot_namespace.py tests/test_markdown_validation.py tests/test_tools_mcp.py tests/test_dspy_basic.py tests/test_checkpoint.py tests/test_served_model_metadata.py tests/test_mcp.py tests/test_browser_format.py tests/test_computer_docker_config.py tests/test_tools_watch_run_utf8.py tests/test_compaction_reminder.py tests/test_tools_chats.py tests/test_tools.py tests/test_integration_phase4.py tests/test_eval_trends.py tests/test_eval_practical17.py tests/test_agent_service_timeouts.py tests/test_tasks_api.py tests/test_shell_stream_oneshot.py tests/test_tools_convert.py tests/test_acp_stdout.py tests/test_reduce.py tests/test_file_selector_integration.py tests/test_tools_python.py tests/test_llm_auth.py tests/test_cli_context_files.py tests/test_save_confirmation_baseline.py tests/test_context_selector.py tests/test_chats_read.py tests/test_llm_grok_subscription.py tests/test_llm_openai_sampling.py tests/test_mcp_server.py tests/test_tools_gh_merge_guards.py tests/test_model_attestation.py scripts/verify_cloudflare_pages_deep_links.py scripts/validate_release_package.py scripts/github_ci_self_heal.py scripts/smoke_frozen_server.py scripts/eval_leaderboard.py scripts/check_rst_formatting.py scripts/auto_rename_logs.py scripts/demo_capture.py scripts/treeofthoughts.py scripts/eval_phase0_pruning.py scripts/docs_structure.py scripts/eval_trends.py scripts/analyze_compression.py scripts/github_bot.py scripts/check_model_freshness.py scripts/measure_output_capture.py scripts/check_docs_repo_links.py scripts/train/collect.py --by-file --hide-rate --quiet | tail -n +2
-------------------------------------------------------------------------------------------------------------------------------
File blank comment code
-------------------------------------------------------------------------------------------------------------------------------
tests/test_subagent_unit.py 1532 734 6191
tests/test_server_v2.py 1035 405 4618
tests/test_llm_openai.py 945 568 3807
tests/test_auto_compact.py 1065 574 3660
tests/test_tui.py 694 365 3384
gptme/server/api_v2.py 545 501 3277
gptme/tui/app.py 480 953 3079
tests/test_util_review.py 616 419 3039
gptme/tools/shell.py 400 746 2929
tests/test_tools_subagent.py 863 444 2893
tests/test_server_v2_sessions.py 378 278 2579
tests/test_doctor.py 542 222 2461
tests/test_config.py 561 596 2240
gptme/llm/llm_openai.py 387 617 2237
tests/test_tools_shell.py 562 538 1923
tests/test_chat.py 508 288 1782
tests/test_cli.py 459 186 1698
gptme/cli/doctor.py 216 189 1672
gptme/tools/computer.py 437 864 1659
tests/test_init.py 258 147 1597
tests/test_util_cli.py 413 245 1585
gptme/cli/cmd_computer.py 242 295 1576
tests/test_memory_store.py 208 79 1571
gptme/cli/util.py 328 318 1529
tests/test_tools_watch.py 256 67 1514
tests/test_acp_agent.py 410 197 1490
tests/test_codeblock.py 550 1068 1419
tests/test_eval_behavioral.py 867 967 1357
gptme/tools/subagent/api.py 222 497 1340
gptme/cli/main.py 223 310 1339
tests/test_tools_shell_validation.py 383 258 1321
gptme/server/session_step.py 194 441 1315
tests/test_tools_browser.py 359 80 1304
tests/test_tools_complete.py 250 264 1302
gptme/logmanager/manager.py 220 373 1288
tests/test_util_cli_review_watch.py 317 189 1283
tests/test_tools_convert.py 305 132 1267
tests/test_tools_todo_isolation.py 160 11 1265
tests/test_tools_computer.py 438 271 1259
gptme/hooks/workspace_agents.py 237 153 1244
gptme/acp/agent.py 206 344 1233
tests/test_util_gh.py 263 176 1226
gptme/util/gh.py 244 303 1219
gptme/llm/llm_anthropic.py 277 372 1216
tests/test_llm_anthropic.py 264 91 1194
tests/test_tools_hashline_edit.py 227 228 1170
tests/test_server.py 301 206 1147
gptme/tools/autocompact/resume.py 159 328 1112
tests/test_llm_utils.py 310 142 1108
gptme/tools/subagent/execution.py 189 445 1099
tests/test_tools_gh.py 186 102 1094
gptme/tools/base.py 214 344 1067
tests/test_tools_base.py 340 114 1054
gptme/tools/convert.py 151 139 1004
tests/test_eval.py 189 108 999
gptme/tools/watch.py 144 195 997
gptme/server/api_v2_sessions.py 133 202 990
gptme/util/review.py 183 336 989
tests/test_cmd_service.py 219 194 981
tests/test_info.py 183 78 972
tests/test_shell_background.py 211 104 970
tests/test_lessons_auto_include.py 256 220 968
tests/test_tools_patch_many.py 190 114 958
gptme/llm/__init__.py 182 318 957
gptme/hooks/tests/test_workspace_agents.py 193 49 956
tests/test_computer_audit.py 264 183 955
gptme/eval/main.py 110 133 944
tests/test_logmanager.py 260 180 942
gptme/server/openapi_docs.py 309 210 941
tests/test_dataset.py 192 50 930
tests/test_tools_python_kernel.py 303 122 926
gptme/tools/shell_background.py 144 155 914
tests/test_compaction_recall.py 187 17 902
tests/test_mcp_adapter.py 222 109 901
gptme/util/context.py 181 296 886
tests/test_eval_leaderboard.py 126 104 883
gptme/cli/cmd_review_pr.py 148 342 882
gptme/chat.py 128 285 864
tests/test_llm_openai_subscription.py 186 80 853
tests/test_knowledge.py 323 71 842
gptme/tools/python_kernel.py 132 257 836
tests/test_tasks_api.py 185 69 831
gptme/tools/chats.py 142 189 820
tests/test_eval_computer_suite.py 328 149 819
tests/test_util_gh_mocked.py 157 122 819
tests/test_tools_precommit.py 136 98 818
gptme/eval/leaderboard.py 149 485 817
gptme/codeblock.py 85 405 812
tests/test_prompt_templates.py 260 193 812
tests/test_context.py 319 133 806
gptme/tools/mcp_adapter.py 247 272 804
tests/test_sandbox.py 195 105 801
gptme/tools/_browser_playwright.py 253 327 795
tests/test_guardrail_secret_reach.py 163 81 791
tests/test_cost_display.py 110 68 776
gptme/llm/models/data.py 18 172 767
gptme/config/user.py 139 205 751
tests/test_acp_session_runtime.py 232 78 750
tests/test_server_workspace.py 149 154 743
gptme/eval/execenv.py 114 215 733
gptme/cli/cmd_review_watch.py 122 233 732
gptme/eval/suites/computer.py 111 245 732
tests/test_tools.py 240 120 722
gptme/tools/__init__.py 177 219 719
tests/test_eventlog.py 163 94 717
tests/test_hooks_registry.py 253 97 716
gptme/eval/suites/basic.py 138 55 715
gptme/tools/complete.py 111 179 715
tests/test_computer_transport.py 267 91 713
gptme/hooks/_secret_reach.py 50 72 711
gptme/cli/setup.py 154 72 710
gptme/tools/subagent/batch.py 135 482 710
gptme/tools/gh.py 146 143 709
tests/test_tools_restart.py 157 67 708
tests/test_agent.py 205 115 707
gptme/cli/cmd_memory.py 100 102 704
gptme/tools/browser.py 281 457 696
tests/test_message.py 230 148 692
gptme/llm/openai_responses.py 115 69 684
gptme/server/tasks_api.py 193 130 680
tests/test_tui_e2e.py 108 134 680
tests/test_llm_models_resolution.py 223 181 677
tests/test_relevance_pruning.py 266 134 672
gptme/tools/python.py 158 220 671
tests/test_tools_lessons.py 145 53 664
gptme/lessons/installer.py 151 179 653
gptme/tools/shell_validation.py 153 359 649
tests/test_json_output.py 114 84 643
tests/test_cli_status.py 246 138 642
tests/test_context_scout.py 109 89 641
gptme/eval/dspy/tasks.py 170 374 639
gptme/llm/llm_openai_subscription.py 148 175 637
gptme/util/completion_verification.py 81 28 635
tests/test_subagent_budget.py 166 144 626
tests/test_commands.py 180 74 623
tests/test_skill_install_replacement.py 131 3 613
tests/test_prompts.py 179 111 611
tests/test_chat_transient_recovery.py 103 16 609
tests/test_explicit_attachments.py 84 9 609
tests/test_computer_doctor_cmd.py 88 58 607
tests/conftest.py 168 291 598
tests/test_dirs.py 135 93 598
tests/test_tools_read.py 193 70 598
scripts/github_bot.py 109 107 597
tests/test_mcp_server.py 139 49 596
gptme/eval/run.py 75 126 592
gptme/prompts/__init__.py 78 90 588
tests/test_server_panels.py 65 40 585
tests/test_server_subscription_connect.py 160 39 584
tests/test_tui_completion.py 82 11 582
tests/test_tools_request_tool_change.py 117 43 578
tests/test_server_session_models.py 198 157 576
gptme/hooks/tests/test_anomaly_watchdog.py 157 141 573
tests/test_served_model_metadata.py 116 24 573
tests/test_lessons_index.py 185 171 568
gptme/tools/computer_transport.py 151 125 567
gptme/util/capabilities_export.py 60 71 560
gptme/tools/tmux.py 103 203 559
tests/test_llm_models.py 174 118 558
tests/test_util_cli_mcp.py 130 68 552
gptme/server/a2a_api.py 103 46 551
tests/test_memory_index_policy.py 98 39 551
gptme/cli/cmd_chats.py 110 100 549
tests/test_eval_subagent.py 119 56 547
tests/test_computer_actions.py 165 125 546
tests/test_subagent_persistence.py 68 1 543
tests/test_execenv.py 99 68 539
tests/test_server_path_traversal.py 139 105 539
gptme/server/artifacts_api.py 107 110 538
scripts/github_ci_self_heal.py 111 49 537
tests/test_model_attestation.py 115 30 537
tests/test_memory_migrate_knowledge.py 82 30 534
tests/test_responses_phase.py 54 16 534
tests/test_gptme_provider.py 176 84 532
tests/test_cc_memory.py 113 108 530
gptme/memory/store.py 77 113 528
gptme/hooks/tests/test_agents_md_inject.py 103 60 527
tests/test_hooks_cost_awareness.py 73 61 525
tests/test_server_bad_input.py 122 106 524
gptme/message.py 139 273 523
tests/test_lessons.py 156 153 517
gptme/tools/hashline_edit.py 128 416 513
gptme/server/session_models.py 88 177 510
tests/test_workspace_api.py 116 22 508
tests/test_capabilities_export.py 65 27 506
tests/test_file_publication.py 96 23 504
gptme/hooks/registry.py 102 87 503
tests/test_overflow_recovery.py 72 8 498
gptme/server/workspace_api.py 101 104 497
gptme/dataset/trajectory_to_env.py 95 140 495
tests/test_checkpoint.py 127 23 495
tests/test_config_workspace_publication.py 79 14 492
tests/test_conversations.py 70 44 492
gptme/tools/autocompact/hook.py 60 164 487
tests/test_hooks_cache_awareness.py 151 44 484
tests/test_computer_demo_cmd.py 144 75 482
gptme/util/prompt.py 104 159 478
tests/test_snapshot_command.py 117 57 476
gptme/tools/todo.py 117 146 475
gptme/hooks/tests/test_cost_awareness.py 84 53 472
tests/test_llm_openai_sampling.py 99 12 469
tests/test_shell_foreground_promotion.py 104 23 464
tests/test_chats_stats.py 83 34 462
tests/test_tools_save.py 124 42 462
tests/test_server_skill_events.py 58 4 461
tests/test_skill_installer.py 138 154 459
gptme/tools/read.py 66 105 458
tests/test_llm_auth.py 153 55 458
gptme/telemetry.py 103 74 456
gptme/lessons/index.py 126 167 452
gptme/tools/lessons.py 121 138 452
scripts/check_rst_formatting.py 112 124 450
tests/test_tools_browser_thread.py 117 49 450
gptme/hooks/tests/test_time_awareness.py 90 69 447
tests/test_cli_from_turn.py 81 23 447
scripts/analyze_compression.py 103 68 446
scripts/demo_capture.py 104 83 445
tests/test_hooks_dirty_diff.py 178 27 444
gptme/util/_telemetry.py 112 159 443
tests/test_telemetry.py 112 232 443
tests/test_python_kernel_raster.py 62 13 440
gptme/tools/subagent/hooks.py 98 149 439
tests/test_util_cli_providers.py 93 42 438
gptme/lessons/auto_include.py 108 211 436
tests/test_cli_resume.py 100 22 436
tests/test_compaction_native_anthropic.py 78 23 436
tests/test_tools_rag.py 115 39 436
gptme/config/chat.py 68 129 431
gptme/workspace_snapshot.py 54 70 425
tests/test_cost_tracker.py 50 27 424
tests/test_lessons_commands.py 157 82 422
gptme/tools/patch_many.py 63 82 421
tests/test_external_sessions.py 116 67 421
gptme/eval/dspy/prompt_optimizer.py 109 89 420
tests/test_reduce.py 125 157 420
tests/test_chats_clean_safety.py 81 21 419
gptme/agent/workspace.py 131 231 418
tests/context/test_task_analyzer.py 90 44 418
gptme/cli/auth.py 84 56 417
gptme/prompts/workspace.py 52 97 417
tests/test_lessons_parser.py 188 239 417
tests/test_unified_plugins.py 110 44 417
gptme/cli/cmd_service.py 130 377 415
tests/test_server_artifacts.py 66 32 415
tests/test_llm_grok_subscription.py 121 28 414
tests/test_subagent_worktree_isolation.py 129 70 414
gptme/tools/autocompact/engine.py 91 199 410
tests/test_provider_plugins.py 100 39 409
gptme/tools/subagent/types.py 87 192 407
tests/test_tools_precommit_paths.py 56 25 407
gptme/util/cost_display.py 81 80 406
tests/test_llm_validate.py 78 64 404
gptme/logmanager/conversations.py 91 136 402
gptme/cli/cmd_hooks.py 109 81 401
gptme/llm/llm_openai_models.py 6 61 401
gptme/agent/service.py 108 103 400
tests/test_tools_mcp.py 102 20 398
tests/test_mcp_discovery.py 114 43 397
tests/test_tools_morph.py 101 70 396
tests/test_hybrid_lessons.py 100 58 395
tests/test_profiles.py 88 37 395
gptme/agent/cli.py 108 137 394
gptme/eval/suites/subagent.py 90 70 394
scripts/eval_phase0_pruning.py 74 107 394
gptme/tools/save.py 84 84 393
tests/test_computer_latency_cmd.py 93 42 393
gptme/agent/doctor.py 90 45 391
tests/test_chats_external_search.py 87 63 389
tests/test_tui_literal_thinking.py 52 3 386
tests/test_util_cli_attest.py 91 7 386
tests/test_guardrail_hook.py 95 74 385
tests/test_search_alias.py 65 56 385
tests/test_server_v2_auto_stepping.py 72 55 383
gptme/init.py 72 122 382
gptme/llm/llm_grok_subscription.py 95 81 381
gptme/tools/restart.py 94 126 379
tests/test_lessons_selector.py 55 38 374
gptme/server/external_sessions.py 59 92 372
gptme/cli/cmd_status.py 95 103 371
tests/test_github_ci_self_heal.py 71 6 371
gptme/hooks/anomaly_watchdog.py 137 207 370
tests/test_anti_slop.py 108 61 370
tests/test_preview_proxy.py 98 46 370
tests/test_server_v2_agents.py 67 28 370
gptme/hooks/dirty_diff.py 59 108 369
tests/test_lessons_emissions.py 59 3 368
gptme/hooks/tests/test_guardrails.py 116 58 367
gptme/info.py 98 80 365
gptme/eval/dspy/cli.py 73 57 364
gptme/lessons/hybrid_matcher.py 122 162 364
tests/test_computer_record.py 119 30 364
tests/test_eval_behavioral_solutions.py 281 848 364
gptme/checkpoint.py 81 53 363
tests/test_replay.py 120 110 361
tests/test_subscription_terminal_recovery.py 42 5 360
gptme/config/models.py 117 103 358
gptme/mcp/client.py 99 138 356
tests/test_context_providers.py 183 121 356
tests/test_workspace_agents.py 154 59 353
tests/test_lessons_matcher.py 99 86 352
tests/test_tools_convert_publication.py 55 17 352
gptme/llm/local_discovery.py 64 35 351
tests/test_complete.py 84 72 351
gptme/eval/dspy/experiments.py 94 60 350
gptme/hooks/tests/test_tool_target_instructions.py 61 50 350
gptme/sandbox.py 95 208 350
tests/test_computer_use_integration.py 140 143 349
scripts/docs_structure.py 61 25 348
gptme/hooks/tests/test_confirm.py 108 60 347
tests/test_dataset_history.py 43 36 347
tests/test_util_hooks.py 85 93 347
gptme/eval/dspy/metrics.py 97 98 345
gptme/hooks/tests/test_elicitation.py 91 45 343
tests/test_skill_commands.py 113 49 342
tests/test_computer_semantic_fixtures.py 92 107 340
tests/test_hol_guard_shell_hook.py 52 10 340
gptme/tools/mcp.py 103 103 339
tests/test_agent_doctor.py 74 35 338
gptme/hooks/cost_awareness.py 84 81 337
tests/test_completion_verification.py 78 1 337
tests/test_script_hooks.py 55 7 336
tests/test_eval_trends.py 35 22 335
tests/test_context_selector.py 94 48 334
tests/test_shell_redact_secrets.py 68 11 334
tests/test_llm_anthropic_system_messages.py 41 5 331
tests/test_tools_python.py 133 74 331
tests/test_tools_vision.py 65 40 331
gptme/util/safety.py 57 63 330
gptme/cli/cmd_knowledge.py 63 114 329
gptme/tools/subagent/__init__.py 65 225 329
gptme/eval/suites/practical.py 35 30 326
tests/test_llm_generation_recovery.py 82 2 326
tests/test_tools_tmux_quoting.py 33 8 325
tests/test_circuit_breaker.py 98 69 322
tests/test_util_tool_format.py 78 32 322
tests/test_ephemeral.py 87 56 321
tests/test_mcp.py 94 62 321
tests/test_util_safety.py 96 22 321
scripts/treeofthoughts.py 59 91 320
tests/test_workspace_snapshot.py 105 46 319
tests/test_browser_open_page_session.py 66 49 318
gptme/eval/trends.py 59 31 317
tests/test_util_cli_batch.py 64 12 317
gptme/tools/shell_flags.py 60 257 315
tests/test_util_cli_skills.py 118 89 315
gptme/context/scout.py 83 106 314
gptme/tools/_browser_thread.py 63 78 313
gptme/commands/llm.py 58 61 312
tests/test_skill_metrics.py 38 2 312
tests/test_util_export.py 72 29 309
tests/test_browser.py 140 71 308
gptme/attestation.py 71 2 307
gptme/server/cli.py 56 105 306
gptme/server/preview_proxy_api.py 86 150 306
tests/test_hooks_knowledge_inject.py 74 6 305
gptme/llm/validate.py 45 64 303
tests/test_llm_request_limits.py 55 2 301
tests/test_config_encoding.py 154 195 300
tests/test_llm_openai_reasoning_effort.py 87 19 300
tests/context/test_adaptive_compressor.py 58 44 298
tests/test_responses_partial_tools.py 39 1 298
gptme/prompts/templates.py 70 154 297
gptme/plugins/__init__.py 101 133 295
gptme/util/reduce.py 73 90 294
tests/test_eval_swebench.py 78 41 294
tests/test_tui_frames.py 49 40 293
tests/test_plugins.py 110 85 292
tests/test_git_worktree.py 73 41 291
gptme/acp/client.py 67 127 290
gptme/knowledge.py 76 101 288
gptme/cli/cmd_init.py 94 164 287
gptme/cli/cmd_skills.py 75 45 287
gptme/commands/snapshot.py 43 32 287
tests/lessons/test_wildcard_matching.py 114 125 287
gptme/hooks/tests/test_token_awareness.py 40 28 285
tests/test_hooks_server_confirm.py 78 33 285
gptme/tools/precommit.py 82 114 284
tests/test_server_a2a.py 64 20 283
gptme/eval/dspy/hybrid_optimizer.py 141 345 282
tests/test_util_tokens.py 130 71 282
gptme/hooks/agents_md_inject.py 64 121 281
gptme/eval/swe_extra/swe_bench_test_spec.py 53 29 280
tests/test_shell_completion_loop.py 26 11 280
gptme/llm/models/listing.py 61 63 279
gptme/tools/patch.py 64 108 277
tests/test_auto_naming.py 80 48 277
tests/test_commands_llm.py 32 1 276
gptme/cli/onboard.py 73 79 275
tests/test_computer_video_frames_cli.py 67 12 274
tests/test_tool_conditionals.py 89 1 274
tests/test_tools_todo.py 126 83 274
gptme/util/tool_display.py 36 23 273
tests/test_python_kernel_raster_limits.py 55 5 273
tests/test_transcript_durability.py 51 22 272
gptme/llm/models/resolution.py 62 86 271
tests/test_computer_docker_config.py 59 92 271
tests/test_hooks.py 130 49 271
gptme/plugins/security.py 47 76 269
gptme/profiles.py 66 68 268
gptme/cli/cmd_resume.py 48 42 266
tests/lessons/test_bm25_parity.py 67 70 266
tests/test_url_safety.py 113 38 266
gptme/memory/schema.py 49 24 264
gptme/tools/rag.py 91 148 264
tests/test_compaction_review_regressions.py 45 13 264
tests/test_shell_completion_wait.py 47 5 263
gptme/hooks/elicitation.py 95 136 262
tests/test_server_startup.py 39 65 261
gptme/anti_slop.py 43 112 260
tests/test_tools_parameter_conformance.py 54 79 260
tests/test_tools_autocommit.py 99 47 259
gptme/llm/recovery.py 52 57 258
gptme/logmanager/eventlog.py 74 70 258
tests/test_terminal_startup_latency.py 77 32 257
gptme/eval/suites/constraint_satisfaction.py 101 196 256
tests/test_tool_use.py 60 66 255
tests/test_opencode_go.py 24 4 254
gptme/hooks/tests/test_form_autodetect.py 73 25 253
gptme/tools/autocompact/scoring.py 97 180 253
tests/test_custom_providers.py 74 103 253
tests/test_eval_claude_code.py 66 27 253
tests/test_lessons_integration.py 97 66 252
gptme/eval/suites/practical16.py 64 100 251
scripts/check_model_freshness.py 53 40 251
gptme/server/tools_api.py 58 49 250
tests/test_prompt_tools.py 57 30 249
tests/test_tools_screenshot.py 59 52 249
tests/test_vision_transport.py 39 4 249
tests/test_util_cli_models.py 43 44 248
gptme/hooks/tests/test_injection_screening.py 78 13 247
tests/test_skill_events.py 49 2 246
tests/test_agents_md_inject.py 44 40 245
tests/test_track_tokens.py 63 29 245
tests/test_util_clipboard_paste.py 55 30 243
tests/test_llm_retry_policy.py 90 19 242
tests/test_local_discovery.py 63 18 242
tests/test_tools_convert_tiff.py 20 10 242
tests/test_tools_patch_many_confirmation.py 47 4 242
tests/test_cli_context_files.py 31 23 241
tests/test_compaction_measurement.py 43 12 241
tests/test_responses_stream_errors.py 37 3 241
tests/test_tools_convert_sources.py 36 21 241
tests/test_computer_x11_integration.py 87 87 240
gptme/eval/swebench/main.py 32 23 239
gptme/commands/meta.py 54 20 238
gptme/context/task_analyzer.py 100 124 237
tests/test_model_selection_trace_export.py 70 19 237
tests/test_server_default_profile.py 78 44 236
tests/test_memory_match.py 34 9 235
tests/test_tools_patch.py 118 226 235
gptme/tui/main.py 37 34 234
tests/test_cli_stats.py 62 27 234
gptme/context/adaptive_compressor.py 76 130 232
tests/test_onboard.py 56 49 232
tests/test_util_cli_batch_stop_metadata.py 52 9 232
gptme/hooks/__init__.py 22 51 231
tests/test_shell_allowlist_autoconfirm.py 58 62 231
tests/test_subagent_roundtrip.py 74 52 230
gptme/lessons/parser.py 77 124 229
tests/test_computer_settle.py 90 78 228
tests/test_hooks_cwd_changed.py 55 24 227
gptme/cli/cmd_mcp.py 64 52 226
gptme/util/auto_naming.py 67 74 226
tests/test_chats_json.py 32 17 225
tests/test_cli_fatal_error_envelope.py 46 40 225
tests/test_release_source.py 20 10 225
tests/test_shell_restart.py 62 45 225
gptme/mcp/registry.py 59 70 224
tests/test_server_fresh_bad_input.py 46 44 224
gptme/eval/suites/behavioral/__init__.py 9 11 223
gptme/model_attestation.py 63 78 223
gptme/server/auth.py 77 118 222
gptme/server/computer_api.py 51 55 222
scripts/measure_output_capture.py 15 20 222
tests/test_tui_recovery.py 31 7 222
gptme/eval/suites/practical6.py 56 46 221
tests/test_browser_lynx.py 70 16 220
tests/test_server_tools_query.py 59 39 220
gptme/lessons/commands.py 91 48 219
gptme/hooks/tests/test_cli_confirm.py 75 23 218
gptme/lessons/selector.py 18 21 218
gptme/util/_sound_sounddevice.py 57 50 218
tests/test_sdk_stream_terminal.py 27 2 218
tests/test_util_keyword_matching.py 75 46 218
gptme/hooks/aw_watcher_agent.py 49 21 217
tests/test_chats_read.py 29 4 217
tests/test_lessons_tool.py 62 34 216
tests/test_llm_retry_abort.py 85 62 216
gptme/server/api_v2_common.py 113 96 215
gptme/commands/base.py 71 76 214
gptme/commands/session.py 69 57 214
gptme/cli/cmd_batch.py 32 6 213
gptme/config/cli_setup.py 37 61 213
gptme/eval/swe_extra/swe_bench_extra_data.py 69 51 213
tests/test_config_trust.py 94 43 212
tests/test_conversation_metadata_readonly.py 31 16 212
tests/test_perf.py 67 54 212
tests/test_tools_append_hooks.py 43 1 212
tests/test_context_budget.py 72 38 209
tests/test_executor.py 50 31 209
tests/test_server_api_v2_common.py 55 52 209
tests/test_workspace_memory_policy.py 40 3 209
gptme/eval/swebench/evaluate.py 39 61 208
gptme/lessons/skill_events.py 33 26 208
tests/test_autocompact_scoring.py 86 39 208
tests/test_browser_state.py 83 33 208
tests/test_server_v2_hooks.py 80 60 207
tests/test_cli_elicitation.py 45 2 206
tests/test_tui_skill_events.py 24 5 206
tests/test_oauth_openrouter.py 62 9 205
gptme/server/panels_api.py 51 51 204
gptme/util/git_worktree.py 42 71 204
tests/test_shell_stream_oneshot.py 71 44 204
gptme/hooks/guardrails.py 69 91 203
tests/test_perf_tui.py 57 51 203
tests/test_util_file_storage.py 51 36 203
tests/test_subagent_parent_isolation.py 56 30 202
gptme/eval/suites/practical7.py 57 81 201
gptme/hooks/auto_snapshots.py 51 66 201
tests/test_acp_client.py 72 36 201
gptme/util/sound.py 65 72 200
tests/test_recovery_stream_overload.py 27 3 200
tests/test_tutorial.py 85 7 200
tests/test_tools_tmux_compounds.py 37 1 199
gptme/hooks/tests/test_active_context.py 37 29 198
tests/test_browser_state_load_failure.py 19 6 198
tests/test_vent.py 39 10 198
gptme/tools/morph.py 43 56 197
gptme/util/export.py 40 41 197
gptme/hooks/tests/test_server_elicit.py 58 23 196
tests/test_chats_clean.py 46 18 196
tests/test_execute_msg_hook_call_id.py 70 52 196
tests/test_shell_memory.py 43 7 196
tests/test_util_interrupt.py 68 44 196
gptme/util/clipboard.py 26 19 193
tests/test_save_confirmation_baseline.py 32 1 193
tests/test_tools_convert_percent_inputs.py 19 4 192
gptme/eval/suites/practical8.py 68 62 191
gptme/hooks/script.py 21 8 189
tests/test_computer_task.py 116 31 189
tests/test_credential_output_integration.py 34 25 189
tests/test_summary_model.py 46 3 189
gptme/prompt_queue.py 49 35 188
gptme/tools/pruner.py 44 0 188
tests/test_openrouter_pricing_overrides.py 31 5 188
gptme/config/core.py 59 86 187
gptme/eval/agents/claude_code.py 41 33 187
gptme/memory/recall.py 35 14 187
gptme/hooks/tests/test_server_confirm.py 48 32 186
tests/test_file_selector_integration.py 53 24 186
tests/test_tools_convert_docx.py 33 3 186
gptme/eval/suites/practical14.py 64 52 185
tests/test_tools_convert_docx_literals.py 19 3 185
gptme/mcp/server.py 51 68 184
gptme/tools/autocompact/recovery.py 25 37 184
tests/test_chats_matching_snippets.py 13 6 184
tests/test_native_tool_names.py 28 1 184
tests/test_tools_chats.py 43 22 184
tests/test_tools_gh_pagination.py 24 1 184
tests/test_workspace_snapshot_namespace.py 17 3 184
tests/test_computer_screenshot_cli.py 53 12 183
tests/test_fold_mid_system.py 74 43 183
tests/test_foreground_output_dedup.py 38 16 182
tests/test_k_best.py 76 23 182
gptme/context/selector/file_selector.py 50 63 181
gptme/hooks/_credential_output.py 18 22 181
gptme/llm/responses_phase.py 22 29 181
tests/test_memory_tool.py 38 11 181
gptme/cli/cmd_stats.py 51 36 180
gptme/hooks/time_awareness.py 50 74 180
gptme/tools/autocompact/events.py 30 25 179
tests/test_dspy_hybrid.py 65 45 179
tests/test_tools_tmux.py 77 65 179
tests/test_dspy_basic.py 66 44 177
gptme/cli/cmd_tutorial.py 50 37 176
gptme/eval/suites/practical4.py 47 24 176
tests/test_sdk_recovery_redirects.py 15 2 176
gptme/llm/models/types.py 69 123 175
gptme/util/tokens.py 54 76 175
tests/test_chats_native_snippets.py 31 2 175
gptme/llm/llm_gptme.py 70 125 174
tests/test_subagent_shell_pgid_kill.py 40 31 174
gptme/tools/request_tool_change.py 35 33 173
tests/test_tools_choice.py 59 26 173
tests/test_chats_export.py 48 17 172
tests/test_util_cli_generate.py 35 7 172
gptme/circuit_breaker.py 49 72 171
gptme/eval/suites/practical10.py 55 65 171
tests/test_acp_types.py 35 12 171
tests/test_toolspec_read_only.py 40 12 171
gptme/eval/agents/swebench.py 35 22 170
gptme/tools/shell_memory.py 37 29 170
tests/test_browser_navigation_live.py 28 9 170
gptme/server/acp_session_runtime.py 34 30 169
gptme/util/cost_tracker.py 56 99 169
gptme/util/tool_format.py 48 76 169
tests/test_tools_form.py 34 19 169
gptme/hooks/cache_awareness.py 118 186 168
gptme/oauth/openrouter.py 48 43 168
tests/test_util_terminal.py 52 34 168
tests/test_memory_cli_metadata.py 16 8 167
tests/test_python_streams.py 27 2 167
tests/test_tauri_apt_setup.py 19 10 167
tests/test_tools_elicit.py 50 25 167
tests/test_tools_time_awareness.py 52 34 167
gptme/llm/utils.py 56 92 165
gptme/tools/vision.py 38 49 165
gptme/eval/suites/practical2.py 46 18 164
tests/test_chat_config.py 65 51 164
tests/test_tui_visual.py 50 47 164
gptme/dirs.py 72 101 163
gptme/hooks/types.py 96 136 163
tests/test_backtrack.py 39 11 163
tests/test_util_cost.py 29 26 163
gptme/cli/cmd_dataset.py 26 31 162
gptme/llm/_degeneration.py 41 74 162
gptme/cli/cmd_explain.py 33 26 161
tests/test_acp_protocol_logging.py 56 15 160
tests/test_tree.py 64 40 160
gptme/eval/suites/practical3.py 27 19 158
tests/test_acp_stdout.py 76 37 158
tests/test_server_v2_tool_confirmation.py 33 33 158
tests/test_uri.py 55 30 158
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/tools/autocompact/handlers.py 32 31 157
tests/test_tools_convert_orientation.py 34 11 157
gptme/hooks/cli_confirm.py 52 59 156
gptme/util/__init__.py 34 30 156
tests/test_commands_account.py 37 6 156
tests/test_openai_responses_input.py 17 9 156
gptme/server/app.py 41 143 155
gptme/eval/suites/practical15.py 65 92 154
tests/test_eval_pass_rate_gate.py 48 9 154
tests/test_git_cmd_resolver.py 45 34 154
tests/test_patch_exact_uniqueness.py 19 2 153
tests/test_server_config_workspace_containment.py 42 46 153
tests/test_timings.py 66 50 153
tests/test_subagent_integration.py 48 21 152
gptme/commands/account.py 46 20 151
gptme/eval/suites/behavioral/add_deprecation_warning.py 73 138 151
gptme/eval/suites/practical9.py 69 76 151
gptme/eval/swebench/retrieval.py 46 62 151
tests/test_prompt_queue.py 48 17 151
tests/test_util_tree.py 44 33 151
gptme/tools/subagent/persistence.py 29 36 150
tests/test_shell_max_output_bytes.py 63 80 150
gptme/server/client.py 63 79 149
tests/test_tools_gh_merge_guards.py 18 1 149
gptme/tools/form.py 42 65 148
tests/fixtures/provider_test_scaffold.py 76 68 148
tests/test_util_install.py 34 31 148
gptme/eval/agents/__init__.py 24 15 147
gptme/hooks/token_awareness.py 47 50 147
tests/test_master_context.py 39 24 147
gptme/acp/__main__.py 52 57 146
tests/test_misc_subprocess_timeouts.py 48 30 146
tests/test_tools_watch_timer_deadline.py 20 2 146
tests/test_tui_output_collapse.py 20 4 145
gptme/lessons/skill_commands.py 47 58 144
tests/test_credential_output.py 8 2 144
tests/test_subagent_concurrency.py 37 16 144
gptme/commands/checkpoint.py 21 4 143
gptme/hooks/tests/test_aw_watcher_agent.py 26 6 143
tests/test_dependabot_automerge.py 27 11 141
tests/test_server_elicitation.py 47 17 141
tests/test_backtrack_identity.py 27 2 140
tests/test_tools_token_awareness.py 59 47 140
gptme/server/api_v2_agents.py 25 17 139
tests/test_dspy_integration.py 54 32 139
gptme/commands/backtrack.py 31 29 138
gptme/config/trust.py 54 45 138
gptme/eval/suites/practical5.py 67 80 138
gptme/tools/elicit.py 40 123 138
tests/test_computer_milestone_integration.py 61 59 138
tests/test_subagent_summary.py 19 2 138
tests/test_tools_convert_pdf_first_page.py 16 8 138
tests/test_util_content.py 49 25 137
gptme/hooks/tool_target_instructions.py 37 47 136
tests/test_browser_blockage.py 46 97 136
gptme/eval/swebench/utils.py 30 10 135
gptme/tools/autocompact/context_provider.py 51 54 135
tests/test_browser_executable_path_env.py 28 32 135
tests/test_cli_explain.py 53 18 135
tests/test_prompt_fragments.py 20 1 135
gptme/commands/export.py 32 25 134
tests/test_browser_state_publication.py 18 4 134
gptme/llm/request_limits.py 26 19 133
tests/test_computer_gate.py 76 40 133
gptme/cli/cmd_attest.py 21 5 131
gptme/eval/suites/practical17.py 64 137 131
tests/test_git_worktree_inspection.py 19 2 131
tests/test_shell_parser.py 31 17 131
gptme/eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py 41 72 130
gptme/util/replay.py 42 49 129
tests/test_agent_workspace_timeouts.py 41 22 129
tests/test_morph_source_admission.py 19 20 129
tests/test_snapshot_list.py 45 7 129
tests/test_acp_adapter.py 42 33 128
tests/test_build_distribution.py 14 7 128
tests/test_cwe214_docker_env_leak.py 42 41 128
tests/test_server_webui_dir.py 61 23 128
gptme/hooks/tests/test_markdown_validation.py 29 21 127
tests/test_server_tools_allowlist.py 47 2 127
gptme/eval/suites/practical21.py 76 184 126
gptme/hooks/injection_screening.py 33 39 126
tests/test_active_context.py 41 22 126
tests/test_docs_structure.py 31 29 126
gptme/hooks/tests/test_cache_awareness.py 47 34 125
gptme/k_best.py 34 40 125
gptme/server/skills_api.py 32 4 125
tests/test_chats_rename.py 48 19 125
tests/test_util_context_dedup.py 61 43 125
gptme/hooks/confirm.py 57 95 124
gptme/server/metrics.py 37 19 124
tests/test_treeofthoughts.py 34 23 124
gptme/eval/suites/behavioral/handle_specific_exception.py 15 8 123
gptme/hooks/form_autodetect.py 48 65 123
gptme/tools/recall.py 25 20 123
tests/test_computer_risk_streaming.py 54 44 123
tests/test_llm_image_attachments.py 17 1 123
tests/test_prompt.py 36 36 123
gptme/eval/suites/practical11.py 53 26 122
gptme/eval/suites/practical12.py 56 49 122
gptme/hooks/server_confirm.py 51 59 122
tests/test_subagent_planner_roles.py 39 30 121
gptme/tools/vent.py 40 67 120
tests/test_eval_format_routing.py 30 25 120
tests/test_tui_before_tool_execution.py 21 9 120
gptme/plugins/registry.py 40 41 119
tests/test_integration_phase4.py 22 19 119
gptme/eval/suites/practical20.py 77 190 118
tests/test_compaction_reminder.py 29 1 118
tests/test_cost_cache_cold_warning.py 33 8 118
tests/test_cli_non_utf8_input.py 28 8 117
gptme/eval/suites/behavioral/add_type_hints.py 40 97 116
gptme/util/ask_execute.py 26 44 116
tests/test_agent_service_timeouts.py 19 18 116
scripts/auto_rename_logs.py 34 23 115
tests/test_browser_navigation.py 20 4 115
tests/test_server_cli_fallback.py 18 13 115
tests/thread_leak.py 34 55 115
gptme/eval/suites/practical18.py 52 117 114
tests/test_tools_tmux_native_panes.py 22 2 114
gptme/hooks/server_elicit.py 52 56 113
gptme/llm/llm_openrouter_subscription.py 35 43 113
tests/test_cli_auth.py 24 4 113
tests/test_lessons_status.py 67 96 113
tests/test_server_host_validation.py 46 29 112
tests/test_subagent_tool_format.py 31 17 112
tests/test_tools_convert_document_publication.py 17 5 112
tests/test_hashline_confirmation_ownership.py 12 2 111
tests/test_tools_write_encoding.py 20 2 111
gptme/eval/types.py 35 69 110
gptme/tools/computer_semantic.py 61 129 110
gptme/util/redact.py 38 149 110
tests/test_python_kernel_stdin.py 16 3 110
tests/test_tools_convert_video_filenames.py 9 2 110
gptme/tui/statusline.py 15 11 109
tests/test_computer_run_task_cli.py 40 14 109
gptme/tools/choice.py 34 41 108
gptme/tools/memory.py 35 41 108
gptme/util/master_context.py 37 57 108
tests/test_browser_session_persistence.py 62 33 108
tests/test_cost_awareness_delayed_warning.py 42 32 108
tests/test_restart_argv.py 9 3 108
tests/test_util_export_browser.py 14 14 108
tests/test_validate_release_package.py 29 2 108
gptme/eval/suites/practical29.py 69 129 107
gptme/util/interrupt.py 46 38 107
tests/test_build_changelog.py 24 13 107
tests/test_server_perf.py 23 38 107
gptme/eval/suites/practical28.py 66 155 106
tests/test_setup_completions.py 32 6 106
gptme/cli/checkpoint.py 23 14 105
gptme/eval/suites/behavioral/implement_lru_cache.py 56 101 105
gptme/eval/suites/practical13.py 47 47 105
gptme/eval/suites/practical19.py 58 133 105
gptme/eval/suites/behavioral/implement_event_emitter.py 48 94 104
gptme/eval/suites/practical22.py 76 174 104
scripts/train/collect.py 35 52 104
gptme/lessons/matcher.py 35 47 103
tests/test_server_parent_death_watcher.py 25 38 103
tests/test_util_output_storage.py 23 13 103
gptme/eval/suites/practical23.py 75 190 102
gptme/eval/suites/practical30.py 68 110 102
gptme/tools/autocompact/decision.py 36 75 102
tests/test_appimage_release.py 9 5 102
gptme/eval/suites/behavioral/bounded_bugfix_with_decoys.py 55 93 101
gptme/eval/suites/behavioral/root_cause_pipeline_debug.py 48 117 101
gptme/eval/suites/practical25.py 70 147 101
gptme/eval/suites/practical27.py 70 154 101
gptme/eval/suites/practical33.py 68 109 101
gptme/server/tts_api.py 24 18 101
gptme/eval/suites/behavioral/refactor_for_testability.py 22 45 100
gptme/eval/suites/practical32.py 70 134 100
gptme/hooks/active_context.py 25 23 100
gptme/tools/_computer_gate.py 33 61 100
gptme/tools/autocompact/native_anthropic.py 30 30 100
gptme/tools/screenshot.py 30 45 100
gptme/util/context_measurement.py 18 26 100
tests/test_command_completion.py 33 23 100
tests/test_eval_constraint_satisfaction.py 24 8 100
tests/test_hooks_mcp_namespace_hint.py 30 14 100
gptme/__version__.py 21 17 99
gptme/eval/suites/practical24.py 78 204 99
gptme/eval/suites/practical26.py 72 162 99
gptme/eval/suites/practical31.py 69 112 99
gptme/eval/swe_extra/run_swe_extra.py 25 15 99
tests/test_generation_pre_snapshot_boundary.py 38 39 99
tests/test_knowledge_subprocess.py 8 4 99
tests/test_shell_output_boundaries.py 13 4 99
tests/test_tools_convert_docx_hyperlinks.py 21 4 99
gptme/eval/suites/behavioral/implement_priority_queue.py 61 109 98
tests/test_thread_leak.py 29 7 98
tests/test_server_auth.py 46 25 97
gptme/eval/suites/behavioral/optimize_n_squared.py 31 43 96
tests/test_util.py 46 86 96
tests/test_agent_fork_command.py 18 5 95
tests/test_openrouter_cache_pricing.py 28 5 95
tests/test_policy_block.py 29 9 95
tests/test_session.py 40 21 95
tests/test_server_v2_sse.py 26 27 94
gptme/config/__init__.py 7 16 93
tests/test_tools_convert_literal_inputs.py 7 1 93
tests/test_tools_convert_literal_paths.py 9 1 93
gptme/cli/cmd_slop.py 17 10 92
gptme/util/context_budget.py 21 53 92
gptme/plugins/entrypoints.py 28 49 91
gptme/prompts/chat_history.py 34 27 91
gptme/tools/_url_safety.py 32 50 91
scripts/smoke_frozen_server.py 15 14 91
tests/test_logmanager_locking.py 20 5 91
tests/test_server_etag.py 22 5 91
tests/test_shell_sigterm.py 11 57 91
gptme/acp/types.py 25 13 90
gptme/hooks/knowledge_inject.py 21 37 90
tests/test_agent_memory.py 26 17 90
gptme/eval/tbench/run.py 16 12 89
tests/test_python_backend_selection.py 22 1 89
tests/test_swebench_utils.py 27 2 89
gptme/commands/__init__.py 16 21 88
gptme/constants.py 43 50 88
gptme/llm/models/recommended.py 19 31 88
tests/test_commands_rag.py 16 2 88
tests/test_server_cors.py 33 20 88
tests/test_tools_vision_exif.py 12 3 88
gptme/eval/suites/behavioral/circuit_breaker.py 53 118 87
gptme/prompts/context_cmd.py 12 18 87
gptme/util/tree.py 21 15 87
scripts/verify_cloudflare_pages_deep_links.py 17 1 87
tests/test_browser_github_routing.py 27 0 86
tests/test_browser_screenshot.py 14 1 86
tests/test_shell_state_contract.py 7 4 86
gptme/eval/suites/behavioral/implement_memoization.py 50 112 85
gptme/logmanager/fork.py 16 13 85
gptme/tools/_browser_lynx.py 11 8 85
tests/test_output_format.py 29 21 84
gptme/eval/suites/behavioral/validate_user_input.py 33 55 83
gptme/hooks/tests/test_cwd_awareness.py 16 13 83
gptme/tools/progress.py 24 53 83
tests/test_shell_high_fd.py 28 29 83
gptme/eval/suites/behavioral/add_docstrings.py 47 103 82
gptme/eval/suites/behavioral/add_feature_preserve_default.py 27 40 82
gptme/logmanager/conv_checkpoints.py 25 23 82
tests/test_cli_llm_generate.py 19 12 82
tests/test_cli_sound.py 26 2 82
tests/test_tool_description_cap.py 29 13 82
gptme/tools/autocommit.py 38 58 81
tests/test_eval_swebench_retrieval.py 25 4 81
tests/test_release_preflight.py 5 2 81
tests/test_prompt_skills_summary.py 44 44 80
tests/test_windows_signing.py 5 2 80
gptme/cli/cmd_agents.py 19 14 79
gptme/eval/suites/behavioral/rate_limiting.py 52 118 78
gptme/llm/models/__init__.py 4 12 77
gptme/logmanager/cleanup.py 12 20 77
gptme/util/context_savings.py 20 6 77
tests/fixtures/hol_guard_shell_hook.py 28 25 77
tests/test_eval_timeouts.py 32 33 77
tests/test_xml_format.py 33 91 77
gptme/cli/cmd_capabilities.py 8 6 76
gptme/cli/cmd_sound.py 26 15 76
gptme/context/compress.py 63 131 76
gptme/util/output_storage.py 31 40 76
tests/test_attachment_loading.py 17 5 76
gptme/eval/pass_rate_gate.py 23 44 75
gptme/memory/policy.py 11 7 75
scripts/check_docs_repo_links.py 14 14 75
tests/test_acp_recovery.py 13 2 75
tests/test_markdown_validation.py 43 34 75
tests/test_shell_issue729.py 50 52 75
gptme/eval/suites/behavioral/retry_with_backoff.py 30 49 74
gptme/tools/subagent/control.py 19 3 74
gptme/util/generate_name.py 5 6 74
tests/test_logmanager_fork_locking.py 19 156 74
tests/test_patch_literal_comments.py 15 1 74
tests/test_setup_api_key.py 19 1 74
tests/test_subscription_pricing.py 27 14 74
tests/test_pytest_timeout_retry_interaction.py 21 25 73
tests/test_shell_issue772.py 48 47 73
tests/test_llm_empty_stream.py 33 4 72
tests/test_python_support.py 14 5 72
gptme/context/selector/llm_based.py 30 37 71
tests/test_acp_e2e_smoke.py 23 27 71
gptme/llm/llm_anthropic_models_deprecated.py 5 11 70
gptme/llm/retry_abort.py 24 66 70
gptme/session.py 39 64 70
gptme/config/project.py 23 28 69
gptme/memory/match.py 16 13 69
tests/test_server_audio_transcription.py 20 15 69
gptme/util/_sound_cmd.py 22 18 68
gptme/util/file_write.py 8 20 68
scripts/validate_release_package.py 14 4 68
tests/test_hooks_form_autodetect.py 22 34 68
tests/test_browser_markdown_literals.py 13 1 67
tests/test_docs_tool_formats_coverage.py 16 15 67
tests/test_tools_watch_run_utf8.py 11 2 67
gptme/eval/swe_extra/swe_bench_constants.py 9 9 66
gptme/tools/autocompact/__init__.py 3 14 66
tests/test_util_context_savings.py 12 0 66
gptme/eval/suites/behavioral/fix_mutable_default.py 31 57 65
gptme/eval/tbench/agent.py 20 24 65
tests/test_computer_api.py 90 401 65
tests/test_eval_tool_efficiency.py 20 11 64
tests/test_tools_native_kwargs.py 23 6 64
gptme/eval/filestore.py 11 8 63
gptme/lessons/skills/python-repl/python_helpers.py 28 26 63
gptme/memory/roots.py 18 16 63
gptme/context/config.py 20 46 62
gptme/eval/suites/__init__.py 22 18 62
gptme/eval/suites/behavioral/test_driven_error_handling.py 35 56 62
gptme/eval/suites/init_projects.py 21 1 62
tests/test_build_apt_retry.py 5 30 62
tests/test_cli_hooks_settings_shape.py 12 1 62
gptme/eval/suites/behavioral/add_logging.py 27 39 61
gptme/llm/retry_policy.py 19 24 60
gptme/tools/_browser_perplexity.py 22 16 60
tests/test_entrypoints.py 26 37 60
tests/test_llm_mock.py 22 12 60
tests/test_shell_escaped_pipes.py 9 2 60
tests/test_shell_output_mixing_issue408.py 25 29 60
gptme/context/selector/rule_based.py 20 13 59
gptme/eval/suites/behavioral/merge_conflict_resolution.py 31 63 59
gptme/eval/suites/behavioral/noisy_worktree_fix.py 45 77 59
gptme/eval/suites/behavioral/scope_discipline_bugfix.py 37 52 59
gptme/util/uri.py 29 42 59
tests/test_eval_practical20.py 27 8 59
tests/test_logmanager_corrupt_lines.py 17 11 59
tests/test_server_client.py 33 26 59
tests/test_server_metrics.py 20 20 59
tests/test_shell_memory_limit.py 18 14 59
gptme/eval/suites/behavioral/fix_data_mutation.py 26 44 58
gptme/eval/suites/behavioral/fix_security_path_traversal.py 23 31 58
gptme/logmanager/durability.py 13 21 58
gptme/prompts/skills.py 16 10 58
tests/test_useredit.py 16 3 58
gptme/tools/clarify.py 17 26 57
tests/test_openrouter_reported_cost.py 18 1 57
tests/test_webui_redirects.py 11 7 57
gptme/eval/dspy/signatures.py 19 21 56
gptme/eval/suites/behavioral/extract_function_refactor.py 30 52 56
tests/test_chat_history.py 14 12 56
tests/test_cli_init.py 19 2 56
gptme/context/selector/file_integration.py 13 10 55
gptme/eval/suites/behavioral/write_test_suite.py 24 33 55
gptme/util/cost.py 20 21 55
gptme/util/history.py 17 7 55
tests/test_browser_reconnect_owner.py 11 3 55
gptme/hooks/cwd_changed.py 18 11 54
gptme/hooks/mcp_namespace_hint.py 21 24 54
tests/test_computer_artifacts.py 14 3 54
tests/test_server_skills_api.py 13 1 54
gptme/credentials.py 16 7 53
gptme/util/context_dedup.py 41 93 53
gptme/util/terminal.py 28 23 53
tests/test_context_status.py 11 2 53
tests/test_eval_practical17.py 33 3 53
tests/test_eval_practical18.py 23 4 53
tests/test_eval_practical19.py 23 6 53
tests/test_server_tts_api.py 21 0 53
gptme/llm/provider_plugins.py 40 37 52
gptme/hooks/markdown_validation.py 36 41 51
tests/test_checkpoint_restart.py 10 1 51
tests/test_github_bot.py 12 1 51
gptme/eval/suites/behavioral/remove_dead_code.py 40 63 50
tests/test_util_generate_name.py 19 11 50
gptme/cli/cmd_snapshot.py 12 6 49
gptme/eval/suites/behavioral/multi_file_rename.py 27 42 49
gptme/eval/suites/behavioral/use_existing_helper.py 32 45 49
gptme/eval/swebench/info.py 8 3 49
gptme/logmanager/locking.py 9 11 49
gptme/tools/subagent/concurrency.py 12 10 49
tests/test_execute_msg_defensive.py 19 19 49
gptme/tools/_allowlist.py 18 15 48
tests/test_recovery_strict_exhaustion.py 7 2 48
tests/test_tool_memory_native.py 14 2 48
gptme/eval/suites/behavioral/git_selective_commit.py 21 59 47
gptme/status_provider.py 24 60 47
tests/test_pytest_retry_tmp_path_interaction.py 17 26 47
gptme/context/selector/hybrid.py 14 18 46
tests/test_dspy_gepa.py 18 9 46
tests/test_import_boundaries.py 8 12 46
gptme/eval/suites/behavioral/debug_data_pipeline.py 30 61 45
tests/test_demo_capture.py 19 9 45
tests/test_recovery_nested_budget.py 11 2 45
gptme/logmanager/__init__.py 4 9 44
tests/test_pdf_to_images.py 13 13 43
gptme/eval/suites/behavioral/stage_new_files.py 12 18 42
gptme/cli/cmd_mcp_serve.py 14 17 41
gptme/context/selector/file_config.py 10 8 41
gptme/hooks/test.py 14 6 41
gptme/llm/llm_mock.py 16 22 41
tests/test_cli_context_non_utf8.py 11 1 41
gptme/eval/cost.py 18 25 40
gptme/util/file_storage.py 30 47 40
tests/test_check_rst_formatting.py 28 59 40
tests/test_tools_read_range_decoding.py 7 2 40
gptme/util/keyword_matching.py 35 66 39
tests/test_shell_fd_leak.py 23 16 39
gptme/__init__.py 10 4 38
tests/test_utils.py 14 17 38
gptme/cli/wut.py 13 12 36
gptme/commands/rag.py 17 8 36
gptme/util/useredit.py 15 18 36
tests/test_message_command.py 14 13 36
tests/test_python_kernel_review_regressions.py 13 1 36
gptme/eval/suites/behavioral/iterative_debug.py 28 39 35
tests/test_tools_pruner.py 9 0 35
tests/test_chat_config_readonly.py 15 1 34
tests/test_cli_confirm_hook.py 24 20 34
tests/test_credentials.py 16 0 34
tests/test_logmanager_reader_context.py 9 62 34
gptme/context/__init__.py 8 8 33
gptme/memory/__init__.py 3 4 33
gptme/util/summary.py 8 6 33
tests/test_shell_for_loop_issue724.py 16 24 33
tests/test_subagent_log_lock.py 9 3 33
gptme/eval/suites/behavioral/_common.py 9 5 32
gptme/hooks/tests/test_auto_confirm.py 12 4 32
gptme/tools/native_names.py 10 8 32
gptme/context/selector/__init__.py 12 16 31
gptme/server/token_file.py 13 13 31
gptme/util/content.py 18 24 30
gptme/util/install.py 13 25 30
tests/test_docker_lockfile.py 9 3 30
tests/test_project_config_list_types.py 6 1 30
tests/test_user_config_isolation.py 10 3 30
gptme/hooks/cwd_awareness.py 11 18 29
gptme/util/git_cmd.py 12 30 29
gptme/util/notification_ready.py 9 6 29
tests/test_agent_merge_project_config.py 16 11 29
tests/test_package_exports.py 10 3 29
gptme/eval/swebench/__init__.py 1 0 28
tests/test_cmd_init_toml_name.py 12 1 28
tests/test_eval_practical16.py 11 0 28
tests/test_lessons_frontmatter_name_type.py 11 1 28
tests/test_tool_preview_content.py 12 3 28
gptme/context/selector/config.py 9 9 26
tests/test_browser_markdown_packaging.py 3 1 26
tests/test_quota_skip.py 5 3 26
gptme/acp/adapter.py 19 22 25
gptme/executor.py 18 26 25
gptme/util/clock.py 13 16 25
tests/fixtures/retry_server.py 11 13 25
gptme/hooks/auto_confirm.py 11 9 24
gptme/tools/autocompact/config.py 11 16 24
tests/test_tool_loading_duplicate.py 16 15 24
gptme/cli/cmd_review.py 23 34 23
gptme/context/selector/base.py 14 23 23
gptme/mcp/__init__.py 4 3 23
gptme/tools/_hashline_snapshot.py 16 15 23
gptme/util/conversation_ids.py 7 4 22
tests/test_credentials_integration.py 8 0 22
gptme/acp/__init__.py 5 13 21
gptme/lessons/__init__.py 7 15 21
gptme/agent/__init__.py 3 6 19
tests/test_constants.py 11 13 19
tests/test_server_cli_tools.py 12 4 19
tests/test_tools_shell_multiline.py 7 19 19
tests/test_browser_format.py 8 6 18
gptme/eval/dspy/__init__.py 11 13 17
gptme/eval/suites/browser.py 5 0 17
gptme/plugins/plugin.py 25 39 17
tests/test_session_allowlist_isolation.py 14 31 17
gptme/cli/__init__.py 10 13 15
tests/test_llm_summarize_terminal_projection.py 9 9 15
tests/test_screenshot.py 9 6 15
gptme/hooks/_policy_block.py 10 13 14
gptme/util/multiprompt.py 6 8 14
gptme/__main__.py 2 0 12
gptme/util/stdio.py 8 9 12
gptme/server/__init__.py 5 8 9
gptme/server/constants.py 7 11 9
gptme/eval/tbench/__init__.py 13 22 8
gptme/tools/subagent/context.py 4 10 8
gptme/util/rich_text.py 6 10 7
tests/retry_compat.py 8 22 6
gptme/llm/constants.py 2 6 5
scripts/eval_trends.py 2 1 5
gptme/eval/__init__.py 2 2 4
scripts/eval_leaderboard.py 2 1 4
gptme/eval/__main__.py 1 0 3
gptme/eval/dspy/__main__.py 3 5 3
gptme/eval/swebench/__main__.py 1 0 3
gptme/server/__main__.py 1 0 3
gptme/tools/_browser_format.py 3 5 3
gptme/dataset/__init__.py 4 7 2
gptme/oauth/__init__.py 1 4 0
gptme/tui/__init__.py 4 12 0
-------------------------------------------------------------------------------------------------------------------------------
SUM: 86237 78192 356705
-------------------------------------------------------------------------------------------------------------------------------
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
Code Metrics#
$ make metrics
make[2]: Entering directory '/home/runner/work/gptme/gptme'
=== Code Metrics Summary ===
Project Overview:
Files: 1113
Total blocks: 24342
Average complexity: 3.9873469723112316
Most Complex Functions (D+):
gptme/agent/doctor.py
F 344:0 check_lessons - E
gptme/tools/shell_flags.py
F 414:0 _split_lines - D
F 560:0 _check_segment - D
gptme/tools/chats.py
F 427:0 _format_message_with_context - D
F 545:0 read_chat - D
gptme/tools/python.py
F 655:0 execute_python - E
gptme/tools/shell.py
M 1195:4 ShellSession._run_pipe - E
M 1417:4 ShellSession._read_output_windows - E
F 3507:0 _explicit_timeout_seconds - D
M 941:4 ShellSession._run_with_tty - D
gptme/tools/convert.py
M 786:4 DocumentToTextConverter._convert - E
M 527:4 ImageConverter._convert - D
gptme/tools/shell_background.py
M 177:4 BackgroundJob._read_output - D
gptme/tools/gh.py
F 222:0 _wait_for_checks - D
F 545:0 _handle_pr_merge - D
gptme/tools/shell_validation.py
F 395:0 _has_sensitive_args - D
F 1023:0 check_with_shellcheck - D
F 869:0 _interpreter_gets_program - D
gptme/tools/autocompact/resume.py
F 943:0 _apply_native_compaction - E
gptme/tools/autocompact/hook.py
gptme/tools/autocompact/engine.py
gptme/tools/lessons.py
F 401:0 _auto_include_lessons - E
gptme/tools/save.py
F 175:0 execute_save_impl - D
gptme/tools/tmux.py
gptme/tools/mcp.py
gptme/tools/subagent/batch.py
gptme/tools/subagent/types.py
M 501:4 Subagent._read_log - E
gptme/tools/subagent/api.py
gptme/tools/subagent/execution.py
F 121:0 _resolve_profile_tools - D
F 747:0 _run_subagent_subprocess - D
gptme/tools/todo.py
F 218:0 _restore_todos - E
gptme/tools/mcp_adapter.py
F 575:0 load_mcp_server - D
gptme/tools/read.py
F 485:0 execute_read - D
gptme/tools/watch.py
F 1105:0 _watch - E
gptme/tools/__init__.py
F 318:0 _init_file_plugin_tools - D
F 532:0 get_toolchain - D
F 419:0 init_tools - D
gptme/tools/base.py
F 396:0 render_tool_conditionals - D
gptme/tools/complete.py
F 143:0 _run_verify_cmd - D
F 839:0 stuck_detect_hook - D
gptme/tools/python_kernel.py
M 628:4 KernelBackend._ensure_started - D
gptme/tools/vision.py
F 67:0 view_image - D
gptme/tools/precommit.py
F 180:0 run_precommit_checks - D
gptme/tools/restart.py
F 349:0 _filter_same_interface_args - D
gptme/tools/hashline_edit.py
F 852:0 execute_hashline_edit - D
gptme/tools/computer.py
F 1386:0 _dispatch_transport - D
gptme/tools/patch_many.py
F 262:0 _publish_patches - D
gptme/hooks/token_awareness.py
F 93:0 add_token_usage_warning - D
gptme/hooks/guardrails.py
F 252:0 guardrail_hook - D
gptme/hooks/_credential_output.py
F 115:0 _command_reason - D
F 175:0 credential_output_reason - D
F 41:0 _unwrap - D
gptme/hooks/workspace_agents.py
F 1345:0 scan_agents - D
gptme/hooks/cli_confirm.py
F 173:0 _looks_like_diff - D
gptme/hooks/__init__.py
F 115:0 init_hooks - D
gptme/hooks/elicitation.py
F 343:0 _cli_form - D
gptme/hooks/tool_target_instructions.py
F 67:0 _extract_paths - D
gptme/hooks/_secret_reach.py
F 654:0 _matches_values - E
F 68:0 _parse_grep - E
F 512:0 _glob_patterns - D
gptme/hooks/registry.py
M 178:4 HookRegistry.trigger - D
gptme/hooks/time_awareness.py
F 161:0 add_time_message - E
gptme/acp/agent.py
M 655:4 GptmeAgent.new_session - E
M 1128:4 GptmeAgent.prompt - D
gptme/util/capabilities_export.py
F 549:0 validate_snapshot - D
gptme/util/completion_verification.py
F 136:0 _split_shell_statements - E
F 229:0 _mask_inert_shell_text - D
F 670:0 discover_verification_command - D
gptme/util/gh.py
F 1103:0 get_github_run_logs - E
F 1304:0 search_github_issues - D
F 1410:0 search_github_prs - D
F 1512:0 merge_github_pr - D
gptme/util/cost_display.py
F 392:0 display_costs - D
F 227:0 gather_conversation_costs - D
gptme/util/reduce.py
F 291:0 _drop_orphaned_tool_pairs - D
F 362:0 limit_log - D
gptme/util/_telemetry.py
F 326:0 init_telemetry - D
gptme/util/prompt.py
gptme/util/tool_format.py
F 104:0 format_tools_list - D
gptme/util/ask_execute.py
F 69:0 execute_with_confirmation - D
gptme/util/review.py
F 1422:0 validate_artifact_dict - D
M 893:4 ReviewArtifact._from_forge_neutral - D
M 262:4 ReviewFinding.from_dict - D
gptme/util/context.py
gptme/workspace_snapshot.py
F 463:0 prune_by_age - D
gptme/eval/suites/constraint_satisfaction.py
F 255:0 check_boundary_domain_no_infra_import - D
gptme/eval/suites/practical16.py
F 68:0 check_queue_all_producers_mentioned - D
gptme/eval/trends.py
F 157:0 compute_diff - D
gptme/eval/run.py
F 333:0 execute - E
gptme/eval/dspy/hybrid_optimizer.py
C 239:0 TaskComplexity - D
M 283:4 TaskComplexity.analyze - D
gptme/eval/main.py
gptme/eval/leaderboard.py
F 928:0 compute_rate_trends - D
F 692:0 aggregate_per_test - D
gptme/context/selector/rule_based.py
M 27:4 RuleBasedSelector.select - D
gptme/context/selector/file_selector.py
gptme/memory/schema.py
gptme/prompts/chat_history.py
F 20:0 prompt_chat_history - E
gptme/prompts/workspace.py
gptme/prompts/__init__.py
F 261:0 _build_prompt_sections - E
gptme/prompts/templates.py
F 91:0 prompt_gptme - E
gptme/info.py
F 431:0 format_version_info - D
gptme/chat.py
F 910:0 _should_prompt_for_input - D
F 213:0 chat - D
F 1104:0 step - D
gptme/telemetry.py
F 442:0 record_llm_request - E
F 362:0 _calculate_llm_cost - D
gptme/tui/app.py
M 3873:4 GptmeApp._generation_body - E
M 1250:4 StreamingMessage._update_hidden_segments - D
M 1909:4 ChatInput._on_key - D
F 1541:0 renderables_for_message - D
F 1699:0 complete_input - D
M 1998:4 ChatInput._cycle_completion - D
gptme/lessons/auto_include.py
F 270:0 _classify_lesson - D
gptme/lessons/selector.py
gptme/lessons/parser.py
F 284:0 parse_lesson - D
gptme/lessons/hybrid_matcher.py
M 394:4 HybridLessonMatcher._match_with_bm25 - D
gptme/lessons/installer.py
F 288:0 _install_local_skill - E
F 438:0 install_skill - D
F 683:0 check_dependencies - D
gptme/lessons/index.py
M 97:4 LessonIndex._default_dirs - E
M 508:4 LessonIndex._load_manifest_skill_stubs - D
M 331:4 LessonIndex._index_directory - D
gptme/llm/models/resolution.py
gptme/llm/openai_responses.py
M 486:4 _ResponseFunctionCalls.get - D
F 349:0 _messages_to_responses_input - D
F 551:0 _stream_responses_events - D
gptme/llm/__init__.py
gptme/llm/llm_openai.py
F 2744:0 _transform_msgs_for_special_provider - E
F 613:0 init - E
F 905:0 _handle_openai_transient_error - E
F 1622:0 extra_body - D
F 2449:0 _handle_tools - D
F 282:0 _record_usage - D
gptme/llm/recovery.py
F 226:0 is_transient_provider_error - D
gptme/llm/llm_anthropic.py
F 1697:0 _prepare_messages_for_api - E
F 1554:0 _transform_system_messages - D
F 949:0 chat - D
gptme/message.py
F 696:0 format_msgs - D
F 803:0 print_msg - D
gptme/commands/meta.py
F 142:0 cmd_plugin - E
gptme/commands/checkpoint.py
F 43:0 cmd_checkpoint - D
gptme/commands/llm.py
F 198:0 cmd_tools - D
F 289:0 cmd_context - D
gptme/commands/export.py
F 107:0 _replay_tool - D
gptme/commands/backtrack.py
F 66:0 cmd_backtrack - D
gptme/commands/snapshot.py
F 42:0 _print_prunable - D
gptme/cli/cmd_computer.py
F 1248:0 doctor_cmd - E
F 1009:0 latency_cmd - D
F 1590:0 demo_cmd - D
gptme/cli/cmd_review_pr.py
F 1107:0 review_pr - D
F 657:0 _spawn_review_session - D
gptme/cli/util.py
F 1033:0 context_files - E
F 1227:0 llm_generate - D
F 1915:0 models_test - D
F 1820:0 models_info - D
gptme/cli/auth.py
F 57:0 auth_login - D
gptme/cli/cmd_memory.py
F 544:0 memory_migrate_knowledge_jsonl - E
gptme/cli/doctor.py
F 1585:0 _check_plugins - E
F 417:0 _provider_repair_needed - D
F 1004:0 _check_computer - D
gptme/cli/cmd_skills.py
F 18:0 skills_list - D
gptme/cli/cmd_hooks.py
F 264:0 run - D
gptme/cli/cmd_agents.py
F 25:0 run_scan - D
gptme/cli/main.py
M 104:4 _DynamicHelpCommand.parse_args - D
gptme/cli/cmd_knowledge.py
F 288:0 knowledge_search_cmd - D
gptme/cli/cmd_resume.py
F 60:0 _task_from_user_content - D
gptme/cli/cmd_service.py
F 597:0 init - E
gptme/cli/cmd_review_watch.py
gptme/logmanager/manager.py
M 783:4 LogManager.write - D
M 292:4 LogManager.__init__ - D
gptme/init.py
F 159:0 init_model - D
F 319:0 _record_selection_trace - D
gptme/codeblock.py
F 103:0 _find_heredoc_terminator - E
F 241:0 _scan_ipython_triple_quote - D
gptme/config/user.py
F 966:0 _merge_config_data - E
gptme/config/chat.py
M 165:4 ChatConfig.from_dict - E
M 322:4 ChatConfig._workspace_transition - D
gptme/config/models.py
M 407:4 ProjectConfig.from_dict - D
gptme/config/core.py
M 90:4 Config.mcp - D
gptme/config/cli_setup.py
gptme/server/api_v2.py
F 1736:0 api_conversation_put - E
F 2215:0 api_conversation_edit_message - E
F 2997:0 api_conversation_config_patch - E
F 1597:0 api_conversation - E
F 1970:0 api_conversation_post - E
F 651:0 _parse_mcp_request - D
gptme/server/api_v2_sessions.py
F 678:0 api_conversation_tool_confirm - E
F 1168:0 api_conversation_transcript - D
F 932:0 api_conversation_rerun - D
gptme/server/tasks_api.py
F 396:0 get_git_status - D
F 856:0 api_tasks_update - D
gptme/server/session_step.py
F 478:0 _acp_step - D
gptme/server/api_v2_agents.py
F 57:0 api_agents_put - D
gptme/server/openapi_docs.py
F 1179:0 _convert_to_openapi_nullable - D
gptme/server/a2a_api.py
F 494:0 _task_from_conversation - D
gptme/server/session_models.py
M 569:4 SessionManager.clean_inactive_sessions - D
gptme/plugins/__init__.py
F 205:0 _load_plugin - D
tests/test_tools_convert_literal_paths.py
F 21:0 test_image_output_filename_is_literal - D
tests/test_memory_store.py
M 789:4 TestStore.test_concurrent_supersede_keeps_links_consistent - D
tests/test_commands_llm.py
F 219:0 test_commands_refresh_runtime_fragments_from_live_config - D
tests/test_server.py
F 315:0 test_api_conversation_list_detail_flag - D
tests/test_release_source.py
F 133:0 test_stable_publish_does_not_rewind_master - D
tests/test_tui_frames.py
F 230:0 test_prompt_queued_during_tool_waits_below_it_then_joins - D
tests/test_tools_vision_exif.py
F 42:0 test_large_exif_display_pixels - D
tests/test_eval_behavioral_solutions.py
F 55:0 _apply_solution - E
tests/test_responses_phase.py
F 555:0 test_review_attachments_decline_text_only_replay - D
tests/test_llm_image_attachments.py
F 75:0 test_provider_preserves_image_attachment - D
tests/test_browser_state_load_failure.py
F 95:0 test_real_browser_preserves_draft_and_loads_valid_state - D
tests/test_workspace_api.py
M 501:4 TestAttachmentResourceEndpoint.test_model_relative_resources_and_legacy_routes - D
tests/test_tui_recovery.py
F 40:0 test_retry_resets_only_uncommitted_preview - D
tests/test_openai_responses_input.py
F 19:0 test_missing_tool_results_are_paired_without_replacing_real_results - D
tests/test_tools_parameter_conformance.py
F 110:0 _extract_executor_kwargs_keys - E
tests/test_server_default_profile.py
F 255:0 test_runtime_fragments_survive_patch_and_restart - D
tests/test_skill_events.py
F 32:0 test_queue_is_not_completion_and_terminal_requires_valid_transition - D
tests/test_build_distribution.py
F 33:0 test_build_distribution_roundtrip - E
tests/test_tui_before_tool_execution.py
F 27:0 test_reply_visible_before_tools_and_not_duplicated - D
tests/test_dataset_history.py
F 67:0 history - D
tests/test_server_v2_auto_stepping.py
F 16:0 test_auto_stepping - E
F 382:0 test_multi_tool_per_message - D
tests/test_memory_migrate_knowledge.py
F 468:0 test_migrate_preserves_unparseable_occupied_destinations - D
tests/test_cli_from_turn.py
F 432:0 test_chats_fork_retains_only_explicit_policy - D
tests/test_server_v2_tool_confirmation.py
F 15:0 test_tool_confirmation_flow - D
tests/test_skill_metrics.py
F 100:0 test_ledger_and_metrics_agree_without_duplicate_terminal_counts - E
tests/test_util_review.py
M 3817:4 TestSchemaFixtures.test_full_fixture_preserves_all_union_fields - D
tests/test_hashline_confirmation_ownership.py
F 23:0 test_confirmation_preserves_target_ownership - D
tests/test_util_cli.py
F 779:0 test_tools_list - D
F 992:0 test_models_list - D
F 835:0 test_tools_info - D
F 1534:0 test_context_tree_respects_gitignore_anchored_and_negation - D
tests/test_config.py
F 2222:0 test_runtime_config_builtin_defaults_lifecycle - E
F 989:0 test_project_config_loaded_from_toml - D
F 1026:0 test_project_config_loaded_from_json - D
scripts/check_rst_formatting.py
F 66:0 check_lines - E
scripts/auto_rename_logs.py
F 32:0 auto_rename_logs - D
scripts/demo_capture.py
F 485:0 main - D
scripts/treeofthoughts.py
F 183:0 tree_search - D
scripts/eval_phase0_pruning.py
F 376:0 main - D
scripts/docs_structure.py
F 263:0 check_nav - E
scripts/github_bot.py
F 554:0 main - D
scripts/measure_output_capture.py
F 80:0 measure - D
Largest Files (>300 SLOC):
6193 tests/test_subagent_unit.py
4630 tests/test_server_v2.py
3821 tests/test_llm_openai.py
3701 tests/test_auto_compact.py
3384 tests/test_tui.py
3342 gptme/tui/app.py
3278 gptme/server/api_v2.py
3079 tests/test_util_review.py
3025 gptme/tools/shell.py
2898 tests/test_tools_subagent.py
2590 tests/test_config.py
2581 tests/test_server_v2_sessions.py
2461 tests/test_doctor.py
2252 tests/test_eval_behavioral.py
2237 gptme/llm/llm_openai.py
2132 tests/test_tools_shell.py
1939 gptme/tools/computer.py
1833 tests/test_codeblock.py
1832 tests/test_chat.py
1708 tests/test_cli.py
1672 gptme/cli/doctor.py
1597 tests/test_init.py
1589 tests/test_util_cli.py
1579 tests/test_memory_store.py
1577 gptme/cli/cmd_computer.py
1535 gptme/cli/util.py
1514 tests/test_tools_watch.py
1490 tests/test_acp_agent.py
1390 gptme/cli/main.py
1341 tests/test_tools_shell_validation.py
1340 gptme/tools/subagent/api.py
1315 gptme/server/session_step.py
1306 tests/test_tools_complete.py
1304 tests/test_tools_browser.py
1300 tests/test_tools_computer.py
1293 gptme/logmanager/manager.py
1285 tests/test_util_cli_review_watch.py
1267 tests/test_tools_convert.py
1265 tests/test_tools_todo_isolation.py
1245 gptme/hooks/workspace_agents.py
1236 gptme/util/gh.py
1233 gptme/acp/agent.py
1230 tests/test_tools_hashline_edit.py
1226 tests/test_util_gh.py
1219 gptme/llm/llm_anthropic.py
1196 tests/test_llm_anthropic.py
1187 gptme/eval/leaderboard.py
1153 tests/test_server.py
1136 gptme/tools/autocompact/resume.py
1127 tests/test_eval_behavioral_solutions.py
1108 tests/test_llm_utils.py
1099 gptme/tools/subagent/execution.py
1094 tests/test_tools_gh.py
1086 tests/test_tools_base.py
1073 gptme/tools/base.py
1033 tests/test_tools_patch_many.py
1018 tests/test_eval.py
1007 gptme/tools/convert.py
999 gptme/tools/watch.py
993 gptme/server/api_v2_sessions.py
990 gptme/util/review.py
987 tests/test_lessons_auto_include.py
982 tests/test_cmd_service.py
972 tests/test_info.py
970 tests/test_shell_background.py
965 gptme/server/openapi_docs.py
957 gptme/llm/__init__.py
956 gptme/hooks/tests/test_workspace_agents.py
947 gptme/eval/dspy/tasks.py
946 gptme/eval/main.py
942 tests/test_logmanager.py
934 gptme/tools/python_kernel.py
930 tests/test_dataset.py
926 tests/test_tools_python_kernel.py
917 gptme/tools/shell_background.py
906 gptme/util/context.py
903 gptme/cli/cmd_review_pr.py
902 tests/test_compaction_recall.py
901 tests/test_mcp_adapter.py
901 gptme/llm/models/data.py
889 tests/test_eval_leaderboard.py
867 tests/test_guardrail_secret_reach.py
864 gptme/chat.py
856 tests/test_llm_openai_subscription.py
844 gptme/tools/chats.py
843 tests/test_knowledge.py
831 tests/test_tasks_api.py
826 tests/test_util_gh_mocked.py
820 gptme/eval/suites/computer.py
820 gptme/codeblock.py
819 tests/test_eval_computer_suite.py
818 tests/test_tools_precommit.py
816 tests/test_prompt_templates.py
810 gptme/tools/_browser_playwright.py
806 tests/test_context.py
804 gptme/tools/mcp_adapter.py
801 tests/test_sandbox.py
781 tests/test_cost_display.py
781 gptme/tools/browser.py
767 gptme/tools/gh.py
758 tests/test_tools.py
753 gptme/config/user.py
751 gptme/eval/execenv.py
750 tests/test_acp_session_runtime.py
743 tests/test_server_workspace.py
740 gptme/tools/hashline_edit.py
732 gptme/cli/cmd_review_watch.py
726 gptme/tools/complete.py
722 gptme/tools/__init__.py
720 gptme/tools/python.py
719 gptme/cli/setup.py
717 tests/test_eventlog.py
716 tests/test_hooks_registry.py
715 gptme/tools/subagent/batch.py
715 gptme/eval/suites/basic.py
713 tests/test_computer_transport.py
711 gptme/hooks/_secret_reach.py
708 tests/test_tools_restart.py
707 tests/test_agent.py
704 gptme/cli/cmd_memory.py
703 tests/test_message.py
684 gptme/llm/openai_responses.py
683 gptme/cli/cmd_service.py
680 tests/test_tui_e2e.py
680 gptme/server/tasks_api.py
677 tests/test_llm_models_resolution.py
677 gptme/tools/shell_validation.py
672 tests/test_relevance_pruning.py
671 gptme/lessons/installer.py
664 tests/test_tools_lessons.py
660 gptme/llm/llm_openai_subscription.py
643 tests/test_json_output.py
643 gptme/tools/tmux.py
642 tests/test_context_scout.py
635 gptme/util/completion_verification.py
628 tests/test_prompts.py
626 tests/test_subagent_budget.py
623 tests/test_telemetry.py
623 tests/test_commands.py
619 tests/conftest.py
613 tests/test_skill_install_replacement.py
612 tests/test_lessons.py
609 tests/test_explicit_attachments.py
609 tests/test_chat_transient_recovery.py
609 scripts/github_bot.py
607 tests/test_computer_doctor_cmd.py
602 tests/test_lessons_index.py
599 gptme/util/capabilities_export.py
598 tests/test_tools_read.py
598 tests/test_dirs.py
596 tests/test_mcp_server.py
595 tests/test_server_panels.py
593 gptme/eval/run.py
591 gptme/prompts/__init__.py
585 tests/test_server_subscription_connect.py
582 tests/test_tui_completion.py
578 tests/test_tools_request_tool_change.py
576 tests/test_server_session_models.py
576 tests/test_lessons_parser.py
573 tests/test_skill_installer.py
573 tests/test_served_model_metadata.py
573 gptme/hooks/tests/test_anomaly_watchdog.py
567 scripts/github_ci_self_heal.py
567 gptme/tools/computer_transport.py
558 tests/test_llm_models.py
555 gptme/server/a2a_api.py
554 tests/test_eval_subagent.py
552 tests/test_util_cli_mcp.py
551 tests/test_memory_index_policy.py
549 gptme/cli/cmd_chats.py
546 tests/test_computer_actions.py
543 tests/test_subagent_persistence.py
543 gptme/tools/subagent/__init__.py
541 gptme/server/artifacts_api.py
539 tests/test_server_path_traversal.py
539 tests/test_execenv.py
538 tests/test_cc_memory.py
537 tests/test_model_attestation.py
534 tests/test_responses_phase.py
534 tests/test_memory_migrate_knowledge.py
534 tests/test_gptme_provider.py
530 gptme/message.py
528 gptme/memory/store.py
527 gptme/hooks/tests/test_agents_md_inject.py
525 tests/test_hooks_cost_awareness.py
524 tests/test_server_bad_input.py
523 gptme/tools/todo.py
522 tests/test_file_publication.py
510 gptme/server/session_models.py
508 tests/test_workspace_api.py
506 tests/test_capabilities_export.py
503 gptme/hooks/registry.py
498 tests/test_overflow_recovery.py
498 gptme/util/prompt.py
497 gptme/server/workspace_api.py
496 gptme/dataset/trajectory_to_env.py
495 tests/test_checkpoint.py
495 gptme/tools/autocompact/hook.py
492 tests/test_conversations.py
492 tests/test_config_workspace_publication.py
491 gptme/tools/read.py
484 tests/test_hooks_cache_awareness.py
482 tests/test_computer_demo_cmd.py
477 tests/test_snapshot_command.py
472 gptme/tools/lessons.py
472 gptme/hooks/tests/test_cost_awareness.py
469 tests/test_llm_openai_sampling.py
467 gptme/agent/workspace.py
466 tests/test_shell_foreground_promotion.py
462 tests/test_tools_save.py
462 tests/test_chats_stats.py
461 tests/test_server_skill_events.py
458 tests/test_llm_auth.py
456 gptme/telemetry.py
454 gptme/llm/llm_openai_models.py
452 gptme/tools/patch_many.py
452 gptme/lessons/index.py
451 scripts/demo_capture.py
451 scripts/check_rst_formatting.py
450 tests/test_tools_browser_thread.py
447 tests/test_cli_from_turn.py
447 gptme/util/_telemetry.py
447 gptme/hooks/tests/test_time_awareness.py
445 scripts/analyze_compression.py
444 tests/test_hooks_dirty_diff.py
442 gptme/tools/shell_flags.py
440 tests/test_python_kernel_raster.py
439 gptme/tools/subagent/hooks.py
438 tests/test_util_cli_providers.py
436 tests/test_tools_rag.py
436 tests/test_computer_api.py
436 tests/test_compaction_native_anthropic.py
436 tests/test_cli_resume.py
436 gptme/lessons/auto_include.py
433 tests/test_chats_clean_safety.py
431 gptme/config/chat.py
427 gptme/workspace_snapshot.py
424 tests/test_cost_tracker.py
423 tests/test_external_sessions.py
422 tests/test_lessons_commands.py
421 tests/test_tools_patch.py
421 gptme/eval/dspy/prompt_optimizer.py
420 tests/test_reduce.py
419 gptme/agent/service.py
418 tests/context/test_task_analyzer.py
418 gptme/tools/save.py
417 tests/test_unified_plugins.py
417 gptme/prompts/workspace.py
417 gptme/cli/auth.py
415 tests/test_server_artifacts.py
414 tests/test_subagent_worktree_isolation.py
414 tests/test_llm_grok_subscription.py
410 gptme/tools/autocompact/engine.py
409 tests/test_provider_plugins.py
407 tests/test_tools_precommit_paths.py
407 gptme/tools/subagent/types.py
406 gptme/util/cost_display.py
405 tests/test_lessons_selector.py
404 tests/test_llm_validate.py
404 gptme/logmanager/conversations.py
402 gptme/tools/restart.py
401 gptme/cli/cmd_hooks.py
399 gptme/eval/suites/subagent.py
398 tests/test_tools_mcp.py
397 tests/test_mcp_discovery.py
397 gptme/cli/cmd_init.py
396 tests/test_tools_morph.py
395 tests/test_profiles.py
395 tests/test_hybrid_lessons.py
395 gptme/prompts/templates.py
394 gptme/agent/cli.py
393 tests/test_computer_latency_cmd.py
393 scripts/eval_phase0_pruning.py
391 gptme/agent/doctor.py
389 tests/test_chats_external_search.py
386 tests/test_util_cli_attest.py
386 tests/test_tui_literal_thinking.py
385 tests/test_search_alias.py
385 tests/test_guardrail_hook.py
384 gptme/init.py
383 tests/test_util_hooks.py
383 tests/test_server_v2_auto_stepping.py
383 tests/test_computer_use_integration.py
381 gptme/llm/llm_grok_subscription.py
372 tests/test_lessons_matcher.py
372 tests/test_anti_slop.py
372 gptme/server/external_sessions.py
371 tests/test_github_ci_self_heal.py
371 gptme/cli/cmd_status.py
370 tests/test_server_v2_agents.py
370 tests/test_preview_proxy.py
370 gptme/hooks/dirty_diff.py
370 gptme/hooks/anomaly_watchdog.py
368 tests/test_lessons_emissions.py
367 gptme/hooks/tests/test_guardrails.py
365 tests/test_util_cli_skills.py
365 tests/test_tools_convert_publication.py
365 gptme/info.py
364 tests/test_computer_record.py
364 gptme/lessons/hybrid_matcher.py
364 gptme/eval/dspy/cli.py
364 gptme/checkpoint.py
363 tests/test_replay.py
362 tests/test_subscription_terminal_recovery.py
362 gptme/sandbox.py
358 gptme/config/models.py
356 tests/test_context_providers.py
356 gptme/mcp/client.py
355 gptme/eval/dspy/experiments.py
354 gptme/tools/mcp.py
353 tests/test_workspace_agents.py
353 tests/test_complete.py
351 gptme/llm/local_discovery.py
350 scripts/docs_structure.py
350 gptme/hooks/tests/test_tool_target_instructions.py
350 gptme/eval/dspy/metrics.py
347 tests/test_skill_commands.py
347 tests/test_dataset_history.py
347 gptme/hooks/tests/test_confirm.py
346 tests/test_browser_open_page_session.py
346 tests/lessons/test_wildcard_matching.py
343 gptme/hooks/tests/test_elicitation.py
342 tests/test_script_hooks.py
340 tests/test_tools_python.py
340 tests/test_hol_guard_shell_hook.py
340 tests/test_context_selector.py
340 tests/test_computer_semantic_fixtures.py
338 tests/test_agent_doctor.py
337 tests/test_completion_verification.py
337 gptme/hooks/cost_awareness.py
336 tests/test_eval_trends.py
334 tests/test_shell_redact_secrets.py
332 gptme/eval/suites/constraint_satisfaction.py
332 gptme/cli/cmd_knowledge.py
331 tests/test_tools_vision.py
331 tests/test_llm_anthropic_system_messages.py
330 gptme/util/safety.py
327 tests/test_mcp.py
326 tests/test_llm_generation_recovery.py
326 scripts/treeofthoughts.py
326 gptme/eval/suites/practical.py
325 tests/test_tools_tmux_quoting.py
322 tests/test_workspace_snapshot.py
322 tests/test_util_tool_format.py
322 tests/test_circuit_breaker.py
321 tests/test_util_safety.py
321 tests/test_ephemeral.py
317 tests/test_util_cli_batch.py
317 gptme/tools/patch.py
317 gptme/eval/suites/practical16.py
316 tests/test_custom_providers.py
316 gptme/tools/rag.py
316 gptme/eval/trends.py
314 tests/test_eval_swebench.py
313 gptme/tools/_browser_thread.py
312 tests/test_skill_metrics.py
312 tests/test_plugins.py
312 gptme/commands/llm.py
311 tests/test_util_export.py
308 tests/test_browser.py
307 gptme/attestation.py
306 gptme/server/preview_proxy_api.py
306 gptme/server/cli.py
305 tests/test_hooks_knowledge_inject.py
303 gptme/llm/validate.py
301 tests/test_llm_request_limits.py
make[3]: Entering directory '/home/runner/work/gptme/gptme'
Most Duplicated Files:
npm warn exec The following package was not found and will be installed: jscpd@5.4.2
Clone found (python)
- __init__.py [34:47 - 45:30] (12 lines, 54 tokens)
context/__init__.py [36:55 - 47:30]
Clone found (python)
- __init__.py [34:47 - 45:30] (12 lines, 54 tokens)
context/selector/__init__.py [46:61 - 57:30]
Clone found (python)
- acp/client.py [239:9 - 246:9] (8 lines, 85 tokens)
acp/client.py [459:5 - 466:5]
Clone found (python)
- agent/cli.py [97:6 - 120:4] (24 lines, 84 tokens)
cli/cmd_agents.py [76:8 - 99:4]
Clone found (python)
- cli/auth.py [382:5 - 398:60] (17 lines, 90 tokens)
llm/llm_grok_subscription.py [301:5 - 316:60]
Clone found (python)
- cli/auth.py [401:5 - 419:76] (19 lines, 108 tokens)
llm/llm_grok_subscription.py [322:5 - 339:81]
Clone found (python)
- cli/auth.py [425:40 - 433:86] (9 lines, 54 tokens)
llm/llm_grok_subscription.py [345:58 - 353:86]
Clone found (python)
- cli/auth.py [471:9 - 484:18] (14 lines, 58 tokens)
llm/llm_grok_subscription.py [397:5 - 410:14]
Clone found (python)
- cli/cmd_batch.py [45:67 - 58:17] (14 lines, 74 tokens)
cli/main.py [248:77 - 261:17]
Clone found (python)
- cli/cmd_batch.py [139:5 - 152:39] (14 lines, 54 tokens)
cli/cmd_review_watch.py [582:5 - 595:39]
Clone found (python)
- cli/cmd_batch.py [152:37 - 166:38] (15 lines, 61 tokens)
cli/cmd_review_watch.py [597:45 - 611:38]
Clone found (python)
- cli/cmd_chats.py [77:22 - 89:15] (13 lines, 67 tokens)
cli/cmd_chats.py [117:24 - 129:15]
Clone found (python)
- cli/cmd_dataset.py [40:25 - 60:13] (21 lines, 92 tokens)
cli/cmd_dataset.py [101:26 - 121:13]
Clone found (python)
- cli/cmd_init.py [62:1 - 73:61] (12 lines, 70 tokens)
cli/cmd_service.py [317:1 - 328:61]
Clone found (python)
- cli/cmd_mcp.py [245:21 - 265:4] (21 lines, 80 tokens)
cli/cmd_mcp_serve.py [14:28 - 34:4]
Clone found (python)
- cli/cmd_mcp.py [290:5 - 300:24] (11 lines, 65 tokens)
cli/cmd_mcp_serve.py [62:5 - 72:24]
Clone found (python)
- cli/cmd_review_watch.py [101:5 - 112:14] (12 lines, 87 tokens)
cli/cmd_review_watch.py [134:5 - 145:14]
Clone found (python)
- cli/cmd_review_watch.py [863:86 - 877:80] (15 lines, 55 tokens)
cli/cmd_review_watch.py [1030:64 - 1048:33]
Clone found (python)
- cli/doctor.py [594:37 - 609:40] (16 lines, 60 tokens)
cli/doctor.py [616:47 - 631:40]
Clone found (python)
- cli/util.py [529:5 - 546:49] (18 lines, 68 tokens)
cli/util.py [569:5 - 586:49]
Clone found (python)
- cli/util.py [2079:9 - 2086:72] (8 lines, 54 tokens)
cli/util.py [2112:5 - 2119:68]
Clone found (python)
- commands/meta.py [165:9 - 173:49] (9 lines, 58 tokens)
commands/meta.py [214:9 - 222:49]
Clone found (python)
- config/chat.py [58:10 - 77:4] (20 lines, 132 tokens)
tools/autocompact/events.py [59:23 - 78:4]
Clone found (python)
- config/chat.py [62:13 - 77:4] (16 lines, 100 tokens)
logmanager/eventlog.py [102:13 - 117:4]
Clone found (python)
- config/user.py [896:5 - 908:4] (13 lines, 62 tokens)
config/user.py [954:5 - 966:4]
Clone found (python)
- context/__init__.py [40:16 - 49:75] (10 lines, 57 tokens)
context/selector/__init__.py [50:16 - 59:75]
Clone found (python)
- context/adaptive_compressor.py [56:1 - 69:23] (14 lines, 92 tokens)
tools/autocompact/scoring.py [287:1 - 300:23]
Clone found (python)
- context/adaptive_compressor.py [175:1 - 186:79] (12 lines, 53 tokens)
tools/autocompact/scoring.py [397:61 - 408:79]
Clone found (python)
- eval/agents/swebench.py [110:9 - 116:86] (7 lines, 60 tokens)
eval/agents/swebench.py [134:13 - 142:14]
Clone found (python)
- eval/dspy/cli.py [78:1 - 92:2] (15 lines, 79 tokens)
eval/dspy/cli.py [316:66 - 330:2]
Clone found (python)
- eval/dspy/cli.py [160:9 - 176:15] (17 lines, 57 tokens)
eval/dspy/cli.py [423:45 - 439:15]
Clone found (python)
- eval/dspy/cli.py [187:13 - 192:51] (6 lines, 58 tokens)
eval/dspy/cli.py [450:13 - 455:51]
Clone found (python)
- eval/execenv.py [193:9 - 214:62] (22 lines, 63 tokens)
eval/execenv.py [799:9 - 820:62]
Clone found (python)
- eval/execenv.py [220:13 - 233:11] (14 lines, 59 tokens)
eval/execenv.py [825:13 - 838:11]
Clone found (python)
- eval/execenv.py [220:13 - 233:11] (14 lines, 59 tokens)
eval/execenv.py [1035:13 - 1048:11]
Clone found (python)
- eval/execenv.py [250:57 - 261:33] (12 lines, 94 tokens)
eval/filestore.py [59:60 - 70:33]
Clone found (python)
- eval/execenv.py [677:5 - 696:22] (20 lines, 137 tokens)
eval/execenv.py [902:5 - 921:22]
Clone found (python)
- eval/execenv.py [712:17 - 731:29] (20 lines, 82 tokens)
eval/execenv.py [932:17 - 951:29]
Clone found (python)
- eval/execenv.py [827:35 - 844:16] (18 lines, 82 tokens)
eval/execenv.py [1037:35 - 1054:16]
Clone found (python)
- eval/leaderboard.py [221:5 - 227:46] (7 lines, 61 tokens)
eval/leaderboard.py [702:5 - 708:85]
Clone found (python)
- eval/leaderboard.py [317:28 - 332:28] (16 lines, 63 tokens)
eval/leaderboard.py [377:68 - 392:28]
Clone found (python)
- eval/leaderboard.py [474:3 - 480:27] (7 lines, 82 tokens)
eval/leaderboard.py [848:3 - 854:27]
Clone found (python)
- eval/leaderboard.py [474:3 - 480:27] (7 lines, 82 tokens)
eval/leaderboard.py [1156:3 - 1162:27]
Clone found (python)
- eval/suites/behavioral/add_feature_preserve_default.py [61:5 - 79:17] (19 lines, 102 tokens)
eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py [112:5 - 130:17]
Clone found (python)
- eval/suites/behavioral/add_feature_preserve_default.py [83:43 - 131:5] (49 lines, 230 tokens)
eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py [162:59 - 210:5]
Clone found (python)
- eval/suites/behavioral/add_type_hints.py [19:62 - 27:44] (9 lines, 59 tokens)
eval/suites/behavioral/add_type_hints.py [41:70 - 49:44]
Clone found (python)
- eval/suites/behavioral/add_type_hints.py [19:62 - 27:33] (9 lines, 58 tokens)
eval/suites/behavioral/add_type_hints.py [82:71 - 90:33]
Clone found (python)
- eval/suites/behavioral/add_type_hints.py [42:43 - 49:69] (8 lines, 55 tokens)
eval/suites/behavioral/fix_mutable_default.py [28:41 - 35:69]
Clone found (python)
- eval/suites/behavioral/circuit_breaker.py [1:42 - 19:4] (19 lines, 68 tokens)
eval/suites/behavioral/rate_limiting.py [1:40 - 19:4]
Clone found (python)
- eval/suites/behavioral/circuit_breaker.py [91:51 - 111:44] (21 lines, 121 tokens)
eval/suites/behavioral/rate_limiting.py [82:49 - 102:44]
Clone found (python)
- eval/suites/behavioral/circuit_breaker.py [125:1 - 138:4] (14 lines, 73 tokens)
eval/suites/behavioral/rate_limiting.py [117:1 - 130:4]
Clone found (python)
- eval/suites/behavioral/circuit_breaker.py [170:46 - 178:68] (9 lines, 58 tokens)
eval/suites/behavioral/circuit_breaker.py [208:27 - 216:68]
Clone found (python)
- eval/suites/behavioral/implement_event_emitter.py [53:74 - 61:72] (9 lines, 69 tokens)
eval/suites/behavioral/implement_event_emitter.py [67:82 - 75:72]
Clone found (python)
- eval/suites/behavioral/implement_event_emitter.py [53:74 - 61:72] (9 lines, 69 tokens)
eval/suites/behavioral/implement_event_emitter.py [84:77 - 92:72]
Clone found (python)
- eval/suites/behavioral/implement_priority_queue.py [31:46 - 38:30] (8 lines, 50 tokens)
eval/suites/behavioral/implement_priority_queue.py [44:45 - 51:30]
Clone found (python)
- eval/suites/behavioral/root_cause_pipeline_debug.py [176:10 - 181:6] (6 lines, 59 tokens)
eval/suites/behavioral/root_cause_pipeline_debug.py [214:12 - 219:6]
Clone found (python)
- eval/suites/practical.py [26:63 - 33:40] (8 lines, 50 tokens)
eval/suites/practical.py [44:57 - 51:40]
Clone found (python)
- eval/suites/practical.py [26:63 - 33:40] (8 lines, 50 tokens)
eval/suites/practical.py [59:71 - 66:40]
Clone found (python)
- hooks/_secret_reach.py [343:20 - 357:64] (15 lines, 73 tokens)
hooks/_secret_reach.py [412:22 - 426:64]
Clone found (python)
- hooks/_secret_reach.py [343:20 - 357:64] (15 lines, 73 tokens)
hooks/_secret_reach.py [543:24 - 557:64]
Clone found (python)
- hooks/anomaly_watchdog.py [671:66 - 678:36] (8 lines, 78 tokens)
hooks/aw_watcher_agent.py [252:69 - 259:36]
Clone found (python)
- hooks/anomaly_watchdog.py [702:53 - 711:10] (10 lines, 50 tokens)
hooks/aw_watcher_agent.py [275:48 - 284:10]
Clone found (python)
- hooks/dirty_diff.py [95:5 - 106:4] (12 lines, 59 tokens)
hooks/knowledge_inject.py [84:5 - 95:4]
Clone found (python)
- hooks/dirty_diff.py [111:9 - 119:36] (9 lines, 54 tokens)
hooks/knowledge_inject.py [43:9 - 51:36]
Clone found (python)
- hooks/dirty_diff.py [456:22 - 463:7] (8 lines, 55 tokens)
hooks/knowledge_inject.py [95:29 - 102:7]
Clone found (python)
- hooks/registry.py [127:9 - 133:91] (7 lines, 64 tokens)
hooks/registry.py [643:5 - 649:87]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [63:9 - 72:34] (10 lines, 56 tokens)
hooks/tests/test_agents_md_inject.py [132:9 - 141:34]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [157:74 - 172:35] (16 lines, 68 tokens)
hooks/tests/test_agents_md_inject.py [192:46 - 207:35]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [157:74 - 172:40] (16 lines, 71 tokens)
hooks/tests/test_agents_md_inject.py [240:55 - 255:40]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [157:74 - 171:68] (15 lines, 62 tokens)
hooks/tests/test_agents_md_inject.py [264:54 - 279:58]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [157:74 - 172:40] (16 lines, 71 tokens)
hooks/tests/test_agents_md_inject.py [290:48 - 305:40]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [247:21 - 256:19] (10 lines, 50 tokens)
hooks/tests/test_agents_md_inject.py [297:21 - 306:19]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [336:68 - 351:35] (16 lines, 71 tokens)
hooks/tests/test_agents_md_inject.py [373:44 - 388:35]
Clone found (python)
- hooks/tests/test_agents_md_inject.py [508:57 - 516:8] (9 lines, 54 tokens)
hooks/tests/test_agents_md_inject.py [522:38 - 531:8]
Clone found (python)
- hooks/tests/test_anomaly_watchdog.py [320:60 - 327:24] (8 lines, 56 tokens)
hooks/tests/test_anomaly_watchdog.py [347:61 - 354:24]
Clone found (python)
- hooks/tests/test_confirm.py [421:48 - 431:13] (11 lines, 57 tokens)
hooks/tests/test_confirm.py [443:55 - 453:13]
Clone found (python)
- hooks/tests/test_cost_awareness.py [363:78 - 377:29] (15 lines, 56 tokens)
hooks/tests/test_cost_awareness.py [395:76 - 409:29]
Clone found (python)
- hooks/tests/test_cost_awareness.py [484:72 - 501:46] (18 lines, 62 tokens)
hooks/tests/test_cost_awareness.py [507:82 - 524:46]
Clone found (python)
- hooks/tests/test_server_confirm.py [254:35 - 266:34] (13 lines, 83 tokens)
hooks/tests/test_server_elicit.py [265:35 - 277:34]
Clone found (python)
- hooks/tests/test_time_awareness.py [128:36 - 134:21] (7 lines, 52 tokens)
hooks/tests/test_time_awareness.py [146:32 - 152:21]
Clone found (python)
- hooks/tests/test_time_awareness.py [128:36 - 134:21] (7 lines, 52 tokens)
hooks/tests/test_time_awareness.py [160:31 - 166:21]
Clone found (python)
- hooks/tests/test_time_awareness.py [362:88 - 368:64] (7 lines, 56 tokens)
hooks/tests/test_time_awareness.py [556:89 - 562:64]
Clone found (python)
- hooks/tests/test_time_awareness.py [490:28 - 496:76] (7 lines, 52 tokens)
hooks/tests/test_time_awareness.py [525:71 - 531:12]
Clone found (python)
- hooks/tests/test_tool_target_instructions.py [132:43 - 140:62] (9 lines, 55 tokens)
hooks/tests/test_tool_target_instructions.py [268:36 - 278:38]
Clone found (python)
- hooks/tests/test_tool_target_instructions.py [134:31 - 141:25] (8 lines, 53 tokens)
hooks/tests/test_tool_target_instructions.py [157:32 - 164:25]
Clone found (python)
- hooks/tests/test_workspace_agents.py [296:9 - 316:58] (21 lines, 124 tokens)
hooks/tests/test_workspace_agents.py [341:9 - 361:58]
Clone found (python)
- hooks/tests/test_workspace_agents.py [733:13 - 745:44] (13 lines, 57 tokens)
hooks/tests/test_workspace_agents.py [999:13 - 1011:44]
Clone found (python)
- init.py [361:5 - 366:6] (6 lines, 52 tokens)
model_attestation.py [310:5 - 315:6]
Clone found (python)
- knowledge.py [275:5 - 282:14] (8 lines, 63 tokens)
knowledge.py [316:5 - 323:14]
Clone found (python)
- llm/__init__.py [406:21 - 412:32] (7 lines, 67 tokens)
llm/__init__.py [900:21 - 906:32]
Clone found (python)
- llm/__init__.py [597:19 - 605:5] (9 lines, 56 tokens)
llm/__init__.py [770:12 - 778:5]
Clone found (python)
- llm/__init__.py [628:9 - 654:17] (27 lines, 102 tokens)
llm/__init__.py [801:69 - 827:17]
Clone found (python)
- llm/llm_anthropic.py [219:29 - 236:68] (18 lines, 77 tokens)
llm/llm_openai.py [362:30 - 379:68]
Clone found (python)
- llm/llm_anthropic.py [587:5 - 604:21] (18 lines, 61 tokens)
llm/llm_openai.py [930:5 - 948:21]
Clone found (python)
- llm/llm_anthropic.py [733:13 - 751:30] (19 lines, 63 tokens)
llm/llm_openai.py [1145:45 - 1163:30]
Clone found (python)
- llm/llm_anthropic.py [949:9 - 956:32] (8 lines, 56 tokens)
llm/llm_anthropic.py [1094:11 - 1101:32]
Clone found (python)
- llm/llm_anthropic.py [950:5 - 956:32] (7 lines, 55 tokens)
llm/llm_anthropic.py [1127:5 - 1133:32]
Clone found (python)
- llm/llm_anthropic.py [973:5 - 1008:6] (36 lines, 161 tokens)
llm/llm_anthropic.py [1155:5 - 1190:6]
Clone found (python)
- llm/llm_anthropic.py [1095:28 - 1104:51] (10 lines, 77 tokens)
llm/llm_anthropic.py [1127:28 - 1136:51]
Clone found (python)
- llm/llm_grok_subscription.py [236:63 - 250:14] (15 lines, 51 tokens)
llm/llm_openai_subscription.py [424:50 - 437:27]
Clone found (python)
- llm/llm_grok_subscription.py [280:36 - 286:75] (7 lines, 53 tokens)
llm/llm_openrouter_subscription.py [66:74 - 72:75]
Clone found (python)
- llm/llm_mock.py [49:9 - 57:5] (9 lines, 55 tokens)
llm/llm_mock.py [62:11 - 70:5]
Clone found (python)
- llm/llm_openai.py [1245:9 - 1253:5] (9 lines, 52 tokens)
llm/llm_openai.py [1921:11 - 1929:5]
Clone found (python)
- llm/llm_openai.py [1246:5 - 1253:5] (8 lines, 51 tokens)
llm/llm_openai.py [1950:5 - 1957:5]
Clone found (python)
- llm/llm_openai.py [1353:5 - 1370:82] (18 lines, 111 tokens)
llm/llm_openai.py [1988:5 - 2004:82]
Clone found (python)
- llm/llm_openai.py [1922:15 - 1930:18] (9 lines, 63 tokens)
llm/llm_openai.py [1950:15 - 1958:18]
Clone found (python)
- llm/llm_openai.py [2791:48 - 2798:52] (8 lines, 50 tokens)
llm/llm_openai.py [2804:32 - 2811:52]
Clone found (python)
- llm/llm_openai_models.py [384:20 - 393:7] (10 lines, 51 tokens)
llm/llm_openai_models.py [403:14 - 412:7]
Clone found (python)
- llm/llm_openai_models.py [384:20 - 393:7] (10 lines, 51 tokens)
llm/llm_openai_models.py [414:20 - 423:7]
Clone found (python)
- llm/llm_openai_models.py [425:24 - 434:7] (10 lines, 51 tokens)
llm/llm_openai_models.py [436:20 - 445:7]
Clone found (python)
- llm/llm_openai_models.py [425:24 - 434:7] (10 lines, 51 tokens)
llm/llm_openai_models.py [458:14 - 467:7]
Clone found (python)
- llm/models/data.py [192:26 - 205:15] (14 lines, 58 tokens)
llm/models/data.py [207:26 - 220:15]
Clone found (python)
- llm/models/data.py [277:35 - 287:11] (11 lines, 55 tokens)
llm/models/data.py [288:33 - 298:11]
Clone found (python)
- llm/openai_responses.py [335:74 - 346:59] (12 lines, 51 tokens)
llm/openai_responses.py [412:67 - 423:59]
Clone found (python)
- llm/openai_responses.py [551:29 - 556:59] (6 lines, 54 tokens)
llm/openai_responses.py [627:35 - 632:59]
Clone found (python)
- llm/validate.py [299:9 - 309:4] (11 lines, 55 tokens)
llm/validate.py [367:9 - 377:4]
Clone found (python)
- llm/validate.py [361:48 - 377:4] (17 lines, 78 tokens)
llm/validate.py [380:45 - 396:4]
Clone found (python)
- llm/validate.py [361:48 - 374:64] (14 lines, 77 tokens)
llm/validate.py [399:37 - 412:64]
Clone found (python)
- logmanager/manager.py [717:13 - 722:18] (6 lines, 60 tokens)
logmanager/manager.py [730:13 - 735:18]
Clone found (python)
- plugins/__init__.py [481:5 - 506:4] (26 lines, 110 tokens)
util/install.py [14:5 - 39:4]
Clone found (python)
- prompt_queue.py [176:40 - 186:68] (11 lines, 58 tokens)
prompt_queue.py [233:43 - 243:68]
Clone found (python)
- prompts/__init__.py [457:21 - 469:39] (13 lines, 91 tokens)
prompts/__init__.py [578:15 - 590:39]
Clone found (python)
- prompts/__init__.py [473:5 - 490:6] (18 lines, 73 tokens)
prompts/__init__.py [655:5 - 672:6]
Clone found (python)
- server/api_v2.py [1210:84 - 1228:4] (19 lines, 69 tokens)
server/api_v2.py [1262:5 - 1280:4]
Clone found (python)
- server/api_v2.py [1230:5 - 1246:15] (17 lines, 118 tokens)
server/api_v2.py [1301:5 - 1317:15]
Clone found (python)
- server/api_v2.py [1972:5 - 1979:76] (8 lines, 61 tokens)
server/api_v2.py [3000:5 - 3007:76]
Clone found (python)
- server/api_v2.py [2009:5 - 2029:30] (21 lines, 95 tokens)
server/api_v2.py [2627:5 - 2647:30]
Clone found (python)
- server/api_v2.py [2017:31 - 2029:30] (13 lines, 54 tokens)
server/api_v2.py [3064:33 - 3076:30]
Clone found (python)
- server/api_v2.py [2189:118 - 2204:11] (16 lines, 54 tokens)
server/api_v2.py [2345:97 - 2360:11]
Clone found (python)
- server/api_v2.py [2249:5 - 2267:40] (19 lines, 82 tokens)
server/api_v2.py [2374:5 - 2393:30]
Clone found (python)
- server/api_v2.py [2267:86 - 2286:14] (20 lines, 80 tokens)
server/api_v2.py [2393:78 - 2413:14]
Clone found (python)
- server/api_v2.py [2494:5 - 2505:10] (12 lines, 61 tokens)
server/api_v2.py [2520:9 - 2533:14]
Clone found (python)
- server/api_v2.py [3240:58 - 3253:38] (14 lines, 94 tokens)
server/api_v2.py [3276:51 - 3289:38]
Clone found (python)
- server/api_v2.py [3244:5 - 3253:38] (10 lines, 73 tokens)
server/api_v2.py [3913:5 - 3922:38]
Clone found (python)
- server/api_v2.py [3281:74 - 3292:15] (12 lines, 54 tokens)
server/api_v2.py [3914:74 - 3925:15]
Clone found (python)
- server/api_v2.py [3395:53 - 3400:76] (6 lines, 51 tokens)
server/api_v2.py [3496:52 - 3501:76]
Clone found (python)
- server/api_v2.py [3395:53 - 3402:40] (8 lines, 59 tokens)
server/api_v2.py [3780:64 - 3787:40]
Clone found (python)
- server/api_v2.py [3395:53 - 3400:76] (6 lines, 51 tokens)
server/api_v2.py [3848:50 - 3853:76]
Clone found (python)
- server/api_v2.py [3395:53 - 3400:76] (6 lines, 51 tokens)
server/api_v2.py [3953:54 - 3958:76]
Clone found (python)
- server/api_v2.py [3395:53 - 3400:76] (6 lines, 51 tokens)
server/api_v2.py [4002:54 - 4007:76]
Clone found (python)
- server/api_v2.py [3396:14 - 3403:12] (8 lines, 57 tokens)
server/api_v2.py [3781:14 - 3788:7]
Clone found (python)
- server/api_v2_agents.py [59:5 - 65:15] (7 lines, 52 tokens)
server/tasks_api.py [746:5 - 752:7]
Clone found (python)
- server/api_v2_sessions.py [358:96 - 370:81] (13 lines, 74 tokens)
server/api_v2_sessions.py [1261:60 - 1273:81]
Clone found (python)
- server/api_v2_sessions.py [374:5 - 385:15] (12 lines, 51 tokens)
server/api_v2_sessions.py [711:9 - 722:19]
Clone found (python)
- server/api_v2_sessions.py [707:9 - 722:19] (16 lines, 79 tokens)
server/api_v2_sessions.py [1271:5 - 1286:15]
Clone found (python)
- server/api_v2_sessions.py [708:27 - 722:19] (15 lines, 67 tokens)
server/api_v2_sessions.py [950:19 - 964:15]
Clone found (python)
- server/api_v2_sessions.py [1032:13 - 1045:14] (14 lines, 53 tokens)
server/session_step.py [1234:13 - 1247:14]
Clone found (python)
- server/session_models.py [636:25 - 648:46] (13 lines, 76 tokens)
server/session_models.py [698:29 - 710:42]
Clone found (python)
- server/session_models.py [665:21 - 683:8] (19 lines, 70 tokens)
server/session_models.py [725:17 - 743:8]
Clone found (python)
- server/session_step.py [724:5 - 731:69] (8 lines, 52 tokens)
server/session_step.py [1802:5 - 1809:69]
Clone found (python)
- server/tasks_api.py [505:73 - 514:64] (10 lines, 53 tokens)
server/tasks_api.py [518:51 - 527:64]
Clone found (python)
- server/workspace_api.py [55:68 - 62:6] (8 lines, 63 tokens)
server/workspace_api.py [76:5 - 83:6]
Clone found (python)
- server/workspace_api.py [349:74 - 358:26] (10 lines, 73 tokens)
server/workspace_api.py [622:77 - 631:26]
Clone found (python)
- server/workspace_api.py [349:74 - 358:26] (10 lines, 73 tokens)
server/workspace_api.py [689:9 - 698:26]
Clone found (python)
- server/workspace_api.py [573:9 - 593:67] (21 lines, 149 tokens)
server/workspace_api.py [661:9 - 681:67]
Clone found (python)
- telemetry.py [66:24 - 88:8] (23 lines, 135 tokens)
util/_telemetry.py [323:34 - 345:8]
Clone found (python)
- telemetry.py [119:9 - 128:45] (10 lines, 60 tokens)
telemetry.py [597:5 - 606:41]
Clone found (python)
- tools/_browser_playwright.py [945:9 - 960:8] (16 lines, 89 tokens)
tools/browser.py [1132:9 - 1147:8]
Clone found (python)
- tools/_browser_playwright.py [962:60 - 974:52] (13 lines, 95 tokens)
tools/browser.py [1046:68 - 1058:52]
Clone found (python)
- tools/_browser_playwright.py [1096:69 - 1109:27] (14 lines, 77 tokens)
tools/browser.py [1230:44 - 1243:27]
Clone found (python)
- tools/_browser_playwright.py [1284:1 - 1299:43] (16 lines, 61 tokens)
tools/browser.py [1357:1 - 1372:43]
Clone found (python)
- tools/autocompact/engine.py [545:13 - 554:18] (10 lines, 57 tokens)
tools/autocompact/engine.py [597:17 - 606:22]
Clone found (python)
- tools/autocompact/resume.py [1042:9 - 1048:64] (7 lines, 57 tokens)
tools/autocompact/resume.py [1252:13 - 1258:68]
Clone found (python)
- tools/autocompact/resume.py [1058:5 - 1072:25] (15 lines, 87 tokens)
tools/autocompact/resume.py [1282:9 - 1297:29]
Clone found (python)
- tools/clarify.py [45:5 - 60:31] (16 lines, 83 tokens)
tools/complete.py [333:5 - 348:31]
Clone found (python)
- tools/complete.py [590:5 - 598:15] (9 lines, 50 tokens)
tools/complete.py [664:5 - 672:15]
Clone found (python)
- tools/computer.py [1484:13 - 1501:14] (18 lines, 71 tokens)
tools/computer.py [1873:13 - 1890:14]
Clone found (python)
- tools/computer.py [1630:13 - 1649:37] (20 lines, 93 tokens)
tools/computer_transport.py [262:13 - 281:37]
Clone found (python)
- tools/computer.py [1662:53 - 1673:30] (12 lines, 52 tokens)
tools/computer.py [1689:49 - 1700:30]
Clone found (python)
- tools/computer.py [1749:9 - 1758:19] (10 lines, 50 tokens)
tools/computer.py [1843:9 - 1852:19]
Clone found (python)
- tools/convert.py [524:19 - 539:35] (16 lines, 70 tokens)
tools/convert.py [954:18 - 969:35]
Clone found (python)
- tools/convert.py [525:9 - 539:35] (15 lines, 69 tokens)
tools/convert.py [784:34 - 798:35]
Clone found (python)
- tools/convert.py [527:5 - 539:35] (13 lines, 68 tokens)
tools/convert.py [680:5 - 692:35]
Clone found (python)
- tools/convert.py [685:9 - 695:18] (11 lines, 61 tokens)
tools/convert.py [791:9 - 801:18]
Clone found (python)
- tools/patch.py [327:5 - 339:23] (13 lines, 55 tokens)
tools/save.py [187:5 - 199:23]
Clone found (python)
- tools/python_kernel.py [1039:36 - 1046:53] (8 lines, 57 tokens)
tools/python_kernel.py [1069:24 - 1076:53]
Clone found (python)
- tools/save.py [191:5 - 204:34] (14 lines, 56 tokens)
tools/save.py [322:5 - 335:34]
Clone found (python)
- tools/shell.py [477:5 - 488:58] (12 lines, 71 tokens)
tools/shell_background.py [85:5 - 96:58]
Clone found (python)
- tools/shell.py [598:71 - 619:4] (22 lines, 95 tokens)
tools/subagent/execution.py [1128:75 - 1149:4]
Clone found (python)
- tools/shell.py [1417:29 - 1431:11] (15 lines, 76 tokens)
tools/shell.py [1849:26 - 1863:11]
Clone found (python)
- tools/shell.py [1555:21 - 1564:40] (10 lines, 50 tokens)
tools/shell.py [1640:29 - 1649:48]
Clone found (python)
- tools/shell.py [1555:21 - 1574:26] (20 lines, 94 tokens)
tools/shell.py [1670:25 - 1689:30]
Clone found (python)
- tools/shell.py [1555:21 - 1574:26] (20 lines, 94 tokens)
tools/shell.py [1726:25 - 1745:30]
Clone found (python)
- tools/shell.py [1556:25 - 1576:39] (21 lines, 103 tokens)
tools/shell.py [1699:25 - 1719:39]
Clone found (python)
- tools/shell.py [1563:69 - 1577:27] (15 lines, 64 tokens)
tools/shell.py [1706:69 - 1720:31]
Clone found (python)
- tools/shell.py [1669:64 - 1689:30] (21 lines, 95 tokens)
tools/shell.py [1773:39 - 1793:26]
Clone found (python)
- tools/shell.py [1678:73 - 1691:25] (14 lines, 53 tokens)
tools/shell.py [1734:73 - 1747:25]
Clone found (python)
- tools/shell.py [2782:5 - 2792:31] (11 lines, 55 tokens)
tools/shell.py [2833:5 - 2843:31]
Clone found (python)
- tools/shell_validation.py [259:9 - 267:21] (9 lines, 53 tokens)
tools/shell_validation.py [626:9 - 634:21]
Clone found (python)
- tools/subagent/batch.py [494:33 - 507:5] (14 lines, 90 tokens)
tools/subagent/batch.py [1101:25 - 1114:5]
Clone found (python)
- tools/subagent/batch.py [531:53 - 541:43] (11 lines, 118 tokens)
tools/subagent/batch.py [665:54 - 675:43]
Clone found (python)
- tools/subagent/batch.py [536:27 - 541:81] (6 lines, 72 tokens)
tools/subagent/batch.py [1144:81 - 1149:81]
Clone found (python)
- tools/subagent/batch.py [809:13 - 824:14] (16 lines, 59 tokens)
tools/subagent/batch.py [934:13 - 949:14]
Clone found (python)
- tools/watch.py [448:32 - 453:53] (6 lines, 56 tokens)
tools/watch.py [566:73 - 571:53]
Clone found (python)
- tui/app.py [693:69 - 699:21] (7 lines, 54 tokens)
tui/app.py [743:73 - 749:21]
Clone found (python)
- tui/app.py [713:41 - 720:15] (8 lines, 83 tokens)
tui/app.py [727:38 - 734:15]
Clone found (python)
- util/_sound_sounddevice.py [61:46 - 72:56] (12 lines, 73 tokens)
util/_sound_sounddevice.py [102:46 - 113:56]
Clone found (python)
- util/gh.py [542:28 - 551:23] (10 lines, 51 tokens)
util/gh.py [1350:13 - 1359:23]
Clone found (python)
- util/gh.py [1334:17 - 1348:7] (15 lines, 55 tokens)
util/gh.py [1438:14 - 1452:7]
Clone found (python)
- util/redact.py [28:9 - 41:9] (14 lines, 73 tokens)
util/redact.py [97:9 - 105:9]
Clone found (python)
- util/redact.py [29:9 - 39:16] (11 lines, 60 tokens)
util/redact.py [56:9 - 66:16]
Clone found (python)
- util/review.py [806:9 - 818:65] (13 lines, 96 tokens)
util/review.py [1160:9 - 1172:65]
Clone found (python)
- util/review.py [820:73 - 842:10] (23 lines, 121 tokens)
util/review.py [1175:61 - 1197:10]
Clone found (python)
- util/review.py [850:9 - 855:67] (6 lines, 66 tokens)
util/review.py [1126:9 - 1131:67]
Clone found (python)
- util/review.py [872:36 - 893:8] (22 lines, 73 tokens)
util/review.py [1209:42 - 1230:8]
Clone found (python)
- util/tool_format.py [139:79 - 153:10] (15 lines, 54 tokens)
util/tool_format.py [172:65 - 186:10]
Clone found (python)
- workspace_snapshot.py [435:5 - 449:26] (15 lines, 88 tokens)
workspace_snapshot.py [513:5 - 527:26]
Clone found (python)
- analyze_compression.py [55:82 - 67:32] (13 lines, 63 tokens)
analyze_compression.py [152:54 - 164:32]
Clone found (python)
- analyze_compression.py [116:9 - 127:34] (12 lines, 61 tokens)
analyze_compression.py [220:9 - 231:34]
Clone found (python)
- generate_sounds.py [91:16 - 97:69] (7 lines, 53 tokens)
generate_sounds.py [165:18 - 171:69]
┌────────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐
│ Format │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ bash │ 11 │ 828 │ 3454 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ css │ 1 │ 174 │ 1100 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ javascript │ 1 │ 621 │ 3369 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ lua │ 1 │ 18 │ 70 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ markdown │ 8 │ 2011 │ 16292 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ markup │ 2 │ 487 │ 3265 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ python │ 526 │ 227133 │ 1109744 │ 210 │ 2739 (1.21%) │ 14716 (1.33%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ rest │ 54 │ 14259 │ 123052 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ text │ 2 │ 26 │ 267 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ txt │ 1 │ 25 │ 247 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ yaml │ 3 │ 257 │ 1647 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ Total: │ 610 │ 245839 │ 1262507 │ 210 │ 2739 (1.11%) │ 14716 (1.17%) │
└────────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘
Found 210 clones.
time: 574.478ms
make[3]: Leaving directory '/home/runner/work/gptme/gptme'
make[2]: Leaving directory '/home/runner/work/gptme/gptme'
The metrics above show:
Project Overview: Basic stats about the codebase size and complexity
Complex Functions: Functions rated D+ (high complexity, should be refactored)
Large Files: Files over 300 SLOC (should be split into smaller modules)
Duplicated Files: Using jscpd to find duplicated code
We should aim to:
Keep average complexity below 4.0
Have no E-rated functions (extremely complex)
Have few D-rated functions (very complex)
Keep files under 300 SLOC where possible