cycode 3.17.3.dev3__tar.gz → 3.17.3.dev5__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 (216) hide show
  1. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/PKG-INFO +1 -1
  2. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/__init__.py +1 -1
  3. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/base.py +9 -0
  4. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +10 -0
  5. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/handlers.py +6 -1
  6. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +8 -0
  7. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/file_excluder.py +2 -2
  8. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/pyproject.toml +1 -1
  9. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/LICENCE +0 -0
  10. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/README.md +0 -0
  11. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/__main__.py +0 -0
  12. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/__init__.py +0 -0
  13. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/app.py +0 -0
  14. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/__init__.py +0 -0
  15. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/activation_manager.py +0 -0
  16. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
  17. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
  18. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
  19. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
  20. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
  21. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
  22. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -0
  23. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/copilot.py +0 -0
  24. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
  25. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
  26. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
  27. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
  28. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
  29. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/policy.py +0 -0
  30. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
  31. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/scan/utils.py +0 -0
  32. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/session_start_command.py +0 -0
  33. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
  34. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
  35. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  36. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  37. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  38. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  39. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/api/__init__.py +0 -0
  40. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/api/api_command.py +0 -0
  41. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/api/openapi_spec.py +0 -0
  42. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/auth/__init__.py +0 -0
  43. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/auth/auth_command.py +0 -0
  44. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/auth/auth_common.py +0 -0
  45. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/auth/auth_manager.py +0 -0
  46. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/auth/models.py +0 -0
  47. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/configure/__init__.py +0 -0
  48. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/configure/configure_command.py +0 -0
  49. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/configure/consts.py +0 -0
  50. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/configure/messages.py +0 -0
  51. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/configure/prompts.py +0 -0
  52. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ignore/__init__.py +0 -0
  53. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  54. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/mcp/__init__.py +0 -0
  55. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  56. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/__init__.py +0 -0
  57. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/report_command.py +0 -0
  58. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  59. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/common.py +0 -0
  60. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  61. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  62. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  63. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  64. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  65. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  66. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report_import/__init__.py +0 -0
  67. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report_import/report_import_command.py +0 -0
  68. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
  69. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
  70. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/sca_options.py +0 -0
  71. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/__init__.py +0 -0
  72. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  73. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/code_scanner.py +0 -0
  74. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  75. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  76. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  77. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  78. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/path/__init__.py +0 -0
  79. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/path/path_command.py +0 -0
  80. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  81. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  82. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  83. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  84. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  85. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  86. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  87. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  88. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  89. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  90. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  91. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  92. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_command.py +0 -0
  93. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  94. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/scan/scan_result.py +0 -0
  95. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/status/__init__.py +0 -0
  96. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/status/get_cli_status.py +0 -0
  97. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/status/models.py +0 -0
  98. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/status/status_command.py +0 -0
  99. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/apps/status/version_command.py +0 -0
  100. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/cli_types.py +0 -0
  101. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/config.py +0 -0
  102. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/console.py +0 -0
  103. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/consts.py +0 -0
  104. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/__init__.py +0 -0
  105. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  106. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  107. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  108. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/handle_errors.py +0 -0
  109. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  110. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  111. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/__init__.py +0 -0
  112. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/commit_range_documents.py +0 -0
  113. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
  114. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/iac/__init__.py +0 -0
  115. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  116. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/models/__init__.py +0 -0
  117. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  118. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/path_documents.py +0 -0
  119. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/repository_documents.py +0 -0
  120. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/__init__.py +0 -0
  121. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  122. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  123. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  124. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  125. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  126. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  127. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  128. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py +0 -0
  129. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
  130. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  131. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
  132. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
  133. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  134. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  135. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
  136. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
  137. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
  138. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
  139. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
  140. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
  141. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  142. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  143. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  144. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  145. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  146. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/walk_ignore.py +0 -0
  147. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/files_collector/zip_documents.py +0 -0
  148. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/logger.py +0 -0
  149. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/main.py +0 -0
  150. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/models.py +0 -0
  151. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/__init__.py +0 -0
  152. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/console_printer.py +0 -0
  153. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/json_printer.py +0 -0
  154. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/printer_base.py +0 -0
  155. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/rich_printer.py +0 -0
  156. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/__init__.py +0 -0
  157. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  158. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/table.py +0 -0
  159. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/table_models.py +0 -0
  160. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/table_printer.py +0 -0
  161. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  162. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/text_printer.py +0 -0
  163. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/__init__.py +0 -0
  164. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  165. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/detection_data.py +0 -0
  166. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  167. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  168. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  169. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  170. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/__init__.py +0 -0
  171. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/base_file_manager.py +0 -0
  172. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/config_file_manager.py +0 -0
  173. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/configuration_manager.py +0 -0
  174. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/credentials_manager.py +0 -0
  175. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/user_settings/jwt_creator.py +0 -0
  176. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/__init__.py +0 -0
  177. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/binary_utils.py +0 -0
  178. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/enum_utils.py +0 -0
  179. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/get_api_client.py +0 -0
  180. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/git_proxy.py +0 -0
  181. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/host_info.py +0 -0
  182. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/ignore_utils.py +0 -0
  183. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/jwt_utils.py +0 -0
  184. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/path_utils.py +0 -0
  185. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/progress_bar.py +0 -0
  186. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/scan_batch.py +0 -0
  187. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/scan_utils.py +0 -0
  188. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/shell_executor.py +0 -0
  189. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/string_utils.py +0 -0
  190. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/task_timer.py +0 -0
  191. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/url_utils.py +0 -0
  192. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/version_checker.py +0 -0
  193. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cli/utils/yaml_utils.py +0 -0
  194. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/config.py +0 -0
  195. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/__init__.py +0 -0
  196. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/ai_security_manager_client.py +0 -0
  197. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
  198. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/auth_client.py +0 -0
  199. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/base_token_auth_client.py +0 -0
  200. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cli_activation_client.py +0 -0
  201. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/client_creator.py +0 -0
  202. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/config.py +0 -0
  203. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/config_dev.py +0 -0
  204. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cycode_client.py +0 -0
  205. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cycode_client_base.py +0 -0
  206. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  207. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
  208. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/cycode_token_based_client.py +0 -0
  209. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/headers.py +0 -0
  210. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/import_sbom_client.py +0 -0
  211. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/logger.py +0 -0
  212. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/models.py +0 -0
  213. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/report_client.py +0 -0
  214. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/scan_client.py +0 -0
  215. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/cyclient/scan_config_base.py +0 -0
  216. {cycode-3.17.3.dev3 → cycode-3.17.3.dev5}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.17.3.dev3
3
+ Version: 3.17.3.dev5
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.17.3.dev3' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
8
+ __version__ = '3.17.3.dev5' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -157,6 +157,15 @@ class IDE(ABC):
157
157
  event (e.g. Cursor reading Claude Code hooks from ~/.claude/settings.json).
158
158
  """
159
159
 
160
+ def is_synthetic_prompt(self, raw_payload: dict) -> bool:
161
+ """Return True when a prompt event carries IDE/harness-generated content
162
+ rather than text the user typed.
163
+
164
+ Synthetic prompts are skipped without scanning or telemetry.
165
+ Default: False. Override for IDEs that inject synthetic user turns.
166
+ """
167
+ return False
168
+
160
169
  @abstractmethod
161
170
  def parse_hook_payload(self, raw_payload: dict) -> AIHookPayload:
162
171
  """Normalize a raw stdin payload into the canonical ``AIHookPayload``."""
@@ -22,6 +22,10 @@ logger = get_logger('AI Guardrails Claude Code')
22
22
 
23
23
  _CLAUDE_CODE_EVENT_NAMES = frozenset({'UserPromptSubmit', 'PreToolUse'})
24
24
 
25
+ # When a fork/subagent completes, the harness injects its result into the parent
26
+ # session as a synthetic user turn, which fires UserPromptSubmit.
27
+ _SYNTHETIC_PROMPT_PREFIXES = ('<task-notification>',)
28
+
25
29
  _USER_HOOKS_DIR = Path.home() / '.claude'
26
30
  _HOOKS_FILE_NAME = 'settings.json'
27
31
  _REPO_SUBDIR = '.claude'
@@ -284,6 +288,12 @@ class ClaudeCode(IDE):
284
288
  # processed as Claude Code events.
285
289
  return raw_payload.get('hook_event_name', '') in _CLAUDE_CODE_EVENT_NAMES and 'transcript_path' in raw_payload
286
290
 
291
+ def is_synthetic_prompt(self, raw_payload: dict) -> bool:
292
+ if raw_payload.get('hook_event_name') != 'UserPromptSubmit':
293
+ return False
294
+ prompt = raw_payload.get('prompt') or ''
295
+ return prompt.lstrip().startswith(_SYNTHETIC_PROMPT_PREFIXES)
296
+
287
297
  def parse_hook_payload(self, raw_payload: dict) -> AIHookPayload:
288
298
  hook_event_name = raw_payload.get('hook_event_name', '')
289
299
  tool_name = raw_payload.get('tool_name', '')
@@ -26,6 +26,7 @@ from cycode.cli.apps.ai_guardrails.scan.utils import is_denied_path, truncate_ut
26
26
  from cycode.cli.apps.scan.code_scanner import _get_scan_documents_thread_func
27
27
  from cycode.cli.apps.scan.scan_parameters import get_scan_parameters
28
28
  from cycode.cli.cli_types import ScanTypeOption, SeverityOption
29
+ from cycode.cli.files_collector.file_excluder import is_path_configured_in_exclusions
29
30
  from cycode.cli.models import Document
30
31
  from cycode.cli.utils.progress_bar import DummyProgressBar, ScanProgressBarSection
31
32
  from cycode.cli.utils.scan_utils import build_violation_summary
@@ -337,7 +338,7 @@ def _perform_scan(
337
338
 
338
339
  scan_id = local_scan_result.scan_id
339
340
 
340
- if local_scan_result.detections_count > 0:
341
+ if local_scan_result.issue_detected:
341
342
  violation_summary = build_violation_summary([local_scan_result])
342
343
  return violation_summary, scan_id
343
344
 
@@ -360,6 +361,10 @@ def _scan_path_for_secrets(ctx: typer.Context, file_path: str, policy: dict) ->
360
361
  if not file_path or not os.path.isfile(file_path):
361
362
  return None, None
362
363
 
364
+ if is_path_configured_in_exclusions(str(ScanTypeOption.SECRET), os.path.abspath(file_path)):
365
+ logger.debug('Skipping scan; the path is in the ignore paths list, %s', {'file_path': file_path})
366
+ return None, None
367
+
363
368
  max_bytes = get_policy_value(policy, 'secrets', 'max_bytes', default=200000)
364
369
 
365
370
  with open(file_path, encoding='utf-8', errors='replace') as f:
@@ -116,6 +116,14 @@ def scan_command(
116
116
  output_json(ide_integration.build_hook_response(HookDecision.allow(AiHookEventType.PROMPT)))
117
117
  return
118
118
 
119
+ # Fork/subagent completions arrive as synthetic user turns (e.g. Claude Code's
120
+ # <task-notification>); they are agent-generated, not user prompts - skip before
121
+ # parse_hook_payload, which reads the transcript and IDE config from disk.
122
+ if ide_integration.is_synthetic_prompt(payload):
123
+ logger.debug('Synthetic prompt detected, skipping scan')
124
+ output_json(ide_integration.build_hook_response(HookDecision.allow(AiHookEventType.PROMPT)))
125
+ return
126
+
119
127
  unified_payload = ide_integration.parse_hook_payload(payload)
120
128
  event_name = unified_payload.event_name
121
129
  logger.debug(
@@ -25,7 +25,7 @@ def _is_subpath_of_cycode_configuration_folder(filename: str) -> bool:
25
25
  )
26
26
 
27
27
 
28
- def _is_path_configured_in_exclusions(scan_type: str, file_path: str) -> bool:
28
+ def is_path_configured_in_exclusions(scan_type: str, file_path: str) -> bool:
29
29
  exclusions_by_path = configuration_manager.get_exclusions_by_scan_type(scan_type).get(
30
30
  consts.EXCLUSIONS_BY_PATH_SECTION_NAME, []
31
31
  )
@@ -106,7 +106,7 @@ class Excluder:
106
106
  )
107
107
  return False
108
108
 
109
- if _is_path_configured_in_exclusions(scan_type, filename):
109
+ if is_path_configured_in_exclusions(scan_type, filename):
110
110
  logger.debug(
111
111
  'The document is irrelevant because its path is in the ignore paths list, %s', {'filename': filename}
112
112
  )
@@ -21,7 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.14",
22
22
  ]
23
23
  dynamic = ["dependencies"]
24
- version = "3.17.3.dev3"
24
+ version = "3.17.3.dev5"
25
25
 
26
26
  [project.scripts]
27
27
  cycode = "cycode.cli.app:app"
File without changes
File without changes