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,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the OpenAI Agents SDK governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors @openai/agents-core v0.6.0 FunctionTool shape without
|
|
5
|
+
* requiring the SDK as a dependency. Structurally compatible at runtime.
|
|
6
|
+
*
|
|
7
|
+
* v0.6.0 (March 2026): tool search support GA, computer use GA.
|
|
8
|
+
* SDK uses `invoke`, `parameters`, `strict` (required in SDK,
|
|
9
|
+
* optional here for governance wrapper flexibility).
|
|
10
|
+
*/
|
|
11
|
+
import type { GovernanceInstance, AuditEvent } from "../index";
|
|
12
|
+
import type { EnforcementDecision, PolicyAction } from "../policy";
|
|
13
|
+
import type { AgentFramework } from "../types";
|
|
14
|
+
/** Run context passed to tool invocations */
|
|
15
|
+
export interface OpenAIRunContext {
|
|
16
|
+
usage?: Record<string, unknown>;
|
|
17
|
+
/** User-provided context (generic TContext in SDK) */
|
|
18
|
+
context?: unknown;
|
|
19
|
+
/** Structured input for the current agent tool run, when available */
|
|
20
|
+
toolInput?: unknown;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
/** Tool call details passed as third argument to invoke (SDK: ToolCallDetails) */
|
|
24
|
+
export interface OpenAIToolCallDetails {
|
|
25
|
+
/** The original function call item (protocol.FunctionCallItem in SDK) */
|
|
26
|
+
toolCall?: Record<string, unknown>;
|
|
27
|
+
/** Resume state for continuations */
|
|
28
|
+
resumeState?: string;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
/** Parent run configuration (Partial<RunConfig> in SDK) */
|
|
31
|
+
parentRunConfig?: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* OpenAI Agents SDK function tool shape (matches @openai/agents-core FunctionTool v0.6.0).
|
|
35
|
+
*
|
|
36
|
+
* In the SDK, `parameters`, `strict`, `needsApproval`, and `isEnabled` are required.
|
|
37
|
+
* They are optional here for governance wrapper flexibility — we wrap tools that
|
|
38
|
+
* already exist rather than constructing new ones.
|
|
39
|
+
*/
|
|
40
|
+
export interface OpenAIFunctionTool {
|
|
41
|
+
type: "function";
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
/** JSON Schema for tool parameters (required in SDK, optional here for wrapper flexibility) */
|
|
45
|
+
parameters?: Record<string, unknown>;
|
|
46
|
+
/** Whether schema validation is strict (required in SDK, optional here for wrapper flexibility) */
|
|
47
|
+
strict?: boolean;
|
|
48
|
+
/** Tool invocation handler — receives RunContext, JSON string args, optional details */
|
|
49
|
+
invoke?: (ctx: OpenAIRunContext, args: string, details?: OpenAIToolCallDetails) => Promise<string | unknown>;
|
|
50
|
+
/** Whether this tool is currently enabled (required in SDK as ToolEnabledFunction) */
|
|
51
|
+
isEnabled?: (ctx: OpenAIRunContext, agent?: OpenAIAgent) => boolean | Promise<boolean>;
|
|
52
|
+
/** Defer loading the tool definition */
|
|
53
|
+
deferLoading?: boolean;
|
|
54
|
+
/** Human-in-the-loop approval function (required in SDK as ToolApprovalFunction) */
|
|
55
|
+
needsApproval?: (ctx: OpenAIRunContext, input: unknown, callId?: string) => boolean | Promise<boolean>;
|
|
56
|
+
/** Per-tool timeout in milliseconds */
|
|
57
|
+
timeoutMs?: number;
|
|
58
|
+
/** Behavior on timeout */
|
|
59
|
+
timeoutBehavior?: "error_as_result" | "raise_exception";
|
|
60
|
+
/** Custom error message function for timeouts — receives ToolTimeoutError (Error subclass) */
|
|
61
|
+
timeoutErrorFunction?: (ctx: OpenAIRunContext, error: Error) => string | Promise<string>;
|
|
62
|
+
/** SDK-native input guardrails */
|
|
63
|
+
inputGuardrails?: unknown[];
|
|
64
|
+
/** SDK-native output guardrails */
|
|
65
|
+
outputGuardrails?: unknown[];
|
|
66
|
+
/** @deprecated Governance wrapper legacy — does not exist in SDK. Use invoke instead. */
|
|
67
|
+
execute?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
68
|
+
}
|
|
69
|
+
/** OpenAI Agents SDK agent shape (matches @openai/agents Agent) */
|
|
70
|
+
export interface OpenAIAgent {
|
|
71
|
+
name: string;
|
|
72
|
+
instructions?: string | ((runContext: OpenAIRunContext, agent: OpenAIAgent) => string | Promise<string>);
|
|
73
|
+
tools?: OpenAIFunctionTool[];
|
|
74
|
+
/** Model name string or Model instance */
|
|
75
|
+
model?: string | unknown;
|
|
76
|
+
handoffs?: unknown[];
|
|
77
|
+
/** Model configuration settings */
|
|
78
|
+
modelSettings?: Record<string, unknown>;
|
|
79
|
+
/** Output type schema */
|
|
80
|
+
outputType?: Record<string, unknown>;
|
|
81
|
+
/** Description for handoff */
|
|
82
|
+
handoffDescription?: string;
|
|
83
|
+
/** Responses API prompt template */
|
|
84
|
+
prompt?: unknown;
|
|
85
|
+
/** MCP servers for this agent */
|
|
86
|
+
mcpServers?: unknown[];
|
|
87
|
+
/** Agent-level input guardrails */
|
|
88
|
+
inputGuardrails?: unknown[];
|
|
89
|
+
/** Agent-level output guardrails */
|
|
90
|
+
outputGuardrails?: unknown[];
|
|
91
|
+
/** Controls behavior after tool calls */
|
|
92
|
+
toolUseBehavior?: "run_llm_again" | "stop_on_first_tool" | {
|
|
93
|
+
stopAtToolNames: string[];
|
|
94
|
+
} | ((context: unknown, toolResults: unknown[]) => unknown | Promise<unknown>);
|
|
95
|
+
/** Whether to reset tool choice after each turn */
|
|
96
|
+
resetToolChoice?: boolean;
|
|
97
|
+
}
|
|
98
|
+
export interface GovernAgentConfig {
|
|
99
|
+
agentName: string;
|
|
100
|
+
owner: string;
|
|
101
|
+
framework?: AgentFramework;
|
|
102
|
+
description?: string;
|
|
103
|
+
version?: string;
|
|
104
|
+
channels?: string[];
|
|
105
|
+
hasAuth?: boolean;
|
|
106
|
+
hasGuardrails?: boolean;
|
|
107
|
+
hasObservability?: boolean;
|
|
108
|
+
permissions?: Record<string, unknown>;
|
|
109
|
+
metadata?: Record<string, unknown>;
|
|
110
|
+
onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
|
|
111
|
+
onDecision?: (decision: EnforcementDecision, toolName: string) => void;
|
|
112
|
+
actionMapper?: (toolName: string) => PolicyAction;
|
|
113
|
+
sessionTokenTracker?: () => number;
|
|
114
|
+
}
|
|
115
|
+
export interface GovernedAgentResult<T extends OpenAIAgent> {
|
|
116
|
+
agent: T;
|
|
117
|
+
agentId: string;
|
|
118
|
+
score: number;
|
|
119
|
+
level: number;
|
|
120
|
+
governance: GovernanceInstance;
|
|
121
|
+
enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
|
|
122
|
+
audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
|
|
123
|
+
}
|
|
124
|
+
export interface GovernedToolsResult {
|
|
125
|
+
tools: OpenAIFunctionTool[];
|
|
126
|
+
agentId: string;
|
|
127
|
+
score: number;
|
|
128
|
+
level: number;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=openai-agents-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents-types.d.ts","sourceRoot":"","sources":["../../src/plugins/openai-agents-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the OpenAI Agents SDK governance integration.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors @openai/agents-core v0.6.0 FunctionTool shape without
|
|
5
|
+
* requiring the SDK as a dependency. Structurally compatible at runtime.
|
|
6
|
+
*
|
|
7
|
+
* v0.6.0 (March 2026): tool search support GA, computer use GA.
|
|
8
|
+
* SDK uses `invoke`, `parameters`, `strict` (required in SDK,
|
|
9
|
+
* optional here for governance wrapper flexibility).
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=openai-agents-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents-types.js","sourceRoot":"","sources":["../../src/plugins/openai-agents-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk OpenAI Agents SDK Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into OpenAI Agents SDK tool execution.
|
|
5
|
+
* Wraps tools with before-action policy checks and audit logging.
|
|
6
|
+
* Types are in openai-agents-types.ts.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
11
|
+
* import { governAgent } from 'governance-sdk/plugins/openai-agents';
|
|
12
|
+
*
|
|
13
|
+
* const gov = createGovernance({
|
|
14
|
+
* rules: [blockTools(['shell_exec', 'database_drop'])],
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const governed = await governAgent(gov, {
|
|
18
|
+
* name: 'research-agent',
|
|
19
|
+
* tools: [webSearchTool, fileWriteTool],
|
|
20
|
+
* }, {
|
|
21
|
+
* agentName: 'research-agent',
|
|
22
|
+
* owner: 'research-team',
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { GovernanceInstance } from "../index";
|
|
27
|
+
import type { EnforcementDecision } from "../policy";
|
|
28
|
+
import type { OpenAIFunctionTool, OpenAIAgent, GovernAgentConfig, GovernedAgentResult, GovernedToolsResult } from "./openai-agents-types.js";
|
|
29
|
+
export type { OpenAIFunctionTool, OpenAIAgent, OpenAIRunContext, OpenAIToolCallDetails, GovernAgentConfig, GovernedAgentResult, GovernedToolsResult, } from "./openai-agents-types.js";
|
|
30
|
+
export declare class GovernanceBlockedError extends Error {
|
|
31
|
+
readonly decision: EnforcementDecision;
|
|
32
|
+
readonly toolName: string;
|
|
33
|
+
constructor(decision: EnforcementDecision, toolName: string);
|
|
34
|
+
}
|
|
35
|
+
export declare function governAgent<T extends OpenAIAgent>(governance: GovernanceInstance, agent: T, config: GovernAgentConfig): Promise<GovernedAgentResult<T>>;
|
|
36
|
+
export declare function governTools(governance: GovernanceInstance, tools: OpenAIFunctionTool[], config: GovernAgentConfig): Promise<GovernedToolsResult>;
|
|
37
|
+
//# sourceMappingURL=openai-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents.d.ts","sourceRoot":"","sources":["../../src/plugins/openai-agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,EACxE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,GAC5D,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;AA6FD,wBAAsB,WAAW,CAAC,CAAC,SAAS,WAAW,EACrD,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAmBjC;AAID,wBAAsB,WAAW,CAC/B,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,kBAAkB,EAAE,EAC3B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAc9B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk OpenAI Agents SDK Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into OpenAI Agents SDK tool execution.
|
|
5
|
+
* Wraps tools with before-action policy checks and audit logging.
|
|
6
|
+
* Types are in openai-agents-types.ts.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
11
|
+
* import { governAgent } from 'governance-sdk/plugins/openai-agents';
|
|
12
|
+
*
|
|
13
|
+
* const gov = createGovernance({
|
|
14
|
+
* rules: [blockTools(['shell_exec', 'database_drop'])],
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const governed = await governAgent(gov, {
|
|
18
|
+
* name: 'research-agent',
|
|
19
|
+
* tools: [webSearchTool, fileWriteTool],
|
|
20
|
+
* }, {
|
|
21
|
+
* agentName: 'research-agent',
|
|
22
|
+
* owner: 'research-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, description) {
|
|
39
|
+
return {
|
|
40
|
+
name: config.agentName,
|
|
41
|
+
framework: config.framework ?? "openai",
|
|
42
|
+
owner: config.owner,
|
|
43
|
+
description: config.description ?? 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: config.permissions,
|
|
52
|
+
metadata: config.metadata,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function createEnforcer(governance, agentId, config) {
|
|
56
|
+
return async (toolName, input) => {
|
|
57
|
+
const action = config.actionMapper?.(toolName) ?? "tool_call";
|
|
58
|
+
const decision = await governance.enforce({
|
|
59
|
+
agentId, agentName: config.agentName, agentLevel: 0,
|
|
60
|
+
action, tool: toolName, input,
|
|
61
|
+
sessionTokensUsed: config.sessionTokenTracker?.(),
|
|
62
|
+
});
|
|
63
|
+
config.onDecision?.(decision, toolName);
|
|
64
|
+
if (decision.blocked)
|
|
65
|
+
config.onBlocked?.(decision, toolName);
|
|
66
|
+
return decision;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function createAuditor(governance, agentId) {
|
|
70
|
+
return (toolName, outcome, detail) => governance.audit.log({
|
|
71
|
+
agentId, eventType: "tool_call", outcome,
|
|
72
|
+
severity: outcome === "failure" ? "warning" : "info",
|
|
73
|
+
detail: { tool: toolName, ...detail },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function wrapTool(tool, enforce, audit) {
|
|
77
|
+
const hasHandler = tool.invoke ?? tool.execute;
|
|
78
|
+
if (!hasHandler)
|
|
79
|
+
return tool;
|
|
80
|
+
const wrapped = { ...tool };
|
|
81
|
+
// Wrap invoke (SDK canonical method — args is JSON string, optional details)
|
|
82
|
+
if (tool.invoke) {
|
|
83
|
+
wrapped.invoke = async (ctx, args, details) => {
|
|
84
|
+
const parsed = JSON.parse(args);
|
|
85
|
+
const decision = await enforce(tool.name, parsed);
|
|
86
|
+
if (decision.blocked)
|
|
87
|
+
throw new GovernanceBlockedError(decision, tool.name);
|
|
88
|
+
try {
|
|
89
|
+
const output = await tool.invoke(ctx, args, details);
|
|
90
|
+
await audit(tool.name, "success");
|
|
91
|
+
return output;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
await audit(tool.name, "failure", { error: error instanceof Error ? error.message : String(error) });
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Wrap legacy execute (governance wrapper convenience — does not exist in SDK)
|
|
100
|
+
if (tool.execute) {
|
|
101
|
+
wrapped.execute = async (args) => {
|
|
102
|
+
const decision = await enforce(tool.name, args);
|
|
103
|
+
if (decision.blocked)
|
|
104
|
+
throw new GovernanceBlockedError(decision, tool.name);
|
|
105
|
+
try {
|
|
106
|
+
const output = await tool.execute(args);
|
|
107
|
+
await audit(tool.name, "success");
|
|
108
|
+
return output;
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
await audit(tool.name, "failure", { error: error instanceof Error ? error.message : String(error) });
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return wrapped;
|
|
117
|
+
}
|
|
118
|
+
// ─── Govern Agent ───────────────────────────────────────────
|
|
119
|
+
export async function governAgent(governance, agent, config) {
|
|
120
|
+
const toolNames = (agent.tools ?? []).filter((t) => t.type === "function").map((t) => t.name);
|
|
121
|
+
const desc = typeof agent.instructions === "string" ? agent.instructions : undefined;
|
|
122
|
+
const reg = buildRegistration(config, toolNames, desc);
|
|
123
|
+
const result = await governance.register(reg);
|
|
124
|
+
const enforce = createEnforcer(governance, result.id, config);
|
|
125
|
+
const audit = createAuditor(governance, result.id);
|
|
126
|
+
const wrappedTools = (agent.tools ?? []).map((tool) => tool.type === "function" ? wrapTool(tool, enforce, audit) : tool);
|
|
127
|
+
return {
|
|
128
|
+
agent: { ...agent, tools: wrappedTools },
|
|
129
|
+
agentId: result.id,
|
|
130
|
+
score: result.score,
|
|
131
|
+
level: result.level,
|
|
132
|
+
governance,
|
|
133
|
+
enforce,
|
|
134
|
+
audit,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// ─── Govern Tools Only ──────────────────────────────────────
|
|
138
|
+
export async function governTools(governance, tools, config) {
|
|
139
|
+
const toolNames = tools.map((t) => t.name);
|
|
140
|
+
const reg = buildRegistration(config, toolNames);
|
|
141
|
+
const result = await governance.register(reg);
|
|
142
|
+
const enforce = createEnforcer(governance, result.id, config);
|
|
143
|
+
const audit = createAuditor(governance, result.id);
|
|
144
|
+
return {
|
|
145
|
+
tools: tools.map((tool) => wrapTool(tool, enforce, audit)),
|
|
146
|
+
agentId: result.id,
|
|
147
|
+
score: result.score,
|
|
148
|
+
level: result.level,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=openai-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-agents.js","sourceRoot":"","sources":["../../src/plugins/openai-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Microsoft Semantic Kernel governance integration.
|
|
3
|
+
*
|
|
4
|
+
* NOTE: As of March 2026, there is NO official @microsoft/semantic-kernel
|
|
5
|
+
* npm package. A community package @semantic-kernel-typescript/core exists.
|
|
6
|
+
* These types mirror the C#/Python SDK shapes (KernelFunction, KernelPlugin)
|
|
7
|
+
* for TypeScript governance wrapping purposes.
|
|
8
|
+
*
|
|
9
|
+
* Microsoft is merging AutoGen + Semantic Kernel into "Microsoft
|
|
10
|
+
* Agent Framework" — watch for a unified TS SDK.
|
|
11
|
+
*/
|
|
12
|
+
import type { GovernanceInstance, AuditEvent } from "../index";
|
|
13
|
+
import type { EnforcementDecision, PolicyAction } from "../policy";
|
|
14
|
+
import type { AgentFramework } from "../types";
|
|
15
|
+
/** Semantic Kernel function shape */
|
|
16
|
+
export interface KernelFunction {
|
|
17
|
+
name: string;
|
|
18
|
+
pluginName?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
parameters?: KernelParameter[];
|
|
21
|
+
/** Return parameter metadata (describes function output) */
|
|
22
|
+
returnParameter?: {
|
|
23
|
+
description?: string;
|
|
24
|
+
type?: string;
|
|
25
|
+
schema?: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
invoke: (args: Record<string, unknown>) => Promise<unknown>;
|
|
28
|
+
}
|
|
29
|
+
/** Semantic Kernel function parameter */
|
|
30
|
+
export interface KernelParameter {
|
|
31
|
+
name: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
type?: string;
|
|
34
|
+
required?: boolean;
|
|
35
|
+
defaultValue?: unknown;
|
|
36
|
+
/** JSON Schema for parameter validation (schema_data in Python SDK) */
|
|
37
|
+
schema?: Record<string, unknown>;
|
|
38
|
+
/** Whether to include in function choices (defaults to true in Python SDK) */
|
|
39
|
+
includeInFunctionChoices?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/** Semantic Kernel plugin shape */
|
|
42
|
+
export interface KernelPlugin {
|
|
43
|
+
name: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
/** Functions keyed by name (dict in Python SDK, not array) */
|
|
46
|
+
functions: Record<string, KernelFunction>;
|
|
47
|
+
}
|
|
48
|
+
/** Semantic Kernel function filter context */
|
|
49
|
+
export interface FunctionFilterContext {
|
|
50
|
+
function: KernelFunction;
|
|
51
|
+
arguments: Record<string, unknown>;
|
|
52
|
+
result?: unknown;
|
|
53
|
+
/** Reference to the Kernel instance (required in Python SDK FilterContextBase) */
|
|
54
|
+
kernel: unknown;
|
|
55
|
+
/** Whether the invocation is streaming (defaults to false in Python SDK) */
|
|
56
|
+
isStreaming?: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Semantic Kernel function invocation filter.
|
|
60
|
+
*
|
|
61
|
+
* Modern SDK uses single-method next-delegate pattern:
|
|
62
|
+
* `onFunctionInvocation(context, next)` where calling `next(context)`
|
|
63
|
+
* proceeds with execution.
|
|
64
|
+
*/
|
|
65
|
+
export interface FunctionFilter {
|
|
66
|
+
onFunctionInvocation: (context: FunctionFilterContext, next: (ctx: FunctionFilterContext) => Promise<void>) => Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
export interface GovernSKConfig {
|
|
69
|
+
agentName: string;
|
|
70
|
+
owner: string;
|
|
71
|
+
framework?: AgentFramework;
|
|
72
|
+
description?: string;
|
|
73
|
+
version?: string;
|
|
74
|
+
channels?: string[];
|
|
75
|
+
hasAuth?: boolean;
|
|
76
|
+
hasGuardrails?: boolean;
|
|
77
|
+
hasObservability?: boolean;
|
|
78
|
+
permissions?: Record<string, unknown>;
|
|
79
|
+
metadata?: Record<string, unknown>;
|
|
80
|
+
onBlocked?: (decision: EnforcementDecision, toolName: string) => void;
|
|
81
|
+
onDecision?: (decision: EnforcementDecision, toolName: string) => void;
|
|
82
|
+
actionMapper?: (toolName: string) => PolicyAction;
|
|
83
|
+
sessionTokenTracker?: () => number;
|
|
84
|
+
}
|
|
85
|
+
export interface GovernedSKResult {
|
|
86
|
+
/** Governed functions with policy enforcement */
|
|
87
|
+
functions: KernelFunction[];
|
|
88
|
+
/** Function filter for Kernel-level integration */
|
|
89
|
+
filter: FunctionFilter;
|
|
90
|
+
agentId: string;
|
|
91
|
+
score: number;
|
|
92
|
+
level: number;
|
|
93
|
+
governance: GovernanceInstance;
|
|
94
|
+
enforce: (toolName: string, input?: Record<string, unknown>) => Promise<EnforcementDecision>;
|
|
95
|
+
audit: (toolName: string, outcome: "success" | "failure", detail?: Record<string, unknown>) => Promise<AuditEvent>;
|
|
96
|
+
}
|
|
97
|
+
export interface GovernedSKPluginResult {
|
|
98
|
+
plugin: KernelPlugin;
|
|
99
|
+
agentId: string;
|
|
100
|
+
score: number;
|
|
101
|
+
level: number;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=semantic-kernel-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-kernel-types.d.ts","sourceRoot":"","sources":["../../src/plugins/semantic-kernel-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the Microsoft Semantic Kernel governance integration.
|
|
3
|
+
*
|
|
4
|
+
* NOTE: As of March 2026, there is NO official @microsoft/semantic-kernel
|
|
5
|
+
* npm package. A community package @semantic-kernel-typescript/core exists.
|
|
6
|
+
* These types mirror the C#/Python SDK shapes (KernelFunction, KernelPlugin)
|
|
7
|
+
* for TypeScript governance wrapping purposes.
|
|
8
|
+
*
|
|
9
|
+
* Microsoft is merging AutoGen + Semantic Kernel into "Microsoft
|
|
10
|
+
* Agent Framework" — watch for a unified TS SDK.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=semantic-kernel-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-kernel-types.js","sourceRoot":"","sources":["../../src/plugins/semantic-kernel-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* governance-sdk Microsoft Semantic Kernel Plugin
|
|
3
|
+
*
|
|
4
|
+
* Integrates governance enforcement into Semantic Kernel function execution.
|
|
5
|
+
* Wraps kernel functions and provides a FunctionFilter for kernel-level integration.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createGovernance, blockTools } from 'governance-sdk';
|
|
10
|
+
* import { governSKFunctions } from 'governance-sdk/plugins/semantic-kernel';
|
|
11
|
+
*
|
|
12
|
+
* const gov = createGovernance({
|
|
13
|
+
* rules: [blockTools(['delete_file', 'send_payment'])],
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const { functions, filter } = await governSKFunctions(gov, myFunctions, {
|
|
17
|
+
* agentName: 'sk-agent',
|
|
18
|
+
* owner: 'ai-team',
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Option 1: Use governed functions directly
|
|
22
|
+
* // Option 2: Add filter to kernel for automatic governance
|
|
23
|
+
* kernel.addFunctionFilter(filter);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { GovernanceInstance } from "../index";
|
|
27
|
+
import type { EnforcementDecision } from "../policy";
|
|
28
|
+
import type { KernelFunction, KernelPlugin, GovernSKConfig, GovernedSKResult, GovernedSKPluginResult } from "./semantic-kernel-types.js";
|
|
29
|
+
export type { KernelFunction, KernelParameter, KernelPlugin, FunctionFilter, FunctionFilterContext, GovernSKConfig, GovernedSKResult, GovernedSKPluginResult, } from "./semantic-kernel-types.js";
|
|
30
|
+
export declare class GovernanceBlockedError extends Error {
|
|
31
|
+
readonly decision: EnforcementDecision;
|
|
32
|
+
readonly toolName: string;
|
|
33
|
+
constructor(decision: EnforcementDecision, toolName: string);
|
|
34
|
+
}
|
|
35
|
+
export declare function governSKFunctions(governance: GovernanceInstance, functions: KernelFunction[], config: GovernSKConfig): Promise<GovernedSKResult>;
|
|
36
|
+
export declare function governSKPlugin(governance: GovernanceInstance, plugin: KernelPlugin, config: GovernSKConfig): Promise<GovernedSKPluginResult>;
|
|
37
|
+
//# sourceMappingURL=semantic-kernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-kernel.d.ts","sourceRoot":"","sources":["../../src/plugins/semantic-kernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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,YAAY,EAC5B,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EACzD,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EACV,cAAc,EAAE,eAAe,EAAE,YAAY,EAC7C,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,GACzD,MAAM,4BAA4B,CAAC;AAIpC,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;AA0ED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,cAAc,EAAE,EAC3B,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAID,wBAAsB,cAAc,CAClC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAuBjC"}
|