@graphpilot-oss/graphpilot 0.0.1

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 (130) hide show
  1. package/.editorconfig +15 -0
  2. package/.github/CODEOWNERS +22 -0
  3. package/.github/FUNDING.yml +1 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
  5. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  8. package/.github/dependabot.yml +15 -0
  9. package/.github/workflows/ci.yml +62 -0
  10. package/.github/workflows/release.yml +50 -0
  11. package/.prettierignore +19 -0
  12. package/.prettierrc.json +20 -0
  13. package/CHANGELOG.md +138 -0
  14. package/CODE_OF_CONDUCT.md +83 -0
  15. package/CONTRIBUTING.md +111 -0
  16. package/LICENSE +201 -0
  17. package/README.md +132 -0
  18. package/SECURITY.md +44 -0
  19. package/assets/logo.png +0 -0
  20. package/assets/logo.svg +1 -0
  21. package/bench/README.md +544 -0
  22. package/bench/results/agent-tier-2026-05-22.md +28 -0
  23. package/bench/results/agent-tier-summary.md +44 -0
  24. package/bench/results/baseline-tier-2026-05-22.md +23 -0
  25. package/bench/results/baseline.json +810 -0
  26. package/bench/results/baseline.md +28 -0
  27. package/bench/run-agent-tier-automated.ts +234 -0
  28. package/bench/run-agent-tier.md +125 -0
  29. package/bench/run-baseline-tier.ts +200 -0
  30. package/bench/run.ts +210 -0
  31. package/bench/runner-baseline.ts +177 -0
  32. package/bench/runner-graphpilot.ts +131 -0
  33. package/bench/score-agent-tier.ts +191 -0
  34. package/bench/score.ts +59 -0
  35. package/bench/tasks.ts +236 -0
  36. package/dist/cli.d.ts +2 -0
  37. package/dist/cli.js +162 -0
  38. package/dist/cli.js.map +1 -0
  39. package/dist/edges.d.ts +57 -0
  40. package/dist/edges.js +170 -0
  41. package/dist/edges.js.map +1 -0
  42. package/dist/git.d.ts +95 -0
  43. package/dist/git.js +247 -0
  44. package/dist/git.js.map +1 -0
  45. package/dist/graph-schema.d.ts +36 -0
  46. package/dist/graph-schema.js +208 -0
  47. package/dist/graph-schema.js.map +1 -0
  48. package/dist/impact.d.ts +99 -0
  49. package/dist/impact.js +123 -0
  50. package/dist/impact.js.map +1 -0
  51. package/dist/indexer.d.ts +28 -0
  52. package/dist/indexer.js +111 -0
  53. package/dist/indexer.js.map +1 -0
  54. package/dist/interactions.d.ts +46 -0
  55. package/dist/interactions.js +0 -0
  56. package/dist/interactions.js.map +1 -0
  57. package/dist/mcp.d.ts +3 -0
  58. package/dist/mcp.js +567 -0
  59. package/dist/mcp.js.map +1 -0
  60. package/dist/parser.d.ts +24 -0
  61. package/dist/parser.js +128 -0
  62. package/dist/parser.js.map +1 -0
  63. package/dist/provenance.d.ts +74 -0
  64. package/dist/provenance.js +95 -0
  65. package/dist/provenance.js.map +1 -0
  66. package/dist/query.d.ts +68 -0
  67. package/dist/query.js +127 -0
  68. package/dist/query.js.map +1 -0
  69. package/dist/redact.d.ts +30 -0
  70. package/dist/redact.js +117 -0
  71. package/dist/redact.js.map +1 -0
  72. package/dist/storage.d.ts +42 -0
  73. package/dist/storage.js +85 -0
  74. package/dist/storage.js.map +1 -0
  75. package/dist/symbols.d.ts +20 -0
  76. package/dist/symbols.js +140 -0
  77. package/dist/symbols.js.map +1 -0
  78. package/dist/validation.d.ts +9 -0
  79. package/dist/validation.js +65 -0
  80. package/dist/validation.js.map +1 -0
  81. package/dist/validators.d.ts +55 -0
  82. package/dist/validators.js +205 -0
  83. package/dist/validators.js.map +1 -0
  84. package/dist/watcher.d.ts +86 -0
  85. package/dist/watcher.js +310 -0
  86. package/dist/watcher.js.map +1 -0
  87. package/docs/architecture.md +311 -0
  88. package/docs/limitations.md +156 -0
  89. package/docs/mcp-setup.md +231 -0
  90. package/docs/quickstart.md +202 -0
  91. package/eslint.config.js +148 -0
  92. package/lefthook.yml +81 -0
  93. package/package.json +56 -0
  94. package/pnpm-workspace.yaml +6 -0
  95. package/scripts/smoke-stdio.mjs +97 -0
  96. package/src/cli.ts +171 -0
  97. package/src/edges.ts +202 -0
  98. package/src/git.ts +255 -0
  99. package/src/graph-schema.ts +229 -0
  100. package/src/impact.ts +218 -0
  101. package/src/indexer.ts +152 -0
  102. package/src/interactions.ts +0 -0
  103. package/src/mcp.ts +652 -0
  104. package/src/parser.ts +138 -0
  105. package/src/provenance.ts +115 -0
  106. package/src/query.ts +148 -0
  107. package/src/redact.ts +122 -0
  108. package/src/storage.ts +115 -0
  109. package/src/symbols.ts +173 -0
  110. package/src/validation.ts +69 -0
  111. package/src/validators.ts +253 -0
  112. package/src/watcher.ts +383 -0
  113. package/tests/edges.test.ts +175 -0
  114. package/tests/fixtures/sample.ts +32 -0
  115. package/tests/git.test.ts +303 -0
  116. package/tests/graph-schema.test.ts +321 -0
  117. package/tests/impact.test.ts +454 -0
  118. package/tests/interactions.test.ts +180 -0
  119. package/tests/lint-policy.test.ts +106 -0
  120. package/tests/mcp-stdio.test.ts +171 -0
  121. package/tests/mcp.test.ts +335 -0
  122. package/tests/parser.test.ts +31 -0
  123. package/tests/provenance.test.ts +132 -0
  124. package/tests/query.test.ts +160 -0
  125. package/tests/redact.test.ts +167 -0
  126. package/tests/security.test.ts +144 -0
  127. package/tests/symbols.test.ts +78 -0
  128. package/tests/validators.test.ts +193 -0
  129. package/tests/watcher.test.ts +250 -0
  130. package/tsconfig.json +18 -0
package/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for describing the origin of the Work and
141
+ reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2026 Akshay Sharma
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,132 @@
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="GraphPilot" width="120" />
3
+ </p>
4
+
5
+ <h1 align="center">GraphPilot</h1>
6
+
7
+ > **The refactor-safe code graph for coding agents.** Branch-aware. Evidence-backed.
8
+ > A structural memory layer that knows what changed since `main`, cites every claim
9
+ > with `file:line @ sha`, and re-roots itself to the git worktree automatically.
10
+
11
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
12
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org)
13
+ [![Status](https://img.shields.io/badge/status-alpha-orange.svg)](#status)
14
+
15
+ ---
16
+
17
+ **On 10 standardized structural questions** about a real TypeScript codebase:
18
+ GraphPilot returns the correct answer with **F1 0.89** vs grep's **0.42**, while
19
+ the agent reads **99.9 % fewer bytes** (721 B vs 528 KB) to reach the same
20
+ conclusion. [Reproduce in 30 s →](bench/README.md)
21
+
22
+ ---
23
+
24
+ ## Status
25
+
26
+ Pre-alpha, in active development. Not yet published to npm. Expect breaking changes.
27
+
28
+ ## Quickstart (local dev)
29
+
30
+ ```bash
31
+ git clone https://github.com/graphpilot-oss/graphpilot.git
32
+ cd graphpilot
33
+ pnpm install
34
+ pnpm build
35
+
36
+ # Index a repo
37
+ node dist/cli.js index /path/to/your/repo
38
+
39
+ # See what got indexed
40
+ node dist/cli.js status /path/to/your/repo
41
+
42
+ # Keep the index fresh as you edit (Ctrl+C to stop)
43
+ node dist/cli.js watch /path/to/your/repo
44
+ ```
45
+
46
+ Then wire it into Claude Code (or any MCP client): see
47
+ [docs/mcp-setup.md](docs/mcp-setup.md).
48
+
49
+ ## What it does
50
+
51
+ Five MCP tools that any MCP-compatible agent (Claude Code, Cursor, Cline,
52
+ Windsurf, Continue) can call:
53
+
54
+ | Tool | Use it for |
55
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
56
+ | `gp_index` | Re-index a repo from inside the agent |
57
+ | `gp_recall` | Look up a function/class/type/interface by name |
58
+ | `gp_callers` | List callers (or callees) of a symbol |
59
+ | `gp_impact` | Blast radius: direct + transitive callers, tests affected, public-API flag — answers _"what breaks if I rename X?"_ in one call. Pass `since: <commit\|branch>` for PR-scoped impact |
60
+ | `gp_stats` | Index health probe |
61
+
62
+ Plus `graphpilot watch` for sub-second incremental updates on file save.
63
+
64
+ The index lives in `~/.graphpilot/<repo-id>/graph.json` (mode 0600). Everything
65
+ stays local. No accounts, no telemetry, no remote calls — enforced by an
66
+ ESLint policy on the codebase itself.
67
+
68
+ ## What's different
69
+
70
+ Other code-graph tools (CodeGraphContext, Serena, the 15+ existing MCP servers
71
+ in this space) treat your repo as a static blob: index once, query forever, no
72
+ awareness of branches, no proof of where an answer came from. GraphPilot is
73
+ built around three things none of them ship:
74
+
75
+ - **Evidence anchors.** Every tool response includes `file:line @ sha` for
76
+ every symbol and call site. The agent can quote the anchor verbatim and
77
+ you can verify it instantly — fabrications get exposed the moment the user
78
+ jumps to the line.
79
+ - **Differential impact (`gp_impact({since: <ref>})`).** Ask "of all the
80
+ callers of `X`, which ones live in code my PR touches?" — answered in one
81
+ call instead of `git diff | xargs grep`. Branch-scoped refactors without
82
+ the false-positive noise.
83
+ - **Worktree-aware by default.** Run `graphpilot index ./src/feature` from a
84
+ subdir and it transparently re-roots to the git worktree top, so two
85
+ `git worktree add`-ed branches naturally get two separate indexes. Opt out
86
+ with `--no-worktree`.
87
+
88
+ ## Roadmap
89
+
90
+ | Milestone | Status |
91
+ | ------------------------------------------------ | ----------------- |
92
+ | Parser + symbol extraction (TS/JS) | ✅ |
93
+ | Directory indexer + JSON storage | ✅ |
94
+ | Call-edge extraction + resolver | ✅ |
95
+ | MCP server (5 tools) | ✅ |
96
+ | Watch mode | ✅ |
97
+ | Impact analysis (`gp_impact`) | ✅ |
98
+ | Tier-A benchmark (this codebase) | ✅ |
99
+ | Tier-B agent benchmark (Claude Code vs baseline) | ⏭ |
100
+ | npm publish | ⏭ |
101
+ | Python language support | ⏭ (demand-gated) |
102
+
103
+ ## Why
104
+
105
+ Most coding agents (Claude Code, Cursor, Aider) re-grep the codebase every
106
+ conversation. That burns tokens, hallucinates function names, and misses
107
+ structural relationships (_"what calls this?"_, _"what breaks if I rename it?"_).
108
+
109
+ GraphPilot indexes the structural memory of your repo once. The agent reuses
110
+ it across sessions. Token cost drops. Hallucinations drop. Refactors get safer.
111
+
112
+ The benchmark above is the floor: it measures what's reachable via tool calls,
113
+ not what the agent does with it. The agent-eval Tier B is spec'd in
114
+ [bench/run-agent-tier.md](bench/run-agent-tier.md) and pending a focused
115
+ launch-prep session.
116
+
117
+ ## Documentation
118
+
119
+ - [docs/quickstart.md](docs/quickstart.md) — 5-minute walkthrough
120
+ - [docs/mcp-setup.md](docs/mcp-setup.md) — per-client config
121
+ - [docs/architecture.md](docs/architecture.md) — how the pipeline works
122
+ - [docs/limitations.md](docs/limitations.md) — v1 caveats (read this)
123
+ - [bench/README.md](bench/README.md) — benchmark methodology + results
124
+
125
+ ## Contributing
126
+
127
+ We welcome contributions. See [CONTRIBUTING.md](CONTRIBUTING.md) before
128
+ opening a PR.
129
+
130
+ ## License
131
+
132
+ [Apache-2.0](LICENSE). Copyright 2026 Akshay Sharma.
package/SECURITY.md ADDED
@@ -0,0 +1,44 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ If you discover a security issue, **please do not open a public GitHub issue.**
6
+
7
+ Email: `codewithakki@gmail.com`
8
+
9
+ Include:
10
+
11
+ - A description of the issue
12
+ - Steps to reproduce
13
+ - Affected version(s)
14
+ - Any proof-of-concept code
15
+
16
+ We will:
17
+
18
+ - Acknowledge your report within **72 hours**
19
+ - Investigate and confirm the issue
20
+ - Ship a fix within **14 days** for high-severity issues
21
+ - Credit you in the release notes (unless you ask us not to)
22
+
23
+ ## Supported Versions
24
+
25
+ GraphPilot is pre-1.0; only the latest release receives security updates.
26
+
27
+ | Version | Supported |
28
+ | ------- | ------------------ |
29
+ | 0.x | :white_check_mark: |
30
+
31
+ Once we hit 1.0, this table will be expanded to cover the last two minor versions.
32
+
33
+ ## Scope
34
+
35
+ In scope:
36
+
37
+ - The `graphpilot` npm package itself
38
+ - The MCP server implementation
39
+ - Any data written to `~/.graphpilot/`
40
+
41
+ Out of scope:
42
+
43
+ - Third-party MCP clients (Claude Code, Cursor, etc.) — report those upstream
44
+ - Tree-sitter grammar bugs — report to the relevant tree-sitter-\* repo
Binary file
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8" ?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024"><path fill="#1D1A1B" d="M0 0L1024 0L1024 1024L0 1024L0 0Z"/><path fill="#E6E6E6" d="M623.952 307.851C616.946 299.401 612.137 292.66 608.918 281.902C600.373 253.345 608.714 225.118 631.759 206.258C646.698 193.899 665.933 187.979 685.235 189.8C725.89 193.898 755.417 228.241 750.233 269.06C748.248 284.694 743.061 296.671 732.459 308.328C738.951 320.16 747.166 332.759 754.121 344.519L813.444 442.737C853.186 433.897 894.116 455.566 903.14 496.388C907.467 515.328 903.929 535.212 893.336 551.498C883.03 567.447 865.762 578.676 847.303 582.608C827.731 586.626 807.364 582.693 790.696 571.675C775.479 561.635 765.859 546.863 761.328 529.368L659.193 529.426C660.829 518.644 662.635 506.716 660.947 495.806C694.142 495.192 728.301 496.58 761.361 495.535C766.124 478.953 770.847 470.281 783.556 458.278L732.041 374.089C723.334 360.023 711.322 341.708 703.46 327.53C686.66 332.845 667.666 333.246 651.145 326.69C639.184 346.945 626.372 366.769 614.298 386.97C610.915 392.629 607.129 399.182 603.108 404.365C598.655 395.8 591.263 383.342 582.096 379.103L581.206 378.191C581.675 376.606 590.933 361.589 592.364 359.305C602.843 342.579 612.959 324.17 623.952 307.851Z"/><path fill="#1D1A1B" d="M825.433 473.465C846.916 469.82 867.27 484.332 870.826 505.83C874.382 527.328 859.786 547.622 838.274 551.089C816.886 554.537 796.736 540.044 793.201 518.671C789.665 497.298 804.075 477.089 825.433 473.465Z"/><path fill="#1D1A1B" d="M673.831 220.952C695.507 218.429 715.084 234.059 717.423 255.756C719.762 277.452 703.966 296.896 682.25 299.05C660.794 301.179 641.633 285.612 639.322 264.175C637.011 242.737 652.414 223.445 673.831 220.952Z"/><path fill="#E6E6E6" d="M183.789 441.198C196.642 439.122 216.91 443.217 228.059 450.018C246.683 461.38 257.046 475.231 262.608 495.984C298.863 495.654 335.119 495.661 371.373 496.005C373.542 498.345 375.952 500.449 378.562 502.284C390.734 510.755 402.696 512.43 416.908 509.93C416.981 521.221 417.821 528.552 421.297 539.456C428.931 563.525 445.964 583.489 468.531 594.817C492.106 606.886 517.427 607.999 542.437 600.014C540.934 620.868 548.872 632.725 567.716 641.332C561.22 656.663 548.885 679.497 541.178 694.771L527.934 720.767C525.22 726.036 521.77 734.957 516.474 737.757C500.829 746.029 492.742 718.742 487.625 707.333C474.688 679.409 460.734 651.551 448.031 623.506C444.017 621.383 440.117 619.051 436.347 616.519C406.555 596.178 388.002 564.606 381.269 529.489L262.463 529.467C260.019 538.626 254.775 549.288 248.92 556.721C236.723 572.152 218.804 581.996 199.239 584.015C180.091 586.161 159.562 579.806 144.661 567.673C130.373 555.974 121.274 539.113 119.337 520.748C115.267 480.366 143.257 445.211 183.789 441.198Z"/><path fill="#1D1A1B" d="M185.242 473.557C206.734 470.139 226.91 484.838 230.245 506.343C233.579 527.847 218.801 547.967 197.284 551.217C175.885 554.45 155.9 539.771 152.584 518.385C149.268 496.998 163.869 476.956 185.242 473.557Z"/><path fill="#1FCBEE" d="M582.096 379.103C591.263 383.342 598.655 395.8 603.108 404.365C604.543 407.945 607.631 422.989 608.098 423.571C651.912 478.165 651.165 554.704 600.211 604.405C594.819 609.664 587.965 617.769 579.03 617.597C574.108 617.54 569.423 615.474 566.062 611.877C562.785 608.355 561.093 603.811 561.262 599.009C561.435 590.259 569.475 585.395 575.121 579.942C615.702 540.747 614.117 483.467 576.755 443.327C596.464 423.499 594.265 402.404 582.096 379.103Z"/><path fill="#6C4FE3" d="M499.806 384.211C519.838 381.435 548.724 388.708 564.656 400.39C581.268 412.572 566.969 435.585 547.614 426.146C544.065 424.415 535.644 421.694 531.689 420.935C522.104 419.181 512.331 418.679 502.617 419.442C475.541 421.528 453.509 435.095 436.072 455.382C428.36 465.159 425.093 473.64 419.518 484.392C417.145 487.642 411.808 489.95 408.129 490.357C398.555 491.415 388.431 484.818 388.106 474.668C387.865 467.131 391.862 460.112 395.001 453.488C399.49 444.015 405.59 435.623 412.461 427.757C434.496 402.035 466.003 386.328 499.806 384.211Z"/></svg>