tunacode-cli 0.1.74__tar.gz → 0.1.75__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. tunacode_cli-0.1.75/.claude/delta/2026-02-22-enable-mypy-pre-commit-hook.md +34 -0
  2. tunacode_cli-0.1.75/.claude/delta/2026-02-22-mypy-type-contract-fixes.md +47 -0
  3. tunacode_cli-0.1.75/.claude/delta/2026-02-23_parallel-tool-call-rollout.md +34 -0
  4. tunacode_cli-0.1.75/.claude/metadata/research/2026-02-23-parallel-tool-calls-rollout-plan.md +117 -0
  5. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.pre-commit-config.yaml +2 -2
  6. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/CHANGELOG.md +17 -0
  7. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/PKG-INFO +13 -4
  8. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/README.md +11 -2
  9. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/core/core.md +26 -1
  10. tunacode_cli-0.1.75/docs/modules/tools/hashline-subsystem.md +329 -0
  11. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/tools/tools.md +25 -4
  12. tunacode_cli-0.1.75/memory-bank/research/2026-02-22_04-30-00_compact_ux_issues.md +132 -0
  13. tunacode_cli-0.1.75/memory-bank/research/2026-02-22_compact-command-ux-mapping.md +140 -0
  14. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/pyproject.toml +2 -2
  15. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/pytest.ini +1 -0
  16. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/check-file-length.sh +2 -0
  17. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/settings.py +1 -1
  18. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/user_config.py +1 -1
  19. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/constants.py +2 -2
  20. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/agent_components/agent_config.py +54 -6
  21. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/main.py +161 -7
  22. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/compaction/types.py +10 -10
  23. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/prompts/system_prompt.md +13 -12
  24. tunacode_cli-0.1.75/src/tunacode/tools/discover.py +77 -0
  25. tunacode_cli-0.1.75/src/tunacode/tools/hashline.py +106 -0
  26. tunacode_cli-0.1.75/src/tunacode/tools/hashline_edit.py +292 -0
  27. tunacode_cli-0.1.75/src/tunacode/tools/line_cache.py +141 -0
  28. tunacode_cli-0.1.75/src/tunacode/tools/prompts/hashline_edit_prompt.xml +16 -0
  29. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/prompts/read_file_prompt.xml +2 -0
  30. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/read_file.py +55 -20
  31. tunacode_cli-0.1.75/src/tunacode/tools/utils/discover_pipeline.py +447 -0
  32. tunacode_cli-0.1.75/src/tunacode/tools/utils/discover_terms.py +213 -0
  33. tunacode_cli-0.1.75/src/tunacode/tools/utils/discover_types.py +91 -0
  34. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/web_fetch.py +2 -1
  35. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/write_file.py +1 -1
  36. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/app.py +6 -5
  37. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/compact.py +39 -9
  38. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/debug.py +4 -0
  39. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/context_panel.py +17 -0
  40. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/panels.py +76 -11
  41. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/__init__.py +2 -2
  42. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/diagnostics.py +1 -1
  43. tunacode_cli-0.1.74/src/tunacode/ui/renderers/tools/update_file.py → tunacode_cli-0.1.75/src/tunacode/ui/renderers/tools/hashline_edit.py +17 -17
  44. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/read_file.py +50 -11
  45. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/repl_support.py +3 -1
  46. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/shell_runner.py +5 -3
  47. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/styles/panels.tcss +17 -0
  48. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/editor.py +17 -2
  49. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/status_bar.py +51 -2
  50. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/tools/test_tool_conformance.py +1 -1
  51. tunacode_cli-0.1.75/tests/system/cli/test_repl_support.py +95 -0
  52. tunacode_cli-0.1.75/tests/system/cli/test_tmux_tools.py +251 -0
  53. tunacode_cli-0.1.75/tests/tools/__init__.py +0 -0
  54. tunacode_cli-0.1.75/tests/tools/test_hashline.py +141 -0
  55. tunacode_cli-0.1.75/tests/tools/test_hashline_edit.py +296 -0
  56. tunacode_cli-0.1.75/tests/tools/test_line_cache.py +192 -0
  57. tunacode_cli-0.1.75/tests/unit/core/test_request_orchestrator_parallel_tools.py +185 -0
  58. tunacode_cli-0.1.75/tests/unit/core/test_tool_concurrency_limit.py +66 -0
  59. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/tools/test_discover.py +19 -9
  60. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_base_renderer.py +3 -3
  61. tunacode_cli-0.1.74/tests/unit/ui/test_update_file_renderer.py → tunacode_cli-0.1.75/tests/unit/ui/test_hashline_edit_renderer.py +4 -4
  62. tunacode_cli-0.1.75/tests/unit/ui/test_status_bar_layout.py +45 -0
  63. tunacode_cli-0.1.75/tests/unit/ui/test_tool_panel_css_flow.py +160 -0
  64. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/uv.lock +7 -4
  65. tunacode_cli-0.1.74/src/tunacode/tools/discover.py +0 -574
  66. tunacode_cli-0.1.74/src/tunacode/tools/prompts/update_file_prompt.xml +0 -9
  67. tunacode_cli-0.1.74/src/tunacode/tools/update_file.py +0 -67
  68. tunacode_cli-0.1.74/src/tunacode/tools/utils/text_match.py +0 -424
  69. tunacode_cli-0.1.74/tests/system/cli/test_repl_support.py +0 -27
  70. tunacode_cli-0.1.74/tests/unit/core/test_text_match.py +0 -112
  71. tunacode_cli-0.1.74/tests/unit/ui/test_context_panel_summary.py +0 -176
  72. tunacode_cli-0.1.74/tests/unit/ui/test_status_bar_layout.py +0 -17
  73. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/JOURNAL.md +0 -0
  74. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-01-12_missing-cached-tokens.md +0 -0
  75. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-01-21_abort-hang-investigation.md +0 -0
  76. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-01-21_resume-hang-investigation-updated.md +0 -0
  77. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-01-21_resume-hang-investigation.md +0 -0
  78. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-01-21_stream-hang-timeout.md +0 -0
  79. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/2026-02-01_openai-chat-invalid-response.md +0 -0
  80. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/context-loss-bug.md +0 -0
  81. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/continuous-learning.md +0 -0
  82. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/debug_history/list-dir-tool-execution-error.md +0 -0
  83. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-01-16-panel-width-refactoring.md +0 -0
  84. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-01-17-dangling-tool-calls.md +0 -0
  85. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-01-25_orphaned_retry_prompt_on_dangling_cleanup.md +0 -0
  86. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-01-25_tool-registry-todo-alignment.md +0 -0
  87. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-01-26_boundary-contracts-not-enforced.md +0 -0
  88. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-cli-main-compatibility.md +0 -0
  89. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-esc-handler-extraction.md +0 -0
  90. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-pruning-token-estimation-optimization.md +0 -0
  91. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-remove-cli-shim.md +0 -0
  92. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-remove-heuristic-token-counting.md +0 -0
  93. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-remove-toolbuffer-shim.md +0 -0
  94. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-resource-bar-usage-totals.md +0 -0
  95. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-sanitize-canonical-cache.md +0 -0
  96. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-token-pruning-efficiency-plan.md +0 -0
  97. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-02-tool-name-normalization.md +0 -0
  98. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-04-main-agent-refactoring.md +0 -0
  99. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-05-tech-debt-scanner-markdown-exclusion.md +0 -0
  100. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-05-ui-messaging-layer-facade.md +0 -0
  101. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-07_remove-orchestrator-tool-dispatcher.md +0 -0
  102. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-11-compaction-pr378-review-fixes.md +0 -0
  103. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-11-compaction-system-implementation.md +0 -0
  104. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-11-status-bar-content-row-regression.md +0 -0
  105. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-11-theme-variable-contract.md +0 -0
  106. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-11-tinyagent-base-url-provider-flex.md +0 -0
  107. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-16-context-rail-inspector-styling.md +0 -0
  108. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-16-slopgotchi-pet-widget.md +0 -0
  109. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-16-update-file-before-after-separator-lane.md +0 -0
  110. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-17-thinking-delta-tui-integration.md +0 -0
  111. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-17-thinking-integration-plan-hardening.md +0 -0
  112. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-20-app-lifecycle-class-refactor.md +0 -0
  113. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-20-disable-agent-text-streaming-default.md +0 -0
  114. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-20-system-prompt-tooling-refresh.md +0 -0
  115. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/2026-02-21_minimax-tool-call-bugs.md +0 -0
  116. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/remove-all-exports-use-direct-imports.md +0 -0
  117. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/remove-global-cache-user-config.md +0 -0
  118. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/remove-unused-cleanup-session.md +0 -0
  119. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/tun-00df-add-tinyagent-dependency.md +0 -0
  120. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/tun-1658-phase6-messaging-normalization.md +0 -0
  121. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/delta/tun-1ad5-wrap-tools-as-tinyagent-agenttool.md +0 -0
  122. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/metadata/pydantic_runtime_removal_attempt.md +0 -0
  123. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/metadata/research/2026-02-01-glob-text-match-research.md +0 -0
  124. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/metadata/research/2026-02-12-tinyagent-rust-only-migration-map.md +0 -0
  125. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/patterns/cache-layer-typed-accessors.md +0 -0
  126. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/patterns/usage-total-token-source.md +0 -0
  127. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/qa/2026-02-11-theme-visual-verification.md +0 -0
  128. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/qa/no-cargo-cult-fixes.md +0 -0
  129. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/qa/raw.md +0 -0
  130. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/qa/semantically-dead-code.md +0 -0
  131. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_01_canonical_messaging_adoption.md +0 -0
  132. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_02_session_state_decomposition.md +0 -0
  133. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_03_message_parity_harness.md +0 -0
  134. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_04_canonical_sanitization.md +0 -0
  135. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_05_tool_call_registry_ownership.md +0 -0
  136. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_06_react_state_alignment.md +0 -0
  137. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_07_todo_state_alignment.md +0 -0
  138. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_08_usage_metrics_consolidation.md +0 -0
  139. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_09_architecture_enforcement_tests.md +0 -0
  140. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.claude/task/task_10_legacy_path_decommission.md +0 -0
  141. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.coderabbit.yaml +0 -0
  142. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  143. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  144. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  145. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  146. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/dependabot.yml +0 -0
  147. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/pull_request_template.md +0 -0
  148. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/dependency-map.yml +0 -0
  149. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/empty-dir-check.yml +0 -0
  150. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/lint.yml +0 -0
  151. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/publish-release.yml +0 -0
  152. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/release.yml +0 -0
  153. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.github/workflows/tech-debt.yml +0 -0
  154. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.gitignore +0 -0
  155. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.test_reports/.gitkeep +0 -0
  156. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/.worktree-meta +0 -0
  157. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/AGENTS.md +0 -0
  158. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/AUDIT_SMALL_WINS_PLAN.md +0 -0
  159. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/CLAUDE.md +0 -0
  160. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/LICENSE +0 -0
  161. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/MANIFEST.in +0 -0
  162. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/Makefile +0 -0
  163. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/NOTES.md +0 -0
  164. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/assets/tunacode.png +0 -0
  165. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/assets/tunacode_example.png +0 -0
  166. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/README.md +0 -0
  167. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/architecture/dependencies/DEPENDENCY_LAYERS.dot +0 -0
  168. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/architecture/dependencies/DEPENDENCY_LAYERS.md +0 -0
  169. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/architecture/dependencies/DEPENDENCY_LAYERS.png +0 -0
  170. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/boundaries/.gitkeep +0 -0
  171. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/codebase-map/structure/tree-structure.txt +0 -0
  172. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/exceptions/.gitkeep +0 -0
  173. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/dream-ui/tunacode-cli-home-catpu.png +0 -0
  174. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/dream-ui/tunacode-cli-home.png +0 -0
  175. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/dream-ui/tunacode-cli-lsp.png +0 -0
  176. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/dream-ui/tunacode-cli-response.png +0 -0
  177. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/tool-calls.png +0 -0
  178. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/images/tunacode.png +0 -0
  179. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/migration/.gitkeep +0 -0
  180. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/configuration/configuration.md +0 -0
  181. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/index.md +0 -0
  182. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/infrastructure/infrastructure.md +0 -0
  183. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/types/types.md +0 -0
  184. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/ui/commands.md +0 -0
  185. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/ui/ui.md +0 -0
  186. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/modules/utils/utils.md +0 -0
  187. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/quality-gates/.gitkeep +0 -0
  188. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/runbooks/.gitkeep +0 -0
  189. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/tests/.gitkeep +0 -0
  190. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/docs/ui/css-architecture.md +0 -0
  191. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/handoff.md +0 -0
  192. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/delta/2026-01-28_decoupled-tools.md +0 -0
  193. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/execute/2026-01-27_17-52-14_insert-before-stream-fix.md +0 -0
  194. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/execute/2026-01-27_18-00-00_insert-before-stream-fix.md +0 -0
  195. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/execute/2026-01-27_21-50-00_tickets.md +0 -0
  196. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/handoffs/tinyagent-baseurl-integration.md +0 -0
  197. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-26_14-30-00_planning-feature-deletion.md +0 -0
  198. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-26_17-11-28_single-md-prompt-migration.md +0 -0
  199. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-26_17-15-00_research-subagent-deletion.md +0 -0
  200. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_00-19-58_issue-311-core-types-layer.md +0 -0
  201. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_17-41-42_insert-before-stream-fix.md +0 -0
  202. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_17-59-28_issue-313-core-utils-layer-violation.md +0 -0
  203. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_21-30-00_issue-314-lateral-coupling.md +0 -0
  204. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_21-45-00_delete-indexing-system.md +0 -0
  205. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-27_chat-container-refactor.md +0 -0
  206. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-01-28_pydantic-ai-adapter-layer.md +0 -0
  207. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-01_complexity-refactoring.md +0 -0
  208. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-02_13-29-36_esc-logic-module-extraction.md +0 -0
  209. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-02_16-46-20_pydantic-usage-token-counting.md +0 -0
  210. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-02_sanitize-loop-canonicalization-bottleneck.md +0 -0
  211. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-02_token-pruning-efficiency-plan.md +0 -0
  212. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-05_issue-358_tool-dispatcher-complexity.md +0 -0
  213. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-11_04-15-37_compaction-system.md +0 -0
  214. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-11_theme-architecture-handoff.md +0 -0
  215. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-17_thinking-content-integration.md +0 -0
  216. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/2026-02-19_api-key-ux-improvement.md +0 -0
  217. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/dream-mockup-slim-panels.webp +0 -0
  218. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/nextstep-theme.png +0 -0
  219. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/nextstep-theme.svg +0 -0
  220. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/tunacode-theme.png +0 -0
  221. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/tunacode-theme.svg +0 -0
  222. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/verification-home.svg +0 -0
  223. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/verification-lsp.svg +0 -0
  224. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/verification-nextstep-home.svg +0 -0
  225. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/assets/verification/verification-response.svg +0 -0
  226. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/plan/reserch.md +0 -0
  227. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/.claude/settings.local.json +0 -0
  228. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_16-41-59_research-subagent-deletion.md +0 -0
  229. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_17-08-03_single-md-prompt-migration.md +0 -0
  230. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_17-22-59_local-mode-removal-research.md +0 -0
  231. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_17-34-12_permission-system-removal-map.md +0 -0
  232. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_18-26-16_yolo-system-removal-verification.md +0 -0
  233. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-26_planning-feature-deletion.md +0 -0
  234. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_00-10-38_issue-311-core-types-layer-violation.md +0 -0
  235. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_11-53-37_issue-313-core-utils-layer-violation.md +0 -0
  236. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_13-11-55_issue-314-lateral-coupling-tools-indexing-lsp.md +0 -0
  237. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_16-11-11_streaming_and_panels.md +0 -0
  238. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_17-28-01_lsp-panel-integration.md +0 -0
  239. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_17-45-00_chatcontainer_refactor.md +0 -0
  240. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_alchemy-rs-migration.md +0 -0
  241. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_insert-before-stream-investigation.md +0 -0
  242. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-27_streaming-abort-context-loss.md +0 -0
  243. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-28_00-25-00_api-error-logging-gaps.md +0 -0
  244. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-28_01-15-00_file-autocomplete-fuzzy-matching.md +0 -0
  245. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-28_11-33-05_utils-cross-layer-imports.md +0 -0
  246. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-28_11-38-38_tools-cross-layer-imports.md +0 -0
  247. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-01-28_recent-changes-summary.md +0 -0
  248. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-01-token-counting-logic.md +0 -0
  249. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-01_19-43-34_prompt-engineer-remnants.md +0 -0
  250. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-01_complexity-hotspots.md +0 -0
  251. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-02_12-56-40_esc-key-flow.md +0 -0
  252. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-02_20-47-34_agent_bottlenecks.md +0 -0
  253. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-02_sanitize_loop_canonicalization_bottleneck.md +0 -0
  254. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-02_token_estimation_overhead.md +0 -0
  255. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-04_15-20-48_core_directory_analysis.md +0 -0
  256. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-05_tool_dispatcher_complexity_358.md +0 -0
  257. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-07_18-06-58_compaction-system.md +0 -0
  258. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-07_19-30-00_agent-response-highlighting.md +0 -0
  259. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-07_tinyagent-v2.5-migration-map.md +0 -0
  260. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-09_11-28-57_dev_install_tinyagent_setup.md +0 -0
  261. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-09_11-31-28_agent_panel_throughput.md +0 -0
  262. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-09_11-33-09_pydantic-ai_to_tinyagent_migration_and_recent_changes.md +0 -0
  263. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-09_13-54-38_compression_compaction_cleanup_verification.md +0 -0
  264. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-10_21-29-05_compaction-system-mapping.md +0 -0
  265. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-11_00-00-00_tinyagent_streaming_reimplementation.md +0 -0
  266. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-12_issue-382_manual-compact-boundary-map.md +0 -0
  267. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-16_diff_rendering_pipeline.md +0 -0
  268. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-17_thinking-content-integration.md +0 -0
  269. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/2026-02-19_api-key-ux-improvement.md +0 -0
  270. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/bottleneck-analysis.md +0 -0
  271. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/memory-bank/research/esc-key-flow-diagram.html +0 -0
  272. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/plan.md +0 -0
  273. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/reports/SMALL_WINS_AUDIT.md +0 -0
  274. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/reports/discover-benchmark-case-study.html +0 -0
  275. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/reports/tunacode-site-reference.png +0 -0
  276. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/check-naming-conventions.py +0 -0
  277. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/check-unused-constants.py +0 -0
  278. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/check_agents_freshness.py +0 -0
  279. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/check_unused_modules.py +0 -0
  280. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/dev-setup.sh +0 -0
  281. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/download_ripgrep.py +0 -0
  282. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/generate-release-notes.sh +0 -0
  283. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/generate_structure_tree.py +0 -0
  284. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/grimp_layers_report.py +0 -0
  285. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/install_linux.sh +0 -0
  286. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/playwright_cache.py +0 -0
  287. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/preview_tool_panels.py +0 -0
  288. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/run-dead-imports.sh +0 -0
  289. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/startup_timer.py +0 -0
  290. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/todo_baseline.json +0 -0
  291. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/todo_scanner.py +0 -0
  292. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/ui_import_timer.py +0 -0
  293. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/uninstall.sh +0 -0
  294. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/update_models_registry.sh +0 -0
  295. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/scripts/utils/vulture_whitelist.py +0 -0
  296. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/__init__.py +0 -0
  297. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/__init__.py +0 -0
  298. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/defaults.py +0 -0
  299. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/feature_flags.py +0 -0
  300. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/ignore_patterns.py +0 -0
  301. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/limits.py +0 -0
  302. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/models.py +0 -0
  303. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/models_registry.json +0 -0
  304. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/paths.py +0 -0
  305. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/configuration/pricing.py +0 -0
  306. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/__init__.py +0 -0
  307. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/__init__.py +0 -0
  308. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/agent_components/__init__.py +0 -0
  309. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/agent_components/agent_helpers.py +0 -0
  310. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/agent_components/state_transition.py +0 -0
  311. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/helpers.py +0 -0
  312. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/resume/__init__.py +0 -0
  313. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/resume/sanitize.py +0 -0
  314. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/agents/resume/sanitize_debug.py +0 -0
  315. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/compaction/__init__.py +0 -0
  316. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/compaction/controller.py +0 -0
  317. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/compaction/prompts.py +0 -0
  318. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/compaction/summarizer.py +0 -0
  319. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/debug/__init__.py +0 -0
  320. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/debug/usage_trace.py +0 -0
  321. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/logging/__init__.py +0 -0
  322. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/logging/handlers.py +0 -0
  323. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/logging/levels.py +0 -0
  324. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/logging/manager.py +0 -0
  325. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/logging/records.py +0 -0
  326. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/session/__init__.py +0 -0
  327. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/session/state.py +0 -0
  328. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/types/__init__.py +0 -0
  329. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/types/agent_state.py +0 -0
  330. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/types/state.py +0 -0
  331. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/types/state_structures.py +0 -0
  332. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/types/tool_registry.py +0 -0
  333. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/__init__.py +0 -0
  334. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/configuration.py +0 -0
  335. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/constants.py +0 -0
  336. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/file_filter.py +0 -0
  337. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/formatting.py +0 -0
  338. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/lsp_status.py +0 -0
  339. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/messaging.py +0 -0
  340. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/shared_types.py +0 -0
  341. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/system_paths.py +0 -0
  342. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/core/ui_api/user_configuration.py +0 -0
  343. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/exceptions.py +0 -0
  344. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/__init__.py +0 -0
  345. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/__init__.py +0 -0
  346. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/caches/__init__.py +0 -0
  347. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/caches/agents.py +0 -0
  348. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/caches/limits_settings.py +0 -0
  349. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/caches/models_registry.py +0 -0
  350. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/caches/tunacode_context.py +0 -0
  351. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/manager.py +0 -0
  352. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/metadata.py +0 -0
  353. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/cache/strategies.py +0 -0
  354. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/infrastructure/file_filter.py +0 -0
  355. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/py.typed +0 -0
  356. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/test_dead_code/__init__.py +0 -0
  357. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/test_dead_code/never_imported.py +0 -0
  358. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/__init__.py +0 -0
  359. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/bash.py +0 -0
  360. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/cache_accessors/__init__.py +0 -0
  361. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/cache_accessors/ignore_manager_cache.py +0 -0
  362. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/cache_accessors/ripgrep_cache.py +0 -0
  363. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/cache_accessors/xml_prompts_cache.py +0 -0
  364. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/decorators.py +0 -0
  365. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/ignore.py +0 -0
  366. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/ignore_manager.py +0 -0
  367. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/lsp/__init__.py +0 -0
  368. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/lsp/client.py +0 -0
  369. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/lsp/diagnostics.py +0 -0
  370. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/lsp/servers.py +0 -0
  371. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/prompts/bash_prompt.xml +0 -0
  372. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/prompts/discover_prompt.xml +0 -0
  373. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/prompts/web_fetch_prompt.xml +0 -0
  374. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/prompts/write_file_prompt.xml +0 -0
  375. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/utils/__init__.py +0 -0
  376. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/utils/formatting.py +0 -0
  377. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/utils/ripgrep.py +0 -0
  378. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/tools/xml_helper.py +0 -0
  379. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/types/__init__.py +0 -0
  380. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/types/base.py +0 -0
  381. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/types/callbacks.py +0 -0
  382. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/types/canonical.py +0 -0
  383. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/types/dataclasses.py +0 -0
  384. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/PLAN.md +0 -0
  385. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/__init__.py +0 -0
  386. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/assets/logo.ansi +0 -0
  387. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/clipboard.py +0 -0
  388. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/__init__.py +0 -0
  389. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/base.py +0 -0
  390. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/cancel.py +0 -0
  391. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/clear.py +0 -0
  392. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/exit.py +0 -0
  393. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/help.py +0 -0
  394. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/model.py +0 -0
  395. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/resume.py +0 -0
  396. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/theme.py +0 -0
  397. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/thoughts.py +0 -0
  398. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/commands/update.py +0 -0
  399. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/esc/__init__.py +0 -0
  400. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/esc/handler.py +0 -0
  401. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/esc/types.py +0 -0
  402. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/headless/__init__.py +0 -0
  403. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/headless/output.py +0 -0
  404. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/lifecycle.py +0 -0
  405. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/logo_assets.py +0 -0
  406. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/main.py +0 -0
  407. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/model_display.py +0 -0
  408. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/__init__.py +0 -0
  409. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/agent_response.py +0 -0
  410. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/errors.py +0 -0
  411. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/panel_widths.py +0 -0
  412. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/search.py +0 -0
  413. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/thinking.py +0 -0
  414. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/base.py +0 -0
  415. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/bash.py +0 -0
  416. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/discover.py +0 -0
  417. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/glob.py +0 -0
  418. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/grep.py +0 -0
  419. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/list_dir.py +0 -0
  420. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/syntax_utils.py +0 -0
  421. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/web_fetch.py +0 -0
  422. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/renderers/tools/write_file.py +0 -0
  423. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/__init__.py +0 -0
  424. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/api_key_entry.py +0 -0
  425. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/model_picker.py +0 -0
  426. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/session_picker.py +0 -0
  427. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/setup.py +0 -0
  428. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/theme_picker.py +0 -0
  429. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/screens/update_confirm.py +0 -0
  430. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/slopgotchi/__init__.py +0 -0
  431. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/slopgotchi/panel.py +0 -0
  432. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/styles/layout.tcss +0 -0
  433. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/styles/modals.tcss +0 -0
  434. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/styles/widgets.tcss +0 -0
  435. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/styles.py +0 -0
  436. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/thinking_state.py +0 -0
  437. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/welcome.py +0 -0
  438. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/__init__.py +0 -0
  439. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/chat.py +0 -0
  440. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/command_autocomplete.py +0 -0
  441. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/file_autocomplete.py +0 -0
  442. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/messages.py +0 -0
  443. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/ui/widgets/resource_bar.py +0 -0
  444. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/__init__.py +0 -0
  445. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/messaging/__init__.py +0 -0
  446. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/messaging/adapter.py +0 -0
  447. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/messaging/token_counter.py +0 -0
  448. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/system/__init__.py +0 -0
  449. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/src/tunacode/utils/system/gitignore.py +0 -0
  450. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/__init__.py +0 -0
  451. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/architecture/__init__.py +0 -0
  452. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/architecture/test_import_order.py +0 -0
  453. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/architecture/test_imports_in_init.py +0 -0
  454. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/architecture/test_init_bloat.py +0 -0
  455. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/architecture/test_layer_dependencies.py +0 -0
  456. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/benchmarks/bench_discover.py +0 -0
  457. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/conftest.py +0 -0
  458. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/core/test_minimax_execution_path.py +0 -0
  459. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/core/test_mtime_caches_end_to_end.py +0 -0
  460. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/core/test_tinyagent_alchemy_usage_contract_live.py +0 -0
  461. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/tools/test_shell_runner.py +0 -0
  462. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/integration/tools/test_web_fetch.py +0 -0
  463. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/system/cli/test_cli_default_command.py +0 -0
  464. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/system/cli/test_headless_cli.py +0 -0
  465. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/system/cli/test_startup.py +0 -0
  466. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/test_compaction.py +0 -0
  467. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/test_dependency_layers.py +0 -0
  468. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/tools/test_ignore.py +0 -0
  469. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/configuration/test_default_config_minimax_keys.py +0 -0
  470. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/configuration/test_default_config_stream_agent_text.py +0 -0
  471. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/configuration/test_models_registry_minimax_contract.py +0 -0
  472. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/configuration/test_provider_api_key_env_fallback.py +0 -0
  473. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_agent_cache_abort.py +0 -0
  474. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_compaction_controller_outcomes.py +0 -0
  475. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_compaction_summarizer.py +0 -0
  476. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_context_overflow_detection.py +0 -0
  477. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_exceptions.py +0 -0
  478. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_logging.py +0 -0
  479. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_openrouter_usage_metrics.py +0 -0
  480. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_provider_error_surfacing.py +0 -0
  481. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_session_state_defaults.py +0 -0
  482. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_session_usage_schema.py +0 -0
  483. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_thinking_stream_routing.py +0 -0
  484. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_tinyagent_openrouter_model_config.py +0 -0
  485. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/core/test_usage_trace_debug.py +0 -0
  486. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/infrastructure/test_cache_infrastructure.py +0 -0
  487. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/infrastructure/test_migrated_lru_cache_replacements.py +0 -0
  488. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/infrastructure/test_typed_cache_accessors.py +0 -0
  489. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/test_sanitize_canonicalization.py +0 -0
  490. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/tools/test_tinyagent_tool_adapter.py +0 -0
  491. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/tools/test_tool_decorators.py +0 -0
  492. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/types/test_adapter.py +0 -0
  493. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/types/test_canonical.py +0 -0
  494. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/types/test_tool_registry.py +0 -0
  495. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_agent_response.py +0 -0
  496. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_api_key_entry.py +0 -0
  497. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_app_latest_response_text.py +0 -0
  498. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_base_tool_renderer.py +0 -0
  499. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_chat_container.py +0 -0
  500. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_command_contracts.py +0 -0
  501. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_context_panel_toggle.py +0 -0
  502. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_diagnostics_renderer.py +0 -0
  503. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_error_renderer_authentication.py +0 -0
  504. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_model_display.py +0 -0
  505. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_resource_bar_usage_cost.py +0 -0
  506. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_stream_agent_text_setting.py +0 -0
  507. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_supported_themes.py +0 -0
  508. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_theme_variable_contract.py +0 -0
  509. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/ui/test_thinking_renderer.py +0 -0
  510. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/utils/test_shell_command_escape.py +0 -0
  511. {tunacode_cli-0.1.74 → tunacode_cli-0.1.75}/tests/unit/utils/test_token_counter.py +0 -0
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Enable mypy at pre-commit stage (keep pre-push enforcement)
3
+ type: delta
4
+ link: enable-mypy-pre-commit-hook
5
+ path: .pre-commit-config.yaml
6
+ depth: 0
7
+ seams: [S]
8
+ ontological_relations:
9
+ - affects: [[tooling]]
10
+ - affects: [[typing-contracts]]
11
+ - affects: [[developer-workflow]]
12
+ tags:
13
+ - mypy
14
+ - pre-commit
15
+ - quality-gate
16
+ created_at: 2026-02-22T15:17:04-06:00
17
+ updated_at: 2026-02-22T15:17:04-06:00
18
+ uuid: 6a5c9232-30f7-4aa9-bf94-ecb0197d6263
19
+ ---
20
+
21
+ # Enable mypy at pre-commit stage (keep pre-push enforcement)
22
+
23
+ ## Summary
24
+
25
+ Updated `.pre-commit-config.yaml` so the `mypy` hook runs during both:
26
+
27
+ - `pre-commit`
28
+ - `pre-push`
29
+
30
+ This catches type errors earlier at commit time while retaining the existing push-time gate.
31
+
32
+ ## Verification
33
+
34
+ - `uv run pre-commit run mypy --files src/tunacode/ui/widgets/editor.py` ✅
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: Resolve four mypy contract violations with source-level typing fixes
3
+ type: delta
4
+ link: mypy-type-contract-fixes
5
+ path: src/tunacode
6
+ depth: 1
7
+ seams: [S, M]
8
+ ontological_relations:
9
+ - affects: [[ui]]
10
+ - affects: [[core]]
11
+ - affects: [[tools]]
12
+ - affects: [[typing-contracts]]
13
+ tags:
14
+ - mypy
15
+ - typing
16
+ - literals
17
+ - rich
18
+ - error-handling
19
+ created_at: 2026-02-22T15:12:48-06:00
20
+ updated_at: 2026-02-22T15:12:48-06:00
21
+ uuid: febc9ce8-4061-4ee8-b2a1-770f0997a7ca
22
+ ---
23
+
24
+ # Resolve four mypy contract violations with source-level typing fixes
25
+
26
+ ## Summary
27
+
28
+ Fixed the reported mypy errors by tightening type contracts at their source:
29
+
30
+ 1. `editor.py`: added explicit Rich style narrowing so `Text.stylize()` always receives `StyleType`.
31
+ 2. `web_fetch.py`: marked `_handle_http_error()` as `NoReturn` because it always raises.
32
+ 3. `compaction/types.py`: made compaction status constants literal-typed (`Final[Literal[...]]`) and defined `CompactionStatus` as a type alias.
33
+ 4. `shell_runner.py`: unpacked `render_bash()` tool render tuple and returned only the renderable content as required by `RenderableType`.
34
+
35
+ No shims, no fallback branches, and no cast-based suppression were introduced.
36
+
37
+ ## Files changed
38
+
39
+ - `src/tunacode/ui/widgets/editor.py`
40
+ - `src/tunacode/tools/web_fetch.py`
41
+ - `src/tunacode/core/compaction/types.py`
42
+ - `src/tunacode/ui/shell_runner.py`
43
+
44
+ ## Verification
45
+
46
+ - `uv run mypy src/tunacode/ui/widgets/editor.py src/tunacode/tools/web_fetch.py src/tunacode/core/compaction/controller.py src/tunacode/ui/shell_runner.py src/tunacode/core/compaction/types.py` ✅
47
+ - `uv run ruff check src/tunacode/ui/widgets/editor.py src/tunacode/tools/web_fetch.py src/tunacode/core/compaction/types.py src/tunacode/ui/shell_runner.py` ✅
@@ -0,0 +1,34 @@
1
+ ---
2
+ type: delta
3
+ date: 2026-02-23
4
+ status: done
5
+ tags: [tinyagent, parallel-tool-calls, concurrency-cap, tui]
6
+ ---
7
+
8
+ # Parallel Tool-call Rollout via tiny-agent-os 1.2.5
9
+
10
+ ## Scope completed
11
+
12
+ - `tun-d506` — bumped `tiny-agent-os` to `>=1.2.5` and refreshed `uv.lock`.
13
+ - `tun-q44p` — enforced a hard cap of 3 concurrent tool executions by wrapping all runtime `AgentTool.execute` handlers with a shared semaphore in `agent_config.py`.
14
+ - `tun-5nny` — hardened `RequestOrchestrator` tool lifecycle handling:
15
+ - strict `tool_execution_start` args normalization (`dict` or JSON object string only)
16
+ - fail-loud `TypeError` on malformed payloads
17
+ - explicit duration semantics for parallel batches (suppress per-tool duration when batch execution is detected)
18
+ - `tun-6qpn` — updated TUI status behavior for parallel starts/completions:
19
+ - status bar tracks multiple in-flight tools coherently
20
+ - callbacks now emit completion before last-action updates
21
+ - shell status path aligned with the same completion semantics
22
+
23
+ ## Repo truth updates
24
+
25
+ - README migration note now reflects parallel batches with max 3 in-flight calls.
26
+ - Changelog `Unreleased` section documents dependency cutover, runtime cap, orchestrator hardening, and UI behavior update.
27
+
28
+ ## Validation
29
+
30
+ - `uv run ruff check --fix .`
31
+ - `uv run ruff check .`
32
+ - `uv run pytest tests/unit/core/test_tool_concurrency_limit.py tests/unit/core/test_request_orchestrator_parallel_tools.py tests/unit/ui/test_status_bar_layout.py tests/system/cli/test_repl_support.py tests/unit/ui/test_tool_panel_css_flow.py`
33
+ - `uv run pytest`
34
+ - `uv run python -c "import importlib.metadata as m; print(m.version('tiny-agent-os'))"` -> `1.2.5`
@@ -0,0 +1,117 @@
1
+ ---
2
+ title: Parallel tool-call rollout plan for TunaCode
3
+ type: metadata
4
+ link: parallel-tool-calls-rollout-plan
5
+ path: .claude/metadata/research/2026-02-23-parallel-tool-calls-rollout-plan.md
6
+ depth: 2
7
+ seams: [A]
8
+ ontological_relations:
9
+ - affects: [[core-agents]]
10
+ - affects: [[ui]]
11
+ - affects: [[tools]]
12
+ - relates_to: [[tinyagent]]
13
+ tags:
14
+ - tinyagent
15
+ - parallel-tool-calls
16
+ - rollout-plan
17
+ - tui
18
+ created_at: 2026-02-23T14:54:29-06:00
19
+ updated_at: 2026-02-23T14:54:29-06:00
20
+ uuid: ac4317c5-b747-4efe-bd6f-039f4bdc3833
21
+ ---
22
+
23
+ # Parallel tool-call rollout plan for TunaCode
24
+
25
+ ## Objective
26
+
27
+ Adopt tinyagent parallel tool-call execution in TunaCode with no compatibility shim, while preserving correctness, UI clarity, and fail-loud behavior.
28
+
29
+ ## Code-state snapshot (from current repo)
30
+
31
+ - Dependency floor is still `tiny-agent-os>=1.2.4` (`pyproject.toml:31`).
32
+ - Lockfile currently resolves `tiny-agent-os` to `1.2.4` (`uv.lock` package stanza).
33
+ - README still states sequential execution (`README.md:40`).
34
+ - TunaCode runtime already consumes tinyagent tool lifecycle events:
35
+ - `tool_execution_start` handler (`src/tunacode/core/agents/main.py:396`)
36
+ - `tool_execution_end` handler (`src/tunacode/core/agents/main.py:417`)
37
+ - UI callbacks are start/end based and status-bar driven:
38
+ - `build_tool_start_callback()` (`src/tunacode/ui/repl_support.py:220`)
39
+ - `build_tool_result_callback()` (`src/tunacode/ui/repl_support.py:189`)
40
+ - status methods (`src/tunacode/ui/widgets/status_bar.py:52`, `:55`)
41
+ - Vendored tinyagent code is already on 1.2.5 semantics:
42
+ - parallel gather in `execute_tool_calls()` (`tinyAgent/tinyagent/agent_tool_execution.py:186`)
43
+ - all starts emitted before ends (`tinyAgent/tests/test_parallel_tool_execution.py`)
44
+ - post-batch steering semantics documented in `tinyAgent/CHANGELOG.md`.
45
+
46
+ ## Implementation plan
47
+
48
+ ### Phase 1 — Dependency cutover (no shim)
49
+
50
+ 1. Bump TunaCode dependency floor to `tiny-agent-os>=1.2.5`.
51
+ 2. Refresh lockfile with `uv lock` so resolved version is >=1.2.5.
52
+ 3. Verify runtime import path remains unchanged (TunaCode already uses tinyagent public API).
53
+
54
+ **Acceptance**
55
+ - `pyproject.toml` and `uv.lock` both reflect 1.2.5-compatible resolution.
56
+ - `uv run python -c "import importlib.metadata as m; print(m.version('tiny-agent-os'))"` prints >=1.2.5 in project env.
57
+
58
+ ### Phase 2 — Runtime hardening for parallel batches
59
+
60
+ 1. **Normalize tool args at event ingress** in `RequestOrchestrator` start-handler.
61
+ - Replace cast-only behavior with explicit type checks.
62
+ - If args are invalid (non-dict JSON object), fail loud with a clear error.
63
+ 2. **Validate duration semantics** under batch completion ordering.
64
+ - Current per-tool duration is measured start→end event in TunaCode.
65
+ - In parallel mode, all end events are emitted after gather completion, so durations may converge to batch latency.
66
+ - Decide one policy and apply consistently:
67
+ - either keep current metric but label it as batch-relative,
68
+ - or suppress per-tool duration when multiple tools are active in a batch.
69
+ 3. Keep steering logic aligned to tinyagent contract (post-batch application).
70
+
71
+ **Acceptance**
72
+ - No callback crashes from malformed `args` payloads.
73
+ - Tool duration presentation is intentional and documented in code comments/tests.
74
+
75
+ ### Phase 3 — UI behavior alignment for concurrent starts
76
+
77
+ 1. Verify status bar behavior when multiple start events arrive before end events.
78
+ 2. Keep existing minimal behavior (`running: <tool>`, then `last: <tool>`) for first cut, or upgrade to explicit concurrent state (count/list) in same PR if low risk.
79
+ 3. Ensure tool panels remain classed correctly (`running/completed/failed`) through `tool_panel_smart()`.
80
+
81
+ **Acceptance**
82
+ - No UI regressions in tool panel rendering.
83
+ - Status bar stays coherent during multi-tool turns.
84
+
85
+ ### Phase 4 — Tests and gates
86
+
87
+ Add focused tests around TunaCode event handling (not tinyagent internals):
88
+
89
+ 1. `RequestOrchestrator` handles parallel-style order:
90
+ - start(A), start(B), end(A), end(B)
91
+ - registry and callbacks remain correct per tool.
92
+ 2. `RequestOrchestrator` arg-normalization path:
93
+ - invalid args payload triggers deterministic failure.
94
+ 3. Optional UI test for status bar transitions under batched starts.
95
+
96
+ Run gates:
97
+ - `uv run pytest`
98
+ - `uv run ruff check --fix .`
99
+ - `uv run ruff .`
100
+
101
+ ### Phase 5 — Repo truth updates
102
+
103
+ 1. Update README statement that still claims sequential-only tool execution.
104
+ 2. Add changelog entry describing the cutover and any intentional UI semantics.
105
+
106
+ ## Risks to actively watch
107
+
108
+ 1. **Concurrent mutating tools** (e.g., two file writes/edits in one assistant turn) can create race-like behavior in shared file/cache state.
109
+ 2. **Metric trust** if per-tool durations look precise but are batch-relative.
110
+ 3. **User visibility** during concurrent tool starts if status bar only shows one tool name.
111
+
112
+ ## Suggested rollout order
113
+
114
+ 1. Dependency bump + lockfile
115
+ 2. Runtime hardening + tests
116
+ 3. UI polish (if needed)
117
+ 4. README/changelog updates
@@ -48,7 +48,7 @@ repos:
48
48
  - id: ruff-format # Re-enabled - ruff handles linting, ruff-format handles formatting
49
49
  exclude: models_registry\.json$
50
50
 
51
- # Type checking with mypy (runs on push, not commit - too slow for commit)
51
+ # Type checking with mypy (runs on commit and push)
52
52
  - repo: https://github.com/pre-commit/mirrors-mypy
53
53
  rev: v1.14.1
54
54
  hooks:
@@ -59,7 +59,7 @@ repos:
59
59
  - 'types-requests'
60
60
  args: ['--ignore-missing-imports', '--no-strict-optional']
61
61
  exclude: '(conftest\.py|src/tunacode/core/agents/|^tests/|^scripts/)'
62
- stages: [pre-push]
62
+ stages: [pre-commit, pre-push]
63
63
 
64
64
 
65
65
  # Local hooks for project-specific checks
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.75] - 2026-02-23
11
+
12
+ ### Added
13
+ - Tool panel CSS flow with status-based classes (running/completed/failed)
14
+ - Compaction awareness indicator in context panel
15
+ - CSS tint styling for file tool states (read/update)
16
+ - Parallel tool lifecycle coverage: capped-concurrency execution test, RequestOrchestrator parallel batch tests, and status-bar callback sequencing tests
17
+
18
+ ### Changed
19
+ - Enhanced `/compact` command with error handling and user feedback
20
+ - Updated read_file renderer to support new hashline format (1:ab|content)
21
+ - Improved tool panel rendering with semantic CSS classes
22
+ - Bumped `tiny-agent-os` dependency to `>=1.2.5` and refreshed lockfile resolution
23
+ - Enforced max 3 in-flight tool executions via shared tool semaphore wrapping
24
+ - Hardened RequestOrchestrator tool-start arg normalization and made batch-mode duration reporting explicit (suppressed for multi-tool batches)
25
+ - Updated status bar running-state behavior to stay coherent while multiple tools are active
26
+
10
27
  ## [0.1.74] - 2026-02-21
11
28
 
12
29
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tunacode-cli
3
- Version: 0.1.74
3
+ Version: 0.1.75
4
4
  Summary: Your agentic CLI developer.
5
5
  Project-URL: Homepage, https://tunacode.xyz/
6
6
  Project-URL: Repository, https://github.com/alchemiststudiosDOTai/tunacode
@@ -31,7 +31,7 @@ Requires-Dist: rich<15.0.0,>=14.2.0
31
31
  Requires-Dist: ruff>=0.14.0
32
32
  Requires-Dist: textual-autocomplete>=4.0.6
33
33
  Requires-Dist: textual<5.0.0,>=4.0.0
34
- Requires-Dist: tiny-agent-os>=1.2.4
34
+ Requires-Dist: tiny-agent-os>=1.2.5
35
35
  Requires-Dist: typer>=0.15.0
36
36
  Provides-Extra: dev
37
37
  Requires-Dist: autoflake>=2.0.0; extra == 'dev'
@@ -97,7 +97,7 @@ A terminal-based AI coding agent with a NeXTSTEP-inspired interface.
97
97
  **Recent Breaking Changes:**
98
98
 
99
99
  - Session persistence format changed - existing sessions may not load correctly
100
- - Tool execution is sequential parallel tool calls are on the roadmap
100
+ - Tool execution runs in parallel batches with a strict cap of 3 in-flight tool calls
101
101
  - The `docs/` directory has been restructured
102
102
 
103
103
  For full details, see the [CHANGELOG](CHANGELOG.md).
@@ -182,7 +182,7 @@ Slash commands are command objects in `tunacode.ui.commands`; each one is a `Com
182
182
  | `/help` | Show available commands |
183
183
  | `/clear` | Clear transient agent state while preserving message history. |
184
184
  | `/compact` | Force context compaction |
185
- | `/debug` | Toggle debug logging to screen |
185
+ | `/debug` | Toggle debug logging to screen (includes parallel tool-call lifecycle lines) |
186
186
  | `/model` | Open model picker or switch model |
187
187
  | `/theme` | Open theme picker or switch theme |
188
188
  | `/resume` | List, load, or delete persisted sessions. |
@@ -191,6 +191,15 @@ Slash commands are command objects in `tunacode.ui.commands`; each one is a `Com
191
191
  | `/exit` | Exit TunaCode |
192
192
  | `exit` | Legacy alias for exit |
193
193
 
194
+ ### Confirm Parallel Tool Calls
195
+
196
+ Run `/debug` to enable lifecycle logs. During agent execution, parallel batches are reported with lines prefixed by:
197
+
198
+ - `[LIFECYCLE] Parallel tool calls active: ...`
199
+ - `[LIFECYCLE] Parallel tool calls update: ...`
200
+ - `[LIFECYCLE] Parallel tool calls complete`
201
+
202
+ If no `Parallel tool calls` lifecycle lines appear, that request did not execute a parallel tool batch.
194
203
  ## Tools
195
204
 
196
205
  <img src="docs/images/tool-calls.png" alt="Tool calls in tunacode" width="600"/>
@@ -37,7 +37,7 @@ A terminal-based AI coding agent with a NeXTSTEP-inspired interface.
37
37
  **Recent Breaking Changes:**
38
38
 
39
39
  - Session persistence format changed - existing sessions may not load correctly
40
- - Tool execution is sequential parallel tool calls are on the roadmap
40
+ - Tool execution runs in parallel batches with a strict cap of 3 in-flight tool calls
41
41
  - The `docs/` directory has been restructured
42
42
 
43
43
  For full details, see the [CHANGELOG](CHANGELOG.md).
@@ -122,7 +122,7 @@ Slash commands are command objects in `tunacode.ui.commands`; each one is a `Com
122
122
  | `/help` | Show available commands |
123
123
  | `/clear` | Clear transient agent state while preserving message history. |
124
124
  | `/compact` | Force context compaction |
125
- | `/debug` | Toggle debug logging to screen |
125
+ | `/debug` | Toggle debug logging to screen (includes parallel tool-call lifecycle lines) |
126
126
  | `/model` | Open model picker or switch model |
127
127
  | `/theme` | Open theme picker or switch theme |
128
128
  | `/resume` | List, load, or delete persisted sessions. |
@@ -131,6 +131,15 @@ Slash commands are command objects in `tunacode.ui.commands`; each one is a `Com
131
131
  | `/exit` | Exit TunaCode |
132
132
  | `exit` | Legacy alias for exit |
133
133
 
134
+ ### Confirm Parallel Tool Calls
135
+
136
+ Run `/debug` to enable lifecycle logs. During agent execution, parallel batches are reported with lines prefixed by:
137
+
138
+ - `[LIFECYCLE] Parallel tool calls active: ...`
139
+ - `[LIFECYCLE] Parallel tool calls update: ...`
140
+ - `[LIFECYCLE] Parallel tool calls complete`
141
+
142
+ If no `Parallel tool calls` lifecycle lines appear, that request did not execute a parallel tool batch.
134
143
  ## Tools
135
144
 
136
145
  <img src="docs/images/tool-calls.png" alt="Tool calls in tunacode" width="600"/>
@@ -22,7 +22,7 @@ The engine. Takes a user message, routes it through a tinyagent `Agent`, handles
22
22
  |------|---------|
23
23
  | `main.py` | `RequestOrchestrator` -- the main request lifecycle. `process_request()` is the public entry point. Handles: history coercion, pre-request compaction, streaming event dispatch, abort cleanup, empty-response intervention, context-overflow retry. |
24
24
  | `agent_components/__init__.py` | Re-exports from sub-modules. |
25
- | `agent_components/agent_config.py` | `get_or_create_agent()` -- builds or retrieves a cached tinyagent `Agent`. Configures: system prompt, tools, model, stream function, API key resolver, compaction transform. `invalidate_agent_cache()` clears both module and session caches after abort/timeout. |
25
+ | `agent_components/agent_config.py` | `get_or_create_agent()` -- builds or retrieves a cached tinyagent `Agent`. Configures: system prompt, tools, model, stream function, API key resolver, compaction transform. `invalidate_agent_cache()` clears both module and session caches after abort/timeout. `_build_tools()` constructs the tool list (bash, discover, read_file, hashline_edit, web_fetch, write_file). Validation functions: `_coerce_request_delay()`, `_coerce_global_request_timeout()`, `_compute_agent_version()`. |
26
26
  | `agent_components/agent_helpers.py` | Human-readable tool descriptions for UI panels. `create_empty_response_message()` builds the intervention prompt when the model returns nothing. |
27
27
  | `agent_components/state_transition.py` | `AgentStateMachine` -- thread-safe FSM with states: `USER_INPUT -> ASSISTANT -> TOOL_EXECUTION -> RESPONSE`. `AGENT_TRANSITION_RULES` defines valid edges. |
28
28
  | `resume/sanitize.py` | Cleans persisted session messages for safe resume (removes dangling tool calls, fixes structural violations). |
@@ -131,6 +131,29 @@ CompactionController.check_and_compact(messages, max_tokens)
131
131
 
132
132
  `StateManager.load_session()` deserializes and separates thought entries from message history.
133
133
 
134
+ ### System Prompt
135
+
136
+ The system prompt defines TunaCode's identity and operational rules for the tinyagent framework.
137
+
138
+ **Location:** `src/tunacode/prompts/system_prompt.md`
139
+
140
+ **Loading mechanism:** `load_system_prompt()` in `agent_config.py` reads the markdown file at runtime and appends dynamic context from `load_tunacode_context()`.
141
+
142
+ **Dynamic context:** `load_tunacode_context()` loads the user's `AGENTS.md` guide file (cached) and injects it into the prompt under the `<user_context>` section.
143
+
144
+ **Tool philosophy:** Tools are described by purpose and intent, not by function signature. The tinyagent framework provides JSON schemas separately. This keeps the prompt focused on *when* and *why* to use each tool:
145
+
146
+ | Tool | Purpose Description |
147
+ |------|---------------------|
148
+ | `discover` | Natural-language code search and repository exploration |
149
+ | `read_file` | Read file contents with content-hash tagged lines |
150
+ | `hashline_edit` | Edit existing file using hash-validated line references |
151
+ | `write_file` | Create a new file (fails if exists; read first, then hashline_edit) |
152
+ | `bash` | Execute shell commands for tests, linting, git, builds |
153
+ | `web_fetch` | Fetch public web content as readable text |
154
+
155
+ **Agent version hashing:** `_compute_agent_version()` generates a cache key from configuration that affects agent behavior: `max_retries`, `tool_strict_validation`, `request_delay`, `global_request_timeout`, `max_tokens`.
156
+
134
157
  ## Why
135
158
 
136
159
  The `RequestOrchestrator` class exists to keep the streaming event loop testable and the callback wiring explicit. Each event type has its own handler method -- no giant switch statement.
@@ -138,3 +161,5 @@ The `RequestOrchestrator` class exists to keep the streaming event loop testable
138
161
  Compaction is request-scoped (one compaction per request at most) to avoid compacting the same history repeatedly when the model makes multiple turns.
139
162
 
140
163
  The `StateManagerProtocol` breaks the circular dependency between session state and agent creation -- agents need state, state stores agents.
164
+
165
+ tinyagent provides the agent framework (migrated from pydantic-ai), handling the underlying event streaming, tool schema generation, and message protocol conversion.