fensu-cli 0.5.2__tar.gz → 0.6.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 (481) hide show
  1. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/Cargo.lock +1 -1
  2. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/PKG-INFO +1 -1
  3. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/Cargo.toml +1 -1
  4. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_execution.rs +1 -1
  5. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/check.rs +1 -1
  6. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/init.rs +1 -1
  7. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/rule.rs +1 -1
  8. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/run_cli.rs +3 -2
  9. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/mod.rs +1 -0
  10. fensu_cli-0.6.0/crates/fensu-cli/src/configuration/helpers/roots.rs +30 -0
  11. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/validation.rs +1 -14
  12. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/main/mod.rs +1 -0
  13. fensu_cli-0.6.0/crates/fensu-cli/src/configuration/main/validate_document.rs +10 -0
  14. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/catalogue/mod.rs +1 -0
  15. fensu_cli-0.5.2/crates/fensu-cli/src/helpers/check_evaluation.rs → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/evaluation.rs +8 -6
  16. fensu_cli-0.5.2/crates/fensu-cli/src/helpers/check_execution.rs → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/execution.rs +3 -3
  17. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/mod.rs +6 -0
  18. fensu_cli-0.5.2/crates/fensu-cli/src/helpers/check_project.rs → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/project.rs +1 -1
  19. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/hosting/mod.rs +1 -0
  20. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/init/mod.rs +2 -0
  21. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/init/packages.rs +90 -0
  22. fensu_cli-0.5.2/crates/fensu-cli/src/helpers/init.rs → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/init/run.rs +74 -9
  23. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/mod.rs +5 -0
  24. fensu_cli-0.6.0/crates/fensu-cli/src/helpers/reporting/mod.rs +1 -0
  25. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/index.rs +1 -1
  26. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/models.rs +2 -2
  27. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/rendering.rs +1 -1
  28. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/exceptions.rs +1 -1
  29. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/selection.rs +3 -2
  30. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/pyproject.toml +1 -1
  31. fensu_cli-0.5.2/crates/fensu-cli/src/helpers/mod.rs +0 -10
  32. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/Cargo.toml +0 -0
  33. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/README.md +0 -0
  34. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/assets/catalogue.json +0 -0
  35. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/assets/python.gitignore +0 -0
  36. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/assets/skills_invariant.json +0 -0
  37. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/build.rs +0 -0
  38. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/constants.rs +0 -0
  39. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/map_parsing.rs +0 -0
  40. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_graph_rendering.rs +0 -0
  41. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_help.rs +0 -0
  42. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_human_rendering.rs +0 -0
  43. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_parsing.rs +0 -0
  44. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_structured_rendering.rs +0 -0
  45. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/memory_values.rs +0 -0
  46. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/helpers/mod.rs +0 -0
  47. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/help.rs +0 -0
  48. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/map.rs +0 -0
  49. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/memory.rs +0 -0
  50. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/mod.rs +0 -0
  51. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/main/skills.rs +0 -0
  52. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/mod.rs +0 -0
  53. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/command/models.rs +0 -0
  54. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/discovery.rs +0 -0
  55. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/exceptions.rs +0 -0
  56. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/loading.rs +0 -0
  57. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/helpers/parsing.rs +0 -0
  58. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/main/custom_rules.rs +0 -0
  59. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/main/load.rs +0 -0
  60. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/main/load_optional.rs +0 -0
  61. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/configuration/mod.rs +0 -0
  62. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/constants.rs +0 -0
  63. /fensu_cli-0.5.2/crates/fensu-cli/src/helpers/rule.rs → /fensu_cli-0.6.0/crates/fensu-cli/src/helpers/catalogue/metadata.rs +0 -0
  64. {fensu_cli-0.5.2/crates/fensu-cli/src/helpers → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check}/cache.rs +0 -0
  65. /fensu_cli-0.5.2/crates/fensu-cli/src/helpers/check_cleanup.rs → /fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/cleanup.rs +0 -0
  66. /fensu_cli-0.5.2/crates/fensu-cli/src/helpers/check_policy.rs → /fensu_cli-0.6.0/crates/fensu-cli/src/helpers/check/policy.rs +0 -0
  67. {fensu_cli-0.5.2/crates/fensu-cli/src/helpers → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/hosting}/process.rs +0 -0
  68. {fensu_cli-0.5.2/crates/fensu-cli/src/helpers → fensu_cli-0.6.0/crates/fensu-cli/src/helpers/reporting}/render.rs +0 -0
  69. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/lib.rs +0 -0
  70. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/main.rs +0 -0
  71. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/constants.rs +0 -0
  72. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/cache.rs +0 -0
  73. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/decoding.rs +0 -0
  74. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/execution.rs +0 -0
  75. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/identity.rs +0 -0
  76. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/mod.rs +0 -0
  77. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/project.rs +0 -0
  78. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/render.rs +0 -0
  79. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/tree.rs +0 -0
  80. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/helpers/tree_policy.inc +0 -0
  81. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/main/map.rs +0 -0
  82. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/main/mod.rs +0 -0
  83. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/mod.rs +0 -0
  84. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/mapping/models.rs +0 -0
  85. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/command/execution.rs +0 -0
  86. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/command/mod.rs +0 -0
  87. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/discovery.rs +0 -0
  88. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/fingerprint.rs +0 -0
  89. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/mod.rs +0 -0
  90. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/option_rendering.rs +0 -0
  91. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/content/sections.rs +0 -0
  92. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/build.rs +0 -0
  93. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/identity.rs +0 -0
  94. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/mod.rs +0 -0
  95. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/option_validation.rs +0 -0
  96. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/context/options.rs +0 -0
  97. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/filesystem.rs +0 -0
  98. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/freshness.rs +0 -0
  99. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/install.rs +0 -0
  100. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/mod.rs +0 -0
  101. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/plan.rs +0 -0
  102. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/publication.rs +0 -0
  103. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/installation/transaction.rs +0 -0
  104. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/helpers/mod.rs +0 -0
  105. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/main/catalogue.rs +0 -0
  106. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/main/core_freshness.rs +0 -0
  107. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/main/execute.rs +0 -0
  108. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/main/mod.rs +0 -0
  109. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/main/skills.rs +0 -0
  110. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/mod.rs +0 -0
  111. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/src/skills/models.rs +0 -0
  112. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command/check_cleanup.rs +0 -0
  113. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command/check_policy.rs +0 -0
  114. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command/commands.rs +0 -0
  115. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command/helpers.rs +0 -0
  116. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command/test_types.rs +0 -0
  117. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/command.rs +0 -0
  118. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/mapping/commands.inc +0 -0
  119. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/mapping/commands.rs +0 -0
  120. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/mapping/helpers.rs +0 -0
  121. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/mapping.rs +0 -0
  122. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/skills/commands.inc +0 -0
  123. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/skills/commands.rs +0 -0
  124. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/skills/helpers.rs +0 -0
  125. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/skills/test_types.rs +0 -0
  126. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-cli/tests/skills.rs +0 -0
  127. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/Cargo.toml +0 -0
  128. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/constants.rs +0 -0
  129. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/annotations.rs +0 -0
  130. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/contracts.rs +0 -0
  131. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/declarations.rs +0 -0
  132. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/functions.rs +0 -0
  133. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/harness.rs +0 -0
  134. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/hygiene.rs +0 -0
  135. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/mapping.rs +0 -0
  136. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/mod.rs +0 -0
  137. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/references.rs +0 -0
  138. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/rule_authoring.rs +0 -0
  139. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/conversion/state.rs +0 -0
  140. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/gateway/bindings.rs +0 -0
  141. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/gateway/mod.rs +0 -0
  142. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/gateway/model_types.rs +0 -0
  143. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/gateway/repository_bindings.rs +0 -0
  144. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/gateway/rule_authoring_bindings.rs +0 -0
  145. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/helpers/mod.rs +0 -0
  146. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/main/mod.rs +0 -0
  147. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/main/register_module.rs +0 -0
  148. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/mod.rs +0 -0
  149. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/extension/models.rs +0 -0
  150. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/annotations/mod.rs +0 -0
  151. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/annotations/visitor.rs +0 -0
  152. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/contracts/category.rs +0 -0
  153. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/contracts/display.rs +0 -0
  154. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/contracts/mod.rs +0 -0
  155. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/contracts/returns.rs +0 -0
  156. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/contracts/rows.rs +0 -0
  157. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/control/conditionals.rs +0 -0
  158. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/control/mod.rs +0 -0
  159. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/declarations/mod.rs +0 -0
  160. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/declarations/rows.rs +0 -0
  161. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/harness/calls.rs +0 -0
  162. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/harness/dimensions.rs +0 -0
  163. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/harness/functions.rs +0 -0
  164. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/harness/imports.rs +0 -0
  165. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/harness/mod.rs +0 -0
  166. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/hygiene/checks.rs +0 -0
  167. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/hygiene/mod.rs +0 -0
  168. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/metrics/functions.rs +0 -0
  169. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/metrics/lookups.rs +0 -0
  170. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/metrics/mod.rs +0 -0
  171. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/metrics/mutations.rs +0 -0
  172. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/mod.rs +0 -0
  173. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/naming/mod.rs +0 -0
  174. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/naming/names.rs +0 -0
  175. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/project/calls.rs +0 -0
  176. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/project/mod.rs +0 -0
  177. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/references/events.rs +0 -0
  178. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/references/mod.rs +0 -0
  179. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/references/test_shape.rs +0 -0
  180. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/rule_authoring/literals.rs +0 -0
  181. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/rule_authoring/mod.rs +0 -0
  182. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/rule_authoring/mutations.rs +0 -0
  183. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/rule_authoring/ownership.rs +0 -0
  184. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/rule_authoring/references.rs +0 -0
  185. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/breadth.rs +0 -0
  186. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/children.rs +0 -0
  187. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/expression_children.rs +0 -0
  188. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/mod.rs +0 -0
  189. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/nodes.rs +0 -0
  190. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/spans.rs +0 -0
  191. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/shape/statement_children.rs +0 -0
  192. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/state/mod.rs +0 -0
  193. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/state/resolution.rs +0 -0
  194. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/state/scopes.rs +0 -0
  195. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/wording/mod.rs +0 -0
  196. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/helpers/wording/text.rs +0 -0
  197. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/enumerate_nodes.rs +0 -0
  198. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_annotations.rs +0 -0
  199. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_class_declarations.rs +0 -0
  200. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_comments.rs +0 -0
  201. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_control_flow.rs +0 -0
  202. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_dataclasses.rs +0 -0
  203. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_evaluate_rule_calls.rs +0 -0
  204. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_function_contracts.rs +0 -0
  205. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_functions.rs +0 -0
  206. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_hygiene.rs +0 -0
  207. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_module_declarations.rs +0 -0
  208. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_outer_state_mutations.rs +0 -0
  209. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_parameter_mutation_occurrences.rs +0 -0
  210. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_parameter_mutations.rs +0 -0
  211. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_project_facts.rs +0 -0
  212. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_references.rs +0 -0
  213. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_rule_calls.rs +0 -0
  214. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_rule_references.rs +0 -0
  215. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_test_functions.rs +0 -0
  216. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/extract_test_module.rs +0 -0
  217. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/main/mod.rs +0 -0
  218. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/constants.rs +0 -0
  219. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/classes.rs +0 -0
  220. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/expressions.rs +0 -0
  221. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/extraction.rs +0 -0
  222. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/functions.rs +0 -0
  223. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/imports.rs +0 -0
  224. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/helpers/mod.rs +0 -0
  225. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/main/extract_mapping_declarations.rs +0 -0
  226. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/main/extract_mapping_facts.rs +0 -0
  227. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/main/mod.rs +0 -0
  228. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/mod.rs +0 -0
  229. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mapping/models.rs +0 -0
  230. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/mod.rs +0 -0
  231. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/models.rs +0 -0
  232. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/facts/types.rs +0 -0
  233. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/lib.rs +0 -0
  234. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/helpers/failures.rs +0 -0
  235. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/helpers/mod.rs +0 -0
  236. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/main/mod.rs +0 -0
  237. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/main/parse_expression_strict.rs +0 -0
  238. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/main/parse_strict.rs +0 -0
  239. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/mod.rs +0 -0
  240. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/parsing/models.rs +0 -0
  241. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/helpers/line_index.rs +0 -0
  242. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/helpers/mod.rs +0 -0
  243. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/main/index_lines.rs +0 -0
  244. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/main/locate_offset.rs +0 -0
  245. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/main/mod.rs +0 -0
  246. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/mod.rs +0 -0
  247. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/positions/models.rs +0 -0
  248. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/constants.rs +0 -0
  249. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/helpers/matching.rs +0 -0
  250. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/helpers/mod.rs +0 -0
  251. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/helpers/observation_index.rs +0 -0
  252. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/helpers/repository_observation_index.rs +0 -0
  253. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/helpers/repository_paths.rs +0 -0
  254. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/main/build_repository_observation_index.rs +0 -0
  255. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/main/hash_files.rs +0 -0
  256. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/main/mod.rs +0 -0
  257. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/main/walk_python_files.rs +0 -0
  258. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/mod.rs +0 -0
  259. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/src/snapshot/models.rs +0 -0
  260. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/facts/enumerate.rs +0 -0
  261. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/facts/mapping.rs +0 -0
  262. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/facts/rule_authoring.rs +0 -0
  263. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/facts/test_types.rs +0 -0
  264. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/facts.rs +0 -0
  265. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/parsing/strict.rs +0 -0
  266. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/parsing/test_types.rs +0 -0
  267. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/parsing.rs +0 -0
  268. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/positions/locate.rs +0 -0
  269. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/positions/test_types.rs +0 -0
  270. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/positions.rs +0 -0
  271. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot/hashing.rs +0 -0
  272. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot/helpers.rs +0 -0
  273. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot/observations.rs +0 -0
  274. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot/test_types.rs +0 -0
  275. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot/walk.rs +0 -0
  276. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-facts/tests/snapshot.rs +0 -0
  277. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/Cargo.toml +0 -0
  278. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/helpers/loading.rs +0 -0
  279. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/helpers/mod.rs +0 -0
  280. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/main/load_discovered_memory_corpus.rs +0 -0
  281. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/main/load_memory_corpus.rs +0 -0
  282. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/main/mod.rs +0 -0
  283. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/mod.rs +0 -0
  284. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/models.rs +0 -0
  285. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/corpus/types.rs +0 -0
  286. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/constants.rs +0 -0
  287. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/errors.rs +0 -0
  288. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/archival/archive.rs +0 -0
  289. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/archival/mod.rs +0 -0
  290. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/mod.rs +0 -0
  291. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/database.rs +0 -0
  292. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/documents.rs +0 -0
  293. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/lists.rs +0 -0
  294. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/mod.rs +0 -0
  295. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/references.rs +0 -0
  296. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/sections.rs +0 -0
  297. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/skills.rs +0 -0
  298. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/streaming.rs +0 -0
  299. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/publication/values.rs +0 -0
  300. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/graph_loading.rs +0 -0
  301. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/graphs.rs +0 -0
  302. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/mod.rs +0 -0
  303. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/overviews.rs +0 -0
  304. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/queries.rs +0 -0
  305. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/querying/query_values.rs +0 -0
  306. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/diagnostics.rs +0 -0
  307. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/mod.rs +0 -0
  308. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/schema_core.rs +0 -0
  309. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/schema_markdown.rs +0 -0
  310. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/schema_metadata.rs +0 -0
  311. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/schema_skill_view.rs +0 -0
  312. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/schema_views.rs +0 -0
  313. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/summaries.rs +0 -0
  314. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/helpers/reporting/synchronization.rs +0 -0
  315. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/archive_memory.rs +0 -0
  316. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/check_memory.rs +0 -0
  317. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/memory_overview.rs +0 -0
  318. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/memory_relation_schema.rs +0 -0
  319. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/memory_schema.rs +0 -0
  320. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/memory_schema_sql.rs +0 -0
  321. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/mod.rs +0 -0
  322. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/probe_dependencies.rs +0 -0
  323. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/query_memory_graph.rs +0 -0
  324. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/query_memory_index.rs +0 -0
  325. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/rebuild_memory_index.rs +0 -0
  326. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/summarize_memory.rs +0 -0
  327. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/main/sync_memory_index.rs +0 -0
  328. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/mod.rs +0 -0
  329. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/engine/models.rs +0 -0
  330. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/cycles.rs +0 -0
  331. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/dependencies.rs +0 -0
  332. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/document_targets.rs +0 -0
  333. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/heading_targets.rs +0 -0
  334. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/link_resolution.rs +0 -0
  335. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/helpers/mod.rs +0 -0
  336. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/main/mod.rs +0 -0
  337. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/main/resolve_memory_graph.rs +0 -0
  338. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/mod.rs +0 -0
  339. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/models.rs +0 -0
  340. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/graph/types.rs +0 -0
  341. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/lib.rs +0 -0
  342. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/constants.rs +0 -0
  343. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/assembly.rs +0 -0
  344. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/blocks.rs +0 -0
  345. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/headings.rs +0 -0
  346. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/line_index.rs +0 -0
  347. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/links.rs +0 -0
  348. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/lists.rs +0 -0
  349. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/mod.rs +0 -0
  350. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/obsidian.rs +0 -0
  351. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/helpers/text.rs +0 -0
  352. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/main/mod.rs +0 -0
  353. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/main/parse_markdown.rs +0 -0
  354. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/mod.rs +0 -0
  355. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/models.rs +0 -0
  356. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/markdown/types.rs +0 -0
  357. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/constants.rs +0 -0
  358. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/bootstrap.rs +0 -0
  359. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/collisions.rs +0 -0
  360. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/discovery.rs +0 -0
  361. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/documents.rs +0 -0
  362. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/filesystem.rs +0 -0
  363. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/git_tracking.rs +0 -0
  364. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/mod.rs +0 -0
  365. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/skills.rs +0 -0
  366. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/tree.rs +0 -0
  367. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/helpers/validation.rs +0 -0
  368. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/main/bootstrap_memory.rs +0 -0
  369. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/main/discover_memory.rs +0 -0
  370. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/main/mod.rs +0 -0
  371. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/mod.rs +0 -0
  372. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/models.rs +0 -0
  373. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/src/source/types.rs +0 -0
  374. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/corpus/helpers.rs +0 -0
  375. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/corpus/loading.rs +0 -0
  376. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/corpus/test_types.rs +0 -0
  377. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/corpus.rs +0 -0
  378. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/archive.rs +0 -0
  379. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/bootstrap.rs +0 -0
  380. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/check.rs +0 -0
  381. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/dependencies.rs +0 -0
  382. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/graph_query.rs +0 -0
  383. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/helpers.rs +0 -0
  384. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/list_batch/list_batches.rs +0 -0
  385. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/list_batch/test_types.rs +0 -0
  386. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/overview.rs +0 -0
  387. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/performance.rs +0 -0
  388. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/query.rs +0 -0
  389. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/schema.rs +0 -0
  390. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/streaming/helpers.rs +0 -0
  391. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/streaming.rs +0 -0
  392. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/summary.rs +0 -0
  393. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/sync.rs +0 -0
  394. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine/test_types.rs +0 -0
  395. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/engine.rs +0 -0
  396. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/graph/dependencies.rs +0 -0
  397. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/graph/helpers.rs +0 -0
  398. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/graph/resolution.rs +0 -0
  399. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/graph/test_types.rs +0 -0
  400. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/graph.rs +0 -0
  401. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown/code_blocks.rs +0 -0
  402. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown/links.rs +0 -0
  403. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown/lists.rs +0 -0
  404. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown/structure.rs +0 -0
  405. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown/test_types.rs +0 -0
  406. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/markdown.rs +0 -0
  407. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/collisions.rs +0 -0
  408. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/discovery.rs +0 -0
  409. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/git_worktrees.rs +0 -0
  410. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/helpers.rs +0 -0
  411. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/symlinks.rs +0 -0
  412. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source/test_types.rs +0 -0
  413. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-memory/tests/source.rs +0 -0
  414. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/Cargo.toml +0 -0
  415. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/constants.rs +0 -0
  416. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/bindings.rs +0 -0
  417. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/database.rs +0 -0
  418. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/generation.rs +0 -0
  419. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/mod.rs +0 -0
  420. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/publication.rs +0 -0
  421. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/publication_merge.rs +0 -0
  422. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/records.rs +0 -0
  423. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/replay.rs +0 -0
  424. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/schema.rs +0 -0
  425. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/schema_values.rs +0 -0
  426. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/helpers/storage.rs +0 -0
  427. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/main/mod.rs +0 -0
  428. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/main/register_cache.rs +0 -0
  429. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/main/replay_generation.rs +0 -0
  430. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/mod.rs +0 -0
  431. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/models.rs +0 -0
  432. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/tests/helpers.rs +0 -0
  433. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/tests/records.rs +0 -0
  434. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/tests/storage.rs +0 -0
  435. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/tests/test_types.rs +0 -0
  436. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/tests.rs +0 -0
  437. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/cache/types.rs +0 -0
  438. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/constants.rs +0 -0
  439. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/core_rule_bindings.rs +0 -0
  440. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/execution_planning.rs +0 -0
  441. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/memory_bindings.rs +0 -0
  442. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/memory_conversion.rs +0 -0
  443. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/memory_registration.rs +0 -0
  444. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/helpers/mod.rs +0 -0
  445. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/main/mod.rs +0 -0
  446. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/main/register_module.rs +0 -0
  447. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/extension/mod.rs +0 -0
  448. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/lib.rs +0 -0
  449. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/constants.rs +0 -0
  450. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/annotations/annotations.rs +0 -0
  451. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/hygiene/hygiene.rs +0 -0
  452. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/layers/layers.rs +0 -0
  453. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/layers/local.rs +0 -0
  454. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/layers/project.rs +0 -0
  455. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/mod.rs +0 -0
  456. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/naming/naming.rs +0 -0
  457. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/naming_globs/naming_globs.rs +0 -0
  458. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/project_queries/project_queries.rs +0 -0
  459. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/declarations.rs +0 -0
  460. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/paths.rs +0 -0
  461. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/project_layout.rs +0 -0
  462. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/project_layout_paths.rs +0 -0
  463. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/project_layout_queries.rs +0 -0
  464. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/roles.rs +0 -0
  465. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/roles/surfaces.rs +0 -0
  466. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/shape/shape.rs +0 -0
  467. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/tests/layout.rs +0 -0
  468. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/tests/names.rs +0 -0
  469. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/helpers/tests/tests.rs +0 -0
  470. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/main/evaluate_core_rules.rs +0 -0
  471. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/main/mod.rs +0 -0
  472. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/main/plan_core_rule_queries.rs +0 -0
  473. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/mod.rs +0 -0
  474. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/src/rules/models.rs +0 -0
  475. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/extension/memory_conversion.rs +0 -0
  476. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/extension/test_types.rs +0 -0
  477. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/rules/contracts.rs +0 -0
  478. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/rules/fixtures/core_rules.jsonl +0 -0
  479. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/rules/helpers.rs +0 -0
  480. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/rules/test_types.rs +0 -0
  481. {fensu_cli-0.5.2 → fensu_cli-0.6.0}/crates/fensu-native/tests/rules.rs +0 -0
@@ -392,7 +392,7 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
392
392
 
393
393
  [[package]]
394
394
  name = "fensu-cli"
395
- version = "0.5.2"
395
+ version = "0.6.0"
396
396
  dependencies = [
397
397
  "cap-fs-ext",
398
398
  "cap-std",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fensu-cli
3
- Version: 0.5.2
3
+ Version: 0.6.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: Apache Software License
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "fensu-cli"
3
- version = "0.5.2" # x-release-please-version
3
+ version = "0.6.0" # x-release-please-version
4
4
  edition.workspace = true
5
5
  license.workspace = true
6
6
  publish = false
@@ -23,7 +23,7 @@ use crate::command::helpers::{
23
23
  };
24
24
  use crate::command::models::{ColorMode, MemoryCommand, MemoryProject};
25
25
  use crate::configuration::main::load;
26
- use crate::helpers::render;
26
+ use crate::helpers::reporting::render;
27
27
  use crate::models::{CliOutput, Fault};
28
28
 
29
29
  pub(crate) fn execute_memory(arguments: &[String]) -> Result<CliOutput, String> {
@@ -1,4 +1,4 @@
1
- use crate::helpers::check_execution::execute_check;
1
+ use crate::helpers::check::execution::execute_check;
2
2
  use crate::models::CliOutput;
3
3
 
4
4
  pub(crate) fn run(arguments: &[String]) -> Result<CliOutput, String> {
@@ -1,4 +1,4 @@
1
- use crate::helpers::init::run_init;
1
+ use crate::helpers::init::run::run_init;
2
2
  use crate::models::CliOutput;
3
3
 
4
4
  pub(crate) fn init(arguments: &[String]) -> Result<CliOutput, String> {
@@ -1,4 +1,4 @@
1
- use crate::helpers::rule::rule_output;
1
+ use crate::helpers::catalogue::metadata::rule_output;
2
2
  use crate::models::CliOutput;
3
3
 
4
4
  pub(crate) fn rule(arguments: &[String]) -> Result<CliOutput, String> {
@@ -3,7 +3,8 @@ use std::path::Path;
3
3
 
4
4
  use crate::command::main::{check, help, init, map, memory, rule, skills};
5
5
  use crate::configuration::main::custom_rules;
6
- use crate::helpers::{check_cleanup, process};
6
+ use crate::helpers::check::cleanup;
7
+ use crate::helpers::hosting::process;
7
8
  use crate::models::CliOutput;
8
9
 
9
10
  pub fn run_cli() -> CliOutput {
@@ -40,7 +41,7 @@ fn dispatch(arguments: &[String]) -> Result<CliOutput, String> {
40
41
  }
41
42
 
42
43
  fn dispatch_check(arguments: &[String]) -> Result<CliOutput, String> {
43
- let cleanup = check_cleanup::prepare(Path::new("."));
44
+ let cleanup = cleanup::prepare(Path::new("."));
44
45
  let result = if custom_rules::custom_rules_are_configured(Path::new("."))? {
45
46
  let exit_code = process::run_custom_check_host(arguments)?;
46
47
  Ok(CliOutput {
@@ -2,4 +2,5 @@ pub(crate) mod discovery;
2
2
  pub(crate) mod exceptions;
3
3
  pub(crate) mod loading;
4
4
  pub(crate) mod parsing;
5
+ pub(crate) mod roots;
5
6
  pub(crate) mod validation;
@@ -0,0 +1,30 @@
1
+ pub(crate) fn validate_nested_roots(roots: Vec<String>) -> Result<(), String> {
2
+ for (index, first) in roots.iter().enumerate() {
3
+ let first_parts = first.split('/').collect::<Vec<_>>();
4
+ for second in roots.iter().skip(index + 1) {
5
+ let second_parts = second.split('/').collect::<Vec<_>>();
6
+ let length = first_parts.len().min(second_parts.len());
7
+ if first_parts[..length] != second_parts[..length] {
8
+ continue;
9
+ }
10
+ return Err(nested_roots_error(
11
+ first,
12
+ second,
13
+ first_parts.len() <= second_parts.len(),
14
+ ));
15
+ }
16
+ }
17
+ Ok(())
18
+ }
19
+
20
+ fn nested_roots_error(first: &str, second: &str, first_is_outer: bool) -> String {
21
+ let (outer, inner) = if first_is_outer {
22
+ (first, second)
23
+ } else {
24
+ (second, first)
25
+ };
26
+ if outer == inner {
27
+ return format!("Config key roots must not contain duplicate paths: {outer:?}.");
28
+ }
29
+ format!("Config key roots must not contain nested paths: {outer:?} contains {inner:?}.")
30
+ }
@@ -1,6 +1,7 @@
1
1
  use std::collections::HashSet;
2
2
 
3
3
  use crate::configuration::helpers::exceptions;
4
+ use crate::configuration::helpers::roots::validate_nested_roots;
4
5
  use crate::constants::{
5
6
  CONFIG_ROLE_NAMES, CONTRACT_BEHAVIORS, DEFAULT_THRESHOLDS, MAX_CORE_SELECTOR_SUFFIX,
6
7
  };
@@ -78,20 +79,6 @@ fn validate_rule_options(value: Option<&toml::Value>) -> Result<(), String> {
78
79
  Ok(())
79
80
  }
80
81
 
81
- fn validate_nested_roots(roots: Vec<String>) -> Result<(), String> {
82
- for (index, first) in roots.iter().enumerate() {
83
- let first = first.split('/').collect::<Vec<_>>();
84
- for second in roots.iter().skip(index + 1) {
85
- let second = second.split('/').collect::<Vec<_>>();
86
- let length = first.len().min(second.len());
87
- if first[..length] == second[..length] {
88
- return Err("Config key roots must not contain nested paths.".to_owned());
89
- }
90
- }
91
- }
92
- Ok(())
93
- }
94
-
95
82
  fn validate_boolean_table(
96
83
  table: &toml::map::Map<String, toml::Value>,
97
84
  name: &str,
@@ -1,3 +1,4 @@
1
1
  pub(crate) mod custom_rules;
2
2
  pub(crate) mod load;
3
3
  pub(crate) mod load_optional;
4
+ pub(crate) mod validate_document;
@@ -0,0 +1,10 @@
1
+ use crate::configuration::helpers::validation;
2
+
3
+ pub(crate) fn validate_document(text: &str) -> Result<(), String> {
4
+ let document = toml::from_slice::<toml::Value>(text.as_bytes())
5
+ .map_err(|error| format!("Configuration is not valid TOML: {error}"))?;
6
+ let table = document
7
+ .as_table()
8
+ .ok_or_else(|| "Configuration did not contain a TOML table.".to_owned())?;
9
+ validation::validate(table)
10
+ }
@@ -0,0 +1 @@
1
+ pub(crate) mod metadata;
@@ -9,12 +9,13 @@ use rayon::iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIter
9
9
  use crate::constants::{
10
10
  OWNER_FILE, OWNER_PACKAGE, ROLE_HELPERS, ROLE_MAIN, SCOPE_TEST, SUFFIX_INIT,
11
11
  };
12
- use crate::helpers::check_policy::{
12
+ use crate::helpers::catalogue::metadata;
13
+ use crate::helpers::check::policy::{
13
14
  apply_exceptions, apply_rule_ignores, is_entry_module, is_main_module, program,
14
15
  resolved_thresholds, role, scope_roots, source_module_name,
15
16
  };
16
- use crate::helpers::check_project::{observe, project_plane};
17
- use crate::helpers::{render, rule};
17
+ use crate::helpers::check::project::{observe, project_plane};
18
+ use crate::helpers::reporting::render;
18
19
  use crate::models::{Config, Fault, RuleMetadata, ScopedSource};
19
20
 
20
21
  pub(crate) fn evaluate_and_render(
@@ -86,7 +87,7 @@ pub(crate) fn evaluate_and_render(
86
87
  let faults = rows
87
88
  .into_iter()
88
89
  .map(|row| {
89
- let metadata = rule::rule(&row.code)
90
+ let metadata = metadata::rule(&row.code)
90
91
  .ok_or_else(|| format!("Unknown native rule code: {}", row.code))?;
91
92
  let path = row.path.unwrap_or_else(|| source.repository_path.clone());
92
93
  Ok(Fault {
@@ -162,7 +163,8 @@ fn native_rule_options(
162
163
  ) -> Result<HashMap<String, HashMap<String, String>>, String> {
163
164
  let mut by_code = HashMap::new();
164
165
  for code in codes {
165
- let rule = rule::rule(code).ok_or_else(|| format!("Unknown native rule code: {code}"))?;
166
+ let rule =
167
+ metadata::rule(code).ok_or_else(|| format!("Unknown native rule code: {code}"))?;
166
168
  let mut values = HashMap::new();
167
169
  for option in &rule.options {
168
170
  values.insert(
@@ -178,7 +180,7 @@ fn native_rule_options(
178
180
  }
179
181
 
180
182
  pub(crate) fn selected_rules(select: &[String], ignore: &[String]) -> Vec<&'static RuleMetadata> {
181
- rule::catalogue()
183
+ metadata::catalogue()
182
184
  .iter()
183
185
  .filter(|rule| {
184
186
  let selected = select
@@ -8,9 +8,9 @@ use walkdir::WalkDir;
8
8
 
9
9
  use crate::configuration::main::load;
10
10
  use crate::constants::PYTHON_CACHE_DIRECTORY;
11
- use crate::helpers::cache;
12
- use crate::helpers::check_evaluation::evaluate_and_render;
13
- use crate::helpers::check_policy::{
11
+ use crate::helpers::check::cache;
12
+ use crate::helpers::check::evaluation::evaluate_and_render;
13
+ use crate::helpers::check::policy::{
14
14
  check_identity, hex_digest, path_matches, python_version, validate_package_names,
15
15
  };
16
16
  use crate::models::{CachedOutput, CheckOptions, CliOutput, Config, ScopedSource};
@@ -0,0 +1,6 @@
1
+ pub(crate) mod cache;
2
+ pub(crate) mod cleanup;
3
+ pub(crate) mod evaluation;
4
+ pub(crate) mod execution;
5
+ pub(crate) mod policy;
6
+ pub(crate) mod project;
@@ -8,7 +8,7 @@ use globset::GlobBuilder;
8
8
  use walkdir::WalkDir;
9
9
 
10
10
  use crate::constants::{SCOPE_TEST, STEM_INIT, VALUE_TRUE};
11
- use crate::helpers::check_policy::{bool_text, program, python_version, relative};
11
+ use crate::helpers::check::policy::{bool_text, program, python_version, relative};
12
12
  use crate::models::{Config, ScopedSource};
13
13
 
14
14
  const ENTRYPOINT_SECTIONS: [&str; 3] = ["scripts", "gui-scripts", "entry-points"];
@@ -0,0 +1 @@
1
+ pub(crate) mod process;
@@ -0,0 +1,2 @@
1
+ pub(crate) mod packages;
2
+ pub(crate) mod run;
@@ -0,0 +1,90 @@
1
+ use std::collections::BTreeSet;
2
+ use std::fs;
3
+ use std::path::Path;
4
+
5
+ use walkdir::WalkDir;
6
+
7
+ const MAX_REPORTED_DIRECTORIES: usize = 10;
8
+ const SKIPPED_DIRECTORIES: [&str; 7] = [
9
+ ".git",
10
+ ".venv",
11
+ "venv",
12
+ "target",
13
+ "dist",
14
+ "build",
15
+ "__pycache__",
16
+ ];
17
+
18
+ pub(crate) fn implicit_namespace_packages(repository: &Path, roots: &[String]) -> Vec<String> {
19
+ let mut found = BTreeSet::new();
20
+ for root in roots {
21
+ for entry in WalkDir::new(repository.join(root))
22
+ .into_iter()
23
+ .filter_entry(is_walkable)
24
+ .filter_map(Result::ok)
25
+ {
26
+ let path = entry.path();
27
+ if !entry.file_type().is_dir() || path.join("__init__.py").is_file() {
28
+ continue;
29
+ }
30
+ if !holds_python_code(path) {
31
+ continue;
32
+ }
33
+ if let Ok(relative) = path.strip_prefix(repository) {
34
+ found.insert(relative.to_string_lossy().replace('\\', "/"));
35
+ }
36
+ }
37
+ }
38
+ found.into_iter().collect()
39
+ }
40
+
41
+ pub(crate) fn report(directories: &[String]) -> String {
42
+ if directories.is_empty() {
43
+ return String::new();
44
+ }
45
+ let count = directories.len();
46
+ let noun = if count == 1 {
47
+ "directory holds"
48
+ } else {
49
+ "directories hold"
50
+ };
51
+ let mut text = format!("\n-> Implicit namespace packages\n\n {count} {noun} Python code but no __init__.py:\n\n");
52
+ for directory in directories.iter().take(MAX_REPORTED_DIRECTORIES) {
53
+ text.push_str(&format!(" {directory}\n"));
54
+ }
55
+ if let Some(remaining) = count
56
+ .checked_sub(MAX_REPORTED_DIRECTORIES)
57
+ .filter(|value| *value > 0)
58
+ {
59
+ text.push_str(&format!(" ... and {remaining} more\n"));
60
+ }
61
+ text.push_str(
62
+ "\n Add __init__.py to each one unless the namespace package is deliberate.\n",
63
+ );
64
+ text
65
+ }
66
+
67
+ fn is_walkable(entry: &walkdir::DirEntry) -> bool {
68
+ entry
69
+ .file_name()
70
+ .to_str()
71
+ .is_none_or(|name| !SKIPPED_DIRECTORIES.contains(&name))
72
+ }
73
+
74
+ fn holds_python_code(directory: &Path) -> bool {
75
+ let Ok(entries) = fs::read_dir(directory) else {
76
+ return false;
77
+ };
78
+ let mut children = entries.filter_map(Result::ok);
79
+ children.any(|child| is_python_module(&child) || is_package_directory(&child))
80
+ }
81
+
82
+ fn is_python_module(child: &fs::DirEntry) -> bool {
83
+ child.path().is_file()
84
+ && child.path().extension().and_then(|value| value.to_str()) == Some("py")
85
+ && child.file_name().to_str() != Some("__init__.py")
86
+ }
87
+
88
+ fn is_package_directory(child: &fs::DirEntry) -> bool {
89
+ child.path().is_dir() && child.path().join("__init__.py").is_file()
90
+ }
@@ -6,6 +6,9 @@ use std::path::{Path, PathBuf};
6
6
 
7
7
  use walkdir::WalkDir;
8
8
 
9
+ use crate::configuration::main::load;
10
+ use crate::configuration::main::validate_document::validate_document;
11
+ use crate::helpers::init::packages;
9
12
  use crate::models::{CliOutput, InitOptions};
10
13
  use crate::skills::main::execute;
11
14
  use crate::skills::models::SkillOptions;
@@ -19,10 +22,7 @@ pub(crate) fn run_init(arguments: &[String]) -> Result<CliOutput, String> {
19
22
  }
20
23
  let repository = env::current_dir().map_err(|error| error.to_string())?;
21
24
  if let Some(path) = local_config(&repository) {
22
- return Ok(CliOutput::success(format!(
23
- "Fensu configuration already exists: {} (nothing to do)\n",
24
- path.display()
25
- )));
25
+ return existing_configuration(&repository, &path, &options);
26
26
  }
27
27
  let python_files = repository_python_files(&repository);
28
28
  let package_roots = detected_roots(&repository);
@@ -81,6 +81,10 @@ pub(crate) fn run_init(arguments: &[String]) -> Result<CliOutput, String> {
81
81
  .sum::<usize>();
82
82
  output.push_str(&format!("-> Existing codebase - {runtime_count} Python files\n\n Enabling the full Fensu ruleset: FF\n Wrote fensu.toml\n"));
83
83
  }
84
+ output.push_str(&packages::report(&packages::implicit_namespace_packages(
85
+ &repository,
86
+ &roots,
87
+ )));
84
88
  let drift = native_drift(&repository)?;
85
89
  if drift.0 == 0 {
86
90
  output.push_str("\n-> Found 0 faults\n");
@@ -160,6 +164,39 @@ fn required_value(arguments: &[String], index: usize, option: &str) -> Result<St
160
164
  .ok_or_else(|| format!("fensu init: error: argument {option}: expected one argument"))
161
165
  }
162
166
 
167
+ fn existing_configuration(
168
+ repository: &Path,
169
+ path: &Path,
170
+ options: &InitOptions,
171
+ ) -> Result<CliOutput, String> {
172
+ if let Err(error) = load::load(repository) {
173
+ return Err(format!(
174
+ "Fensu configuration already exists but is not usable: {}\n{error}\nEdit that file, \
175
+ or delete it and rerun fensu init.",
176
+ path.display()
177
+ ));
178
+ }
179
+ if requests_scopes(options) {
180
+ return Err(format!(
181
+ "Fensu configuration already exists: {}\nRefusing to overwrite it, so --root, \
182
+ --tests, --tooling, and --name were not applied. Edit that file, or delete it and \
183
+ rerun fensu init.",
184
+ path.display()
185
+ ));
186
+ }
187
+ Ok(CliOutput::success(format!(
188
+ "Fensu configuration already exists: {} (nothing to do)\n",
189
+ path.display()
190
+ )))
191
+ }
192
+
193
+ fn requests_scopes(options: &InitOptions) -> bool {
194
+ !options.roots.is_empty()
195
+ || !options.tests.is_empty()
196
+ || !options.tooling.is_empty()
197
+ || options.name.is_some()
198
+ }
199
+
163
200
  fn local_config(repository: &Path) -> Option<PathBuf> {
164
201
  let fensu = repository.join("fensu.toml");
165
202
  if fensu.is_file() {
@@ -191,7 +228,7 @@ fn repository_python_files(repository: &Path) -> Vec<PathBuf> {
191
228
  }
192
229
 
193
230
  fn detected_roots(repository: &Path) -> Vec<String> {
194
- let mut roots = BTreeSet::new();
231
+ let mut candidates = BTreeSet::new();
195
232
  for path in repository_python_files(repository) {
196
233
  if path.file_name().and_then(|value| value.to_str()) != Some("__init__.py") {
197
234
  continue;
@@ -204,11 +241,24 @@ fn detected_roots(repository: &Path) -> Vec<String> {
204
241
  .is_some_and(|candidate| candidate.join("__init__.py").is_file());
205
242
  if !parent_parent_is_package {
206
243
  if let Ok(relative) = parent.strip_prefix(repository) {
207
- roots.insert(relative.to_string_lossy().replace('\\', "/"));
244
+ candidates.insert(relative.to_string_lossy().replace('\\', "/"));
208
245
  }
209
246
  }
210
247
  }
211
- roots.into_iter().collect()
248
+ let detected = candidates.into_iter().collect::<Vec<_>>();
249
+ detected
250
+ .iter()
251
+ .filter(|candidate| {
252
+ !detected
253
+ .iter()
254
+ .any(|ancestor| is_nested_within(candidate, ancestor))
255
+ })
256
+ .cloned()
257
+ .collect()
258
+ }
259
+
260
+ fn is_nested_within(candidate: &str, ancestor: &str) -> bool {
261
+ candidate.len() > ancestor.len() && candidate.starts_with(&format!("{ancestor}/"))
212
262
  }
213
263
 
214
264
  fn normalize_name(value: &str) -> Result<String, String> {
@@ -241,6 +291,12 @@ fn write_config(
241
291
  tests: &[String],
242
292
  tooling: &[String],
243
293
  ) -> Result<(), String> {
294
+ let text = config_text(roots, tests, tooling)?;
295
+ validate_config_text(&text)?;
296
+ fs::write(repository.join("fensu.toml"), text).map_err(|error| error.to_string())
297
+ }
298
+
299
+ fn config_text(roots: &[String], tests: &[String], tooling: &[String]) -> Result<String, String> {
244
300
  let mut text = format!(
245
301
  "roots = {}\ntests = {}\n",
246
302
  serde_json::to_string(roots).map_err(|error| error.to_string())?,
@@ -253,7 +309,16 @@ fn write_config(
253
309
  ));
254
310
  }
255
311
  text.push_str("select = [\"FF\"]\n");
256
- fs::write(repository.join("fensu.toml"), text).map_err(|error| error.to_string())
312
+ Ok(text)
313
+ }
314
+
315
+ fn validate_config_text(text: &str) -> Result<(), String> {
316
+ validate_document(text).map_err(|error| {
317
+ format!(
318
+ "{error}\nRefusing to write fensu.toml. Choose the scopes explicitly, for example: \
319
+ fensu init --yes --root src/<package>"
320
+ )
321
+ })
257
322
  }
258
323
 
259
324
  fn write_gitignore(repository: &Path, empty: bool) -> Result<(), String> {
@@ -288,7 +353,7 @@ fn python_count(path: &Path) -> usize {
288
353
  fn native_drift(repository: &Path) -> Result<(usize, usize), String> {
289
354
  let invocation = env::current_dir().map_err(|error| error.to_string())?;
290
355
  env::set_current_dir(repository).map_err(|error| error.to_string())?;
291
- let result = crate::helpers::check_execution::execute_check(&[
356
+ let result = crate::helpers::check::execution::execute_check(&[
292
357
  "--no-color".to_owned(),
293
358
  "--cache".to_owned(),
294
359
  ]);
@@ -0,0 +1,5 @@
1
+ pub(crate) mod catalogue;
2
+ pub(crate) mod check;
3
+ pub(crate) mod hosting;
4
+ pub(crate) mod init;
5
+ pub(crate) mod reporting;
@@ -0,0 +1 @@
1
+ pub(crate) mod render;
@@ -7,7 +7,7 @@ use fensu_facts::facts::mapping::models::{
7
7
  use fensu_facts::parsing::main::parse_strict::parse_strict;
8
8
  use fensu_facts::positions::main::index_lines::index_lines;
9
9
 
10
- use crate::helpers::check_policy::python_version;
10
+ use crate::helpers::check::policy::python_version;
11
11
  use crate::mapping::constants::{
12
12
  EXPRESSION_ATTRIBUTE, EXPRESSION_NAME, EXPRESSION_SUBSCRIPT, INIT_MODULE_FILE,
13
13
  };
@@ -51,11 +51,11 @@ pub(crate) struct RuleMetadata {
51
51
  pub(crate) severity: String,
52
52
  pub(crate) enabled_by_default: bool,
53
53
  pub(crate) execution_owner: String,
54
- #[serde(default = "crate::helpers::rule::core_kind")]
54
+ #[serde(default = "crate::helpers::catalogue::metadata::core_kind")]
55
55
  pub(crate) kind: String,
56
56
  #[serde(default)]
57
57
  pub(crate) source: Option<String>,
58
- #[serde(default = "crate::helpers::rule::cacheable_default")]
58
+ #[serde(default = "crate::helpers::catalogue::metadata::cacheable_default")]
59
59
  pub(crate) cacheable: bool,
60
60
  #[serde(default)]
61
61
  pub(crate) options: Vec<RuleOptionMetadata>,
@@ -221,7 +221,7 @@ fn configured_threshold_lines(context: &SkillContext) -> Result<Vec<String>, Str
221
221
  .chain(&context.warnings)
222
222
  .map(|rule| rule.code.clone())
223
223
  .collect::<Vec<_>>();
224
- let required = crate::helpers::check_policy::required_thresholds(&active);
224
+ let required = crate::helpers::check::policy::required_thresholds(&active);
225
225
  let applicable = context
226
226
  .config
227
227
  .threshold_overrides
@@ -6,7 +6,7 @@ use fensu_facts::parsing::main::parse_strict::parse_strict;
6
6
  use ruff_python_ast::visitor::{walk_stmt, Visitor};
7
7
  use ruff_python_ast::Stmt;
8
8
 
9
- use crate::helpers::check_policy::python_version;
9
+ use crate::helpers::check::policy::python_version;
10
10
  use crate::models::{Config, RuleMetadata};
11
11
 
12
12
  pub(crate) fn validate(
@@ -3,7 +3,8 @@ use std::path::Path;
3
3
 
4
4
  use serde_json::json;
5
5
 
6
- use crate::helpers::{process, rule};
6
+ use crate::helpers::catalogue::metadata;
7
+ use crate::helpers::hosting::process;
7
8
  use crate::models::{Config, RuleMetadata};
8
9
  use crate::skills::helpers::context::option_validation::validate_rule_options;
9
10
  use crate::skills::models::{HostResponse, RuleSelection};
@@ -40,7 +41,7 @@ pub(crate) fn selection(config: &Config, project_root: &Path) -> Result<RuleSele
40
41
  {
41
42
  return hosted_selection(project_root);
42
43
  }
43
- let catalogue = rule::catalogue().to_vec();
44
+ let catalogue = metadata::catalogue().to_vec();
44
45
  let ignored = matching(&catalogue, &config.ignore);
45
46
  let ignored_codes = ignored
46
47
  .iter()
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "fensu-cli"
7
- version = "0.5.2" # x-release-please-version
7
+ version = "0.6.0" # x-release-please-version
8
8
  description = "Native command-line executable for fensu"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -1,10 +0,0 @@
1
- pub(crate) mod cache;
2
- pub(crate) mod check_cleanup;
3
- pub(crate) mod check_evaluation;
4
- pub(crate) mod check_execution;
5
- pub(crate) mod check_policy;
6
- pub(crate) mod check_project;
7
- pub(crate) mod init;
8
- pub(crate) mod process;
9
- pub(crate) mod render;
10
- pub(crate) mod rule;
File without changes
File without changes