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,35 @@
1
+ /**
2
+ * governance-sdk Google Genkit Plugin
3
+ *
4
+ * Integrates governance enforcement into Genkit tool execution and flows.
5
+ * Wraps tools with before-action policy checks and audit logging.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governGenkitTools } from 'governance-sdk/plugins/genkit';
11
+ *
12
+ * const gov = createGovernance({
13
+ * rules: [blockTools(['file_delete', 'send_email'])],
14
+ * });
15
+ *
16
+ * const { tools } = await governGenkitTools(gov, [searchTool, writeTool], {
17
+ * agentName: 'genkit-agent',
18
+ * owner: 'ai-team',
19
+ * });
20
+ *
21
+ * // Use governed tools in your Genkit flow
22
+ * ```
23
+ */
24
+ import type { GovernanceInstance } from "../index";
25
+ import type { EnforcementDecision } from "../policy";
26
+ import type { GenkitTool, GenkitFlow, GovernGenkitConfig, GovernedGenkitToolsResult, GovernedGenkitFlowResult } from "./genkit-types.js";
27
+ export type { GenkitTool, GenkitFlow, GenkitMiddleware, GovernGenkitConfig, GovernedGenkitToolsResult, GovernedGenkitFlowResult, } from "./genkit-types.js";
28
+ export declare class GovernanceBlockedError extends Error {
29
+ readonly decision: EnforcementDecision;
30
+ readonly toolName: string;
31
+ constructor(decision: EnforcementDecision, toolName: string);
32
+ }
33
+ export declare function governGenkitTools(governance: GovernanceInstance, tools: GenkitTool[], config: GovernGenkitConfig): Promise<GovernedGenkitToolsResult>;
34
+ export declare function governGenkitFlow(governance: GovernanceInstance, flow: GenkitFlow, config: GovernGenkitConfig): Promise<GovernedGenkitFlowResult>;
35
+ //# sourceMappingURL=genkit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genkit.d.ts","sourceRoot":"","sources":["../../src/plugins/genkit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EACV,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EACxE,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,UAAU,EAAE,UAAU,EAAE,gBAAgB,EACxC,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,GACxE,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,QAAQ,EAAE,mBAAmB,CAAC;IAC9C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM;CAM5D;AAsED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,yBAAyB,CAAC,CAiBpC;AAID,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAkCnC"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * governance-sdk Google Genkit Plugin
3
+ *
4
+ * Integrates governance enforcement into Genkit tool execution and flows.
5
+ * Wraps tools with before-action policy checks and audit logging.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governGenkitTools } from 'governance-sdk/plugins/genkit';
11
+ *
12
+ * const gov = createGovernance({
13
+ * rules: [blockTools(['file_delete', 'send_email'])],
14
+ * });
15
+ *
16
+ * const { tools } = await governGenkitTools(gov, [searchTool, writeTool], {
17
+ * agentName: 'genkit-agent',
18
+ * owner: 'ai-team',
19
+ * });
20
+ *
21
+ * // Use governed tools in your Genkit flow
22
+ * ```
23
+ */
24
+ // ─── Blocked Error ──────────────────────────────────────────
25
+ export class GovernanceBlockedError extends Error {
26
+ decision;
27
+ toolName;
28
+ constructor(decision, toolName) {
29
+ super(`Governance blocked: ${decision.reason} (tool: ${toolName})`);
30
+ this.name = "GovernanceBlockedError";
31
+ this.decision = decision;
32
+ this.toolName = toolName;
33
+ }
34
+ }
35
+ // ─── Shared Helpers ─────────────────────────────────────────
36
+ function buildRegistration(config, toolNames) {
37
+ return {
38
+ name: config.agentName,
39
+ framework: config.framework ?? "genkit",
40
+ owner: config.owner,
41
+ description: config.description,
42
+ version: config.version,
43
+ channels: config.channels,
44
+ tools: toolNames,
45
+ hasAuth: config.hasAuth,
46
+ hasGuardrails: config.hasGuardrails,
47
+ hasObservability: config.hasObservability,
48
+ hasAuditLog: true,
49
+ permissions: config.permissions,
50
+ metadata: config.metadata,
51
+ };
52
+ }
53
+ function createEnforcer(governance, agentId, config) {
54
+ return async (toolName, input) => {
55
+ const action = config.actionMapper?.(toolName) ?? "tool_call";
56
+ const decision = await governance.enforce({
57
+ agentId, agentName: config.agentName, agentLevel: 0,
58
+ action, tool: toolName, input,
59
+ sessionTokensUsed: config.sessionTokenTracker?.(),
60
+ });
61
+ config.onDecision?.(decision, toolName);
62
+ if (decision.blocked)
63
+ config.onBlocked?.(decision, toolName);
64
+ return decision;
65
+ };
66
+ }
67
+ function createAuditor(governance, agentId) {
68
+ return (toolName, outcome, detail) => governance.audit.log({
69
+ agentId, eventType: "tool_call", outcome,
70
+ severity: outcome === "failure" ? "warning" : "info",
71
+ detail: { tool: toolName, ...detail },
72
+ });
73
+ }
74
+ function wrapTool(tool, enforce, audit) {
75
+ return {
76
+ ...tool,
77
+ call: async (input, options) => {
78
+ const inputRecord = typeof input === "object" && input !== null ? input : { input };
79
+ const decision = await enforce(tool.name, inputRecord);
80
+ if (decision.blocked)
81
+ throw new GovernanceBlockedError(decision, tool.name);
82
+ try {
83
+ const output = await tool.call(input, options);
84
+ await audit(tool.name, "success");
85
+ return output;
86
+ }
87
+ catch (error) {
88
+ await audit(tool.name, "failure", { error: error instanceof Error ? error.message : String(error) });
89
+ throw error;
90
+ }
91
+ },
92
+ };
93
+ }
94
+ // ─── Govern Genkit Tools ────────────────────────────────────
95
+ export async function governGenkitTools(governance, tools, config) {
96
+ const toolNames = tools.map((t) => t.name);
97
+ const reg = buildRegistration(config, toolNames);
98
+ const result = await governance.register(reg);
99
+ const enforce = createEnforcer(governance, result.id, config);
100
+ const audit = createAuditor(governance, result.id);
101
+ return {
102
+ tools: tools.map((tool) => wrapTool(tool, enforce, audit)),
103
+ agentId: result.id,
104
+ score: result.score,
105
+ level: result.level,
106
+ governance,
107
+ enforce,
108
+ audit,
109
+ };
110
+ }
111
+ // ─── Govern Genkit Flow ─────────────────────────────────────
112
+ export async function governGenkitFlow(governance, flow, config) {
113
+ const reg = buildRegistration(config, [flow.name]);
114
+ const result = await governance.register(reg);
115
+ const enforce = createEnforcer(governance, result.id, config);
116
+ const audit = createAuditor(governance, result.id);
117
+ const governedFlow = {
118
+ ...flow,
119
+ call: async (input) => {
120
+ const inputRecord = typeof input === "object" && input !== null ? input : { input };
121
+ const decision = await enforce(flow.name, inputRecord);
122
+ if (decision.blocked) {
123
+ throw new GovernanceBlockedError(decision, flow.name);
124
+ }
125
+ try {
126
+ const output = await flow.call(input);
127
+ await audit(flow.name, "success");
128
+ return output;
129
+ }
130
+ catch (error) {
131
+ await audit(flow.name, "failure", { error: error instanceof Error ? error.message : String(error) });
132
+ throw error;
133
+ }
134
+ },
135
+ };
136
+ return {
137
+ flow: governedFlow,
138
+ agentId: result.id,
139
+ score: result.score,
140
+ level: result.level,
141
+ };
142
+ }
143
+ //# sourceMappingURL=genkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genkit.js","sourceRoot":"","sources":["../../src/plugins/genkit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * governance-sdk LangChain Plugin
3
+ *
4
+ * Integrates governance enforcement into LangChain/LangGraph tool execution.
5
+ * Wraps tools with before-action policy checks and audit logging.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governTool, governTools } from 'governance-sdk/plugins/langchain';
11
+ * import { DynamicStructuredTool } from 'langchain/tools';
12
+ *
13
+ * const gov = createGovernance({
14
+ * rules: [blockTools(['shell_exec', 'database_drop'])],
15
+ * });
16
+ *
17
+ * const searchTool = new DynamicStructuredTool({
18
+ * name: 'web_search',
19
+ * description: 'Search the web',
20
+ * schema: z.object({ query: z.string() }),
21
+ * func: async ({ query }) => '...',
22
+ * });
23
+ *
24
+ * // Wrap a single tool
25
+ * const governed = await governTool(gov, searchTool, {
26
+ * agentName: 'research-agent',
27
+ * owner: 'research-team',
28
+ * });
29
+ *
30
+ * // Or wrap all tools at once
31
+ * const governedTools = await governTools(gov, [searchTool, crmTool], {
32
+ * agentName: 'research-agent',
33
+ * owner: 'research-team',
34
+ * });
35
+ * ```
36
+ */
37
+ import type { GovernanceInstance } from "../index";
38
+ import type { EnforcementDecision, PolicyAction } from "../policy";
39
+ import type { AgentFramework } from "../types";
40
+ /** LangChain runnable config (RunnableConfig / ToolRunnableConfig) */
41
+ export interface LangChainRunnableConfig {
42
+ tags?: string[];
43
+ metadata?: Record<string, unknown>;
44
+ callbacks?: unknown[];
45
+ /** Configurable fields for the runnable */
46
+ configurable?: Record<string, unknown>;
47
+ /** Custom run name for tracing */
48
+ runName?: string;
49
+ /** Run ID for tracing */
50
+ runId?: string;
51
+ /** Max concurrent calls */
52
+ maxConcurrency?: number;
53
+ /** Recursion limit (default 25 in SDK) */
54
+ recursionLimit?: number;
55
+ /** Abort signal */
56
+ signal?: AbortSignal;
57
+ /** Timeout in milliseconds */
58
+ timeout?: number;
59
+ /** Tool call context (ToolRunnableConfig extension) */
60
+ toolCall?: Record<string, unknown>;
61
+ /** Tool runtime context (ToolRunnableConfig extension) */
62
+ context?: unknown;
63
+ [key: string]: unknown;
64
+ }
65
+ /** Generic LangChain tool shape (no direct dependency) */
66
+ export interface LangChainTool {
67
+ name: string;
68
+ description: string;
69
+ /** Input schema (Zod or JSON Schema) */
70
+ schema?: unknown;
71
+ /** Whether to return result directly to user */
72
+ returnDirect?: boolean;
73
+ /** Response format — SDK accepts arbitrary strings beyond the two known values */
74
+ responseFormat?: "content" | "content_and_artifact" | string;
75
+ /** Whether to show verbose parsing errors */
76
+ verboseParsingErrors?: boolean;
77
+ /** Default runnable config for this tool */
78
+ defaultConfig?: LangChainRunnableConfig;
79
+ /** Extra tool metadata */
80
+ extras?: Record<string, unknown>;
81
+ /** Tool metadata */
82
+ metadata?: Record<string, unknown>;
83
+ invoke: (input: unknown, config?: LangChainRunnableConfig) => Promise<unknown>;
84
+ }
85
+ export interface GovernToolConfig {
86
+ agentName: string;
87
+ owner: string;
88
+ framework?: AgentFramework;
89
+ description?: string;
90
+ version?: string;
91
+ channels?: string[];
92
+ hasAuth?: boolean;
93
+ hasGuardrails?: boolean;
94
+ hasObservability?: boolean;
95
+ permissions?: Record<string, unknown>;
96
+ metadata?: Record<string, unknown>;
97
+ onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
98
+ onDecision?: (decision: EnforcementDecision, toolName: string) => void;
99
+ actionMapper?: (toolName: string) => PolicyAction;
100
+ sessionTokenTracker?: () => number;
101
+ }
102
+ export interface GovernedResult {
103
+ agentId: string;
104
+ score: number;
105
+ level: number;
106
+ governance: GovernanceInstance;
107
+ }
108
+ export declare class GovernanceBlockedError extends Error {
109
+ readonly decision: EnforcementDecision;
110
+ readonly toolName: string;
111
+ constructor(decision: EnforcementDecision, toolName: string);
112
+ }
113
+ /**
114
+ * Wrap a single LangChain tool with governance enforcement.
115
+ *
116
+ * Returns a new tool-like object with the same interface but governed invoke.
117
+ */
118
+ export declare function governTool<T extends LangChainTool>(governance: GovernanceInstance, tool: T, config: GovernToolConfig): Promise<T & GovernedResult>;
119
+ /**
120
+ * Wrap multiple LangChain tools with governance enforcement.
121
+ *
122
+ * Registers a single agent with all tool names, then wraps each tool's invoke.
123
+ */
124
+ export declare function governTools<T extends LangChainTool>(governance: GovernanceInstance, tools: T[], config: GovernToolConfig): Promise<{
125
+ tools: T[];
126
+ agentId: string;
127
+ score: number;
128
+ level: number;
129
+ }>;
130
+ //# sourceMappingURL=langchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../../src/plugins/langchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * governance-sdk LangChain Plugin
3
+ *
4
+ * Integrates governance enforcement into LangChain/LangGraph tool execution.
5
+ * Wraps tools with before-action policy checks and audit logging.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governTool, governTools } from 'governance-sdk/plugins/langchain';
11
+ * import { DynamicStructuredTool } from 'langchain/tools';
12
+ *
13
+ * const gov = createGovernance({
14
+ * rules: [blockTools(['shell_exec', 'database_drop'])],
15
+ * });
16
+ *
17
+ * const searchTool = new DynamicStructuredTool({
18
+ * name: 'web_search',
19
+ * description: 'Search the web',
20
+ * schema: z.object({ query: z.string() }),
21
+ * func: async ({ query }) => '...',
22
+ * });
23
+ *
24
+ * // Wrap a single tool
25
+ * const governed = await governTool(gov, searchTool, {
26
+ * agentName: 'research-agent',
27
+ * owner: 'research-team',
28
+ * });
29
+ *
30
+ * // Or wrap all tools at once
31
+ * const governedTools = await governTools(gov, [searchTool, crmTool], {
32
+ * agentName: 'research-agent',
33
+ * owner: 'research-team',
34
+ * });
35
+ * ```
36
+ */
37
+ // ─── Blocked Error ──────────────────────────────────────────────
38
+ export class GovernanceBlockedError extends Error {
39
+ decision;
40
+ toolName;
41
+ constructor(decision, toolName) {
42
+ super(`Governance blocked: ${decision.reason} (tool: ${toolName})`);
43
+ this.name = "GovernanceBlockedError";
44
+ this.decision = decision;
45
+ this.toolName = toolName;
46
+ }
47
+ }
48
+ // ─── Helper ─────────────────────────────────────────────────────
49
+ async function registerAgent(governance, config, toolNames) {
50
+ const registration = {
51
+ name: config.agentName,
52
+ framework: config.framework ?? "langchain",
53
+ owner: config.owner,
54
+ description: config.description,
55
+ version: config.version,
56
+ channels: config.channels,
57
+ tools: toolNames,
58
+ hasAuth: config.hasAuth,
59
+ hasGuardrails: config.hasGuardrails,
60
+ hasObservability: config.hasObservability,
61
+ hasAuditLog: true,
62
+ permissions: config.permissions,
63
+ metadata: config.metadata,
64
+ };
65
+ return governance.register(registration);
66
+ }
67
+ function createEnforcer(governance, agentId, agentLevel, config) {
68
+ return async (toolName, input) => {
69
+ const action = config.actionMapper?.(toolName) ?? "tool_call";
70
+ const decision = await governance.enforce({
71
+ agentId,
72
+ agentName: config.agentName,
73
+ agentLevel,
74
+ action,
75
+ tool: toolName,
76
+ input: typeof input === "object" && input !== null
77
+ ? input
78
+ : undefined,
79
+ sessionTokensUsed: config.sessionTokenTracker?.(),
80
+ });
81
+ config.onDecision?.(decision, toolName);
82
+ if (decision.blocked)
83
+ config.onBlocked?.(decision, toolName);
84
+ return decision;
85
+ };
86
+ }
87
+ function createAuditor(governance, agentId) {
88
+ return async (toolName, outcome, detail) => {
89
+ return governance.audit.log({
90
+ agentId,
91
+ eventType: "tool_call",
92
+ outcome,
93
+ severity: outcome === "failure" ? "warning" : "info",
94
+ detail: { tool: toolName, ...detail },
95
+ });
96
+ };
97
+ }
98
+ // ─── Govern a Single Tool ───────────────────────────────────────
99
+ /**
100
+ * Wrap a single LangChain tool with governance enforcement.
101
+ *
102
+ * Returns a new tool-like object with the same interface but governed invoke.
103
+ */
104
+ export async function governTool(governance, tool, config) {
105
+ const result = await registerAgent(governance, config, [tool.name]);
106
+ const enforce = createEnforcer(governance, result.id, result.level, config);
107
+ const audit = createAuditor(governance, result.id);
108
+ const governed = {
109
+ ...tool,
110
+ agentId: result.id,
111
+ score: result.score,
112
+ level: result.level,
113
+ governance,
114
+ invoke: async (input, config) => {
115
+ const decision = await enforce(tool.name, input);
116
+ if (decision.blocked) {
117
+ throw new GovernanceBlockedError(decision, tool.name);
118
+ }
119
+ try {
120
+ const output = await tool.invoke(input, config);
121
+ await audit(tool.name, "success");
122
+ return output;
123
+ }
124
+ catch (error) {
125
+ await audit(tool.name, "failure", {
126
+ error: error instanceof Error ? error.message : String(error),
127
+ });
128
+ throw error;
129
+ }
130
+ },
131
+ };
132
+ return governed;
133
+ }
134
+ // ─── Govern Multiple Tools ──────────────────────────────────────
135
+ /**
136
+ * Wrap multiple LangChain tools with governance enforcement.
137
+ *
138
+ * Registers a single agent with all tool names, then wraps each tool's invoke.
139
+ */
140
+ export async function governTools(governance, tools, config) {
141
+ const toolNames = tools.map((t) => t.name);
142
+ const result = await registerAgent(governance, config, toolNames);
143
+ const enforce = createEnforcer(governance, result.id, result.level, config);
144
+ const audit = createAuditor(governance, result.id);
145
+ const governed = tools.map((tool) => ({
146
+ ...tool,
147
+ invoke: async (input, config) => {
148
+ const decision = await enforce(tool.name, input);
149
+ if (decision.blocked) {
150
+ throw new GovernanceBlockedError(decision, tool.name);
151
+ }
152
+ try {
153
+ const output = await tool.invoke(input, config);
154
+ await audit(tool.name, "success");
155
+ return output;
156
+ }
157
+ catch (error) {
158
+ await audit(tool.name, "failure", {
159
+ error: error instanceof Error ? error.message : String(error),
160
+ });
161
+ throw error;
162
+ }
163
+ },
164
+ }));
165
+ return {
166
+ tools: governed,
167
+ agentId: result.id,
168
+ score: result.score,
169
+ level: result.level,
170
+ };
171
+ }
172
+ //# sourceMappingURL=langchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.js","sourceRoot":"","sources":["../../src/plugins/langchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Types for the LlamaIndex governance integration.
3
+ *
4
+ * Mirrors LlamaIndex TypeScript SDK (llamaindex npm) shapes without
5
+ * requiring the SDK as a dependency. Structurally compatible at runtime.
6
+ *
7
+ * Updated March 2026: call() returns ToolOutput per SDK (tool, input,
8
+ * output, isError), call is optional on BaseTool (BaseToolWithCall has it).
9
+ */
10
+ import type { GovernanceInstance, AuditEvent } from "../index";
11
+ import type { EnforcementDecision, PolicyAction } from "../policy";
12
+ import type { AgentFramework } from "../types";
13
+ /** JSON-compatible value (mirrors LlamaIndex JSONValue — SDK excludes null) */
14
+ export type LlamaIndexJSONValue = string | number | boolean | LlamaIndexJSONValue[] | {
15
+ [key: string]: LlamaIndexJSONValue;
16
+ };
17
+ /** LlamaIndex tool shape (mirrors BaseTool / BaseToolWithCall) */
18
+ export interface LlamaIndexTool {
19
+ metadata: LlamaIndexToolMetadata;
20
+ /** Call the tool — returns JSONValue per SDK (ToolOutput is created externally by callTool) */
21
+ call?: (input: Record<string, unknown>) => LlamaIndexJSONValue | Promise<LlamaIndexJSONValue>;
22
+ }
23
+ /** LlamaIndex tool metadata */
24
+ export interface LlamaIndexToolMetadata {
25
+ name: string;
26
+ description: string;
27
+ parameters?: Record<string, unknown>;
28
+ }
29
+ /** LlamaIndex tool output (mirrors SDK ToolOutput class — created by callTool, not by tools) */
30
+ export interface LlamaIndexToolOutput {
31
+ /** The tool that produced this output (required key, may be undefined) */
32
+ tool: LlamaIndexTool | undefined;
33
+ /** The input that was passed to the tool */
34
+ input: Record<string, unknown>;
35
+ /** Tool output — can be any JSON value */
36
+ output: LlamaIndexJSONValue;
37
+ /** Whether the tool execution resulted in an error */
38
+ isError: boolean;
39
+ }
40
+ /** LlamaIndex query engine tool shape */
41
+ export interface LlamaIndexQueryEngineTool {
42
+ metadata: LlamaIndexToolMetadata;
43
+ call?: (input: Record<string, unknown>) => LlamaIndexJSONValue | Promise<LlamaIndexJSONValue>;
44
+ queryEngine?: unknown;
45
+ }
46
+ /** LlamaIndex agent shape */
47
+ export interface LlamaIndexAgent {
48
+ tools: LlamaIndexTool[];
49
+ chat?: (message: string) => Promise<unknown>;
50
+ }
51
+ export interface GovernLlamaIndexConfig {
52
+ agentName: string;
53
+ owner: string;
54
+ framework?: AgentFramework;
55
+ description?: string;
56
+ version?: string;
57
+ channels?: string[];
58
+ hasAuth?: boolean;
59
+ hasGuardrails?: boolean;
60
+ hasObservability?: boolean;
61
+ permissions?: Record<string, unknown>;
62
+ metadata?: Record<string, unknown>;
63
+ onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
64
+ onDecision?: (decision: EnforcementDecision, toolName: string) => void;
65
+ actionMapper?: (toolName: string) => PolicyAction;
66
+ sessionTokenTracker?: () => number;
67
+ }
68
+ export interface GovernedLlamaIndexToolsResult {
69
+ tools: LlamaIndexTool[];
70
+ agentId: string;
71
+ score: number;
72
+ level: number;
73
+ governance: GovernanceInstance;
74
+ enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
75
+ audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
76
+ }
77
+ export interface GovernedLlamaIndexAgentResult {
78
+ agent: LlamaIndexAgent;
79
+ agentId: string;
80
+ score: number;
81
+ level: number;
82
+ governance: GovernanceInstance;
83
+ enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
84
+ audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
85
+ }
86
+ //# sourceMappingURL=llamaindex-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaindex-types.d.ts","sourceRoot":"","sources":["../../src/plugins/llamaindex-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Types for the LlamaIndex governance integration.
3
+ *
4
+ * Mirrors LlamaIndex TypeScript SDK (llamaindex npm) shapes without
5
+ * requiring the SDK as a dependency. Structurally compatible at runtime.
6
+ *
7
+ * Updated March 2026: call() returns ToolOutput per SDK (tool, input,
8
+ * output, isError), call is optional on BaseTool (BaseToolWithCall has it).
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=llamaindex-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaindex-types.js","sourceRoot":"","sources":["../../src/plugins/llamaindex-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * governance-sdk LlamaIndex Plugin
3
+ *
4
+ * Integrates governance enforcement into LlamaIndex tool execution.
5
+ * Wraps tools with before-action policy checks and audit logging.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createGovernance, blockTools } from 'governance-sdk';
10
+ * import { governLlamaIndexTools } from 'governance-sdk/plugins/llamaindex';
11
+ *
12
+ * const gov = createGovernance({
13
+ * rules: [blockTools(['file_delete', 'shell_exec'])],
14
+ * });
15
+ *
16
+ * const { tools } = await governLlamaIndexTools(gov, [searchTool, writeTool], {
17
+ * agentName: 'llamaindex-agent',
18
+ * owner: 'ai-team',
19
+ * });
20
+ *
21
+ * // Use governed tools in your LlamaIndex agent
22
+ * const agent = new OpenAIAgent({ tools });
23
+ * ```
24
+ */
25
+ import type { GovernanceInstance } from "../index";
26
+ import type { EnforcementDecision } from "../policy";
27
+ import type { LlamaIndexTool, LlamaIndexAgent, GovernLlamaIndexConfig, GovernedLlamaIndexToolsResult, GovernedLlamaIndexAgentResult } from "./llamaindex-types.js";
28
+ export type { LlamaIndexTool, LlamaIndexToolMetadata, LlamaIndexToolOutput, LlamaIndexJSONValue, LlamaIndexQueryEngineTool, LlamaIndexAgent, GovernLlamaIndexConfig, GovernedLlamaIndexToolsResult, GovernedLlamaIndexAgentResult, } from "./llamaindex-types.js";
29
+ export declare class GovernanceBlockedError extends Error {
30
+ readonly decision: EnforcementDecision;
31
+ readonly toolName: string;
32
+ constructor(decision: EnforcementDecision, toolName: string);
33
+ }
34
+ export declare function governLlamaIndexTools(governance: GovernanceInstance, tools: LlamaIndexTool[], config: GovernLlamaIndexConfig): Promise<GovernedLlamaIndexToolsResult>;
35
+ export declare function governLlamaIndexAgent(governance: GovernanceInstance, agent: LlamaIndexAgent, config: GovernLlamaIndexConfig): Promise<GovernedLlamaIndexAgentResult>;
36
+ //# sourceMappingURL=llamaindex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaindex.d.ts","sourceRoot":"","sources":["../../src/plugins/llamaindex.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,EACV,cAAc,EAAE,eAAe,EAC/B,sBAAsB,EAAE,6BAA6B,EAAE,6BAA6B,EACrF,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,mBAAmB,EACjF,yBAAyB,EAAE,eAAe,EAC1C,sBAAsB,EAAE,6BAA6B,EAAE,6BAA6B,GACrF,MAAM,uBAAuB,CAAC;AAI/B,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,QAAQ,EAAE,mBAAmB,CAAC;IAC9C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM;CAM5D;AAuED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,6BAA6B,CAAC,CAiBxC;AAID,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,6BAA6B,CAAC,CAiBxC"}