secure-code-agent 0.12.8__tar.gz → 0.12.9__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.
- {secure_code_agent-0.12.8/src/secure_code_agent.egg-info → secure_code_agent-0.12.9}/PKG-INFO +2 -2
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/README.md +1 -1
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9/src/secure_code_agent.egg-info}/PKG-INFO +2 -2
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/__init__.py +1 -1
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/triage.py +20 -1
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/LICENSE +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/pyproject.toml +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/setup.cfg +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/SOURCES.txt +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/dependency_links.txt +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/entry_points.txt +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/requires.txt +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/top_level.txt +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/baseline.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/capabilities.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/cli.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/config.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/data/semgrep-offline.yaml +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/demo.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/findings.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/git_tools.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/history.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/instructions.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/mcp_server.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/pillar.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/practice.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/remediation.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/renderers.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/ruleset.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/sarif.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanner_status.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/__init__.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/bandit_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/base.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/builtin_rules.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/checkov_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/floor.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/gitleaks_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/gosec_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/hadolint_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/njsscan_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/npm_audit_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/osv_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/pip_audit_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/rubocop_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/scorecard_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/semgrep_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/trivy_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/trufflehog_scanner.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scoring.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/standards.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/suppressions.py +0 -0
- {secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/verify.py +0 -0
{secure_code_agent-0.12.8/src/secure_code_agent.egg-info → secure_code_agent-0.12.9}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: secure-code-agent
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.9
|
|
4
4
|
Summary: Deterministic security gate + bounded AI remediation prompt generator. NIST SSDF / OWASP ASVS / CWE Top 25 anchored.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -515,7 +515,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
515
515
|
## GitHub Action
|
|
516
516
|
|
|
517
517
|
```yaml
|
|
518
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
518
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.9
|
|
519
519
|
with:
|
|
520
520
|
config: secure-code-agent.json
|
|
521
521
|
fail-on-gate: true
|
|
@@ -467,7 +467,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
467
467
|
## GitHub Action
|
|
468
468
|
|
|
469
469
|
```yaml
|
|
470
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
470
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.9
|
|
471
471
|
with:
|
|
472
472
|
config: secure-code-agent.json
|
|
473
473
|
fail-on-gate: true
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9/src/secure_code_agent.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: secure-code-agent
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.9
|
|
4
4
|
Summary: Deterministic security gate + bounded AI remediation prompt generator. NIST SSDF / OWASP ASVS / CWE Top 25 anchored.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -515,7 +515,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
515
515
|
## GitHub Action
|
|
516
516
|
|
|
517
517
|
```yaml
|
|
518
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
518
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.9
|
|
519
519
|
with:
|
|
520
520
|
config: secure-code-agent.json
|
|
521
521
|
fail-on-gate: true
|
|
@@ -30,6 +30,7 @@ import re
|
|
|
30
30
|
from collections.abc import Iterable
|
|
31
31
|
from pathlib import Path
|
|
32
32
|
|
|
33
|
+
from secure_code_audit.capabilities import AXIS_PREFIX
|
|
33
34
|
from secure_code_audit.findings import Category, Confidence, Finding, Severity
|
|
34
35
|
|
|
35
36
|
|
|
@@ -75,6 +76,24 @@ LOW_PRECISION: dict[str, str] = {
|
|
|
75
76
|
_ACCEPT_AXES = frozenset({"test tree", "documentation"})
|
|
76
77
|
|
|
77
78
|
|
|
79
|
+
def _is_accepted_axis(axis: str) -> bool:
|
|
80
|
+
"""Is this an axis whose findings are not patch targets?
|
|
81
|
+
|
|
82
|
+
The named pair, plus every declared capability. A declaration says the
|
|
83
|
+
finding is the project's architecture being exercised (D24) — the
|
|
84
|
+
scorer already routes it off the code condition and the report already
|
|
85
|
+
lists it as reported-not-scored. Nominating the same finding in §FIX
|
|
86
|
+
asks an agent to change the thing the operator declared.
|
|
87
|
+
|
|
88
|
+
That is what shipped. `capabilities` reached the scorer and the
|
|
89
|
+
renderer and never reached here, so one run said "no findings" in the
|
|
90
|
+
pillar and "68 to fix" in the work order — the same 68, all of them
|
|
91
|
+
`subprocess` calls in a tool whose purpose is running subprocesses
|
|
92
|
+
(D28).
|
|
93
|
+
"""
|
|
94
|
+
return axis in _ACCEPT_AXES or axis.startswith(AXIS_PREFIX)
|
|
95
|
+
|
|
96
|
+
|
|
78
97
|
#: Bandit quotes the offending value: `Possible hardcoded password: 'x'`.
|
|
79
98
|
_QUOTED_VALUE = re.compile(r"password: '(.*)'\s*$")
|
|
80
99
|
|
|
@@ -233,7 +252,7 @@ def tier_of(finding: Finding, axis: str = "primary", root: Path | None = None) -
|
|
|
233
252
|
genuine hardcoded key in a test fixture is still deliberate, and a
|
|
234
253
|
high-confidence rule firing there does not make it a patch target.
|
|
235
254
|
"""
|
|
236
|
-
if axis
|
|
255
|
+
if _is_accepted_axis(axis):
|
|
237
256
|
return Tier.ACCEPT
|
|
238
257
|
if finding.rule_id in LOW_PRECISION:
|
|
239
258
|
# Unless the value itself gives it away.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/requires.txt
RENAMED
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_agent.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanner_status.py
RENAMED
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/floor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.8 → secure_code_agent-0.12.9}/src/secure_code_audit/scanners/osv_scanner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|