gitgalaxy 2.2.1__tar.gz → 2.2.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.
Files changed (183) hide show
  1. gitgalaxy-2.2.2/.github/workflows/gitgalaxy.yml +72 -0
  2. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/PKG-INFO +15 -12
  3. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/README.md +14 -11
  4. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/README.md +2 -2
  5. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/guidestar_lens.py +68 -1
  6. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/galaxyscope.py +48 -0
  7. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/signal_processor.py +55 -16
  8. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/record_keeper.py +4 -0
  9. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/requirements.txt +15 -15
  10. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/analysis_lens.py +10 -0
  11. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/gitgalaxy_config.py +13 -1
  12. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/language_standards.py +6 -1
  13. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy.egg-info/PKG-INFO +15 -12
  14. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy.egg-info/SOURCES.txt +2 -1
  15. gitgalaxy-2.2.2/github-action-readme.md +189 -0
  16. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/mkdocs.yml +0 -0
  17. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/pyproject.toml +0 -0
  18. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_galaxyscope.py +1 -2
  19. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/bufio.go +0 -0
  20. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/bufio_test.go +0 -0
  21. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/example_test.go +0 -0
  22. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/export_test.go +0 -0
  23. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/net_test.go +0 -0
  24. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/scan.go +0 -0
  25. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/bufio/scan_test.go +0 -0
  26. gitgalaxy-2.2.1/cure_dead_ends.py +0 -51
  27. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.flake8 +0 -0
  28. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/ISSUE_TEMPLATE/parsing_discrepancy.yml +0 -0
  29. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/dependabot.yml +0 -0
  30. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/pull_request_template.md +0 -0
  31. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/workflows/codeql.yml +0 -0
  32. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/workflows/deploy-docs.yml +0 -0
  33. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/workflows/publish.yml +0 -0
  34. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.github/workflows/smoke-test.yml +0 -0
  35. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/.gitignore +0 -0
  36. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/CONTRIBUTING.md +0 -0
  37. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/LICENSE +0 -0
  38. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/MANIFEST.in +0 -0
  39. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/action.yml +0 -0
  40. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/__init__.py +0 -0
  41. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/cobol_refractor_controller.py +0 -0
  42. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/cobol_to_java_controller.py +0 -0
  43. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/README.md +0 -0
  44. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/__init__.py +0 -0
  45. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/aperture.py +0 -0
  46. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/detector.py +0 -0
  47. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/network_risk_sensor.py +0 -0
  48. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/prism.py +0 -0
  49. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/core/state_rehydrator.py +0 -0
  50. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/licensing.py +0 -0
  51. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/README.md +0 -0
  52. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/__init__.py +0 -0
  53. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/chronometer.py +0 -0
  54. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/neural_auditor.py +0 -0
  55. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/physics/spectral_auditor.py +0 -0
  56. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/README.md +0 -0
  57. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/__init__.py +0 -0
  58. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/audit_recorder.py +0 -0
  59. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/gpu_recorder.py +0 -0
  60. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/recorders/llm_recorder.py +0 -0
  61. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/security/README.md +0 -0
  62. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/security/__init__.py +0 -0
  63. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/security/security_auditor.py +0 -0
  64. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/security/security_lens.py +0 -0
  65. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/README.md +0 -0
  66. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/__init__.py +0 -0
  67. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/how_to_add_a_language.md +0 -0
  68. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/standards/language_lens.py +0 -0
  69. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/README.md +0 -0
  70. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/__init__.py +0 -0
  71. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/ai_guardrails/README.md +0 -0
  72. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/ai_guardrails/ai_appsec_sensor.py +0 -0
  73. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/ai_guardrails/dev_agent_firewall.py +0 -0
  74. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/README.md +0 -0
  75. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_agent_task_forge.py +0 -0
  76. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_compiler_forge.py +0 -0
  77. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_dag_architect.py +0 -0
  78. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_etl_unpacker.py +0 -0
  79. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_graveyard_finder.py +0 -0
  80. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_auditor.py +0 -0
  81. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_forge.py +0 -0
  82. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_lexical_patcher.py +0 -0
  83. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_microservice_slicer.py +0 -0
  84. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_schema_forge.py +0 -0
  85. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_cobol/cobol_system_limits_reporter.py +0 -0
  86. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/README.md +0 -0
  87. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/batch_test_harness.py +0 -0
  88. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_agent_forge.py +0 -0
  89. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_api_contract_forge.py +0 -0
  90. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_build_forge.py +0 -0
  91. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_decoder_forge.py +0 -0
  92. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_service_forge.py +0 -0
  93. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_spring_forge.py +0 -0
  94. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/cobol_to_java/cobol_to_java_test_forge.py +0 -0
  95. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/compliance/README.md +0 -0
  96. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/compliance/sbom_generator.py +0 -0
  97. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/network_auditing/README.md +0 -0
  98. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/network_auditing/full_api_network_map.py +0 -0
  99. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/supply_chain_security/README.md +0 -0
  100. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/supply_chain_security/binary_anomaly_detector.py +0 -0
  101. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/supply_chain_security/supply_chain_firewall.py +0 -0
  102. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/supply_chain_security/vault_sentinel.py +0 -0
  103. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/terabyte_log_scanning/README.md +0 -0
  104. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/terabyte_log_scanning/pii_leak_hunter.py +0 -0
  105. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy/tools/terabyte_log_scanning/terabyte_log_scanner.py +0 -0
  106. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy.egg-info/dependency_links.txt +0 -0
  107. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy.egg-info/entry_points.txt +0 -0
  108. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/gitgalaxy.egg-info/top_level.txt +0 -0
  109. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/setup.cfg +0 -0
  110. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/README.md +0 -0
  111. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/readme.md +0 -0
  112. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_agent_task_forge.py +0 -0
  113. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_compiler_forge.py +0 -0
  114. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_dag_architect.py +0 -0
  115. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_etl_unpacker.py +0 -0
  116. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_graveyard_finder.py +0 -0
  117. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_jcl_auditor.py +0 -0
  118. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_jcl_forge.py +0 -0
  119. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_lexical_patcher.py +0 -0
  120. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_microservice_slicer.py +0 -0
  121. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_refractor_controller.py +0 -0
  122. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_schema_forge.py +0 -0
  123. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/cobol_mainframe/test_cobol_system_limits_reporter.py +0 -0
  124. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/readme.md +0 -0
  125. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_aperture.py +0 -0
  126. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_chronometer.py +0 -0
  127. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_chronometer_timeout.py +0 -0
  128. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_detector.py +0 -0
  129. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_guidestar_lens.py +0 -0
  130. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_language_lens.py +0 -0
  131. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_language_standards_strict.py +0 -0
  132. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_prism.py +0 -0
  133. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_signal_processor.py +0 -0
  134. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_state_rehydrator.py +0 -0
  135. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/core_engine/test_zero_dependency.py +0 -0
  136. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/extraction/readme.md +0 -0
  137. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/extraction/test_args_extraction_strict.py +0 -0
  138. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/extraction/test_class_extraction_strict.py +0 -0
  139. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/extraction/test_dependency_extraction_strict.py +0 -0
  140. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/extraction/test_function_extraction_strict.py +0 -0
  141. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/.gitattributes +0 -0
  142. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/.gitignore +0 -0
  143. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/LICENSE +0 -0
  144. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/Makefile +0 -0
  145. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/README.md +0 -0
  146. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/config.py +0 -0
  147. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/convert_em.F +0 -0
  148. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/dnn_converters.cpp +0 -0
  149. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/dnn_converters.hpp +0 -0
  150. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/insert_pinyin_to_db.py +0 -0
  151. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/iwubi.py +0 -0
  152. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/iwubi.svg +0 -0
  153. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/iwubi.xml +0 -0
  154. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/logconfig.py +0 -0
  155. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/logconfig.yaml +0 -0
  156. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/pinyin_simp.dict.csv +0 -0
  157. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/screenshot/add.png +0 -0
  158. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/screenshot/iwubi.gif +0 -0
  159. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/screenshot/set_ibus.png +0 -0
  160. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/fixtures/iwubi_frankenstein_test/wubi-jidian86.db +0 -0
  161. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/readme.md +0 -0
  162. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_ai_appsec_sensor.py +0 -0
  163. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_api_network_map.py +0 -0
  164. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_binary_anomaly_detector.py +0 -0
  165. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_dev_agent_firewall.py +0 -0
  166. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_network_risk_sensor.py +0 -0
  167. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_neural_auditor.py +0 -0
  168. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_pii_leak_hunter.py +0 -0
  169. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_redos_poison.py +0 -0
  170. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_sbom_generator.py +0 -0
  171. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_security_auditor.py +0 -0
  172. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_security_lens.py +0 -0
  173. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_spectral_auditor.py +0 -0
  174. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_supply_chain_firewall.py +0 -0
  175. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_terabyte_log_scanner.py +0 -0
  176. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/security_auditing/test_vault_sentinel.py +0 -0
  177. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/readme.md +0 -0
  178. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_agent_forge.py +0 -0
  179. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_batch_test_harness.py +0 -0
  180. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_decoder_forge.py +0 -0
  181. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_golden_forge.py +0 -0
  182. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_gpu_recorder.py +0 -0
  183. {gitgalaxy-2.2.1 → gitgalaxy-2.2.2}/tests/tools_recorders/test_service_forge.py +0 -0
@@ -0,0 +1,72 @@
1
+ name: GitGalaxy Zero-Trust Pipeline
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ vault-sentinel:
10
+ name: Vault Sentinel
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: squid-protocol/gitgalaxy@main
15
+ with:
16
+ tool: 'vault-sentinel'
17
+ target: '.'
18
+
19
+ xray-inspector:
20
+ name: X-Ray Inspector
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ - uses: squid-protocol/gitgalaxy@main
25
+ with:
26
+ tool: 'xray-inspector'
27
+ target: '.'
28
+
29
+ supply-chain-firewall:
30
+ name: Supply Chain Firewall
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: squid-protocol/gitgalaxy@main
35
+ with:
36
+ tool: 'supply-chain-firewall'
37
+ target: '.'
38
+
39
+ architectural-report:
40
+ name: LLM Structural Brief
41
+ needs: [vault-sentinel, xray-inspector, supply-chain-firewall]
42
+ runs-on: ubuntu-latest
43
+ permissions:
44
+ contents: write # Critical: Grants the Action permission to push to main
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ with:
48
+ fetch-depth: 0
49
+
50
+ - name: Generate GalaxyScope LLM Brief
51
+ uses: squid-protocol/gitgalaxy@main
52
+ with:
53
+ tool: 'galaxyscope'
54
+ target: '.'
55
+ args: '--llm-only'
56
+ full_precision: 'true'
57
+
58
+ - name: Commit and Push LLM Brief to Main
59
+ run: |
60
+ # Move the report to the docs folder for clean organization
61
+ mkdir -p docs
62
+ mv *_galaxy_llm.md docs/gitgalaxy_architecture_brief.md || true
63
+
64
+ # Configure the GitHub Actions bot identity
65
+ git config --global user.name "github-actions[bot]"
66
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
67
+
68
+ # Stage the file
69
+ git add docs/gitgalaxy_architecture_brief.md
70
+
71
+ # Only commit and push if there are actual changes to prevent pipeline failures
72
+ git diff --quiet && git diff --staged --quiet || (git commit -m "docs: auto-update LLM architectural brief" && git push)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitgalaxy
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: An AST-free, LLM-free zero-trust static analysis engine for mapping architectural risk, securing CI/CD pipelines, and modernizing legacy monoliths.
5
5
  Author: Joe Esquibel
6
6
  Project-URL: Homepage, https://gitgalaxy.io
@@ -24,7 +24,7 @@ Dynamic: license-file
24
24
  # GitGalaxy
25
25
 
26
26
  [![PyPI version](https://badge.fury.io/py/gitgalaxy.svg)](https://badge.fury.io/py/gitgalaxy)
27
- [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
27
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
28
28
  [![License: PolyForm Noncommercial](https://img.shields.io/badge/License-PolyForm%20Noncommercial-blue.svg)](https://polyformproject.org/licenses/noncommercial/1.0.0/)
29
29
 
30
30
  [![Engine](https://img.shields.io/badge/Engine-blAST-8A2BE2.svg)](#)
@@ -33,26 +33,25 @@ Dynamic: license-file
33
33
  [![Threat Hunting](https://img.shields.io/badge/Threat_Hunting-Behavioral-FF4500.svg)](#)
34
34
  [![Architecture](https://img.shields.io/badge/Architecture-Zero__Trust-teal.svg)](#)
35
35
  [![Coverage](https://img.shields.io/badge/Coverage-50%2B_Languages-00C957.svg)](#)
36
- [![Scale](https://img.shields.io/badge/Scale-100k%2B_LOC%2Fsec-00BFFF.svg)](#)
37
36
 
38
37
  [![Zero Dependencies](https://img.shields.io/badge/Dependencies-0-brightgreen.svg)](https://pypi.org/project/gitgalaxy/)
39
38
  [![Airgap Ready](https://img.shields.io/badge/Security-Airgap_Ready-teal.svg)](#)
40
39
  [![Downloads](https://static.pepy.tech/badge/gitgalaxy)](https://pepy.tech/project/gitgalaxy)
41
- [![GitHub stars](https://img.shields.io/github/stars/squid-protocol/gitgalaxy?style=social)](https://github.com/squid-protocol/gitgalaxy/stargazers)
42
40
 
43
- ### **AST-Free Static Analysis & Knowledge Graph Engine**
41
+ ### **Whole-Repository Understanding & DevSecOps Physics**
44
42
 
45
- The blAST (Bypassing LLMs and ASTs) engine is a custom-made knowledge graph engine that resolves repositories at the function level. It scores each function based on 50 unique metrics, rolls that data up to score the file, and finally summarizes the entire repository.
43
+ Most tools analyze code line-by-line. GitGalaxy maps the entire architectural ecosystem. By tracking the exact flow of information across network dependencies, identifying local folder constraints, and natively recognizing 50+ languages—even mid-file—GitGalaxy provides a deterministic, 10,000-foot view of your software's physical architecture.
46
44
 
47
45
  ### Scanning Apollo-11 with the blAST Engine
48
46
 
49
47
  ![GitGalaxy CLI Scan](./docs/wiki/assets/apollo11_scan.gif)
50
48
 
51
- By utilizing a custom engine, we retain full control over the search space. We built it to be exceptionally fast, capable of assessing your entire repository without requiring compilable code—a fundamental limitation of standard Abstract Syntax Trees (ASTs). ASTs are great for finding missing commas and memory overflows, but they miss the forest for the trees when generating knowledge graphs. LLMs, on the other hand, suffer from hallucination during large context windows and yield probabilistic, fluctuating answers.
49
+ **Why we built a custom physics engine:**
50
+ Standard Abstract Syntax Trees (ASTs) are great for finding syntax errors, but they require compilable code and miss the forest for the trees when mapping massive-scale information flow. LLMs, on the other hand, suffer from severe hallucination when analyzing large context windows and yield probabilistic, fluctuating answers.
52
51
 
53
- The blAST engine solves this. Because all programming languages utilize keywords and functions, our engine treats code files as text, scanning for these structural anchors to build a deterministic 3D knowledge graph. It seamlessly handles mid-file language switching, assesses the architectural ratio of test files to logic, and extracts invaluable project structure data that ASTs ignore.
52
+ The **blAST (Bypassing LLMs and ASTs) engine** solves this. It reads code as raw structural text, scanning for semantic anchors to build a deterministic 3D knowledge graph of your entire repository. It instantly calculates the ratio of test boundaries to core logic, maps network blast radiuses, and extracts the vital project structure data that rigid linters ignore.
54
53
 
55
- Every assumption our system makes has been abstracted into over 300 tunable variables. Think of GitGalaxy as a highly calibrated telescope. You can query the number of active API network nodes, isolate unique external imports, or highlight functions exhibiting extreme cognitive load—all adjusted via custom whitelists and blacklists to eliminate false-positive fatigue. Field-tested on over 1,000 repositories spanning 50+ languages and 250+ extensions, the engine comes equipped with smart defaults ready for immediate deployment.
54
+ Think of GitGalaxy as a highly calibrated telescope for codebase risk. Every assumption the system makes is abstracted into over 300 tunable variables. You can query active API nodes, isolate supply chain threats, or highlight functions exhibiting extreme cognitive load—all adjusted via custom shields to eliminate false-positive fatigue. Field-tested on over 1,000 repositories, the engine comes equipped with enterprise-grade defaults ready for immediate CI/CD deployment.
56
55
 
57
56
  **Core Codebase Mapping Technology**
58
57
  * Bypasses LLMs and rigid ASTs.
@@ -89,6 +88,7 @@ GitGalaxy is backed by an academic-grade thesis detailing the equations powering
89
88
  **Installation & Usage**
90
89
  * Python-based: `pip install gitgalaxy`
91
90
  * CLI execution
91
+ * CI/CD Integration: Native **[GitHub Action](github-action-read-me.md)** available for zero-trust DevSecOps pipelines.
92
92
  * Outputs forensic JSONs (optimized for AI-agent summary reports) and a native SQLite3 database for robust querying and storage.
93
93
 
94
94
  > **📖 Official Documentation:** Read the full technical specifications, architecture blueprints, and the Taxonomical Equivalence Map at **[squid-protocol.github.io/gitgalaxy](https://squid-protocol.github.io/gitgalaxy/)**.
@@ -116,8 +116,11 @@ galaxyscope /path/to/your/local/repo
116
116
 
117
117
  GitGalaxy can be integrated directly into your GitHub Actions pipeline for automated DevSecOps auditing, Zero-Trust SBOM generation, or Pre-Commit firewalls.
118
118
 
119
- Create a file in your repository at `.github/workflows/gitgalaxy-scan.yml`:
119
+ **🚀 [View the Full GitHub Action Integration Guide](github-action-read-me.md)**
120
120
 
121
+ Check out our comprehensive guide to set up the **"Golden Path" Pipeline** (Parallel Enforcement & Autonomous Reporting). It covers all available Sentinel tools, AI guardrails, and advanced configuration options like our hyper-sensitive `--paranoid` threat-hunting mode.
122
+
123
+ *Minimal Example (Running a single Sentinel):*
121
124
  ```yaml
122
125
  name: GitGalaxy Security Audit
123
126
 
@@ -135,7 +138,7 @@ jobs:
135
138
  - name: Run GitGalaxy Supply Chain Firewall
136
139
  uses: squid-protocol/gitgalaxy@main
137
140
  with:
138
- tool: 'supply-chain-firewall' # Options: galaxyscope, zero-trust-sbom, pii-leak-hunter, etc.
141
+ tool: 'supply-chain-firewall' # View the Integration Guide for the full tool directory
139
142
  target: '.'
140
143
  ```
141
144
 
@@ -162,7 +165,7 @@ A mathematical x-ray suite for sanitizing mainframe monoliths. It safely neutral
162
165
  * **Proven Metric:** The Graveyard Reaper engine extracted over 6,700 lines of dead execution blocks and orphaned variables from the standard IBM CICS benchmark app in seconds.
163
166
 
164
167
  ### [Software Supply Chain Security & Pre-Commit Firewalls](gitgalaxy/tools/supply_chain_security/)
165
- Extreme-velocity pre-commit firewalls. Instead of trusting manifest files, it scans physical internals to block steganography, sub-atomic XOR decryption loops, homoglyph typosquatting, and exposed cryptographic vaults before they ever enter your CI/CD pipeline.
168
+ Extreme-velocity pre-commit firewalls. Instead of trusting manifest files, it scans physical internals to block steganography, sub-atomic XOR decryption loops, homoglyph typosquatting, and exposed cryptographic vaults before they ever enter your CI/CD pipeline. **[Deploy directly via our GitHub Action](github-action-read-me.md).**
166
169
 
167
170
  ### [Zero-Trust SBOM Generation & Dependency Auditing](gitgalaxy/tools/compliance/)
168
171
  A Zero-Trust Software Bill of Materials (SBOM) generator. It refuses to blindly trust `package.json` or `requirements.txt` files, instead locating the physical dependencies on disk, mathematically verifying their entropy and linguistic identity, and generating strict CycloneDX 1.4 JSON reports.
@@ -1,7 +1,7 @@
1
1
  # GitGalaxy
2
2
 
3
3
  [![PyPI version](https://badge.fury.io/py/gitgalaxy.svg)](https://badge.fury.io/py/gitgalaxy)
4
- [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
5
  [![License: PolyForm Noncommercial](https://img.shields.io/badge/License-PolyForm%20Noncommercial-blue.svg)](https://polyformproject.org/licenses/noncommercial/1.0.0/)
6
6
 
7
7
  [![Engine](https://img.shields.io/badge/Engine-blAST-8A2BE2.svg)](#)
@@ -10,26 +10,25 @@
10
10
  [![Threat Hunting](https://img.shields.io/badge/Threat_Hunting-Behavioral-FF4500.svg)](#)
11
11
  [![Architecture](https://img.shields.io/badge/Architecture-Zero__Trust-teal.svg)](#)
12
12
  [![Coverage](https://img.shields.io/badge/Coverage-50%2B_Languages-00C957.svg)](#)
13
- [![Scale](https://img.shields.io/badge/Scale-100k%2B_LOC%2Fsec-00BFFF.svg)](#)
14
13
 
15
14
  [![Zero Dependencies](https://img.shields.io/badge/Dependencies-0-brightgreen.svg)](https://pypi.org/project/gitgalaxy/)
16
15
  [![Airgap Ready](https://img.shields.io/badge/Security-Airgap_Ready-teal.svg)](#)
17
16
  [![Downloads](https://static.pepy.tech/badge/gitgalaxy)](https://pepy.tech/project/gitgalaxy)
18
- [![GitHub stars](https://img.shields.io/github/stars/squid-protocol/gitgalaxy?style=social)](https://github.com/squid-protocol/gitgalaxy/stargazers)
19
17
 
20
- ### **AST-Free Static Analysis & Knowledge Graph Engine**
18
+ ### **Whole-Repository Understanding & DevSecOps Physics**
21
19
 
22
- The blAST (Bypassing LLMs and ASTs) engine is a custom-made knowledge graph engine that resolves repositories at the function level. It scores each function based on 50 unique metrics, rolls that data up to score the file, and finally summarizes the entire repository.
20
+ Most tools analyze code line-by-line. GitGalaxy maps the entire architectural ecosystem. By tracking the exact flow of information across network dependencies, identifying local folder constraints, and natively recognizing 50+ languages—even mid-file—GitGalaxy provides a deterministic, 10,000-foot view of your software's physical architecture.
23
21
 
24
22
  ### Scanning Apollo-11 with the blAST Engine
25
23
 
26
24
  ![GitGalaxy CLI Scan](./docs/wiki/assets/apollo11_scan.gif)
27
25
 
28
- By utilizing a custom engine, we retain full control over the search space. We built it to be exceptionally fast, capable of assessing your entire repository without requiring compilable code—a fundamental limitation of standard Abstract Syntax Trees (ASTs). ASTs are great for finding missing commas and memory overflows, but they miss the forest for the trees when generating knowledge graphs. LLMs, on the other hand, suffer from hallucination during large context windows and yield probabilistic, fluctuating answers.
26
+ **Why we built a custom physics engine:**
27
+ Standard Abstract Syntax Trees (ASTs) are great for finding syntax errors, but they require compilable code and miss the forest for the trees when mapping massive-scale information flow. LLMs, on the other hand, suffer from severe hallucination when analyzing large context windows and yield probabilistic, fluctuating answers.
29
28
 
30
- The blAST engine solves this. Because all programming languages utilize keywords and functions, our engine treats code files as text, scanning for these structural anchors to build a deterministic 3D knowledge graph. It seamlessly handles mid-file language switching, assesses the architectural ratio of test files to logic, and extracts invaluable project structure data that ASTs ignore.
29
+ The **blAST (Bypassing LLMs and ASTs) engine** solves this. It reads code as raw structural text, scanning for semantic anchors to build a deterministic 3D knowledge graph of your entire repository. It instantly calculates the ratio of test boundaries to core logic, maps network blast radiuses, and extracts the vital project structure data that rigid linters ignore.
31
30
 
32
- Every assumption our system makes has been abstracted into over 300 tunable variables. Think of GitGalaxy as a highly calibrated telescope. You can query the number of active API network nodes, isolate unique external imports, or highlight functions exhibiting extreme cognitive load—all adjusted via custom whitelists and blacklists to eliminate false-positive fatigue. Field-tested on over 1,000 repositories spanning 50+ languages and 250+ extensions, the engine comes equipped with smart defaults ready for immediate deployment.
31
+ Think of GitGalaxy as a highly calibrated telescope for codebase risk. Every assumption the system makes is abstracted into over 300 tunable variables. You can query active API nodes, isolate supply chain threats, or highlight functions exhibiting extreme cognitive load—all adjusted via custom shields to eliminate false-positive fatigue. Field-tested on over 1,000 repositories, the engine comes equipped with enterprise-grade defaults ready for immediate CI/CD deployment.
33
32
 
34
33
  **Core Codebase Mapping Technology**
35
34
  * Bypasses LLMs and rigid ASTs.
@@ -66,6 +65,7 @@ GitGalaxy is backed by an academic-grade thesis detailing the equations powering
66
65
  **Installation & Usage**
67
66
  * Python-based: `pip install gitgalaxy`
68
67
  * CLI execution
68
+ * CI/CD Integration: Native **[GitHub Action](github-action-read-me.md)** available for zero-trust DevSecOps pipelines.
69
69
  * Outputs forensic JSONs (optimized for AI-agent summary reports) and a native SQLite3 database for robust querying and storage.
70
70
 
71
71
  > **📖 Official Documentation:** Read the full technical specifications, architecture blueprints, and the Taxonomical Equivalence Map at **[squid-protocol.github.io/gitgalaxy](https://squid-protocol.github.io/gitgalaxy/)**.
@@ -93,8 +93,11 @@ galaxyscope /path/to/your/local/repo
93
93
 
94
94
  GitGalaxy can be integrated directly into your GitHub Actions pipeline for automated DevSecOps auditing, Zero-Trust SBOM generation, or Pre-Commit firewalls.
95
95
 
96
- Create a file in your repository at `.github/workflows/gitgalaxy-scan.yml`:
96
+ **🚀 [View the Full GitHub Action Integration Guide](github-action-read-me.md)**
97
97
 
98
+ Check out our comprehensive guide to set up the **"Golden Path" Pipeline** (Parallel Enforcement & Autonomous Reporting). It covers all available Sentinel tools, AI guardrails, and advanced configuration options like our hyper-sensitive `--paranoid` threat-hunting mode.
99
+
100
+ *Minimal Example (Running a single Sentinel):*
98
101
  ```yaml
99
102
  name: GitGalaxy Security Audit
100
103
 
@@ -112,7 +115,7 @@ jobs:
112
115
  - name: Run GitGalaxy Supply Chain Firewall
113
116
  uses: squid-protocol/gitgalaxy@main
114
117
  with:
115
- tool: 'supply-chain-firewall' # Options: galaxyscope, zero-trust-sbom, pii-leak-hunter, etc.
118
+ tool: 'supply-chain-firewall' # View the Integration Guide for the full tool directory
116
119
  target: '.'
117
120
  ```
118
121
 
@@ -139,7 +142,7 @@ A mathematical x-ray suite for sanitizing mainframe monoliths. It safely neutral
139
142
  * **Proven Metric:** The Graveyard Reaper engine extracted over 6,700 lines of dead execution blocks and orphaned variables from the standard IBM CICS benchmark app in seconds.
140
143
 
141
144
  ### [Software Supply Chain Security & Pre-Commit Firewalls](gitgalaxy/tools/supply_chain_security/)
142
- Extreme-velocity pre-commit firewalls. Instead of trusting manifest files, it scans physical internals to block steganography, sub-atomic XOR decryption loops, homoglyph typosquatting, and exposed cryptographic vaults before they ever enter your CI/CD pipeline.
145
+ Extreme-velocity pre-commit firewalls. Instead of trusting manifest files, it scans physical internals to block steganography, sub-atomic XOR decryption loops, homoglyph typosquatting, and exposed cryptographic vaults before they ever enter your CI/CD pipeline. **[Deploy directly via our GitHub Action](github-action-read-me.md).**
143
146
 
144
147
  ### [Zero-Trust SBOM Generation & Dependency Auditing](gitgalaxy/tools/compliance/)
145
148
  A Zero-Trust Software Bill of Materials (SBOM) generator. It refuses to blindly trust `package.json` or `requirements.txt` files, instead locating the physical dependencies on disk, mathematically verifying their entropy and linguistic identity, and generating strict CycloneDX 1.4 JSON reports.
@@ -16,7 +16,7 @@ When you trigger the `galaxyscope` command, the data flows through these five ph
16
16
  * **`/physics/` (The Math):** The heuristics engine. Contains the [Signal Processor](https://squid-protocol.github.io/gitgalaxy/02-09-signal-processing/) and [Neural Auditor](https://squid-protocol.github.io/gitgalaxy/02-19-neural-auditor/), which apply GitGalaxy mathematics to score O(N) complexity, topological blast radius, and state flux without using ASTs.
17
17
  * **`/recorders/` (The Exporters):** The translation layer. Converts the internal state maps into highly relational [SQLite Databases](https://squid-protocol.github.io/gitgalaxy/02-21-record-keeper/), AI-agent JSON tickets, and the final 3D WebGPU payload.
18
18
  * **`/security/` (The Sentinel):** The zero-trust validation layer. Contains the [Security Lens](https://squid-protocol.github.io/gitgalaxy/02-06-security-lens/) responsible for intercepting embedded malware, hardcoded secrets, and logic bombs on the fly.
19
- * **`/tools/` (The Spokes):** The enterprise automation layer. Contains specialized controllers for CI/CD pipelines—like the [Supply Chain Firewall](https://squid-protocol.github.io/gitgalaxy/04-03-supply-chain-firewall/) and [PII Leak Hunter](https://squid-protocol.github.io/gitgalaxy/04-06-pii-leak-hunter/)—that consume the core engine's telemetry.
19
+ * **`/tools/` (The Spokes):** The enterprise automation layer. Contains specialized controllers for CI/CD pipelines—like the [Supply Chain Firewall](https://squid-protocol.github.io/gitgalaxy/04-03-supply-chain-firewall/) and [PII Leak Hunter](https://squid-protocol.github.io/gitgalaxy/04-06-pii-leak-hunter/)—that consume the core engine's telemetry. **These specialized tools power our official [Zero-Trust DevSecOps GitHub Action](../github-action-read-me.md).**
20
20
 
21
21
  ---
22
22
 
@@ -74,4 +74,4 @@ To fully understand how GalaxyScope processes data, maps files, and applies risk
74
74
  * 📖 **[GalaxyScope CLI Reference](https://squid-protocol.github.io/gitgalaxy/01-02-galaxyscope-cli-reference/)** (Flags, outputs, and behaviors)
75
75
  * 📖 **[The Data Pipeline Overview](https://squid-protocol.github.io/gitgalaxy/02-01-pipeline-overview/)** (Step-by-step breakdown of the runtime)
76
76
  * 📖 **[Risk Exposures & Methodology](https://squid-protocol.github.io/gitgalaxy/08-01-methodology/)** (The math behind the heuristics)
77
- * 🪐 **[Return to the Main GitGalaxy Hub](https://github.com/squid-protocol/gitgalaxy)**
77
+ * 🪐 **[Return to the Main GitGalaxy Hub](https://github.com/squid-protocol/gitgalaxy)**
@@ -8,6 +8,7 @@
8
8
  # of this project, or at https://polyformproject.org/licenses/noncommercial/1.0.0/
9
9
  # ==============================================================================
10
10
  import re
11
+ import os
11
12
  import json
12
13
  import logging
13
14
  import fnmatch
@@ -68,6 +69,9 @@ class GuideStarLens:
68
69
  # Pattern Prior Map for .gitattributes (e.g., *.h)
69
70
  self.pattern_priors: Dict[str, Dict[str, Any]] = {}
70
71
 
72
+ # Spatial Documentation Map: Dict[directory_path, shield_strength_float]
73
+ self.doc_umbrellas: Dict[str, float] = {}
74
+
71
75
  self.logger.debug(f"GuideStar Lens Online | Sector: {self.root.name}")
72
76
 
73
77
  def align_telescope(self):
@@ -83,8 +87,11 @@ class GuideStarLens:
83
87
  # 3. The Evasion Scout (.gitignore)
84
88
  self._survey_gitignore()
85
89
 
90
+ # 4. The Knowledge Scout (Documentation Umbrellas)
91
+ self._survey_knowledge_anchors()
92
+
86
93
  self.logger.info(
87
- f"GuideStar: Alignment complete. Cached {len(self.priors)} intent priors and {len(self.pattern_priors)} pattern rules."
94
+ f"GuideStar: Alignment complete. Cached {len(self.priors)} intent priors, {len(self.pattern_priors)} pattern rules, and {len(self.doc_umbrellas)} documentation shields."
88
95
  )
89
96
 
90
97
  def get_intent_status(self, path: Union[str, Path]) -> Tuple[bool, Dict[str, Any]]:
@@ -425,3 +432,63 @@ class GuideStarLens:
425
432
 
426
433
  except Exception as e:
427
434
  self.logger.debug(f"GuideStar: Evasion inspection failed for .gitignore: {e}")
435
+
436
+ # ==============================================================================
437
+ # KNOWLEDGE ANCHORS (The Documentation Scout)
438
+ # ==============================================================================
439
+
440
+ def _survey_knowledge_anchors(self):
441
+ """
442
+ Scans the repository for high-value architectural literature.
443
+ Calculates the physical mass of the documentation to project a
444
+ defensive umbrella shield over the surrounding directory.
445
+ """
446
+ anchor_patterns = {
447
+ "README.md",
448
+ "README.txt",
449
+ "README.rst",
450
+ "ARCHITECTURE.md",
451
+ "DESIGN.md",
452
+ "SPEC.md",
453
+ "swagger.json",
454
+ "openapi.yaml",
455
+ "openapi.json",
456
+ "CONTRIBUTING.md",
457
+ "USAGE.md",
458
+ }
459
+
460
+ for root_dir, dirs, files in os.walk(self.root):
461
+ dir_path = Path(root_dir)
462
+
463
+ # Skip known black holes to avoid wasting I/O
464
+ if any(part in self._gs_config.get("BLACK_HOLES", set()) for part in dir_path.parts):
465
+ continue
466
+
467
+ local_shield_mass = 0
468
+
469
+ for file in files:
470
+ if file in anchor_patterns or file.lower().endswith(".md"):
471
+ file_path = dir_path / file
472
+ try:
473
+ # Fetch the physical byte size of the documentation
474
+ size_bytes = file_path.stat().st_size
475
+
476
+ # Ignore stubs (e.g., "# Project Title" and nothing else)
477
+ if size_bytes > 150:
478
+ local_shield_mass += size_bytes
479
+ except OSError:
480
+ pass
481
+
482
+ if local_shield_mass > 0:
483
+ # Calculate Shield Strength:
484
+ # 3000+ bytes of documentation provides a 100% (1.0) shield for this folder.
485
+ shield_strength = min(local_shield_mass / 3000.0, 1.0)
486
+
487
+ rel_dir = str(dir_path.relative_to(self.root)).replace("\\", "/")
488
+ if rel_dir == ".":
489
+ rel_dir = "__root__"
490
+
491
+ self.doc_umbrellas[rel_dir] = round(shield_strength, 3)
492
+ self.logger.debug(
493
+ f"GuideStar: Projected {shield_strength*100:.1f}% Documentation Shield over '{rel_dir}'"
494
+ )
@@ -396,6 +396,15 @@ def _process_file_worker(rel_path: str) -> Dict[str, Any]:
396
396
  if is_file_profiling:
397
397
  phase_times["5_Logic_Splicer"] = time.perf_counter() - t_splicer
398
398
 
399
+ # ---> INJECT THE KNOWLEDGE SHIELD <---
400
+ dir_path = str(Path(rel_path).parent).replace("\\", "/")
401
+ if dir_path == ".":
402
+ dir_path = "__root__"
403
+
404
+ if "metadata" not in logic_data:
405
+ logic_data["metadata"] = {}
406
+ logic_data["metadata"]["doc_umbrella"] = guidestar.doc_umbrellas.get(dir_path, 0.0)
407
+
399
408
  logger.debug(f"[WORKER-TRACE] <<< EXITING SPLICER: {rel_path}")
400
409
 
401
410
  # --- Phase 5.5: Security Lens (Passive Observers) ---
@@ -1433,6 +1442,45 @@ class Orchestrator:
1433
1442
  self.used_tokens.update(meta.get("named_tokens", []))
1434
1443
  # ==============================================================
1435
1444
 
1445
+ # ==============================================================
1446
+ # ---> NEW: CALCULATE INSTRUCTIONAL DENSITY MULTIPLIERS <---
1447
+ # Aggregate markdown heuristics to upgrade the doc_umbrella shields
1448
+ # ==============================================================
1449
+ instructional_multipliers = {}
1450
+ for rel_path, meta in self.cryolink.items():
1451
+ if meta.get("lang_id") == "markdown":
1452
+ folder = str(Path(rel_path).parent).replace("\\", "/")
1453
+ if folder == ".":
1454
+ folder = "__root__"
1455
+
1456
+ eq = meta.get("equations", {})
1457
+
1458
+ # Instructional Mass = Diagrams (10x) + Code Blocks (5x) + Headers (1x) + Links (0.5x)
1459
+ instructional_mass = (
1460
+ (eq.get("lit_diagrams", 0) * 10.0)
1461
+ + (eq.get("lit_code_blocks", 0) * 5.0)
1462
+ + (eq.get("lit_headers", 0) * 1.0)
1463
+ + (eq.get("lit_links", 0) * 0.5)
1464
+ )
1465
+
1466
+ # Base Multiplier is 1.0. High-quality docs can double the shield (2.0)
1467
+ multiplier = 1.0 + min(instructional_mass / 50.0, 1.0)
1468
+
1469
+ if folder not in instructional_multipliers or multiplier > instructional_multipliers.get(folder, 0.0):
1470
+ instructional_multipliers[folder] = multiplier
1471
+
1472
+ # Apply the multiplier to the existing doc_umbrellas
1473
+ for rel_path, meta in self.cryolink.items():
1474
+ folder = str(Path(rel_path).parent).replace("\\", "/")
1475
+ if folder == ".":
1476
+ folder = "__root__"
1477
+
1478
+ if "metadata" in meta and "doc_umbrella" in meta["metadata"]:
1479
+ base_shield = meta["metadata"]["doc_umbrella"]
1480
+ mult = instructional_multipliers.get(folder, 1.0)
1481
+ meta["metadata"]["doc_umbrella"] = min(base_shield * mult, 1.0)
1482
+ # ==============================================================
1483
+
1436
1484
  for rel_path, meta in self.cryolink.items():
1437
1485
  loc = meta.get("coding_loc", 0)
1438
1486
  total_loc += loc
@@ -683,7 +683,21 @@ class SignalProcessor:
683
683
  popularity=popularity,
684
684
  )
685
685
 
686
- doc_score = self._calc_documentation(loc, doc_lines, equations, fc, irc, mp_map.get("doc", 1.0), functions)
686
+ # Calculate Silo Risk early for the Documentation N-Dimensional Math
687
+ silo_exposure = self._calculate_silo_risk(meta.get("authors", {}))
688
+
689
+ doc_score = self._calc_documentation(
690
+ loc,
691
+ doc_lines,
692
+ equations,
693
+ fc,
694
+ irc,
695
+ mp_map.get("doc", 1.0),
696
+ functions,
697
+ doc_umbrella=ghost_meta.get("doc_umbrella", 0.0),
698
+ popularity=popularity,
699
+ silo_exposure=silo_exposure,
700
+ )
687
701
  spec_score = self._calc_spec_alignment(equations, mp_map.get("spec", 1.0))
688
702
 
689
703
  bureaucracy_dampener = min(loc / 15.0, 1.0)
@@ -1481,35 +1495,60 @@ class SignalProcessor:
1481
1495
  irc: int,
1482
1496
  mp: float,
1483
1497
  functions: List[Dict[str, Any]] = None,
1498
+ doc_umbrella: float = 0.0,
1499
+ popularity: int = 0,
1500
+ silo_exposure: float = 0.0,
1484
1501
  ) -> float:
1485
1502
  t = self.risk_tuning.get("documentation", {})
1486
- weighted_points = (
1503
+
1504
+ # 1. THE DEFENSE (The Knowledge Shield)
1505
+ # GuideStar Umbrella projection: 1.0 shield = 50 lines of virtual documentation
1506
+ umbrella_defense = doc_umbrella * 50.0
1507
+
1508
+ defense_hits = (
1487
1509
  (eq.get("doc", 0) * t.get("doc_weight", 1.0))
1488
1510
  + (eq.get("ownership", 0) * t.get("ownership_weight", 0.5))
1489
1511
  + (doc_loc * t.get("doc_loc_weight", 0.33))
1490
- )
1512
+ + umbrella_defense
1513
+ ) * fc
1514
+
1515
+ # 2. THE RISK (Kinetic Blindness)
1516
+ kinetic_blindness = 0.0
1517
+ api_exposure = eq.get("api", 0) * 2.0
1491
1518
 
1492
- # ---> THE BLIND COMPLEXITY PENALTY <---
1493
- # If the file contains incredibly heavy logic blocks or bad Big-O
1494
- # but the specific functions lack docstrings, the baseline coverage is a lie.
1495
- blind_penalty = 0.0
1496
1519
  if functions:
1497
1520
  for func in functions:
1498
- if (func.get("impact", 0) > 50 or func.get("big_o_depth", 1) >= 3) and not func.get("docstring"):
1499
- blind_penalty += 15.0 # Flat 15% risk penalty per undocumented God Function
1521
+ impact = func.get("impact", 0.0)
1522
+ big_o = func.get("big_o_depth", 1)
1523
+
1524
+ # If a load-bearing or deeply nested block lacks a semantic tether
1525
+ if (impact > 50.0 or big_o >= 3) and not func.get("docstring"):
1526
+ kinetic_blindness += 5.0 + (math.log1p(impact) * (big_o * 0.5))
1527
+
1528
+ # Add Implicit Risk Correction (Opacity Tax) to the risk
1529
+ risk_hits = kinetic_blindness + api_exposure + irc
1530
+
1531
+ # 3. UNIVERSAL DENSITY EQUATION
1532
+ net_exposure = max(0.0, risk_hits - (defense_hits / 2.0))
1533
+ density = (net_exposure / max(loc, 1)) * 100.0
1534
+
1535
+ # 4. THE MULTIPLIERS (Blast Radius & Bus Factor)
1536
+ # Undocumented code is exponentially more dangerous if it is highly
1537
+ # integrated (popularity) or siloed to a single developer.
1538
+ network_multiplier = 1.0 + (popularity / 10.0)
1539
+ silo_multiplier = 1.0 + (silo_exposure / 200.0)
1500
1540
 
1501
- density = (weighted_points / max(loc, 1)) * 100.0
1541
+ final_multiplier = network_multiplier * silo_multiplier * mp
1502
1542
 
1503
- if loc <= 2 and doc_loc == 0:
1504
- return 0
1543
+ threshold = t.get("threshold_base", 10.0)
1505
1544
 
1506
- threshold = (t.get("threshold_base", 10.0) + irc) * mp
1507
1545
  try:
1508
- raw_risk = 100.0 / (1.0 + math.exp(t.get("sigmoid_slope", 0.2) * (density - threshold)))
1546
+ # We use a negative slope because high density = high risk exposure
1547
+ raw_risk = 100.0 / (1.0 + math.exp(-t.get("sigmoid_slope", 0.2) * (density - threshold)))
1509
1548
  except OverflowError:
1510
- raw_risk = 0.0 if density > threshold else 100.0
1549
+ raw_risk = 100.0 if density > threshold else 0.0
1511
1550
 
1512
- return min((raw_risk * (2.0 - fc)) + blind_penalty, 100.0)
1551
+ return min(raw_risk * final_multiplier, 100.0)
1513
1552
 
1514
1553
  def _calc_verification(
1515
1554
  self,
@@ -94,6 +94,10 @@ class RecordKeeper:
94
94
  "telemetry": "def_telemetry",
95
95
  "ownership": "def_ownership",
96
96
  "spec_exposure": "def_spec_exposure",
97
+ "lit_code_blocks": "lit_code_blocks",
98
+ "lit_diagrams": "lit_diagrams",
99
+ "lit_headers": "lit_headers",
100
+ "lit_links": "lit_links",
97
101
  "sec_private_info": "threat_private_info",
98
102
  "sec_tainted_injection": "threat_tainted_injection",
99
103
  "sec_heat_triggers": "threat_obfuscated",
@@ -9,26 +9,26 @@ blinker==1.9.0
9
9
  build==1.4.3
10
10
  certifi==2026.2.25
11
11
  cffi==2.0.0
12
- charset-normalizer==3.4.6
12
+ charset-normalizer==3.4.7
13
13
  click==8.3.1
14
14
  colorama==0.4.6
15
15
  contourpy==1.3.3
16
16
  coverage==7.14.0
17
- cryptography==46.0.5
17
+ cryptography==46.0.7
18
18
  cycler==0.12.1
19
19
  decorator==5.2.1
20
20
  defusedxml==0.7.1
21
21
  docopt==0.6.2
22
- docutils==0.22.4
22
+ docutils==0.23
23
23
  executing==2.2.1
24
24
  fastjsonschema==2.21.2
25
25
  flake8==7.3.0
26
- Flask==3.1.2
26
+ Flask==3.1.3
27
27
  fonttools==4.62.1
28
28
  ghp-import==2.1.0
29
29
  -e git+ssh://git@github.com/squid-protocol/gitgalaxy.git@feca2fd424d74b0ff826be04aeab72b7cee350eb#egg=gitgalaxy
30
30
  id==1.6.1
31
- idna==3.11
31
+ idna==3.15
32
32
  iniconfig==2.3.0
33
33
  ipython==8.12.3
34
34
  itsdangerous==2.2.0
@@ -55,7 +55,7 @@ matplotlib-inline==0.2.1
55
55
  mccabe==0.7.0
56
56
  mdurl==0.1.2
57
57
  mergedeep==1.3.4
58
- mistune==3.2.0
58
+ mistune==3.2.1
59
59
  mkdocs==1.6.1
60
60
  mkdocs-get-deps==0.2.2
61
61
  mkdocs-material==9.7.6
@@ -63,7 +63,7 @@ mkdocs-material-extensions==1.3.1
63
63
  more-itertools==10.8.0
64
64
  narwhals==2.18.1
65
65
  nbclient==0.10.4
66
- nbconvert==7.17.0
66
+ nbconvert==7.17.1
67
67
  nbformat==5.10.4
68
68
  networkx==3.6.1
69
69
  nh3==0.3.3
@@ -71,15 +71,15 @@ numba==0.65.0
71
71
  numpy==2.4.3
72
72
  nvidia-nccl-cu12==2.29.7
73
73
  opencv-python==4.13.0.92
74
- packaging==26.0
74
+ packaging==26.2
75
75
  paginate==0.5.7
76
76
  pandas==3.0.1
77
77
  pandocfilters==1.5.1
78
- parso==0.8.6
78
+ parso==0.8.7
79
79
  pathspec==1.0.4
80
80
  pexpect==4.9.0
81
81
  pickleshare==0.7.5
82
- pillow==12.1.1
82
+ pillow==12.2.0
83
83
  pipreqs==0.5.0
84
84
  platformdirs==4.9.4
85
85
  plotly==6.6.0
@@ -92,8 +92,8 @@ pycodestyle==2.14.0
92
92
  pycparser==3.0
93
93
  pydeps==3.0.2
94
94
  pyflakes==3.4.0
95
- Pygments==2.19.2
96
- pymdown-extensions==10.21
95
+ Pygments==2.20.0
96
+ pymdown-extensions==10.21.3
97
97
  pynndescent==0.6.0
98
98
  pypandoc==1.17
99
99
  pyparsing==3.3.2
@@ -108,7 +108,7 @@ pyzmq==27.1.0
108
108
  readme_renderer==44.0
109
109
  referencing==0.37.0
110
110
  regex==2026.4.4
111
- requests==2.32.5
111
+ requests==2.33.0
112
112
  requests-toolbelt==1.0.0
113
113
  rfc3986==2.0.0
114
114
  rich==14.3.3
@@ -132,11 +132,11 @@ traitlets==5.14.3
132
132
  twine==6.2.0
133
133
  typing_extensions==4.15.0
134
134
  umap-learn==0.5.11
135
- urllib3==2.6.3
135
+ urllib3==2.7.0
136
136
  watchdog==6.0.0
137
137
  wcwidth==0.6.0
138
138
  webencodings==0.5.1
139
- Werkzeug==3.1.5
139
+ Werkzeug==3.1.8
140
140
  wheel==0.46.3
141
141
  xgboost==3.2.0
142
142
  yarg==0.1.9