modwire 4.0.2__tar.gz → 8.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. modwire-8.0.0/.dev/modwire.egg-info/SOURCES.txt +395 -0
  2. modwire-8.0.0/.github/workflows/ci.yml +45 -0
  3. modwire-8.0.0/.github/workflows/release.yml +63 -0
  4. {modwire-4.0.2 → modwire-8.0.0}/.gitignore +7 -5
  5. modwire-8.0.0/.modwire/architecture.yaml +122 -0
  6. modwire-8.0.0/AGENTS.md +1 -0
  7. modwire-8.0.0/LICENSE +13 -0
  8. modwire-8.0.0/MANIFEST.in +10 -0
  9. modwire-8.0.0/Makefile +65 -0
  10. modwire-8.0.0/PKG-INFO +57 -0
  11. modwire-8.0.0/README.md +29 -0
  12. modwire-8.0.0/docs/legacy/architecture/.github/workflows/ci.yml +15 -0
  13. modwire-8.0.0/docs/legacy/architecture/.github/workflows/human-approval.yml +133 -0
  14. modwire-8.0.0/docs/legacy/architecture/.github/workflows/issue-metadata-check.yml +17 -0
  15. modwire-8.0.0/docs/legacy/architecture/.github/workflows/issue-metadata.yml +87 -0
  16. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/.github/workflows/release.yml +1 -1
  17. modwire-8.0.0/docs/legacy/architecture/.modwire/shape.yaml +9 -0
  18. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/CHANGELOG.md +38 -0
  19. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/CONTRIBUTING.md +5 -6
  20. modwire-8.0.0/docs/legacy/architecture/MANIFEST.in +2 -0
  21. modwire-8.0.0/docs/legacy/architecture/Makefile +7 -0
  22. modwire-8.0.0/docs/legacy/architecture/README.md +105 -0
  23. modwire-8.0.0/docs/legacy/architecture/docs/migration-5.md +52 -0
  24. modwire-8.0.0/docs/legacy/architecture/docs/migration-6.md +32 -0
  25. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/golden/cli.yaml +44 -0
  26. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/golden/library.yaml +40 -0
  27. modwire-8.0.0/docs/legacy/architecture/docs/scaffolding/repository-contract-v1.yaml +147 -0
  28. modwire-8.0.0/docs/legacy/architecture/docs/wiki/Home.md +27 -0
  29. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/docs/wiki/Reporting-bugs.md +1 -1
  30. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/docs/wiki/Requesting-features.md +1 -1
  31. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/pyproject.toml +8 -10
  32. modwire-8.0.0/docs/legacy/cli/.github/workflows/ci.yml +17 -0
  33. modwire-8.0.0/docs/legacy/cli/.github/workflows/release.yml +40 -0
  34. modwire-8.0.0/docs/legacy/cli/.modwire/INDEX.md +10 -0
  35. modwire-8.0.0/docs/legacy/cli/.modwire/architecture.yaml +42 -0
  36. modwire-8.0.0/docs/legacy/cli/.modwire/docs/ARCHITECTURE.md +49 -0
  37. modwire-8.0.0/docs/legacy/cli/.modwire/docs/MODWIRE.md +5 -0
  38. modwire-8.0.0/docs/legacy/cli/.modwire/docs/PROJECT.md +16 -0
  39. modwire-8.0.0/docs/legacy/cli/.modwire/docs/RULES.md +6 -0
  40. modwire-8.0.0/docs/legacy/cli/.modwire/docs/TESTING.md +7 -0
  41. modwire-8.0.0/docs/legacy/cli/.modwire/docs/WORKFLOW.md +8 -0
  42. modwire-8.0.0/docs/legacy/cli/AGENTS.md +1 -0
  43. modwire-8.0.0/docs/legacy/cli/LICENSE +21 -0
  44. modwire-8.0.0/docs/legacy/cli/Makefile +14 -0
  45. modwire-8.0.0/docs/legacy/cli/README.md +73 -0
  46. modwire-8.0.0/docs/legacy/cli/pyproject.toml +85 -0
  47. modwire-8.0.0/docs/legacy/extraction/.github/workflows/ci.yml +50 -0
  48. modwire-8.0.0/docs/legacy/extraction/.github/workflows/human-approval.yml +133 -0
  49. modwire-8.0.0/docs/legacy/extraction/.github/workflows/release.yml +40 -0
  50. modwire-8.0.0/docs/legacy/extraction/CHANGELOG.md +68 -0
  51. modwire-8.0.0/docs/legacy/extraction/CONTRIBUTING.md +85 -0
  52. modwire-8.0.0/docs/legacy/extraction/LICENSE +21 -0
  53. modwire-8.0.0/docs/legacy/extraction/MANIFEST.in +6 -0
  54. modwire-8.0.0/docs/legacy/extraction/Makefile +4 -0
  55. modwire-8.0.0/docs/legacy/extraction/README.md +73 -0
  56. modwire-8.0.0/docs/legacy/extraction/RELEASE_CHECKLIST.md +40 -0
  57. modwire-8.0.0/docs/legacy/extraction/docs/migration-2.md +59 -0
  58. modwire-8.0.0/docs/legacy/extraction/pyproject.toml +94 -0
  59. modwire-8.0.0/docs/planning/baselines.json +35 -0
  60. modwire-8.0.0/docs/planning/diagrams/01-ownership.md +32 -0
  61. modwire-8.0.0/docs/planning/diagrams/01-ownership.snapshot.json +201 -0
  62. modwire-8.0.0/docs/planning/diagrams/02-issue-dependencies.md +45 -0
  63. modwire-8.0.0/docs/planning/diagrams/02-issue-dependencies.snapshot.json +336 -0
  64. modwire-8.0.0/docs/planning/diagrams/03-release-gates.md +39 -0
  65. modwire-8.0.0/docs/planning/diagrams/03-release-gates.snapshot.json +280 -0
  66. modwire-8.0.0/docs/planning/diagrams/README.md +11 -0
  67. modwire-8.0.0/docs/planning/diagrams/manifest.json +28 -0
  68. modwire-8.0.0/docs/planning/issues.json +107 -0
  69. modwire-8.0.0/docs/planning/namespace-migration.md +17 -0
  70. modwire-8.0.0/docs/planning/preflight.md +64 -0
  71. modwire-8.0.0/docs/planning/removed-modules.json +16 -0
  72. modwire-8.0.0/docs/planning/report-model-migration.json +11 -0
  73. modwire-8.0.0/docs/planning/source-imports.json +1070 -0
  74. modwire-8.0.0/pyproject.toml +74 -0
  75. modwire-8.0.0/scripts/generate_docs.py +7 -0
  76. modwire-8.0.0/scripts/verify_consumer.py +32 -0
  77. modwire-8.0.0/setup.cfg +8 -0
  78. modwire-8.0.0/setup.py +7 -0
  79. modwire-8.0.0/src/modwire/__main__.py +4 -0
  80. modwire-8.0.0/src/modwire/application.py +77 -0
  81. modwire-8.0.0/src/modwire/architecture/__init__.py +0 -0
  82. modwire-8.0.0/src/modwire/architecture/boundaries/application.py +25 -0
  83. modwire-4.0.2/src/modwire/architecture/boundaries/analyzers/analyzer_base.py → modwire-8.0.0/src/modwire/architecture/boundaries/domain.py +27 -11
  84. modwire-8.0.0/src/modwire/architecture/boundaries/models/edge_rule_violation.py +9 -0
  85. modwire-8.0.0/src/modwire/architecture/boundaries/models/flow_report.py +15 -0
  86. modwire-8.0.0/src/modwire/architecture/boundaries/models/flow_violation.py +22 -0
  87. modwire-8.0.0/src/modwire/architecture/boundaries/models/types.py +1 -0
  88. modwire-8.0.0/src/modwire/architecture/boundaries/services/__init__.py +1 -0
  89. modwire-4.0.2/src/modwire/architecture/boundaries/analyzers/backward.py → modwire-8.0.0/src/modwire/architecture/boundaries/services/backward_flow_analyzer.py +13 -5
  90. modwire-8.0.0/src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py +53 -0
  91. modwire-8.0.0/src/modwire/architecture/boundaries/services/module_boundary_analyzer.py +120 -0
  92. modwire-4.0.2/src/modwire/architecture/boundaries/analyzers/no_cycles.py → modwire-8.0.0/src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py +16 -15
  93. modwire-4.0.2/src/modwire/architecture/boundaries/analyzers/no_reentry.py → modwire-8.0.0/src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py +17 -10
  94. modwire-8.0.0/src/modwire/architecture/config/__init__.py +1 -0
  95. modwire-8.0.0/src/modwire/architecture/config/application.py +13 -0
  96. modwire-8.0.0/src/modwire/architecture/config/models/__init__.py +1 -0
  97. modwire-8.0.0/src/modwire/architecture/config/models/architecture_config.py +11 -0
  98. modwire-8.0.0/src/modwire/architecture/config/models/boundaries_config.py +28 -0
  99. modwire-8.0.0/src/modwire/architecture/config/models/boundary_rule.py +9 -0
  100. modwire-8.0.0/src/modwire/architecture/config/models/configuration_value.py +5 -0
  101. modwire-8.0.0/src/modwire/architecture/config/models/flow_realm.py +7 -0
  102. modwire-8.0.0/src/modwire/architecture/config/models/flow_rules.py +21 -0
  103. modwire-8.0.0/src/modwire/architecture/config/models/shape_config.py +15 -0
  104. modwire-8.0.0/src/modwire/architecture/config/models/shape_realm.py +11 -0
  105. modwire-8.0.0/src/modwire/architecture/config/models/shape_rules.py +22 -0
  106. modwire-8.0.0/src/modwire/architecture/config/models/tag_rule.py +9 -0
  107. modwire-8.0.0/src/modwire/architecture/facade.py +27 -0
  108. modwire-8.0.0/src/modwire/architecture/insights/__init__.py +1 -0
  109. modwire-8.0.0/src/modwire/architecture/insights/application.py +34 -0
  110. modwire-8.0.0/src/modwire/architecture/insights/domain.py +20 -0
  111. modwire-8.0.0/src/modwire/architecture/insights/models/__init__.py +1 -0
  112. modwire-8.0.0/src/modwire/architecture/insights/models/callable_report_entry.py +7 -0
  113. modwire-8.0.0/src/modwire/architecture/insights/models/callables_report.py +13 -0
  114. modwire-8.0.0/src/modwire/architecture/insights/models/clusters_report.py +13 -0
  115. modwire-8.0.0/src/modwire/architecture/insights/models/clusters_report_item.py +10 -0
  116. modwire-8.0.0/src/modwire/architecture/insights/models/coherence_report.py +15 -0
  117. modwire-8.0.0/src/modwire/architecture/insights/models/exports_report.py +11 -0
  118. modwire-8.0.0/src/modwire/architecture/insights/models/exports_report_item.py +9 -0
  119. modwire-8.0.0/src/modwire/architecture/insights/models/hotspots_report.py +13 -0
  120. modwire-8.0.0/src/modwire/architecture/insights/models/hotspots_report_item.py +8 -0
  121. modwire-8.0.0/src/modwire/architecture/insights/models/insight_report.py +28 -0
  122. modwire-8.0.0/src/modwire/architecture/insights/services/__init__.py +1 -0
  123. modwire-8.0.0/src/modwire/architecture/insights/services/callables_reporter.py +41 -0
  124. modwire-8.0.0/src/modwire/architecture/insights/services/clusters_reporter.py +84 -0
  125. modwire-8.0.0/src/modwire/architecture/insights/services/coherence_reporter.py +46 -0
  126. modwire-4.0.2/src/modwire/architecture/insights/reporters/exports.py → modwire-8.0.0/src/modwire/architecture/insights/services/exports_reporter.py +17 -28
  127. modwire-8.0.0/src/modwire/architecture/insights/services/hotspots_reporter.py +40 -0
  128. modwire-8.0.0/src/modwire/architecture/insights/services/insight_report_field_map.py +12 -0
  129. modwire-8.0.0/src/modwire/architecture/map/__init__.py +1 -0
  130. modwire-8.0.0/src/modwire/architecture/map/application.py +17 -0
  131. modwire-8.0.0/src/modwire/architecture/map/domain.py +11 -0
  132. modwire-8.0.0/src/modwire/architecture/map/models/__init__.py +1 -0
  133. modwire-4.0.2/src/modwire/architecture/map/base.py → modwire-8.0.0/src/modwire/architecture/map/models/architecture_map.py +6 -10
  134. modwire-8.0.0/src/modwire/architecture/map/models/architecture_realm.py +7 -0
  135. {modwire-4.0.2/src/modwire/architecture/boundaries/tags → modwire-8.0.0/src/modwire/architecture/map/models}/tag_map.py +4 -15
  136. modwire-8.0.0/src/modwire/architecture/map/models/tag_match.py +10 -0
  137. modwire-8.0.0/src/modwire/architecture/map/services/__init__.py +1 -0
  138. modwire-8.0.0/src/modwire/architecture/map/services/architecture_map_loader.py +52 -0
  139. modwire-8.0.0/src/modwire/architecture/map/services/tag_matcher.py +70 -0
  140. modwire-8.0.0/src/modwire/architecture/report/__init__.py +1 -0
  141. modwire-8.0.0/src/modwire/architecture/report/application.py +28 -0
  142. modwire-8.0.0/src/modwire/architecture/report/domain.py +16 -0
  143. modwire-8.0.0/src/modwire/architecture/report/models/__init__.py +1 -0
  144. modwire-8.0.0/src/modwire/architecture/report/models/architecture_group.py +6 -0
  145. modwire-8.0.0/src/modwire/architecture/report/models/map_report.py +16 -0
  146. modwire-8.0.0/src/modwire/architecture/report/models/report_catalog.py +6 -0
  147. modwire-8.0.0/src/modwire/architecture/report/models/report_descriptor.py +26 -0
  148. modwire-8.0.0/src/modwire/architecture/report/models/report_item.py +4 -0
  149. modwire-8.0.0/src/modwire/architecture/report/models/report_metadata.py +11 -0
  150. modwire-8.0.0/src/modwire/architecture/report/models/report_node.py +35 -0
  151. modwire-8.0.0/src/modwire/architecture/report/models/report_section.py +4 -0
  152. modwire-8.0.0/src/modwire/architecture/report/services/__init__.py +0 -0
  153. modwire-8.0.0/src/modwire/architecture/report/services/map_report_collector.py +34 -0
  154. modwire-8.0.0/src/modwire/architecture/shape/__init__.py +1 -0
  155. modwire-8.0.0/src/modwire/architecture/shape/application.py +53 -0
  156. modwire-8.0.0/src/modwire/architecture/shape/domain.py +59 -0
  157. modwire-8.0.0/src/modwire/architecture/shape/models/__init__.py +1 -0
  158. modwire-8.0.0/src/modwire/architecture/shape/models/shape_realm_architecture_map.py +8 -0
  159. modwire-8.0.0/src/modwire/architecture/shape/models/shape_report.py +15 -0
  160. modwire-8.0.0/src/modwire/architecture/shape/models/shape_violation.py +11 -0
  161. modwire-8.0.0/src/modwire/architecture/shape/services/__init__.py +1 -0
  162. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/abstract_class_resolver.py +18 -25
  163. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/callable_resolver.py +27 -37
  164. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/class_resolver.py +20 -31
  165. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/file_resolver.py +21 -26
  166. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/import_resolver.py +17 -17
  167. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/property_resolver.py +26 -32
  168. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire/architecture/shape/services}/signature_resolver.py +19 -25
  169. modwire-8.0.0/src/modwire/architecture/shape/services/symbol_resolver.py +29 -0
  170. modwire-8.0.0/src/modwire/autowiring.py +23 -0
  171. modwire-8.0.0/src/modwire/cli/__init__.py +0 -0
  172. modwire-8.0.0/src/modwire/cli/documentation/__init__.py +1 -0
  173. modwire-8.0.0/src/modwire/cli/documentation/application.py +20 -0
  174. modwire-8.0.0/src/modwire/cli/documentation/models/__init__.py +1 -0
  175. modwire-8.0.0/src/modwire/cli/documentation/models/defaults.py +6 -0
  176. modwire-8.0.0/src/modwire/cli/documentation/services/__init__.py +1 -0
  177. modwire-8.0.0/src/modwire/cli/documentation/services/documentation_generator.py +43 -0
  178. modwire-8.0.0/src/modwire/cli/facade.py +87 -0
  179. modwire-8.0.0/src/modwire/cli/initialization/__init__.py +1 -0
  180. modwire-8.0.0/src/modwire/cli/initialization/application.py +45 -0
  181. modwire-8.0.0/src/modwire/cli/initialization/models/__init__.py +1 -0
  182. modwire-8.0.0/src/modwire/cli/initialization/models/initialization_result.py +9 -0
  183. modwire-8.0.0/src/modwire/cli/initialization/services/__init__.py +1 -0
  184. modwire-8.0.0/src/modwire/cli/initialization/services/initialization_service.py +27 -0
  185. modwire-8.0.0/src/modwire/cli/pipeline/__init__.py +1 -0
  186. modwire-8.0.0/src/modwire/cli/pipeline/application.py +58 -0
  187. modwire-8.0.0/src/modwire/cli/pipeline/domain.py +28 -0
  188. modwire-8.0.0/src/modwire/cli/pipeline/models/__init__.py +1 -0
  189. modwire-8.0.0/src/modwire/cli/pipeline/models/command_request.py +13 -0
  190. modwire-8.0.0/src/modwire/cli/pipeline/models/extractor_batch_input.py +5 -0
  191. modwire-8.0.0/src/modwire/cli/pipeline/models/extractor_command_input.py +7 -0
  192. modwire-8.0.0/src/modwire/cli/pipeline/models/extractor_source_input.py +10 -0
  193. modwire-8.0.0/src/modwire/cli/pipeline/models/report_pipeline_context.py +22 -0
  194. modwire-8.0.0/src/modwire/cli/pipeline/services/__init__.py +1 -0
  195. modwire-8.0.0/src/modwire/cli/pipeline/services/batch_source_reader.py +213 -0
  196. modwire-8.0.0/src/modwire/cli/pipeline/services/callables_insight.py +28 -0
  197. modwire-8.0.0/src/modwire/cli/pipeline/services/clusters_insight.py +30 -0
  198. modwire-8.0.0/src/modwire/cli/pipeline/services/coherence_insight.py +36 -0
  199. modwire-8.0.0/src/modwire/cli/pipeline/services/command_line.py +33 -0
  200. modwire-8.0.0/src/modwire/cli/pipeline/services/configuration_loader.py +14 -0
  201. modwire-8.0.0/src/modwire/cli/pipeline/services/extractor_command.py +49 -0
  202. modwire-8.0.0/src/modwire/cli/pipeline/services/flow_violations.py +25 -0
  203. modwire-8.0.0/src/modwire/cli/pipeline/services/hotspots_insight.py +28 -0
  204. modwire-8.0.0/src/modwire/cli/pipeline/services/map_tree.py +47 -0
  205. modwire-8.0.0/src/modwire/cli/pipeline/services/output_console.py +8 -0
  206. modwire-8.0.0/src/modwire/cli/pipeline/services/shape_violations.py +29 -0
  207. modwire-8.0.0/src/modwire/cli/pipeline/services/success.py +20 -0
  208. modwire-8.0.0/src/modwire/cli/pipeline/services/unknown_files_warning.py +24 -0
  209. modwire-8.0.0/src/modwire/cli/pipeline/services/unused_exports_insight.py +27 -0
  210. modwire-8.0.0/src/modwire/cli/resources/__init__.py +1 -0
  211. modwire-8.0.0/src/modwire/cli/resources/application.py +17 -0
  212. modwire-8.0.0/src/modwire/cli/resources/extractors/__init__.py +1 -0
  213. modwire-8.0.0/src/modwire/cli/resources/extractors/php/build.php +105 -0
  214. modwire-8.0.0/src/modwire/cli/resources/extractors/php/composer.json +14 -0
  215. modwire-8.0.0/src/modwire/cli/resources/extractors/php/composer.lock +77 -0
  216. modwire-8.0.0/src/modwire/cli/resources/extractors/php/script.php +0 -0
  217. modwire-8.0.0/src/modwire/cli/resources/extractors/php/script.src.php +783 -0
  218. modwire-8.0.0/src/modwire/cli/resources/extractors/python/__init__.py +1 -0
  219. modwire-8.0.0/src/modwire/cli/resources/extractors/python/script.py +4 -0
  220. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/build.mjs +29 -0
  221. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/package-lock.json +351 -0
  222. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/package.json +16 -0
  223. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/script.js +234665 -0
  224. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/script.ts +1139 -0
  225. modwire-8.0.0/src/modwire/cli/resources/extractors/typescript/tsconfig.json +14 -0
  226. modwire-8.0.0/src/modwire/cli/resources/models/__init__.py +0 -0
  227. modwire-8.0.0/src/modwire/cli/resources/models/defaults.py +14 -0
  228. modwire-8.0.0/src/modwire/cli/resources/models/init_asset.py +10 -0
  229. modwire-8.0.0/src/modwire/cli/resources/templates/AGENTS.md +1 -0
  230. modwire-8.0.0/src/modwire/cli/resources/templates/ARCHITECTURE.md +49 -0
  231. modwire-8.0.0/src/modwire/cli/resources/templates/INDEX.md +9 -0
  232. modwire-8.0.0/src/modwire/cli/resources/templates/MODWIRE.md +5 -0
  233. modwire-8.0.0/src/modwire/cli/resources/templates/RULES.md +6 -0
  234. modwire-8.0.0/src/modwire/cli/resources/templates/TESTING.md +7 -0
  235. modwire-8.0.0/src/modwire/cli/resources/templates/WORKFLOW.md +8 -0
  236. modwire-8.0.0/src/modwire/cli/resources/templates/architecture.yaml +60 -0
  237. modwire-8.0.0/src/modwire/extraction/__init__.py +0 -0
  238. modwire-8.0.0/src/modwire/extraction/dependency/__init__.py +1 -0
  239. modwire-8.0.0/src/modwire/extraction/dependency/application.py +21 -0
  240. modwire-8.0.0/src/modwire/extraction/dependency/domain.py +17 -0
  241. modwire-8.0.0/src/modwire/extraction/dependency/services/__init__.py +1 -0
  242. modwire-8.0.0/src/modwire/extraction/dependency/services/graph_builder.py +25 -0
  243. modwire-8.0.0/src/modwire/extraction/dependency/services/import_resolver.py +71 -0
  244. modwire-8.0.0/src/modwire/extraction/extractors/__init__.py +1 -0
  245. modwire-8.0.0/src/modwire/extraction/extractors/application.py +45 -0
  246. modwire-8.0.0/src/modwire/extraction/extractors/domain.py +30 -0
  247. modwire-8.0.0/src/modwire/extraction/extractors/models/__init__.py +1 -0
  248. modwire-8.0.0/src/modwire/extraction/extractors/models/batch_config.py +11 -0
  249. modwire-8.0.0/src/modwire/extraction/extractors/models/extraction_request.py +10 -0
  250. modwire-8.0.0/src/modwire/extraction/extractors/models/extractor_runtime.py +9 -0
  251. modwire-8.0.0/src/modwire/extraction/extractors/models/python_call_context.py +10 -0
  252. modwire-8.0.0/src/modwire/extraction/extractors/services/__init__.py +1 -0
  253. modwire-8.0.0/src/modwire/extraction/extractors/services/php_extractor.py +21 -0
  254. modwire-8.0.0/src/modwire/extraction/extractors/services/python_call_reader.py +61 -0
  255. modwire-8.0.0/src/modwire/extraction/extractors/services/python_extractor.py +22 -0
  256. modwire-8.0.0/src/modwire/extraction/extractors/services/python_syntax_parser.py +758 -0
  257. modwire-8.0.0/src/modwire/extraction/extractors/services/type_script_extractor.py +25 -0
  258. modwire-8.0.0/src/modwire/extraction/facade.py +30 -0
  259. modwire-8.0.0/src/modwire/py.typed +0 -0
  260. modwire-8.0.0/src/modwire/shared/__init__.py +0 -0
  261. modwire-8.0.0/src/modwire/shared/code/__init__.py +1 -0
  262. modwire-8.0.0/src/modwire/shared/code/application.py +23 -0
  263. modwire-8.0.0/src/modwire/shared/code/domain.py +19 -0
  264. modwire-8.0.0/src/modwire/shared/code/models/__init__.py +1 -0
  265. modwire-8.0.0/src/modwire/shared/code/models/code_map.py +20 -0
  266. modwire-4.0.2/src/modwire/code/package.py → modwire-8.0.0/src/modwire/shared/code/models/code_package.py +12 -16
  267. modwire-8.0.0/src/modwire/shared/code/models/dependency_edge_result.py +9 -0
  268. modwire-8.0.0/src/modwire/shared/code/models/dependency_graph.py +95 -0
  269. modwire-8.0.0/src/modwire/shared/code/models/dependency_node_result.py +10 -0
  270. modwire-8.0.0/src/modwire/shared/code/models/duplicate_identity_error.py +31 -0
  271. modwire-8.0.0/src/modwire/shared/code/models/edge.py +14 -0
  272. modwire-8.0.0/src/modwire/shared/code/models/edge_resolution.py +3 -0
  273. modwire-8.0.0/src/modwire/shared/code/models/identity.py +5 -0
  274. modwire-8.0.0/src/modwire/shared/code/models/node.py +10 -0
  275. modwire-8.0.0/src/modwire/shared/code/models/query_builder.py +33 -0
  276. modwire-8.0.0/src/modwire/shared/code/models/query_types.py +4 -0
  277. modwire-8.0.0/src/modwire/shared/code/models/queryable_code_map.py +144 -0
  278. modwire-8.0.0/src/modwire/shared/code/models/source_abstract_class.py +9 -0
  279. modwire-8.0.0/src/modwire/shared/code/models/source_call.py +13 -0
  280. modwire-8.0.0/src/modwire/shared/code/models/source_callable.py +22 -0
  281. modwire-8.0.0/src/modwire/shared/code/models/source_callable_symbol.py +6 -0
  282. modwire-8.0.0/src/modwire/shared/code/models/source_class.py +8 -0
  283. modwire-8.0.0/src/modwire/shared/code/models/source_class_method.py +5 -0
  284. modwire-8.0.0/src/modwire/shared/code/models/source_class_property.py +6 -0
  285. modwire-8.0.0/src/modwire/shared/code/models/source_export.py +17 -0
  286. modwire-8.0.0/src/modwire/shared/code/models/source_extraction.py +16 -0
  287. modwire-8.0.0/src/modwire/shared/code/models/source_file.py +32 -0
  288. modwire-8.0.0/src/modwire/shared/code/models/source_file_result.py +8 -0
  289. modwire-8.0.0/src/modwire/shared/code/models/source_function.py +5 -0
  290. modwire-8.0.0/src/modwire/shared/code/models/source_import.py +22 -0
  291. modwire-8.0.0/src/modwire/shared/code/models/source_imported_symbol.py +10 -0
  292. modwire-8.0.0/src/modwire/shared/code/models/source_interface.py +10 -0
  293. modwire-8.0.0/src/modwire/shared/code/models/source_item_result.py +5 -0
  294. modwire-8.0.0/src/modwire/shared/code/models/source_parameter.py +9 -0
  295. modwire-8.0.0/src/modwire/shared/code/models/source_signature.py +9 -0
  296. modwire-8.0.0/src/modwire/shared/code/models/source_symbol.py +9 -0
  297. modwire-8.0.0/src/modwire/shared/code/models/source_type.py +8 -0
  298. modwire-8.0.0/src/modwire/shared/code/models/source_value.py +13 -0
  299. modwire-8.0.0/src/modwire/shared/code/models/types.py +14 -0
  300. modwire-8.0.0/src/modwire/shared/code/services/__init__.py +1 -0
  301. modwire-8.0.0/src/modwire/shared/code/services/glob_path_matcher.py +41 -0
  302. modwire-8.0.0/src/modwire/shared/code/services/identity_resolver.py +30 -0
  303. modwire-8.0.0/src/modwire/shared/values/__init__.py +1 -0
  304. modwire-8.0.0/src/modwire/shared/values/models/__init__.py +0 -0
  305. modwire-8.0.0/src/modwire/shared/values/models/value_model.py +23 -0
  306. modwire-8.0.0/tests/__init__.py +0 -0
  307. modwire-8.0.0/tests/application/__init__.py +0 -0
  308. modwire-8.0.0/tests/application/base_test.py +38 -0
  309. modwire-8.0.0/tests/application/test_01_attacks.py +28 -0
  310. modwire-8.0.0/tests/application/test_06_happy_path.py +25 -0
  311. modwire-8.0.0/tests/architecture/__init__.py +0 -0
  312. modwire-8.0.0/tests/architecture/base_test.py +22 -0
  313. modwire-8.0.0/tests/architecture/boundaries/__init__.py +0 -0
  314. modwire-8.0.0/tests/architecture/boundaries/base_test.py +8 -0
  315. modwire-8.0.0/tests/architecture/boundaries/test_01_attacks.py +47 -0
  316. modwire-8.0.0/tests/architecture/boundaries/test_02_invariants.py +59 -0
  317. modwire-8.0.0/tests/architecture/boundaries/test_03_public_api.py +27 -0
  318. modwire-8.0.0/tests/architecture/boundaries/test_04_paths.py +66 -0
  319. modwire-8.0.0/tests/architecture/config/__init__.py +0 -0
  320. modwire-8.0.0/tests/architecture/config/test_01_attacks.py +50 -0
  321. modwire-8.0.0/tests/architecture/config/test_02_invariants.py +29 -0
  322. modwire-8.0.0/tests/architecture/insights/__init__.py +0 -0
  323. modwire-8.0.0/tests/architecture/insights/base_test.py +7 -0
  324. modwire-8.0.0/tests/architecture/insights/test_02_invariants.py +64 -0
  325. modwire-8.0.0/tests/architecture/map/__init__.py +0 -0
  326. modwire-8.0.0/tests/architecture/map/test_02_patterns.py +48 -0
  327. modwire-8.0.0/tests/architecture/report/__init__.py +0 -0
  328. modwire-8.0.0/tests/architecture/report/test_02_invariants.py +31 -0
  329. modwire-8.0.0/tests/architecture/shape/__init__.py +0 -0
  330. modwire-8.0.0/tests/architecture/shape/base_test.py +6 -0
  331. modwire-8.0.0/tests/architecture/shape/test_01_limits.py +68 -0
  332. modwire-8.0.0/tests/architecture/shape/test_02_invariants.py +44 -0
  333. modwire-8.0.0/tests/cli/__init__.py +0 -0
  334. modwire-8.0.0/tests/cli/base_test.py +37 -0
  335. modwire-8.0.0/tests/cli/documentation/__init__.py +0 -0
  336. modwire-8.0.0/tests/cli/documentation/test_02_invariants.py +32 -0
  337. modwire-8.0.0/tests/cli/initialization/__init__.py +0 -0
  338. modwire-8.0.0/tests/cli/initialization/test_01_attacks.py +9 -0
  339. modwire-8.0.0/tests/cli/initialization/test_02_invariants.py +15 -0
  340. modwire-8.0.0/tests/cli/initialization/test_03_interruption.py +10 -0
  341. modwire-8.0.0/tests/cli/initialization/test_04_cleanup.py +10 -0
  342. modwire-8.0.0/tests/cli/initialization/test_05_recovery.py +10 -0
  343. modwire-8.0.0/tests/cli/pipeline/__init__.py +0 -0
  344. modwire-8.0.0/tests/cli/pipeline/base_test.py +14 -0
  345. modwire-8.0.0/tests/cli/pipeline/test_01_attacks.py +44 -0
  346. modwire-8.0.0/tests/cli/pipeline/test_02_invariants.py +60 -0
  347. modwire-8.0.0/tests/cli/pipeline/test_03_interruption.py +16 -0
  348. modwire-8.0.0/tests/cli/pipeline/test_04_command_transport.py +45 -0
  349. modwire-8.0.0/tests/cli/pipeline/test_05_recovery.py +36 -0
  350. modwire-8.0.0/tests/cli/pipeline/test_06_happy_path.py +25 -0
  351. modwire-8.0.0/tests/conftest.py +0 -0
  352. modwire-8.0.0/tests/extraction/__init__.py +0 -0
  353. modwire-8.0.0/tests/extraction/base_test.py +6 -0
  354. modwire-8.0.0/tests/extraction/dependency/__init__.py +0 -0
  355. modwire-8.0.0/tests/extraction/dependency/test_02_invariants.py +41 -0
  356. modwire-8.0.0/tests/extraction/extractors/__init__.py +0 -0
  357. modwire-8.0.0/tests/extraction/extractors/test_01_attacks.py +14 -0
  358. modwire-8.0.0/tests/extraction/extractors/test_02_invariants.py +31 -0
  359. modwire-8.0.0/tests/extraction/extractors/test_03_native_symbols.py +50 -0
  360. modwire-8.0.0/tests/fixtures/languages/php/ignored/example_generated.php +6 -0
  361. modwire-8.0.0/tests/fixtures/languages/php/src/example_application/example_actions/example_action.php +28 -0
  362. modwire-8.0.0/tests/fixtures/languages/php/src/example_domain/example_model/example_record.php +16 -0
  363. modwire-8.0.0/tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php +17 -0
  364. modwire-8.0.0/tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php +18 -0
  365. modwire-8.0.0/tests/fixtures/languages/python/ignored/example_generated.py +5 -0
  366. modwire-8.0.0/tests/fixtures/languages/python/src/example_application/example_actions/example_action.py +26 -0
  367. modwire-8.0.0/tests/fixtures/languages/python/src/example_domain/example_model/example_record.py +11 -0
  368. modwire-8.0.0/tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py +10 -0
  369. modwire-8.0.0/tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py +14 -0
  370. modwire-8.0.0/tests/fixtures/languages/typescript/ignored/example_generated.ts +3 -0
  371. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts +24 -0
  372. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts +11 -0
  373. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx +5 -0
  374. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js +3 -0
  375. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts +25 -0
  376. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts +11 -0
  377. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts +13 -0
  378. modwire-8.0.0/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx +3 -0
  379. modwire-8.0.0/tests/fixtures/syntax/php/example_shapes.php +32 -0
  380. modwire-8.0.0/tests/fixtures/syntax/python/example_shapes.py +28 -0
  381. modwire-8.0.0/tests/fixtures/syntax/typescript/example_shapes.ts +28 -0
  382. modwire-8.0.0/tests/shared/__init__.py +0 -0
  383. modwire-8.0.0/tests/shared/code/__init__.py +0 -0
  384. modwire-8.0.0/tests/shared/code/test_02_invariants.py +52 -0
  385. modwire-8.0.0/tests/support/__init__.py +0 -0
  386. modwire-8.0.0/tests/support/base_test.py +28 -0
  387. modwire-8.0.0/tests/support/service_test.py +19 -0
  388. modwire-8.0.0/uv.lock +837 -0
  389. modwire-4.0.2/.github/ISSUE_TEMPLATE/bug_report.yml +0 -106
  390. modwire-4.0.2/.github/ISSUE_TEMPLATE/config.yml +0 -1
  391. modwire-4.0.2/.github/ISSUE_TEMPLATE/feature_request.yml +0 -69
  392. modwire-4.0.2/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  393. modwire-4.0.2/.github/modwire-ecosystem.yml +0 -171
  394. modwire-4.0.2/.github/scripts/reconcile_ecosystem.py +0 -405
  395. modwire-4.0.2/.github/workflows/ci.yml +0 -30
  396. modwire-4.0.2/.modwire/shape.yaml +0 -5
  397. modwire-4.0.2/MANIFEST.in +0 -1
  398. modwire-4.0.2/Makefile +0 -6
  399. modwire-4.0.2/PKG-INFO +0 -119
  400. modwire-4.0.2/README.md +0 -81
  401. modwire-4.0.2/docs/governance/github-ecosystem.md +0 -183
  402. modwire-4.0.2/docs/governance/python-workflows.md +0 -127
  403. modwire-4.0.2/docs/wiki/Home.md +0 -27
  404. modwire-4.0.2/setup.cfg +0 -4
  405. modwire-4.0.2/src/modwire/__init__.py +0 -12
  406. modwire-4.0.2/src/modwire/_version.py +0 -24
  407. modwire-4.0.2/src/modwire/architecture/__init__.py +0 -10
  408. modwire-4.0.2/src/modwire/architecture/app.py +0 -137
  409. modwire-4.0.2/src/modwire/architecture/boundaries/__init__.py +0 -8
  410. modwire-4.0.2/src/modwire/architecture/boundaries/analyzer.py +0 -56
  411. modwire-4.0.2/src/modwire/architecture/boundaries/analyzers/__init__.py +0 -1
  412. modwire-4.0.2/src/modwire/architecture/boundaries/base.py +0 -54
  413. modwire-4.0.2/src/modwire/architecture/boundaries/collector.py +0 -32
  414. modwire-4.0.2/src/modwire/architecture/boundaries/tags/__init__.py +0 -9
  415. modwire-4.0.2/src/modwire/architecture/boundaries/tags/matcher.py +0 -135
  416. modwire-4.0.2/src/modwire/architecture/insights/__init__.py +0 -8
  417. modwire-4.0.2/src/modwire/architecture/insights/base.py +0 -14
  418. modwire-4.0.2/src/modwire/architecture/insights/collector.py +0 -31
  419. modwire-4.0.2/src/modwire/architecture/insights/reporters/__init__.py +0 -7
  420. modwire-4.0.2/src/modwire/architecture/insights/reporters/base.py +0 -43
  421. modwire-4.0.2/src/modwire/architecture/insights/reporters/callables.py +0 -60
  422. modwire-4.0.2/src/modwire/architecture/insights/reporters/clusters.py +0 -121
  423. modwire-4.0.2/src/modwire/architecture/insights/reporters/coherence.py +0 -65
  424. modwire-4.0.2/src/modwire/architecture/insights/reporters/hotspots.py +0 -62
  425. modwire-4.0.2/src/modwire/architecture/map/__init__.py +0 -11
  426. modwire-4.0.2/src/modwire/architecture/map/collector.py +0 -40
  427. modwire-4.0.2/src/modwire/architecture/map/loader.py +0 -63
  428. modwire-4.0.2/src/modwire/architecture/shape/__init__.py +0 -8
  429. modwire-4.0.2/src/modwire/architecture/shape/base.py +0 -92
  430. modwire-4.0.2/src/modwire/architecture/shape/collector.py +0 -42
  431. modwire-4.0.2/src/modwire/architecture/shape/resolvers/symbol_resolver.py +0 -33
  432. modwire-4.0.2/src/modwire/code/__init__.py +0 -10
  433. modwire-4.0.2/src/modwire/code/reader.py +0 -9
  434. modwire-4.0.2/src/modwire/code/writer.py +0 -27
  435. modwire-4.0.2/src/modwire/facade.py +0 -30
  436. modwire-4.0.2/src/modwire/layers/__init__.py +0 -11
  437. modwire-4.0.2/src/modwire/layers/app.py +0 -9
  438. modwire-4.0.2/src/modwire/modules/__init__.py +0 -4
  439. modwire-4.0.2/src/modwire/modules/app.py +0 -9
  440. modwire-4.0.2/src/modwire/projects/__init__.py +0 -43
  441. modwire-4.0.2/src/modwire/projects/app.py +0 -9
  442. modwire-4.0.2/src/modwire/projects/ecosystem.py +0 -269
  443. modwire-4.0.2/src/modwire/shared/__init__.py +0 -19
  444. modwire-4.0.2/src/modwire/shared/base.py +0 -76
  445. modwire-4.0.2/src/modwire/shared/config/__init__.py +0 -36
  446. modwire-4.0.2/src/modwire/shared/config/architecture.py +0 -67
  447. modwire-4.0.2/src/modwire/shared/config/layers.py +0 -30
  448. modwire-4.0.2/src/modwire/shared/config/modules.py +0 -18
  449. modwire-4.0.2/src/modwire/shared/config/modwire.py +0 -54
  450. modwire-4.0.2/src/modwire/shared/config/projects.py +0 -27
  451. modwire-4.0.2/src/modwire/shared/config/shape.py +0 -40
  452. modwire-4.0.2/src/modwire/shared/report/__init__.py +0 -18
  453. modwire-4.0.2/src/modwire/shared/report/base.py +0 -105
  454. modwire-4.0.2/src/modwire.egg-info/PKG-INFO +0 -119
  455. modwire-4.0.2/src/modwire.egg-info/SOURCES.txt +0 -104
  456. modwire-4.0.2/src/modwire.egg-info/requires.txt +0 -11
  457. modwire-4.0.2/src/modwire.egg-info/scm_file_list.json +0 -101
  458. modwire-4.0.2/src/modwire.egg-info/scm_version.json +0 -8
  459. modwire-4.0.2/src/modwire.egg-info/top_level.txt +0 -1
  460. modwire-4.0.2/tests/test_architecture.py +0 -19
  461. modwire-4.0.2/tests/test_ecosystem_contract.py +0 -69
  462. modwire-4.0.2/tests/test_models.py +0 -60
  463. modwire-4.0.2/uv.lock +0 -841
  464. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/.github/workflows/python-package.yml +0 -0
  465. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/.github/workflows/python-release-assets.yml +0 -0
  466. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/.github/workflows/python-release-build.yml +0 -0
  467. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/.modwire/boundaries.yaml +0 -0
  468. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/LICENSE +0 -0
  469. {modwire-4.0.2 → modwire-8.0.0/docs/legacy/architecture}/docs/wiki/Development-checks.md +0 -0
  470. {modwire-4.0.2/src/modwire/architecture/shape/resolvers → modwire-8.0.0/src/modwire}/__init__.py +0 -0
  471. /modwire-4.0.2/src/modwire.egg-info/dependency_links.txt → /modwire-8.0.0/src/modwire/architecture/boundaries/__init__.py +0 -0
  472. /modwire-4.0.2/src/modwire/py.typed → /modwire-8.0.0/src/modwire/architecture/boundaries/models/__init__.py +0 -0
@@ -0,0 +1,395 @@
1
+ .gitignore
2
+ AGENTS.md
3
+ LICENSE
4
+ MANIFEST.in
5
+ Makefile
6
+ README.md
7
+ pyproject.toml
8
+ setup.cfg
9
+ setup.py
10
+ uv.lock
11
+ .github/workflows/ci.yml
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
82
+ scripts/generate_docs.py
83
+ scripts/verify_consumer.py
84
+ src/modwire/__init__.py
85
+ src/modwire/__main__.py
86
+ src/modwire/application.py
87
+ src/modwire/autowiring.py
88
+ src/modwire/py.typed
89
+ src/modwire/architecture/__init__.py
90
+ src/modwire/architecture/facade.py
91
+ src/modwire/architecture/boundaries/__init__.py
92
+ src/modwire/architecture/boundaries/application.py
93
+ src/modwire/architecture/boundaries/domain.py
94
+ src/modwire/architecture/boundaries/models/__init__.py
95
+ src/modwire/architecture/boundaries/models/edge_rule_violation.py
96
+ src/modwire/architecture/boundaries/models/flow_report.py
97
+ src/modwire/architecture/boundaries/models/flow_violation.py
98
+ src/modwire/architecture/boundaries/models/types.py
99
+ src/modwire/architecture/boundaries/services/__init__.py
100
+ src/modwire/architecture/boundaries/services/backward_flow_analyzer.py
101
+ src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py
102
+ src/modwire/architecture/boundaries/services/module_boundary_analyzer.py
103
+ src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py
104
+ src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py
105
+ src/modwire/architecture/config/__init__.py
106
+ src/modwire/architecture/config/application.py
107
+ src/modwire/architecture/config/models/__init__.py
108
+ src/modwire/architecture/config/models/architecture_config.py
109
+ src/modwire/architecture/config/models/boundaries_config.py
110
+ src/modwire/architecture/config/models/boundary_rule.py
111
+ src/modwire/architecture/config/models/configuration_value.py
112
+ src/modwire/architecture/config/models/flow_realm.py
113
+ src/modwire/architecture/config/models/flow_rules.py
114
+ src/modwire/architecture/config/models/shape_config.py
115
+ src/modwire/architecture/config/models/shape_realm.py
116
+ src/modwire/architecture/config/models/shape_rules.py
117
+ src/modwire/architecture/config/models/tag_rule.py
118
+ src/modwire/architecture/insights/__init__.py
119
+ src/modwire/architecture/insights/application.py
120
+ src/modwire/architecture/insights/domain.py
121
+ src/modwire/architecture/insights/models/__init__.py
122
+ src/modwire/architecture/insights/models/callable_report_entry.py
123
+ src/modwire/architecture/insights/models/callables_report.py
124
+ src/modwire/architecture/insights/models/clusters_report.py
125
+ src/modwire/architecture/insights/models/clusters_report_item.py
126
+ src/modwire/architecture/insights/models/coherence_report.py
127
+ src/modwire/architecture/insights/models/exports_report.py
128
+ src/modwire/architecture/insights/models/exports_report_item.py
129
+ src/modwire/architecture/insights/models/hotspots_report.py
130
+ src/modwire/architecture/insights/models/hotspots_report_item.py
131
+ src/modwire/architecture/insights/models/insight_report.py
132
+ src/modwire/architecture/insights/services/__init__.py
133
+ src/modwire/architecture/insights/services/callables_reporter.py
134
+ src/modwire/architecture/insights/services/clusters_reporter.py
135
+ src/modwire/architecture/insights/services/coherence_reporter.py
136
+ src/modwire/architecture/insights/services/exports_reporter.py
137
+ src/modwire/architecture/insights/services/hotspots_reporter.py
138
+ src/modwire/architecture/insights/services/insight_report_field_map.py
139
+ src/modwire/architecture/map/__init__.py
140
+ src/modwire/architecture/map/application.py
141
+ src/modwire/architecture/map/domain.py
142
+ src/modwire/architecture/map/models/__init__.py
143
+ src/modwire/architecture/map/models/architecture_map.py
144
+ src/modwire/architecture/map/models/architecture_realm.py
145
+ src/modwire/architecture/map/models/tag_map.py
146
+ src/modwire/architecture/map/models/tag_match.py
147
+ src/modwire/architecture/map/services/__init__.py
148
+ src/modwire/architecture/map/services/architecture_map_loader.py
149
+ src/modwire/architecture/map/services/tag_matcher.py
150
+ src/modwire/architecture/report/__init__.py
151
+ src/modwire/architecture/report/application.py
152
+ src/modwire/architecture/report/domain.py
153
+ src/modwire/architecture/report/models/__init__.py
154
+ src/modwire/architecture/report/models/architecture_group.py
155
+ src/modwire/architecture/report/models/map_report.py
156
+ src/modwire/architecture/report/models/report_catalog.py
157
+ src/modwire/architecture/report/models/report_descriptor.py
158
+ src/modwire/architecture/report/models/report_item.py
159
+ src/modwire/architecture/report/models/report_metadata.py
160
+ src/modwire/architecture/report/models/report_node.py
161
+ src/modwire/architecture/report/models/report_section.py
162
+ src/modwire/architecture/report/services/__init__.py
163
+ src/modwire/architecture/report/services/map_report_collector.py
164
+ src/modwire/architecture/shape/__init__.py
165
+ src/modwire/architecture/shape/application.py
166
+ src/modwire/architecture/shape/domain.py
167
+ src/modwire/architecture/shape/models/__init__.py
168
+ src/modwire/architecture/shape/models/shape_realm_architecture_map.py
169
+ src/modwire/architecture/shape/models/shape_report.py
170
+ src/modwire/architecture/shape/models/shape_violation.py
171
+ src/modwire/architecture/shape/services/__init__.py
172
+ src/modwire/architecture/shape/services/abstract_class_resolver.py
173
+ src/modwire/architecture/shape/services/callable_resolver.py
174
+ src/modwire/architecture/shape/services/class_resolver.py
175
+ src/modwire/architecture/shape/services/file_resolver.py
176
+ src/modwire/architecture/shape/services/import_resolver.py
177
+ src/modwire/architecture/shape/services/property_resolver.py
178
+ src/modwire/architecture/shape/services/signature_resolver.py
179
+ src/modwire/architecture/shape/services/symbol_resolver.py
180
+ src/modwire/cli/__init__.py
181
+ src/modwire/cli/facade.py
182
+ src/modwire/cli/documentation/__init__.py
183
+ src/modwire/cli/documentation/application.py
184
+ src/modwire/cli/documentation/models/__init__.py
185
+ src/modwire/cli/documentation/models/defaults.py
186
+ src/modwire/cli/documentation/services/__init__.py
187
+ src/modwire/cli/documentation/services/documentation_generator.py
188
+ src/modwire/cli/initialization/__init__.py
189
+ src/modwire/cli/initialization/application.py
190
+ src/modwire/cli/initialization/models/__init__.py
191
+ src/modwire/cli/initialization/models/initialization_result.py
192
+ src/modwire/cli/initialization/services/__init__.py
193
+ src/modwire/cli/initialization/services/initialization_service.py
194
+ src/modwire/cli/pipeline/__init__.py
195
+ src/modwire/cli/pipeline/application.py
196
+ src/modwire/cli/pipeline/domain.py
197
+ src/modwire/cli/pipeline/models/__init__.py
198
+ src/modwire/cli/pipeline/models/command_request.py
199
+ src/modwire/cli/pipeline/models/extractor_batch_input.py
200
+ src/modwire/cli/pipeline/models/extractor_command_input.py
201
+ src/modwire/cli/pipeline/models/extractor_source_input.py
202
+ src/modwire/cli/pipeline/models/report_pipeline_context.py
203
+ src/modwire/cli/pipeline/services/__init__.py
204
+ src/modwire/cli/pipeline/services/batch_source_reader.py
205
+ src/modwire/cli/pipeline/services/callables_insight.py
206
+ src/modwire/cli/pipeline/services/clusters_insight.py
207
+ src/modwire/cli/pipeline/services/coherence_insight.py
208
+ src/modwire/cli/pipeline/services/command_line.py
209
+ src/modwire/cli/pipeline/services/configuration_loader.py
210
+ src/modwire/cli/pipeline/services/extractor_command.py
211
+ src/modwire/cli/pipeline/services/flow_violations.py
212
+ src/modwire/cli/pipeline/services/hotspots_insight.py
213
+ src/modwire/cli/pipeline/services/map_tree.py
214
+ src/modwire/cli/pipeline/services/output_console.py
215
+ src/modwire/cli/pipeline/services/shape_violations.py
216
+ src/modwire/cli/pipeline/services/success.py
217
+ src/modwire/cli/pipeline/services/unknown_files_warning.py
218
+ src/modwire/cli/pipeline/services/unused_exports_insight.py
219
+ src/modwire/cli/resources/__init__.py
220
+ 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
+ src/modwire/cli/resources/models/__init__.py
236
+ src/modwire/cli/resources/models/defaults.py
237
+ src/modwire/cli/resources/models/init_asset.py
238
+ src/modwire/cli/resources/templates/AGENTS.md
239
+ src/modwire/cli/resources/templates/ARCHITECTURE.md
240
+ src/modwire/cli/resources/templates/INDEX.md
241
+ src/modwire/cli/resources/templates/MODWIRE.md
242
+ src/modwire/cli/resources/templates/RULES.md
243
+ src/modwire/cli/resources/templates/TESTING.md
244
+ src/modwire/cli/resources/templates/WORKFLOW.md
245
+ src/modwire/cli/resources/templates/architecture.yaml
246
+ src/modwire/extraction/__init__.py
247
+ src/modwire/extraction/facade.py
248
+ src/modwire/extraction/dependency/__init__.py
249
+ src/modwire/extraction/dependency/application.py
250
+ src/modwire/extraction/dependency/domain.py
251
+ src/modwire/extraction/dependency/services/__init__.py
252
+ src/modwire/extraction/dependency/services/graph_builder.py
253
+ src/modwire/extraction/dependency/services/import_resolver.py
254
+ src/modwire/extraction/extractors/__init__.py
255
+ src/modwire/extraction/extractors/application.py
256
+ src/modwire/extraction/extractors/domain.py
257
+ src/modwire/extraction/extractors/models/__init__.py
258
+ src/modwire/extraction/extractors/models/batch_config.py
259
+ src/modwire/extraction/extractors/models/extraction_request.py
260
+ src/modwire/extraction/extractors/models/extractor_runtime.py
261
+ src/modwire/extraction/extractors/models/python_call_context.py
262
+ src/modwire/extraction/extractors/services/__init__.py
263
+ src/modwire/extraction/extractors/services/php_extractor.py
264
+ src/modwire/extraction/extractors/services/python_call_reader.py
265
+ src/modwire/extraction/extractors/services/python_extractor.py
266
+ src/modwire/extraction/extractors/services/python_syntax_parser.py
267
+ src/modwire/extraction/extractors/services/type_script_extractor.py
268
+ src/modwire/shared/__init__.py
269
+ src/modwire/shared/code/__init__.py
270
+ src/modwire/shared/code/application.py
271
+ src/modwire/shared/code/domain.py
272
+ src/modwire/shared/code/models/__init__.py
273
+ src/modwire/shared/code/models/code_map.py
274
+ src/modwire/shared/code/models/code_package.py
275
+ src/modwire/shared/code/models/dependency_edge_result.py
276
+ src/modwire/shared/code/models/dependency_graph.py
277
+ src/modwire/shared/code/models/dependency_node_result.py
278
+ src/modwire/shared/code/models/duplicate_identity_error.py
279
+ src/modwire/shared/code/models/edge.py
280
+ src/modwire/shared/code/models/edge_resolution.py
281
+ src/modwire/shared/code/models/identity.py
282
+ src/modwire/shared/code/models/node.py
283
+ src/modwire/shared/code/models/query_builder.py
284
+ src/modwire/shared/code/models/query_types.py
285
+ src/modwire/shared/code/models/queryable_code_map.py
286
+ src/modwire/shared/code/models/source_abstract_class.py
287
+ src/modwire/shared/code/models/source_call.py
288
+ src/modwire/shared/code/models/source_callable.py
289
+ src/modwire/shared/code/models/source_callable_symbol.py
290
+ src/modwire/shared/code/models/source_class.py
291
+ src/modwire/shared/code/models/source_class_method.py
292
+ src/modwire/shared/code/models/source_class_property.py
293
+ src/modwire/shared/code/models/source_export.py
294
+ src/modwire/shared/code/models/source_extraction.py
295
+ src/modwire/shared/code/models/source_file.py
296
+ src/modwire/shared/code/models/source_file_result.py
297
+ src/modwire/shared/code/models/source_function.py
298
+ src/modwire/shared/code/models/source_import.py
299
+ src/modwire/shared/code/models/source_imported_symbol.py
300
+ src/modwire/shared/code/models/source_interface.py
301
+ src/modwire/shared/code/models/source_item_result.py
302
+ src/modwire/shared/code/models/source_parameter.py
303
+ src/modwire/shared/code/models/source_signature.py
304
+ src/modwire/shared/code/models/source_symbol.py
305
+ src/modwire/shared/code/models/source_type.py
306
+ src/modwire/shared/code/models/source_value.py
307
+ src/modwire/shared/code/models/types.py
308
+ src/modwire/shared/code/services/__init__.py
309
+ src/modwire/shared/code/services/glob_path_matcher.py
310
+ src/modwire/shared/code/services/identity_resolver.py
311
+ src/modwire/shared/values/__init__.py
312
+ src/modwire/shared/values/models/__init__.py
313
+ src/modwire/shared/values/models/value_model.py
314
+ tests/__init__.py
315
+ tests/conftest.py
316
+ tests/application/__init__.py
317
+ tests/application/base_test.py
318
+ tests/application/test_01_attacks.py
319
+ tests/application/test_06_happy_path.py
320
+ tests/architecture/__init__.py
321
+ tests/architecture/base_test.py
322
+ tests/architecture/boundaries/__init__.py
323
+ tests/architecture/boundaries/base_test.py
324
+ tests/architecture/boundaries/test_01_attacks.py
325
+ tests/architecture/boundaries/test_02_invariants.py
326
+ tests/architecture/boundaries/test_03_public_api.py
327
+ tests/architecture/boundaries/test_04_paths.py
328
+ tests/architecture/config/__init__.py
329
+ tests/architecture/config/test_01_attacks.py
330
+ tests/architecture/config/test_02_invariants.py
331
+ tests/architecture/insights/__init__.py
332
+ tests/architecture/insights/base_test.py
333
+ tests/architecture/insights/test_02_invariants.py
334
+ tests/architecture/map/__init__.py
335
+ tests/architecture/map/test_02_patterns.py
336
+ tests/architecture/report/__init__.py
337
+ tests/architecture/report/test_02_invariants.py
338
+ tests/architecture/shape/__init__.py
339
+ tests/architecture/shape/base_test.py
340
+ tests/architecture/shape/test_01_limits.py
341
+ tests/architecture/shape/test_02_invariants.py
342
+ tests/cli/__init__.py
343
+ tests/cli/base_test.py
344
+ tests/cli/documentation/__init__.py
345
+ tests/cli/documentation/test_02_invariants.py
346
+ tests/cli/initialization/__init__.py
347
+ tests/cli/initialization/test_01_attacks.py
348
+ tests/cli/initialization/test_02_invariants.py
349
+ tests/cli/initialization/test_03_interruption.py
350
+ tests/cli/initialization/test_04_cleanup.py
351
+ tests/cli/initialization/test_05_recovery.py
352
+ tests/cli/pipeline/__init__.py
353
+ tests/cli/pipeline/base_test.py
354
+ tests/cli/pipeline/test_01_attacks.py
355
+ tests/cli/pipeline/test_02_invariants.py
356
+ tests/cli/pipeline/test_03_interruption.py
357
+ tests/cli/pipeline/test_04_command_transport.py
358
+ tests/cli/pipeline/test_05_recovery.py
359
+ tests/cli/pipeline/test_06_happy_path.py
360
+ tests/extraction/__init__.py
361
+ tests/extraction/base_test.py
362
+ tests/extraction/dependency/__init__.py
363
+ tests/extraction/dependency/test_02_invariants.py
364
+ tests/extraction/extractors/__init__.py
365
+ tests/extraction/extractors/test_01_attacks.py
366
+ tests/extraction/extractors/test_02_invariants.py
367
+ tests/extraction/extractors/test_03_native_symbols.py
368
+ tests/fixtures/languages/php/ignored/example_generated.php
369
+ tests/fixtures/languages/php/src/example_application/example_actions/example_action.php
370
+ tests/fixtures/languages/php/src/example_domain/example_model/example_record.php
371
+ tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php
372
+ tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php
373
+ tests/fixtures/languages/python/ignored/example_generated.py
374
+ tests/fixtures/languages/python/src/example_application/example_actions/example_action.py
375
+ tests/fixtures/languages/python/src/example_domain/example_model/example_record.py
376
+ tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py
377
+ tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py
378
+ tests/fixtures/languages/typescript/ignored/example_generated.ts
379
+ tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts
380
+ tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts
381
+ tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx
382
+ tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js
383
+ tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts
384
+ tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts
385
+ tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts
386
+ tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx
387
+ tests/fixtures/syntax/php/example_shapes.php
388
+ tests/fixtures/syntax/python/example_shapes.py
389
+ tests/fixtures/syntax/typescript/example_shapes.ts
390
+ tests/shared/__init__.py
391
+ tests/shared/code/__init__.py
392
+ tests/shared/code/test_02_invariants.py
393
+ tests/support/__init__.py
394
+ tests/support/base_test.py
395
+ tests/support/service_test.py
@@ -0,0 +1,45 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ verify:
14
+ name: Python ${{ matrix.python-version }}
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.12", "3.13", "3.14"]
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0
24
+ - uses: actions/setup-python@v6
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+ - run: python -m pip install uv
28
+ - run: uv sync --all-groups --locked
29
+ - run: make python-ci
30
+
31
+ native-extractors:
32
+ name: Native extractors
33
+ runs-on: ubuntu-latest
34
+ steps:
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
@@ -0,0 +1,63 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ build:
12
+ name: Build release distributions
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+ with:
17
+ fetch-depth: 0
18
+ ref: ${{ github.event.release.tag_name }}
19
+ - uses: actions/setup-python@v6
20
+ with:
21
+ python-version: "3.12"
22
+ - run: python -m pip install uv
23
+ - run: uv sync --all-groups --locked
24
+ - run: make package-check
25
+ - uses: actions/upload-artifact@v4
26
+ with:
27
+ name: python-package-distributions
28
+ path: .dev/dist/
29
+
30
+ publish-github-assets:
31
+ name: Attach distributions to GitHub release
32
+ needs: build
33
+ runs-on: ubuntu-latest
34
+ permissions:
35
+ contents: write
36
+ steps:
37
+ - uses: actions/download-artifact@v4
38
+ with:
39
+ name: python-package-distributions
40
+ path: .dev/dist/
41
+ - name: Upload release assets
42
+ env:
43
+ GH_TOKEN: ${{ github.token }}
44
+ run: gh release upload "${{ github.event.release.tag_name }}" .dev/dist/* --clobber --repo "${{ github.repository }}"
45
+
46
+ publish-pypi:
47
+ name: Publish distributions to PyPI
48
+ needs: [build, publish-github-assets]
49
+ runs-on: ubuntu-latest
50
+ environment:
51
+ name: pypi
52
+ url: https://pypi.org/project/modwire/
53
+ permissions:
54
+ id-token: write
55
+ steps:
56
+ - uses: actions/download-artifact@v4
57
+ with:
58
+ name: python-package-distributions
59
+ path: .dev/dist/
60
+ - uses: pypa/gh-action-pypi-publish@release/v1
61
+ with:
62
+ packages-dir: .dev/dist/
63
+ skip-existing: true
@@ -1,11 +1,13 @@
1
+ .venv/
1
2
  .dev/
2
- .env
3
+ __pycache__/
4
+ *.py[cod]
5
+ *.egg-info/
3
6
  .pytest_cache/
4
7
  .ruff_cache/
5
- .venv/
6
8
  build/
7
9
  dist/
8
- src/*.egg-info/
10
+ node_modules/
11
+ vendor/
9
12
  src/modwire/_version.py
10
- __pycache__/
11
- *.py[cod]
13
+ .coverage
@@ -0,0 +1,122 @@
1
+ excluded_patterns:
2
+ - .dev/**
3
+ - tests/fixtures/**
4
+ - scripts/**
5
+ - build/**
6
+ - dist/**
7
+ - "**/__pycache__/**"
8
+ - setup.py
9
+ - src/modwire/__init__.py
10
+ - src/modwire/_version.py
11
+
12
+ boundaries:
13
+ tags:
14
+ - {name: context, match: "src/modwire/*", excluded_patterns: ["src/modwire/*.py"]}
15
+ - {name: module, match: "src/modwire/*/*", excluded_patterns: ["src/modwire/*/*.py"]}
16
+ - {name: facade, match: "src/modwire/*/facade.py"}
17
+ - {name: application, match: "src/modwire/*/*/application.py"}
18
+ - {name: domain, match: "src/modwire/*/*/domain.py"}
19
+ - {name: model, match: "src/modwire/*/*/models"}
20
+ - {name: service, match: "src/modwire/*/*/services"}
21
+ - {name: shared, match: "src/modwire/shared"}
22
+ - {name: package-entrypoint, match: "src/modwire/__main__.py"}
23
+ - {name: public-application, match: "src/modwire/application.py"}
24
+ - {name: autowiring, match: "src/modwire/autowiring.py"}
25
+ - {name: tests, match: "tests"}
26
+ - {name: python-helper, match: "src/modwire/cli/resources/extractors/python/script.py"}
27
+ rules:
28
+ - {realm: contexts, source: facade, allow: [facade, model]}
29
+ - {realm: contexts, source: context, allow: [model, shared]}
30
+ - {realm: modules, source: facade, allow: [application, model]}
31
+ - {realm: modules, source: application, allow: [application, domain, model]}
32
+ - {realm: modules, source: context, allow: [shared]}
33
+ - {realm: modules, source: module, allow: [model]}
34
+ - {realm: contexts, source: public-application, allow: [facade, model]}
35
+ - {realm: modules, source: public-application, allow: [facade, model]}
36
+ - {realm: contexts, source: autowiring, allow: [public-application, facade]}
37
+ - {realm: modules, source: autowiring, allow: [public-application, facade]}
38
+ - {realm: contexts, source: python-helper, allow: [autowiring]}
39
+ - {realm: modules, source: python-helper, allow: [autowiring]}
40
+ - {realm: test-api, source: tests, allow: [public-application]}
41
+ flow:
42
+ standalone_tags: [package-entrypoint, public-application, autowiring]
43
+ realms: [{name: contexts, module_tag: context}, {name: modules, module_tag: module}, {name: test-api, module_tag: tests}]
44
+ analyzers: [module-boundaries, backward-flow, no-cycles, no-reentry]
45
+ shape:
46
+ realms:
47
+ - name: architecture
48
+ match: src/modwire/architecture
49
+ shape:
50
+ max_functions_per_file: 0
51
+ - name: cli
52
+ match: src/modwire/cli
53
+ shape:
54
+ max_classes_per_file: 1
55
+ max_interfaces_per_file: 0
56
+ max_types_per_file: 0
57
+ max_abstract_classes_per_file: -1
58
+ max_functions_per_file: 0
59
+ allow_optional_function_args: false
60
+ allow_optional_method_args: false
61
+ allow_optional_class_properties: false
62
+ allow_import_aliases: false
63
+ require_joined_imports: true
64
+ allowed_import_crossing_types: [module, symbol]
65
+ - name: autowiring
66
+ match: src/modwire/autowiring.py
67
+ shape:
68
+ max_classes_per_file: 0
69
+ max_functions_per_file: 2
70
+ - name: public-application
71
+ match: src/modwire/application.py
72
+ shape:
73
+ max_classes_per_file: 1
74
+ max_functions_per_file: 0
75
+ - name: tests
76
+ match: tests
77
+ shape:
78
+ max_classes_per_file: 1
79
+ max_functions_per_file: 0
80
+ - name: extraction
81
+ match: src/modwire/extraction
82
+ shape:
83
+ max_classes_per_file: 1
84
+ max_functions_per_file: 0
85
+ allow_optional_function_args: false
86
+ allow_optional_method_args: false
87
+ allow_optional_class_properties: false
88
+ allow_import_aliases: false
89
+ require_joined_imports: true
90
+ - name: shared
91
+ match: src/modwire/shared
92
+ excluded_patterns: ["src/modwire/shared/*/models/**"]
93
+ shape:
94
+ max_classes_per_file: 1
95
+ max_functions_per_file: 0
96
+ allow_optional_function_args: false
97
+ allow_optional_method_args: false
98
+ allow_optional_class_properties: false
99
+ allow_import_aliases: false
100
+ require_joined_imports: true
101
+ - name: shared-models
102
+ match: "src/modwire/shared/*/models"
103
+ shape:
104
+ max_classes_per_file: 1
105
+ max_functions_per_file: 0
106
+ allow_optional_method_args: true
107
+ allow_optional_class_properties: true
108
+ - name: bootstrap
109
+ match: src/modwire/__init__.py
110
+ shape:
111
+ max_functions_per_file: 0
112
+ allow_optional_function_args: false
113
+ allow_optional_method_args: false
114
+ allow_optional_class_properties: false
115
+ allow_import_aliases: false
116
+ require_joined_imports: true
117
+ - name: entrypoint
118
+ match: src/modwire/__main__.py
119
+ shape:
120
+ max_functions_per_file: 0
121
+ allow_import_aliases: false
122
+ require_joined_imports: true
@@ -0,0 +1 @@
1
+ Before work, call enclosure-mcp.get_workspace_context(root, task) once; obey its guidance and stop if unavailable or incomplete. Workflow: GitHub issue first; diagrams are SSOT; wait for explicit design acceptance; implement on a local issue branch; run required tests and enclosure-mcp.check_project_health after structural/API/DI/architecture changes; wait for explicit implementation acceptance before commit, push, PR, merge, closure, or branch cleanup. Preserve project names and unrelated changes.
modwire-8.0.0/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2026 Tomasz Szpak. All rights reserved.
2
+
3
+ This software and its source code are proprietary. No license or other rights are granted to any person or entity.
4
+
5
+ Without prior express written permission from the copyright holder, you may not use, copy, reproduce, modify, merge,
6
+ publish, distribute, sublicense, sell, or create derivative works from this software or any portion of it, except to the
7
+ extent that such restriction is prohibited by applicable law.
8
+
9
+ Any unauthorized use is strictly prohibited.
10
+
11
+ THE SOFTWARE IS PROVIDED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
12
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
13
+ LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR ITS USE.