@complior/engine 0.9.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/.well-known/ai-compliance.json +16 -0
- package/COMPLIANCE.md +64 -0
- package/data/data-integrity.test.ts +75 -0
- package/data/eval/eval-mappings.json +33 -0
- package/data/llm/model-pricing.json +15 -0
- package/data/llm/model-routing.json +36 -0
- package/data/onboarding/risk-profile.json +17 -0
- package/data/regulations/eu-ai-act/README.md +245 -0
- package/data/regulations/eu-ai-act/applicability-tree.json +160 -0
- package/data/regulations/eu-ai-act/cross-mapping.json +175 -0
- package/data/regulations/eu-ai-act/localization.json +186 -0
- package/data/regulations/eu-ai-act/obligations.json +3981 -0
- package/data/regulations/eu-ai-act/regulation-meta.json +482 -0
- package/data/regulations/eu-ai-act/scoring.json +342 -0
- package/data/regulations/eu-ai-act/technical-requirements.json +2590 -0
- package/data/regulations/eu-ai-act/timeline.json +160 -0
- package/data/regulations/jurisdictions/at.json +15 -0
- package/data/regulations/jurisdictions/be.json +15 -0
- package/data/regulations/jurisdictions/bg.json +15 -0
- package/data/regulations/jurisdictions/cy.json +15 -0
- package/data/regulations/jurisdictions/cz.json +15 -0
- package/data/regulations/jurisdictions/de.json +15 -0
- package/data/regulations/jurisdictions/dk.json +15 -0
- package/data/regulations/jurisdictions/ee.json +15 -0
- package/data/regulations/jurisdictions/es.json +15 -0
- package/data/regulations/jurisdictions/fi.json +15 -0
- package/data/regulations/jurisdictions/fr.json +15 -0
- package/data/regulations/jurisdictions/gr.json +15 -0
- package/data/regulations/jurisdictions/hr.json +15 -0
- package/data/regulations/jurisdictions/hu.json +15 -0
- package/data/regulations/jurisdictions/ie.json +15 -0
- package/data/regulations/jurisdictions/is.json +15 -0
- package/data/regulations/jurisdictions/it.json +15 -0
- package/data/regulations/jurisdictions/li.json +15 -0
- package/data/regulations/jurisdictions/lt.json +15 -0
- package/data/regulations/jurisdictions/lu.json +15 -0
- package/data/regulations/jurisdictions/lv.json +15 -0
- package/data/regulations/jurisdictions/mt.json +15 -0
- package/data/regulations/jurisdictions/nl.json +15 -0
- package/data/regulations/jurisdictions/no.json +15 -0
- package/data/regulations/jurisdictions/pl.json +15 -0
- package/data/regulations/jurisdictions/pt.json +15 -0
- package/data/regulations/jurisdictions/ro.json +15 -0
- package/data/regulations/jurisdictions/se.json +15 -0
- package/data/regulations/jurisdictions/si.json +15 -0
- package/data/regulations/jurisdictions/sk.json +15 -0
- package/data/scanner/check-id-categories.json +81 -0
- package/data/scanner/confidence-params.json +16 -0
- package/data/scanner/limits.json +4 -0
- package/data/schemas/http-contract-sample.json +79 -0
- package/data/schemas/http-contract.json +144 -0
- package/data/semgrep-rules/bare-call.yaml +37 -0
- package/data/semgrep-rules/injection.yaml +73 -0
- package/data/semgrep-rules/missing-error-handling.yaml +58 -0
- package/data/semgrep-rules/unsafe-deser.yaml +65 -0
- package/data/templates/eu-ai-act/ai-literacy.md +184 -0
- package/data/templates/eu-ai-act/art5-screening.md +131 -0
- package/data/templates/eu-ai-act/data-governance.md +145 -0
- package/data/templates/eu-ai-act/declaration-of-conformity.md +161 -0
- package/data/templates/eu-ai-act/fria.md +127 -0
- package/data/templates/eu-ai-act/gpai-systemic-risk.md +150 -0
- package/data/templates/eu-ai-act/gpai-transparency.md +166 -0
- package/data/templates/eu-ai-act/incident-report.md +188 -0
- package/data/templates/eu-ai-act/instructions-for-use.md +202 -0
- package/data/templates/eu-ai-act/monitoring-policy.md +110 -0
- package/data/templates/eu-ai-act/qms.md +180 -0
- package/data/templates/eu-ai-act/risk-management-system.md +123 -0
- package/data/templates/eu-ai-act/technical-documentation.md +287 -0
- package/data/templates/eu-ai-act/worker-notification.md +143 -0
- package/data/templates/policies/biometrics-ai-policy.md +214 -0
- package/data/templates/policies/critical-infra-ai-policy.md +228 -0
- package/data/templates/policies/education-ai-policy.md +184 -0
- package/data/templates/policies/finance-ai-policy.md +191 -0
- package/data/templates/policies/healthcare-ai-policy.md +197 -0
- package/data/templates/policies/hr-ai-policy.md +178 -0
- package/data/templates/policies/legal-ai-policy.md +189 -0
- package/data/templates/policies/migration-ai-policy.md +239 -0
- package/engine.log +7 -0
- package/package.json +74 -0
- package/src/composition-root.ts +791 -0
- package/src/data/eval/conformity-tests.test.ts +122 -0
- package/src/data/eval/ct-1-transparency.ts +106 -0
- package/src/data/eval/ct-10-gpai.ts +25 -0
- package/src/data/eval/ct-11-industry.ts +42 -0
- package/src/data/eval/ct-2-oversight.ts +41 -0
- package/src/data/eval/ct-3-explanation.ts +14 -0
- package/src/data/eval/ct-4-bias.ts +83 -0
- package/src/data/eval/ct-5-accuracy.ts +41 -0
- package/src/data/eval/ct-6-robustness.ts +81 -0
- package/src/data/eval/ct-7-prohibited.ts +52 -0
- package/src/data/eval/ct-8-logging.ts +68 -0
- package/src/data/eval/ct-9-risk-awareness.ts +33 -0
- package/src/data/eval/deterministic-evaluator.ts +120 -0
- package/src/data/eval/index.ts +55 -0
- package/src/data/eval/judge-prompts.ts +146 -0
- package/src/data/eval/llm-judged-tests.ts +279 -0
- package/src/data/eval/llm-tests.test.ts +83 -0
- package/src/data/eval/remediation/ct-1-transparency.ts +91 -0
- package/src/data/eval/remediation/ct-10-gpai.ts +94 -0
- package/src/data/eval/remediation/ct-11-industry.ts +94 -0
- package/src/data/eval/remediation/ct-2-oversight.ts +71 -0
- package/src/data/eval/remediation/ct-3-explanation.ts +70 -0
- package/src/data/eval/remediation/ct-4-bias.ts +70 -0
- package/src/data/eval/remediation/ct-5-accuracy.ts +70 -0
- package/src/data/eval/remediation/ct-6-robustness.ts +70 -0
- package/src/data/eval/remediation/ct-7-prohibited.ts +94 -0
- package/src/data/eval/remediation/ct-8-logging.ts +94 -0
- package/src/data/eval/remediation/ct-9-risk-awareness.ts +94 -0
- package/src/data/eval/remediation/index.ts +89 -0
- package/src/data/eval/remediation/owasp-art5.ts +15 -0
- package/src/data/eval/remediation/owasp-llm01.ts +72 -0
- package/src/data/eval/remediation/owasp-llm02.ts +72 -0
- package/src/data/eval/remediation/owasp-llm03.ts +15 -0
- package/src/data/eval/remediation/owasp-llm04.ts +15 -0
- package/src/data/eval/remediation/owasp-llm05.ts +15 -0
- package/src/data/eval/remediation/owasp-llm06.ts +15 -0
- package/src/data/eval/remediation/owasp-llm07.ts +15 -0
- package/src/data/eval/remediation/owasp-llm08.ts +15 -0
- package/src/data/eval/remediation/owasp-llm09.ts +15 -0
- package/src/data/eval/remediation/owasp-llm10.ts +15 -0
- package/src/data/eval/remediation/remediation.test.ts +229 -0
- package/src/data/eval/remediation/test-mapping.ts +290 -0
- package/src/data/eval/security-rubrics.ts +381 -0
- package/src/data/finding-explanations.json +453 -0
- package/src/data/industry-patterns.ts +161 -0
- package/src/data/registry-cards.ts +368 -0
- package/src/data/regulation/index.ts +5 -0
- package/src/data/regulation/jurisdiction-data.test.ts +73 -0
- package/src/data/regulation/jurisdiction-data.ts +65 -0
- package/src/data/regulation/regulation-data.ts +19 -0
- package/src/data/regulation/regulation-loader.test.ts +107 -0
- package/src/data/regulation/regulation-loader.ts +56 -0
- package/src/data/scanner-constants.ts +46 -0
- package/src/data/schemas/schemas-core.ts +140 -0
- package/src/data/schemas/schemas-supplementary.ts +211 -0
- package/src/data/schemas/schemas.ts +28 -0
- package/src/data/security/attack-probes.test.ts +62 -0
- package/src/data/security/attack-probes.ts +496 -0
- package/src/data/security/eu-ai-act-security.ts +40 -0
- package/src/data/security/index.ts +19 -0
- package/src/data/security/mitre-atlas.test.ts +43 -0
- package/src/data/security/mitre-atlas.ts +93 -0
- package/src/data/security/nist-ai-rmf.ts +43 -0
- package/src/data/security/owasp-llm-top10.test.ts +60 -0
- package/src/data/security/owasp-llm-top10.ts +138 -0
- package/src/data/template-registry.ts +53 -0
- package/src/data/tool-versions.json +22 -0
- package/src/domain/audit/audit-package.test.ts +152 -0
- package/src/domain/audit/audit-package.ts +166 -0
- package/src/domain/audit/audit-trail.test.ts +121 -0
- package/src/domain/audit/audit-trail.ts +174 -0
- package/src/domain/audit/index.ts +8 -0
- package/src/domain/audit/permissions-matrix.test.ts +136 -0
- package/src/domain/audit/permissions-matrix.ts +121 -0
- package/src/domain/certification/adversarial/bias-tests.ts +95 -0
- package/src/domain/certification/adversarial/evaluators.ts +304 -0
- package/src/domain/certification/adversarial/index.ts +11 -0
- package/src/domain/certification/adversarial/prompt-injection.ts +103 -0
- package/src/domain/certification/adversarial/safety-boundary.ts +132 -0
- package/src/domain/certification/aiuc1-readiness.test.ts +236 -0
- package/src/domain/certification/aiuc1-readiness.ts +298 -0
- package/src/domain/certification/aiuc1-requirements.ts +235 -0
- package/src/domain/certification/index.ts +10 -0
- package/src/domain/certification/redteam-runner.test.ts +97 -0
- package/src/domain/certification/redteam-runner.ts +205 -0
- package/src/domain/certification/test-runner.test.ts +232 -0
- package/src/domain/certification/test-runner.ts +289 -0
- package/src/domain/cost/cost-estimator.test.ts +187 -0
- package/src/domain/cost/cost-estimator.ts +133 -0
- package/src/domain/disclaimer.test.ts +52 -0
- package/src/domain/disclaimer.ts +39 -0
- package/src/domain/documents/ai-enricher.test.ts +120 -0
- package/src/domain/documents/ai-enricher.ts +159 -0
- package/src/domain/documents/document-generator.test.ts +318 -0
- package/src/domain/documents/document-generator.ts +239 -0
- package/src/domain/documents/index.ts +9 -0
- package/src/domain/documents/passport-helpers.ts +25 -0
- package/src/domain/documents/policy-generator.test.ts +252 -0
- package/src/domain/documents/policy-generator.ts +94 -0
- package/src/domain/documents/worker-notification-generator.test.ts +162 -0
- package/src/domain/documents/worker-notification-generator.ts +141 -0
- package/src/domain/eval/adapters/adapter-port.ts +94 -0
- package/src/domain/eval/adapters/adapters.test.ts +303 -0
- package/src/domain/eval/adapters/anthropic-adapter.ts +57 -0
- package/src/domain/eval/adapters/auto-detect.ts +104 -0
- package/src/domain/eval/adapters/create-chat-adapter.ts +106 -0
- package/src/domain/eval/adapters/custom-adapter.ts +74 -0
- package/src/domain/eval/adapters/http-adapter.ts +66 -0
- package/src/domain/eval/adapters/index.ts +7 -0
- package/src/domain/eval/adapters/ollama-adapter.ts +48 -0
- package/src/domain/eval/adapters/openai-adapter.ts +58 -0
- package/src/domain/eval/adapters/with-timeout.ts +25 -0
- package/src/domain/eval/conformity-score.test.ts +161 -0
- package/src/domain/eval/conformity-score.ts +135 -0
- package/src/domain/eval/eval-constants.ts +55 -0
- package/src/domain/eval/eval-evidence.test.ts +85 -0
- package/src/domain/eval/eval-evidence.ts +103 -0
- package/src/domain/eval/eval-fix-generator.test.ts +421 -0
- package/src/domain/eval/eval-fix-generator.ts +205 -0
- package/src/domain/eval/eval-passport.test.ts +82 -0
- package/src/domain/eval/eval-passport.ts +89 -0
- package/src/domain/eval/eval-remediation-report.test.ts +682 -0
- package/src/domain/eval/eval-remediation-report.ts +170 -0
- package/src/domain/eval/eval-report.ts +108 -0
- package/src/domain/eval/eval-runner.test.ts +609 -0
- package/src/domain/eval/eval-runner.ts +593 -0
- package/src/domain/eval/eval-to-findings.test.ts +293 -0
- package/src/domain/eval/eval-to-findings.ts +83 -0
- package/src/domain/eval/index.ts +31 -0
- package/src/domain/eval/llm-judge.test.ts +139 -0
- package/src/domain/eval/llm-judge.ts +168 -0
- package/src/domain/eval/remediation-types.ts +90 -0
- package/src/domain/eval/security-integration.test.ts +196 -0
- package/src/domain/eval/security-integration.ts +136 -0
- package/src/domain/eval/types.test.ts +173 -0
- package/src/domain/eval/types.ts +244 -0
- package/src/domain/eval/verdict-utils.ts +45 -0
- package/src/domain/fixer/create-fixer.ts +101 -0
- package/src/domain/fixer/diff.ts +70 -0
- package/src/domain/fixer/fix-history.ts +23 -0
- package/src/domain/fixer/fixer.test.ts +306 -0
- package/src/domain/fixer/index.ts +9 -0
- package/src/domain/fixer/strategies/bandit-fix.ts +61 -0
- package/src/domain/fixer/strategies/bias-testing.ts +49 -0
- package/src/domain/fixer/strategies/ci-compliance.ts +57 -0
- package/src/domain/fixer/strategies/content-marking.ts +45 -0
- package/src/domain/fixer/strategies/cve-upgrade.ts +66 -0
- package/src/domain/fixer/strategies/data-governance.ts +65 -0
- package/src/domain/fixer/strategies/disclosure.ts +69 -0
- package/src/domain/fixer/strategies/doc-code-sync.ts +53 -0
- package/src/domain/fixer/strategies/documentation.ts +59 -0
- package/src/domain/fixer/strategies/error-handler.ts +63 -0
- package/src/domain/fixer/strategies/hitl-gate.ts +67 -0
- package/src/domain/fixer/strategies/index.ts +61 -0
- package/src/domain/fixer/strategies/kill-switch-test.ts +85 -0
- package/src/domain/fixer/strategies/kill-switch.ts +53 -0
- package/src/domain/fixer/strategies/license-fix.ts +57 -0
- package/src/domain/fixer/strategies/log-retention.ts +40 -0
- package/src/domain/fixer/strategies/logging.ts +59 -0
- package/src/domain/fixer/strategies/metadata.ts +45 -0
- package/src/domain/fixer/strategies/permission-guard.ts +84 -0
- package/src/domain/fixer/strategies/record-keeping.ts +69 -0
- package/src/domain/fixer/strategies/secret-rotation.ts +52 -0
- package/src/domain/fixer/strategies.test.ts +341 -0
- package/src/domain/fixer/template-engine.test.ts +64 -0
- package/src/domain/fixer/template-engine.ts +38 -0
- package/src/domain/fixer/types.ts +88 -0
- package/src/domain/frameworks/aiuc1-framework.test.ts +159 -0
- package/src/domain/frameworks/aiuc1-framework.ts +126 -0
- package/src/domain/frameworks/collect-foundation-metrics.test.ts +96 -0
- package/src/domain/frameworks/collect-foundation-metrics.ts +34 -0
- package/src/domain/frameworks/eu-ai-act-framework.test.ts +117 -0
- package/src/domain/frameworks/eu-ai-act-framework.ts +100 -0
- package/src/domain/frameworks/framework-registry.test.ts +91 -0
- package/src/domain/frameworks/framework-registry.ts +38 -0
- package/src/domain/frameworks/index.ts +8 -0
- package/src/domain/frameworks/mitre-atlas-framework.test.ts +53 -0
- package/src/domain/frameworks/mitre-atlas-framework.ts +53 -0
- package/src/domain/frameworks/owasp-llm-framework.test.ts +77 -0
- package/src/domain/frameworks/owasp-llm-framework.ts +54 -0
- package/src/domain/frameworks/score-plugin-framework.ts +117 -0
- package/src/domain/fria/fria-generator.test.ts +273 -0
- package/src/domain/fria/fria-generator.ts +366 -0
- package/src/domain/import/promptfoo-importer.test.ts +103 -0
- package/src/domain/import/promptfoo-importer.ts +151 -0
- package/src/domain/onboarding/guided-onboarding.test.ts +144 -0
- package/src/domain/onboarding/guided-onboarding.ts +135 -0
- package/src/domain/passport/builder/domain-mapper.ts +9 -0
- package/src/domain/passport/builder/manifest-builder.test.ts +546 -0
- package/src/domain/passport/builder/manifest-builder.ts +535 -0
- package/src/domain/passport/builder/manifest-diff.test.ts +105 -0
- package/src/domain/passport/builder/manifest-diff.ts +89 -0
- package/src/domain/passport/builder/manifest-files.ts +17 -0
- package/src/domain/passport/crypto-signer.test.ts +93 -0
- package/src/domain/passport/crypto-signer.ts +157 -0
- package/src/domain/passport/discovery/agent-discovery.test.ts +296 -0
- package/src/domain/passport/discovery/agent-discovery.ts +325 -0
- package/src/domain/passport/discovery/autonomy-analyzer.test.ts +141 -0
- package/src/domain/passport/discovery/autonomy-analyzer.ts +113 -0
- package/src/domain/passport/discovery/permission-scanner.test.ts +191 -0
- package/src/domain/passport/discovery/permission-scanner.ts +414 -0
- package/src/domain/passport/export/a2a-mapper.ts +75 -0
- package/src/domain/passport/export/aiuc1-mapper.ts +126 -0
- package/src/domain/passport/export/export.test.ts +207 -0
- package/src/domain/passport/export/index.ts +41 -0
- package/src/domain/passport/export/nist-mapper.ts +227 -0
- package/src/domain/passport/import/a2a-importer.test.ts +133 -0
- package/src/domain/passport/import/a2a-importer.ts +156 -0
- package/src/domain/passport/import/index.ts +2 -0
- package/src/domain/passport/index.ts +32 -0
- package/src/domain/passport/obligation-field-map.test.ts +113 -0
- package/src/domain/passport/obligation-field-map.ts +117 -0
- package/src/domain/passport/passport-validator.test.ts +156 -0
- package/src/domain/passport/passport-validator.ts +126 -0
- package/src/domain/passport/scan-to-compliance.test.ts +336 -0
- package/src/domain/passport/scan-to-compliance.ts +166 -0
- package/src/domain/passport/test-generator.test.ts +93 -0
- package/src/domain/passport/test-generator.ts +136 -0
- package/src/domain/proxy/index.ts +11 -0
- package/src/domain/proxy/json-rpc.test.ts +72 -0
- package/src/domain/proxy/json-rpc.ts +53 -0
- package/src/domain/proxy/policy-engine.test.ts +259 -0
- package/src/domain/proxy/policy-engine.ts +137 -0
- package/src/domain/proxy/proxy-bridge.ts +125 -0
- package/src/domain/proxy/proxy-interceptor.test.ts +184 -0
- package/src/domain/proxy/proxy-interceptor.ts +120 -0
- package/src/domain/proxy/proxy-types.ts +35 -0
- package/src/domain/registry/compute-agent-score.test.ts +279 -0
- package/src/domain/registry/compute-agent-score.ts +162 -0
- package/src/domain/reporter/audit-report.test.ts +87 -0
- package/src/domain/reporter/audit-report.ts +116 -0
- package/src/domain/reporter/badge-generator.test.ts +54 -0
- package/src/domain/reporter/badge-generator.ts +40 -0
- package/src/domain/reporter/compliance-md.ts +45 -0
- package/src/domain/reporter/index.ts +7 -0
- package/src/domain/reporter/pdf-renderer.ts +282 -0
- package/src/domain/reporter/share.test.ts +92 -0
- package/src/domain/reporter/share.ts +80 -0
- package/src/domain/scanner/ast/swc-analyzer.test.ts +49 -0
- package/src/domain/scanner/ast/swc-analyzer.ts +124 -0
- package/src/domain/scanner/attestations.ts +97 -0
- package/src/domain/scanner/checks/ai-disclosure.test.ts +90 -0
- package/src/domain/scanner/checks/ai-disclosure.ts +54 -0
- package/src/domain/scanner/checks/ai-literacy.ts +163 -0
- package/src/domain/scanner/checks/behavioral-constraints.test.ts +167 -0
- package/src/domain/scanner/checks/behavioral-constraints.ts +86 -0
- package/src/domain/scanner/checks/compliance-metadata.ts +63 -0
- package/src/domain/scanner/checks/content-marking.ts +74 -0
- package/src/domain/scanner/checks/dep-deep-scan.test.ts +318 -0
- package/src/domain/scanner/checks/dep-deep-scan.ts +137 -0
- package/src/domain/scanner/checks/documentation.test.ts +88 -0
- package/src/domain/scanner/checks/documentation.ts +79 -0
- package/src/domain/scanner/checks/git-history.test.ts +120 -0
- package/src/domain/scanner/checks/git-history.ts +163 -0
- package/src/domain/scanner/checks/gpai-systemic-risk.test.ts +84 -0
- package/src/domain/scanner/checks/gpai-systemic-risk.ts +98 -0
- package/src/domain/scanner/checks/gpai-transparency.ts +94 -0
- package/src/domain/scanner/checks/index.ts +28 -0
- package/src/domain/scanner/checks/industry/index.ts +40 -0
- package/src/domain/scanner/checks/industry/industry.test.ts +287 -0
- package/src/domain/scanner/checks/interaction-logging.test.ts +113 -0
- package/src/domain/scanner/checks/interaction-logging.ts +142 -0
- package/src/domain/scanner/checks/nhi-scanner.test.ts +158 -0
- package/src/domain/scanner/checks/nhi-scanner.ts +78 -0
- package/src/domain/scanner/checks/passport-completeness.test.ts +127 -0
- package/src/domain/scanner/checks/passport-completeness.ts +82 -0
- package/src/domain/scanner/checks/passport-presence.test.ts +56 -0
- package/src/domain/scanner/checks/passport-presence.ts +78 -0
- package/src/domain/scanner/checks/pattern-check-factory.ts +70 -0
- package/src/domain/scanner/checks/permission-scanner.test.ts +279 -0
- package/src/domain/scanner/checks/permission-scanner.ts +90 -0
- package/src/domain/scanner/checks/presence-check-factory.test.ts +124 -0
- package/src/domain/scanner/checks/presence-check-factory.ts +275 -0
- package/src/domain/scanner/compliance-diff.test.ts +165 -0
- package/src/domain/scanner/compliance-diff.ts +138 -0
- package/src/domain/scanner/confidence.test.ts +235 -0
- package/src/domain/scanner/confidence.ts +156 -0
- package/src/domain/scanner/constants.ts +13 -0
- package/src/domain/scanner/create-scanner.ts +573 -0
- package/src/domain/scanner/cross-layer.test.ts +372 -0
- package/src/domain/scanner/cross-layer.ts +232 -0
- package/src/domain/scanner/data/ai-packages.ts +82 -0
- package/src/domain/scanner/debt-calculator.test.ts +89 -0
- package/src/domain/scanner/debt-calculator.ts +111 -0
- package/src/domain/scanner/drift.test.ts +191 -0
- package/src/domain/scanner/drift.ts +73 -0
- package/src/domain/scanner/evidence-store.test.ts +207 -0
- package/src/domain/scanner/evidence-store.ts +195 -0
- package/src/domain/scanner/evidence.test.ts +104 -0
- package/src/domain/scanner/evidence.ts +71 -0
- package/src/domain/scanner/external/bandit-runner.test.ts +45 -0
- package/src/domain/scanner/external/bandit-runner.ts +90 -0
- package/src/domain/scanner/external/checks.ts +321 -0
- package/src/domain/scanner/external/dedup.test.ts +79 -0
- package/src/domain/scanner/external/dedup.ts +94 -0
- package/src/domain/scanner/external/detect-secrets-runner.test.ts +58 -0
- package/src/domain/scanner/external/detect-secrets-runner.ts +81 -0
- package/src/domain/scanner/external/external-scanner.test.ts +221 -0
- package/src/domain/scanner/external/external-scanner.ts +36 -0
- package/src/domain/scanner/external/finding-mapper.test.ts +95 -0
- package/src/domain/scanner/external/finding-mapper.ts +138 -0
- package/src/domain/scanner/external/index.ts +15 -0
- package/src/domain/scanner/external/mappings.ts +93 -0
- package/src/domain/scanner/external/modelscan-runner.test.ts +35 -0
- package/src/domain/scanner/external/modelscan-runner.ts +101 -0
- package/src/domain/scanner/external/path-utils.ts +8 -0
- package/src/domain/scanner/external/runner-port.ts +45 -0
- package/src/domain/scanner/external/semgrep-runner.test.ts +52 -0
- package/src/domain/scanner/external/semgrep-runner.ts +94 -0
- package/src/domain/scanner/external/types.ts +32 -0
- package/src/domain/scanner/finding-attribution.test.ts +444 -0
- package/src/domain/scanner/finding-attribution.ts +195 -0
- package/src/domain/scanner/finding-explainer.test.ts +157 -0
- package/src/domain/scanner/finding-explainer.ts +73 -0
- package/src/domain/scanner/fix-diff-builder.test.ts +272 -0
- package/src/domain/scanner/fix-diff-builder.ts +477 -0
- package/src/domain/scanner/import-graph.test.ts +162 -0
- package/src/domain/scanner/import-graph.ts +198 -0
- package/src/domain/scanner/languages/adapter.test.ts +105 -0
- package/src/domain/scanner/languages/adapter.ts +239 -0
- package/src/domain/scanner/layers/index.ts +24 -0
- package/src/domain/scanner/layers/layer1-files.ts +54 -0
- package/src/domain/scanner/layers/layer2-docs.test.ts +1207 -0
- package/src/domain/scanner/layers/layer2-docs.ts +297 -0
- package/src/domain/scanner/layers/layer2-parsing.ts +217 -0
- package/src/domain/scanner/layers/layer3-config.test.ts +187 -0
- package/src/domain/scanner/layers/layer3-config.ts +279 -0
- package/src/domain/scanner/layers/layer3-parsers.ts +73 -0
- package/src/domain/scanner/layers/layer4-patterns.test.ts +397 -0
- package/src/domain/scanner/layers/layer4-patterns.ts +216 -0
- package/src/domain/scanner/layers/layer5-docs.test.ts +99 -0
- package/src/domain/scanner/layers/layer5-docs.ts +250 -0
- package/src/domain/scanner/layers/layer5-llm.test.ts +146 -0
- package/src/domain/scanner/layers/layer5-llm.ts +262 -0
- package/src/domain/scanner/layers/layer5-targeted.test.ts +93 -0
- package/src/domain/scanner/layers/layer5-targeted.ts +233 -0
- package/src/domain/scanner/layers/lockfile-parsers.test.ts +320 -0
- package/src/domain/scanner/layers/lockfile-parsers.ts +184 -0
- package/src/domain/scanner/regulation-version.test.ts +54 -0
- package/src/domain/scanner/regulation-version.ts +23 -0
- package/src/domain/scanner/role-filter.test.ts +116 -0
- package/src/domain/scanner/role-filter.ts +51 -0
- package/src/domain/scanner/rules/banned-packages-data.ts +553 -0
- package/src/domain/scanner/rules/banned-packages-sdk.ts +65 -0
- package/src/domain/scanner/rules/banned-packages.test.ts +249 -0
- package/src/domain/scanner/rules/banned-packages.ts +55 -0
- package/src/domain/scanner/rules/comment-filter.test.ts +115 -0
- package/src/domain/scanner/rules/comment-filter.ts +297 -0
- package/src/domain/scanner/rules/index.ts +9 -0
- package/src/domain/scanner/rules/nhi-patterns.test.ts +128 -0
- package/src/domain/scanner/rules/nhi-patterns.ts +60 -0
- package/src/domain/scanner/rules/pattern-rules.ts +1152 -0
- package/src/domain/scanner/sbom.test.ts +136 -0
- package/src/domain/scanner/sbom.ts +103 -0
- package/src/domain/scanner/scan-cache.test.ts +136 -0
- package/src/domain/scanner/scan-cache.ts +115 -0
- package/src/domain/scanner/scanner.test.ts +125 -0
- package/src/domain/scanner/score-calculator.test.ts +363 -0
- package/src/domain/scanner/score-calculator.ts +189 -0
- package/src/domain/scanner/security-score.test.ts +107 -0
- package/src/domain/scanner/security-score.ts +116 -0
- package/src/domain/scanner/source-filter.ts +24 -0
- package/src/domain/scanner/validators.ts +223 -0
- package/src/domain/shared/compliance-constants.ts +48 -0
- package/src/domain/shared/disclosure-patterns.ts +16 -0
- package/src/domain/shared/index.ts +6 -0
- package/src/domain/shared/parse-dependencies.ts +21 -0
- package/src/domain/supply-chain/dependency-analyzer.ts +138 -0
- package/src/domain/supply-chain/index.ts +3 -0
- package/src/domain/supply-chain/supply-chain.test.ts +211 -0
- package/src/domain/supply-chain/types.ts +32 -0
- package/src/domain/whatif/config-fixer.ts +187 -0
- package/src/domain/whatif/index.ts +6 -0
- package/src/domain/whatif/scenario-engine.ts +121 -0
- package/src/domain/whatif/simulate-actions.test.ts +161 -0
- package/src/domain/whatif/simulate-actions.ts +114 -0
- package/src/domain/whatif/whatif.test.ts +135 -0
- package/src/e2e/gaps-e2e.test.ts +259 -0
- package/src/e2e/smoke.test.ts +101 -0
- package/src/hooks/hooks-export.test.ts +81 -0
- package/src/hooks/installer.ts +113 -0
- package/src/http/cors.test.ts +38 -0
- package/src/http/create-router.ts +259 -0
- package/src/http/routes/agent.route.ts +380 -0
- package/src/http/routes/audit.route.ts +66 -0
- package/src/http/routes/badge.route.ts +23 -0
- package/src/http/routes/cert.route.ts +66 -0
- package/src/http/routes/chat.route.ts +228 -0
- package/src/http/routes/cost.route.ts +33 -0
- package/src/http/routes/debt.route.ts +29 -0
- package/src/http/routes/disclaimer.route.ts +64 -0
- package/src/http/routes/eval.route.ts +161 -0
- package/src/http/routes/events.route.test.ts +108 -0
- package/src/http/routes/events.route.ts +71 -0
- package/src/http/routes/external-scan.route.ts +24 -0
- package/src/http/routes/file.route.ts +54 -0
- package/src/http/routes/fix.route.ts +219 -0
- package/src/http/routes/frameworks.route.test.ts +66 -0
- package/src/http/routes/frameworks.route.ts +36 -0
- package/src/http/routes/git.route.ts +27 -0
- package/src/http/routes/guided-onboarding.route.ts +65 -0
- package/src/http/routes/import.route.ts +64 -0
- package/src/http/routes/jurisdiction.route.ts +22 -0
- package/src/http/routes/obligations.route.test.ts +122 -0
- package/src/http/routes/obligations.route.ts +110 -0
- package/src/http/routes/onboarding.route.ts +53 -0
- package/src/http/routes/provider.route.ts +42 -0
- package/src/http/routes/proxy.route.ts +40 -0
- package/src/http/routes/redteam.route.ts +84 -0
- package/src/http/routes/report.route.ts +29 -0
- package/src/http/routes/scan.route.ts +104 -0
- package/src/http/routes/share.route.ts +44 -0
- package/src/http/routes/shell.route.ts +27 -0
- package/src/http/routes/status.route.ts +66 -0
- package/src/http/routes/supply-chain.route.ts +121 -0
- package/src/http/routes/sync.route.ts +328 -0
- package/src/http/routes/tools.route.ts +29 -0
- package/src/http/routes/whatif.route.ts +96 -0
- package/src/http/utils/validation.ts +31 -0
- package/src/index.ts +1 -0
- package/src/infra/bundle-fetcher.ts +77 -0
- package/src/infra/cache-storage.ts +34 -0
- package/src/infra/event-bus.ts +31 -0
- package/src/infra/file-collector.ts +61 -0
- package/src/infra/file-ops-adapter.ts +95 -0
- package/src/infra/file-watcher.test.ts +90 -0
- package/src/infra/file-watcher.ts +106 -0
- package/src/infra/git-adapter.ts +93 -0
- package/src/infra/git-history-adapter.ts +41 -0
- package/src/infra/headless-browser.ts +178 -0
- package/src/infra/llm-adapter.test.ts +83 -0
- package/src/infra/llm-adapter.ts +86 -0
- package/src/infra/logger.ts +27 -0
- package/src/infra/project-config.test.ts +74 -0
- package/src/infra/project-config.ts +35 -0
- package/src/infra/rate-limiter.test.ts +36 -0
- package/src/infra/rate-limiter.ts +34 -0
- package/src/infra/retry.ts +46 -0
- package/src/infra/saas-client.ts +123 -0
- package/src/infra/search-adapter.ts +113 -0
- package/src/infra/shell-adapter.ts +68 -0
- package/src/infra/tool-manager.test.ts +99 -0
- package/src/infra/tool-manager.ts +197 -0
- package/src/llm/agents/agent-modes.test.ts +44 -0
- package/src/llm/agents/modes.ts +68 -0
- package/src/llm/routing/cost-routing.test.ts +37 -0
- package/src/llm/routing/cost-tracker.ts +74 -0
- package/src/llm/routing/model-routing.test.ts +79 -0
- package/src/llm/routing/model-routing.ts +38 -0
- package/src/llm/routing/pricing.ts +19 -0
- package/src/llm/sse-protocol.ts +77 -0
- package/src/llm/tool-definitions.ts +83 -0
- package/src/llm/tool-executors.ts +80 -0
- package/src/llm/tools/types.ts +13 -0
- package/src/mcp/create-mcp-stack.ts +82 -0
- package/src/mcp/handlers.ts +245 -0
- package/src/mcp/index.ts +28 -0
- package/src/mcp/mcp-server.test.ts +80 -0
- package/src/mcp/server.ts +79 -0
- package/src/mcp/tools.ts +48 -0
- package/src/onboarding/auto-detect.ts +164 -0
- package/src/onboarding/onboarding.test.ts +89 -0
- package/src/onboarding/profile.ts +169 -0
- package/src/onboarding/questions.ts +112 -0
- package/src/onboarding/wizard.ts +66 -0
- package/src/output/github-issue.ts +32 -0
- package/src/output/json-output.ts +67 -0
- package/src/ports/browser.port.ts +23 -0
- package/src/ports/events.port.ts +28 -0
- package/src/ports/llm.port.ts +23 -0
- package/src/ports/logger.port.ts +6 -0
- package/src/ports/process.port.ts +6 -0
- package/src/ports/scanner.port.ts +15 -0
- package/src/server.ts +134 -0
- package/src/services/badge-service.ts +67 -0
- package/src/services/chat-service.test.ts +162 -0
- package/src/services/chat-service.ts +152 -0
- package/src/services/cost-service.ts +52 -0
- package/src/services/debt-service.ts +65 -0
- package/src/services/eval-integration.test.ts +132 -0
- package/src/services/eval-service.test.ts +373 -0
- package/src/services/eval-service.ts +463 -0
- package/src/services/external-scan-service.ts +60 -0
- package/src/services/file-service.ts +37 -0
- package/src/services/fix-service.test.ts +470 -0
- package/src/services/fix-service.ts +648 -0
- package/src/services/framework-service.test.ts +159 -0
- package/src/services/framework-service.ts +67 -0
- package/src/services/onboarding-service.ts +165 -0
- package/src/services/passport-audit.ts +244 -0
- package/src/services/passport-documents.ts +258 -0
- package/src/services/passport-service-utils.ts +72 -0
- package/src/services/passport-service.test.ts +251 -0
- package/src/services/passport-service.ts +339 -0
- package/src/services/proxy-service.ts +81 -0
- package/src/services/report-service.ts +72 -0
- package/src/services/scan-service.test.ts +470 -0
- package/src/services/scan-service.ts +335 -0
- package/src/services/share-service.ts +108 -0
- package/src/services/shared/backup.ts +23 -0
- package/src/services/status-service.ts +38 -0
- package/src/services/undo-service.test.ts +190 -0
- package/src/services/undo-service.ts +144 -0
- package/src/test-helpers/factories.ts +116 -0
- package/src/types/common.schemas.ts +147 -0
- package/src/types/common.types.ts +292 -0
- package/src/types/contract.test.ts +217 -0
- package/src/types/errors.ts +52 -0
- package/src/types/framework.types.ts +87 -0
- package/src/types/passport-schemas.ts +241 -0
- package/src/types/passport.types.ts +296 -0
- package/src/version.ts +1 -0
- package/tsconfig.json +20 -0
- package/vitest.config.ts +9 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Instructions for Use
|
|
2
|
+
|
|
3
|
+
> **Regulation**: EU AI Act (Regulation (EU) 2024/1689), Article 13
|
|
4
|
+
> **Obligation**: OBL-007 — Transparency and Provision of Information to Deployers
|
|
5
|
+
> **For**: Providers of High-Risk AI Systems
|
|
6
|
+
> **Deadline**: August 2, 2026
|
|
7
|
+
> **Document ID**: IFU-[YYYY]-[NNN]
|
|
8
|
+
|
|
9
|
+
<!-- GUIDANCE: Art. 13 requires high-risk AI systems to be designed and developed so that
|
|
10
|
+
their operation is sufficiently transparent to enable deployers to interpret the output
|
|
11
|
+
and use it appropriately. Instructions for use must accompany the system. -->
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Document Control
|
|
16
|
+
|
|
17
|
+
| Field | Value |
|
|
18
|
+
|-------|-------|
|
|
19
|
+
| AI System | [AI System Name] |
|
|
20
|
+
| Provider | [Company Name] |
|
|
21
|
+
| Version | [X.Y] |
|
|
22
|
+
| Risk Class | [Risk Class] |
|
|
23
|
+
| Created | [Date] |
|
|
24
|
+
| Last Review | [Date] |
|
|
25
|
+
| Next Review | |
|
|
26
|
+
| Approved By | [Name, Title] |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Intended Purpose
|
|
31
|
+
|
|
32
|
+
<!-- GUIDANCE: Art. 13(3)(b)(i) — The intended purpose of the AI system, including the
|
|
33
|
+
specific geographical, behavioural, or functional setting within which the system
|
|
34
|
+
is intended to be used. -->
|
|
35
|
+
|
|
36
|
+
### 2.1 System Overview
|
|
37
|
+
|
|
38
|
+
| Field | Value |
|
|
39
|
+
|-------|-------|
|
|
40
|
+
| System Name | [AI System Name] |
|
|
41
|
+
| Version | [X.Y] |
|
|
42
|
+
| Description | [Description] |
|
|
43
|
+
| Provider | [Company Name] |
|
|
44
|
+
| Intended Use | |
|
|
45
|
+
| Target Users | |
|
|
46
|
+
| Deployment Environment | |
|
|
47
|
+
|
|
48
|
+
### 2.2 Intended Use Context
|
|
49
|
+
|
|
50
|
+
| Dimension | Description |
|
|
51
|
+
|-----------|-------------|
|
|
52
|
+
| Geographic scope | |
|
|
53
|
+
| Functional setting | |
|
|
54
|
+
| Target population | |
|
|
55
|
+
| Operational environment | |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. Capabilities
|
|
60
|
+
|
|
61
|
+
<!-- GUIDANCE: Art. 13(3)(b)(ii) — The level of accuracy, including its metrics, robustness
|
|
62
|
+
and cybersecurity, against which the system has been tested and validated, and any
|
|
63
|
+
known or foreseeable circumstances that may have an impact. -->
|
|
64
|
+
|
|
65
|
+
### 3.1 Performance Metrics
|
|
66
|
+
|
|
67
|
+
| Metric | Value | Benchmark | Test Dataset | Date |
|
|
68
|
+
|--------|-------|-----------|-------------|------|
|
|
69
|
+
| Accuracy | | | | |
|
|
70
|
+
| Precision | | | | |
|
|
71
|
+
| Recall | | | | |
|
|
72
|
+
| F1 Score | | | | |
|
|
73
|
+
|
|
74
|
+
### 3.2 Robustness
|
|
75
|
+
|
|
76
|
+
| Scenario | Tested? | Result | Notes |
|
|
77
|
+
|----------|---------|--------|-------|
|
|
78
|
+
| Adversarial inputs | | | |
|
|
79
|
+
| Out-of-distribution data | | | |
|
|
80
|
+
| Data drift | | | |
|
|
81
|
+
| Edge cases | | | |
|
|
82
|
+
|
|
83
|
+
### 3.3 Cybersecurity
|
|
84
|
+
|
|
85
|
+
| Measure | Description | Status |
|
|
86
|
+
|---------|-------------|--------|
|
|
87
|
+
| Input validation | | |
|
|
88
|
+
| Access control | | |
|
|
89
|
+
| Data encryption | | |
|
|
90
|
+
| Audit logging | | |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 4. Limitations
|
|
95
|
+
|
|
96
|
+
<!-- GUIDANCE: Art. 13(3)(b)(ii)-(iii) — Known limitations and foreseeable circumstances
|
|
97
|
+
that may impact accuracy and performance. Any foreseeable misuse. -->
|
|
98
|
+
|
|
99
|
+
### 4.1 Known Limitations
|
|
100
|
+
|
|
101
|
+
| # | Limitation | Impact | Workaround |
|
|
102
|
+
|---|-----------|--------|------------|
|
|
103
|
+
| 1 | | | |
|
|
104
|
+
|
|
105
|
+
### 4.2 Conditions Affecting Performance
|
|
106
|
+
|
|
107
|
+
| Condition | Expected Impact | Recommendation |
|
|
108
|
+
|-----------|----------------|----------------|
|
|
109
|
+
| Low-quality input data | | |
|
|
110
|
+
| Atypical use context | | |
|
|
111
|
+
| High-volume processing | | |
|
|
112
|
+
|
|
113
|
+
### 4.3 Foreseeable Misuse
|
|
114
|
+
|
|
115
|
+
| # | Misuse Scenario | Risk Level | Safeguard |
|
|
116
|
+
|---|----------------|------------|-----------|
|
|
117
|
+
| 1 | | | |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 5. Performance Metrics
|
|
122
|
+
|
|
123
|
+
<!-- GUIDANCE: Art. 13(3)(b)(ii) — Metrics used to assess accuracy, including disaggregated
|
|
124
|
+
metrics for specific groups of persons where relevant. -->
|
|
125
|
+
|
|
126
|
+
### 5.1 Overall Metrics
|
|
127
|
+
|
|
128
|
+
| Metric | Definition | Target | Actual |
|
|
129
|
+
|--------|-----------|--------|--------|
|
|
130
|
+
| | | | |
|
|
131
|
+
|
|
132
|
+
### 5.2 Disaggregated Metrics (if applicable)
|
|
133
|
+
|
|
134
|
+
| Group | Metric | Value | Acceptable Variance |
|
|
135
|
+
|-------|--------|-------|-------------------|
|
|
136
|
+
| | | | |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 6. Human Oversight Instructions
|
|
141
|
+
|
|
142
|
+
<!-- GUIDANCE: Art. 13(3)(d) — The human oversight measures referred to in Article 14,
|
|
143
|
+
including the technical measures to facilitate the interpretation of outputs. -->
|
|
144
|
+
|
|
145
|
+
### 6.1 Oversight Requirements
|
|
146
|
+
|
|
147
|
+
| Aspect | Requirement |
|
|
148
|
+
|--------|------------|
|
|
149
|
+
| Oversight level | [Human Oversight Description] |
|
|
150
|
+
| Autonomy level | [Autonomy Level] |
|
|
151
|
+
| Required qualifications | |
|
|
152
|
+
| Minimum review frequency | |
|
|
153
|
+
|
|
154
|
+
### 6.2 Interpreting Outputs
|
|
155
|
+
|
|
156
|
+
| Output Type | How to Interpret | When to Override | Escalation |
|
|
157
|
+
|-------------|-----------------|-----------------|-----------|
|
|
158
|
+
| | | | |
|
|
159
|
+
|
|
160
|
+
### 6.3 Override Procedures
|
|
161
|
+
|
|
162
|
+
| Scenario | Action Required | Authority Level | Documentation |
|
|
163
|
+
|----------|----------------|-----------------|---------------|
|
|
164
|
+
| Incorrect output | | | |
|
|
165
|
+
| Uncertain output | | | |
|
|
166
|
+
| Bias detected | | | |
|
|
167
|
+
| System malfunction | | | |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 7. Input Data Specifications
|
|
172
|
+
|
|
173
|
+
<!-- GUIDANCE: Art. 13(3)(b)(iv) — Specifications for the input data, or any other relevant
|
|
174
|
+
information in terms of training, validation, and testing datasets used. -->
|
|
175
|
+
|
|
176
|
+
| Input | Format | Requirements | Constraints |
|
|
177
|
+
|-------|--------|-------------|-------------|
|
|
178
|
+
| | | | |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 8. Maintenance and Updates
|
|
183
|
+
|
|
184
|
+
<!-- GUIDANCE: Art. 13(3)(c) — Any changes to the AI system and its performance which
|
|
185
|
+
have been pre-determined by the provider at the time of initial conformity assessment. -->
|
|
186
|
+
|
|
187
|
+
| Aspect | Description |
|
|
188
|
+
|--------|-------------|
|
|
189
|
+
| Update frequency | |
|
|
190
|
+
| Update notification method | |
|
|
191
|
+
| Version compatibility | |
|
|
192
|
+
| Rollback procedure | |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Sign-off
|
|
197
|
+
|
|
198
|
+
| Role | Name | Signature | Date |
|
|
199
|
+
|------|------|-----------|------|
|
|
200
|
+
| Technical Lead | | | |
|
|
201
|
+
| Product Owner | | | |
|
|
202
|
+
| Compliance Officer | | | |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Template 8: Deployer AI Monitoring and Log Retention Policy
|
|
2
|
+
|
|
3
|
+
**Obligation:** eu-ai-act-OBL-011
|
|
4
|
+
**Article:** Article 26(1)-(6)
|
|
5
|
+
**For:** Deployers of High-Risk AI
|
|
6
|
+
**Format:** DOCX / PDF
|
|
7
|
+
|
|
8
|
+
## Document Structure:
|
|
9
|
+
|
|
10
|
+
### 1. Policy Overview
|
|
11
|
+
<!-- GUIDANCE: Art. 26(1) requires deployers to use high-risk AI systems in
|
|
12
|
+
accordance with instructions for use. This policy documents how you meet Art. 26
|
|
13
|
+
obligations systematically. Assign a named owner with authority to suspend systems.
|
|
14
|
+
Example: "Policy owner: Maria Schmidt, Head of AI Operations, with authority
|
|
15
|
+
to suspend any AI system pending investigation." -->
|
|
16
|
+
- Title: "High-Risk AI System Monitoring and Log Retention Policy"
|
|
17
|
+
- Version: [Number]
|
|
18
|
+
- Effective date: [Date]
|
|
19
|
+
- Owner: [Name, Title]
|
|
20
|
+
|
|
21
|
+
### 2. AI Systems in Scope
|
|
22
|
+
<!-- GUIDANCE: List ALL high-risk AI systems deployed, including those from
|
|
23
|
+
third-party providers. For each system, confirm that provider Instructions for
|
|
24
|
+
Use have been received per Art. 13. Include systems in pilot/testing phases.
|
|
25
|
+
Example: Include "HireVue (pilot, 3 users, HR department)" alongside production systems. -->
|
|
26
|
+
- [Table of all high-risk AI systems deployed, with: system name, provider, risk level, deployment date, responsible person]
|
|
27
|
+
|
|
28
|
+
### 3. Use According to Instructions
|
|
29
|
+
<!-- GUIDANCE: Art. 26(1) makes using the system according to provider instructions
|
|
30
|
+
a legal obligation. Document any approved deviations and the risk assessment that
|
|
31
|
+
justified them. Unapproved deviations may shift liability from provider to deployer.
|
|
32
|
+
Example: "Provider recommends human review for all outputs; approved deviation:
|
|
33
|
+
auto-approve for confidence >0.95 (risk-assessed, documented in RA-2026-003)." -->
|
|
34
|
+
- For each system: confirmation that provider's Instructions for Use have been received and implemented
|
|
35
|
+
- Deviations from instructions: [None / Description of any approved deviations]
|
|
36
|
+
|
|
37
|
+
### 4. Human Oversight Assignments
|
|
38
|
+
<!-- GUIDANCE: Art. 26(2) requires natural persons assigned to human oversight to
|
|
39
|
+
have necessary competence, training, and authority. Document training completion
|
|
40
|
+
dates and override authority explicitly. Example: "Assigned: Jan Peters (trained
|
|
41
|
+
2025-12-01, cert #HO-2025-042), authority to suspend system independently." -->
|
|
42
|
+
- [Table: System name, Assigned oversight person, Training completed (Y/N), Authority to override (Y/N)]
|
|
43
|
+
|
|
44
|
+
### 5. Monitoring Scope
|
|
45
|
+
<!-- GUIDANCE: Art. 26(5) requires monitoring for risks to health, safety, or
|
|
46
|
+
fundamental rights. Define specific anomaly thresholds that trigger action —
|
|
47
|
+
vague criteria are insufficient. Example: "Anomaly threshold: >2 standard
|
|
48
|
+
deviations from baseline accuracy over 7-day rolling window → alert.
|
|
49
|
+
>3 standard deviations → automatic suspension pending review." -->
|
|
50
|
+
- Metrics monitored: [Accuracy, fairness, output quality, error rate, etc.]
|
|
51
|
+
- Anomaly detection thresholds: [Description]
|
|
52
|
+
|
|
53
|
+
### 6. Frequency
|
|
54
|
+
<!-- GUIDANCE: Art. 26(5) monitoring must be proportionate to the risk level
|
|
55
|
+
and deployment context. Specify both automated and manual review frequencies.
|
|
56
|
+
Example: "Real-time automated metrics; weekly dashboard review; monthly
|
|
57
|
+
compliance review by AI Ethics Board." -->
|
|
58
|
+
- Monitoring frequency: [Real-time / Daily / Weekly]
|
|
59
|
+
- Automated alert frequency: [Continuous / Hourly / Daily]
|
|
60
|
+
- Manual review frequency: [Weekly / Monthly / Quarterly]
|
|
61
|
+
|
|
62
|
+
### 7. Escalation Procedures
|
|
63
|
+
<!-- GUIDANCE: Define clear escalation paths with named individuals and
|
|
64
|
+
response timelines. Include criteria for each escalation level.
|
|
65
|
+
Example: "Level 1: SLA breach → on-call engineer within 15 min.
|
|
66
|
+
Level 2: Compliance violation → AI Ethics Board within 24h.
|
|
67
|
+
Level 3: Safety incident → immediate shutdown, CISO + DPO notified." -->
|
|
68
|
+
- Escalation levels and criteria: [Description]
|
|
69
|
+
- When to inform provider: [Criteria and timeline]
|
|
70
|
+
- When to suspend the system: [Criteria and timeline]
|
|
71
|
+
|
|
72
|
+
### 8. Log Retention
|
|
73
|
+
<!-- GUIDANCE: Art. 26(6) requires automatic log retention for at least 6 months,
|
|
74
|
+
unless longer periods are required by sector regulations (e.g., financial services
|
|
75
|
+
may require 5+ years). Logs must be under the deployer's control. Example:
|
|
76
|
+
"Logs stored in encrypted S3 bucket (eu-west-1), retained 24 months per financial
|
|
77
|
+
services requirement, access restricted to AI Operations team." -->
|
|
78
|
+
- Log retention period: Minimum 6 months (or as required by sector regulation)
|
|
79
|
+
- Storage location: [Description]
|
|
80
|
+
- Access controls: [Who can access logs]
|
|
81
|
+
- Destruction policy: [When and how logs are deleted after retention period]
|
|
82
|
+
|
|
83
|
+
### 9. Incident Reporting
|
|
84
|
+
<!-- GUIDANCE: Art. 26(5) requires deployers to inform providers and relevant
|
|
85
|
+
authorities of serious incidents. Define clear criteria for what constitutes a
|
|
86
|
+
"serious incident" (Art. 3(49)) and the timeline for each notification step.
|
|
87
|
+
Example: "Provider notified within 24 hours; MSA notified within 15 days for
|
|
88
|
+
non-death incidents, 2 days for death/serious harm per Art. 73." -->
|
|
89
|
+
- Internal escalation process for incidents
|
|
90
|
+
- Provider notification process
|
|
91
|
+
- Authority notification triggers (link to serious incident reporting)
|
|
92
|
+
|
|
93
|
+
### 10. Review Schedule
|
|
94
|
+
<!-- GUIDANCE: Review frequency should be proportionate to the risk level and
|
|
95
|
+
rate of change. At minimum, review annually and after every significant system
|
|
96
|
+
update from the provider. Document review findings and actions taken.
|
|
97
|
+
Example: "Annual full review (Q1), quarterly metric review, ad-hoc review
|
|
98
|
+
triggered by provider updates or incidents." -->
|
|
99
|
+
- Policy review: Annual
|
|
100
|
+
- System-specific monitoring review: [Frequency]
|
|
101
|
+
- Last review: [Date]
|
|
102
|
+
- Next review: [Date]
|
|
103
|
+
|
|
104
|
+
### Sign-off
|
|
105
|
+
<!-- GUIDANCE: The approver should have organizational authority to enforce the
|
|
106
|
+
policy, including the authority to suspend AI systems. Consider including IT
|
|
107
|
+
security and legal sign-off for comprehensive accountability.
|
|
108
|
+
Example: "Approved by CTO (system authority), CISO (security), DPO (data protection)." -->
|
|
109
|
+
- Policy owner: _________________ Date: _________
|
|
110
|
+
- Approved by: _________________ Date: _________
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Quality Management System
|
|
2
|
+
|
|
3
|
+
> **Regulation**: EU AI Act (Regulation (EU) 2024/1689), Article 17
|
|
4
|
+
> **Obligation**: OBL-010 — Quality Management System
|
|
5
|
+
> **For**: Providers of High-Risk AI Systems
|
|
6
|
+
> **Deadline**: August 2, 2026
|
|
7
|
+
> **Document ID**: QMS-[YYYY]-[NNN]
|
|
8
|
+
|
|
9
|
+
<!-- GUIDANCE: Art. 17 requires providers of high-risk AI to put in place a quality management
|
|
10
|
+
system that ensures compliance with this Regulation in a systematic and orderly manner. -->
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Document Control
|
|
15
|
+
|
|
16
|
+
| Field | Value |
|
|
17
|
+
|-------|-------|
|
|
18
|
+
| AI System | [AI System Name] |
|
|
19
|
+
| Provider | [Company Name] |
|
|
20
|
+
| Version | [X.Y] |
|
|
21
|
+
| Risk Class | [Risk Class] |
|
|
22
|
+
| Created | [Date] |
|
|
23
|
+
| Last Review | [Date] |
|
|
24
|
+
| Next Review | |
|
|
25
|
+
| Approved By | [Name, Title] |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. Compliance Strategy
|
|
30
|
+
|
|
31
|
+
<!-- GUIDANCE: Art. 17(1)(a) — Strategy for regulatory compliance, including conformity
|
|
32
|
+
assessment procedures and procedures for management of modifications to the system. -->
|
|
33
|
+
|
|
34
|
+
### 2.1 Regulatory Scope
|
|
35
|
+
|
|
36
|
+
| Regulation | Applicable? | Key Articles | Compliance Status |
|
|
37
|
+
|-----------|------------|-------------|-------------------|
|
|
38
|
+
| EU AI Act | Yes | Art. 6-17 | |
|
|
39
|
+
| GDPR | | | |
|
|
40
|
+
| Sector-specific | | | |
|
|
41
|
+
|
|
42
|
+
### 2.2 Conformity Assessment
|
|
43
|
+
|
|
44
|
+
| Step | Description | Owner | Status |
|
|
45
|
+
|------|-------------|-------|--------|
|
|
46
|
+
| Risk classification | | | |
|
|
47
|
+
| Internal assessment | | | |
|
|
48
|
+
| Third-party audit (if required) | | | |
|
|
49
|
+
| CE marking | | | |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. Design Control
|
|
54
|
+
|
|
55
|
+
<!-- GUIDANCE: Art. 17(1)(b) — Techniques, procedures, and systematic actions for design,
|
|
56
|
+
design control, and design verification. -->
|
|
57
|
+
|
|
58
|
+
| Phase | Process | Inputs | Outputs | Review Gate |
|
|
59
|
+
|-------|---------|--------|---------|-------------|
|
|
60
|
+
| Requirements | | | | |
|
|
61
|
+
| Architecture | | | | |
|
|
62
|
+
| Development | | | | |
|
|
63
|
+
| Validation | | | | |
|
|
64
|
+
| Deployment | | | | |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 4. Testing Procedures
|
|
69
|
+
|
|
70
|
+
<!-- GUIDANCE: Art. 17(1)(c)-(d) — Techniques, procedures, and actions for development,
|
|
71
|
+
quality control, and quality assurance, including examination, test, and validation
|
|
72
|
+
procedures before, during, and after development. -->
|
|
73
|
+
|
|
74
|
+
### 4.1 Test Strategy
|
|
75
|
+
|
|
76
|
+
| Test Type | Scope | Frequency | Pass Criteria | Responsible |
|
|
77
|
+
|-----------|-------|-----------|--------------|-------------|
|
|
78
|
+
| Unit tests | | | | |
|
|
79
|
+
| Integration tests | | | | |
|
|
80
|
+
| Bias/fairness tests | | | | |
|
|
81
|
+
| Security tests | | | | |
|
|
82
|
+
| Performance tests | | | | |
|
|
83
|
+
|
|
84
|
+
### 4.2 Pre-Market Verification
|
|
85
|
+
|
|
86
|
+
| Check | Method | Result | Date |
|
|
87
|
+
|-------|--------|--------|------|
|
|
88
|
+
| Art. 9 Risk management | | | |
|
|
89
|
+
| Art. 10 Data quality | | | |
|
|
90
|
+
| Art. 13 Transparency | | | |
|
|
91
|
+
| Art. 15 Accuracy/robustness | | | |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Data Management
|
|
96
|
+
|
|
97
|
+
<!-- GUIDANCE: Art. 17(1)(d) — Technical specifications, including standards, used and,
|
|
98
|
+
where applicable, the harmonised standards. Art. 17(1)(f) — Systems and procedures
|
|
99
|
+
for data management, including data acquisition, collection, analysis, labelling,
|
|
100
|
+
storage, filtration, mining, aggregation, retention. -->
|
|
101
|
+
|
|
102
|
+
| Process | Description | Tool/System | Owner |
|
|
103
|
+
|---------|-------------|------------|-------|
|
|
104
|
+
| Data acquisition | | | |
|
|
105
|
+
| Data labelling | | | |
|
|
106
|
+
| Data storage | | | |
|
|
107
|
+
| Data retention | | | |
|
|
108
|
+
| Data deletion | | | |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 6. Resource Management
|
|
113
|
+
|
|
114
|
+
<!-- GUIDANCE: Art. 17(1)(j) — Resource management, including security-of-supply related
|
|
115
|
+
measures. Art. 17(1)(k) — An accountability framework. -->
|
|
116
|
+
|
|
117
|
+
### 6.1 Roles and Responsibilities
|
|
118
|
+
|
|
119
|
+
| Role | Responsibilities | Person | Training Required |
|
|
120
|
+
|------|-----------------|--------|-------------------|
|
|
121
|
+
| AI System Owner | Overall accountability | | |
|
|
122
|
+
| Technical Lead | Architecture and development | | |
|
|
123
|
+
| QA Lead | Testing and validation | | |
|
|
124
|
+
| Compliance Officer | Regulatory compliance | | |
|
|
125
|
+
| DPO | Data protection | | |
|
|
126
|
+
|
|
127
|
+
### 6.2 Training and Competence
|
|
128
|
+
|
|
129
|
+
| Role | Required Competencies | Training Provided | Frequency |
|
|
130
|
+
|------|----------------------|-------------------|-----------|
|
|
131
|
+
| | | | |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 7. Post-Market Monitoring
|
|
136
|
+
|
|
137
|
+
<!-- GUIDANCE: Art. 17(1)(h)-(i) — Post-market monitoring system including post-market
|
|
138
|
+
monitoring plan, and procedures for reporting serious incidents and malfunctioning. -->
|
|
139
|
+
|
|
140
|
+
| Activity | Frequency | Owner | Escalation Path |
|
|
141
|
+
|----------|-----------|-------|----------------|
|
|
142
|
+
| Performance monitoring | | | |
|
|
143
|
+
| Incident reporting | | | |
|
|
144
|
+
| User feedback collection | | | |
|
|
145
|
+
| Regulatory reporting | | | |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 8. Document and Record Keeping
|
|
150
|
+
|
|
151
|
+
<!-- GUIDANCE: Art. 17(1)(g) — A document management system. Art. 18 — Documentation
|
|
152
|
+
keeping obligation (10 years after last placing on market). -->
|
|
153
|
+
|
|
154
|
+
| Document Type | Location | Retention Period | Access Control |
|
|
155
|
+
|--------------|----------|-----------------|---------------|
|
|
156
|
+
| Technical documentation | | 10 years | |
|
|
157
|
+
| Test reports | | 10 years | |
|
|
158
|
+
| Audit records | | 10 years | |
|
|
159
|
+
| Incident reports | | 10 years | |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 9. Change Management
|
|
164
|
+
|
|
165
|
+
<!-- GUIDANCE: Art. 17(1)(a) — Procedures for management of modifications. Track all
|
|
166
|
+
changes to the AI system that may affect compliance. -->
|
|
167
|
+
|
|
168
|
+
| Change | Date | Impact Assessment | Approval | Revalidation Required |
|
|
169
|
+
|--------|------|-------------------|----------|----------------------|
|
|
170
|
+
| | | | | Yes/No |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Sign-off
|
|
175
|
+
|
|
176
|
+
| Role | Name | Signature | Date |
|
|
177
|
+
|------|------|-----------|------|
|
|
178
|
+
| Quality Manager | | | |
|
|
179
|
+
| AI System Owner | | | |
|
|
180
|
+
| Compliance Officer | | | |
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# AI Risk Management System
|
|
2
|
+
|
|
3
|
+
> **Regulation**: EU AI Act (Regulation (EU) 2024/1689), Article 9
|
|
4
|
+
> **Obligation**: OBL-003 — Establish Risk Management System
|
|
5
|
+
> **For**: Providers of High-Risk AI Systems
|
|
6
|
+
> **Deadline**: August 2, 2026
|
|
7
|
+
> **Document ID**: RMS-[YYYY]-[NNN]
|
|
8
|
+
|
|
9
|
+
<!-- GUIDANCE: Art. 9 requires a CONTINUOUS risk management system throughout the AI lifecycle,
|
|
10
|
+
not a one-time document. This document establishes the system; it must be actively maintained. -->
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Document Control
|
|
15
|
+
|
|
16
|
+
| Field | Value |
|
|
17
|
+
|-------|-------|
|
|
18
|
+
| AI System | [AI System Name] |
|
|
19
|
+
| Provider | [Company Name] |
|
|
20
|
+
| Version | [X.Y] |
|
|
21
|
+
| Risk Class | [Risk Class] |
|
|
22
|
+
| Created | [Date] |
|
|
23
|
+
| Last Review | [Date] |
|
|
24
|
+
| Next Review | |
|
|
25
|
+
| Approved By | [Name, Title] |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. Known Risks
|
|
30
|
+
|
|
31
|
+
<!-- GUIDANCE: Art. 9(2)(a) — Identify and analyze known and reasonably foreseeable risks
|
|
32
|
+
to health, safety, and fundamental rights. Be specific: name the risk, who is affected,
|
|
33
|
+
how likely, how severe. Do not use generic statements like "various risks exist". -->
|
|
34
|
+
|
|
35
|
+
### 2.1 Health and Safety Risks
|
|
36
|
+
|
|
37
|
+
| # | Risk Description | Affected Group | Likelihood | Severity | Overall Rating |
|
|
38
|
+
|---|-----------------|----------------|------------|----------|----------------|
|
|
39
|
+
| 1 | | | Low/Medium/High | Low/Medium/High/Critical | |
|
|
40
|
+
|
|
41
|
+
### 2.2 Fundamental Rights Risks
|
|
42
|
+
|
|
43
|
+
| # | Right Affected | Risk Description | Affected Group | Likelihood | Severity |
|
|
44
|
+
|---|----------------|-----------------|----------------|------------|----------|
|
|
45
|
+
| 1 | Art. 21 Non-discrimination | | | | |
|
|
46
|
+
| 2 | Arts. 7-8 Privacy/Data | | | | |
|
|
47
|
+
| 3 | Art. 11 Expression | | | | |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 3. Misuse Scenarios
|
|
52
|
+
|
|
53
|
+
<!-- GUIDANCE: Art. 9(2)(b) — Estimate and evaluate risks from reasonably foreseeable misuse.
|
|
54
|
+
Think adversarially: how could someone use this system in ways you did not intend? -->
|
|
55
|
+
|
|
56
|
+
| # | Misuse Scenario | Actors | Impact | Mitigation |
|
|
57
|
+
|---|----------------|--------|--------|------------|
|
|
58
|
+
| 1 | | | | |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 4. Residual Risk Assessment
|
|
63
|
+
|
|
64
|
+
<!-- GUIDANCE: After mitigation, what risks remain? Art. 9(4) requires that residual risks
|
|
65
|
+
are communicated to deployers and are "acceptable" given the system's intended purpose. -->
|
|
66
|
+
|
|
67
|
+
| # | Original Risk | Mitigation Applied | Residual Risk Level | Acceptable? | Justification |
|
|
68
|
+
|---|--------------|-------------------|--------------------|--------------|----|
|
|
69
|
+
| 1 | | | Low/Medium | Yes/No | |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 5. Test Results
|
|
74
|
+
|
|
75
|
+
<!-- GUIDANCE: Art. 9(6)-(8) — Test against defined metrics BEFORE market placement.
|
|
76
|
+
Include test methodology, datasets used, pass/fail criteria, actual results. -->
|
|
77
|
+
|
|
78
|
+
### 5.1 Pre-Market Testing
|
|
79
|
+
|
|
80
|
+
| Test | Methodology | Dataset | Pass Criteria | Result | Date |
|
|
81
|
+
|------|-------------|---------|---------------|--------|------|
|
|
82
|
+
| Accuracy | | | | | |
|
|
83
|
+
| Bias/Fairness | | | | | |
|
|
84
|
+
| Robustness | | | | | |
|
|
85
|
+
| Security | | | | | |
|
|
86
|
+
|
|
87
|
+
### 5.2 Ongoing Testing Schedule
|
|
88
|
+
|
|
89
|
+
| Test | Frequency | Last Run | Next Due | Owner |
|
|
90
|
+
|------|-----------|----------|----------|-------|
|
|
91
|
+
| | | | | |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 6. Mitigation Measures
|
|
96
|
+
|
|
97
|
+
<!-- GUIDANCE: Art. 9(3) — Eliminate or reduce risks through design and development.
|
|
98
|
+
Where elimination is not possible, implement adequate mitigation and control measures. -->
|
|
99
|
+
|
|
100
|
+
| Risk | Measure Type | Description | Status | Responsible |
|
|
101
|
+
|------|-------------|-------------|--------|-------------|
|
|
102
|
+
| | Design / Procedural / Technical | | Planned/Implemented/Verified | |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 7. Review and Update
|
|
107
|
+
|
|
108
|
+
<!-- GUIDANCE: Art. 9(1) — The RMS is iterative and runs throughout the lifecycle.
|
|
109
|
+
Document when and why updates are made. -->
|
|
110
|
+
|
|
111
|
+
| Date | Trigger | Changes Made | Approved By |
|
|
112
|
+
|------|---------|-------------|-------------|
|
|
113
|
+
| | Initial creation | | |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Sign-off
|
|
118
|
+
|
|
119
|
+
| Role | Name | Signature | Date |
|
|
120
|
+
|------|------|-----------|------|
|
|
121
|
+
| Risk Manager | | | |
|
|
122
|
+
| Technical Lead | | | |
|
|
123
|
+
| Compliance Officer | | | |
|