codebeacon 0.1.2__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.
- codebeacon/__init__.py +1 -0
- codebeacon/__main__.py +3 -0
- codebeacon/cache.py +136 -0
- codebeacon/cli.py +391 -0
- codebeacon/common/__init__.py +0 -0
- codebeacon/common/filters.py +170 -0
- codebeacon/common/symbols.py +121 -0
- codebeacon/common/types.py +98 -0
- codebeacon/config.py +144 -0
- codebeacon/contextmap/__init__.py +0 -0
- codebeacon/contextmap/generator.py +602 -0
- codebeacon/discover/__init__.py +0 -0
- codebeacon/discover/detector.py +388 -0
- codebeacon/discover/scanner.py +192 -0
- codebeacon/export/__init__.py +0 -0
- codebeacon/export/mcp.py +515 -0
- codebeacon/export/obsidian.py +812 -0
- codebeacon/extract/__init__.py +22 -0
- codebeacon/extract/base.py +372 -0
- codebeacon/extract/components.py +357 -0
- codebeacon/extract/dependencies.py +140 -0
- codebeacon/extract/entities.py +575 -0
- codebeacon/extract/queries/README.md +116 -0
- codebeacon/extract/queries/actix.scm +115 -0
- codebeacon/extract/queries/angular.scm +155 -0
- codebeacon/extract/queries/aspnet.scm +159 -0
- codebeacon/extract/queries/django.scm +122 -0
- codebeacon/extract/queries/express.scm +124 -0
- codebeacon/extract/queries/fastapi.scm +152 -0
- codebeacon/extract/queries/flask.scm +120 -0
- codebeacon/extract/queries/gin.scm +142 -0
- codebeacon/extract/queries/ktor.scm +144 -0
- codebeacon/extract/queries/laravel.scm +172 -0
- codebeacon/extract/queries/nestjs.scm +183 -0
- codebeacon/extract/queries/rails.scm +114 -0
- codebeacon/extract/queries/react.scm +111 -0
- codebeacon/extract/queries/spring_boot.scm +204 -0
- codebeacon/extract/queries/svelte.scm +73 -0
- codebeacon/extract/queries/vapor.scm +130 -0
- codebeacon/extract/queries/vue.scm +123 -0
- codebeacon/extract/routes.py +910 -0
- codebeacon/extract/semantic.py +280 -0
- codebeacon/extract/services.py +597 -0
- codebeacon/graph/__init__.py +1 -0
- codebeacon/graph/analyze.py +281 -0
- codebeacon/graph/build.py +320 -0
- codebeacon/graph/cluster.py +160 -0
- codebeacon/graph/enrich.py +206 -0
- codebeacon/skill/SKILL.md +127 -0
- codebeacon/wave.py +292 -0
- codebeacon/wiki/__init__.py +0 -0
- codebeacon/wiki/generator.py +376 -0
- codebeacon/wiki/index.py +95 -0
- codebeacon/wiki/templates.py +467 -0
- codebeacon-0.1.2.dist-info/METADATA +319 -0
- codebeacon-0.1.2.dist-info/RECORD +59 -0
- codebeacon-0.1.2.dist-info/WHEEL +4 -0
- codebeacon-0.1.2.dist-info/entry_points.txt +2 -0
- codebeacon-0.1.2.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codebeacon
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Source code AST analysis tool for AI context generation — unified multi-framework knowledge graph
|
|
5
|
+
Project-URL: Homepage, https://github.com/codebeacon/codebeacon
|
|
6
|
+
Project-URL: Repository, https://github.com/codebeacon/codebeacon
|
|
7
|
+
Project-URL: Issues, https://github.com/codebeacon/codebeacon/issues
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: ai-context,ast,claude,codebase,knowledge-graph,mcp
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: networkx>=3.0
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23
|
|
24
|
+
Requires-Dist: tree-sitter-go>=0.23
|
|
25
|
+
Requires-Dist: tree-sitter-html>=0.23
|
|
26
|
+
Requires-Dist: tree-sitter-java>=0.23
|
|
27
|
+
Requires-Dist: tree-sitter-javascript>=0.23
|
|
28
|
+
Requires-Dist: tree-sitter-kotlin>=0.23
|
|
29
|
+
Requires-Dist: tree-sitter-php>=0.23
|
|
30
|
+
Requires-Dist: tree-sitter-python>=0.23
|
|
31
|
+
Requires-Dist: tree-sitter-ruby>=0.23
|
|
32
|
+
Requires-Dist: tree-sitter-rust>=0.23
|
|
33
|
+
Requires-Dist: tree-sitter-svelte>=0.23
|
|
34
|
+
Requires-Dist: tree-sitter-swift>=0.0.1
|
|
35
|
+
Requires-Dist: tree-sitter-typescript>=0.23
|
|
36
|
+
Requires-Dist: tree-sitter>=0.23
|
|
37
|
+
Provides-Extra: cluster
|
|
38
|
+
Requires-Dist: graspologic>=1.0; extra == 'cluster'
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
42
|
+
Description-Content-Type: text/markdown
|
|
43
|
+
|
|
44
|
+
<p align="center">
|
|
45
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.md"><img src="https://img.shields.io/badge/lang-English-blue" alt="English"></a>
|
|
46
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.ko.md"><img src="https://img.shields.io/badge/lang-한국어-red" alt="Korean"></a>
|
|
47
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.ja.md"><img src="https://img.shields.io/badge/lang-日本語-green" alt="Japanese"></a>
|
|
48
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.zh-CN.md"><img src="https://img.shields.io/badge/lang-简体中文-orange" alt="Chinese"></a>
|
|
49
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.es.md"><img src="https://img.shields.io/badge/lang-Español-yellow" alt="Spanish"></a>
|
|
50
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.fr.md"><img src="https://img.shields.io/badge/lang-Français-blueviolet" alt="French"></a>
|
|
51
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.de.md"><img src="https://img.shields.io/badge/lang-Deutsch-lightgrey" alt="German"></a>
|
|
52
|
+
<a href="https://github.com/codebeacon/codebeacon/blob/main/README.pt-BR.md"><img src="https://img.shields.io/badge/lang-Português_(BR)-brightgreen" alt="Portuguese (Brazil)"></a>
|
|
53
|
+
</p>
|
|
54
|
+
|
|
55
|
+
<h1 align="center">codebeacon</h1>
|
|
56
|
+
|
|
57
|
+
<p align="center">
|
|
58
|
+
Source code AST analysis and AI context generation — unified multi-framework knowledge graph
|
|
59
|
+
</p>
|
|
60
|
+
|
|
61
|
+
<p align="center">
|
|
62
|
+
<a href="https://pypi.org/project/codebeacon/"><img src="https://img.shields.io/pypi/v/codebeacon" alt="PyPI"></a>
|
|
63
|
+
<a href="https://pypi.org/project/codebeacon/"><img src="https://img.shields.io/pypi/pyversions/codebeacon" alt="Python"></a>
|
|
64
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="MIT License"></a>
|
|
65
|
+
<a href="https://github.com/codebeacon/codebeacon/stargazers"><img src="https://img.shields.io/github/stars/codebeacon/codebeacon" alt="GitHub Stars"></a>
|
|
66
|
+
<a href="https://github.com/codebeacon/codebeacon/commits/main"><img src="https://img.shields.io/github/last-commit/codebeacon/codebeacon" alt="Last Commit"></a>
|
|
67
|
+
</p>
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Why codebeacon?
|
|
72
|
+
|
|
73
|
+
Every time you open a new AI coding session, your assistant starts blind. It doesn't know your routes, your service layer, your entity model, or how your microservices call each other. You spend the first chunk of every session just getting the AI back up to speed — pasting files, explaining structure, re-establishing context.
|
|
74
|
+
|
|
75
|
+
Existing tools solve this partially. Route analyzers map your controllers but miss service dependencies. Knowledge graph tools capture relationships but ignore your API surface. You end up running both, stitching output manually, and repeating it every time the codebase changes.
|
|
76
|
+
|
|
77
|
+
**codebeacon unifies both approaches in a single CLI.** One command scans your entire codebase with tree-sitter AST parsing, resolves dependency injection across files, detects community clusters in your architecture, and writes a ready-to-use context map directly into `CLAUDE.md`, `.cursorrules`, and `AGENTS.md` — so your AI assistant walks into every session already knowing your codebase.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Key Features
|
|
82
|
+
|
|
83
|
+
- **Unified pipeline** — route/controller analysis + knowledge graph in one tool, no manual stitching
|
|
84
|
+
- **17 frameworks, 9 languages** — Spring Boot, NestJS, Django, FastAPI, Rails, Express, React, Vue, Angular, Svelte, Gin, Laravel, Actix-Web, ASP.NET Core, Vapor, Ktor, and more
|
|
85
|
+
- **Tree-sitter based** — structural AST parsing, not regex; all 17 language grammars included out of the box
|
|
86
|
+
- **Two-pass DI resolution** — Pass 1 extracts local AST nodes; Pass 2 builds a global symbol table and resolves Interface → Implementation mappings that single-pass tools miss
|
|
87
|
+
- **Wave merge architecture** — files processed in parallel chunks, results merged globally; handles large monorepos without memory blowouts
|
|
88
|
+
- **Multiple output formats** — JSON knowledge graph, Markdown wiki, Obsidian vault, AI context maps, MCP server
|
|
89
|
+
- **Community detection** — Leiden/Louvain clustering reveals your actual architectural boundaries
|
|
90
|
+
- **Incremental cache** — SHA-256 based; only re-extracts files that changed since the last scan
|
|
91
|
+
- **Zero configuration** — auto-detects frameworks and languages; generates `codebeacon.yaml` for repeat runs
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Quick Start
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pip install codebeacon
|
|
99
|
+
|
|
100
|
+
codebeacon scan .
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
That's it. codebeacon detects your project types, extracts routes/services/entities/components, builds a knowledge graph, and writes everything to `.codebeacon/`.
|
|
104
|
+
|
|
105
|
+
For a multi-project workspace:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
codebeacon scan /path/to/workspace # auto-detects all projects, generates codebeacon.yaml
|
|
109
|
+
codebeacon sync # subsequent runs via config
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Supported Frameworks
|
|
115
|
+
|
|
116
|
+
| Language | Frameworks |
|
|
117
|
+
|----------|-----------|
|
|
118
|
+
| Java / Kotlin | Spring Boot, Ktor |
|
|
119
|
+
| Python | Django, FastAPI, Flask |
|
|
120
|
+
| JavaScript / TypeScript | Express, NestJS, React, Vue, Angular, Svelte |
|
|
121
|
+
| Go | Gin |
|
|
122
|
+
| Ruby | Rails |
|
|
123
|
+
| PHP | Laravel |
|
|
124
|
+
| Rust | Actix-Web |
|
|
125
|
+
| C# | ASP.NET Core |
|
|
126
|
+
| Swift | Vapor |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Architecture
|
|
131
|
+
|
|
132
|
+
codebeacon runs a two-pass extraction pipeline:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
[Config] → [Discover] → [Wave / Extract] → [Resolve] → [Filter] → [Enrich] → [Graph] → [Wiki] → [ContextMap] → [Export]
|
|
136
|
+
│ │ │ │
|
|
137
|
+
Local AST Symbol Cross-lang HTTP API
|
|
138
|
+
per chunk table artifact Shared DB
|
|
139
|
+
(Pass 1) matching removal entity edges
|
|
140
|
+
(Pass 2)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Pass 1 — Wave extraction:** Files are processed in parallel chunks via `ThreadPoolExecutor`. Each file runs through five extractors: routes, services, entities, components, and dependencies. Results are cached by SHA-256 for incremental re-scans.
|
|
144
|
+
|
|
145
|
+
**Pass 2 — Graph build:** All wave results are merged. A global symbol table resolves unresolved dependency injection references — mapping interfaces to implementations in the way Spring's implicit Bean wiring or TypeScript's injection tokens require. Filters remove build artifacts, spurious cross-language imports, and false cross-service edges.
|
|
146
|
+
|
|
147
|
+
**Post-processing:** HTTP API edges connect frontend URL calls to matching backend routes. Community detection (Leiden → Louvain → connected components fallback) partitions the graph into architectural clusters. A structural report identifies god nodes, surprising cross-cluster connections, and hub files.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Output Structure
|
|
152
|
+
|
|
153
|
+
After a scan, everything lands in `.codebeacon/`:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
.codebeacon/
|
|
157
|
+
beacon.json ← full knowledge graph (node-link JSON, queryable)
|
|
158
|
+
REPORT.md ← god nodes, surprising connections, hub files
|
|
159
|
+
CLAUDE.md ← AI context map (also written to project root)
|
|
160
|
+
.cursorrules ← Cursor IDE context
|
|
161
|
+
AGENTS.md ← OpenAI Agents / Codex context
|
|
162
|
+
wiki/
|
|
163
|
+
index.md ← global index (~200 tokens)
|
|
164
|
+
overview.md ← platform stats + cross-project connections
|
|
165
|
+
routes.md ← all routes table
|
|
166
|
+
cross-project/
|
|
167
|
+
connections.md ← cross-service edges
|
|
168
|
+
<project>/
|
|
169
|
+
index.md
|
|
170
|
+
routes.md
|
|
171
|
+
controllers/<Name>.md
|
|
172
|
+
services/<Name>.md
|
|
173
|
+
entities/<Name>.md
|
|
174
|
+
components/<Name>.md
|
|
175
|
+
obsidian/ ← Obsidian vault (one note per graph node)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Installation Options
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
pip install codebeacon # all 17 language grammars included
|
|
184
|
+
pip install codebeacon[cluster] # + Leiden community detection (graspologic)
|
|
185
|
+
pip install --upgrade codebeacon # upgrade to latest version with all dependencies
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
All language parsers (Java, Kotlin, Python, JavaScript, TypeScript, Go, Ruby, PHP, C#, Rust, Swift, HTML, Svelte) are bundled by default — no extra flags needed.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## CLI Reference
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Scan a project or workspace
|
|
196
|
+
codebeacon scan <path> [options]
|
|
197
|
+
codebeacon scan . # current directory
|
|
198
|
+
codebeacon scan /workspace # workspace root (multi-project)
|
|
199
|
+
codebeacon scan . --update # incremental: only re-extract changed files
|
|
200
|
+
codebeacon scan . --wiki-only # regenerate wiki without re-extracting
|
|
201
|
+
codebeacon scan . --obsidian-dir <path> # write Obsidian vault to custom location
|
|
202
|
+
codebeacon scan . --semantic # enable LLM semantic extraction
|
|
203
|
+
codebeacon scan . --list-only # detect frameworks only, don't extract
|
|
204
|
+
|
|
205
|
+
# Config-driven mode
|
|
206
|
+
codebeacon init [path] # auto-generate codebeacon.yaml
|
|
207
|
+
codebeacon sync # run from codebeacon.yaml
|
|
208
|
+
codebeacon sync --config <file> # use a specific config file
|
|
209
|
+
|
|
210
|
+
# Query the knowledge graph (coming soon)
|
|
211
|
+
codebeacon query <term> # search nodes and edges
|
|
212
|
+
codebeacon path <source> <target> # shortest path between two nodes
|
|
213
|
+
|
|
214
|
+
# Integrations
|
|
215
|
+
codebeacon serve [--dir .codebeacon] # start MCP server (stdio)
|
|
216
|
+
codebeacon install # install Claude Code skill
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Configuration
|
|
222
|
+
|
|
223
|
+
Run `codebeacon init` to generate `codebeacon.yaml`, or write it manually:
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
version: 1
|
|
227
|
+
|
|
228
|
+
projects:
|
|
229
|
+
- name: api-server
|
|
230
|
+
path: ./api-server
|
|
231
|
+
type: spring-boot # optional: auto-detected if omitted
|
|
232
|
+
|
|
233
|
+
- name: frontend
|
|
234
|
+
path: ./frontend
|
|
235
|
+
type: react
|
|
236
|
+
|
|
237
|
+
output:
|
|
238
|
+
dir: .codebeacon
|
|
239
|
+
wiki: true
|
|
240
|
+
obsidian: true
|
|
241
|
+
graph_html: true
|
|
242
|
+
context_map:
|
|
243
|
+
targets: [CLAUDE.md, .cursorrules, AGENTS.md]
|
|
244
|
+
|
|
245
|
+
wave:
|
|
246
|
+
auto: true
|
|
247
|
+
chunk_size: 300 # files per chunk
|
|
248
|
+
max_parallel: 5 # parallel threads
|
|
249
|
+
|
|
250
|
+
semantic:
|
|
251
|
+
enabled: false # override with --semantic flag
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## How It Compares
|
|
257
|
+
|
|
258
|
+
| | codesight | graphify | **codebeacon** |
|
|
259
|
+
|---|---|---|---|
|
|
260
|
+
| Route / controller analysis | ✅ | ❌ | ✅ |
|
|
261
|
+
| Service / DI graph | partial | ✅ | ✅ |
|
|
262
|
+
| Interface → Impl resolution | ❌ | ❌ | ✅ |
|
|
263
|
+
| Entity / ORM model extraction | ✅ | ❌ | ✅ |
|
|
264
|
+
| Frontend component analysis | ✅ | ❌ | ✅ |
|
|
265
|
+
| Community detection | ❌ | ✅ | ✅ |
|
|
266
|
+
| Obsidian vault export | ❌ | ✅ | ✅ |
|
|
267
|
+
| MCP server | ✅ | ❌ | ✅ |
|
|
268
|
+
| AI context map (CLAUDE.md) | ✅ | ✅ | ✅ |
|
|
269
|
+
| Multi-project workspace | partial | ❌ | ✅ |
|
|
270
|
+
| Python-based | ❌ | ✅ | ✅ |
|
|
271
|
+
|
|
272
|
+
codebeacon is not a replacement for either tool — it's the union of what both do, built around a shared extraction and graph layer.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Benchmarks
|
|
277
|
+
|
|
278
|
+
| Codebase | Stack | Files | Nodes | Edges | Communities | Scan time |
|
|
279
|
+
|----------|-------|-------|-------|-------|-------------|-----------|
|
|
280
|
+
| multi-service SaaS app | SvelteKit + Next.js + Spring Boot (3 projects) | 444 | 382 | 553 | 175 | ~12s |
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Privacy & Security
|
|
285
|
+
|
|
286
|
+
All processing is local. Your source code never leaves your machine.
|
|
287
|
+
|
|
288
|
+
- Tree-sitter AST parsing runs entirely in-process
|
|
289
|
+
- No telemetry, no analytics, no network calls during normal operation
|
|
290
|
+
- The `--semantic` flag (disabled by default) sends code excerpts to your configured LLM API — only enable it explicitly
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Contributing
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
git clone https://github.com/codebeacon/codebeacon
|
|
298
|
+
cd codebeacon
|
|
299
|
+
pip install -e ".[dev,cluster]"
|
|
300
|
+
pytest
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
The easiest entry point for adding new framework support is writing a tree-sitter query file in `codebeacon/extract/queries/`. See [`codebeacon/extract/queries/README.md`](codebeacon/extract/queries/README.md) for the full guide — it walks through grammar setup, `.scm` query syntax, capture naming conventions, and how to wire up a new extractor.
|
|
304
|
+
|
|
305
|
+
Contributions welcome: new framework queries, language parsers, output formats, and benchmark datasets.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## License
|
|
310
|
+
|
|
311
|
+
MIT — see [LICENSE](LICENSE).
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Acknowledgments
|
|
316
|
+
|
|
317
|
+
Built on [tree-sitter](https://tree-sitter.github.io/tree-sitter/) for structural AST parsing, [NetworkX](https://networkx.org/) for graph operations, and [graspologic](https://microsoft.github.io/graspologic/) for Leiden community detection.
|
|
318
|
+
|
|
319
|
+
Inspired by the complementary approaches of [codesight](https://github.com/Houseofmvps/codesight) and [graphify](https://github.com/safishamsi/graphify).
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
codebeacon/__init__.py,sha256=YvuYzWnKtqBb-IqG8HAu-nhIYAsgj9Vmc_b9o7vO-js,22
|
|
2
|
+
codebeacon/__main__.py,sha256=Jw8VAvcOZg6M1SD2UzL6lgCGMuZ6XK3f6qEuc-iVZQU,40
|
|
3
|
+
codebeacon/cache.py,sha256=JtT3UfvfnPVlqxE8aNfbnme8v3AoGUn3F5ioidn6Xwc,4441
|
|
4
|
+
codebeacon/cli.py,sha256=sI7_N0GtWNJ3c1ZvInPCWTDYEnuRmjphkedrILDLlG8,13995
|
|
5
|
+
codebeacon/config.py,sha256=zchVUGYT1AtZEh5yX3Ck7mCZ1C1fMq7iS0mpicVqpL4,4238
|
|
6
|
+
codebeacon/wave.py,sha256=ZywFn7C9AqdmdfgtXYIsMjEWUqx1GnGsGy98M-tF51k,10482
|
|
7
|
+
codebeacon/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
codebeacon/common/filters.py,sha256=YfmI-JliwfO78yOHt6kinYxP0qkubOYedqKFei8l7NY,5475
|
|
9
|
+
codebeacon/common/symbols.py,sha256=B_ArKtUyKupZVsDaivih8DGTtEZoI19JbX5mqWVwW9A,4487
|
|
10
|
+
codebeacon/common/types.py,sha256=xb6FlPnpcDKnKS49OH6hTLjIZ_V7w3PyTd_NLVwAn2c,3351
|
|
11
|
+
codebeacon/contextmap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
codebeacon/contextmap/generator.py,sha256=PU1VCLWNt4191ZF_sMhJhHd9VJClKKBEnYsKxu26Hw8,21579
|
|
13
|
+
codebeacon/discover/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
codebeacon/discover/detector.py,sha256=CRtGCtpy0EZCXtuyWwdnQAvYoiCk4ZrVjOt6bmA7MxQ,13858
|
|
15
|
+
codebeacon/discover/scanner.py,sha256=WK-24ukvuxLbzQCaC_VXEokXEkQpn2wrjzOL_h4FOvI,4984
|
|
16
|
+
codebeacon/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
codebeacon/export/mcp.py,sha256=sW1LZZClaCDa3shf3HNQuEn2PnObdC_nmc002JtHMYc,18194
|
|
18
|
+
codebeacon/export/obsidian.py,sha256=ohJvzcDvITeGJqQfwJnUujGVjgWr8xsKRT-dNAJPngU,28926
|
|
19
|
+
codebeacon/extract/__init__.py,sha256=fNsS0fwWPcU-ydO9j-0xE8JxodNxerU82cgNiBhCVy0,884
|
|
20
|
+
codebeacon/extract/base.py,sha256=Jvcnzta5yBFNho1LfNMpGUoiuzl-V7MCNnc-M-sD_vA,13428
|
|
21
|
+
codebeacon/extract/components.py,sha256=LbKVS77CyxxeK19NF4AD_gWsdUeUfIbAIgxpas0yPfY,11574
|
|
22
|
+
codebeacon/extract/dependencies.py,sha256=BlI6KXFySs5gwX1p9LGpalk5np6Ou-gDjLUocRGuZLE,4355
|
|
23
|
+
codebeacon/extract/entities.py,sha256=K55PbgZ-QWYg5kRsLMtjPoYHk_coLvVZq1ZR8M29QU4,21296
|
|
24
|
+
codebeacon/extract/routes.py,sha256=m0Vh4_vSD5JoKzUsJYON-QPZX75vBye-lsmSS073T1g,37278
|
|
25
|
+
codebeacon/extract/semantic.py,sha256=UDyNOPwQvTEMM3UzwbYdrP_C1O0Vh5idR1aKI42wXLQ,10223
|
|
26
|
+
codebeacon/extract/services.py,sha256=s8xR62cbAZCT_v3qdxWALaGDEV5rNMqoT92-wtTjMpQ,22585
|
|
27
|
+
codebeacon/extract/queries/README.md,sha256=cLxO4n6FaUqJMtysQ2N3YFqrYlMWospb3DSJxqPRfFA,3548
|
|
28
|
+
codebeacon/extract/queries/actix.scm,sha256=UAxVPkfhHZZzEwbgUwsQ_muQQVFY1m0fB0jc_16dSh0,4046
|
|
29
|
+
codebeacon/extract/queries/angular.scm,sha256=RbVkLtQ8FFuKb8lXC_w4d9DTDWQhPxvB8SloM-RRcVM,4983
|
|
30
|
+
codebeacon/extract/queries/aspnet.scm,sha256=f0ubY9qx7EI_FHonZj1RoNXR898A0oqslaTp1LTgHXM,5540
|
|
31
|
+
codebeacon/extract/queries/django.scm,sha256=gwnarHH0EHGf8lrlV1Ocj5-DtY6TCMRwONLUVYZBL9U,4285
|
|
32
|
+
codebeacon/extract/queries/express.scm,sha256=9P_Sv8RpxspH44Ibb3aAqgITWVi8c_k5-L4ml-2ckS0,3881
|
|
33
|
+
codebeacon/extract/queries/fastapi.scm,sha256=Acq5CKkm6ZbcdaSOJH6Wt-O-r6WmbhBnqo9INehrhyg,4786
|
|
34
|
+
codebeacon/extract/queries/flask.scm,sha256=J9eMl4_MGH1yXecm277xGZ-1ZA_ulDRFAfKANfXlrNU,3819
|
|
35
|
+
codebeacon/extract/queries/gin.scm,sha256=nTmGWxc3M7CyZ-brc9lFio-ZR01mymzNNKgLdZfHyGQ,4716
|
|
36
|
+
codebeacon/extract/queries/ktor.scm,sha256=w5NnUI2Yw6sz7QALfUIqXGcE4ECfFbNdu7RiVbgQ_4I,4902
|
|
37
|
+
codebeacon/extract/queries/laravel.scm,sha256=v1YgXPz6RykkSlAFZaAMuz1XdsqKjUhPavkkybRlVuA,6025
|
|
38
|
+
codebeacon/extract/queries/nestjs.scm,sha256=P4Zc6846k81t1wCIT-xiMQeUnyZZmr7QnJnebYskF0M,5648
|
|
39
|
+
codebeacon/extract/queries/rails.scm,sha256=2ThcFtYV4J6M_xfaqRmKkmG0PFWCq01AHJWcPsejJOo,4066
|
|
40
|
+
codebeacon/extract/queries/react.scm,sha256=SuYDiy3ScVuTEtOZXukYAKHWR2qSII9i46fdxtVVVMk,4068
|
|
41
|
+
codebeacon/extract/queries/spring_boot.scm,sha256=CLOFLJzHiFqrSN2EdWg4_vLLpzXE3jMtPwtmqXiEN0s,7214
|
|
42
|
+
codebeacon/extract/queries/svelte.scm,sha256=FcWTXkifZ_9jPhaBHdXVnqksW8nmiPaWjK48E2AZJLs,3053
|
|
43
|
+
codebeacon/extract/queries/vapor.scm,sha256=vD5pKbuzP6Zwn1n6OQ1li3G3V8JLdbyZW1jCGSDRPs0,4361
|
|
44
|
+
codebeacon/extract/queries/vue.scm,sha256=WC0il4m5u9Y2puUE9lG7mYwCP_a-03-iUk3_74Rb9VA,4119
|
|
45
|
+
codebeacon/graph/__init__.py,sha256=ug1wEeheKYIO3bCjewSIJG1usuZNaoZ4h1UevQTY10M,64
|
|
46
|
+
codebeacon/graph/analyze.py,sha256=3fZvbtSgLVG6aEKg5lsSr7-pGmH2o6FWJpAVTIizylY,8929
|
|
47
|
+
codebeacon/graph/build.py,sha256=WGUBkRy4WnsfE8MBTqsuCGeJtXXXH43JGe4RjwMP3v0,10937
|
|
48
|
+
codebeacon/graph/cluster.py,sha256=MoGP15Iw9kkUjImbO6n8ii1ni_iPmxYM6bW3MLkWstw,5104
|
|
49
|
+
codebeacon/graph/enrich.py,sha256=CZIWMxBiaV4VtPiAdbO_G2L0li6yPlZFY36avn7cR0w,7376
|
|
50
|
+
codebeacon/skill/SKILL.md,sha256=oNdQYO3o1dBwSHWB4smKD87u3C_MGMvSTGNxxAf8iy0,3957
|
|
51
|
+
codebeacon/wiki/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
+
codebeacon/wiki/generator.py,sha256=CVq7AjRFjGNQXVWJMrqMN_t9Fqk1mCBeoLJObbf41e4,14009
|
|
53
|
+
codebeacon/wiki/index.py,sha256=Cxgg8TpgUyTaHA0t49AbAT5i_CtZLQRLfhdo09esURY,3397
|
|
54
|
+
codebeacon/wiki/templates.py,sha256=3UaxMmGnON9Uk0l2bTvlC3yPMZ4MMiZOJGDkYg_pMOw,15883
|
|
55
|
+
codebeacon-0.1.2.dist-info/METADATA,sha256=VnYu72GsfIuzSn-ql38xuJ1lN6NPGeGHQulB8khONqk,14065
|
|
56
|
+
codebeacon-0.1.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
57
|
+
codebeacon-0.1.2.dist-info/entry_points.txt,sha256=PREJtJHtP-5peBsxynOAklCl9Yq_KHiDnkR1ruojxsQ,51
|
|
58
|
+
codebeacon-0.1.2.dist-info/licenses/LICENSE,sha256=bjTdJsSZONg8LgvrDTRCHseKPiBXwCtYjkH7ytHyu-4,1080
|
|
59
|
+
codebeacon-0.1.2.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 codebeacon contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|