hypergumbo-core 2.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.
Files changed (200) hide show
  1. hypergumbo_core-2.0.0/.gitignore +43 -0
  2. hypergumbo_core-2.0.0/PKG-INFO +64 -0
  3. hypergumbo_core-2.0.0/README.md +35 -0
  4. hypergumbo_core-2.0.0/pyproject.toml +101 -0
  5. hypergumbo_core-2.0.0/src/hypergumbo_core/__init__.py +23 -0
  6. hypergumbo_core-2.0.0/src/hypergumbo_core/__main__.py +4 -0
  7. hypergumbo_core-2.0.0/src/hypergumbo_core/_embedding_data.py +39 -0
  8. hypergumbo_core-2.0.0/src/hypergumbo_core/analyze/__init__.py +1 -0
  9. hypergumbo_core-2.0.0/src/hypergumbo_core/analyze/all_analyzers.py +230 -0
  10. hypergumbo_core-2.0.0/src/hypergumbo_core/analyze/base.py +279 -0
  11. hypergumbo_core-2.0.0/src/hypergumbo_core/analyze/registry.py +182 -0
  12. hypergumbo_core-2.0.0/src/hypergumbo_core/build_grammars.py +312 -0
  13. hypergumbo_core-2.0.0/src/hypergumbo_core/catalog.py +619 -0
  14. hypergumbo_core-2.0.0/src/hypergumbo_core/cli.py +3336 -0
  15. hypergumbo_core-2.0.0/src/hypergumbo_core/compact.py +1235 -0
  16. hypergumbo_core-2.0.0/src/hypergumbo_core/datamodels.py +381 -0
  17. hypergumbo_core-2.0.0/src/hypergumbo_core/discovery.py +130 -0
  18. hypergumbo_core-2.0.0/src/hypergumbo_core/entrypoints.py +571 -0
  19. hypergumbo_core-2.0.0/src/hypergumbo_core/framework_patterns.py +1221 -0
  20. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/adonisjs.yaml +114 -0
  21. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/aiohttp.yaml +72 -0
  22. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/akka-http.yaml +97 -0
  23. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/android.yaml +43 -0
  24. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/aspnet.yaml +99 -0
  25. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/bottle.yaml +46 -0
  26. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cakephp.yaml +112 -0
  27. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/celery.yaml +73 -0
  28. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cli-go.yaml +70 -0
  29. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cli-js.yaml +89 -0
  30. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cli-ruby.yaml +86 -0
  31. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cli-rust.yaml +53 -0
  32. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/cli.yaml +92 -0
  33. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/codeigniter.yaml +182 -0
  34. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/config-conventions.yaml +144 -0
  35. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/django.yaml +126 -0
  36. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/electron.yaml +92 -0
  37. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/express.yaml +129 -0
  38. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/falcon.yaml +66 -0
  39. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/fastapi.yaml +67 -0
  40. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/fastify.yaml +76 -0
  41. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/feathers.yaml +133 -0
  42. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/flask-appbuilder.yaml +73 -0
  43. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/flask.yaml +88 -0
  44. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/fuelphp.yaml +121 -0
  45. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/go-web.yaml +102 -0
  46. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/grape.yaml +77 -0
  47. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/graphql-python.yaml +105 -0
  48. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/graphql-ruby.yaml +83 -0
  49. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/graphql.yaml +104 -0
  50. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/hanami.yaml +122 -0
  51. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/hapi.yaml +86 -0
  52. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/http4k.yaml +127 -0
  53. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/http4s.yaml +150 -0
  54. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/javalin.yaml +178 -0
  55. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/jax-rs.yaml +41 -0
  56. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/koa.yaml +89 -0
  57. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/ktor.yaml +65 -0
  58. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/laminas.yaml +125 -0
  59. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/language-conventions.yaml +98 -0
  60. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/laravel.yaml +179 -0
  61. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/library-exports.yaml +48 -0
  62. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/litestar.yaml +60 -0
  63. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/lumen.yaml +180 -0
  64. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/main-functions.yaml +87 -0
  65. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/masonite.yaml +90 -0
  66. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/micronaut.yaml +108 -0
  67. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/naming-conventions.yaml +39 -0
  68. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/nestjs.yaml +60 -0
  69. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/nex.yaml +85 -0
  70. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/nextjs.yaml +86 -0
  71. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/nuxt.yaml +143 -0
  72. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/padrino.yaml +170 -0
  73. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/pedestal.yaml +145 -0
  74. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/phoenix.yaml +137 -0
  75. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/play.yaml +92 -0
  76. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/plug.yaml +70 -0
  77. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/pyramid.yaml +69 -0
  78. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/quarkus.yaml +165 -0
  79. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/quart.yaml +62 -0
  80. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/rails.yaml +128 -0
  81. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/remix.yaml +126 -0
  82. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/restify.yaml +197 -0
  83. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/ring-compojure.yaml +155 -0
  84. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/roda.yaml +148 -0
  85. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/rust-web.yaml +139 -0
  86. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/sanic.yaml +57 -0
  87. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/scalatra.yaml +170 -0
  88. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/scotty.yaml +169 -0
  89. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/servant.yaml +112 -0
  90. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/sinatra.yaml +58 -0
  91. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/slim.yaml +77 -0
  92. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/spring-boot.yaml +81 -0
  93. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/sveltekit.yaml +139 -0
  94. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/symfony.yaml +159 -0
  95. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/test-frameworks.yaml +171 -0
  96. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/tornado.yaml +76 -0
  97. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/vapor.yaml +70 -0
  98. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/vertx.yaml +168 -0
  99. hypergumbo_core-2.0.0/src/hypergumbo_core/frameworks/yii.yaml +125 -0
  100. hypergumbo_core-2.0.0/src/hypergumbo_core/ir.py +498 -0
  101. hypergumbo_core-2.0.0/src/hypergumbo_core/limits.py +188 -0
  102. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/__init__.py +5 -0
  103. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/database_query.py +484 -0
  104. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/dependency.py +232 -0
  105. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/event_sourcing.py +596 -0
  106. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/graphql.py +352 -0
  107. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/graphql_resolver.py +482 -0
  108. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/grpc.py +613 -0
  109. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/http.py +587 -0
  110. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/inheritance.py +187 -0
  111. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/ipc.py +451 -0
  112. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/jni.py +286 -0
  113. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/message_queue.py +543 -0
  114. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/openapi.py +450 -0
  115. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/phoenix_ipc.py +368 -0
  116. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/registry.py +710 -0
  117. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/route_handler.py +361 -0
  118. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/subprocess_cli.py +469 -0
  119. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/swift_objc.py +241 -0
  120. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/type_hierarchy.py +296 -0
  121. hypergumbo_core-2.0.0/src/hypergumbo_core/linkers/websocket.py +615 -0
  122. hypergumbo_core-2.0.0/src/hypergumbo_core/metrics.py +94 -0
  123. hypergumbo_core-2.0.0/src/hypergumbo_core/paths.py +238 -0
  124. hypergumbo_core-2.0.0/src/hypergumbo_core/profile.py +1011 -0
  125. hypergumbo_core-2.0.0/src/hypergumbo_core/ranking.py +755 -0
  126. hypergumbo_core-2.0.0/src/hypergumbo_core/schema.py +105 -0
  127. hypergumbo_core-2.0.0/src/hypergumbo_core/selection/__init__.py +68 -0
  128. hypergumbo_core-2.0.0/src/hypergumbo_core/selection/filters.py +168 -0
  129. hypergumbo_core-2.0.0/src/hypergumbo_core/selection/language_proportional.py +222 -0
  130. hypergumbo_core-2.0.0/src/hypergumbo_core/selection/token_budget.py +177 -0
  131. hypergumbo_core-2.0.0/src/hypergumbo_core/sketch.py +6030 -0
  132. hypergumbo_core-2.0.0/src/hypergumbo_core/sketch_embeddings.py +1587 -0
  133. hypergumbo_core-2.0.0/src/hypergumbo_core/slice.py +471 -0
  134. hypergumbo_core-2.0.0/src/hypergumbo_core/supply_chain.py +393 -0
  135. hypergumbo_core-2.0.0/src/hypergumbo_core/symbol_resolution.py +679 -0
  136. hypergumbo_core-2.0.0/src/hypergumbo_core/taxonomy.py +740 -0
  137. hypergumbo_core-2.0.0/src/hypergumbo_core/user_config.py +192 -0
  138. hypergumbo_core-2.0.0/tests/test_base.py +275 -0
  139. hypergumbo_core-2.0.0/tests/test_behavior_map_schema.py +26 -0
  140. hypergumbo_core-2.0.0/tests/test_build_grammars.py +374 -0
  141. hypergumbo_core-2.0.0/tests/test_catalog.py +315 -0
  142. hypergumbo_core-2.0.0/tests/test_cli_basic.py +46 -0
  143. hypergumbo_core-2.0.0/tests/test_cli_commands.py +2614 -0
  144. hypergumbo_core-2.0.0/tests/test_cli_explain.py +1750 -0
  145. hypergumbo_core-2.0.0/tests/test_cli_routes.py +493 -0
  146. hypergumbo_core-2.0.0/tests/test_cli_run_behavior_map.py +214 -0
  147. hypergumbo_core-2.0.0/tests/test_cli_search.py +394 -0
  148. hypergumbo_core-2.0.0/tests/test_cli_symbols.py +792 -0
  149. hypergumbo_core-2.0.0/tests/test_cli_test_coverage.py +957 -0
  150. hypergumbo_core-2.0.0/tests/test_compact.py +1954 -0
  151. hypergumbo_core-2.0.0/tests/test_database_query_linker.py +616 -0
  152. hypergumbo_core-2.0.0/tests/test_datamodels.py +456 -0
  153. hypergumbo_core-2.0.0/tests/test_dependency_linker.py +601 -0
  154. hypergumbo_core-2.0.0/tests/test_discovery.py +164 -0
  155. hypergumbo_core-2.0.0/tests/test_entrypoints.py +1889 -0
  156. hypergumbo_core-2.0.0/tests/test_event_sourcing_linker.py +653 -0
  157. hypergumbo_core-2.0.0/tests/test_fastapi_patterns.py +277 -0
  158. hypergumbo_core-2.0.0/tests/test_file_excludes.py +188 -0
  159. hypergumbo_core-2.0.0/tests/test_framework_patterns.py +13508 -0
  160. hypergumbo_core-2.0.0/tests/test_frameworks_flag.py +193 -0
  161. hypergumbo_core-2.0.0/tests/test_graphql_linker.py +265 -0
  162. hypergumbo_core-2.0.0/tests/test_graphql_resolver_linker.py +454 -0
  163. hypergumbo_core-2.0.0/tests/test_grpc_linker.py +732 -0
  164. hypergumbo_core-2.0.0/tests/test_http_linker.py +872 -0
  165. hypergumbo_core-2.0.0/tests/test_inheritance_linker.py +264 -0
  166. hypergumbo_core-2.0.0/tests/test_ipc_linker.py +684 -0
  167. hypergumbo_core-2.0.0/tests/test_ir.py +731 -0
  168. hypergumbo_core-2.0.0/tests/test_limits.py +133 -0
  169. hypergumbo_core-2.0.0/tests/test_linker_activation.py +188 -0
  170. hypergumbo_core-2.0.0/tests/test_linker_filtering.py +293 -0
  171. hypergumbo_core-2.0.0/tests/test_linker_registry.py +898 -0
  172. hypergumbo_core-2.0.0/tests/test_main_module.py +22 -0
  173. hypergumbo_core-2.0.0/tests/test_max_tier.py +262 -0
  174. hypergumbo_core-2.0.0/tests/test_message_queue_linker.py +699 -0
  175. hypergumbo_core-2.0.0/tests/test_metrics.py +146 -0
  176. hypergumbo_core-2.0.0/tests/test_no_first_party_priority.py +88 -0
  177. hypergumbo_core-2.0.0/tests/test_openapi_linker.py +643 -0
  178. hypergumbo_core-2.0.0/tests/test_paths.py +277 -0
  179. hypergumbo_core-2.0.0/tests/test_phoenix_ipc_linker.py +466 -0
  180. hypergumbo_core-2.0.0/tests/test_profile.py +1491 -0
  181. hypergumbo_core-2.0.0/tests/test_ranking.py +1230 -0
  182. hypergumbo_core-2.0.0/tests/test_route_handler_linker.py +713 -0
  183. hypergumbo_core-2.0.0/tests/test_run_behavior_map.py +315 -0
  184. hypergumbo_core-2.0.0/tests/test_schema.py +325 -0
  185. hypergumbo_core-2.0.0/tests/test_schema_compliance.py +121 -0
  186. hypergumbo_core-2.0.0/tests/test_selection_filters.py +187 -0
  187. hypergumbo_core-2.0.0/tests/test_selection_language_proportional.py +231 -0
  188. hypergumbo_core-2.0.0/tests/test_selection_token_budget.py +155 -0
  189. hypergumbo_core-2.0.0/tests/test_sketch.py +7388 -0
  190. hypergumbo_core-2.0.0/tests/test_sketch_sanity.py +669 -0
  191. hypergumbo_core-2.0.0/tests/test_slice.py +1125 -0
  192. hypergumbo_core-2.0.0/tests/test_slice_tier_filter.py +181 -0
  193. hypergumbo_core-2.0.0/tests/test_stable_shape_ids.py +308 -0
  194. hypergumbo_core-2.0.0/tests/test_subprocess_linker.py +499 -0
  195. hypergumbo_core-2.0.0/tests/test_supply_chain.py +781 -0
  196. hypergumbo_core-2.0.0/tests/test_symbol_resolution.py +666 -0
  197. hypergumbo_core-2.0.0/tests/test_taxonomy.py +413 -0
  198. hypergumbo_core-2.0.0/tests/test_type_hierarchy_linker.py +740 -0
  199. hypergumbo_core-2.0.0/tests/test_user_config.py +251 -0
  200. hypergumbo_core-2.0.0/tests/test_websocket.py +1139 -0
@@ -0,0 +1,43 @@
1
+ # python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ dist/
6
+ build/
7
+ .venv/
8
+ .env
9
+
10
+ # tooling
11
+ .pytest_cache/
12
+ .mypy_cache/
13
+ .ruff_cache/
14
+
15
+ # hypergumbo
16
+ .hypergumbo/
17
+ hypergumbo_capsule/
18
+ hypergumbo.results.json
19
+ hypergumbo.results.*.json
20
+ slice.json
21
+
22
+ # Agent configuration
23
+ **/*.local.json
24
+ **/*.local.md
25
+ **/.claude/cache/
26
+ **/.gemini/cache/
27
+ **/.cursor/state/
28
+ **/*-session/
29
+ AUTONOMOUS_MODE.txt
30
+
31
+ # Coverage
32
+ .coverage
33
+ .coverage.*
34
+ htmlcov/
35
+ coverage-report.txt
36
+
37
+ # Node (bats testing)
38
+ node_modules/
39
+ package.json
40
+ package-lock.json
41
+
42
+ # Hypergumbo cache
43
+ .hypergumbo_cache/
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: hypergumbo-core
3
+ Version: 2.0.0
4
+ Summary: Core infrastructure for hypergumbo repo behavior map generator
5
+ Author: Hypergumbo contributors
6
+ License: AGPL-3.0-or-later
7
+ Keywords: cli,code-graph,local-first,static-analysis
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Requires-Python: >=3.10
13
+ Requires-Dist: pyyaml>=6.0
14
+ Requires-Dist: rich>=13.0
15
+ Requires-Dist: tree-sitter>=0.21
16
+ Provides-Extra: dev
17
+ Requires-Dist: bandit>=1.8; extra == 'dev'
18
+ Requires-Dist: check-jsonschema>=0.29; extra == 'dev'
19
+ Requires-Dist: jsonschema>=4.18; extra == 'dev'
20
+ Requires-Dist: pip-audit>=2.7; extra == 'dev'
21
+ Requires-Dist: pytest-cov>=5; extra == 'dev'
22
+ Requires-Dist: pytest-xdist>=3; extra == 'dev'
23
+ Requires-Dist: pytest>=8; extra == 'dev'
24
+ Requires-Dist: ruff>=0.8; extra == 'dev'
25
+ Requires-Dist: yamllint>=1.35; extra == 'dev'
26
+ Provides-Extra: embeddings
27
+ Requires-Dist: sentence-transformers>=2.2; extra == 'embeddings'
28
+ Description-Content-Type: text/markdown
29
+
30
+ # hypergumbo-core
31
+
32
+ Core infrastructure for hypergumbo repo behavior map generator.
33
+
34
+ ## What's Included
35
+
36
+ - **CLI**: Command-line interface (`hypergumbo run`, `hypergumbo sketch`, etc.)
37
+ - **IR**: Data structures (Symbol, Edge, Span, AnalysisRun)
38
+ - **Analysis Framework**: Base classes and registry for language analyzers
39
+ - **Linkers**: Cross-language relationship detection (gRPC, HTTP, IPC, etc.)
40
+ - **Framework Patterns**: Route and handler detection for 150+ frameworks
41
+ - **Slice**: Forward and reverse dependency analysis
42
+ - **Sketch**: Token-budgeted codebase overview generation
43
+
44
+ ## Installation
45
+
46
+ ```bash
47
+ # Core only (no language analyzers)
48
+ pip install hypergumbo-core
49
+
50
+ # Full installation (recommended)
51
+ pip install hypergumbo
52
+ ```
53
+
54
+ ## Usage
55
+
56
+ ```python
57
+ from hypergumbo_core.ir import Symbol, Edge, Span
58
+ from hypergumbo_core.sketch import generate_sketch
59
+ from hypergumbo_core.slice import forward_slice, reverse_slice
60
+ ```
61
+
62
+ ## Documentation
63
+
64
+ See https://codeberg.org/iterabloom/hypergumbo for full documentation.
@@ -0,0 +1,35 @@
1
+ # hypergumbo-core
2
+
3
+ Core infrastructure for hypergumbo repo behavior map generator.
4
+
5
+ ## What's Included
6
+
7
+ - **CLI**: Command-line interface (`hypergumbo run`, `hypergumbo sketch`, etc.)
8
+ - **IR**: Data structures (Symbol, Edge, Span, AnalysisRun)
9
+ - **Analysis Framework**: Base classes and registry for language analyzers
10
+ - **Linkers**: Cross-language relationship detection (gRPC, HTTP, IPC, etc.)
11
+ - **Framework Patterns**: Route and handler detection for 150+ frameworks
12
+ - **Slice**: Forward and reverse dependency analysis
13
+ - **Sketch**: Token-budgeted codebase overview generation
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ # Core only (no language analyzers)
19
+ pip install hypergumbo-core
20
+
21
+ # Full installation (recommended)
22
+ pip install hypergumbo
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ ```python
28
+ from hypergumbo_core.ir import Symbol, Edge, Span
29
+ from hypergumbo_core.sketch import generate_sketch
30
+ from hypergumbo_core.slice import forward_slice, reverse_slice
31
+ ```
32
+
33
+ ## Documentation
34
+
35
+ See https://codeberg.org/iterabloom/hypergumbo for full documentation.
@@ -0,0 +1,101 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.24"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "hypergumbo-core"
7
+ version = "2.0.0"
8
+ description = "Core infrastructure for hypergumbo repo behavior map generator"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "AGPL-3.0-or-later" }
12
+ authors = [{ name = "Hypergumbo contributors" }]
13
+ keywords = ["static-analysis", "code-graph", "cli", "local-first"]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3 :: Only",
19
+ ]
20
+ dependencies = [
21
+ # Core tree-sitter for parsing
22
+ "tree-sitter>=0.21",
23
+ # CLI formatting
24
+ "rich>=13.0",
25
+ # YAML parsing for framework patterns
26
+ "pyyaml>=6.0",
27
+ ]
28
+
29
+ [project.optional-dependencies]
30
+ dev = [
31
+ "pytest>=8",
32
+ "pytest-cov>=5",
33
+ "pytest-xdist>=3",
34
+ "ruff>=0.8",
35
+ "bandit>=1.8",
36
+ "pip-audit>=2.7",
37
+ "jsonschema>=4.18",
38
+ "yamllint>=1.35",
39
+ "check-jsonschema>=0.29",
40
+ ]
41
+ embeddings = [
42
+ "sentence-transformers>=2.2",
43
+ ]
44
+
45
+ [project.scripts]
46
+ hypergumbo = "hypergumbo_core.cli:main"
47
+
48
+ [project.entry-points."hypergumbo.analyzers"]
49
+ # Core analyzers are registered here (none for core package)
50
+ # Language packages will add their own entry points
51
+
52
+ [tool.hatch.build.targets.wheel]
53
+ packages = ["src/hypergumbo_core"]
54
+
55
+ [tool.pytest.ini_options]
56
+ filterwarnings = [
57
+ "ignore:tree-sitter-.*not available:UserWarning",
58
+ "ignore:.*analysis skipped.*requires tree-sitter:UserWarning",
59
+ "ignore:int argument support is deprecated:DeprecationWarning",
60
+ ]
61
+
62
+ [tool.coverage.run]
63
+ omit = [
64
+ "*/sketch_embeddings.py",
65
+ "*/_embedding_data.py",
66
+ "*/__main__.py",
67
+ ]
68
+
69
+ [tool.ruff]
70
+ target-version = "py310"
71
+ line-length = 100
72
+ src = ["src", "tests"]
73
+
74
+ [tool.ruff.lint]
75
+ select = [
76
+ "E",
77
+ "W",
78
+ "F",
79
+ "B",
80
+ "C4",
81
+ "S",
82
+ "RUF",
83
+ ]
84
+ ignore = [
85
+ "E501",
86
+ "S101",
87
+ "S105",
88
+ "S106",
89
+ "S110",
90
+ "RUF059",
91
+ "RUF005",
92
+ "B028",
93
+ ]
94
+
95
+ [tool.ruff.lint.per-file-ignores]
96
+ "tests/**/*.py" = ["S101", "S105", "S106", "S603", "S108", "E741", "F401", "F841", "RUF005"]
97
+ "src/hypergumbo_core/analyze/*.py" = ["E402"]
98
+
99
+ [tool.bandit]
100
+ exclude_dirs = ["tests", ".venv"]
101
+ skips = ["B101", "B105", "B110"]
@@ -0,0 +1,23 @@
1
+ """Hypergumbo Core: Core infrastructure for repo behavior map generation.
2
+
3
+ This package provides the core infrastructure for static analysis, including:
4
+ - IR (Symbol, Edge, Span) data structures
5
+ - Analysis framework (base classes, registry)
6
+ - Linkers for cross-language/cross-component relationships
7
+ - Framework pattern detection
8
+ - CLI entry point
9
+
10
+ Version Note
11
+ ------------
12
+ - **__version__**: The tool/package version. This version tracks CLI features,
13
+ analyzer additions, and bug fixes. Updated with each release.
14
+
15
+ - **SCHEMA_VERSION** (in schema.py): The output format version. This version
16
+ tracks breaking changes to the JSON output schema. Consumers should check
17
+ schema_version in output to ensure compatibility.
18
+
19
+ These versions are independent. The schema version only changes when the output
20
+ format has breaking changes, while the tool version changes with any release.
21
+ """
22
+ __all__ = ["__version__"]
23
+ __version__ = "2.0.0"
@@ -0,0 +1,4 @@
1
+ from .cli import main
2
+
3
+ if __name__ == "__main__":
4
+ raise SystemExit(main())