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.
@@ -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: 2.6.0
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==2.6.0
14
- Requires-Dist: hypergumbo-lang-common==2.6.0
15
- Requires-Dist: hypergumbo-lang-extended1==2.6.0
16
- Requires-Dist: hypergumbo-lang-mainstream==2.6.0
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
- - **Cross-language linkers**: JNI, HTTP, WebSocket, gRPC, GraphQL, message queues ([full list](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md))
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, subprocesses, or environment — across FFI boundaries
186
- - **Taint-flow analysis**: Traces data from sensitive sources (crypto keys, plaintext) to sinks (filesystem, network), with sanitizer awareness
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 cross-language linkers to work together coherently.
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/ # Cross-language 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) — Cross-language linkers
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
- - **Cross-language linkers**: JNI, HTTP, WebSocket, gRPC, GraphQL, message queues ([full list](https://codeberg.org/iterabloom/hypergumbo/src/branch/dev/docs/LINKERS.md))
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, subprocesses, or environment — across FFI boundaries
156
- - **Taint-flow analysis**: Traces data from sensitive sources (crypto keys, plaintext) to sinks (filesystem, network), with sanitizer awareness
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 cross-language linkers to work together coherently.
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/ # Cross-language 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) — Cross-language linkers
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 = "2.6.0"
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==2.6.0",
23
- "hypergumbo-lang-mainstream==2.6.0",
24
- "hypergumbo-lang-common==2.6.0",
25
- "hypergumbo-lang-extended1==2.6.0",
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]