@zivis/mcp 0.1.0-alpha.26 → 0.1.0-alpha.3
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/dist/api-client.d.ts +24 -1
- package/dist/api-client.js +52 -29
- package/dist/api-client.js.map +1 -0
- package/dist/auth/index.d.ts +22 -1
- package/dist/auth/index.js +38 -17
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/jwt.d.ts +16 -0
- package/dist/auth/jwt.js +13 -0
- package/dist/auth/jwt.js.map +1 -0
- package/dist/auth/keychain.d.ts +32 -6
- package/dist/auth/keychain.js +114 -83
- package/dist/auth/keychain.js.map +1 -0
- package/dist/auth/oauth.d.ts +37 -2
- package/dist/auth/oauth.js +48 -38
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/sessions.d.ts +25 -5
- package/dist/auth/sessions.js +39 -20
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/token-refresh.d.ts +22 -2
- package/dist/auth/token-refresh.js +35 -32
- package/dist/auth/token-refresh.js.map +1 -0
- package/dist/cli.d.ts +18 -1
- package/dist/cli.js +908 -30
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/project-binding.d.ts +19 -2
- package/dist/project-binding.js +21 -38
- package/dist/project-binding.js.map +1 -0
- package/dist/resolve-application-id.d.ts +4 -0
- package/dist/resolve-application-id.js +5 -0
- package/dist/resolve-application-id.js.map +1 -0
- package/dist/sanitize.d.ts +21 -0
- package/dist/sanitize.js +41 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/server.d.ts +13 -1
- package/dist/server.js +247 -122
- package/dist/server.js.map +1 -0
- package/dist/tools/check-project.d.ts +18 -5
- package/dist/tools/check-project.js +110 -122
- package/dist/tools/check-project.js.map +1 -0
- package/dist/tools/check-repo-trust.d.ts +19 -4
- package/dist/tools/check-repo-trust.js +47 -56
- package/dist/tools/check-repo-trust.js.map +1 -0
- package/dist/tools/create-diagram.d.ts +5 -0
- package/dist/tools/create-diagram.js +10 -0
- package/dist/tools/create-diagram.js.map +1 -0
- package/dist/tools/create-document.d.ts +5 -0
- package/dist/tools/create-document.js +6 -0
- package/dist/tools/create-document.js.map +1 -0
- package/dist/tools/discover-local-infra.d.ts +10 -0
- package/dist/tools/discover-local-infra.js +73 -3
- package/dist/tools/discover-local-infra.js.map +1 -0
- package/dist/tools/enterprise/capture-evidence.d.ts +54 -0
- package/dist/tools/enterprise/capture-evidence.js +72 -0
- package/dist/tools/enterprise/capture-evidence.js.map +1 -0
- package/dist/tools/enterprise/create-report-ticket.d.ts +34 -0
- package/dist/tools/enterprise/create-report-ticket.js +44 -0
- package/dist/tools/enterprise/create-report-ticket.js.map +1 -0
- package/dist/tools/enterprise/end-pentest-session.d.ts +33 -0
- package/dist/tools/enterprise/end-pentest-session.js +42 -0
- package/dist/tools/enterprise/end-pentest-session.js.map +1 -0
- package/dist/tools/enterprise/generate-report.d.ts +55 -0
- package/dist/tools/enterprise/generate-report.js +111 -0
- package/dist/tools/enterprise/generate-report.js.map +1 -0
- package/dist/tools/enterprise/get-org-zat.d.ts +5 -0
- package/dist/tools/enterprise/get-org-zat.js +6 -0
- package/dist/tools/enterprise/get-org-zat.js.map +1 -0
- package/dist/tools/enterprise/get-report-status.d.ts +27 -0
- package/dist/tools/enterprise/get-report-status.js +38 -0
- package/dist/tools/enterprise/get-report-status.js.map +1 -0
- package/dist/tools/enterprise/get-threat-model.d.ts +6 -1
- package/dist/tools/enterprise/get-threat-model.js +17 -52
- package/dist/tools/enterprise/get-threat-model.js.map +1 -0
- package/dist/tools/enterprise/list-agents.d.ts +42 -0
- package/dist/tools/enterprise/list-agents.js +95 -0
- package/dist/tools/enterprise/list-agents.js.map +1 -0
- package/dist/tools/enterprise/list-report-issues.d.ts +36 -0
- package/dist/tools/enterprise/list-report-issues.js +50 -0
- package/dist/tools/enterprise/list-report-issues.js.map +1 -0
- package/dist/tools/enterprise/list-threat-models.d.ts +5 -0
- package/dist/tools/enterprise/list-threat-models.js +8 -0
- package/dist/tools/enterprise/list-threat-models.js.map +1 -0
- package/dist/tools/enterprise/manage-actor.d.ts +6 -1
- package/dist/tools/enterprise/manage-actor.js +7 -14
- package/dist/tools/enterprise/manage-actor.js.map +1 -0
- package/dist/tools/enterprise/manage-attack-scenario.d.ts +6 -1
- package/dist/tools/enterprise/manage-attack-scenario.js +7 -13
- package/dist/tools/enterprise/manage-attack-scenario.js.map +1 -0
- package/dist/tools/enterprise/manage-component.d.ts +6 -1
- package/dist/tools/enterprise/manage-component.js +7 -20
- package/dist/tools/enterprise/manage-component.js.map +1 -0
- package/dist/tools/enterprise/manage-data-asset.d.ts +7 -2
- package/dist/tools/enterprise/manage-data-asset.js +7 -17
- package/dist/tools/enterprise/manage-data-asset.js.map +1 -0
- package/dist/tools/enterprise/manage-data-flow.d.ts +7 -2
- package/dist/tools/enterprise/manage-data-flow.js +7 -19
- package/dist/tools/enterprise/manage-data-flow.js.map +1 -0
- package/dist/tools/enterprise/manage-finding.d.ts +69 -0
- package/dist/tools/enterprise/manage-finding.js +106 -0
- package/dist/tools/enterprise/manage-finding.js.map +1 -0
- package/dist/tools/enterprise/manage-security-control.d.ts +6 -1
- package/dist/tools/enterprise/manage-security-control.js +7 -18
- package/dist/tools/enterprise/manage-security-control.js.map +1 -0
- package/dist/tools/enterprise/manage-test-case.d.ts +7 -2
- package/dist/tools/enterprise/manage-test-case.js +6 -8
- package/dist/tools/enterprise/manage-test-case.js.map +1 -0
- package/dist/tools/enterprise/promote-finding-to-issue.d.ts +36 -0
- package/dist/tools/enterprise/promote-finding-to-issue.js +65 -0
- package/dist/tools/enterprise/promote-finding-to-issue.js.map +1 -0
- package/dist/tools/enterprise/publish-report-version.d.ts +34 -0
- package/dist/tools/enterprise/publish-report-version.js +75 -0
- package/dist/tools/enterprise/publish-report-version.js.map +1 -0
- package/dist/tools/enterprise/publish-test-to-library.d.ts +31 -0
- package/dist/tools/enterprise/publish-test-to-library.js +40 -0
- package/dist/tools/enterprise/publish-test-to-library.js.map +1 -0
- package/dist/tools/enterprise/record-test-result.d.ts +67 -0
- package/dist/tools/enterprise/record-test-result.js +75 -0
- package/dist/tools/enterprise/record-test-result.js.map +1 -0
- package/dist/tools/enterprise/start-pentest-session.d.ts +35 -0
- package/dist/tools/enterprise/start-pentest-session.js +50 -0
- package/dist/tools/enterprise/start-pentest-session.js.map +1 -0
- package/dist/tools/enterprise/sync-report-section.d.ts +41 -0
- package/dist/tools/enterprise/sync-report-section.js +79 -0
- package/dist/tools/enterprise/sync-report-section.js.map +1 -0
- package/dist/tools/enterprise/update-report-issue.d.ts +55 -0
- package/dist/tools/enterprise/update-report-issue.js +69 -0
- package/dist/tools/enterprise/update-report-issue.js.map +1 -0
- package/dist/tools/generate-diagram.d.ts +6 -0
- package/dist/tools/generate-diagram.js +9 -0
- package/dist/tools/generate-diagram.js.map +1 -0
- package/dist/tools/get-agent-test-results.d.ts +41 -0
- package/dist/tools/get-agent-test-results.js +86 -0
- package/dist/tools/get-agent-test-results.js.map +1 -0
- package/dist/tools/get-application-overview.d.ts +5 -0
- package/dist/tools/get-application-overview.js +6 -0
- package/dist/tools/get-application-overview.js.map +1 -0
- package/dist/tools/get-application.d.ts +5 -0
- package/dist/tools/get-application.js +6 -0
- package/dist/tools/get-application.js.map +1 -0
- package/dist/tools/get-artifact-content.d.ts +29 -0
- package/dist/tools/get-artifact-content.js +86 -0
- package/dist/tools/get-artifact-content.js.map +1 -0
- package/dist/tools/get-diagram.d.ts +5 -0
- package/dist/tools/get-diagram.js +11 -1
- package/dist/tools/get-diagram.js.map +1 -0
- package/dist/tools/get-document.d.ts +5 -0
- package/dist/tools/get-document.js +6 -0
- package/dist/tools/get-document.js.map +1 -0
- package/dist/tools/get-finding-details.d.ts +28 -0
- package/dist/tools/get-finding-details.js +43 -0
- package/dist/tools/get-finding-details.js.map +1 -0
- package/dist/tools/get-findings.d.ts +57 -0
- package/dist/tools/get-findings.js +103 -0
- package/dist/tools/get-findings.js.map +1 -0
- package/dist/tools/get-oss-zat.d.ts +5 -0
- package/dist/tools/get-oss-zat.js +7 -0
- package/dist/tools/get-oss-zat.js.map +1 -0
- package/dist/tools/get-recon-scan.d.ts +27 -0
- package/dist/tools/get-recon-scan.js +46 -0
- package/dist/tools/get-recon-scan.js.map +1 -0
- package/dist/tools/get-scan-output.d.ts +27 -0
- package/dist/tools/get-scan-output.js +64 -0
- package/dist/tools/get-scan-output.js.map +1 -0
- package/dist/tools/get-scenario-details.d.ts +27 -0
- package/dist/tools/get-scenario-details.js +46 -0
- package/dist/tools/get-scenario-details.js.map +1 -0
- package/dist/tools/get-test-case-results.d.ts +37 -0
- package/dist/tools/get-test-case-results.js +66 -0
- package/dist/tools/get-test-case-results.js.map +1 -0
- package/dist/tools/get-test-details.d.ts +29 -0
- package/dist/tools/get-test-details.js +49 -0
- package/dist/tools/get-test-details.js.map +1 -0
- package/dist/tools/get-trust-keys.d.ts +5 -0
- package/dist/tools/get-trust-keys.js +6 -0
- package/dist/tools/get-trust-keys.js.map +1 -0
- package/dist/tools/import-openapi-endpoints.d.ts +5 -0
- package/dist/tools/import-openapi-endpoints.js +6 -0
- package/dist/tools/import-openapi-endpoints.js.map +1 -0
- package/dist/tools/inspect-zat.d.ts +5 -0
- package/dist/tools/inspect-zat.js +19 -0
- package/dist/tools/inspect-zat.js.map +1 -0
- package/dist/tools/list-agent-test-cases.d.ts +41 -0
- package/dist/tools/list-agent-test-cases.js +73 -0
- package/dist/tools/list-agent-test-cases.js.map +1 -0
- package/dist/tools/list-applications.d.ts +6 -1
- package/dist/tools/list-applications.js +6 -0
- package/dist/tools/list-applications.js.map +1 -0
- package/dist/tools/list-diagrams.d.ts +5 -0
- package/dist/tools/list-diagrams.js +6 -0
- package/dist/tools/list-diagrams.js.map +1 -0
- package/dist/tools/list-documents.d.ts +5 -0
- package/dist/tools/list-documents.js +6 -0
- package/dist/tools/list-documents.js.map +1 -0
- package/dist/tools/list-endpoints.d.ts +5 -0
- package/dist/tools/list-endpoints.js +6 -0
- package/dist/tools/list-endpoints.js.map +1 -0
- package/dist/tools/list-recon-scans.d.ts +36 -0
- package/dist/tools/list-recon-scans.js +74 -0
- package/dist/tools/list-recon-scans.js.map +1 -0
- package/dist/tools/list-scan-artifacts.d.ts +41 -0
- package/dist/tools/list-scan-artifacts.js +63 -0
- package/dist/tools/list-scan-artifacts.js.map +1 -0
- package/dist/tools/list-scans.d.ts +44 -0
- package/dist/tools/list-scans.js +91 -0
- package/dist/tools/list-scans.js.map +1 -0
- package/dist/tools/list-test-library.d.ts +44 -0
- package/dist/tools/list-test-library.js +83 -0
- package/dist/tools/list-test-library.js.map +1 -0
- package/dist/tools/list-test-scenarios.d.ts +31 -0
- package/dist/tools/list-test-scenarios.js +66 -0
- package/dist/tools/list-test-scenarios.js.map +1 -0
- package/dist/tools/local-scan.d.ts +40 -0
- package/dist/tools/local-scan.js +261 -0
- package/dist/tools/local-scan.js.map +1 -0
- package/dist/tools/manage-diagram.d.ts +5 -0
- package/dist/tools/manage-diagram.js +16 -0
- package/dist/tools/manage-diagram.js.map +1 -0
- package/dist/tools/open-in-ide.d.ts +13 -1
- package/dist/tools/open-in-ide.js +13 -0
- package/dist/tools/open-in-ide.js.map +1 -0
- package/dist/tools/run-test-scenario.d.ts +37 -0
- package/dist/tools/run-test-scenario.js +70 -0
- package/dist/tools/run-test-scenario.js.map +1 -0
- package/dist/tools/scan-pr.d.ts +27 -0
- package/dist/tools/scan-pr.js +51 -0
- package/dist/tools/scan-pr.js.map +1 -0
- package/dist/tools/security-review.d.ts +16 -0
- package/dist/tools/security-review.js +77 -63
- package/dist/tools/security-review.js.map +1 -0
- package/dist/tools/setup-red-team-target.d.ts +79 -0
- package/dist/tools/setup-red-team-target.js +430 -0
- package/dist/tools/setup-red-team-target.js.map +1 -0
- package/dist/tools/triage-finding.d.ts +47 -0
- package/dist/tools/triage-finding.js +116 -0
- package/dist/tools/triage-finding.js.map +1 -0
- package/dist/tools/update-document.d.ts +5 -0
- package/dist/tools/update-document.js +6 -0
- package/dist/tools/update-document.js.map +1 -0
- package/dist/tools/update-endpoint.d.ts +5 -0
- package/dist/tools/update-endpoint.js +7 -0
- package/dist/tools/update-endpoint.js.map +1 -0
- package/dist/tools/update-mermaid-source.d.ts +13 -0
- package/dist/tools/update-mermaid-source.js +14 -0
- package/dist/tools/update-mermaid-source.js.map +1 -0
- package/dist/tools/verify-trust-mark.d.ts +5 -0
- package/dist/tools/verify-trust-mark.js +6 -0
- package/dist/tools/verify-trust-mark.js.map +1 -0
- package/dist/types.d.ts +14 -14
- package/dist/types.js +28 -22
- package/dist/types.js.map +1 -0
- package/package.json +4 -24
- package/LICENSE +0 -201
- package/README.md +0 -19
- package/dist/lib/inspect-cache.d.ts +0 -10
- package/dist/lib/inspect-cache.js +0 -75
- package/dist/lib/next-steps.d.ts +0 -27
- package/dist/lib/next-steps.js +0 -21
- package/dist/matcher/ast-eval.d.ts +0 -8
- package/dist/matcher/ast-eval.js +0 -95
- package/dist/matcher/finding.d.ts +0 -55
- package/dist/matcher/finding.js +0 -1
- package/dist/matcher/index.d.ts +0 -8
- package/dist/matcher/index.js +0 -202
- package/dist/matcher/inference-candidates.d.ts +0 -26
- package/dist/matcher/inference-candidates.js +0 -81
- package/dist/matcher/walker.d.ts +0 -7
- package/dist/matcher/walker.js +0 -71
- package/dist/pattern-pack/index.d.ts +0 -125
- package/dist/pattern-pack/index.js +0 -189
- package/dist/pattern-packs/zivis-public-0.2.0/capsules/agents/privilege-separation.yaml +0 -224
- package/dist/pattern-packs/zivis-public-0.2.0/capsules/prompting/self-consistency-no-isolation.yaml +0 -237
- package/dist/pattern-packs/zivis-public-0.2.0/capsules/retrieval/context-injection-no-validator.yaml +0 -348
- package/dist/pattern-packs/zivis-public-0.2.0/capsules/security/late-org-filter.yaml +0 -266
- package/dist/pattern-packs/zivis-public-0.2.0/controls/external_validator_on_facts.yaml +0 -37
- package/dist/pattern-packs/zivis-public-0.2.0/controls/fact_validator_present.yaml +0 -68
- package/dist/pattern-packs/zivis-public-0.2.0/controls/human_approval_gate.yaml +0 -44
- package/dist/pattern-packs/zivis-public-0.2.0/controls/langgraph_state_machine_with_per_node_tools.yaml +0 -35
- package/dist/pattern-packs/zivis-public-0.2.0/controls/per_sample_retrieval_diversification.yaml +0 -38
- package/dist/pattern-packs/zivis-public-0.2.0/controls/prisma_extension_or_middleware_attaching_org_filter.yaml +0 -31
- package/dist/pattern-packs/zivis-public-0.2.0/controls/row_level_security_policy.yaml +0 -37
- package/dist/pattern-packs/zivis-public-0.2.0/controls/source_attribution_present.yaml +0 -58
- package/dist/pattern-packs/zivis-public-0.2.0/manifest.json +0 -167
- package/dist/pattern-packs/zivis-public-0.2.0/prompts/agents/privilege-separation/identify.md +0 -54
- package/dist/pattern-packs/zivis-public-0.2.0/prompts/prompting/self-consistency-no-isolation/identify.md +0 -60
- package/dist/pattern-packs/zivis-public-0.2.0/prompts/retrieval/context-injection-no-validator/identify.md +0 -109
- package/dist/pattern-packs/zivis-public-0.2.0/prompts/security/late-org-filter/identify.md +0 -78
- package/dist/prompts/audit-dependencies.d.ts +0 -2
- package/dist/prompts/audit-dependencies.js +0 -47
- package/dist/prompts/getting-started.d.ts +0 -2
- package/dist/prompts/getting-started.js +0 -37
- package/dist/prompts/index.d.ts +0 -2
- package/dist/prompts/index.js +0 -6
- package/dist/tools/enterprise/get-threat-model-artifact.d.ts +0 -24
- package/dist/tools/enterprise/get-threat-model-artifact.js +0 -68
- package/dist/tools/enterprise/list-attack-scenarios.d.ts +0 -24
- package/dist/tools/enterprise/list-attack-scenarios.js +0 -63
- package/dist/tools/enterprise/list-attack-step-library-tests.d.ts +0 -24
- package/dist/tools/enterprise/list-attack-step-library-tests.js +0 -55
- package/dist/tools/enterprise/list-threat-model-artifacts.d.ts +0 -55
- package/dist/tools/enterprise/list-threat-model-artifacts.js +0 -108
- package/dist/tools/enterprise/list-threat-model-review-items.d.ts +0 -30
- package/dist/tools/enterprise/list-threat-model-review-items.js +0 -54
- package/dist/tools/enterprise/list-threat-model-versions.d.ts +0 -24
- package/dist/tools/enterprise/list-threat-model-versions.js +0 -54
- package/dist/tools/enterprise/manage-threat-model-analysis.d.ts +0 -44
- package/dist/tools/enterprise/manage-threat-model-analysis.js +0 -83
- package/dist/tools/enterprise/manage-threat-model-review.d.ts +0 -38
- package/dist/tools/enterprise/manage-threat-model-review.js +0 -72
- package/dist/tools/get-started.d.ts +0 -18
- package/dist/tools/get-started.js +0 -470
- package/dist/tools/inspect.d.ts +0 -21
- package/dist/tools/inspect.js +0 -222
- package/dist/tools/manage-application.d.ts +0 -64
- package/dist/tools/manage-application.js +0 -129
- package/dist/tools/manage-endpoint-lifecycle.d.ts +0 -80
- package/dist/tools/manage-endpoint-lifecycle.js +0 -180
- package/dist/tools/threat-get-capsule.d.ts +0 -15
- package/dist/tools/threat-get-capsule.js +0 -53
- package/dist/tools/threat-get-inference-prompt.d.ts +0 -15
- package/dist/tools/threat-get-inference-prompt.js +0 -73
- package/dist/tools/threat-guide.d.ts +0 -28
- package/dist/tools/threat-guide.js +0 -175
- package/dist/tools/threat-list-relevant-capsules.d.ts +0 -17
- package/dist/tools/threat-list-relevant-capsules.js +0 -158
- package/dist/tools/threat-run-matcher.d.ts +0 -17
- package/dist/tools/threat-run-matcher.js +0 -145
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-pr.js","sourceRoot":"","sources":["../../src/tools/scan-pr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;8FAa2D,CAAC;AAE/F,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CACP,8DAA8D,CAC/D;CACJ,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,KAAK,EAAE,MAA0B,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAC/B,qBAAqB,EACrB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC1B,CAAC;YAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEzC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;qBACzC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_security_review — AI-powered security code review with ZIVIS intelligence
|
|
3
|
+
*
|
|
4
|
+
* Composite tool that gathers security context from multiple ZIVIS sources
|
|
5
|
+
* and returns it as structured input for Claude to use during code review.
|
|
6
|
+
*
|
|
7
|
+
* Sources:
|
|
8
|
+
* 1. Historical findings (resolved) — regression check patterns
|
|
9
|
+
* 2. Open findings — known vulnerabilities to verify aren't reintroduced
|
|
10
|
+
* 3. Threat model security controls — what's expected to be in place
|
|
11
|
+
* 4. Threat model attack scenarios — known attack vectors
|
|
12
|
+
* 5. OSS trust data — dependency risk signals
|
|
13
|
+
*
|
|
14
|
+
* This tool does NOT run scans itself. It assembles intelligence from ZIVIS
|
|
15
|
+
* so Claude can perform an informed, context-aware code review.
|
|
16
|
+
*/
|
|
1
17
|
import { z } from "zod";
|
|
2
18
|
import type { ApiClient } from "../api-client.js";
|
|
3
19
|
import type { ZivisConfig } from "../types.js";
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_security_review — AI-powered security code review with ZIVIS intelligence
|
|
3
|
+
*
|
|
4
|
+
* Composite tool that gathers security context from multiple ZIVIS sources
|
|
5
|
+
* and returns it as structured input for Claude to use during code review.
|
|
6
|
+
*
|
|
7
|
+
* Sources:
|
|
8
|
+
* 1. Historical findings (resolved) — regression check patterns
|
|
9
|
+
* 2. Open findings — known vulnerabilities to verify aren't reintroduced
|
|
10
|
+
* 3. Threat model security controls — what's expected to be in place
|
|
11
|
+
* 4. Threat model attack scenarios — known attack vectors
|
|
12
|
+
* 5. OSS trust data — dependency risk signals
|
|
13
|
+
*
|
|
14
|
+
* This tool does NOT run scans itself. It assembles intelligence from ZIVIS
|
|
15
|
+
* so Claude can perform an informed, context-aware code review.
|
|
16
|
+
*/
|
|
1
17
|
import { z } from "zod";
|
|
2
18
|
import { resolveApplicationId } from "../resolve-application-id.js";
|
|
3
19
|
import { sanitizeResponse } from "../sanitize.js";
|
|
@@ -44,6 +60,7 @@ export const SECURITY_REVIEW_SCHEMA = {
|
|
|
44
60
|
.optional()
|
|
45
61
|
.describe("Specific dependencies to check trust scores for (owner/repo format)"),
|
|
46
62
|
};
|
|
63
|
+
// Severity ordering for threshold filtering
|
|
47
64
|
const SEVERITY_ORDER = {
|
|
48
65
|
critical: 5,
|
|
49
66
|
high: 4,
|
|
@@ -72,6 +89,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
72
89
|
parameters: { repo, application_id, threat_model_id, campaign_id },
|
|
73
90
|
};
|
|
74
91
|
const errors = [];
|
|
92
|
+
// ── 1. Historical findings (regression check) ──
|
|
75
93
|
if (shouldInclude("regression") && (repo || application_id)) {
|
|
76
94
|
try {
|
|
77
95
|
const resolvedFindings = await fetchFindings(apiClient, {
|
|
@@ -84,6 +102,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
84
102
|
status: "false_positive",
|
|
85
103
|
limit: 20,
|
|
86
104
|
});
|
|
105
|
+
// Build regression patterns: group by category/CWE
|
|
87
106
|
const regressionPatterns = buildRegressionPatterns(resolvedFindings);
|
|
88
107
|
context.regressionCheck = {
|
|
89
108
|
_instruction: "Check code changes against these previously fixed vulnerabilities. Flag if similar patterns appear.",
|
|
@@ -97,6 +116,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
97
116
|
errors.push(`Regression data: ${err instanceof Error ? err.message : "failed"}`);
|
|
98
117
|
}
|
|
99
118
|
}
|
|
119
|
+
// ── 2. Open findings (known vulnerabilities) ──
|
|
100
120
|
if (shouldInclude("regression") && (repo || application_id)) {
|
|
101
121
|
try {
|
|
102
122
|
const minSeverity = SEVERITY_ORDER[severity_threshold] || 2;
|
|
@@ -105,6 +125,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
105
125
|
status: "open",
|
|
106
126
|
limit: 50,
|
|
107
127
|
});
|
|
128
|
+
// Filter by severity threshold
|
|
108
129
|
const filtered = openFindings.filter((f) => (SEVERITY_ORDER[f.severity] || 1) >= minSeverity);
|
|
109
130
|
context.openVulnerabilities = {
|
|
110
131
|
_instruction: "These are KNOWN open vulnerabilities. Check if code changes interact with or worsen these issues.",
|
|
@@ -117,76 +138,64 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
117
138
|
errors.push(`Open findings: ${err instanceof Error ? err.message : "failed"}`);
|
|
118
139
|
}
|
|
119
140
|
}
|
|
120
|
-
|
|
121
|
-
|
|
141
|
+
// ── 3. Threat model: security controls ──
|
|
142
|
+
if (shouldInclude("controls") && threat_model_id) {
|
|
122
143
|
try {
|
|
123
|
-
tm = await apiClient.get(`/api/threat-models/${threat_model_id}?include=all`);
|
|
144
|
+
const tm = await apiClient.get(`/api/threat-models/${threat_model_id}?include=all`);
|
|
145
|
+
const controls = tm.securityControls || [];
|
|
146
|
+
const notImplemented = controls.filter((c) => c.status === "not_implemented");
|
|
147
|
+
const partial = controls.filter((c) => c.status === "partial");
|
|
148
|
+
const implemented = controls.filter((c) => c.status === "implemented");
|
|
149
|
+
context.securityControls = {
|
|
150
|
+
_instruction: "Verify that code implements these expected security controls. Flag missing or weak implementations.",
|
|
151
|
+
summary: {
|
|
152
|
+
implemented: implemented.length,
|
|
153
|
+
partial: partial.length,
|
|
154
|
+
notImplemented: notImplemented.length,
|
|
155
|
+
},
|
|
156
|
+
gapControls: [...notImplemented, ...partial].map((c) => ({
|
|
157
|
+
name: c.name,
|
|
158
|
+
type: c.controlType,
|
|
159
|
+
status: c.status,
|
|
160
|
+
description: c.description,
|
|
161
|
+
effectiveness: c.effectivenessRating,
|
|
162
|
+
})),
|
|
163
|
+
implementedControls: implemented.map((c) => ({
|
|
164
|
+
name: c.name,
|
|
165
|
+
type: c.controlType,
|
|
166
|
+
description: c.description,
|
|
167
|
+
})),
|
|
168
|
+
};
|
|
124
169
|
}
|
|
125
170
|
catch (err) {
|
|
126
|
-
errors.push(`
|
|
171
|
+
errors.push(`Security controls: ${err instanceof Error ? err.message : "failed"}`);
|
|
127
172
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
status: c.status,
|
|
149
|
-
description: c.description,
|
|
150
|
-
effectiveness: c.effectivenessRating,
|
|
151
|
-
})),
|
|
152
|
-
implementedControls: implemented.map((c) => ({
|
|
153
|
-
name: c.name,
|
|
154
|
-
type: c.controlType,
|
|
155
|
-
description: c.description,
|
|
156
|
-
})),
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
catch (err) {
|
|
160
|
-
errors.push(`Security controls: ${err instanceof Error ? err.message : "failed"}`);
|
|
161
|
-
}
|
|
173
|
+
}
|
|
174
|
+
// ── 4. Threat model: attack scenarios ──
|
|
175
|
+
if (shouldInclude("attack_scenarios") && threat_model_id) {
|
|
176
|
+
try {
|
|
177
|
+
const tm = await apiClient.get(`/api/threat-models/${threat_model_id}?include=all`);
|
|
178
|
+
const scenarios = tm.attackScenarios || [];
|
|
179
|
+
const minSeverity = SEVERITY_ORDER[severity_threshold] || 2;
|
|
180
|
+
const filtered = scenarios.filter((s) => (SEVERITY_ORDER[s.severity] || 1) >= minSeverity);
|
|
181
|
+
context.attackScenarios = {
|
|
182
|
+
_instruction: "Review code for susceptibility to these known attack vectors. Check that mitigations are in place.",
|
|
183
|
+
count: filtered.length,
|
|
184
|
+
scenarios: filtered.map((s) => ({
|
|
185
|
+
name: s.name,
|
|
186
|
+
strideCategory: s.strideCategory,
|
|
187
|
+
severity: s.severity,
|
|
188
|
+
likelihood: s.likelihood,
|
|
189
|
+
attackVector: s.attackVector,
|
|
190
|
+
description: s.description,
|
|
191
|
+
})),
|
|
192
|
+
};
|
|
162
193
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const scenarios = Array.isArray(latestVersion.attackScenarios)
|
|
166
|
-
? latestVersion.attackScenarios
|
|
167
|
-
: [];
|
|
168
|
-
const minSeverity = SEVERITY_ORDER[severity_threshold] || 2;
|
|
169
|
-
const filtered = scenarios.filter((s) => (SEVERITY_ORDER[s.severity] || 1) >= minSeverity);
|
|
170
|
-
context.attackScenarios = {
|
|
171
|
-
_instruction: "Review code for susceptibility to these known attack vectors. Check that mitigations are in place.",
|
|
172
|
-
count: filtered.length,
|
|
173
|
-
scenarios: filtered.map((s) => ({
|
|
174
|
-
displayId: s.displayId,
|
|
175
|
-
title: s.title,
|
|
176
|
-
strideCategory: s.strideCategory,
|
|
177
|
-
severity: s.severity,
|
|
178
|
-
likelihood: s.likelihood,
|
|
179
|
-
riskScore: s.riskScore,
|
|
180
|
-
status: s.status,
|
|
181
|
-
narrative: s.narrative,
|
|
182
|
-
})),
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
catch (err) {
|
|
186
|
-
errors.push(`Attack scenarios: ${err instanceof Error ? err.message : "failed"}`);
|
|
187
|
-
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
errors.push(`Attack scenarios: ${err instanceof Error ? err.message : "failed"}`);
|
|
188
196
|
}
|
|
189
197
|
}
|
|
198
|
+
// ── 5. Dependency trust scores ──
|
|
190
199
|
if (shouldInclude("dependencies") && dependency_list && dependency_list.length > 0) {
|
|
191
200
|
const depResults = [];
|
|
192
201
|
const baseUrl = config.apiBaseUrl;
|
|
@@ -229,6 +238,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
229
238
|
dependencies: depResults,
|
|
230
239
|
};
|
|
231
240
|
}
|
|
241
|
+
// ── 6. Campaign findings (if campaign_id provided) ──
|
|
232
242
|
if (campaign_id) {
|
|
233
243
|
try {
|
|
234
244
|
const campaignFindings = await apiClient.get(`/api/campaigns/${campaign_id}/findings?limit=50`);
|
|
@@ -246,6 +256,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
246
256
|
errors.push(`Campaign findings: ${err instanceof Error ? err.message : "failed"}`);
|
|
247
257
|
}
|
|
248
258
|
}
|
|
259
|
+
// ── Build review guidance ──
|
|
249
260
|
context.reviewGuidance = buildReviewGuidance(context);
|
|
250
261
|
if (errors.length > 0) {
|
|
251
262
|
context.warnings = errors;
|
|
@@ -258,6 +269,7 @@ export function createSecurityReviewHandler(apiClient, config) {
|
|
|
258
269
|
};
|
|
259
270
|
};
|
|
260
271
|
}
|
|
272
|
+
// ── Helpers ──
|
|
261
273
|
async function fetchFindings(apiClient, params) {
|
|
262
274
|
const query = new URLSearchParams();
|
|
263
275
|
if (params.repo)
|
|
@@ -291,6 +303,7 @@ function countBySeverity(findings) {
|
|
|
291
303
|
return counts;
|
|
292
304
|
}
|
|
293
305
|
function buildRegressionPatterns(resolvedFindings) {
|
|
306
|
+
// Group by category + CWE to find recurring vulnerability patterns
|
|
294
307
|
const patternMap = new Map();
|
|
295
308
|
for (const f of resolvedFindings) {
|
|
296
309
|
const key = `${f.category || "uncategorized"}::${f.cweId || "no-cwe"}`;
|
|
@@ -362,3 +375,4 @@ function parseRepo(input) {
|
|
|
362
375
|
}
|
|
363
376
|
return null;
|
|
364
377
|
}
|
|
378
|
+
//# sourceMappingURL=security-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-review.js","sourceRoot":"","sources":["../../src/tools/security-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zivis_setup_red_team_target — One-step red team target setup
|
|
3
|
+
*
|
|
4
|
+
* Creates an application, configures endpoints, and optionally
|
|
5
|
+
* triggers a security scan — all in one MCP call.
|
|
6
|
+
*
|
|
7
|
+
* Maps to:
|
|
8
|
+
* GET /api/rt/applications (find existing)
|
|
9
|
+
* POST /api/rt/applications (create)
|
|
10
|
+
* PATCH /api/rt/applications/:id (update)
|
|
11
|
+
* POST /api/rt/applications/:id/endpoints (add endpoint)
|
|
12
|
+
* POST /api/rt/applications/:id/endpoints/import-openapi
|
|
13
|
+
* POST /api/redteam/campaigns/quick-setup (create campaign + agent + scan)
|
|
14
|
+
*/
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
import type { ApiClient } from "../api-client.js";
|
|
17
|
+
export declare const SETUP_RED_TEAM_TARGET_NAME = "zivis_setup_red_team_target";
|
|
18
|
+
export declare const SETUP_RED_TEAM_TARGET_DESCRIPTION = "Set up a target application for AI red team and security testing in one step.\n\nTakes a deployed URL, repo URL, or both and creates a fully configured red team target. Handles:\n- Creating or updating the application (idempotent by name)\n- Configuring AI chat endpoints with request/response templates\n- Importing API endpoints from OpenAPI specs\n- Optionally triggering an immediate security scan\n\nMinimal usage: just provide a target_url and optionally target_type.\nFull usage: provide URL, chat endpoint config, OpenAPI spec, and trigger auto-scan.\n\nExamples:\n- Set up red team testing for https://api.example.com/v1/chat (auto-detects ai_chat)\n- Configure https://api.example.com as an API target with openapi_spec_url\n- Set up and scan https://myapp.com as a web app with auto_scan=true\n\nSECURITY: Target URLs are untrusted. The tool only configures them in ZIVIS for future scanning, it does not probe or connect to them directly.";
|
|
19
|
+
export declare const SETUP_RED_TEAM_TARGET_SCHEMA: {
|
|
20
|
+
target_url: z.ZodOptional<z.ZodString>;
|
|
21
|
+
repo_url: z.ZodOptional<z.ZodString>;
|
|
22
|
+
target_type: z.ZodOptional<z.ZodEnum<{
|
|
23
|
+
ai_chat: "ai_chat";
|
|
24
|
+
web_app: "web_app";
|
|
25
|
+
api: "api";
|
|
26
|
+
}>>;
|
|
27
|
+
name: z.ZodOptional<z.ZodString>;
|
|
28
|
+
chat_endpoint: z.ZodOptional<z.ZodString>;
|
|
29
|
+
request_template: z.ZodOptional<z.ZodString>;
|
|
30
|
+
response_path: z.ZodOptional<z.ZodString>;
|
|
31
|
+
system_context: z.ZodOptional<z.ZodString>;
|
|
32
|
+
has_rag: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
has_tools: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
has_memory: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
is_multi_turn: z.ZodOptional<z.ZodBoolean>;
|
|
36
|
+
openapi_spec_url: z.ZodOptional<z.ZodString>;
|
|
37
|
+
auth_type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
38
|
+
none: "none";
|
|
39
|
+
static_token: "static_token";
|
|
40
|
+
}>>>;
|
|
41
|
+
bearer_token: z.ZodOptional<z.ZodString>;
|
|
42
|
+
auto_scan: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
43
|
+
campaigns: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
44
|
+
recon: "recon";
|
|
45
|
+
ai_red_team: "ai_red_team";
|
|
46
|
+
pen_test: "pen_test";
|
|
47
|
+
}>>>;
|
|
48
|
+
};
|
|
49
|
+
export declare function createSetupRedTeamTargetHandler(apiClient: ApiClient): (params: {
|
|
50
|
+
target_url?: string;
|
|
51
|
+
repo_url?: string;
|
|
52
|
+
target_type?: "ai_chat" | "web_app" | "api";
|
|
53
|
+
name?: string;
|
|
54
|
+
chat_endpoint?: string;
|
|
55
|
+
request_template?: string;
|
|
56
|
+
response_path?: string;
|
|
57
|
+
system_context?: string;
|
|
58
|
+
has_rag?: boolean;
|
|
59
|
+
has_tools?: boolean;
|
|
60
|
+
has_memory?: boolean;
|
|
61
|
+
is_multi_turn?: boolean;
|
|
62
|
+
openapi_spec_url?: string;
|
|
63
|
+
auth_type?: "none" | "static_token";
|
|
64
|
+
bearer_token?: string;
|
|
65
|
+
auto_scan?: boolean;
|
|
66
|
+
campaigns?: ("ai_red_team" | "pen_test" | "recon")[];
|
|
67
|
+
}) => Promise<{
|
|
68
|
+
content: {
|
|
69
|
+
type: "text";
|
|
70
|
+
text: string;
|
|
71
|
+
}[];
|
|
72
|
+
isError: boolean;
|
|
73
|
+
} | {
|
|
74
|
+
content: {
|
|
75
|
+
type: "text";
|
|
76
|
+
text: string;
|
|
77
|
+
}[];
|
|
78
|
+
isError?: undefined;
|
|
79
|
+
}>;
|