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,129 @@
1
+ /**
2
+ * governance-sdk Deno AI Plugin
3
+ *
4
+ * Integrates governance enforcement into Deno-native AI agent patterns.
5
+ * Wraps tools with policy checks and integrates with Deno's permission model.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governDenoAgent } from 'governance-sdk/plugins/deno';
11
+ *
12
+ * const gov = createGovernance({
13
+ * rules: [blockTools(['file_delete', 'shell_exec'])],
14
+ * });
15
+ *
16
+ * const { agent } = await governDenoAgent(gov, {
17
+ * name: 'deno-agent',
18
+ * tools: [readFileTool, writeFileTool],
19
+ * permissions: [{ name: 'read', path: '/data' }],
20
+ * }, {
21
+ * agentName: 'deno-agent',
22
+ * owner: 'platform-team',
23
+ * });
24
+ * ```
25
+ */
26
+ // ─── Blocked Error ──────────────────────────────────────────
27
+ export class GovernanceBlockedError extends Error {
28
+ decision;
29
+ toolName;
30
+ constructor(decision, toolName) {
31
+ super(`Governance blocked: ${decision.reason} (tool: ${toolName})`);
32
+ this.name = "GovernanceBlockedError";
33
+ this.decision = decision;
34
+ this.toolName = toolName;
35
+ }
36
+ }
37
+ // ─── Shared Helpers ─────────────────────────────────────────
38
+ function buildRegistration(config, toolNames, permissions) {
39
+ return {
40
+ name: config.agentName,
41
+ framework: config.framework ?? "custom",
42
+ owner: config.owner,
43
+ description: config.description,
44
+ version: config.version,
45
+ channels: config.channels,
46
+ tools: toolNames,
47
+ hasAuth: config.hasAuth,
48
+ hasGuardrails: config.hasGuardrails,
49
+ hasObservability: config.hasObservability,
50
+ hasAuditLog: true,
51
+ permissions: {
52
+ ...config.permissions,
53
+ denoPermissions: permissions?.map((p) => p.name),
54
+ },
55
+ metadata: { ...config.metadata, runtime: "deno" },
56
+ };
57
+ }
58
+ function createEnforcer(governance, agentId, config) {
59
+ return async (toolName, input) => {
60
+ const action = config.actionMapper?.(toolName) ?? "tool_call";
61
+ const decision = await governance.enforce({
62
+ agentId, agentName: config.agentName, agentLevel: 0,
63
+ action, tool: toolName, input,
64
+ sessionTokensUsed: config.sessionTokenTracker?.(),
65
+ });
66
+ config.onDecision?.(decision, toolName);
67
+ if (decision.blocked)
68
+ config.onBlocked?.(decision, toolName);
69
+ return decision;
70
+ };
71
+ }
72
+ function createAuditor(governance, agentId) {
73
+ return (toolName, outcome, detail) => governance.audit.log({
74
+ agentId, eventType: "tool_call", outcome,
75
+ severity: outcome === "failure" ? "warning" : "info",
76
+ detail: { tool: toolName, ...detail },
77
+ });
78
+ }
79
+ function wrapTool(tool, enforce, audit) {
80
+ return {
81
+ ...tool,
82
+ execute: async (args) => {
83
+ const decision = await enforce(tool.name, args);
84
+ if (decision.blocked)
85
+ throw new GovernanceBlockedError(decision, tool.name);
86
+ try {
87
+ const output = await tool.execute(args);
88
+ await audit(tool.name, "success");
89
+ return output;
90
+ }
91
+ catch (error) {
92
+ await audit(tool.name, "failure", { error: error instanceof Error ? error.message : String(error) });
93
+ throw error;
94
+ }
95
+ },
96
+ };
97
+ }
98
+ // ─── Govern Deno Agent ──────────────────────────────────────
99
+ export async function governDenoAgent(governance, agent, config) {
100
+ const toolNames = agent.tools.map((t) => t.name);
101
+ const reg = buildRegistration(config, toolNames, agent.permissions);
102
+ const result = await governance.register(reg);
103
+ const enforce = createEnforcer(governance, result.id, config);
104
+ const audit = createAuditor(governance, result.id);
105
+ return {
106
+ agent: { ...agent, tools: agent.tools.map((tool) => wrapTool(tool, enforce, audit)) },
107
+ agentId: result.id,
108
+ score: result.score,
109
+ level: result.level,
110
+ governance,
111
+ enforce,
112
+ audit,
113
+ };
114
+ }
115
+ // ─── Govern Deno Tools ──────────────────────────────────────
116
+ export async function governDenoTools(governance, tools, config) {
117
+ const toolNames = tools.map((t) => t.name);
118
+ const reg = buildRegistration(config, toolNames);
119
+ const result = await governance.register(reg);
120
+ const enforce = createEnforcer(governance, result.id, config);
121
+ const audit = createAuditor(governance, result.id);
122
+ return {
123
+ tools: tools.map((tool) => wrapTool(tool, enforce, audit)),
124
+ agentId: result.id,
125
+ score: result.score,
126
+ level: result.level,
127
+ };
128
+ }
129
+ //# sourceMappingURL=deno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/plugins/deno.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAgBH,+DAA+D;AAE/D,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,QAAQ,CAAsB;IAC9B,QAAQ,CAAS;IAEjC,YAAY,QAA6B,EAAE,QAAgB;QACzD,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,WAAW,QAAQ,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,+DAA+D;AAE/D,SAAS,iBAAiB,CAAC,MAAwB,EAAE,SAAmB,EAAE,WAAwC;IAChH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,QAAQ;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,eAAe,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACjD;QACD,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAA8B,EAAE,OAAe,EAAE,MAAwB;IAC/F,OAAO,KAAK,EAAE,QAAgB,EAAE,KAA+B,EAAgC,EAAE;QAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAK,WAA4B,CAAC;QAChF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK;YAC7B,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,OAAO;YAAE,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,UAA8B,EAAE,OAAe;IACpE,OAAO,CAAC,QAAgB,EAAE,OAA8B,EAAE,MAAgC,EAAuB,EAAE,CACjH,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO;QACxC,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QACpD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE;KACtC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,QAAQ,CACf,IAAc,EACd,OAA0C,EAC1C,KAAuC;IAEvC,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAoB,EAAE;YACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,OAAO;gBAAE,MAAM,IAAI,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrG,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA8B,EAC9B,KAAgB,EAChB,MAAwB;IAExB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QACrF,OAAO,EAAE,MAAM,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU;QACV,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED,+DAA+D;AAE/D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA8B,EAC9B,KAAiB,EACjB,MAAwB;IAExB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,MAAM,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Types for the E2B sandbox governance integration.
3
+ *
4
+ * Mirrors e2b v1.x / @e2b/code-interpreter v1.5+ shapes without
5
+ * requiring the SDK as a dependency. Structurally compatible at runtime.
6
+ */
7
+ import type { GovernanceInstance, AuditEvent } from "../index";
8
+ import type { EnforcementDecision, PolicyAction } from "../policy";
9
+ import type { AgentFramework } from "../types";
10
+ /** E2B OutputMessage from code interpreter kernel */
11
+ export interface E2BOutputMessage {
12
+ line: string;
13
+ timestamp: number;
14
+ error: boolean;
15
+ }
16
+ /** E2B code execution request (matches @e2b/code-interpreter RunCodeOpts) */
17
+ export interface E2BCodeExecution {
18
+ code: string;
19
+ /** Language for the code interpreter kernel (defaults to "python") */
20
+ language?: string;
21
+ /** Code execution timeout in milliseconds (default: 60,000) */
22
+ timeoutMs?: number;
23
+ /** API request timeout in milliseconds (default: 30,000) */
24
+ requestTimeoutMs?: number;
25
+ envs?: Record<string, string>;
26
+ /** Callback for stdout output */
27
+ onStdout?: (output: E2BOutputMessage) => void | Promise<void>;
28
+ /** Callback for stderr output */
29
+ onStderr?: (output: E2BOutputMessage) => void | Promise<void>;
30
+ /** Callback for execution result data */
31
+ onResult?: (data: E2BResult) => void | Promise<void>;
32
+ /** Callback for execution error */
33
+ onError?: (error: E2BError) => void | Promise<void>;
34
+ }
35
+ /** E2B execution result (mirrors SDK Execution class) */
36
+ export interface E2BExecutionResult {
37
+ text?: string;
38
+ results: E2BResult[];
39
+ error?: E2BError;
40
+ logs: {
41
+ stdout: string[];
42
+ stderr: string[];
43
+ };
44
+ /** Execution count from the kernel */
45
+ executionCount?: number;
46
+ }
47
+ /** E2B individual result (mirrors SDK Result class) */
48
+ export interface E2BResult {
49
+ text?: string;
50
+ html?: string;
51
+ markdown?: string;
52
+ svg?: string;
53
+ png?: string;
54
+ jpeg?: string;
55
+ pdf?: string;
56
+ latex?: string;
57
+ json?: string;
58
+ javascript?: string;
59
+ data?: Record<string, unknown>;
60
+ chart?: Record<string, unknown>;
61
+ extra?: Record<string, unknown>;
62
+ raw: Record<string, unknown>;
63
+ isMainResult: boolean;
64
+ }
65
+ /** E2B error */
66
+ export interface E2BError {
67
+ name: string;
68
+ value: string;
69
+ traceback: string;
70
+ }
71
+ /** E2B filesystem operation (matches Sandbox.files methods) */
72
+ export interface E2BFilesystemOp {
73
+ operation: "read" | "write" | "list" | "remove" | "exists" | "makeDir" | "rename" | "watchDir" | "getInfo";
74
+ path: string;
75
+ content?: string | ArrayBuffer | Blob | ReadableStream;
76
+ /** Destination path for rename operations */
77
+ destPath?: string;
78
+ /** Read format */
79
+ format?: "text" | "bytes" | "blob" | "stream";
80
+ /** Request timeout in milliseconds (default: 30,000) */
81
+ requestTimeoutMs?: number;
82
+ }
83
+ /** E2B command execution (matches Sandbox.commands.run / commands.start) */
84
+ export interface E2BCommandExecution {
85
+ command: string;
86
+ cwd?: string;
87
+ envs?: Record<string, string>;
88
+ /** Command timeout in milliseconds (default: 60,000) */
89
+ timeoutMs?: number;
90
+ /** API request timeout in milliseconds (default: 30,000) */
91
+ requestTimeoutMs?: number;
92
+ /** Run command in background */
93
+ background?: boolean;
94
+ /** User to run as (default: "user") */
95
+ user?: string;
96
+ /** Callback for stdout */
97
+ onStdout?: (data: string) => void | Promise<void>;
98
+ /** Callback for stderr */
99
+ onStderr?: (data: string) => void | Promise<void>;
100
+ }
101
+ export interface GovernE2BConfig {
102
+ agentName: string;
103
+ owner: string;
104
+ framework?: AgentFramework;
105
+ description?: string;
106
+ version?: string;
107
+ channels?: string[];
108
+ hasAuth?: boolean;
109
+ hasGuardrails?: boolean;
110
+ hasObservability?: boolean;
111
+ permissions?: Record<string, unknown>;
112
+ metadata?: Record<string, unknown>;
113
+ onBlocked?: (decision: EnforcementDecision, context: string) => void;
114
+ onDecision?: (decision: EnforcementDecision, context: string) => void;
115
+ actionMapper?: (context: string) => PolicyAction;
116
+ sessionTokenTracker?: () => number;
117
+ /** Blocked code patterns (regex strings) */
118
+ blockedPatterns?: string[];
119
+ }
120
+ export interface GovernedE2BResult {
121
+ /** Governed code execution */
122
+ executeCode: (execution: E2BCodeExecution) => Promise<E2BExecutionResult>;
123
+ /** Governed filesystem access */
124
+ filesystem: (op: E2BFilesystemOp) => Promise<unknown>;
125
+ /** Governed command execution */
126
+ spawn: (cmd: E2BCommandExecution) => Promise<unknown>;
127
+ agentId: string;
128
+ score: number;
129
+ level: number;
130
+ governance: GovernanceInstance;
131
+ enforce: (context: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
132
+ audit: (context: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
133
+ }
134
+ /** Handler for E2B code execution */
135
+ export type E2BCodeHandler = (execution: E2BCodeExecution) => Promise<E2BExecutionResult>;
136
+ /** Handler for E2B filesystem ops */
137
+ export type E2BFilesystemHandler = (op: E2BFilesystemOp) => Promise<unknown>;
138
+ /** Handler for E2B command execution */
139
+ export type E2BCommandHandler = (cmd: E2BCommandExecution) => Promise<unknown>;
140
+ //# sourceMappingURL=e2b-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2b-types.d.ts","sourceRoot":"","sources":["../../src/plugins/e2b-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Types for the E2B sandbox governance integration.
3
+ *
4
+ * Mirrors e2b v1.x / @e2b/code-interpreter v1.5+ shapes without
5
+ * requiring the SDK as a dependency. Structurally compatible at runtime.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=e2b-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2b-types.js","sourceRoot":"","sources":["../../src/plugins/e2b-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * governance-sdk E2B Sandbox Plugin
3
+ *
4
+ * Integrates governance enforcement into E2B sandbox operations.
5
+ * Wraps code execution, filesystem ops, and process spawning with
6
+ * before-action policy checks and audit logging.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { createGovernance } from 'governance-sdk';
11
+ * import { governE2BSandbox } from 'governance-sdk/plugins/e2b';
12
+ *
13
+ * const gov = createGovernance();
14
+ *
15
+ * const { executeCode, filesystem, spawn } = await governE2BSandbox(gov, {
16
+ * codeHandler: (exec) => sandbox.runCode(exec.code, { language: exec.language }),
17
+ * filesystemHandler: (op) => sandbox.filesystem[op.operation](op.path, op.content),
18
+ * processHandler: (proc) => sandbox.process.start(proc.command, proc.args),
19
+ * }, {
20
+ * agentName: 'sandbox-runner',
21
+ * owner: 'dev-team',
22
+ * });
23
+ * ```
24
+ */
25
+ import type { GovernanceInstance } from "../index";
26
+ import type { EnforcementDecision } from "../policy";
27
+ import type { E2BCodeHandler, E2BFilesystemHandler, E2BCommandHandler, GovernE2BConfig, GovernedE2BResult } from "./e2b-types.js";
28
+ export type { E2BCodeExecution, E2BExecutionResult, E2BResult, E2BError, E2BOutputMessage, E2BFilesystemOp, E2BCommandExecution, E2BCodeHandler, E2BFilesystemHandler, E2BCommandHandler, GovernE2BConfig, GovernedE2BResult, } from "./e2b-types.js";
29
+ export declare class GovernanceBlockedError extends Error {
30
+ readonly decision: EnforcementDecision;
31
+ readonly context: string;
32
+ constructor(decision: EnforcementDecision, context: string);
33
+ }
34
+ export interface E2BHandlers {
35
+ codeHandler: E2BCodeHandler;
36
+ filesystemHandler?: E2BFilesystemHandler;
37
+ /** Command handler (formerly processHandler) */
38
+ commandHandler?: E2BCommandHandler;
39
+ /** @deprecated Use commandHandler instead */
40
+ processHandler?: E2BCommandHandler;
41
+ }
42
+ export declare function governE2BSandbox(governance: GovernanceInstance, handlers: E2BHandlers, config: GovernE2BConfig): Promise<GovernedE2BResult>;
43
+ //# sourceMappingURL=e2b.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2b.d.ts","sourceRoot":"","sources":["../../src/plugins/e2b.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EAGV,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EACvD,eAAe,EAAE,iBAAiB,EACnC,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAC3E,eAAe,EAAE,mBAAmB,EACpC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EACvD,eAAe,EAAE,iBAAiB,GACnC,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,QAAQ,EAAE,mBAAmB,CAAC;IAC9C,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;CAM3D;AAsDD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,cAAc,CAAC;IAC5B,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,gDAAgD;IAChD,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAID,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,CA+E5B"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * governance-sdk E2B Sandbox Plugin
3
+ *
4
+ * Integrates governance enforcement into E2B sandbox operations.
5
+ * Wraps code execution, filesystem ops, and process spawning with
6
+ * before-action policy checks and audit logging.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { createGovernance } from 'governance-sdk';
11
+ * import { governE2BSandbox } from 'governance-sdk/plugins/e2b';
12
+ *
13
+ * const gov = createGovernance();
14
+ *
15
+ * const { executeCode, filesystem, spawn } = await governE2BSandbox(gov, {
16
+ * codeHandler: (exec) => sandbox.runCode(exec.code, { language: exec.language }),
17
+ * filesystemHandler: (op) => sandbox.filesystem[op.operation](op.path, op.content),
18
+ * processHandler: (proc) => sandbox.process.start(proc.command, proc.args),
19
+ * }, {
20
+ * agentName: 'sandbox-runner',
21
+ * owner: 'dev-team',
22
+ * });
23
+ * ```
24
+ */
25
+ // ─── Blocked Error ──────────────────────────────────────────
26
+ export class GovernanceBlockedError extends Error {
27
+ decision;
28
+ context;
29
+ constructor(decision, context) {
30
+ super(`Governance blocked: ${decision.reason} (context: ${context})`);
31
+ this.name = "GovernanceBlockedError";
32
+ this.decision = decision;
33
+ this.context = context;
34
+ }
35
+ }
36
+ // ─── Shared Helpers ─────────────────────────────────────────
37
+ function buildRegistration(config) {
38
+ return {
39
+ name: config.agentName,
40
+ framework: config.framework ?? "e2b",
41
+ owner: config.owner,
42
+ description: config.description,
43
+ version: config.version,
44
+ channels: config.channels,
45
+ tools: ["code_execution", "filesystem", "process_spawn"],
46
+ hasAuth: config.hasAuth,
47
+ hasGuardrails: config.hasGuardrails,
48
+ hasObservability: config.hasObservability,
49
+ hasAuditLog: true,
50
+ permissions: config.permissions,
51
+ metadata: config.metadata,
52
+ };
53
+ }
54
+ function createEnforcer(governance, agentId, config) {
55
+ return async (context, input) => {
56
+ const action = config.actionMapper?.(context) ?? "tool_call";
57
+ const decision = await governance.enforce({
58
+ agentId, agentName: config.agentName, agentLevel: 0,
59
+ action, tool: context, input,
60
+ sessionTokensUsed: config.sessionTokenTracker?.(),
61
+ });
62
+ config.onDecision?.(decision, context);
63
+ if (decision.blocked)
64
+ config.onBlocked?.(decision, context);
65
+ return decision;
66
+ };
67
+ }
68
+ function createAuditor(governance, agentId) {
69
+ return (context, outcome, detail) => governance.audit.log({
70
+ agentId, eventType: "tool_call", outcome,
71
+ severity: outcome === "failure" ? "warning" : "info",
72
+ detail: { tool: context, ...detail },
73
+ });
74
+ }
75
+ function matchesBlockedPattern(code, patterns) {
76
+ for (const pattern of patterns) {
77
+ if (new RegExp(pattern).test(code))
78
+ return pattern;
79
+ }
80
+ return undefined;
81
+ }
82
+ // ─── Main Export ────────────────────────────────────────────
83
+ export async function governE2BSandbox(governance, handlers, config) {
84
+ const reg = buildRegistration(config);
85
+ const result = await governance.register(reg);
86
+ const enforce = createEnforcer(governance, result.id, config);
87
+ const audit = createAuditor(governance, result.id);
88
+ async function executeCode(execution) {
89
+ // Check blocked patterns first
90
+ if (config.blockedPatterns) {
91
+ const matched = matchesBlockedPattern(execution.code, config.blockedPatterns);
92
+ if (matched) {
93
+ await audit("code_execution", "failure", { reason: `Blocked pattern: ${matched}` });
94
+ throw new GovernanceBlockedError({ blocked: true, reason: `Code matches blocked pattern: ${matched}`, ruleId: "blocked_pattern", outcome: "block", evaluatedAt: new Date().toISOString(), rulesEvaluated: 1 }, "code_execution");
95
+ }
96
+ }
97
+ const decision = await enforce("code_execution", {
98
+ code: execution.code, language: execution.language,
99
+ });
100
+ if (decision.blocked)
101
+ throw new GovernanceBlockedError(decision, "code_execution");
102
+ try {
103
+ const output = await handlers.codeHandler(execution);
104
+ await audit("code_execution", "success", { language: execution.language });
105
+ return output;
106
+ }
107
+ catch (error) {
108
+ await audit("code_execution", "failure", { error: error instanceof Error ? error.message : String(error) });
109
+ throw error;
110
+ }
111
+ }
112
+ async function filesystem(op) {
113
+ if (!handlers.filesystemHandler)
114
+ throw new Error("No filesystem handler configured");
115
+ const decision = await enforce("filesystem", { operation: op.operation, path: op.path });
116
+ if (decision.blocked)
117
+ throw new GovernanceBlockedError(decision, "filesystem");
118
+ try {
119
+ const output = await handlers.filesystemHandler(op);
120
+ await audit("filesystem", "success", { operation: op.operation, path: op.path });
121
+ return output;
122
+ }
123
+ catch (error) {
124
+ await audit("filesystem", "failure", { error: error instanceof Error ? error.message : String(error) });
125
+ throw error;
126
+ }
127
+ }
128
+ async function spawn(cmd) {
129
+ const handler = handlers.commandHandler ?? handlers.processHandler;
130
+ if (!handler)
131
+ throw new Error("No command handler configured");
132
+ const decision = await enforce("command_execution", { command: cmd.command });
133
+ if (decision.blocked)
134
+ throw new GovernanceBlockedError(decision, "command_execution");
135
+ try {
136
+ const output = await handler(cmd);
137
+ await audit("command_execution", "success", { command: cmd.command });
138
+ return output;
139
+ }
140
+ catch (error) {
141
+ await audit("command_execution", "failure", { error: error instanceof Error ? error.message : String(error) });
142
+ throw error;
143
+ }
144
+ }
145
+ return {
146
+ executeCode,
147
+ filesystem,
148
+ spawn,
149
+ agentId: result.id,
150
+ score: result.score,
151
+ level: result.level,
152
+ governance,
153
+ enforce,
154
+ audit,
155
+ };
156
+ }
157
+ //# sourceMappingURL=e2b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2b.js","sourceRoot":"","sources":["../../src/plugins/e2b.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Types for the Google Genkit governance integration.
3
+ *
4
+ * NOTE: Genkit tools are callable functions with attached metadata
5
+ * (an intersection type), not plain objects with an execute() method.
6
+ * This adapter wraps them as objects for governance enforcement.
7
+ *
8
+ * Mirrors genkit v1.29+ shapes without requiring genkit as a dependency.
9
+ */
10
+ import type { GovernanceInstance, AuditEvent } from "../index";
11
+ import type { EnforcementDecision, PolicyAction } from "../policy";
12
+ import type { AgentFramework } from "../types";
13
+ /**
14
+ * Genkit tool wrapper for governance.
15
+ *
16
+ * In the actual SDK, ToolAction is a callable function with __action
17
+ * metadata. We model it as an object with explicit call/run methods
18
+ * for governance wrapping purposes.
19
+ */
20
+ export interface GenkitTool {
21
+ name: string;
22
+ description: string;
23
+ /** Input schema — Zod schema in real SDK (JSON Schema representation here) */
24
+ inputSchema?: Record<string, unknown>;
25
+ /** Output schema — Zod schema in real SDK (JSON Schema representation here) */
26
+ outputSchema?: Record<string, unknown>;
27
+ metadata?: Record<string, unknown>;
28
+ /**
29
+ * Invoke the tool — maps to calling the ToolAction directly.
30
+ * In the real SDK: `tool(input)` (tools are callable functions).
31
+ */
32
+ call: (input: unknown, options?: Record<string, unknown>) => Promise<unknown>;
33
+ /** @deprecated Use call — tools in Genkit do not have execute() */
34
+ execute?: (input: Record<string, unknown>) => Promise<unknown>;
35
+ }
36
+ /** Genkit flow shape (flows ARE Actions — callable functions) */
37
+ export interface GenkitFlow {
38
+ name: string;
39
+ inputSchema?: Record<string, unknown>;
40
+ outputSchema?: Record<string, unknown>;
41
+ /** Call the flow — maps to `flow(input)` */
42
+ call: (input: unknown) => Promise<unknown>;
43
+ /** Run with ActionResult — maps to `flow.run(input)` */
44
+ run?: (input: unknown) => Promise<{
45
+ result: unknown;
46
+ }>;
47
+ /** @deprecated Use call */
48
+ execute?: (input: unknown) => Promise<unknown>;
49
+ }
50
+ /**
51
+ * Genkit model middleware (ModelMiddleware).
52
+ * Operates on GenerateRequest, not raw input.
53
+ * Applied via `use` array in `ai.generate()`.
54
+ */
55
+ export type GenkitMiddleware = (req: Record<string, unknown>, next: (req: Record<string, unknown>) => Promise<Record<string, unknown>>) => Promise<Record<string, unknown>>;
56
+ export interface GovernGenkitConfig {
57
+ agentName: string;
58
+ owner: string;
59
+ framework?: AgentFramework;
60
+ description?: string;
61
+ version?: string;
62
+ channels?: string[];
63
+ hasAuth?: boolean;
64
+ hasGuardrails?: boolean;
65
+ hasObservability?: boolean;
66
+ permissions?: Record<string, unknown>;
67
+ metadata?: Record<string, unknown>;
68
+ onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
69
+ onDecision?: (decision: EnforcementDecision, toolName: string) => void;
70
+ actionMapper?: (toolName: string) => PolicyAction;
71
+ sessionTokenTracker?: () => number;
72
+ }
73
+ export interface GovernedGenkitToolsResult {
74
+ tools: GenkitTool[];
75
+ agentId: string;
76
+ score: number;
77
+ level: number;
78
+ governance: GovernanceInstance;
79
+ enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
80
+ audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
81
+ }
82
+ export interface GovernedGenkitFlowResult {
83
+ flow: GenkitFlow;
84
+ agentId: string;
85
+ score: number;
86
+ level: number;
87
+ }
88
+ //# sourceMappingURL=genkit-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genkit-types.d.ts","sourceRoot":"","sources":["../../src/plugins/genkit-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Types for the Google Genkit governance integration.
3
+ *
4
+ * NOTE: Genkit tools are callable functions with attached metadata
5
+ * (an intersection type), not plain objects with an execute() method.
6
+ * This adapter wraps them as objects for governance enforcement.
7
+ *
8
+ * Mirrors genkit v1.29+ shapes without requiring genkit as a dependency.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=genkit-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genkit-types.js","sourceRoot":"","sources":["../../src/plugins/genkit-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}