warden-core 1.8.2__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 (575) hide show
  1. warden_core-1.8.2/.claude.json +9 -0
  2. warden_core-1.8.2/.cursorrules +19 -0
  3. warden_core-1.8.2/.dockerignore +28 -0
  4. warden_core-1.8.2/.env.example +55 -0
  5. warden_core-1.8.2/.github/workflows/ci.yml +87 -0
  6. warden_core-1.8.2/.github/workflows/release.yml +68 -0
  7. warden_core-1.8.2/.gitignore +79 -0
  8. warden_core-1.8.2/.warden/.gitignore +8 -0
  9. warden_core-1.8.2/.warden/AI_RULES.md +37 -0
  10. warden_core-1.8.2/.warden/ai_status.md +10 -0
  11. warden_core-1.8.2/.warden/config.yaml +126 -0
  12. warden_core-1.8.2/.warden/frames/README.md +208 -0
  13. warden_core-1.8.2/.warden/frames/architectural/__init__.py +7 -0
  14. warden_core-1.8.2/.warden/frames/architectural/frame.py +877 -0
  15. warden_core-1.8.2/.warden/frames/config/__init__.py +5 -0
  16. warden_core-1.8.2/.warden/frames/config/frame.py +190 -0
  17. warden_core-1.8.2/.warden/frames/demo-security/frame.py +168 -0
  18. warden_core-1.8.2/.warden/frames/demo-security/frame.yaml +51 -0
  19. warden_core-1.8.2/.warden/frames/env-security/README.md +201 -0
  20. warden_core-1.8.2/.warden/frames/env-security/frame.py +274 -0
  21. warden_core-1.8.2/.warden/frames/env-security/frame.yaml +83 -0
  22. warden_core-1.8.2/.warden/frames/fuzz/__init__.py +5 -0
  23. warden_core-1.8.2/.warden/frames/fuzz/frame.py +307 -0
  24. warden_core-1.8.2/.warden/frames/gitchanges/__init__.py +30 -0
  25. warden_core-1.8.2/.warden/frames/gitchanges/frame.py +390 -0
  26. warden_core-1.8.2/.warden/frames/gitchanges/git_diff_parser.py +294 -0
  27. warden_core-1.8.2/.warden/frames/orphan/__init__.py +45 -0
  28. warden_core-1.8.2/.warden/frames/orphan/frame.py +695 -0
  29. warden_core-1.8.2/.warden/frames/orphan/llm_orphan_filter.py +988 -0
  30. warden_core-1.8.2/.warden/frames/orphan/orphan_detector.py +597 -0
  31. warden_core-1.8.2/.warden/frames/project_architecture/__init__.py +7 -0
  32. warden_core-1.8.2/.warden/frames/project_architecture/frame.py +592 -0
  33. warden_core-1.8.2/.warden/frames/property/__init__.py +5 -0
  34. warden_core-1.8.2/.warden/frames/property/frame.py +414 -0
  35. warden_core-1.8.2/.warden/frames/resilience/__init__.py +15 -0
  36. warden_core-1.8.2/.warden/frames/resilience/_internal/__init__.py +5 -0
  37. warden_core-1.8.2/.warden/frames/resilience/_internal/circuit_breaker_check.py +108 -0
  38. warden_core-1.8.2/.warden/frames/resilience/_internal/error_handling_check.py +180 -0
  39. warden_core-1.8.2/.warden/frames/resilience/_internal/retry_check.py +146 -0
  40. warden_core-1.8.2/.warden/frames/resilience/_internal/timeout_check.py +142 -0
  41. warden_core-1.8.2/.warden/frames/resilience/frame.py +188 -0
  42. warden_core-1.8.2/.warden/frames/security/__init__.py +24 -0
  43. warden_core-1.8.2/.warden/frames/security/_internal/__init__.py +5 -0
  44. warden_core-1.8.2/.warden/frames/security/_internal/hardcoded_password_check.py +238 -0
  45. warden_core-1.8.2/.warden/frames/security/_internal/secrets_check.py +154 -0
  46. warden_core-1.8.2/.warden/frames/security/_internal/sql_injection_check.py +136 -0
  47. warden_core-1.8.2/.warden/frames/security/_internal/xss_check.py +88 -0
  48. warden_core-1.8.2/.warden/frames/security/frame.py +364 -0
  49. warden_core-1.8.2/.warden/frames/stress/__init__.py +5 -0
  50. warden_core-1.8.2/.warden/frames/stress/frame.py +305 -0
  51. warden_core-1.8.2/.warden/frames/universal/__init__.py +5 -0
  52. warden_core-1.8.2/.warden/frames/universal/secret_scanner.py +185 -0
  53. warden_core-1.8.2/.warden/ignore.yaml +108 -0
  54. warden_core-1.8.2/.warden/rules/consistency.yaml +167 -0
  55. warden_core-1.8.2/.warden/rules/conventions.yaml +45 -0
  56. warden_core-1.8.2/.warden/rules/my_custom_rules.yaml +12 -0
  57. warden_core-1.8.2/.warden/rules/performance.yaml +29 -0
  58. warden_core-1.8.2/.warden/rules/root.yaml +55 -0
  59. warden_core-1.8.2/.warden/rules/security.yaml +535 -0
  60. warden_core-1.8.2/.warden/rules.example.yaml +191 -0
  61. warden_core-1.8.2/.warden/scripts/README.md +97 -0
  62. warden_core-1.8.2/.warden/scripts/check_complexity.sh +27 -0
  63. warden_core-1.8.2/.warden/scripts/check_file_size.sh +27 -0
  64. warden_core-1.8.2/.warden/scripts/check_no_todos.sh +30 -0
  65. warden_core-1.8.2/.warden.example.yml +184 -0
  66. warden_core-1.8.2/.wardenignore +3 -0
  67. warden_core-1.8.2/CLAUDE.md +8 -0
  68. warden_core-1.8.2/Dockerfile +54 -0
  69. warden_core-1.8.2/Formula/warden.rb +32 -0
  70. warden_core-1.8.2/GEMINI.md +10 -0
  71. warden_core-1.8.2/LICENSE +13 -0
  72. warden_core-1.8.2/PKG-INFO +586 -0
  73. warden_core-1.8.2/README.md +526 -0
  74. warden_core-1.8.2/clients/csharp/README.md +169 -0
  75. warden_core-1.8.2/clients/csharp/Warden.Client.csproj +24 -0
  76. warden_core-1.8.2/clients/csharp/WardenClient.cs +259 -0
  77. warden_core-1.8.2/docs/COMMAND_SYSTEM.md +436 -0
  78. warden_core-1.8.2/docs/COMMAND_SYSTEM_QUICK_START.md +333 -0
  79. warden_core-1.8.2/docs/CUSTOM_FRAMES.md +1333 -0
  80. warden_core-1.8.2/docs/FRAME_INFRASTRUCTURE_UPDATE.md +569 -0
  81. warden_core-1.8.2/docs/USER_GUIDE_PRE_POST_RULES.md +1245 -0
  82. warden_core-1.8.2/docs/ci_cd_integration.md +113 -0
  83. warden_core-1.8.2/examples/.warden/reports/scan-20251223-221151.json +516 -0
  84. warden_core-1.8.2/examples/.warden/reports/scan-20251223-221151.md +51 -0
  85. warden_core-1.8.2/examples/custom-commands/README.md +154 -0
  86. warden_core-1.8.2/examples/custom-commands/code-review.toml +17 -0
  87. warden_core-1.8.2/examples/custom-commands/git/summary.toml +23 -0
  88. warden_core-1.8.2/examples/custom-commands/search/grep-code.toml +17 -0
  89. warden_core-1.8.2/examples/custom-frames/README.md +408 -0
  90. warden_core-1.8.2/examples/custom-frames/redis-security/README.md +66 -0
  91. warden_core-1.8.2/examples/custom-frames/redis-security/USAGE.md +460 -0
  92. warden_core-1.8.2/examples/custom-frames/redis-security/checks/__init__.py +1 -0
  93. warden_core-1.8.2/examples/custom-frames/redis-security/frame.py +375 -0
  94. warden_core-1.8.2/examples/custom-frames/redis-security/frame.yaml +43 -0
  95. warden_core-1.8.2/examples/custom-frames/redis-security/test_examples/insecure_redis.py +53 -0
  96. warden_core-1.8.2/examples/custom-frames/redis-security/test_examples/secure_redis.py +59 -0
  97. warden_core-1.8.2/examples/custom-frames/redis-security/test_manual.py +136 -0
  98. warden_core-1.8.2/examples/custom-frames/redis-security/tests/__init__.py +1 -0
  99. warden_core-1.8.2/examples/custom-frames/redis-security/tests/test_frame.py +76 -0
  100. warden_core-1.8.2/examples/dogfooding/README.md +28 -0
  101. warden_core-1.8.2/examples/dogfooding/python/architectural_test.py +117 -0
  102. warden_core-1.8.2/examples/dogfooding/python/chaos_test.py +73 -0
  103. warden_core-1.8.2/examples/dogfooding/python/invalid_config.yaml +23 -0
  104. warden_core-1.8.2/examples/dogfooding/python/orphan_test.py +70 -0
  105. warden_core-1.8.2/examples/dogfooding/python/property_test.py +66 -0
  106. warden_core-1.8.2/examples/dogfooding/python/security_vulnerabilities.py +55 -0
  107. warden_core-1.8.2/examples/dogfooding/python/vulnerable_code.py +132 -0
  108. warden_core-1.8.2/extensions/warden-ast-java/.gitignore +64 -0
  109. warden_core-1.8.2/extensions/warden-ast-java/LICENSE +21 -0
  110. warden_core-1.8.2/extensions/warden-ast-java/MANIFEST.in +14 -0
  111. warden_core-1.8.2/extensions/warden-ast-java/README.md +256 -0
  112. warden_core-1.8.2/extensions/warden-ast-java/pyproject.toml +74 -0
  113. warden_core-1.8.2/extensions/warden-ast-java/src/warden_ast_java/__init__.py +10 -0
  114. warden_core-1.8.2/extensions/warden-ast-java/src/warden_ast_java/provider.py +320 -0
  115. warden_core-1.8.2/extensions/warden-ast-java/src/warden_ast_java/py.typed +2 -0
  116. warden_core-1.8.2/extensions/warden-ast-java/tests/__init__.py +1 -0
  117. warden_core-1.8.2/extensions/warden-ast-java/tests/test_java_provider.py +174 -0
  118. warden_core-1.8.2/extensions/warden-ast-java/verify.py +190 -0
  119. warden_core-1.8.2/poetry.lock +2029 -0
  120. warden_core-1.8.2/pyproject.toml +6 -0
  121. warden_core-1.8.2/scripts/generate_grpc.py +79 -0
  122. warden_core-1.8.2/scripts/scan_full_pipeline.py +383 -0
  123. warden_core-1.8.2/scripts/server_start.sh +66 -0
  124. warden_core-1.8.2/setup.cfg +4 -0
  125. warden_core-1.8.2/setup.py +80 -0
  126. warden_core-1.8.2/src/.warden/ai_status.md +10 -0
  127. warden_core-1.8.2/src/.warden/frames/orphan/__init__.py +45 -0
  128. warden_core-1.8.2/src/.warden/frames/orphan/frame.py +695 -0
  129. warden_core-1.8.2/src/.warden/frames/orphan/llm_orphan_filter.py +988 -0
  130. warden_core-1.8.2/src/.warden/frames/orphan/orphan_detector.py +597 -0
  131. warden_core-1.8.2/src/.warden/memory/knowledge_graph.json +20118 -0
  132. warden_core-1.8.2/src/warden/__init__.py +17 -0
  133. warden_core-1.8.2/src/warden/_version.py +34 -0
  134. warden_core-1.8.2/src/warden/analysis/__init__.py +24 -0
  135. warden_core-1.8.2/src/warden/analysis/application/__init__.py +0 -0
  136. warden_core-1.8.2/src/warden/analysis/application/analysis_phase.py +305 -0
  137. warden_core-1.8.2/src/warden/analysis/application/convention_detector.py +176 -0
  138. warden_core-1.8.2/src/warden/analysis/application/dependency_graph.py +121 -0
  139. warden_core-1.8.2/src/warden/analysis/application/discovery/__init__.py +45 -0
  140. warden_core-1.8.2/src/warden/analysis/application/discovery/classifier.py +141 -0
  141. warden_core-1.8.2/src/warden/analysis/application/discovery/discoverer.py +309 -0
  142. warden_core-1.8.2/src/warden/analysis/application/discovery/framework_detector.py +255 -0
  143. warden_core-1.8.2/src/warden/analysis/application/discovery/gitignore_filter.py +266 -0
  144. warden_core-1.8.2/src/warden/analysis/application/discovery/models.py +256 -0
  145. warden_core-1.8.2/src/warden/analysis/application/file_context_analyzer.py +545 -0
  146. warden_core-1.8.2/src/warden/analysis/application/framework_detector.py +158 -0
  147. warden_core-1.8.2/src/warden/analysis/application/integrity_scanner.py +225 -0
  148. warden_core-1.8.2/src/warden/analysis/application/issue_tracker.py +229 -0
  149. warden_core-1.8.2/src/warden/analysis/application/llm_analysis_phase.py +435 -0
  150. warden_core-1.8.2/src/warden/analysis/application/llm_context_analyzer.py +594 -0
  151. warden_core-1.8.2/src/warden/analysis/application/llm_phase_base.py +451 -0
  152. warden_core-1.8.2/src/warden/analysis/application/metrics_aggregator.py +274 -0
  153. warden_core-1.8.2/src/warden/analysis/application/pre_analysis_phase.py +792 -0
  154. warden_core-1.8.2/src/warden/analysis/application/project_purpose_detector.py +160 -0
  155. warden_core-1.8.2/src/warden/analysis/application/project_structure_analyzer.py +663 -0
  156. warden_core-1.8.2/src/warden/analysis/application/resolvers/semantic_resolver.py +159 -0
  157. warden_core-1.8.2/src/warden/analysis/application/result_analyzer.py +282 -0
  158. warden_core-1.8.2/src/warden/analysis/application/service_abstraction_detector.py +465 -0
  159. warden_core-1.8.2/src/warden/analysis/application/statistics_collector.py +124 -0
  160. warden_core-1.8.2/src/warden/analysis/domain/__init__.py +0 -0
  161. warden_core-1.8.2/src/warden/analysis/domain/context_weights.py +271 -0
  162. warden_core-1.8.2/src/warden/analysis/domain/enums.py +33 -0
  163. warden_core-1.8.2/src/warden/analysis/domain/file_context.py +369 -0
  164. warden_core-1.8.2/src/warden/analysis/domain/models.py +275 -0
  165. warden_core-1.8.2/src/warden/analysis/domain/project_context.py +362 -0
  166. warden_core-1.8.2/src/warden/analysis/domain/quality_metrics.py +424 -0
  167. warden_core-1.8.2/src/warden/ast/__init__.py +71 -0
  168. warden_core-1.8.2/src/warden/ast/application/__init__.py +11 -0
  169. warden_core-1.8.2/src/warden/ast/application/provider_interface.py +128 -0
  170. warden_core-1.8.2/src/warden/ast/application/provider_loader.py +370 -0
  171. warden_core-1.8.2/src/warden/ast/application/provider_registry.py +231 -0
  172. warden_core-1.8.2/src/warden/ast/domain/__init__.py +29 -0
  173. warden_core-1.8.2/src/warden/ast/domain/enums.py +108 -0
  174. warden_core-1.8.2/src/warden/ast/domain/models.py +232 -0
  175. warden_core-1.8.2/src/warden/ast/providers/__init__.py +3 -0
  176. warden_core-1.8.2/src/warden/ast/providers/python_ast_provider.py +312 -0
  177. warden_core-1.8.2/src/warden/ast/providers/tree_sitter_provider.py +451 -0
  178. warden_core-1.8.2/src/warden/build_context/README.md +327 -0
  179. warden_core-1.8.2/src/warden/build_context/__init__.py +55 -0
  180. warden_core-1.8.2/src/warden/build_context/context_provider.py +205 -0
  181. warden_core-1.8.2/src/warden/build_context/models.py +244 -0
  182. warden_core-1.8.2/src/warden/build_context/parsers/__init__.py +18 -0
  183. warden_core-1.8.2/src/warden/build_context/parsers/package_json_parser.py +224 -0
  184. warden_core-1.8.2/src/warden/build_context/parsers/pyproject_parser.py +470 -0
  185. warden_core-1.8.2/src/warden/build_context/parsers/requirements_parser.py +289 -0
  186. warden_core-1.8.2/src/warden/classification/__init__.py +4 -0
  187. warden_core-1.8.2/src/warden/classification/application/__init__.py +1 -0
  188. warden_core-1.8.2/src/warden/classification/application/classification_phase.py +251 -0
  189. warden_core-1.8.2/src/warden/classification/application/classification_prompts.py +100 -0
  190. warden_core-1.8.2/src/warden/classification/application/llm_classification_phase.py +508 -0
  191. warden_core-1.8.2/src/warden/cleaning/__init__.py +13 -0
  192. warden_core-1.8.2/src/warden/cleaning/application/__init__.py +1 -0
  193. warden_core-1.8.2/src/warden/cleaning/application/analyzers/__init__.py +17 -0
  194. warden_core-1.8.2/src/warden/cleaning/application/analyzers/complexity_analyzer.py +351 -0
  195. warden_core-1.8.2/src/warden/cleaning/application/analyzers/documentation_analyzer.py +494 -0
  196. warden_core-1.8.2/src/warden/cleaning/application/analyzers/duplication_analyzer.py +343 -0
  197. warden_core-1.8.2/src/warden/cleaning/application/analyzers/lsp_diagnostics_analyzer.py +98 -0
  198. warden_core-1.8.2/src/warden/cleaning/application/analyzers/magic_number_analyzer.py +331 -0
  199. warden_core-1.8.2/src/warden/cleaning/application/analyzers/maintainability_analyzer.py +517 -0
  200. warden_core-1.8.2/src/warden/cleaning/application/analyzers/naming_analyzer.py +352 -0
  201. warden_core-1.8.2/src/warden/cleaning/application/analyzers/testability_analyzer.py +650 -0
  202. warden_core-1.8.2/src/warden/cleaning/application/cleaning_phase.py +400 -0
  203. warden_core-1.8.2/src/warden/cleaning/application/llm_cleaning_generator.py +499 -0
  204. warden_core-1.8.2/src/warden/cleaning/application/llm_suggestion_generator.py +477 -0
  205. warden_core-1.8.2/src/warden/cleaning/application/orchestrator.py +287 -0
  206. warden_core-1.8.2/src/warden/cleaning/application/pattern_analyzer.py +346 -0
  207. warden_core-1.8.2/src/warden/cleaning/domain/__init__.py +10 -0
  208. warden_core-1.8.2/src/warden/cleaning/domain/base.py +118 -0
  209. warden_core-1.8.2/src/warden/cleaning/domain/models.py +104 -0
  210. warden_core-1.8.2/src/warden/cleaning/resilience_scenario.py +56 -0
  211. warden_core-1.8.2/src/warden/cli/__init__.py +0 -0
  212. warden_core-1.8.2/src/warden/cli/commands/AI_RULES.md +37 -0
  213. warden_core-1.8.2/src/warden/cli/commands/__init__.py +0 -0
  214. warden_core-1.8.2/src/warden/cli/commands/chat.py +82 -0
  215. warden_core-1.8.2/src/warden/cli/commands/doctor.py +32 -0
  216. warden_core-1.8.2/src/warden/cli/commands/init.py +518 -0
  217. warden_core-1.8.2/src/warden/cli/commands/init_helpers.py +185 -0
  218. warden_core-1.8.2/src/warden/cli/commands/install.py +94 -0
  219. warden_core-1.8.2/src/warden/cli/commands/scan.py +264 -0
  220. warden_core-1.8.2/src/warden/cli/commands/search.py +171 -0
  221. warden_core-1.8.2/src/warden/cli/commands/serve.py +57 -0
  222. warden_core-1.8.2/src/warden/cli/commands/status.py +77 -0
  223. warden_core-1.8.2/src/warden/cli/commands/update.py +33 -0
  224. warden_core-1.8.2/src/warden/cli/commands/version.py +18 -0
  225. warden_core-1.8.2/src/warden/cli/utils.py +32 -0
  226. warden_core-1.8.2/src/warden/cli_bridge/README.md +367 -0
  227. warden_core-1.8.2/src/warden/cli_bridge/USAGE.md +272 -0
  228. warden_core-1.8.2/src/warden/cli_bridge/__init__.py +46 -0
  229. warden_core-1.8.2/src/warden/cli_bridge/bridge.py +231 -0
  230. warden_core-1.8.2/src/warden/cli_bridge/bridge_minimal.py +218 -0
  231. warden_core-1.8.2/src/warden/cli_bridge/config_manager.py +234 -0
  232. warden_core-1.8.2/src/warden/cli_bridge/handlers/__init__.py +0 -0
  233. warden_core-1.8.2/src/warden/cli_bridge/handlers/base.py +7 -0
  234. warden_core-1.8.2/src/warden/cli_bridge/handlers/config_handler.py +201 -0
  235. warden_core-1.8.2/src/warden/cli_bridge/handlers/llm_handler.py +49 -0
  236. warden_core-1.8.2/src/warden/cli_bridge/handlers/pipeline_handler.py +124 -0
  237. warden_core-1.8.2/src/warden/cli_bridge/handlers/tool_handler.py +69 -0
  238. warden_core-1.8.2/src/warden/cli_bridge/http_server.py +268 -0
  239. warden_core-1.8.2/src/warden/cli_bridge/protocol.py +231 -0
  240. warden_core-1.8.2/src/warden/cli_bridge/server.py +422 -0
  241. warden_core-1.8.2/src/warden/cli_bridge/utils.py +39 -0
  242. warden_core-1.8.2/src/warden/config/__init__.py +5 -0
  243. warden_core-1.8.2/src/warden/config/config_generator.py +378 -0
  244. warden_core-1.8.2/src/warden/config/discovery.py +151 -0
  245. warden_core-1.8.2/src/warden/config/domain/models.py +479 -0
  246. warden_core-1.8.2/src/warden/config/language_templates.py +427 -0
  247. warden_core-1.8.2/src/warden/config/project_config.py +146 -0
  248. warden_core-1.8.2/src/warden/config/project_detector.py +544 -0
  249. warden_core-1.8.2/src/warden/config/project_manager.py +227 -0
  250. warden_core-1.8.2/src/warden/config/templates/full-validation.yaml +28 -0
  251. warden_core-1.8.2/src/warden/config/templates/llm-basic.yaml +75 -0
  252. warden_core-1.8.2/src/warden/config/templates/llm-fast.yaml +53 -0
  253. warden_core-1.8.2/src/warden/config/templates/llm-production.yaml +154 -0
  254. warden_core-1.8.2/src/warden/config/templates/production-ready.yaml +44 -0
  255. warden_core-1.8.2/src/warden/config/templates/quick-scan.yaml +16 -0
  256. warden_core-1.8.2/src/warden/config/templates/security-only.yaml +20 -0
  257. warden_core-1.8.2/src/warden/config/yaml_exporter.py +238 -0
  258. warden_core-1.8.2/src/warden/config/yaml_parser.py +347 -0
  259. warden_core-1.8.2/src/warden/config/yaml_validator.py +297 -0
  260. warden_core-1.8.2/src/warden/demos/fragile_service.py +37 -0
  261. warden_core-1.8.2/src/warden/fortification/__init__.py +13 -0
  262. warden_core-1.8.2/src/warden/fortification/application/__init__.py +1 -0
  263. warden_core-1.8.2/src/warden/fortification/application/fortification_phase.py +577 -0
  264. warden_core-1.8.2/src/warden/fortification/application/fortifiers/__init__.py +13 -0
  265. warden_core-1.8.2/src/warden/fortification/application/fortifiers/error_handling.py +368 -0
  266. warden_core-1.8.2/src/warden/fortification/application/fortifiers/input_validation.py +251 -0
  267. warden_core-1.8.2/src/warden/fortification/application/fortifiers/logging.py +245 -0
  268. warden_core-1.8.2/src/warden/fortification/application/fortifiers/resource_disposal.py +258 -0
  269. warden_core-1.8.2/src/warden/fortification/application/llm_fortification_generator.py +527 -0
  270. warden_core-1.8.2/src/warden/fortification/application/orchestrator.py +227 -0
  271. warden_core-1.8.2/src/warden/fortification/domain/__init__.py +10 -0
  272. warden_core-1.8.2/src/warden/fortification/domain/base.py +62 -0
  273. warden_core-1.8.2/src/warden/fortification/domain/models.py +90 -0
  274. warden_core-1.8.2/src/warden/grpc/__init__.py +16 -0
  275. warden_core-1.8.2/src/warden/grpc/converters.py +250 -0
  276. warden_core-1.8.2/src/warden/grpc/generated/__init__.py +4 -0
  277. warden_core-1.8.2/src/warden/grpc/generated/warden_pb2.py +291 -0
  278. warden_core-1.8.2/src/warden/grpc/generated/warden_pb2_grpc.py +2295 -0
  279. warden_core-1.8.2/src/warden/grpc/infrastructure/__init__.py +17 -0
  280. warden_core-1.8.2/src/warden/grpc/infrastructure/base_file_repository.py +179 -0
  281. warden_core-1.8.2/src/warden/grpc/infrastructure/history_repository.py +168 -0
  282. warden_core-1.8.2/src/warden/grpc/infrastructure/issue_repository.py +170 -0
  283. warden_core-1.8.2/src/warden/grpc/infrastructure/suppression_repository.py +193 -0
  284. warden_core-1.8.2/src/warden/grpc/protos/warden.proto +1141 -0
  285. warden_core-1.8.2/src/warden/grpc/server.py +148 -0
  286. warden_core-1.8.2/src/warden/grpc/servicer/__init__.py +52 -0
  287. warden_core-1.8.2/src/warden/grpc/servicer/base.py +315 -0
  288. warden_core-1.8.2/src/warden/grpc/servicer/mixins/__init__.py +33 -0
  289. warden_core-1.8.2/src/warden/grpc/servicer/mixins/cleanup.py +97 -0
  290. warden_core-1.8.2/src/warden/grpc/servicer/mixins/configuration.py +206 -0
  291. warden_core-1.8.2/src/warden/grpc/servicer/mixins/file_discovery.py +263 -0
  292. warden_core-1.8.2/src/warden/grpc/servicer/mixins/fortification.py +152 -0
  293. warden_core-1.8.2/src/warden/grpc/servicer/mixins/health_status.py +66 -0
  294. warden_core-1.8.2/src/warden/grpc/servicer/mixins/issue_management.py +298 -0
  295. warden_core-1.8.2/src/warden/grpc/servicer/mixins/llm_operations.py +228 -0
  296. warden_core-1.8.2/src/warden/grpc/servicer/mixins/pipeline.py +131 -0
  297. warden_core-1.8.2/src/warden/grpc/servicer/mixins/report_generation.py +238 -0
  298. warden_core-1.8.2/src/warden/grpc/servicer/mixins/result_analysis.py +211 -0
  299. warden_core-1.8.2/src/warden/grpc/servicer/mixins/semantic_search.py +176 -0
  300. warden_core-1.8.2/src/warden/grpc/servicer/mixins/suppression.py +158 -0
  301. warden_core-1.8.2/src/warden/infrastructure/__init__.py +19 -0
  302. warden_core-1.8.2/src/warden/infrastructure/ci/__init__.py +15 -0
  303. warden_core-1.8.2/src/warden/infrastructure/ci/azure_pipelines.py +180 -0
  304. warden_core-1.8.2/src/warden/infrastructure/ci/github_actions.py +216 -0
  305. warden_core-1.8.2/src/warden/infrastructure/ci/github_cli.py +120 -0
  306. warden_core-1.8.2/src/warden/infrastructure/ci/gitlab_ci.py +175 -0
  307. warden_core-1.8.2/src/warden/infrastructure/hooks/__init__.py +15 -0
  308. warden_core-1.8.2/src/warden/infrastructure/hooks/commit_message_hook.py +165 -0
  309. warden_core-1.8.2/src/warden/infrastructure/hooks/installer.py +258 -0
  310. warden_core-1.8.2/src/warden/infrastructure/hooks/pre_commit.py +223 -0
  311. warden_core-1.8.2/src/warden/infrastructure/hooks/pre_push.py +172 -0
  312. warden_core-1.8.2/src/warden/infrastructure/installer.py +409 -0
  313. warden_core-1.8.2/src/warden/issues/__init__.py +21 -0
  314. warden_core-1.8.2/src/warden/issues/domain/__init__.py +0 -0
  315. warden_core-1.8.2/src/warden/issues/domain/enums.py +74 -0
  316. warden_core-1.8.2/src/warden/issues/domain/models.py +200 -0
  317. warden_core-1.8.2/src/warden/legacy_cli.py +264 -0
  318. warden_core-1.8.2/src/warden/llm/__init__.py +78 -0
  319. warden_core-1.8.2/src/warden/llm/config.py +336 -0
  320. warden_core-1.8.2/src/warden/llm/factory.py +95 -0
  321. warden_core-1.8.2/src/warden/llm/prompts/__init__.py +13 -0
  322. warden_core-1.8.2/src/warden/llm/prompts/analysis.py +125 -0
  323. warden_core-1.8.2/src/warden/llm/prompts/classification.py +80 -0
  324. warden_core-1.8.2/src/warden/llm/prompts/resilience.py +83 -0
  325. warden_core-1.8.2/src/warden/llm/providers/__init__.py +9 -0
  326. warden_core-1.8.2/src/warden/llm/providers/anthropic.py +152 -0
  327. warden_core-1.8.2/src/warden/llm/providers/base.py +146 -0
  328. warden_core-1.8.2/src/warden/llm/providers/deepseek.py +103 -0
  329. warden_core-1.8.2/src/warden/llm/providers/groq.py +103 -0
  330. warden_core-1.8.2/src/warden/llm/providers/openai.py +248 -0
  331. warden_core-1.8.2/src/warden/llm/providers/qwencode.py +107 -0
  332. warden_core-1.8.2/src/warden/llm/types.py +92 -0
  333. warden_core-1.8.2/src/warden/lsp/__init__.py +6 -0
  334. warden_core-1.8.2/src/warden/lsp/client.py +228 -0
  335. warden_core-1.8.2/src/warden/lsp/manager.py +87 -0
  336. warden_core-1.8.2/src/warden/lsp/symbol_graph.py +73 -0
  337. warden_core-1.8.2/src/warden/main.py +60 -0
  338. warden_core-1.8.2/src/warden/mcp/__init__.py +60 -0
  339. warden_core-1.8.2/src/warden/mcp/application/__init__.py +18 -0
  340. warden_core-1.8.2/src/warden/mcp/application/mcp_service.py +315 -0
  341. warden_core-1.8.2/src/warden/mcp/application/resource_provider.py +87 -0
  342. warden_core-1.8.2/src/warden/mcp/application/session_manager.py +65 -0
  343. warden_core-1.8.2/src/warden/mcp/application/tool_executor.py +303 -0
  344. warden_core-1.8.2/src/warden/mcp/domain/__init__.py +54 -0
  345. warden_core-1.8.2/src/warden/mcp/domain/enums.py +92 -0
  346. warden_core-1.8.2/src/warden/mcp/domain/errors.py +108 -0
  347. warden_core-1.8.2/src/warden/mcp/domain/models.py +135 -0
  348. warden_core-1.8.2/src/warden/mcp/domain/value_objects.py +111 -0
  349. warden_core-1.8.2/src/warden/mcp/entry.py +92 -0
  350. warden_core-1.8.2/src/warden/mcp/infrastructure/__init__.py +17 -0
  351. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/__init__.py +60 -0
  352. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/analysis_adapter.py +255 -0
  353. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/base_adapter.py +218 -0
  354. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/cleanup_adapter.py +186 -0
  355. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/config_adapter.py +176 -0
  356. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/discovery_adapter.py +316 -0
  357. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/fortification_adapter.py +250 -0
  358. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/health_adapter.py +153 -0
  359. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/issue_adapter.py +361 -0
  360. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/llm_adapter.py +291 -0
  361. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/pipeline_adapter.py +131 -0
  362. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/report_adapter.py +300 -0
  363. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/search_adapter.py +263 -0
  364. warden_core-1.8.2/src/warden/mcp/infrastructure/adapters/suppression_adapter.py +251 -0
  365. warden_core-1.8.2/src/warden/mcp/infrastructure/file_resource_repo.py +207 -0
  366. warden_core-1.8.2/src/warden/mcp/infrastructure/stdio_transport.py +86 -0
  367. warden_core-1.8.2/src/warden/mcp/infrastructure/tool_registry.py +235 -0
  368. warden_core-1.8.2/src/warden/mcp/infrastructure/warden_adapter.py +125 -0
  369. warden_core-1.8.2/src/warden/mcp/ports/__init__.py +16 -0
  370. warden_core-1.8.2/src/warden/mcp/ports/resource_repository.py +74 -0
  371. warden_core-1.8.2/src/warden/mcp/ports/tool_executor.py +69 -0
  372. warden_core-1.8.2/src/warden/mcp/ports/transport.py +65 -0
  373. warden_core-1.8.2/src/warden/mcp/protocol.py +276 -0
  374. warden_core-1.8.2/src/warden/mcp/resources.py +197 -0
  375. warden_core-1.8.2/src/warden/mcp/server.py +98 -0
  376. warden_core-1.8.2/src/warden/memory/__init__.py +1 -0
  377. warden_core-1.8.2/src/warden/memory/application/__init__.py +1 -0
  378. warden_core-1.8.2/src/warden/memory/application/memory_manager.py +257 -0
  379. warden_core-1.8.2/src/warden/memory/domain/__init__.py +1 -0
  380. warden_core-1.8.2/src/warden/memory/domain/models.py +103 -0
  381. warden_core-1.8.2/src/warden/pipeline/__init__.py +24 -0
  382. warden_core-1.8.2/src/warden/pipeline/application/__init__.py +8 -0
  383. warden_core-1.8.2/src/warden/pipeline/application/enhanced_orchestrator.py +447 -0
  384. warden_core-1.8.2/src/warden/pipeline/application/executors/__init__.py +3 -0
  385. warden_core-1.8.2/src/warden/pipeline/application/executors/analysis_executor.py +174 -0
  386. warden_core-1.8.2/src/warden/pipeline/application/executors/base_phase_executor.py +38 -0
  387. warden_core-1.8.2/src/warden/pipeline/application/executors/classification_executor.py +191 -0
  388. warden_core-1.8.2/src/warden/pipeline/application/executors/cleaning_executor.py +105 -0
  389. warden_core-1.8.2/src/warden/pipeline/application/executors/fortification_executor.py +93 -0
  390. warden_core-1.8.2/src/warden/pipeline/application/executors/pre_analysis_executor.py +84 -0
  391. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/__init__.py +11 -0
  392. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/frame_executor.py +587 -0
  393. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/frame_matcher.py +343 -0
  394. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/orchestrator.py +562 -0
  395. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/phase_executor.py +152 -0
  396. warden_core-1.8.2/src/warden/pipeline/application/orchestrator/result_aggregator.py +167 -0
  397. warden_core-1.8.2/src/warden/pipeline/application/phase_orchestrator.py +12 -0
  398. warden_core-1.8.2/src/warden/pipeline/domain/__init__.py +18 -0
  399. warden_core-1.8.2/src/warden/pipeline/domain/enums.py +119 -0
  400. warden_core-1.8.2/src/warden/pipeline/domain/models.py +453 -0
  401. warden_core-1.8.2/src/warden/pipeline/domain/pipeline_context.py +414 -0
  402. warden_core-1.8.2/src/warden/reports/__init__.py +5 -0
  403. warden_core-1.8.2/src/warden/reports/generator.py +344 -0
  404. warden_core-1.8.2/src/warden/reports/html_generator.py +331 -0
  405. warden_core-1.8.2/src/warden/reports/status_reporter.py +50 -0
  406. warden_core-1.8.2/src/warden/rules/__init__.py +12 -0
  407. warden_core-1.8.2/src/warden/rules/application/__init__.py +5 -0
  408. warden_core-1.8.2/src/warden/rules/application/rule_validator.py +692 -0
  409. warden_core-1.8.2/src/warden/rules/defaults/javascript/security.yaml +75 -0
  410. warden_core-1.8.2/src/warden/rules/defaults/loader.py +176 -0
  411. warden_core-1.8.2/src/warden/rules/defaults/python/security.yaml +75 -0
  412. warden_core-1.8.2/src/warden/rules/defaults/python/style.yaml +66 -0
  413. warden_core-1.8.2/src/warden/rules/domain/__init__.py +16 -0
  414. warden_core-1.8.2/src/warden/rules/domain/enums.py +43 -0
  415. warden_core-1.8.2/src/warden/rules/domain/models.py +135 -0
  416. warden_core-1.8.2/src/warden/rules/infrastructure/__init__.py +5 -0
  417. warden_core-1.8.2/src/warden/rules/infrastructure/yaml_loader.py +413 -0
  418. warden_core-1.8.2/src/warden/secrets/__init__.py +55 -0
  419. warden_core-1.8.2/src/warden/secrets/application/__init__.py +6 -0
  420. warden_core-1.8.2/src/warden/secrets/application/secret_manager.py +219 -0
  421. warden_core-1.8.2/src/warden/secrets/application/template_resolver.py +175 -0
  422. warden_core-1.8.2/src/warden/secrets/domain/__init__.py +6 -0
  423. warden_core-1.8.2/src/warden/secrets/domain/enums.py +16 -0
  424. warden_core-1.8.2/src/warden/secrets/domain/models.py +57 -0
  425. warden_core-1.8.2/src/warden/secrets/providers/__init__.py +13 -0
  426. warden_core-1.8.2/src/warden/secrets/providers/azure_keyvault_provider.py +211 -0
  427. warden_core-1.8.2/src/warden/secrets/providers/base.py +80 -0
  428. warden_core-1.8.2/src/warden/secrets/providers/dotenv_provider.py +171 -0
  429. warden_core-1.8.2/src/warden/secrets/providers/env_provider.py +67 -0
  430. warden_core-1.8.2/src/warden/semantic_search/__init__.py +97 -0
  431. warden_core-1.8.2/src/warden/semantic_search/adapters.py +224 -0
  432. warden_core-1.8.2/src/warden/semantic_search/chunker.py +252 -0
  433. warden_core-1.8.2/src/warden/semantic_search/context_retriever.py +410 -0
  434. warden_core-1.8.2/src/warden/semantic_search/embeddings.py +398 -0
  435. warden_core-1.8.2/src/warden/semantic_search/indexer.py +256 -0
  436. warden_core-1.8.2/src/warden/semantic_search/models.py +322 -0
  437. warden_core-1.8.2/src/warden/semantic_search/searcher.py +277 -0
  438. warden_core-1.8.2/src/warden/services/__init__.py +8 -0
  439. warden_core-1.8.2/src/warden/services/grpc_entry.py +62 -0
  440. warden_core-1.8.2/src/warden/services/ipc_entry.py +129 -0
  441. warden_core-1.8.2/src/warden/services/package_manager/doctor.py +206 -0
  442. warden_core-1.8.2/src/warden/services/package_manager/exceptions.py +31 -0
  443. warden_core-1.8.2/src/warden/services/package_manager/fetcher.py +396 -0
  444. warden_core-1.8.2/src/warden/services/package_manager/registry.py +112 -0
  445. warden_core-1.8.2/src/warden/shared/__init__.py +0 -0
  446. warden_core-1.8.2/src/warden/shared/domain/__init__.py +0 -0
  447. warden_core-1.8.2/src/warden/shared/domain/base_model.py +58 -0
  448. warden_core-1.8.2/src/warden/shared/domain/project_context.py +318 -0
  449. warden_core-1.8.2/src/warden/shared/domain/repository.py +202 -0
  450. warden_core-1.8.2/src/warden/shared/infrastructure/__init__.py +0 -0
  451. warden_core-1.8.2/src/warden/shared/infrastructure/config.py +113 -0
  452. warden_core-1.8.2/src/warden/shared/infrastructure/exceptions.py +65 -0
  453. warden_core-1.8.2/src/warden/shared/infrastructure/ignore_matcher.py +294 -0
  454. warden_core-1.8.2/src/warden/shared/infrastructure/logging.py +82 -0
  455. warden_core-1.8.2/src/warden/shared/logger.py +48 -0
  456. warden_core-1.8.2/src/warden/shared/services/__init__.py +181 -0
  457. warden_core-1.8.2/src/warden/shared/services/semantic_search_service.py +207 -0
  458. warden_core-1.8.2/src/warden/shared/utils/__init__.py +0 -0
  459. warden_core-1.8.2/src/warden/shared/utils/json_parser.py +72 -0
  460. warden_core-1.8.2/src/warden/shared/utils/language_utils.py +157 -0
  461. warden_core-1.8.2/src/warden/shared/utils/panel_converter.py +126 -0
  462. warden_core-1.8.2/src/warden/shared/utils/quality_calculator.py +48 -0
  463. warden_core-1.8.2/src/warden/shared/utils/yaml_merger.py +98 -0
  464. warden_core-1.8.2/src/warden/suppression/README.md +423 -0
  465. warden_core-1.8.2/src/warden/suppression/__init__.py +37 -0
  466. warden_core-1.8.2/src/warden/suppression/config_loader.py +293 -0
  467. warden_core-1.8.2/src/warden/suppression/matcher.py +355 -0
  468. warden_core-1.8.2/src/warden/suppression/models.py +252 -0
  469. warden_core-1.8.2/src/warden/templates/AI_RULES.md +40 -0
  470. warden_core-1.8.2/src/warden/validation/__init__.py +39 -0
  471. warden_core-1.8.2/src/warden/validation/application/base_universal_frame.py +90 -0
  472. warden_core-1.8.2/src/warden/validation/domain/__init__.py +61 -0
  473. warden_core-1.8.2/src/warden/validation/domain/check.py +317 -0
  474. warden_core-1.8.2/src/warden/validation/domain/enums.py +128 -0
  475. warden_core-1.8.2/src/warden/validation/domain/frame.py +351 -0
  476. warden_core-1.8.2/src/warden/validation/domain/test_results.py +334 -0
  477. warden_core-1.8.2/src/warden/validation/fix_imports.py +57 -0
  478. warden_core-1.8.2/src/warden/validation/frames/README.md +334 -0
  479. warden_core-1.8.2/src/warden/validation/frames/__init__.py +4 -0
  480. warden_core-1.8.2/src/warden/validation/frames/orphan/__init__.py +4 -0
  481. warden_core-1.8.2/src/warden/validation/frames/orphan/orphan_frame.py +146 -0
  482. warden_core-1.8.2/src/warden/validation/infrastructure/__init__.py +15 -0
  483. warden_core-1.8.2/src/warden/validation/infrastructure/check_loader.py +359 -0
  484. warden_core-1.8.2/src/warden/validation/infrastructure/frame_metadata.py +239 -0
  485. warden_core-1.8.2/src/warden/validation/infrastructure/frame_registry.py +845 -0
  486. warden_core-1.8.2/src/warden/validation/infrastructure/llm_validator.py +236 -0
  487. warden_core-1.8.2/src/warden/validation/migrate_frames.py +65 -0
  488. warden_core-1.8.2/src/warden.lock +6 -0
  489. warden_core-1.8.2/src/warden_core.egg-info/PKG-INFO +586 -0
  490. warden_core-1.8.2/src/warden_core.egg-info/SOURCES.txt +573 -0
  491. warden_core-1.8.2/src/warden_core.egg-info/dependency_links.txt +1 -0
  492. warden_core-1.8.2/src/warden_core.egg-info/entry_points.txt +2 -0
  493. warden_core-1.8.2/src/warden_core.egg-info/not-zip-safe +1 -0
  494. warden_core-1.8.2/src/warden_core.egg-info/requires.txt +30 -0
  495. warden_core-1.8.2/src/warden_core.egg-info/top_level.txt +1 -0
  496. warden_core-1.8.2/start_warden_chat.sh +80 -0
  497. warden_core-1.8.2/tests/__init__.py.bak +0 -0
  498. warden_core-1.8.2/tests/analysis/__init__.py +0 -0
  499. warden_core-1.8.2/tests/analysis/application/__init__.py +1 -0
  500. warden_core-1.8.2/tests/analysis/application/test_integrity_scanner.py +78 -0
  501. warden_core-1.8.2/tests/analysis/test_issue_tracker.py +272 -0
  502. warden_core-1.8.2/tests/analysis/test_pre_analysis.py +442 -0
  503. warden_core-1.8.2/tests/analysis/test_result_analyzer.py +313 -0
  504. warden_core-1.8.2/tests/ast_tests/__init__.py +1 -0
  505. warden_core-1.8.2/tests/ast_tests/test_provider_registry.py +247 -0
  506. warden_core-1.8.2/tests/ast_tests/test_python_ast_provider.py +230 -0
  507. warden_core-1.8.2/tests/build_context/__init__.py +1 -0
  508. warden_core-1.8.2/tests/build_context/test_context_provider.py +311 -0
  509. warden_core-1.8.2/tests/build_context/test_models.py +321 -0
  510. warden_core-1.8.2/tests/chaos/__init__.py +0 -0
  511. warden_core-1.8.2/tests/chaos/grpc/__init__.py +0 -0
  512. warden_core-1.8.2/tests/chaos/grpc/test_grpc_chaos.py +500 -0
  513. warden_core-1.8.2/tests/helpers/__init__.py +3 -0
  514. warden_core-1.8.2/tests/helpers/panel_test_utils.py +231 -0
  515. warden_core-1.8.2/tests/infrastructure/__init__.py +1 -0
  516. warden_core-1.8.2/tests/infrastructure/ci/__init__.py +1 -0
  517. warden_core-1.8.2/tests/infrastructure/ci/test_github_actions.py +168 -0
  518. warden_core-1.8.2/tests/infrastructure/hooks/__init__.py +1 -0
  519. warden_core-1.8.2/tests/infrastructure/hooks/test_installer.py +361 -0
  520. warden_core-1.8.2/tests/infrastructure/test_installer.py +251 -0
  521. warden_core-1.8.2/tests/integration/grpc_integration/__init__.py +1 -0
  522. warden_core-1.8.2/tests/integration/grpc_integration/test_grpc_integration.py +279 -0
  523. warden_core-1.8.2/tests/integration/test_context_propagation.py +89 -0
  524. warden_core-1.8.2/tests/llm/__init__.py +1 -0
  525. warden_core-1.8.2/tests/llm/manual_llm_live_simple.py +193 -0
  526. warden_core-1.8.2/tests/llm/test_config.py +77 -0
  527. warden_core-1.8.2/tests/llm/test_factory.py +61 -0
  528. warden_core-1.8.2/tests/llm/test_integration_live.py +205 -0
  529. warden_core-1.8.2/tests/llm/test_types.py +158 -0
  530. warden_core-1.8.2/tests/mcp/test_notification.py +80 -0
  531. warden_core-1.8.2/tests/phase16_verification.py +68 -0
  532. warden_core-1.8.2/tests/pipeline/__init__.py +0 -0
  533. warden_core-1.8.2/tests/pipeline/test_orchestrator.py +287 -0
  534. warden_core-1.8.2/tests/pipeline/test_orchestrator_rules.py +488 -0
  535. warden_core-1.8.2/tests/postman/README.md +240 -0
  536. warden_core-1.8.2/tests/postman/test_grpc.sh +480 -0
  537. warden_core-1.8.2/tests/rules/__init__.py +0 -0
  538. warden_core-1.8.2/tests/rules/application/__init__.py +1 -0
  539. warden_core-1.8.2/tests/rules/application/test_rule_validator.py +603 -0
  540. warden_core-1.8.2/tests/rules/domain/__init__.py +1 -0
  541. warden_core-1.8.2/tests/rules/domain/test_enums.py +51 -0
  542. warden_core-1.8.2/tests/rules/domain/test_models.py +213 -0
  543. warden_core-1.8.2/tests/rules/infrastructure/__init__.py +1 -0
  544. warden_core-1.8.2/tests/rules/infrastructure/test_yaml_loader.py +558 -0
  545. warden_core-1.8.2/tests/services/package_manager/__init__.py +0 -0
  546. warden_core-1.8.2/tests/services/package_manager/test_doctor.py +34 -0
  547. warden_core-1.8.2/tests/services/package_manager/test_fetcher.py +79 -0
  548. warden_core-1.8.2/tests/shared/utils/test_language_utils.py +36 -0
  549. warden_core-1.8.2/tests/suppression/__init__.py +1 -0
  550. warden_core-1.8.2/tests/suppression/test_config_loader.py +403 -0
  551. warden_core-1.8.2/tests/suppression/test_matcher.py +467 -0
  552. warden_core-1.8.2/tests/suppression/test_models.py +289 -0
  553. warden_core-1.8.2/tests/test_cleaning_panel_compat.py +239 -0
  554. warden_core-1.8.2/tests/test_fortification_panel_compat.py +213 -0
  555. warden_core-1.8.2/tests/test_frame_priority_conversion.py +178 -0
  556. warden_core-1.8.2/tests/test_main.py +18 -0
  557. warden_core-1.8.2/tests/test_panel_converter_utils.py +255 -0
  558. warden_core-1.8.2/tests/test_pipeline_panel_compat.py +418 -0
  559. warden_core-1.8.2/tests/test_validation_test_results.py +476 -0
  560. warden_core-1.8.2/tests/tui/__init__.py +1 -0
  561. warden_core-1.8.2/tests/tui/modals/__init__.py +1 -0
  562. warden_core-1.8.2/tests/tui/widgets/__init__.py +1 -0
  563. warden_core-1.8.2/tests/unit/grpc_testing/__init__.py +1 -0
  564. warden_core-1.8.2/tests/unit/grpc_testing/test_proto.py +355 -0
  565. warden_core-1.8.2/tests/unit/grpc_testing/test_server.py +325 -0
  566. warden_core-1.8.2/tests/validation/__init__.py +0 -0
  567. warden_core-1.8.2/tests/validation/frames/README.md +141 -0
  568. warden_core-1.8.2/tests/validation/frames/__init__.py +1 -0
  569. warden_core-1.8.2/tests/validation/frames/gitchanges/__init__.py +1 -0
  570. warden_core-1.8.2/tests/validation/frames/gitchanges/test_gitchanges_frame.py +529 -0
  571. warden_core-1.8.2/tests/validation/frames/orphan/__init__.py +1 -0
  572. warden_core-1.8.2/tests/validation/frames/orphan/test_orphan_frame.py +520 -0
  573. warden_core-1.8.2/tests/validation/frames/resilience/test_resilience_frame.py +102 -0
  574. warden_core-1.8.2/tests/validation/frames/security/__init__.py +1 -0
  575. warden_core-1.8.2/tests/validation/frames/security/test_security_frame.py +242 -0
@@ -0,0 +1,9 @@
1
+ {
2
+ "mcpServers": {
3
+ "warden": {
4
+ "command": "/Library/Frameworks/Python.framework/Versions/3.11/bin/warden",
5
+ "args": ["serve", "mcp"],
6
+ "cwd": "/Users/ibrahimcaglar/warden-core"
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,19 @@
1
+ # Warden Security Rules
2
+ # WHAT IS WARDEN?
3
+ # Warden is the AI Code Guardian for this project.
4
+ # It acts as a hard gate against vulnerabilities and technical debt.
5
+
6
+ ALLWAYS READ .warden/ai_status.md AT THE START OF A SESSION.
7
+
8
+
9
+ ## Security (Warden)
10
+ This project is protected by Warden (AI Code Guardian).
11
+ - **Status Check:** Read `.warden/ai_status.md` first.
12
+ - **Fail Protocol:** If status is FAIL, read `warden-report.sarif/json` for details. Do not proceed until fixed.
13
+ - **Action:** Run `warden scan` to verify fixes.
14
+
15
+
16
+
17
+ # Warden Agent Protocol
18
+ # IMPORTANT: You MUST follow the rules in /Users/alper/Documents/Development/Personal/warden-core/.warden/AI_RULES.md
19
+ # Run 'warden scan' to verify your work.
@@ -0,0 +1,28 @@
1
+ # Git
2
+ .git
3
+ .gitignore
4
+
5
+ # Python
6
+ __pycache__
7
+ *.py[cod]
8
+ *$py.class
9
+ *.so
10
+ .venv
11
+ venv
12
+ env
13
+ build
14
+ dist
15
+ *.egg-info
16
+ .coverage
17
+ .pytest_cache
18
+
19
+ # Node
20
+ node_modules
21
+ npm-debug.log
22
+
23
+ # Warden
24
+ .warden
25
+ .mem0
26
+ temp
27
+ examples
28
+ tests
@@ -0,0 +1,55 @@
1
+ # ============================================================================
2
+ # Warden Core - Environment Configuration
3
+ # ============================================================================
4
+
5
+ # Application
6
+ APP_NAME=warden-core
7
+ APP_ENV=development
8
+ DEBUG=true
9
+ LOG_LEVEL=INFO
10
+
11
+ # API Server
12
+ API_HOST=0.0.0.0
13
+ API_PORT=8000
14
+ API_WORKERS=4
15
+ API_RELOAD=true
16
+
17
+ # CORS
18
+ CORS_ORIGINS=["http://localhost:5173","http://localhost:3000"]
19
+
20
+ # Qdrant Vector Database
21
+ QDRANT_URL=https://your-cluster.qdrant.io
22
+ QDRANT_API_KEY=your-qdrant-api-key-here
23
+ QDRANT_COLLECTION=warden_memory
24
+ QDRANT_TIMEOUT=30
25
+
26
+ # OpenAI (for embeddings)
27
+ OPENAI_API_KEY=sk-your-openai-api-key-here
28
+ OPENAI_EMBEDDING_MODEL=text-embedding-3-small
29
+
30
+ # Azure OpenAI (alternative to OpenAI)
31
+ # AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
32
+ # AZURE_OPENAI_API_KEY=your-azure-key-here
33
+ # AZURE_OPENAI_EMBEDDING_DEPLOYMENT=text-embedding-3-small
34
+
35
+ # LLM Provider (for analysis)
36
+ LLM_PROVIDER=deepseek # Options: deepseek, openai, groq, anthropic
37
+ DEEPSEEK_API_KEY=sk-your-deepseek-api-key-here
38
+ DEEPSEEK_MODEL=deepseek-chat
39
+
40
+ # File Storage
41
+ WARDEN_DIR=.warden
42
+ ISSUES_FILE=.warden/issues.json
43
+ REPORTS_DIR=.warden/reports
44
+
45
+ # Security
46
+ SECRET_KEY=your-secret-key-for-jwt-signing-change-this-in-production
47
+ ALGORITHM=HS256
48
+ ACCESS_TOKEN_EXPIRE_MINUTES=30
49
+
50
+ # Database (Future - Phase 2)
51
+ # DATABASE_URL=postgresql://user:password@localhost:5432/warden
52
+
53
+ # Monitoring (Future)
54
+ # SENTRY_DSN=https://your-sentry-dsn
55
+ # PROMETHEUS_PORT=9090
@@ -0,0 +1,87 @@
1
+ name: Warden CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, dev ]
6
+ pull_request:
7
+ branches: [ main, dev ]
8
+ workflow_dispatch:
9
+
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ permissions:
15
+ contents: read
16
+ security-events: write
17
+ actions: read
18
+
19
+ jobs:
20
+ warden-scan:
21
+ name: Self-Scan
22
+ runs-on: ubuntu-latest
23
+
24
+ steps:
25
+ - name: Checkout Code
26
+ uses: actions/checkout@v4
27
+ with:
28
+ fetch-depth: 0
29
+
30
+ - name: Set up Python
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: '3.11'
34
+ cache: 'pip'
35
+
36
+ # Removed apt-get install as build-essential is pre-installed on ubuntu-latest
37
+ # and it saves ~1-2 minutes of setup time.
38
+
39
+ - name: Install Warden
40
+ run: |
41
+ pip install --upgrade pip
42
+ pip install -e .
43
+ # Verify installation
44
+ warden --help
45
+
46
+ - name: Cache Warden Storage
47
+ uses: actions/cache@v4
48
+ with:
49
+ path: |
50
+ .warden/memory
51
+ .warden/embeddings
52
+ key: warden-storage-${{ runner.os }}-${{ github.sha }}
53
+ restore-keys: |
54
+ warden-storage-${{ runner.os }}-
55
+
56
+ - name: Cache AI Models
57
+ uses: actions/cache@v4
58
+ with:
59
+ path: ~/.cache/huggingface
60
+ key: hf-models-${{ runner.os }}-${{ hashFiles('.warden/config.yaml') }}
61
+ restore-keys: |
62
+ hf-models-${{ runner.os }}-
63
+
64
+ - name: Run Warden Scan
65
+ # continue-on-error removed to enforce quality gate
66
+ env:
67
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
68
+ AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
69
+ AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
70
+ AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
71
+ AZURE_OPENAI_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_DEPLOYMENT_NAME }}
72
+ GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
73
+ LLM_PROVIDER: ${{ secrets.LLM_PROVIDER }}
74
+ DEFAULT_LLM_MODEL: ${{ secrets.DEFAULT_LLM_MODEL }}
75
+ run: |
76
+ # Scanning the source code of Warden itself
77
+ warden scan src/warden --format sarif --output warden.sarif --verbose
78
+
79
+
80
+
81
+ - name: Archive SARIF Artifact
82
+ uses: actions/upload-artifact@v4
83
+ if: always()
84
+ with:
85
+ name: warden-scan-results
86
+ path: warden.sarif
87
+
@@ -0,0 +1,68 @@
1
+ name: Release Warden Core
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ build-n-publish:
10
+ name: Build and publish to PyPI
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: write # For creating release
14
+ id-token: write # MANDATORY for trusted publishing
15
+
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v4
23
+ with:
24
+ python-version: "3.11"
25
+
26
+ - name: Install build dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ pip install build
30
+
31
+ - name: Build package
32
+ run: python -m build
33
+
34
+ - name: Publish to PyPI
35
+ uses: pypa/gh-action-pypi-publish@release/v1
36
+ # No password needed! Trusted Publishing (OIDC) is used.
37
+
38
+ - name: Create GitHub Release
39
+ uses: softprops/action-gh-release@v1
40
+ if: startsWith(github.ref, 'refs/tags/')
41
+ with:
42
+ files: dist/*
43
+
44
+ - name: Update Homebrew Formula
45
+ if: startsWith(github.ref, 'refs/tags/')
46
+ continue-on-error: true
47
+ env:
48
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49
+ run: |
50
+ TAG_NAME=${GITHUB_REF#refs/tags/}
51
+ TARBALL_URL="https://github.com/alperduzgun/warden-core/archive/refs/tags/${TAG_NAME}.tar.gz"
52
+
53
+ echo "Updating formula for ${TAG_NAME}..."
54
+
55
+ # Download tarball to calculate SHA256
56
+ curl -L -o release.tar.gz $TARBALL_URL
57
+ SHA256=$(sha256sum release.tar.gz | awk '{print $1}')
58
+
59
+ # Update Formula file
60
+ sed -i "s|url \".*\"|url \"${TARBALL_URL}\"|" Formula/warden.rb
61
+ sed -i "s|sha256 \".*\"|sha256 \"${SHA256}\"|" Formula/warden.rb
62
+
63
+ # Commit and Push changes
64
+ git config --local user.email "action@github.com"
65
+ git config --local user.name "GitHub Action"
66
+ git add Formula/warden.rb
67
+ git commit -m "chore: update homebrew formula for ${TAG_NAME}"
68
+ git push origin HEAD:${{ github.event.repository.default_branch }} || git push origin HEAD:main
@@ -0,0 +1,79 @@
1
+ # Claude Code & Memory files
2
+ .claude/
3
+ .mem0/
4
+ *.db
5
+ *.sqlite
6
+
7
+ # Qdrant storage
8
+ qdrant_storage/
9
+ .qdrant/
10
+
11
+ # Python
12
+ __pycache__/
13
+ *.py[cod]
14
+ *$py.class
15
+ *.so
16
+ .Python
17
+ env/
18
+ venv/
19
+ ENV/
20
+ .venv
21
+
22
+ # IDEs
23
+ .vscode/
24
+ .idea/
25
+ *.swp
26
+ *.swo
27
+ *~
28
+
29
+ # OS
30
+ .DS_Store
31
+ Thumbs.db
32
+
33
+ # Logs
34
+ *.log
35
+
36
+ # Test coverage
37
+ coverage.xml
38
+ htmlcov/
39
+ .coverage
40
+ .pytest_cache/
41
+
42
+ # Environment
43
+ .env
44
+ .env.local
45
+ .session-notes.md
46
+ mem0_cli.py
47
+ mem
48
+
49
+ # Reference repositories
50
+ temp/
51
+
52
+ # Warden runtime files
53
+ .warden/backend.pid
54
+ .warden/memory/
55
+ .warden/reports/
56
+
57
+ # Python build artifacts
58
+ *.egg-info/
59
+ build/
60
+ dist/
61
+ .agent/workflows/mem_context.md
62
+ .gitignore
63
+ .agent/workflows/mem_save.md
64
+ .agent/workflows/mem_search.md
65
+
66
+ # Warden Embeddings
67
+ .warden/embeddings/
68
+ .warden/test_embeddings/
69
+ /Users/alper/Documents/Development/Personal/warden-core/.warden.bak_20260106_023251
70
+ # Temporary
71
+ temp/
72
+ tmp/
73
+ run.log
74
+ *.log
75
+ coverage.xml
76
+ .coverage
77
+ warden-ink
78
+ warden-ipc
79
+ src/warden/_version.py
@@ -0,0 +1,8 @@
1
+ # Warden runtime files (ignored)
2
+ *.log
3
+ *.cache
4
+ .session-*
5
+ reports/
6
+
7
+ # Config is committed (team-shared)
8
+ !config.yaml
@@ -0,0 +1,37 @@
1
+ # Warden Code Verification Protocol for AI Agents
2
+
3
+ > **Role:** You are a Senior Software Engineer working in a Warden-protected codebase.
4
+ > **Constraint:** You CANNOT mark a task as complete without verifying your changes using Warden.
5
+
6
+ ## The "Verify-Loop" Protocol
7
+
8
+ You must follow this cycle for every code change:
9
+
10
+ 1. **PLAN**: Design your change.
11
+ 2. **CODE**: Implement the change.
12
+ 3. **VERIFY (Critical)**:
13
+ * Run `warden scan` in the project root.
14
+ * **IF PASS**: Commit and mark task complete.
15
+ * **IF FAIL**:
16
+ * Analyze the JSON/SARIF output.
17
+ * Fix the specific issues found.
18
+ * **REPEAT VERIFY** until pass.
19
+
20
+ ## Commands
21
+
22
+ * **Scan**: `warden scan`
23
+ * **Request Fix**: `warden request_fix --file <path> --line <num>`
24
+
25
+ ## Rules
26
+ 1. **Never Skip**: Do not "assume" your code is correct. Compilers lie; Warden does not.
27
+ 2. **Scope**: If you changed a file, you must scan it (and ideally the whole project to check dependencies).
28
+ 3. **Forbidden Patterns**:
29
+ * No `print()` in production code (Use `logger`).
30
+ * No hardcoded secrets.
31
+ * No misplaced files (Respect architectural boundaries).
32
+
33
+ ## Failure Recovery
34
+ If you cannot fix a Warden error:
35
+ 1. Explain WHY you cannot fix it.
36
+ 2. Ask the user for guidance.
37
+ 3. Do NOT suppress the error unless explicitly instructed.
@@ -0,0 +1,10 @@
1
+ # Warden Security Status
2
+ Updated: 2026-01-08 23:19:05
3
+
4
+ **Status**: ✅ PASS
5
+ **Critical Issues**: 0
6
+ **Total Issues**: 6
7
+
8
+ > [!NOTE]
9
+ > If status is FAIL, please check the full report or run `warden scan` for details.
10
+ > Do not analyze full code unless you are resolving these specific issues.
@@ -0,0 +1,126 @@
1
+ advanced:
2
+ debug: false
3
+ frame_timeout: 300
4
+ max_workers: 4
5
+ ci:
6
+ enabled: true
7
+ fail_on_blocker: true
8
+ output:
9
+ - format: markdown
10
+ path: .warden/reports/WARDEN_REPORT.md
11
+ - format: json
12
+ path: .warden/reports/warden-report.json
13
+ - format: sarif
14
+ path: .warden/reports/warden-report.sarif
15
+ frames:
16
+ - config
17
+ - security
18
+ - environmentsecurity
19
+ - resilience
20
+ - fuzz
21
+ - orphan
22
+ - env-security
23
+ - stress
24
+ - demosecurity
25
+ - architecturalconsistency
26
+ - property
27
+ frames_config:
28
+ architecturalconsistency:
29
+ enabled: true
30
+ priority: low
31
+ config:
32
+ enabled: true
33
+ demosecurity:
34
+ check_hardcoded_passwords: true
35
+ enabled: true
36
+ severity_level: high
37
+ env-security:
38
+ enabled: true
39
+ environmentsecurity:
40
+ enabled: true
41
+ orphan:
42
+ enabled: true
43
+ ignore_imports:
44
+ - annotations
45
+ - TYPE_CHECKING
46
+ ignore_private: false
47
+ ignore_test_files: true
48
+ use_llm_filter: true
49
+ resilience:
50
+ checks:
51
+ - timeout_handling
52
+ - retry_logic
53
+ - circuit_breaker
54
+ - error_recovery
55
+ enabled: true
56
+ priority: high
57
+ security:
58
+ checks:
59
+ - sql-injection
60
+ - xss
61
+ - secrets
62
+ - command-injection
63
+ - path-traversal
64
+ enabled: true
65
+ is_blocker: false
66
+ priority: critical
67
+ stress:
68
+ checks:
69
+ - api_load_testing
70
+ - async_performance
71
+ enabled: true
72
+ llm:
73
+ azure:
74
+ api_key: ${AZURE_OPENAI_API_KEY}
75
+ api_version: ${AZURE_OPENAI_API_VERSION}
76
+ deployment_name: ${AZURE_OPENAI_DEPLOYMENT_NAME}
77
+ endpoint: ${AZURE_OPENAI_ENDPOINT}
78
+ fallback:
79
+ api_key: ${GROQ_API_KEY}
80
+ provider: groq
81
+ max_retries: 2
82
+ model: gpt-4o
83
+ provider: azure_openai
84
+ timeout: 300
85
+ project:
86
+ description: Warden configuration for warden-core
87
+ detected_at: '2025-12-24T16:35:53.922859'
88
+ framework: fastapi
89
+ frameworks: []
90
+ language: python
91
+ name: warden-core
92
+ project_type: monorepo
93
+ sdk_version: '3.11'
94
+ type: microservice
95
+ semantic_search:
96
+ chroma_path: .warden/embeddings
97
+ collection_name: warden_warden_core
98
+ database: chromadb
99
+ enabled: true
100
+ max_context_tokens: 4000
101
+ model: all-MiniLM-L6-v2
102
+ provider: local
103
+ settings:
104
+ enable_analysis: true
105
+ enable_classification: true
106
+ enable_cleaning: true
107
+ enable_fortification: true
108
+ enable_pre_analysis: true
109
+ enable_validation: true
110
+ fail_fast: false
111
+ frame_timeout: 120
112
+ min_severity: high
113
+ mode: normal
114
+ pre_analysis_config:
115
+ batch_size: 10
116
+ cache_enabled: true
117
+ llm_threshold: 0.7
118
+ use_llm: true
119
+ timeout: 300
120
+
121
+ # --- Custom Rules Configuration ---
122
+ # To enable your custom rules, uncomment the following lines:
123
+ #
124
+ # custom_rules:
125
+ # - .warden/rules/my_custom_rules.yaml
126
+ #