praxis-sec 1.2.1 → 1.2.4
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.
- package/README.md +84 -115
- package/ai-defense/cost-protection.md +6 -0
- package/ai-defense/llm-security-checklist.md +6 -0
- package/ai-defense/system-prompt-armor.md +7 -1
- package/assets/praxis-architecture.svg +304 -0
- package/assets/praxis-logo.svg +38 -0
- package/checklists/launch-day.md +6 -7
- package/cli/agents/agent-telemetry-agent.js +2 -0
- package/cli/agents/api-fuzzer.js +2 -2
- package/cli/agents/git-history-scanner.js +14 -15
- package/cli/agents/html-reporter.js +9 -8
- package/cli/agents/mcp-security-agent.js +600 -594
- package/cli/agents/memory-poisoning-agent.js +1 -5
- package/cli/agents/orchestrator.js +375 -360
- package/cli/commands/agent-fix.js +3 -1
- package/cli/commands/audit.js +1272 -1228
- package/cli/commands/autofix.js +32 -13
- package/cli/commands/baseline.js +4 -2
- package/cli/commands/benchmark.js +2 -1
- package/cli/commands/ci.js +12 -8
- package/cli/commands/diff.js +2 -1
- package/cli/commands/env-audit.js +4 -2
- package/cli/commands/fix.js +2 -1
- package/cli/commands/legal.js +2 -1
- package/cli/commands/mcp.js +54 -51
- package/cli/commands/openclaw.js +3 -6
- package/cli/commands/red-team.js +2 -1
- package/cli/commands/remediate.js +2 -1
- package/cli/commands/rotate.js +2 -1
- package/cli/commands/scan-mcp.js +20 -9
- package/cli/commands/scan-standard.js +3 -6
- package/cli/commands/scan.js +15 -7
- package/cli/commands/score.js +2 -1
- package/cli/commands/vibe-check.js +4 -2
- package/cli/commands/watch.js +8 -6
- package/cli/core/glob.js +7 -5
- package/cli/core/output/json.js +56 -48
- package/cli/core/paths.js +91 -0
- package/cli/core/web/jobs.js +2 -0
- package/cli/data/documented-secret-examples.json +14 -0
- package/cli/utils/cache-manager.js +2 -1
- package/cli/utils/entropy.js +19 -0
- package/cli/utils/hermes-tool-registry.js +11 -9
- package/configs/firebase/security-checklist.md +3 -3
- package/configs/supabase/security-checklist.md +19 -21
- package/docs/RELEASE-1.2.4.md +85 -0
- package/docs/RELEASING.md +51 -0
- package/docs/THIRD_PARTY_NOTICES.md +8 -0
- package/docs/THREAT_INTEL.md +4 -2
- package/docs/USAGE.md +97 -76
- package/package.json +6 -4
- package/snippets/README.md +6 -0
- package/snippets/auth/jwt-checklist.md +14 -13
|
@@ -130,6 +130,7 @@ export async function agentFixCommand(targetPath = '.', options = {}) {
|
|
|
130
130
|
let scanResult;
|
|
131
131
|
try {
|
|
132
132
|
scanResult = await auditCommand(root, { _agenticInner: true, deep: false, deps: false, noAi: true });
|
|
133
|
+
if (!scanResult || scanResult.scanComplete !== true) throw new Error('Initial scan incomplete; refusing to generate fixes');
|
|
133
134
|
} catch (err) {
|
|
134
135
|
scanSpinner.fail('Scan failed');
|
|
135
136
|
output.error(err.message);
|
|
@@ -734,7 +735,7 @@ async function rescanForFile(root, filePath, options) {
|
|
|
734
735
|
if (!Array.isArray(report.findings)) throw new Error('Sandbox re-scan produced no finding list');
|
|
735
736
|
return report;
|
|
736
737
|
}
|
|
737
|
-
return auditCommand(root, { _agenticInner: true, deep: false, deps: false, noAi: true });
|
|
738
|
+
return auditCommand(root, { _agenticInner: true, json: true, deep: false, deps: false, noAi: true });
|
|
738
739
|
}
|
|
739
740
|
|
|
740
741
|
export async function verifyFile(root, filePath, originalFindings, options = {}) {
|
|
@@ -799,6 +800,7 @@ export async function verifyFile(root, filePath, originalFindings, options = {})
|
|
|
799
800
|
|
|
800
801
|
// Tier 3 — re-scan: original findings must be gone from the fixed file
|
|
801
802
|
const result = await rescanForFile(root, filePath, options);
|
|
803
|
+
if (!result || result.scanComplete !== true) throw new Error('Verification scan incomplete; findings cannot be treated as resolved');
|
|
802
804
|
const remaining = (result.findings ?? []).filter(f => {
|
|
803
805
|
const fPath = path.resolve(root, f.file);
|
|
804
806
|
const targetPath = path.resolve(root, filePath);
|