blasttrace 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of blasttrace might be problematic. Click here for more details.
- blasttrace-1.0.2/CMakeLists.txt +31 -0
- blasttrace-1.0.2/MANIFEST.in +4 -0
- blasttrace-1.0.2/PKG-INFO +125 -0
- blasttrace-1.0.2/README.md +104 -0
- blasttrace-1.0.2/blasttrace/__init__.py +7 -0
- blasttrace-1.0.2/blasttrace/classifier.c +27135 -0
- blasttrace-1.0.2/blasttrace/classifier.py +415 -0
- blasttrace-1.0.2/blasttrace/license.c +20385 -0
- blasttrace-1.0.2/blasttrace/license.py +293 -0
- blasttrace-1.0.2/blasttrace/parsers/__init__.py +4 -0
- blasttrace-1.0.2/blasttrace/parsers/api_route_parser.c +17395 -0
- blasttrace-1.0.2/blasttrace/parsers/api_route_parser.py +318 -0
- blasttrace-1.0.2/blasttrace/parsers/contract_linker.c +24472 -0
- blasttrace-1.0.2/blasttrace/parsers/contract_linker.py +490 -0
- blasttrace-1.0.2/blasttrace/parsers/python_ast_parser.c +18001 -0
- blasttrace-1.0.2/blasttrace/parsers/python_ast_parser.py +340 -0
- blasttrace-1.0.2/blasttrace/parsers/sql_schema_parser.c +17241 -0
- blasttrace-1.0.2/blasttrace/parsers/sql_schema_parser.py +376 -0
- blasttrace-1.0.2/blasttrace/parsers/test_mapper.c +16395 -0
- blasttrace-1.0.2/blasttrace/parsers/test_mapper.py +182 -0
- blasttrace-1.0.2/blasttrace/parsers/ts_react_parser.c +16009 -0
- blasttrace-1.0.2/blasttrace/parsers/ts_react_parser.py +299 -0
- blasttrace-1.0.2/blasttrace/remediation.c +13383 -0
- blasttrace-1.0.2/blasttrace/remediation.py +220 -0
- blasttrace-1.0.2/blasttrace/server.py +824 -0
- blasttrace-1.0.2/blasttrace/visualizer.c +15971 -0
- blasttrace-1.0.2/blasttrace/visualizer.py +165 -0
- blasttrace-1.0.2/blasttrace.egg-info/PKG-INFO +125 -0
- blasttrace-1.0.2/blasttrace.egg-info/SOURCES.txt +43 -0
- blasttrace-1.0.2/blasttrace.egg-info/dependency_links.txt +1 -0
- blasttrace-1.0.2/blasttrace.egg-info/entry_points.txt +3 -0
- blasttrace-1.0.2/blasttrace.egg-info/not-zip-safe +1 -0
- blasttrace-1.0.2/blasttrace.egg-info/requires.txt +2 -0
- blasttrace-1.0.2/blasttrace.egg-info/top_level.txt +1 -0
- blasttrace-1.0.2/cpp/blast_core.cpp +323 -0
- blasttrace-1.0.2/pyproject.toml +32 -0
- blasttrace-1.0.2/setup.cfg +4 -0
- blasttrace-1.0.2/setup.py +135 -0
- blasttrace-1.0.2/tests/test_chaos_fuzzing.py +162 -0
- blasttrace-1.0.2/tests/test_concurrency_stress.py +109 -0
- blasttrace-1.0.2/tests/test_fullstack_blast_radius.py +220 -0
- blasttrace-1.0.2/tests/test_git_precommit_live.py +107 -0
- blasttrace-1.0.2/tests/test_memory_endurance.py +115 -0
- blasttrace-1.0.2/tests/test_rea_security.py +164 -0
- blasttrace-1.0.2/tests/test_realworld_production.py +156 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15)
|
|
2
|
+
project(blasttrace_cpp_core LANGUAGES CXX)
|
|
3
|
+
|
|
4
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
5
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
6
|
+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
|
7
|
+
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
|
8
|
+
|
|
9
|
+
# Find Python interpreter and development modules
|
|
10
|
+
find_package(Python 3.10 REQUIRED COMPONENTS Interpreter Development.Module)
|
|
11
|
+
|
|
12
|
+
# Locate pybind11 cmake config
|
|
13
|
+
execute_process(
|
|
14
|
+
COMMAND ${Python_EXECUTABLE} -m pybind11 --cmakedir
|
|
15
|
+
OUTPUT_VARIABLE pybind11_DIR
|
|
16
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
find_package(pybind11 REQUIRED)
|
|
20
|
+
|
|
21
|
+
# Compile C++ native module with symbol stripping and RTTI/symbol hiding
|
|
22
|
+
pybind11_add_module(blasttrace_cpp_core cpp/blast_core.cpp)
|
|
23
|
+
|
|
24
|
+
if(UNIX AND NOT APPLE)
|
|
25
|
+
target_compile_options(blasttrace_cpp_core PRIVATE -O3 -fvisibility=hidden -fvisibility-inlines-hidden -g0)
|
|
26
|
+
target_link_options(blasttrace_cpp_core PRIVATE -Wl,-s -Wl,--exclude-libs,ALL)
|
|
27
|
+
endif()
|
|
28
|
+
|
|
29
|
+
if(MSVC)
|
|
30
|
+
target_compile_options(blasttrace_cpp_core PRIVATE /O2 /Gy /MD)
|
|
31
|
+
endif()
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: blasttrace
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: Pre-Edit Full-Stack Breaking-Change & Contract Blast-Radius Engine
|
|
5
|
+
Home-page: https://blasttrace.dev
|
|
6
|
+
Author: Moin Hasan
|
|
7
|
+
Author-email: Moin Hasan <moin_hasan@live.com>
|
|
8
|
+
License: Proprietary
|
|
9
|
+
Project-URL: Homepage, https://blasttrace.dev
|
|
10
|
+
Project-URL: Documentation, https://blasttrace.dev
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: C++
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Topic :: Software Development :: Testing
|
|
15
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
Requires-Dist: fastmcp>=0.1.0
|
|
18
|
+
Requires-Dist: requests>=2.28.0
|
|
19
|
+
Dynamic: author
|
|
20
|
+
Dynamic: home-page
|
|
21
|
+
|
|
22
|
+
# BlastTrace
|
|
23
|
+
|
|
24
|
+
> **Pre-Edit Full-Stack Breaking-Change & Contract Blast-Radius Engine**
|
|
25
|
+
> `Database` $\leftrightarrow$ `Backend ORM` $\leftrightarrow$ `API Route` $\leftrightarrow$ `Frontend UI` $\leftrightarrow$ `Tests`
|
|
26
|
+
|
|
27
|
+
[](https://pypi.org/project/blasttrace/)
|
|
28
|
+
[](https://blasttrace.dev)
|
|
29
|
+
[](https://blasttrace.dev)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## ⚡ What is BlastTrace?
|
|
34
|
+
|
|
35
|
+
BlastTrace is a high-performance **Model Context Protocol (MCP)** server and standalone CLI that prevents AI coding agents (and human developers) from silently breaking full-stack web applications.
|
|
36
|
+
|
|
37
|
+
Existing AST tools only trace single-language file imports (`File A -> File B`). They go **100% blind** when a schema edit crosses boundaries:
|
|
38
|
+
```text
|
|
39
|
+
[Database Column: users.billing_balance]
|
|
40
|
+
↓
|
|
41
|
+
[Backend ORM Model: User.billing_balance]
|
|
42
|
+
↓
|
|
43
|
+
[API Endpoint: GET /api/v1/user/summary]
|
|
44
|
+
↓
|
|
45
|
+
[Frontend UI Component: CheckoutModal.tsx (data.billing_balance)]
|
|
46
|
+
↓
|
|
47
|
+
[Unit & E2E Tests: test_checkout.py, checkout.spec.ts]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
BlastTrace deterministically bridges this gap using the **BlastTrace Native Core**, catching breaking changes **before** the file is saved, before `git commit`, and before pull requests merge.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🚀 Quick Start
|
|
55
|
+
|
|
56
|
+
### 1. Installation
|
|
57
|
+
```bash
|
|
58
|
+
pip install blasttrace
|
|
59
|
+
```
|
|
60
|
+
*Or run zero-install via uvx:*
|
|
61
|
+
```bash
|
|
62
|
+
uvx blasttrace
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. Standalone CLI Usage (Zero AI Required)
|
|
66
|
+
```bash
|
|
67
|
+
# Check if a proposed edit or signature change breaks downstream consumers
|
|
68
|
+
blasttrace check src/api/routes.py --symbol get_user_profile
|
|
69
|
+
|
|
70
|
+
# Inspect current git diff for breaking full-stack changes
|
|
71
|
+
blasttrace diff
|
|
72
|
+
|
|
73
|
+
# Install git pre-commit safety gate across your repo
|
|
74
|
+
blasttrace pre-commit --install
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 3. Connect to AI Agents & IDEs (Cursor, Claude Code, Windsurf, VS Code)
|
|
78
|
+
Add to your `claude_desktop_config.json` or `.cursor/mcp.json`:
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"mcpServers": {
|
|
82
|
+
"blasttrace": {
|
|
83
|
+
"command": "blasttrace"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 🛡️ Supported Technology Stacks
|
|
92
|
+
|
|
93
|
+
- **Database & Schemas:** PostgreSQL, MySQL, SQLite migrations (`.sql`), Prisma (`schema.prisma`), Drizzle ORM, SQLAlchemy & Django ORM (`models.py`).
|
|
94
|
+
- **Backend & APIs:** Python (FastAPI, Flask, Django REST, async functions, classes), Node.js / TypeScript (Express, Next.js App Router `app/api/.../route.ts`, NestJS, OpenAPI / Swagger specs).
|
|
95
|
+
- **Frontend Consumers:** React, Next.js, Vue, TypeScript (`.tsx`, `.ts`) calling `fetch()`, `axios`, `useSWR()`, `useQuery()`, and property destructuring.
|
|
96
|
+
- **Test Discovery:** Pytest, Unittest, Jest, Vitest, Playwright, Cypress.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 🔑 Licensing & Tiers
|
|
101
|
+
|
|
102
|
+
| Tier | Price | Features |
|
|
103
|
+
| :--- | :--- | :--- |
|
|
104
|
+
| **Community** | **$0** (Free) | Index topology, basic single-file symbol reachability, community support |
|
|
105
|
+
| **Pro** | **$19/mo** (or $180/yr) | Pre-Edit Breaking-Change Gate (PASS/WARN/BLOCK), full-stack contract chains, circular dependency interceptor, 2 seats |
|
|
106
|
+
| **Team / CI Gate** | **$99/mo** (or $990/yr) | Everything in Pro, 5 seats, git pre-commit hook enforcement, GitHub Actions / GitLab CI PR Gate integration |
|
|
107
|
+
|
|
108
|
+
Activate your Pro license:
|
|
109
|
+
```bash
|
|
110
|
+
blasttrace activate YOUR-LICENSE-KEY
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🔒 Security & Privacy
|
|
116
|
+
|
|
117
|
+
BlastTrace runs **100% locally and air-gapped** on your machine.
|
|
118
|
+
- Zero telemetry.
|
|
119
|
+
- Zero remote code scanning.
|
|
120
|
+
- Zero cloud database uploads.
|
|
121
|
+
- Your code never leaves your workstation.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
© 2026 BlastTrace Inc. All rights reserved. Official website: [blasttrace.dev](https://blasttrace.dev)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# BlastTrace
|
|
2
|
+
|
|
3
|
+
> **Pre-Edit Full-Stack Breaking-Change & Contract Blast-Radius Engine**
|
|
4
|
+
> `Database` $\leftrightarrow$ `Backend ORM` $\leftrightarrow$ `API Route` $\leftrightarrow$ `Frontend UI` $\leftrightarrow$ `Tests`
|
|
5
|
+
|
|
6
|
+
[](https://pypi.org/project/blasttrace/)
|
|
7
|
+
[](https://blasttrace.dev)
|
|
8
|
+
[](https://blasttrace.dev)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## ⚡ What is BlastTrace?
|
|
13
|
+
|
|
14
|
+
BlastTrace is a high-performance **Model Context Protocol (MCP)** server and standalone CLI that prevents AI coding agents (and human developers) from silently breaking full-stack web applications.
|
|
15
|
+
|
|
16
|
+
Existing AST tools only trace single-language file imports (`File A -> File B`). They go **100% blind** when a schema edit crosses boundaries:
|
|
17
|
+
```text
|
|
18
|
+
[Database Column: users.billing_balance]
|
|
19
|
+
↓
|
|
20
|
+
[Backend ORM Model: User.billing_balance]
|
|
21
|
+
↓
|
|
22
|
+
[API Endpoint: GET /api/v1/user/summary]
|
|
23
|
+
↓
|
|
24
|
+
[Frontend UI Component: CheckoutModal.tsx (data.billing_balance)]
|
|
25
|
+
↓
|
|
26
|
+
[Unit & E2E Tests: test_checkout.py, checkout.spec.ts]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
BlastTrace deterministically bridges this gap using the **BlastTrace Native Core**, catching breaking changes **before** the file is saved, before `git commit`, and before pull requests merge.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 🚀 Quick Start
|
|
34
|
+
|
|
35
|
+
### 1. Installation
|
|
36
|
+
```bash
|
|
37
|
+
pip install blasttrace
|
|
38
|
+
```
|
|
39
|
+
*Or run zero-install via uvx:*
|
|
40
|
+
```bash
|
|
41
|
+
uvx blasttrace
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 2. Standalone CLI Usage (Zero AI Required)
|
|
45
|
+
```bash
|
|
46
|
+
# Check if a proposed edit or signature change breaks downstream consumers
|
|
47
|
+
blasttrace check src/api/routes.py --symbol get_user_profile
|
|
48
|
+
|
|
49
|
+
# Inspect current git diff for breaking full-stack changes
|
|
50
|
+
blasttrace diff
|
|
51
|
+
|
|
52
|
+
# Install git pre-commit safety gate across your repo
|
|
53
|
+
blasttrace pre-commit --install
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3. Connect to AI Agents & IDEs (Cursor, Claude Code, Windsurf, VS Code)
|
|
57
|
+
Add to your `claude_desktop_config.json` or `.cursor/mcp.json`:
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"mcpServers": {
|
|
61
|
+
"blasttrace": {
|
|
62
|
+
"command": "blasttrace"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 🛡️ Supported Technology Stacks
|
|
71
|
+
|
|
72
|
+
- **Database & Schemas:** PostgreSQL, MySQL, SQLite migrations (`.sql`), Prisma (`schema.prisma`), Drizzle ORM, SQLAlchemy & Django ORM (`models.py`).
|
|
73
|
+
- **Backend & APIs:** Python (FastAPI, Flask, Django REST, async functions, classes), Node.js / TypeScript (Express, Next.js App Router `app/api/.../route.ts`, NestJS, OpenAPI / Swagger specs).
|
|
74
|
+
- **Frontend Consumers:** React, Next.js, Vue, TypeScript (`.tsx`, `.ts`) calling `fetch()`, `axios`, `useSWR()`, `useQuery()`, and property destructuring.
|
|
75
|
+
- **Test Discovery:** Pytest, Unittest, Jest, Vitest, Playwright, Cypress.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 🔑 Licensing & Tiers
|
|
80
|
+
|
|
81
|
+
| Tier | Price | Features |
|
|
82
|
+
| :--- | :--- | :--- |
|
|
83
|
+
| **Community** | **$0** (Free) | Index topology, basic single-file symbol reachability, community support |
|
|
84
|
+
| **Pro** | **$19/mo** (or $180/yr) | Pre-Edit Breaking-Change Gate (PASS/WARN/BLOCK), full-stack contract chains, circular dependency interceptor, 2 seats |
|
|
85
|
+
| **Team / CI Gate** | **$99/mo** (or $990/yr) | Everything in Pro, 5 seats, git pre-commit hook enforcement, GitHub Actions / GitLab CI PR Gate integration |
|
|
86
|
+
|
|
87
|
+
Activate your Pro license:
|
|
88
|
+
```bash
|
|
89
|
+
blasttrace activate YOUR-LICENSE-KEY
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 🔒 Security & Privacy
|
|
95
|
+
|
|
96
|
+
BlastTrace runs **100% locally and air-gapped** on your machine.
|
|
97
|
+
- Zero telemetry.
|
|
98
|
+
- Zero remote code scanning.
|
|
99
|
+
- Zero cloud database uploads.
|
|
100
|
+
- Your code never leaves your workstation.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
© 2026 BlastTrace Inc. All rights reserved. Official website: [blasttrace.dev](https://blasttrace.dev)
|