cycode 3.25.2.dev3__tar.gz → 3.25.2.dev4__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 (230) hide show
  1. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/PKG-INFO +1 -1
  2. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/__init__.py +1 -1
  3. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/handlers.py +6 -2
  4. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/mcp_server_status.py +22 -4
  5. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/session_start_command.py +3 -1
  6. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/models.py +10 -0
  7. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/pyproject.toml +1 -1
  8. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/LICENCE +0 -0
  9. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/README.md +0 -0
  10. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/__main__.py +0 -0
  11. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/__init__.py +0 -0
  12. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/app.py +0 -0
  13. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/__init__.py +0 -0
  14. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/activation_manager.py +0 -0
  15. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
  16. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
  17. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
  18. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
  19. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
  20. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
  21. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/_skill_utils.py +0 -0
  22. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/base.py +0 -0
  23. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +0 -0
  24. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -0
  25. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/copilot.py +0 -0
  26. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
  27. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
  28. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
  29. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
  30. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/detach.py +0 -0
  31. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/guardrail_config.py +0 -0
  32. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
  33. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/policy.py +0 -0
  34. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +0 -0
  35. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
  36. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/scan/utils.py +0 -0
  37. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
  38. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
  39. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  40. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  41. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  42. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  43. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/api/__init__.py +0 -0
  44. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/api/api_command.py +0 -0
  45. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/api/openapi_spec.py +0 -0
  46. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/auth/__init__.py +0 -0
  47. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/auth/auth_command.py +0 -0
  48. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/auth/auth_common.py +0 -0
  49. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/auth/auth_manager.py +0 -0
  50. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/auth/models.py +0 -0
  51. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/configure/__init__.py +0 -0
  52. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/configure/configure_command.py +0 -0
  53. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/configure/consts.py +0 -0
  54. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/configure/messages.py +0 -0
  55. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/configure/prompts.py +0 -0
  56. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ignore/__init__.py +0 -0
  57. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  58. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/mcp/__init__.py +0 -0
  59. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  60. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/__init__.py +0 -0
  61. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/report_command.py +0 -0
  62. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  63. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/common.py +0 -0
  64. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  65. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  66. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  67. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  68. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  69. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  70. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report_import/__init__.py +0 -0
  71. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report_import/report_import_command.py +0 -0
  72. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
  73. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
  74. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/sca_options.py +0 -0
  75. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/__init__.py +0 -0
  76. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  77. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/code_scanner.py +0 -0
  78. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  79. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  80. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  81. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  82. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/path/__init__.py +0 -0
  83. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/path/path_command.py +0 -0
  84. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  85. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  86. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  87. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  88. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  89. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  90. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  91. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  92. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  93. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  94. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  95. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  96. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_command.py +0 -0
  97. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  98. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/scan/scan_result.py +0 -0
  99. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/status/__init__.py +0 -0
  100. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/status/get_cli_status.py +0 -0
  101. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/status/models.py +0 -0
  102. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/status/status_command.py +0 -0
  103. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/apps/status/version_command.py +0 -0
  104. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/cli_types.py +0 -0
  105. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/config.py +0 -0
  106. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/console.py +0 -0
  107. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/consts.py +0 -0
  108. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/__init__.py +0 -0
  109. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  110. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  111. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  112. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/handle_errors.py +0 -0
  113. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  114. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  115. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/__init__.py +0 -0
  116. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/commit_range_documents.py +0 -0
  117. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
  118. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/file_excluder.py +0 -0
  119. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/iac/__init__.py +0 -0
  120. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  121. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/models/__init__.py +0 -0
  122. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  123. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/path_documents.py +0 -0
  124. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/repository_documents.py +0 -0
  125. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/__init__.py +0 -0
  126. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  127. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  128. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  129. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  130. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  131. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  132. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  133. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py +0 -0
  134. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
  135. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  136. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
  137. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
  138. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/__init__.py +0 -0
  139. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/coverage.py +0 -0
  140. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/files.py +0 -0
  141. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/globs.py +0 -0
  142. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/names.py +0 -0
  143. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/npm/workspace/resolvers.py +0 -0
  144. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  145. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  146. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
  147. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
  148. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
  149. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/python/restore_pip_dependencies.py +0 -0
  150. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
  151. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
  152. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
  153. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  154. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  155. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  156. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  157. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  158. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/walk_ignore.py +0 -0
  159. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/files_collector/zip_documents.py +0 -0
  160. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/logger.py +0 -0
  161. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/main.py +0 -0
  162. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/models.py +0 -0
  163. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/__init__.py +0 -0
  164. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/console_printer.py +0 -0
  165. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/json_printer.py +0 -0
  166. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/printer_base.py +0 -0
  167. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/rich_printer.py +0 -0
  168. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/__init__.py +0 -0
  169. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  170. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/table.py +0 -0
  171. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/table_models.py +0 -0
  172. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/table_printer.py +0 -0
  173. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  174. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/text_printer.py +0 -0
  175. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/__init__.py +0 -0
  176. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  177. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/detection_data.py +0 -0
  178. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  179. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  180. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  181. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  182. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/sca_ossf.py +0 -0
  183. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/printers/utils/sca_policy_details.py +0 -0
  184. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/__init__.py +0 -0
  185. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/base_file_manager.py +0 -0
  186. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/config_file_manager.py +0 -0
  187. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/configuration_manager.py +0 -0
  188. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/credentials_manager.py +0 -0
  189. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/user_settings/jwt_creator.py +0 -0
  190. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/__init__.py +0 -0
  191. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/binary_utils.py +0 -0
  192. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/enum_utils.py +0 -0
  193. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/get_api_client.py +0 -0
  194. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/git_proxy.py +0 -0
  195. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/host_info.py +0 -0
  196. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/ignore_utils.py +0 -0
  197. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/jwt_utils.py +0 -0
  198. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/path_utils.py +0 -0
  199. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/progress_bar.py +0 -0
  200. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/scan_batch.py +0 -0
  201. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/scan_utils.py +0 -0
  202. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/shell_executor.py +0 -0
  203. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/string_utils.py +0 -0
  204. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/task_timer.py +0 -0
  205. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/trust_store.py +0 -0
  206. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/url_utils.py +0 -0
  207. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/version_checker.py +0 -0
  208. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cli/utils/yaml_utils.py +0 -0
  209. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/config.py +0 -0
  210. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/__init__.py +0 -0
  211. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/ai_security_manager_client.py +0 -0
  212. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
  213. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/auth_client.py +0 -0
  214. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/base_token_auth_client.py +0 -0
  215. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cli_activation_client.py +0 -0
  216. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/client_creator.py +0 -0
  217. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/config.py +0 -0
  218. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/config_dev.py +0 -0
  219. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cycode_client.py +0 -0
  220. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cycode_client_base.py +0 -0
  221. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  222. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
  223. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/cycode_token_based_client.py +0 -0
  224. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/headers.py +0 -0
  225. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/import_sbom_client.py +0 -0
  226. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/logger.py +0 -0
  227. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/report_client.py +0 -0
  228. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/scan_client.py +0 -0
  229. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/cyclient/scan_config_base.py +0 -0
  230. {cycode-3.25.2.dev3 → cycode-3.25.2.dev4}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.25.2.dev3
3
+ Version: 3.25.2.dev4
4
4
  Summary: Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning.
5
5
  License-Expression: MIT
6
6
  License-File: LICENCE
@@ -5,4 +5,4 @@ import time as _time
5
5
  # end-to-end scan duration from the moment the user actually triggered it.
6
6
  _BOOT_WALL: float = _time.time()
7
7
 
8
- __version__ = '3.25.2.dev3' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
8
+ __version__ = '3.25.2.dev4' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -327,10 +327,14 @@ def _check_mcp_server_authorization(payload: AIHookPayload, policy: dict) -> _Pr
327
327
  return None
328
328
 
329
329
  status = statuses.status_of(server_name)
330
- if not is_enforced(status):
330
+ treat_unreviewed = statuses.treat_unreviewed_as_unauthorized
331
+ if not is_enforced(status, treat_unreviewed):
331
332
  return None
332
333
 
333
- logger.debug('MCP server is not authorized, %s', {'mcp_server_name': server_name, 'status': status})
334
+ logger.debug(
335
+ 'MCP server is not authorized, %s',
336
+ {'mcp_server_name': server_name, 'status': status, 'treat_unreviewed': treat_unreviewed},
337
+ )
334
338
  return _PreScanFinding(
335
339
  block_reason=BlockReason.UNAUTHORIZED_MCP_SERVER,
336
340
  mode=get_effective_mode(mcp_config, action_key='server_action'),
@@ -14,7 +14,12 @@ from marshmallow import EXCLUDE, Schema, fields, post_load
14
14
  from cycode.cli.apps.ai_guardrails.scan.guardrail_config import DEFAULT_TTL_SECONDS
15
15
  from cycode.cli.consts import CYCODE_CONFIGURATION_DIRECTORY
16
16
  from cycode.cli.utils.path_utils import atomic_write_text, quarantine_corrupt_file
17
- from cycode.cyclient.models import McpServerAuthorizationStatus, McpServerStatus, McpServerStatusSchema
17
+ from cycode.cyclient.models import (
18
+ McpServerAuthorizationStatus,
19
+ McpServerStatus,
20
+ McpServerStatusSchema,
21
+ TrueOnlyBoolean,
22
+ )
18
23
  from cycode.logger import get_logger
19
24
 
20
25
  logger = get_logger('AI Guardrails')
@@ -34,8 +39,10 @@ def get_mcp_server_statuses_cache_path() -> Path:
34
39
  return Path.home() / CYCODE_CONFIGURATION_DIRECTORY / MCP_SERVER_STATUSES_FILE_NAME
35
40
 
36
41
 
37
- def is_enforced(status: McpServerAuthorizationStatus | None) -> bool:
42
+ def is_enforced(status: McpServerAuthorizationStatus | None, treat_unreviewed: bool) -> bool:
38
43
  """``status`` is None when the platform never saw the server."""
44
+ if treat_unreviewed:
45
+ return status != McpServerAuthorizationStatus.AUTHORIZED
39
46
  return status == McpServerAuthorizationStatus.UNAUTHORIZED
40
47
 
41
48
 
@@ -45,6 +52,7 @@ class McpServerStatuses:
45
52
  fetched_at: float
46
53
  tenant_id: str | None = None
47
54
  ttl_seconds: float = DEFAULT_TTL_SECONDS
55
+ treat_unreviewed_as_unauthorized: bool = False
48
56
  _by_alias: dict = field(init=False, repr=False)
49
57
 
50
58
  def __post_init__(self) -> None:
@@ -70,6 +78,7 @@ class McpServerStatusesSchema(Schema):
70
78
  fetched_at = fields.Float(required=True)
71
79
  tenant_id = fields.String(allow_none=True, load_default=None)
72
80
  ttl_seconds = fields.Float(allow_none=True, load_default=None)
81
+ treat_unreviewed_as_unauthorized = TrueOnlyBoolean(data_key='should_treat_unreviewed_as_unauthorized')
73
82
 
74
83
  @post_load
75
84
  def build_dto(self, data: dict[str, Any], **_) -> McpServerStatuses:
@@ -78,10 +87,19 @@ class McpServerStatusesSchema(Schema):
78
87
 
79
88
 
80
89
  def save_mcp_server_statuses(
81
- servers: list[McpServerStatus], tenant_id: str | None, ttl_seconds: float = DEFAULT_TTL_SECONDS
90
+ servers: list[McpServerStatus],
91
+ tenant_id: str | None,
92
+ ttl_seconds: float = DEFAULT_TTL_SECONDS,
93
+ treat_unreviewed_as_unauthorized: bool = False,
82
94
  ) -> None:
83
95
  path = get_mcp_server_statuses_cache_path()
84
- statuses = McpServerStatuses(servers=servers, fetched_at=time.time(), tenant_id=tenant_id, ttl_seconds=ttl_seconds)
96
+ statuses = McpServerStatuses(
97
+ servers=servers,
98
+ fetched_at=time.time(),
99
+ tenant_id=tenant_id,
100
+ ttl_seconds=ttl_seconds,
101
+ treat_unreviewed_as_unauthorized=treat_unreviewed_as_unauthorized,
102
+ )
85
103
  try:
86
104
  path.parent.mkdir(parents=True, exist_ok=True)
87
105
  atomic_write_text(str(path), json.dumps(McpServerStatusesSchema().dump(statuses)))
@@ -129,7 +129,9 @@ def _report_session_context(
129
129
  _save_report_cache(digest, tenant_id)
130
130
  if response.mcp_servers is not None:
131
131
  ttl_seconds = config.ttl_seconds if config is not None else DEFAULT_TTL_SECONDS
132
- save_mcp_server_statuses(response.mcp_servers, tenant_id, ttl_seconds)
132
+ save_mcp_server_statuses(
133
+ response.mcp_servers, tenant_id, ttl_seconds, response.should_treat_unreviewed_as_unauthorized
134
+ )
133
135
  logger.debug('MCP server statuses cache updated')
134
136
  except Exception as e:
135
137
  logger.debug('Failed to report session context', exc_info=e)
@@ -601,6 +601,13 @@ class McpServerAuthorizationStatusField(fields.Field):
601
601
  return McpServerAuthorizationStatus.parse(None if value is missing else value)
602
602
 
603
603
 
604
+ class TrueOnlyBoolean(fields.Boolean):
605
+ """Anything but a literal true reads as False, so a malformed flag never tightens enforcement."""
606
+
607
+ def deserialize(self, value: object, *_, **__) -> bool:
608
+ return value is True
609
+
610
+
604
611
  @dataclass
605
612
  class McpServerStatus:
606
613
  alias: str | None = None
@@ -625,6 +632,8 @@ class McpServerStatusSchema(Schema):
625
632
  class SessionContextResponse:
626
633
  # None when the response carries no (or malformed) MCP server statuses.
627
634
  mcp_servers: list[McpServerStatus] | None = None
635
+ # Strict mode: Unreviewed servers count as Unauthorized.
636
+ should_treat_unreviewed_as_unauthorized: bool = False
628
637
 
629
638
 
630
639
  class SessionContextResponseSchema(Schema):
@@ -632,6 +641,7 @@ class SessionContextResponseSchema(Schema):
632
641
  unknown = EXCLUDE
633
642
 
634
643
  mcp_servers = fields.List(fields.Nested(McpServerStatusSchema), allow_none=True, load_default=None)
644
+ should_treat_unreviewed_as_unauthorized = TrueOnlyBoolean()
635
645
 
636
646
  @post_load
637
647
  def build_dto(self, data: dict[str, Any], **_) -> SessionContextResponse:
@@ -20,7 +20,7 @@ classifiers = [
20
20
  "Programming Language :: Python :: 3.14",
21
21
  ]
22
22
  dynamic = ["dependencies"]
23
- version = "3.25.2.dev3"
23
+ version = "3.25.2.dev4"
24
24
 
25
25
  [project.scripts]
26
26
  cycode = "cycode.cli.app:app"
File without changes
File without changes