patch-chat 0.1.0__py3-none-any.whl

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 (146) hide show
  1. patch/__init__.py +20 -0
  2. patch/__main__.py +4 -0
  3. patch/_version.py +24 -0
  4. patch/analytics.py +260 -0
  5. patch/args.py +955 -0
  6. patch/args_formatter.py +228 -0
  7. patch/coders/__init__.py +32 -0
  8. patch/coders/architect_coder.py +47 -0
  9. patch/coders/architect_prompts.py +40 -0
  10. patch/coders/ask_coder.py +9 -0
  11. patch/coders/ask_prompts.py +41 -0
  12. patch/coders/base_coder.py +2548 -0
  13. patch/coders/base_prompts.py +60 -0
  14. patch/coders/chat_chunks.py +64 -0
  15. patch/coders/context_coder.py +53 -0
  16. patch/coders/context_prompts.py +75 -0
  17. patch/coders/edit_apply.py +6 -0
  18. patch/coders/editblock_coder.py +620 -0
  19. patch/coders/editblock_fenced_coder.py +10 -0
  20. patch/coders/editblock_fenced_prompts.py +143 -0
  21. patch/coders/editblock_func_coder.py +141 -0
  22. patch/coders/editblock_func_prompts.py +27 -0
  23. patch/coders/editblock_prompts.py +172 -0
  24. patch/coders/editor_diff_fenced_coder.py +9 -0
  25. patch/coders/editor_diff_fenced_prompts.py +11 -0
  26. patch/coders/editor_editblock_coder.py +8 -0
  27. patch/coders/editor_editblock_prompts.py +18 -0
  28. patch/coders/editor_whole_coder.py +8 -0
  29. patch/coders/editor_whole_prompts.py +10 -0
  30. patch/coders/patch_coder.py +731 -0
  31. patch/coders/patch_prompts.py +159 -0
  32. patch/coders/search_replace.py +757 -0
  33. patch/coders/shell.py +37 -0
  34. patch/coders/single_wholefile_func_coder.py +102 -0
  35. patch/coders/single_wholefile_func_prompts.py +27 -0
  36. patch/coders/udiff_coder.py +419 -0
  37. patch/coders/udiff_prompts.py +113 -0
  38. patch/coders/udiff_simple.py +14 -0
  39. patch/coders/udiff_simple_prompts.py +25 -0
  40. patch/coders/wholefile_coder.py +144 -0
  41. patch/coders/wholefile_func_coder.py +134 -0
  42. patch/coders/wholefile_func_prompts.py +27 -0
  43. patch/coders/wholefile_prompts.py +64 -0
  44. patch/commands.py +1668 -0
  45. patch/copypaste.py +70 -0
  46. patch/deprecated.py +126 -0
  47. patch/diffs.py +128 -0
  48. patch/dump.py +29 -0
  49. patch/editor.py +147 -0
  50. patch/exceptions.py +113 -0
  51. patch/format_settings.py +47 -0
  52. patch/gui.py +545 -0
  53. patch/history.py +143 -0
  54. patch/io.py +1209 -0
  55. patch/linter.py +304 -0
  56. patch/llm.py +47 -0
  57. patch/main.py +1466 -0
  58. patch/mdstream.py +243 -0
  59. patch/models.py +1342 -0
  60. patch/onboarding.py +428 -0
  61. patch/openrouter.py +128 -0
  62. patch/prompts.py +61 -0
  63. patch/queries/tree-sitter-language-pack/README.md +7 -0
  64. patch/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
  65. patch/queries/tree-sitter-language-pack/bash-tags.scm +8 -0
  66. patch/queries/tree-sitter-language-pack/c-tags.scm +9 -0
  67. patch/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
  68. patch/queries/tree-sitter-language-pack/clojure-tags.scm +7 -0
  69. patch/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
  70. patch/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
  71. patch/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
  72. patch/queries/tree-sitter-language-pack/d-tags.scm +26 -0
  73. patch/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
  74. patch/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
  75. patch/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
  76. patch/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
  77. patch/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
  78. patch/queries/tree-sitter-language-pack/go-tags.scm +42 -0
  79. patch/queries/tree-sitter-language-pack/java-tags.scm +20 -0
  80. patch/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
  81. patch/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
  82. patch/queries/tree-sitter-language-pack/matlab-tags.scm +10 -0
  83. patch/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
  84. patch/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
  85. patch/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
  86. patch/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
  87. patch/queries/tree-sitter-language-pack/python-tags.scm +14 -0
  88. patch/queries/tree-sitter-language-pack/r-tags.scm +21 -0
  89. patch/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
  90. patch/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
  91. patch/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
  92. patch/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
  93. patch/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
  94. patch/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
  95. patch/queries/tree-sitter-languages/README.md +24 -0
  96. patch/queries/tree-sitter-languages/bash-tags.scm +8 -0
  97. patch/queries/tree-sitter-languages/c-tags.scm +9 -0
  98. patch/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
  99. patch/queries/tree-sitter-languages/cpp-tags.scm +15 -0
  100. patch/queries/tree-sitter-languages/dart-tags.scm +91 -0
  101. patch/queries/tree-sitter-languages/elisp-tags.scm +8 -0
  102. patch/queries/tree-sitter-languages/elixir-tags.scm +54 -0
  103. patch/queries/tree-sitter-languages/elm-tags.scm +19 -0
  104. patch/queries/tree-sitter-languages/fortran-tags.scm +15 -0
  105. patch/queries/tree-sitter-languages/go-tags.scm +30 -0
  106. patch/queries/tree-sitter-languages/haskell-tags.scm +3 -0
  107. patch/queries/tree-sitter-languages/hcl-tags.scm +77 -0
  108. patch/queries/tree-sitter-languages/java-tags.scm +20 -0
  109. patch/queries/tree-sitter-languages/javascript-tags.scm +88 -0
  110. patch/queries/tree-sitter-languages/julia-tags.scm +60 -0
  111. patch/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
  112. patch/queries/tree-sitter-languages/matlab-tags.scm +10 -0
  113. patch/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
  114. patch/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
  115. patch/queries/tree-sitter-languages/php-tags.scm +26 -0
  116. patch/queries/tree-sitter-languages/python-tags.scm +12 -0
  117. patch/queries/tree-sitter-languages/ql-tags.scm +26 -0
  118. patch/queries/tree-sitter-languages/ruby-tags.scm +64 -0
  119. patch/queries/tree-sitter-languages/rust-tags.scm +60 -0
  120. patch/queries/tree-sitter-languages/scala-tags.scm +65 -0
  121. patch/queries/tree-sitter-languages/typescript-tags.scm +41 -0
  122. patch/queries/tree-sitter-languages/zig-tags.scm +3 -0
  123. patch/reasoning_tags.py +82 -0
  124. patch/repo.py +612 -0
  125. patch/repomap.py +859 -0
  126. patch/report.py +200 -0
  127. patch/resources/__init__.py +3 -0
  128. patch/resources/model-metadata.json +715 -0
  129. patch/resources/model-settings.yml +3128 -0
  130. patch/run_cmd.py +146 -0
  131. patch/scrape.py +316 -0
  132. patch/sendchat.py +61 -0
  133. patch/special.py +203 -0
  134. patch/urls.py +17 -0
  135. patch/utils.py +365 -0
  136. patch/versioncheck.py +113 -0
  137. patch/voice.py +200 -0
  138. patch/waiting.py +222 -0
  139. patch/watch.py +318 -0
  140. patch/watch_prompts.py +12 -0
  141. patch_chat-0.1.0.dist-info/METADATA +375 -0
  142. patch_chat-0.1.0.dist-info/RECORD +146 -0
  143. patch_chat-0.1.0.dist-info/WHEEL +5 -0
  144. patch_chat-0.1.0.dist-info/entry_points.txt +2 -0
  145. patch_chat-0.1.0.dist-info/licenses/LICENSE.txt +202 -0
  146. patch_chat-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,375 @@
1
+ Metadata-Version: 2.4
2
+ Name: patch-chat
3
+ Version: 0.1.0
4
+ Summary: Patch is AI pair programming in your terminal
5
+ Project-URL: Homepage, https://github.com/PierrunoYT/patch
6
+ Classifier: Development Status :: 4 - Beta
7
+ Classifier: Environment :: Console
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: Apache Software License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Topic :: Software Development
18
+ Requires-Python: <3.15,>=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE.txt
21
+ Requires-Dist: aiohappyeyeballs==2.6.1
22
+ Requires-Dist: aiohttp==3.13.3
23
+ Requires-Dist: aiosignal==1.4.0
24
+ Requires-Dist: annotated-doc==0.0.4
25
+ Requires-Dist: annotated-types==0.7.0
26
+ Requires-Dist: anyio==4.12.1
27
+ Requires-Dist: asgiref==3.11.1
28
+ Requires-Dist: async-timeout==5.0.1; python_full_version < "3.11"
29
+ Requires-Dist: attrs==25.4.0
30
+ Requires-Dist: audioop-lts==0.2.2; python_full_version >= "3.13"
31
+ Requires-Dist: babel==2.18.0
32
+ Requires-Dist: backoff==2.2.1
33
+ Requires-Dist: beautifulsoup4==4.14.3
34
+ Requires-Dist: certifi==2026.2.25
35
+ Requires-Dist: cffi==2.0.0
36
+ Requires-Dist: charset-normalizer==3.4.6
37
+ Requires-Dist: click==8.3.1
38
+ Requires-Dist: colorama==0.4.6; sys_platform == "win32"
39
+ Requires-Dist: configargparse==1.7.5
40
+ Requires-Dist: diff-match-patch==20241021
41
+ Requires-Dist: diskcache==5.6.3
42
+ Requires-Dist: distro==1.9.0
43
+ Requires-Dist: exceptiongroup==1.3.1; python_full_version < "3.11"
44
+ Requires-Dist: fastuuid==0.14.0
45
+ Requires-Dist: filelock==3.25.2
46
+ Requires-Dist: frozenlist==1.8.0
47
+ Requires-Dist: fsspec==2026.2.0
48
+ Requires-Dist: gitdb==4.0.12
49
+ Requires-Dist: gitpython==3.1.46
50
+ Requires-Dist: grep-ast==0.9.0
51
+ Requires-Dist: h11==0.16.0
52
+ Requires-Dist: hf-xet==1.4.2; platform_machine == "AMD64" or platform_machine == "aarch64" or platform_machine == "amd64" or platform_machine == "arm64" or platform_machine == "x86_64"
53
+ Requires-Dist: httpcore==1.0.9
54
+ Requires-Dist: httpx==0.28.1
55
+ Requires-Dist: huggingface-hub==1.7.1
56
+ Requires-Dist: idna==3.11
57
+ Requires-Dist: importlib-metadata==7.2.1
58
+ Requires-Dist: importlib-resources==6.5.2
59
+ Requires-Dist: jinja2==3.1.6
60
+ Requires-Dist: jiter==0.13.0
61
+ Requires-Dist: json5==0.13.0
62
+ Requires-Dist: jsonschema==4.26.0
63
+ Requires-Dist: jsonschema-specifications==2025.9.1
64
+ Requires-Dist: litellm==1.82.3
65
+ Requires-Dist: markdown-it-py==4.0.0
66
+ Requires-Dist: markupsafe==3.0.3
67
+ Requires-Dist: mdurl==0.1.2
68
+ Requires-Dist: mixpanel==5.0.0
69
+ Requires-Dist: mslex==1.3.0
70
+ Requires-Dist: multidict==6.7.1
71
+ Requires-Dist: networkx==3.4.2
72
+ Requires-Dist: numpy==1.26.4; python_full_version < "3.11"
73
+ Requires-Dist: numpy==2.4.3; python_full_version >= "3.11"
74
+ Requires-Dist: openai==2.28.0
75
+ Requires-Dist: oslex==0.1.3
76
+ Requires-Dist: packaging==26.0
77
+ Requires-Dist: pathspec==1.0.4
78
+ Requires-Dist: pexpect==4.9.0
79
+ Requires-Dist: pillow==12.1.1
80
+ Requires-Dist: posthog==7.9.12
81
+ Requires-Dist: prompt-toolkit==3.0.52
82
+ Requires-Dist: propcache==0.4.1
83
+ Requires-Dist: psutil==7.2.2
84
+ Requires-Dist: ptyprocess==0.7.0
85
+ Requires-Dist: pycparser==3.0; implementation_name != "PyPy"
86
+ Requires-Dist: pydantic==2.12.5
87
+ Requires-Dist: pydantic-core==2.41.5
88
+ Requires-Dist: pydub==0.25.1
89
+ Requires-Dist: pygments==2.19.2
90
+ Requires-Dist: pypandoc==1.17
91
+ Requires-Dist: pyperclip==1.11.0
92
+ Requires-Dist: python-dateutil==2.9.0.post0
93
+ Requires-Dist: python-dotenv==1.2.2
94
+ Requires-Dist: pyyaml==6.0.3
95
+ Requires-Dist: referencing==0.37.0
96
+ Requires-Dist: regex==2026.2.28
97
+ Requires-Dist: requests==2.32.5
98
+ Requires-Dist: rich==14.3.3
99
+ Requires-Dist: rpds-py==0.30.0
100
+ Requires-Dist: scipy==1.15.3; python_full_version < "3.11"
101
+ Requires-Dist: scipy==1.17.1; python_full_version >= "3.11"
102
+ Requires-Dist: shellingham==1.5.4
103
+ Requires-Dist: shtab==1.8.0
104
+ Requires-Dist: six==1.17.0
105
+ Requires-Dist: smmap==5.0.3
106
+ Requires-Dist: sniffio==1.3.1
107
+ Requires-Dist: sounddevice==0.5.5
108
+ Requires-Dist: soundfile==0.13.1
109
+ Requires-Dist: soupsieve==2.8.3
110
+ Requires-Dist: tiktoken==0.12.0
111
+ Requires-Dist: tokenizers==0.22.2
112
+ Requires-Dist: tqdm==4.67.3
113
+ Requires-Dist: tree-sitter==0.25.2
114
+ Requires-Dist: tree-sitter-c-sharp==0.23.1
115
+ Requires-Dist: tree-sitter-embedded-template==0.25.0
116
+ Requires-Dist: tree-sitter-language-pack==0.13.0
117
+ Requires-Dist: tree-sitter-yaml==0.7.2
118
+ Requires-Dist: typer==0.24.1
119
+ Requires-Dist: typing-extensions==4.15.0
120
+ Requires-Dist: typing-inspection==0.4.2
121
+ Requires-Dist: urllib3==2.6.3
122
+ Requires-Dist: watchfiles==1.1.1
123
+ Requires-Dist: wcwidth==0.6.0
124
+ Requires-Dist: yarl==1.23.0
125
+ Requires-Dist: zipp==3.23.0
126
+ Provides-Extra: dev
127
+ Requires-Dist: annotated-doc==0.0.4; extra == "dev"
128
+ Requires-Dist: ast-serialize==0.8.0; extra == "dev"
129
+ Requires-Dist: build==1.4.0; extra == "dev"
130
+ Requires-Dist: certifi==2026.2.25; extra == "dev"
131
+ Requires-Dist: cffi==2.0.0; platform_python_implementation != "PyPy" and extra == "dev"
132
+ Requires-Dist: cfgv==3.5.0; extra == "dev"
133
+ Requires-Dist: charset-normalizer==3.4.6; extra == "dev"
134
+ Requires-Dist: click==8.3.1; extra == "dev"
135
+ Requires-Dist: codespell==2.4.2; extra == "dev"
136
+ Requires-Dist: cogapp==3.6.0; extra == "dev"
137
+ Requires-Dist: colorama==0.4.6; (os_name == "nt" or sys_platform == "win32") and extra == "dev"
138
+ Requires-Dist: contourpy==1.3.2; python_full_version < "3.11" and extra == "dev"
139
+ Requires-Dist: contourpy==1.3.3; python_full_version >= "3.11" and extra == "dev"
140
+ Requires-Dist: coverage[toml]==7.13.4; extra == "dev"
141
+ Requires-Dist: cryptography==46.0.5; extra == "dev"
142
+ Requires-Dist: cycler==0.12.1; extra == "dev"
143
+ Requires-Dist: distlib==0.4.0; extra == "dev"
144
+ Requires-Dist: exceptiongroup==1.3.1; python_full_version < "3.11" and extra == "dev"
145
+ Requires-Dist: filelock==3.25.2; extra == "dev"
146
+ Requires-Dist: flake8==7.3.0; extra == "dev"
147
+ Requires-Dist: fonttools==4.62.1; extra == "dev"
148
+ Requires-Dist: google-api-core[grpc]==2.30.0; extra == "dev"
149
+ Requires-Dist: google-auth==2.49.1; extra == "dev"
150
+ Requires-Dist: google-cloud-bigquery==3.40.1; extra == "dev"
151
+ Requires-Dist: google-cloud-core==2.5.0; extra == "dev"
152
+ Requires-Dist: google-crc32c==1.8.0; extra == "dev"
153
+ Requires-Dist: google-resumable-media==2.8.0; extra == "dev"
154
+ Requires-Dist: googleapis-common-protos==1.73.0; extra == "dev"
155
+ Requires-Dist: grpcio==1.78.0; extra == "dev"
156
+ Requires-Dist: grpcio-status==1.78.0; extra == "dev"
157
+ Requires-Dist: identify==2.6.18; extra == "dev"
158
+ Requires-Dist: idna==3.11; extra == "dev"
159
+ Requires-Dist: imgcat==0.6.0; extra == "dev"
160
+ Requires-Dist: importlib-metadata==7.2.1; python_full_version < "3.10.2" and extra == "dev"
161
+ Requires-Dist: iniconfig==2.3.0; extra == "dev"
162
+ Requires-Dist: kiwisolver==1.5.0; extra == "dev"
163
+ Requires-Dist: librt==0.15.0; platform_python_implementation != "PyPy" and extra == "dev"
164
+ Requires-Dist: lox==1.0.0; extra == "dev"
165
+ Requires-Dist: markdown-it-py==4.0.0; extra == "dev"
166
+ Requires-Dist: matplotlib==3.10.8; extra == "dev"
167
+ Requires-Dist: mccabe==0.7.0; extra == "dev"
168
+ Requires-Dist: mdurl==0.1.2; extra == "dev"
169
+ Requires-Dist: mypy==2.3.1; extra == "dev"
170
+ Requires-Dist: mypy-extensions==1.1.0; extra == "dev"
171
+ Requires-Dist: nodeenv==1.10.0; extra == "dev"
172
+ Requires-Dist: numpy==1.26.4; python_full_version < "3.11" and extra == "dev"
173
+ Requires-Dist: numpy==2.4.3; python_full_version >= "3.11" and extra == "dev"
174
+ Requires-Dist: packaging==26.0; extra == "dev"
175
+ Requires-Dist: pandas==2.3.3; extra == "dev"
176
+ Requires-Dist: pathspec==1.0.4; extra == "dev"
177
+ Requires-Dist: pillow==12.1.1; extra == "dev"
178
+ Requires-Dist: pip==26.0.1; extra == "dev"
179
+ Requires-Dist: pip-tools==7.5.3; extra == "dev"
180
+ Requires-Dist: platformdirs==4.9.4; extra == "dev"
181
+ Requires-Dist: pluggy==1.6.0; extra == "dev"
182
+ Requires-Dist: pre-commit==4.5.1; extra == "dev"
183
+ Requires-Dist: proto-plus==1.27.1; extra == "dev"
184
+ Requires-Dist: protobuf==6.33.5; extra == "dev"
185
+ Requires-Dist: pyasn1==0.6.2; extra == "dev"
186
+ Requires-Dist: pyasn1-modules==0.4.2; extra == "dev"
187
+ Requires-Dist: pycodestyle==2.14.0; extra == "dev"
188
+ Requires-Dist: pycparser==3.0; (implementation_name != "PyPy" and platform_python_implementation != "PyPy") and extra == "dev"
189
+ Requires-Dist: pyflakes==3.4.0; extra == "dev"
190
+ Requires-Dist: pygments==2.19.2; extra == "dev"
191
+ Requires-Dist: pyparsing==3.3.2; extra == "dev"
192
+ Requires-Dist: pyproject-hooks==1.2.0; extra == "dev"
193
+ Requires-Dist: pytest==9.0.2; extra == "dev"
194
+ Requires-Dist: pytest-cov==7.0.0; extra == "dev"
195
+ Requires-Dist: pytest-env==1.6.0; extra == "dev"
196
+ Requires-Dist: python-dateutil==2.9.0.post0; extra == "dev"
197
+ Requires-Dist: python-discovery==1.1.3; extra == "dev"
198
+ Requires-Dist: python-dotenv==1.2.2; extra == "dev"
199
+ Requires-Dist: pytz==2026.1.post1; extra == "dev"
200
+ Requires-Dist: pyyaml==6.0.3; extra == "dev"
201
+ Requires-Dist: requests==2.32.5; extra == "dev"
202
+ Requires-Dist: rich==14.3.3; extra == "dev"
203
+ Requires-Dist: semver==3.0.4; extra == "dev"
204
+ Requires-Dist: setuptools==82.0.1; extra == "dev"
205
+ Requires-Dist: shellingham==1.5.4; extra == "dev"
206
+ Requires-Dist: six==1.17.0; extra == "dev"
207
+ Requires-Dist: tomli==2.4.1; python_full_version <= "3.11" and extra == "dev"
208
+ Requires-Dist: typer==0.24.1; extra == "dev"
209
+ Requires-Dist: typing-extensions==4.15.0; extra == "dev"
210
+ Requires-Dist: tzdata==2025.3; extra == "dev"
211
+ Requires-Dist: urllib3==2.6.3; extra == "dev"
212
+ Requires-Dist: uv==0.10.11; extra == "dev"
213
+ Requires-Dist: virtualenv==21.2.0; extra == "dev"
214
+ Requires-Dist: wheel==0.46.3; extra == "dev"
215
+ Requires-Dist: zipp==3.23.0; python_full_version < "3.10.2" and extra == "dev"
216
+ Provides-Extra: browser
217
+ Requires-Dist: altair==6.0.0; extra == "browser"
218
+ Requires-Dist: attrs==25.4.0; extra == "browser"
219
+ Requires-Dist: blinker==1.9.0; extra == "browser"
220
+ Requires-Dist: cachetools==7.0.5; extra == "browser"
221
+ Requires-Dist: certifi==2026.2.25; extra == "browser"
222
+ Requires-Dist: charset-normalizer==3.4.6; extra == "browser"
223
+ Requires-Dist: click==8.3.1; extra == "browser"
224
+ Requires-Dist: colorama==0.4.6; sys_platform == "win32" and extra == "browser"
225
+ Requires-Dist: gitdb==4.0.12; extra == "browser"
226
+ Requires-Dist: gitpython==3.1.46; extra == "browser"
227
+ Requires-Dist: idna==3.11; extra == "browser"
228
+ Requires-Dist: jinja2==3.1.6; extra == "browser"
229
+ Requires-Dist: jsonschema==4.26.0; extra == "browser"
230
+ Requires-Dist: jsonschema-specifications==2025.9.1; extra == "browser"
231
+ Requires-Dist: markupsafe==3.0.3; extra == "browser"
232
+ Requires-Dist: narwhals==2.18.0; extra == "browser"
233
+ Requires-Dist: numpy==1.26.4; python_full_version < "3.11" and extra == "browser"
234
+ Requires-Dist: numpy==2.4.3; python_full_version >= "3.11" and extra == "browser"
235
+ Requires-Dist: packaging==26.0; extra == "browser"
236
+ Requires-Dist: pandas==2.3.3; extra == "browser"
237
+ Requires-Dist: pillow==12.1.1; extra == "browser"
238
+ Requires-Dist: protobuf==6.33.5; extra == "browser"
239
+ Requires-Dist: pyarrow==23.0.1; extra == "browser"
240
+ Requires-Dist: pydeck==0.9.1; extra == "browser"
241
+ Requires-Dist: python-dateutil==2.9.0.post0; extra == "browser"
242
+ Requires-Dist: pytz==2026.1.post1; extra == "browser"
243
+ Requires-Dist: referencing==0.37.0; extra == "browser"
244
+ Requires-Dist: requests==2.32.5; extra == "browser"
245
+ Requires-Dist: rpds-py==0.30.0; extra == "browser"
246
+ Requires-Dist: six==1.17.0; extra == "browser"
247
+ Requires-Dist: smmap==5.0.3; extra == "browser"
248
+ Requires-Dist: streamlit==1.55.0; extra == "browser"
249
+ Requires-Dist: tenacity==9.1.4; extra == "browser"
250
+ Requires-Dist: toml==0.10.2; extra == "browser"
251
+ Requires-Dist: tornado==6.5.5; extra == "browser"
252
+ Requires-Dist: typing-extensions==4.15.0; extra == "browser"
253
+ Requires-Dist: tzdata==2025.3; extra == "browser"
254
+ Requires-Dist: urllib3==2.6.3; extra == "browser"
255
+ Requires-Dist: watchdog==6.0.0; sys_platform != "darwin" and extra == "browser"
256
+ Provides-Extra: playwright
257
+ Requires-Dist: greenlet==3.3.2; extra == "playwright"
258
+ Requires-Dist: playwright==1.58.0; extra == "playwright"
259
+ Requires-Dist: pyee==13.0.1; extra == "playwright"
260
+ Requires-Dist: typing-extensions==4.15.0; extra == "playwright"
261
+ Dynamic: license-file
262
+
263
+ <h1 align="center">
264
+ Patch
265
+ </h1>
266
+
267
+ <p align="center">
268
+ <strong>AI pair programming in your terminal</strong>
269
+ </p>
270
+
271
+ <p align="center">
272
+ <a href="https://getpatch.dev">Website</a> ·
273
+ <a href="https://github.com/PierrunoYT/patch">GitHub</a>
274
+ </p>
275
+
276
+ <p align="center">
277
+ <a href="https://github.com/PierrunoYT/patch"><img alt="GitHub Stars" src="https://img.shields.io/github/stars/PierrunoYT/patch?style=flat-square&logo=github&color=f1c40f&labelColor=555555"></a>
278
+ <a href="https://github.com/PierrunoYT/patch/blob/main/LICENSE.txt"><img alt="License" src="https://img.shields.io/github/license/PierrunoYT/patch?style=flat-square&labelColor=555555"></a>
279
+ </p>
280
+
281
+ Patch lets you pair program with LLMs to start a new project or build on an existing
282
+ codebase.
283
+
284
+ ## Features
285
+
286
+ ### Cloud and local LLMs
287
+
288
+ Patch connects to cloud and local LLMs, giving you the flexibility to use the models that work best for you.
289
+
290
+ ### Maps your codebase
291
+
292
+ Patch maps your entire codebase, which helps it work well in larger projects.
293
+
294
+ ### 100+ code languages
295
+
296
+ Patch works with Python, JavaScript, TypeScript, Rust, Ruby, Go, C++, PHP, HTML, CSS, and dozens more.
297
+
298
+ ### Git integration
299
+
300
+ Patch automatically commits changes with sensible commit messages. Use familiar Git tools to diff, manage, and undo AI changes.
301
+
302
+ ### Use in your IDE
303
+
304
+ Use Patch from within your favorite IDE or editor. Ask for changes by adding comments to your code and Patch will get to work.
305
+
306
+ ### Images & web pages
307
+
308
+ Add images and web pages to the chat to provide visual context, screenshots, reference docs, etc.
309
+
310
+ ### Voice-to-code
311
+
312
+ Speak with Patch about your code. Request new features, test cases, or bug fixes using your voice and let Patch implement the changes.
313
+
314
+ ### Linting & testing
315
+
316
+ Automatically lint and test your code every time Patch makes changes. Patch can fix problems detected by your linters and test suites.
317
+
318
+ ### Copy/paste to web chat
319
+
320
+ Work with any LLM via its web chat interface. Patch streamlines copying code context and edits between your terminal and browser.
321
+
322
+ ## Getting Started
323
+
324
+ Install Patch from source and run the `patch` command:
325
+
326
+ ```bash
327
+ git clone https://github.com/PierrunoYT/patch.git
328
+ cd patch
329
+ python -m pip install -e .
330
+
331
+ # Start Patch in your codebase
332
+ cd /to/your/project
333
+ patch
334
+ ```
335
+
336
+ ## Security Boundaries
337
+
338
+ Patch treats both model output and the repository under edit as untrusted input.
339
+
340
+ **Writes stay inside the repository.** Every model-supplied path is resolved canonically and
341
+ must land inside the repository root before anything is created or modified. Absolute paths,
342
+ `..` traversal, and symlinks pointing outside the tree are refused, including under `--no-git`
343
+ and `--yes`, and including the `patch` format's `Move to:` target. Files added with
344
+ `--read` are exempt: they are supplied by you, not the model, and are never written to.
345
+
346
+ **The repository's own config is not trusted.** A `.patch.conf.yml` or `.env` discovered inside
347
+ the repository cannot set execution-capable options (`test`, `test-cmd`, `lint-cmd`, `load`,
348
+ `notifications-command`, `editor`, `verify-ssl`, `git-commit-verify`) or environment variables
349
+ that redirect API endpoints or proxies (`*_API_BASE`, `*_BASE_URL`, `HTTP(S)_PROXY`,
350
+ `REQUESTS_CA_BUNDLE`, ...). Ignored settings are reported at startup. Your home-directory
351
+ config and any file you pass explicitly with `--config` / `--env-file` are trusted as usual.
352
+
353
+ Pass `--trust-repo-config` to opt back in for a repository you trust. You can also set
354
+ `PATCH_TRUST_REPO_CONFIG` in your shell. The setting is ignored when it comes from the repository's
355
+ own config or `.env`, so a repository cannot grant itself trust.
356
+
357
+ ## Development
358
+
359
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for local development instructions. Amp orbs use the
360
+ repository's executable [`.agents/setup`](.agents/setup) script to provision the complete
361
+ development and optional-feature toolchain automatically on fresh remote machines.
362
+
363
+ ## More Information
364
+
365
+ ### Documentation
366
+ - [Installation and quick start](#getting-started)
367
+ - [Security boundaries](#security-boundaries)
368
+ - [Development guide](CONTRIBUTING.md)
369
+ - Run `patch --help` for all command-line and configuration options
370
+ - [Report a problem or request a feature](https://github.com/PierrunoYT/patch/issues)
371
+
372
+ ### Community & Resources
373
+ - [Patch website](https://getpatch.dev)
374
+ - [Patch on GitHub](https://github.com/PierrunoYT/patch)
375
+ - [Release notes](CHANGELOG.md)
@@ -0,0 +1,146 @@
1
+ patch/__init__.py,sha256=aOy3jqbbzszSKedWEzWXXdheLmfw9R6KFNMmm0AI2dM,515
2
+ patch/__main__.py,sha256=FB7YK_pFJ8jkVISwzx9l1AzT_ajbViYXu4evv8qga1U,66
3
+ patch/_version.py,sha256=5tOk271Z8jRWzQFKg64MWPJBA590OfpP2JQxdQjqUtc,552
4
+ patch/analytics.py,sha256=xLHqsG96E-vTCv6HOmHDeh2aaV6fV3Qq-bTF8ePJDHY,7821
5
+ patch/args.py,sha256=Cnf55vCdIWd_l1-FNoQUdWUFARgfqsBN9TbHGpCLSvQ,31667
6
+ patch/args_formatter.py,sha256=cFfbZQGnWHJJMRQT5y-qWwQq1Ab03UxUrzglV7TkNb8,6600
7
+ patch/commands.py,sha256=yT9xiMPlq9n2jEfuMqpYJK1GdAk_l0k7dHPi-4iCWpk,62656
8
+ patch/copypaste.py,sha256=tW_7r1Vk_gaD3mRd9fb4R4_TMLwyblxY-cr9vlvCRZI,2141
9
+ patch/deprecated.py,sha256=TcA9UwEPnHJRvWzcPyNzaXS2i-nhjaCQ1Y7M0k7wfYU,4403
10
+ patch/diffs.py,sha256=b9GUiDQ4mxVllrfNG41C0POcuWMCWaI63gGfhAybfKQ,3156
11
+ patch/dump.py,sha256=W9Cnt4uBF8wlkaSf0CoITve_8pZZ08CiTDVBY-Z3Bds,682
12
+ patch/editor.py,sha256=Gb4gOJyhYCZ25CcvF4PMZ63TQj_6pyCIF1ME4IQ_KPY,4543
13
+ patch/exceptions.py,sha256=3ADYZ7QXsx8izmAJHYHNhXvzDjwGn2q8swge2T2_W8w,4331
14
+ patch/format_settings.py,sha256=jLWZuO9wlAXaRlq-8lpV2UKExSSqNduR3ut_HkFRDSE,1702
15
+ patch/gui.py,sha256=vWGHHPrhtG-VY_1vdFc7hbc-w1-bisd2MqQNLAREkWI,18143
16
+ patch/history.py,sha256=OYmRnOmJE2uXEKBDm-NXq4e-FevWefYWaIqhtizonDY,4912
17
+ patch/io.py,sha256=FPR_E9TtnDrXcCFSkudKSgXSD9el6t9TlY0T_ngHhCU,44836
18
+ patch/linter.py,sha256=s6wKcDf7dl2vq_XhIiHi4JaOp8IJXeM3-lcSAh7ATko,8302
19
+ patch/llm.py,sha256=prRzCCk1ALcS4TGlYihYl0TEwRR8DJ8ll121G-I7Cns,1152
20
+ patch/main.py,sha256=4CxXxi-vlgatH3zCGCyc7jT07GX9QI4ggzog5WNzUrU,51548
21
+ patch/mdstream.py,sha256=reZBFBpYcEuliZU2ugU2rn_I5dyCLjbtIkOMJsh-Vw8,7837
22
+ patch/models.py,sha256=JTYURKCjJmnIxQ9wTQBncim3cHfkHbirK_IAJjXNbhU,47996
23
+ patch/onboarding.py,sha256=f_5tH_bQcsg7UxiZPt-M5wPO47HOfjMcNtwRXJ2WnCc,16533
24
+ patch/openrouter.py,sha256=ogzBLOO9jBcNZ8dKf9j1geRbDEDLNavwTi4HgSCr3KE,4769
25
+ patch/prompts.py,sha256=5ZtcrWtdwFHmeaEPQyN80brVXo_eRhCkAFBej6z8528,2415
26
+ patch/reasoning_tags.py,sha256=6t29ojrwO7WRha9CalpeOuC1fVP0ESII1Eti_sffMG8,2370
27
+ patch/repo.py,sha256=S-Nr2nJrwrZ8YfrABoLwqD8L47TpZxbP4zyKtSckcdw,23408
28
+ patch/repomap.py,sha256=HGPn_-TSYBBw7eTvoyX3k3jpzxJxq0TGGHnsgCo_McM,28051
29
+ patch/report.py,sha256=3z5kRHHiPcXZR7QyIQNqVK4odzYO6aqkAGe_jwvKWiM,6099
30
+ patch/run_cmd.py,sha256=tNcQ36FpGO74XufNcsjBBkKKoJvpQzz7hvdPVZecfJ4,4834
31
+ patch/scrape.py,sha256=PMg6LxEO4pGMKAY1JyguIt_toJWhStd9gyvETbe0zK4,10102
32
+ patch/sendchat.py,sha256=p1yVE9AZsm0NqvOKevV_il9TFmwsd0f1FhVKAO6HbKA,1915
33
+ patch/special.py,sha256=CA-ZU10ax7IpUXgX97o_sBjKdqJis5PcQurimQ1WMkk,4618
34
+ patch/urls.py,sha256=4GGu4HlC9DcpGusohXM6EurVsCtfgRZhL7pOsvKGDY4,708
35
+ patch/utils.py,sha256=g_xAvqtGEJTD2bgpzkN957JIAWHvGw5GwA-gGvNdXJE,10095
36
+ patch/versioncheck.py,sha256=_9d5T9LpGpFc_gWsXA8dl3xYqsY_kbUojFxHug3gs9I,3109
37
+ patch/voice.py,sha256=gAzSWVWgnrNCieFi8OwmNYTFOelCvpn72Rt3qiy7bCs,6966
38
+ patch/waiting.py,sha256=CL_nAWL_YI77duYp2lT6jpqBeQf5pZpNh4oHyfrNh2g,7763
39
+ patch/watch.py,sha256=37RllEWkaoCLTNR86d-ByBjqzmYIbXzjrvsDk3XCcxY,10959
40
+ patch/watch_prompts.py,sha256=j7bYqqb7WadrgppRhk-8lnCkxJ1Sx4bmWl4Jso17baA,568
41
+ patch/coders/__init__.py,sha256=ylbF7qynM0f2P7KrE23_CfwLOHG5xtIJacxCekzTJIc,1021
42
+ patch/coders/architect_coder.py,sha256=i5QD0BLOeVkqZXRCQlCmXXnQYYjq1MCZk_BVtFBREQ0,1635
43
+ patch/coders/architect_prompts.py,sha256=snhBx_I1hkBZ0J-PnzFuyx54P-aSLWMOrzBpPPTrXmY,1509
44
+ patch/coders/ask_coder.py,sha256=38GIK1n3tvZJ2_UKPEfUd9ycjxlX7dH3mbAXmiWctpQ,219
45
+ patch/coders/ask_prompts.py,sha256=3jmqRnxIaDRktORYbO9DJh95_1tK3yFAI6gwniS1Paw,1436
46
+ patch/coders/base_coder.py,sha256=mW0jCw_93f3PbRAQ8XE9a31jSBWkOXiU2C1P9TSrGiQ,91503
47
+ patch/coders/base_prompts.py,sha256=3bpTdE4vEWXz8pKKmt_e-fBCq5E05ErOI-Wx80N0Zuc,2444
48
+ patch/coders/chat_chunks.py,sha256=iVuabqL9YHpwazfzjpPf5GZRu6R6GmUIT0eMVZaes3o,2045
49
+ patch/coders/context_coder.py,sha256=YOUnM7dhe-REii7HrS7MjBEZFFuOMs7wSla7yRuPJJo,1624
50
+ patch/coders/context_prompts.py,sha256=-j1VFF6lUJYfTc6XkHrhqzEsiMrrQ7h6W82UsJkY0P4,3157
51
+ patch/coders/edit_apply.py,sha256=vuG9vuGm358cuZpSVQAr9VrATjvbbAFfTFVz1FTv-X4,231
52
+ patch/coders/editblock_coder.py,sha256=SJbnrjL0DI98pedsL8AYVHRrfvhVD8MQqfsWPLY-ypY,19295
53
+ patch/coders/editblock_fenced_coder.py,sha256=wkQFqKXOTW4Wea5qG-B3_uwCQaJ1SxP7FtzbiRm2ufU,356
54
+ patch/coders/editblock_fenced_prompts.py,sha256=g5w616zSPFtNq0Z2_CkV933p7mHnAD13yMDWUYBPLo4,4558
55
+ patch/coders/editblock_func_coder.py,sha256=bzwN-VyI4VLwJziERYb_wS8WgTnSL8-3vsmpAUUerfQ,5458
56
+ patch/coders/editblock_func_prompts.py,sha256=OZy787UgbdSfbs0w2owZZJsrkPslpMo2YmbgqoE-stM,913
57
+ patch/coders/editblock_prompts.py,sha256=hPILpqEl5Tmhi6aAoycNCmMl7w386Ap__Q7EUUj0zpI,5895
58
+ patch/coders/editor_diff_fenced_coder.py,sha256=cdbhj89ir2n3W--9Q_Vz0R8Owzws7YuRA9ZpN26J1rQ,347
59
+ patch/coders/editor_diff_fenced_prompts.py,sha256=SetqGpvs8hrLkZTEHZY_wrdCUi8tugNLWZHuOUQa1S4,283
60
+ patch/coders/editor_editblock_coder.py,sha256=vVT0bKUGzPNRAsqghi-cPqGq9Y0KO0I7qNG-i3b8wDo,314
61
+ patch/coders/editor_editblock_prompts.py,sha256=LjBfb4U50_ZG4YA8bvsqifvcZhSYIdOTeE1WQpKNYBU,565
62
+ patch/coders/editor_whole_coder.py,sha256=Y5Ar8YKUx9lB7D-Yak3uBP8nWrJcfOX1kCTV--5dGTo,309
63
+ patch/coders/editor_whole_prompts.py,sha256=34h3jeHg0l4xtITVQ4iRi3uN43C7t38foPc1nVcQ77U,289
64
+ patch/coders/patch_coder.py,sha256=7UEHbqR8IsllSinLII3IKhDt3quNkWhxGsNFcInE71U,32005
65
+ patch/coders/patch_prompts.py,sha256=en53tOrXOFCeRsQ5s_hScpvwjcOOdLmamZdJPRTQUdM,6171
66
+ patch/coders/search_replace.py,sha256=TY5xp8VNtGORgSqnoapBMMd3sdtcydYgBEQ_wKHzkuY,20570
67
+ patch/coders/shell.py,sha256=DZZJrCn_ITvLRMnlhKj-R1F47HZK5ukD5--pKx2nAOg,1838
68
+ patch/coders/single_wholefile_func_coder.py,sha256=YK39PGepwJzpUXa9ZU49UafZ5ahTqVQvTxxtQqjeV6g,3069
69
+ patch/coders/single_wholefile_func_prompts.py,sha256=HcymZiFSwtDXsZW1W4i3s8k7Keo-GaZZUh2xDulOOx4,894
70
+ patch/coders/udiff_coder.py,sha256=cKWpl9-mCkTDZn-cIaFNorjS7sf537TiR9oRSqP8pyI,11319
71
+ patch/coders/udiff_prompts.py,sha256=TBhIBYMv8BJUa7abNytHKYnhFhJMdfePUvjwlzGshJE,3433
72
+ patch/coders/udiff_simple.py,sha256=dVl6242e_ggGfR8nkr2AGEvbdHxtmh1nfhpF6rBbZgE,466
73
+ patch/coders/udiff_simple_prompts.py,sha256=WtxnV9LnPGTGIsqU9yw1-dNG1uwN5NAlrfYRl5hf8k8,913
74
+ patch/coders/wholefile_coder.py,sha256=AFCBwn5vHtRzTN3PqVMWDBbJOqRxA_A0exRGA7US7xo,5275
75
+ patch/coders/wholefile_func_coder.py,sha256=nnRjkLDMckWMZnapwKr6VoMcRGNP37LiBw1U7zHJ05g,4383
76
+ patch/coders/wholefile_func_prompts.py,sha256=9I4Qg4HEBaCljEGN6gW3rrwQv30msc957di1U5YDy4k,895
77
+ patch/coders/wholefile_prompts.py,sha256=w9XuvZTITtUGBntCRwRWtVD40ovQlpGm_jjFdPLX4k8,1933
78
+ patch/queries/tree-sitter-language-pack/README.md,sha256=vakXkYCgcIpVeoOzNq0E1nHPKHpusPiYYUCgzfw-w8Y,298
79
+ patch/queries/tree-sitter-language-pack/arduino-tags.scm,sha256=6_t_HFyzoRIuL5cPm9PLogGcLL0914ZNuFaPt2VxVD4,182
80
+ patch/queries/tree-sitter-language-pack/bash-tags.scm,sha256=ZzZqcNeqpMg6rzmCfihtb6WsZ-sDdi9-_c6qkTcgSIY,257
81
+ patch/queries/tree-sitter-language-pack/c-tags.scm,sha256=AD7HZUwfesKOzrcVs8JuX69ExYUzjvSSArqy-O2CqBs,470
82
+ patch/queries/tree-sitter-language-pack/chatito-tags.scm,sha256=qonvZZOWTx6ghdN5HK1NAEWIcg3wjW4XZ8VB4vKb_Rc,354
83
+ patch/queries/tree-sitter-language-pack/clojure-tags.scm,sha256=TW3C7HPhgAfVWkP2hkR_MsjrR8_egFVRKAPSkFNWXpw,201
84
+ patch/queries/tree-sitter-language-pack/commonlisp-tags.scm,sha256=M7vqg-9OmW6npi1HbPuvmR4mTy9uRA518zrHW8IDLDw,4835
85
+ patch/queries/tree-sitter-language-pack/cpp-tags.scm,sha256=EAS1weUUS_hDnGgsgQGjgRztJBgqeKyaxykp3AWbuAU,824
86
+ patch/queries/tree-sitter-language-pack/csharp-tags.scm,sha256=o7kjXPtIBS5lVQ8k3WBEUHWN9sRp6T9GPjTHHESyv8Q,1188
87
+ patch/queries/tree-sitter-language-pack/d-tags.scm,sha256=741bOe9gN0nAT0Q1FmUneCL3firMuWde-dHVErgcbE8,1446
88
+ patch/queries/tree-sitter-language-pack/dart-tags.scm,sha256=Y0Yq1bHcUV271ZeGWWv87tbj3zBe8sOoU14q3HZavgw,2359
89
+ patch/queries/tree-sitter-language-pack/elisp-tags.scm,sha256=9kPFiLOiBe9kQIo3EARkm7oQf2EhP4zkxgb890NnMsI,251
90
+ patch/queries/tree-sitter-language-pack/elixir-tags.scm,sha256=yU5ad9ECPNMZjZg6BIlPhK1l3avlgjH9iFom8F-Jm2g,1736
91
+ patch/queries/tree-sitter-language-pack/elm-tags.scm,sha256=gBKGgoLx_EV0Bb1-xPq-H_QzAXdhiM470SbqA0lQrAg,972
92
+ patch/queries/tree-sitter-language-pack/gleam-tags.scm,sha256=W4lIajDHjW1Ft2YQFzZ6M4Ug1k4OyRA8eGRF_xynVBk,1457
93
+ patch/queries/tree-sitter-language-pack/go-tags.scm,sha256=MTvjk34pxxxYYBfTia7eZPOgHz9kZtac9xwpBUI6M1A,1381
94
+ patch/queries/tree-sitter-language-pack/java-tags.scm,sha256=nfJO8BkmyYFYxQS8gbAtowXlBL-z3PEtUfB6VSglp_8,644
95
+ patch/queries/tree-sitter-language-pack/javascript-tags.scm,sha256=pe-lnrHn2OjpAJEdqK8Muyxr4HwL96J63eJ_RJbkUFQ,2394
96
+ patch/queries/tree-sitter-language-pack/lua-tags.scm,sha256=bMooeQ2yFMd4tUR05HsFlrX3Et7nvAJJeu99zEWVGk8,979
97
+ patch/queries/tree-sitter-language-pack/matlab-tags.scm,sha256=5LwOGxXbVOI73vSYkbvPXR3wWWtzURv1F0ijlxJW5Bc,318
98
+ patch/queries/tree-sitter-language-pack/ocaml-tags.scm,sha256=ZGQMt-x5amZsMNMDRN052RBpxB7SyWiVKWCp4xSqbt0,2810
99
+ patch/queries/tree-sitter-language-pack/ocaml_interface-tags.scm,sha256=7oZDR6wfOhbcEhoEEkKNoU_ye1AGIXszRFUp5_HEcxA,2107
100
+ patch/queries/tree-sitter-language-pack/pony-tags.scm,sha256=1Rsty_jBWRcpyBX3i9hCH2exF5QVRBuQA905-_F7iYY,2230
101
+ patch/queries/tree-sitter-language-pack/properties-tags.scm,sha256=Qm7CA6lqfZF7PfzP-9MTmLODJ5iakeb0s86iXO-zkxk,140
102
+ patch/queries/tree-sitter-language-pack/python-tags.scm,sha256=qSVk1qxZZ3zyutRvgJEXeZRwawE-8X0C9-Lstu1GagY,451
103
+ patch/queries/tree-sitter-language-pack/r-tags.scm,sha256=zpRflBDfySYZF43Ngl4VA6BEU4SqLHsYlbox4VquL0Q,482
104
+ patch/queries/tree-sitter-language-pack/racket-tags.scm,sha256=_FvbsFlrv5f1KDnpgN0nanKQrtw9Dl7niJt8IN9hyzo,236
105
+ patch/queries/tree-sitter-language-pack/ruby-tags.scm,sha256=ef5QX2-nTNnFExxzQoSxIrqbu_NJQ9I2-j0pxs2JOX8,1354
106
+ patch/queries/tree-sitter-language-pack/rust-tags.scm,sha256=9d6rwzTwgjL7E2MTJU8xL-qt7O4ehsMhtySaAO7I7m4,1511
107
+ patch/queries/tree-sitter-language-pack/solidity-tags.scm,sha256=7aOuqpYMyKRAAN6m5VxzFn0Z60AnQ6evDoQgrHUg7gI,1438
108
+ patch/queries/tree-sitter-language-pack/swift-tags.scm,sha256=R6ijMuSr6OKf_lAEA6Z9EsfGGpzMYbtpUTPMS94VGvQ,1490
109
+ patch/queries/tree-sitter-language-pack/udev-tags.scm,sha256=XHsH4SfmLu7lAxW9rduvO8UZAYeAVGpii4R2dR0AOEc,437
110
+ patch/queries/tree-sitter-languages/README.md,sha256=zgVZkqBuE1ROUsxQprsdhJBZMTKfWf6pO7zJELRzYJg,2633
111
+ patch/queries/tree-sitter-languages/bash-tags.scm,sha256=ZzZqcNeqpMg6rzmCfihtb6WsZ-sDdi9-_c6qkTcgSIY,257
112
+ patch/queries/tree-sitter-languages/c-tags.scm,sha256=AD7HZUwfesKOzrcVs8JuX69ExYUzjvSSArqy-O2CqBs,470
113
+ patch/queries/tree-sitter-languages/c_sharp-tags.scm,sha256=7z7Jn0wacZcIa5ps_akV0woGZ2U0AKg9IgCxvpKGqCI,1071
114
+ patch/queries/tree-sitter-languages/cpp-tags.scm,sha256=LjZ-bJbXR7gShaWB8fPIs4Db7ogw4yt3mBtn6sRtcWM,818
115
+ patch/queries/tree-sitter-languages/dart-tags.scm,sha256=Ui0ouFt5c5FrEDg_qaZwbja9nhmhZMkctvrMq8RtsB4,2342
116
+ patch/queries/tree-sitter-languages/elisp-tags.scm,sha256=lLdH35YYOQl8uzR6h_Oa8Yoi-NfOTtMmFmCwcVop8vY,340
117
+ patch/queries/tree-sitter-languages/elixir-tags.scm,sha256=SHsnXKUAQlUGeYvVp83U3BdZMkivTWCFdIIUUXoPyxY,1659
118
+ patch/queries/tree-sitter-languages/elm-tags.scm,sha256=AxPTAapu5kGuhNYszUW5CGJSdVFm6ns6LYgHM3dWEcw,970
119
+ patch/queries/tree-sitter-languages/fortran-tags.scm,sha256=sd7mXTFL1SRS9a59XESrnZNJ_XsOyQFel6pfcZb-M9Y,433
120
+ patch/queries/tree-sitter-languages/go-tags.scm,sha256=CmTr0nce_W7vUZcftyjIqBtc0rN3W9UdXuNth3mULqw,878
121
+ patch/queries/tree-sitter-languages/haskell-tags.scm,sha256=7c37EnNQtgUSdskOH5HYQ8BoSM5I-VgfLtjyOVpsNcU,146
122
+ patch/queries/tree-sitter-languages/hcl-tags.scm,sha256=OFSCB_41tFC4g8-C5IdK_3elNBLrjY2l5_9OUbskE_A,2214
123
+ patch/queries/tree-sitter-languages/java-tags.scm,sha256=5MWEWUeTDnk3TFjfneLw5aYKKZcwRcvmlq7-653ue_M,647
124
+ patch/queries/tree-sitter-languages/javascript-tags.scm,sha256=XBM4lzWuLdlKhMpJ7HhUGGcvXDYcjLMDF1utDXYjfxQ,2339
125
+ patch/queries/tree-sitter-languages/julia-tags.scm,sha256=pSeZ5WQ6j377jD-c0bL4J-Z4PBnB3cuRMB-aoen5mZw,1779
126
+ patch/queries/tree-sitter-languages/kotlin-tags.scm,sha256=qjkQoY-F0HBBgv5MvtcGaXx-sMEdSYx-biRHnHheoJI,659
127
+ patch/queries/tree-sitter-languages/matlab-tags.scm,sha256=5LwOGxXbVOI73vSYkbvPXR3wWWtzURv1F0ijlxJW5Bc,318
128
+ patch/queries/tree-sitter-languages/ocaml-tags.scm,sha256=ZGQMt-x5amZsMNMDRN052RBpxB7SyWiVKWCp4xSqbt0,2810
129
+ patch/queries/tree-sitter-languages/ocaml_interface-tags.scm,sha256=7oZDR6wfOhbcEhoEEkKNoU_ye1AGIXszRFUp5_HEcxA,2107
130
+ patch/queries/tree-sitter-languages/php-tags.scm,sha256=LnG1bT8ItsQAzn9EkZvpKB7TuJJos-J4IIqfh-o309Y,740
131
+ patch/queries/tree-sitter-languages/python-tags.scm,sha256=q05pZHazidd5wlrmseqst8WTHByCqChygUio0gL6zo4,337
132
+ patch/queries/tree-sitter-languages/ql-tags.scm,sha256=kum323166WskXyZP4rduX6iJ_xJ9iU5muvtLjHZ-vbc,733
133
+ patch/queries/tree-sitter-languages/ruby-tags.scm,sha256=ef5QX2-nTNnFExxzQoSxIrqbu_NJQ9I2-j0pxs2JOX8,1354
134
+ patch/queries/tree-sitter-languages/rust-tags.scm,sha256=7_7nLuqscvmAkC6s8ijVBhSF9lzKqB86CiUawLzFww4,1511
135
+ patch/queries/tree-sitter-languages/scala-tags.scm,sha256=ywSP6opkDmQ0em5xA8cDgspndeV5Z2o_TbXmoWe9YP8,1826
136
+ patch/queries/tree-sitter-languages/typescript-tags.scm,sha256=x8QfdjI1K65j65IQX5Quxl_fTL5-BupGFtyf1maQlUc,1294
137
+ patch/queries/tree-sitter-languages/zig-tags.scm,sha256=zTuwmI9hgNsnyPN6eoUxlSrbz6R-HPbH4JhqL90lEHI,127
138
+ patch/resources/__init__.py,sha256=KXwD9wztyE8eKu0pV4wglvkrajyu_vx0szfH_T_9FW8,145
139
+ patch/resources/model-metadata.json,sha256=ZNU_yzfnRnJpTUQKAgdvKdAllhuXqIVxIRlykTqEVSI,29057
140
+ patch/resources/model-settings.yml,sha256=jISknd2afGc06hGP6Cg9V45RJE2LIiRcFppECD9dhcY,89498
141
+ patch_chat-0.1.0.dist-info/licenses/LICENSE.txt,sha256=Pd-b5cKP4n2tFDpdx27qJSIq0d1ok0oEcGTlbtL6QMU,11560
142
+ patch_chat-0.1.0.dist-info/METADATA,sha256=6RKlLnQxAzJKjJSKpnafG4k1KkzE42yJoIU2KHRmNNw,16773
143
+ patch_chat-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
144
+ patch_chat-0.1.0.dist-info/entry_points.txt,sha256=F3W7ssvH4Y1Fto_oGpm2eh7_PlATkdnnor0v_DocWeE,42
145
+ patch_chat-0.1.0.dist-info/top_level.txt,sha256=YS8fpSgs8zbjwlHUDX2Tf1AuyynE5HnqTDNHFhUKsns,6
146
+ patch_chat-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ patch = patch.main:main