@waratahlabs/canopy 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +323 -0
- package/SKILL.md +97 -0
- package/demo/data/openclaw-demo.tc.json +397 -0
- package/demo/data/openclaw-nemoclaw-demo.tc.json +475 -0
- package/demo/index.html +556 -0
- package/dist/adapters/a2a.d.ts +82 -0
- package/dist/adapters/a2a.d.ts.map +1 -0
- package/dist/adapters/a2a.js +215 -0
- package/dist/adapters/a2a.js.map +1 -0
- package/dist/adapters/a2a.test.d.ts +2 -0
- package/dist/adapters/a2a.test.d.ts.map +1 -0
- package/dist/adapters/a2a.test.js +196 -0
- package/dist/adapters/a2a.test.js.map +1 -0
- package/dist/adapters/langfuse.d.ts +28 -0
- package/dist/adapters/langfuse.d.ts.map +1 -0
- package/dist/adapters/langfuse.js +192 -0
- package/dist/adapters/langfuse.js.map +1 -0
- package/dist/adapters/n8n.d.ts +4 -0
- package/dist/adapters/n8n.d.ts.map +1 -0
- package/dist/adapters/n8n.js +89 -0
- package/dist/adapters/n8n.js.map +1 -0
- package/dist/adapters/openclaw.d.ts +58 -0
- package/dist/adapters/openclaw.d.ts.map +1 -0
- package/dist/adapters/openclaw.js +275 -0
- package/dist/adapters/openclaw.js.map +1 -0
- package/dist/adapters/types.d.ts +33 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/aivss/atlas/coverage-matrix.d.ts +12 -0
- package/dist/aivss/atlas/coverage-matrix.d.ts.map +1 -0
- package/dist/aivss/atlas/coverage-matrix.js +272 -0
- package/dist/aivss/atlas/coverage-matrix.js.map +1 -0
- package/dist/aivss/atlas/loader.d.ts +28 -0
- package/dist/aivss/atlas/loader.d.ts.map +1 -0
- package/dist/aivss/atlas/loader.js +126 -0
- package/dist/aivss/atlas/loader.js.map +1 -0
- package/dist/aivss/atlas/loader.test.d.ts +11 -0
- package/dist/aivss/atlas/loader.test.d.ts.map +1 -0
- package/dist/aivss/atlas/loader.test.js +111 -0
- package/dist/aivss/atlas/loader.test.js.map +1 -0
- package/dist/aivss/atlas/resolve-path.d.ts +34 -0
- package/dist/aivss/atlas/resolve-path.d.ts.map +1 -0
- package/dist/aivss/atlas/resolve-path.js +58 -0
- package/dist/aivss/atlas/resolve-path.js.map +1 -0
- package/dist/aivss/batch/batch-builder.d.ts +11 -0
- package/dist/aivss/batch/batch-builder.d.ts.map +1 -0
- package/dist/aivss/batch/batch-builder.js +75 -0
- package/dist/aivss/batch/batch-builder.js.map +1 -0
- package/dist/aivss/index.d.ts +21 -0
- package/dist/aivss/index.d.ts.map +1 -0
- package/dist/aivss/index.js +19 -0
- package/dist/aivss/index.js.map +1 -0
- package/dist/aivss/knowledge-base/kb-client.d.ts +9 -0
- package/dist/aivss/knowledge-base/kb-client.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/kb-client.js +139 -0
- package/dist/aivss/knowledge-base/kb-client.js.map +1 -0
- package/dist/aivss/knowledge-base/kb-types.d.ts +21 -0
- package/dist/aivss/knowledge-base/kb-types.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/kb-types.js +2 -0
- package/dist/aivss/knowledge-base/kb-types.js.map +1 -0
- package/dist/aivss/knowledge-base/search-builder.d.ts +7 -0
- package/dist/aivss/knowledge-base/search-builder.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/search-builder.js +119 -0
- package/dist/aivss/knowledge-base/search-builder.js.map +1 -0
- package/dist/aivss/metrics/aa.d.ts +3 -0
- package/dist/aivss/metrics/aa.d.ts.map +1 -0
- package/dist/aivss/metrics/aa.js +26 -0
- package/dist/aivss/metrics/aa.js.map +1 -0
- package/dist/aivss/metrics/ad.d.ts +3 -0
- package/dist/aivss/metrics/ad.d.ts.map +1 -0
- package/dist/aivss/metrics/ad.js +30 -0
- package/dist/aivss/metrics/ad.js.map +1 -0
- package/dist/aivss/metrics/cs.d.ts +3 -0
- package/dist/aivss/metrics/cs.d.ts.map +1 -0
- package/dist/aivss/metrics/cs.js +50 -0
- package/dist/aivss/metrics/cs.js.map +1 -0
- package/dist/aivss/metrics/dc.d.ts +3 -0
- package/dist/aivss/metrics/dc.d.ts.map +1 -0
- package/dist/aivss/metrics/dc.js +30 -0
- package/dist/aivss/metrics/dc.js.map +1 -0
- package/dist/aivss/metrics/ds.d.ts +3 -0
- package/dist/aivss/metrics/ds.d.ts.map +1 -0
- package/dist/aivss/metrics/ds.js +26 -0
- package/dist/aivss/metrics/ds.js.map +1 -0
- package/dist/aivss/metrics/ei.d.ts +3 -0
- package/dist/aivss/metrics/ei.d.ts.map +1 -0
- package/dist/aivss/metrics/ei.js +30 -0
- package/dist/aivss/metrics/ei.js.map +1 -0
- package/dist/aivss/metrics/gv.d.ts +3 -0
- package/dist/aivss/metrics/gv.d.ts.map +1 -0
- package/dist/aivss/metrics/gv.js +34 -0
- package/dist/aivss/metrics/gv.js.map +1 -0
- package/dist/aivss/metrics/ll.d.ts +3 -0
- package/dist/aivss/metrics/ll.d.ts.map +1 -0
- package/dist/aivss/metrics/ll.js +30 -0
- package/dist/aivss/metrics/ll.js.map +1 -0
- package/dist/aivss/metrics/mr.d.ts +3 -0
- package/dist/aivss/metrics/mr.d.ts.map +1 -0
- package/dist/aivss/metrics/mr.js +26 -0
- package/dist/aivss/metrics/mr.js.map +1 -0
- package/dist/aivss/metrics/shared.d.ts +22 -0
- package/dist/aivss/metrics/shared.d.ts.map +1 -0
- package/dist/aivss/metrics/shared.js +70 -0
- package/dist/aivss/metrics/shared.js.map +1 -0
- package/dist/aivss/prompts/base-system-prompt.d.ts +2 -0
- package/dist/aivss/prompts/base-system-prompt.d.ts.map +1 -0
- package/dist/aivss/prompts/base-system-prompt.js +31 -0
- package/dist/aivss/prompts/base-system-prompt.js.map +1 -0
- package/dist/aivss/prompts/prompt-composer.d.ts +13 -0
- package/dist/aivss/prompts/prompt-composer.d.ts.map +1 -0
- package/dist/aivss/prompts/prompt-composer.js +21 -0
- package/dist/aivss/prompts/prompt-composer.js.map +1 -0
- package/dist/aivss/scoring/a2a-corpus.test.d.ts +28 -0
- package/dist/aivss/scoring/a2a-corpus.test.d.ts.map +1 -0
- package/dist/aivss/scoring/a2a-corpus.test.js +109 -0
- package/dist/aivss/scoring/a2a-corpus.test.js.map +1 -0
- package/dist/aivss/scoring/determinism.test.d.ts +16 -0
- package/dist/aivss/scoring/determinism.test.d.ts.map +1 -0
- package/dist/aivss/scoring/determinism.test.js +169 -0
- package/dist/aivss/scoring/determinism.test.js.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.d.ts +21 -0
- package/dist/aivss/scoring/heuristic-scorer.d.ts.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.js +299 -0
- package/dist/aivss/scoring/heuristic-scorer.js.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.test.d.ts +8 -0
- package/dist/aivss/scoring/heuristic-scorer.test.d.ts.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.test.js +150 -0
- package/dist/aivss/scoring/heuristic-scorer.test.js.map +1 -0
- package/dist/aivss/scoring/scoring-mode.d.ts +48 -0
- package/dist/aivss/scoring/scoring-mode.d.ts.map +1 -0
- package/dist/aivss/scoring/scoring-mode.js +64 -0
- package/dist/aivss/scoring/scoring-mode.js.map +1 -0
- package/dist/aivss/scoring/v4-engine.d.ts +15 -0
- package/dist/aivss/scoring/v4-engine.d.ts.map +1 -0
- package/dist/aivss/scoring/v4-engine.js +84 -0
- package/dist/aivss/scoring/v4-engine.js.map +1 -0
- package/dist/aivss/scoring/v4-engine.test.d.ts +16 -0
- package/dist/aivss/scoring/v4-engine.test.d.ts.map +1 -0
- package/dist/aivss/scoring/v4-engine.test.js +156 -0
- package/dist/aivss/scoring/v4-engine.test.js.map +1 -0
- package/dist/aivss/types.d.ts +92 -0
- package/dist/aivss/types.d.ts.map +1 -0
- package/dist/aivss/types.js +25 -0
- package/dist/aivss/types.js.map +1 -0
- package/dist/baseline/baseline.test.d.ts +2 -0
- package/dist/baseline/baseline.test.d.ts.map +1 -0
- package/dist/baseline/baseline.test.js +219 -0
- package/dist/baseline/baseline.test.js.map +1 -0
- package/dist/baseline/diff.d.ts +42 -0
- package/dist/baseline/diff.d.ts.map +1 -0
- package/dist/baseline/diff.js +124 -0
- package/dist/baseline/diff.js.map +1 -0
- package/dist/baseline/store.d.ts +51 -0
- package/dist/baseline/store.d.ts.map +1 -0
- package/dist/baseline/store.js +92 -0
- package/dist/baseline/store.js.map +1 -0
- package/dist/batch/anthropic-batch-runner.d.ts +50 -0
- package/dist/batch/anthropic-batch-runner.d.ts.map +1 -0
- package/dist/batch/anthropic-batch-runner.js +91 -0
- package/dist/batch/anthropic-batch-runner.js.map +1 -0
- package/dist/batch/bedrock-batch-runner.d.ts +90 -0
- package/dist/batch/bedrock-batch-runner.d.ts.map +1 -0
- package/dist/batch/bedrock-batch-runner.js +199 -0
- package/dist/batch/bedrock-batch-runner.js.map +1 -0
- package/dist/batch/providers/anthropic.d.ts +55 -0
- package/dist/batch/providers/anthropic.d.ts.map +1 -0
- package/dist/batch/providers/anthropic.js +103 -0
- package/dist/batch/providers/anthropic.js.map +1 -0
- package/dist/batch/providers/bedrock.d.ts +31 -0
- package/dist/batch/providers/bedrock.d.ts.map +1 -0
- package/dist/batch/providers/bedrock.js +42 -0
- package/dist/batch/providers/bedrock.js.map +1 -0
- package/dist/batch/providers/harness.d.ts +36 -0
- package/dist/batch/providers/harness.d.ts.map +1 -0
- package/dist/batch/providers/harness.js +65 -0
- package/dist/batch/providers/harness.js.map +1 -0
- package/dist/batch/providers/harness.test.d.ts +7 -0
- package/dist/batch/providers/harness.test.d.ts.map +1 -0
- package/dist/batch/providers/harness.test.js +84 -0
- package/dist/batch/providers/harness.test.js.map +1 -0
- package/dist/batch/providers/index.d.ts +82 -0
- package/dist/batch/providers/index.d.ts.map +1 -0
- package/dist/batch/providers/index.js +82 -0
- package/dist/batch/providers/index.js.map +1 -0
- package/dist/batch/providers/ollama.d.ts +68 -0
- package/dist/batch/providers/ollama.d.ts.map +1 -0
- package/dist/batch/providers/ollama.js +108 -0
- package/dist/batch/providers/ollama.js.map +1 -0
- package/dist/batch/response-parser.d.ts +45 -0
- package/dist/batch/response-parser.d.ts.map +1 -0
- package/dist/batch/response-parser.js +161 -0
- package/dist/batch/response-parser.js.map +1 -0
- package/dist/batch/types.d.ts +87 -0
- package/dist/batch/types.d.ts.map +1 -0
- package/dist/batch/types.js +8 -0
- package/dist/batch/types.js.map +1 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1037 -0
- package/dist/cli.js.map +1 -0
- package/dist/examples/a2a-assessment.d.ts +20 -0
- package/dist/examples/a2a-assessment.d.ts.map +1 -0
- package/dist/examples/a2a-assessment.js +115 -0
- package/dist/examples/a2a-assessment.js.map +1 -0
- package/dist/examples/batch-assessment.d.ts +18 -0
- package/dist/examples/batch-assessment.d.ts.map +1 -0
- package/dist/examples/batch-assessment.js +112 -0
- package/dist/examples/batch-assessment.js.map +1 -0
- package/dist/examples/batch-submission-flow.d.ts +2 -0
- package/dist/examples/batch-submission-flow.d.ts.map +1 -0
- package/dist/examples/batch-submission-flow.js +279 -0
- package/dist/examples/batch-submission-flow.js.map +1 -0
- package/dist/examples/demo-agent-definition.json +58 -0
- package/dist/examples/langfuse-assessment.d.ts +2 -0
- package/dist/examples/langfuse-assessment.d.ts.map +1 -0
- package/dist/examples/langfuse-assessment.js +46 -0
- package/dist/examples/langfuse-assessment.js.map +1 -0
- package/dist/examples/model-eval.d.ts +25 -0
- package/dist/examples/model-eval.d.ts.map +1 -0
- package/dist/examples/model-eval.js +94 -0
- package/dist/examples/model-eval.js.map +1 -0
- package/dist/examples/openclaw-assessment.d.ts +17 -0
- package/dist/examples/openclaw-assessment.d.ts.map +1 -0
- package/dist/examples/openclaw-assessment.js +79 -0
- package/dist/examples/openclaw-assessment.js.map +1 -0
- package/dist/examples/simple-assessment.d.ts +2 -0
- package/dist/examples/simple-assessment.d.ts.map +1 -0
- package/dist/examples/simple-assessment.js +146 -0
- package/dist/examples/simple-assessment.js.map +1 -0
- package/dist/examples/threat-model-demo.d.ts +2 -0
- package/dist/examples/threat-model-demo.d.ts.map +1 -0
- package/dist/examples/threat-model-demo.js +103 -0
- package/dist/examples/threat-model-demo.js.map +1 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/output/likec4-generator.d.ts +43 -0
- package/dist/output/likec4-generator.d.ts.map +1 -0
- package/dist/output/likec4-generator.js +287 -0
- package/dist/output/likec4-generator.js.map +1 -0
- package/dist/output/slot-filler.d.ts +6 -0
- package/dist/output/slot-filler.d.ts.map +1 -0
- package/dist/output/slot-filler.js +71 -0
- package/dist/output/slot-filler.js.map +1 -0
- package/dist/output/tc-assembler.d.ts +30 -0
- package/dist/output/tc-assembler.d.ts.map +1 -0
- package/dist/output/tc-assembler.js +227 -0
- package/dist/output/tc-assembler.js.map +1 -0
- package/dist/output/tc-types.d.ts +41 -0
- package/dist/output/tc-types.d.ts.map +1 -0
- package/dist/output/tc-types.js +5 -0
- package/dist/output/tc-types.js.map +1 -0
- package/dist/output/tc-validator.test.d.ts +9 -0
- package/dist/output/tc-validator.test.d.ts.map +1 -0
- package/dist/output/tc-validator.test.js +194 -0
- package/dist/output/tc-validator.test.js.map +1 -0
- package/dist/providers/anthropic.d.ts +9 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +30 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/bedrock.d.ts +9 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +38 -0
- package/dist/providers/bedrock.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +14 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/types.d.ts +12 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +5 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/references/acsc-risks.d.ts +18 -0
- package/dist/references/acsc-risks.d.ts.map +1 -0
- package/dist/references/acsc-risks.js +232 -0
- package/dist/references/acsc-risks.js.map +1 -0
- package/dist/references/aicm.d.ts +41 -0
- package/dist/references/aicm.d.ts.map +1 -0
- package/dist/references/aicm.js +447 -0
- package/dist/references/aicm.js.map +1 -0
- package/dist/references/dstg-meaid.d.ts +59 -0
- package/dist/references/dstg-meaid.d.ts.map +1 -0
- package/dist/references/dstg-meaid.js +352 -0
- package/dist/references/dstg-meaid.js.map +1 -0
- package/dist/references/index.d.ts +20 -0
- package/dist/references/index.d.ts.map +1 -0
- package/dist/references/index.js +31 -0
- package/dist/references/index.js.map +1 -0
- package/dist/references/nemoclaw.d.ts +48 -0
- package/dist/references/nemoclaw.d.ts.map +1 -0
- package/dist/references/nemoclaw.js +140 -0
- package/dist/references/nemoclaw.js.map +1 -0
- package/dist/references/nist-ai-rmf.d.ts +31 -0
- package/dist/references/nist-ai-rmf.d.ts.map +1 -0
- package/dist/references/nist-ai-rmf.js +627 -0
- package/dist/references/nist-ai-rmf.js.map +1 -0
- package/dist/references/owasp-agentic-top10.d.ts +50 -0
- package/dist/references/owasp-agentic-top10.d.ts.map +1 -0
- package/dist/references/owasp-agentic-top10.js +202 -0
- package/dist/references/owasp-agentic-top10.js.map +1 -0
- package/dist/references/registry-parity.test.d.ts +17 -0
- package/dist/references/registry-parity.test.d.ts.map +1 -0
- package/dist/references/registry-parity.test.js +87 -0
- package/dist/references/registry-parity.test.js.map +1 -0
- package/dist/references/registry.d.ts +90 -0
- package/dist/references/registry.d.ts.map +1 -0
- package/dist/references/registry.js +29 -0
- package/dist/references/registry.js.map +1 -0
- package/dist/tools/model-eval.d.ts +97 -0
- package/dist/tools/model-eval.d.ts.map +1 -0
- package/dist/tools/model-eval.js +307 -0
- package/dist/tools/model-eval.js.map +1 -0
- package/package.json +105 -0
- package/schemas/threat-composer-v1.schema.json +966 -0
- package/vendor/atlas-release/ATLAS-2026.07.yaml +17877 -0
- package/vendor/atlas-release/README.md +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../../src/aivss/atlas/loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for locating the vendored MITRE ATLAS data file.
|
|
3
|
+
*
|
|
4
|
+
* Two problems this solves:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Installed-package resolution.** When Canopy runs as a dependency, the
|
|
7
|
+
* consumer's `process.cwd()` has no `vendor/` directory. Resolution must
|
|
8
|
+
* fall back to a path relative to this module, which lands inside the
|
|
9
|
+
* installed package. Previously `batch-builder.ts` resolved from cwd only
|
|
10
|
+
* and would throw for every installed consumer.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Version pinning.** The ATLAS content filename was hardcoded in eight
|
|
13
|
+
* call sites, so a monthly content bump meant eight edits and a silent
|
|
14
|
+
* miss if one was forgotten. The pinned filename now lives here alone.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately NOT auto-discovering the newest `ATLAS-*.yaml` on disk: scores
|
|
17
|
+
* are a stability contract, and picking up a new content release implicitly
|
|
18
|
+
* would change emitted scores without a version bump. Upgrading ATLAS is an
|
|
19
|
+
* explicit edit to ATLAS_CONTENT_VERSION plus a re-run of the assessments.
|
|
20
|
+
*/
|
|
21
|
+
/** Calendar content version of the vendored ATLAS release (MITRE ships monthly). */
|
|
22
|
+
export declare const ATLAS_CONTENT_VERSION = "2026.07";
|
|
23
|
+
/** Semver schema version of the vendored release — tracked separately by MITRE since 2026.05. */
|
|
24
|
+
export declare const ATLAS_FORMAT_VERSION = "6.0.0";
|
|
25
|
+
/** Filename of the vendored ATLAS data, derived from the pinned content version. */
|
|
26
|
+
export declare const ATLAS_YAML_FILENAME = "ATLAS-2026.07.yaml";
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the vendored ATLAS YAML.
|
|
29
|
+
*
|
|
30
|
+
* @param explicit - caller-supplied path; returned as-is when provided.
|
|
31
|
+
* @throws when no candidate exists, naming every path tried.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveAtlasYaml(explicit?: string): string;
|
|
34
|
+
//# sourceMappingURL=resolve-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-path.d.ts","sourceRoot":"","sources":["../../../src/aivss/atlas/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,iGAAiG;AACjG,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,uBAAwC,CAAC;AAIzE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAwB1D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for locating the vendored MITRE ATLAS data file.
|
|
3
|
+
*
|
|
4
|
+
* Two problems this solves:
|
|
5
|
+
*
|
|
6
|
+
* 1. **Installed-package resolution.** When Canopy runs as a dependency, the
|
|
7
|
+
* consumer's `process.cwd()` has no `vendor/` directory. Resolution must
|
|
8
|
+
* fall back to a path relative to this module, which lands inside the
|
|
9
|
+
* installed package. Previously `batch-builder.ts` resolved from cwd only
|
|
10
|
+
* and would throw for every installed consumer.
|
|
11
|
+
*
|
|
12
|
+
* 2. **Version pinning.** The ATLAS content filename was hardcoded in eight
|
|
13
|
+
* call sites, so a monthly content bump meant eight edits and a silent
|
|
14
|
+
* miss if one was forgotten. The pinned filename now lives here alone.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately NOT auto-discovering the newest `ATLAS-*.yaml` on disk: scores
|
|
17
|
+
* are a stability contract, and picking up a new content release implicitly
|
|
18
|
+
* would change emitted scores without a version bump. Upgrading ATLAS is an
|
|
19
|
+
* explicit edit to ATLAS_CONTENT_VERSION plus a re-run of the assessments.
|
|
20
|
+
*/
|
|
21
|
+
import * as fs from "node:fs";
|
|
22
|
+
import * as path from "node:path";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
/** Calendar content version of the vendored ATLAS release (MITRE ships monthly). */
|
|
25
|
+
export const ATLAS_CONTENT_VERSION = "2026.07";
|
|
26
|
+
/** Semver schema version of the vendored release — tracked separately by MITRE since 2026.05. */
|
|
27
|
+
export const ATLAS_FORMAT_VERSION = "6.0.0";
|
|
28
|
+
/** Filename of the vendored ATLAS data, derived from the pinned content version. */
|
|
29
|
+
export const ATLAS_YAML_FILENAME = `ATLAS-${ATLAS_CONTENT_VERSION}.yaml`;
|
|
30
|
+
const VENDOR_RELATIVE = `vendor/atlas-release/${ATLAS_YAML_FILENAME}`;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the vendored ATLAS YAML.
|
|
33
|
+
*
|
|
34
|
+
* @param explicit - caller-supplied path; returned as-is when provided.
|
|
35
|
+
* @throws when no candidate exists, naming every path tried.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveAtlasYaml(explicit) {
|
|
38
|
+
if (explicit)
|
|
39
|
+
return explicit;
|
|
40
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
41
|
+
const candidates = [
|
|
42
|
+
// Running from a checkout (cwd is the repo root).
|
|
43
|
+
path.resolve(process.cwd(), VENDOR_RELATIVE),
|
|
44
|
+
// Running as an installed dependency: this module sits at
|
|
45
|
+
// <pkg>/dist/aivss/atlas/, so the package root is three levels up.
|
|
46
|
+
path.resolve(moduleDir, "../../../", VENDOR_RELATIVE),
|
|
47
|
+
// Running from source via bun (src/aivss/atlas/), same depth.
|
|
48
|
+
path.resolve(moduleDir, "../../../", VENDOR_RELATIVE),
|
|
49
|
+
];
|
|
50
|
+
for (const candidate of candidates) {
|
|
51
|
+
if (fs.existsSync(candidate))
|
|
52
|
+
return candidate;
|
|
53
|
+
}
|
|
54
|
+
throw new Error(`ATLAS data not found (expected ${ATLAS_YAML_FILENAME}). Looked in:\n` +
|
|
55
|
+
candidates.map((c) => ` - ${c}`).join("\n") +
|
|
56
|
+
`\nPass an explicit path, or verify the package shipped vendor/atlas-release/.`);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=resolve-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../../src/aivss/atlas/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAE/C,iGAAiG;AACjG,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,qBAAqB,OAAO,CAAC;AAEzE,MAAM,eAAe,GAAG,wBAAwB,mBAAmB,EAAE,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG;QACjB,kDAAkD;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;QAC5C,0DAA0D;QAC1D,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;QACrD,8DAA8D;QAC9D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;KACtD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kCAAkC,mBAAmB,iBAAiB;QACpE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,+EAA+E,CAClF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AIVSSKnowledgeBase } from "../knowledge-base/kb-client";
|
|
2
|
+
import { type AgentDefinition, type BatchRequest } from "../types";
|
|
3
|
+
export interface BatchAssessmentConfig {
|
|
4
|
+
agents: AgentDefinition[];
|
|
5
|
+
useKnowledgeBase: boolean;
|
|
6
|
+
model?: string;
|
|
7
|
+
temperature?: number;
|
|
8
|
+
maxTokens?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildBatchRequests(config: BatchAssessmentConfig, kb?: AIVSSKnowledgeBase): Promise<BatchRequest[]>;
|
|
11
|
+
//# sourceMappingURL=batch-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-builder.d.ts","sourceRoot":"","sources":["../../../src/aivss/batch/batch-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAWjE,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,YAAY,EAAmB,MAAM,UAAU,CAAC;AAElG,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,qBAAqB,EAC7B,EAAE,CAAC,EAAE,kBAAkB,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC,CA2CzB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { resolveAtlasYaml } from "../atlas/resolve-path";
|
|
2
|
+
import { buildBaseSystemPrompt } from "../prompts/base-system-prompt";
|
|
3
|
+
import { composeAssessmentPrompt } from "../prompts/prompt-composer";
|
|
4
|
+
import { getTechniquesForMetric } from "../atlas/coverage-matrix";
|
|
5
|
+
import { getAtlasContext, loadAtlasData } from "../atlas/loader";
|
|
6
|
+
import { KBSearchBuilder } from "../knowledge-base/search-builder";
|
|
7
|
+
import { buildADPrompt } from "../metrics/ad";
|
|
8
|
+
import { buildAAPrompt } from "../metrics/aa";
|
|
9
|
+
import { buildCSPrompt } from "../metrics/cs";
|
|
10
|
+
import { buildDCPrompt } from "../metrics/dc";
|
|
11
|
+
import { buildDSPrompt } from "../metrics/ds";
|
|
12
|
+
import { buildEIPrompt } from "../metrics/ei";
|
|
13
|
+
import { buildGVPrompt } from "../metrics/gv";
|
|
14
|
+
import { buildLLPrompt } from "../metrics/ll";
|
|
15
|
+
import { buildMRPrompt } from "../metrics/mr";
|
|
16
|
+
import { METRIC_CODES } from "../types";
|
|
17
|
+
const METRIC_PROMPT_BUILDERS = {
|
|
18
|
+
MR: buildMRPrompt,
|
|
19
|
+
DS: buildDSPrompt,
|
|
20
|
+
EI: buildEIPrompt,
|
|
21
|
+
DC: buildDCPrompt,
|
|
22
|
+
AD: buildADPrompt,
|
|
23
|
+
AA: buildAAPrompt,
|
|
24
|
+
LL: buildLLPrompt,
|
|
25
|
+
GV: buildGVPrompt,
|
|
26
|
+
CS: buildCSPrompt,
|
|
27
|
+
};
|
|
28
|
+
export async function buildBatchRequests(config, kb) {
|
|
29
|
+
const atlas = loadAtlasData(resolveAtlasYaml());
|
|
30
|
+
const model = config.model ?? "claude-opus-4-7";
|
|
31
|
+
const temperature = config.temperature ?? 0;
|
|
32
|
+
const maxTokens = config.maxTokens ?? 1024;
|
|
33
|
+
const baseSystemPrompt = buildBaseSystemPrompt();
|
|
34
|
+
const requests = [];
|
|
35
|
+
for (const agent of config.agents) {
|
|
36
|
+
const metricRequests = await Promise.all(METRIC_CODES.map(async (metricCode) => {
|
|
37
|
+
const kbContext = config.useKnowledgeBase && kb
|
|
38
|
+
? await buildKnowledgeBaseContext(kb, metricCode, agent)
|
|
39
|
+
: undefined;
|
|
40
|
+
const ids = getTechniquesForMetric(metricCode);
|
|
41
|
+
const ctx = getAtlasContext(atlas, ids);
|
|
42
|
+
const metricPrompt = METRIC_PROMPT_BUILDERS[metricCode](agent, kbContext, ctx);
|
|
43
|
+
const { system, user } = composeAssessmentPrompt({
|
|
44
|
+
baseSystemPrompt,
|
|
45
|
+
metricPrompt,
|
|
46
|
+
agentDefinition: agent,
|
|
47
|
+
kbContext,
|
|
48
|
+
});
|
|
49
|
+
const request = {
|
|
50
|
+
custom_id: `${agent.id}-${metricCode}`,
|
|
51
|
+
params: {
|
|
52
|
+
model,
|
|
53
|
+
max_tokens: maxTokens,
|
|
54
|
+
temperature,
|
|
55
|
+
system,
|
|
56
|
+
messages: [{ role: "user", content: user }],
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
return request;
|
|
60
|
+
}));
|
|
61
|
+
requests.push(...metricRequests);
|
|
62
|
+
}
|
|
63
|
+
return requests;
|
|
64
|
+
}
|
|
65
|
+
async function buildKnowledgeBaseContext(kb, metricCode, agent) {
|
|
66
|
+
const query = KBSearchBuilder.buildQueryForMetric(metricCode, agent);
|
|
67
|
+
const results = await kb.search(query);
|
|
68
|
+
if (results.results.length === 0) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return results.results
|
|
72
|
+
.map((result) => `- **${result.section}**: ${result.excerpt}`)
|
|
73
|
+
.join("\n");
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=batch-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-builder.js","sourceRoot":"","sources":["../../../src/aivss/batch/batch-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { MODEL_COMPLEXITY_VALUES, SEVERITY_VALUES, type AgentDefinition, type AtlasFinding, type BatchRequest, type DeploymentContext, type MetricAssessmentResponse, type MetricCode, type MitigationMultiplier, type ModelComplexity, type SeverityLabel, type Tool, type V4Score, } from "./types";
|
|
2
|
+
export { AIVSSKnowledgeBase } from "./knowledge-base/kb-client";
|
|
3
|
+
export { KBSearchBuilder } from "./knowledge-base/search-builder";
|
|
4
|
+
export type { KBContext, KBSearchQuery, KBSearchResult } from "./knowledge-base/kb-types";
|
|
5
|
+
export { buildMRPrompt } from "./metrics/mr";
|
|
6
|
+
export { buildDSPrompt } from "./metrics/ds";
|
|
7
|
+
export { buildEIPrompt } from "./metrics/ei";
|
|
8
|
+
export { buildDCPrompt } from "./metrics/dc";
|
|
9
|
+
export { buildADPrompt } from "./metrics/ad";
|
|
10
|
+
export { buildAAPrompt } from "./metrics/aa";
|
|
11
|
+
export { buildLLPrompt } from "./metrics/ll";
|
|
12
|
+
export { buildGVPrompt } from "./metrics/gv";
|
|
13
|
+
export { buildCSPrompt } from "./metrics/cs";
|
|
14
|
+
export { buildBaseSystemPrompt } from "./prompts/base-system-prompt";
|
|
15
|
+
export { composeAssessmentPrompt } from "./prompts/prompt-composer";
|
|
16
|
+
export { calculateAIVSSScore, DEPLOYMENT_WEIGHTS, severityLabel } from "./scoring/v4-engine";
|
|
17
|
+
export { buildBatchRequests } from "./batch/batch-builder";
|
|
18
|
+
export type { BatchAssessmentConfig } from "./batch/batch-builder";
|
|
19
|
+
export { ATLAS_COVERAGE_MATRIX } from "./atlas/coverage-matrix";
|
|
20
|
+
export { loadAtlasData, type AtlasData, type AtlasTechnique, } from "./atlas/loader";
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aivss/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,KAAK,OAAO,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { MODEL_COMPLEXITY_VALUES, SEVERITY_VALUES, } from "./types";
|
|
2
|
+
export { AIVSSKnowledgeBase } from "./knowledge-base/kb-client";
|
|
3
|
+
export { KBSearchBuilder } from "./knowledge-base/search-builder";
|
|
4
|
+
export { buildMRPrompt } from "./metrics/mr";
|
|
5
|
+
export { buildDSPrompt } from "./metrics/ds";
|
|
6
|
+
export { buildEIPrompt } from "./metrics/ei";
|
|
7
|
+
export { buildDCPrompt } from "./metrics/dc";
|
|
8
|
+
export { buildADPrompt } from "./metrics/ad";
|
|
9
|
+
export { buildAAPrompt } from "./metrics/aa";
|
|
10
|
+
export { buildLLPrompt } from "./metrics/ll";
|
|
11
|
+
export { buildGVPrompt } from "./metrics/gv";
|
|
12
|
+
export { buildCSPrompt } from "./metrics/cs";
|
|
13
|
+
export { buildBaseSystemPrompt } from "./prompts/base-system-prompt";
|
|
14
|
+
export { composeAssessmentPrompt } from "./prompts/prompt-composer";
|
|
15
|
+
export { calculateAIVSSScore, DEPLOYMENT_WEIGHTS, severityLabel } from "./scoring/v4-engine";
|
|
16
|
+
export { buildBatchRequests } from "./batch/batch-builder";
|
|
17
|
+
export { ATLAS_COVERAGE_MATRIX } from "./atlas/coverage-matrix";
|
|
18
|
+
export { loadAtlasData, } from "./atlas/loader";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aivss/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,eAAe,GAYhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,aAAa,GAGd,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { KBContext, KBSearchQuery } from "./kb-types";
|
|
2
|
+
export declare class AIVSSKnowledgeBase {
|
|
3
|
+
private readonly mockIndex;
|
|
4
|
+
constructor();
|
|
5
|
+
search(query: KBSearchQuery): Promise<KBContext>;
|
|
6
|
+
private calculateRelevance;
|
|
7
|
+
private initializeMockData;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=kb-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-client.d.ts","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/kb-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAE3E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;;IAM3D,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAUtD,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;CAiJ3B"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export class AIVSSKnowledgeBase {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.mockIndex = new Map();
|
|
4
|
+
this.initializeMockData();
|
|
5
|
+
}
|
|
6
|
+
async search(query) {
|
|
7
|
+
const results = this.mockIndex.get(query.category) ?? [];
|
|
8
|
+
return {
|
|
9
|
+
category: query.category,
|
|
10
|
+
results: results.slice(0, query.limit ?? 5),
|
|
11
|
+
totalRelevance: this.calculateRelevance(results),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
calculateRelevance(results) {
|
|
15
|
+
if (results.length === 0) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
return results.reduce((sum, result) => sum + result.relevance, 0) / results.length;
|
|
19
|
+
}
|
|
20
|
+
initializeMockData() {
|
|
21
|
+
this.mockIndex.set("MR", [
|
|
22
|
+
{
|
|
23
|
+
section: "V4 MR-1: Evasion Resistance",
|
|
24
|
+
relevance: 0.94,
|
|
25
|
+
excerpt: "Assess robustness against adversarial prompts, distribution shifts, and manipulated inputs that seek to induce unsafe or incorrect outputs.",
|
|
26
|
+
definition: "Resilience of the model when attackers perturb inputs to evade intended safeguards.",
|
|
27
|
+
examples: ["Prompt perturbations", "Adversarial suffixes", "Input distribution drift"],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
section: "V4 MR-3: Robustness Certification",
|
|
31
|
+
relevance: 0.86,
|
|
32
|
+
excerpt: "Formal certification is rare, so empirical adversarial testing and repeatable benchmarking are important evidence for robustness scoring.",
|
|
33
|
+
},
|
|
34
|
+
]);
|
|
35
|
+
this.mockIndex.set("DS", [
|
|
36
|
+
{
|
|
37
|
+
section: "V4 DS-1: Data Confidentiality",
|
|
38
|
+
relevance: 0.93,
|
|
39
|
+
excerpt: "Training data, prompts, logs, embeddings, and retrieval stores can all expose regulated or proprietary data if access boundaries are weak.",
|
|
40
|
+
examples: ["PII leakage", "Secret disclosure", "Sensitive context returned in outputs"],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
section: "V4 DS-3: Data Provenance",
|
|
44
|
+
relevance: 0.84,
|
|
45
|
+
excerpt: "Provenance controls should establish source trust, chain of custody, integrity verification, and clear handling for low-confidence data.",
|
|
46
|
+
},
|
|
47
|
+
]);
|
|
48
|
+
this.mockIndex.set("EI", [
|
|
49
|
+
{
|
|
50
|
+
section: "V4 EI-1: Bias and Discrimination",
|
|
51
|
+
relevance: 0.91,
|
|
52
|
+
excerpt: "Bias evaluation should examine disparate impact, representational harm, and whether protected groups are disproportionately affected by errors.",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
section: "V4 EI-4: Societal Impact",
|
|
56
|
+
relevance: 0.83,
|
|
57
|
+
excerpt: "Even when direct harm is limited, broader social effects such as misinformation, exclusion, and trust erosion influence severity.",
|
|
58
|
+
},
|
|
59
|
+
]);
|
|
60
|
+
this.mockIndex.set("DC", [
|
|
61
|
+
{
|
|
62
|
+
section: "V4 DC-1: Safety-Critical Applications",
|
|
63
|
+
relevance: 0.95,
|
|
64
|
+
excerpt: "Systems that influence health, physical systems, or public safety should score high when failures can propagate into real-world harm.",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
section: "V4 DC-4: Operational Disruption",
|
|
68
|
+
relevance: 0.88,
|
|
69
|
+
excerpt: "Operational disruption considers outage potential, workflow blockage, recovery complexity, and cascading system dependencies.",
|
|
70
|
+
},
|
|
71
|
+
]);
|
|
72
|
+
this.mockIndex.set("AD", [
|
|
73
|
+
{
|
|
74
|
+
section: "V4 AD-1: Continuous Monitoring",
|
|
75
|
+
relevance: 0.89,
|
|
76
|
+
excerpt: "Production telemetry should capture drift, anomalous prompts, unsafe tool calls, and unusual response patterns for rapid triage.",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
section: "V4 AD-4: Adversarial Training",
|
|
80
|
+
relevance: 0.82,
|
|
81
|
+
excerpt: "Adversarial training and structured red teaming improve resilience when they are paired with validation, rollback, and post-update measurement.",
|
|
82
|
+
},
|
|
83
|
+
]);
|
|
84
|
+
this.mockIndex.set("AA", [
|
|
85
|
+
{
|
|
86
|
+
section: "V4 AA-1: Model Inversion",
|
|
87
|
+
relevance: 0.9,
|
|
88
|
+
excerpt: "Inversion risks increase when outputs reveal stable internal signals or high-fidelity details about sensitive training examples.",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
section: "V4 AA-2: Model Extraction",
|
|
92
|
+
relevance: 0.87,
|
|
93
|
+
excerpt: "Extraction risk depends on rate limits, query observability, interface richness, and whether outputs expose behavior that supports cloning.",
|
|
94
|
+
},
|
|
95
|
+
]);
|
|
96
|
+
this.mockIndex.set("LL", [
|
|
97
|
+
{
|
|
98
|
+
section: "V4 LL-1: Development Security",
|
|
99
|
+
relevance: 0.92,
|
|
100
|
+
excerpt: "Secure development includes code review, dependency hygiene, secret handling, reproducible builds, and environment isolation.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
section: "V4 LL-3: Deployment Security",
|
|
104
|
+
relevance: 0.87,
|
|
105
|
+
excerpt: "Deployment controls should cover network segmentation, IAM, runtime policy, container hardening, and release approval workflows.",
|
|
106
|
+
},
|
|
107
|
+
]);
|
|
108
|
+
this.mockIndex.set("GV", [
|
|
109
|
+
{
|
|
110
|
+
section: "V4 GV-1: Regulatory Compliance",
|
|
111
|
+
relevance: 0.9,
|
|
112
|
+
excerpt: "Severity should increase when the deployment handles regulated decisions or sensitive populations without clear compliance evidence.",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
section: "V4 GV-4: Human Oversight",
|
|
116
|
+
relevance: 0.86,
|
|
117
|
+
excerpt: "High-consequence systems should give humans practical override paths, review checkpoints, and accountability for decisions.",
|
|
118
|
+
},
|
|
119
|
+
]);
|
|
120
|
+
this.mockIndex.set("CS", [
|
|
121
|
+
{
|
|
122
|
+
section: "V4 CS-1: Model Manipulation / Prompt Injection",
|
|
123
|
+
relevance: 0.97,
|
|
124
|
+
excerpt: "Prompt injection severity depends on input trust boundaries, tool authority, context isolation, and whether untrusted content can redirect execution.",
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
section: "V4 CS-6: Insecure Supply Chain",
|
|
128
|
+
relevance: 0.88,
|
|
129
|
+
excerpt: "Supply chain exposure includes models, datasets, plugins, packages, and build-time artifacts that can be compromised upstream.",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
section: "V4 CS-9: Loss of Governance / Compliance",
|
|
133
|
+
relevance: 0.84,
|
|
134
|
+
excerpt: "Systems should be evaluated for drift outside policy, logging gaps, missing approvals, and control bypasses that break governance expectations.",
|
|
135
|
+
},
|
|
136
|
+
]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=kb-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-client.js","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/kb-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MetricCode } from "../types";
|
|
2
|
+
export interface KBSearchQuery {
|
|
3
|
+
category: MetricCode;
|
|
4
|
+
keywords: string[];
|
|
5
|
+
specificRisks?: string[];
|
|
6
|
+
limit?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface KBSearchResult {
|
|
9
|
+
section: string;
|
|
10
|
+
relevance: number;
|
|
11
|
+
excerpt: string;
|
|
12
|
+
pageReference?: string;
|
|
13
|
+
definition?: string;
|
|
14
|
+
examples?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface KBContext {
|
|
17
|
+
category: MetricCode;
|
|
18
|
+
results: KBSearchResult[];
|
|
19
|
+
totalRelevance: number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=kb-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-types.d.ts","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/kb-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-types.js","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/kb-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AgentDefinition, MetricCode } from "../types";
|
|
2
|
+
import type { KBSearchQuery } from "./kb-types";
|
|
3
|
+
export declare class KBSearchBuilder {
|
|
4
|
+
static buildQueryForMetric(metricCode: MetricCode, agentProfile: AgentDefinition): KBSearchQuery;
|
|
5
|
+
private static inferSpecificRisks;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=search-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-builder.d.ts","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/search-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,eAAe;IAC1B,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,GAAG,aAAa;IAwEhG,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAwDlC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export class KBSearchBuilder {
|
|
2
|
+
static buildQueryForMetric(metricCode, agentProfile) {
|
|
3
|
+
const categoryKeywords = {
|
|
4
|
+
MR: [
|
|
5
|
+
"adversarial robustness",
|
|
6
|
+
"evasion resistance",
|
|
7
|
+
"distribution shift",
|
|
8
|
+
"robustness certification",
|
|
9
|
+
...(agentProfile.tools.length > 0 ? ["tool-mediated prompt attacks"] : []),
|
|
10
|
+
],
|
|
11
|
+
DS: [
|
|
12
|
+
"data confidentiality",
|
|
13
|
+
"data integrity",
|
|
14
|
+
"data provenance",
|
|
15
|
+
"retrieval store exposure",
|
|
16
|
+
...(agentProfile.dataSources?.length ? ["source validation"] : []),
|
|
17
|
+
],
|
|
18
|
+
EI: [
|
|
19
|
+
"bias and discrimination",
|
|
20
|
+
"transparency and explainability",
|
|
21
|
+
"accountability",
|
|
22
|
+
"societal impact",
|
|
23
|
+
],
|
|
24
|
+
DC: [
|
|
25
|
+
"safety critical",
|
|
26
|
+
"financial impact",
|
|
27
|
+
"reputational damage",
|
|
28
|
+
"operational disruption",
|
|
29
|
+
],
|
|
30
|
+
AD: [
|
|
31
|
+
"continuous monitoring",
|
|
32
|
+
"retraining capabilities",
|
|
33
|
+
"threat intelligence integration",
|
|
34
|
+
"adversarial training",
|
|
35
|
+
],
|
|
36
|
+
AA: [
|
|
37
|
+
"model inversion",
|
|
38
|
+
"model extraction",
|
|
39
|
+
"membership inference",
|
|
40
|
+
"privacy leakage",
|
|
41
|
+
],
|
|
42
|
+
LL: [
|
|
43
|
+
"development security",
|
|
44
|
+
"training security",
|
|
45
|
+
"deployment security",
|
|
46
|
+
"operational security",
|
|
47
|
+
"dependency governance",
|
|
48
|
+
],
|
|
49
|
+
GV: [
|
|
50
|
+
"regulatory compliance",
|
|
51
|
+
"auditing",
|
|
52
|
+
"risk management",
|
|
53
|
+
"human oversight",
|
|
54
|
+
"ethical framework alignment",
|
|
55
|
+
],
|
|
56
|
+
CS: [
|
|
57
|
+
"prompt injection",
|
|
58
|
+
"sensitive data disclosure",
|
|
59
|
+
"insecure supply chain",
|
|
60
|
+
"plugin security",
|
|
61
|
+
"denial of service",
|
|
62
|
+
"loss of governance",
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
category: metricCode,
|
|
67
|
+
keywords: categoryKeywords[metricCode],
|
|
68
|
+
specificRisks: this.inferSpecificRisks(metricCode, agentProfile),
|
|
69
|
+
limit: 5,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
static inferSpecificRisks(metricCode, profile) {
|
|
73
|
+
const risks = [];
|
|
74
|
+
if (metricCode === "MR" && profile.tools.some((tool) => tool.dangerous)) {
|
|
75
|
+
risks.push("Dangerous tool access raises the impact of adversarial prompt evasion.");
|
|
76
|
+
}
|
|
77
|
+
if (metricCode === "DS") {
|
|
78
|
+
if (profile.dataSources?.some((source) => source.includes("user"))) {
|
|
79
|
+
risks.push("User-influenced data sources raise poisoning and provenance concerns.");
|
|
80
|
+
}
|
|
81
|
+
if (profile.finetuned) {
|
|
82
|
+
risks.push("Fine-tuning increases the need for stronger provenance and integrity controls.");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (metricCode === "EI" && profile.deploymentContext !== "General") {
|
|
86
|
+
risks.push(`Sector-specific obligations apply for ${profile.deploymentContext} deployments.`);
|
|
87
|
+
}
|
|
88
|
+
if (metricCode === "DC" && profile.autonomyLevel === "autonomous") {
|
|
89
|
+
risks.push("Autonomous operation increases the blast radius of incorrect decisions.");
|
|
90
|
+
}
|
|
91
|
+
if (metricCode === "AD" && !profile.finetuned) {
|
|
92
|
+
risks.push("Lack of fine-tuning can limit controlled retraining and adaptive hardening options.");
|
|
93
|
+
}
|
|
94
|
+
if (metricCode === "AA" && profile.permissions.length > 3) {
|
|
95
|
+
risks.push("Broad permissions can amplify data recovery and extraction consequences.");
|
|
96
|
+
}
|
|
97
|
+
if (metricCode === "LL") {
|
|
98
|
+
if (profile.dependencies.length > 5) {
|
|
99
|
+
risks.push("A larger dependency graph increases lifecycle and supply chain exposure.");
|
|
100
|
+
}
|
|
101
|
+
if (profile.externalApiCount && profile.externalApiCount > 2) {
|
|
102
|
+
risks.push("Multiple external APIs expand the deployed attack surface.");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (metricCode === "GV" && profile.autonomyLevel !== "supervised") {
|
|
106
|
+
risks.push("Reduced human supervision raises oversight and accountability requirements.");
|
|
107
|
+
}
|
|
108
|
+
if (metricCode === "CS") {
|
|
109
|
+
if (profile.tools.some((tool) => tool.dangerous)) {
|
|
110
|
+
risks.push("Dangerous tools increase prompt injection and plugin abuse risk.");
|
|
111
|
+
}
|
|
112
|
+
if (profile.secretManagement.toLowerCase().includes("environment")) {
|
|
113
|
+
risks.push("Environment-variable-only secret handling may need stronger runtime controls.");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return risks;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=search-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-builder.js","sourceRoot":"","sources":["../../../src/aivss/knowledge-base/search-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aa.d.ts","sourceRoot":"","sources":["../../../src/aivss/metrics/aa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CA2BR"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildMetricPrompt } from "./shared";
|
|
2
|
+
export function buildAAPrompt(agent, kbContext, atlasContext) {
|
|
3
|
+
return buildMetricPrompt({
|
|
4
|
+
metricCode: "AA",
|
|
5
|
+
metricName: "Adversarial Attack Surface",
|
|
6
|
+
metricDescription: "Adversarial Attack Surface measures the system's susceptibility to privacy and model theft attacks that extract hidden knowledge or training membership.",
|
|
7
|
+
subCategories: [
|
|
8
|
+
{
|
|
9
|
+
name: "Model Inversion",
|
|
10
|
+
definition: "Evaluate whether attackers can reconstruct sensitive features, prompt contents, or training signals from outputs or interfaces.",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: "Model Extraction",
|
|
14
|
+
definition: "Evaluate whether the deployed interface enables replication of weights, behavior, decision boundaries, or proprietary model capabilities.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Membership Inference",
|
|
18
|
+
definition: "Evaluate whether an attacker can determine whether a specific record, user, or document was present in training or fine-tuning data.",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
agent,
|
|
22
|
+
kbContext,
|
|
23
|
+
atlasContext,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=aa.js.map
|