governance-sdk 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 (387) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +559 -0
  3. package/dist/agent-identity-ed25519.d.ts +80 -0
  4. package/dist/agent-identity-ed25519.d.ts.map +1 -0
  5. package/dist/agent-identity-ed25519.js +134 -0
  6. package/dist/agent-identity-ed25519.js.map +1 -0
  7. package/dist/agent-identity.d.ts +65 -0
  8. package/dist/agent-identity.d.ts.map +1 -0
  9. package/dist/agent-identity.js +85 -0
  10. package/dist/agent-identity.js.map +1 -0
  11. package/dist/audit-integrity.d.ts +78 -0
  12. package/dist/audit-integrity.d.ts.map +1 -0
  13. package/dist/audit-integrity.js +173 -0
  14. package/dist/audit-integrity.js.map +1 -0
  15. package/dist/behavioral-scorer.d.ts +72 -0
  16. package/dist/behavioral-scorer.d.ts.map +1 -0
  17. package/dist/behavioral-scorer.js +223 -0
  18. package/dist/behavioral-scorer.js.map +1 -0
  19. package/dist/cli/init.d.ts +11 -0
  20. package/dist/cli/init.d.ts.map +1 -0
  21. package/dist/cli/init.js +217 -0
  22. package/dist/cli/init.js.map +1 -0
  23. package/dist/compliance-articles.d.ts +71 -0
  24. package/dist/compliance-articles.d.ts.map +1 -0
  25. package/dist/compliance-articles.js +201 -0
  26. package/dist/compliance-articles.js.map +1 -0
  27. package/dist/compliance.d.ts +24 -0
  28. package/dist/compliance.d.ts.map +1 -0
  29. package/dist/compliance.js +183 -0
  30. package/dist/compliance.js.map +1 -0
  31. package/dist/conditions/builtins.d.ts +17 -0
  32. package/dist/conditions/builtins.d.ts.map +1 -0
  33. package/dist/conditions/builtins.js +213 -0
  34. package/dist/conditions/builtins.js.map +1 -0
  35. package/dist/conditions/postprocess.d.ts +12 -0
  36. package/dist/conditions/postprocess.d.ts.map +1 -0
  37. package/dist/conditions/postprocess.js +33 -0
  38. package/dist/conditions/postprocess.js.map +1 -0
  39. package/dist/conditions/preprocess.d.ts +12 -0
  40. package/dist/conditions/preprocess.d.ts.map +1 -0
  41. package/dist/conditions/preprocess.js +47 -0
  42. package/dist/conditions/preprocess.js.map +1 -0
  43. package/dist/conditions/process.d.ts +14 -0
  44. package/dist/conditions/process.d.ts.map +1 -0
  45. package/dist/conditions/process.js +78 -0
  46. package/dist/conditions/process.js.map +1 -0
  47. package/dist/conditions/sensitive-patterns.d.ts +13 -0
  48. package/dist/conditions/sensitive-patterns.d.ts.map +1 -0
  49. package/dist/conditions/sensitive-patterns.js +42 -0
  50. package/dist/conditions/sensitive-patterns.js.map +1 -0
  51. package/dist/dry-run.d.ts +85 -0
  52. package/dist/dry-run.d.ts.map +1 -0
  53. package/dist/dry-run.js +132 -0
  54. package/dist/dry-run.js.map +1 -0
  55. package/dist/eval-red-team.d.ts +69 -0
  56. package/dist/eval-red-team.d.ts.map +1 -0
  57. package/dist/eval-red-team.js +205 -0
  58. package/dist/eval-red-team.js.map +1 -0
  59. package/dist/eval-scorer.d.ts +56 -0
  60. package/dist/eval-scorer.d.ts.map +1 -0
  61. package/dist/eval-scorer.js +148 -0
  62. package/dist/eval-scorer.js.map +1 -0
  63. package/dist/eval-trace.d.ts +30 -0
  64. package/dist/eval-trace.d.ts.map +1 -0
  65. package/dist/eval-trace.js +129 -0
  66. package/dist/eval-trace.js.map +1 -0
  67. package/dist/eval-types.d.ts +108 -0
  68. package/dist/eval-types.d.ts.map +1 -0
  69. package/dist/eval-types.js +14 -0
  70. package/dist/eval-types.js.map +1 -0
  71. package/dist/events.d.ts +57 -0
  72. package/dist/events.d.ts.map +1 -0
  73. package/dist/events.js +81 -0
  74. package/dist/events.js.map +1 -0
  75. package/dist/federation-types.d.ts +58 -0
  76. package/dist/federation-types.d.ts.map +1 -0
  77. package/dist/federation-types.js +8 -0
  78. package/dist/federation-types.js.map +1 -0
  79. package/dist/federation.d.ts +42 -0
  80. package/dist/federation.d.ts.map +1 -0
  81. package/dist/federation.js +158 -0
  82. package/dist/federation.js.map +1 -0
  83. package/dist/index.d.ts +142 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +273 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/injection-benchmark.d.ts +62 -0
  88. package/dist/injection-benchmark.d.ts.map +1 -0
  89. package/dist/injection-benchmark.js +201 -0
  90. package/dist/injection-benchmark.js.map +1 -0
  91. package/dist/injection-classifier.d.ts +69 -0
  92. package/dist/injection-classifier.d.ts.map +1 -0
  93. package/dist/injection-classifier.js +98 -0
  94. package/dist/injection-classifier.js.map +1 -0
  95. package/dist/injection-detect.d.ts +59 -0
  96. package/dist/injection-detect.d.ts.map +1 -0
  97. package/dist/injection-detect.js +175 -0
  98. package/dist/injection-detect.js.map +1 -0
  99. package/dist/injection-patterns-ext.d.ts +7 -0
  100. package/dist/injection-patterns-ext.d.ts.map +1 -0
  101. package/dist/injection-patterns-ext.js +71 -0
  102. package/dist/injection-patterns-ext.js.map +1 -0
  103. package/dist/injection-patterns.d.ts +15 -0
  104. package/dist/injection-patterns.d.ts.map +1 -0
  105. package/dist/injection-patterns.js +361 -0
  106. package/dist/injection-patterns.js.map +1 -0
  107. package/dist/iso-42001-articles.d.ts +34 -0
  108. package/dist/iso-42001-articles.d.ts.map +1 -0
  109. package/dist/iso-42001-articles.js +147 -0
  110. package/dist/iso-42001-articles.js.map +1 -0
  111. package/dist/iso-42001.d.ts +18 -0
  112. package/dist/iso-42001.d.ts.map +1 -0
  113. package/dist/iso-42001.js +156 -0
  114. package/dist/iso-42001.js.map +1 -0
  115. package/dist/kill-switch.d.ts +56 -0
  116. package/dist/kill-switch.d.ts.map +1 -0
  117. package/dist/kill-switch.js +173 -0
  118. package/dist/kill-switch.js.map +1 -0
  119. package/dist/metrics.d.ts +58 -0
  120. package/dist/metrics.d.ts.map +1 -0
  121. package/dist/metrics.js +81 -0
  122. package/dist/metrics.js.map +1 -0
  123. package/dist/monorepo-detect.d.ts +30 -0
  124. package/dist/monorepo-detect.d.ts.map +1 -0
  125. package/dist/monorepo-detect.js +107 -0
  126. package/dist/monorepo-detect.js.map +1 -0
  127. package/dist/nist-ai-rmf-articles.d.ts +40 -0
  128. package/dist/nist-ai-rmf-articles.d.ts.map +1 -0
  129. package/dist/nist-ai-rmf-articles.js +156 -0
  130. package/dist/nist-ai-rmf-articles.js.map +1 -0
  131. package/dist/nist-ai-rmf.d.ts +20 -0
  132. package/dist/nist-ai-rmf.d.ts.map +1 -0
  133. package/dist/nist-ai-rmf.js +176 -0
  134. package/dist/nist-ai-rmf.js.map +1 -0
  135. package/dist/otel-hooks.d.ts +67 -0
  136. package/dist/otel-hooks.d.ts.map +1 -0
  137. package/dist/otel-hooks.js +100 -0
  138. package/dist/otel-hooks.js.map +1 -0
  139. package/dist/owasp-agentic-articles.d.ts +42 -0
  140. package/dist/owasp-agentic-articles.d.ts.map +1 -0
  141. package/dist/owasp-agentic-articles.js +236 -0
  142. package/dist/owasp-agentic-articles.js.map +1 -0
  143. package/dist/owasp-agentic.d.ts +20 -0
  144. package/dist/owasp-agentic.d.ts.map +1 -0
  145. package/dist/owasp-agentic.js +205 -0
  146. package/dist/owasp-agentic.js.map +1 -0
  147. package/dist/plugins/a2a-types.d.ts +241 -0
  148. package/dist/plugins/a2a-types.d.ts.map +1 -0
  149. package/dist/plugins/a2a-types.js +14 -0
  150. package/dist/plugins/a2a-types.js.map +1 -0
  151. package/dist/plugins/a2a.d.ts +37 -0
  152. package/dist/plugins/a2a.d.ts.map +1 -0
  153. package/dist/plugins/a2a.js +160 -0
  154. package/dist/plugins/a2a.js.map +1 -0
  155. package/dist/plugins/anthropic-types.d.ts +188 -0
  156. package/dist/plugins/anthropic-types.d.ts.map +1 -0
  157. package/dist/plugins/anthropic-types.js +8 -0
  158. package/dist/plugins/anthropic-types.js.map +1 -0
  159. package/dist/plugins/anthropic.d.ts +32 -0
  160. package/dist/plugins/anthropic.d.ts.map +1 -0
  161. package/dist/plugins/anthropic.js +131 -0
  162. package/dist/plugins/anthropic.js.map +1 -0
  163. package/dist/plugins/autogen-types.d.ts +121 -0
  164. package/dist/plugins/autogen-types.d.ts.map +1 -0
  165. package/dist/plugins/autogen-types.js +13 -0
  166. package/dist/plugins/autogen-types.js.map +1 -0
  167. package/dist/plugins/autogen.d.ts +41 -0
  168. package/dist/plugins/autogen.d.ts.map +1 -0
  169. package/dist/plugins/autogen.js +131 -0
  170. package/dist/plugins/autogen.js.map +1 -0
  171. package/dist/plugins/bedrock-types.d.ts +246 -0
  172. package/dist/plugins/bedrock-types.d.ts.map +1 -0
  173. package/dist/plugins/bedrock-types.js +8 -0
  174. package/dist/plugins/bedrock-types.js.map +1 -0
  175. package/dist/plugins/bedrock.d.ts +43 -0
  176. package/dist/plugins/bedrock.d.ts.map +1 -0
  177. package/dist/plugins/bedrock.js +155 -0
  178. package/dist/plugins/bedrock.js.map +1 -0
  179. package/dist/plugins/cloudflare-ai-types.d.ts +85 -0
  180. package/dist/plugins/cloudflare-ai-types.d.ts.map +1 -0
  181. package/dist/plugins/cloudflare-ai-types.js +10 -0
  182. package/dist/plugins/cloudflare-ai-types.js.map +1 -0
  183. package/dist/plugins/cloudflare-ai.d.ts +32 -0
  184. package/dist/plugins/cloudflare-ai.d.ts.map +1 -0
  185. package/dist/plugins/cloudflare-ai.js +108 -0
  186. package/dist/plugins/cloudflare-ai.js.map +1 -0
  187. package/dist/plugins/composio-types.d.ts +96 -0
  188. package/dist/plugins/composio-types.d.ts.map +1 -0
  189. package/dist/plugins/composio-types.js +13 -0
  190. package/dist/plugins/composio-types.js.map +1 -0
  191. package/dist/plugins/composio.d.ts +37 -0
  192. package/dist/plugins/composio.d.ts.map +1 -0
  193. package/dist/plugins/composio.js +118 -0
  194. package/dist/plugins/composio.js.map +1 -0
  195. package/dist/plugins/crewai-types.d.ts +153 -0
  196. package/dist/plugins/crewai-types.d.ts.map +1 -0
  197. package/dist/plugins/crewai-types.js +10 -0
  198. package/dist/plugins/crewai-types.js.map +1 -0
  199. package/dist/plugins/crewai.d.ts +37 -0
  200. package/dist/plugins/crewai.d.ts.map +1 -0
  201. package/dist/plugins/crewai.js +127 -0
  202. package/dist/plugins/crewai.js.map +1 -0
  203. package/dist/plugins/deno-types.d.ts +68 -0
  204. package/dist/plugins/deno-types.d.ts.map +1 -0
  205. package/dist/plugins/deno-types.js +8 -0
  206. package/dist/plugins/deno-types.js.map +1 -0
  207. package/dist/plugins/deno.d.ts +37 -0
  208. package/dist/plugins/deno.d.ts.map +1 -0
  209. package/dist/plugins/deno.js +129 -0
  210. package/dist/plugins/deno.js.map +1 -0
  211. package/dist/plugins/e2b-types.d.ts +140 -0
  212. package/dist/plugins/e2b-types.d.ts.map +1 -0
  213. package/dist/plugins/e2b-types.js +8 -0
  214. package/dist/plugins/e2b-types.js.map +1 -0
  215. package/dist/plugins/e2b.d.ts +43 -0
  216. package/dist/plugins/e2b.d.ts.map +1 -0
  217. package/dist/plugins/e2b.js +157 -0
  218. package/dist/plugins/e2b.js.map +1 -0
  219. package/dist/plugins/genkit-types.d.ts +88 -0
  220. package/dist/plugins/genkit-types.d.ts.map +1 -0
  221. package/dist/plugins/genkit-types.js +11 -0
  222. package/dist/plugins/genkit-types.js.map +1 -0
  223. package/dist/plugins/genkit.d.ts +35 -0
  224. package/dist/plugins/genkit.d.ts.map +1 -0
  225. package/dist/plugins/genkit.js +143 -0
  226. package/dist/plugins/genkit.js.map +1 -0
  227. package/dist/plugins/langchain.d.ts +130 -0
  228. package/dist/plugins/langchain.d.ts.map +1 -0
  229. package/dist/plugins/langchain.js +172 -0
  230. package/dist/plugins/langchain.js.map +1 -0
  231. package/dist/plugins/llamaindex-types.d.ts +86 -0
  232. package/dist/plugins/llamaindex-types.d.ts.map +1 -0
  233. package/dist/plugins/llamaindex-types.js +11 -0
  234. package/dist/plugins/llamaindex-types.js.map +1 -0
  235. package/dist/plugins/llamaindex.d.ts +36 -0
  236. package/dist/plugins/llamaindex.d.ts.map +1 -0
  237. package/dist/plugins/llamaindex.js +131 -0
  238. package/dist/plugins/llamaindex.js.map +1 -0
  239. package/dist/plugins/mastra-processor-types.d.ts +126 -0
  240. package/dist/plugins/mastra-processor-types.d.ts.map +1 -0
  241. package/dist/plugins/mastra-processor-types.js +11 -0
  242. package/dist/plugins/mastra-processor-types.js.map +1 -0
  243. package/dist/plugins/mastra-processor.d.ts +32 -0
  244. package/dist/plugins/mastra-processor.d.ts.map +1 -0
  245. package/dist/plugins/mastra-processor.js +126 -0
  246. package/dist/plugins/mastra-processor.js.map +1 -0
  247. package/dist/plugins/mastra.d.ts +100 -0
  248. package/dist/plugins/mastra.d.ts.map +1 -0
  249. package/dist/plugins/mastra.js +143 -0
  250. package/dist/plugins/mastra.js.map +1 -0
  251. package/dist/plugins/mcp-annotations.d.ts +54 -0
  252. package/dist/plugins/mcp-annotations.d.ts.map +1 -0
  253. package/dist/plugins/mcp-annotations.js +110 -0
  254. package/dist/plugins/mcp-annotations.js.map +1 -0
  255. package/dist/plugins/mcp-chain-audit.d.ts +74 -0
  256. package/dist/plugins/mcp-chain-audit.d.ts.map +1 -0
  257. package/dist/plugins/mcp-chain-audit.js +134 -0
  258. package/dist/plugins/mcp-chain-audit.js.map +1 -0
  259. package/dist/plugins/mcp-trust.d.ts +59 -0
  260. package/dist/plugins/mcp-trust.d.ts.map +1 -0
  261. package/dist/plugins/mcp-trust.js +100 -0
  262. package/dist/plugins/mcp-trust.js.map +1 -0
  263. package/dist/plugins/mcp-types.d.ts +183 -0
  264. package/dist/plugins/mcp-types.d.ts.map +1 -0
  265. package/dist/plugins/mcp-types.js +12 -0
  266. package/dist/plugins/mcp-types.js.map +1 -0
  267. package/dist/plugins/mcp.d.ts +41 -0
  268. package/dist/plugins/mcp.d.ts.map +1 -0
  269. package/dist/plugins/mcp.js +228 -0
  270. package/dist/plugins/mcp.js.map +1 -0
  271. package/dist/plugins/mistral-types.d.ts +72 -0
  272. package/dist/plugins/mistral-types.d.ts.map +1 -0
  273. package/dist/plugins/mistral-types.js +8 -0
  274. package/dist/plugins/mistral-types.js.map +1 -0
  275. package/dist/plugins/mistral.d.ts +32 -0
  276. package/dist/plugins/mistral.d.ts.map +1 -0
  277. package/dist/plugins/mistral.js +133 -0
  278. package/dist/plugins/mistral.js.map +1 -0
  279. package/dist/plugins/ollama-types.d.ts +76 -0
  280. package/dist/plugins/ollama-types.d.ts.map +1 -0
  281. package/dist/plugins/ollama-types.js +8 -0
  282. package/dist/plugins/ollama-types.js.map +1 -0
  283. package/dist/plugins/ollama.d.ts +32 -0
  284. package/dist/plugins/ollama.d.ts.map +1 -0
  285. package/dist/plugins/ollama.js +130 -0
  286. package/dist/plugins/ollama.js.map +1 -0
  287. package/dist/plugins/openai-agents-types.d.ts +130 -0
  288. package/dist/plugins/openai-agents-types.d.ts.map +1 -0
  289. package/dist/plugins/openai-agents-types.js +12 -0
  290. package/dist/plugins/openai-agents-types.js.map +1 -0
  291. package/dist/plugins/openai-agents.d.ts +37 -0
  292. package/dist/plugins/openai-agents.d.ts.map +1 -0
  293. package/dist/plugins/openai-agents.js +151 -0
  294. package/dist/plugins/openai-agents.js.map +1 -0
  295. package/dist/plugins/semantic-kernel-types.d.ts +103 -0
  296. package/dist/plugins/semantic-kernel-types.d.ts.map +1 -0
  297. package/dist/plugins/semantic-kernel-types.js +13 -0
  298. package/dist/plugins/semantic-kernel-types.js.map +1 -0
  299. package/dist/plugins/semantic-kernel.d.ts +37 -0
  300. package/dist/plugins/semantic-kernel.d.ts.map +1 -0
  301. package/dist/plugins/semantic-kernel.js +149 -0
  302. package/dist/plugins/semantic-kernel.js.map +1 -0
  303. package/dist/plugins/vercel-ai.d.ts +134 -0
  304. package/dist/plugins/vercel-ai.d.ts.map +1 -0
  305. package/dist/plugins/vercel-ai.js +130 -0
  306. package/dist/plugins/vercel-ai.js.map +1 -0
  307. package/dist/policy-builder.d.ts +52 -0
  308. package/dist/policy-builder.d.ts.map +1 -0
  309. package/dist/policy-builder.js +108 -0
  310. package/dist/policy-builder.js.map +1 -0
  311. package/dist/policy-compose-presets.d.ts +18 -0
  312. package/dist/policy-compose-presets.d.ts.map +1 -0
  313. package/dist/policy-compose-presets.js +52 -0
  314. package/dist/policy-compose-presets.js.map +1 -0
  315. package/dist/policy-compose.d.ts +66 -0
  316. package/dist/policy-compose.d.ts.map +1 -0
  317. package/dist/policy-compose.js +163 -0
  318. package/dist/policy-compose.js.map +1 -0
  319. package/dist/policy-presets-extended.d.ts +35 -0
  320. package/dist/policy-presets-extended.d.ts.map +1 -0
  321. package/dist/policy-presets-extended.js +137 -0
  322. package/dist/policy-presets-extended.js.map +1 -0
  323. package/dist/policy-presets.d.ts +77 -0
  324. package/dist/policy-presets.d.ts.map +1 -0
  325. package/dist/policy-presets.js +164 -0
  326. package/dist/policy-presets.js.map +1 -0
  327. package/dist/policy-stage-defaults.d.ts +8 -0
  328. package/dist/policy-stage-defaults.d.ts.map +1 -0
  329. package/dist/policy-stage-defaults.js +34 -0
  330. package/dist/policy-stage-defaults.js.map +1 -0
  331. package/dist/policy-yaml.d.ts +23 -0
  332. package/dist/policy-yaml.d.ts.map +1 -0
  333. package/dist/policy-yaml.js +216 -0
  334. package/dist/policy-yaml.js.map +1 -0
  335. package/dist/policy.d.ts +124 -0
  336. package/dist/policy.d.ts.map +1 -0
  337. package/dist/policy.js +161 -0
  338. package/dist/policy.js.map +1 -0
  339. package/dist/remote-enforce.d.ts +44 -0
  340. package/dist/remote-enforce.d.ts.map +1 -0
  341. package/dist/remote-enforce.js +99 -0
  342. package/dist/remote-enforce.js.map +1 -0
  343. package/dist/repo-patterns.d.ts +32 -0
  344. package/dist/repo-patterns.d.ts.map +1 -0
  345. package/dist/repo-patterns.js +222 -0
  346. package/dist/repo-patterns.js.map +1 -0
  347. package/dist/sandbox.d.ts +68 -0
  348. package/dist/sandbox.d.ts.map +1 -0
  349. package/dist/sandbox.js +124 -0
  350. package/dist/sandbox.js.map +1 -0
  351. package/dist/scorer-dimensions.d.ts +10 -0
  352. package/dist/scorer-dimensions.d.ts.map +1 -0
  353. package/dist/scorer-dimensions.js +184 -0
  354. package/dist/scorer-dimensions.js.map +1 -0
  355. package/dist/scorer.d.ts +27 -0
  356. package/dist/scorer.d.ts.map +1 -0
  357. package/dist/scorer.js +138 -0
  358. package/dist/scorer.js.map +1 -0
  359. package/dist/storage-postgres-schema.d.ts +47 -0
  360. package/dist/storage-postgres-schema.d.ts.map +1 -0
  361. package/dist/storage-postgres-schema.js +134 -0
  362. package/dist/storage-postgres-schema.js.map +1 -0
  363. package/dist/storage-postgres.d.ts +41 -0
  364. package/dist/storage-postgres.d.ts.map +1 -0
  365. package/dist/storage-postgres.js +180 -0
  366. package/dist/storage-postgres.js.map +1 -0
  367. package/dist/storage.d.ts +65 -0
  368. package/dist/storage.d.ts.map +1 -0
  369. package/dist/storage.js +85 -0
  370. package/dist/storage.js.map +1 -0
  371. package/dist/supply-chain-sbom.d.ts +72 -0
  372. package/dist/supply-chain-sbom.d.ts.map +1 -0
  373. package/dist/supply-chain-sbom.js +73 -0
  374. package/dist/supply-chain-sbom.js.map +1 -0
  375. package/dist/supply-chain.d.ts +61 -0
  376. package/dist/supply-chain.d.ts.map +1 -0
  377. package/dist/supply-chain.js +95 -0
  378. package/dist/supply-chain.js.map +1 -0
  379. package/dist/token-types.d.ts +77 -0
  380. package/dist/token-types.d.ts.map +1 -0
  381. package/dist/token-types.js +31 -0
  382. package/dist/token-types.js.map +1 -0
  383. package/dist/types.d.ts +71 -0
  384. package/dist/types.d.ts.map +1 -0
  385. package/dist/types.js +6 -0
  386. package/dist/types.js.map +1 -0
  387. package/package.json +361 -0
@@ -0,0 +1,201 @@
1
+ /**
2
+ * EU AI Act Article Definitions
3
+ *
4
+ * Static article and requirement definitions for the 6 EU AI Act
5
+ * articles tracked by governance-sdk. Separated from assessment
6
+ * logic to keep files under 300 LOC.
7
+ */
8
+ // ─── Article Definitions ────────────────────────────────────
9
+ export const EU_AI_ACT_ARTICLES = [
10
+ {
11
+ article: "9",
12
+ title: "Risk Management System",
13
+ description: "Establish, implement, document, and maintain a risk management system throughout the AI system lifecycle.",
14
+ deadline: "2026-08-02",
15
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
16
+ requirements: [
17
+ {
18
+ id: "art9-risk-identification",
19
+ requirement: "Identify and analyze known and reasonably foreseeable risks",
20
+ sdkFeature: "Policy engine with blockTools(), allowOnlyTools() — identifies and blocks risky tool usage",
21
+ checkDescription: "At least one policy rule configured to block or restrict dangerous operations",
22
+ automatable: true,
23
+ },
24
+ {
25
+ id: "art9-risk-mitigation",
26
+ requirement: "Implement risk mitigation measures",
27
+ sdkFeature: "Before-action enforcement via gov.enforce() — prevents risky actions before execution",
28
+ checkDescription: "Enforcement is active and has blocked at least one action",
29
+ automatable: true,
30
+ },
31
+ {
32
+ id: "art9-residual-risk",
33
+ requirement: "Evaluate and manage residual risks",
34
+ sdkFeature: "7-dimension governance scoring — composite risk score per agent",
35
+ checkDescription: "All agents have been scored and assessed",
36
+ automatable: true,
37
+ },
38
+ {
39
+ id: "art9-testing",
40
+ requirement: "Test the AI system to identify appropriate risk management measures",
41
+ sdkFeature: "Enforcement playground — interactive testing of policy rules",
42
+ checkDescription: "Policy rules have been tested with representative scenarios",
43
+ automatable: false,
44
+ },
45
+ ],
46
+ },
47
+ {
48
+ article: "11",
49
+ title: "Technical Documentation",
50
+ description: "Technical documentation shall be drawn up before the AI system is placed on the market or put into service.",
51
+ deadline: "2026-08-02",
52
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
53
+ requirements: [
54
+ {
55
+ id: "art11-system-description",
56
+ requirement: "General description of the AI system including intended purpose",
57
+ sdkFeature: "Agent registration with name, description, owner, framework metadata",
58
+ checkDescription: "All agents have description and owner fields populated",
59
+ automatable: true,
60
+ },
61
+ {
62
+ id: "art11-capabilities",
63
+ requirement: "Document system capabilities and limitations",
64
+ sdkFeature: "Agent tools list, permissions, governance level, and scoring dimensions",
65
+ checkDescription: "All agents have tools and permissions documented",
66
+ automatable: true,
67
+ },
68
+ {
69
+ id: "art11-monitoring",
70
+ requirement: "Description of monitoring, functioning, and control measures",
71
+ sdkFeature: "Policy rules, enforcement decisions, audit trail configuration",
72
+ checkDescription: "Governance configuration is documented and version-controlled",
73
+ automatable: false,
74
+ },
75
+ ],
76
+ },
77
+ {
78
+ article: "12",
79
+ title: "Record-Keeping",
80
+ description: "AI systems shall technically allow for automatic recording of events (logs) throughout the system lifecycle.",
81
+ deadline: "2026-08-02",
82
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
83
+ requirements: [
84
+ {
85
+ id: "art12-automatic-logging",
86
+ requirement: "Automatic recording of events throughout the AI system lifecycle",
87
+ sdkFeature: "Audit trail — gov.audit.log() records every action and decision automatically",
88
+ checkDescription: "Audit logging is active and recording events",
89
+ automatable: true,
90
+ },
91
+ {
92
+ id: "art12-traceability",
93
+ requirement: "Ensure traceability of the AI system operation",
94
+ sdkFeature: "Audit events include agentId, eventType, outcome, severity, detail, timestamps",
95
+ checkDescription: "Audit events contain sufficient context for traceability",
96
+ automatable: true,
97
+ },
98
+ {
99
+ id: "art12-integrity",
100
+ requirement: "Logging system ensures integrity — logs cannot be tampered with",
101
+ sdkFeature: "Tamper-evident audit via HMAC-SHA256 hash chaining (createIntegrityAudit)",
102
+ checkDescription: "Integrity audit is enabled and chain is valid",
103
+ automatable: true,
104
+ },
105
+ {
106
+ id: "art12-retention",
107
+ requirement: "Logs retained for appropriate period",
108
+ sdkFeature: "Storage adapter pattern — implement retention policies in your backend",
109
+ checkDescription: "Log retention policy is configured",
110
+ automatable: false,
111
+ },
112
+ ],
113
+ },
114
+ {
115
+ article: "14",
116
+ title: "Human Oversight",
117
+ description: "AI systems shall be designed to be effectively overseen by natural persons during the period of use.",
118
+ deadline: "2026-08-02",
119
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
120
+ requirements: [
121
+ {
122
+ id: "art14-intervention",
123
+ requirement: "Ability to intervene or interrupt the AI system",
124
+ sdkFeature: "requireApproval() policy — flags actions for human review before execution",
125
+ checkDescription: "At least one requireApproval rule is configured for sensitive operations",
126
+ automatable: true,
127
+ },
128
+ {
129
+ id: "art14-understanding",
130
+ requirement: "Enable human overseers to understand capabilities and limitations",
131
+ sdkFeature: "Governance scoring with 7 explainable dimensions — each score has evidence",
132
+ checkDescription: "Agent assessments include dimensional breakdowns with evidence",
133
+ automatable: true,
134
+ },
135
+ {
136
+ id: "art14-monitoring",
137
+ requirement: "Enable monitoring of the AI system operation",
138
+ sdkFeature: "Real-time audit trail queries, fleet scoring, processor session statistics",
139
+ checkDescription: "Audit trail is queryable and fleet monitoring is active",
140
+ automatable: true,
141
+ },
142
+ ],
143
+ },
144
+ {
145
+ article: "15",
146
+ title: "Accuracy, Robustness, Cybersecurity",
147
+ description: "AI systems shall achieve appropriate levels of accuracy, robustness, and cybersecurity.",
148
+ deadline: "2026-08-02",
149
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
150
+ requirements: [
151
+ {
152
+ id: "art15-resilience",
153
+ requirement: "Resilient against errors, faults, or inconsistencies",
154
+ sdkFeature: "Policy engine with default-deny option, rate limiting, token budgets",
155
+ checkDescription: "Defensive policies configured (rate limits, token budgets)",
156
+ automatable: true,
157
+ },
158
+ {
159
+ id: "art15-security",
160
+ requirement: "Appropriate cybersecurity measures",
161
+ sdkFeature: "HMAC-SHA256 signed audit trail, tool blocking, agent authentication support",
162
+ checkDescription: "Agent has auth configured and audit integrity is enabled",
163
+ automatable: true,
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ article: "50",
169
+ title: "Transparency Obligations",
170
+ description: "AI systems interacting with natural persons must disclose they are AI. AI-generated content must be machine-readable marked.",
171
+ deadline: "2026-08-02",
172
+ maxFine: "Up to 15M EUR or 3% of global annual turnover",
173
+ requirements: [
174
+ {
175
+ id: "art50-disclosure",
176
+ requirement: "Inform persons they are interacting with an AI system",
177
+ sdkFeature: "Agent registration metadata + transparency markers in output",
178
+ checkDescription: "Agents have disclosure configuration indicating AI interaction",
179
+ automatable: true,
180
+ },
181
+ {
182
+ id: "art50-content-marking",
183
+ requirement: "AI-generated content must be marked in machine-readable format",
184
+ sdkFeature: "Audit trail attaches agent ID, model version, and timestamp to all outputs",
185
+ checkDescription: "Agent outputs include provenance metadata",
186
+ automatable: true,
187
+ },
188
+ ],
189
+ },
190
+ ];
191
+ /** Get the list of EU AI Act articles tracked by this module */
192
+ export function getArticles() {
193
+ return EU_AI_ACT_ARTICLES;
194
+ }
195
+ /** Get days until EU AI Act enforcement deadline */
196
+ export function getDaysUntilDeadline() {
197
+ const deadline = new Date("2026-08-02");
198
+ const now = new Date();
199
+ return Math.ceil((deadline.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
200
+ }
201
+ //# sourceMappingURL=compliance-articles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-articles.js","sourceRoot":"","sources":["../src/compliance-articles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoEH,+DAA+D;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD;QACE,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2GAA2G;QACxH,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,0BAA0B;gBAC9B,WAAW,EAAE,6DAA6D;gBAC1E,UAAU,EAAE,4FAA4F;gBACxG,gBAAgB,EAAE,+EAA+E;gBACjG,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,WAAW,EAAE,oCAAoC;gBACjD,UAAU,EAAE,uFAAuF;gBACnG,gBAAgB,EAAE,2DAA2D;gBAC7E,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,WAAW,EAAE,oCAAoC;gBACjD,UAAU,EAAE,iEAAiE;gBAC7E,gBAAgB,EAAE,0CAA0C;gBAC5D,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,cAAc;gBAClB,WAAW,EAAE,qEAAqE;gBAClF,UAAU,EAAE,8DAA8D;gBAC1E,gBAAgB,EAAE,6DAA6D;gBAC/E,WAAW,EAAE,KAAK;aACnB;SACF;KACF;IACD;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,6GAA6G;QAC1H,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,0BAA0B;gBAC9B,WAAW,EAAE,iEAAiE;gBAC9E,UAAU,EAAE,sEAAsE;gBAClF,gBAAgB,EAAE,wDAAwD;gBAC1E,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,WAAW,EAAE,8CAA8C;gBAC3D,UAAU,EAAE,yEAAyE;gBACrF,gBAAgB,EAAE,kDAAkD;gBACpE,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,kBAAkB;gBACtB,WAAW,EAAE,8DAA8D;gBAC3E,UAAU,EAAE,gEAAgE;gBAC5E,gBAAgB,EAAE,+DAA+D;gBACjF,WAAW,EAAE,KAAK;aACnB;SACF;KACF;IACD;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,8GAA8G;QAC3H,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,WAAW,EAAE,kEAAkE;gBAC/E,UAAU,EAAE,+EAA+E;gBAC3F,gBAAgB,EAAE,8CAA8C;gBAChE,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,WAAW,EAAE,gDAAgD;gBAC7D,UAAU,EAAE,gFAAgF;gBAC5F,gBAAgB,EAAE,0DAA0D;gBAC5E,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,WAAW,EAAE,iEAAiE;gBAC9E,UAAU,EAAE,2EAA2E;gBACvF,gBAAgB,EAAE,+CAA+C;gBACjE,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,iBAAiB;gBACrB,WAAW,EAAE,sCAAsC;gBACnD,UAAU,EAAE,wEAAwE;gBACpF,gBAAgB,EAAE,oCAAoC;gBACtD,WAAW,EAAE,KAAK;aACnB;SACF;KACF;IACD;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,sGAAsG;QACnH,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,oBAAoB;gBACxB,WAAW,EAAE,iDAAiD;gBAC9D,UAAU,EAAE,4EAA4E;gBACxF,gBAAgB,EAAE,0EAA0E;gBAC5F,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,qBAAqB;gBACzB,WAAW,EAAE,mEAAmE;gBAChF,UAAU,EAAE,4EAA4E;gBACxF,gBAAgB,EAAE,gEAAgE;gBAClF,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,kBAAkB;gBACtB,WAAW,EAAE,8CAA8C;gBAC3D,UAAU,EAAE,4EAA4E;gBACxF,gBAAgB,EAAE,yDAAyD;gBAC3E,WAAW,EAAE,IAAI;aAClB;SACF;KACF;IACD;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,kBAAkB;gBACtB,WAAW,EAAE,sDAAsD;gBACnE,UAAU,EAAE,sEAAsE;gBAClF,gBAAgB,EAAE,4DAA4D;gBAC9E,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,gBAAgB;gBACpB,WAAW,EAAE,oCAAoC;gBACjD,UAAU,EAAE,6EAA6E;gBACzF,gBAAgB,EAAE,0DAA0D;gBAC5E,WAAW,EAAE,IAAI;aAClB;SACF;KACF;IACD;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,8HAA8H;QAC3I,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,+CAA+C;QACxD,YAAY,EAAE;YACZ;gBACE,EAAE,EAAE,kBAAkB;gBACtB,WAAW,EAAE,uDAAuD;gBACpE,UAAU,EAAE,8DAA8D;gBAC1E,gBAAgB,EAAE,gEAAgE;gBAClF,WAAW,EAAE,IAAI;aAClB;YACD;gBACE,EAAE,EAAE,uBAAuB;gBAC3B,WAAW,EAAE,gEAAgE;gBAC7E,UAAU,EAAE,4EAA4E;gBACxF,gBAAgB,EAAE,2CAA2C;gBAC7D,WAAW,EAAE,IAAI;aAClB;SACF;KACF;CACF,CAAC;AAEF,gEAAgE;AAChE,MAAM,UAAU,WAAW;IACzB,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,oBAAoB;IAClC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * governance-sdk — EU AI Act Compliance Assessment
3
+ *
4
+ * Assesses governance configuration against EU AI Act article requirements.
5
+ * Article definitions are in compliance-articles.ts.
6
+ *
7
+ * Enforcement deadline: August 2, 2026
8
+ */
9
+ import type { StoredAgent, GovernanceInstance } from "./index.js";
10
+ import { type ComplianceReport } from "./compliance-articles.js";
11
+ export type { EuAiActArticle, ArticleRequirement, ComplianceStatus, RequirementAssessment, ArticleAssessment, ComplianceReport, } from "./compliance-articles.js";
12
+ export { getArticles, getDaysUntilDeadline } from "./compliance-articles.js";
13
+ /** Configuration for compliance assessment */
14
+ export interface ComplianceAssessmentConfig {
15
+ governance: GovernanceInstance;
16
+ agents: StoredAgent[];
17
+ auditIntegrity?: boolean;
18
+ humanOversight?: boolean;
19
+ logRetention?: boolean;
20
+ configVersionControlled?: boolean;
21
+ policiesTested?: boolean;
22
+ }
23
+ export declare function assessCompliance(config: ComplianceAssessmentConfig): Promise<ComplianceReport>;
24
+ //# sourceMappingURL=compliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../src/compliance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAI7E,8CAA8C;AAC9C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA4D3B"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * governance-sdk — EU AI Act Compliance Assessment
3
+ *
4
+ * Assesses governance configuration against EU AI Act article requirements.
5
+ * Article definitions are in compliance-articles.ts.
6
+ *
7
+ * Enforcement deadline: August 2, 2026
8
+ */
9
+ import { EU_AI_ACT_ARTICLES, } from "./compliance-articles.js";
10
+ export { getArticles, getDaysUntilDeadline } from "./compliance-articles.js";
11
+ // ─── Compliance Assessment ───────────────────────────────────
12
+ export async function assessCompliance(config) {
13
+ const { agents } = config;
14
+ const articleAssessments = [];
15
+ for (const article of EU_AI_ACT_ARTICLES) {
16
+ const reqAssessments = [];
17
+ for (const req of article.requirements) {
18
+ reqAssessments.push(await assessRequirement(req, config));
19
+ }
20
+ const compliantCount = reqAssessments.filter((r) => r.status === "compliant").length;
21
+ const partialCount = reqAssessments.filter((r) => r.status === "partial").length;
22
+ const total = reqAssessments.length;
23
+ const score = Math.round(((compliantCount + partialCount * 0.5) / total) * 100);
24
+ const coverage = score >= 80 ? "compliant" : score >= 40 ? "partial" : "non-compliant";
25
+ articleAssessments.push({
26
+ article: article.article,
27
+ title: article.title,
28
+ coverage,
29
+ score,
30
+ requirements: reqAssessments,
31
+ deadline: article.deadline,
32
+ maxFine: article.maxFine,
33
+ });
34
+ }
35
+ const overallScore = Math.round(articleAssessments.reduce((sum, a) => sum + a.score, 0) / articleAssessments.length);
36
+ const status = overallScore >= 80 ? "compliant" : overallScore >= 40 ? "partial" : "non-compliant";
37
+ const criticalGaps = articleAssessments.flatMap((a) => a.requirements
38
+ .filter((r) => r.status === "non-compliant")
39
+ .map((r) => `${a.title} (Art. ${a.article}): ${r.evidence}`));
40
+ const recommendations = articleAssessments
41
+ .flatMap((a) => a.requirements.filter((r) => r.remediation).map((r) => r.remediation))
42
+ .filter((v, i, arr) => arr.indexOf(v) === i);
43
+ const deadline = new Date("2026-08-02");
44
+ const now = new Date();
45
+ const daysUntilDeadline = Math.ceil((deadline.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
46
+ return {
47
+ overallScore,
48
+ status,
49
+ articles: articleAssessments,
50
+ agentsAssessed: agents.length,
51
+ criticalGaps,
52
+ recommendations,
53
+ generatedAt: new Date().toISOString(),
54
+ daysUntilDeadline,
55
+ };
56
+ }
57
+ // ─── Requirement Assessors ───────────────────────────────────
58
+ async function assessRequirement(req, config) {
59
+ const { governance, agents } = config;
60
+ switch (req.id) {
61
+ case "art9-risk-identification": {
62
+ const rules = governance.policies.getRules();
63
+ if (rules.length > 0)
64
+ return ok(req.id, `${rules.length} policy rule(s) configured`);
65
+ return fail(req.id, "No policy rules configured", "Add policy rules via blockTools(), requireLevel(), or custom rules");
66
+ }
67
+ case "art9-risk-mitigation": {
68
+ const blockedCount = await governance.audit.count({ outcome: "blocked" });
69
+ if (blockedCount > 0)
70
+ return ok(req.id, `${blockedCount} action(s) blocked by enforcement`);
71
+ const rules = governance.policies.getRules();
72
+ if (rules.length > 0)
73
+ return partial(req.id, "Policies configured but no actions blocked yet");
74
+ return fail(req.id, "No enforcement active", "Enable policy enforcement with gov.enforce() in your agent pipeline");
75
+ }
76
+ case "art9-residual-risk": {
77
+ if (agents.length === 0)
78
+ return fail(req.id, "No agents registered", "Register agents via gov.register() to enable risk scoring");
79
+ const allScored = agents.every((a) => a.compositeScore > 0);
80
+ if (allScored)
81
+ return ok(req.id, `${agents.length} agent(s) scored with 7-dimension assessment`);
82
+ return partial(req.id, "Some agents not yet scored", "Re-score agents via gov.score(agentId)");
83
+ }
84
+ case "art9-testing":
85
+ return config.policiesTested ? ok(req.id, "Policy rules have been tested") : partial(req.id, "Policy testing not confirmed", "Test policies with representative scenarios using the enforcement playground");
86
+ case "art11-system-description": {
87
+ if (agents.length === 0)
88
+ return fail(req.id, "No agents registered", "Register agents with description and owner fields");
89
+ const documented = agents.filter((a) => a.description && a.owner);
90
+ if (documented.length === agents.length)
91
+ return ok(req.id, `${agents.length} agent(s) have description and owner`);
92
+ return partial(req.id, `${documented.length}/${agents.length} agents documented`, "Add description and owner to all agent registrations");
93
+ }
94
+ case "art11-capabilities": {
95
+ if (agents.length === 0)
96
+ return fail(req.id, "No agents registered");
97
+ const withTools = agents.filter((a) => a.tools && a.tools.length > 0);
98
+ if (withTools.length === agents.length)
99
+ return ok(req.id, `${agents.length} agent(s) have documented tools/capabilities`);
100
+ return partial(req.id, `${withTools.length}/${agents.length} have documented tools`, "Add tools list to all agent registrations");
101
+ }
102
+ case "art11-monitoring":
103
+ return config.configVersionControlled ? ok(req.id, "Governance config is version-controlled") : partial(req.id, "Version control not confirmed", "Commit governance.config.ts to version control");
104
+ case "art12-automatic-logging": {
105
+ const totalEvents = await governance.audit.count();
106
+ if (totalEvents > 0)
107
+ return ok(req.id, `${totalEvents} audit event(s) recorded`);
108
+ return fail(req.id, "No audit events recorded", "Enable audit logging via gov.audit.log() or gov.enforce()");
109
+ }
110
+ case "art12-traceability": {
111
+ const events = await governance.audit.query({ limit: 1 });
112
+ if (events.length > 0) {
113
+ const e = events[0];
114
+ if (e.agentId && e.eventType && e.outcome && e.createdAt)
115
+ return ok(req.id, "Audit events contain agent ID, event type, outcome, and timestamp");
116
+ }
117
+ return partial(req.id, "Audit events lack sufficient context", "Ensure all audit events include agentId, eventType, outcome, and detail");
118
+ }
119
+ case "art12-integrity":
120
+ return config.auditIntegrity ? ok(req.id, "HMAC-SHA256 tamper-evident audit logging enabled") : fail(req.id, "Audit logs are not tamper-evident", "Enable createIntegrityAudit() for HMAC-SHA256 hash-chained logging");
121
+ case "art12-retention":
122
+ return config.logRetention ? ok(req.id, "Log retention policy configured") : partial(req.id, "No explicit retention policy", "Configure log retention in your storage adapter");
123
+ case "art14-intervention": {
124
+ const rules = governance.policies.getRules();
125
+ if (rules.some((r) => r.outcome === "require_approval"))
126
+ return ok(req.id, "requireApproval() policy configured for human review");
127
+ if (config.humanOversight)
128
+ return ok(req.id, "Human oversight mechanism confirmed");
129
+ return fail(req.id, "No human oversight mechanism", "Add requireApproval() policy for sensitive operations");
130
+ }
131
+ case "art14-understanding":
132
+ return (agents.length > 0 && agents.every((a) => a.compositeScore > 0)) ? ok(req.id, "7-dimension scoring with explainable evidence for all agents") : partial(req.id, "Not all agents have explainable assessments", "Ensure all agents are scored with gov.score()");
133
+ case "art14-monitoring": {
134
+ const totalEvents = await governance.audit.count();
135
+ if (totalEvents > 0)
136
+ return ok(req.id, `Audit trail active with ${totalEvents} events queryable in real-time`);
137
+ return fail(req.id, "No monitoring data available", "Enable audit logging for real-time monitoring");
138
+ }
139
+ case "art15-resilience": {
140
+ const rules = governance.policies.getRules();
141
+ if (rules.some((r) => r.condition.type === "token_limit" || r.condition.type === "rate_limit"))
142
+ return ok(req.id, "Defensive policies configured (token budget and/or rate limiting)");
143
+ return partial(req.id, "No defensive policies", "Add tokenBudget() and rateLimit() policies");
144
+ }
145
+ case "art15-security": {
146
+ const hasAuth = agents.some((a) => a.metadata && a.metadata["hasAuth"]);
147
+ if (config.auditIntegrity && hasAuth)
148
+ return ok(req.id, "Audit integrity + agent authentication configured");
149
+ if (config.auditIntegrity)
150
+ return partial(req.id, "Audit integrity enabled but agent auth not confirmed");
151
+ return fail(req.id, "No cybersecurity measures", "Enable createIntegrityAudit() and configure agent authentication");
152
+ }
153
+ case "art50-disclosure": {
154
+ if (agents.length === 0)
155
+ return fail(req.id, "No agents registered", "Register agents with disclosure metadata via gov.register()");
156
+ const disclosed = agents.filter((a) => a.name && a.description);
157
+ if (disclosed.length === agents.length)
158
+ return ok(req.id, `${agents.length} agent(s) have identity and description for disclosure`);
159
+ return partial(req.id, `${disclosed.length}/${agents.length} agents have disclosure metadata`);
160
+ }
161
+ case "art50-content-marking": {
162
+ const totalEvents = await governance.audit.count();
163
+ if (totalEvents > 0 && config.auditIntegrity)
164
+ return ok(req.id, "Audit trail with integrity metadata provides content provenance");
165
+ if (totalEvents > 0)
166
+ return partial(req.id, "Audit trail active but no integrity metadata for provenance", "Enable createIntegrityAudit() for verifiable content provenance");
167
+ return fail(req.id, "No content provenance tracking", "Enable audit logging with integrity for machine-readable content marking");
168
+ }
169
+ default:
170
+ return { requirementId: req.id, status: "not-applicable", evidence: "Unknown requirement" };
171
+ }
172
+ }
173
+ // ─── Helpers ─────────────────────────────────────────────────
174
+ function ok(id, evidence) {
175
+ return { requirementId: id, status: "compliant", evidence };
176
+ }
177
+ function partial(id, evidence, remediation) {
178
+ return { requirementId: id, status: "partial", evidence, remediation };
179
+ }
180
+ function fail(id, evidence, remediation) {
181
+ return { requirementId: id, status: "non-compliant", evidence, remediation };
182
+ }
183
+ //# sourceMappingURL=compliance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../src/compliance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Built-in condition evaluators — registered at engine initialization.
3
+ * All 25 condition types from the original switch statement, now pluggable.
4
+ */
5
+ import type { ConditionEvaluator, EnforcementContext, PolicyCondition } from "../policy.js";
6
+ type BuiltinDef = {
7
+ name: string;
8
+ description: string;
9
+ evaluator: ConditionEvaluator;
10
+ };
11
+ /**
12
+ * Create the full list of built-in condition definitions.
13
+ * Accepts `evalCondition` so combinators (any_of, all_of, not) can recurse.
14
+ */
15
+ export declare function getBuiltinConditions(evalCondition: (condition: PolicyCondition, ctx: EnforcementContext) => boolean): BuiltinDef[];
16
+ export {};
17
+ //# sourceMappingURL=builtins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/conditions/builtins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAmB5F,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEvF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,kBAAkB,KAAK,OAAO,GAC9E,UAAU,EAAE,CAkLd"}