@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.
- package/.editorconfig +15 -0
- package/.github/CODEOWNERS +22 -0
- package/.github/FUNDING.yml +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +19 -0
- package/.github/dependabot.yml +15 -0
- package/.github/workflows/ci.yml +62 -0
- package/.github/workflows/release.yml +50 -0
- package/.prettierignore +19 -0
- package/.prettierrc.json +20 -0
- package/CHANGELOG.md +138 -0
- package/CODE_OF_CONDUCT.md +83 -0
- package/CONTRIBUTING.md +111 -0
- package/LICENSE +201 -0
- package/README.md +132 -0
- package/SECURITY.md +44 -0
- package/assets/logo.png +0 -0
- package/assets/logo.svg +1 -0
- package/bench/README.md +544 -0
- package/bench/results/agent-tier-2026-05-22.md +28 -0
- package/bench/results/agent-tier-summary.md +44 -0
- package/bench/results/baseline-tier-2026-05-22.md +23 -0
- package/bench/results/baseline.json +810 -0
- package/bench/results/baseline.md +28 -0
- package/bench/run-agent-tier-automated.ts +234 -0
- package/bench/run-agent-tier.md +125 -0
- package/bench/run-baseline-tier.ts +200 -0
- package/bench/run.ts +210 -0
- package/bench/runner-baseline.ts +177 -0
- package/bench/runner-graphpilot.ts +131 -0
- package/bench/score-agent-tier.ts +191 -0
- package/bench/score.ts +59 -0
- package/bench/tasks.ts +236 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +162 -0
- package/dist/cli.js.map +1 -0
- package/dist/edges.d.ts +57 -0
- package/dist/edges.js +170 -0
- package/dist/edges.js.map +1 -0
- package/dist/git.d.ts +95 -0
- package/dist/git.js +247 -0
- package/dist/git.js.map +1 -0
- package/dist/graph-schema.d.ts +36 -0
- package/dist/graph-schema.js +208 -0
- package/dist/graph-schema.js.map +1 -0
- package/dist/impact.d.ts +99 -0
- package/dist/impact.js +123 -0
- package/dist/impact.js.map +1 -0
- package/dist/indexer.d.ts +28 -0
- package/dist/indexer.js +111 -0
- package/dist/indexer.js.map +1 -0
- package/dist/interactions.d.ts +46 -0
- package/dist/interactions.js +0 -0
- package/dist/interactions.js.map +1 -0
- package/dist/mcp.d.ts +3 -0
- package/dist/mcp.js +567 -0
- package/dist/mcp.js.map +1 -0
- package/dist/parser.d.ts +24 -0
- package/dist/parser.js +128 -0
- package/dist/parser.js.map +1 -0
- package/dist/provenance.d.ts +74 -0
- package/dist/provenance.js +95 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +68 -0
- package/dist/query.js +127 -0
- package/dist/query.js.map +1 -0
- package/dist/redact.d.ts +30 -0
- package/dist/redact.js +117 -0
- package/dist/redact.js.map +1 -0
- package/dist/storage.d.ts +42 -0
- package/dist/storage.js +85 -0
- package/dist/storage.js.map +1 -0
- package/dist/symbols.d.ts +20 -0
- package/dist/symbols.js +140 -0
- package/dist/symbols.js.map +1 -0
- package/dist/validation.d.ts +9 -0
- package/dist/validation.js +65 -0
- package/dist/validation.js.map +1 -0
- package/dist/validators.d.ts +55 -0
- package/dist/validators.js +205 -0
- package/dist/validators.js.map +1 -0
- package/dist/watcher.d.ts +86 -0
- package/dist/watcher.js +310 -0
- package/dist/watcher.js.map +1 -0
- package/docs/architecture.md +311 -0
- package/docs/limitations.md +156 -0
- package/docs/mcp-setup.md +231 -0
- package/docs/quickstart.md +202 -0
- package/eslint.config.js +148 -0
- package/lefthook.yml +81 -0
- package/package.json +56 -0
- package/pnpm-workspace.yaml +6 -0
- package/scripts/smoke-stdio.mjs +97 -0
- package/src/cli.ts +171 -0
- package/src/edges.ts +202 -0
- package/src/git.ts +255 -0
- package/src/graph-schema.ts +229 -0
- package/src/impact.ts +218 -0
- package/src/indexer.ts +152 -0
- package/src/interactions.ts +0 -0
- package/src/mcp.ts +652 -0
- package/src/parser.ts +138 -0
- package/src/provenance.ts +115 -0
- package/src/query.ts +148 -0
- package/src/redact.ts +122 -0
- package/src/storage.ts +115 -0
- package/src/symbols.ts +173 -0
- package/src/validation.ts +69 -0
- package/src/validators.ts +253 -0
- package/src/watcher.ts +383 -0
- package/tests/edges.test.ts +175 -0
- package/tests/fixtures/sample.ts +32 -0
- package/tests/git.test.ts +303 -0
- package/tests/graph-schema.test.ts +321 -0
- package/tests/impact.test.ts +454 -0
- package/tests/interactions.test.ts +180 -0
- package/tests/lint-policy.test.ts +106 -0
- package/tests/mcp-stdio.test.ts +171 -0
- package/tests/mcp.test.ts +335 -0
- package/tests/parser.test.ts +31 -0
- package/tests/provenance.test.ts +132 -0
- package/tests/query.test.ts +160 -0
- package/tests/redact.test.ts +167 -0
- package/tests/security.test.ts +144 -0
- package/tests/symbols.test.ts +78 -0
- package/tests/validators.test.ts +193 -0
- package/tests/watcher.test.ts +250 -0
- 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)
|
|
12
|
+
[](https://nodejs.org)
|
|
13
|
+
[](#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
|
package/assets/logo.png
ADDED
|
Binary file
|
package/assets/logo.svg
ADDED
|
@@ -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>
|