vaspera 2.5.0
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/CHANGELOG.md +184 -0
- package/LICENSE +21 -0
- package/README.md +809 -0
- package/dist/__tests__/integration/certification-flow.test.d.ts +5 -0
- package/dist/__tests__/integration/certification-flow.test.d.ts.map +1 -0
- package/dist/__tests__/integration/certification-flow.test.js +245 -0
- package/dist/__tests__/integration/certification-flow.test.js.map +1 -0
- package/dist/__tests__/integration/commands.test.d.ts +5 -0
- package/dist/__tests__/integration/commands.test.d.ts.map +1 -0
- package/dist/__tests__/integration/commands.test.js +93 -0
- package/dist/__tests__/integration/commands.test.js.map +1 -0
- package/dist/action/diff-mode.d.ts +34 -0
- package/dist/action/diff-mode.d.ts.map +1 -0
- package/dist/action/diff-mode.js +201 -0
- package/dist/action/diff-mode.js.map +1 -0
- package/dist/action/diff-mode.test.d.ts +5 -0
- package/dist/action/diff-mode.test.d.ts.map +1 -0
- package/dist/action/diff-mode.test.js +162 -0
- package/dist/action/diff-mode.test.js.map +1 -0
- package/dist/action/index.d.ts +10 -0
- package/dist/action/index.d.ts.map +1 -0
- package/dist/action/index.js +231 -0
- package/dist/action/index.js.map +1 -0
- package/dist/action/pr-comment.d.ts +30 -0
- package/dist/action/pr-comment.d.ts.map +1 -0
- package/dist/action/pr-comment.js +301 -0
- package/dist/action/pr-comment.js.map +1 -0
- package/dist/action/pr-comment.test.d.ts +5 -0
- package/dist/action/pr-comment.test.d.ts.map +1 -0
- package/dist/action/pr-comment.test.js +189 -0
- package/dist/action/pr-comment.test.js.map +1 -0
- package/dist/action/sarif-upload.d.ts +104 -0
- package/dist/action/sarif-upload.d.ts.map +1 -0
- package/dist/action/sarif-upload.js +188 -0
- package/dist/action/sarif-upload.js.map +1 -0
- package/dist/action/sarif-upload.test.d.ts +5 -0
- package/dist/action/sarif-upload.test.d.ts.map +1 -0
- package/dist/action/sarif-upload.test.js +206 -0
- package/dist/action/sarif-upload.test.js.map +1 -0
- package/dist/action/types.d.ts +104 -0
- package/dist/action/types.d.ts.map +1 -0
- package/dist/action/types.js +33 -0
- package/dist/action/types.js.map +1 -0
- package/dist/action/types.test.d.ts +5 -0
- package/dist/action/types.test.d.ts.map +1 -0
- package/dist/action/types.test.js +79 -0
- package/dist/action/types.test.js.map +1 -0
- package/dist/agents/agent-integrity.d.ts +111 -0
- package/dist/agents/agent-integrity.d.ts.map +1 -0
- package/dist/agents/agent-integrity.js +308 -0
- package/dist/agents/agent-integrity.js.map +1 -0
- package/dist/agents/agent-privacy.d.ts +68 -0
- package/dist/agents/agent-privacy.d.ts.map +1 -0
- package/dist/agents/agent-privacy.js +345 -0
- package/dist/agents/agent-privacy.js.map +1 -0
- package/dist/agents/exploit-chain.d.ts +64 -0
- package/dist/agents/exploit-chain.d.ts.map +1 -0
- package/dist/agents/exploit-chain.js +477 -0
- package/dist/agents/exploit-chain.js.map +1 -0
- package/dist/agents/exploit-chain.test.d.ts +5 -0
- package/dist/agents/exploit-chain.test.d.ts.map +1 -0
- package/dist/agents/exploit-chain.test.js +455 -0
- package/dist/agents/exploit-chain.test.js.map +1 -0
- package/dist/agents/index.d.ts +14 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +19 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/logic-flaw-detector.d.ts +55 -0
- package/dist/agents/logic-flaw-detector.d.ts.map +1 -0
- package/dist/agents/logic-flaw-detector.js +454 -0
- package/dist/agents/logic-flaw-detector.js.map +1 -0
- package/dist/agents/zero-day-hunter.d.ts +69 -0
- package/dist/agents/zero-day-hunter.d.ts.map +1 -0
- package/dist/agents/zero-day-hunter.js +591 -0
- package/dist/agents/zero-day-hunter.js.map +1 -0
- package/dist/certification/artifacts.d.ts +21 -0
- package/dist/certification/artifacts.d.ts.map +1 -0
- package/dist/certification/artifacts.js +275 -0
- package/dist/certification/artifacts.js.map +1 -0
- package/dist/certification/autofix.d.ts +122 -0
- package/dist/certification/autofix.d.ts.map +1 -0
- package/dist/certification/autofix.js +476 -0
- package/dist/certification/autofix.js.map +1 -0
- package/dist/certification/badge.d.ts +56 -0
- package/dist/certification/badge.d.ts.map +1 -0
- package/dist/certification/badge.js +155 -0
- package/dist/certification/badge.js.map +1 -0
- package/dist/certification/cache.d.ts +121 -0
- package/dist/certification/cache.d.ts.map +1 -0
- package/dist/certification/cache.js +275 -0
- package/dist/certification/cache.js.map +1 -0
- package/dist/certification/cache.test.d.ts +5 -0
- package/dist/certification/cache.test.d.ts.map +1 -0
- package/dist/certification/cache.test.js +270 -0
- package/dist/certification/cache.test.js.map +1 -0
- package/dist/certification/consensus.d.ts +105 -0
- package/dist/certification/consensus.d.ts.map +1 -0
- package/dist/certification/consensus.js +353 -0
- package/dist/certification/consensus.js.map +1 -0
- package/dist/certification/consensus.test.d.ts +5 -0
- package/dist/certification/consensus.test.d.ts.map +1 -0
- package/dist/certification/consensus.test.js +342 -0
- package/dist/certification/consensus.test.js.map +1 -0
- package/dist/certification/index.d.ts +14 -0
- package/dist/certification/index.d.ts.map +1 -0
- package/dist/certification/index.js +14 -0
- package/dist/certification/index.js.map +1 -0
- package/dist/certification/rules.d.ts +89 -0
- package/dist/certification/rules.d.ts.map +1 -0
- package/dist/certification/rules.js +317 -0
- package/dist/certification/rules.js.map +1 -0
- package/dist/certification/sarif.d.ts +107 -0
- package/dist/certification/sarif.d.ts.map +1 -0
- package/dist/certification/sarif.js +191 -0
- package/dist/certification/sarif.js.map +1 -0
- package/dist/certification/store.d.ts +255 -0
- package/dist/certification/store.d.ts.map +1 -0
- package/dist/certification/store.js +835 -0
- package/dist/certification/store.js.map +1 -0
- package/dist/certification/store.test.d.ts +5 -0
- package/dist/certification/store.test.d.ts.map +1 -0
- package/dist/certification/store.test.js +468 -0
- package/dist/certification/store.test.js.map +1 -0
- package/dist/certification/summary.d.ts +72 -0
- package/dist/certification/summary.d.ts.map +1 -0
- package/dist/certification/summary.js +296 -0
- package/dist/certification/summary.js.map +1 -0
- package/dist/certification/types.d.ts +138 -0
- package/dist/certification/types.d.ts.map +1 -0
- package/dist/certification/types.js +34 -0
- package/dist/certification/types.js.map +1 -0
- package/dist/commands/audits/api-check.d.ts +3 -0
- package/dist/commands/audits/api-check.d.ts.map +1 -0
- package/dist/commands/audits/api-check.js +71 -0
- package/dist/commands/audits/api-check.js.map +1 -0
- package/dist/commands/audits/deadcode.d.ts +3 -0
- package/dist/commands/audits/deadcode.d.ts.map +1 -0
- package/dist/commands/audits/deadcode.js +63 -0
- package/dist/commands/audits/deadcode.js.map +1 -0
- package/dist/commands/audits/deps.d.ts +3 -0
- package/dist/commands/audits/deps.d.ts.map +1 -0
- package/dist/commands/audits/deps.js +56 -0
- package/dist/commands/audits/deps.js.map +1 -0
- package/dist/commands/audits/errors.d.ts +3 -0
- package/dist/commands/audits/errors.d.ts.map +1 -0
- package/dist/commands/audits/errors.js +65 -0
- package/dist/commands/audits/errors.js.map +1 -0
- package/dist/commands/audits/index.d.ts +3 -0
- package/dist/commands/audits/index.d.ts.map +1 -0
- package/dist/commands/audits/index.js +15 -0
- package/dist/commands/audits/index.js.map +1 -0
- package/dist/commands/audits/perf.d.ts +3 -0
- package/dist/commands/audits/perf.d.ts.map +1 -0
- package/dist/commands/audits/perf.js +85 -0
- package/dist/commands/audits/perf.js.map +1 -0
- package/dist/commands/audits/secrets.d.ts +3 -0
- package/dist/commands/audits/secrets.d.ts.map +1 -0
- package/dist/commands/audits/secrets.js +71 -0
- package/dist/commands/audits/secrets.js.map +1 -0
- package/dist/commands/certification/certify.d.ts +3 -0
- package/dist/commands/certification/certify.d.ts.map +1 -0
- package/dist/commands/certification/certify.js +108 -0
- package/dist/commands/certification/certify.js.map +1 -0
- package/dist/commands/certification/index.d.ts +3 -0
- package/dist/commands/certification/index.d.ts.map +1 -0
- package/dist/commands/certification/index.js +17 -0
- package/dist/commands/certification/index.js.map +1 -0
- package/dist/commands/certification/performance.d.ts +3 -0
- package/dist/commands/certification/performance.d.ts.map +1 -0
- package/dist/commands/certification/performance.js +89 -0
- package/dist/commands/certification/performance.js.map +1 -0
- package/dist/commands/certification/quality.d.ts +3 -0
- package/dist/commands/certification/quality.d.ts.map +1 -0
- package/dist/commands/certification/quality.js +92 -0
- package/dist/commands/certification/quality.js.map +1 -0
- package/dist/commands/certification/redteam.d.ts +3 -0
- package/dist/commands/certification/redteam.d.ts.map +1 -0
- package/dist/commands/certification/redteam.js +114 -0
- package/dist/commands/certification/redteam.js.map +1 -0
- package/dist/commands/certification/reliability.d.ts +3 -0
- package/dist/commands/certification/reliability.d.ts.map +1 -0
- package/dist/commands/certification/reliability.js +93 -0
- package/dist/commands/certification/reliability.js.map +1 -0
- package/dist/commands/certification/security.d.ts +3 -0
- package/dist/commands/certification/security.d.ts.map +1 -0
- package/dist/commands/certification/security.js +90 -0
- package/dist/commands/certification/security.js.map +1 -0
- package/dist/commands/certification/typesafety.d.ts +3 -0
- package/dist/commands/certification/typesafety.d.ts.map +1 -0
- package/dist/commands/certification/typesafety.js +87 -0
- package/dist/commands/certification/typesafety.js.map +1 -0
- package/dist/commands/core/add-tests.d.ts +3 -0
- package/dist/commands/core/add-tests.d.ts.map +1 -0
- package/dist/commands/core/add-tests.js +29 -0
- package/dist/commands/core/add-tests.js.map +1 -0
- package/dist/commands/core/audit.d.ts +3 -0
- package/dist/commands/core/audit.d.ts.map +1 -0
- package/dist/commands/core/audit.js +64 -0
- package/dist/commands/core/audit.js.map +1 -0
- package/dist/commands/core/fix-critical.d.ts +3 -0
- package/dist/commands/core/fix-critical.d.ts.map +1 -0
- package/dist/commands/core/fix-critical.js +22 -0
- package/dist/commands/core/fix-critical.js.map +1 -0
- package/dist/commands/core/fix-high.d.ts +3 -0
- package/dist/commands/core/fix-high.d.ts.map +1 -0
- package/dist/commands/core/fix-high.js +32 -0
- package/dist/commands/core/fix-high.js.map +1 -0
- package/dist/commands/core/fix-medium.d.ts +3 -0
- package/dist/commands/core/fix-medium.d.ts.map +1 -0
- package/dist/commands/core/fix-medium.js +29 -0
- package/dist/commands/core/fix-medium.js.map +1 -0
- package/dist/commands/core/fix-rls.d.ts +3 -0
- package/dist/commands/core/fix-rls.d.ts.map +1 -0
- package/dist/commands/core/fix-rls.js +17 -0
- package/dist/commands/core/fix-rls.js.map +1 -0
- package/dist/commands/core/harden.d.ts +3 -0
- package/dist/commands/core/harden.d.ts.map +1 -0
- package/dist/commands/core/harden.js +19 -0
- package/dist/commands/core/harden.js.map +1 -0
- package/dist/commands/core/index.d.ts +3 -0
- package/dist/commands/core/index.d.ts.map +1 -0
- package/dist/commands/core/index.js +21 -0
- package/dist/commands/core/index.js.map +1 -0
- package/dist/commands/core/preflight.d.ts +3 -0
- package/dist/commands/core/preflight.d.ts.map +1 -0
- package/dist/commands/core/preflight.js +50 -0
- package/dist/commands/core/preflight.js.map +1 -0
- package/dist/commands/core/verify.d.ts +3 -0
- package/dist/commands/core/verify.d.ts.map +1 -0
- package/dist/commands/core/verify.js +32 -0
- package/dist/commands/core/verify.js.map +1 -0
- package/dist/commands/index.d.ts +28 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +37 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/types.d.ts +9 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +5 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/compliance/cis.d.ts +29 -0
- package/dist/compliance/cis.d.ts.map +1 -0
- package/dist/compliance/cis.js +316 -0
- package/dist/compliance/cis.js.map +1 -0
- package/dist/compliance/frameworks/eu-ai-act.d.ts +55 -0
- package/dist/compliance/frameworks/eu-ai-act.d.ts.map +1 -0
- package/dist/compliance/frameworks/eu-ai-act.js +621 -0
- package/dist/compliance/frameworks/eu-ai-act.js.map +1 -0
- package/dist/compliance/frameworks/index.d.ts +67 -0
- package/dist/compliance/frameworks/index.d.ts.map +1 -0
- package/dist/compliance/frameworks/index.js +97 -0
- package/dist/compliance/frameworks/index.js.map +1 -0
- package/dist/compliance/frameworks/iso-42001.d.ts +59 -0
- package/dist/compliance/frameworks/iso-42001.d.ts.map +1 -0
- package/dist/compliance/frameworks/iso-42001.js +719 -0
- package/dist/compliance/frameworks/iso-42001.js.map +1 -0
- package/dist/compliance/frameworks/mitre-atlas.d.ts +58 -0
- package/dist/compliance/frameworks/mitre-atlas.d.ts.map +1 -0
- package/dist/compliance/frameworks/mitre-atlas.js +686 -0
- package/dist/compliance/frameworks/mitre-atlas.js.map +1 -0
- package/dist/compliance/frameworks/nist-ai-rmf.d.ts +51 -0
- package/dist/compliance/frameworks/nist-ai-rmf.d.ts.map +1 -0
- package/dist/compliance/frameworks/nist-ai-rmf.js +677 -0
- package/dist/compliance/frameworks/nist-ai-rmf.js.map +1 -0
- package/dist/compliance/frameworks/owasp-llm.d.ts +58 -0
- package/dist/compliance/frameworks/owasp-llm.d.ts.map +1 -0
- package/dist/compliance/frameworks/owasp-llm.js +399 -0
- package/dist/compliance/frameworks/owasp-llm.js.map +1 -0
- package/dist/compliance/gdpr.d.ts +34 -0
- package/dist/compliance/gdpr.d.ts.map +1 -0
- package/dist/compliance/gdpr.js +319 -0
- package/dist/compliance/gdpr.js.map +1 -0
- package/dist/compliance/hipaa.d.ts +29 -0
- package/dist/compliance/hipaa.d.ts.map +1 -0
- package/dist/compliance/hipaa.js +205 -0
- package/dist/compliance/hipaa.js.map +1 -0
- package/dist/compliance/index.d.ts +18 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +26 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/iso27001.d.ts +30 -0
- package/dist/compliance/iso27001.d.ts.map +1 -0
- package/dist/compliance/iso27001.js +332 -0
- package/dist/compliance/iso27001.js.map +1 -0
- package/dist/compliance/mapper.d.ts +42 -0
- package/dist/compliance/mapper.d.ts.map +1 -0
- package/dist/compliance/mapper.js +269 -0
- package/dist/compliance/mapper.js.map +1 -0
- package/dist/compliance/mapper.test.d.ts +5 -0
- package/dist/compliance/mapper.test.d.ts.map +1 -0
- package/dist/compliance/mapper.test.js +360 -0
- package/dist/compliance/mapper.test.js.map +1 -0
- package/dist/compliance/pci-dss.d.ts +29 -0
- package/dist/compliance/pci-dss.d.ts.map +1 -0
- package/dist/compliance/pci-dss.js +247 -0
- package/dist/compliance/pci-dss.js.map +1 -0
- package/dist/compliance/report.d.ts +25 -0
- package/dist/compliance/report.d.ts.map +1 -0
- package/dist/compliance/report.js +254 -0
- package/dist/compliance/report.js.map +1 -0
- package/dist/compliance/report.test.d.ts +5 -0
- package/dist/compliance/report.test.d.ts.map +1 -0
- package/dist/compliance/report.test.js +128 -0
- package/dist/compliance/report.test.js.map +1 -0
- package/dist/compliance/soc2.d.ts +30 -0
- package/dist/compliance/soc2.d.ts.map +1 -0
- package/dist/compliance/soc2.js +262 -0
- package/dist/compliance/soc2.js.map +1 -0
- package/dist/compliance/soc2.test.d.ts +5 -0
- package/dist/compliance/soc2.test.d.ts.map +1 -0
- package/dist/compliance/soc2.test.js +86 -0
- package/dist/compliance/soc2.test.js.map +1 -0
- package/dist/compliance/types.d.ts +125 -0
- package/dist/compliance/types.d.ts.map +1 -0
- package/dist/compliance/types.js +10 -0
- package/dist/compliance/types.js.map +1 -0
- package/dist/config/flags.d.ts +456 -0
- package/dist/config/flags.d.ts.map +1 -0
- package/dist/config/flags.js +464 -0
- package/dist/config/flags.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +10 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/severity-overrides.d.ts +209 -0
- package/dist/config/severity-overrides.d.ts.map +1 -0
- package/dist/config/severity-overrides.js +380 -0
- package/dist/config/severity-overrides.js.map +1 -0
- package/dist/cost/index.d.ts +11 -0
- package/dist/cost/index.d.ts.map +1 -0
- package/dist/cost/index.js +12 -0
- package/dist/cost/index.js.map +1 -0
- package/dist/cost/pricing.d.ts +57 -0
- package/dist/cost/pricing.d.ts.map +1 -0
- package/dist/cost/pricing.js +196 -0
- package/dist/cost/pricing.js.map +1 -0
- package/dist/cost/pricing.test.d.ts +5 -0
- package/dist/cost/pricing.test.d.ts.map +1 -0
- package/dist/cost/pricing.test.js +195 -0
- package/dist/cost/pricing.test.js.map +1 -0
- package/dist/cost/tracker.d.ts +100 -0
- package/dist/cost/tracker.d.ts.map +1 -0
- package/dist/cost/tracker.js +366 -0
- package/dist/cost/tracker.js.map +1 -0
- package/dist/cost/tracker.test.d.ts +5 -0
- package/dist/cost/tracker.test.d.ts.map +1 -0
- package/dist/cost/tracker.test.js +360 -0
- package/dist/cost/tracker.test.js.map +1 -0
- package/dist/cost/types.d.ts +135 -0
- package/dist/cost/types.d.ts.map +1 -0
- package/dist/cost/types.js +9 -0
- package/dist/cost/types.js.map +1 -0
- package/dist/enterprise/auth/oidc.d.ts +231 -0
- package/dist/enterprise/auth/oidc.d.ts.map +1 -0
- package/dist/enterprise/auth/oidc.js +372 -0
- package/dist/enterprise/auth/oidc.js.map +1 -0
- package/dist/enterprise/auth/oidc.test.d.ts +5 -0
- package/dist/enterprise/auth/oidc.test.d.ts.map +1 -0
- package/dist/enterprise/auth/oidc.test.js +435 -0
- package/dist/enterprise/auth/oidc.test.js.map +1 -0
- package/dist/enterprise/index.d.ts +14 -0
- package/dist/enterprise/index.d.ts.map +1 -0
- package/dist/enterprise/index.js +19 -0
- package/dist/enterprise/index.js.map +1 -0
- package/dist/enterprise/integrations/chat.d.ts +205 -0
- package/dist/enterprise/integrations/chat.d.ts.map +1 -0
- package/dist/enterprise/integrations/chat.js +624 -0
- package/dist/enterprise/integrations/chat.js.map +1 -0
- package/dist/enterprise/integrations/chat.test.d.ts +5 -0
- package/dist/enterprise/integrations/chat.test.d.ts.map +1 -0
- package/dist/enterprise/integrations/chat.test.js +557 -0
- package/dist/enterprise/integrations/chat.test.js.map +1 -0
- package/dist/enterprise/integrations/ticketing.d.ts +257 -0
- package/dist/enterprise/integrations/ticketing.d.ts.map +1 -0
- package/dist/enterprise/integrations/ticketing.js +548 -0
- package/dist/enterprise/integrations/ticketing.js.map +1 -0
- package/dist/enterprise/integrations/ticketing.test.d.ts +5 -0
- package/dist/enterprise/integrations/ticketing.test.d.ts.map +1 -0
- package/dist/enterprise/integrations/ticketing.test.js +693 -0
- package/dist/enterprise/integrations/ticketing.test.js.map +1 -0
- package/dist/enterprise/policy/opa.d.ts +194 -0
- package/dist/enterprise/policy/opa.d.ts.map +1 -0
- package/dist/enterprise/policy/opa.js +385 -0
- package/dist/enterprise/policy/opa.js.map +1 -0
- package/dist/enterprise/policy/opa.test.d.ts +5 -0
- package/dist/enterprise/policy/opa.test.d.ts.map +1 -0
- package/dist/enterprise/policy/opa.test.js +702 -0
- package/dist/enterprise/policy/opa.test.js.map +1 -0
- package/dist/enterprise/signing/kms.d.ts +211 -0
- package/dist/enterprise/signing/kms.d.ts.map +1 -0
- package/dist/enterprise/signing/kms.js +480 -0
- package/dist/enterprise/signing/kms.js.map +1 -0
- package/dist/enterprise/signing/kms.test.d.ts +5 -0
- package/dist/enterprise/signing/kms.test.d.ts.map +1 -0
- package/dist/enterprise/signing/kms.test.js +511 -0
- package/dist/enterprise/signing/kms.test.js.map +1 -0
- package/dist/eval/fixtures.d.ts +58 -0
- package/dist/eval/fixtures.d.ts.map +1 -0
- package/dist/eval/fixtures.js +571 -0
- package/dist/eval/fixtures.js.map +1 -0
- package/dist/eval/fixtures.test.d.ts +5 -0
- package/dist/eval/fixtures.test.d.ts.map +1 -0
- package/dist/eval/fixtures.test.js +193 -0
- package/dist/eval/fixtures.test.js.map +1 -0
- package/dist/eval/harness.d.ts +30 -0
- package/dist/eval/harness.d.ts.map +1 -0
- package/dist/eval/harness.js +221 -0
- package/dist/eval/harness.js.map +1 -0
- package/dist/eval/harness.test.d.ts +5 -0
- package/dist/eval/harness.test.d.ts.map +1 -0
- package/dist/eval/harness.test.js +314 -0
- package/dist/eval/harness.test.js.map +1 -0
- package/dist/eval/index.d.ts +15 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +18 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/metrics.d.ts +56 -0
- package/dist/eval/metrics.d.ts.map +1 -0
- package/dist/eval/metrics.js +298 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/eval/metrics.test.d.ts +5 -0
- package/dist/eval/metrics.test.d.ts.map +1 -0
- package/dist/eval/metrics.test.js +426 -0
- package/dist/eval/metrics.test.js.map +1 -0
- package/dist/eval/report.d.ts +30 -0
- package/dist/eval/report.d.ts.map +1 -0
- package/dist/eval/report.js +333 -0
- package/dist/eval/report.js.map +1 -0
- package/dist/eval/report.test.d.ts +5 -0
- package/dist/eval/report.test.d.ts.map +1 -0
- package/dist/eval/report.test.js +275 -0
- package/dist/eval/report.test.js.map +1 -0
- package/dist/eval/types.d.ts +234 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +27 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/http-server.d.ts +3 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +127 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4120 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +46 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +131 -0
- package/dist/logger.js.map +1 -0
- package/dist/multimodel/consensus.d.ts +49 -0
- package/dist/multimodel/consensus.d.ts.map +1 -0
- package/dist/multimodel/consensus.js +454 -0
- package/dist/multimodel/consensus.js.map +1 -0
- package/dist/multimodel/consensus.test.d.ts +5 -0
- package/dist/multimodel/consensus.test.d.ts.map +1 -0
- package/dist/multimodel/consensus.test.js +415 -0
- package/dist/multimodel/consensus.test.js.map +1 -0
- package/dist/multimodel/index.d.ts +13 -0
- package/dist/multimodel/index.d.ts.map +1 -0
- package/dist/multimodel/index.js +14 -0
- package/dist/multimodel/index.js.map +1 -0
- package/dist/multimodel/runner.d.ts +95 -0
- package/dist/multimodel/runner.d.ts.map +1 -0
- package/dist/multimodel/runner.js +312 -0
- package/dist/multimodel/runner.js.map +1 -0
- package/dist/multimodel/runner.test.d.ts +5 -0
- package/dist/multimodel/runner.test.d.ts.map +1 -0
- package/dist/multimodel/runner.test.js +224 -0
- package/dist/multimodel/runner.test.js.map +1 -0
- package/dist/multimodel/types.d.ts +202 -0
- package/dist/multimodel/types.d.ts.map +1 -0
- package/dist/multimodel/types.js +10 -0
- package/dist/multimodel/types.js.map +1 -0
- package/dist/observability/index.d.ts +9 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +9 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/otel.d.ts +102 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +284 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/plugins/index.d.ts +10 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +10 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/loader.d.ts +78 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +470 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/types.d.ts +304 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +100 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/sbom/cyclonedx.d.ts +30 -0
- package/dist/sbom/cyclonedx.d.ts.map +1 -0
- package/dist/sbom/cyclonedx.js +392 -0
- package/dist/sbom/cyclonedx.js.map +1 -0
- package/dist/sbom/cyclonedx.test.d.ts +5 -0
- package/dist/sbom/cyclonedx.test.d.ts.map +1 -0
- package/dist/sbom/cyclonedx.test.js +244 -0
- package/dist/sbom/cyclonedx.test.js.map +1 -0
- package/dist/sbom/index.d.ts +13 -0
- package/dist/sbom/index.d.ts.map +1 -0
- package/dist/sbom/index.js +15 -0
- package/dist/sbom/index.js.map +1 -0
- package/dist/sbom/provenance.d.ts +37 -0
- package/dist/sbom/provenance.d.ts.map +1 -0
- package/dist/sbom/provenance.js +268 -0
- package/dist/sbom/provenance.js.map +1 -0
- package/dist/sbom/provenance.test.d.ts +5 -0
- package/dist/sbom/provenance.test.d.ts.map +1 -0
- package/dist/sbom/provenance.test.js +189 -0
- package/dist/sbom/provenance.test.js.map +1 -0
- package/dist/sbom/signing.d.ts +87 -0
- package/dist/sbom/signing.d.ts.map +1 -0
- package/dist/sbom/signing.js +354 -0
- package/dist/sbom/signing.js.map +1 -0
- package/dist/sbom/signing.test.d.ts +5 -0
- package/dist/sbom/signing.test.d.ts.map +1 -0
- package/dist/sbom/signing.test.js +170 -0
- package/dist/sbom/signing.test.js.map +1 -0
- package/dist/sbom/types.d.ts +384 -0
- package/dist/sbom/types.d.ts.map +1 -0
- package/dist/sbom/types.js +17 -0
- package/dist/sbom/types.js.map +1 -0
- package/dist/scanners/agent/credential-scope-audit.d.ts +40 -0
- package/dist/scanners/agent/credential-scope-audit.d.ts.map +1 -0
- package/dist/scanners/agent/credential-scope-audit.js +404 -0
- package/dist/scanners/agent/credential-scope-audit.js.map +1 -0
- package/dist/scanners/agent/exfil-path-graph.d.ts +50 -0
- package/dist/scanners/agent/exfil-path-graph.d.ts.map +1 -0
- package/dist/scanners/agent/exfil-path-graph.js +764 -0
- package/dist/scanners/agent/exfil-path-graph.js.map +1 -0
- package/dist/scanners/agent/index.d.ts +43 -0
- package/dist/scanners/agent/index.d.ts.map +1 -0
- package/dist/scanners/agent/index.js +616 -0
- package/dist/scanners/agent/index.js.map +1 -0
- package/dist/scanners/agent/manifest-audit.d.ts +43 -0
- package/dist/scanners/agent/manifest-audit.d.ts.map +1 -0
- package/dist/scanners/agent/manifest-audit.js +403 -0
- package/dist/scanners/agent/manifest-audit.js.map +1 -0
- package/dist/scanners/agent/payloads/index.d.ts +44 -0
- package/dist/scanners/agent/payloads/index.d.ts.map +1 -0
- package/dist/scanners/agent/payloads/index.js +184 -0
- package/dist/scanners/agent/payloads/index.js.map +1 -0
- package/dist/scanners/agent/permission-minimiser.d.ts +48 -0
- package/dist/scanners/agent/permission-minimiser.d.ts.map +1 -0
- package/dist/scanners/agent/permission-minimiser.js +551 -0
- package/dist/scanners/agent/permission-minimiser.js.map +1 -0
- package/dist/scanners/agent/prompt-injection-fuzzer.d.ts +39 -0
- package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -0
- package/dist/scanners/agent/prompt-injection-fuzzer.js +720 -0
- package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -0
- package/dist/scanners/agent/sandbox-audit.d.ts +44 -0
- package/dist/scanners/agent/sandbox-audit.d.ts.map +1 -0
- package/dist/scanners/agent/sandbox-audit.js +425 -0
- package/dist/scanners/agent/sandbox-audit.js.map +1 -0
- package/dist/scanners/agent/supply-chain-mcp.d.ts +53 -0
- package/dist/scanners/agent/supply-chain-mcp.d.ts.map +1 -0
- package/dist/scanners/agent/supply-chain-mcp.js +479 -0
- package/dist/scanners/agent/supply-chain-mcp.js.map +1 -0
- package/dist/scanners/agent/tool-description-drift.d.ts +62 -0
- package/dist/scanners/agent/tool-description-drift.d.ts.map +1 -0
- package/dist/scanners/agent/tool-description-drift.js +365 -0
- package/dist/scanners/agent/tool-description-drift.js.map +1 -0
- package/dist/scanners/agent/types.d.ts +840 -0
- package/dist/scanners/agent/types.d.ts.map +1 -0
- package/dist/scanners/agent/types.js +149 -0
- package/dist/scanners/agent/types.js.map +1 -0
- package/dist/scanners/bandit.d.ts +25 -0
- package/dist/scanners/bandit.d.ts.map +1 -0
- package/dist/scanners/bandit.js +129 -0
- package/dist/scanners/bandit.js.map +1 -0
- package/dist/scanners/binary-analysis.d.ts +41 -0
- package/dist/scanners/binary-analysis.d.ts.map +1 -0
- package/dist/scanners/binary-analysis.js +587 -0
- package/dist/scanners/binary-analysis.js.map +1 -0
- package/dist/scanners/binary-analysis.test.d.ts +5 -0
- package/dist/scanners/binary-analysis.test.d.ts.map +1 -0
- package/dist/scanners/binary-analysis.test.js +291 -0
- package/dist/scanners/binary-analysis.test.js.map +1 -0
- package/dist/scanners/brakeman.d.ts +30 -0
- package/dist/scanners/brakeman.d.ts.map +1 -0
- package/dist/scanners/brakeman.js +271 -0
- package/dist/scanners/brakeman.js.map +1 -0
- package/dist/scanners/dependencies.d.ts +22 -0
- package/dist/scanners/dependencies.d.ts.map +1 -0
- package/dist/scanners/dependencies.js +202 -0
- package/dist/scanners/dependencies.js.map +1 -0
- package/dist/scanners/dependencies.test.d.ts +5 -0
- package/dist/scanners/dependencies.test.d.ts.map +1 -0
- package/dist/scanners/dependencies.test.js +185 -0
- package/dist/scanners/dependencies.test.js.map +1 -0
- package/dist/scanners/eslint.d.ts +25 -0
- package/dist/scanners/eslint.d.ts.map +1 -0
- package/dist/scanners/eslint.js +220 -0
- package/dist/scanners/eslint.js.map +1 -0
- package/dist/scanners/gosec.d.ts +25 -0
- package/dist/scanners/gosec.d.ts.map +1 -0
- package/dist/scanners/gosec.js +128 -0
- package/dist/scanners/gosec.js.map +1 -0
- package/dist/scanners/index.d.ts +128 -0
- package/dist/scanners/index.d.ts.map +1 -0
- package/dist/scanners/index.js +811 -0
- package/dist/scanners/index.js.map +1 -0
- package/dist/scanners/index.test.d.ts +5 -0
- package/dist/scanners/index.test.d.ts.map +1 -0
- package/dist/scanners/index.test.js +424 -0
- package/dist/scanners/index.test.js.map +1 -0
- package/dist/scanners/memory-safety.d.ts +44 -0
- package/dist/scanners/memory-safety.d.ts.map +1 -0
- package/dist/scanners/memory-safety.js +571 -0
- package/dist/scanners/memory-safety.js.map +1 -0
- package/dist/scanners/memory-safety.test.d.ts +5 -0
- package/dist/scanners/memory-safety.test.d.ts.map +1 -0
- package/dist/scanners/memory-safety.test.js +321 -0
- package/dist/scanners/memory-safety.test.js.map +1 -0
- package/dist/scanners/race-condition.d.ts +25 -0
- package/dist/scanners/race-condition.d.ts.map +1 -0
- package/dist/scanners/race-condition.js +443 -0
- package/dist/scanners/race-condition.js.map +1 -0
- package/dist/scanners/race-condition.test.d.ts +5 -0
- package/dist/scanners/race-condition.test.d.ts.map +1 -0
- package/dist/scanners/race-condition.test.js +428 -0
- package/dist/scanners/race-condition.test.js.map +1 -0
- package/dist/scanners/secrets.d.ts +25 -0
- package/dist/scanners/secrets.d.ts.map +1 -0
- package/dist/scanners/secrets.js +367 -0
- package/dist/scanners/secrets.js.map +1 -0
- package/dist/scanners/secrets.test.d.ts +5 -0
- package/dist/scanners/secrets.test.d.ts.map +1 -0
- package/dist/scanners/secrets.test.js +160 -0
- package/dist/scanners/secrets.test.js.map +1 -0
- package/dist/scanners/semgrep.d.ts +33 -0
- package/dist/scanners/semgrep.d.ts.map +1 -0
- package/dist/scanners/semgrep.js +350 -0
- package/dist/scanners/semgrep.js.map +1 -0
- package/dist/scanners/semgrep.test.d.ts +8 -0
- package/dist/scanners/semgrep.test.d.ts.map +1 -0
- package/dist/scanners/semgrep.test.js +254 -0
- package/dist/scanners/semgrep.test.js.map +1 -0
- package/dist/scanners/trivy.d.ts +26 -0
- package/dist/scanners/trivy.d.ts.map +1 -0
- package/dist/scanners/trivy.js +187 -0
- package/dist/scanners/trivy.js.map +1 -0
- package/dist/scanners/types.d.ts +210 -0
- package/dist/scanners/types.d.ts.map +1 -0
- package/dist/scanners/types.js +106 -0
- package/dist/scanners/types.js.map +1 -0
- package/dist/scanners/types.test.d.ts +5 -0
- package/dist/scanners/types.test.d.ts.map +1 -0
- package/dist/scanners/types.test.js +103 -0
- package/dist/scanners/types.test.js.map +1 -0
- package/dist/scanners/typescript.d.ts +32 -0
- package/dist/scanners/typescript.d.ts.map +1 -0
- package/dist/scanners/typescript.js +300 -0
- package/dist/scanners/typescript.js.map +1 -0
- package/dist/scanners/typescript.test.d.ts +5 -0
- package/dist/scanners/typescript.test.d.ts.map +1 -0
- package/dist/scanners/typescript.test.js +296 -0
- package/dist/scanners/typescript.test.js.map +1 -0
- package/dist/transcripts/index.d.ts +13 -0
- package/dist/transcripts/index.d.ts.map +1 -0
- package/dist/transcripts/index.js +17 -0
- package/dist/transcripts/index.js.map +1 -0
- package/dist/transcripts/logger.d.ts +190 -0
- package/dist/transcripts/logger.d.ts.map +1 -0
- package/dist/transcripts/logger.js +385 -0
- package/dist/transcripts/logger.js.map +1 -0
- package/dist/transcripts/logger.test.d.ts +5 -0
- package/dist/transcripts/logger.test.d.ts.map +1 -0
- package/dist/transcripts/logger.test.js +227 -0
- package/dist/transcripts/logger.test.js.map +1 -0
- package/dist/transcripts/redaction.d.ts +125 -0
- package/dist/transcripts/redaction.d.ts.map +1 -0
- package/dist/transcripts/redaction.js +416 -0
- package/dist/transcripts/redaction.js.map +1 -0
- package/dist/transcripts/redaction.test.d.ts +5 -0
- package/dist/transcripts/redaction.test.d.ts.map +1 -0
- package/dist/transcripts/redaction.test.js +267 -0
- package/dist/transcripts/redaction.test.js.map +1 -0
- package/dist/transcripts/signing.d.ts +108 -0
- package/dist/transcripts/signing.d.ts.map +1 -0
- package/dist/transcripts/signing.js +173 -0
- package/dist/transcripts/signing.js.map +1 -0
- package/dist/transcripts/verifier.d.ts +133 -0
- package/dist/transcripts/verifier.d.ts.map +1 -0
- package/dist/transcripts/verifier.js +489 -0
- package/dist/transcripts/verifier.js.map +1 -0
- package/dist/transcripts/verifier.test.d.ts +5 -0
- package/dist/transcripts/verifier.test.d.ts.map +1 -0
- package/dist/transcripts/verifier.test.js +330 -0
- package/dist/transcripts/verifier.test.js.map +1 -0
- package/dist/util/concurrency.d.ts +221 -0
- package/dist/util/concurrency.d.ts.map +1 -0
- package/dist/util/concurrency.js +339 -0
- package/dist/util/concurrency.js.map +1 -0
- package/dist/util/index.d.ts +12 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +12 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/json.d.ts +63 -0
- package/dist/util/json.d.ts.map +1 -0
- package/dist/util/json.js +134 -0
- package/dist/util/json.js.map +1 -0
- package/dist/util/paths.d.ts +56 -0
- package/dist/util/paths.d.ts.map +1 -0
- package/dist/util/paths.js +128 -0
- package/dist/util/paths.js.map +1 -0
- package/dist/util/retry.d.ts +185 -0
- package/dist/util/retry.d.ts.map +1 -0
- package/dist/util/retry.js +338 -0
- package/dist/util/retry.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,840 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent & MCP Security Scanner Types
|
|
3
|
+
*
|
|
4
|
+
* Types for scanning MCP servers, agent systems, and AI tool chains.
|
|
5
|
+
* These scanners extend the deterministic scanner layer with agent-specific
|
|
6
|
+
* security checks: prompt injection fuzzing, exfiltration path analysis,
|
|
7
|
+
* manifest auditing, and permission minimization.
|
|
8
|
+
*
|
|
9
|
+
* @module scanners/agent/types
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import type { Severity } from "../../certification/types.js";
|
|
13
|
+
import type { ScannerResult } from "../types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Supported agent scanner types
|
|
16
|
+
*/
|
|
17
|
+
export type AgentScannerType = "manifest-audit" | "tool-description-drift" | "prompt-injection-fuzzer" | "exfil-path-graph" | "permission-minimiser" | "supply-chain-mcp" | "sandbox-audit" | "credential-scope-audit";
|
|
18
|
+
/**
|
|
19
|
+
* All agent scanner types as an array for iteration
|
|
20
|
+
*/
|
|
21
|
+
export declare const AGENT_SCANNER_TYPES: AgentScannerType[];
|
|
22
|
+
/**
|
|
23
|
+
* MCP tool parameter schema (subset of JSON Schema)
|
|
24
|
+
*/
|
|
25
|
+
export interface MCPParameterSchema {
|
|
26
|
+
type: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
required?: boolean;
|
|
29
|
+
enum?: string[];
|
|
30
|
+
default?: unknown;
|
|
31
|
+
properties?: Record<string, MCPParameterSchema>;
|
|
32
|
+
items?: MCPParameterSchema;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* MCP tool definition from server manifest
|
|
36
|
+
*/
|
|
37
|
+
export interface MCPToolDefinition {
|
|
38
|
+
/** Tool name (e.g., "read_file") */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Human-readable description */
|
|
41
|
+
description: string;
|
|
42
|
+
/** Zod-validated input schema or JSON schema */
|
|
43
|
+
inputSchema?: MCPParameterSchema | z.ZodTypeAny;
|
|
44
|
+
/** Whether this tool can modify state (write, delete, etc.) */
|
|
45
|
+
destructiveHint?: boolean;
|
|
46
|
+
/** Whether this tool only reads data */
|
|
47
|
+
readOnlyHint?: boolean;
|
|
48
|
+
/** Allowed origins for cross-origin requests */
|
|
49
|
+
allowedOrigins?: string[];
|
|
50
|
+
/** Whether this tool can access network */
|
|
51
|
+
networkAccess?: boolean;
|
|
52
|
+
/** Whether this tool can execute code */
|
|
53
|
+
codeExecution?: boolean;
|
|
54
|
+
/** Required permissions/scopes */
|
|
55
|
+
requiredPermissions?: string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* MCP resource definition
|
|
59
|
+
*/
|
|
60
|
+
export interface MCPResourceDefinition {
|
|
61
|
+
/** Resource URI template (e.g., "file://{path}") */
|
|
62
|
+
uri: string;
|
|
63
|
+
/** Human-readable name */
|
|
64
|
+
name: string;
|
|
65
|
+
/** Description of the resource */
|
|
66
|
+
description?: string;
|
|
67
|
+
/** MIME type of the resource content */
|
|
68
|
+
mimeType?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* MCP prompt definition
|
|
72
|
+
*/
|
|
73
|
+
export interface MCPPromptDefinition {
|
|
74
|
+
/** Prompt name */
|
|
75
|
+
name: string;
|
|
76
|
+
/** Human-readable description */
|
|
77
|
+
description?: string;
|
|
78
|
+
/** Arguments the prompt accepts */
|
|
79
|
+
arguments?: {
|
|
80
|
+
name: string;
|
|
81
|
+
description?: string;
|
|
82
|
+
required?: boolean;
|
|
83
|
+
}[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Complete MCP server manifest
|
|
87
|
+
*/
|
|
88
|
+
export interface MCPManifest {
|
|
89
|
+
/** Server name */
|
|
90
|
+
name: string;
|
|
91
|
+
/** Server version */
|
|
92
|
+
version: string;
|
|
93
|
+
/** Human-readable description */
|
|
94
|
+
description?: string;
|
|
95
|
+
/** Available tools */
|
|
96
|
+
tools: MCPToolDefinition[];
|
|
97
|
+
/** Available resources */
|
|
98
|
+
resources?: MCPResourceDefinition[];
|
|
99
|
+
/** Available prompts */
|
|
100
|
+
prompts?: MCPPromptDefinition[];
|
|
101
|
+
/** Server capabilities */
|
|
102
|
+
capabilities?: {
|
|
103
|
+
tools?: boolean;
|
|
104
|
+
resources?: boolean;
|
|
105
|
+
prompts?: boolean;
|
|
106
|
+
logging?: boolean;
|
|
107
|
+
};
|
|
108
|
+
/** Server configuration */
|
|
109
|
+
config?: Record<string, unknown>;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Zod schema for MCPManifest validation
|
|
113
|
+
*/
|
|
114
|
+
export declare const MCPManifestSchema: z.ZodObject<{
|
|
115
|
+
name: z.ZodString;
|
|
116
|
+
version: z.ZodString;
|
|
117
|
+
description: z.ZodOptional<z.ZodString>;
|
|
118
|
+
tools: z.ZodArray<z.ZodObject<{
|
|
119
|
+
name: z.ZodString;
|
|
120
|
+
description: z.ZodString;
|
|
121
|
+
inputSchema: z.ZodOptional<z.ZodAny>;
|
|
122
|
+
destructiveHint: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
readOnlyHint: z.ZodOptional<z.ZodBoolean>;
|
|
124
|
+
allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
125
|
+
networkAccess: z.ZodOptional<z.ZodBoolean>;
|
|
126
|
+
codeExecution: z.ZodOptional<z.ZodBoolean>;
|
|
127
|
+
requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
128
|
+
}, "strip", z.ZodTypeAny, {
|
|
129
|
+
description: string;
|
|
130
|
+
name: string;
|
|
131
|
+
inputSchema?: any;
|
|
132
|
+
destructiveHint?: boolean | undefined;
|
|
133
|
+
readOnlyHint?: boolean | undefined;
|
|
134
|
+
allowedOrigins?: string[] | undefined;
|
|
135
|
+
networkAccess?: boolean | undefined;
|
|
136
|
+
codeExecution?: boolean | undefined;
|
|
137
|
+
requiredPermissions?: string[] | undefined;
|
|
138
|
+
}, {
|
|
139
|
+
description: string;
|
|
140
|
+
name: string;
|
|
141
|
+
inputSchema?: any;
|
|
142
|
+
destructiveHint?: boolean | undefined;
|
|
143
|
+
readOnlyHint?: boolean | undefined;
|
|
144
|
+
allowedOrigins?: string[] | undefined;
|
|
145
|
+
networkAccess?: boolean | undefined;
|
|
146
|
+
codeExecution?: boolean | undefined;
|
|
147
|
+
requiredPermissions?: string[] | undefined;
|
|
148
|
+
}>, "many">;
|
|
149
|
+
resources: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
150
|
+
uri: z.ZodString;
|
|
151
|
+
name: z.ZodString;
|
|
152
|
+
description: z.ZodOptional<z.ZodString>;
|
|
153
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}, "strip", z.ZodTypeAny, {
|
|
155
|
+
name: string;
|
|
156
|
+
uri: string;
|
|
157
|
+
description?: string | undefined;
|
|
158
|
+
mimeType?: string | undefined;
|
|
159
|
+
}, {
|
|
160
|
+
name: string;
|
|
161
|
+
uri: string;
|
|
162
|
+
description?: string | undefined;
|
|
163
|
+
mimeType?: string | undefined;
|
|
164
|
+
}>, "many">>;
|
|
165
|
+
prompts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
166
|
+
name: z.ZodString;
|
|
167
|
+
description: z.ZodOptional<z.ZodString>;
|
|
168
|
+
arguments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
169
|
+
name: z.ZodString;
|
|
170
|
+
description: z.ZodOptional<z.ZodString>;
|
|
171
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
172
|
+
}, "strip", z.ZodTypeAny, {
|
|
173
|
+
name: string;
|
|
174
|
+
description?: string | undefined;
|
|
175
|
+
required?: boolean | undefined;
|
|
176
|
+
}, {
|
|
177
|
+
name: string;
|
|
178
|
+
description?: string | undefined;
|
|
179
|
+
required?: boolean | undefined;
|
|
180
|
+
}>, "many">>;
|
|
181
|
+
}, "strip", z.ZodTypeAny, {
|
|
182
|
+
name: string;
|
|
183
|
+
description?: string | undefined;
|
|
184
|
+
arguments?: {
|
|
185
|
+
name: string;
|
|
186
|
+
description?: string | undefined;
|
|
187
|
+
required?: boolean | undefined;
|
|
188
|
+
}[] | undefined;
|
|
189
|
+
}, {
|
|
190
|
+
name: string;
|
|
191
|
+
description?: string | undefined;
|
|
192
|
+
arguments?: {
|
|
193
|
+
name: string;
|
|
194
|
+
description?: string | undefined;
|
|
195
|
+
required?: boolean | undefined;
|
|
196
|
+
}[] | undefined;
|
|
197
|
+
}>, "many">>;
|
|
198
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
199
|
+
tools: z.ZodOptional<z.ZodBoolean>;
|
|
200
|
+
resources: z.ZodOptional<z.ZodBoolean>;
|
|
201
|
+
prompts: z.ZodOptional<z.ZodBoolean>;
|
|
202
|
+
logging: z.ZodOptional<z.ZodBoolean>;
|
|
203
|
+
}, "strip", z.ZodTypeAny, {
|
|
204
|
+
tools?: boolean | undefined;
|
|
205
|
+
resources?: boolean | undefined;
|
|
206
|
+
prompts?: boolean | undefined;
|
|
207
|
+
logging?: boolean | undefined;
|
|
208
|
+
}, {
|
|
209
|
+
tools?: boolean | undefined;
|
|
210
|
+
resources?: boolean | undefined;
|
|
211
|
+
prompts?: boolean | undefined;
|
|
212
|
+
logging?: boolean | undefined;
|
|
213
|
+
}>>;
|
|
214
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
215
|
+
}, "strip", z.ZodTypeAny, {
|
|
216
|
+
version: string;
|
|
217
|
+
name: string;
|
|
218
|
+
tools: {
|
|
219
|
+
description: string;
|
|
220
|
+
name: string;
|
|
221
|
+
inputSchema?: any;
|
|
222
|
+
destructiveHint?: boolean | undefined;
|
|
223
|
+
readOnlyHint?: boolean | undefined;
|
|
224
|
+
allowedOrigins?: string[] | undefined;
|
|
225
|
+
networkAccess?: boolean | undefined;
|
|
226
|
+
codeExecution?: boolean | undefined;
|
|
227
|
+
requiredPermissions?: string[] | undefined;
|
|
228
|
+
}[];
|
|
229
|
+
description?: string | undefined;
|
|
230
|
+
config?: Record<string, unknown> | undefined;
|
|
231
|
+
resources?: {
|
|
232
|
+
name: string;
|
|
233
|
+
uri: string;
|
|
234
|
+
description?: string | undefined;
|
|
235
|
+
mimeType?: string | undefined;
|
|
236
|
+
}[] | undefined;
|
|
237
|
+
prompts?: {
|
|
238
|
+
name: string;
|
|
239
|
+
description?: string | undefined;
|
|
240
|
+
arguments?: {
|
|
241
|
+
name: string;
|
|
242
|
+
description?: string | undefined;
|
|
243
|
+
required?: boolean | undefined;
|
|
244
|
+
}[] | undefined;
|
|
245
|
+
}[] | undefined;
|
|
246
|
+
capabilities?: {
|
|
247
|
+
tools?: boolean | undefined;
|
|
248
|
+
resources?: boolean | undefined;
|
|
249
|
+
prompts?: boolean | undefined;
|
|
250
|
+
logging?: boolean | undefined;
|
|
251
|
+
} | undefined;
|
|
252
|
+
}, {
|
|
253
|
+
version: string;
|
|
254
|
+
name: string;
|
|
255
|
+
tools: {
|
|
256
|
+
description: string;
|
|
257
|
+
name: string;
|
|
258
|
+
inputSchema?: any;
|
|
259
|
+
destructiveHint?: boolean | undefined;
|
|
260
|
+
readOnlyHint?: boolean | undefined;
|
|
261
|
+
allowedOrigins?: string[] | undefined;
|
|
262
|
+
networkAccess?: boolean | undefined;
|
|
263
|
+
codeExecution?: boolean | undefined;
|
|
264
|
+
requiredPermissions?: string[] | undefined;
|
|
265
|
+
}[];
|
|
266
|
+
description?: string | undefined;
|
|
267
|
+
config?: Record<string, unknown> | undefined;
|
|
268
|
+
resources?: {
|
|
269
|
+
name: string;
|
|
270
|
+
uri: string;
|
|
271
|
+
description?: string | undefined;
|
|
272
|
+
mimeType?: string | undefined;
|
|
273
|
+
}[] | undefined;
|
|
274
|
+
prompts?: {
|
|
275
|
+
name: string;
|
|
276
|
+
description?: string | undefined;
|
|
277
|
+
arguments?: {
|
|
278
|
+
name: string;
|
|
279
|
+
description?: string | undefined;
|
|
280
|
+
required?: boolean | undefined;
|
|
281
|
+
}[] | undefined;
|
|
282
|
+
}[] | undefined;
|
|
283
|
+
capabilities?: {
|
|
284
|
+
tools?: boolean | undefined;
|
|
285
|
+
resources?: boolean | undefined;
|
|
286
|
+
prompts?: boolean | undefined;
|
|
287
|
+
logging?: boolean | undefined;
|
|
288
|
+
} | undefined;
|
|
289
|
+
}>;
|
|
290
|
+
/**
|
|
291
|
+
* Extended scanner result for agent-specific scanners
|
|
292
|
+
*/
|
|
293
|
+
export interface AgentScannerResult extends Omit<ScannerResult, "scanner"> {
|
|
294
|
+
/** Which agent scanner was run */
|
|
295
|
+
scanner: AgentScannerType;
|
|
296
|
+
/** Target MCP server URL, config file, or npm package */
|
|
297
|
+
target?: string;
|
|
298
|
+
/** SHA256 hash of scanned manifest */
|
|
299
|
+
manifestHash?: string;
|
|
300
|
+
/** MCP server name if available */
|
|
301
|
+
mcpServerName?: string;
|
|
302
|
+
/** MCP server version if available */
|
|
303
|
+
mcpServerVersion?: string;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Check if an agent scanner is available
|
|
307
|
+
*/
|
|
308
|
+
export interface AgentScannerAvailability {
|
|
309
|
+
scanner: AgentScannerType;
|
|
310
|
+
available: boolean;
|
|
311
|
+
version?: string;
|
|
312
|
+
path?: string;
|
|
313
|
+
error?: string;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Categories of prompt injection payloads
|
|
317
|
+
*/
|
|
318
|
+
export type PayloadCategory = "override-instructions" | "exfil-prompt" | "homoglyph" | "tag-smuggling" | "indirect-injection" | "jailbreak" | "system-prompt-extraction" | "tool-misuse";
|
|
319
|
+
/**
|
|
320
|
+
* A single injection payload
|
|
321
|
+
*/
|
|
322
|
+
export interface InjectionPayload {
|
|
323
|
+
/** Unique payload ID */
|
|
324
|
+
id: string;
|
|
325
|
+
/** The payload text to inject */
|
|
326
|
+
text: string;
|
|
327
|
+
/** Category of attack */
|
|
328
|
+
category: PayloadCategory;
|
|
329
|
+
/** Expected severity if injection succeeds */
|
|
330
|
+
severity: Severity;
|
|
331
|
+
/** Human-readable description of what this payload attempts */
|
|
332
|
+
description: string;
|
|
333
|
+
/** Tags for filtering (e.g., ["unicode", "invisible"]) */
|
|
334
|
+
tags?: string[];
|
|
335
|
+
/** Source/attribution if from known research */
|
|
336
|
+
source?: string;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Result of fuzzing a single tool with a single payload
|
|
340
|
+
*/
|
|
341
|
+
export interface FuzzResult {
|
|
342
|
+
/** The payload that was tested */
|
|
343
|
+
payload: string;
|
|
344
|
+
/** Payload ID for reference */
|
|
345
|
+
payloadId: string;
|
|
346
|
+
/** Category of the payload */
|
|
347
|
+
payloadCategory: PayloadCategory;
|
|
348
|
+
/** Which tool was fuzzed */
|
|
349
|
+
tool: string;
|
|
350
|
+
/** Whether the injection was blocked (true = safe) */
|
|
351
|
+
passed: boolean;
|
|
352
|
+
/** Raw response from the tool (redacted for sensitive data) */
|
|
353
|
+
response?: string;
|
|
354
|
+
/** Whether the model's behavior changed due to injection */
|
|
355
|
+
behaviorChange: boolean;
|
|
356
|
+
/** Specific indicators of behavior change detected */
|
|
357
|
+
behaviorIndicators?: string[];
|
|
358
|
+
/** Assigned severity based on behavior change */
|
|
359
|
+
severity: Severity;
|
|
360
|
+
/** Time taken for this fuzz test in ms */
|
|
361
|
+
duration: number;
|
|
362
|
+
/** Error if the fuzz test failed to execute */
|
|
363
|
+
error?: string;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Aggregated fuzzer results
|
|
367
|
+
*/
|
|
368
|
+
export interface FuzzerSummary {
|
|
369
|
+
/** Total payloads tested */
|
|
370
|
+
totalPayloads: number;
|
|
371
|
+
/** Payloads that were blocked (passed) */
|
|
372
|
+
passedCount: number;
|
|
373
|
+
/** Payloads that caused behavior changes (failed) */
|
|
374
|
+
failedCount: number;
|
|
375
|
+
/** Pass rate as percentage */
|
|
376
|
+
passRate: number;
|
|
377
|
+
/** Breakdown by payload category */
|
|
378
|
+
byCategory: Record<PayloadCategory, {
|
|
379
|
+
passed: number;
|
|
380
|
+
failed: number;
|
|
381
|
+
}>;
|
|
382
|
+
/** Breakdown by tool */
|
|
383
|
+
byTool: Record<string, {
|
|
384
|
+
passed: number;
|
|
385
|
+
failed: number;
|
|
386
|
+
}>;
|
|
387
|
+
/** Most vulnerable tools (highest failure rate) */
|
|
388
|
+
vulnerableTools: string[];
|
|
389
|
+
/** Most effective payload categories */
|
|
390
|
+
effectiveCategories: PayloadCategory[];
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Options for running the fuzzer
|
|
394
|
+
*/
|
|
395
|
+
export interface FuzzerOptions {
|
|
396
|
+
/** Corpus size: quick (~50), standard (~200), thorough (~500+) */
|
|
397
|
+
corpus?: "quick" | "standard" | "thorough";
|
|
398
|
+
/** Path to custom payload file or directory */
|
|
399
|
+
customCorpus?: string;
|
|
400
|
+
/** Specific categories to test */
|
|
401
|
+
categories?: PayloadCategory[];
|
|
402
|
+
/** Specific tools to fuzz (default: all) */
|
|
403
|
+
tools?: string[];
|
|
404
|
+
/** Timeout per fuzz test in ms */
|
|
405
|
+
timeout?: number;
|
|
406
|
+
/** Maximum parallel fuzz tests */
|
|
407
|
+
concurrency?: number;
|
|
408
|
+
/** Stop on first failure */
|
|
409
|
+
failFast?: boolean;
|
|
410
|
+
/** Redact sensitive data in responses */
|
|
411
|
+
redactResponses?: boolean;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Classification of a tool's capabilities
|
|
415
|
+
*/
|
|
416
|
+
export type ToolCapability = "reads_secrets" | "reads_files" | "reads_env" | "reads_database" | "writes_files" | "writes_database" | "network_access" | "executes_code" | "modifies_state" | "sends_email" | "sends_webhook" | "accesses_external_api";
|
|
417
|
+
/**
|
|
418
|
+
* A node in the tool capability graph
|
|
419
|
+
*/
|
|
420
|
+
export interface ToolNode {
|
|
421
|
+
/** Tool name */
|
|
422
|
+
name: string;
|
|
423
|
+
/** Tool description */
|
|
424
|
+
description: string;
|
|
425
|
+
/** Classified capabilities */
|
|
426
|
+
capabilities: ToolCapability[];
|
|
427
|
+
/** Risk score (0-100) */
|
|
428
|
+
riskScore: number;
|
|
429
|
+
/** Whether this tool could be a source of secrets */
|
|
430
|
+
isSecretSource: boolean;
|
|
431
|
+
/** Whether this tool has network/external access */
|
|
432
|
+
isNetworkSink: boolean;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* An edge representing data flow between tools
|
|
436
|
+
*/
|
|
437
|
+
export interface ToolEdge {
|
|
438
|
+
/** Source tool name */
|
|
439
|
+
source: string;
|
|
440
|
+
/** Target tool name */
|
|
441
|
+
target: string;
|
|
442
|
+
/** Type of data flow */
|
|
443
|
+
dataFlow: "input" | "output" | "chained" | "implicit";
|
|
444
|
+
/** Description of the flow */
|
|
445
|
+
description?: string;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* A potential exfiltration path through the tool graph
|
|
449
|
+
*/
|
|
450
|
+
export interface ExfilPath {
|
|
451
|
+
/** Tool that reads secrets/sensitive data */
|
|
452
|
+
source: string;
|
|
453
|
+
/** Tool with network/external access */
|
|
454
|
+
sink: string;
|
|
455
|
+
/** Intermediate tools in the path */
|
|
456
|
+
path: string[];
|
|
457
|
+
/** Full path including source and sink */
|
|
458
|
+
fullPath: string[];
|
|
459
|
+
/** Risk level based on path characteristics */
|
|
460
|
+
riskLevel: Severity;
|
|
461
|
+
/** Description of the exfiltration risk */
|
|
462
|
+
description: string;
|
|
463
|
+
/** Suggested mitigations */
|
|
464
|
+
mitigations: string[];
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Complete tool capability graph
|
|
468
|
+
*/
|
|
469
|
+
export interface ToolGraph {
|
|
470
|
+
/** All tools as nodes */
|
|
471
|
+
nodes: Map<string, ToolNode>;
|
|
472
|
+
/** Data flow edges between tools */
|
|
473
|
+
edges: ToolEdge[];
|
|
474
|
+
/** Identified exfiltration paths */
|
|
475
|
+
exfilPaths: ExfilPath[];
|
|
476
|
+
/** Minimal set of tools to sandbox to cut all paths */
|
|
477
|
+
cutSet: string[];
|
|
478
|
+
/** Mermaid diagram representation */
|
|
479
|
+
mermaidDiagram: string;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Types of manifest audit findings
|
|
483
|
+
*/
|
|
484
|
+
export type ManifestAuditCheck = "missing-destructive-hint" | "missing-readonly-hint" | "missing-input-schema" | "unbounded-origins" | "version-drift" | "missing-description" | "excessive-permissions" | "undeclared-network" | "undeclared-code-execution";
|
|
485
|
+
/**
|
|
486
|
+
* A finding from manifest audit
|
|
487
|
+
*/
|
|
488
|
+
export interface ManifestAuditFinding {
|
|
489
|
+
/** Type of issue found */
|
|
490
|
+
check: ManifestAuditCheck;
|
|
491
|
+
/** Severity of the finding */
|
|
492
|
+
severity: Severity;
|
|
493
|
+
/** Which tool has the issue */
|
|
494
|
+
tool: string;
|
|
495
|
+
/** Human-readable description */
|
|
496
|
+
description: string;
|
|
497
|
+
/** Suggested fix */
|
|
498
|
+
suggestion: string;
|
|
499
|
+
/** Current value if applicable */
|
|
500
|
+
currentValue?: unknown;
|
|
501
|
+
/** Expected value if applicable */
|
|
502
|
+
expectedValue?: unknown;
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Types of drift that can occur in tool definitions
|
|
506
|
+
*/
|
|
507
|
+
export type DriftType = "tool-added" | "tool-removed" | "description-changed" | "schema-changed" | "permission-changed" | "capability-changed";
|
|
508
|
+
/**
|
|
509
|
+
* A baseline snapshot of a tool definition
|
|
510
|
+
*/
|
|
511
|
+
export interface ToolBaseline {
|
|
512
|
+
/** Tool name */
|
|
513
|
+
name: string;
|
|
514
|
+
/** Hash of tool definition */
|
|
515
|
+
hash: string;
|
|
516
|
+
/** Original description */
|
|
517
|
+
description: string;
|
|
518
|
+
/** Original input schema hash */
|
|
519
|
+
schemaHash: string;
|
|
520
|
+
/** Original hints */
|
|
521
|
+
hints: {
|
|
522
|
+
destructive?: boolean;
|
|
523
|
+
readOnly?: boolean;
|
|
524
|
+
};
|
|
525
|
+
/** Timestamp when baseline was captured */
|
|
526
|
+
capturedAt: string;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Complete baseline for an MCP server
|
|
530
|
+
*/
|
|
531
|
+
export interface ServerBaseline {
|
|
532
|
+
/** MCP server name */
|
|
533
|
+
serverName: string;
|
|
534
|
+
/** Server version at baseline */
|
|
535
|
+
version: string;
|
|
536
|
+
/** Overall manifest hash */
|
|
537
|
+
manifestHash: string;
|
|
538
|
+
/** Individual tool baselines */
|
|
539
|
+
tools: ToolBaseline[];
|
|
540
|
+
/** When the baseline was signed */
|
|
541
|
+
signedAt: string;
|
|
542
|
+
/** Signature if available */
|
|
543
|
+
signature?: string;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* A detected drift from baseline
|
|
547
|
+
*/
|
|
548
|
+
export interface DriftFinding {
|
|
549
|
+
/** Type of drift */
|
|
550
|
+
type: DriftType;
|
|
551
|
+
/** Severity based on drift type */
|
|
552
|
+
severity: Severity;
|
|
553
|
+
/** Affected tool name */
|
|
554
|
+
tool: string;
|
|
555
|
+
/** Description of the change */
|
|
556
|
+
description: string;
|
|
557
|
+
/** Value in baseline */
|
|
558
|
+
baselineValue?: string;
|
|
559
|
+
/** Current value */
|
|
560
|
+
currentValue?: string;
|
|
561
|
+
/** When the drift was detected */
|
|
562
|
+
detectedAt: string;
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* A record of actual tool usage
|
|
566
|
+
*/
|
|
567
|
+
export interface ToolUsageRecord {
|
|
568
|
+
/** Tool name */
|
|
569
|
+
tool: string;
|
|
570
|
+
/** Number of invocations */
|
|
571
|
+
invocations: number;
|
|
572
|
+
/** Arguments patterns seen */
|
|
573
|
+
argumentPatterns: string[];
|
|
574
|
+
/** Files/resources accessed */
|
|
575
|
+
resourcesAccessed: string[];
|
|
576
|
+
/** Last used timestamp */
|
|
577
|
+
lastUsed: string;
|
|
578
|
+
/** First used timestamp */
|
|
579
|
+
firstUsed: string;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* A permission tightening proposal
|
|
583
|
+
*/
|
|
584
|
+
export interface PermissionProposal {
|
|
585
|
+
/** Type of proposal */
|
|
586
|
+
type: "disable-unused" | "scope-down" | "remove-permission" | "add-constraint";
|
|
587
|
+
/** Affected tool */
|
|
588
|
+
tool: string;
|
|
589
|
+
/** Current permission/state */
|
|
590
|
+
current: string;
|
|
591
|
+
/** Proposed permission/state */
|
|
592
|
+
proposed: string;
|
|
593
|
+
/** Rationale for the change */
|
|
594
|
+
rationale: string;
|
|
595
|
+
/** Risk reduction if applied (0-100) */
|
|
596
|
+
riskReduction: number;
|
|
597
|
+
/** Confidence in the proposal (0-100) */
|
|
598
|
+
confidence: number;
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* Supply chain vulnerability in MCP server dependencies
|
|
602
|
+
*/
|
|
603
|
+
export interface MCPSupplyChainVuln {
|
|
604
|
+
/** Vulnerable package name */
|
|
605
|
+
package: string;
|
|
606
|
+
/** Installed version */
|
|
607
|
+
installedVersion: string;
|
|
608
|
+
/** Fixed version if available */
|
|
609
|
+
fixedVersion?: string;
|
|
610
|
+
/** CVE ID if applicable */
|
|
611
|
+
cveId?: string;
|
|
612
|
+
/** GHSA ID if applicable */
|
|
613
|
+
ghsaId?: string;
|
|
614
|
+
/** Severity */
|
|
615
|
+
severity: Severity;
|
|
616
|
+
/** Description */
|
|
617
|
+
description: string;
|
|
618
|
+
/** Whether the package is a direct or transitive dependency */
|
|
619
|
+
isDirect: boolean;
|
|
620
|
+
/** Dependency path if transitive */
|
|
621
|
+
dependencyPath?: string[];
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Sigstore verification result
|
|
625
|
+
*/
|
|
626
|
+
export interface SigstoreVerification {
|
|
627
|
+
/** Whether the package/release is signed */
|
|
628
|
+
isSigned: boolean;
|
|
629
|
+
/** Whether the signature is valid */
|
|
630
|
+
signatureValid?: boolean;
|
|
631
|
+
/** Certificate issuer */
|
|
632
|
+
issuer?: string;
|
|
633
|
+
/** Certificate subject */
|
|
634
|
+
subject?: string;
|
|
635
|
+
/** Signature timestamp */
|
|
636
|
+
signedAt?: string;
|
|
637
|
+
/** Verification errors */
|
|
638
|
+
errors?: string[];
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Sandbox escape patterns to detect
|
|
642
|
+
*/
|
|
643
|
+
export type SandboxEscape = "child_process" | "eval" | "Function" | "vm" | "require" | "import-dynamic" | "fs-outside-scope" | "net-undeclared" | "env-access" | "process-access";
|
|
644
|
+
/**
|
|
645
|
+
* A sandbox escape finding
|
|
646
|
+
*/
|
|
647
|
+
export interface SandboxFinding {
|
|
648
|
+
/** Type of escape */
|
|
649
|
+
escape: SandboxEscape;
|
|
650
|
+
/** Tool with the escape */
|
|
651
|
+
tool: string;
|
|
652
|
+
/** File where escape was found */
|
|
653
|
+
file: string;
|
|
654
|
+
/** Line number */
|
|
655
|
+
line: number;
|
|
656
|
+
/** Code snippet */
|
|
657
|
+
evidence: string;
|
|
658
|
+
/** Severity (most are critical or high) */
|
|
659
|
+
severity: Severity;
|
|
660
|
+
/** Description */
|
|
661
|
+
description: string;
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Credential types we can audit
|
|
665
|
+
*/
|
|
666
|
+
export type CredentialType = "github-pat" | "github-app" | "aws-access-key" | "aws-iam-role" | "gcp-service-account" | "azure-service-principal" | "api-key" | "oauth-token" | "jwt" | "sigstore-audience" | "unknown";
|
|
667
|
+
/**
|
|
668
|
+
* Scope overprovisioning finding
|
|
669
|
+
*/
|
|
670
|
+
export interface CredentialScopeFinding {
|
|
671
|
+
/** Type of credential */
|
|
672
|
+
credentialType: CredentialType;
|
|
673
|
+
/** Identifier (redacted) */
|
|
674
|
+
identifier: string;
|
|
675
|
+
/** Current scopes/permissions */
|
|
676
|
+
currentScopes: string[];
|
|
677
|
+
/** Recommended scopes based on usage */
|
|
678
|
+
recommendedScopes: string[];
|
|
679
|
+
/** Unused scopes that could be removed */
|
|
680
|
+
unusedScopes: string[];
|
|
681
|
+
/** Severity */
|
|
682
|
+
severity: Severity;
|
|
683
|
+
/** Age of the credential in days */
|
|
684
|
+
ageInDays?: number;
|
|
685
|
+
/** Whether rotation is recommended */
|
|
686
|
+
rotationRecommended: boolean;
|
|
687
|
+
/** Last rotation date if known */
|
|
688
|
+
lastRotated?: string;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Target for agent scanning
|
|
692
|
+
*/
|
|
693
|
+
export interface AgentScanTarget {
|
|
694
|
+
/** MCP server URL (stdio or HTTP) */
|
|
695
|
+
url?: string;
|
|
696
|
+
/** Path to MCP config file (server.json, mcp.json) */
|
|
697
|
+
configFile?: string;
|
|
698
|
+
/** npm package name */
|
|
699
|
+
npmPackage?: string;
|
|
700
|
+
/** Path to MCP server source code */
|
|
701
|
+
sourcePath?: string;
|
|
702
|
+
/** Pre-loaded manifest (skip discovery) */
|
|
703
|
+
manifest?: MCPManifest;
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* Options for running agent scanners
|
|
707
|
+
*/
|
|
708
|
+
export interface AgentScannerOptions {
|
|
709
|
+
/** Target to scan */
|
|
710
|
+
target: AgentScanTarget;
|
|
711
|
+
/** Which scanners to run */
|
|
712
|
+
scanners?: {
|
|
713
|
+
manifestAudit?: boolean;
|
|
714
|
+
toolDrift?: boolean;
|
|
715
|
+
promptInjection?: boolean;
|
|
716
|
+
exfilPath?: boolean;
|
|
717
|
+
permissionMinimiser?: boolean;
|
|
718
|
+
supplyChain?: boolean;
|
|
719
|
+
sandboxAudit?: boolean;
|
|
720
|
+
credentialScope?: boolean;
|
|
721
|
+
};
|
|
722
|
+
/** Path to baselines for drift detection */
|
|
723
|
+
baselinesDir?: string;
|
|
724
|
+
/** Path to tool traces for permission analysis */
|
|
725
|
+
tracesDir?: string;
|
|
726
|
+
/** Fuzzer options (legacy, prefer specific options below) */
|
|
727
|
+
fuzzerOptions?: FuzzerOptions;
|
|
728
|
+
/** Explicit authorization for scanning (required) */
|
|
729
|
+
authorized: boolean;
|
|
730
|
+
/** Timeout per scanner in milliseconds */
|
|
731
|
+
timeout?: number;
|
|
732
|
+
/** Maximum parallel scanners */
|
|
733
|
+
concurrency?: number;
|
|
734
|
+
/** Skip specific manifest audit checks */
|
|
735
|
+
manifestAuditSkipChecks?: ManifestAuditCheck[];
|
|
736
|
+
/** Only run specific manifest audit checks */
|
|
737
|
+
manifestAuditOnlyChecks?: ManifestAuditCheck[];
|
|
738
|
+
/** Create baseline if none exists */
|
|
739
|
+
createBaselineIfMissing?: boolean;
|
|
740
|
+
/** Force create a new baseline (overwrite existing) */
|
|
741
|
+
forceNewBaseline?: boolean;
|
|
742
|
+
/** Skip specific drift types */
|
|
743
|
+
driftSkipTypes?: DriftType[];
|
|
744
|
+
/** Fuzzer corpus size: quick (~50), standard (~200), thorough (~500+) */
|
|
745
|
+
fuzzerCorpus?: "quick" | "standard" | "thorough";
|
|
746
|
+
/** Path to custom payload directory */
|
|
747
|
+
customPayloadsDir?: string;
|
|
748
|
+
/** Specific payload categories to test */
|
|
749
|
+
fuzzerCategories?: PayloadCategory[];
|
|
750
|
+
/** Specific tools to fuzz (default: all) */
|
|
751
|
+
fuzzerTools?: string[];
|
|
752
|
+
/** Timeout per fuzz test in ms */
|
|
753
|
+
fuzzerTimeout?: number;
|
|
754
|
+
/** Stop fuzzer on first failure */
|
|
755
|
+
fuzzerFailFast?: boolean;
|
|
756
|
+
/** Include all edges in diagram (default: only exfil paths) */
|
|
757
|
+
exfilIncludeAllEdges?: boolean;
|
|
758
|
+
/** Maximum path length to consider */
|
|
759
|
+
exfilMaxPathLength?: number;
|
|
760
|
+
/** Output file for permission proposals */
|
|
761
|
+
permissionProposalsOutput?: string;
|
|
762
|
+
/** Minimum confidence threshold (0-100) */
|
|
763
|
+
permissionMinConfidence?: number;
|
|
764
|
+
/** Minimum risk reduction threshold (0-100) */
|
|
765
|
+
permissionMinRiskReduction?: number;
|
|
766
|
+
/** Path to MCP server package */
|
|
767
|
+
supplyChainPackagePath?: string;
|
|
768
|
+
/** Skip npm audit */
|
|
769
|
+
supplyChainSkipVulnScan?: boolean;
|
|
770
|
+
/** Skip license check */
|
|
771
|
+
supplyChainSkipLicenseCheck?: boolean;
|
|
772
|
+
/** Skip typosquatting check */
|
|
773
|
+
supplyChainSkipTyposquatCheck?: boolean;
|
|
774
|
+
/** Skip Sigstore verification */
|
|
775
|
+
supplyChainSkipSigstoreCheck?: boolean;
|
|
776
|
+
/** Path to scan for source files */
|
|
777
|
+
sandboxSourcePath?: string;
|
|
778
|
+
/** Maximum directory depth */
|
|
779
|
+
sandboxMaxDepth?: number;
|
|
780
|
+
/** Patterns to exclude */
|
|
781
|
+
sandboxExclude?: RegExp[];
|
|
782
|
+
/** Only check specific tools */
|
|
783
|
+
sandboxTools?: string[];
|
|
784
|
+
/** Directory to scan for config files */
|
|
785
|
+
credentialScanPath?: string;
|
|
786
|
+
/** Also scan environment variables */
|
|
787
|
+
credentialScanEnvironment?: boolean;
|
|
788
|
+
/** Additional files to scan */
|
|
789
|
+
credentialAdditionalFiles?: string[];
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* Default agent scanner options
|
|
793
|
+
*/
|
|
794
|
+
export declare const DEFAULT_AGENT_SCANNER_OPTIONS: Partial<AgentScannerOptions>;
|
|
795
|
+
/**
|
|
796
|
+
* Aggregated results from running all agent scanners
|
|
797
|
+
*/
|
|
798
|
+
export interface AggregatedAgentScanResult {
|
|
799
|
+
/** When the scan started */
|
|
800
|
+
timestamp: string;
|
|
801
|
+
/** Target that was scanned */
|
|
802
|
+
target: AgentScanTarget;
|
|
803
|
+
/** MCP manifest if discovered */
|
|
804
|
+
manifest?: MCPManifest;
|
|
805
|
+
/** Manifest hash */
|
|
806
|
+
manifestHash?: string;
|
|
807
|
+
/** Results from each scanner */
|
|
808
|
+
scanners: AgentScannerResult[];
|
|
809
|
+
/** Total findings across all scanners */
|
|
810
|
+
totalFindings: number;
|
|
811
|
+
/** Findings grouped by severity */
|
|
812
|
+
bySeverity: Record<Severity, number>;
|
|
813
|
+
/** Findings grouped by scanner */
|
|
814
|
+
byScanner: Partial<Record<AgentScannerType, number>>;
|
|
815
|
+
/** Total scan duration in milliseconds */
|
|
816
|
+
totalDuration: number;
|
|
817
|
+
/** Whether all scanners succeeded */
|
|
818
|
+
allSucceeded: boolean;
|
|
819
|
+
/** Scanners that failed */
|
|
820
|
+
failedScanners: AgentScannerType[];
|
|
821
|
+
/** Fuzzer summary if run */
|
|
822
|
+
fuzzerSummary?: FuzzerSummary;
|
|
823
|
+
/** Exfil graph if computed */
|
|
824
|
+
exfilGraph?: ToolGraph;
|
|
825
|
+
/** Permission proposals if computed */
|
|
826
|
+
permissionProposals?: PermissionProposal[];
|
|
827
|
+
/** Overall risk score (0-100) */
|
|
828
|
+
riskScore: number;
|
|
829
|
+
/** Certification readiness */
|
|
830
|
+
certificationReadiness: "ready" | "needs-review" | "blocked";
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Convert agent scanner type to finding ID prefix
|
|
834
|
+
*/
|
|
835
|
+
export declare function toAgentFindingId(scanner: AgentScannerType, index: number): string;
|
|
836
|
+
/**
|
|
837
|
+
* Severity mappings for agent scanner findings
|
|
838
|
+
*/
|
|
839
|
+
export declare const AGENT_SEVERITY_MAPPINGS: Record<ManifestAuditCheck | DriftType | SandboxEscape, Severity>;
|
|
840
|
+
//# sourceMappingURL=types.d.ts.map
|