@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.
Files changed (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +323 -0
  3. package/SKILL.md +97 -0
  4. package/demo/data/openclaw-demo.tc.json +397 -0
  5. package/demo/data/openclaw-nemoclaw-demo.tc.json +475 -0
  6. package/demo/index.html +556 -0
  7. package/dist/adapters/a2a.d.ts +82 -0
  8. package/dist/adapters/a2a.d.ts.map +1 -0
  9. package/dist/adapters/a2a.js +215 -0
  10. package/dist/adapters/a2a.js.map +1 -0
  11. package/dist/adapters/a2a.test.d.ts +2 -0
  12. package/dist/adapters/a2a.test.d.ts.map +1 -0
  13. package/dist/adapters/a2a.test.js +196 -0
  14. package/dist/adapters/a2a.test.js.map +1 -0
  15. package/dist/adapters/langfuse.d.ts +28 -0
  16. package/dist/adapters/langfuse.d.ts.map +1 -0
  17. package/dist/adapters/langfuse.js +192 -0
  18. package/dist/adapters/langfuse.js.map +1 -0
  19. package/dist/adapters/n8n.d.ts +4 -0
  20. package/dist/adapters/n8n.d.ts.map +1 -0
  21. package/dist/adapters/n8n.js +89 -0
  22. package/dist/adapters/n8n.js.map +1 -0
  23. package/dist/adapters/openclaw.d.ts +58 -0
  24. package/dist/adapters/openclaw.d.ts.map +1 -0
  25. package/dist/adapters/openclaw.js +275 -0
  26. package/dist/adapters/openclaw.js.map +1 -0
  27. package/dist/adapters/types.d.ts +33 -0
  28. package/dist/adapters/types.d.ts.map +1 -0
  29. package/dist/adapters/types.js +2 -0
  30. package/dist/adapters/types.js.map +1 -0
  31. package/dist/aivss/atlas/coverage-matrix.d.ts +12 -0
  32. package/dist/aivss/atlas/coverage-matrix.d.ts.map +1 -0
  33. package/dist/aivss/atlas/coverage-matrix.js +272 -0
  34. package/dist/aivss/atlas/coverage-matrix.js.map +1 -0
  35. package/dist/aivss/atlas/loader.d.ts +28 -0
  36. package/dist/aivss/atlas/loader.d.ts.map +1 -0
  37. package/dist/aivss/atlas/loader.js +126 -0
  38. package/dist/aivss/atlas/loader.js.map +1 -0
  39. package/dist/aivss/atlas/loader.test.d.ts +11 -0
  40. package/dist/aivss/atlas/loader.test.d.ts.map +1 -0
  41. package/dist/aivss/atlas/loader.test.js +111 -0
  42. package/dist/aivss/atlas/loader.test.js.map +1 -0
  43. package/dist/aivss/atlas/resolve-path.d.ts +34 -0
  44. package/dist/aivss/atlas/resolve-path.d.ts.map +1 -0
  45. package/dist/aivss/atlas/resolve-path.js +58 -0
  46. package/dist/aivss/atlas/resolve-path.js.map +1 -0
  47. package/dist/aivss/batch/batch-builder.d.ts +11 -0
  48. package/dist/aivss/batch/batch-builder.d.ts.map +1 -0
  49. package/dist/aivss/batch/batch-builder.js +75 -0
  50. package/dist/aivss/batch/batch-builder.js.map +1 -0
  51. package/dist/aivss/index.d.ts +21 -0
  52. package/dist/aivss/index.d.ts.map +1 -0
  53. package/dist/aivss/index.js +19 -0
  54. package/dist/aivss/index.js.map +1 -0
  55. package/dist/aivss/knowledge-base/kb-client.d.ts +9 -0
  56. package/dist/aivss/knowledge-base/kb-client.d.ts.map +1 -0
  57. package/dist/aivss/knowledge-base/kb-client.js +139 -0
  58. package/dist/aivss/knowledge-base/kb-client.js.map +1 -0
  59. package/dist/aivss/knowledge-base/kb-types.d.ts +21 -0
  60. package/dist/aivss/knowledge-base/kb-types.d.ts.map +1 -0
  61. package/dist/aivss/knowledge-base/kb-types.js +2 -0
  62. package/dist/aivss/knowledge-base/kb-types.js.map +1 -0
  63. package/dist/aivss/knowledge-base/search-builder.d.ts +7 -0
  64. package/dist/aivss/knowledge-base/search-builder.d.ts.map +1 -0
  65. package/dist/aivss/knowledge-base/search-builder.js +119 -0
  66. package/dist/aivss/knowledge-base/search-builder.js.map +1 -0
  67. package/dist/aivss/metrics/aa.d.ts +3 -0
  68. package/dist/aivss/metrics/aa.d.ts.map +1 -0
  69. package/dist/aivss/metrics/aa.js +26 -0
  70. package/dist/aivss/metrics/aa.js.map +1 -0
  71. package/dist/aivss/metrics/ad.d.ts +3 -0
  72. package/dist/aivss/metrics/ad.d.ts.map +1 -0
  73. package/dist/aivss/metrics/ad.js +30 -0
  74. package/dist/aivss/metrics/ad.js.map +1 -0
  75. package/dist/aivss/metrics/cs.d.ts +3 -0
  76. package/dist/aivss/metrics/cs.d.ts.map +1 -0
  77. package/dist/aivss/metrics/cs.js +50 -0
  78. package/dist/aivss/metrics/cs.js.map +1 -0
  79. package/dist/aivss/metrics/dc.d.ts +3 -0
  80. package/dist/aivss/metrics/dc.d.ts.map +1 -0
  81. package/dist/aivss/metrics/dc.js +30 -0
  82. package/dist/aivss/metrics/dc.js.map +1 -0
  83. package/dist/aivss/metrics/ds.d.ts +3 -0
  84. package/dist/aivss/metrics/ds.d.ts.map +1 -0
  85. package/dist/aivss/metrics/ds.js +26 -0
  86. package/dist/aivss/metrics/ds.js.map +1 -0
  87. package/dist/aivss/metrics/ei.d.ts +3 -0
  88. package/dist/aivss/metrics/ei.d.ts.map +1 -0
  89. package/dist/aivss/metrics/ei.js +30 -0
  90. package/dist/aivss/metrics/ei.js.map +1 -0
  91. package/dist/aivss/metrics/gv.d.ts +3 -0
  92. package/dist/aivss/metrics/gv.d.ts.map +1 -0
  93. package/dist/aivss/metrics/gv.js +34 -0
  94. package/dist/aivss/metrics/gv.js.map +1 -0
  95. package/dist/aivss/metrics/ll.d.ts +3 -0
  96. package/dist/aivss/metrics/ll.d.ts.map +1 -0
  97. package/dist/aivss/metrics/ll.js +30 -0
  98. package/dist/aivss/metrics/ll.js.map +1 -0
  99. package/dist/aivss/metrics/mr.d.ts +3 -0
  100. package/dist/aivss/metrics/mr.d.ts.map +1 -0
  101. package/dist/aivss/metrics/mr.js +26 -0
  102. package/dist/aivss/metrics/mr.js.map +1 -0
  103. package/dist/aivss/metrics/shared.d.ts +22 -0
  104. package/dist/aivss/metrics/shared.d.ts.map +1 -0
  105. package/dist/aivss/metrics/shared.js +70 -0
  106. package/dist/aivss/metrics/shared.js.map +1 -0
  107. package/dist/aivss/prompts/base-system-prompt.d.ts +2 -0
  108. package/dist/aivss/prompts/base-system-prompt.d.ts.map +1 -0
  109. package/dist/aivss/prompts/base-system-prompt.js +31 -0
  110. package/dist/aivss/prompts/base-system-prompt.js.map +1 -0
  111. package/dist/aivss/prompts/prompt-composer.d.ts +13 -0
  112. package/dist/aivss/prompts/prompt-composer.d.ts.map +1 -0
  113. package/dist/aivss/prompts/prompt-composer.js +21 -0
  114. package/dist/aivss/prompts/prompt-composer.js.map +1 -0
  115. package/dist/aivss/scoring/a2a-corpus.test.d.ts +28 -0
  116. package/dist/aivss/scoring/a2a-corpus.test.d.ts.map +1 -0
  117. package/dist/aivss/scoring/a2a-corpus.test.js +109 -0
  118. package/dist/aivss/scoring/a2a-corpus.test.js.map +1 -0
  119. package/dist/aivss/scoring/determinism.test.d.ts +16 -0
  120. package/dist/aivss/scoring/determinism.test.d.ts.map +1 -0
  121. package/dist/aivss/scoring/determinism.test.js +169 -0
  122. package/dist/aivss/scoring/determinism.test.js.map +1 -0
  123. package/dist/aivss/scoring/heuristic-scorer.d.ts +21 -0
  124. package/dist/aivss/scoring/heuristic-scorer.d.ts.map +1 -0
  125. package/dist/aivss/scoring/heuristic-scorer.js +299 -0
  126. package/dist/aivss/scoring/heuristic-scorer.js.map +1 -0
  127. package/dist/aivss/scoring/heuristic-scorer.test.d.ts +8 -0
  128. package/dist/aivss/scoring/heuristic-scorer.test.d.ts.map +1 -0
  129. package/dist/aivss/scoring/heuristic-scorer.test.js +150 -0
  130. package/dist/aivss/scoring/heuristic-scorer.test.js.map +1 -0
  131. package/dist/aivss/scoring/scoring-mode.d.ts +48 -0
  132. package/dist/aivss/scoring/scoring-mode.d.ts.map +1 -0
  133. package/dist/aivss/scoring/scoring-mode.js +64 -0
  134. package/dist/aivss/scoring/scoring-mode.js.map +1 -0
  135. package/dist/aivss/scoring/v4-engine.d.ts +15 -0
  136. package/dist/aivss/scoring/v4-engine.d.ts.map +1 -0
  137. package/dist/aivss/scoring/v4-engine.js +84 -0
  138. package/dist/aivss/scoring/v4-engine.js.map +1 -0
  139. package/dist/aivss/scoring/v4-engine.test.d.ts +16 -0
  140. package/dist/aivss/scoring/v4-engine.test.d.ts.map +1 -0
  141. package/dist/aivss/scoring/v4-engine.test.js +156 -0
  142. package/dist/aivss/scoring/v4-engine.test.js.map +1 -0
  143. package/dist/aivss/types.d.ts +92 -0
  144. package/dist/aivss/types.d.ts.map +1 -0
  145. package/dist/aivss/types.js +25 -0
  146. package/dist/aivss/types.js.map +1 -0
  147. package/dist/baseline/baseline.test.d.ts +2 -0
  148. package/dist/baseline/baseline.test.d.ts.map +1 -0
  149. package/dist/baseline/baseline.test.js +219 -0
  150. package/dist/baseline/baseline.test.js.map +1 -0
  151. package/dist/baseline/diff.d.ts +42 -0
  152. package/dist/baseline/diff.d.ts.map +1 -0
  153. package/dist/baseline/diff.js +124 -0
  154. package/dist/baseline/diff.js.map +1 -0
  155. package/dist/baseline/store.d.ts +51 -0
  156. package/dist/baseline/store.d.ts.map +1 -0
  157. package/dist/baseline/store.js +92 -0
  158. package/dist/baseline/store.js.map +1 -0
  159. package/dist/batch/anthropic-batch-runner.d.ts +50 -0
  160. package/dist/batch/anthropic-batch-runner.d.ts.map +1 -0
  161. package/dist/batch/anthropic-batch-runner.js +91 -0
  162. package/dist/batch/anthropic-batch-runner.js.map +1 -0
  163. package/dist/batch/bedrock-batch-runner.d.ts +90 -0
  164. package/dist/batch/bedrock-batch-runner.d.ts.map +1 -0
  165. package/dist/batch/bedrock-batch-runner.js +199 -0
  166. package/dist/batch/bedrock-batch-runner.js.map +1 -0
  167. package/dist/batch/providers/anthropic.d.ts +55 -0
  168. package/dist/batch/providers/anthropic.d.ts.map +1 -0
  169. package/dist/batch/providers/anthropic.js +103 -0
  170. package/dist/batch/providers/anthropic.js.map +1 -0
  171. package/dist/batch/providers/bedrock.d.ts +31 -0
  172. package/dist/batch/providers/bedrock.d.ts.map +1 -0
  173. package/dist/batch/providers/bedrock.js +42 -0
  174. package/dist/batch/providers/bedrock.js.map +1 -0
  175. package/dist/batch/providers/harness.d.ts +36 -0
  176. package/dist/batch/providers/harness.d.ts.map +1 -0
  177. package/dist/batch/providers/harness.js +65 -0
  178. package/dist/batch/providers/harness.js.map +1 -0
  179. package/dist/batch/providers/harness.test.d.ts +7 -0
  180. package/dist/batch/providers/harness.test.d.ts.map +1 -0
  181. package/dist/batch/providers/harness.test.js +84 -0
  182. package/dist/batch/providers/harness.test.js.map +1 -0
  183. package/dist/batch/providers/index.d.ts +82 -0
  184. package/dist/batch/providers/index.d.ts.map +1 -0
  185. package/dist/batch/providers/index.js +82 -0
  186. package/dist/batch/providers/index.js.map +1 -0
  187. package/dist/batch/providers/ollama.d.ts +68 -0
  188. package/dist/batch/providers/ollama.d.ts.map +1 -0
  189. package/dist/batch/providers/ollama.js +108 -0
  190. package/dist/batch/providers/ollama.js.map +1 -0
  191. package/dist/batch/response-parser.d.ts +45 -0
  192. package/dist/batch/response-parser.d.ts.map +1 -0
  193. package/dist/batch/response-parser.js +161 -0
  194. package/dist/batch/response-parser.js.map +1 -0
  195. package/dist/batch/types.d.ts +87 -0
  196. package/dist/batch/types.d.ts.map +1 -0
  197. package/dist/batch/types.js +8 -0
  198. package/dist/batch/types.js.map +1 -0
  199. package/dist/cli.d.ts +15 -0
  200. package/dist/cli.d.ts.map +1 -0
  201. package/dist/cli.js +1037 -0
  202. package/dist/cli.js.map +1 -0
  203. package/dist/examples/a2a-assessment.d.ts +20 -0
  204. package/dist/examples/a2a-assessment.d.ts.map +1 -0
  205. package/dist/examples/a2a-assessment.js +115 -0
  206. package/dist/examples/a2a-assessment.js.map +1 -0
  207. package/dist/examples/batch-assessment.d.ts +18 -0
  208. package/dist/examples/batch-assessment.d.ts.map +1 -0
  209. package/dist/examples/batch-assessment.js +112 -0
  210. package/dist/examples/batch-assessment.js.map +1 -0
  211. package/dist/examples/batch-submission-flow.d.ts +2 -0
  212. package/dist/examples/batch-submission-flow.d.ts.map +1 -0
  213. package/dist/examples/batch-submission-flow.js +279 -0
  214. package/dist/examples/batch-submission-flow.js.map +1 -0
  215. package/dist/examples/demo-agent-definition.json +58 -0
  216. package/dist/examples/langfuse-assessment.d.ts +2 -0
  217. package/dist/examples/langfuse-assessment.d.ts.map +1 -0
  218. package/dist/examples/langfuse-assessment.js +46 -0
  219. package/dist/examples/langfuse-assessment.js.map +1 -0
  220. package/dist/examples/model-eval.d.ts +25 -0
  221. package/dist/examples/model-eval.d.ts.map +1 -0
  222. package/dist/examples/model-eval.js +94 -0
  223. package/dist/examples/model-eval.js.map +1 -0
  224. package/dist/examples/openclaw-assessment.d.ts +17 -0
  225. package/dist/examples/openclaw-assessment.d.ts.map +1 -0
  226. package/dist/examples/openclaw-assessment.js +79 -0
  227. package/dist/examples/openclaw-assessment.js.map +1 -0
  228. package/dist/examples/simple-assessment.d.ts +2 -0
  229. package/dist/examples/simple-assessment.d.ts.map +1 -0
  230. package/dist/examples/simple-assessment.js +146 -0
  231. package/dist/examples/simple-assessment.js.map +1 -0
  232. package/dist/examples/threat-model-demo.d.ts +2 -0
  233. package/dist/examples/threat-model-demo.d.ts.map +1 -0
  234. package/dist/examples/threat-model-demo.js +103 -0
  235. package/dist/examples/threat-model-demo.js.map +1 -0
  236. package/dist/index.d.ts +60 -0
  237. package/dist/index.d.ts.map +1 -0
  238. package/dist/index.js +155 -0
  239. package/dist/index.js.map +1 -0
  240. package/dist/output/likec4-generator.d.ts +43 -0
  241. package/dist/output/likec4-generator.d.ts.map +1 -0
  242. package/dist/output/likec4-generator.js +287 -0
  243. package/dist/output/likec4-generator.js.map +1 -0
  244. package/dist/output/slot-filler.d.ts +6 -0
  245. package/dist/output/slot-filler.d.ts.map +1 -0
  246. package/dist/output/slot-filler.js +71 -0
  247. package/dist/output/slot-filler.js.map +1 -0
  248. package/dist/output/tc-assembler.d.ts +30 -0
  249. package/dist/output/tc-assembler.d.ts.map +1 -0
  250. package/dist/output/tc-assembler.js +227 -0
  251. package/dist/output/tc-assembler.js.map +1 -0
  252. package/dist/output/tc-types.d.ts +41 -0
  253. package/dist/output/tc-types.d.ts.map +1 -0
  254. package/dist/output/tc-types.js +5 -0
  255. package/dist/output/tc-types.js.map +1 -0
  256. package/dist/output/tc-validator.test.d.ts +9 -0
  257. package/dist/output/tc-validator.test.d.ts.map +1 -0
  258. package/dist/output/tc-validator.test.js +194 -0
  259. package/dist/output/tc-validator.test.js.map +1 -0
  260. package/dist/providers/anthropic.d.ts +9 -0
  261. package/dist/providers/anthropic.d.ts.map +1 -0
  262. package/dist/providers/anthropic.js +30 -0
  263. package/dist/providers/anthropic.js.map +1 -0
  264. package/dist/providers/bedrock.d.ts +9 -0
  265. package/dist/providers/bedrock.d.ts.map +1 -0
  266. package/dist/providers/bedrock.js +38 -0
  267. package/dist/providers/bedrock.js.map +1 -0
  268. package/dist/providers/index.d.ts +6 -0
  269. package/dist/providers/index.d.ts.map +1 -0
  270. package/dist/providers/index.js +14 -0
  271. package/dist/providers/index.js.map +1 -0
  272. package/dist/providers/types.d.ts +12 -0
  273. package/dist/providers/types.d.ts.map +1 -0
  274. package/dist/providers/types.js +5 -0
  275. package/dist/providers/types.js.map +1 -0
  276. package/dist/references/acsc-risks.d.ts +18 -0
  277. package/dist/references/acsc-risks.d.ts.map +1 -0
  278. package/dist/references/acsc-risks.js +232 -0
  279. package/dist/references/acsc-risks.js.map +1 -0
  280. package/dist/references/aicm.d.ts +41 -0
  281. package/dist/references/aicm.d.ts.map +1 -0
  282. package/dist/references/aicm.js +447 -0
  283. package/dist/references/aicm.js.map +1 -0
  284. package/dist/references/dstg-meaid.d.ts +59 -0
  285. package/dist/references/dstg-meaid.d.ts.map +1 -0
  286. package/dist/references/dstg-meaid.js +352 -0
  287. package/dist/references/dstg-meaid.js.map +1 -0
  288. package/dist/references/index.d.ts +20 -0
  289. package/dist/references/index.d.ts.map +1 -0
  290. package/dist/references/index.js +31 -0
  291. package/dist/references/index.js.map +1 -0
  292. package/dist/references/nemoclaw.d.ts +48 -0
  293. package/dist/references/nemoclaw.d.ts.map +1 -0
  294. package/dist/references/nemoclaw.js +140 -0
  295. package/dist/references/nemoclaw.js.map +1 -0
  296. package/dist/references/nist-ai-rmf.d.ts +31 -0
  297. package/dist/references/nist-ai-rmf.d.ts.map +1 -0
  298. package/dist/references/nist-ai-rmf.js +627 -0
  299. package/dist/references/nist-ai-rmf.js.map +1 -0
  300. package/dist/references/owasp-agentic-top10.d.ts +50 -0
  301. package/dist/references/owasp-agentic-top10.d.ts.map +1 -0
  302. package/dist/references/owasp-agentic-top10.js +202 -0
  303. package/dist/references/owasp-agentic-top10.js.map +1 -0
  304. package/dist/references/registry-parity.test.d.ts +17 -0
  305. package/dist/references/registry-parity.test.d.ts.map +1 -0
  306. package/dist/references/registry-parity.test.js +87 -0
  307. package/dist/references/registry-parity.test.js.map +1 -0
  308. package/dist/references/registry.d.ts +90 -0
  309. package/dist/references/registry.d.ts.map +1 -0
  310. package/dist/references/registry.js +29 -0
  311. package/dist/references/registry.js.map +1 -0
  312. package/dist/tools/model-eval.d.ts +97 -0
  313. package/dist/tools/model-eval.d.ts.map +1 -0
  314. package/dist/tools/model-eval.js +307 -0
  315. package/dist/tools/model-eval.js.map +1 -0
  316. package/package.json +105 -0
  317. package/schemas/threat-composer-v1.schema.json +966 -0
  318. package/vendor/atlas-release/ATLAS-2026.07.yaml +17877 -0
  319. package/vendor/atlas-release/README.md +41 -0
@@ -0,0 +1,447 @@
1
+ /**
2
+ * CSA AI Controls Matrix (AICM) v1.1.1
3
+ *
4
+ * Source: "AI Controls Matrix" (AICM v1.1.1) + "AI CAIQ" v1.1.0
5
+ * Author: Cloud Security Alliance (CSA)
6
+ * URL: https://cloudsecurityalliance.org/artifacts/ai-controls-matrix
7
+ * Machine-readable bundle: https://cloudsecurityalliance.org/artifacts/aicm-machine-readable-bundle-json-yaml-oscal
8
+ * Published: 2026-07-22 (OSCAL/JSON/YAML bundle generation date)
9
+ *
10
+ * AICM extends CSA's Cloud Controls Matrix (CCM) with AI-specific controls across
11
+ * 18 domains and 247 total controls, each tagged by `control_type`:
12
+ * "AI-Specific" (novel to AICM), "Cloud & AI Related" (CCM controls with AI-relevant
13
+ * scope extensions), or "Cloud-Specific" (unmodified CCM — out of scope here).
14
+ *
15
+ * Sub-set selection rationale (mirrors the NIST AI RMF adapter's precedent — curate
16
+ * to the agentic-AI-security use case rather than transcribe every control verbatim):
17
+ * this adapter covers the 31 controls CSA itself tags "AI-Specific" — the layer AICM
18
+ * actually adds beyond cloud security baseline, and the layer with the tightest
19
+ * correspondence to AIVSS metrics and ATLAS technique coverage. The 200 "Cloud & AI
20
+ * Related" and 15 "Cloud-Specific" controls are general cloud-security hygiene
21
+ * (already covered by CCM/ISO 27017 territory) with no direct agentic-AI-specific
22
+ * finding to contribute; omitting them keeps this adapter's findings load-bearing
23
+ * rather than diluted by generic cloud controls with an AI label attached.
24
+ *
25
+ * AIVSS metric mapping rationale:
26
+ * - AIS (agent/app boundary, sandboxing, cache, prompt differentiation) → AA, CS, MR
27
+ * - DSP (poisoning, PETs, data integrity/relevance) → MR, DS, LL
28
+ * - GRC (acceptable use, impact/bias/ethics assessment, explainability, oversight) → EI, GV, DC
29
+ * - HRS (competency + acceptable-use training) → GV
30
+ * - IAM (output-modification authorization) → GV, CS
31
+ * - LOG (input/output monitoring) → AA, GV
32
+ * - MDS (model documentation, adversarial analysis/hardening, integrity, failure, open-model risk) → MR, AA, LL, DC
33
+ * - STA (service BOM) → LL, CS
34
+ * - TVM (threat modelling, guardrails) → AA, GV
35
+ */
36
+ import { buildHelpers, } from "./registry.js";
37
+ // ── AIS — Application & Interface Security ──────────────────────────────────
38
+ // Agent runtime boundaries, sandboxing, cache protection, prompt differentiation.
39
+ const AIS_RISKS = [
40
+ {
41
+ id: "aicm-ais-11-agent-boundaries",
42
+ framework: "aicm",
43
+ category: "AIS",
44
+ name: "Agents Security Boundaries",
45
+ description: "Establish security boundaries for agents. Without explicit isolation between an agent's permissions, tool access, and the systems it can reach, a compromised or manipulated agent inherits the full blast radius of its host environment rather than a scoped subset — the same gap Canopy's `UNDECLARED_CAPABILITY_RISK` finding already targets for capability-surface adapters.",
46
+ riskType: "security",
47
+ aivssMetrics: ["AA", "CS"],
48
+ atlasTechniqueIds: ["AML.T0053", "AML.T0084"],
49
+ sourceSection: "AICM v1.1.1 > AIS-11",
50
+ },
51
+ {
52
+ id: "aicm-ais-13-sandboxing",
53
+ framework: "aicm",
54
+ category: "AIS",
55
+ name: "AI Sandboxing",
56
+ description: "Implement sandboxing techniques to execute AI tools and plugins in isolated environments to prevent unintended interactions with critical systems or data and limit the possibility of lateral movement. Directly targets the same tool-execution attack surface as agent-to-agent handoffs in Canopy's N8N adapter.",
57
+ riskType: "security",
58
+ aivssMetrics: ["AA", "CS"],
59
+ atlasTechniqueIds: ["AML.T0053"],
60
+ sourceSection: "AICM v1.1.1 > AIS-13",
61
+ },
62
+ {
63
+ id: "aicm-ais-14-cache-protection",
64
+ framework: "aicm",
65
+ category: "AIS",
66
+ name: "AI Cache Protection",
67
+ description: "Implement security measures to protect caches in GenAI systems and services. Unprotected prompt/response caches are a cross-tenant and cross-session data-sensitivity risk distinct from the model or the transport layer.",
68
+ riskType: "security",
69
+ aivssMetrics: ["CS", "DS"],
70
+ atlasTechniqueIds: [],
71
+ sourceSection: "AICM v1.1.1 > AIS-14",
72
+ },
73
+ {
74
+ id: "aicm-ais-15-prompt-differentiation",
75
+ framework: "aicm",
76
+ category: "AIS",
77
+ name: "Prompt Differentiation",
78
+ description: "Implement mechanisms enabling the model to clearly distinguish user-provided input instructions from data and system instructions (e.g., system prompts). This is the structural control-side answer to prompt injection — the single most-cited agentic AI vulnerability class.",
79
+ riskType: "security",
80
+ aivssMetrics: ["AA", "MR"],
81
+ atlasTechniqueIds: ["AML.T0051", "AML.T0054", "AML.T0056"],
82
+ sourceSection: "AICM v1.1.1 > AIS-15",
83
+ },
84
+ ];
85
+ // ── DSP — Data Security and Privacy Lifecycle Management ────────────────────
86
+ // Training/fine-tuning/augmentation data integrity, poisoning, and privacy.
87
+ const DSP_RISKS = [
88
+ {
89
+ id: "aicm-dsp-21-data-poisoning",
90
+ framework: "aicm",
91
+ category: "DSP",
92
+ name: "Data Poisoning Prevention & Detection",
93
+ description: "Define, implement and evaluate processes, procedures and technical measures to prevent data poisoning in AI models and continuously detect such. Covers both training-time poisoning and RAG/retrieval-time poisoning of the corpora an agent draws context from.",
94
+ riskType: "security",
95
+ aivssMetrics: ["MR", "AA", "LL"],
96
+ atlasTechniqueIds: ["AML.T0020", "AML.T0070"],
97
+ sourceSection: "AICM v1.1.1 > DSP-21",
98
+ },
99
+ {
100
+ id: "aicm-dsp-22-privacy-enhancing-tech",
101
+ framework: "aicm",
102
+ category: "DSP",
103
+ name: "Privacy Enhancing Technologies",
104
+ description: "Use Privacy Enhancing Technologies for training data, informed by risk and privacy impact analysis and business use cases. A governance control on the data pipeline feeding model training rather than the runtime agent itself.",
105
+ riskType: "compliance",
106
+ aivssMetrics: ["DS", "GV"],
107
+ atlasTechniqueIds: [],
108
+ sourceSection: "AICM v1.1.1 > DSP-22",
109
+ },
110
+ {
111
+ id: "aicm-dsp-23-data-integrity-check",
112
+ framework: "aicm",
113
+ category: "DSP",
114
+ name: "Data Integrity Check",
115
+ description: "Regularly validate the consistency and conformity of training, fine-tuning or augmentation data. Implement dataset versioning to ensure traceability and enforce restrictions to prevent unauthorized changes. Without versioning, a poisoning event is undetectable after the fact — this is the audit trail poisoning detection depends on.",
116
+ riskType: "security",
117
+ aivssMetrics: ["LL", "MR"],
118
+ atlasTechniqueIds: ["AML.T0020"],
119
+ sourceSection: "AICM v1.1.1 > DSP-23",
120
+ },
121
+ {
122
+ id: "aicm-dsp-24-data-differentiation",
123
+ framework: "aicm",
124
+ category: "DSP",
125
+ name: "Data Differentiation and Relevance",
126
+ description: "Ensure training-data differentiation and relevance to the intended use of the AI Model. Out-of-distribution or irrelevant training data widens the model's behavioural surface beyond what any downstream threat model accounts for.",
127
+ riskType: "security",
128
+ aivssMetrics: ["MR", "LL"],
129
+ atlasTechniqueIds: [],
130
+ sourceSection: "AICM v1.1.1 > DSP-24",
131
+ },
132
+ ];
133
+ // ── GRC — Governance, Risk and Compliance ────────────────────────────────────
134
+ // Acceptable use, impact/bias/ethics assessment, explainability, human oversight.
135
+ const GRC_RISKS = [
136
+ {
137
+ id: "aicm-grc-09-acceptable-use",
138
+ framework: "aicm",
139
+ category: "GRC",
140
+ name: "Acceptable Use of the AI Service",
141
+ description: "Define, document and enforce policies and procedures on the acceptable use of AI services offered by the organization. Ensure effectiveness by continuous risk assessments, reviews and human oversight. Directly answers the BAU-misappropriation gap Canopy's product direction already names as invisible to CIA-triad threat modelling.",
142
+ riskType: "compliance",
143
+ aivssMetrics: ["GV", "EI"],
144
+ atlasTechniqueIds: [],
145
+ sourceSection: "AICM v1.1.1 > GRC-09",
146
+ },
147
+ {
148
+ id: "aicm-grc-10-ai-impact-assessment",
149
+ framework: "aicm",
150
+ category: "GRC",
151
+ name: "AI Impact Assessment",
152
+ description: "Establish, document, and communicate to all relevant stakeholders an AI Impact Assessment process and its criteria to regularly evaluate the ethical, societal, operational, legal, and security impacts of the AI system throughout its lifecycle.",
153
+ riskType: "compliance",
154
+ aivssMetrics: ["EI", "GV"],
155
+ atlasTechniqueIds: [],
156
+ sourceSection: "AICM v1.1.1 > GRC-10",
157
+ },
158
+ {
159
+ id: "aicm-grc-11-bias-fairness",
160
+ framework: "aicm",
161
+ category: "GRC",
162
+ name: "Bias and Fairness Assessment",
163
+ description: "Regularly evaluate AI systems, models, datasets & algorithms for bias and fairness to ensure compliance with ethical standards. Ethical-domain risk outside AIVSS's CIA-triad scope by design — surfaced as a framework finding rather than a scored metric.",
164
+ riskType: "ethical",
165
+ aivssMetrics: ["EI"],
166
+ atlasTechniqueIds: [],
167
+ sourceSection: "AICM v1.1.1 > GRC-11",
168
+ },
169
+ {
170
+ id: "aicm-grc-12-ethics-committee",
171
+ framework: "aicm",
172
+ category: "GRC",
173
+ name: "Ethics Committee",
174
+ description: "Establish an ethics committee to review AI applications, ensuring alignment with ethical standards and organizational values. Organisational/process control — no direct technical AIVSS surface, included for completeness of the ethical-risk pillar.",
175
+ riskType: "ethical",
176
+ aivssMetrics: ["EI", "GV"],
177
+ atlasTechniqueIds: [],
178
+ sourceSection: "AICM v1.1.1 > GRC-12",
179
+ },
180
+ {
181
+ id: "aicm-grc-13-explainability-requirement",
182
+ framework: "aicm",
183
+ category: "GRC",
184
+ name: "Explainability Requirement",
185
+ description: "Establish, document, and communicate the degree of explainability needed for the AI Services.",
186
+ riskType: "compliance",
187
+ aivssMetrics: ["GV", "EI"],
188
+ atlasTechniqueIds: [],
189
+ sourceSection: "AICM v1.1.1 > GRC-13",
190
+ },
191
+ {
192
+ id: "aicm-grc-14-explainability-evaluation",
193
+ framework: "aicm",
194
+ category: "GRC",
195
+ name: "Explainability Evaluation",
196
+ description: "Evaluate, document, and communicate the degree of explainability of the AI Services, including possible limitations and exceptions.",
197
+ riskType: "compliance",
198
+ aivssMetrics: ["GV", "EI"],
199
+ atlasTechniqueIds: [],
200
+ sourceSection: "AICM v1.1.1 > GRC-14",
201
+ },
202
+ {
203
+ id: "aicm-grc-15-human-supervision",
204
+ framework: "aicm",
205
+ category: "GRC",
206
+ name: "Human Supervision",
207
+ description: "Establish, execute, and assess processes, procedures, and technical measures to ensure human oversight and control of the AI system in compliance with regulatory requirements and organizational risk management. The control that determines whether an agent's autonomous decisions ever hit a human checkpoint before consequential action.",
208
+ riskType: "compliance",
209
+ aivssMetrics: ["GV", "DC"],
210
+ atlasTechniqueIds: [],
211
+ sourceSection: "AICM v1.1.1 > GRC-15",
212
+ },
213
+ ];
214
+ // ── HRS — Human Resources ────────────────────────────────────────────────────
215
+ // Personnel-facing training and acceptable-use policy for AI technologies.
216
+ const HRS_RISKS = [
217
+ {
218
+ id: "aicm-hrs-14-ai-competency-training",
219
+ framework: "aicm",
220
+ category: "HRS",
221
+ name: "AI Competency Training",
222
+ description: "Establish, document, approve, communicate, apply, evaluate and maintain policies and procedures defining the AI training program for all relevant personnel of the organization based on their roles and provide regular training updates. Mirrors MEAID's Education topic — personnel who cannot understand a system cannot be reasonably held responsible for its outputs.",
223
+ riskType: "compliance",
224
+ aivssMetrics: ["GV"],
225
+ atlasTechniqueIds: [],
226
+ sourceSection: "AICM v1.1.1 > HRS-14",
227
+ },
228
+ {
229
+ id: "aicm-hrs-15-ai-acceptable-use",
230
+ framework: "aicm",
231
+ category: "HRS",
232
+ name: "AI Acceptable Use",
233
+ description: "Establish, document, and communicate to all personnel the policies and procedures on the acceptable use of AI technologies within the organization. The personnel-facing counterpart to GRC-09's service-level acceptable-use control.",
234
+ riskType: "compliance",
235
+ aivssMetrics: ["GV", "EI"],
236
+ atlasTechniqueIds: [],
237
+ sourceSection: "AICM v1.1.1 > HRS-15",
238
+ },
239
+ ];
240
+ // ── IAM — Identity & Access Management ───────────────────────────────────────
241
+ const IAM_RISKS = [
242
+ {
243
+ id: "aicm-iam-17-output-modification",
244
+ framework: "aicm",
245
+ category: "IAM",
246
+ name: "Output Modification and Special Authorization",
247
+ description: "When allowing model output modification of AI generated output, establish a role for this access and allow changes only by authorized identities. Prevents unaudited tampering with an agent's output between generation and downstream consumption.",
248
+ riskType: "security",
249
+ aivssMetrics: ["GV", "CS"],
250
+ atlasTechniqueIds: [],
251
+ sourceSection: "AICM v1.1.1 > IAM-17",
252
+ },
253
+ ];
254
+ // ── LOG — Logging and Monitoring ─────────────────────────────────────────────
255
+ const LOG_RISKS = [
256
+ {
257
+ id: "aicm-log-15-input-monitoring",
258
+ framework: "aicm",
259
+ category: "LOG",
260
+ name: "Input Monitoring",
261
+ description: "Log and monitor all input events (content and metadata) to enable auditing and reporting on the usage of AI models. Without input-side logging, prompt injection and jailbreak attempts leave no forensic trail.",
262
+ riskType: "security",
263
+ aivssMetrics: ["AA", "GV"],
264
+ atlasTechniqueIds: ["AML.T0051", "AML.T0054"],
265
+ sourceSection: "AICM v1.1.1 > LOG-15",
266
+ },
267
+ {
268
+ id: "aicm-log-16-output-monitoring",
269
+ framework: "aicm",
270
+ category: "LOG",
271
+ name: "Output Monitoring",
272
+ description: "Log and monitor all output events (content and metadata) to enable auditing and reporting on the usage of AI models. Complements input monitoring — the pair together are the audit trail a post-incident investigation depends on.",
273
+ riskType: "compliance",
274
+ aivssMetrics: ["GV", "EI"],
275
+ atlasTechniqueIds: [],
276
+ sourceSection: "AICM v1.1.1 > LOG-16",
277
+ },
278
+ ];
279
+ // ── MDS — Model Security ─────────────────────────────────────────────────────
280
+ // Model artifact scanning, documentation, adversarial hardening, integrity, failure.
281
+ const MDS_RISKS = [
282
+ {
283
+ id: "aicm-mds-02-artifact-scanning",
284
+ framework: "aicm",
285
+ category: "MDS",
286
+ name: "Model Artifact Scanning",
287
+ description: "Define, implement, and evaluate policies, procedures, and technical measures for the scanning of model artifacts for vulnerabilities and attacks, at each step of the service lifecycle and at each hand over point. Answers the supply-chain question STA-09's BOM control names but at the technical scanning layer.",
288
+ riskType: "security",
289
+ aivssMetrics: ["LL", "CS"],
290
+ atlasTechniqueIds: ["AML.T0010", "AML.T0011.000", "AML.T0011.001"],
291
+ sourceSection: "AICM v1.1.1 > MDS-02",
292
+ },
293
+ {
294
+ id: "aicm-mds-03-model-documentation",
295
+ framework: "aicm",
296
+ category: "MDS",
297
+ name: "Model Documentation",
298
+ description: "Define, implement, enforce, approve, document, communicate, maintain and evaluate processes and procedures for model documentation. Regularly review and update the model documentation.",
299
+ riskType: "compliance",
300
+ aivssMetrics: ["LL", "GV"],
301
+ atlasTechniqueIds: [],
302
+ sourceSection: "AICM v1.1.1 > MDS-03",
303
+ },
304
+ {
305
+ id: "aicm-mds-04-documentation-requirements",
306
+ framework: "aicm",
307
+ category: "MDS",
308
+ name: "Model Documentation Requirements",
309
+ description: "Establish and implement baseline requirements for Model documentation.",
310
+ riskType: "compliance",
311
+ aivssMetrics: ["LL", "GV"],
312
+ atlasTechniqueIds: [],
313
+ sourceSection: "AICM v1.1.1 > MDS-04",
314
+ },
315
+ {
316
+ id: "aicm-mds-05-documentation-validation",
317
+ framework: "aicm",
318
+ category: "MDS",
319
+ name: "Model Documentation Validation",
320
+ description: "Define, implement, and evaluate processes, procedures, and technical measures for the validation of the Model documentation aligned with the current model. Undocumented drift between a model card and the deployed model is itself an integrity gap.",
321
+ riskType: "compliance",
322
+ aivssMetrics: ["LL", "GV"],
323
+ atlasTechniqueIds: [],
324
+ sourceSection: "AICM v1.1.1 > MDS-05",
325
+ },
326
+ {
327
+ id: "aicm-mds-06-adversarial-attack-analysis",
328
+ framework: "aicm",
329
+ category: "MDS",
330
+ name: "Adversarial Attack Analysis",
331
+ description: "Define, implement, and evaluate processes and technical measures to assess adversarial threats specific to each AI model. The model-level counterpart to TVM-04's system-level threat modelling — this is the control Canopy's own ATLAS-injected metric prompts already operationalise.",
332
+ riskType: "security",
333
+ aivssMetrics: ["AA", "MR"],
334
+ atlasTechniqueIds: ["AML.T0043", "AML.T0018", "AML.T0031"],
335
+ sourceSection: "AICM v1.1.1 > MDS-06",
336
+ },
337
+ {
338
+ id: "aicm-mds-07-adversarial-hardening",
339
+ framework: "aicm",
340
+ category: "MDS",
341
+ name: "Robustness against Adversarial Attack / Model Hardening",
342
+ description: "Define, implement, and evaluate processes, procedures, and technical measures for Model Hardening to mitigate relevant adversarial attacks as identified in the Threat Analysis and Adversarial Threat Analysis. The remediation-side control MDS-06's analysis feeds into.",
343
+ riskType: "security",
344
+ aivssMetrics: ["MR", "AA"],
345
+ atlasTechniqueIds: ["AML.T0043", "AML.T0018"],
346
+ sourceSection: "AICM v1.1.1 > MDS-07",
347
+ },
348
+ {
349
+ id: "aicm-mds-08-integrity-checks",
350
+ framework: "aicm",
351
+ category: "MDS",
352
+ name: "Model Integrity Checks",
353
+ description: "Regularly calculate and compare checksums using cryptographic hashes of model checkpoints to detect unauthorized modifications. Apply at least annually based on the level of risk, or after any change of hands. Without this, model weight tampering post-deployment is undetectable.",
354
+ riskType: "security",
355
+ aivssMetrics: ["LL", "MR"],
356
+ atlasTechniqueIds: ["AML.T0018", "AML.T0044"],
357
+ sourceSection: "AICM v1.1.1 > MDS-08",
358
+ },
359
+ {
360
+ id: "aicm-mds-11-model-failure",
361
+ framework: "aicm",
362
+ category: "MDS",
363
+ name: "Model Failure",
364
+ description: "Perform a risk-based evaluation of the model and model serving infrastructure for model failure. Define and implement measures to mitigate model and model serving infrastructure failures, and regularly evaluate throughout the AI system's lifecycle. Availability/reliability risk distinct from adversarial compromise — a resource-exhaustion or serving-infra failure has the same operational impact as an attack without one occurring.",
365
+ riskType: "security",
366
+ aivssMetrics: ["DC", "AD"],
367
+ atlasTechniqueIds: ["AML.T0029", "AML.T0034"],
368
+ sourceSection: "AICM v1.1.1 > MDS-11",
369
+ },
370
+ {
371
+ id: "aicm-mds-12-open-model-risk",
372
+ framework: "aicm",
373
+ category: "MDS",
374
+ name: "Open Model Risk Assessment",
375
+ description: "Establish a process to evaluate risk associated with open models. Periodically review these risk factors, and implement a process to monitor and mitigate any determined vulnerabilities. Directly relevant wherever an agent's underlying model is an open-weight release rather than a vetted first-party API — a distinct supply-chain trust boundary from STA-09's service BOM.",
376
+ riskType: "security",
377
+ aivssMetrics: ["LL", "CS"],
378
+ atlasTechniqueIds: ["AML.T0010"],
379
+ sourceSection: "AICM v1.1.1 > MDS-12",
380
+ },
381
+ ];
382
+ // ── STA — Supply Chain Management, Transparency, and Accountability ─────────
383
+ const STA_RISKS = [
384
+ {
385
+ id: "aicm-sta-09-service-bom",
386
+ framework: "aicm",
387
+ category: "STA",
388
+ name: "Service Bill of Material (BOM)",
389
+ description: "Define, implement, and enforce a process for establishing a Bill of Material for the service supply chain. Review and update the Bill of Material at least annually, or upon significant changes. The provenance ledger MDS-02's artifact scanning and MDS-12's open-model risk assessment both depend on existing.",
390
+ riskType: "compliance",
391
+ aivssMetrics: ["LL", "CS"],
392
+ atlasTechniqueIds: ["AML.T0010"],
393
+ sourceSection: "AICM v1.1.1 > STA-09",
394
+ },
395
+ ];
396
+ // ── TVM — Threat & Vulnerability Management ──────────────────────────────────
397
+ const TVM_RISKS = [
398
+ {
399
+ id: "aicm-tvm-04-threat-analysis",
400
+ framework: "aicm",
401
+ category: "TVM",
402
+ name: "Threat Analysis and Modelling",
403
+ description: "Define, implement and evaluate threat analysis processes and procedures to identify, assess and review the threat landscape for Cloud and AI systems. Build threat models according to industry best practices to inform the risk mitigation strategy. This is the organisational process Canopy's `assessWorkflow()` itself operationalises as a deterministic artefact rather than a manual exercise.",
404
+ riskType: "security",
405
+ aivssMetrics: ["AA", "GV"],
406
+ atlasTechniqueIds: [],
407
+ sourceSection: "AICM v1.1.1 > TVM-04",
408
+ },
409
+ {
410
+ id: "aicm-tvm-13-guardrails",
411
+ framework: "aicm",
412
+ category: "TVM",
413
+ name: "Guardrails",
414
+ description: "Define and implement processes, procedures and technical measures to apply guardrails to the AI system. Continuously evaluate guardrails for changes in regulatory requirements and risk scenarios. The runtime enforcement layer that AIS-15's prompt differentiation and MDS-07's model hardening both feed into.",
415
+ riskType: "security",
416
+ aivssMetrics: ["AA", "GV", "EI"],
417
+ atlasTechniqueIds: ["AML.T0051", "AML.T0054", "AML.T0080"],
418
+ sourceSection: "AICM v1.1.1 > TVM-13",
419
+ },
420
+ ];
421
+ const AICM_RISKS = [
422
+ ...AIS_RISKS,
423
+ ...DSP_RISKS,
424
+ ...GRC_RISKS,
425
+ ...HRS_RISKS,
426
+ ...IAM_RISKS,
427
+ ...LOG_RISKS,
428
+ ...MDS_RISKS,
429
+ ...STA_RISKS,
430
+ ...TVM_RISKS,
431
+ ];
432
+ export const AICM_CITATION = {
433
+ id: "aicm",
434
+ title: "AI Controls Matrix (AICM)",
435
+ version: "1.1.1",
436
+ authors: ["Cloud Security Alliance (CSA)"],
437
+ year: 2026,
438
+ url: "https://cloudsecurityalliance.org/artifacts/ai-controls-matrix",
439
+ };
440
+ const helpers = buildHelpers(AICM_RISKS);
441
+ export const AICM_ADAPTER = {
442
+ citation: AICM_CITATION,
443
+ risks: AICM_RISKS,
444
+ ...helpers,
445
+ };
446
+ export { AICM_RISKS };
447
+ //# sourceMappingURL=aicm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aicm.js","sourceRoot":"","sources":["../../src/references/aicm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * DSTG MEAID — A Method for Ethical AI in Defence
3
+ *
4
+ * Primary source: "A Method for Ethical AI in Defence" (DSTG-TR-3786)
5
+ * Authors: Kate Devitt, Michael Gan, Jason Scholz and Robert Bolia
6
+ * Defence Science and Technology Group, Department of Defence
7
+ * © Commonwealth of Australia 2020
8
+ *
9
+ * Secondary source: "Case Study: A Method for Ethical AI in Defence Applied to
10
+ * an Envisioned Tactical Command and Control System" (DSTG-TR-3847)
11
+ * Authors: Dianna Gaetjens, Kate Devitt, and Christopher Shanahan
12
+ * © Commonwealth of Australia 2022
13
+ *
14
+ * MEAID is an ethical AI framework, not a security framework. It organises
15
+ * risk across five facets — Responsibility, Governance, Trust, Law, Traceability —
16
+ * and twenty evidence-based topics. Most risks are ethical or compliance in nature;
17
+ * this is correct and intentional. MEAID covers ground that AIVSS+ATLAS cannot.
18
+ *
19
+ * AIVSS metric mapping rationale:
20
+ * - Responsibility risks → EI (Ethical Implications), GV (Governance)
21
+ * - Governance risks → GV, EI, AD (Adaptive Defence — human factors/resilience)
22
+ * - Trust risks → GV, LL (Lifecycle & Lineage), CS (supply chain), MR, DS, EI
23
+ * - Law risks → GV, EI (legal compliance obligations)
24
+ * - Traceability risks → GV, LL, EI
25
+ */
26
+ import type { MetricCode } from "../aivss/types.js";
27
+ import { type FrameworkRisk, type FrameworkCitation, type FrameworkAdapter } from "./registry.js";
28
+ /**
29
+ * Complete MEAID risk catalogue.
30
+ *
31
+ * 20 topics across 5 facets, plus one additional cross-cutting data governance
32
+ * risk surfaced by the DSTG-TR-3847 case study as a whole-of-Defence finding.
33
+ * Total: 21 entries.
34
+ */
35
+ export declare const DSTG_MEAID_RISKS: FrameworkRisk[];
36
+ /**
37
+ * Citation for the primary MEAID document.
38
+ * The case study (DSTG-TR-3847) is the secondary source and is referenced in
39
+ * individual risk sourceSection fields where it provides additional detail.
40
+ */
41
+ export declare const DSTG_MEAID_CITATION: FrameworkCitation;
42
+ /**
43
+ * Return MEAID risks relevant to a given AIVSS V4 metric.
44
+ * Results are ordered by number of ATLAS techniques (most-grounded first).
45
+ */
46
+ export declare const getRisksForMetric: (metric: MetricCode) => FrameworkRisk[];
47
+ /**
48
+ * Return MEAID risks of a given risk type (security | ethical | compliance).
49
+ */
50
+ export declare const getRisksByType: (type: import("./registry.js").RiskType) => FrameworkRisk[];
51
+ /**
52
+ * Look up a MEAID risk by its id. Returns undefined if not found.
53
+ */
54
+ export declare const getRiskById: (id: string) => FrameworkRisk | undefined;
55
+ /**
56
+ * Complete MEAID framework adapter.
57
+ */
58
+ export declare const DSTG_MEAID_ADAPTER: FrameworkAdapter;
59
+ //# sourceMappingURL=dstg-meaid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dstg-meaid.d.ts","sourceRoot":"","sources":["../../src/references/dstg-meaid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AA4SvB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAO3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAcjC,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yCAA4B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,cAAc,6DAAyB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,WAAW,2CAAsB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAMhC,CAAC"}