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.
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/dist/agent-identity-ed25519.d.ts +80 -0
- package/dist/agent-identity-ed25519.d.ts.map +1 -0
- package/dist/agent-identity-ed25519.js +134 -0
- package/dist/agent-identity-ed25519.js.map +1 -0
- package/dist/agent-identity.d.ts +65 -0
- package/dist/agent-identity.d.ts.map +1 -0
- package/dist/agent-identity.js +85 -0
- package/dist/agent-identity.js.map +1 -0
- package/dist/audit-integrity.d.ts +78 -0
- package/dist/audit-integrity.d.ts.map +1 -0
- package/dist/audit-integrity.js +173 -0
- package/dist/audit-integrity.js.map +1 -0
- package/dist/behavioral-scorer.d.ts +72 -0
- package/dist/behavioral-scorer.d.ts.map +1 -0
- package/dist/behavioral-scorer.js +223 -0
- package/dist/behavioral-scorer.js.map +1 -0
- package/dist/cli/init.d.ts +11 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +217 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/compliance-articles.d.ts +71 -0
- package/dist/compliance-articles.d.ts.map +1 -0
- package/dist/compliance-articles.js +201 -0
- package/dist/compliance-articles.js.map +1 -0
- package/dist/compliance.d.ts +24 -0
- package/dist/compliance.d.ts.map +1 -0
- package/dist/compliance.js +183 -0
- package/dist/compliance.js.map +1 -0
- package/dist/conditions/builtins.d.ts +17 -0
- package/dist/conditions/builtins.d.ts.map +1 -0
- package/dist/conditions/builtins.js +213 -0
- package/dist/conditions/builtins.js.map +1 -0
- package/dist/conditions/postprocess.d.ts +12 -0
- package/dist/conditions/postprocess.d.ts.map +1 -0
- package/dist/conditions/postprocess.js +33 -0
- package/dist/conditions/postprocess.js.map +1 -0
- package/dist/conditions/preprocess.d.ts +12 -0
- package/dist/conditions/preprocess.d.ts.map +1 -0
- package/dist/conditions/preprocess.js +47 -0
- package/dist/conditions/preprocess.js.map +1 -0
- package/dist/conditions/process.d.ts +14 -0
- package/dist/conditions/process.d.ts.map +1 -0
- package/dist/conditions/process.js +78 -0
- package/dist/conditions/process.js.map +1 -0
- package/dist/conditions/sensitive-patterns.d.ts +13 -0
- package/dist/conditions/sensitive-patterns.d.ts.map +1 -0
- package/dist/conditions/sensitive-patterns.js +42 -0
- package/dist/conditions/sensitive-patterns.js.map +1 -0
- package/dist/dry-run.d.ts +85 -0
- package/dist/dry-run.d.ts.map +1 -0
- package/dist/dry-run.js +132 -0
- package/dist/dry-run.js.map +1 -0
- package/dist/eval-red-team.d.ts +69 -0
- package/dist/eval-red-team.d.ts.map +1 -0
- package/dist/eval-red-team.js +205 -0
- package/dist/eval-red-team.js.map +1 -0
- package/dist/eval-scorer.d.ts +56 -0
- package/dist/eval-scorer.d.ts.map +1 -0
- package/dist/eval-scorer.js +148 -0
- package/dist/eval-scorer.js.map +1 -0
- package/dist/eval-trace.d.ts +30 -0
- package/dist/eval-trace.d.ts.map +1 -0
- package/dist/eval-trace.js +129 -0
- package/dist/eval-trace.js.map +1 -0
- package/dist/eval-types.d.ts +108 -0
- package/dist/eval-types.d.ts.map +1 -0
- package/dist/eval-types.js +14 -0
- package/dist/eval-types.js.map +1 -0
- package/dist/events.d.ts +57 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +81 -0
- package/dist/events.js.map +1 -0
- package/dist/federation-types.d.ts +58 -0
- package/dist/federation-types.d.ts.map +1 -0
- package/dist/federation-types.js +8 -0
- package/dist/federation-types.js.map +1 -0
- package/dist/federation.d.ts +42 -0
- package/dist/federation.d.ts.map +1 -0
- package/dist/federation.js +158 -0
- package/dist/federation.js.map +1 -0
- package/dist/index.d.ts +142 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +273 -0
- package/dist/index.js.map +1 -0
- package/dist/injection-benchmark.d.ts +62 -0
- package/dist/injection-benchmark.d.ts.map +1 -0
- package/dist/injection-benchmark.js +201 -0
- package/dist/injection-benchmark.js.map +1 -0
- package/dist/injection-classifier.d.ts +69 -0
- package/dist/injection-classifier.d.ts.map +1 -0
- package/dist/injection-classifier.js +98 -0
- package/dist/injection-classifier.js.map +1 -0
- package/dist/injection-detect.d.ts +59 -0
- package/dist/injection-detect.d.ts.map +1 -0
- package/dist/injection-detect.js +175 -0
- package/dist/injection-detect.js.map +1 -0
- package/dist/injection-patterns-ext.d.ts +7 -0
- package/dist/injection-patterns-ext.d.ts.map +1 -0
- package/dist/injection-patterns-ext.js +71 -0
- package/dist/injection-patterns-ext.js.map +1 -0
- package/dist/injection-patterns.d.ts +15 -0
- package/dist/injection-patterns.d.ts.map +1 -0
- package/dist/injection-patterns.js +361 -0
- package/dist/injection-patterns.js.map +1 -0
- package/dist/iso-42001-articles.d.ts +34 -0
- package/dist/iso-42001-articles.d.ts.map +1 -0
- package/dist/iso-42001-articles.js +147 -0
- package/dist/iso-42001-articles.js.map +1 -0
- package/dist/iso-42001.d.ts +18 -0
- package/dist/iso-42001.d.ts.map +1 -0
- package/dist/iso-42001.js +156 -0
- package/dist/iso-42001.js.map +1 -0
- package/dist/kill-switch.d.ts +56 -0
- package/dist/kill-switch.d.ts.map +1 -0
- package/dist/kill-switch.js +173 -0
- package/dist/kill-switch.js.map +1 -0
- package/dist/metrics.d.ts +58 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +81 -0
- package/dist/metrics.js.map +1 -0
- package/dist/monorepo-detect.d.ts +30 -0
- package/dist/monorepo-detect.d.ts.map +1 -0
- package/dist/monorepo-detect.js +107 -0
- package/dist/monorepo-detect.js.map +1 -0
- package/dist/nist-ai-rmf-articles.d.ts +40 -0
- package/dist/nist-ai-rmf-articles.d.ts.map +1 -0
- package/dist/nist-ai-rmf-articles.js +156 -0
- package/dist/nist-ai-rmf-articles.js.map +1 -0
- package/dist/nist-ai-rmf.d.ts +20 -0
- package/dist/nist-ai-rmf.d.ts.map +1 -0
- package/dist/nist-ai-rmf.js +176 -0
- package/dist/nist-ai-rmf.js.map +1 -0
- package/dist/otel-hooks.d.ts +67 -0
- package/dist/otel-hooks.d.ts.map +1 -0
- package/dist/otel-hooks.js +100 -0
- package/dist/otel-hooks.js.map +1 -0
- package/dist/owasp-agentic-articles.d.ts +42 -0
- package/dist/owasp-agentic-articles.d.ts.map +1 -0
- package/dist/owasp-agentic-articles.js +236 -0
- package/dist/owasp-agentic-articles.js.map +1 -0
- package/dist/owasp-agentic.d.ts +20 -0
- package/dist/owasp-agentic.d.ts.map +1 -0
- package/dist/owasp-agentic.js +205 -0
- package/dist/owasp-agentic.js.map +1 -0
- package/dist/plugins/a2a-types.d.ts +241 -0
- package/dist/plugins/a2a-types.d.ts.map +1 -0
- package/dist/plugins/a2a-types.js +14 -0
- package/dist/plugins/a2a-types.js.map +1 -0
- package/dist/plugins/a2a.d.ts +37 -0
- package/dist/plugins/a2a.d.ts.map +1 -0
- package/dist/plugins/a2a.js +160 -0
- package/dist/plugins/a2a.js.map +1 -0
- package/dist/plugins/anthropic-types.d.ts +188 -0
- package/dist/plugins/anthropic-types.d.ts.map +1 -0
- package/dist/plugins/anthropic-types.js +8 -0
- package/dist/plugins/anthropic-types.js.map +1 -0
- package/dist/plugins/anthropic.d.ts +32 -0
- package/dist/plugins/anthropic.d.ts.map +1 -0
- package/dist/plugins/anthropic.js +131 -0
- package/dist/plugins/anthropic.js.map +1 -0
- package/dist/plugins/autogen-types.d.ts +121 -0
- package/dist/plugins/autogen-types.d.ts.map +1 -0
- package/dist/plugins/autogen-types.js +13 -0
- package/dist/plugins/autogen-types.js.map +1 -0
- package/dist/plugins/autogen.d.ts +41 -0
- package/dist/plugins/autogen.d.ts.map +1 -0
- package/dist/plugins/autogen.js +131 -0
- package/dist/plugins/autogen.js.map +1 -0
- package/dist/plugins/bedrock-types.d.ts +246 -0
- package/dist/plugins/bedrock-types.d.ts.map +1 -0
- package/dist/plugins/bedrock-types.js +8 -0
- package/dist/plugins/bedrock-types.js.map +1 -0
- package/dist/plugins/bedrock.d.ts +43 -0
- package/dist/plugins/bedrock.d.ts.map +1 -0
- package/dist/plugins/bedrock.js +155 -0
- package/dist/plugins/bedrock.js.map +1 -0
- package/dist/plugins/cloudflare-ai-types.d.ts +85 -0
- package/dist/plugins/cloudflare-ai-types.d.ts.map +1 -0
- package/dist/plugins/cloudflare-ai-types.js +10 -0
- package/dist/plugins/cloudflare-ai-types.js.map +1 -0
- package/dist/plugins/cloudflare-ai.d.ts +32 -0
- package/dist/plugins/cloudflare-ai.d.ts.map +1 -0
- package/dist/plugins/cloudflare-ai.js +108 -0
- package/dist/plugins/cloudflare-ai.js.map +1 -0
- package/dist/plugins/composio-types.d.ts +96 -0
- package/dist/plugins/composio-types.d.ts.map +1 -0
- package/dist/plugins/composio-types.js +13 -0
- package/dist/plugins/composio-types.js.map +1 -0
- package/dist/plugins/composio.d.ts +37 -0
- package/dist/plugins/composio.d.ts.map +1 -0
- package/dist/plugins/composio.js +118 -0
- package/dist/plugins/composio.js.map +1 -0
- package/dist/plugins/crewai-types.d.ts +153 -0
- package/dist/plugins/crewai-types.d.ts.map +1 -0
- package/dist/plugins/crewai-types.js +10 -0
- package/dist/plugins/crewai-types.js.map +1 -0
- package/dist/plugins/crewai.d.ts +37 -0
- package/dist/plugins/crewai.d.ts.map +1 -0
- package/dist/plugins/crewai.js +127 -0
- package/dist/plugins/crewai.js.map +1 -0
- package/dist/plugins/deno-types.d.ts +68 -0
- package/dist/plugins/deno-types.d.ts.map +1 -0
- package/dist/plugins/deno-types.js +8 -0
- package/dist/plugins/deno-types.js.map +1 -0
- package/dist/plugins/deno.d.ts +37 -0
- package/dist/plugins/deno.d.ts.map +1 -0
- package/dist/plugins/deno.js +129 -0
- package/dist/plugins/deno.js.map +1 -0
- package/dist/plugins/e2b-types.d.ts +140 -0
- package/dist/plugins/e2b-types.d.ts.map +1 -0
- package/dist/plugins/e2b-types.js +8 -0
- package/dist/plugins/e2b-types.js.map +1 -0
- package/dist/plugins/e2b.d.ts +43 -0
- package/dist/plugins/e2b.d.ts.map +1 -0
- package/dist/plugins/e2b.js +157 -0
- package/dist/plugins/e2b.js.map +1 -0
- package/dist/plugins/genkit-types.d.ts +88 -0
- package/dist/plugins/genkit-types.d.ts.map +1 -0
- package/dist/plugins/genkit-types.js +11 -0
- package/dist/plugins/genkit-types.js.map +1 -0
- package/dist/plugins/genkit.d.ts +35 -0
- package/dist/plugins/genkit.d.ts.map +1 -0
- package/dist/plugins/genkit.js +143 -0
- package/dist/plugins/genkit.js.map +1 -0
- package/dist/plugins/langchain.d.ts +130 -0
- package/dist/plugins/langchain.d.ts.map +1 -0
- package/dist/plugins/langchain.js +172 -0
- package/dist/plugins/langchain.js.map +1 -0
- package/dist/plugins/llamaindex-types.d.ts +86 -0
- package/dist/plugins/llamaindex-types.d.ts.map +1 -0
- package/dist/plugins/llamaindex-types.js +11 -0
- package/dist/plugins/llamaindex-types.js.map +1 -0
- package/dist/plugins/llamaindex.d.ts +36 -0
- package/dist/plugins/llamaindex.d.ts.map +1 -0
- package/dist/plugins/llamaindex.js +131 -0
- package/dist/plugins/llamaindex.js.map +1 -0
- package/dist/plugins/mastra-processor-types.d.ts +126 -0
- package/dist/plugins/mastra-processor-types.d.ts.map +1 -0
- package/dist/plugins/mastra-processor-types.js +11 -0
- package/dist/plugins/mastra-processor-types.js.map +1 -0
- package/dist/plugins/mastra-processor.d.ts +32 -0
- package/dist/plugins/mastra-processor.d.ts.map +1 -0
- package/dist/plugins/mastra-processor.js +126 -0
- package/dist/plugins/mastra-processor.js.map +1 -0
- package/dist/plugins/mastra.d.ts +100 -0
- package/dist/plugins/mastra.d.ts.map +1 -0
- package/dist/plugins/mastra.js +143 -0
- package/dist/plugins/mastra.js.map +1 -0
- package/dist/plugins/mcp-annotations.d.ts +54 -0
- package/dist/plugins/mcp-annotations.d.ts.map +1 -0
- package/dist/plugins/mcp-annotations.js +110 -0
- package/dist/plugins/mcp-annotations.js.map +1 -0
- package/dist/plugins/mcp-chain-audit.d.ts +74 -0
- package/dist/plugins/mcp-chain-audit.d.ts.map +1 -0
- package/dist/plugins/mcp-chain-audit.js +134 -0
- package/dist/plugins/mcp-chain-audit.js.map +1 -0
- package/dist/plugins/mcp-trust.d.ts +59 -0
- package/dist/plugins/mcp-trust.d.ts.map +1 -0
- package/dist/plugins/mcp-trust.js +100 -0
- package/dist/plugins/mcp-trust.js.map +1 -0
- package/dist/plugins/mcp-types.d.ts +183 -0
- package/dist/plugins/mcp-types.d.ts.map +1 -0
- package/dist/plugins/mcp-types.js +12 -0
- package/dist/plugins/mcp-types.js.map +1 -0
- package/dist/plugins/mcp.d.ts +41 -0
- package/dist/plugins/mcp.d.ts.map +1 -0
- package/dist/plugins/mcp.js +228 -0
- package/dist/plugins/mcp.js.map +1 -0
- package/dist/plugins/mistral-types.d.ts +72 -0
- package/dist/plugins/mistral-types.d.ts.map +1 -0
- package/dist/plugins/mistral-types.js +8 -0
- package/dist/plugins/mistral-types.js.map +1 -0
- package/dist/plugins/mistral.d.ts +32 -0
- package/dist/plugins/mistral.d.ts.map +1 -0
- package/dist/plugins/mistral.js +133 -0
- package/dist/plugins/mistral.js.map +1 -0
- package/dist/plugins/ollama-types.d.ts +76 -0
- package/dist/plugins/ollama-types.d.ts.map +1 -0
- package/dist/plugins/ollama-types.js +8 -0
- package/dist/plugins/ollama-types.js.map +1 -0
- package/dist/plugins/ollama.d.ts +32 -0
- package/dist/plugins/ollama.d.ts.map +1 -0
- package/dist/plugins/ollama.js +130 -0
- package/dist/plugins/ollama.js.map +1 -0
- package/dist/plugins/openai-agents-types.d.ts +130 -0
- package/dist/plugins/openai-agents-types.d.ts.map +1 -0
- package/dist/plugins/openai-agents-types.js +12 -0
- package/dist/plugins/openai-agents-types.js.map +1 -0
- package/dist/plugins/openai-agents.d.ts +37 -0
- package/dist/plugins/openai-agents.d.ts.map +1 -0
- package/dist/plugins/openai-agents.js +151 -0
- package/dist/plugins/openai-agents.js.map +1 -0
- package/dist/plugins/semantic-kernel-types.d.ts +103 -0
- package/dist/plugins/semantic-kernel-types.d.ts.map +1 -0
- package/dist/plugins/semantic-kernel-types.js +13 -0
- package/dist/plugins/semantic-kernel-types.js.map +1 -0
- package/dist/plugins/semantic-kernel.d.ts +37 -0
- package/dist/plugins/semantic-kernel.d.ts.map +1 -0
- package/dist/plugins/semantic-kernel.js +149 -0
- package/dist/plugins/semantic-kernel.js.map +1 -0
- package/dist/plugins/vercel-ai.d.ts +134 -0
- package/dist/plugins/vercel-ai.d.ts.map +1 -0
- package/dist/plugins/vercel-ai.js +130 -0
- package/dist/plugins/vercel-ai.js.map +1 -0
- package/dist/policy-builder.d.ts +52 -0
- package/dist/policy-builder.d.ts.map +1 -0
- package/dist/policy-builder.js +108 -0
- package/dist/policy-builder.js.map +1 -0
- package/dist/policy-compose-presets.d.ts +18 -0
- package/dist/policy-compose-presets.d.ts.map +1 -0
- package/dist/policy-compose-presets.js +52 -0
- package/dist/policy-compose-presets.js.map +1 -0
- package/dist/policy-compose.d.ts +66 -0
- package/dist/policy-compose.d.ts.map +1 -0
- package/dist/policy-compose.js +163 -0
- package/dist/policy-compose.js.map +1 -0
- package/dist/policy-presets-extended.d.ts +35 -0
- package/dist/policy-presets-extended.d.ts.map +1 -0
- package/dist/policy-presets-extended.js +137 -0
- package/dist/policy-presets-extended.js.map +1 -0
- package/dist/policy-presets.d.ts +77 -0
- package/dist/policy-presets.d.ts.map +1 -0
- package/dist/policy-presets.js +164 -0
- package/dist/policy-presets.js.map +1 -0
- package/dist/policy-stage-defaults.d.ts +8 -0
- package/dist/policy-stage-defaults.d.ts.map +1 -0
- package/dist/policy-stage-defaults.js +34 -0
- package/dist/policy-stage-defaults.js.map +1 -0
- package/dist/policy-yaml.d.ts +23 -0
- package/dist/policy-yaml.d.ts.map +1 -0
- package/dist/policy-yaml.js +216 -0
- package/dist/policy-yaml.js.map +1 -0
- package/dist/policy.d.ts +124 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +161 -0
- package/dist/policy.js.map +1 -0
- package/dist/remote-enforce.d.ts +44 -0
- package/dist/remote-enforce.d.ts.map +1 -0
- package/dist/remote-enforce.js +99 -0
- package/dist/remote-enforce.js.map +1 -0
- package/dist/repo-patterns.d.ts +32 -0
- package/dist/repo-patterns.d.ts.map +1 -0
- package/dist/repo-patterns.js +222 -0
- package/dist/repo-patterns.js.map +1 -0
- package/dist/sandbox.d.ts +68 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +124 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/scorer-dimensions.d.ts +10 -0
- package/dist/scorer-dimensions.d.ts.map +1 -0
- package/dist/scorer-dimensions.js +184 -0
- package/dist/scorer-dimensions.js.map +1 -0
- package/dist/scorer.d.ts +27 -0
- package/dist/scorer.d.ts.map +1 -0
- package/dist/scorer.js +138 -0
- package/dist/scorer.js.map +1 -0
- package/dist/storage-postgres-schema.d.ts +47 -0
- package/dist/storage-postgres-schema.d.ts.map +1 -0
- package/dist/storage-postgres-schema.js +134 -0
- package/dist/storage-postgres-schema.js.map +1 -0
- package/dist/storage-postgres.d.ts +41 -0
- package/dist/storage-postgres.d.ts.map +1 -0
- package/dist/storage-postgres.js +180 -0
- package/dist/storage-postgres.js.map +1 -0
- package/dist/storage.d.ts +65 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +85 -0
- package/dist/storage.js.map +1 -0
- package/dist/supply-chain-sbom.d.ts +72 -0
- package/dist/supply-chain-sbom.d.ts.map +1 -0
- package/dist/supply-chain-sbom.js +73 -0
- package/dist/supply-chain-sbom.js.map +1 -0
- package/dist/supply-chain.d.ts +61 -0
- package/dist/supply-chain.d.ts.map +1 -0
- package/dist/supply-chain.js +95 -0
- package/dist/supply-chain.js.map +1 -0
- package/dist/token-types.d.ts +77 -0
- package/dist/token-types.d.ts.map +1 -0
- package/dist/token-types.js +31 -0
- package/dist/token-types.js.map +1 -0
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +361 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk AWS Bedrock Agents Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into AWS Bedrock agent invocations.
|
|
5
|
+
* Wraps invokeAgent calls and action group execution with policy checks.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
10
|
+
* import { createGovernedBedrock } from 'governance-sdk/plugins/bedrock';
|
|
11
|
+
*
|
|
12
|
+
* const gov = createGovernance({
|
|
13
|
+
* rules: [blockTools(['delete_records', 'send_email'])],
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const { invokeAgent, guardActionGroup } = await createGovernedBedrock(
|
|
17
|
+
* gov, originalInvokeAgent, {
|
|
18
|
+
* agentName: 'bedrock-assistant',
|
|
19
|
+
* owner: 'cloud-team',
|
|
20
|
+
* },
|
|
21
|
+
* );
|
|
22
|
+
*
|
|
23
|
+
* // Use governed invokeAgent instead of direct SDK call
|
|
24
|
+
* const response = await invokeAgent({ agentId: '...', ... });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
// ─── Blocked Error ──────────────────────────────────────────
|
|
28
|
+
export class GovernanceBlockedError extends Error {
|
|
29
|
+
decision;
|
|
30
|
+
toolName;
|
|
31
|
+
constructor(decision, toolName) {
|
|
32
|
+
super(`Governance blocked: ${decision.reason} (tool: ${toolName})`);
|
|
33
|
+
this.name = "GovernanceBlockedError";
|
|
34
|
+
this.decision = decision;
|
|
35
|
+
this.toolName = toolName;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// ─── Shared Helpers ─────────────────────────────────────────
|
|
39
|
+
function buildRegistration(config) {
|
|
40
|
+
return {
|
|
41
|
+
name: config.agentName,
|
|
42
|
+
framework: config.framework ?? "bedrock",
|
|
43
|
+
owner: config.owner,
|
|
44
|
+
description: config.description,
|
|
45
|
+
version: config.version,
|
|
46
|
+
channels: config.channels,
|
|
47
|
+
tools: config.tools,
|
|
48
|
+
hasAuth: config.hasAuth ?? true, // Bedrock uses IAM auth by default
|
|
49
|
+
hasGuardrails: config.hasGuardrails,
|
|
50
|
+
hasObservability: config.hasObservability,
|
|
51
|
+
hasAuditLog: true,
|
|
52
|
+
permissions: config.permissions,
|
|
53
|
+
metadata: config.metadata,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function createEnforcer(governance, agentId, config) {
|
|
57
|
+
return async (toolName, input) => {
|
|
58
|
+
const action = config.actionMapper?.(toolName) ?? "tool_call";
|
|
59
|
+
const decision = await governance.enforce({
|
|
60
|
+
agentId, agentName: config.agentName, agentLevel: 0,
|
|
61
|
+
action, tool: toolName, input,
|
|
62
|
+
sessionTokensUsed: config.sessionTokenTracker?.(),
|
|
63
|
+
});
|
|
64
|
+
config.onDecision?.(decision, toolName);
|
|
65
|
+
if (decision.blocked)
|
|
66
|
+
config.onBlocked?.(decision, toolName);
|
|
67
|
+
return decision;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function createAuditor(governance, agentId) {
|
|
71
|
+
return (toolName, outcome, detail) => governance.audit.log({
|
|
72
|
+
agentId, eventType: "tool_call", outcome,
|
|
73
|
+
severity: outcome === "failure" ? "warning" : "info",
|
|
74
|
+
detail: { tool: toolName, ...detail },
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
// ─── Create Governed Bedrock ────────────────────────────────
|
|
78
|
+
/**
|
|
79
|
+
* Create a governed AWS Bedrock agent wrapper.
|
|
80
|
+
*
|
|
81
|
+
* Wraps an existing invokeAgent handler with governance enforcement.
|
|
82
|
+
* Also provides a guardActionGroup method for action-level governance.
|
|
83
|
+
*/
|
|
84
|
+
export async function createGovernedBedrock(governance, invokeHandler, config) {
|
|
85
|
+
const reg = buildRegistration(config);
|
|
86
|
+
const result = await governance.register(reg);
|
|
87
|
+
const enforce = createEnforcer(governance, result.id, config);
|
|
88
|
+
const audit = createAuditor(governance, result.id);
|
|
89
|
+
async function invokeAgent(input) {
|
|
90
|
+
const toolName = `bedrock:${input.agentId}:${input.agentAliasId}`;
|
|
91
|
+
const decision = await enforce(toolName, {
|
|
92
|
+
agentId: input.agentId,
|
|
93
|
+
agentAliasId: input.agentAliasId,
|
|
94
|
+
sessionId: input.sessionId,
|
|
95
|
+
inputText: input.inputText,
|
|
96
|
+
});
|
|
97
|
+
if (decision.blocked) {
|
|
98
|
+
throw new GovernanceBlockedError(decision, toolName);
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const response = await invokeHandler(input);
|
|
102
|
+
await audit(toolName, "success", { sessionId: input.sessionId });
|
|
103
|
+
return response;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
await audit(toolName, "failure", {
|
|
107
|
+
sessionId: input.sessionId,
|
|
108
|
+
error: error instanceof Error ? error.message : String(error),
|
|
109
|
+
});
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async function guardActionGroup(invocation) {
|
|
114
|
+
const toolName = invocation.actionGroupName;
|
|
115
|
+
const input = {
|
|
116
|
+
apiPath: invocation.apiPath,
|
|
117
|
+
verb: invocation.verb,
|
|
118
|
+
};
|
|
119
|
+
if (invocation.parameters) {
|
|
120
|
+
input.parameters = invocation.parameters.map((p) => ({ name: p.name, value: p.value }));
|
|
121
|
+
}
|
|
122
|
+
const decision = await enforce(toolName, input);
|
|
123
|
+
if (decision.blocked) {
|
|
124
|
+
await audit(toolName, "failure", { reason: decision.reason, type: "action_group_blocked" });
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
await audit(toolName, "success", { type: "action_group_allowed" });
|
|
128
|
+
}
|
|
129
|
+
return decision;
|
|
130
|
+
}
|
|
131
|
+
async function guardToolUse(block) {
|
|
132
|
+
const toolName = block.name;
|
|
133
|
+
const input = (block.input ?? {});
|
|
134
|
+
const decision = await enforce(toolName, { toolUseId: block.toolUseId, ...input });
|
|
135
|
+
if (decision.blocked) {
|
|
136
|
+
await audit(toolName, "failure", { reason: decision.reason, type: "tool_use_blocked", toolUseId: block.toolUseId });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
await audit(toolName, "success", { type: "tool_use_allowed", toolUseId: block.toolUseId });
|
|
140
|
+
}
|
|
141
|
+
return decision;
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
invokeAgent,
|
|
145
|
+
guardActionGroup,
|
|
146
|
+
guardToolUse,
|
|
147
|
+
agentId: result.id,
|
|
148
|
+
score: result.score,
|
|
149
|
+
level: result.level,
|
|
150
|
+
governance,
|
|
151
|
+
enforce,
|
|
152
|
+
audit,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=bedrock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/plugins/bedrock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Cloudflare Workers AI governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Cloudflare AI Gateway and Workers AI shapes targeting the
|
|
5
|
+
* OpenAI-compatible endpoint (/v1/chat/completions). The native
|
|
6
|
+
* AI.run() API uses a flatter format — these types target the
|
|
7
|
+
* OpenAI-compat interface which is more widely adopted.
|
|
8
|
+
*/
|
|
9
|
+
import type { GovernanceInstance, AuditEvent } from "../index";
|
|
10
|
+
import type { EnforcementDecision, PolicyAction } from "../policy";
|
|
11
|
+
import type { AgentFramework } from "../types";
|
|
12
|
+
/** Cloudflare AI tool call shape */
|
|
13
|
+
export interface CloudflareToolCall {
|
|
14
|
+
name: string;
|
|
15
|
+
arguments: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/** Cloudflare AI tool definition */
|
|
18
|
+
export interface CloudflareToolDefinition {
|
|
19
|
+
type: "function";
|
|
20
|
+
function: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
parameters?: Record<string, unknown>;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Cloudflare AI message */
|
|
27
|
+
export interface CloudflareMessage {
|
|
28
|
+
role: "system" | "user" | "assistant" | "tool";
|
|
29
|
+
content: string | null;
|
|
30
|
+
name?: string;
|
|
31
|
+
tool_calls?: CloudflareToolCallMessage[];
|
|
32
|
+
tool_call_id?: string;
|
|
33
|
+
}
|
|
34
|
+
/** Cloudflare tool call in assistant message */
|
|
35
|
+
export interface CloudflareToolCallMessage {
|
|
36
|
+
id: string;
|
|
37
|
+
type: "function";
|
|
38
|
+
function: {
|
|
39
|
+
name: string;
|
|
40
|
+
arguments: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** Cloudflare AI Gateway request */
|
|
44
|
+
export interface CloudflareAIGatewayRequest {
|
|
45
|
+
model: string;
|
|
46
|
+
messages: CloudflareMessage[];
|
|
47
|
+
tools?: CloudflareToolDefinition[];
|
|
48
|
+
/** Controls tool invocation: "auto" (default), "required" (force tool use), "none" (disable) */
|
|
49
|
+
tool_choice?: "auto" | "required" | "none";
|
|
50
|
+
stream?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/** Cloudflare AI tool executor */
|
|
53
|
+
export interface CloudflareToolExecutor {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
parameters?: Record<string, unknown>;
|
|
57
|
+
execute: (args: Record<string, unknown>) => Promise<unknown>;
|
|
58
|
+
}
|
|
59
|
+
export interface GovernCloudflareAIConfig {
|
|
60
|
+
agentName: string;
|
|
61
|
+
owner: string;
|
|
62
|
+
framework?: AgentFramework;
|
|
63
|
+
description?: string;
|
|
64
|
+
version?: string;
|
|
65
|
+
channels?: string[];
|
|
66
|
+
hasAuth?: boolean;
|
|
67
|
+
hasGuardrails?: boolean;
|
|
68
|
+
hasObservability?: boolean;
|
|
69
|
+
permissions?: Record<string, unknown>;
|
|
70
|
+
metadata?: Record<string, unknown>;
|
|
71
|
+
onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
|
|
72
|
+
onDecision?: (decision: EnforcementDecision, toolName: string) => void;
|
|
73
|
+
actionMapper?: (toolName: string) => PolicyAction;
|
|
74
|
+
sessionTokenTracker?: () => number;
|
|
75
|
+
}
|
|
76
|
+
export interface GovernedCloudflareAIResult {
|
|
77
|
+
tools: CloudflareToolExecutor[];
|
|
78
|
+
agentId: string;
|
|
79
|
+
score: number;
|
|
80
|
+
level: number;
|
|
81
|
+
governance: GovernanceInstance;
|
|
82
|
+
enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
|
|
83
|
+
audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=cloudflare-ai-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-types.d.ts","sourceRoot":"","sources":["../../src/plugins/cloudflare-ai-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Cloudflare Workers AI governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Cloudflare AI Gateway and Workers AI shapes targeting the
|
|
5
|
+
* OpenAI-compatible endpoint (/v1/chat/completions). The native
|
|
6
|
+
* AI.run() API uses a flatter format — these types target the
|
|
7
|
+
* OpenAI-compat interface which is more widely adopted.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=cloudflare-ai-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai-types.js","sourceRoot":"","sources":["../../src/plugins/cloudflare-ai-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk Cloudflare Workers AI Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into Cloudflare Workers AI tool execution.
|
|
5
|
+
* Wraps tool executors with before-action policy checks and audit logging.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
10
|
+
* import { governCloudflareTools } from 'governance-sdk/plugins/cloudflare-ai';
|
|
11
|
+
*
|
|
12
|
+
* const gov = createGovernance({
|
|
13
|
+
* rules: [blockTools(['shell_exec', 'file_delete'])],
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const { tools } = await governCloudflareTools(gov, myToolExecutors, {
|
|
17
|
+
* agentName: 'edge-agent',
|
|
18
|
+
* owner: 'platform-team',
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { GovernanceInstance } from "../index";
|
|
23
|
+
import type { EnforcementDecision } from "../policy";
|
|
24
|
+
import type { CloudflareToolExecutor, GovernCloudflareAIConfig, GovernedCloudflareAIResult } from "./cloudflare-ai-types.js";
|
|
25
|
+
export type { CloudflareToolCall, CloudflareToolDefinition, CloudflareMessage, CloudflareToolCallMessage, CloudflareAIGatewayRequest, CloudflareToolExecutor, GovernCloudflareAIConfig, GovernedCloudflareAIResult, } from "./cloudflare-ai-types.js";
|
|
26
|
+
export declare class GovernanceBlockedError extends Error {
|
|
27
|
+
readonly decision: EnforcementDecision;
|
|
28
|
+
readonly toolName: string;
|
|
29
|
+
constructor(decision: EnforcementDecision, toolName: string);
|
|
30
|
+
}
|
|
31
|
+
export declare function governCloudflareTools(governance: GovernanceInstance, tools: CloudflareToolExecutor[], config: GovernCloudflareAIConfig): Promise<GovernedCloudflareAIResult>;
|
|
32
|
+
//# sourceMappingURL=cloudflare-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai.d.ts","sourceRoot":"","sources":["../../src/plugins/cloudflare-ai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EAAE,0BAA0B,EACrD,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,kBAAkB,EAAE,wBAAwB,EAAE,iBAAiB,EAC/D,yBAAyB,EAAE,0BAA0B,EAAE,sBAAsB,EAC7E,wBAAwB,EAAE,0BAA0B,GACrD,MAAM,0BAA0B,CAAC;AAIlC,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;AAqED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,sBAAsB,EAAE,EAC/B,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAiBrC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk Cloudflare Workers AI Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into Cloudflare Workers AI tool execution.
|
|
5
|
+
* Wraps tool executors with before-action policy checks and audit logging.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
10
|
+
* import { governCloudflareTools } from 'governance-sdk/plugins/cloudflare-ai';
|
|
11
|
+
*
|
|
12
|
+
* const gov = createGovernance({
|
|
13
|
+
* rules: [blockTools(['shell_exec', 'file_delete'])],
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const { tools } = await governCloudflareTools(gov, myToolExecutors, {
|
|
17
|
+
* agentName: 'edge-agent',
|
|
18
|
+
* owner: 'platform-team',
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
// ─── Blocked Error ──────────────────────────────────────────
|
|
23
|
+
export class GovernanceBlockedError extends Error {
|
|
24
|
+
decision;
|
|
25
|
+
toolName;
|
|
26
|
+
constructor(decision, toolName) {
|
|
27
|
+
super(`Governance blocked: ${decision.reason} (tool: ${toolName})`);
|
|
28
|
+
this.name = "GovernanceBlockedError";
|
|
29
|
+
this.decision = decision;
|
|
30
|
+
this.toolName = toolName;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// ─── Shared Helpers ─────────────────────────────────────────
|
|
34
|
+
function buildRegistration(config, toolNames) {
|
|
35
|
+
return {
|
|
36
|
+
name: config.agentName,
|
|
37
|
+
framework: config.framework ?? "custom",
|
|
38
|
+
owner: config.owner,
|
|
39
|
+
description: config.description,
|
|
40
|
+
version: config.version,
|
|
41
|
+
channels: config.channels,
|
|
42
|
+
tools: toolNames,
|
|
43
|
+
hasAuth: config.hasAuth,
|
|
44
|
+
hasGuardrails: config.hasGuardrails,
|
|
45
|
+
hasObservability: config.hasObservability,
|
|
46
|
+
hasAuditLog: true,
|
|
47
|
+
permissions: config.permissions,
|
|
48
|
+
metadata: { ...config.metadata, runtime: "cloudflare-workers" },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function createEnforcer(governance, agentId, config) {
|
|
52
|
+
return async (toolName, input) => {
|
|
53
|
+
const action = config.actionMapper?.(toolName) ?? "tool_call";
|
|
54
|
+
const decision = await governance.enforce({
|
|
55
|
+
agentId, agentName: config.agentName, agentLevel: 0,
|
|
56
|
+
action, tool: toolName, input,
|
|
57
|
+
sessionTokensUsed: config.sessionTokenTracker?.(),
|
|
58
|
+
});
|
|
59
|
+
config.onDecision?.(decision, toolName);
|
|
60
|
+
if (decision.blocked)
|
|
61
|
+
config.onBlocked?.(decision, toolName);
|
|
62
|
+
return decision;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function createAuditor(governance, agentId) {
|
|
66
|
+
return (toolName, outcome, detail) => governance.audit.log({
|
|
67
|
+
agentId, eventType: "tool_call", outcome,
|
|
68
|
+
severity: outcome === "failure" ? "warning" : "info",
|
|
69
|
+
detail: { tool: toolName, ...detail },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function wrapTool(tool, enforce, audit) {
|
|
73
|
+
return {
|
|
74
|
+
...tool,
|
|
75
|
+
execute: async (args) => {
|
|
76
|
+
const decision = await enforce(tool.name, args);
|
|
77
|
+
if (decision.blocked)
|
|
78
|
+
throw new GovernanceBlockedError(decision, tool.name);
|
|
79
|
+
try {
|
|
80
|
+
const output = await tool.execute(args);
|
|
81
|
+
await audit(tool.name, "success");
|
|
82
|
+
return output;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
await audit(tool.name, "failure", { error: error instanceof Error ? error.message : String(error) });
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// ─── Govern Cloudflare Tools ────────────────────────────────
|
|
92
|
+
export async function governCloudflareTools(governance, tools, config) {
|
|
93
|
+
const toolNames = tools.map((t) => t.name);
|
|
94
|
+
const reg = buildRegistration(config, toolNames);
|
|
95
|
+
const result = await governance.register(reg);
|
|
96
|
+
const enforce = createEnforcer(governance, result.id, config);
|
|
97
|
+
const audit = createAuditor(governance, result.id);
|
|
98
|
+
return {
|
|
99
|
+
tools: tools.map((tool) => wrapTool(tool, enforce, audit)),
|
|
100
|
+
agentId: result.id,
|
|
101
|
+
score: result.score,
|
|
102
|
+
level: result.level,
|
|
103
|
+
governance,
|
|
104
|
+
enforce,
|
|
105
|
+
audit,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=cloudflare-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-ai.js","sourceRoot":"","sources":["../../src/plugins/cloudflare-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Composio governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors @composio/core v0.6+ shapes without requiring the SDK
|
|
5
|
+
* as a dependency. Structurally compatible at runtime.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Composio SDK migrated from composio-core to @composio/core.
|
|
8
|
+
* "Actions" are now "Tools", "Apps" are now "Toolkits",
|
|
9
|
+
* "Integrations" are now "Auth Configs", "Connections" are now
|
|
10
|
+
* "Connected Accounts", "Entity ID" is now "User ID".
|
|
11
|
+
*/
|
|
12
|
+
import type { GovernanceInstance, AuditEvent } from "../index";
|
|
13
|
+
import type { EnforcementDecision, PolicyAction } from "../policy";
|
|
14
|
+
import type { AgentFramework } from "../types";
|
|
15
|
+
/** Composio tool (formerly "action") — v3 uses session-based execution */
|
|
16
|
+
export interface ComposioTool {
|
|
17
|
+
/** Tool slug identifier (e.g. "GITHUB_CREATE_ISSUE") */
|
|
18
|
+
name: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
/** Toolkit slug (formerly "appName") */
|
|
21
|
+
toolkitSlug?: string;
|
|
22
|
+
parameters?: Record<string, unknown>;
|
|
23
|
+
/** Tool version — e.g. "20250909_00" or "latest". SDK field name is `version`, not `toolkitVersion`. */
|
|
24
|
+
version?: string;
|
|
25
|
+
/**
|
|
26
|
+
* v3 tools are executed via session.tools() + execute pattern,
|
|
27
|
+
* not via composio.tools.execute() (deprecated). This field supports wrapper patterns.
|
|
28
|
+
*/
|
|
29
|
+
execute?: (params: Record<string, unknown>) => Promise<ComposioToolResult>;
|
|
30
|
+
}
|
|
31
|
+
/** Composio tool execution result */
|
|
32
|
+
export interface ComposioToolResult {
|
|
33
|
+
successful: boolean;
|
|
34
|
+
data?: unknown;
|
|
35
|
+
error?: string | null;
|
|
36
|
+
}
|
|
37
|
+
/** Composio connected account (formerly "connection") */
|
|
38
|
+
export interface ComposioConnectedAccount {
|
|
39
|
+
/** User ID (formerly "entityId") */
|
|
40
|
+
userId: string;
|
|
41
|
+
/** Toolkit slug (formerly "appName") */
|
|
42
|
+
toolkitSlug: string;
|
|
43
|
+
connectedAccountId: string;
|
|
44
|
+
status: "active" | "inactive" | "expired" | "initiated";
|
|
45
|
+
}
|
|
46
|
+
/** Composio trigger */
|
|
47
|
+
export interface ComposioTrigger {
|
|
48
|
+
name: string;
|
|
49
|
+
toolkitSlug: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
config?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
/** @deprecated Use ComposioTool instead */
|
|
54
|
+
export type ComposioAction = ComposioTool;
|
|
55
|
+
/** @deprecated Use ComposioToolResult instead */
|
|
56
|
+
export type ComposioActionResult = ComposioToolResult;
|
|
57
|
+
/** @deprecated Use ComposioConnectedAccount instead */
|
|
58
|
+
export type ComposioConnection = ComposioConnectedAccount;
|
|
59
|
+
export interface GovernComposioConfig {
|
|
60
|
+
agentName: string;
|
|
61
|
+
owner: string;
|
|
62
|
+
/** User ID for Composio session (formerly "entityId") */
|
|
63
|
+
userId?: string;
|
|
64
|
+
/** Session ID for correlating meta tool calls */
|
|
65
|
+
sessionId?: string;
|
|
66
|
+
framework?: AgentFramework;
|
|
67
|
+
description?: string;
|
|
68
|
+
version?: string;
|
|
69
|
+
channels?: string[];
|
|
70
|
+
hasAuth?: boolean;
|
|
71
|
+
hasGuardrails?: boolean;
|
|
72
|
+
hasObservability?: boolean;
|
|
73
|
+
permissions?: Record<string, unknown>;
|
|
74
|
+
metadata?: Record<string, unknown>;
|
|
75
|
+
onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
|
|
76
|
+
onDecision?: (decision: EnforcementDecision, toolName: string) => void;
|
|
77
|
+
actionMapper?: (toolName: string) => PolicyAction;
|
|
78
|
+
sessionTokenTracker?: () => number;
|
|
79
|
+
/** Map toolkit slugs to policy actions */
|
|
80
|
+
toolkitActionMapper?: (toolkitSlug: string) => PolicyAction;
|
|
81
|
+
/** @deprecated Use toolkitActionMapper instead */
|
|
82
|
+
appActionMapper?: (appName: string) => PolicyAction;
|
|
83
|
+
}
|
|
84
|
+
export interface GovernedComposioResult {
|
|
85
|
+
/** Governed tools (formerly "actions") */
|
|
86
|
+
tools: ComposioTool[];
|
|
87
|
+
/** @deprecated Use tools instead */
|
|
88
|
+
actions: ComposioTool[];
|
|
89
|
+
agentId: string;
|
|
90
|
+
score: number;
|
|
91
|
+
level: number;
|
|
92
|
+
governance: GovernanceInstance;
|
|
93
|
+
enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
|
|
94
|
+
audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=composio-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-types.d.ts","sourceRoot":"","sources":["../../src/plugins/composio-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Composio governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors @composio/core v0.6+ shapes without requiring the SDK
|
|
5
|
+
* as a dependency. Structurally compatible at runtime.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: Composio SDK migrated from composio-core to @composio/core.
|
|
8
|
+
* "Actions" are now "Tools", "Apps" are now "Toolkits",
|
|
9
|
+
* "Integrations" are now "Auth Configs", "Connections" are now
|
|
10
|
+
* "Connected Accounts", "Entity ID" is now "User ID".
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=composio-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio-types.js","sourceRoot":"","sources":["../../src/plugins/composio-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk Composio Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into Composio tool execution.
|
|
5
|
+
* Wraps tools with before-action policy checks and audit logging.
|
|
6
|
+
*
|
|
7
|
+
* Updated for @composio/core v0.6+ (Actions→Tools, Apps→Toolkits).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
12
|
+
* import { governComposioTools } from 'governance-sdk/plugins/composio';
|
|
13
|
+
*
|
|
14
|
+
* const gov = createGovernance({
|
|
15
|
+
* rules: [blockTools(['GMAIL_SEND_EMAIL'])],
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const { tools } = await governComposioTools(gov, myTools, {
|
|
19
|
+
* agentName: 'composio-agent',
|
|
20
|
+
* owner: 'integration-team',
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { GovernanceInstance } from "../index";
|
|
25
|
+
import type { EnforcementDecision } from "../policy";
|
|
26
|
+
import type { ComposioTool, GovernComposioConfig, GovernedComposioResult } from "./composio-types.js";
|
|
27
|
+
export type { ComposioTool, ComposioToolResult, ComposioConnectedAccount, ComposioTrigger, ComposioAction, ComposioActionResult, ComposioConnection, GovernComposioConfig, GovernedComposioResult, } from "./composio-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
|
+
/** Govern Composio tools (v0.6+ API) */
|
|
34
|
+
export declare function governComposioTools(governance: GovernanceInstance, tools: ComposioTool[], config: GovernComposioConfig): Promise<GovernedComposioResult>;
|
|
35
|
+
/** @deprecated Use governComposioTools instead */
|
|
36
|
+
export declare const governComposioActions: typeof governComposioTools;
|
|
37
|
+
//# sourceMappingURL=composio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio.d.ts","sourceRoot":"","sources":["../../src/plugins/composio.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,YAAY,EACZ,oBAAoB,EAAE,sBAAsB,EAC7C,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAC3E,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EACxD,oBAAoB,EAAE,sBAAsB,GAC7C,MAAM,qBAAqB,CAAC;AAI7B,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;AAkDD,wCAAwC;AACxC,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,YAAY,EAAE,EACrB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAqCjC;AAED,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,4BAAsB,CAAC"}
|