modwire 8.0.0__tar.gz → 9.1.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 (449) hide show
  1. {modwire-8.0.0 → modwire-9.1.0}/.dev/modwire.egg-info/SOURCES.txt +49 -85
  2. {modwire-8.0.0 → modwire-9.1.0}/.github/workflows/ci.yml +6 -15
  3. {modwire-8.0.0 → modwire-9.1.0}/MANIFEST.in +0 -2
  4. modwire-9.1.0/Makefile +58 -0
  5. modwire-9.1.0/PKG-INFO +109 -0
  6. modwire-9.1.0/README.md +81 -0
  7. modwire-9.1.0/docs/target-language-ownership.md +34 -0
  8. {modwire-8.0.0 → modwire-9.1.0}/pyproject.toml +5 -1
  9. modwire-9.1.0/scripts/check_extractors.py +39 -0
  10. {modwire-8.0.0 → modwire-9.1.0}/scripts/verify_consumer.py +8 -2
  11. modwire-9.1.0/src/modwire/application.py +144 -0
  12. modwire-9.1.0/src/modwire/cli/cache/application.py +183 -0
  13. modwire-9.1.0/src/modwire/cli/cache/domain.py +27 -0
  14. modwire-9.1.0/src/modwire/cli/cache/models/cache_entry.py +8 -0
  15. modwire-9.1.0/src/modwire/cli/cache/models/cache_key.py +11 -0
  16. modwire-9.1.0/src/modwire/cli/cache/models/cache_options.py +25 -0
  17. modwire-9.1.0/src/modwire/cli/cache/models/extraction_snapshot.py +8 -0
  18. modwire-9.1.0/src/modwire/cli/cache/models/source_entry.py +9 -0
  19. modwire-9.1.0/src/modwire/cli/cache/models/source_inventory.py +9 -0
  20. modwire-9.1.0/src/modwire/cli/cache/services/cache_codec.py +40 -0
  21. modwire-9.1.0/src/modwire/cli/cache/services/cache_identity.py +106 -0
  22. modwire-9.1.0/src/modwire/cli/cache/services/filesystem_cache_storage.py +147 -0
  23. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/documentation/application.py +2 -2
  24. modwire-9.1.0/src/modwire/cli/documentation/services/documentation_generator.py +37 -0
  25. modwire-9.1.0/src/modwire/cli/facade.py +140 -0
  26. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/application.py +5 -4
  27. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/domain.py +16 -2
  28. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/models/command_request.py +5 -1
  29. modwire-9.1.0/src/modwire/cli/pipeline/models/scan_policy.py +8 -0
  30. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/batch_source_reader.py +94 -62
  31. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/command_line.py +11 -1
  32. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/dependency/services/import_resolver.py +9 -27
  33. modwire-9.1.0/src/modwire/extraction/dependency/services/suffix_index.py +30 -0
  34. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/models/extraction_request.py +0 -1
  35. modwire-9.1.0/src/modwire/extraction/extractors/models/extractor_resource.py +6 -0
  36. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/models/extractor_runtime.py +2 -1
  37. modwire-9.1.0/src/modwire/extraction/extractors/resources/php/build.py +27 -0
  38. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/php/script.php +0 -0
  39. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/php/script.src.php +2 -2
  40. modwire-9.1.0/src/modwire/extraction/extractors/resources/typescript/build.py +23 -0
  41. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/script.js +2 -2
  42. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/script.ts +2 -2
  43. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/services/php_extractor.py +6 -1
  44. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/services/python_extractor.py +6 -1
  45. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/services/python_syntax_parser.py +7 -7
  46. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/services/type_script_extractor.py +2 -1
  47. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/code_map.py +2 -1
  48. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_extraction.py +1 -0
  49. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/types.py +2 -2
  50. {modwire-8.0.0 → modwire-9.1.0}/tests/application/base_test.py +3 -1
  51. {modwire-8.0.0 → modwire-9.1.0}/tests/application/test_01_attacks.py +1 -1
  52. {modwire-8.0.0 → modwire-9.1.0}/tests/application/test_06_happy_path.py +1 -1
  53. modwire-9.1.0/tests/application/test_07_cache.py +143 -0
  54. modwire-9.1.0/tests/architecture/base_test.py +13 -0
  55. modwire-9.1.0/tests/architecture/boundaries/base_test.py +38 -0
  56. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/boundaries/test_01_attacks.py +5 -5
  57. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/boundaries/test_02_invariants.py +6 -6
  58. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/boundaries/test_03_public_api.py +2 -2
  59. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/boundaries/test_04_paths.py +5 -5
  60. modwire-9.1.0/tests/architecture/insights/base_test.py +12 -0
  61. modwire-9.1.0/tests/architecture/insights/test_02_invariants.py +79 -0
  62. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/map/test_02_patterns.py +20 -9
  63. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/report/test_02_invariants.py +5 -3
  64. modwire-9.1.0/tests/architecture/shape/base_test.py +7 -0
  65. modwire-9.1.0/tests/architecture/shape/test_01_limits.py +126 -0
  66. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/shape/test_02_invariants.py +9 -5
  67. modwire-9.1.0/tests/cli/documentation/test_02_invariants.py +19 -0
  68. modwire-9.1.0/tests/cli/pipeline/base_test.py +24 -0
  69. modwire-9.1.0/tests/cli/pipeline/test_02_invariants.py +115 -0
  70. {modwire-8.0.0 → modwire-9.1.0}/tests/extraction/base_test.py +1 -1
  71. modwire-9.1.0/tests/extraction/big_projects/project.py +19 -0
  72. modwire-9.1.0/tests/extraction/big_projects/projects.json +32 -0
  73. modwire-9.1.0/tests/extraction/big_projects/resolution_results.json +50 -0
  74. modwire-9.1.0/tests/extraction/big_projects/results.json +20 -0
  75. modwire-9.1.0/tests/extraction/big_projects/run.py +210 -0
  76. modwire-9.1.0/tests/extraction/cache_benchmark/run.py +155 -0
  77. modwire-9.1.0/tests/extraction/dependency/__init__.py +0 -0
  78. modwire-9.1.0/tests/extraction/dependency/test_02_invariants.py +107 -0
  79. modwire-9.1.0/tests/extraction/extractors/__init__.py +0 -0
  80. {modwire-8.0.0 → modwire-9.1.0}/tests/extraction/extractors/test_03_native_symbols.py +5 -5
  81. modwire-9.1.0/tests/extraction/scan_benchmark/__init__.py +0 -0
  82. modwire-9.1.0/tests/extraction/scan_benchmark/prepare.py +68 -0
  83. modwire-9.1.0/tests/extraction/scan_benchmark/results.json +46 -0
  84. modwire-9.1.0/tests/extraction/scan_benchmark/run.py +93 -0
  85. modwire-9.1.0/tests/shared/__init__.py +0 -0
  86. modwire-9.1.0/tests/shared/code/__init__.py +0 -0
  87. modwire-9.1.0/tests/shared/code/test_02_invariants.py +67 -0
  88. modwire-9.1.0/tests/support/__init__.py +0 -0
  89. modwire-9.1.0/tests/support/code_map.py +163 -0
  90. {modwire-8.0.0 → modwire-9.1.0}/tests/support/service_test.py +7 -1
  91. modwire-8.0.0/.modwire/architecture.yaml +0 -122
  92. modwire-8.0.0/Makefile +0 -65
  93. modwire-8.0.0/PKG-INFO +0 -57
  94. modwire-8.0.0/README.md +0 -29
  95. modwire-8.0.0/docs/legacy/architecture/.github/workflows/ci.yml +0 -15
  96. modwire-8.0.0/docs/legacy/architecture/.github/workflows/human-approval.yml +0 -133
  97. modwire-8.0.0/docs/legacy/architecture/.github/workflows/issue-metadata-check.yml +0 -17
  98. modwire-8.0.0/docs/legacy/architecture/.github/workflows/issue-metadata.yml +0 -87
  99. modwire-8.0.0/docs/legacy/architecture/.github/workflows/python-package.yml +0 -84
  100. modwire-8.0.0/docs/legacy/architecture/.github/workflows/python-release-assets.yml +0 -36
  101. modwire-8.0.0/docs/legacy/architecture/.github/workflows/python-release-build.yml +0 -86
  102. modwire-8.0.0/docs/legacy/architecture/.github/workflows/release.yml +0 -47
  103. modwire-8.0.0/docs/legacy/architecture/.modwire/boundaries.yaml +0 -44
  104. modwire-8.0.0/docs/legacy/architecture/.modwire/shape.yaml +0 -9
  105. modwire-8.0.0/docs/legacy/architecture/CHANGELOG.md +0 -140
  106. modwire-8.0.0/docs/legacy/architecture/CONTRIBUTING.md +0 -38
  107. modwire-8.0.0/docs/legacy/architecture/LICENSE +0 -21
  108. modwire-8.0.0/docs/legacy/architecture/MANIFEST.in +0 -2
  109. modwire-8.0.0/docs/legacy/architecture/Makefile +0 -7
  110. modwire-8.0.0/docs/legacy/architecture/README.md +0 -105
  111. modwire-8.0.0/docs/legacy/architecture/docs/migration-5.md +0 -52
  112. modwire-8.0.0/docs/legacy/architecture/docs/migration-6.md +0 -32
  113. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/golden/cli.yaml +0 -44
  114. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/golden/library.yaml +0 -40
  115. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/repository-contract-v1.yaml +0 -147
  116. modwire-8.0.0/docs/legacy/architecture/docs/wiki/Development-checks.md +0 -25
  117. modwire-8.0.0/docs/legacy/architecture/docs/wiki/Home.md +0 -27
  118. modwire-8.0.0/docs/legacy/architecture/docs/wiki/Reporting-bugs.md +0 -24
  119. modwire-8.0.0/docs/legacy/architecture/docs/wiki/Requesting-features.md +0 -26
  120. modwire-8.0.0/docs/legacy/architecture/pyproject.toml +0 -88
  121. modwire-8.0.0/docs/legacy/cli/.github/workflows/ci.yml +0 -17
  122. modwire-8.0.0/docs/legacy/cli/.github/workflows/release.yml +0 -40
  123. modwire-8.0.0/docs/legacy/cli/.modwire/INDEX.md +0 -10
  124. modwire-8.0.0/docs/legacy/cli/.modwire/architecture.yaml +0 -42
  125. modwire-8.0.0/docs/legacy/cli/.modwire/docs/PROJECT.md +0 -16
  126. modwire-8.0.0/docs/legacy/cli/LICENSE +0 -21
  127. modwire-8.0.0/docs/legacy/cli/Makefile +0 -14
  128. modwire-8.0.0/docs/legacy/cli/README.md +0 -73
  129. modwire-8.0.0/docs/legacy/cli/pyproject.toml +0 -85
  130. modwire-8.0.0/docs/legacy/extraction/.github/workflows/ci.yml +0 -50
  131. modwire-8.0.0/docs/legacy/extraction/.github/workflows/human-approval.yml +0 -133
  132. modwire-8.0.0/docs/legacy/extraction/.github/workflows/release.yml +0 -40
  133. modwire-8.0.0/docs/legacy/extraction/CHANGELOG.md +0 -68
  134. modwire-8.0.0/docs/legacy/extraction/CONTRIBUTING.md +0 -85
  135. modwire-8.0.0/docs/legacy/extraction/LICENSE +0 -21
  136. modwire-8.0.0/docs/legacy/extraction/MANIFEST.in +0 -6
  137. modwire-8.0.0/docs/legacy/extraction/Makefile +0 -4
  138. modwire-8.0.0/docs/legacy/extraction/README.md +0 -73
  139. modwire-8.0.0/docs/legacy/extraction/RELEASE_CHECKLIST.md +0 -40
  140. modwire-8.0.0/docs/legacy/extraction/docs/migration-2.md +0 -59
  141. modwire-8.0.0/docs/legacy/extraction/pyproject.toml +0 -94
  142. modwire-8.0.0/docs/planning/baselines.json +0 -35
  143. modwire-8.0.0/docs/planning/diagrams/01-ownership.md +0 -32
  144. modwire-8.0.0/docs/planning/diagrams/01-ownership.snapshot.json +0 -201
  145. modwire-8.0.0/docs/planning/diagrams/02-issue-dependencies.md +0 -45
  146. modwire-8.0.0/docs/planning/diagrams/02-issue-dependencies.snapshot.json +0 -336
  147. modwire-8.0.0/docs/planning/diagrams/03-release-gates.md +0 -39
  148. modwire-8.0.0/docs/planning/diagrams/03-release-gates.snapshot.json +0 -280
  149. modwire-8.0.0/docs/planning/diagrams/README.md +0 -11
  150. modwire-8.0.0/docs/planning/diagrams/manifest.json +0 -28
  151. modwire-8.0.0/docs/planning/issues.json +0 -107
  152. modwire-8.0.0/docs/planning/namespace-migration.md +0 -17
  153. modwire-8.0.0/docs/planning/preflight.md +0 -64
  154. modwire-8.0.0/docs/planning/removed-modules.json +0 -16
  155. modwire-8.0.0/docs/planning/report-model-migration.json +0 -11
  156. modwire-8.0.0/docs/planning/source-imports.json +0 -1070
  157. modwire-8.0.0/src/modwire/application.py +0 -77
  158. modwire-8.0.0/src/modwire/cli/documentation/models/defaults.py +0 -6
  159. modwire-8.0.0/src/modwire/cli/documentation/services/documentation_generator.py +0 -43
  160. modwire-8.0.0/src/modwire/cli/facade.py +0 -87
  161. modwire-8.0.0/src/modwire/cli/resources/templates/AGENTS.md +0 -1
  162. modwire-8.0.0/src/modwire/cli/resources/templates/ARCHITECTURE.md +0 -49
  163. modwire-8.0.0/src/modwire/cli/resources/templates/MODWIRE.md +0 -5
  164. modwire-8.0.0/src/modwire/cli/resources/templates/RULES.md +0 -6
  165. modwire-8.0.0/src/modwire/cli/resources/templates/TESTING.md +0 -7
  166. modwire-8.0.0/src/modwire/cli/resources/templates/WORKFLOW.md +0 -8
  167. modwire-8.0.0/src/modwire/shared/values/__init__.py +0 -1
  168. modwire-8.0.0/tests/architecture/base_test.py +0 -22
  169. modwire-8.0.0/tests/architecture/boundaries/base_test.py +0 -8
  170. modwire-8.0.0/tests/architecture/insights/base_test.py +0 -7
  171. modwire-8.0.0/tests/architecture/insights/test_02_invariants.py +0 -64
  172. modwire-8.0.0/tests/architecture/shape/base_test.py +0 -6
  173. modwire-8.0.0/tests/architecture/shape/test_01_limits.py +0 -68
  174. modwire-8.0.0/tests/cli/documentation/test_02_invariants.py +0 -32
  175. modwire-8.0.0/tests/cli/pipeline/base_test.py +0 -14
  176. modwire-8.0.0/tests/cli/pipeline/test_02_invariants.py +0 -60
  177. modwire-8.0.0/tests/extraction/dependency/test_02_invariants.py +0 -41
  178. modwire-8.0.0/tests/shared/code/test_02_invariants.py +0 -52
  179. {modwire-8.0.0 → modwire-9.1.0}/.github/workflows/release.yml +0 -0
  180. {modwire-8.0.0 → modwire-9.1.0}/.gitignore +0 -0
  181. {modwire-8.0.0 → modwire-9.1.0}/AGENTS.md +0 -0
  182. {modwire-8.0.0 → modwire-9.1.0}/LICENSE +0 -0
  183. {modwire-8.0.0 → modwire-9.1.0}/scripts/generate_docs.py +0 -0
  184. {modwire-8.0.0 → modwire-9.1.0}/setup.cfg +0 -0
  185. {modwire-8.0.0 → modwire-9.1.0}/setup.py +0 -0
  186. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/__init__.py +0 -0
  187. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/__main__.py +0 -0
  188. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/__init__.py +0 -0
  189. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/__init__.py +0 -0
  190. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/application.py +0 -0
  191. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/domain.py +0 -0
  192. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/models/__init__.py +0 -0
  193. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/models/edge_rule_violation.py +0 -0
  194. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/models/flow_report.py +0 -0
  195. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/models/flow_violation.py +0 -0
  196. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/models/types.py +0 -0
  197. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/__init__.py +0 -0
  198. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/backward_flow_analyzer.py +0 -0
  199. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py +0 -0
  200. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/module_boundary_analyzer.py +0 -0
  201. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py +0 -0
  202. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py +0 -0
  203. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/__init__.py +0 -0
  204. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/application.py +0 -0
  205. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/__init__.py +0 -0
  206. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/architecture_config.py +0 -0
  207. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/boundaries_config.py +0 -0
  208. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/boundary_rule.py +0 -0
  209. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/configuration_value.py +0 -0
  210. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/flow_realm.py +0 -0
  211. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/flow_rules.py +0 -0
  212. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/shape_config.py +0 -0
  213. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/shape_realm.py +0 -0
  214. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/shape_rules.py +0 -0
  215. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/config/models/tag_rule.py +0 -0
  216. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/facade.py +0 -0
  217. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/__init__.py +0 -0
  218. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/application.py +0 -0
  219. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/domain.py +0 -0
  220. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/__init__.py +0 -0
  221. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/callable_report_entry.py +0 -0
  222. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/callables_report.py +0 -0
  223. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/clusters_report.py +0 -0
  224. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/clusters_report_item.py +0 -0
  225. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/coherence_report.py +0 -0
  226. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/exports_report.py +0 -0
  227. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/exports_report_item.py +0 -0
  228. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/hotspots_report.py +0 -0
  229. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/hotspots_report_item.py +0 -0
  230. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/models/insight_report.py +0 -0
  231. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/__init__.py +0 -0
  232. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/callables_reporter.py +0 -0
  233. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/clusters_reporter.py +0 -0
  234. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/coherence_reporter.py +0 -0
  235. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/exports_reporter.py +0 -0
  236. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/hotspots_reporter.py +0 -0
  237. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/insights/services/insight_report_field_map.py +0 -0
  238. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/__init__.py +0 -0
  239. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/application.py +0 -0
  240. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/domain.py +0 -0
  241. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/models/__init__.py +0 -0
  242. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/models/architecture_map.py +0 -0
  243. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/models/architecture_realm.py +0 -0
  244. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/models/tag_map.py +0 -0
  245. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/models/tag_match.py +0 -0
  246. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/services/__init__.py +0 -0
  247. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/services/architecture_map_loader.py +0 -0
  248. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/map/services/tag_matcher.py +0 -0
  249. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/__init__.py +0 -0
  250. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/application.py +0 -0
  251. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/domain.py +0 -0
  252. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/__init__.py +0 -0
  253. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/architecture_group.py +0 -0
  254. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/map_report.py +0 -0
  255. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_catalog.py +0 -0
  256. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_descriptor.py +0 -0
  257. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_item.py +0 -0
  258. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_metadata.py +0 -0
  259. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_node.py +0 -0
  260. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/models/report_section.py +0 -0
  261. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/services/__init__.py +0 -0
  262. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/report/services/map_report_collector.py +0 -0
  263. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/__init__.py +0 -0
  264. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/application.py +0 -0
  265. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/domain.py +0 -0
  266. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/models/__init__.py +0 -0
  267. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/models/shape_realm_architecture_map.py +0 -0
  268. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/models/shape_report.py +0 -0
  269. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/models/shape_violation.py +0 -0
  270. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/__init__.py +0 -0
  271. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/abstract_class_resolver.py +0 -0
  272. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/callable_resolver.py +0 -0
  273. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/class_resolver.py +0 -0
  274. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/file_resolver.py +0 -0
  275. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/import_resolver.py +0 -0
  276. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/property_resolver.py +0 -0
  277. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/signature_resolver.py +0 -0
  278. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/architecture/shape/services/symbol_resolver.py +0 -0
  279. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/autowiring.py +0 -0
  280. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/__init__.py +0 -0
  281. {modwire-8.0.0/src/modwire/cli/resources/models → modwire-9.1.0/src/modwire/cli/cache}/__init__.py +0 -0
  282. {modwire-8.0.0/src/modwire/extraction → modwire-9.1.0/src/modwire/cli/cache/models}/__init__.py +0 -0
  283. {modwire-8.0.0/src/modwire/shared → modwire-9.1.0/src/modwire/cli/cache/services}/__init__.py +0 -0
  284. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/documentation/__init__.py +0 -0
  285. {modwire-8.0.0/src/modwire/cli/documentation/models → modwire-9.1.0/src/modwire/cli/documentation/services}/__init__.py +0 -0
  286. {modwire-8.0.0/src/modwire/cli/documentation/services → modwire-9.1.0/src/modwire/cli/initialization}/__init__.py +0 -0
  287. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/initialization/application.py +0 -0
  288. {modwire-8.0.0/src/modwire/cli/initialization → modwire-9.1.0/src/modwire/cli/initialization/models}/__init__.py +0 -0
  289. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/initialization/models/initialization_result.py +0 -0
  290. {modwire-8.0.0/src/modwire/cli/initialization/models → modwire-9.1.0/src/modwire/cli/initialization/services}/__init__.py +0 -0
  291. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/initialization/services/initialization_service.py +0 -0
  292. {modwire-8.0.0/src/modwire/cli/initialization/services → modwire-9.1.0/src/modwire/cli/pipeline}/__init__.py +0 -0
  293. {modwire-8.0.0/src/modwire/cli/pipeline → modwire-9.1.0/src/modwire/cli/pipeline/models}/__init__.py +0 -0
  294. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/models/extractor_batch_input.py +0 -0
  295. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/models/extractor_command_input.py +0 -0
  296. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/models/extractor_source_input.py +0 -0
  297. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/models/report_pipeline_context.py +0 -0
  298. {modwire-8.0.0/src/modwire/cli/pipeline/models → modwire-9.1.0/src/modwire/cli/pipeline/services}/__init__.py +0 -0
  299. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/callables_insight.py +0 -0
  300. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/clusters_insight.py +0 -0
  301. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/coherence_insight.py +0 -0
  302. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/configuration_loader.py +0 -0
  303. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/extractor_command.py +0 -0
  304. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/flow_violations.py +0 -0
  305. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/hotspots_insight.py +0 -0
  306. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/map_tree.py +0 -0
  307. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/output_console.py +0 -0
  308. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/shape_violations.py +0 -0
  309. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/success.py +0 -0
  310. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/unknown_files_warning.py +0 -0
  311. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/pipeline/services/unused_exports_insight.py +0 -0
  312. {modwire-8.0.0/src/modwire/cli/pipeline/services → modwire-9.1.0/src/modwire/cli/resources}/__init__.py +0 -0
  313. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/resources/application.py +0 -0
  314. {modwire-8.0.0/src/modwire/shared/values → modwire-9.1.0/src/modwire/cli/resources}/models/__init__.py +0 -0
  315. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/resources/models/defaults.py +0 -0
  316. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/resources/models/init_asset.py +0 -0
  317. {modwire-8.0.0/docs/legacy/cli → modwire-9.1.0/src/modwire/cli/resources/templates}/AGENTS.md +0 -0
  318. {modwire-8.0.0/docs/legacy/cli/.modwire/docs → modwire-9.1.0/src/modwire/cli/resources/templates}/ARCHITECTURE.md +0 -0
  319. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/resources/templates/INDEX.md +0 -0
  320. {modwire-8.0.0/docs/legacy/cli/.modwire/docs → modwire-9.1.0/src/modwire/cli/resources/templates}/MODWIRE.md +0 -0
  321. {modwire-8.0.0/docs/legacy/cli/.modwire/docs → modwire-9.1.0/src/modwire/cli/resources/templates}/RULES.md +0 -0
  322. {modwire-8.0.0/docs/legacy/cli/.modwire/docs → modwire-9.1.0/src/modwire/cli/resources/templates}/TESTING.md +0 -0
  323. {modwire-8.0.0/docs/legacy/cli/.modwire/docs → modwire-9.1.0/src/modwire/cli/resources/templates}/WORKFLOW.md +0 -0
  324. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/cli/resources/templates/architecture.yaml +0 -0
  325. {modwire-8.0.0/tests → modwire-9.1.0/src/modwire/extraction}/__init__.py +0 -0
  326. {modwire-8.0.0/src/modwire/cli/resources → modwire-9.1.0/src/modwire/extraction/dependency}/__init__.py +0 -0
  327. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/dependency/application.py +0 -0
  328. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/dependency/domain.py +0 -0
  329. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/dependency/services}/__init__.py +0 -0
  330. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/dependency/services/graph_builder.py +0 -0
  331. {modwire-8.0.0/src/modwire/cli/resources/extractors/python → modwire-9.1.0/src/modwire/extraction/extractors}/__init__.py +0 -0
  332. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/application.py +0 -0
  333. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/domain.py +0 -0
  334. {modwire-8.0.0/src/modwire/extraction/dependency → modwire-9.1.0/src/modwire/extraction/extractors/models}/__init__.py +0 -0
  335. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/models/batch_config.py +0 -0
  336. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/models/python_call_context.py +0 -0
  337. {modwire-8.0.0/src/modwire/extraction/dependency/services → modwire-9.1.0/src/modwire/extraction/extractors/resources}/__init__.py +0 -0
  338. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/php/build.php +0 -0
  339. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/php/composer.json +0 -0
  340. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/php/composer.lock +0 -0
  341. {modwire-8.0.0/src/modwire/extraction/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources/python}/__init__.py +0 -0
  342. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/python/script.py +0 -0
  343. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/build.mjs +0 -0
  344. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/package-lock.json +0 -0
  345. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/package.json +0 -0
  346. {modwire-8.0.0/src/modwire/cli/resources/extractors → modwire-9.1.0/src/modwire/extraction/extractors/resources}/typescript/tsconfig.json +0 -0
  347. {modwire-8.0.0/src/modwire/extraction/extractors/models → modwire-9.1.0/src/modwire/extraction/extractors/services}/__init__.py +0 -0
  348. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/extractors/services/python_call_reader.py +0 -0
  349. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/extraction/facade.py +0 -0
  350. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/py.typed +0 -0
  351. {modwire-8.0.0/tests/application → modwire-9.1.0/src/modwire/shared}/__init__.py +0 -0
  352. {modwire-8.0.0/src/modwire/extraction/extractors/services → modwire-9.1.0/src/modwire/shared/code}/__init__.py +0 -0
  353. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/application.py +0 -0
  354. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/domain.py +0 -0
  355. {modwire-8.0.0/src/modwire/shared/code → modwire-9.1.0/src/modwire/shared/code/models}/__init__.py +0 -0
  356. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/code_package.py +0 -0
  357. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/dependency_edge_result.py +0 -0
  358. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/dependency_graph.py +0 -0
  359. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/dependency_node_result.py +0 -0
  360. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/duplicate_identity_error.py +0 -0
  361. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/edge.py +0 -0
  362. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/edge_resolution.py +0 -0
  363. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/identity.py +0 -0
  364. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/node.py +0 -0
  365. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/query_builder.py +0 -0
  366. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/query_types.py +0 -0
  367. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/queryable_code_map.py +0 -0
  368. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_abstract_class.py +0 -0
  369. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_call.py +0 -0
  370. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_callable.py +0 -0
  371. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_callable_symbol.py +0 -0
  372. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_class.py +0 -0
  373. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_class_method.py +0 -0
  374. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_class_property.py +0 -0
  375. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_export.py +0 -0
  376. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_file.py +0 -0
  377. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_file_result.py +0 -0
  378. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_function.py +0 -0
  379. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_import.py +0 -0
  380. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_imported_symbol.py +0 -0
  381. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_interface.py +0 -0
  382. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_item_result.py +0 -0
  383. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_parameter.py +0 -0
  384. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_signature.py +0 -0
  385. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_symbol.py +0 -0
  386. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_type.py +0 -0
  387. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/models/source_value.py +0 -0
  388. {modwire-8.0.0/src/modwire/shared/code/models → modwire-9.1.0/src/modwire/shared/code/services}/__init__.py +0 -0
  389. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/services/glob_path_matcher.py +0 -0
  390. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/code/services/identity_resolver.py +0 -0
  391. {modwire-8.0.0/src/modwire/shared/code/services → modwire-9.1.0/src/modwire/shared/values}/__init__.py +0 -0
  392. {modwire-8.0.0/tests/architecture → modwire-9.1.0/src/modwire/shared/values/models}/__init__.py +0 -0
  393. {modwire-8.0.0 → modwire-9.1.0}/src/modwire/shared/values/models/value_model.py +0 -0
  394. {modwire-8.0.0/tests/architecture/boundaries → modwire-9.1.0/tests}/__init__.py +0 -0
  395. {modwire-8.0.0/tests/architecture/config → modwire-9.1.0/tests/application}/__init__.py +0 -0
  396. {modwire-8.0.0/tests/architecture/insights → modwire-9.1.0/tests/architecture}/__init__.py +0 -0
  397. {modwire-8.0.0/tests/architecture/map → modwire-9.1.0/tests/architecture/boundaries}/__init__.py +0 -0
  398. {modwire-8.0.0/tests/architecture/report → modwire-9.1.0/tests/architecture/config}/__init__.py +0 -0
  399. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/config/test_01_attacks.py +0 -0
  400. {modwire-8.0.0 → modwire-9.1.0}/tests/architecture/config/test_02_invariants.py +0 -0
  401. {modwire-8.0.0/tests/architecture/shape → modwire-9.1.0/tests/architecture/insights}/__init__.py +0 -0
  402. {modwire-8.0.0/tests/cli → modwire-9.1.0/tests/architecture/map}/__init__.py +0 -0
  403. {modwire-8.0.0/tests/cli/documentation → modwire-9.1.0/tests/architecture/report}/__init__.py +0 -0
  404. {modwire-8.0.0/tests/cli/initialization → modwire-9.1.0/tests/architecture/shape}/__init__.py +0 -0
  405. {modwire-8.0.0/tests/cli/pipeline → modwire-9.1.0/tests/cli}/__init__.py +0 -0
  406. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/base_test.py +0 -0
  407. {modwire-8.0.0/tests/extraction → modwire-9.1.0/tests/cli/documentation}/__init__.py +0 -0
  408. {modwire-8.0.0/tests/extraction/dependency → modwire-9.1.0/tests/cli/initialization}/__init__.py +0 -0
  409. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/initialization/test_01_attacks.py +0 -0
  410. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/initialization/test_02_invariants.py +0 -0
  411. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/initialization/test_03_interruption.py +0 -0
  412. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/initialization/test_04_cleanup.py +0 -0
  413. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/initialization/test_05_recovery.py +0 -0
  414. {modwire-8.0.0/tests/extraction/extractors → modwire-9.1.0/tests/cli/pipeline}/__init__.py +0 -0
  415. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/pipeline/test_01_attacks.py +0 -0
  416. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/pipeline/test_03_interruption.py +0 -0
  417. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/pipeline/test_04_command_transport.py +0 -0
  418. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/pipeline/test_05_recovery.py +0 -0
  419. {modwire-8.0.0 → modwire-9.1.0}/tests/cli/pipeline/test_06_happy_path.py +0 -0
  420. {modwire-8.0.0 → modwire-9.1.0}/tests/conftest.py +0 -0
  421. {modwire-8.0.0/tests/shared → modwire-9.1.0/tests/extraction}/__init__.py +0 -0
  422. {modwire-8.0.0/tests/shared/code → modwire-9.1.0/tests/extraction/big_projects}/__init__.py +0 -0
  423. {modwire-8.0.0/tests/support → modwire-9.1.0/tests/extraction/cache_benchmark}/__init__.py +0 -0
  424. {modwire-8.0.0 → modwire-9.1.0}/tests/extraction/extractors/test_01_attacks.py +0 -0
  425. {modwire-8.0.0 → modwire-9.1.0}/tests/extraction/extractors/test_02_invariants.py +0 -0
  426. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/php/ignored/example_generated.php +0 -0
  427. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/php/src/example_application/example_actions/example_action.php +0 -0
  428. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/php/src/example_domain/example_model/example_record.php +0 -0
  429. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php +0 -0
  430. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php +0 -0
  431. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/python/ignored/example_generated.py +0 -0
  432. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/python/src/example_application/example_actions/example_action.py +0 -0
  433. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/python/src/example_domain/example_model/example_record.py +0 -0
  434. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py +0 -0
  435. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py +0 -0
  436. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/ignored/example_generated.ts +0 -0
  437. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts +0 -0
  438. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts +0 -0
  439. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx +0 -0
  440. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js +0 -0
  441. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts +0 -0
  442. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts +0 -0
  443. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts +0 -0
  444. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx +0 -0
  445. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/syntax/php/example_shapes.php +0 -0
  446. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/syntax/python/example_shapes.py +0 -0
  447. {modwire-8.0.0 → modwire-9.1.0}/tests/fixtures/syntax/typescript/example_shapes.ts +0 -0
  448. {modwire-8.0.0 → modwire-9.1.0}/tests/support/base_test.py +0 -0
  449. {modwire-8.0.0 → modwire-9.1.0}/uv.lock +0 -0
@@ -10,75 +10,8 @@ setup.py
10
10
  uv.lock
11
11
  .github/workflows/ci.yml
12
12
  .github/workflows/release.yml
13
- .modwire/architecture.yaml
14
- docs/legacy/architecture/CHANGELOG.md
15
- docs/legacy/architecture/CONTRIBUTING.md
16
- docs/legacy/architecture/LICENSE
17
- docs/legacy/architecture/MANIFEST.in
18
- docs/legacy/architecture/Makefile
19
- docs/legacy/architecture/README.md
20
- docs/legacy/architecture/pyproject.toml
21
- docs/legacy/architecture/.github/workflows/ci.yml
22
- docs/legacy/architecture/.github/workflows/human-approval.yml
23
- docs/legacy/architecture/.github/workflows/issue-metadata-check.yml
24
- docs/legacy/architecture/.github/workflows/issue-metadata.yml
25
- docs/legacy/architecture/.github/workflows/python-package.yml
26
- docs/legacy/architecture/.github/workflows/python-release-assets.yml
27
- docs/legacy/architecture/.github/workflows/python-release-build.yml
28
- docs/legacy/architecture/.github/workflows/release.yml
29
- docs/legacy/architecture/.modwire/boundaries.yaml
30
- docs/legacy/architecture/.modwire/shape.yaml
31
- docs/legacy/architecture/docs/migration-5.md
32
- docs/legacy/architecture/docs/migration-6.md
33
- docs/legacy/architecture/docs/scaffolding/repository-contract-v1.yaml
34
- docs/legacy/architecture/docs/scaffolding/golden/cli.yaml
35
- docs/legacy/architecture/docs/scaffolding/golden/library.yaml
36
- docs/legacy/architecture/docs/wiki/Development-checks.md
37
- docs/legacy/architecture/docs/wiki/Home.md
38
- docs/legacy/architecture/docs/wiki/Reporting-bugs.md
39
- docs/legacy/architecture/docs/wiki/Requesting-features.md
40
- docs/legacy/cli/AGENTS.md
41
- docs/legacy/cli/LICENSE
42
- docs/legacy/cli/Makefile
43
- docs/legacy/cli/README.md
44
- docs/legacy/cli/pyproject.toml
45
- docs/legacy/cli/.github/workflows/ci.yml
46
- docs/legacy/cli/.github/workflows/release.yml
47
- docs/legacy/cli/.modwire/INDEX.md
48
- docs/legacy/cli/.modwire/architecture.yaml
49
- docs/legacy/cli/.modwire/docs/ARCHITECTURE.md
50
- docs/legacy/cli/.modwire/docs/MODWIRE.md
51
- docs/legacy/cli/.modwire/docs/PROJECT.md
52
- docs/legacy/cli/.modwire/docs/RULES.md
53
- docs/legacy/cli/.modwire/docs/TESTING.md
54
- docs/legacy/cli/.modwire/docs/WORKFLOW.md
55
- docs/legacy/extraction/CHANGELOG.md
56
- docs/legacy/extraction/CONTRIBUTING.md
57
- docs/legacy/extraction/LICENSE
58
- docs/legacy/extraction/MANIFEST.in
59
- docs/legacy/extraction/Makefile
60
- docs/legacy/extraction/README.md
61
- docs/legacy/extraction/RELEASE_CHECKLIST.md
62
- docs/legacy/extraction/pyproject.toml
63
- docs/legacy/extraction/.github/workflows/ci.yml
64
- docs/legacy/extraction/.github/workflows/human-approval.yml
65
- docs/legacy/extraction/.github/workflows/release.yml
66
- docs/legacy/extraction/docs/migration-2.md
67
- docs/planning/baselines.json
68
- docs/planning/issues.json
69
- docs/planning/namespace-migration.md
70
- docs/planning/preflight.md
71
- docs/planning/removed-modules.json
72
- docs/planning/report-model-migration.json
73
- docs/planning/source-imports.json
74
- docs/planning/diagrams/01-ownership.md
75
- docs/planning/diagrams/01-ownership.snapshot.json
76
- docs/planning/diagrams/02-issue-dependencies.md
77
- docs/planning/diagrams/02-issue-dependencies.snapshot.json
78
- docs/planning/diagrams/03-release-gates.md
79
- docs/planning/diagrams/03-release-gates.snapshot.json
80
- docs/planning/diagrams/README.md
81
- docs/planning/diagrams/manifest.json
13
+ docs/target-language-ownership.md
14
+ scripts/check_extractors.py
82
15
  scripts/generate_docs.py
83
16
  scripts/verify_consumer.py
84
17
  src/modwire/__init__.py
@@ -179,10 +112,22 @@ src/modwire/architecture/shape/services/signature_resolver.py
179
112
  src/modwire/architecture/shape/services/symbol_resolver.py
180
113
  src/modwire/cli/__init__.py
181
114
  src/modwire/cli/facade.py
115
+ src/modwire/cli/cache/__init__.py
116
+ src/modwire/cli/cache/application.py
117
+ src/modwire/cli/cache/domain.py
118
+ src/modwire/cli/cache/models/__init__.py
119
+ src/modwire/cli/cache/models/cache_entry.py
120
+ src/modwire/cli/cache/models/cache_key.py
121
+ src/modwire/cli/cache/models/cache_options.py
122
+ src/modwire/cli/cache/models/extraction_snapshot.py
123
+ src/modwire/cli/cache/models/source_entry.py
124
+ src/modwire/cli/cache/models/source_inventory.py
125
+ src/modwire/cli/cache/services/__init__.py
126
+ src/modwire/cli/cache/services/cache_codec.py
127
+ src/modwire/cli/cache/services/cache_identity.py
128
+ src/modwire/cli/cache/services/filesystem_cache_storage.py
182
129
  src/modwire/cli/documentation/__init__.py
183
130
  src/modwire/cli/documentation/application.py
184
- src/modwire/cli/documentation/models/__init__.py
185
- src/modwire/cli/documentation/models/defaults.py
186
131
  src/modwire/cli/documentation/services/__init__.py
187
132
  src/modwire/cli/documentation/services/documentation_generator.py
188
133
  src/modwire/cli/initialization/__init__.py
@@ -200,6 +145,7 @@ src/modwire/cli/pipeline/models/extractor_batch_input.py
200
145
  src/modwire/cli/pipeline/models/extractor_command_input.py
201
146
  src/modwire/cli/pipeline/models/extractor_source_input.py
202
147
  src/modwire/cli/pipeline/models/report_pipeline_context.py
148
+ src/modwire/cli/pipeline/models/scan_policy.py
203
149
  src/modwire/cli/pipeline/services/__init__.py
204
150
  src/modwire/cli/pipeline/services/batch_source_reader.py
205
151
  src/modwire/cli/pipeline/services/callables_insight.py
@@ -218,20 +164,6 @@ src/modwire/cli/pipeline/services/unknown_files_warning.py
218
164
  src/modwire/cli/pipeline/services/unused_exports_insight.py
219
165
  src/modwire/cli/resources/__init__.py
220
166
  src/modwire/cli/resources/application.py
221
- src/modwire/cli/resources/extractors/__init__.py
222
- src/modwire/cli/resources/extractors/php/build.php
223
- src/modwire/cli/resources/extractors/php/composer.json
224
- src/modwire/cli/resources/extractors/php/composer.lock
225
- src/modwire/cli/resources/extractors/php/script.php
226
- src/modwire/cli/resources/extractors/php/script.src.php
227
- src/modwire/cli/resources/extractors/python/__init__.py
228
- src/modwire/cli/resources/extractors/python/script.py
229
- src/modwire/cli/resources/extractors/typescript/build.mjs
230
- src/modwire/cli/resources/extractors/typescript/package-lock.json
231
- src/modwire/cli/resources/extractors/typescript/package.json
232
- src/modwire/cli/resources/extractors/typescript/script.js
233
- src/modwire/cli/resources/extractors/typescript/script.ts
234
- src/modwire/cli/resources/extractors/typescript/tsconfig.json
235
167
  src/modwire/cli/resources/models/__init__.py
236
168
  src/modwire/cli/resources/models/defaults.py
237
169
  src/modwire/cli/resources/models/init_asset.py
@@ -251,14 +183,32 @@ src/modwire/extraction/dependency/domain.py
251
183
  src/modwire/extraction/dependency/services/__init__.py
252
184
  src/modwire/extraction/dependency/services/graph_builder.py
253
185
  src/modwire/extraction/dependency/services/import_resolver.py
186
+ src/modwire/extraction/dependency/services/suffix_index.py
254
187
  src/modwire/extraction/extractors/__init__.py
255
188
  src/modwire/extraction/extractors/application.py
256
189
  src/modwire/extraction/extractors/domain.py
257
190
  src/modwire/extraction/extractors/models/__init__.py
258
191
  src/modwire/extraction/extractors/models/batch_config.py
259
192
  src/modwire/extraction/extractors/models/extraction_request.py
193
+ src/modwire/extraction/extractors/models/extractor_resource.py
260
194
  src/modwire/extraction/extractors/models/extractor_runtime.py
261
195
  src/modwire/extraction/extractors/models/python_call_context.py
196
+ src/modwire/extraction/extractors/resources/__init__.py
197
+ src/modwire/extraction/extractors/resources/php/build.php
198
+ src/modwire/extraction/extractors/resources/php/build.py
199
+ src/modwire/extraction/extractors/resources/php/composer.json
200
+ src/modwire/extraction/extractors/resources/php/composer.lock
201
+ src/modwire/extraction/extractors/resources/php/script.php
202
+ src/modwire/extraction/extractors/resources/php/script.src.php
203
+ src/modwire/extraction/extractors/resources/python/__init__.py
204
+ src/modwire/extraction/extractors/resources/python/script.py
205
+ src/modwire/extraction/extractors/resources/typescript/build.mjs
206
+ src/modwire/extraction/extractors/resources/typescript/build.py
207
+ src/modwire/extraction/extractors/resources/typescript/package-lock.json
208
+ src/modwire/extraction/extractors/resources/typescript/package.json
209
+ src/modwire/extraction/extractors/resources/typescript/script.js
210
+ src/modwire/extraction/extractors/resources/typescript/script.ts
211
+ src/modwire/extraction/extractors/resources/typescript/tsconfig.json
262
212
  src/modwire/extraction/extractors/services/__init__.py
263
213
  src/modwire/extraction/extractors/services/php_extractor.py
264
214
  src/modwire/extraction/extractors/services/python_call_reader.py
@@ -317,6 +267,7 @@ tests/application/__init__.py
317
267
  tests/application/base_test.py
318
268
  tests/application/test_01_attacks.py
319
269
  tests/application/test_06_happy_path.py
270
+ tests/application/test_07_cache.py
320
271
  tests/architecture/__init__.py
321
272
  tests/architecture/base_test.py
322
273
  tests/architecture/boundaries/__init__.py
@@ -359,12 +310,24 @@ tests/cli/pipeline/test_05_recovery.py
359
310
  tests/cli/pipeline/test_06_happy_path.py
360
311
  tests/extraction/__init__.py
361
312
  tests/extraction/base_test.py
313
+ tests/extraction/big_projects/__init__.py
314
+ tests/extraction/big_projects/project.py
315
+ tests/extraction/big_projects/projects.json
316
+ tests/extraction/big_projects/resolution_results.json
317
+ tests/extraction/big_projects/results.json
318
+ tests/extraction/big_projects/run.py
319
+ tests/extraction/cache_benchmark/__init__.py
320
+ tests/extraction/cache_benchmark/run.py
362
321
  tests/extraction/dependency/__init__.py
363
322
  tests/extraction/dependency/test_02_invariants.py
364
323
  tests/extraction/extractors/__init__.py
365
324
  tests/extraction/extractors/test_01_attacks.py
366
325
  tests/extraction/extractors/test_02_invariants.py
367
326
  tests/extraction/extractors/test_03_native_symbols.py
327
+ tests/extraction/scan_benchmark/__init__.py
328
+ tests/extraction/scan_benchmark/prepare.py
329
+ tests/extraction/scan_benchmark/results.json
330
+ tests/extraction/scan_benchmark/run.py
368
331
  tests/fixtures/languages/php/ignored/example_generated.php
369
332
  tests/fixtures/languages/php/src/example_application/example_actions/example_action.php
370
333
  tests/fixtures/languages/php/src/example_domain/example_model/example_record.php
@@ -392,4 +355,5 @@ tests/shared/code/__init__.py
392
355
  tests/shared/code/test_02_invariants.py
393
356
  tests/support/__init__.py
394
357
  tests/support/base_test.py
358
+ tests/support/code_map.py
395
359
  tests/support/service_test.py
@@ -10,8 +10,8 @@ permissions:
10
10
  contents: read
11
11
 
12
12
  jobs:
13
- verify:
14
- name: Python ${{ matrix.python-version }}
13
+ package:
14
+ name: Package on Python ${{ matrix.python-version }}
15
15
  runs-on: ubuntu-latest
16
16
  strategy:
17
17
  fail-fast: false
@@ -26,20 +26,11 @@ jobs:
26
26
  python-version: ${{ matrix.python-version }}
27
27
  - run: python -m pip install uv
28
28
  - run: uv sync --all-groups --locked
29
- - run: make python-ci
29
+ - run: make host-check
30
30
 
31
- native-extractors:
32
- name: Native extractors
31
+ extractors:
32
+ name: Extractor resources
33
33
  runs-on: ubuntu-latest
34
34
  steps:
35
35
  - uses: actions/checkout@v6
36
- - uses: actions/setup-node@v6
37
- with:
38
- node-version: "24"
39
- cache: npm
40
- cache-dependency-path: src/modwire/cli/resources/extractors/typescript/package-lock.json
41
- - uses: shivammathur/setup-php@v2
42
- with:
43
- php-version: "8.4"
44
- tools: composer
45
- - run: make native-check
36
+ - run: make extractor-check
@@ -2,8 +2,6 @@ include LICENSE
2
2
  include README.md
3
3
  recursive-include src *.py *.typed *.php *.js *.mjs *.ts *.json *.lock *.md *.yaml
4
4
  recursive-include tests *.py *.json *.ts *.tsx *.js *.jsx *.php
5
- recursive-include docs *.md *.yaml *.json
6
- recursive-include .modwire *.yaml *.md
7
5
  recursive-include scripts *.py
8
6
  prune verification
9
7
  prune .dev
modwire-9.1.0/Makefile ADDED
@@ -0,0 +1,58 @@
1
+ DEV_DIR := .dev
2
+ BUILD_DIR := $(DEV_DIR)/build
3
+ DIST_DIR := $(DEV_DIR)/dist
4
+ EGG_INFO_DIR := src/modwire.egg-info
5
+ PROJECT_ROOT := $(CURDIR)
6
+
7
+ export PYTHONPYCACHEPREFIX := $(PROJECT_ROOT)/$(DEV_DIR)/cache/python
8
+ export UV_CACHE_DIR := $(PROJECT_ROOT)/$(DEV_DIR)/cache/uv
9
+
10
+ .PHONY: big-projects build cache-benchmark ci docs docs-check extractor-check format format-check host-check lint package-check scan-benchmark scan-benchmark-fixture test type-check
11
+
12
+ format:
13
+ uv run ruff format src tests scripts
14
+
15
+ format-check:
16
+ uv run ruff format --check src tests scripts
17
+
18
+ lint:
19
+ uv run ruff check src tests scripts
20
+
21
+ type-check:
22
+ uv run pyright src/modwire
23
+
24
+ test:
25
+ mkdir -p $(DEV_DIR)/testing
26
+ uv run pytest
27
+
28
+ big-projects:
29
+ uv run python -m tests.extraction.big_projects.run
30
+
31
+ scan-benchmark-fixture:
32
+ uv run python -m tests.extraction.scan_benchmark.prepare --root .dev/benchmarks/scan-project --source-template "$(SCAN_BENCHMARK_SOURCE)"
33
+
34
+ scan-benchmark:
35
+ uv run python -m tests.extraction.scan_benchmark.run --root .dev/benchmarks/scan-project --language "$(SCAN_BENCHMARK_LANGUAGE)" --excluded-pattern 'example_excluded/**'
36
+
37
+ cache-benchmark:
38
+ uv run python -m tests.extraction.cache_benchmark.run --root "$(CACHE_BENCHMARK_ROOT)" --language "$(CACHE_BENCHMARK_LANGUAGE)" --cache-directory .dev/benchmarks/cache --incremental-source "$(CACHE_BENCHMARK_SOURCE)" --replacement-source "$(CACHE_BENCHMARK_REPLACEMENT)"
39
+
40
+ docs-check:
41
+ uv run python scripts/generate_docs.py --check
42
+
43
+ docs:
44
+ uv run python scripts/generate_docs.py
45
+
46
+ build:
47
+ rm -rf $(BUILD_DIR) $(DIST_DIR) $(EGG_INFO_DIR)
48
+ uv build --out-dir $(DIST_DIR)
49
+
50
+ package-check: build
51
+ uv run twine check $(DIST_DIR)/*
52
+
53
+ extractor-check:
54
+ python3 scripts/check_extractors.py
55
+
56
+ host-check: format-check lint type-check test docs-check package-check
57
+
58
+ ci: host-check extractor-check
modwire-9.1.0/PKG-INFO ADDED
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: modwire
3
+ Version: 9.1.0
4
+ Summary: Code extraction, architecture analysis and the Modwire CLI.
5
+ Author: Tomasz Szpak
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/szpak-dev/modwire
8
+ Project-URL: Repository, https://github.com/szpak-dev/modwire
9
+ Project-URL: Issues, https://github.com/szpak-dev/modwire/issues
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Classifier: Typing :: Typed
14
+ Requires-Python: >=3.12
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: pydantic>=2.12
18
+ Requires-Dist: pydantic-yaml>=1.7
19
+ Requires-Dist: rich>=13
20
+ Requires-Dist: wireup>=2.12.0
21
+ Provides-Extra: dev
22
+ Requires-Dist: build>=1.3; extra == "dev"
23
+ Requires-Dist: pytest>=9; extra == "dev"
24
+ Requires-Dist: ruff<0.16,>=0.14; extra == "dev"
25
+ Requires-Dist: pyright>=1.1; extra == "dev"
26
+ Requires-Dist: twine>=6; extra == "dev"
27
+ Dynamic: license-file
28
+
29
+ # Modwire
30
+
31
+ ## `ModwireApplication`
32
+
33
+ Public entry point for source discovery, extraction, architecture analysis, and the Modwire CLI.
34
+
35
+ ### `create`
36
+
37
+ Create an isolated application with all services resolved through Wireup.
38
+
39
+ ### `configure`
40
+
41
+ Validate architecture configuration values.
42
+
43
+ ### `catalog`
44
+
45
+ Return the available architecture reports.
46
+
47
+ ### `analyze`
48
+
49
+ Analyze a code map with a validated architecture configuration.
50
+
51
+ ### `analyze_cached`
52
+
53
+ Analyze a code map, reusing reports for an exact map and configuration identity.
54
+
55
+ ### `discover`
56
+
57
+ Discover supported source languages beneath a root using the caller's scan policy.
58
+
59
+ ### `generate_map`
60
+
61
+ Extract one language and return its code map with honest scan metrics.
62
+
63
+ ``files_excluded`` counts only source files encountered and excluded directly.
64
+ ``directories_pruned`` counts directories rejected before descent; their
65
+ descendants are deliberately unobserved and are not included in file counts.
66
+
67
+ ### `generate_queryable_map`
68
+
69
+ Extract source files and return a queryable code map.
70
+
71
+ ### `generate_map_cached`
72
+
73
+ Return a code map with content-addressed source and complete-manifest reuse.
74
+
75
+ ### `generate_queryable_map_cached`
76
+
77
+ Return a queryable code map with content-addressed persistent reuse.
78
+
79
+ ### `clear_cache`
80
+
81
+ Clear only the Modwire-owned directory for one cache namespace.
82
+
83
+ ### `load_configuration`
84
+
85
+ Load and validate an architecture configuration from a directory.
86
+
87
+ ### `initialize`
88
+
89
+ Create project-local Modwire configuration and agent guidance.
90
+
91
+ ### `generate_documentation`
92
+
93
+ Generate this README from the published interface docstrings, or check that it is current.
94
+
95
+ ### `run_extractor`
96
+
97
+ Run the native extractor transport for one supported language.
98
+
99
+ ### `run`
100
+
101
+ Run the Modwire command line interface and return its process status.
102
+
103
+ ## `CacheOptions`
104
+
105
+ Generic persistent-cache settings supplied by a caller.
106
+
107
+ ## `ScanPolicy`
108
+
109
+ Caller-owned filesystem traversal policy with explicit exclusions and opt-in symlink following.
@@ -0,0 +1,81 @@
1
+ # Modwire
2
+
3
+ ## `ModwireApplication`
4
+
5
+ Public entry point for source discovery, extraction, architecture analysis, and the Modwire CLI.
6
+
7
+ ### `create`
8
+
9
+ Create an isolated application with all services resolved through Wireup.
10
+
11
+ ### `configure`
12
+
13
+ Validate architecture configuration values.
14
+
15
+ ### `catalog`
16
+
17
+ Return the available architecture reports.
18
+
19
+ ### `analyze`
20
+
21
+ Analyze a code map with a validated architecture configuration.
22
+
23
+ ### `analyze_cached`
24
+
25
+ Analyze a code map, reusing reports for an exact map and configuration identity.
26
+
27
+ ### `discover`
28
+
29
+ Discover supported source languages beneath a root using the caller's scan policy.
30
+
31
+ ### `generate_map`
32
+
33
+ Extract one language and return its code map with honest scan metrics.
34
+
35
+ ``files_excluded`` counts only source files encountered and excluded directly.
36
+ ``directories_pruned`` counts directories rejected before descent; their
37
+ descendants are deliberately unobserved and are not included in file counts.
38
+
39
+ ### `generate_queryable_map`
40
+
41
+ Extract source files and return a queryable code map.
42
+
43
+ ### `generate_map_cached`
44
+
45
+ Return a code map with content-addressed source and complete-manifest reuse.
46
+
47
+ ### `generate_queryable_map_cached`
48
+
49
+ Return a queryable code map with content-addressed persistent reuse.
50
+
51
+ ### `clear_cache`
52
+
53
+ Clear only the Modwire-owned directory for one cache namespace.
54
+
55
+ ### `load_configuration`
56
+
57
+ Load and validate an architecture configuration from a directory.
58
+
59
+ ### `initialize`
60
+
61
+ Create project-local Modwire configuration and agent guidance.
62
+
63
+ ### `generate_documentation`
64
+
65
+ Generate this README from the published interface docstrings, or check that it is current.
66
+
67
+ ### `run_extractor`
68
+
69
+ Run the native extractor transport for one supported language.
70
+
71
+ ### `run`
72
+
73
+ Run the Modwire command line interface and return its process status.
74
+
75
+ ## `CacheOptions`
76
+
77
+ Generic persistent-cache settings supplied by a caller.
78
+
79
+ ## `ScanPolicy`
80
+
81
+ Caller-owned filesystem traversal policy with explicit exclusions and opt-in symlink following.
@@ -0,0 +1,34 @@
1
+ # Target-language ownership
2
+
3
+ Modwire is hosted and distributed as a Python package. References to Python versions, Python packaging, type checking,
4
+ and Python-based development commands are host concerns rather than analyzed-language behavior.
5
+
6
+ All analyzed-language facts belong to extractor-owned locations:
7
+
8
+ - `src/modwire/extraction/extractors/services/` owns extractor registration, target identity, file extensions, runtime
9
+ commands, parser selection, and batch policy.
10
+ - `src/modwire/extraction/extractors/resources/` owns parser programs, dependency manifests, generated executables,
11
+ and build adapters.
12
+ - `tests/fixtures/languages/` and extractor integration tests own language-specific validation inputs.
13
+ - `tests/extraction/big_projects/projects.json` owns pinned language-specific production fixtures.
14
+
15
+ Shared code, dependency resolution, architecture analysis, traversal, consumer verification, benchmarks, and CI
16
+ orchestration must not contain supported-language tables, runtime commands, extension tables, or language-selection
17
+ branches. Callers select a registered extractor explicitly.
18
+
19
+ ## Shared contract version 2
20
+
21
+ The class-level `CodeMap.schema_version` is `2` while the existing serialized envelope remains stable. Callable kinds
22
+ are `function`, `instance_method`, `type_method`, `static_method`,
23
+ `constructor`, `callable_value`, and `anonymous`. Parameter kinds are `positional`, `variadic_positional`,
24
+ `named_only`, and `variadic_named`.
25
+
26
+ Version 1 serialized maps used extractor-specific callable and parameter vocabulary. They are not accepted as version
27
+ 2 values. Regenerate them from their source with the same registered extractor; persistent reuse does not yet exist,
28
+ so there is no cache migration or silent compatibility alias.
29
+
30
+ ## Adding an extractor
31
+
32
+ Add one automatic Wireup `SourceExtractor` registration, its extractor-owned resources and optional `build.py`
33
+ adapter, and extractor integration fixtures. Package data and the generic build runner discover those resources without
34
+ changes to shared services, CLI traversal, architecture analysis, the top-level Makefile, or CI orchestration.
@@ -43,7 +43,11 @@ exclude = ["*.__pycache__", "*.__pycache__.*"]
43
43
 
44
44
  [tool.setuptools.package-data]
45
45
  "modwire" = ["py.typed"]
46
- "modwire.cli.resources" = ["templates/*", "extractors/php/*", "extractors/typescript/*", "extractors/python/*.py"]
46
+ "modwire.cli.resources" = ["templates/*"]
47
+ "modwire.extraction.extractors.resources" = ["**/*"]
48
+
49
+ [tool.setuptools.exclude-package-data]
50
+ "*" = ["**/__pycache__/*", "**/*.pyc"]
47
51
 
48
52
  [tool.setuptools_scm]
49
53
  tag_regex = '^v(?P<version>\d+\.\d+\.\d+)$'
@@ -0,0 +1,39 @@
1
+ from __future__ import annotations
2
+
3
+ import importlib.util
4
+ import shutil
5
+ from collections.abc import Callable
6
+ from pathlib import Path
7
+ from types import ModuleType
8
+
9
+
10
+ def load_adapter(path: Path) -> ModuleType:
11
+ spec = importlib.util.spec_from_file_location(f"modwire_extractor_build_{path.parent.name}", path)
12
+ if spec is None or spec.loader is None:
13
+ raise RuntimeError(f"Cannot load extractor build adapter: {path}")
14
+ module = importlib.util.module_from_spec(spec)
15
+ spec.loader.exec_module(module)
16
+ return module
17
+
18
+
19
+ def main() -> int:
20
+ repository = Path(__file__).resolve().parents[1]
21
+ resources = repository / "src/modwire/extraction/extractors/resources"
22
+ work_root = repository / ".dev/native"
23
+ adapters = tuple(sorted(resources.glob("*/build.py")))
24
+ if not adapters:
25
+ raise RuntimeError(f"No extractor build adapters found beneath: {resources}")
26
+ for path in adapters:
27
+ work = work_root / path.parent.name
28
+ shutil.rmtree(work, ignore_errors=True)
29
+ adapter = getattr(load_adapter(path), "BuildAdapter", None)
30
+ check = getattr(adapter, "check", None)
31
+ if not callable(check):
32
+ raise RuntimeError(f"Extractor build adapter has no BuildAdapter.check method: {path}")
33
+ typed_check: Callable[[Path, Path], None] = check
34
+ typed_check(path.parent, work)
35
+ return 0
36
+
37
+
38
+ if __name__ == "__main__":
39
+ raise SystemExit(main())
@@ -1,9 +1,10 @@
1
+ import argparse
1
2
  import sys
2
3
 
3
4
  from wireup import create_sync_container, injectable
4
5
  from wireup.errors import UnknownServiceRequestedError
5
6
 
6
- from modwire.application import ModwireApplication
7
+ from modwire.application import ModwireApplication, ScanPolicy
7
8
 
8
9
 
9
10
  @injectable
@@ -24,9 +25,14 @@ try:
24
25
  finally:
25
26
  container.close()
26
27
 
28
+ parser = argparse.ArgumentParser()
29
+ parser.add_argument("root")
30
+ parser.add_argument("--language", required=True)
31
+ arguments = parser.parse_args()
32
+
27
33
  application = ModwireApplication.create()
28
34
  config = application.configure({"shape": {"realms": [{"name": "example-source", "match": "src"}]}})
29
- code_map = application.generate_queryable_map("python", sys.argv[1], ())
35
+ code_map = application.generate_queryable_map(arguments.language, arguments.root, ScanPolicy())
30
36
  reports = application.analyze(code_map, config)
31
37
  assert code_map.files().count() == 1
32
38
  assert len(reports) == 4