hypergumbo 2.6.0__tar.gz → 3.0.0__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.
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/.gitignore +2 -0
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/PKG-INFO +26 -12
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/README.md +21 -7
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/pyproject.toml +5 -5
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/src/hypergumbo/__init__.py +0 -0
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/src/hypergumbo/__main__.py +0 -0
- {hypergumbo-2.6.0 → hypergumbo-3.0.0}/tests/test_meta.py +0 -0
|
@@ -29,6 +29,7 @@ slice.*.json
|
|
|
29
29
|
**/.cursor/state/
|
|
30
30
|
**/*-session/
|
|
31
31
|
AUTONOMOUS_MODE.txt
|
|
32
|
+
autonomous_intent.txt
|
|
32
33
|
.agent/LOOP
|
|
33
34
|
.agent/disabled.LOOP
|
|
34
35
|
.agent/invariant-ledger.md
|
|
@@ -41,6 +42,7 @@ AUTONOMOUS_MODE.txt
|
|
|
41
42
|
.agent/.transcript-sync-state.*.json
|
|
42
43
|
.agent/.transcript-poll-state.*
|
|
43
44
|
.agent/.transcript-injection-state.*.json
|
|
45
|
+
.agent/.transcript-injection-state.*.lock
|
|
44
46
|
.agent/.last_session_transcript.jsonl
|
|
45
47
|
.agent/.second_to_last_transcript.jsonl
|
|
46
48
|
.agent/.last_injection_history.jsonl
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hypergumbo
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: Local-first repo behavior map generator
|
|
5
5
|
Author: Hypergumbo contributors
|
|
6
6
|
License: AGPL-3.0-or-later
|
|
@@ -10,10 +10,10 @@ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or l
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
|
-
Requires-Dist: hypergumbo-core==
|
|
14
|
-
Requires-Dist: hypergumbo-lang-common==
|
|
15
|
-
Requires-Dist: hypergumbo-lang-extended1==
|
|
16
|
-
Requires-Dist: hypergumbo-lang-mainstream==
|
|
13
|
+
Requires-Dist: hypergumbo-core==3.0.0
|
|
14
|
+
Requires-Dist: hypergumbo-lang-common==3.0.0
|
|
15
|
+
Requires-Dist: hypergumbo-lang-extended1==3.0.0
|
|
16
|
+
Requires-Dist: hypergumbo-lang-mainstream==3.0.0
|
|
17
17
|
Provides-Extra: dev
|
|
18
18
|
Requires-Dist: bandit~=1.9.3; extra == 'dev'
|
|
19
19
|
Requires-Dist: check-jsonschema~=0.36.1; extra == 'dev'
|
|
@@ -150,7 +150,7 @@ hypergumbo . -t 8000 # detailed with many symbols
|
|
|
150
150
|
hypergumbo [path] # Markdown sketch (default)
|
|
151
151
|
hypergumbo run [path] # Full JSON behavior map
|
|
152
152
|
hypergumbo slice --entry X # Subgraph from entry point
|
|
153
|
-
hypergumbo io-boundaries # Find all I/O (filesystem, network, subprocess, env)
|
|
153
|
+
hypergumbo io-boundaries # Find all I/O (filesystem, network, subprocess, env, IPC, browser storage)
|
|
154
154
|
hypergumbo verify-claims ... # Verify security claims against analysis
|
|
155
155
|
hypergumbo routes [path] # List HTTP routes
|
|
156
156
|
hypergumbo search <query> # Search symbols
|
|
@@ -168,6 +168,19 @@ hypergumbo . --no-progress # hide progress indicator (on by default)
|
|
|
168
168
|
hypergumbo --help --all # comprehensive help for all commands
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
+
### Project-local taint catalogs
|
|
172
|
+
|
|
173
|
+
`verify-claims` ships with paranoid defaults auto-derived from the built-in IO primitive catalog. Projects can supply their own trust zones, sanitizers, and label maps:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
hypergumbo verify-claims claims.yaml \
|
|
177
|
+
--taint-sources myrepo/taint/sources.yaml \
|
|
178
|
+
--taint-sinks myrepo/taint/sinks/ \
|
|
179
|
+
--taint-sanitizers myrepo/taint/sanitizers.yaml
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Each flag accepts a YAML file or a directory (globbed as `*.yaml`), and is repeatable. The same paths can be declared inside the claims YAML under `extra_catalogs: {sources, sinks, sanitizers}` — relative paths resolve against the claims-file directory. User entries whose `(module, name, kind)` triple matches a built-in replace it; sanitizers concatenate.
|
|
183
|
+
|
|
171
184
|
Results are automatically cached in `~/.cache/hypergumbo/`. Just run:
|
|
172
185
|
```bash
|
|
173
186
|
hypergumbo . # auto-runs analysis if no cache exists, then generates sketch
|
|
@@ -180,10 +193,10 @@ See `hypergumbo --help` for all options.
|
|
|
180
193
|
## What It Understands
|
|
181
194
|
|
|
182
195
|
- **Language analyzers**: Python, JS/TS, Java, Rust, Go, C/C++, and [many more](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LANGUAGES.md)
|
|
183
|
-
- **
|
|
196
|
+
- **Linkers**: Tier 2 edge-recovery passes across four subcategories — Protocol (HTTP, WebSocket, message queues, SQL), Bridge (JNI, wasm_bindgen, Tauri IPC, language-pair FFI), Framework (gRPC, GraphQL, React components, DI resolution, ORM), Infrastructure (containment, inheritance, module imports). [Full catalogue](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md).
|
|
184
197
|
- **Framework patterns**: FastAPI, Django, Rails, Spring Boot, Phoenix, Express, and [many more](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/FRAMEWORKS.md)
|
|
185
|
-
- **I/O boundary detection**: Maps every call chain that reaches the filesystem, network,
|
|
186
|
-
- **Taint-flow analysis**: Traces data from sensitive sources (crypto
|
|
198
|
+
- **I/O boundary detection**: Maps every call chain that reaches the filesystem, network, subprocess, environment, IPC, or browser-local storage — across FFI boundaries
|
|
199
|
+
- **Taint-flow analysis**: Traces data from sensitive sources (environment variables, received network input, crypto outputs, key material) to sinks in six trust zones (`host_fs`, `network`, `host_env`, `ipc`, `browser_storage`, `relay`), with sanitizer awareness
|
|
187
200
|
- **Supply chain tiers**: Classifies code as first-party, internal, external, or derived for dependency-aware analysis
|
|
188
201
|
|
|
189
202
|
## How It Works
|
|
@@ -204,7 +217,7 @@ All analyzers produce the same IR types:
|
|
|
204
217
|
- **Edge**: A relationship between symbols (calls, imports, extends, implements)
|
|
205
218
|
- **Span**: Source location (file, line, column)
|
|
206
219
|
|
|
207
|
-
This uniform IR is what allows all language analyzers and
|
|
220
|
+
This uniform IR is what allows all language analyzers and linkers (Protocol / Bridge / Framework / Infrastructure — see [ADR-0003-ext](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/adr/0003-linker-subcategory-restoration.md)) to work together coherently.
|
|
208
221
|
|
|
209
222
|
## Architecture
|
|
210
223
|
|
|
@@ -216,7 +229,7 @@ packages/
|
|
|
216
229
|
│ ├── ir.py # Symbol, Edge, Span
|
|
217
230
|
│ ├── sketch.py # Token-budgeted Markdown
|
|
218
231
|
│ ├── slice.py # Subgraph extraction
|
|
219
|
-
│ ├── linkers/ #
|
|
232
|
+
│ ├── linkers/ # Tier 2 edge-recovery passes (Protocol/Bridge/Framework/Infrastructure)
|
|
220
233
|
│ └── frameworks/ # Framework detection (YAML patterns)
|
|
221
234
|
├── hypergumbo-lang-mainstream/ # Python, JS, Java, Go, Rust, etc.
|
|
222
235
|
├── hypergumbo-lang-common/ # Haskell, Elixir, GraphQL, etc.
|
|
@@ -251,11 +264,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for PR workflow (including fork-based wor
|
|
|
251
264
|
- [docs/USE-CASES.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/USE-CASES.md) — Practical workflows and examples
|
|
252
265
|
- [CHANGELOG.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/CHANGELOG.md) — Implementation history
|
|
253
266
|
- [docs/LANGUAGES.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LANGUAGES.md) — Supported languages
|
|
254
|
-
- [docs/LINKERS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md) —
|
|
267
|
+
- [docs/LINKERS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md) — Linkers catalogue (Protocol / Bridge / Framework / Infrastructure)
|
|
255
268
|
- [docs/FRAMEWORKS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/FRAMEWORKS.md) — Framework patterns
|
|
256
269
|
- [docs/hypergumbo-spec.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/hypergumbo-spec.md) — Detailed specification
|
|
257
270
|
- [docs/CITATIONS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/CITATIONS.md) — Paper citations for embedding models
|
|
258
271
|
- [docs/CACHE.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/CACHE.md) — Caching architecture
|
|
272
|
+
- [docs/agent-supervisor.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/agent-supervisor.md) — Operator guide for `scripts/agent-supervisor` (the tmux-session watchdog for autonomous agents)
|
|
259
273
|
- [SECURITY.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/SECURITY.md) — Vulnerability reporting
|
|
260
274
|
- [hypergumbo-tracker README](packages/hypergumbo-tracker/README.md) — Standalone tracker for AI agent governance
|
|
261
275
|
|
|
@@ -120,7 +120,7 @@ hypergumbo . -t 8000 # detailed with many symbols
|
|
|
120
120
|
hypergumbo [path] # Markdown sketch (default)
|
|
121
121
|
hypergumbo run [path] # Full JSON behavior map
|
|
122
122
|
hypergumbo slice --entry X # Subgraph from entry point
|
|
123
|
-
hypergumbo io-boundaries # Find all I/O (filesystem, network, subprocess, env)
|
|
123
|
+
hypergumbo io-boundaries # Find all I/O (filesystem, network, subprocess, env, IPC, browser storage)
|
|
124
124
|
hypergumbo verify-claims ... # Verify security claims against analysis
|
|
125
125
|
hypergumbo routes [path] # List HTTP routes
|
|
126
126
|
hypergumbo search <query> # Search symbols
|
|
@@ -138,6 +138,19 @@ hypergumbo . --no-progress # hide progress indicator (on by default)
|
|
|
138
138
|
hypergumbo --help --all # comprehensive help for all commands
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
+
### Project-local taint catalogs
|
|
142
|
+
|
|
143
|
+
`verify-claims` ships with paranoid defaults auto-derived from the built-in IO primitive catalog. Projects can supply their own trust zones, sanitizers, and label maps:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
hypergumbo verify-claims claims.yaml \
|
|
147
|
+
--taint-sources myrepo/taint/sources.yaml \
|
|
148
|
+
--taint-sinks myrepo/taint/sinks/ \
|
|
149
|
+
--taint-sanitizers myrepo/taint/sanitizers.yaml
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Each flag accepts a YAML file or a directory (globbed as `*.yaml`), and is repeatable. The same paths can be declared inside the claims YAML under `extra_catalogs: {sources, sinks, sanitizers}` — relative paths resolve against the claims-file directory. User entries whose `(module, name, kind)` triple matches a built-in replace it; sanitizers concatenate.
|
|
153
|
+
|
|
141
154
|
Results are automatically cached in `~/.cache/hypergumbo/`. Just run:
|
|
142
155
|
```bash
|
|
143
156
|
hypergumbo . # auto-runs analysis if no cache exists, then generates sketch
|
|
@@ -150,10 +163,10 @@ See `hypergumbo --help` for all options.
|
|
|
150
163
|
## What It Understands
|
|
151
164
|
|
|
152
165
|
- **Language analyzers**: Python, JS/TS, Java, Rust, Go, C/C++, and [many more](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LANGUAGES.md)
|
|
153
|
-
- **
|
|
166
|
+
- **Linkers**: Tier 2 edge-recovery passes across four subcategories — Protocol (HTTP, WebSocket, message queues, SQL), Bridge (JNI, wasm_bindgen, Tauri IPC, language-pair FFI), Framework (gRPC, GraphQL, React components, DI resolution, ORM), Infrastructure (containment, inheritance, module imports). [Full catalogue](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md).
|
|
154
167
|
- **Framework patterns**: FastAPI, Django, Rails, Spring Boot, Phoenix, Express, and [many more](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/FRAMEWORKS.md)
|
|
155
|
-
- **I/O boundary detection**: Maps every call chain that reaches the filesystem, network,
|
|
156
|
-
- **Taint-flow analysis**: Traces data from sensitive sources (crypto
|
|
168
|
+
- **I/O boundary detection**: Maps every call chain that reaches the filesystem, network, subprocess, environment, IPC, or browser-local storage — across FFI boundaries
|
|
169
|
+
- **Taint-flow analysis**: Traces data from sensitive sources (environment variables, received network input, crypto outputs, key material) to sinks in six trust zones (`host_fs`, `network`, `host_env`, `ipc`, `browser_storage`, `relay`), with sanitizer awareness
|
|
157
170
|
- **Supply chain tiers**: Classifies code as first-party, internal, external, or derived for dependency-aware analysis
|
|
158
171
|
|
|
159
172
|
## How It Works
|
|
@@ -174,7 +187,7 @@ All analyzers produce the same IR types:
|
|
|
174
187
|
- **Edge**: A relationship between symbols (calls, imports, extends, implements)
|
|
175
188
|
- **Span**: Source location (file, line, column)
|
|
176
189
|
|
|
177
|
-
This uniform IR is what allows all language analyzers and
|
|
190
|
+
This uniform IR is what allows all language analyzers and linkers (Protocol / Bridge / Framework / Infrastructure — see [ADR-0003-ext](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/adr/0003-linker-subcategory-restoration.md)) to work together coherently.
|
|
178
191
|
|
|
179
192
|
## Architecture
|
|
180
193
|
|
|
@@ -186,7 +199,7 @@ packages/
|
|
|
186
199
|
│ ├── ir.py # Symbol, Edge, Span
|
|
187
200
|
│ ├── sketch.py # Token-budgeted Markdown
|
|
188
201
|
│ ├── slice.py # Subgraph extraction
|
|
189
|
-
│ ├── linkers/ #
|
|
202
|
+
│ ├── linkers/ # Tier 2 edge-recovery passes (Protocol/Bridge/Framework/Infrastructure)
|
|
190
203
|
│ └── frameworks/ # Framework detection (YAML patterns)
|
|
191
204
|
├── hypergumbo-lang-mainstream/ # Python, JS, Java, Go, Rust, etc.
|
|
192
205
|
├── hypergumbo-lang-common/ # Haskell, Elixir, GraphQL, etc.
|
|
@@ -221,11 +234,12 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for PR workflow (including fork-based wor
|
|
|
221
234
|
- [docs/USE-CASES.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/USE-CASES.md) — Practical workflows and examples
|
|
222
235
|
- [CHANGELOG.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/CHANGELOG.md) — Implementation history
|
|
223
236
|
- [docs/LANGUAGES.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LANGUAGES.md) — Supported languages
|
|
224
|
-
- [docs/LINKERS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md) —
|
|
237
|
+
- [docs/LINKERS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md) — Linkers catalogue (Protocol / Bridge / Framework / Infrastructure)
|
|
225
238
|
- [docs/FRAMEWORKS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/FRAMEWORKS.md) — Framework patterns
|
|
226
239
|
- [docs/hypergumbo-spec.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/hypergumbo-spec.md) — Detailed specification
|
|
227
240
|
- [docs/CITATIONS.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/CITATIONS.md) — Paper citations for embedding models
|
|
228
241
|
- [docs/CACHE.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/CACHE.md) — Caching architecture
|
|
242
|
+
- [docs/agent-supervisor.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/agent-supervisor.md) — Operator guide for `scripts/agent-supervisor` (the tmux-session watchdog for autonomous agents)
|
|
229
243
|
- [SECURITY.md](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/SECURITY.md) — Vulnerability reporting
|
|
230
244
|
- [hypergumbo-tracker README](packages/hypergumbo-tracker/README.md) — Standalone tracker for AI agent governance
|
|
231
245
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hypergumbo"
|
|
7
|
-
version = "
|
|
7
|
+
version = "3.0.0"
|
|
8
8
|
description = "Local-first repo behavior map generator"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -19,10 +19,10 @@ classifiers = [
|
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
21
|
# Meta-package that pulls in all hypergumbo components
|
|
22
|
-
"hypergumbo-core==
|
|
23
|
-
"hypergumbo-lang-mainstream==
|
|
24
|
-
"hypergumbo-lang-common==
|
|
25
|
-
"hypergumbo-lang-extended1==
|
|
22
|
+
"hypergumbo-core==3.0.0",
|
|
23
|
+
"hypergumbo-lang-mainstream==3.0.0",
|
|
24
|
+
"hypergumbo-lang-common==3.0.0",
|
|
25
|
+
"hypergumbo-lang-extended1==3.0.0",
|
|
26
26
|
]
|
|
27
27
|
|
|
28
28
|
[project.optional-dependencies]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|