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
211315 | anthropic.lib.vertex._beta
212452 | anthropic.lib.vertex._client
212601 | anthropic.lib.vertex
232991 | anthropic.types
372212 | anthropic.types.beta
372243 | anthropic.types.beta.beta_message
374548 | anthropic.lib.middleware._fallbacks
374670 | anthropic.lib.middleware
942110 | anthropic
942135 | anthropic._types
real 0m1.835s
user 0m1.382s
sys 0m0.289s
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 ± σ): 253.9 ms ± 1.3 ms [User: 220.9 ms, System: 32.8 ms]
Range (min … max): 251.9 ms … 257.0 ms 10 runs
Benchmark 2: gptme --help
Time (mean ± σ): 1.489 s ± 0.023 s [User: 1.293 s, System: 0.195 s]
Range (min … max): 1.458 s … 1.539 s 10 runs
Benchmark 3: full start/exit cycle
Time (mean ± σ): 1.903 s ± 0.014 s [User: 1.578 s, System: 0.682 s]
Range (min … max): 1.885 s … 1.936 s 10 runs
Summary
import gptme.cli.main ran
5.87 ± 0.10 times faster than gptme --help
7.50 ± 0.07 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 368 596 2109
gptme/util/gh.py 244 303 1219
gptme/llm/llm_anthropic.py 254 372 1099
gptme/tools/base.py 210 332 1021
gptme/llm/__init__.py 178 313 920
gptme/util/context.py 169 267 790
gptme/chat.py 125 269 785
gptme/tools/__init__.py 174 211 711
gptme/llm/llm_openai_subscription.py 142 159 616
gptme/util/capabilities_export.py 60 71 560
gptme/message.py 128 251 505
gptme/lessons/installer.py 146 165 496
gptme/llm/openai_responses.py 94 49 478
gptme/codeblock.py 62 301 476
gptme/telemetry.py 102 72 454
gptme/lessons/index.py 126 167 452
gptme/util/_telemetry.py 111 157 440
gptme/lessons/auto_include.py 108 211 436
gptme/util/cost_display.py 81 80 406
gptme/util/prompt.py 98 142 406
gptme/llm/llm_openai_models.py 6 61 401
gptme/workspace_snapshot.py 53 64 386
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/llm/local_discovery.py 64 35 351
gptme/sandbox.py 95 208 350
gptme/util/safety.py 57 63 330
gptme/checkpoint.py 79 49 321
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 106 256
gptme/util/auto_naming.py 68 78 236
gptme/util/review.py 70 129 231
gptme/lessons/parser.py 77 124 229
gptme/hooks/__init__.py 22 51 228
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/sound.py 65 72 200
gptme/util/tokens.py 54 76 175
gptme/llm/llm_gptme.py 70 125 174
gptme/circuit_breaker.py 49 72 171
gptme/util/git_worktree.py 40 67 169
gptme/util/tool_format.py 48 76 169
gptme/util/cost_tracker.py 56 98 164
gptme/llm/_degeneration.py 41 74 162
gptme/llm/utils.py 56 92 159
gptme/dirs.py 72 99 157
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/util/__init__.py 34 29 157
gptme/util/clipboard.py 22 12 147
gptme/lessons/skill_commands.py 47 58 144
gptme/util/replay.py 42 49 129
gptme/k_best.py 34 40 125
gptme/llm/request_limits.py 22 16 125
gptme/prompt_queue.py 41 22 124
gptme/util/ask_execute.py 26 44 116
gptme/llm/llm_openrouter_subscription.py 35 43 113
gptme/util/export.py 26 29 110
gptme/util/master_context.py 37 57 108
gptme/util/interrupt.py 46 38 107
gptme/lessons/matcher.py 35 47 103
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/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/generate_name.py 5 6 69
gptme/util/_sound_cmd.py 22 18 68
gptme/util/context_measurement.py 13 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/content.py 18 24 30
gptme/util/install.py 13 25 30
gptme/util/git_cmd.py 12 30 29
gptme/util/useredit.py 11 13 26
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: 6447 8959 27606
-----------------------------------------------------------------------------------------------
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 368 596 2109
gptme/llm/llm_anthropic.py 254 372 1099
gptme/llm/__init__.py 178 313 920
gptme/llm/llm_openai_subscription.py 142 159 616
gptme/llm/openai_responses.py 94 49 478
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/llm_gptme.py 70 125 174
gptme/llm/_degeneration.py 41 74 162
gptme/llm/utils.py 56 92 159
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/llm/request_limits.py 22 16 125
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: 1581 2260 7846
-----------------------------------------------------------------------------------------------
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 733 2893
gptme/tools/computer.py 437 864 1659
gptme/hooks/workspace_agents.py 237 153 1244
gptme/tools/base.py 210 332 1021
gptme/tools/watch.py 138 185 903
gptme/tools/shell_background.py 135 142 800
gptme/tools/mcp_adapter.py 247 272 799
gptme/tools/convert.py 137 85 793
gptme/tools/chats.py 138 179 719
gptme/tools/__init__.py 174 211 711
gptme/tools/browser.py 280 454 696
gptme/tools/_browser_playwright.py 238 298 692
gptme/tools/shell_validation.py 152 352 619
gptme/tools/gh.py 126 127 582
gptme/tools/complete.py 103 170 572
gptme/tools/computer_transport.py 151 125 567
gptme/tools/python.py 119 166 515
gptme/hooks/registry.py 102 87 503
gptme/tools/hashline_edit.py 126 383 502
gptme/tools/read.py 66 102 450
gptme/tools/lessons.py 121 135 445
gptme/tools/tmux.py 98 170 398
gptme/tools/restart.py 97 140 378
gptme/hooks/anomaly_watchdog.py 137 207 370
gptme/hooks/cost_awareness.py 84 81 337
gptme/tools/mcp.py 103 103 337
gptme/tools/shell_flags.py 60 257 315
gptme/tools/_browser_thread.py 61 77 303
gptme/plugins/__init__.py 101 133 295
gptme/tools/save.py 69 74 295
gptme/tools/patch.py 64 103 286
gptme/hooks/agents_md_inject.py 64 121 281
gptme/plugins/security.py 47 76 269
gptme/tools/patch_many.py 57 62 256
gptme/tools/rag.py 89 131 246
gptme/tools/todo.py 96 106 233
gptme/tools/precommit.py 76 96 230
gptme/hooks/__init__.py 22 51 228
gptme/hooks/aw_watcher_agent.py 49 21 217
gptme/hooks/elicitation.py 90 132 213
gptme/hooks/auto_snapshots.py 51 66 201
gptme/hooks/guardrails.py 66 84 199
gptme/hooks/script.py 21 8 189
gptme/tools/morph.py 43 54 188
gptme/tools/pruner.py 44 0 188
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/hooks/types.py 96 136 163
gptme/hooks/cli_confirm.py 52 59 156
gptme/hooks/token_awareness.py 47 46 146
gptme/tools/form.py 42 64 145
gptme/hooks/tool_target_instructions.py 37 47 136
gptme/tools/elicit.py 40 121 135
gptme/hooks/injection_screening.py 31 34 130
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/plugins/registry.py 40 41 119
gptme/hooks/server_elicit.py 52 56 113
gptme/tools/choice.py 34 41 110
gptme/tools/computer_semantic.py 61 129 110
gptme/tools/vent.py 40 65 102
gptme/hooks/active_context.py 25 23 100
gptme/tools/_computer_gate.py 33 61 100
gptme/tools/screenshot.py 30 45 100
gptme/tools/vision.py 35 36 99
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/memory.py 34 40 88
gptme/tools/_browser_lynx.py 11 8 84
gptme/tools/autocommit.py 38 58 81
gptme/tools/progress.py 24 53 73
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/tools/_browser_format.py 3 5 3
------------------------------------------------------------------------------------------
SUM: 7052 10001 28375
------------------------------------------------------------------------------------------
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 557 508 3345
gptme/server/session_step.py 194 438 1290
gptme/server/api_v2_sessions.py 132 199 982
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 493
gptme/server/workspace_api.py 100 110 486
gptme/server/external_sessions.py 59 92 372
gptme/server/preview_proxy_api.py 86 150 306
gptme/server/cli.py 56 105 305
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 214
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: 2628 2989 12652
-------------------------------------------------------------------------------------------
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 6185
tests/test_server_v2.py 1030 401 4589
tests/test_llm_openai.py 946 568 3778
tests/test_auto_compact.py 1042 569 3591
tests/test_tools_subagent.py 859 443 2849
tests/test_tui.py 615 304 2782
tests/test_server_v2_sessions.py 367 269 2468
tests/test_doctor.py 540 210 2441
tests/test_config.py 558 595 2231
tests/test_util_review.py 492 342 2090
tests/test_tools_shell.py 562 536 1923
tests/test_chat.py 508 288 1774
tests/test_cli.py 459 186 1698
tests/test_init.py 258 147 1597
tests/test_acp_agent.py 410 197 1490
tests/test_util_cli.py 396 238 1461
tests/test_eval_behavioral.py 867 967 1357
tests/test_util_cli_review_watch.py 317 189 1283
tests/test_tools_computer.py 438 269 1258
tests/test_tools_shell_validation.py 367 251 1226
tests/test_util_gh.py 263 176 1226
tests/test_server.py 301 206 1147
tests/test_llm_utils.py 313 142 1091
tests/test_memory_store.py 168 67 1087
tests/test_llm_anthropic.py 252 87 1078
tests/test_tools_base.py 340 114 1054
tests/test_tools_browser.py 316 76 1029
tests/test_tools_complete.py 218 253 1017
tests/test_cmd_service.py 219 194 981
tests/test_eval.py 184 107 976
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_codeblock.py 432 934 965
tests/test_computer_audit.py 264 183 955
tests/test_logmanager.py 260 180 941
tests/test_eval_leaderboard.py 126 104 883
tests/test_tools_convert.py 265 117 864
tests/test_knowledge.py 323 71 842
tests/test_tasks_api.py 185 69 831
tests/test_mcp_adapter.py 218 109 830
tests/test_eval_computer_suite.py 328 149 819
tests/test_util_gh_mocked.py 155 121 814
tests/test_prompt_templates.py 260 193 812
tests/test_sandbox.py 195 105 801
tests/test_tools_gh.py 157 94 784
tests/test_llm_openai_subscription.py 178 73 783
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_hashline_edit.py 213 445 725
tests/test_tools.py 240 120 722
tests/test_eventlog.py 163 94 717
tests/test_hooks_registry.py 253 97 716
tests/test_tools_restart.py 163 69 716
tests/test_computer_transport.py 267 91 713
tests/test_context.py 295 124 709
tests/test_agent.py 205 115 707
tests/test_llm_models_resolution.py 223 181 677
tests/test_tui_e2e.py 107 123 675
tests/test_relevance_pruning.py 266 134 672
tests/test_tools_lessons.py 145 53 664
tests/test_tools_watch.py 161 55 656
tests/test_json_output.py 114 84 643
tests/test_cli_status.py 246 138 642
tests/test_subagent_budget.py 166 144 626
tests/test_message.py 217 133 625
tests/test_prompts.py 179 110 611
tests/test_computer_doctor_cmd.py 88 58 607
tests/test_tools_read.py 193 70 598
tests/test_mcp_server.py 138 49 587
tests/test_server_panels.py 65 40 585
tests/conftest.py 165 287 580
tests/test_tools_precommit.py 109 86 578
tests/test_tools_request_tool_change.py 117 43 578
tests/test_server_session_models.py 198 157 576
tests/test_lessons_index.py 185 171 568
tests/test_served_model_metadata.py 116 23 566
tests/test_compaction_recall.py 130 14 559
tests/test_util_cli_mcp.py 130 68 552
tests/test_memory_index_policy.py 98 39 551
tests/test_context_scout.py 90 66 548
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_llm_models.py 169 117 542
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_gptme_provider.py 176 84 532
tests/test_dirs.py 127 89 531
tests/test_cc_memory.py 113 108 530
tests/test_server_subscription_connect.py 151 29 528
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_commands.py 161 73 514
tests/test_capabilities_export.py 65 27 506
tests/test_overflow_recovery.py 72 8 498
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_dataset.py 148 45 473
tests/test_skill_installer.py 138 154 459
tests/test_llm_auth.py 153 55 458
tests/test_llm_openai_sampling.py 99 12 456
tests/test_server_skill_events.py 55 4 446
tests/test_shell_foreground_promotion.py 102 22 442
tests/test_util_cli_providers.py 93 42 438
tests/test_compaction_native_anthropic.py 78 23 436
tests/test_tools_patch_many.py 114 108 432
tests/test_tools_browser_thread.py 113 51 425
tests/test_lessons_commands.py 157 82 422
tests/test_external_sessions.py 116 67 421
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_subagent_worktree_isolation.py 129 70 414
tests/test_provider_plugins.py 100 39 409
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_hybrid_lessons.py 100 58 395
tests/test_profiles.py 88 37 395
tests/test_telemetry.py 102 131 395
tests/test_computer_latency_cmd.py 93 42 393
tests/test_chats_external_search.py 87 63 389
tests/test_reduce.py 120 156 387
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_conversations.py 51 33 371
tests/test_github_ci_self_heal.py 71 6 371
tests/test_preview_proxy.py 98 46 370
tests/test_server_v2_agents.py 67 28 370
tests/test_workspace_api.py 103 19 369
tests/test_computer_record.py 119 30 364
tests/test_eval_behavioral_solutions.py 281 848 364
tests/test_cost_tracker.py 44 26 361
tests/test_replay.py 120 110 361
tests/test_context_providers.py 183 121 356
tests/test_lessons_emissions.py 56 2 353
tests/test_workspace_agents.py 154 59 353
tests/test_lessons_matcher.py 99 86 352
tests/test_computer_use_integration.py 140 143 349
tests/test_util_hooks.py 85 93 347
tests/test_complete.py 81 72 345
tests/test_skill_commands.py 113 49 342
tests/test_computer_semantic_fixtures.py 92 107 340
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_llm_grok_subscription.py 98 21 334
tests/test_tools_python.py 133 74 331
tests/test_tools_morph.py 93 69 323
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_agent_doctor.py 72 34 318
tests/test_util_cli_batch.py 64 12 316
tests/test_util_cli_skills.py 118 89 315
tests/test_skill_metrics.py 38 2 312
tests/test_tools_rag.py 95 36 310
tests/test_browser.py 140 71 308
tests/test_hooks_knowledge_inject.py 74 6 305
tests/test_anti_slop.py 98 58 300
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_eval_swebench.py 78 41 294
tests/test_plugins.py 110 85 292
tests/test_chats_stats.py 72 30 291
tests/test_llm_request_limits.py 54 2 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_computer_video_frames_cli.py 67 12 274
tests/test_tool_conditionals.py 89 1 274
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_autocommit.py 99 47 259
tests/test_terminal_startup_latency.py 77 32 257
tests/test_tool_use.py 60 66 255
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_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_llm_retry_policy.py 90 19 242
tests/test_local_discovery.py 63 18 242
tests/test_compaction_measurement.py 43 12 241
tests/test_computer_x11_integration.py 87 87 240
tests/test_cli_from_turn.py 65 18 239
tests/test_memory_migrate_knowledge.py 57 26 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_cli_stats.py 62 27 234
tests/test_tools_save.py 68 40 234
tests/test_onboard.py 56 49 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_shell_restart.py 62 45 225
tests/test_git_worktree.py 57 37 224
tests/test_server_fresh_bad_input.py 46 44 224
tests/test_server_tools_query.py 59 39 220
tests/test_tools_patch.py 119 227 220
tests/test_util_keyword_matching.py 75 46 218
tests/test_lessons_tool.py 62 34 216
tests/test_llm_retry_abort.py 85 62 216
tests/test_cli_resume.py 64 15 212
tests/test_config_trust.py 94 43 212
tests/test_checkpoint.py 88 20 211
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_autocompact_scoring.py 86 39 208
tests/test_server_v2_hooks.py 80 60 207
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_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_tools_todo.py 91 70 201
tests/test_tutorial.py 85 7 200
tests/test_vent.py 39 10 198
tests/test_shell_memory.py 43 7 196
tests/test_util_interrupt.py 68 44 196
tests/test_chats_clean.py 46 18 191
tests/test_computer_task.py 116 31 189
tests/test_openrouter_pricing_overrides.py 31 5 188
tests/test_file_selector_integration.py 53 24 186
tests/test_computer_screenshot_cli.py 53 12 183
tests/test_fold_mid_system.py 74 43 183
tests/test_native_tool_names.py 28 1 183
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_foreground_output_dedup.py 37 15 179
tests/test_tools_tmux.py 77 65 179
tests/test_dspy_basic.py 66 44 177
tests/test_execute_msg_hook_call_id.py 65 49 176
tests/test_browser_lynx.py 63 15 175
tests/test_subagent_shell_pgid_kill.py 40 31 174
tests/test_commands_llm.py 22 0 173
tests/test_workspace_memory_policy.py 36 3 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 11 170
tests/test_util_terminal.py 52 34 168
tests/test_memory_cli_metadata.py 16 8 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 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_backtrack.py 39 11 157
tests/test_custom_providers.py 56 103 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_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_util_tree.py 44 33 151
tests/test_shell_max_output_bytes.py 63 80 150
tests/test_tools_vision.py 38 34 150
tests/fixtures/provider_test_scaffold.py 76 68 148
tests/test_browser_state.py 75 31 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_subagent_concurrency.py 37 16 144
tests/test_dependabot_automerge.py 27 11 141
tests/test_server_elicitation.py 47 17 141
tests/test_dspy_integration.py 54 32 139
tests/test_tools_token_awareness.py 59 47 139
tests/test_computer_milestone_integration.py 61 59 138
tests/test_responses_stream_errors.py 23 1 137
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_computer_gate.py 76 40 133
tests/test_shell_parser.py 31 17 131
tests/test_agent_workspace_timeouts.py 41 22 129
tests/test_snapshot_list.py 45 7 129
tests/test_acp_adapter.py 42 33 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_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_tui_before_tool_execution.py 21 8 117
tests/test_util_clipboard_paste.py 27 14 117
tests/test_agent_service_timeouts.py 19 18 116
tests/thread_leak.py 34 55 115
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_computer_run_task_cli.py 40 14 109
tests/test_cost_awareness_delayed_warning.py 42 32 108
tests/test_tools_parameter_conformance.py 29 30 108
tests/test_build_changelog.py 24 13 107
tests/test_server_perf.py 23 38 107
tests/test_tools_chats.py 26 19 107
tests/test_setup_completions.py 32 6 106
tests/test_browser_session_persistence.py 62 33 103
tests/test_server_parent_death_watcher.py 25 38 103
tests/test_tools_choice.py 51 26 103
tests/test_util_output_storage.py 23 13 103
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_thread_leak.py 29 7 98
tests/test_server_auth.py 46 25 97
tests/test_agent_fork_command.py 18 5 95
tests/test_openrouter_cache_pricing.py 28 5 95
tests/test_session.py 40 21 95
tests/test_server_v2_sse.py 26 27 94
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_swebench_utils.py 27 2 89
tests/test_commands_rag.py 16 2 88
tests/test_server_cors.py 33 20 88
tests/test_browser_github_routing.py 27 0 86
tests/test_util.py 42 85 85
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_tool_description_cap.py 29 13 82
tests/test_eval_swebench_retrieval.py 25 4 81
tests/test_prompt_queue.py 33 15 80
tests/test_prompt_skills_summary.py 44 44 80
tests/test_eval_timeouts.py 32 33 77
tests/test_release_preflight.py 5 2 77
tests/test_xml_format.py 33 91 77
tests/test_markdown_validation.py 43 34 75
tests/test_shell_issue729.py 50 52 75
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_acp_e2e_smoke.py 23 27 71
tests/test_cli_sound.py 20 0 69
tests/test_server_audio_transcription.py 20 15 69
tests/test_hooks_form_autodetect.py 22 34 68
tests/test_docs_tool_formats_coverage.py 16 15 67
tests/test_tools_form.py 22 19 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_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_output_mixing_issue408.py 25 29 60
tests/test_eval_practical20.py 27 8 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_validate_release_package.py 14 1 58
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_computer_artifacts.py 14 3 54
tests/test_server_skills_api.py 13 1 54
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_util_export.py 25 17 52
tests/test_checkpoint_restart.py 10 1 51
tests/test_github_bot.py 12 1 51
tests/test_execute_msg_defensive.py 19 19 49
tests/test_logmanager_locking.py 14 4 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_util_generate_name.py 17 10 45
tests/test-integration.sh 22 36 43
tests/test_pdf_to_images.py 13 13 43
tests/test_server_cli_fallback.py 16 12 42
tests/test_cli_context_non_utf8.py 11 1 41
tests/test_check_rst_formatting.py 28 59 40
tests/test_shell_fd_leak.py 23 16 39
tests/test_utils.py 14 17 38
tests/test_logmanager_corrupt_lines.py 12 1 37
tests/test_message_command.py 14 13 36
tests/snapshots/tui_stream.svg 3 0 35
tests/test_tools_pruner.py 9 0 35
tests/test_cli_confirm_hook.py 24 20 34
tests/test_credentials.py 16 0 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_docker_lockfile.py 9 3 30
tests/test_project_config_list_types.py 6 1 30
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_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/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/retry_compat.py 8 22 6
----------------------------------------------------------------------------------------------------
SUM: 46886 30052 172963
----------------------------------------------------------------------------------------------------
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 132 943
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 1137 3697
------------------------------------------------------------------------------------------
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/mcp/server.py gptme/mcp/registry.py gptme/mcp/client.py gptme/mcp/__init__.py gptme/oauth/openrouter.py gptme/oauth/__init__.py gptme/credentials.py gptme/prompt_queue.py gptme/codeblock.py gptme/__version__.py gptme/plugins/registry.py gptme/plugins/security.py gptme/plugins/plugin.py gptme/plugins/__init__.py gptme/plugins/entrypoints.py gptme/executor.py gptme/info.py gptme/__main__.py gptme/message.py gptme/tools/patch_many.py gptme/tools/shell_flags.py gptme/tools/computer.py gptme/tools/_hashline_snapshot.py gptme/tools/_browser_playwright.py gptme/tools/morph.py gptme/tools/chats.py gptme/tools/browser.py gptme/tools/read.py gptme/tools/clarify.py gptme/tools/_browser_format.py gptme/tools/rag.py gptme/tools/shell_background.py gptme/tools/_browser_perplexity.py gptme/tools/_computer_gate.py gptme/tools/shell_memory.py gptme/tools/mcp.py gptme/tools/autocommit.py gptme/tools/hashline_edit.py gptme/tools/todo.py gptme/tools/elicit.py gptme/tools/pruner.py gptme/tools/shell.py gptme/tools/restart.py gptme/tools/vent.py gptme/tools/gh.py gptme/tools/convert.py gptme/tools/precommit.py gptme/tools/native_names.py gptme/tools/patch.py gptme/tools/mcp_adapter.py gptme/tools/save.py gptme/tools/_browser_thread.py gptme/tools/lessons.py gptme/tools/form.py gptme/tools/shell_validation.py gptme/tools/request_tool_change.py gptme/tools/_browser_lynx.py gptme/tools/screenshot.py gptme/tools/recall.py gptme/tools/complete.py gptme/tools/vision.py gptme/tools/memory.py gptme/tools/watch.py gptme/tools/computer_transport.py gptme/tools/progress.py gptme/tools/_url_safety.py gptme/tools/subagent/control.py gptme/tools/subagent/execution.py gptme/tools/subagent/persistence.py gptme/tools/subagent/types.py gptme/tools/subagent/hooks.py gptme/tools/subagent/batch.py gptme/tools/subagent/context.py gptme/tools/subagent/concurrency.py gptme/tools/subagent/__init__.py gptme/tools/subagent/api.py gptme/tools/choice.py gptme/tools/computer_semantic.py gptme/tools/__init__.py gptme/tools/tmux.py gptme/tools/base.py gptme/tools/autocompact/native_anthropic.py gptme/tools/autocompact/resume.py gptme/tools/autocompact/context_provider.py gptme/tools/autocompact/decision.py gptme/tools/autocompact/hook.py gptme/tools/autocompact/config.py gptme/tools/autocompact/recovery.py gptme/tools/autocompact/scoring.py gptme/tools/autocompact/engine.py gptme/tools/autocompact/__init__.py gptme/tools/autocompact/handlers.py gptme/tools/autocompact/events.py gptme/tools/_allowlist.py gptme/tools/python.py gptme/logmanager/conversations.py gptme/logmanager/manager.py gptme/logmanager/conv_checkpoints.py gptme/logmanager/eventlog.py gptme/logmanager/durability.py gptme/logmanager/__init__.py gptme/dataset/trajectory_to_env.py gptme/dataset/__init__.py gptme/telemetry.py gptme/attestation.py gptme/init.py gptme/server/api_v2_agents.py gptme/server/auth.py gptme/server/api_v2.py gptme/server/acp_session_runtime.py gptme/server/api_v2_common.py gptme/server/cli.py gptme/server/tasks_api.py gptme/server/__main__.py gptme/server/metrics.py gptme/server/preview_proxy_api.py gptme/server/workspace_api.py gptme/server/artifacts_api.py gptme/server/session_step.py gptme/server/session_models.py gptme/server/openapi_docs.py gptme/server/tools_api.py gptme/server/external_sessions.py gptme/server/tts_api.py gptme/server/api_v2_sessions.py gptme/server/app.py gptme/server/a2a_api.py gptme/server/token_file.py gptme/server/client.py gptme/server/constants.py gptme/server/panels_api.py gptme/server/__init__.py gptme/server/skills_api.py gptme/server/computer_api.py gptme/acp/__main__.py gptme/acp/adapter.py gptme/acp/agent.py gptme/acp/types.py gptme/acp/client.py gptme/acp/__init__.py gptme/eval/suites/practical7.py gptme/eval/suites/computer.py gptme/eval/suites/practical21.py gptme/eval/suites/basic.py gptme/eval/suites/practical31.py gptme/eval/suites/practical11.py gptme/eval/suites/practical32.py gptme/eval/suites/browser.py gptme/eval/suites/practical33.py gptme/eval/suites/practical8.py gptme/eval/suites/practical29.py gptme/eval/suites/subagent.py gptme/eval/suites/practical25.py gptme/eval/suites/practical24.py gptme/eval/suites/practical26.py gptme/eval/suites/practical27.py gptme/eval/suites/practical15.py gptme/eval/suites/practical20.py gptme/eval/suites/practical16.py gptme/eval/suites/practical14.py gptme/eval/suites/init_projects.py gptme/eval/suites/practical17.py gptme/eval/suites/practical12.py gptme/eval/suites/practical3.py gptme/eval/suites/practical30.py gptme/eval/suites/practical4.py gptme/eval/suites/practical6.py gptme/eval/suites/practical28.py gptme/eval/suites/practical9.py gptme/eval/suites/practical18.py gptme/eval/suites/practical5.py gptme/eval/suites/practical19.py gptme/eval/suites/constraint_satisfaction.py gptme/eval/suites/__init__.py gptme/eval/suites/practical23.py gptme/eval/suites/practical13.py gptme/eval/suites/practical2.py gptme/eval/suites/practical.py gptme/eval/suites/practical22.py gptme/eval/suites/behavioral/scope_discipline_bugfix.py gptme/eval/suites/behavioral/add_deprecation_warning.py gptme/eval/suites/behavioral/debug_data_pipeline.py gptme/eval/suites/behavioral/extract_function_refactor.py gptme/eval/suites/behavioral/add_docstrings.py gptme/eval/suites/behavioral/fix_data_mutation.py gptme/eval/suites/behavioral/fix_mutable_default.py gptme/eval/suites/behavioral/remove_dead_code.py gptme/eval/suites/behavioral/bounded_bugfix_with_decoys.py gptme/eval/suites/behavioral/add_logging.py gptme/eval/suites/behavioral/add_type_hints.py gptme/eval/suites/behavioral/use_existing_helper.py gptme/eval/suites/behavioral/stage_new_files.py gptme/eval/suites/behavioral/_common.py gptme/eval/suites/behavioral/retry_with_backoff.py gptme/eval/suites/behavioral/multi_file_rename.py gptme/eval/suites/behavioral/git_selective_commit.py gptme/eval/suites/behavioral/merge_conflict_resolution.py gptme/eval/suites/behavioral/test_driven_error_handling.py gptme/eval/suites/behavioral/noisy_worktree_fix.py gptme/eval/suites/behavioral/implement_lru_cache.py gptme/eval/suites/behavioral/implement_memoization.py gptme/eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py gptme/eval/suites/behavioral/validate_user_input.py gptme/eval/suites/behavioral/add_feature_preserve_default.py gptme/eval/suites/behavioral/fix_security_path_traversal.py gptme/eval/suites/behavioral/optimize_n_squared.py gptme/eval/suites/behavioral/write_test_suite.py gptme/eval/suites/behavioral/iterative_debug.py gptme/eval/suites/behavioral/handle_specific_exception.py gptme/eval/suites/behavioral/root_cause_pipeline_debug.py gptme/eval/suites/behavioral/rate_limiting.py gptme/eval/suites/behavioral/__init__.py gptme/eval/suites/behavioral/implement_event_emitter.py gptme/eval/suites/behavioral/circuit_breaker.py gptme/eval/suites/behavioral/implement_priority_queue.py gptme/eval/suites/behavioral/refactor_for_testability.py gptme/eval/suites/practical10.py gptme/eval/execenv.py gptme/eval/main.py gptme/eval/__main__.py gptme/eval/cost.py gptme/eval/types.py gptme/eval/agents/swebench.py gptme/eval/agents/__init__.py gptme/eval/agents/claude_code.py gptme/eval/leaderboard.py gptme/eval/pass_rate_gate.py gptme/eval/run.py gptme/eval/dspy/cli.py gptme/eval/dspy/__main__.py gptme/eval/dspy/metrics.py gptme/eval/dspy/hybrid_optimizer.py gptme/eval/dspy/signatures.py gptme/eval/dspy/tasks.py gptme/eval/dspy/__init__.py gptme/eval/dspy/prompt_optimizer.py gptme/eval/dspy/experiments.py gptme/eval/swebench/main.py gptme/eval/swebench/utils.py gptme/eval/swebench/info.py gptme/eval/swebench/__main__.py gptme/eval/swebench/retrieval.py gptme/eval/swebench/evaluate.py gptme/eval/swebench/__init__.py gptme/eval/swe_extra/run_swe_extra.py gptme/eval/swe_extra/swe_bench_test_spec.py gptme/eval/swe_extra/swe_bench_constants.py gptme/eval/swe_extra/swe_bench_extra_data.py gptme/eval/swe_extra/__init__.py gptme/eval/__init__.py gptme/eval/tbench/agent.py gptme/eval/tbench/run.py gptme/eval/tbench/__init__.py gptme/eval/trends.py gptme/eval/filestore.py gptme/knowledge.py gptme/config/trust.py gptme/config/models.py gptme/config/core.py gptme/config/__init__.py gptme/config/project.py gptme/config/cli_setup.py gptme/config/chat.py gptme/config/user.py gptme/context/compress.py gptme/context/selector/hybrid.py gptme/context/selector/file_integration.py gptme/context/selector/rule_based.py gptme/context/selector/llm_based.py gptme/context/selector/config.py gptme/context/selector/file_config.py gptme/context/selector/file_selector.py gptme/context/selector/__init__.py gptme/context/selector/base.py gptme/context/scout.py gptme/context/config.py gptme/context/__init__.py gptme/context/adaptive_compressor.py gptme/context/task_analyzer.py gptme/anti_slop.py gptme/checkpoint.py gptme/memory/match.py gptme/memory/policy.py gptme/memory/schema.py gptme/memory/roots.py gptme/memory/recall.py gptme/memory/store.py gptme/memory/__init__.py gptme/dirs.py gptme/hooks/active_context.py gptme/hooks/markdown_validation.py gptme/hooks/token_awareness.py gptme/hooks/aw_watcher_agent.py gptme/hooks/test.py gptme/hooks/script.py gptme/hooks/cache_awareness.py gptme/hooks/agents_md_inject.py gptme/hooks/registry.py gptme/hooks/elicitation.py gptme/hooks/confirm.py gptme/hooks/injection_screening.py gptme/hooks/knowledge_inject.py gptme/hooks/cli_confirm.py gptme/hooks/cwd_changed.py gptme/hooks/types.py gptme/hooks/cost_awareness.py gptme/hooks/server_confirm.py gptme/hooks/tests/test_cost_awareness.py gptme/hooks/tests/test_confirm.py gptme/hooks/tests/test_server_confirm.py gptme/hooks/tests/test_server_elicit.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_markdown_validation.py gptme/hooks/tests/test_cache_awareness.py gptme/hooks/tests/test_guardrails.py gptme/hooks/tests/test_time_awareness.py gptme/hooks/tests/test_agents_md_inject.py gptme/hooks/tests/test_form_autodetect.py gptme/hooks/tests/test_active_context.py gptme/hooks/tests/test_elicitation.py gptme/hooks/tests/test_workspace_agents.py gptme/hooks/tests/test_auto_confirm.py gptme/hooks/tests/__init__.py gptme/hooks/tests/test_anomaly_watchdog.py gptme/hooks/tests/test_aw_watcher_agent.py gptme/hooks/tests/test_cwd_awareness.py gptme/hooks/tests/test_token_awareness.py gptme/hooks/auto_confirm.py gptme/hooks/workspace_agents.py gptme/hooks/mcp_namespace_hint.py gptme/hooks/auto_snapshots.py gptme/hooks/tool_target_instructions.py gptme/hooks/cwd_awareness.py gptme/hooks/time_awareness.py gptme/hooks/server_elicit.py gptme/hooks/anomaly_watchdog.py gptme/hooks/__init__.py gptme/hooks/guardrails.py gptme/hooks/form_autodetect.py gptme/workspace_snapshot.py gptme/agent/cli.py gptme/agent/workspace.py gptme/agent/doctor.py gptme/agent/service.py gptme/agent/__init__.py gptme/k_best.py gptme/sandbox.py gptme/model_attestation.py gptme/commands/llm.py gptme/commands/rag.py gptme/commands/meta.py gptme/commands/checkpoint.py gptme/commands/snapshot.py gptme/commands/backtrack.py gptme/commands/account.py gptme/commands/export.py gptme/commands/session.py gptme/commands/__init__.py gptme/commands/base.py gptme/tui/main.py gptme/tui/statusline.py gptme/tui/app.py gptme/tui/__init__.py gptme/lessons/matcher.py gptme/lessons/skill_commands.py gptme/lessons/parser.py gptme/lessons/index.py gptme/lessons/selector.py gptme/lessons/installer.py gptme/lessons/skill_events.py gptme/lessons/commands.py gptme/lessons/skills/python-repl/python_helpers.py gptme/lessons/__init__.py gptme/lessons/auto_include.py gptme/lessons/hybrid_matcher.py gptme/prompts/templates.py gptme/prompts/chat_history.py gptme/prompts/workspace.py gptme/prompts/skills.py gptme/prompts/context_cmd.py gptme/prompts/__init__.py gptme/cli/cmd_mcp.py gptme/cli/auth.py gptme/cli/cmd_mcp_serve.py gptme/cli/cmd_hooks.py gptme/cli/cmd_knowledge.py gptme/cli/cmd_attest.py gptme/cli/main.py gptme/cli/cmd_review.py gptme/cli/onboard.py gptme/cli/cmd_review_pr.py gptme/cli/wut.py gptme/cli/cmd_review_watch.py gptme/cli/cmd_sound.py gptme/cli/cmd_capabilities.py gptme/cli/cmd_batch.py gptme/cli/doctor.py gptme/cli/cmd_explain.py gptme/cli/cmd_computer.py gptme/cli/checkpoint.py gptme/cli/cmd_stats.py gptme/cli/cmd_status.py gptme/cli/cmd_skills.py gptme/cli/setup.py gptme/cli/cmd_snapshot.py gptme/cli/cmd_tutorial.py gptme/cli/cmd_resume.py gptme/cli/cmd_slop.py gptme/cli/cmd_memory.py gptme/cli/util.py gptme/cli/cmd_dataset.py gptme/cli/__init__.py gptme/cli/cmd_init.py gptme/cli/cmd_service.py gptme/cli/cmd_chats.py gptme/cli/cmd_agents.py gptme/constants.py gptme/session.py gptme/util/auto_naming.py gptme/util/tokens.py gptme/util/content.py gptme/util/git_worktree.py gptme/util/ask_execute.py gptme/util/rich_text.py gptme/util/git_cmd.py gptme/util/_sound_sounddevice.py gptme/util/context_budget.py gptme/util/replay.py gptme/util/safety.py gptme/util/install.py gptme/util/cost.py gptme/util/history.py gptme/util/multiprompt.py gptme/util/context_savings.py gptme/util/tool_format.py gptme/util/review.py gptme/util/gh.py gptme/util/context_dedup.py gptme/util/terminal.py gptme/util/keyword_matching.py gptme/util/prompt.py gptme/util/capabilities_export.py gptme/util/output_storage.py gptme/util/tool_display.py gptme/util/_telemetry.py gptme/util/file_storage.py gptme/util/stdio.py gptme/util/generate_name.py gptme/util/context.py gptme/util/uri.py gptme/util/reduce.py gptme/util/sound.py gptme/util/export.py gptme/util/cost_display.py gptme/util/cost_tracker.py gptme/util/clipboard.py gptme/util/context_measurement.py gptme/util/interrupt.py gptme/util/__init__.py gptme/util/master_context.py gptme/util/clock.py gptme/util/tree.py gptme/util/useredit.py gptme/util/conversation_ids.py gptme/util/_sound_cmd.py gptme/status_provider.py gptme/__init__.py gptme/llm/provider_plugins.py gptme/llm/llm_gptme.py gptme/llm/openai_responses.py gptme/llm/utils.py gptme/llm/validate.py gptme/llm/llm_grok_subscription.py gptme/llm/llm_anthropic.py gptme/llm/_degeneration.py gptme/llm/llm_openai_subscription.py gptme/llm/request_limits.py gptme/llm/models/listing.py gptme/llm/models/recommended.py gptme/llm/models/resolution.py gptme/llm/models/types.py gptme/llm/models/__init__.py gptme/llm/models/data.py gptme/llm/llm_openai.py gptme/llm/llm_openai_models_deprecated.py gptme/llm/retry_policy.py gptme/llm/llm_anthropic_models_deprecated.py gptme/llm/retry_abort.py gptme/llm/constants.py gptme/llm/__init__.py gptme/llm/local_discovery.py gptme/llm/llm_mock.py gptme/llm/llm_openai_models.py gptme/llm/llm_openrouter_subscription.py gptme/chat.py gptme/circuit_breaker.py gptme/profiles.py tests/test_acp_client.py tests/test_llm_grok_subscription.py tests/test_shell_output_mixing_issue408.py tests/test_server_skill_events.py tests/test_hooks_cwd_changed.py tests/test_shell_issue729.py tests/test_k_best.py tests/test_served_model_metadata.py tests/test_acp_agent.py tests/test_agent_memory.py tests/test_workspace_snapshot.py tests/test_util_tree.py tests/test_chats_clean.py tests/test_eval_practical16.py tests/test_server_v2.py tests/test_command_completion.py tests/test_cli_from_turn.py tests/test_shell_fd_leak.py tests/test_compaction_native_anthropic.py tests/test_server_v2_tool_confirmation.py tests/test_build_changelog.py tests/test_pdf_to_images.py tests/test_computer_demo_cmd.py tests/test_reduce.py tests/test_eval_claude_code.py tests/test_session_allowlist_isolation.py tests/test_git_worktree.py tests/test_eval_practical19.py tests/test_uri.py tests/test_tools_mcp.py tests/test_tools_pruner.py tests/test_complete.py tests/test_tools_patch.py tests/test_computer_artifacts.py tests/test_eval_pass_rate_gate.py tests/test_dataset.py tests/test_lessons_emissions.py tests/test_overflow_recovery.py tests/test_subagent_unit.py tests/test_lessons_status.py tests/test_server_workspace.py tests/test_tutorial.py tests/test_lessons_index.py tests/test_subagent_shell_pgid_kill.py tests/test_mcp.py tests/test_github_bot.py tests/test_master_context.py tests/test_memory_index_policy.py tests/test_git_cmd_resolver.py tests/test_browser.py tests/test_server_api_v2_common.py tests/test_logmanager_locking.py tests/test_computer_risk_streaming.py tests/test_eval_computer_suite.py tests/test_eval.py tests/test_computer_audit.py tests/test_util_cli_review_watch.py tests/test_skill_metrics.py tests/test_onboard.py tests/test_message_command.py tests/test_lessons_tool.py tests/test_cost_cache_cold_warning.py tests/test_server_elicitation.py tests/test_lessons_frontmatter_name_type.py tests/test_memory_cli_metadata.py tests/test_conversations.py tests/test_chat_config.py tests/test_cli.py tests/test_knowledge.py tests/test_server_audio_transcription.py tests/test_compaction_reminder.py tests/test_checkpoint.py tests/test_chats_export.py tests/conftest.py tests/test_compaction_measurement.py tests/test_computer_semantic_fixtures.py tests/test_acp_types.py tests/retry_compat.py tests/test_tools_complete.py tests/fixtures/provider_test_scaffold.py tests/test_tools.py tests/test_lessons_auto_include.py tests/test_tools_shell_validation.py tests/test_util_review.py tests/test_tool_use.py tests/test_compaction_recall.py tests/test_subagent_concurrency.py tests/test_llm_image_attachments.py tests/test_shell_allowlist_autoconfirm.py tests/test_dspy_gepa.py tests/test_tree.py tests/test_tools_chats.py tests/test_cli_context_non_utf8.py tests/test_execenv.py tests/test_server_client.py tests/test_demo_capture.py tests/thread_leak.py tests/test_server_parent_death_watcher.py tests/test_toolspec_read_only.py tests/test_llm_models.py tests/test_tools_restart.py tests/test_output_format.py tests/test_eval_constraint_satisfaction.py tests/test_external_sessions.py tests/test_eval_swebench_retrieval.py tests/test_entrypoints.py tests/test_tools_subagent.py tests/test_shell_completion_loop.py tests/test_eval_behavioral.py tests/test_computer_latency_cmd.py tests/test_tasks_api.py tests/test_subagent_budget.py tests/test_auto_naming.py tests/test_backtrack.py tests/test_thread_leak.py tests/test_tools_save.py tests/test_tools_computer.py tests/test_preview_proxy.py tests/test_tool_conditionals.py tests/test_terminal_startup_latency.py tests/test_eval_behavioral_solutions.py tests/test_shell_issue772.py tests/test_json_output.py tests/test_shell_memory_limit.py tests/test_ephemeral.py tests/test_cli_resume.py tests/test_tui_before_tool_execution.py tests/test_lessons_matcher.py tests/test_shell_parser.py tests/test_tools_browser.py tests/test_agent_service_timeouts.py tests/test_openrouter_pricing_overrides.py tests/test_validate_release_package.py tests/test_profiles.py tests/test_computer_doctor_cmd.py tests/test_utils.py tests/test_tui.py tests/test_integration_phase4.py tests/test_util_cli_models.py tests/test_snapshot_command.py tests/test_prompt_tools.py tests/test_tools_vision.py tests/test_memory_tool.py tests/test_cli_status.py tests/test_server_startup.py tests/test_file_selector_integration.py tests/test_computer_settle.py tests/test_chats_json.py tests/test_tool_description_cap.py tests/test_pytest_retry_tmp_path_interaction.py tests/test_tools_request_tool_change.py tests/test_util_cli_attest.py tests/test_llm_openai_reasoning_effort.py tests/test_tools_morph.py tests/test_mcp_server.py tests/test_shell_memory.py tests/test_tools_patch_many.py tests/test_workspace_api.py tests/test_util_tokens.py tests/test_script_hooks.py tests/test_server_subscription_connect.py tests/test_codeblock.py tests/test_compaction_review_regressions.py tests/test_util_gh_mocked.py tests/test_prompt_templates.py tests/test_lessons_integration.py tests/test_cli_stats.py tests/test_cost_tracker.py tests/test_hooks.py tests/test_skill_events.py tests/test_screenshot.py tests/test_anti_slop.py tests/test_skill_commands.py tests/test_llm_openai_subscription.py tests/test_context_scout.py tests/test_prompts.py tests/test_memory_migrate_knowledge.py tests/test_package_exports.py tests/test_cli_explain.py tests/test_config.py tests/test_cli_auth.py tests/test_server_auth.py tests/test_hooks_server_confirm.py tests/test_server_cors.py tests/test_timings.py tests/test_server.py tests/test_subagent_parent_isolation.py tests/test_server_v2_agents.py tests/test_tools_read.py tests/test_computer_actions.py tests/test_gptme_provider.py tests/test_lessons_selector.py tests/test_hooks_form_autodetect.py tests/test_server_host_validation.py tests/test_tools_autocommit.py tests/test_cmd_init_toml_name.py tests/test_pytest_timeout_retry_interaction.py tests/test_lessons.py tests/test_tool_preview_content.py tests/test_eventlog.py tests/test_oauth_openrouter.py tests/test_hooks_cache_awareness.py tests/test_browser_format.py tests/test_shell_stream_oneshot.py tests/test_markdown_validation.py tests/test_replay.py tests/test_subagent_integration.py tests/test_server_v2_sessions.py tests/context/test_adaptive_compressor.py tests/context/test_task_analyzer.py tests/test_project_config_list_types.py tests/test_tools_screenshot.py tests/test_tools_convert.py tests/test_workspace_memory_policy.py tests/test_util_file_storage.py tests/test_provider_plugins.py tests/test_eval_swebench.py tests/test_agent_workspace_timeouts.py tests/test_dependabot_automerge.py tests/test_server_cli_fallback.py tests/test_context.py tests/test_server_skills_api.py tests/test_util_context_dedup.py tests/test_server_path_traversal.py tests/test_custom_providers.py tests/test_llm_utils.py tests/test_generation_pre_snapshot_boundary.py tests/test_computer_transport.py tests/test_shell_for_loop_issue724.py tests/test_util_cli_skills.py tests/test_tools_browser_thread.py tests/test_quota_skip.py tests/test_tui_visual.py tests/test_util_hooks.py tests/test_server_bad_input.py tests/test_build_apt_retry.py tests/test_util_cli_batch.py tests/test_local_discovery.py tests/test_browser_session_persistence.py tests/test_computer_video_frames_cli.py tests/test_eval_subagent.py tests/test_acp_e2e_smoke.py tests/test_cli_non_utf8_input.py tests/test_server_etag.py tests/test_util_cost.py tests/test_unified_plugins.py tests/test_chat.py tests/test_util_export.py tests/test_url_safety.py tests/test_xml_format.py tests/test_agents_md_inject.py tests/test_tools_todo.py tests/test_capabilities_export.py tests/test_subagent_roundtrip.py tests/test_eval_practical18.py tests/test_subagent_worktree_isolation.py tests/test_tools_gh.py tests/test_commands_account.py tests/test_executor.py tests/test_server_default_profile.py tests/test_acp_session_runtime.py tests/test_logmanager.py tests/test_util_cli_mcp.py tests/test_llm_mock.py tests/test_llm_anthropic.py tests/test_openrouter_cache_pricing.py tests/test_shell_high_fd.py tests/test_shell_foreground_promotion.py tests/test_util_cli_generate.py tests/test_dirs.py tests/test_util_output_storage.py tests/test_tools_elicit.py tests/test_shell_max_output_bytes.py tests/test_util.py tests/test_prompt_queue.py tests/test_util_interrupt.py tests/test_docs_tool_formats_coverage.py tests/test_tools_shell_multiline.py tests/test_mcp_adapter.py tests/test_util_safety.py tests/test_setup_completions.py tests/test_server_panels.py tests/test_guardrail_hook.py tests/test_release_preflight.py tests/test_misc_subprocess_timeouts.py tests/test_server_fresh_bad_input.py tests/test_eval_format_routing.py tests/test_fold_mid_system.py tests/test_credentials_integration.py tests/test_computer_docker_config.py tests/test_subagent_planner_roles.py tests/test_tools_tmux.py tests/test_active_context.py tests/test_util_clipboard_paste.py tests/test_server_metrics.py tests/test_cost_awareness_delayed_warning.py tests/test_prompt.py tests/test_cost_display.py tests/test_llm_openai_sampling.py tests/test_constants.py tests/test_cli_hooks_settings_shape.py tests/test_autocompact_scoring.py tests/test_server_tts_api.py tests/test_model_attestation.py tests/test_hooks_cost_awareness.py tests/test_computer_use_integration.py tests/test_eval_practical17.py tests/test_acp_stdout.py tests/test_cli_llm_generate.py tests/test_cli_init.py tests/test_tools_lessons.py tests/test_subagent_persistence.py tests/test_execute_msg_defensive.py tests/test_init.py tests/test_cli_confirm_hook.py tests/test_server_cli_tools.py tests/test_cli_fatal_error_envelope.py tests/test_llm_request_limits.py tests/test_server_v2_hooks.py tests/lessons/test_bm25_parity.py tests/lessons/test_wildcard_matching.py tests/test_server_a2a.py tests/test_server_tools_allowlist.py tests/test_workspace_agents.py tests/test_util_content.py tests/test_foreground_output_dedup.py tests/test_config_encoding.py tests/test_util_keyword_matching.py tests/test_agent_fork_command.py tests/test_tui_skill_events.py tests/test_info.py tests/test_native_tool_names.py tests/test_context_providers.py tests/test_message.py tests/test_circuit_breaker.py tests/test_swebench_utils.py tests/test_util_generate_name.py tests/test_hooks_registry.py tests/test_cc_memory.py tests/test_computer_run_task_cli.py tests/test_credentials.py tests/test_telemetry.py tests/test_browser_executable_path_env.py tests/test_lessons_commands.py tests/test_computer_gate.py tests/test_docker_lockfile.py tests/test_tools_precommit.py tests/test_server_artifacts.py tests/test_computer_api.py tests/test_dspy_hybrid.py tests/test_responses_stream_errors.py tests/test_server_tools_query.py tests/test_cmd_service.py tests/test_util_tool_format.py tests/test_hybrid_lessons.py tests/test_dspy_integration.py tests/test_commands_llm.py tests/test_tools_hashline_edit.py tests/test_server_v2_sse.py tests/test_chats_stats.py tests/test_util_cli_providers.py tests/test_llm_models_resolution.py tests/test_server_config_workspace_containment.py tests/test_shell_completion_wait.py tests/test_hooks_knowledge_inject.py tests/test_llm_retry_abort.py tests/test_import_boundaries.py tests/test_chats_rename.py tests/test_subscription_pricing.py tests/test_llm_summarize_terminal_projection.py tests/test_agent_doctor.py tests/test_util_terminal.py tests/test_tui_e2e.py tests/test_tools_time_awareness.py tests/test_eval_timeouts.py tests/test_util_cli.py tests/test_browser_blockage.py tests/test_computer_x11_integration.py tests/test_acp_protocol_logging.py tests/test_eval_leaderboard.py tests/test_openai_responses_input.py tests/test_chat_history.py tests/test_commands_rag.py tests/test_browser_github_routing.py tests/test_browser_lynx.py tests/test_tools_rag.py tests/test_docs_structure.py tests/test_webui_redirects.py tests/test_checkpoint_restart.py tests/test_config_trust.py tests/test_search_alias.py tests/test_auto_compact.py tests/test_skill_installer.py tests/test_treeofthoughts.py tests/test_tools_python.py tests/test_tools_watch.py tests/test_eval_practical20.py tests/test_cli_sound.py tests/test_prompt_skills_summary.py tests/test_shell_sigterm.py tests/test_tools_parameter_conformance.py tests/test_server_webui_dir.py tests/test_browser_state.py tests/test_chats_external_search.py tests/test_lessons_parser.py tests/test_util_context_savings.py tests/test_llm_openai.py tests/test_llm_retry_policy.py tests/test_cwe214_docker_env_leak.py tests/test_track_tokens.py tests/test_github_ci_self_heal.py tests/test_tool_loading_duplicate.py tests/test_relevance_pruning.py tests/test_logmanager_corrupt_lines.py tests/test_agent.py tests/test_computer_screenshot_cli.py tests/test_eval_tool_efficiency.py tests/test_subagent_tool_format.py tests/test_execute_msg_hook_call_id.py tests/test_context_selector.py tests/test_vent.py tests/test_plugins.py tests/test_prompt_fragments.py tests/test_shell_restart.py tests/test_commands.py tests/test_llm_auth.py tests/test_tools_shell.py tests/test_session.py tests/test_sandbox.py tests/test_check_rst_formatting.py tests/test_context_budget.py tests/test_snapshot_list.py tests/test_tools_token_awareness.py tests/test_tools_form.py tests/test_tools_choice.py tests/test_mcp_discovery.py tests/test_eval_trends.py tests/test_computer_task.py tests/test_knowledge_subprocess.py tests/test_util_gh.py tests/test_computer_milestone_integration.py tests/test_transcript_durability.py tests/test_memory_store.py tests/test_server_v2_auto_stepping.py tests/test_memory_match.py tests/test_model_selection_trace_export.py tests/test_computer_record.py tests/test_llm_validate.py tests/test_doctor.py tests/test_tools_base.py tests/test_acp_adapter.py tests/test_server_session_models.py tests/test_dspy_basic.py tests/test_server_perf.py tests/test_util_install.py tests/test_hooks_mcp_namespace_hint.py tests/test_shell_background.py tests/test_llm_empty_stream.py scripts/eval_leaderboard.py scripts/train/collect.py scripts/treeofthoughts.py scripts/smoke_frozen_server.py scripts/demo_capture.py scripts/check_model_freshness.py scripts/eval_trends.py scripts/github_bot.py scripts/check_rst_formatting.py scripts/auto_rename_logs.py scripts/validate_release_package.py scripts/docs_structure.py scripts/eval_phase0_pruning.py scripts/check_docs_repo_links.py scripts/analyze_compression.py scripts/github_ci_self_heal.py scripts/verify_cloudflare_pages_deep_links.py --by-file --hide-rate --quiet | tail -n +2
-------------------------------------------------------------------------------------------------------------------------------
File blank comment code
-------------------------------------------------------------------------------------------------------------------------------
tests/test_subagent_unit.py 1532 734 6185
tests/test_server_v2.py 1030 401 4589
tests/test_llm_openai.py 946 568 3778
tests/test_auto_compact.py 1042 569 3591
gptme/server/api_v2.py 557 508 3345
gptme/tools/shell.py 400 733 2893
tests/test_tools_subagent.py 859 443 2849
tests/test_tui.py 615 304 2782
gptme/tui/app.py 384 708 2495
tests/test_server_v2_sessions.py 367 269 2468
tests/test_doctor.py 540 210 2441
tests/test_config.py 558 595 2231
gptme/llm/llm_openai.py 368 596 2109
tests/test_util_review.py 492 342 2090
tests/test_tools_shell.py 562 536 1923
tests/test_chat.py 508 288 1774
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
gptme/cli/cmd_computer.py 242 295 1576
tests/test_acp_agent.py 410 197 1490
gptme/cli/util.py 320 302 1464
tests/test_util_cli.py 396 238 1461
tests/test_eval_behavioral.py 867 967 1357
gptme/tools/subagent/api.py 222 497 1340
gptme/cli/main.py 223 310 1339
gptme/server/session_step.py 194 438 1290
tests/test_util_cli_review_watch.py 317 189 1283
tests/test_tools_computer.py 438 269 1258
gptme/hooks/workspace_agents.py 237 153 1244
gptme/acp/agent.py 206 341 1231
tests/test_tools_shell_validation.py 367 251 1226
tests/test_util_gh.py 263 176 1226
gptme/util/gh.py 244 303 1219
tests/test_server.py 301 206 1147
gptme/tools/autocompact/resume.py 159 329 1112
gptme/llm/llm_anthropic.py 254 372 1099
gptme/tools/subagent/execution.py 189 445 1094
tests/test_llm_utils.py 313 142 1091
tests/test_memory_store.py 168 67 1087
tests/test_llm_anthropic.py 252 87 1078
tests/test_tools_base.py 340 114 1054
gptme/logmanager/manager.py 204 334 1037
tests/test_tools_browser.py 316 76 1029
gptme/tools/base.py 210 332 1021
tests/test_tools_complete.py 218 253 1017
gptme/server/api_v2_sessions.py 132 199 982
tests/test_cmd_service.py 219 194 981
tests/test_eval.py 184 107 976
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_codeblock.py 432 934 965
gptme/hooks/tests/test_workspace_agents.py 193 49 956
tests/test_computer_audit.py 264 183 955
gptme/eval/main.py 110 132 943
gptme/server/openapi_docs.py 309 210 941
tests/test_logmanager.py 260 180 941
gptme/llm/__init__.py 178 313 920
gptme/tools/watch.py 138 185 903
tests/test_eval_leaderboard.py 126 104 883
gptme/cli/cmd_review_pr.py 148 342 882
tests/test_tools_convert.py 265 117 864
tests/test_knowledge.py 323 71 842
tests/test_tasks_api.py 185 69 831
tests/test_mcp_adapter.py 218 109 830
tests/test_eval_computer_suite.py 328 149 819
gptme/eval/leaderboard.py 149 485 817
tests/test_util_gh_mocked.py 155 121 814
tests/test_prompt_templates.py 260 193 812
tests/test_sandbox.py 195 105 801
gptme/tools/shell_background.py 135 142 800
gptme/tools/mcp_adapter.py 247 272 799
gptme/tools/convert.py 137 85 793
gptme/util/context.py 169 267 790
gptme/chat.py 125 269 785
tests/test_tools_gh.py 157 94 784
tests/test_llm_openai_subscription.py 178 73 783
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
gptme/eval/execenv.py 114 215 733
gptme/eval/suites/computer.py 111 245 732
gptme/llm/models/data.py 18 165 732
gptme/config/user.py 138 200 730
tests/test_tools_hashline_edit.py 213 445 725
tests/test_tools.py 240 120 722
gptme/cli/cmd_review_watch.py 121 230 720
gptme/tools/chats.py 138 179 719
tests/test_eventlog.py 163 94 717
tests/test_hooks_registry.py 253 97 716
tests/test_tools_restart.py 163 69 716
gptme/eval/suites/basic.py 138 55 715
tests/test_computer_transport.py 267 91 713
gptme/tools/__init__.py 174 211 711
gptme/cli/setup.py 154 72 710
gptme/tools/subagent/batch.py 135 482 710
tests/test_context.py 295 124 709
tests/test_agent.py 205 115 707
gptme/tools/browser.py 280 454 696
gptme/tools/_browser_playwright.py 238 298 692
gptme/server/tasks_api.py 193 130 680
tests/test_llm_models_resolution.py 223 181 677
tests/test_tui_e2e.py 107 123 675
tests/test_relevance_pruning.py 266 134 672
tests/test_tools_lessons.py 145 53 664
tests/test_tools_watch.py 161 55 656
gptme/cli/cmd_memory.py 98 91 655
tests/test_json_output.py 114 84 643
tests/test_cli_status.py 246 138 642
gptme/eval/dspy/tasks.py 170 374 639
tests/test_subagent_budget.py 166 144 626
tests/test_message.py 217 133 625
gptme/tools/shell_validation.py 152 352 619
gptme/llm/llm_openai_subscription.py 142 159 616
tests/test_prompts.py 179 110 611
tests/test_computer_doctor_cmd.py 88 58 607
tests/test_tools_read.py 193 70 598
scripts/github_bot.py 109 107 597
gptme/eval/run.py 75 126 592
gptme/prompts/__init__.py 78 90 588
tests/test_mcp_server.py 138 49 587
tests/test_server_panels.py 65 40 585
gptme/tools/gh.py 126 127 582
tests/conftest.py 165 287 580
tests/test_tools_precommit.py 109 86 578
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
gptme/tools/complete.py 103 170 572
tests/test_lessons_index.py 185 171 568
gptme/tools/computer_transport.py 151 125 567
tests/test_served_model_metadata.py 116 23 566
gptme/util/capabilities_export.py 60 71 560
tests/test_compaction_recall.py 130 14 559
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
tests/test_context_scout.py 90 66 548
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_llm_models.py 169 117 542
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_gptme_provider.py 176 84 532
tests/test_dirs.py 127 89 531
tests/test_cc_memory.py 113 108 530
tests/test_server_subscription_connect.py 151 29 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
tests/test_lessons.py 156 153 517
gptme/tools/python.py 119 166 515
tests/test_commands.py 161 73 514
gptme/memory/store.py 76 103 507
tests/test_capabilities_export.py 65 27 506
gptme/message.py 128 251 505
gptme/hooks/registry.py 102 87 503
gptme/tools/hashline_edit.py 126 383 502
tests/test_overflow_recovery.py 72 8 498
gptme/lessons/installer.py 146 165 496
gptme/server/session_models.py 88 177 493
gptme/cli/cmd_chats.py 108 81 490
gptme/tools/autocompact/hook.py 60 164 487
gptme/server/workspace_api.py 100 110 486
tests/test_hooks_cache_awareness.py 151 44 484
tests/test_computer_demo_cmd.py 144 75 482
gptme/llm/openai_responses.py 94 49 478
gptme/codeblock.py 62 301 476
tests/test_snapshot_command.py 117 57 476
tests/test_dataset.py 148 45 473
gptme/hooks/tests/test_cost_awareness.py 84 53 472
tests/test_skill_installer.py 138 154 459
tests/test_llm_auth.py 153 55 458
tests/test_llm_openai_sampling.py 99 12 456
gptme/telemetry.py 102 72 454
gptme/lessons/index.py 126 167 452
gptme/tools/read.py 66 102 450
scripts/check_rst_formatting.py 112 124 450
gptme/hooks/tests/test_time_awareness.py 90 69 447
scripts/analyze_compression.py 103 68 446
tests/test_server_skill_events.py 55 4 446
gptme/tools/lessons.py 121 135 445
scripts/demo_capture.py 104 83 445
tests/test_shell_foreground_promotion.py 102 22 442
gptme/util/_telemetry.py 111 157 440
tests/test_util_cli_providers.py 93 42 438
gptme/lessons/auto_include.py 108 211 436
tests/test_compaction_native_anthropic.py 78 23 436
tests/test_tools_patch_many.py 114 108 432
tests/test_tools_browser_thread.py 113 51 425
tests/test_lessons_commands.py 157 82 422
tests/test_external_sessions.py 116 67 421
gptme/eval/dspy/prompt_optimizer.py 109 89 420
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_subagent_worktree_isolation.py 129 70 414
gptme/tools/autocompact/engine.py 91 199 410
tests/test_provider_plugins.py 100 39 409
gptme/agent/workspace.py 130 227 407
gptme/tools/subagent/hooks.py 96 147 407
gptme/util/cost_display.py 81 80 406
gptme/util/prompt.py 98 142 406
tests/test_llm_validate.py 78 64 404
gptme/cli/cmd_hooks.py 109 81 401
gptme/llm/llm_openai_models.py 6 61 401
gptme/agent/service.py 108 103 400
gptme/tools/tmux.py 98 170 398
tests/test_tools_mcp.py 102 20 398
tests/test_mcp_discovery.py 114 43 397
tests/test_hybrid_lessons.py 100 58 395
tests/test_profiles.py 88 37 395
tests/test_telemetry.py 102 131 395
gptme/agent/cli.py 108 137 394
gptme/eval/suites/subagent.py 90 70 394
scripts/eval_phase0_pruning.py 74 107 394
tests/test_computer_latency_cmd.py 93 42 393
tests/test_chats_external_search.py 87 63 389
gptme/agent/doctor.py 90 43 388
tests/test_reduce.py 120 156 387
gptme/workspace_snapshot.py 53 64 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/logmanager/conversations.py 84 119 382
gptme/llm/llm_grok_subscription.py 95 81 381
gptme/tools/restart.py 97 140 378
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_conversations.py 51 33 371
tests/test_github_ci_self_heal.py 71 6 371
gptme/hooks/anomaly_watchdog.py 137 207 370
tests/test_preview_proxy.py 98 46 370
tests/test_server_v2_agents.py 67 28 370
tests/test_workspace_api.py 103 19 369
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/tools/subagent/types.py 86 179 363
tests/test_cost_tracker.py 44 26 361
tests/test_replay.py 120 110 361
gptme/config/chat.py 65 121 358
gptme/config/models.py 117 102 357
gptme/mcp/client.py 99 138 356
tests/test_context_providers.py 183 121 356
tests/test_lessons_emissions.py 56 2 353
tests/test_workspace_agents.py 154 59 353
tests/test_lessons_matcher.py 99 86 352
gptme/llm/local_discovery.py 64 35 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_util_hooks.py 85 93 347
gptme/eval/dspy/metrics.py 97 98 345
tests/test_complete.py 81 72 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
gptme/hooks/cost_awareness.py 84 81 337
gptme/tools/mcp.py 103 103 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_llm_grok_subscription.py 98 21 334
tests/test_tools_python.py 133 74 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_tools_morph.py 93 69 323
tests/test_circuit_breaker.py 98 69 322
tests/test_util_tool_format.py 78 32 322
gptme/checkpoint.py 79 49 321
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_agent_doctor.py 72 34 318
gptme/eval/trends.py 59 31 317
tests/test_util_cli_batch.py 64 12 316
gptme/tools/shell_flags.py 60 257 315
tests/test_util_cli_skills.py 118 89 315
tests/test_skill_metrics.py 38 2 312
gptme/context/scout.py 83 100 311
tests/test_tools_rag.py 95 36 310
tests/test_browser.py 140 71 308
gptme/attestation.py 71 2 307
gptme/server/preview_proxy_api.py 86 150 306
gptme/server/cli.py 56 105 305
tests/test_hooks_knowledge_inject.py 74 6 305
gptme/commands/llm.py 60 59 304
gptme/llm/validate.py 45 64 303
gptme/tools/_browser_thread.py 61 77 303
gptme/dataset/trajectory_to_env.py 81 92 302
tests/test_anti_slop.py 98 58 300
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
gptme/prompts/templates.py 70 153 297
gptme/plugins/__init__.py 101 133 295
gptme/tools/save.py 69 74 295
gptme/util/reduce.py 73 90 294
tests/test_eval_swebench.py 78 41 294
tests/test_plugins.py 110 85 292
tests/test_chats_stats.py 72 30 291
tests/test_llm_request_limits.py 54 2 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/tools/patch.py 64 103 286
tests/test_hooks_server_confirm.py 78 33 285
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
tests/test_auto_naming.py 80 48 277
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
gptme/util/tool_display.py 36 23 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
gptme/hooks/tests/test_token_awareness.py 37 28 269
gptme/plugins/security.py 47 76 269
gptme/profiles.py 66 68 268
tests/lessons/test_bm25_parity.py 67 70 266
tests/test_url_safety.py 113 38 266
gptme/llm/models/resolution.py 59 87 264
gptme/memory/schema.py 49 24 264
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_autocommit.py 99 47 259
gptme/logmanager/eventlog.py 74 70 258
tests/test_terminal_startup_latency.py 77 32 257
gptme/anti_slop.py 43 106 256
gptme/eval/suites/constraint_satisfaction.py 101 196 256
gptme/tools/patch_many.py 57 62 256
tests/test_tool_use.py 60 66 255
gptme/hooks/tests/test_form_autodetect.py 73 25 253
gptme/tools/autocompact/scoring.py 97 180 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_util_cli_models.py 43 44 248
gptme/hooks/tests/test_injection_screening.py 78 13 247
gptme/tools/rag.py 89 131 246
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_llm_retry_policy.py 90 19 242
tests/test_local_discovery.py 63 18 242
tests/test_compaction_measurement.py 43 12 241
tests/test_computer_x11_integration.py 87 87 240
gptme/eval/swebench/main.py 32 23 239
tests/test_cli_from_turn.py 65 18 239
gptme/commands/meta.py 54 20 238
gptme/context/task_analyzer.py 100 124 237
tests/test_memory_migrate_knowledge.py 57 26 237
tests/test_model_selection_trace_export.py 70 19 237
gptme/util/auto_naming.py 68 78 236
tests/test_server_default_profile.py 78 44 236
tests/test_memory_match.py 34 9 235
gptme/tui/main.py 37 34 234
tests/test_cli_stats.py 62 27 234
tests/test_tools_save.py 68 40 234
gptme/tools/todo.py 96 106 233
gptme/context/adaptive_compressor.py 76 130 232
tests/test_onboard.py 56 49 232
gptme/util/review.py 70 129 231
tests/test_shell_allowlist_autoconfirm.py 58 62 231
gptme/tools/precommit.py 76 96 230
tests/test_subagent_roundtrip.py 74 52 230
gptme/lessons/parser.py 77 124 229
gptme/cli/cmd_resume.py 44 25 228
gptme/hooks/__init__.py 22 51 228
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
tests/test_chats_json.py 32 17 225
tests/test_cli_fatal_error_envelope.py 46 40 225
tests/test_shell_restart.py 62 45 225
gptme/mcp/registry.py 59 70 224
tests/test_git_worktree.py 57 37 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
gptme/eval/suites/practical6.py 56 46 221
tests/test_server_tools_query.py 59 39 220
tests/test_tools_patch.py 119 227 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_util_keyword_matching.py 75 46 218
gptme/hooks/aw_watcher_agent.py 49 21 217
tests/test_lessons_tool.py 62 34 216
tests/test_llm_retry_abort.py 85 62 216
gptme/commands/base.py 71 76 214
gptme/server/api_v2_common.py 113 96 214
gptme/config/cli_setup.py 37 61 213
gptme/eval/swe_extra/swe_bench_extra_data.py 69 51 213
gptme/hooks/elicitation.py 90 132 213
tests/test_cli_resume.py 64 15 212
tests/test_config_trust.py 94 43 212
gptme/commands/session.py 66 56 211
tests/test_checkpoint.py 88 20 211
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
gptme/eval/swebench/evaluate.py 39 61 208
gptme/lessons/skill_events.py 33 26 208
tests/test_autocompact_scoring.py 86 39 208
gptme/cli/cmd_batch.py 31 6 207
tests/test_server_v2_hooks.py 80 60 207
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
tests/test_shell_stream_oneshot.py 71 44 204
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
tests/test_tools_todo.py 91 70 201
gptme/util/sound.py 65 72 200
tests/test_tutorial.py 85 7 200
gptme/hooks/guardrails.py 66 84 199
gptme/hooks/tests/test_active_context.py 37 29 198
tests/test_vent.py 39 10 198
gptme/hooks/tests/test_server_elicit.py 58 23 196
tests/test_shell_memory.py 43 7 196
tests/test_util_interrupt.py 68 44 196
gptme/eval/suites/practical8.py 68 62 191
tests/test_chats_clean.py 46 18 191
gptme/hooks/script.py 21 8 189
tests/test_computer_task.py 116 31 189
gptme/tools/morph.py 43 54 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
gptme/eval/suites/practical14.py 64 52 185
gptme/tools/autocompact/recovery.py 25 37 184
tests/test_computer_screenshot_cli.py 53 12 183
tests/test_fold_mid_system.py 74 43 183
tests/test_native_tool_names.py 28 1 183
gptme/mcp/server.py 51 68 182
tests/test_k_best.py 76 23 182
tests/test_memory_tool.py 38 11 181
gptme/cli/cmd_stats.py 51 36 180
gptme/context/selector/file_selector.py 50 61 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_foreground_output_dedup.py 37 15 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_execute_msg_hook_call_id.py 65 49 176
gptme/util/tokens.py 54 76 175
tests/test_browser_lynx.py 63 15 175
gptme/llm/llm_gptme.py 70 125 174
tests/test_subagent_shell_pgid_kill.py 40 31 174
gptme/llm/models/types.py 69 123 173
gptme/tools/request_tool_change.py 35 33 173
tests/test_commands_llm.py 22 0 173
tests/test_workspace_memory_policy.py 36 3 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
gptme/eval/agents/swebench.py 35 22 170
gptme/tools/shell_memory.py 37 29 170
tests/test_toolspec_read_only.py 40 11 170
gptme/server/acp_session_runtime.py 34 30 169
gptme/util/git_worktree.py 40 67 169
gptme/util/tool_format.py 48 76 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_tools_elicit.py 50 25 167
tests/test_tools_time_awareness.py 52 34 167
gptme/eval/suites/practical2.py 46 18 164
gptme/util/cost_tracker.py 56 98 164
tests/test_chat_config.py 65 51 164
gptme/hooks/types.py 96 136 163
tests/test_tui_visual.py 50 47 163
tests/test_util_cost.py 29 26 163
gptme/cli/cmd_dataset.py 25 25 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/llm/utils.py 56 92 159
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/dirs.py 72 99 157
gptme/llm/llm_openai_models_deprecated.py 5 14 157
gptme/util/__init__.py 34 29 157
tests/test_backtrack.py 39 11 157
tests/test_custom_providers.py 56 103 157
gptme/hooks/cli_confirm.py 52 59 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_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_util_tree.py 44 33 151
gptme/tools/autocompact/handlers.py 31 27 150
gptme/tools/subagent/persistence.py 29 36 150
tests/test_shell_max_output_bytes.py 63 80 150
tests/test_tools_vision.py 38 34 150
gptme/server/client.py 63 79 149
tests/fixtures/provider_test_scaffold.py 76 68 148
tests/test_browser_state.py 75 31 148
tests/test_util_install.py 34 31 148
gptme/eval/agents/__init__.py 24 15 147
gptme/util/clipboard.py 22 12 147
tests/test_master_context.py 39 24 147
gptme/acp/__main__.py 52 57 146
gptme/hooks/token_awareness.py 47 46 146
tests/test_misc_subprocess_timeouts.py 48 30 146
gptme/tools/form.py 42 64 145
gptme/lessons/skill_commands.py 47 58 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
gptme/server/api_v2_agents.py 25 17 139
tests/test_dspy_integration.py 54 32 139
tests/test_tools_token_awareness.py 59 47 139
gptme/config/trust.py 54 45 138
gptme/eval/suites/practical5.py 67 80 138
tests/test_computer_milestone_integration.py 61 59 138
tests/test_responses_stream_errors.py 23 1 137
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
gptme/tools/elicit.py 40 121 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
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_shell_parser.py 31 17 131
gptme/eval/suites/behavioral/minimal_feature_preserve_default_with_decoys.py 41 72 130
gptme/hooks/injection_screening.py 31 34 130
gptme/util/replay.py 42 49 129
tests/test_agent_workspace_timeouts.py 41 22 129
tests/test_snapshot_list.py 45 7 129
tests/test_acp_adapter.py 42 33 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
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/llm/request_limits.py 22 16 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/prompt_queue.py 41 22 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/commands/export.py 31 21 122
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
tests/test_eval_format_routing.py 30 25 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
gptme/commands/backtrack.py 31 29 117
tests/test_cli_non_utf8_input.py 28 8 117
tests/test_tui_before_tool_execution.py 21 8 117
tests/test_util_clipboard_paste.py 27 14 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/thread_leak.py 34 55 115
gptme/eval/suites/practical18.py 52 117 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
gptme/eval/types.py 35 69 110
gptme/tools/choice.py 34 41 110
gptme/tools/computer_semantic.py 61 129 110
gptme/util/export.py 26 29 110
tests/test_computer_run_task_cli.py 40 14 109
gptme/tui/statusline.py 15 11 108
gptme/util/master_context.py 37 57 108
tests/test_cost_awareness_delayed_warning.py 42 32 108
tests/test_tools_parameter_conformance.py 29 30 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
tests/test_tools_chats.py 26 19 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_browser_session_persistence.py 62 33 103
tests/test_server_parent_death_watcher.py 25 38 103
tests/test_tools_choice.py 51 26 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
gptme/tools/vent.py 40 65 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
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
gptme/tools/vision.py 35 36 99
tests/test_generation_pre_snapshot_boundary.py 38 39 99
tests/test_knowledge_subprocess.py 8 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_agent_fork_command.py 18 5 95
tests/test_openrouter_cache_pricing.py 28 5 95
tests/test_session.py 40 21 95
tests/test_server_v2_sse.py 26 27 94
gptme/config/__init__.py 7 16 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_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_swebench_utils.py 27 2 89
gptme/commands/__init__.py 16 21 88
gptme/constants.py 43 50 88
gptme/tools/memory.py 34 40 88
tests/test_commands_rag.py 16 2 88
tests/test_server_cors.py 33 20 88
gptme/eval/suites/behavioral/circuit_breaker.py 53 118 87
gptme/llm/models/recommended.py 19 31 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
gptme/eval/suites/behavioral/implement_memoization.py 50 112 85
tests/test_util.py 42 85 85
gptme/tools/_browser_lynx.py 11 8 84
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
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
tests/test_cli_llm_generate.py 19 12 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_prompt_queue.py 33 15 80
tests/test_prompt_skills_summary.py 44 44 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/util/context_savings.py 20 6 77
tests/test_eval_timeouts.py 32 33 77
tests/test_release_preflight.py 5 2 77
tests/test_xml_format.py 33 91 77
gptme/cli/cmd_capabilities.py 8 6 76
gptme/context/compress.py 63 131 76
gptme/util/output_storage.py 31 40 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_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
tests/test_subscription_pricing.py 27 14 74
gptme/tools/progress.py 24 53 73
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
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
gptme/util/generate_name.py 5 6 69
tests/test_cli_sound.py 20 0 69
tests/test_server_audio_transcription.py 20 15 69
gptme/util/_sound_cmd.py 22 18 68
gptme/util/context_measurement.py 13 20 68
tests/test_hooks_form_autodetect.py 22 34 68
tests/test_docs_tool_formats_coverage.py 16 15 67
tests/test_tools_form.py 22 19 67
gptme/cli/cmd_sound.py 26 15 66
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
gptme/logmanager/conv_checkpoints.py 21 19 65
tests/test_computer_api.py 90 401 65
tests/test_eval_tool_efficiency.py 20 11 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_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_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_validate_release_package.py 14 1 58
gptme/tools/clarify.py 17 26 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
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_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
tests/test_util_export.py 25 17 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
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/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_logmanager_locking.py 14 4 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_util_generate_name.py 17 10 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
tests/test_server_cli_fallback.py 16 12 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
scripts/validate_release_package.py 12 4 40
tests/test_check_rst_formatting.py 28 59 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
tests/test_logmanager_corrupt_lines.py 12 1 37
gptme/cli/wut.py 13 12 36
gptme/commands/rag.py 17 8 36
tests/test_message_command.py 14 13 36
gptme/eval/suites/behavioral/iterative_debug.py 28 39 35
tests/test_tools_pruner.py 9 0 35
gptme/tools/subagent/context.py 22 81 34
tests/test_cli_confirm_hook.py 24 20 34
tests/test_credentials.py 16 0 34
gptme/context/__init__.py 8 8 33
gptme/memory/__init__.py 3 4 33
tests/test_shell_for_loop_issue724.py 16 24 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
gptme/hooks/cwd_awareness.py 11 18 29
gptme/util/git_cmd.py 12 30 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
gptme/util/useredit.py 11 13 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
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/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/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: 79066 74029 309180
-------------------------------------------------------------------------------------------------------------------------------
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: 976
Total blocks: 22044
Average complexity: 3.8326982398838685
Most Complex Functions (D+):
gptme/codeblock.py
F 102:0 _find_heredoc_terminator - E
F 240:0 _scan_ipython_triple_quote - D
gptme/plugins/__init__.py
F 205:0 _load_plugin - D
gptme/info.py
F 431:0 format_version_info - D
gptme/message.py
F 648:0 format_msgs - D
F 755:0 print_msg - D
gptme/tools/shell_flags.py
F 414:0 _split_lines - D
F 560:0 _check_segment - D
gptme/tools/computer.py
F 1386:0 _dispatch_transport - D
gptme/tools/chats.py
gptme/tools/read.py
F 476:0 execute_read - D
gptme/tools/shell_background.py
M 172:4 BackgroundJob._read_output - D
gptme/tools/mcp.py
gptme/tools/hashline_edit.py
F 808:0 execute_hashline_edit - D
gptme/tools/shell.py
M 1172:4 ShellSession._run_pipe - E
M 1392:4 ShellSession._read_output_windows - E
F 3465:0 _explicit_timeout_seconds - D
M 933:4 ShellSession._run_with_tty - D
gptme/tools/gh.py
F 100:0 _wait_for_checks - D
gptme/tools/mcp_adapter.py
F 570:0 load_mcp_server - D
gptme/tools/save.py
F 127:0 execute_save_impl - D
gptme/tools/lessons.py
F 391:0 _auto_include_lessons - E
gptme/tools/shell_validation.py
F 385:0 _has_sensitive_args - D
F 859:0 _interpreter_gets_program - D
gptme/tools/complete.py
F 190:0 complete_hook - E
F 679:0 stuck_detect_hook - D
gptme/tools/watch.py
F 1001:0 _watch - E
gptme/tools/subagent/execution.py
F 121:0 _resolve_profile_tools - D
F 747:0 _run_subagent_subprocess - D
gptme/tools/subagent/batch.py
gptme/tools/subagent/api.py
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/tmux.py
F 423:0 execute_tmux - D
gptme/tools/base.py
F 396:0 render_tool_conditionals - D
gptme/tools/autocompact/resume.py
F 944:0 _apply_native_compaction - E
gptme/tools/autocompact/hook.py
gptme/tools/autocompact/engine.py
gptme/tools/python.py
F 423:0 execute_python - D
gptme/logmanager/manager.py
M 693:4 LogManager.write - D
gptme/telemetry.py
F 442:0 record_llm_request - D
F 362:0 _calculate_llm_cost - D
gptme/init.py
F 159:0 init_model - D
F 319:0 _record_selection_trace - D
gptme/server/api_v2_agents.py
F 57:0 api_agents_put - D
gptme/server/api_v2.py
F 1825:0 api_conversation_put - E
F 2304:0 api_conversation_edit_message - E
F 3086:0 api_conversation_config_patch - E
F 1686:0 api_conversation - E
F 2059:0 api_conversation_post - E
F 740:0 _parse_mcp_request - 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 477:0 _acp_step - D
gptme/server/session_models.py
M 560:4 SessionManager.clean_inactive_sessions - D
gptme/server/openapi_docs.py
F 1179:0 _convert_to_openapi_nullable - D
gptme/server/api_v2_sessions.py
F 677:0 api_conversation_tool_confirm - E
F 1156:0 api_conversation_transcript - D
F 921:0 api_conversation_rerun - D
gptme/server/a2a_api.py
F 494:0 _task_from_conversation - D
gptme/acp/agent.py
M 655:4 GptmeAgent.new_session - E
M 1128:4 GptmeAgent.prompt - D
gptme/eval/suites/practical16.py
F 68:0 check_queue_all_producers_mentioned - D
gptme/eval/suites/constraint_satisfaction.py
F 255:0 check_boundary_domain_no_infra_import - D
gptme/eval/main.py
gptme/eval/leaderboard.py
F 928:0 compute_rate_trends - D
F 692:0 aggregate_per_test - 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/trends.py
F 157:0 compute_diff - D
gptme/config/models.py
M 406:4 ProjectConfig.from_dict - D
gptme/config/core.py
M 90:4 Config.mcp - D
gptme/config/cli_setup.py
gptme/config/chat.py
M 164:4 ChatConfig.from_dict - E
M 315:4 ChatConfig.save - D
gptme/config/user.py
F 950:0 _merge_config_data - E
gptme/context/selector/rule_based.py
M 27:4 RuleBasedSelector.select - D
gptme/context/selector/file_selector.py
gptme/memory/schema.py
gptme/hooks/token_awareness.py
F 93:0 add_token_usage_warning - D
gptme/hooks/registry.py
M 178:4 HookRegistry.trigger - D
gptme/hooks/cli_confirm.py
F 173:0 _looks_like_diff - D
gptme/hooks/workspace_agents.py
F 1345:0 scan_agents - D
gptme/hooks/tool_target_instructions.py
F 67:0 _extract_paths - D
gptme/hooks/time_awareness.py
F 161:0 add_time_message - E
gptme/hooks/__init__.py
F 115:0 init_hooks - D
gptme/hooks/guardrails.py
F 241:0 guardrail_hook - D
gptme/workspace_snapshot.py
F 417:0 prune_by_age - D
gptme/agent/doctor.py
F 339:0 check_lessons - E
gptme/commands/llm.py
F 196:0 cmd_tools - D
F 287:0 cmd_context - D
gptme/commands/meta.py
F 142:0 cmd_plugin - E
gptme/commands/checkpoint.py
F 43:0 cmd_checkpoint - D
gptme/commands/snapshot.py
F 42:0 _print_prunable - D
gptme/commands/backtrack.py
F 65:0 cmd_backtrack - D
gptme/tui/app.py
M 3056:4 GptmeApp._generation_body - D
M 1476:4 ChatInput._on_key - D
F 1266:0 complete_input - D
M 881:4 StreamingMessage._update_hidden_segments - D
M 1565:4 ChatInput._cycle_completion - D
F 1117:0 renderables_for_message - D
gptme/lessons/parser.py
F 284:0 parse_lesson - 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/lessons/selector.py
gptme/lessons/installer.py
F 240:0 install_skill - E
F 507:0 check_dependencies - D
gptme/lessons/auto_include.py
F 270:0 _classify_lesson - D
gptme/lessons/hybrid_matcher.py
M 394:4 HybridLessonMatcher._match_with_bm25 - D
gptme/prompts/templates.py
F 91:0 prompt_gptme - E
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/cli/auth.py
F 57:0 auth_login - D
gptme/cli/cmd_hooks.py
F 264:0 run - D
gptme/cli/cmd_knowledge.py
F 288:0 knowledge_search_cmd - D
gptme/cli/main.py
M 104:4 _DynamicHelpCommand.parse_args - D
gptme/cli/cmd_review_pr.py
F 1107:0 review_pr - D
F 657:0 _spawn_review_session - D
gptme/cli/cmd_review_watch.py
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_computer.py
F 1248:0 doctor_cmd - E
F 1009:0 latency_cmd - D
F 1590:0 demo_cmd - D
gptme/cli/cmd_skills.py
F 18:0 skills_list - D
gptme/cli/cmd_memory.py
F 544:0 memory_migrate_knowledge_jsonl - D
gptme/cli/util.py
F 1144:0 llm_generate - D
F 1826:0 models_test - D
F 1731:0 models_info - D
gptme/cli/cmd_service.py
F 597:0 init - E
gptme/cli/cmd_agents.py
F 25:0 run_scan - D
gptme/util/ask_execute.py
F 69:0 execute_with_confirmation - D
gptme/util/tool_format.py
F 104:0 format_tools_list - 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/prompt.py
M 294:4 GptmeCompleter.get_completions - D
gptme/util/capabilities_export.py
F 549:0 validate_snapshot - D
gptme/util/_telemetry.py
F 326:0 init_telemetry - D
gptme/util/context.py
F 575:0 _include_paths - E
F 1078:0 _resource_to_codeblock - E
gptme/util/reduce.py
F 291:0 _drop_orphaned_tool_pairs - D
F 362:0 limit_log - D
gptme/util/cost_display.py
F 392:0 display_costs - D
F 227:0 gather_conversation_costs - D
gptme/llm/openai_responses.py
gptme/llm/llm_anthropic.py
F 1550:0 _prepare_messages_for_api - E
F 897:0 chat - D
gptme/llm/models/resolution.py
gptme/llm/llm_openai.py
F 574:0 init - E
F 858:0 _handle_openai_transient_error - E
F 1517:0 extra_body - D
F 2277:0 _handle_tools - D
F 264:0 _record_usage - D
gptme/llm/__init__.py
gptme/chat.py
F 397:0 _run_chat_loop - E
F 824:0 _should_prompt_for_input - D
F 212:0 chat - 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_llm_image_attachments.py
F 75:0 test_provider_preserves_image_attachment - D
tests/test_eval_behavioral_solutions.py
F 55:0 _apply_solution - E
tests/test_tui_before_tool_execution.py
F 27:0 test_reply_visible_before_tools_and_not_duplicated - D
tests/test_skill_events.py
F 32:0 test_queue_is_not_completion_and_terminal_requires_valid_transition - 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
tests/test_server.py
F 315:0 test_api_conversation_list_detail_flag - D
tests/test_server_default_profile.py
F 255:0 test_runtime_fragments_survive_patch_and_restart - D
tests/test_commands_llm.py
F 105:0 test_commands_refresh_runtime_fragments_from_live_config - D
tests/test_util_cli.py
F 707:0 test_tools_list - D
F 859:0 test_models_list - D
F 1401:0 test_context_tree_respects_gitignore_anchored_and_negation - D
tests/test_openai_responses_input.py
F 19:0 test_missing_tool_results_are_paired_without_replacing_real_results - D
tests/test_memory_store.py
M 385:4 TestStore.test_concurrent_supersede_keeps_links_consistent - D
tests/test_server_v2_auto_stepping.py
F 16:0 test_auto_stepping - E
F 382:0 test_multi_tool_per_message - D
scripts/treeofthoughts.py
F 183:0 tree_search - D
scripts/demo_capture.py
F 485:0 main - D
scripts/github_bot.py
F 554:0 main - 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/docs_structure.py
F 263:0 check_nav - E
scripts/eval_phase0_pruning.py
F 376:0 main - D
Largest Files (>300 SLOC):
6187 tests/test_subagent_unit.py
4601 tests/test_server_v2.py
3792 tests/test_llm_openai.py
3632 tests/test_auto_compact.py
3346 gptme/server/api_v2.py
2989 gptme/tools/shell.py
2854 tests/test_tools_subagent.py
2782 tests/test_tui.py
2703 gptme/tui/app.py
2581 tests/test_config.py
2470 tests/test_server_v2_sessions.py
2441 tests/test_doctor.py
2252 tests/test_eval_behavioral.py
2132 tests/test_tools_shell.py
2130 tests/test_util_review.py
2109 gptme/llm/llm_openai.py
1939 gptme/tools/computer.py
1824 tests/test_chat.py
1708 tests/test_cli.py
1672 gptme/cli/doctor.py
1597 tests/test_init.py
1577 gptme/cli/cmd_computer.py
1490 tests/test_acp_agent.py
1470 gptme/cli/util.py
1465 tests/test_util_cli.py
1390 gptme/cli/main.py
1379 tests/test_codeblock.py
1340 gptme/tools/subagent/api.py
1299 tests/test_tools_computer.py
1290 gptme/server/session_step.py
1285 tests/test_util_cli_review_watch.py
1246 tests/test_tools_shell_validation.py
1245 gptme/hooks/workspace_agents.py
1236 gptme/util/gh.py
1231 gptme/acp/agent.py
1226 tests/test_util_gh.py
1187 gptme/eval/leaderboard.py
1153 tests/test_server.py
1136 gptme/tools/autocompact/resume.py
1127 tests/test_eval_behavioral_solutions.py
1102 gptme/llm/llm_anthropic.py
1095 tests/test_memory_store.py
1094 gptme/tools/subagent/execution.py
1091 tests/test_llm_utils.py
1086 tests/test_tools_base.py
1080 tests/test_llm_anthropic.py
1038 gptme/logmanager/manager.py
1029 tests/test_tools_browser.py
1027 gptme/tools/base.py
1021 tests/test_tools_complete.py
1004 tests/test_tools_hashline_edit.py
995 tests/test_eval.py
987 tests/test_lessons_auto_include.py
985 gptme/server/api_v2_sessions.py
982 tests/test_cmd_service.py
972 tests/test_info.py
970 tests/test_shell_background.py
965 gptme/server/openapi_docs.py
956 gptme/hooks/tests/test_workspace_agents.py
947 gptme/eval/dspy/tasks.py
945 gptme/eval/main.py
941 tests/test_logmanager.py
920 gptme/llm/__init__.py
905 gptme/tools/watch.py
903 gptme/cli/cmd_review_pr.py
889 tests/test_eval_leaderboard.py
864 tests/test_tools_convert.py
859 gptme/llm/models/data.py
843 tests/test_knowledge.py
831 tests/test_tasks_api.py
830 tests/test_mcp_adapter.py
821 tests/test_util_gh_mocked.py
820 gptme/eval/suites/computer.py
819 tests/test_eval_computer_suite.py
816 tests/test_prompt_templates.py
810 gptme/util/context.py
803 gptme/tools/shell_background.py
801 tests/test_sandbox.py
799 gptme/tools/mcp_adapter.py
794 gptme/tools/convert.py
786 tests/test_llm_openai_subscription.py
785 gptme/chat.py
784 tests/test_tools_gh.py
781 tests/test_cost_display.py
781 gptme/tools/browser.py
758 tests/test_tools.py
751 gptme/eval/execenv.py
750 tests/test_acp_session_runtime.py
746 gptme/tools/chats.py
743 tests/test_server_workspace.py
732 gptme/config/user.py
720 gptme/cli/cmd_review_watch.py
719 gptme/cli/setup.py
717 tests/test_eventlog.py
716 tests/test_tools_restart.py
716 tests/test_hooks_registry.py
715 gptme/tools/subagent/batch.py
715 gptme/eval/suites/basic.py
714 gptme/tools/__init__.py
713 tests/test_computer_transport.py
709 tests/test_context.py
707 tests/test_agent.py
707 gptme/tools/_browser_playwright.py
705 gptme/tools/hashline_edit.py
683 gptme/cli/cmd_service.py
680 gptme/server/tasks_api.py
677 tests/test_llm_models_resolution.py
675 tests/test_tui_e2e.py
672 tests/test_relevance_pruning.py
664 tests/test_tools_lessons.py
656 tests/test_tools_watch.py
655 gptme/cli/cmd_memory.py
647 gptme/tools/shell_validation.py
643 tests/test_json_output.py
640 gptme/tools/gh.py
638 gptme/llm/llm_openai_subscription.py
636 tests/test_message.py
628 tests/test_prompts.py
626 tests/test_subagent_budget.py
612 tests/test_lessons.py
609 scripts/github_bot.py
607 tests/test_computer_doctor_cmd.py
602 tests/test_lessons_index.py
601 tests/conftest.py
599 gptme/util/capabilities_export.py
598 tests/test_tools_read.py
595 tests/test_server_panels.py
593 gptme/eval/run.py
591 gptme/prompts/__init__.py
587 tests/test_mcp_server.py
583 gptme/tools/complete.py
578 tests/test_tools_request_tool_change.py
578 tests/test_tools_precommit.py
576 tests/test_server_session_models.py
576 tests/test_lessons_parser.py
573 tests/test_skill_installer.py
573 gptme/hooks/tests/test_anomaly_watchdog.py
567 scripts/github_ci_self_heal.py
567 gptme/tools/computer_transport.py
566 tests/test_served_model_metadata.py
564 gptme/tools/python.py
559 tests/test_compaction_recall.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 tests/test_context_scout.py
546 tests/test_computer_actions.py
543 tests/test_subagent_persistence.py
543 gptme/tools/subagent/__init__.py
542 tests/test_llm_models.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_gptme_provider.py
531 tests/test_dirs.py
529 tests/test_server_subscription_connect.py
527 gptme/hooks/tests/test_agents_md_inject.py
525 tests/test_hooks_cost_awareness.py
524 tests/test_server_bad_input.py
514 tests/test_commands.py
514 gptme/lessons/installer.py
512 gptme/message.py
507 tests/test_tools_patch_many.py
507 gptme/memory/store.py
506 tests/test_capabilities_export.py
503 gptme/hooks/registry.py
498 tests/test_overflow_recovery.py
495 gptme/tools/autocompact/hook.py
493 gptme/server/session_models.py
490 gptme/cli/cmd_chats.py
486 gptme/server/workspace_api.py
484 tests/test_hooks_cache_awareness.py
484 gptme/codeblock.py
483 gptme/tools/tmux.py
483 gptme/tools/read.py
482 tests/test_computer_demo_cmd.py
478 gptme/llm/openai_responses.py
477 tests/test_snapshot_command.py
476 tests/test_telemetry.py
473 tests/test_dataset.py
472 gptme/hooks/tests/test_cost_awareness.py
462 gptme/tools/lessons.py
458 tests/test_llm_auth.py
456 tests/test_llm_openai_sampling.py
456 gptme/agent/workspace.py
454 gptme/telemetry.py
454 gptme/llm/llm_openai_models.py
452 gptme/lessons/index.py
451 scripts/demo_capture.py
451 scripts/check_rst_formatting.py
447 gptme/hooks/tests/test_time_awareness.py
446 tests/test_server_skill_events.py
445 scripts/analyze_compression.py
444 tests/test_shell_foreground_promotion.py
444 gptme/util/_telemetry.py
442 gptme/tools/shell_flags.py
438 tests/test_util_cli_providers.py
436 tests/test_computer_api.py
436 tests/test_compaction_native_anthropic.py
436 gptme/lessons/auto_include.py
426 gptme/util/prompt.py
425 tests/test_tools_browser_thread.py
423 tests/test_external_sessions.py
422 tests/test_lessons_commands.py
421 gptme/eval/dspy/prompt_optimizer.py
419 gptme/agent/service.py
418 tests/context/test_task_analyzer.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
410 gptme/tools/autocompact/engine.py
409 tests/test_provider_plugins.py
407 gptme/tools/subagent/hooks.py
406 tests/test_tools_patch.py
406 gptme/util/cost_display.py
405 tests/test_lessons_selector.py
404 tests/test_llm_validate.py
401 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
395 tests/test_profiles.py
395 tests/test_hybrid_lessons.py
394 gptme/prompts/templates.py
394 gptme/agent/cli.py
393 tests/test_computer_latency_cmd.py
393 scripts/eval_phase0_pruning.py
389 tests/test_chats_external_search.py
388 gptme/workspace_snapshot.py
388 gptme/agent/doctor.py
387 tests/test_reduce.py
386 tests/test_util_cli_attest.py
385 tests/test_search_alias.py
385 tests/test_guardrail_hook.py
384 gptme/logmanager/conversations.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 gptme/server/external_sessions.py
371 tests/test_github_ci_self_heal.py
371 tests/test_conversations.py
371 gptme/cli/cmd_status.py
370 tests/test_server_v2_agents.py
370 tests/test_preview_proxy.py
370 gptme/hooks/anomaly_watchdog.py
369 tests/test_workspace_api.py
367 gptme/hooks/tests/test_guardrails.py
365 tests/test_util_cli_skills.py
365 gptme/info.py
364 tests/test_computer_record.py
364 gptme/lessons/hybrid_matcher.py
364 gptme/eval/dspy/cli.py
363 tests/test_replay.py
363 gptme/tools/subagent/types.py
362 gptme/sandbox.py
361 tests/test_cost_tracker.py
358 gptme/config/chat.py
357 gptme/config/models.py
356 tests/test_context_providers.py
356 gptme/mcp/client.py
355 gptme/eval/dspy/experiments.py
353 tests/test_workspace_agents.py
353 tests/test_lessons_emissions.py
352 gptme/tools/mcp.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_complete.py
347 gptme/hooks/tests/test_confirm.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_context_selector.py
340 tests/test_computer_semantic_fixtures.py
337 gptme/hooks/cost_awareness.py
336 tests/test_eval_trends.py
334 tests/test_llm_grok_subscription.py
332 gptme/eval/suites/constraint_satisfaction.py
332 gptme/cli/cmd_knowledge.py
330 gptme/util/safety.py
327 tests/test_mcp.py
326 scripts/treeofthoughts.py
326 gptme/eval/suites/practical.py
325 gptme/tools/patch.py
323 tests/test_tools_morph.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
321 gptme/checkpoint.py
320 gptme/tools/save.py
319 gptme/context/scout.py
318 tests/test_agent_doctor.py
317 gptme/eval/suites/practical16.py
316 tests/test_util_cli_batch.py
316 gptme/eval/trends.py
314 tests/test_eval_swebench.py
312 tests/test_skill_metrics.py
312 tests/test_plugins.py
310 tests/test_tools_rag.py
308 tests/test_browser.py
307 gptme/attestation.py
306 gptme/server/preview_proxy_api.py
305 tests/test_hooks_knowledge_inject.py
305 gptme/server/cli.py
304 gptme/commands/llm.py
303 gptme/tools/_browser_thread.py
303 gptme/llm/validate.py
303 gptme/dataset/trajectory_to_env.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.1
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 [132:5 - 145:39] (14 lines, 54 tokens)
cli/cmd_review_watch.py [576:5 - 589:39]
Clone found (python)
- cli/cmd_batch.py [145:37 - 159:38] (15 lines, 61 tokens)
cli/cmd_review_watch.py [591:45 - 605: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 [38:25 - 58:13] (21 lines, 92 tokens)
cli/cmd_dataset.py [99:26 - 119: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 [95:5 - 106:14] (12 lines, 87 tokens)
cli/cmd_review_watch.py [128:5 - 139:14]
Clone found (python)
- cli/cmd_review_watch.py [847:86 - 861:80] (15 lines, 55 tokens)
cli/cmd_review_watch.py [1014:64 - 1032: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 [1990:9 - 1997:72] (8 lines, 54 tokens)
cli/util.py [2023:5 - 2030: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 [57:10 - 76:4] (20 lines, 132 tokens)
tools/autocompact/events.py [59:23 - 78:4]
Clone found (python)
- config/chat.py [61:13 - 76:4] (16 lines, 100 tokens)
logmanager/eventlog.py [102:13 - 117:4]
Clone found (python)
- config/user.py [880:5 - 892:4] (13 lines, 62 tokens)
config/user.py [938:5 - 950: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/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/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 [400:21 - 406:32] (7 lines, 67 tokens)
llm/__init__.py [871:21 - 877:32]
Clone found (python)
- llm/__init__.py [592:19 - 600:5] (9 lines, 56 tokens)
llm/__init__.py [748:12 - 756:5]
Clone found (python)
- llm/__init__.py [629:5 - 642:17] (14 lines, 54 tokens)
llm/__init__.py [785:5 - 798:17]
Clone found (python)
- llm/llm_anthropic.py [203:29 - 220:68] (18 lines, 77 tokens)
llm/llm_openai.py [335:26 - 352:68]
Clone found (python)
- llm/llm_anthropic.py [559:5 - 576:21] (18 lines, 61 tokens)
llm/llm_openai.py [883:5 - 901:21]
Clone found (python)
- llm/llm_anthropic.py [670:5 - 678:38] (9 lines, 66 tokens)
llm/llm_openai.py [1075:5 - 1083:38]
Clone found (python)
- llm/llm_anthropic.py [681:83 - 699:30] (19 lines, 64 tokens)
llm/llm_openai.py [1086:44 - 1104:30]
Clone found (python)
- llm/llm_anthropic.py [897:9 - 904:32] (8 lines, 56 tokens)
llm/llm_anthropic.py [1031:11 - 1038:32]
Clone found (python)
- llm/llm_anthropic.py [919:5 - 954:6] (36 lines, 161 tokens)
llm/llm_anthropic.py [1063:5 - 1098:6]
Clone found (python)
- llm/llm_grok_subscription.py [236:63 - 250:14] (15 lines, 51 tokens)
llm/llm_openai_subscription.py [420:50 - 433: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 [1186:9 - 1194:5] (9 lines, 52 tokens)
llm/llm_openai.py [1801:11 - 1809:5]
Clone found (python)
- llm/llm_openai.py [1201:5 - 1210:84] (10 lines, 50 tokens)
llm/llm_openai.py [1816:5 - 1825:84]
Clone found (python)
- llm/llm_openai.py [1278:5 - 1295:82] (18 lines, 111 tokens)
llm/llm_openai.py [1841:5 - 1857:82]
Clone found (python)
- llm/llm_openai.py [2619:48 - 2626:52] (8 lines, 50 tokens)
llm/llm_openai.py [2636:32 - 2643: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 [191:26 - 204:15] (14 lines, 58 tokens)
llm/models/data.py [206:26 - 219:15]
Clone found (python)
- llm/models/data.py [276:35 - 286:11] (11 lines, 55 tokens)
llm/models/data.py [287:33 - 297:11]
Clone found (python)
- llm/openai_responses.py [326:74 - 340:4] (15 lines, 52 tokens)
llm/openai_responses.py [390:67 - 404:4]
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)
- plugins/__init__.py [481:5 - 506:4] (26 lines, 110 tokens)
util/install.py [14:5 - 39:4]
Clone found (python)
- prompt_queue.py [40:5 - 53:4] (14 lines, 70 tokens)
tools/subagent/control.py [34:5 - 47:4]
Clone found (python)
- prompt_queue.py [86:40 - 96:68] (11 lines, 58 tokens)
prompt_queue.py [148:43 - 158: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 [1299:84 - 1317:4] (19 lines, 69 tokens)
server/api_v2.py [1351:5 - 1369:4]
Clone found (python)
- server/api_v2.py [1319:5 - 1335:15] (17 lines, 118 tokens)
server/api_v2.py [1390:5 - 1406:15]
Clone found (python)
- server/api_v2.py [2061:5 - 2068:76] (8 lines, 61 tokens)
server/api_v2.py [3089:5 - 3096:76]
Clone found (python)
- server/api_v2.py [2098:5 - 2118:30] (21 lines, 95 tokens)
server/api_v2.py [2716:5 - 2736:30]
Clone found (python)
- server/api_v2.py [2106:31 - 2118:30] (13 lines, 54 tokens)
server/api_v2.py [3153:33 - 3165:30]
Clone found (python)
- server/api_v2.py [2278:118 - 2293:11] (16 lines, 54 tokens)
server/api_v2.py [2434:97 - 2449:11]
Clone found (python)
- server/api_v2.py [2338:5 - 2356:40] (19 lines, 82 tokens)
server/api_v2.py [2463:5 - 2482:30]
Clone found (python)
- server/api_v2.py [2356:86 - 2375:14] (20 lines, 80 tokens)
server/api_v2.py [2482:78 - 2502:14]
Clone found (python)
- server/api_v2.py [2583:5 - 2594:10] (12 lines, 61 tokens)
server/api_v2.py [2609:9 - 2622:14]
Clone found (python)
- server/api_v2.py [3329:58 - 3342:38] (14 lines, 94 tokens)
server/api_v2.py [3365:51 - 3378:38]
Clone found (python)
- server/api_v2.py [3333:5 - 3342:38] (10 lines, 73 tokens)
server/api_v2.py [4000:5 - 4009:38]
Clone found (python)
- server/api_v2.py [3370:74 - 3381:15] (12 lines, 54 tokens)
server/api_v2.py [4001:74 - 4012:15]
Clone found (python)
- server/api_v2.py [3484:53 - 3489:76] (6 lines, 51 tokens)
server/api_v2.py [3585:52 - 3590:76]
Clone found (python)
- server/api_v2.py [3484:53 - 3491:40] (8 lines, 59 tokens)
server/api_v2.py [3867:64 - 3874:40]
Clone found (python)
- server/api_v2.py [3484:53 - 3489:76] (6 lines, 51 tokens)
server/api_v2.py [3935:50 - 3940:76]
Clone found (python)
- server/api_v2.py [3484:53 - 3489:76] (6 lines, 51 tokens)
server/api_v2.py [4040:54 - 4045:76]
Clone found (python)
- server/api_v2.py [3484:53 - 3489:76] (6 lines, 51 tokens)
server/api_v2.py [4089:54 - 4094:76]
Clone found (python)
- server/api_v2.py [3485:14 - 3492:12] (8 lines, 57 tokens)
server/api_v2.py [3868:14 - 3875: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 [357:96 - 369:81] (13 lines, 74 tokens)
server/api_v2_sessions.py [1249:60 - 1261:81]
Clone found (python)
- server/api_v2_sessions.py [373:5 - 384:15] (12 lines, 51 tokens)
server/api_v2_sessions.py [710:9 - 721:19]
Clone found (python)
- server/api_v2_sessions.py [706:9 - 721:19] (16 lines, 79 tokens)
server/api_v2_sessions.py [1259:5 - 1274:15]
Clone found (python)
- server/api_v2_sessions.py [707:27 - 721:19] (15 lines, 67 tokens)
server/api_v2_sessions.py [939:19 - 953:15]
Clone found (python)
- server/session_models.py [627:25 - 639:46] (13 lines, 76 tokens)
server/session_models.py [688:29 - 700:42]
Clone found (python)
- server/session_models.py [656:21 - 673:8] (18 lines, 66 tokens)
server/session_models.py [715:17 - 732:8]
Clone found (python)
- server/session_step.py [722:5 - 729:69] (8 lines, 52 tokens)
server/session_step.py [1774:5 - 1781: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 [344:74 - 353:26] (10 lines, 73 tokens)
server/workspace_api.py [616:77 - 625:26]
Clone found (python)
- server/workspace_api.py [344:74 - 353:26] (10 lines, 73 tokens)
server/workspace_api.py [683:9 - 692:26]
Clone found (python)
- server/workspace_api.py [568:9 - 588:67] (21 lines, 149 tokens)
server/workspace_api.py [655:9 - 675: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 [592:5 - 601:41]
Clone found (python)
- tools/_browser_playwright.py [803:9 - 818:8] (16 lines, 89 tokens)
tools/browser.py [1128:9 - 1143:8]
Clone found (python)
- tools/_browser_playwright.py [820:60 - 828:62] (9 lines, 59 tokens)
tools/browser.py [1046:68 - 1054:62]
Clone found (python)
- tools/_browser_playwright.py [946:69 - 959:27] (14 lines, 77 tokens)
tools/browser.py [1226:44 - 1239:27]
Clone found (python)
- tools/_browser_playwright.py [1129:1 - 1144:43] (16 lines, 61 tokens)
tools/browser.py [1353:1 - 1368: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 [1043:9 - 1049:64] (7 lines, 57 tokens)
tools/autocompact/resume.py [1253:13 - 1259:68]
Clone found (python)
- tools/autocompact/resume.py [1059:5 - 1073:25] (15 lines, 87 tokens)
tools/autocompact/resume.py [1283:9 - 1298:29]
Clone found (python)
- tools/clarify.py [45:5 - 60:31] (16 lines, 83 tokens)
tools/complete.py [229:5 - 244:31]
Clone found (python)
- tools/complete.py [430:5 - 438:15] (9 lines, 50 tokens)
tools/complete.py [504:5 - 512: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 [382:19 - 400:35] (19 lines, 63 tokens)
tools/convert.py [687:18 - 705:35]
Clone found (python)
- tools/convert.py [383:9 - 400:35] (18 lines, 62 tokens)
tools/convert.py [564:34 - 581:35]
Clone found (python)
- tools/convert.py [385:5 - 400:35] (16 lines, 61 tokens)
tools/convert.py [468:5 - 483:35]
Clone found (python)
- tools/convert.py [471:19 - 486:18] (16 lines, 61 tokens)
tools/convert.py [569:19 - 584:18]
Clone found (python)
- tools/gh.py [79:9 - 88:59] (10 lines, 53 tokens)
tools/gh.py [152:13 - 160:63]
Clone found (python)
- tools/patch.py [336:5 - 348:23] (13 lines, 55 tokens)
tools/save.py [137:5 - 149:23]
Clone found (python)
- tools/precommit.py [119:52 - 126:61] (8 lines, 51 tokens)
tools/precommit.py [130:67 - 137:61]
Clone found (python)
- tools/save.py [141:5 - 154:34] (14 lines, 56 tokens)
tools/save.py [252:5 - 265:34]
Clone found (python)
- tools/shell.py [471:5 - 482:58] (12 lines, 71 tokens)
tools/shell_background.py [84:5 - 95:58]
Clone found (python)
- tools/shell.py [592:71 - 613:4] (22 lines, 95 tokens)
tools/subagent/execution.py [1123:75 - 1144:4]
Clone found (python)
- tools/shell.py [1392:29 - 1406:11] (15 lines, 76 tokens)
tools/shell.py [1824:26 - 1838:11]
Clone found (python)
- tools/shell.py [1530:21 - 1539:40] (10 lines, 50 tokens)
tools/shell.py [1615:29 - 1624:48]
Clone found (python)
- tools/shell.py [1530:21 - 1549:26] (20 lines, 94 tokens)
tools/shell.py [1645:25 - 1664:30]
Clone found (python)
- tools/shell.py [1530:21 - 1549:26] (20 lines, 94 tokens)
tools/shell.py [1701:25 - 1720:30]
Clone found (python)
- tools/shell.py [1531:25 - 1551:39] (21 lines, 103 tokens)
tools/shell.py [1674:25 - 1694:39]
Clone found (python)
- tools/shell.py [1538:69 - 1552:27] (15 lines, 64 tokens)
tools/shell.py [1681:69 - 1695:31]
Clone found (python)
- tools/shell.py [1644:64 - 1664:30] (21 lines, 95 tokens)
tools/shell.py [1748:39 - 1768:26]
Clone found (python)
- tools/shell.py [1653:73 - 1666:25] (14 lines, 53 tokens)
tools/shell.py [1709:73 - 1722:25]
Clone found (python)
- tools/shell.py [2757:5 - 2767:31] (11 lines, 55 tokens)
tools/shell.py [2808:5 - 2818:31]
Clone found (python)
- tools/shell_validation.py [259:9 - 267:21] (9 lines, 53 tokens)
tools/shell_validation.py [616:9 - 624: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/subagent/context.py [20:9 - 30:16] (11 lines, 60 tokens)
tools/subagent/context.py [47:9 - 57:16]
Clone found (python)
- tools/watch.py [361:9 - 366:26] (6 lines, 55 tokens)
tools/watch.py [479:9 - 484:27]
Clone found (python)
- tui/app.py [273:22 - 278:11] (6 lines, 50 tokens)
tui/app.py [605:25 - 610:11]
Clone found (python)
- tui/app.py [782:66 - 792:26] (11 lines, 51 tokens)
tui/app.py [808:70 - 818:26]
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/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 [389:5 - 403:26] (15 lines, 88 tokens)
workspace_snapshot.py [467:5 - 481: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 │ 799 │ 3326 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ css │ 1 │ 174 │ 1100 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ javascript │ 1 │ 618 │ 3358 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ markdown │ 7 │ 1903 │ 14795 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ markup │ 2 │ 482 │ 3220 │ 0 │ 0 (0.00%) │ 0 (0.00%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ python │ 510 │ 213697 │ 1033979 │ 197 │ 2586 (1.21%) │ 13649 (1.32%) │
├────────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ text │ 3 │ 32 │ 330 │ 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: │ 539 │ 217987 │ 1062002 │ 197 │ 2586 (1.19%) │ 13649 (1.29%) │
└────────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘
Found 197 clones.
time: 478.729ms
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