buvis-gems 0.12.6__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 (969) hide show
  1. buvis_gems-0.12.6/.github/dependabot.yml +14 -0
  2. buvis_gems-0.12.6/.github/workflows/deploy-docs.yml +43 -0
  3. buvis_gems-0.12.6/.github/workflows/publish.yml +136 -0
  4. buvis_gems-0.12.6/.github/workflows/test.yml +178 -0
  5. buvis_gems-0.12.6/.github/workflows/update-snapshots.yml +68 -0
  6. buvis_gems-0.12.6/.gitignore +74 -0
  7. buvis_gems-0.12.6/.mise.toml +2 -0
  8. buvis_gems-0.12.6/.pre-commit-config.yaml +31 -0
  9. buvis_gems-0.12.6/AGENTS.md +208 -0
  10. buvis_gems-0.12.6/CHANGELOG.md +438 -0
  11. buvis_gems-0.12.6/CLAUDE.md +7 -0
  12. buvis_gems-0.12.6/LICENSE +21 -0
  13. buvis_gems-0.12.6/PKG-INFO +198 -0
  14. buvis_gems-0.12.6/README.md +125 -0
  15. buvis_gems-0.12.6/SECURITY.md +9 -0
  16. buvis_gems-0.12.6/dev/bin/check_tool_wiring.py +102 -0
  17. buvis_gems-0.12.6/dev/bin/gen_zettel_writer_fixtures.py +129 -0
  18. buvis_gems-0.12.6/dev/bin/pin_deps.py +166 -0
  19. buvis_gems-0.12.6/dev/bin/release +141 -0
  20. buvis_gems-0.12.6/dev/bin/scaffold.py +340 -0
  21. buvis_gems-0.12.6/docs/Makefile +20 -0
  22. buvis_gems-0.12.6/docs/reference/klyreon/ancient-philosophy-applied-to-zettelkasten.md +151 -0
  23. buvis_gems-0.12.6/docs/reference/klyreon/anti-example-prior-build-output.md +101 -0
  24. buvis_gems-0.12.6/docs/reference/klyreon/lessons-from-prior-iterations.md +50 -0
  25. buvis_gems-0.12.6/docs/reference/klyreon/original-karpathy-idea-proposal.md +74 -0
  26. buvis_gems-0.12.6/docs/reference/klyreon/zettel-format-specification.md +862 -0
  27. buvis_gems-0.12.6/docs/source/_static/.gitkeep +0 -0
  28. buvis_gems-0.12.6/docs/source/adapters.rst +269 -0
  29. buvis_gems-0.12.6/docs/source/bim-query-examples.md +868 -0
  30. buvis_gems-0.12.6/docs/source/completions.rst +100 -0
  31. buvis_gems-0.12.6/docs/source/conf.py +19 -0
  32. buvis_gems-0.12.6/docs/source/configuration.rst +775 -0
  33. buvis_gems-0.12.6/docs/source/development.rst +86 -0
  34. buvis_gems-0.12.6/docs/source/filesystem.rst +68 -0
  35. buvis_gems-0.12.6/docs/source/formatting.rst +65 -0
  36. buvis_gems-0.12.6/docs/source/index.rst +54 -0
  37. buvis_gems-0.12.6/docs/source/tools/bim.rst +636 -0
  38. buvis_gems-0.12.6/docs/source/tools/dot.rst +186 -0
  39. buvis_gems-0.12.6/docs/source/tools/fctracker.rst +72 -0
  40. buvis_gems-0.12.6/docs/source/tools/fren.rst +48 -0
  41. buvis_gems-0.12.6/docs/source/tools/hello-world.rst +44 -0
  42. buvis_gems-0.12.6/docs/source/tools/morph.rst +30 -0
  43. buvis_gems-0.12.6/docs/source/tools/muc.rst +63 -0
  44. buvis_gems-0.12.6/docs/source/tools/netscan.rst +55 -0
  45. buvis_gems-0.12.6/docs/source/tools/outlookctl.rst +32 -0
  46. buvis_gems-0.12.6/docs/source/tools/pidash.rst +110 -0
  47. buvis_gems-0.12.6/docs/source/tools/pinger.rst +42 -0
  48. buvis_gems-0.12.6/docs/source/tools/puc.rst +33 -0
  49. buvis_gems-0.12.6/docs/source/tools/readerctl.rst +49 -0
  50. buvis_gems-0.12.6/docs/source/tools/sysup.rst +77 -0
  51. buvis_gems-0.12.6/docs/source/tools/vuc.rst +18 -0
  52. buvis_gems-0.12.6/docs/source/tools/zseq.rst +38 -0
  53. buvis_gems-0.12.6/docs/source/tools.rst +133 -0
  54. buvis_gems-0.12.6/docs/source/zettel.rst +373 -0
  55. buvis_gems-0.12.6/hatch_build.py +96 -0
  56. buvis_gems-0.12.6/pyproject.toml +159 -0
  57. buvis_gems-0.12.6/renovate.json +4 -0
  58. buvis_gems-0.12.6/src/lib/buvis/pybase/__init__.py +12 -0
  59. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/__init__.py +40 -0
  60. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/console/__init__.py +5 -0
  61. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/console/capturing_rich_handler.py +26 -0
  62. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/console/console.py +394 -0
  63. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/__init__.py +24 -0
  64. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/domain/__init__.py +11 -0
  65. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/domain/jira_comment_dto.py +27 -0
  66. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/domain/jira_issue_dto.py +43 -0
  67. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/domain/jira_search_result.py +24 -0
  68. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/exceptions.py +51 -0
  69. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/jira.py +397 -0
  70. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/jira/settings.py +37 -0
  71. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/outlook_local/__init__.py +6 -0
  72. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/outlook_local/exceptions.py +11 -0
  73. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/outlook_local/outlook_local.py +196 -0
  74. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/shell/__init__.py +5 -0
  75. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/shell/shell.py +162 -0
  76. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/uv/__init__.py +6 -0
  77. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/uv/uv.py +71 -0
  78. buvis_gems-0.12.6/src/lib/buvis/pybase/adapters/uv/uv_tool.py +143 -0
  79. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/__init__.py +66 -0
  80. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/click_integration.py +468 -0
  81. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/config_writer.py +373 -0
  82. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/examples/__init__.py +11 -0
  83. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/examples/music_settings.py +29 -0
  84. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/examples/photo_settings.py +28 -0
  85. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/exceptions.py +35 -0
  86. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/loader.py +273 -0
  87. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/resolver.py +270 -0
  88. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/settings.py +99 -0
  89. buvis_gems-0.12.6/src/lib/buvis/pybase/configuration/validators.py +114 -0
  90. buvis_gems-0.12.6/src/lib/buvis/pybase/filesystem/__init__.py +5 -0
  91. buvis_gems-0.12.6/src/lib/buvis/pybase/filesystem/file_metadata/file_metadata_reader.py +86 -0
  92. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/__init__.py +15 -0
  93. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/__init__.py +6 -0
  94. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/abbr.py +139 -0
  95. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/string_case_tools.py +96 -0
  96. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/string_operator.py +257 -0
  97. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/suggest_tags.py +68 -0
  98. buvis_gems-0.12.6/src/lib/buvis/pybase/formatting/string_operator/word_level_tools.py +61 -0
  99. buvis_gems-0.12.6/src/lib/buvis/pybase/manifest.py +66 -0
  100. buvis_gems-0.12.6/src/lib/buvis/pybase/py.typed +0 -0
  101. buvis_gems-0.12.6/src/lib/buvis/pybase/result.py +50 -0
  102. buvis_gems-0.12.6/src/lib/buvis/pybase/updater/__init__.py +106 -0
  103. buvis_gems-0.12.6/src/lib/buvis/pybase/updater/checker.py +101 -0
  104. buvis_gems-0.12.6/src/lib/buvis/pybase/updater/detector.py +151 -0
  105. buvis_gems-0.12.6/src/lib/buvis/pybase/updater/executor.py +183 -0
  106. buvis_gems-0.12.6/src/lib/buvis/pybase/updater/state.py +83 -0
  107. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/__init__.py +20 -0
  108. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/_core.pyi +16 -0
  109. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/__init__.py +1 -0
  110. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/__init__.py +17 -0
  111. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/create_zettel_use_case.py +34 -0
  112. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/delete_zettel_use_case.py +15 -0
  113. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/print_zettel_use_case.py +41 -0
  114. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/query_zettels_use_case.py +305 -0
  115. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/read_zettel_use_case.py +54 -0
  116. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/application/use_cases/update_zettel_use_case.py +40 -0
  117. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/__init__.py +1 -0
  118. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/__init__.py +9 -0
  119. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/__init__.py +5 -0
  120. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/fixers/__init__.py +7 -0
  121. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/fixers/fix_lists_bullets.py +37 -0
  122. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/fixers/normalize_sections_order.py +47 -0
  123. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/fixers/set_default_completed.py +22 -0
  124. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/project.py +105 -0
  125. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/project_consistency_service.py +21 -0
  126. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/project_migration_service.py +20 -0
  127. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/services/__init__.py +1 -0
  128. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/services/log_parser.py +170 -0
  129. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/upgrades/__init__.py +27 -0
  130. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/upgrades/migrate_loop_log.py +264 -0
  131. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/project/upgrades/migrate_parent_reference.py +35 -0
  132. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/__init__.py +5 -0
  133. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/__init__.py +27 -0
  134. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/align_h1_to_title.py +33 -0
  135. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/fix_title_format.py +37 -0
  136. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/remove_duplicate_tags.py +23 -0
  137. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_date.py +24 -0
  138. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_id.py +30 -0
  139. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_processed.py +19 -0
  140. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_publish.py +17 -0
  141. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_tags.py +22 -0
  142. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_title.py +30 -0
  143. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/set_default_type.py +22 -0
  144. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/fixers/sort_tags.py +19 -0
  145. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/upgrades/__init__.py +11 -0
  146. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/upgrades/move_tag_to_tags.py +32 -0
  147. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/upgrades/move_zkn_id_to_id.py +23 -0
  148. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/upgrades/normalize_type.py +33 -0
  149. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/zettel.py +224 -0
  150. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/zettel_consistency_service.py +47 -0
  151. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/entities/zettel/zettel_migration_service.py +21 -0
  152. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/interfaces/__init__.py +15 -0
  153. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/interfaces/expression_evaluator.py +7 -0
  154. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/interfaces/zettel_formatter.py +31 -0
  155. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/interfaces/zettel_repository.py +87 -0
  156. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/interfaces/zettel_repository_exceptions.py +32 -0
  157. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/services/__init__.py +6 -0
  158. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/services/base.py +25 -0
  159. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/services/zettel_factory.py +55 -0
  160. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/__init__.py +70 -0
  161. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/article.yaml +4 -0
  162. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/cheatsheet.yaml +4 -0
  163. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/contact.yaml +13 -0
  164. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/course.yaml +13 -0
  165. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/definition.yaml +4 -0
  166. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/how_to.yaml +4 -0
  167. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/list.yaml +4 -0
  168. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/meeting_minutes.yaml +27 -0
  169. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/note.py +26 -0
  170. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/procedure.yaml +4 -0
  171. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/project.py +42 -0
  172. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/quote.yaml +5 -0
  173. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/recipe.yaml +4 -0
  174. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/snippet.yaml +8 -0
  175. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/wiki_article.yaml +4 -0
  176. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/templates/yaml_template.py +78 -0
  177. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/value_objects/__init__.py +39 -0
  178. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/value_objects/log_entry.py +22 -0
  179. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/value_objects/property_schema.py +31 -0
  180. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/value_objects/query_spec.py +124 -0
  181. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/domain/value_objects/zettel_data.py +31 -0
  182. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/__init__.py +1 -0
  183. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/formatting/__init__.py +1 -0
  184. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/formatting/markdown_zettel_formatter/__init__.py +23 -0
  185. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/formatting/markdown_zettel_formatter/helpers.py +162 -0
  186. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/formatting/markdown_zettel_formatter/markdown_zettel_formatter.py +54 -0
  187. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/__init__.py +13 -0
  188. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/__init__.py +5 -0
  189. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/__init__.py +1 -0
  190. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/markdown/__init__.py +21 -0
  191. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/markdown/back_matter_preprocessor.py +46 -0
  192. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/markdown/front_matter_preprocessor.py +34 -0
  193. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/markdown/helpers.py +128 -0
  194. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/parsers/markdown/markdown.py +31 -0
  195. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/file_parsers/zettel_file_parser.py +90 -0
  196. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/markdown_zettel_repository/__init__.py +5 -0
  197. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/markdown_zettel_repository/markdown_zettel_repository.py +111 -0
  198. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/persistence/template_loader.py +90 -0
  199. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/query/__init__.py +1 -0
  200. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/query/expression_engine.py +300 -0
  201. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/query/output_formatter.py +127 -0
  202. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/infrastructure/query/query_spec_parser.py +325 -0
  203. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/integrations/__init__.py +1 -0
  204. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/integrations/jira/__init__.py +12 -0
  205. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/integrations/jira/assemblers/__init__.py +5 -0
  206. buvis_gems-0.12.6/src/lib/buvis/pybase/zettel/integrations/jira/assemblers/project_zettel_jira_issue.py +98 -0
  207. buvis_gems-0.12.6/src/rust/Cargo.lock +659 -0
  208. buvis_gems-0.12.6/src/rust/Cargo.toml +20 -0
  209. buvis_gems-0.12.6/src/rust/pyproject.toml +11 -0
  210. buvis_gems-0.12.6/src/rust/src/consistency/defaults.rs +126 -0
  211. buvis_gems-0.12.6/src/rust/src/consistency/fixers.rs +241 -0
  212. buvis_gems-0.12.6/src/rust/src/consistency/mod.rs +22 -0
  213. buvis_gems-0.12.6/src/rust/src/lib.rs +19 -0
  214. buvis_gems-0.12.6/src/rust/src/migration/mod.rs +22 -0
  215. buvis_gems-0.12.6/src/rust/src/migration/move_tag_to_tags.rs +65 -0
  216. buvis_gems-0.12.6/src/rust/src/migration/move_zkn_id.rs +39 -0
  217. buvis_gems-0.12.6/src/rust/src/migration/normalize_type.rs +48 -0
  218. buvis_gems-0.12.6/src/rust/src/migration/project.rs +286 -0
  219. buvis_gems-0.12.6/src/rust/src/parser/back_matter.rs +179 -0
  220. buvis_gems-0.12.6/src/rust/src/parser/enrichment.rs +91 -0
  221. buvis_gems-0.12.6/src/rust/src/parser/front_matter.rs +102 -0
  222. buvis_gems-0.12.6/src/rust/src/parser/key_normalizer.rs +65 -0
  223. buvis_gems-0.12.6/src/rust/src/parser/mod.rs +69 -0
  224. buvis_gems-0.12.6/src/rust/src/parser/sections.rs +57 -0
  225. buvis_gems-0.12.6/src/rust/src/pybridge.rs +265 -0
  226. buvis_gems-0.12.6/src/rust/src/scanner.rs +461 -0
  227. buvis_gems-0.12.6/src/rust/src/types.rs +137 -0
  228. buvis_gems-0.12.6/src/tools/bim/__init__.py +1 -0
  229. buvis_gems-0.12.6/src/tools/bim/__main__.py +6 -0
  230. buvis_gems-0.12.6/src/tools/bim/cli.py +772 -0
  231. buvis_gems-0.12.6/src/tools/bim/commands/__init__.py +1 -0
  232. buvis_gems-0.12.6/src/tools/bim/commands/archive_note/__init__.py +5 -0
  233. buvis_gems-0.12.6/src/tools/bim/commands/archive_note/archive_note.py +61 -0
  234. buvis_gems-0.12.6/src/tools/bim/commands/create_note/__init__.py +5 -0
  235. buvis_gems-0.12.6/src/tools/bim/commands/create_note/create_note.py +63 -0
  236. buvis_gems-0.12.6/src/tools/bim/commands/delete_note/__init__.py +5 -0
  237. buvis_gems-0.12.6/src/tools/bim/commands/delete_note/delete_note.py +39 -0
  238. buvis_gems-0.12.6/src/tools/bim/commands/doc/__init__.py +0 -0
  239. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/__init__.py +63 -0
  240. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/audit.py +89 -0
  241. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/auditor.py +202 -0
  242. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/models.py +188 -0
  243. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/pdf_checks.py +213 -0
  244. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/reporter.py +170 -0
  245. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/rules_checks.py +344 -0
  246. buvis_gems-0.12.6/src/tools/bim/commands/doc/audit/walker.py +110 -0
  247. buvis_gems-0.12.6/src/tools/bim/commands/doc/ingest/__init__.py +5 -0
  248. buvis_gems-0.12.6/src/tools/bim/commands/doc/ingest/ingest.py +45 -0
  249. buvis_gems-0.12.6/src/tools/bim/commands/doc/promote/__init__.py +5 -0
  250. buvis_gems-0.12.6/src/tools/bim/commands/doc/promote/promote.py +340 -0
  251. buvis_gems-0.12.6/src/tools/bim/commands/doc/rules/__init__.py +3 -0
  252. buvis_gems-0.12.6/src/tools/bim/commands/doc/rules/backtest.py +119 -0
  253. buvis_gems-0.12.6/src/tools/bim/commands/doc/rules/list.py +49 -0
  254. buvis_gems-0.12.6/src/tools/bim/commands/doc/rules/test.py +102 -0
  255. buvis_gems-0.12.6/src/tools/bim/commands/doc/rules/validate.py +98 -0
  256. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/__init__.py +0 -0
  257. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/atomic_write.py +55 -0
  258. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/classifier.py +476 -0
  259. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/extractor.py +478 -0
  260. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/hashing.py +24 -0
  261. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/health.py +68 -0
  262. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/issuers.py +252 -0
  263. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/naming.py +82 -0
  264. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/ocr.py +224 -0
  265. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/pipeline.py +776 -0
  266. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/pipeline_helpers.py +350 -0
  267. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/progress.py +100 -0
  268. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/__init__.py +11 -0
  269. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/engine.py +113 -0
  270. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/extractor.py +109 -0
  271. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/matcher.py +142 -0
  272. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/models.py +239 -0
  273. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/rules/transforms.py +66 -0
  274. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/settings_models.py +161 -0
  275. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/state_db.py +273 -0
  276. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/triage.py +182 -0
  277. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/validators.py +26 -0
  278. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/zettel_helpers.py +61 -0
  279. buvis_gems-0.12.6/src/tools/bim/commands/doc/shared/zettel_writer.py +292 -0
  280. buvis_gems-0.12.6/src/tools/bim/commands/edit_note/__init__.py +5 -0
  281. buvis_gems-0.12.6/src/tools/bim/commands/edit_note/edit_note.py +48 -0
  282. buvis_gems-0.12.6/src/tools/bim/commands/format_note/__init__.py +5 -0
  283. buvis_gems-0.12.6/src/tools/bim/commands/format_note/format_note.py +76 -0
  284. buvis_gems-0.12.6/src/tools/bim/commands/import_note/__init__.py +5 -0
  285. buvis_gems-0.12.6/src/tools/bim/commands/import_note/import_note.py +77 -0
  286. buvis_gems-0.12.6/src/tools/bim/commands/query/__init__.py +1 -0
  287. buvis_gems-0.12.6/src/tools/bim/commands/query/active_projects.yaml +62 -0
  288. buvis_gems-0.12.6/src/tools/bim/commands/query/all_open_tasks.yaml +36 -0
  289. buvis_gems-0.12.6/src/tools/bim/commands/query/contacts.yaml +60 -0
  290. buvis_gems-0.12.6/src/tools/bim/commands/query/courses_backlog.yaml +31 -0
  291. buvis_gems-0.12.6/src/tools/bim/commands/query/courses_completed.yaml +31 -0
  292. buvis_gems-0.12.6/src/tools/bim/commands/query/courses_in_progress.yaml +33 -0
  293. buvis_gems-0.12.6/src/tools/bim/commands/query/daily_tasks_act.yaml +50 -0
  294. buvis_gems-0.12.6/src/tools/bim/commands/query/daily_tasks_wait.yaml +45 -0
  295. buvis_gems-0.12.6/src/tools/bim/commands/query/gtd_actions_review.yaml +47 -0
  296. buvis_gems-0.12.6/src/tools/bim/commands/query/inbox.yaml +43 -0
  297. buvis_gems-0.12.6/src/tools/bim/commands/query/meetings.yaml +56 -0
  298. buvis_gems-0.12.6/src/tools/bim/commands/query/missing_contacts_meetings.yaml +26 -0
  299. buvis_gems-0.12.6/src/tools/bim/commands/query/missing_contacts_projects.yaml +37 -0
  300. buvis_gems-0.12.6/src/tools/bim/commands/query/overdue_now_projects.yaml +54 -0
  301. buvis_gems-0.12.6/src/tools/bim/commands/query/projects_no_gtd_actions.yaml +21 -0
  302. buvis_gems-0.12.6/src/tools/bim/commands/query/query.py +47 -0
  303. buvis_gems-0.12.6/src/tools/bim/commands/query/random_unprocessed.yaml +20 -0
  304. buvis_gems-0.12.6/src/tools/bim/commands/query/recent.yaml +28 -0
  305. buvis_gems-0.12.6/src/tools/bim/commands/query/task_warnings.yaml +29 -0
  306. buvis_gems-0.12.6/src/tools/bim/commands/query/unprocessed.yaml +45 -0
  307. buvis_gems-0.12.6/src/tools/bim/commands/serve/__init__.py +1 -0
  308. buvis_gems-0.12.6/src/tools/bim/commands/serve/_actions.py +184 -0
  309. buvis_gems-0.12.6/src/tools/bim/commands/serve/_app.py +41 -0
  310. buvis_gems-0.12.6/src/tools/bim/commands/serve/_routes.py +204 -0
  311. buvis_gems-0.12.6/src/tools/bim/commands/serve/_sse.py +63 -0
  312. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/package-lock.json +3359 -0
  313. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/package.json +24 -0
  314. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/app.css +56 -0
  315. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/app.html +15 -0
  316. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/api.ts +146 -0
  317. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/ActionBar.svelte +104 -0
  318. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/ConfirmDialog.svelte +85 -0
  319. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/DataTable.svelte +303 -0
  320. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/ItemPanel.svelte +251 -0
  321. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/KanbanBoard.svelte +245 -0
  322. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/MarkdownEditor.svelte +184 -0
  323. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/PropertyField.svelte +85 -0
  324. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/QueryPicker.svelte +111 -0
  325. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/CheckboxWidget.svelte +57 -0
  326. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/DateWidget.svelte +45 -0
  327. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/LinkWidget.svelte +38 -0
  328. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/SelectWidget.svelte +39 -0
  329. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/TagsWidget.svelte +94 -0
  330. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/components/widgets/TextWidget.svelte +14 -0
  331. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/sse.ts +37 -0
  332. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/lib/stores.ts +9 -0
  333. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/routes/+layout.svelte +21 -0
  334. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/routes/+layout.ts +2 -0
  335. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/src/routes/+page.svelte +202 -0
  336. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/svelte.config.js +16 -0
  337. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/tsconfig.json +14 -0
  338. buvis_gems-0.12.6/src/tools/bim/commands/serve/frontend/vite.config.ts +11 -0
  339. buvis_gems-0.12.6/src/tools/bim/commands/serve/serve.py +30 -0
  340. buvis_gems-0.12.6/src/tools/bim/commands/shared/__init__.py +1 -0
  341. buvis_gems-0.12.6/src/tools/bim/commands/shared/os_open.py +19 -0
  342. buvis_gems-0.12.6/src/tools/bim/commands/shared/sections.py +18 -0
  343. buvis_gems-0.12.6/src/tools/bim/commands/show_note/__init__.py +5 -0
  344. buvis_gems-0.12.6/src/tools/bim/commands/show_note/show_note.py +47 -0
  345. buvis_gems-0.12.6/src/tools/bim/commands/sync_note/__init__.py +0 -0
  346. buvis_gems-0.12.6/src/tools/bim/commands/sync_note/sync_note.py +108 -0
  347. buvis_gems-0.12.6/src/tools/bim/dependencies.py +274 -0
  348. buvis_gems-0.12.6/src/tools/bim/doc_rules_cli.py +153 -0
  349. buvis_gems-0.12.6/src/tools/bim/integrations/__init__.py +3 -0
  350. buvis_gems-0.12.6/src/tools/bim/integrations/jira_adapter.py +41 -0
  351. buvis_gems-0.12.6/src/tools/bim/manifest.toml +29 -0
  352. buvis_gems-0.12.6/src/tools/bim/params/__init__.py +31 -0
  353. buvis_gems-0.12.6/src/tools/bim/params/archive_note.py +11 -0
  354. buvis_gems-0.12.6/src/tools/bim/params/create_note.py +16 -0
  355. buvis_gems-0.12.6/src/tools/bim/params/delete_note.py +11 -0
  356. buvis_gems-0.12.6/src/tools/bim/params/doc_ingest.py +36 -0
  357. buvis_gems-0.12.6/src/tools/bim/params/doc_promote.py +17 -0
  358. buvis_gems-0.12.6/src/tools/bim/params/edit_note.py +31 -0
  359. buvis_gems-0.12.6/src/tools/bim/params/format_note.py +27 -0
  360. buvis_gems-0.12.6/src/tools/bim/params/import_note.py +13 -0
  361. buvis_gems-0.12.6/src/tools/bim/params/path_params.py +11 -0
  362. buvis_gems-0.12.6/src/tools/bim/params/query.py +28 -0
  363. buvis_gems-0.12.6/src/tools/bim/params/serve.py +13 -0
  364. buvis_gems-0.12.6/src/tools/bim/params/show_note.py +7 -0
  365. buvis_gems-0.12.6/src/tools/bim/params/sync_note.py +11 -0
  366. buvis_gems-0.12.6/src/tools/bim/settings.py +20 -0
  367. buvis_gems-0.12.6/src/tools/bim/shared/__init__.py +3 -0
  368. buvis_gems-0.12.6/src/tools/bim/shared/edit_helpers.py +22 -0
  369. buvis_gems-0.12.6/src/tools/bim/shared/import_helpers.py +120 -0
  370. buvis_gems-0.12.6/src/tools/bim/shared/query_paths.py +76 -0
  371. buvis_gems-0.12.6/src/tools/bim/shared/query_presentation.py +291 -0
  372. buvis_gems-0.12.6/src/tools/bim/tui/__init__.py +3 -0
  373. buvis_gems-0.12.6/src/tools/bim/tui/create_note.py +185 -0
  374. buvis_gems-0.12.6/src/tools/bim/tui/edit_note.py +203 -0
  375. buvis_gems-0.12.6/src/tools/bim/tui/query.py +549 -0
  376. buvis_gems-0.12.6/src/tools/bim/tui/show_note.py +45 -0
  377. buvis_gems-0.12.6/src/tools/dot/__init__.py +1 -0
  378. buvis_gems-0.12.6/src/tools/dot/__main__.py +6 -0
  379. buvis_gems-0.12.6/src/tools/dot/cli.py +148 -0
  380. buvis_gems-0.12.6/src/tools/dot/commands/__init__.py +25 -0
  381. buvis_gems-0.12.6/src/tools/dot/commands/add/__init__.py +1 -0
  382. buvis_gems-0.12.6/src/tools/dot/commands/add/add.py +66 -0
  383. buvis_gems-0.12.6/src/tools/dot/commands/commit/__init__.py +3 -0
  384. buvis_gems-0.12.6/src/tools/dot/commands/commit/commit.py +45 -0
  385. buvis_gems-0.12.6/src/tools/dot/commands/delete/__init__.py +0 -0
  386. buvis_gems-0.12.6/src/tools/dot/commands/delete/delete.py +76 -0
  387. buvis_gems-0.12.6/src/tools/dot/commands/encrypt/__init__.py +1 -0
  388. buvis_gems-0.12.6/src/tools/dot/commands/encrypt/encrypt.py +46 -0
  389. buvis_gems-0.12.6/src/tools/dot/commands/pull/__init__.py +3 -0
  390. buvis_gems-0.12.6/src/tools/dot/commands/pull/pull.py +55 -0
  391. buvis_gems-0.12.6/src/tools/dot/commands/push/__init__.py +3 -0
  392. buvis_gems-0.12.6/src/tools/dot/commands/push/push.py +54 -0
  393. buvis_gems-0.12.6/src/tools/dot/commands/rm/__init__.py +5 -0
  394. buvis_gems-0.12.6/src/tools/dot/commands/rm/rm.py +76 -0
  395. buvis_gems-0.12.6/src/tools/dot/commands/run/__init__.py +3 -0
  396. buvis_gems-0.12.6/src/tools/dot/commands/run/run.py +34 -0
  397. buvis_gems-0.12.6/src/tools/dot/commands/status/__init__.py +1 -0
  398. buvis_gems-0.12.6/src/tools/dot/commands/status/status.py +118 -0
  399. buvis_gems-0.12.6/src/tools/dot/commands/unstage/__init__.py +0 -0
  400. buvis_gems-0.12.6/src/tools/dot/commands/unstage/unstage.py +41 -0
  401. buvis_gems-0.12.6/src/tools/dot/manifest.toml +23 -0
  402. buvis_gems-0.12.6/src/tools/dot/settings.py +18 -0
  403. buvis_gems-0.12.6/src/tools/dot/tui/__init__.py +3 -0
  404. buvis_gems-0.12.6/src/tools/dot/tui/app.py +103 -0
  405. buvis_gems-0.12.6/src/tools/dot/tui/commands/__init__.py +0 -0
  406. buvis_gems-0.12.6/src/tools/dot/tui/commands/browse.py +116 -0
  407. buvis_gems-0.12.6/src/tools/dot/tui/commands/secrets.py +95 -0
  408. buvis_gems-0.12.6/src/tools/dot/tui/git_ops.py +234 -0
  409. buvis_gems-0.12.6/src/tools/dot/tui/models.py +24 -0
  410. buvis_gems-0.12.6/src/tools/dot/tui/patch.py +234 -0
  411. buvis_gems-0.12.6/src/tools/dot/tui/screens/__init__.py +7 -0
  412. buvis_gems-0.12.6/src/tools/dot/tui/screens/browse.py +124 -0
  413. buvis_gems-0.12.6/src/tools/dot/tui/screens/main.py +386 -0
  414. buvis_gems-0.12.6/src/tools/dot/tui/screens/secrets.py +201 -0
  415. buvis_gems-0.12.6/src/tools/dot/tui/widgets/__init__.py +21 -0
  416. buvis_gems-0.12.6/src/tools/dot/tui/widgets/commit_modal.py +43 -0
  417. buvis_gems-0.12.6/src/tools/dot/tui/widgets/diff_view.py +379 -0
  418. buvis_gems-0.12.6/src/tools/dot/tui/widgets/dir_list.py +96 -0
  419. buvis_gems-0.12.6/src/tools/dot/tui/widgets/file_list.py +126 -0
  420. buvis_gems-0.12.6/src/tools/dot/tui/widgets/gitignore_modal.py +47 -0
  421. buvis_gems-0.12.6/src/tools/dot/tui/widgets/passphrase_modal.py +48 -0
  422. buvis_gems-0.12.6/src/tools/dot/tui/widgets/revert_confirm_modal.py +54 -0
  423. buvis_gems-0.12.6/src/tools/dot/tui/widgets/status_bar.py +46 -0
  424. buvis_gems-0.12.6/src/tools/fctracker/__init__.py +1 -0
  425. buvis_gems-0.12.6/src/tools/fctracker/__main__.py +6 -0
  426. buvis_gems-0.12.6/src/tools/fctracker/adapters/__init__.py +7 -0
  427. buvis_gems-0.12.6/src/tools/fctracker/adapters/config/config.py +46 -0
  428. buvis_gems-0.12.6/src/tools/fctracker/adapters/transactions/transactions_dir_scanner.py +18 -0
  429. buvis_gems-0.12.6/src/tools/fctracker/adapters/transactions/transactions_reader.py +41 -0
  430. buvis_gems-0.12.6/src/tools/fctracker/cli.py +97 -0
  431. buvis_gems-0.12.6/src/tools/fctracker/commands/__init__.py +6 -0
  432. buvis_gems-0.12.6/src/tools/fctracker/commands/balance/__init__.py +1 -0
  433. buvis_gems-0.12.6/src/tools/fctracker/commands/balance/balance.py +48 -0
  434. buvis_gems-0.12.6/src/tools/fctracker/commands/transactions/__init__.py +1 -0
  435. buvis_gems-0.12.6/src/tools/fctracker/commands/transactions/transactions.py +95 -0
  436. buvis_gems-0.12.6/src/tools/fctracker/domain/__init__.py +8 -0
  437. buvis_gems-0.12.6/src/tools/fctracker/domain/account.py +68 -0
  438. buvis_gems-0.12.6/src/tools/fctracker/domain/deposit.py +40 -0
  439. buvis_gems-0.12.6/src/tools/fctracker/domain/quantified_item.py +26 -0
  440. buvis_gems-0.12.6/src/tools/fctracker/domain/quantified_queue.py +60 -0
  441. buvis_gems-0.12.6/src/tools/fctracker/domain/transaction.py +21 -0
  442. buvis_gems-0.12.6/src/tools/fctracker/domain/withdrawal.py +41 -0
  443. buvis_gems-0.12.6/src/tools/fctracker/manifest.toml +20 -0
  444. buvis_gems-0.12.6/src/tools/fctracker/settings.py +30 -0
  445. buvis_gems-0.12.6/src/tools/fren/__init__.py +1 -0
  446. buvis_gems-0.12.6/src/tools/fren/__main__.py +6 -0
  447. buvis_gems-0.12.6/src/tools/fren/cli.py +55 -0
  448. buvis_gems-0.12.6/src/tools/fren/commands/__init__.py +8 -0
  449. buvis_gems-0.12.6/src/tools/fren/commands/directorize/__init__.py +1 -0
  450. buvis_gems-0.12.6/src/tools/fren/commands/directorize/directorize.py +38 -0
  451. buvis_gems-0.12.6/src/tools/fren/commands/flatten/__init__.py +1 -0
  452. buvis_gems-0.12.6/src/tools/fren/commands/flatten/flatten.py +51 -0
  453. buvis_gems-0.12.6/src/tools/fren/commands/normalize/__init__.py +1 -0
  454. buvis_gems-0.12.6/src/tools/fren/commands/normalize/normalize.py +58 -0
  455. buvis_gems-0.12.6/src/tools/fren/commands/slug/__init__.py +1 -0
  456. buvis_gems-0.12.6/src/tools/fren/commands/slug/slug.py +103 -0
  457. buvis_gems-0.12.6/src/tools/fren/manifest.toml +22 -0
  458. buvis_gems-0.12.6/src/tools/fren/settings.py +14 -0
  459. buvis_gems-0.12.6/src/tools/hello_world/__init__.py +1 -0
  460. buvis_gems-0.12.6/src/tools/hello_world/__main__.py +6 -0
  461. buvis_gems-0.12.6/src/tools/hello_world/cli.py +100 -0
  462. buvis_gems-0.12.6/src/tools/hello_world/commands/__init__.py +7 -0
  463. buvis_gems-0.12.6/src/tools/hello_world/commands/diagnostics/__init__.py +1 -0
  464. buvis_gems-0.12.6/src/tools/hello_world/commands/diagnostics/diagnostics.py +29 -0
  465. buvis_gems-0.12.6/src/tools/hello_world/commands/list_fonts/__init__.py +1 -0
  466. buvis_gems-0.12.6/src/tools/hello_world/commands/list_fonts/list_fonts.py +11 -0
  467. buvis_gems-0.12.6/src/tools/hello_world/commands/print_figlet/__init__.py +0 -0
  468. buvis_gems-0.12.6/src/tools/hello_world/commands/print_figlet/print_figlet.py +25 -0
  469. buvis_gems-0.12.6/src/tools/hello_world/manifest.toml +21 -0
  470. buvis_gems-0.12.6/src/tools/hello_world/settings.py +17 -0
  471. buvis_gems-0.12.6/src/tools/morph/__init__.py +1 -0
  472. buvis_gems-0.12.6/src/tools/morph/__main__.py +6 -0
  473. buvis_gems-0.12.6/src/tools/morph/cli.py +82 -0
  474. buvis_gems-0.12.6/src/tools/morph/commands/__init__.py +6 -0
  475. buvis_gems-0.12.6/src/tools/morph/commands/deblank/__init__.py +1 -0
  476. buvis_gems-0.12.6/src/tools/morph/commands/deblank/deblank.py +125 -0
  477. buvis_gems-0.12.6/src/tools/morph/commands/html2md/__init__.py +1 -0
  478. buvis_gems-0.12.6/src/tools/morph/commands/html2md/html2md.py +78 -0
  479. buvis_gems-0.12.6/src/tools/morph/commands/pdf2png/__init__.py +1 -0
  480. buvis_gems-0.12.6/src/tools/morph/commands/pdf2png/pdf2png.py +81 -0
  481. buvis_gems-0.12.6/src/tools/morph/manifest.toml +21 -0
  482. buvis_gems-0.12.6/src/tools/morph/settings.py +14 -0
  483. buvis_gems-0.12.6/src/tools/muc/__init__.py +1 -0
  484. buvis_gems-0.12.6/src/tools/muc/__main__.py +6 -0
  485. buvis_gems-0.12.6/src/tools/muc/cli.py +101 -0
  486. buvis_gems-0.12.6/src/tools/muc/commands/__init__.py +7 -0
  487. buvis_gems-0.12.6/src/tools/muc/commands/cover/__init__.py +5 -0
  488. buvis_gems-0.12.6/src/tools/muc/commands/cover/cover.py +72 -0
  489. buvis_gems-0.12.6/src/tools/muc/commands/limit/__init__.py +1 -0
  490. buvis_gems-0.12.6/src/tools/muc/commands/limit/limit.py +90 -0
  491. buvis_gems-0.12.6/src/tools/muc/commands/tidy/__init__.py +1 -0
  492. buvis_gems-0.12.6/src/tools/muc/commands/tidy/tidy.py +20 -0
  493. buvis_gems-0.12.6/src/tools/muc/manifest.toml +20 -0
  494. buvis_gems-0.12.6/src/tools/muc/settings.py +39 -0
  495. buvis_gems-0.12.6/src/tools/muc/shared/__init__.py +3 -0
  496. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/__init__.py +5 -0
  497. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/delete_by_extension.py +23 -0
  498. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/dir_tree.py +126 -0
  499. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/lowercase_file_extensions.py +24 -0
  500. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/merge_mac_metadata.py +57 -0
  501. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/remove_empty_directories.py +20 -0
  502. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/rename_equivalent_extensions.py +36 -0
  503. buvis_gems-0.12.6/src/tools/muc/shared/dir_tree/safe_rglob.py +49 -0
  504. buvis_gems-0.12.6/src/tools/netscan/__init__.py +1 -0
  505. buvis_gems-0.12.6/src/tools/netscan/__main__.py +6 -0
  506. buvis_gems-0.12.6/src/tools/netscan/cli.py +61 -0
  507. buvis_gems-0.12.6/src/tools/netscan/commands/__init__.py +6 -0
  508. buvis_gems-0.12.6/src/tools/netscan/commands/hosts/__init__.py +1 -0
  509. buvis_gems-0.12.6/src/tools/netscan/commands/hosts/hosts.py +41 -0
  510. buvis_gems-0.12.6/src/tools/netscan/commands/ssh/__init__.py +1 -0
  511. buvis_gems-0.12.6/src/tools/netscan/commands/ssh/ssh.py +62 -0
  512. buvis_gems-0.12.6/src/tools/netscan/manifest.toml +20 -0
  513. buvis_gems-0.12.6/src/tools/netscan/settings.py +17 -0
  514. buvis_gems-0.12.6/src/tools/netscan/shared/__init__.py +1 -0
  515. buvis_gems-0.12.6/src/tools/netscan/shared/network.py +45 -0
  516. buvis_gems-0.12.6/src/tools/outlookctl/__init__.py +1 -0
  517. buvis_gems-0.12.6/src/tools/outlookctl/__main__.py +6 -0
  518. buvis_gems-0.12.6/src/tools/outlookctl/cli.py +45 -0
  519. buvis_gems-0.12.6/src/tools/outlookctl/commands/__init__.py +5 -0
  520. buvis_gems-0.12.6/src/tools/outlookctl/commands/create_timeblock/__init__.py +0 -0
  521. buvis_gems-0.12.6/src/tools/outlookctl/commands/create_timeblock/create_timeblock.py +14 -0
  522. buvis_gems-0.12.6/src/tools/outlookctl/manifest.toml +19 -0
  523. buvis_gems-0.12.6/src/tools/outlookctl/settings.py +16 -0
  524. buvis_gems-0.12.6/src/tools/pidash/README.md +22 -0
  525. buvis_gems-0.12.6/src/tools/pidash/__init__.py +1 -0
  526. buvis_gems-0.12.6/src/tools/pidash/__main__.py +6 -0
  527. buvis_gems-0.12.6/src/tools/pidash/cli.py +185 -0
  528. buvis_gems-0.12.6/src/tools/pidash/commands/__init__.py +1 -0
  529. buvis_gems-0.12.6/src/tools/pidash/commands/hooks/__init__.py +1 -0
  530. buvis_gems-0.12.6/src/tools/pidash/commands/hooks/install.py +151 -0
  531. buvis_gems-0.12.6/src/tools/pidash/commands/hooks/settings.py +95 -0
  532. buvis_gems-0.12.6/src/tools/pidash/commands/hooks/status.py +101 -0
  533. buvis_gems-0.12.6/src/tools/pidash/commands/hooks/uninstall.py +92 -0
  534. buvis_gems-0.12.6/src/tools/pidash/hooks/__init__.py +1 -0
  535. buvis_gems-0.12.6/src/tools/pidash/hooks/cleanup_session.py +52 -0
  536. buvis_gems-0.12.6/src/tools/pidash/hooks/clear_attention.py +34 -0
  537. buvis_gems-0.12.6/src/tools/pidash/hooks/session.py +87 -0
  538. buvis_gems-0.12.6/src/tools/pidash/hooks/set_attention.py +32 -0
  539. buvis_gems-0.12.6/src/tools/pidash/hooks/sync_agent_return.py +143 -0
  540. buvis_gems-0.12.6/src/tools/pidash/hooks/update_tasks.py +195 -0
  541. buvis_gems-0.12.6/src/tools/pidash/manifest.toml +20 -0
  542. buvis_gems-0.12.6/src/tools/pidash/tui/__init__.py +1 -0
  543. buvis_gems-0.12.6/src/tools/pidash/tui/app.py +430 -0
  544. buvis_gems-0.12.6/src/tools/pidash/tui/state.py +176 -0
  545. buvis_gems-0.12.6/src/tools/pidash/tui/watcher.py +127 -0
  546. buvis_gems-0.12.6/src/tools/pidash/tui/widgets.py +235 -0
  547. buvis_gems-0.12.6/src/tools/pinger/__init__.py +1 -0
  548. buvis_gems-0.12.6/src/tools/pinger/__main__.py +6 -0
  549. buvis_gems-0.12.6/src/tools/pinger/cli.py +49 -0
  550. buvis_gems-0.12.6/src/tools/pinger/commands/__init__.py +5 -0
  551. buvis_gems-0.12.6/src/tools/pinger/commands/wait/__init__.py +1 -0
  552. buvis_gems-0.12.6/src/tools/pinger/commands/wait/wait.py +25 -0
  553. buvis_gems-0.12.6/src/tools/pinger/manifest.toml +19 -0
  554. buvis_gems-0.12.6/src/tools/pinger/settings.py +17 -0
  555. buvis_gems-0.12.6/src/tools/puc/__init__.py +1 -0
  556. buvis_gems-0.12.6/src/tools/puc/__main__.py +6 -0
  557. buvis_gems-0.12.6/src/tools/puc/cli.py +45 -0
  558. buvis_gems-0.12.6/src/tools/puc/commands/__init__.py +5 -0
  559. buvis_gems-0.12.6/src/tools/puc/commands/strip/__init__.py +1 -0
  560. buvis_gems-0.12.6/src/tools/puc/commands/strip/strip.py +84 -0
  561. buvis_gems-0.12.6/src/tools/puc/manifest.toml +19 -0
  562. buvis_gems-0.12.6/src/tools/puc/settings.py +26 -0
  563. buvis_gems-0.12.6/src/tools/readerctl/__init__.py +1 -0
  564. buvis_gems-0.12.6/src/tools/readerctl/__main__.py +6 -0
  565. buvis_gems-0.12.6/src/tools/readerctl/adapters/__init__.py +5 -0
  566. buvis_gems-0.12.6/src/tools/readerctl/adapters/reader_api/reader_api.py +58 -0
  567. buvis_gems-0.12.6/src/tools/readerctl/adapters/response.py +13 -0
  568. buvis_gems-0.12.6/src/tools/readerctl/cli.py +110 -0
  569. buvis_gems-0.12.6/src/tools/readerctl/commands/__init__.py +6 -0
  570. buvis_gems-0.12.6/src/tools/readerctl/commands/add/__init__.py +3 -0
  571. buvis_gems-0.12.6/src/tools/readerctl/commands/add/add.py +17 -0
  572. buvis_gems-0.12.6/src/tools/readerctl/commands/login/__init__.py +3 -0
  573. buvis_gems-0.12.6/src/tools/readerctl/commands/login/login.py +35 -0
  574. buvis_gems-0.12.6/src/tools/readerctl/manifest.toml +20 -0
  575. buvis_gems-0.12.6/src/tools/readerctl/settings.py +16 -0
  576. buvis_gems-0.12.6/src/tools/sysup/__init__.py +1 -0
  577. buvis_gems-0.12.6/src/tools/sysup/__main__.py +6 -0
  578. buvis_gems-0.12.6/src/tools/sysup/cli.py +92 -0
  579. buvis_gems-0.12.6/src/tools/sysup/commands/__init__.py +9 -0
  580. buvis_gems-0.12.6/src/tools/sysup/commands/mac/__init__.py +5 -0
  581. buvis_gems-0.12.6/src/tools/sysup/commands/mac/mac.py +130 -0
  582. buvis_gems-0.12.6/src/tools/sysup/commands/nvim/__init__.py +5 -0
  583. buvis_gems-0.12.6/src/tools/sysup/commands/nvim/nvim.py +199 -0
  584. buvis_gems-0.12.6/src/tools/sysup/commands/pip/__init__.py +5 -0
  585. buvis_gems-0.12.6/src/tools/sysup/commands/pip/pip.py +150 -0
  586. buvis_gems-0.12.6/src/tools/sysup/commands/step_result.py +8 -0
  587. buvis_gems-0.12.6/src/tools/sysup/commands/wsl/__init__.py +5 -0
  588. buvis_gems-0.12.6/src/tools/sysup/commands/wsl/wsl.py +36 -0
  589. buvis_gems-0.12.6/src/tools/sysup/manifest.toml +22 -0
  590. buvis_gems-0.12.6/src/tools/sysup/settings.py +14 -0
  591. buvis_gems-0.12.6/src/tools/vuc/__init__.py +1 -0
  592. buvis_gems-0.12.6/src/tools/vuc/__main__.py +6 -0
  593. buvis_gems-0.12.6/src/tools/vuc/cli.py +39 -0
  594. buvis_gems-0.12.6/src/tools/vuc/commands/__init__.py +5 -0
  595. buvis_gems-0.12.6/src/tools/vuc/commands/multilang/__init__.py +5 -0
  596. buvis_gems-0.12.6/src/tools/vuc/commands/multilang/multilang.py +93 -0
  597. buvis_gems-0.12.6/src/tools/vuc/manifest.toml +19 -0
  598. buvis_gems-0.12.6/src/tools/vuc/settings.py +14 -0
  599. buvis_gems-0.12.6/src/tools/zseq/__init__.py +1 -0
  600. buvis_gems-0.12.6/src/tools/zseq/__main__.py +6 -0
  601. buvis_gems-0.12.6/src/tools/zseq/cli.py +56 -0
  602. buvis_gems-0.12.6/src/tools/zseq/commands/__init__.py +5 -0
  603. buvis_gems-0.12.6/src/tools/zseq/commands/get_last/__init__.py +3 -0
  604. buvis_gems-0.12.6/src/tools/zseq/commands/get_last/get_last.py +39 -0
  605. buvis_gems-0.12.6/src/tools/zseq/manifest.toml +19 -0
  606. buvis_gems-0.12.6/src/tools/zseq/settings.py +17 -0
  607. buvis_gems-0.12.6/src/tools/zseq/shared/__init__.py +3 -0
  608. buvis_gems-0.12.6/src/tools/zseq/shared/zseq_filename.py +65 -0
  609. buvis_gems-0.12.6/tests/conftest.py +43 -0
  610. buvis_gems-0.12.6/tests/dev/__init__.py +0 -0
  611. buvis_gems-0.12.6/tests/dev/test_check_tool_wiring.py +86 -0
  612. buvis_gems-0.12.6/tests/dev/test_scaffold.py +218 -0
  613. buvis_gems-0.12.6/tests/lib/conftest.py +59 -0
  614. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_capturing_rich_handler.py +87 -0
  615. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_console_adapter.py +328 -0
  616. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_jira_adapter.py +1027 -0
  617. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_jira_domain.py +59 -0
  618. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_jira_exceptions.py +54 -0
  619. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_jira_settings.py +77 -0
  620. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_outlook_exceptions.py +32 -0
  621. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_outlook_local_adapter.py +290 -0
  622. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_shell_adapter.py +500 -0
  623. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_uv_adapter.py +76 -0
  624. buvis_gems-0.12.6/tests/lib/pybase/adapters/test_uv_tool_manager.py +307 -0
  625. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_click_integration.py +1064 -0
  626. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_config_writer.py +575 -0
  627. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_edge_cases.py +127 -0
  628. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_global_settings.py +64 -0
  629. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_loader.py +594 -0
  630. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_loader_escape.py +90 -0
  631. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_loader_permissions.py +101 -0
  632. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_music_settings.py +57 -0
  633. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_paths.py +39 -0
  634. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_photo_settings.py +57 -0
  635. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_resolver.py +496 -0
  636. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_sensitive_logging.py +117 -0
  637. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_settings.py +24 -0
  638. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_settings_immutability.py +91 -0
  639. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_settings_validation.py +96 -0
  640. buvis_gems-0.12.6/tests/lib/pybase/configuration/test_validators.py +336 -0
  641. buvis_gems-0.12.6/tests/lib/pybase/filesystem/test_file_metadata_reader.py +114 -0
  642. buvis_gems-0.12.6/tests/lib/pybase/formatting/test_abbr.py +135 -0
  643. buvis_gems-0.12.6/tests/lib/pybase/formatting/test_string_case_tools.py +73 -0
  644. buvis_gems-0.12.6/tests/lib/pybase/formatting/test_string_operator.py +120 -0
  645. buvis_gems-0.12.6/tests/lib/pybase/formatting/test_suggest_tags.py +66 -0
  646. buvis_gems-0.12.6/tests/lib/pybase/formatting/test_word_level_tools.py +31 -0
  647. buvis_gems-0.12.6/tests/lib/pybase/test_adapters_init.py +36 -0
  648. buvis_gems-0.12.6/tests/lib/pybase/test_adapters_init_extra.py +28 -0
  649. buvis_gems-0.12.6/tests/lib/pybase/test_generators.py +291 -0
  650. buvis_gems-0.12.6/tests/lib/pybase/test_manifest.py +109 -0
  651. buvis_gems-0.12.6/tests/lib/pybase/test_manifest_extra.py +40 -0
  652. buvis_gems-0.12.6/tests/lib/pybase/test_result.py +73 -0
  653. buvis_gems-0.12.6/tests/lib/pybase/updater/__init__.py +0 -0
  654. buvis_gems-0.12.6/tests/lib/pybase/updater/test_checker.py +302 -0
  655. buvis_gems-0.12.6/tests/lib/pybase/updater/test_detector.py +309 -0
  656. buvis_gems-0.12.6/tests/lib/pybase/updater/test_executor.py +372 -0
  657. buvis_gems-0.12.6/tests/lib/pybase/updater/test_force_update.py +194 -0
  658. buvis_gems-0.12.6/tests/lib/pybase/updater/test_init.py +111 -0
  659. buvis_gems-0.12.6/tests/lib/pybase/updater/test_state.py +120 -0
  660. buvis_gems-0.12.6/tests/lib/zettel/application/test_create_zettel_use_case.py +98 -0
  661. buvis_gems-0.12.6/tests/lib/zettel/application/test_delete_zettel_use_case.py +17 -0
  662. buvis_gems-0.12.6/tests/lib/zettel/application/test_print_zettel_use_case.py +35 -0
  663. buvis_gems-0.12.6/tests/lib/zettel/application/test_read_zettel_use_case.py +47 -0
  664. buvis_gems-0.12.6/tests/lib/zettel/application/test_update_zettel_use_case.py +52 -0
  665. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_fix_lists_bullets.py +29 -0
  666. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_log_parser.py +214 -0
  667. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_migrate_loop_log.py +69 -0
  668. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_migrate_parent_reference.py +45 -0
  669. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_normalize_sections_order.py +99 -0
  670. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_project_zettel.py +54 -0
  671. buvis_gems-0.12.6/tests/lib/zettel/entities/project/test_set_default_completed.py +42 -0
  672. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/__init__.py +0 -0
  673. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_date.py +39 -0
  674. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_id.py +26 -0
  675. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_processed.py +22 -0
  676. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_publish.py +22 -0
  677. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_tags.py +12 -0
  678. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_title.py +33 -0
  679. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/fixers/test_set_default_type.py +22 -0
  680. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_align_h1_to_title.py +47 -0
  681. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_fix_title_format.py +48 -0
  682. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_move_tag_to_tags.py +57 -0
  683. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_move_zkn_id_to_id.py +50 -0
  684. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_normalize_type.py +34 -0
  685. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_remove_duplicate_tags.py +50 -0
  686. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_sort_tags.py +32 -0
  687. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_zettel.py +124 -0
  688. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_zettel_consistency_service.py +77 -0
  689. buvis_gems-0.12.6/tests/lib/zettel/entities/zettel/test_zettel_migration_service.py +64 -0
  690. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/formatting/markdown/test_helpers.py +61 -0
  691. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/formatting/markdown/test_markdown_zettel_formatter.py +148 -0
  692. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/persistence/test_back_matter_preprocessor.py +66 -0
  693. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/persistence/test_front_matter_preprocessor.py +119 -0
  694. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/persistence/test_markdown_zettel_repository_reader.py +110 -0
  695. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/persistence/test_markdown_zettel_repository_writer.py +84 -0
  696. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/test_expression_engine.py +70 -0
  697. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/test_markdown_parser.py +151 -0
  698. buvis_gems-0.12.6/tests/lib/zettel/infrastructure/test_zettel_file_parser.py +28 -0
  699. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/202401151030 Note from filename.md +10 -0
  700. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/duplicate_tags.md +18 -0
  701. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/many_references.md +26 -0
  702. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/multiple_sections.md +22 -0
  703. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/needs_migration.md +13 -0
  704. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/note_with_backmatter.md +23 -0
  705. buvis_gems-0.12.6/tests/lib/zettel/parity/fixtures/simple_note.md +15 -0
  706. buvis_gems-0.12.6/tests/lib/zettel/parity/test_performance.py +99 -0
  707. buvis_gems-0.12.6/tests/lib/zettel/parity/test_rust_python_parity.py +210 -0
  708. buvis_gems-0.12.6/tests/lib/zettel/query/__init__.py +0 -0
  709. buvis_gems-0.12.6/tests/lib/zettel/query/test_expression_engine.py +157 -0
  710. buvis_gems-0.12.6/tests/lib/zettel/query/test_expression_engine_extra.py +147 -0
  711. buvis_gems-0.12.6/tests/lib/zettel/query/test_output_formatter.py +299 -0
  712. buvis_gems-0.12.6/tests/lib/zettel/query/test_query_spec.py +64 -0
  713. buvis_gems-0.12.6/tests/lib/zettel/query/test_query_spec_parser.py +699 -0
  714. buvis_gems-0.12.6/tests/lib/zettel/query/test_query_zettels.py +510 -0
  715. buvis_gems-0.12.6/tests/lib/zettel/query/test_query_zettels_extra.py +260 -0
  716. buvis_gems-0.12.6/tests/lib/zettel/services/test_zettel_factory.py +96 -0
  717. buvis_gems-0.12.6/tests/lib/zettel/templates/__init__.py +0 -0
  718. buvis_gems-0.12.6/tests/lib/zettel/templates/test_discover_templates.py +41 -0
  719. buvis_gems-0.12.6/tests/lib/zettel/templates/test_discovery.py +124 -0
  720. buvis_gems-0.12.6/tests/lib/zettel/templates/test_project_template.py +37 -0
  721. buvis_gems-0.12.6/tests/lib/zettel/templates/test_yaml_template.py +200 -0
  722. buvis_gems-0.12.6/tests/lib/zettel/test_markdown_helpers.py +143 -0
  723. buvis_gems-0.12.6/tests/lib/zettel/test_output_formatter.py +71 -0
  724. buvis_gems-0.12.6/tests/lib/zettel/test_template_loader.py +127 -0
  725. buvis_gems-0.12.6/tests/lib/zettel/value_objects/test_zettel_data.py +17 -0
  726. buvis_gems-0.12.6/tests/lib/zettel_integrations/test_assembler.py +163 -0
  727. buvis_gems-0.12.6/tests/tools/bim/commands/__init__.py +0 -0
  728. buvis_gems-0.12.6/tests/tools/bim/commands/shared/__init__.py +0 -0
  729. buvis_gems-0.12.6/tests/tools/bim/commands/shared/test_os_open.py +26 -0
  730. buvis_gems-0.12.6/tests/tools/bim/commands/shared/test_sections.py +30 -0
  731. buvis_gems-0.12.6/tests/tools/bim/conftest.py +24 -0
  732. buvis_gems-0.12.6/tests/tools/bim/doc/__init__.py +0 -0
  733. buvis_gems-0.12.6/tests/tools/bim/doc/_concurrency_workers.py +83 -0
  734. buvis_gems-0.12.6/tests/tools/bim/doc/conftest.py +34 -0
  735. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/issuers/ciphertext.yml +7 -0
  736. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/issuers/valid.yml +28 -0
  737. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/issuers/with_aliases.yml +26 -0
  738. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/issuers/with_rules.yml +56 -0
  739. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/issuers/with_rules_duplicate.yml +48 -0
  740. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/ocr_text/cez_invoice.txt +26 -0
  741. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/ocr_text/o2_statement.txt +26 -0
  742. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/ocr_text/unknown_issuer_invoice.txt +27 -0
  743. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num0_amt0_lang0.md +35 -0
  744. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num0_amt0_lang1.md +35 -0
  745. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num0_amt1_lang0.md +35 -0
  746. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num0_amt1_lang1.md +35 -0
  747. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num1_amt0_lang0.md +35 -0
  748. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num1_amt0_lang1.md +35 -0
  749. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num1_amt1_lang0.md +35 -0
  750. buvis_gems-0.12.6/tests/tools/bim/doc/fixtures/zettel_writer/num1_amt1_lang1.md +35 -0
  751. buvis_gems-0.12.6/tests/tools/bim/doc/rules_engine_helpers.py +98 -0
  752. buvis_gems-0.12.6/tests/tools/bim/doc/test_atomic_write.py +63 -0
  753. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_auditor.py +658 -0
  754. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_command.py +235 -0
  755. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_integration.py +350 -0
  756. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_models.py +251 -0
  757. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_pdf_checks.py +306 -0
  758. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_reporter.py +362 -0
  759. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_rules_checks.py +569 -0
  760. buvis_gems-0.12.6/tests/tools/bim/doc/test_audit_walker.py +267 -0
  761. buvis_gems-0.12.6/tests/tools/bim/doc/test_classifier.py +419 -0
  762. buvis_gems-0.12.6/tests/tools/bim/doc/test_classifier_pinned.py +337 -0
  763. buvis_gems-0.12.6/tests/tools/bim/doc/test_cli_audit.py +232 -0
  764. buvis_gems-0.12.6/tests/tools/bim/doc/test_cli_ingest.py +223 -0
  765. buvis_gems-0.12.6/tests/tools/bim/doc/test_cli_promote.py +171 -0
  766. buvis_gems-0.12.6/tests/tools/bim/doc/test_dependencies.py +64 -0
  767. buvis_gems-0.12.6/tests/tools/bim/doc/test_doc_params.py +95 -0
  768. buvis_gems-0.12.6/tests/tools/bim/doc/test_extractor.py +874 -0
  769. buvis_gems-0.12.6/tests/tools/bim/doc/test_extractor_pinned.py +396 -0
  770. buvis_gems-0.12.6/tests/tools/bim/doc/test_hashing.py +33 -0
  771. buvis_gems-0.12.6/tests/tools/bim/doc/test_health.py +230 -0
  772. buvis_gems-0.12.6/tests/tools/bim/doc/test_ingest.py +44 -0
  773. buvis_gems-0.12.6/tests/tools/bim/doc/test_issuers.py +294 -0
  774. buvis_gems-0.12.6/tests/tools/bim/doc/test_issuers_with_rules.py +329 -0
  775. buvis_gems-0.12.6/tests/tools/bim/doc/test_naming.py +169 -0
  776. buvis_gems-0.12.6/tests/tools/bim/doc/test_ocr.py +647 -0
  777. buvis_gems-0.12.6/tests/tools/bim/doc/test_pipeline.py +1455 -0
  778. buvis_gems-0.12.6/tests/tools/bim/doc/test_pipeline_promote_consistency.py +239 -0
  779. buvis_gems-0.12.6/tests/tools/bim/doc/test_pipeline_rule_match_recording.py +277 -0
  780. buvis_gems-0.12.6/tests/tools/bim/doc/test_pipeline_rules.py +785 -0
  781. buvis_gems-0.12.6/tests/tools/bim/doc/test_progress.py +101 -0
  782. buvis_gems-0.12.6/tests/tools/bim/doc/test_promote.py +687 -0
  783. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_backtest_command.py +177 -0
  784. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_engine_basic.py +170 -0
  785. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_engine_conflict.py +369 -0
  786. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_engine_inbox.py +307 -0
  787. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_engine_priority.py +133 -0
  788. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_list_command.py +110 -0
  789. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_matcher.py +418 -0
  790. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_models.py +728 -0
  791. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_rule_extractor.py +690 -0
  792. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_test_command.py +108 -0
  793. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_transforms.py +278 -0
  794. buvis_gems-0.12.6/tests/tools/bim/doc/test_rules_validate_command.py +282 -0
  795. buvis_gems-0.12.6/tests/tools/bim/doc/test_settings_models.py +229 -0
  796. buvis_gems-0.12.6/tests/tools/bim/doc/test_state_db.py +490 -0
  797. buvis_gems-0.12.6/tests/tools/bim/doc/test_triage.py +265 -0
  798. buvis_gems-0.12.6/tests/tools/bim/doc/test_triage_rule_conflict.py +52 -0
  799. buvis_gems-0.12.6/tests/tools/bim/doc/test_validators.py +94 -0
  800. buvis_gems-0.12.6/tests/tools/bim/doc/test_zettel_helpers.py +73 -0
  801. buvis_gems-0.12.6/tests/tools/bim/doc/test_zettel_writer.py +671 -0
  802. buvis_gems-0.12.6/tests/tools/bim/test_archive_note.py +74 -0
  803. buvis_gems-0.12.6/tests/tools/bim/test_bim_cli_handlers.py +563 -0
  804. buvis_gems-0.12.6/tests/tools/bim/test_bim_query.py +163 -0
  805. buvis_gems-0.12.6/tests/tools/bim/test_cli.py +613 -0
  806. buvis_gems-0.12.6/tests/tools/bim/test_create_note.py +438 -0
  807. buvis_gems-0.12.6/tests/tools/bim/test_delete_note.py +49 -0
  808. buvis_gems-0.12.6/tests/tools/bim/test_dependencies.py +41 -0
  809. buvis_gems-0.12.6/tests/tools/bim/test_edit_note.py +214 -0
  810. buvis_gems-0.12.6/tests/tools/bim/test_edit_note_extra.py +47 -0
  811. buvis_gems-0.12.6/tests/tools/bim/test_format_note.py +212 -0
  812. buvis_gems-0.12.6/tests/tools/bim/test_import_note.py +312 -0
  813. buvis_gems-0.12.6/tests/tools/bim/test_query.py +180 -0
  814. buvis_gems-0.12.6/tests/tools/bim/test_serve.py +294 -0
  815. buvis_gems-0.12.6/tests/tools/bim/test_show_note.py +77 -0
  816. buvis_gems-0.12.6/tests/tools/bim/test_sync_note.py +362 -0
  817. buvis_gems-0.12.6/tests/tools/bim/tui/__init__.py +0 -0
  818. buvis_gems-0.12.6/tests/tools/bim/tui/conftest.py +7 -0
  819. buvis_gems-0.12.6/tests/tools/bim/tui/test_confirm_screen.py +45 -0
  820. buvis_gems-0.12.6/tests/tools/bim/tui/test_create_note.py +109 -0
  821. buvis_gems-0.12.6/tests/tools/bim/tui/test_edit_note.py +154 -0
  822. buvis_gems-0.12.6/tests/tools/bim/tui/test_kanban.py +99 -0
  823. buvis_gems-0.12.6/tests/tools/bim/tui/test_query.py +95 -0
  824. buvis_gems-0.12.6/tests/tools/bim/tui/test_show_note.py +83 -0
  825. buvis_gems-0.12.6/tests/tools/conftest.py +9 -0
  826. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestBrowseScreenSnapshots.test_browse_screen_with_many_entries[120x40].raw +210 -0
  827. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestBrowseScreenSnapshots.test_browse_screen_with_many_entries[40x15].raw +110 -0
  828. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestBrowseScreenSnapshots.test_browse_screen_with_many_entries[80x24].raw +146 -0
  829. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestDiffViewBottomScrollSnapshot.test_diff_pane_shows_bottom_after_shift_g.raw +227 -0
  830. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestMainScreenSnapshots.test_main_screen_with_overflowing_content[120x40].raw +229 -0
  831. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestMainScreenSnapshots.test_main_screen_with_overflowing_content[40x15].raw +124 -0
  832. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestMainScreenSnapshots.test_main_screen_with_overflowing_content[80x24].raw +164 -0
  833. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestSecretsScreenSnapshots.test_secrets_screen_with_many_secrets[120x40].raw +216 -0
  834. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestSecretsScreenSnapshots.test_secrets_screen_with_many_secrets[40x15].raw +116 -0
  835. buvis_gems-0.12.6/tests/tools/dot/__snapshots__/test_tui_snapshots/TestSecretsScreenSnapshots.test_secrets_screen_with_many_secrets[80x24].raw +152 -0
  836. buvis_gems-0.12.6/tests/tools/dot/conftest.py +13 -0
  837. buvis_gems-0.12.6/tests/tools/dot/test_add.py +174 -0
  838. buvis_gems-0.12.6/tests/tools/dot/test_browse_commands.py +215 -0
  839. buvis_gems-0.12.6/tests/tools/dot/test_browse_screen.py +329 -0
  840. buvis_gems-0.12.6/tests/tools/dot/test_commit.py +86 -0
  841. buvis_gems-0.12.6/tests/tools/dot/test_commit_modal.py +68 -0
  842. buvis_gems-0.12.6/tests/tools/dot/test_delete.py +60 -0
  843. buvis_gems-0.12.6/tests/tools/dot/test_diff_view.py +693 -0
  844. buvis_gems-0.12.6/tests/tools/dot/test_dir_list.py +260 -0
  845. buvis_gems-0.12.6/tests/tools/dot/test_dot_commands.py +153 -0
  846. buvis_gems-0.12.6/tests/tools/dot/test_encrypt.py +84 -0
  847. buvis_gems-0.12.6/tests/tools/dot/test_file_list.py +145 -0
  848. buvis_gems-0.12.6/tests/tools/dot/test_git_ops.py +567 -0
  849. buvis_gems-0.12.6/tests/tools/dot/test_gitignore_modal.py +86 -0
  850. buvis_gems-0.12.6/tests/tools/dot/test_models.py +49 -0
  851. buvis_gems-0.12.6/tests/tools/dot/test_patch.py +615 -0
  852. buvis_gems-0.12.6/tests/tools/dot/test_pull.py +105 -0
  853. buvis_gems-0.12.6/tests/tools/dot/test_push.py +79 -0
  854. buvis_gems-0.12.6/tests/tools/dot/test_rm.py +146 -0
  855. buvis_gems-0.12.6/tests/tools/dot/test_run.py +67 -0
  856. buvis_gems-0.12.6/tests/tools/dot/test_secrets_commands.py +206 -0
  857. buvis_gems-0.12.6/tests/tools/dot/test_secrets_screen.py +333 -0
  858. buvis_gems-0.12.6/tests/tools/dot/test_status.py +346 -0
  859. buvis_gems-0.12.6/tests/tools/dot/test_status_bar.py +78 -0
  860. buvis_gems-0.12.6/tests/tools/dot/test_tui_app.py +687 -0
  861. buvis_gems-0.12.6/tests/tools/dot/test_tui_snapshots.py +217 -0
  862. buvis_gems-0.12.6/tests/tools/dot/test_unstage.py +69 -0
  863. buvis_gems-0.12.6/tests/tools/fctracker/conftest.py +19 -0
  864. buvis_gems-0.12.6/tests/tools/fctracker/test_account.py +36 -0
  865. buvis_gems-0.12.6/tests/tools/fctracker/test_balance.py +92 -0
  866. buvis_gems-0.12.6/tests/tools/fctracker/test_cli.py +22 -0
  867. buvis_gems-0.12.6/tests/tools/fctracker/test_deposit.py +90 -0
  868. buvis_gems-0.12.6/tests/tools/fctracker/test_fctracker_cli_extra.py +52 -0
  869. buvis_gems-0.12.6/tests/tools/fctracker/test_fctracker_commands.py +52 -0
  870. buvis_gems-0.12.6/tests/tools/fctracker/test_queue.py +87 -0
  871. buvis_gems-0.12.6/tests/tools/fctracker/test_transaction.py +30 -0
  872. buvis_gems-0.12.6/tests/tools/fctracker/test_transactions.py +287 -0
  873. buvis_gems-0.12.6/tests/tools/fctracker/test_transactions_dir_scanner.py +50 -0
  874. buvis_gems-0.12.6/tests/tools/fctracker/test_transactions_reader.py +68 -0
  875. buvis_gems-0.12.6/tests/tools/fctracker/test_withdrawal.py +82 -0
  876. buvis_gems-0.12.6/tests/tools/fren/test_cli.py +47 -0
  877. buvis_gems-0.12.6/tests/tools/fren/test_directorize.py +80 -0
  878. buvis_gems-0.12.6/tests/tools/fren/test_flatten.py +145 -0
  879. buvis_gems-0.12.6/tests/tools/fren/test_fren_commands.py +140 -0
  880. buvis_gems-0.12.6/tests/tools/fren/test_normalize.py +154 -0
  881. buvis_gems-0.12.6/tests/tools/fren/test_slug.py +221 -0
  882. buvis_gems-0.12.6/tests/tools/hello_world/test_cli.py +13 -0
  883. buvis_gems-0.12.6/tests/tools/hello_world/test_diagnostics.py +58 -0
  884. buvis_gems-0.12.6/tests/tools/hello_world/test_hello_world_cli_extra.py +44 -0
  885. buvis_gems-0.12.6/tests/tools/hello_world/test_hello_world_commands.py +27 -0
  886. buvis_gems-0.12.6/tests/tools/hello_world/test_list_fonts.py +12 -0
  887. buvis_gems-0.12.6/tests/tools/hello_world/test_print_figlet.py +25 -0
  888. buvis_gems-0.12.6/tests/tools/morph/test_cli.py +28 -0
  889. buvis_gems-0.12.6/tests/tools/morph/test_deblank.py +175 -0
  890. buvis_gems-0.12.6/tests/tools/morph/test_deblank_extra.py +90 -0
  891. buvis_gems-0.12.6/tests/tools/morph/test_html2md.py +261 -0
  892. buvis_gems-0.12.6/tests/tools/morph/test_morph_cli.py +57 -0
  893. buvis_gems-0.12.6/tests/tools/morph/test_morph_commands.py +146 -0
  894. buvis_gems-0.12.6/tests/tools/morph/test_pdf2png.py +120 -0
  895. buvis_gems-0.12.6/tests/tools/muc/test_cli.py +26 -0
  896. buvis_gems-0.12.6/tests/tools/muc/test_cover.py +243 -0
  897. buvis_gems-0.12.6/tests/tools/muc/test_dir_tree.py +150 -0
  898. buvis_gems-0.12.6/tests/tools/muc/test_dir_tree_symlink_security.py +104 -0
  899. buvis_gems-0.12.6/tests/tools/muc/test_limit.py +123 -0
  900. buvis_gems-0.12.6/tests/tools/muc/test_limit_extra.py +115 -0
  901. buvis_gems-0.12.6/tests/tools/muc/test_merge_mac_metadata.py +86 -0
  902. buvis_gems-0.12.6/tests/tools/muc/test_muc_cli_extra.py +103 -0
  903. buvis_gems-0.12.6/tests/tools/muc/test_muc_commands.py +37 -0
  904. buvis_gems-0.12.6/tests/tools/muc/test_safe_rglob.py +80 -0
  905. buvis_gems-0.12.6/tests/tools/muc/test_tidy.py +75 -0
  906. buvis_gems-0.12.6/tests/tools/netscan/test_cli.py +22 -0
  907. buvis_gems-0.12.6/tests/tools/netscan/test_hosts.py +91 -0
  908. buvis_gems-0.12.6/tests/tools/netscan/test_netscan_cli.py +84 -0
  909. buvis_gems-0.12.6/tests/tools/netscan/test_network.py +78 -0
  910. buvis_gems-0.12.6/tests/tools/netscan/test_ssh.py +78 -0
  911. buvis_gems-0.12.6/tests/tools/outlookctl/test_cli.py +10 -0
  912. buvis_gems-0.12.6/tests/tools/outlookctl/test_create_timeblock.py +16 -0
  913. buvis_gems-0.12.6/tests/tools/outlookctl/test_outlookctl_cli_extra.py +48 -0
  914. buvis_gems-0.12.6/tests/tools/outlookctl/test_outlookctl_commands.py +14 -0
  915. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashMultiSessionSnapshots.test_multi_session_with_many_sessions[120x40].raw +221 -0
  916. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashMultiSessionSnapshots.test_multi_session_with_many_sessions[40x15].raw +121 -0
  917. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashMultiSessionSnapshots.test_multi_session_with_many_sessions[80x24].raw +157 -0
  918. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashSingleProjectSnapshots.test_single_project_with_many_tasks[120x40].raw +223 -0
  919. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashSingleProjectSnapshots.test_single_project_with_many_tasks[40x15].raw +121 -0
  920. buvis_gems-0.12.6/tests/tools/pidash/__snapshots__/test_tui_snapshots/TestPidashSingleProjectSnapshots.test_single_project_with_many_tasks[80x24].raw +158 -0
  921. buvis_gems-0.12.6/tests/tools/pidash/commands/__init__.py +0 -0
  922. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/__init__.py +0 -0
  923. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/test_install.py +195 -0
  924. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/test_install_integration.py +144 -0
  925. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/test_settings.py +132 -0
  926. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/test_status.py +77 -0
  927. buvis_gems-0.12.6/tests/tools/pidash/commands/hooks/test_uninstall.py +95 -0
  928. buvis_gems-0.12.6/tests/tools/pidash/conftest.py +195 -0
  929. buvis_gems-0.12.6/tests/tools/pidash/hooks/__init__.py +0 -0
  930. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_cleanup_session.py +90 -0
  931. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_clear_attention.py +81 -0
  932. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_session.py +169 -0
  933. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_set_attention.py +110 -0
  934. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_sync_agent_return.py +130 -0
  935. buvis_gems-0.12.6/tests/tools/pidash/hooks/test_update_tasks.py +180 -0
  936. buvis_gems-0.12.6/tests/tools/pidash/test_app.py +222 -0
  937. buvis_gems-0.12.6/tests/tools/pidash/test_cli.py +60 -0
  938. buvis_gems-0.12.6/tests/tools/pidash/test_state.py +247 -0
  939. buvis_gems-0.12.6/tests/tools/pidash/test_tui_snapshots.py +206 -0
  940. buvis_gems-0.12.6/tests/tools/pidash/test_widgets.py +510 -0
  941. buvis_gems-0.12.6/tests/tools/pinger/test_cli.py +15 -0
  942. buvis_gems-0.12.6/tests/tools/pinger/test_pinger_commands.py +44 -0
  943. buvis_gems-0.12.6/tests/tools/pinger/test_wait.py +50 -0
  944. buvis_gems-0.12.6/tests/tools/puc/test_cli.py +15 -0
  945. buvis_gems-0.12.6/tests/tools/puc/test_puc_cli_extra.py +50 -0
  946. buvis_gems-0.12.6/tests/tools/puc/test_puc_commands.py +16 -0
  947. buvis_gems-0.12.6/tests/tools/puc/test_strip.py +219 -0
  948. buvis_gems-0.12.6/tests/tools/readerctl/test_add.py +33 -0
  949. buvis_gems-0.12.6/tests/tools/readerctl/test_cli.py +21 -0
  950. buvis_gems-0.12.6/tests/tools/readerctl/test_login.py +56 -0
  951. buvis_gems-0.12.6/tests/tools/readerctl/test_reader_api.py +113 -0
  952. buvis_gems-0.12.6/tests/tools/readerctl/test_readerctl_cli_extra.py +112 -0
  953. buvis_gems-0.12.6/tests/tools/readerctl/test_readerctl_commands.py +43 -0
  954. buvis_gems-0.12.6/tests/tools/readerctl/test_response.py +24 -0
  955. buvis_gems-0.12.6/tests/tools/sysup/__init__.py +5 -0
  956. buvis_gems-0.12.6/tests/tools/sysup/test_mac.py +520 -0
  957. buvis_gems-0.12.6/tests/tools/sysup/test_nvim.py +478 -0
  958. buvis_gems-0.12.6/tests/tools/sysup/test_pip.py +343 -0
  959. buvis_gems-0.12.6/tests/tools/sysup/test_sysup_cli.py +151 -0
  960. buvis_gems-0.12.6/tests/tools/sysup/test_wsl.py +93 -0
  961. buvis_gems-0.12.6/tests/tools/vuc/test_cli.py +14 -0
  962. buvis_gems-0.12.6/tests/tools/vuc/test_multilang.py +300 -0
  963. buvis_gems-0.12.6/tests/tools/vuc/test_vuc_commands.py +65 -0
  964. buvis_gems-0.12.6/tests/tools/zseq/test_cli.py +11 -0
  965. buvis_gems-0.12.6/tests/tools/zseq/test_get_last.py +48 -0
  966. buvis_gems-0.12.6/tests/tools/zseq/test_zseq_cli_extra.py +32 -0
  967. buvis_gems-0.12.6/tests/tools/zseq/test_zseq_commands.py +30 -0
  968. buvis_gems-0.12.6/tests/tools/zseq/test_zseq_filename.py +51 -0
  969. buvis_gems-0.12.6/uv.lock +2905 -0
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+ - package-ecosystem: cargo
8
+ directory: /src/rust
9
+ schedule:
10
+ interval: weekly
11
+ - package-ecosystem: github-actions
12
+ directory: /
13
+ schedule:
14
+ interval: monthly
@@ -0,0 +1,43 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ paths:
7
+ - "docs/**"
8
+ - "src/**"
9
+ - "pyproject.toml"
10
+
11
+ env:
12
+ BUVIS_SKIP_FRONTEND: "1"
13
+
14
+ jobs:
15
+ build-and-deploy:
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ contents: write
19
+ pages: write
20
+ id-token: write
21
+
22
+ steps:
23
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
24
+
25
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
26
+
27
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
28
+ with:
29
+ python-version: "3.14"
30
+
31
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
32
+
33
+ - name: Install dependencies
34
+ run: uv sync --all-extras --group docs
35
+
36
+ - name: Build documentation
37
+ run: uv run sphinx-build -b html docs/source docs/build/html
38
+
39
+ - name: Deploy to GitHub Pages
40
+ uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4
41
+ with:
42
+ github_token: ${{ secrets.GITHUB_TOKEN }}
43
+ publish_dir: docs/build/html
@@ -0,0 +1,136 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "gems-v*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ testpypi:
10
+ description: "Publish to TestPyPI"
11
+ type: boolean
12
+ default: true
13
+
14
+ jobs:
15
+ test:
16
+ uses: ./.github/workflows/test.yml
17
+
18
+ build-wheels:
19
+ needs: test
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ os:
24
+ - ubuntu-latest
25
+ - ubuntu-24.04-arm
26
+ - macos-latest
27
+ - windows-latest
28
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
29
+ runs-on: ${{ matrix.os }}
30
+ steps:
31
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
32
+
33
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
34
+
35
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
36
+ with:
37
+ enable-cache: true
38
+
39
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
40
+ with:
41
+ python-version: ${{ matrix.python-version }}
42
+
43
+ - name: Install build deps
44
+ run: uv pip install --system maturin tomli
45
+
46
+ - name: Pin dependencies from lockfile
47
+ run: python dev/bin/pin_deps.py .
48
+
49
+ - name: Build wheel
50
+ run: uv build --wheel
51
+
52
+ - name: Repair Linux wheel
53
+ if: runner.os == 'Linux'
54
+ run: |
55
+ uv pip install --system auditwheel patchelf
56
+ auditwheel repair dist/*.whl --wheel-dir dist-repaired
57
+ rm -rf dist
58
+ mv dist-repaired dist
59
+
60
+ # One sdist for the whole release: indexes that list versions from
61
+ # .tar.gz filenames (Artifactory, mise's pipx backend) need it.
62
+ - name: Build sdist
63
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
64
+ run: uv build --sdist
65
+
66
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
67
+ with:
68
+ name: wheel-${{ matrix.os }}-py${{ matrix.python-version }}
69
+ path: dist/*
70
+
71
+ publish:
72
+ needs: build-wheels
73
+ runs-on: ubuntu-latest
74
+ environment: ${{ (contains(github.ref_name, 'rc') || inputs.testpypi) && 'testpypi' || 'pypi' }}
75
+ permissions:
76
+ id-token: write
77
+ attestations: write
78
+ steps:
79
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
80
+ with:
81
+ path: dist/
82
+ pattern: wheel-*
83
+ merge-multiple: true
84
+
85
+ - name: Attest build provenance
86
+ uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4
87
+ with:
88
+ subject-path: dist/*
89
+
90
+ - name: Publish
91
+ uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # release/v1
92
+ with:
93
+ packages-dir: dist/
94
+ repository-url: ${{ (contains(github.ref_name, 'rc') || inputs.testpypi) && 'https://test.pypi.org/legacy/' || 'https://upload.pypi.org/legacy/' }}
95
+
96
+ github-release:
97
+ needs: [build-wheels, publish]
98
+ if: github.event_name == 'push' && !contains(github.ref_name, 'rc')
99
+ runs-on: ubuntu-latest
100
+ permissions:
101
+ contents: write
102
+ steps:
103
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
104
+ with:
105
+ fetch-depth: 0
106
+
107
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
108
+ with:
109
+ path: dist/
110
+ pattern: wheel-*
111
+ merge-multiple: true
112
+
113
+ - name: Generate SBOM
114
+ uses: anchore/sbom-action@e22c389904149dbc22b58101806040fa8d37a610 # v0
115
+ with:
116
+ path: dist/
117
+ format: cyclonedx-json
118
+ output-file: dist/buvis-gems.cdx.json
119
+
120
+ - name: Extract changelog
121
+ shell: bash
122
+ run: |
123
+ tag="${{ github.ref_name }}"
124
+ version="${tag#gems-v}"
125
+ echo "VERSION=$version" >> "$GITHUB_ENV"
126
+ awk "/^## \[${version//./\\.}\]/{found=1; next} /^## \[/{if(found) exit} found" CHANGELOG.md > release-notes.md
127
+
128
+ - uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3
129
+ with:
130
+ tag_name: ${{ github.ref_name }}
131
+ name: ${{ env.VERSION }}
132
+ body_path: release-notes.md
133
+ files: |
134
+ dist/*.whl
135
+ dist/*.tar.gz
136
+ dist/*.cdx.json
@@ -0,0 +1,178 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+ workflow_call:
9
+ workflow_dispatch:
10
+
11
+ env:
12
+ BUVIS_SKIP_FRONTEND: "1"
13
+
14
+ jobs:
15
+ detect:
16
+ runs-on: ubuntu-latest
17
+ outputs:
18
+ changed_tools: ${{ steps.filter.outputs.changed_tools }}
19
+ run_all: ${{ steps.filter.outputs.run_all }}
20
+ steps:
21
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Detect changed paths
26
+ id: filter
27
+ run: |
28
+ ALL_TOOLS=$(find src/tools/ -maxdepth 1 -mindepth 1 -type d -printf '%f\n' | sort | jq -R . | jq -sc .)
29
+
30
+ # workflow_dispatch and workflow_call always run everything
31
+ if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "${{ github.event_name }}" = "workflow_call" ]; then
32
+ echo "run_all=true" >> "$GITHUB_OUTPUT"
33
+ echo "changed_tools=${ALL_TOOLS}" >> "$GITHUB_OUTPUT"
34
+ exit 0
35
+ fi
36
+
37
+ # determine diff range
38
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
39
+ BASE="${{ github.event.pull_request.base.sha }}"
40
+ else
41
+ BASE="${{ github.event.before }}"
42
+ fi
43
+
44
+ # guard null SHA on first push to a new branch
45
+ NULL_SHA="0000000000000000000000000000000000000000"
46
+ if [ "${BASE}" = "${NULL_SHA}" ] || [ -z "${BASE}" ]; then
47
+ echo "run_all=true" >> "$GITHUB_OUTPUT"
48
+ echo "changed_tools=${ALL_TOOLS}" >> "$GITHUB_OUTPUT"
49
+ exit 0
50
+ fi
51
+
52
+ CHANGED=$(git diff --name-only "${BASE}..HEAD" --)
53
+
54
+ # check if shared infrastructure changed
55
+ RUN_ALL=false
56
+ if echo "${CHANGED}" | grep -qE '^(src/lib/|src/rust/|tests/lib/|tests/conftest\.py|pyproject\.toml|uv\.lock|hatch_build\.py|Cargo\.(toml|lock)|\.github/workflows/test\.yml)'; then
57
+ RUN_ALL=true
58
+ fi
59
+
60
+ if [ "${RUN_ALL}" = "true" ]; then
61
+ echo "run_all=true" >> "$GITHUB_OUTPUT"
62
+ echo "changed_tools=${ALL_TOOLS}" >> "$GITHUB_OUTPUT"
63
+ exit 0
64
+ fi
65
+
66
+ # extract tool names from changed paths
67
+ TOOLS=$(echo "${CHANGED}" | grep -oE '^(src/tools|tests/tools)/[^/]+' | sed 's|.*/||' | sort -u)
68
+ JSON="[]"
69
+ if [ -n "${TOOLS}" ]; then
70
+ JSON=$(echo "${TOOLS}" | jq -R . | jq -sc .)
71
+ fi
72
+
73
+ echo "run_all=false" >> "$GITHUB_OUTPUT"
74
+ echo "changed_tools=${JSON}" >> "$GITHUB_OUTPUT"
75
+
76
+ lint:
77
+ runs-on: ubuntu-latest
78
+ steps:
79
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
80
+
81
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
82
+
83
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
84
+ with:
85
+ enable-cache: true
86
+
87
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
88
+ with:
89
+ python-version: "3.14"
90
+
91
+ - name: Install dependencies
92
+ run: uv sync --all-extras --group test --group dev
93
+
94
+ - name: Audit dependencies
95
+ run: uv run pip-audit --skip-editable --ignore-vuln CVE-2026-4539 # pygments, no fix available yet
96
+
97
+ - name: Lint & format check
98
+ run: |
99
+ uv run ruff check src/ tests/
100
+ uv run ruff format --check src/ tests/
101
+
102
+ - name: Type check
103
+ run: uv run mypy src/lib/ src/tools/
104
+
105
+ lib:
106
+ runs-on: ${{ matrix.os }}
107
+ strategy:
108
+ matrix:
109
+ os: [ubuntu-latest, macos-latest]
110
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
111
+ steps:
112
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
113
+
114
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
115
+
116
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
117
+ with:
118
+ enable-cache: true
119
+
120
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
121
+ with:
122
+ python-version: ${{ matrix.python-version }}
123
+
124
+ - name: Install dependencies
125
+ run: uv sync --all-extras --group test --group dev
126
+
127
+ - name: Run library tests
128
+ run: uv run pytest -m lib --cov=src/lib --cov-report=term-missing --cov-fail-under=80
129
+
130
+ tools:
131
+ needs: [detect, lib]
132
+ if: needs.detect.outputs.changed_tools != '[]'
133
+ runs-on: ${{ matrix.os }}
134
+ strategy:
135
+ matrix:
136
+ os: [ubuntu-latest, macos-latest]
137
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
138
+ tool: ${{ fromJson(needs.detect.outputs.changed_tools) }}
139
+ steps:
140
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
141
+
142
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
143
+
144
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
145
+ with:
146
+ enable-cache: true
147
+
148
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
149
+ with:
150
+ python-version: ${{ matrix.python-version }}
151
+
152
+ - name: Install dependencies
153
+ run: uv sync --all-extras --group test --group dev
154
+
155
+ - name: Run ${{ matrix.tool }} tests
156
+ env:
157
+ TOOL_MARKER: ${{ matrix.tool }}
158
+ run: uv run pytest -m "$TOOL_MARKER" --cov="src/tools/$TOOL_MARKER" --cov-report=term-missing --cov-fail-under=50
159
+
160
+ # Single status check for branch protection / automerge
161
+ test:
162
+ if: always()
163
+ needs: [lint, lib, tools]
164
+ runs-on: ubuntu-latest
165
+ steps:
166
+ - run: |
167
+ if [ "${{ needs.lint.result }}" != "success" ]; then
168
+ echo "Lint checks failed"
169
+ exit 1
170
+ fi
171
+ if [ "${{ needs.lib.result }}" != "success" ]; then
172
+ echo "Lib tests failed"
173
+ exit 1
174
+ fi
175
+ if [ "${{ needs.tools.result }}" != "success" ] && [ "${{ needs.tools.result }}" != "skipped" ]; then
176
+ echo "Tool tests failed"
177
+ exit 1
178
+ fi
@@ -0,0 +1,68 @@
1
+ name: Update snapshots
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ marker:
7
+ description: "pytest marker to regenerate (default: snapshot)"
8
+ required: false
9
+ default: "snapshot"
10
+
11
+ permissions:
12
+ contents: write
13
+ pull-requests: write
14
+
15
+ env:
16
+ BUVIS_SKIP_FRONTEND: "1"
17
+
18
+ jobs:
19
+ update:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
23
+ with:
24
+ token: ${{ secrets.GITHUB_TOKEN }}
25
+
26
+ - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 # stable
27
+
28
+ - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
29
+ with:
30
+ enable-cache: true
31
+
32
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
33
+ with:
34
+ python-version: "3.14"
35
+
36
+ - name: Install dependencies
37
+ run: uv sync --all-extras --group test --group dev
38
+
39
+ - name: Regenerate snapshot baselines
40
+ env:
41
+ BUVIS_SNAPSHOT_CANONICAL: "1"
42
+ run: uv run pytest -m "${{ inputs.marker }}" --snapshot-update
43
+
44
+ - name: Verify snapshots now pass
45
+ env:
46
+ BUVIS_SNAPSHOT_CANONICAL: "1"
47
+ run: uv run pytest -m "${{ inputs.marker }}"
48
+
49
+ - name: Open pull request with updated baselines
50
+ env:
51
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52
+ run: |
53
+ if [ -z "$(git status --porcelain tests/)" ]; then
54
+ echo "No snapshot changes to commit."
55
+ exit 0
56
+ fi
57
+ git config user.name "github-actions[bot]"
58
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
59
+ BRANCH="update-snapshots/${{ github.run_id }}"
60
+ git checkout -b "$BRANCH"
61
+ git add tests/
62
+ git commit -m "test: regenerate snapshot baselines in canonical env"
63
+ git push origin "$BRANCH"
64
+ gh pr create \
65
+ --title "test: regenerate snapshot baselines" \
66
+ --body "Automated regeneration via update-snapshots workflow on the canonical env (Linux + Python 3.12)." \
67
+ --base master \
68
+ --head "$BRANCH"
@@ -0,0 +1,74 @@
1
+ # Claude / Serena
2
+ .claude
3
+ .local
4
+ .serena
5
+
6
+ # Python bytecode
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # Distribution / packaging
12
+ *.egg-info/
13
+ *.egg
14
+ .eggs/
15
+ dist/
16
+ build/
17
+ *.whl
18
+ *.so
19
+ sdist/
20
+ wheels/
21
+ *.tar.gz
22
+
23
+ # Virtual environments
24
+ .venv/
25
+ venv/
26
+ ENV/
27
+
28
+ # Environment variables
29
+ .env
30
+ .env.*
31
+ !.env.example
32
+
33
+ # Testing / coverage
34
+ .pytest_cache/
35
+ .coverage
36
+ .coverage.*
37
+ coverage.xml
38
+ htmlcov/
39
+ .tox/
40
+ .nox/
41
+
42
+ # Linting / type checking
43
+ .mypy_cache/
44
+ .ruff_cache/
45
+ .dmypy.json
46
+
47
+ # IDEs / editors
48
+ .idea/
49
+ .vscode/
50
+ *.swp
51
+ *.swo
52
+ *~
53
+ .project
54
+ .settings/
55
+
56
+ # OS files
57
+ .DS_Store
58
+ Thumbs.db
59
+
60
+ # Tool output
61
+ transcoded/
62
+
63
+ # Docs build
64
+ docs/build/
65
+
66
+ # Rust
67
+ src/rust/target/
68
+ src/rust/uv.lock
69
+
70
+ # Frontend
71
+ src/tools/bim/commands/serve/frontend/node_modules/
72
+ src/tools/bim/commands/serve/frontend/build/
73
+ src/tools/bim/commands/serve/frontend/.svelte-kit/
74
+ src/tools/bim/commands/serve/static/
@@ -0,0 +1,2 @@
1
+ [env]
2
+ _.path = ["dev/bin"]
@@ -0,0 +1,31 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.11.12
4
+ hooks:
5
+ - id: ruff
6
+ pass_filenames: false
7
+ args: [--fix, "src/", "tests/"]
8
+ - id: ruff-format
9
+ pass_filenames: false
10
+ args: ["src/", "tests/"]
11
+ - repo: local
12
+ hooks:
13
+ - id: mypy
14
+ name: mypy
15
+ entry: uv run mypy src/lib/ src/tools/
16
+ language: system
17
+ types: [python]
18
+ pass_filenames: false
19
+ - id: no-framework-in-commands
20
+ name: no framework imports in commands/params
21
+ entry: >
22
+ bash -c 'if rg -q "from buvis\.pybase\.adapters import|import click|import textual|import fastapi"
23
+ src/tools/*/commands/ src/tools/*/params/ --glob "!*/serve/*";
24
+ then echo "ERROR: framework imports in commands/ or params/"; exit 1; fi'
25
+ language: system
26
+ pass_filenames: false
27
+ - id: check-tool-wiring
28
+ name: check tool wiring in pyproject.toml
29
+ entry: python dev/bin/check_tool_wiring.py
30
+ language: system
31
+ pass_filenames: false