aider-ce 0.88.0__tar.gz → 0.88.2__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.

Potentially problematic release.


This version of aider-ce might be problematic. Click here for more details.

Files changed (435) hide show
  1. {aider_ce-0.88.0/aider_ce.egg-info → aider_ce-0.88.2}/PKG-INFO +1 -1
  2. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/__init__.py +1 -1
  3. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/_version.py +3 -3
  4. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/architect_coder.py +1 -1
  5. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/base_coder.py +17 -15
  6. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/exceptions.py +1 -0
  7. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/io.py +1 -1
  8. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/main.py +10 -10
  9. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/mcp/__init__.py +17 -0
  10. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/onboarding.py +1 -1
  11. {aider_ce-0.88.0 → aider_ce-0.88.2/aider_ce.egg-info}/PKG-INFO +1 -1
  12. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider_ce.egg-info/entry_points.txt +0 -1
  13. {aider_ce-0.88.0 → aider_ce-0.88.2}/pyproject.toml +0 -1
  14. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_sanity_check_repo.py +15 -10
  15. {aider_ce-0.88.0 → aider_ce-0.88.2}/.dockerignore +0 -0
  16. {aider_ce-0.88.0 → aider_ce-0.88.2}/.flake8 +0 -0
  17. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  18. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/check_pypi_version.yml +0 -0
  19. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/docker-build-test.yml +0 -0
  20. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/docker-release.yml +0 -0
  21. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/issues.yml +0 -0
  22. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/pages.yml +0 -0
  23. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/pre-commit.yml +0 -0
  24. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/release.yml +0 -0
  25. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/ubuntu-tests.yml +0 -0
  26. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/windows-tests.yml +0 -0
  27. {aider_ce-0.88.0 → aider_ce-0.88.2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  28. {aider_ce-0.88.0 → aider_ce-0.88.2}/.gitignore +0 -0
  29. {aider_ce-0.88.0 → aider_ce-0.88.2}/.pre-commit-config.yaml +0 -0
  30. {aider_ce-0.88.0 → aider_ce-0.88.2}/CNAME +0 -0
  31. {aider_ce-0.88.0 → aider_ce-0.88.2}/CONTRIBUTING.md +0 -0
  32. {aider_ce-0.88.0 → aider_ce-0.88.2}/HISTORY.md +0 -0
  33. {aider_ce-0.88.0 → aider_ce-0.88.2}/LICENSE.txt +0 -0
  34. {aider_ce-0.88.0 → aider_ce-0.88.2}/MANIFEST.in +0 -0
  35. {aider_ce-0.88.0 → aider_ce-0.88.2}/README.md +0 -0
  36. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/__main__.py +0 -0
  37. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/analytics.py +0 -0
  38. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/args.py +0 -0
  39. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/args_formatter.py +0 -0
  40. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/change_tracker.py +0 -0
  41. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/__init__.py +0 -0
  42. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/architect_prompts.py +0 -0
  43. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/ask_coder.py +0 -0
  44. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/ask_prompts.py +0 -0
  45. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/base_prompts.py +0 -0
  46. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/chat_chunks.py +0 -0
  47. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/context_coder.py +0 -0
  48. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/context_prompts.py +0 -0
  49. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_coder.py +0 -0
  50. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_fenced_coder.py +0 -0
  51. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_fenced_prompts.py +0 -0
  52. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_func_coder.py +0 -0
  53. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_func_prompts.py +0 -0
  54. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editblock_prompts.py +0 -0
  55. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_diff_fenced_coder.py +0 -0
  56. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_diff_fenced_prompts.py +0 -0
  57. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_editblock_coder.py +0 -0
  58. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_editblock_prompts.py +0 -0
  59. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_whole_coder.py +0 -0
  60. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/editor_whole_prompts.py +0 -0
  61. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/help_coder.py +0 -0
  62. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/help_prompts.py +0 -0
  63. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/navigator_coder.py +0 -0
  64. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/navigator_legacy_prompts.py +0 -0
  65. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/navigator_prompts.py +0 -0
  66. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/patch_coder.py +0 -0
  67. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/patch_prompts.py +0 -0
  68. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/search_replace.py +0 -0
  69. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/shell.py +0 -0
  70. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/single_wholefile_func_coder.py +0 -0
  71. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/single_wholefile_func_prompts.py +0 -0
  72. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/udiff_coder.py +0 -0
  73. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/udiff_prompts.py +0 -0
  74. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/udiff_simple.py +0 -0
  75. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/udiff_simple_prompts.py +0 -0
  76. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/wholefile_coder.py +0 -0
  77. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/wholefile_func_coder.py +0 -0
  78. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/wholefile_func_prompts.py +0 -0
  79. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/coders/wholefile_prompts.py +0 -0
  80. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/commands.py +0 -0
  81. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/copypaste.py +0 -0
  82. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/deprecated.py +0 -0
  83. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/diffs.py +0 -0
  84. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/dump.py +0 -0
  85. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/editor.py +0 -0
  86. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/format_settings.py +0 -0
  87. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/gui.py +0 -0
  88. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/help.py +0 -0
  89. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/help_pats.py +0 -0
  90. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/history.py +0 -0
  91. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/linter.py +0 -0
  92. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/llm.py +0 -0
  93. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/mcp/server.py +0 -0
  94. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/mdstream.py +0 -0
  95. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/models.py +0 -0
  96. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/openrouter.py +0 -0
  97. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/prompts.py +0 -0
  98. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/README.md +0 -0
  99. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  100. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  101. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  102. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  103. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  104. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  105. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  106. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  107. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  108. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  109. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  110. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  111. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  112. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  113. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  114. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  115. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  116. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  117. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  118. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  119. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  120. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  121. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  122. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  123. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  124. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  125. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  126. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  127. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  128. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  129. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/README.md +0 -0
  130. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/c-tags.scm +0 -0
  131. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  132. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  133. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/dart-tags.scm +0 -0
  134. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  135. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  136. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/elm-tags.scm +0 -0
  137. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  138. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/go-tags.scm +0 -0
  139. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  140. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/java-tags.scm +0 -0
  141. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  142. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/julia-tags.scm +0 -0
  143. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  144. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  145. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  146. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  147. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/php-tags.scm +0 -0
  148. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/python-tags.scm +0 -0
  149. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/ql-tags.scm +0 -0
  150. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  151. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/rust-tags.scm +0 -0
  152. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/scala-tags.scm +0 -0
  153. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  154. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/reasoning_tags.py +0 -0
  155. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/repo.py +0 -0
  156. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/repomap.py +0 -0
  157. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/report.py +0 -0
  158. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/resources/__init__.py +0 -0
  159. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/resources/model-metadata.json +0 -0
  160. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/resources/model-settings.yml +0 -0
  161. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/run_cmd.py +0 -0
  162. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/scrape.py +0 -0
  163. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/sendchat.py +0 -0
  164. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/special.py +0 -0
  165. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/__init__.py +0 -0
  166. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/command.py +0 -0
  167. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/command_interactive.py +0 -0
  168. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/delete_block.py +0 -0
  169. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/delete_line.py +0 -0
  170. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/delete_lines.py +0 -0
  171. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/extract_lines.py +0 -0
  172. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/git.py +0 -0
  173. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/grep.py +0 -0
  174. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/indent_lines.py +0 -0
  175. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/insert_block.py +0 -0
  176. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/list_changes.py +0 -0
  177. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/ls.py +0 -0
  178. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/make_editable.py +0 -0
  179. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/make_readonly.py +0 -0
  180. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/remove.py +0 -0
  181. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/replace_all.py +0 -0
  182. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/replace_line.py +0 -0
  183. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/replace_lines.py +0 -0
  184. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/replace_text.py +0 -0
  185. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/show_numbered_context.py +0 -0
  186. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/tool_utils.py +0 -0
  187. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/undo_change.py +0 -0
  188. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/update_todo_list.py +0 -0
  189. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/view.py +0 -0
  190. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/view_files_at_glob.py +0 -0
  191. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/view_files_matching.py +0 -0
  192. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/view_files_with_symbol.py +0 -0
  193. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/tools/view_todo_list.py +0 -0
  194. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/urls.py +0 -0
  195. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/utils.py +0 -0
  196. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/versioncheck.py +0 -0
  197. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/voice.py +0 -0
  198. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/waiting.py +0 -0
  199. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/watch.py +0 -0
  200. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/watch_prompts.py +0 -0
  201. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/Gemfile +0 -0
  202. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/blame.md +0 -0
  203. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/get-started.md +0 -0
  204. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/help-tip.md +0 -0
  205. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/help.md +0 -0
  206. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/install.md +0 -0
  207. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/keys.md +0 -0
  208. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/model-warnings.md +0 -0
  209. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/multi-line.md +0 -0
  210. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/python-m-aider.md +0 -0
  211. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/recording.css +0 -0
  212. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/recording.md +0 -0
  213. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/replit-pipx.md +0 -0
  214. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_includes/works-best.md +0 -0
  215. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/_sass/custom/custom.scss +0 -0
  216. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/adv-model-settings.md +0 -0
  217. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/aider_conf.md +0 -0
  218. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/api-keys.md +0 -0
  219. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/dotenv.md +0 -0
  220. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/editor.md +0 -0
  221. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/mcp.md +0 -0
  222. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/model-aliases.md +0 -0
  223. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/options.md +0 -0
  224. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config/reasoning.md +0 -0
  225. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/config.md +0 -0
  226. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/faq.md +0 -0
  227. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/git.md +0 -0
  228. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/index.md +0 -0
  229. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/install/codespaces.md +0 -0
  230. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/install/docker.md +0 -0
  231. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/install/optional.md +0 -0
  232. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/install/replit.md +0 -0
  233. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/install.md +0 -0
  234. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/languages.md +0 -0
  235. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/legal/contributor-agreement.md +0 -0
  236. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/legal/privacy.md +0 -0
  237. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/anthropic.md +0 -0
  238. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/azure.md +0 -0
  239. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/bedrock.md +0 -0
  240. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/cohere.md +0 -0
  241. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/deepseek.md +0 -0
  242. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/gemini.md +0 -0
  243. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/github.md +0 -0
  244. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/groq.md +0 -0
  245. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/lm-studio.md +0 -0
  246. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/ollama.md +0 -0
  247. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/openai-compat.md +0 -0
  248. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/openai.md +0 -0
  249. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/openrouter.md +0 -0
  250. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/other.md +0 -0
  251. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/vertex.md +0 -0
  252. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/warnings.md +0 -0
  253. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms/xai.md +0 -0
  254. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/llms.md +0 -0
  255. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/more/analytics.md +0 -0
  256. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/more/edit-formats.md +0 -0
  257. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/more/infinite-output.md +0 -0
  258. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/more-info.md +0 -0
  259. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/recordings/auto-accept-architect.md +0 -0
  260. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/recordings/dont-drop-original-read-files.md +0 -0
  261. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/recordings/index.md +0 -0
  262. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/recordings/model-accepts-settings.md +0 -0
  263. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/recordings/tree-sitter-language-pack.md +0 -0
  264. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/repomap.md +0 -0
  265. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/scripting.md +0 -0
  266. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/aider-not-found.md +0 -0
  267. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/edit-errors.md +0 -0
  268. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/imports.md +0 -0
  269. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/models-and-keys.md +0 -0
  270. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/support.md +0 -0
  271. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/token-limits.md +0 -0
  272. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting/warnings.md +0 -0
  273. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/troubleshooting.md +0 -0
  274. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/browser.md +0 -0
  275. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/caching.md +0 -0
  276. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/commands.md +0 -0
  277. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/conventions.md +0 -0
  278. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/copypaste.md +0 -0
  279. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/images-urls.md +0 -0
  280. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/lint-test.md +0 -0
  281. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/modes.md +0 -0
  282. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/not-code.md +0 -0
  283. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/notifications.md +0 -0
  284. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/tips.md +0 -0
  285. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/tutorials.md +0 -0
  286. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/voice.md +0 -0
  287. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage/watch.md +0 -0
  288. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/docs/usage.md +0 -0
  289. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider/website/share/index.md +0 -0
  290. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider_ce.egg-info/SOURCES.txt +0 -0
  291. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider_ce.egg-info/dependency_links.txt +0 -0
  292. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider_ce.egg-info/requires.txt +0 -0
  293. {aider_ce-0.88.0 → aider_ce-0.88.2}/aider_ce.egg-info/top_level.txt +0 -0
  294. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/Dockerfile +0 -0
  295. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/README.md +0 -0
  296. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/__init__.py +0 -0
  297. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/benchmark.py +0 -0
  298. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/clone-exercism.sh +0 -0
  299. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/cpp-test.sh +0 -0
  300. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/docker.sh +0 -0
  301. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/docker_build.sh +0 -0
  302. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/install-docker-ubuntu.sh +0 -0
  303. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/npm-test.sh +0 -0
  304. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/over_time.py +0 -0
  305. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/plot.sh +0 -0
  306. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/plots.py +0 -0
  307. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/problem_stats.py +0 -0
  308. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/prompts.py +0 -0
  309. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/refactor_tools.py +0 -0
  310. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/rsync.sh +0 -0
  311. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/rungrid.py +0 -0
  312. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/swe-bench-lite.txt +0 -0
  313. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/swe-bench.txt +0 -0
  314. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/swe_bench.py +0 -0
  315. {aider_ce-0.88.0 → aider_ce-0.88.2}/benchmark/test_benchmark.py +0 -0
  316. {aider_ce-0.88.0 → aider_ce-0.88.2}/docker/Dockerfile +0 -0
  317. {aider_ce-0.88.0 → aider_ce-0.88.2}/pytest.ini +0 -0
  318. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/common-constraints.txt +0 -0
  319. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-browser.in +0 -0
  320. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-browser.txt +0 -0
  321. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-dev.in +0 -0
  322. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-dev.txt +0 -0
  323. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-help.in +0 -0
  324. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-help.txt +0 -0
  325. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-playwright.in +0 -0
  326. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements-playwright.txt +0 -0
  327. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/requirements.in +0 -0
  328. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements/tree-sitter.in +0 -0
  329. {aider_ce-0.88.0 → aider_ce-0.88.2}/requirements.txt +0 -0
  330. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/30k-image.py +0 -0
  331. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/Dockerfile.jekyll +0 -0
  332. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/__init__.py +0 -0
  333. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/blame.py +0 -0
  334. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/clean_metadata.py +0 -0
  335. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/dl_icons.py +0 -0
  336. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/history_prompts.py +0 -0
  337. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/homepage.py +0 -0
  338. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/issues.py +0 -0
  339. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/jekyll_build.sh +0 -0
  340. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/jekyll_run.sh +0 -0
  341. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/logo_svg.py +0 -0
  342. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/my_models.py +0 -0
  343. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/pip-compile.sh +0 -0
  344. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/recording_audio.py +0 -0
  345. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/redact-cast.py +0 -0
  346. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/tmux_record.sh +0 -0
  347. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/tsl_pack_langs.py +0 -0
  348. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/update-blame.sh +0 -0
  349. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/update-docs.sh +0 -0
  350. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/update-history.py +0 -0
  351. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/versionbump.py +0 -0
  352. {aider_ce-0.88.0 → aider_ce-0.88.2}/scripts/yank-old-versions.py +0 -0
  353. {aider_ce-0.88.0 → aider_ce-0.88.2}/setup.cfg +0 -0
  354. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/__init__.py +0 -0
  355. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/__init__.py +0 -0
  356. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_analytics.py +0 -0
  357. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_aws_credentials.py +0 -0
  358. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_coder.py +0 -0
  359. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_commands.py +0 -0
  360. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_deprecated.py +0 -0
  361. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_editblock.py +0 -0
  362. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_editor.py +0 -0
  363. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_exceptions.py +0 -0
  364. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_find_or_blocks.py +0 -0
  365. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_history.py +0 -0
  366. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_io.py +0 -0
  367. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_linter.py +0 -0
  368. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_main.py +0 -0
  369. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_model_info_manager.py +0 -0
  370. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_models.py +0 -0
  371. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_onboarding.py +0 -0
  372. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_openrouter.py +0 -0
  373. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_reasoning.py +0 -0
  374. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_repo.py +0 -0
  375. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_repomap.py +0 -0
  376. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_run_cmd.py +0 -0
  377. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_scripting.py +0 -0
  378. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_sendchat.py +0 -0
  379. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_special.py +0 -0
  380. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_ssl_verification.py +0 -0
  381. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_udiff.py +0 -0
  382. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_urls.py +0 -0
  383. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_voice.py +0 -0
  384. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_watch.py +0 -0
  385. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/basic/test_wholefile.py +0 -0
  386. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/browser/test_browser.py +0 -0
  387. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  388. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/chat-history.md +0 -0
  389. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/arduino/test.ino +0 -0
  390. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/c/test.c +0 -0
  391. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  392. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/clojure/test.clj +0 -0
  393. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  394. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  395. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/csharp/test.cs +0 -0
  396. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/d/test.d +0 -0
  397. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/dart/test.dart +0 -0
  398. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/elisp/test.el +0 -0
  399. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/elixir/test.ex +0 -0
  400. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/elm/test.elm +0 -0
  401. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  402. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/go/test.go +0 -0
  403. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/hcl/test.tf +0 -0
  404. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/java/test.java +0 -0
  405. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/javascript/test.js +0 -0
  406. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  407. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/lua/test.lua +0 -0
  408. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/matlab/test.m +0 -0
  409. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  410. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  411. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/php/test.php +0 -0
  412. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/pony/test.pony +0 -0
  413. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/properties/test.properties +0 -0
  414. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/python/test.py +0 -0
  415. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/ql/test.ql +0 -0
  416. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/r/test.r +0 -0
  417. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/racket/test.rkt +0 -0
  418. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/ruby/test.rb +0 -0
  419. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/rust/test.rs +0 -0
  420. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/scala/test.scala +0 -0
  421. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/solidity/test.sol +0 -0
  422. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/swift/test.swift +0 -0
  423. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  424. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/typescript/test.ts +0 -0
  425. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/languages/udev/test.rules +0 -0
  426. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/sample-code-base/sample.js +0 -0
  427. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/sample-code-base/sample.py +0 -0
  428. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  429. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/watch.js +0 -0
  430. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/watch.lisp +0 -0
  431. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/watch.py +0 -0
  432. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/fixtures/watch_question.js +0 -0
  433. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/help/test_help.py +0 -0
  434. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/scrape/test_playwright_disable.py +0 -0
  435. {aider_ce-0.88.0 → aider_ce-0.88.2}/tests/scrape/test_scrape.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aider-ce
3
- Version: 0.88.0
3
+ Version: 0.88.2
4
4
  Summary: Aider is AI pair programming in your terminal
5
5
  Project-URL: Homepage, https://github.com/dwash96/aider-ce
6
6
  Classifier: Development Status :: 4 - Beta
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.88.0.dev"
3
+ __version__ = "0.88.2.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.88.0'
32
- __version_tuple__ = version_tuple = (0, 88, 0)
31
+ __version__ = version = '0.88.2'
32
+ __version_tuple__ = version_tuple = (0, 88, 2)
33
33
 
34
- __commit_id__ = commit_id = 'g24d162af8'
34
+ __commit_id__ = commit_id = 'g0cb2e8876'
@@ -14,7 +14,7 @@ class ArchitectCoder(AskCoder):
14
14
  if not content or not content.strip():
15
15
  return
16
16
 
17
- if not self.auto_accept_architect and not self.io.confirm_ask("Edit the files?"):
17
+ if not self.auto_accept_architect and not await self.io.confirm_ask("Edit the files?"):
18
18
  return
19
19
 
20
20
  kwargs = dict()
@@ -616,9 +616,6 @@ class Coder:
616
616
  except Exception as e:
617
617
  self.io.tool_warning(f"Could not remove todo list file {todo_file_path}: {e}")
618
618
 
619
- # Instantiate MCP tools
620
- if self.mcp_servers:
621
- pass
622
619
  # validate the functions jsonschema
623
620
  if self.functions:
624
621
  from jsonschema import Draft7Validator
@@ -1248,7 +1245,7 @@ class Coder:
1248
1245
  else:
1249
1246
  message = self.reflected_message
1250
1247
 
1251
- def check_and_open_urls(self, exc, friendly_msg=None):
1248
+ async def check_and_open_urls(self, exc, friendly_msg=None):
1252
1249
  """Check exception for URLs, offer to open in a browser, with user-friendly error msgs."""
1253
1250
  text = str(exc)
1254
1251
 
@@ -1264,7 +1261,7 @@ class Coder:
1264
1261
  urls = list(set(url_pattern.findall(text)))
1265
1262
  for url in urls:
1266
1263
  url = url.rstrip(".',\"}") # Added } to the characters to strip
1267
- self.io.offer_url(url)
1264
+ await self.io.offer_url(url)
1268
1265
  return urls
1269
1266
 
1270
1267
  async def check_for_urls(self, inp: str) -> List[str]:
@@ -1755,7 +1752,7 @@ class Coder:
1755
1752
 
1756
1753
  return chunks
1757
1754
 
1758
- def check_tokens(self, messages):
1755
+ async def check_tokens(self, messages):
1759
1756
  """Check if the messages will fit within the model's token limits."""
1760
1757
  input_tokens = self.main_model.token_count(messages)
1761
1758
  max_input_tokens = self.main_model.info.get("max_input_tokens") or 0
@@ -1774,7 +1771,7 @@ class Coder:
1774
1771
  " the context limit is exceeded."
1775
1772
  )
1776
1773
 
1777
- if not self.io.confirm_ask("Try to proceed anyway?"):
1774
+ if not await self.io.confirm_ask("Try to proceed anyway?"):
1778
1775
  return False
1779
1776
  return True
1780
1777
 
@@ -1792,7 +1789,7 @@ class Coder:
1792
1789
  chunks = self.format_messages()
1793
1790
  messages = chunks.all_messages()
1794
1791
 
1795
- if not self.check_tokens(messages):
1792
+ if not await self.check_tokens(messages):
1796
1793
  return
1797
1794
  self.warm_cache(chunks)
1798
1795
 
@@ -1841,7 +1838,7 @@ class Coder:
1841
1838
 
1842
1839
  if not should_retry:
1843
1840
  self.mdstream = None
1844
- self.check_and_open_urls(err, ex_info.description)
1841
+ await self.check_and_open_urls(err, ex_info.description)
1845
1842
  break
1846
1843
 
1847
1844
  err_msg = str(err)
@@ -1906,7 +1903,7 @@ class Coder:
1906
1903
  ),
1907
1904
  ]
1908
1905
 
1909
- self.show_exhausted_error()
1906
+ await self.show_exhausted_error()
1910
1907
  self.num_exhausted_context_windows += 1
1911
1908
  return
1912
1909
 
@@ -2352,7 +2349,8 @@ class Coder:
2352
2349
  )
2353
2350
  return (server.name, server_tools)
2354
2351
  except Exception as e:
2355
- self.io.tool_warning(f"Error initializing MCP server {server.name}:\n{e}")
2352
+ if server.name != "unnamed-server":
2353
+ self.io.tool_warning(f"Error initializing MCP server {server.name}:\n{e}")
2356
2354
  return None
2357
2355
 
2358
2356
  async def get_all_server_tools():
@@ -2402,7 +2400,7 @@ class Coder:
2402
2400
  async def reply_completed(self):
2403
2401
  pass
2404
2402
 
2405
- def show_exhausted_error(self):
2403
+ async def show_exhausted_error(self):
2406
2404
  output_tokens = 0
2407
2405
  if self.partial_response_content:
2408
2406
  output_tokens = self.main_model.token_count(self.partial_response_content)
@@ -2453,7 +2451,7 @@ class Coder:
2453
2451
 
2454
2452
  res = "".join([line + "\n" for line in res])
2455
2453
  self.io.tool_error(res)
2456
- self.io.offer_url(urls.token_limits)
2454
+ await self.io.offer_url(urls.token_limits)
2457
2455
 
2458
2456
  def lint_edited(self, fnames):
2459
2457
  res = ""
@@ -2604,7 +2602,7 @@ class Coder:
2604
2602
  )
2605
2603
  self.chat_completion_call_hashes.append(hash_object.hexdigest())
2606
2604
 
2607
- if self.stream:
2605
+ if not isinstance(completion, ModelResponse):
2608
2606
  async for chunk in self.show_send_output_stream(completion):
2609
2607
  yield chunk
2610
2608
  else:
@@ -2640,6 +2638,10 @@ class Coder:
2640
2638
  if self.verbose:
2641
2639
  print(completion)
2642
2640
 
2641
+ if not isinstance(completion, ModelResponse):
2642
+ self.io.tool_error(str(completion))
2643
+ return
2644
+
2643
2645
  if not completion.choices:
2644
2646
  self.io.tool_error(str(completion))
2645
2647
  return
@@ -3092,7 +3094,7 @@ class Coder:
3092
3094
  return
3093
3095
 
3094
3096
  if not Path(full_path).exists():
3095
- if not self.io.confirm_ask("Create new file?", subject=path):
3097
+ if not await self.io.confirm_ask("Create new file?", subject=path):
3096
3098
  self.io.tool_output(f"Skipping edits to {path}")
3097
3099
  return
3098
3100
 
@@ -28,6 +28,7 @@ EXCEPTIONS = [
28
28
  "The API provider has refused the request due to a safety policy about the content.",
29
29
  ),
30
30
  ExInfo("ContextWindowExceededError", False, None), # special case handled in base_coder
31
+ ExInfo("ErrorEventError", True, None),
31
32
  ExInfo("ImageFetchError", True, "The API cannot fetch an image"),
32
33
  ExInfo("InternalServerError", True, "The API provider's servers are down or overloaded."),
33
34
  ExInfo("InvalidRequestError", True, None),
@@ -1301,7 +1301,7 @@ class InputOutput:
1301
1301
  else:
1302
1302
  show_resp = Text(message or "(empty response)")
1303
1303
 
1304
- self.stream_print(show_resp)
1304
+ self.console.print(show_resp)
1305
1305
 
1306
1306
  def render_markdown(self, text):
1307
1307
  output = StringIO()
@@ -412,7 +412,7 @@ def register_litellm_models(git_root, model_metadata_fname, io, verbose=False):
412
412
  return 1
413
413
 
414
414
 
415
- def sanity_check_repo(repo, io):
415
+ async def sanity_check_repo(repo, io):
416
416
  if not repo:
417
417
  return True
418
418
 
@@ -443,7 +443,7 @@ def sanity_check_repo(repo, io):
443
443
  io.tool_error("Aider only works with git repos with version number 1 or 2.")
444
444
  io.tool_output("You may be able to convert your repo: git update-index --index-version=2")
445
445
  io.tool_output("Or run aider --no-git to proceed without using git.")
446
- io.offer_url(urls.git_index_version, "Open documentation url for more info?")
446
+ await io.offer_url(urls.git_index_version, "Open documentation url for more info?")
447
447
  return False
448
448
 
449
449
  io.tool_error("Unable to read git repository, it may be corrupt?")
@@ -783,7 +783,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
783
783
  io.tool_output(cmd_line, log_only=True)
784
784
 
785
785
  is_first_run = is_first_run_of_new_version(io, verbose=args.verbose)
786
- check_and_load_imports(io, is_first_run, verbose=args.verbose)
786
+ await check_and_load_imports(io, is_first_run, verbose=args.verbose)
787
787
 
788
788
  register_models(git_root, args.model_settings_file, io, verbose=args.verbose)
789
789
  register_litellm_models(git_root, args.model_metadata_file, io, verbose=args.verbose)
@@ -844,7 +844,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
844
844
  io.tool_error(
845
845
  f"Unable to proceed without an OpenRouter API key for model '{args.model}'."
846
846
  )
847
- io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
847
+ await io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
848
848
  analytics.event(
849
849
  "exit",
850
850
  reason="OpenRouter key missing for specified model and OAuth failed/declined",
@@ -926,7 +926,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
926
926
  io.tool_output("You can skip this check with --no-show-model-warnings")
927
927
 
928
928
  try:
929
- io.offer_url(urls.model_warnings, "Open documentation url for more info?")
929
+ await io.offer_url(urls.model_warnings, "Open documentation url for more info?")
930
930
  io.tool_output()
931
931
  except KeyboardInterrupt:
932
932
  analytics.event("exit", reason="Keyboard interrupt during model warnings")
@@ -954,7 +954,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
954
954
  pass
955
955
 
956
956
  if not args.skip_sanity_check_repo:
957
- if not sanity_check_repo(repo, io):
957
+ if not await sanity_check_repo(repo, io):
958
958
  analytics.event("exit", reason="Repository sanity check failed")
959
959
  return 1
960
960
 
@@ -1059,7 +1059,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
1059
1059
  )
1060
1060
  except UnknownEditFormat as err:
1061
1061
  io.tool_error(str(err))
1062
- io.offer_url(urls.edit_formats, "Open documentation about edit formats?")
1062
+ await io.offer_url(urls.edit_formats, "Open documentation about edit formats?")
1063
1063
  analytics.event("exit", reason="Unknown edit format")
1064
1064
  return 1
1065
1065
  except ValueError as err:
@@ -1152,7 +1152,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
1152
1152
  webbrowser.open(urls.release_notes)
1153
1153
  elif args.show_release_notes is None and is_first_run:
1154
1154
  io.tool_output()
1155
- io.offer_url(
1155
+ await io.offer_url(
1156
1156
  urls.release_notes,
1157
1157
  "Would you like to see what's new in this version?",
1158
1158
  allow_never=False,
@@ -1276,7 +1276,7 @@ def is_first_run_of_new_version(io, verbose=False):
1276
1276
  return True # Safer to assume it's a first run if we hit an error
1277
1277
 
1278
1278
 
1279
- def check_and_load_imports(io, is_first_run, verbose=False):
1279
+ async def check_and_load_imports(io, is_first_run, verbose=False):
1280
1280
  try:
1281
1281
  if is_first_run:
1282
1282
  if verbose:
@@ -1288,7 +1288,7 @@ def check_and_load_imports(io, is_first_run, verbose=False):
1288
1288
  except Exception as err:
1289
1289
  io.tool_error(str(err))
1290
1290
  io.tool_output("Error loading required imports. Did you install aider properly?")
1291
- io.offer_url(urls.install_properly, "Open documentation url for more info?")
1291
+ await io.offer_url(urls.install_properly, "Open documentation url for more info?")
1292
1292
  sys.exit(1)
1293
1293
 
1294
1294
  if verbose:
@@ -154,4 +154,21 @@ def load_mcp_servers(mcp_servers, mcp_servers_file, io, verbose=False, mcp_trans
154
154
  if mcp_servers_file:
155
155
  servers = _parse_mcp_servers_from_file(mcp_servers_file, io, verbose, mcp_transport)
156
156
 
157
+ if not servers:
158
+ # A default MCP server is actually now necessary for the overall agentic loop
159
+ # and a dummy server does suffice for the job
160
+ # because I am not smart enough to figure out why
161
+ # on coder switch, the agent actually initializes the prompt area twice
162
+ # once immediately after input for the old coder
163
+ # and immediately again for the new target coder
164
+ # which causes a race condition where we are awaiting a coroutine
165
+ # that can no longer yield control (somehow?)
166
+ # but somehow having to run through the MCP server checks
167
+ # allows control to be yielded again somehow
168
+ # and I cannot figure out just how that is happening
169
+ # and maybe it is actually prompt_toolkit's fault
170
+ # but this hack works swimmingly because ???
171
+ # so sure! why not
172
+ servers = [McpServer(json.loads('{"aider_default": {}}'))]
173
+
157
174
  return servers
@@ -146,7 +146,7 @@ async def select_default_model(args, io, analytics):
146
146
  if model:
147
147
  return model
148
148
 
149
- io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
149
+ await io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
150
150
 
151
151
 
152
152
  # Helper function to find an available port
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aider-ce
3
- Version: 0.88.0
3
+ Version: 0.88.2
4
4
  Summary: Aider is AI pair programming in your terminal
5
5
  Project-URL: Homepage, https://github.com/dwash96/aider-ce
6
6
  Classifier: Development Status :: 4 - Beta
@@ -1,3 +1,2 @@
1
1
  [console_scripts]
2
- aider = aider.main:main
3
2
  aider-ce = aider.main:main
@@ -22,7 +22,6 @@ dynamic = ["dependencies", "optional-dependencies", "version"]
22
22
  Homepage = "https://github.com/dwash96/aider-ce"
23
23
 
24
24
  [project.scripts]
25
- aider = "aider.main:main"
26
25
  aider-ce = "aider.main:main"
27
26
 
28
27
  [tool.setuptools.dynamic]
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import os
2
3
  import shutil
3
4
  import struct
@@ -81,7 +82,7 @@ def mock_repo_wrapper(repo_obj, git_repo_error=None):
81
82
  return mock_repo
82
83
 
83
84
 
84
- def test_detached_head_state(create_repo, mock_io):
85
+ async def test_detached_head_state(create_repo, mock_io):
85
86
  repo_path, repo = create_repo
86
87
  # Detach the HEAD
87
88
  detach_head(repo)
@@ -90,7 +91,7 @@ def test_detached_head_state(create_repo, mock_io):
90
91
  mock_repo_obj = mock_repo_wrapper(repo)
91
92
 
92
93
  # Call the function
93
- result = sanity_check_repo(mock_repo_obj, mock_io)
94
+ result = await sanity_check_repo(mock_repo_obj, mock_io)
94
95
 
95
96
  # Assert that the function returns True
96
97
  assert result is True
@@ -101,7 +102,7 @@ def test_detached_head_state(create_repo, mock_io):
101
102
 
102
103
 
103
104
  @mock.patch("webbrowser.open")
104
- def test_git_index_version_greater_than_2(mock_browser, create_repo, mock_io):
105
+ async def test_git_index_version_greater_than_2(mock_browser, create_repo, mock_io):
105
106
  repo_path, repo = create_repo
106
107
  # Set the git index version to 3
107
108
  set_git_index_version(str(repo_path), 3)
@@ -110,8 +111,12 @@ def test_git_index_version_greater_than_2(mock_browser, create_repo, mock_io):
110
111
  git_error = GitError("index version in (1, 2) is required")
111
112
  mock_repo_obj = mock_repo_wrapper(repo, git_repo_error=git_error)
112
113
 
114
+ # Configure the mock to return an async mock for offer_url
115
+ mock_io.offer_url.return_value = asyncio.Future()
116
+ mock_io.offer_url.return_value.set_result(False)
117
+
113
118
  # Call the function
114
- result = sanity_check_repo(mock_repo_obj, mock_io)
119
+ result = await sanity_check_repo(mock_repo_obj, mock_io)
115
120
 
116
121
  # Assert that the function returns False
117
122
  assert result is False
@@ -133,7 +138,7 @@ def test_git_index_version_greater_than_2(mock_browser, create_repo, mock_io):
133
138
  )
134
139
 
135
140
 
136
- def test_bare_repository(create_repo, mock_io, tmp_path):
141
+ async def test_bare_repository(create_repo, mock_io, tmp_path):
137
142
  # Initialize a bare repository
138
143
  bare_repo_path = tmp_path / "bare_repo.git"
139
144
  bare_repo = Repo.init(bare_repo_path, bare=True)
@@ -142,7 +147,7 @@ def test_bare_repository(create_repo, mock_io, tmp_path):
142
147
  mock_repo_obj = mock_repo_wrapper(bare_repo)
143
148
 
144
149
  # Call the function
145
- result = sanity_check_repo(mock_repo_obj, mock_io)
150
+ result = await sanity_check_repo(mock_repo_obj, mock_io)
146
151
 
147
152
  # Assert that the function returns False
148
153
  assert result is False
@@ -152,7 +157,7 @@ def test_bare_repository(create_repo, mock_io, tmp_path):
152
157
  mock_io.tool_output.assert_not_called()
153
158
 
154
159
 
155
- def test_sanity_check_repo_with_corrupt_repo(create_repo, mock_io):
160
+ async def test_sanity_check_repo_with_corrupt_repo(create_repo, mock_io):
156
161
  repo_path, repo = create_repo
157
162
  # Simulate a corrupt repository by removing the .git directory
158
163
  shutil.rmtree(os.path.join(repo_path, ".git"))
@@ -162,7 +167,7 @@ def test_sanity_check_repo_with_corrupt_repo(create_repo, mock_io):
162
167
  mock_repo_obj = mock_repo_wrapper(repo, git_repo_error=git_error)
163
168
 
164
169
  # Call the function
165
- result = sanity_check_repo(mock_repo_obj, mock_io)
170
+ result = await sanity_check_repo(mock_repo_obj, mock_io)
166
171
 
167
172
  # Assert that the function returns False
168
173
  assert result is False
@@ -172,9 +177,9 @@ def test_sanity_check_repo_with_corrupt_repo(create_repo, mock_io):
172
177
  mock_io.tool_output.assert_called_with(str(git_error))
173
178
 
174
179
 
175
- def test_sanity_check_repo_with_no_repo(mock_io):
180
+ async def test_sanity_check_repo_with_no_repo(mock_io):
176
181
  # Call the function with repo=None
177
- result = sanity_check_repo(None, mock_io)
182
+ result = await sanity_check_repo(None, mock_io)
178
183
 
179
184
  # Assert that the function returns True
180
185
  assert result is True
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes