modwire 11.0.2__tar.gz → 11.0.3__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 (525) hide show
  1. {modwire-11.0.2 → modwire-11.0.3}/.dev/modwire.egg-info/SOURCES.txt +22 -4
  2. {modwire-11.0.2 → modwire-11.0.3}/PKG-INFO +1 -1
  3. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/application.py +1 -1
  4. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/module_boundary_analyzer.py +2 -1
  5. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_rules.py +5 -1
  6. modwire-11.0.3/src/modwire/architecture/insights/models/exports_report_item.py +11 -0
  7. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/coherence_reporter.py +4 -1
  8. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/file_resolver.py +3 -1
  9. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/import_resolver.py +2 -1
  10. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/application.py +2 -1
  11. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_identity.py +3 -1
  12. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/facade.py +3 -2
  13. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/application.py +8 -6
  14. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/services/initialization_service.py +5 -1
  15. modwire-11.0.3/src/modwire/cli/pipeline/models/command_name.py +7 -0
  16. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/command_request.py +2 -2
  17. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/batch_source_reader.py +6 -4
  18. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/command_line.py +6 -5
  19. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/source_manifest_builder.py +4 -9
  20. modwire-11.0.3/src/modwire/cli/resources/models/defaults.py +15 -0
  21. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/models/init_asset.py +2 -2
  22. modwire-11.0.3/src/modwire/cli/resources/models/init_target_base.py +6 -0
  23. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_resolver.py +15 -4
  24. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/batch_config.py +2 -3
  25. modwire-11.0.3/src/modwire/extraction/extractors/models/batch_output_format.py +6 -0
  26. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_runtime.py +2 -2
  27. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/php/extractor.py +11 -13
  28. modwire-11.0.3/src/modwire/extraction/extractors/python/extractor.py +122 -0
  29. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/export_candidate.py +1 -1
  30. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/property_candidate.py +5 -2
  31. modwire-11.0.3/src/modwire/extraction/extractors/python/observations/property_scope.py +6 -0
  32. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/classifier.py +1 -1
  33. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/constructor_rule.py +2 -2
  34. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/function_rule.py +8 -4
  35. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/instance_method_rule.py +2 -2
  36. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/static_method_rule.py +2 -2
  37. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/callables/type_method_rule.py +2 -2
  38. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/classifier.py +1 -1
  39. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/constructor_target_rule.py +2 -1
  40. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/dynamic_target_rule.py +2 -1
  41. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/instance_target_rule.py +2 -1
  42. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/local_target_rule.py +2 -1
  43. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/qualified_target_rule.py +2 -1
  44. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/unresolved_target_rule.py +2 -1
  45. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/call_contributor.py +9 -2
  46. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/callable_contributor.py +11 -5
  47. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/class_contributor.py +22 -22
  48. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/export_contributor.py +7 -7
  49. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/function_contributor.py +2 -1
  50. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/import_contributor.py +3 -2
  51. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/metric_contributor.py +4 -2
  52. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/value_contributor.py +19 -13
  53. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/exports/classifier.py +2 -1
  54. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/parameter_reader.py +5 -4
  55. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/visibility_policy.py +4 -4
  56. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/properties/annotated_class_rule.py +2 -1
  57. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/properties/annotated_instance_rule.py +2 -1
  58. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/properties/assigned_class_rule.py +8 -2
  59. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/properties/assigned_instance_rule.py +2 -1
  60. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/properties/classifier.py +1 -1
  61. modwire-11.0.3/src/modwire/extraction/extractors/python/semantics/properties/decorated_method_rule.py +77 -0
  62. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/traversal/context.py +5 -3
  63. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/traversal/ordered_observation_visitor.py +65 -31
  64. modwire-11.0.3/src/modwire/extraction/extractors/python/traversal/traversal_role.py +8 -0
  65. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/extractor.py +11 -13
  66. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest.py +9 -4
  67. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/implementation_manifest_document.py +1 -1
  68. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_annotation.py +2 -1
  69. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_annotation_role.py +9 -0
  70. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_attribute.py +1 -1
  71. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_callable.py +2 -1
  72. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_dependency.py +5 -3
  73. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_dependency_target_kind.py +7 -0
  74. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_parameter.py +2 -1
  75. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_symbol.py +4 -2
  76. modwire-11.0.3/src/modwire/implementation/manifest/models/manifest_symbol_kind.py +15 -0
  77. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/services/canonical_json_manifest_serializer.py +1 -1
  78. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/services/code_map_manifest_compiler.py +67 -25
  79. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_graph.py +4 -3
  80. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/duplicate_identity_error.py +2 -3
  81. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/edge.py +2 -2
  82. modwire-11.0.3/src/modwire/shared/code/models/identity_kind.py +6 -0
  83. modwire-11.0.3/src/modwire/shared/code/models/import_crossing_type.py +6 -0
  84. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/node.py +2 -1
  85. modwire-11.0.3/src/modwire/shared/code/models/node_kind.py +5 -0
  86. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_call.py +1 -1
  87. modwire-11.0.3/src/modwire/shared/code/models/source_call_resolution.py +8 -0
  88. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable.py +8 -8
  89. modwire-11.0.3/src/modwire/shared/code/models/source_callable_kind.py +11 -0
  90. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_property.py +1 -1
  91. modwire-11.0.3/src/modwire/shared/code/models/source_dependency_resolution.py +7 -0
  92. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_export.py +2 -1
  93. modwire-11.0.3/src/modwire/shared/code/models/source_export_kind.py +12 -0
  94. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_import.py +3 -2
  95. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest.py +2 -1
  96. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_manifest_identity.py +2 -1
  97. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_parameter.py +1 -1
  98. modwire-11.0.3/src/modwire/shared/code/models/source_parameter_kind.py +8 -0
  99. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_signature.py +1 -1
  100. modwire-11.0.3/src/modwire/shared/code/models/source_signature_kind.py +7 -0
  101. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_symbol.py +1 -1
  102. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_value.py +3 -1
  103. modwire-11.0.3/src/modwire/shared/code/models/source_value_declaration_kind.py +8 -0
  104. modwire-11.0.3/src/modwire/shared/code/models/source_value_kind.py +9 -0
  105. modwire-11.0.3/src/modwire/shared/code/models/source_visibility.py +7 -0
  106. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_01_attacks.py +47 -0
  107. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_08_implementation_manifest.py +140 -0
  108. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/config/test_01_attacks.py +16 -0
  109. modwire-11.0.2/src/modwire/architecture/insights/models/exports_report_item.py +0 -9
  110. modwire-11.0.2/src/modwire/cli/resources/models/defaults.py +0 -14
  111. modwire-11.0.2/src/modwire/extraction/extractors/models/extractor_resource_set.py +0 -23
  112. modwire-11.0.2/src/modwire/extraction/extractors/python/extractor.py +0 -219
  113. modwire-11.0.2/src/modwire/shared/code/models/edge_resolution.py +0 -3
  114. modwire-11.0.2/src/modwire/shared/code/models/types.py +0 -14
  115. {modwire-11.0.2 → modwire-11.0.3}/.github/workflows/ci.yml +0 -0
  116. {modwire-11.0.2 → modwire-11.0.3}/.github/workflows/release.yml +0 -0
  117. {modwire-11.0.2 → modwire-11.0.3}/.gitignore +0 -0
  118. {modwire-11.0.2 → modwire-11.0.3}/AGENTS.md +0 -0
  119. {modwire-11.0.2 → modwire-11.0.3}/LICENSE +0 -0
  120. {modwire-11.0.2 → modwire-11.0.3}/MANIFEST.in +0 -0
  121. {modwire-11.0.2 → modwire-11.0.3}/Makefile +0 -0
  122. {modwire-11.0.2 → modwire-11.0.3}/README.md +0 -0
  123. {modwire-11.0.2 → modwire-11.0.3}/pyproject.toml +0 -0
  124. {modwire-11.0.2 → modwire-11.0.3}/scripts/check_extractors.py +0 -0
  125. {modwire-11.0.2 → modwire-11.0.3}/scripts/generate_docs.py +0 -0
  126. {modwire-11.0.2 → modwire-11.0.3}/scripts/verify_consumer.py +0 -0
  127. {modwire-11.0.2 → modwire-11.0.3}/setup.cfg +0 -0
  128. {modwire-11.0.2 → modwire-11.0.3}/setup.py +0 -0
  129. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/__init__.py +0 -0
  130. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/__main__.py +0 -0
  131. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/__init__.py +0 -0
  132. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/__init__.py +0 -0
  133. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/application.py +0 -0
  134. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/domain.py +0 -0
  135. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/__init__.py +0 -0
  136. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/edge_rule_violation.py +0 -0
  137. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_report.py +0 -0
  138. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/flow_violation.py +0 -0
  139. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/models/types.py +0 -0
  140. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/__init__.py +0 -0
  141. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/backward_flow_analyzer.py +0 -0
  142. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/boundaries_flow_analyzer.py +0 -0
  143. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_cycles_flow_analyzer.py +0 -0
  144. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/boundaries/services/no_reentry_flow_analyzer.py +0 -0
  145. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/__init__.py +0 -0
  146. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/application.py +0 -0
  147. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/__init__.py +0 -0
  148. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/architecture_config.py +0 -0
  149. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/boundaries_config.py +0 -0
  150. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/boundary_rule.py +0 -0
  151. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/configuration_value.py +0 -0
  152. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_realm.py +0 -0
  153. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/flow_rules.py +0 -0
  154. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_config.py +0 -0
  155. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/shape_realm.py +0 -0
  156. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/config/models/tag_rule.py +0 -0
  157. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/facade.py +0 -0
  158. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/__init__.py +0 -0
  159. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/application.py +0 -0
  160. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/domain.py +0 -0
  161. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/__init__.py +0 -0
  162. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/callable_report_entry.py +0 -0
  163. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/callables_report.py +0 -0
  164. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report.py +0 -0
  165. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/clusters_report_item.py +0 -0
  166. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/coherence_report.py +0 -0
  167. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/exports_report.py +0 -0
  168. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report.py +0 -0
  169. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/hotspots_report_item.py +0 -0
  170. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/models/insight_report.py +0 -0
  171. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/__init__.py +0 -0
  172. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/callables_reporter.py +0 -0
  173. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/clusters_reporter.py +0 -0
  174. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/exports_reporter.py +0 -0
  175. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/hotspots_reporter.py +0 -0
  176. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/insights/services/insight_report_field_map.py +0 -0
  177. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/__init__.py +0 -0
  178. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/application.py +0 -0
  179. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/domain.py +0 -0
  180. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/models/__init__.py +0 -0
  181. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_map.py +0 -0
  182. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/models/architecture_realm.py +0 -0
  183. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_map.py +0 -0
  184. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/models/tag_match.py +0 -0
  185. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/services/__init__.py +0 -0
  186. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/services/architecture_map_loader.py +0 -0
  187. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/map/services/tag_matcher.py +0 -0
  188. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/__init__.py +0 -0
  189. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/application.py +0 -0
  190. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/domain.py +0 -0
  191. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/__init__.py +0 -0
  192. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/architecture_group.py +0 -0
  193. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/map_report.py +0 -0
  194. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_catalog.py +0 -0
  195. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_descriptor.py +0 -0
  196. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_item.py +0 -0
  197. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_metadata.py +0 -0
  198. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_node.py +0 -0
  199. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/models/report_section.py +0 -0
  200. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/services/__init__.py +0 -0
  201. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/report/services/map_report_collector.py +0 -0
  202. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/__init__.py +0 -0
  203. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/application.py +0 -0
  204. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/domain.py +0 -0
  205. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/models/__init__.py +0 -0
  206. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_realm_architecture_map.py +0 -0
  207. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_report.py +0 -0
  208. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/models/shape_violation.py +0 -0
  209. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/__init__.py +0 -0
  210. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/abstract_class_resolver.py +0 -0
  211. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/callable_resolver.py +0 -0
  212. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/class_resolver.py +0 -0
  213. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/property_resolver.py +0 -0
  214. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/signature_resolver.py +0 -0
  215. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/architecture/shape/services/symbol_resolver.py +0 -0
  216. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/autowiring.py +0 -0
  217. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/__init__.py +0 -0
  218. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/__init__.py +0 -0
  219. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/domain.py +0 -0
  220. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/__init__.py +0 -0
  221. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_entry.py +0 -0
  222. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_key.py +0 -0
  223. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_kind.py +0 -0
  224. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_options.py +0 -0
  225. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_outcome.py +0 -0
  226. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_plan.py +0 -0
  227. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_stage.py +0 -0
  228. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cache_storage_state.py +0 -0
  229. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/cached_result.py +0 -0
  230. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/models/source_cache_entry.py +0 -0
  231. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/services/__init__.py +0 -0
  232. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/services/cache_codec.py +0 -0
  233. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/cache/services/filesystem_cache_storage.py +0 -0
  234. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/documentation/__init__.py +0 -0
  235. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/documentation/application.py +0 -0
  236. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/documentation/services/__init__.py +0 -0
  237. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/documentation/services/documentation_generator.py +0 -0
  238. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/__init__.py +0 -0
  239. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/models/__init__.py +0 -0
  240. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/models/initialization_result.py +0 -0
  241. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/initialization/services/__init__.py +0 -0
  242. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/__init__.py +0 -0
  243. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/application.py +0 -0
  244. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/batching/balanced_planner.py +0 -0
  245. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/batching/fixed_planner.py +0 -0
  246. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/batching/plan.py +0 -0
  247. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/batching/planner.py +0 -0
  248. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/domain.py +0 -0
  249. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/__init__.py +0 -0
  250. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_batch_input.py +0 -0
  251. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_command_input.py +0 -0
  252. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/extractor_source_input.py +0 -0
  253. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/report_pipeline_context.py +0 -0
  254. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_entry.py +0 -0
  255. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/models/source_inventory.py +0 -0
  256. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/__init__.py +0 -0
  257. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/callables_insight.py +0 -0
  258. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/clusters_insight.py +0 -0
  259. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/coherence_insight.py +0 -0
  260. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/configuration_loader.py +0 -0
  261. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/extractor_command.py +0 -0
  262. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/flow_violations.py +0 -0
  263. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/hotspots_insight.py +0 -0
  264. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/map_tree.py +0 -0
  265. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/output_console.py +0 -0
  266. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/shape_violations.py +0 -0
  267. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/success.py +0 -0
  268. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unknown_files_warning.py +0 -0
  269. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/services/unused_exports_insight.py +0 -0
  270. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/transport/json_lines_output_reader.py +0 -0
  271. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/transport/json_output_reader.py +0 -0
  272. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/transport/output_reader.py +0 -0
  273. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/pipeline/transport/source_file_factory.py +0 -0
  274. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/__init__.py +0 -0
  275. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/application.py +0 -0
  276. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/models/__init__.py +0 -0
  277. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/AGENTS.md +0 -0
  278. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/ARCHITECTURE.md +0 -0
  279. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/INDEX.md +0 -0
  280. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/MODWIRE.md +0 -0
  281. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/RULES.md +0 -0
  282. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/TESTING.md +0 -0
  283. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/WORKFLOW.md +0 -0
  284. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/cli/resources/templates/architecture.yaml +0 -0
  285. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/__init__.py +0 -0
  286. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/__init__.py +0 -0
  287. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/application.py +0 -0
  288. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/domain.py +0 -0
  289. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/services/__init__.py +0 -0
  290. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/services/graph_builder.py +0 -0
  291. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/dependency/services/import_identity_index.py +0 -0
  292. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/__init__.py +0 -0
  293. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/application.py +0 -0
  294. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/domain.py +0 -0
  295. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/__init__.py +0 -0
  296. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extraction_request.py +0 -0
  297. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/extractor_resource.py +0 -0
  298. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/parsed_source_batch.py +0 -0
  299. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/models/parsed_source_file.py +0 -0
  300. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/php/__init__.py +0 -0
  301. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/__init__.py +0 -0
  302. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/call_candidate.py +0 -0
  303. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/call_observation.py +0 -0
  304. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/call_reference.py +0 -0
  305. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/callable_candidate.py +0 -0
  306. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/class_candidate.py +0 -0
  307. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/function_candidate.py +0 -0
  308. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/import_candidate.py +0 -0
  309. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/inheritance_candidate.py +0 -0
  310. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/source_context.py +0 -0
  311. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/source_observation.py +0 -0
  312. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/observations/value_candidate.py +0 -0
  313. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/pipeline/source_parser.py +0 -0
  314. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/calls/reference_reader.py +0 -0
  315. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/catalog.py +0 -0
  316. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/classes/abstract_rule.py +0 -0
  317. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/classes/classifier.py +0 -0
  318. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/classes/concrete_rule.py +0 -0
  319. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contribution.py +0 -0
  320. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/inheritance_contributor.py +0 -0
  321. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/contributors/property_contributor.py +0 -0
  322. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/exports/explicit_rule.py +0 -0
  323. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/exports/implicit_rule.py +0 -0
  324. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/annotation_reader.py +0 -0
  325. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/assigned_value_reader.py +0 -0
  326. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/declaration_identity_factory.py +0 -0
  327. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/expression_reference_reader.py +0 -0
  328. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/import_path_policy.py +0 -0
  329. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/module_identity_policy.py +0 -0
  330. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/policies/type_alias_classifier.py +0 -0
  331. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/semantics/reader.py +0 -0
  332. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/call_contributor.py +0 -0
  333. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/callable_contributor.py +0 -0
  334. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/class_contributor.py +0 -0
  335. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/contribution.py +0 -0
  336. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/export_contributor.py +0 -0
  337. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/function_contributor.py +0 -0
  338. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/import_contributor.py +0 -0
  339. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/inheritance_contributor.py +0 -0
  340. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/metric_contributor.py +0 -0
  341. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/property_contributor.py +0 -0
  342. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/reader.py +0 -0
  343. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/source_facts/value_contributor.py +0 -0
  344. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/python/traversal/observation_reader.py +0 -0
  345. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/__init__.py +0 -0
  346. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.php +0 -0
  347. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/build.py +0 -0
  348. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.json +0 -0
  349. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/composer.lock +0 -0
  350. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.php +0 -0
  351. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/php/script.src.php +0 -0
  352. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/__init__.py +0 -0
  353. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/python/script.py +0 -0
  354. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.mjs +0 -0
  355. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/build.py +0 -0
  356. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package-lock.json +0 -0
  357. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/package.json +0 -0
  358. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.js +0 -0
  359. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/script.ts +0 -0
  360. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/resources/typescript/tsconfig.json +0 -0
  361. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/extractors/typescript/__init__.py +0 -0
  362. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/extraction/facade.py +0 -0
  363. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/__init__.py +0 -0
  364. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/facade.py +0 -0
  365. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/__init__.py +0 -0
  366. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/application.py +0 -0
  367. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/__init__.py +0 -0
  368. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_compiler.py +0 -0
  369. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/contracts/manifest_serializer.py +0 -0
  370. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/__init__.py +0 -0
  371. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_format.py +0 -0
  372. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_inheritance.py +0 -0
  373. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/models/manifest_span.py +0 -0
  374. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/implementation/manifest/services/__init__.py +0 -0
  375. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/py.typed +0 -0
  376. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/__init__.py +0 -0
  377. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/__init__.py +0 -0
  378. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/application.py +0 -0
  379. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/domain.py +0 -0
  380. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/__init__.py +0 -0
  381. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/capability_coverage.py +0 -0
  382. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/capability_status.py +0 -0
  383. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/code_map.py +0 -0
  384. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/code_map_producer.py +0 -0
  385. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/code_package.py +0 -0
  386. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_family.py +0 -0
  387. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/declaration_identity.py +0 -0
  388. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_edge_result.py +0 -0
  389. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/dependency_node_result.py +0 -0
  390. {modwire-11.0.2/src/modwire/implementation/manifest → modwire-11.0.3/src/modwire/shared/code}/models/digest_algorithm.py +0 -0
  391. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/extractor_descriptor.py +0 -0
  392. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/fact_capability.py +0 -0
  393. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/identity.py +0 -0
  394. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/query_builder.py +0 -0
  395. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/query_types.py +0 -0
  396. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/queryable_code_map.py +0 -0
  397. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/runtime_observation.py +0 -0
  398. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/scan_policy.py +0 -0
  399. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_abstract_class.py +0 -0
  400. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_artifact.py +0 -0
  401. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value.py +0 -0
  402. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_assigned_value_kind.py +0 -0
  403. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_callable_symbol.py +0 -0
  404. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_class.py +0 -0
  405. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_class_method.py +0 -0
  406. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_extraction.py +0 -0
  407. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_file.py +0 -0
  408. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_file_result.py +0 -0
  409. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_function.py +0 -0
  410. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_imported_symbol.py +0 -0
  411. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_inheritance.py +0 -0
  412. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_interface.py +0 -0
  413. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_item_result.py +0 -0
  414. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_member_kind.py +0 -0
  415. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_relation_kind.py +0 -0
  416. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_type.py +0 -0
  417. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/models/source_value_scope.py +0 -0
  418. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/services/__init__.py +0 -0
  419. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/services/glob_path_matcher.py +0 -0
  420. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/services/identity_resolver.py +0 -0
  421. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/code/services/installed_package_version.py +0 -0
  422. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/values/__init__.py +0 -0
  423. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/values/models/__init__.py +0 -0
  424. {modwire-11.0.2 → modwire-11.0.3}/src/modwire/shared/values/models/value_model.py +0 -0
  425. {modwire-11.0.2 → modwire-11.0.3}/tests/__init__.py +0 -0
  426. {modwire-11.0.2 → modwire-11.0.3}/tests/application/__init__.py +0 -0
  427. {modwire-11.0.2 → modwire-11.0.3}/tests/application/base_test.py +0 -0
  428. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_06_happy_path.py +0 -0
  429. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_07_cache.py +0 -0
  430. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_09_source_manifest_identity.py +0 -0
  431. {modwire-11.0.2 → modwire-11.0.3}/tests/application/test_10_assigned_value_evidence.py +0 -0
  432. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/__init__.py +0 -0
  433. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/base_test.py +0 -0
  434. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/__init__.py +0 -0
  435. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/base_test.py +0 -0
  436. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/test_01_attacks.py +0 -0
  437. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/test_02_invariants.py +0 -0
  438. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/test_03_public_api.py +0 -0
  439. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/boundaries/test_04_paths.py +0 -0
  440. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/config/__init__.py +0 -0
  441. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/config/test_02_invariants.py +0 -0
  442. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/insights/__init__.py +0 -0
  443. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/insights/base_test.py +0 -0
  444. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/insights/test_02_invariants.py +0 -0
  445. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/map/__init__.py +0 -0
  446. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/map/test_02_patterns.py +0 -0
  447. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/report/__init__.py +0 -0
  448. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/report/test_02_invariants.py +0 -0
  449. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/report_benchmark/__init__.py +0 -0
  450. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/report_benchmark/benchmark_process_timeout.py +0 -0
  451. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/report_benchmark/run.py +0 -0
  452. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/shape/__init__.py +0 -0
  453. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/shape/base_test.py +0 -0
  454. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/shape/test_01_limits.py +0 -0
  455. {modwire-11.0.2 → modwire-11.0.3}/tests/architecture/shape/test_02_invariants.py +0 -0
  456. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/__init__.py +0 -0
  457. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/base_test.py +0 -0
  458. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/documentation/__init__.py +0 -0
  459. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/documentation/test_02_invariants.py +0 -0
  460. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/__init__.py +0 -0
  461. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/test_01_attacks.py +0 -0
  462. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/test_02_invariants.py +0 -0
  463. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/test_03_interruption.py +0 -0
  464. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/test_04_cleanup.py +0 -0
  465. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/initialization/test_05_recovery.py +0 -0
  466. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/__init__.py +0 -0
  467. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/base_test.py +0 -0
  468. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_01_attacks.py +0 -0
  469. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_02_invariants.py +0 -0
  470. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_03_interruption.py +0 -0
  471. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_04_command_transport.py +0 -0
  472. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_05_recovery.py +0 -0
  473. {modwire-11.0.2 → modwire-11.0.3}/tests/cli/pipeline/test_06_happy_path.py +0 -0
  474. {modwire-11.0.2 → modwire-11.0.3}/tests/conftest.py +0 -0
  475. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/__init__.py +0 -0
  476. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/base_test.py +0 -0
  477. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/__init__.py +0 -0
  478. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/project.py +0 -0
  479. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/projects.json +0 -0
  480. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/resolution_results.json +0 -0
  481. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/results.json +0 -0
  482. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/big_projects/run.py +0 -0
  483. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/cache_benchmark/__init__.py +0 -0
  484. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/cache_benchmark/benchmark_process_timeout.py +0 -0
  485. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/cache_benchmark/run.py +0 -0
  486. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/dependency/__init__.py +0 -0
  487. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/dependency/test_02_invariants.py +0 -0
  488. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/extractors/__init__.py +0 -0
  489. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/extractors/test_01_attacks.py +0 -0
  490. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/extractors/test_02_invariants.py +0 -0
  491. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/extractors/test_03_native_symbols.py +0 -0
  492. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/scan_benchmark/__init__.py +0 -0
  493. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/scan_benchmark/prepare.py +0 -0
  494. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/scan_benchmark/results.json +0 -0
  495. {modwire-11.0.2 → modwire-11.0.3}/tests/extraction/scan_benchmark/run.py +0 -0
  496. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/php/ignored/example_generated.php +0 -0
  497. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_application/example_actions/example_action.php +0 -0
  498. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_model/example_record.php +0 -0
  499. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_domain/example_services/example_policy.php +0 -0
  500. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/php/src/example_interfaces/example_http/example_controller.php +0 -0
  501. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/python/ignored/example_generated.py +0 -0
  502. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_application/example_actions/example_action.py +0 -0
  503. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_model/example_record.py +0 -0
  504. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_domain/example_services/example_policy.py +0 -0
  505. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/python/src/example_interfaces/example_http/example_controller.py +0 -0
  506. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/ignored/example_generated.ts +0 -0
  507. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_application/example_actions/example_action.ts +0 -0
  508. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_record.ts +0 -0
  509. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_model/example_view.tsx +0 -0
  510. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_audit.js +0 -0
  511. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_callables.ts +0 -0
  512. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_domain/example_services/example_policy.ts +0 -0
  513. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_controller.ts +0 -0
  514. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/languages/typescript/src/example_interfaces/example_http/example_view.jsx +0 -0
  515. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/syntax/php/example_shapes.php +0 -0
  516. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/syntax/python/example_shapes.py +0 -0
  517. {modwire-11.0.2 → modwire-11.0.3}/tests/fixtures/syntax/typescript/example_shapes.ts +0 -0
  518. {modwire-11.0.2 → modwire-11.0.3}/tests/shared/__init__.py +0 -0
  519. {modwire-11.0.2 → modwire-11.0.3}/tests/shared/code/__init__.py +0 -0
  520. {modwire-11.0.2 → modwire-11.0.3}/tests/shared/code/test_02_invariants.py +0 -0
  521. {modwire-11.0.2 → modwire-11.0.3}/tests/support/__init__.py +0 -0
  522. {modwire-11.0.2 → modwire-11.0.3}/tests/support/base_test.py +0 -0
  523. {modwire-11.0.2 → modwire-11.0.3}/tests/support/code_map.py +0 -0
  524. {modwire-11.0.2 → modwire-11.0.3}/tests/support/service_test.py +0 -0
  525. {modwire-11.0.2 → modwire-11.0.3}/uv.lock +0 -0
@@ -147,6 +147,7 @@ src/modwire/cli/pipeline/batching/fixed_planner.py
147
147
  src/modwire/cli/pipeline/batching/plan.py
148
148
  src/modwire/cli/pipeline/batching/planner.py
149
149
  src/modwire/cli/pipeline/models/__init__.py
150
+ src/modwire/cli/pipeline/models/command_name.py
150
151
  src/modwire/cli/pipeline/models/command_request.py
151
152
  src/modwire/cli/pipeline/models/extractor_batch_input.py
152
153
  src/modwire/cli/pipeline/models/extractor_command_input.py
@@ -180,6 +181,7 @@ src/modwire/cli/resources/application.py
180
181
  src/modwire/cli/resources/models/__init__.py
181
182
  src/modwire/cli/resources/models/defaults.py
182
183
  src/modwire/cli/resources/models/init_asset.py
184
+ src/modwire/cli/resources/models/init_target_base.py
183
185
  src/modwire/cli/resources/templates/AGENTS.md
184
186
  src/modwire/cli/resources/templates/ARCHITECTURE.md
185
187
  src/modwire/cli/resources/templates/INDEX.md
@@ -202,9 +204,9 @@ src/modwire/extraction/extractors/application.py
202
204
  src/modwire/extraction/extractors/domain.py
203
205
  src/modwire/extraction/extractors/models/__init__.py
204
206
  src/modwire/extraction/extractors/models/batch_config.py
207
+ src/modwire/extraction/extractors/models/batch_output_format.py
205
208
  src/modwire/extraction/extractors/models/extraction_request.py
206
209
  src/modwire/extraction/extractors/models/extractor_resource.py
207
- src/modwire/extraction/extractors/models/extractor_resource_set.py
208
210
  src/modwire/extraction/extractors/models/extractor_runtime.py
209
211
  src/modwire/extraction/extractors/models/parsed_source_batch.py
210
212
  src/modwire/extraction/extractors/models/parsed_source_file.py
@@ -222,6 +224,7 @@ src/modwire/extraction/extractors/python/observations/function_candidate.py
222
224
  src/modwire/extraction/extractors/python/observations/import_candidate.py
223
225
  src/modwire/extraction/extractors/python/observations/inheritance_candidate.py
224
226
  src/modwire/extraction/extractors/python/observations/property_candidate.py
227
+ src/modwire/extraction/extractors/python/observations/property_scope.py
225
228
  src/modwire/extraction/extractors/python/observations/source_context.py
226
229
  src/modwire/extraction/extractors/python/observations/source_observation.py
227
230
  src/modwire/extraction/extractors/python/observations/value_candidate.py
@@ -273,6 +276,7 @@ src/modwire/extraction/extractors/python/semantics/properties/annotated_instance
273
276
  src/modwire/extraction/extractors/python/semantics/properties/assigned_class_rule.py
274
277
  src/modwire/extraction/extractors/python/semantics/properties/assigned_instance_rule.py
275
278
  src/modwire/extraction/extractors/python/semantics/properties/classifier.py
279
+ src/modwire/extraction/extractors/python/semantics/properties/decorated_method_rule.py
276
280
  src/modwire/extraction/extractors/python/source_facts/call_contributor.py
277
281
  src/modwire/extraction/extractors/python/source_facts/callable_contributor.py
278
282
  src/modwire/extraction/extractors/python/source_facts/class_contributor.py
@@ -288,6 +292,7 @@ src/modwire/extraction/extractors/python/source_facts/value_contributor.py
288
292
  src/modwire/extraction/extractors/python/traversal/context.py
289
293
  src/modwire/extraction/extractors/python/traversal/observation_reader.py
290
294
  src/modwire/extraction/extractors/python/traversal/ordered_observation_visitor.py
295
+ src/modwire/extraction/extractors/python/traversal/traversal_role.py
291
296
  src/modwire/extraction/extractors/resources/__init__.py
292
297
  src/modwire/extraction/extractors/resources/php/build.php
293
298
  src/modwire/extraction/extractors/resources/php/build.py
@@ -314,18 +319,20 @@ src/modwire/implementation/manifest/contracts/__init__.py
314
319
  src/modwire/implementation/manifest/contracts/manifest_compiler.py
315
320
  src/modwire/implementation/manifest/contracts/manifest_serializer.py
316
321
  src/modwire/implementation/manifest/models/__init__.py
317
- src/modwire/implementation/manifest/models/digest_algorithm.py
318
322
  src/modwire/implementation/manifest/models/implementation_manifest.py
319
323
  src/modwire/implementation/manifest/models/implementation_manifest_document.py
320
324
  src/modwire/implementation/manifest/models/manifest_annotation.py
325
+ src/modwire/implementation/manifest/models/manifest_annotation_role.py
321
326
  src/modwire/implementation/manifest/models/manifest_attribute.py
322
327
  src/modwire/implementation/manifest/models/manifest_callable.py
323
328
  src/modwire/implementation/manifest/models/manifest_dependency.py
329
+ src/modwire/implementation/manifest/models/manifest_dependency_target_kind.py
324
330
  src/modwire/implementation/manifest/models/manifest_format.py
325
331
  src/modwire/implementation/manifest/models/manifest_inheritance.py
326
332
  src/modwire/implementation/manifest/models/manifest_parameter.py
327
333
  src/modwire/implementation/manifest/models/manifest_span.py
328
334
  src/modwire/implementation/manifest/models/manifest_symbol.py
335
+ src/modwire/implementation/manifest/models/manifest_symbol_kind.py
329
336
  src/modwire/implementation/manifest/services/__init__.py
330
337
  src/modwire/implementation/manifest/services/canonical_json_manifest_serializer.py
331
338
  src/modwire/implementation/manifest/services/code_map_manifest_compiler.py
@@ -344,13 +351,16 @@ src/modwire/shared/code/models/declaration_identity.py
344
351
  src/modwire/shared/code/models/dependency_edge_result.py
345
352
  src/modwire/shared/code/models/dependency_graph.py
346
353
  src/modwire/shared/code/models/dependency_node_result.py
354
+ src/modwire/shared/code/models/digest_algorithm.py
347
355
  src/modwire/shared/code/models/duplicate_identity_error.py
348
356
  src/modwire/shared/code/models/edge.py
349
- src/modwire/shared/code/models/edge_resolution.py
350
357
  src/modwire/shared/code/models/extractor_descriptor.py
351
358
  src/modwire/shared/code/models/fact_capability.py
352
359
  src/modwire/shared/code/models/identity.py
360
+ src/modwire/shared/code/models/identity_kind.py
361
+ src/modwire/shared/code/models/import_crossing_type.py
353
362
  src/modwire/shared/code/models/node.py
363
+ src/modwire/shared/code/models/node_kind.py
354
364
  src/modwire/shared/code/models/query_builder.py
355
365
  src/modwire/shared/code/models/query_types.py
356
366
  src/modwire/shared/code/models/queryable_code_map.py
@@ -361,12 +371,16 @@ src/modwire/shared/code/models/source_artifact.py
361
371
  src/modwire/shared/code/models/source_assigned_value.py
362
372
  src/modwire/shared/code/models/source_assigned_value_kind.py
363
373
  src/modwire/shared/code/models/source_call.py
374
+ src/modwire/shared/code/models/source_call_resolution.py
364
375
  src/modwire/shared/code/models/source_callable.py
376
+ src/modwire/shared/code/models/source_callable_kind.py
365
377
  src/modwire/shared/code/models/source_callable_symbol.py
366
378
  src/modwire/shared/code/models/source_class.py
367
379
  src/modwire/shared/code/models/source_class_method.py
368
380
  src/modwire/shared/code/models/source_class_property.py
381
+ src/modwire/shared/code/models/source_dependency_resolution.py
369
382
  src/modwire/shared/code/models/source_export.py
383
+ src/modwire/shared/code/models/source_export_kind.py
370
384
  src/modwire/shared/code/models/source_extraction.py
371
385
  src/modwire/shared/code/models/source_file.py
372
386
  src/modwire/shared/code/models/source_file_result.py
@@ -380,13 +394,17 @@ src/modwire/shared/code/models/source_manifest.py
380
394
  src/modwire/shared/code/models/source_manifest_identity.py
381
395
  src/modwire/shared/code/models/source_member_kind.py
382
396
  src/modwire/shared/code/models/source_parameter.py
397
+ src/modwire/shared/code/models/source_parameter_kind.py
383
398
  src/modwire/shared/code/models/source_relation_kind.py
384
399
  src/modwire/shared/code/models/source_signature.py
400
+ src/modwire/shared/code/models/source_signature_kind.py
385
401
  src/modwire/shared/code/models/source_symbol.py
386
402
  src/modwire/shared/code/models/source_type.py
387
403
  src/modwire/shared/code/models/source_value.py
404
+ src/modwire/shared/code/models/source_value_declaration_kind.py
405
+ src/modwire/shared/code/models/source_value_kind.py
388
406
  src/modwire/shared/code/models/source_value_scope.py
389
- src/modwire/shared/code/models/types.py
407
+ src/modwire/shared/code/models/source_visibility.py
390
408
  src/modwire/shared/code/services/__init__.py
391
409
  src/modwire/shared/code/services/glob_path_matcher.py
392
410
  src/modwire/shared/code/services/identity_resolver.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modwire
3
- Version: 11.0.2
3
+ Version: 11.0.3
4
4
  Summary: Code extraction, architecture analysis and the Modwire CLI.
5
5
  Author: Tomasz Szpak
6
6
  License-Expression: MIT
@@ -17,7 +17,6 @@ from .cli.cache.models.cached_result import CachedResult
17
17
  from .cli.facade import CliFacade
18
18
  from .extraction.facade import ExtractionFacade
19
19
  from .implementation.facade import ImplementationFacade
20
- from .implementation.manifest.models.digest_algorithm import DigestAlgorithm
21
20
  from .implementation.manifest.models.implementation_manifest import ImplementationManifest
22
21
  from .implementation.manifest.models.implementation_manifest_document import ImplementationManifestDocument
23
22
  from .implementation.manifest.models.manifest_format import ManifestFormat
@@ -26,6 +25,7 @@ from .shared.code.models.capability_status import CapabilityStatus
26
25
  from .shared.code.models.code_map import CodeMap
27
26
  from .shared.code.models.declaration_family import DeclarationFamily
28
27
  from .shared.code.models.declaration_identity import DeclarationIdentity
28
+ from .shared.code.models.digest_algorithm import DigestAlgorithm
29
29
  from .shared.code.models.fact_capability import FactCapability
30
30
  from .shared.code.models.queryable_code_map import QueryableCodeMap
31
31
  from .shared.code.models.scan_policy import ScanPolicy
@@ -2,6 +2,7 @@ from dataclasses import dataclass
2
2
 
3
3
  from wireup import injectable
4
4
 
5
+ from ....shared.code.models.source_dependency_resolution import SourceDependencyResolution
5
6
  from ...config.models.boundaries_config import BoundariesConfig
6
7
  from ...config.models.boundary_rule import BoundaryRule
7
8
  from ...map.models.architecture_map import ArchitectureMap
@@ -32,7 +33,7 @@ class ModuleBoundaryAnalyzer(FlowAnalyzerInterface):
32
33
  ]
33
34
  for dependency in architecture_map.code_map.dependency_edges().all():
34
35
  edge = dependency.edge
35
- if edge.resolution != "resolved" or edge.to_id is None:
36
+ if edge.resolution is not SourceDependencyResolution.RESOLVED or edge.to_id is None:
36
37
  continue
37
38
  source_tags = architecture_map.tag_map.tags_for(edge.from_id)
38
39
  target_tags = architecture_map.tag_map.tags_for(edge.to_id)
@@ -1,5 +1,6 @@
1
1
  from pydantic import Field
2
2
 
3
+ from ....shared.code.models.import_crossing_type import ImportCrossingType
3
4
  from .configuration_value import ConfigurationValue
4
5
 
5
6
 
@@ -20,4 +21,7 @@ class ShapeRules(ConfigurationValue):
20
21
  allow_optional_class_properties: bool = False
21
22
  allow_import_aliases: bool = False
22
23
  require_joined_imports: bool = True
23
- allowed_import_crossing_types: tuple[str, ...] = ("module", "symbol")
24
+ allowed_import_crossing_types: tuple[ImportCrossingType, ...] = (
25
+ ImportCrossingType.MODULE,
26
+ ImportCrossingType.SYMBOL,
27
+ )
@@ -0,0 +1,11 @@
1
+ from ....shared.code.models.import_crossing_type import ImportCrossingType
2
+ from ....shared.code.models.source_export_kind import SourceExportKind
3
+ from ....shared.values.models.value_model import ValueModel
4
+
5
+
6
+ class ExportsReportItem(ValueModel):
7
+ source_id: str
8
+ name: str
9
+ kind: SourceExportKind
10
+ crossing_type: ImportCrossingType
11
+ reason: str
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  from wireup import injectable
4
4
 
5
5
  from ....shared.code.models.identity import FileId
6
+ from ....shared.code.models.source_dependency_resolution import SourceDependencyResolution
6
7
  from ...map.models.architecture_map import ArchitectureMap
7
8
  from ..domain import InsightReporterInterface
8
9
  from ..models.coherence_report import CoherenceReport
@@ -35,7 +36,9 @@ class CoherenceReporter(InsightReporterInterface):
35
36
  if not has_incoming and (not has_outgoing):
36
37
  isolated.append(source_id)
37
38
  external_dependencies = {
38
- edge.specifier for edge in graph.external_edges(source_ids) if edge.resolution == "external"
39
+ edge.specifier
40
+ for edge in graph.external_edges(source_ids)
41
+ if edge.resolution is SourceDependencyResolution.EXTERNAL
39
42
  }
40
43
  return self.report_type(
41
44
  roots=tuple(roots),
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  from wireup import injectable
4
4
 
5
5
  from ....shared.code.models.identity import FileId
6
+ from ....shared.code.models.source_value_declaration_kind import SourceValueDeclarationKind
6
7
  from ....shared.code.models.source_value_scope import SourceValueScope
7
8
  from ...config.models.shape_rules import ShapeRules
8
9
  from ..domain import BaseShapeResolver, ShapeResolverInterface
@@ -75,7 +76,8 @@ class FileResolver(ShapeResolverInterface, BaseShapeResolver):
75
76
  source_id=source_id,
76
77
  rule_name="max_variables_per_file",
77
78
  actual=sum(
78
- value.scope == SourceValueScope.MODULE and value.declaration_kind == "assignment"
79
+ value.scope is SourceValueScope.MODULE
80
+ and value.declaration_kind is SourceValueDeclarationKind.ASSIGNMENT
79
81
  for value in source_file.values
80
82
  ),
81
83
  limit=config.max_variables_per_file,
@@ -2,6 +2,7 @@ from dataclasses import dataclass
2
2
 
3
3
  from wireup import injectable
4
4
 
5
+ from ....shared.code.models.import_crossing_type import ImportCrossingType
5
6
  from ...config.models.shape_rules import ShapeRules
6
7
  from ..domain import BaseShapeResolver, ShapeResolverInterface
7
8
  from ..models.shape_realm_architecture_map import ShapeRealmArchitectureMap
@@ -49,7 +50,7 @@ class ImportResolver(ShapeResolverInterface, BaseShapeResolver):
49
50
  )
50
51
  if (
51
52
  config.require_joined_imports
52
- and source_import.crossing_type != "module"
53
+ and source_import.crossing_type is not ImportCrossingType.MODULE
53
54
  and (not source_import.uses_joined_import)
54
55
  ):
55
56
  violations.append(
@@ -11,6 +11,7 @@ from ...extraction.extractors.models.extraction_request import ExtractionRequest
11
11
  from ...shared.code.models.code_map import CodeMap
12
12
  from ...shared.code.models.duplicate_identity_error import DuplicateIdentityError
13
13
  from ...shared.code.models.identity import FileId, ModuleId
14
+ from ...shared.code.models.identity_kind import IdentityKind
14
15
  from ...shared.code.models.scan_policy import ScanPolicy
15
16
  from ...shared.code.models.source_extraction import SourceExtraction
16
17
  from ...shared.code.models.source_file import SourceFile
@@ -103,7 +104,7 @@ class CacheApplication:
103
104
  for file_id, source_file in ordered_files.items():
104
105
  existing = modules.get(source_file.module_id)
105
106
  if existing is not None:
106
- raise DuplicateIdentityError("module", source_file.module_id, existing, file_id)
107
+ raise DuplicateIdentityError(IdentityKind.MODULE, source_file.module_id, existing, file_id)
107
108
  modules[source_file.module_id] = file_id
108
109
 
109
110
  extraction = SourceExtraction(
@@ -98,7 +98,9 @@ class CacheIdentity:
98
98
 
99
99
  def runtime_identity(self, request: ExtractionRequest, observation: RuntimeObservation) -> dict[str, object]:
100
100
  return {
101
- "runtime": request.runtime.model_dump(mode="json"),
101
+ "descriptor": request.runtime.descriptor.model_dump(mode="json"),
102
+ "capabilities": [item.model_dump(mode="json") for item in request.runtime.capabilities],
103
+ "file_extensions": list(request.runtime.file_extensions),
102
104
  "batch": request.batch_config.model_dump(mode="json"),
103
105
  "observation": observation.model_dump(mode="json"),
104
106
  }
@@ -22,6 +22,7 @@ from .cache.models.cached_result import CachedResult
22
22
  from .documentation.application import DocumentationApplication
23
23
  from .initialization.application import InitializationApplication
24
24
  from .pipeline.application import PipelineApplication
25
+ from .pipeline.models.command_name import CommandName
25
26
  from .pipeline.models.command_request import CommandRequest
26
27
  from .pipeline.models.extractor_command_input import ExtractorCommandInput
27
28
 
@@ -130,14 +131,14 @@ class CliFacade:
130
131
 
131
132
  def run(self, argv: Sequence[str]) -> int:
132
133
  request = self.parse(argv)
133
- if request.command == "init":
134
+ if request.command is CommandName.INIT:
134
135
  return self.initialize(self.working_directory(), str(request.dot_dir), request.force)
135
136
  cache_options = CacheOptions(
136
137
  directory=str(request.cache_directory),
137
138
  namespace=request.cache_namespace,
138
139
  max_bytes=request.cache_max_bytes,
139
140
  )
140
- if request.command == "cache-clear":
141
+ if request.command is CommandName.CACHE_CLEAR:
141
142
  self.clear_cache(cache_options)
142
143
  return 0
143
144
  config = self.load_configuration(str(request.dot_dir))
@@ -18,19 +18,21 @@ class InitializationApplication:
18
18
 
19
19
  def initialize(self, project_root: Path, dot_dir: Path, force: bool) -> int:
20
20
  try:
21
- outcomes: list[tuple[str, Path]] = []
21
+ created: list[Path] = []
22
+ preserved: list[Path] = []
23
+ overwritten: list[Path] = []
22
24
  for asset in self.resources.assets():
23
25
  target = self.service.target(project_root, dot_dir, asset)
24
26
  existed = target.exists()
25
27
  if existed and not force:
26
- outcomes.append(("preserved", target))
28
+ preserved.append(target)
27
29
  continue
28
30
  self.service.write(target, self.resources.content(asset.source))
29
- outcomes.append(("overwritten" if existed else "created", target))
31
+ (overwritten if existed else created).append(target)
30
32
  result = InitializationResult(
31
- created=tuple(path for action, path in outcomes if action == "created"),
32
- preserved=tuple(path for action, path in outcomes if action == "preserved"),
33
- overwritten=tuple(path for action, path in outcomes if action == "overwritten"),
33
+ created=tuple(created),
34
+ preserved=tuple(preserved),
35
+ overwritten=tuple(overwritten),
34
36
  )
35
37
  except (OSError, ValueError) as error:
36
38
  self.console.print(f"Initialization failed: {error}", style="red", markup=False)
@@ -4,6 +4,7 @@ from pathlib import Path
4
4
  from wireup import injectable
5
5
 
6
6
  from ...resources.models.init_asset import InitAsset
7
+ from ...resources.models.init_target_base import InitTargetBase
7
8
 
8
9
 
9
10
  @injectable
@@ -11,7 +12,10 @@ from ...resources.models.init_asset import InitAsset
11
12
  class InitializationService:
12
13
  def target(self, project_root: Path, dot_dir: Path, asset: InitAsset) -> Path:
13
14
  root = project_root.resolve()
14
- bases = {"project": root, "dot_dir": self._resolve_within(root, root, dot_dir)}
15
+ bases = {
16
+ InitTargetBase.PROJECT: root,
17
+ InitTargetBase.DOT_DIR: self._resolve_within(root, root, dot_dir),
18
+ }
15
19
  return self._resolve_within(root, bases[asset.target_base], asset.target)
16
20
 
17
21
  def write(self, target: Path, content: str) -> None:
@@ -0,0 +1,7 @@
1
+ from enum import StrEnum
2
+
3
+
4
+ class CommandName(StrEnum):
5
+ INIT = "init"
6
+ REPORT = "report"
7
+ CACHE_CLEAR = "cache-clear"
@@ -1,11 +1,11 @@
1
1
  from pathlib import Path
2
- from typing import Literal
3
2
 
4
3
  from ....shared.values.models.value_model import ValueModel
4
+ from .command_name import CommandName
5
5
 
6
6
 
7
7
  class CommandRequest(ValueModel):
8
- command: Literal["init", "report", "cache-clear"]
8
+ command: CommandName
9
9
  dot_dir: Path
10
10
  architecture_root: Path = Path(".")
11
11
  language: str = ""
@@ -12,12 +12,14 @@ from pathlib import Path
12
12
 
13
13
  from wireup import injectable
14
14
 
15
+ from ....extraction.extractors.models.batch_output_format import BatchOutputFormat
15
16
  from ....extraction.extractors.models.extraction_request import ExtractionRequest
16
17
  from ....extraction.extractors.models.extractor_runtime import ExtractorRuntime
17
18
  from ....shared.code.application import CodeApplication
18
19
  from ....shared.code.domain import PathMatcher
19
20
  from ....shared.code.models.duplicate_identity_error import DuplicateIdentityError
20
21
  from ....shared.code.models.identity import FileId, ModuleId
22
+ from ....shared.code.models.identity_kind import IdentityKind
21
23
  from ....shared.code.models.scan_policy import ScanPolicy
22
24
  from ....shared.code.models.source_extraction import SourceExtraction
23
25
  from ....shared.code.models.source_file import SourceFile
@@ -62,7 +64,7 @@ class BatchSourceReader(SourceReader):
62
64
  for file_id, source_file in files.items():
63
65
  existing = modules.get(source_file.module_id)
64
66
  if existing is not None:
65
- raise DuplicateIdentityError("module", source_file.module_id, existing, file_id)
67
+ raise DuplicateIdentityError(IdentityKind.MODULE, source_file.module_id, existing, file_id)
66
68
  modules[source_file.module_id] = file_id
67
69
  return SourceExtraction(
68
70
  files=files,
@@ -174,7 +176,7 @@ class BatchSourceReader(SourceReader):
174
176
  if not source_paths:
175
177
  return {}
176
178
  runtime = request.runtime
177
- entrypoint = runtime.resources.entrypoint
179
+ entrypoint = runtime.entrypoint
178
180
  script_path = Path(str(resources.files(entrypoint.package).joinpath(entrypoint.path)))
179
181
  if not script_path.is_file():
180
182
  raise RuntimeError(f"{runtime.descriptor.language} extractor script is missing: {script_path}")
@@ -182,7 +184,7 @@ class BatchSourceReader(SourceReader):
182
184
  self.code.file_id(str(root), str(source_path)): str(source_path) for source_path in source_paths
183
185
  }
184
186
  command = [*runtime.command, str(script_path), "--batch", str(root)]
185
- if request.batch_config.output_format == "jsonl":
187
+ if request.batch_config.output_format is BatchOutputFormat.JSON_LINES:
186
188
  command.append("--jsonl")
187
189
  completed = subprocess.run(
188
190
  command, input=json.dumps(paths_by_source_id), text=True, capture_output=True, check=False
@@ -209,7 +211,7 @@ class BatchSourceReader(SourceReader):
209
211
  def _merge_files(self, files: dict[FileId, SourceFile], extracted: dict[FileId, SourceFile]) -> None:
210
212
  for file_id, source_file in extracted.items():
211
213
  if file_id in files:
212
- raise DuplicateIdentityError("file", file_id, file_id, file_id)
214
+ raise DuplicateIdentityError(IdentityKind.FILE, file_id, file_id, file_id)
213
215
  files[file_id] = source_file
214
216
 
215
217
  def _source_id_for_path(self, request: ExtractionRequest, root: Path, path: Path) -> FileId:
@@ -5,6 +5,7 @@ from pathlib import Path
5
5
 
6
6
  from wireup import injectable
7
7
 
8
+ from ..models.command_name import CommandName
8
9
  from ..models.command_request import CommandRequest
9
10
 
10
11
 
@@ -18,24 +19,24 @@ class CommandLine:
18
19
  def _parser(self) -> argparse.ArgumentParser:
19
20
  parser = argparse.ArgumentParser()
20
21
  commands = parser.add_subparsers(dest="command", required=True)
21
- init = commands.add_parser("init", help="Create project-local Modwire configuration.")
22
+ init = commands.add_parser(CommandName.INIT, help="Create project-local Modwire configuration.")
22
23
  init.add_argument("--dot-dir", type=Path, default=Path(".modwire"))
23
24
  init.add_argument("--force", action="store_true", help="Replace existing generated assets.")
24
- report = commands.add_parser("report", help="Run architecture reports.")
25
+ report = commands.add_parser(CommandName.REPORT, help="Run architecture reports.")
25
26
  report.add_argument("--dot-dir", type=Path, default=Path(".modwire"))
26
27
  report.add_argument("--architecture-root", type=Path, default=Path("."))
27
28
  report.add_argument("--language", required=True)
28
29
  report.add_argument("--summary", action="store_true", help="Render modules without individual files.")
29
30
  self._cache_arguments(report)
30
31
  report.add_argument("--no-cache", action="store_true", help="Run without persistent cache reuse.")
31
- clear = commands.add_parser("cache-clear", help="Clear one Modwire cache namespace safely.")
32
+ clear = commands.add_parser(CommandName.CACHE_CLEAR, help="Clear one Modwire cache namespace safely.")
32
33
  clear.add_argument("--dot-dir", type=Path, default=Path(".modwire"))
33
34
  self._cache_arguments(clear)
34
35
  return parser
35
36
 
36
37
  def _legacy_report_arguments(self, argv: Sequence[str]) -> Sequence[str]:
37
- command_names = {"init", "report", "cache-clear", "-h", "--help"}
38
- return ("report", *argv) if argv and argv[0] not in command_names else argv
38
+ command_names = {*CommandName, "-h", "--help"}
39
+ return (CommandName.REPORT, *argv) if argv and argv[0] not in command_names else argv
39
40
 
40
41
  def _cache_arguments(self, parser: argparse.ArgumentParser) -> None:
41
42
  parser.add_argument("--cache-directory", type=Path, default=Path(".modwire/cache"))
@@ -7,6 +7,7 @@ from importlib import resources
7
7
  from wireup import injectable
8
8
 
9
9
  from ....extraction.extractors.models.extraction_request import ExtractionRequest
10
+ from ....shared.code.models.digest_algorithm import DigestAlgorithm
10
11
  from ....shared.code.models.runtime_observation import RuntimeObservation
11
12
  from ....shared.code.models.scan_policy import ScanPolicy
12
13
  from ....shared.code.models.source_manifest import SourceManifest
@@ -35,7 +36,7 @@ class SourceManifestBuilder:
35
36
  policy=policy,
36
37
  runtime=runtime,
37
38
  sources=sources,
38
- digest_algorithm="sha256",
39
+ digest_algorithm=DigestAlgorithm.SHA256,
39
40
  digest=hashlib.sha256(serialized).hexdigest(),
40
41
  )
41
42
 
@@ -50,14 +51,8 @@ class SourceManifestBuilder:
50
51
  version = completed.stdout.strip()
51
52
  if not version:
52
53
  raise RuntimeError(f"{runtime.descriptor.language} runtime returned an empty version.")
53
- digest = hashlib.sha256()
54
- for resource in runtime.resources.identity_resources:
55
- digest.update(resource.package.encode("utf-8"))
56
- digest.update(b"\x00")
57
- digest.update(resource.path.encode("utf-8"))
58
- digest.update(b"\x00")
59
- digest.update(resources.files(resource.package).joinpath(resource.path).read_bytes())
60
- digest.update(b"\x00")
54
+ entrypoint = runtime.entrypoint
55
+ digest = hashlib.sha256(resources.files(entrypoint.package).joinpath(entrypoint.path).read_bytes())
61
56
  return RuntimeObservation(
62
57
  version=version,
63
58
  resource_digest=digest.hexdigest(),
@@ -0,0 +1,15 @@
1
+ from pathlib import Path
2
+
3
+ from .init_asset import InitAsset
4
+ from .init_target_base import InitTargetBase
5
+
6
+ DEFAULT_INIT_ASSETS = (
7
+ InitAsset(source="ARCHITECTURE.md", target_base=InitTargetBase.DOT_DIR, target=Path("docs/ARCHITECTURE.md")),
8
+ InitAsset(source="architecture.yaml", target_base=InitTargetBase.DOT_DIR, target=Path("architecture.yaml")),
9
+ InitAsset(source="INDEX.md", target_base=InitTargetBase.DOT_DIR, target=Path("INDEX.md")),
10
+ InitAsset(source="MODWIRE.md", target_base=InitTargetBase.DOT_DIR, target=Path("docs/MODWIRE.md")),
11
+ InitAsset(source="RULES.md", target_base=InitTargetBase.DOT_DIR, target=Path("docs/RULES.md")),
12
+ InitAsset(source="TESTING.md", target_base=InitTargetBase.DOT_DIR, target=Path("docs/TESTING.md")),
13
+ InitAsset(source="WORKFLOW.md", target_base=InitTargetBase.DOT_DIR, target=Path("docs/WORKFLOW.md")),
14
+ InitAsset(source="AGENTS.md", target_base=InitTargetBase.PROJECT, target=Path("AGENTS.md")),
15
+ )
@@ -1,10 +1,10 @@
1
1
  from pathlib import Path
2
- from typing import Literal
3
2
 
4
3
  from ....shared.values.models.value_model import ValueModel
4
+ from .init_target_base import InitTargetBase
5
5
 
6
6
 
7
7
  class InitAsset(ValueModel):
8
8
  source: str
9
- target_base: Literal["project", "dot_dir"]
9
+ target_base: InitTargetBase
10
10
  target: Path
@@ -0,0 +1,6 @@
1
+ from enum import StrEnum
2
+
3
+
4
+ class InitTargetBase(StrEnum):
5
+ PROJECT = "project"
6
+ DOT_DIR = "dot_dir"
@@ -4,6 +4,8 @@ from dataclasses import dataclass
4
4
  from wireup import injectable
5
5
 
6
6
  from ....shared.code.models.identity import FileId, ModuleId
7
+ from ....shared.code.models.import_crossing_type import ImportCrossingType
8
+ from ....shared.code.models.source_dependency_resolution import SourceDependencyResolution
7
9
  from ....shared.code.models.source_file import SourceFile
8
10
  from ....shared.code.models.source_import import SourceImport
9
11
  from ..domain import ImportResolver
@@ -39,10 +41,19 @@ class SourceImportResolver(ImportResolver):
39
41
  ) -> SourceImport:
40
42
  candidates = self._candidates(imported, modules, symbols)
41
43
  if len(candidates) == 1:
42
- return imported.model_copy(update={"resolution": "resolved", "target_file_id": next(iter(candidates))})
44
+ return imported.model_copy(
45
+ update={
46
+ "resolution": SourceDependencyResolution.RESOLVED,
47
+ "target_file_id": next(iter(candidates)),
48
+ }
49
+ )
43
50
  return imported.model_copy(
44
51
  update={
45
- "resolution": "unresolved" if candidates or imported.is_relative else "external",
52
+ "resolution": (
53
+ SourceDependencyResolution.UNRESOLVED
54
+ if candidates or imported.is_relative
55
+ else SourceDependencyResolution.EXTERNAL
56
+ ),
46
57
  "target_file_id": None,
47
58
  }
48
59
  )
@@ -54,7 +65,7 @@ class SourceImportResolver(ImportResolver):
54
65
  candidates = modules.exact("", specifier)
55
66
  if candidates:
56
67
  return candidates
57
- if imported.crossing_type == "symbol" and imported.imported_symbols:
68
+ if imported.crossing_type is ImportCrossingType.SYMBOL and imported.imported_symbols:
58
69
  symbol_names = {symbol.name.casefold() for symbol in imported.imported_symbols}
59
70
  imported_parent = self._normalize(imported.join_key)
60
71
  for symbol_name in symbol_names:
@@ -64,7 +75,7 @@ class SourceImportResolver(ImportResolver):
64
75
  candidates = modules.suffix("", specifier)
65
76
  if candidates:
66
77
  return candidates
67
- if imported.crossing_type == "symbol" and imported.imported_symbols:
78
+ if imported.crossing_type is ImportCrossingType.SYMBOL and imported.imported_symbols:
68
79
  symbol_names = {symbol.name.casefold() for symbol in imported.imported_symbols}
69
80
  imported_parent = self._normalize(imported.join_key)
70
81
  for symbol_name in symbol_names:
@@ -1,6 +1,5 @@
1
- from typing import Literal
2
-
3
1
  from ....shared.values.models.value_model import ValueModel
2
+ from .batch_output_format import BatchOutputFormat
4
3
 
5
4
 
6
5
  class BatchConfig(ValueModel):
@@ -8,5 +7,5 @@ class BatchConfig(ValueModel):
8
7
  parallel_threshold: int = 0
9
8
  parallel_size: int = 0
10
9
  max_workers: int = 1
11
- output_format: Literal["json", "jsonl"] = "json"
10
+ output_format: BatchOutputFormat = BatchOutputFormat.JSON
12
11
  planner: str = "fixed"
@@ -0,0 +1,6 @@
1
+ from enum import StrEnum
2
+
3
+
4
+ class BatchOutputFormat(StrEnum):
5
+ JSON = "json"
6
+ JSON_LINES = "jsonl"
@@ -1,7 +1,7 @@
1
1
  from ....shared.code.models.capability_coverage import CapabilityCoverage
2
2
  from ....shared.code.models.extractor_descriptor import ExtractorDescriptor
3
3
  from ....shared.values.models.value_model import ValueModel
4
- from .extractor_resource_set import ExtractorResourceSet
4
+ from .extractor_resource import ExtractorResource
5
5
 
6
6
 
7
7
  class ExtractorRuntime(ValueModel):
@@ -11,4 +11,4 @@ class ExtractorRuntime(ValueModel):
11
11
  file_extensions: tuple[str, ...]
12
12
  command: tuple[str, ...]
13
13
  version_arguments: tuple[str, ...]
14
- resources: ExtractorResourceSet
14
+ entrypoint: ExtractorResource