Skip to content
docsv0.2.0

PolicyGate

Policy gate for tool authorization. Checks scopes, channel policies, and tool permissions. Supports dynamic rules via PolicyRuleProviderInterface (e.g. the host's Doctrine-backed provider).

PolicyGate::setRuleProvider()

public function setRuleProvider(Milpa\ToolRuntime\Contracts\PolicyRuleProviderInterface $provider): void

Set the policy rule provider for database-driven rules.

Parameters

Parameters of setRuleProvider()
NameTypeDescription
$providerMilpa\ToolRuntime\Contracts\PolicyRuleProviderInterface

PolicyGate::getRuleProvider()

public function getRuleProvider(): ?Milpa\ToolRuntime\Contracts\PolicyRuleProviderInterface

Get the current rule provider (if set).

PolicyGate::authorize()

public function authorize(Milpa\ToolRuntime\Contracts\ToolContext $ctx, Milpa\ToolRuntime\ToolDefinition $tool): Milpa\ToolRuntime\Policy\AuthorizationResult

Authorize a tool call.

Parameters

Parameters of authorize()
NameTypeDescription
$ctxToolContextThe execution context
$toolToolDefinitionThe tool being called

PolicyGate::requiresConfirmation()

public function requiresConfirmation(Milpa\ToolRuntime\Contracts\ToolContext $ctx, Milpa\ToolRuntime\ToolDefinition $tool): bool

Check if confirmation is required for this context + tool.

Parameters

Parameters of requiresConfirmation()
NameTypeDescription
$ctxMilpa\ToolRuntime\Contracts\ToolContext
$toolMilpa\ToolRuntime\ToolDefinition

PolicyGate::setChannelPolicy()

public function setChannelPolicy(string $channel, array $policy): void

Set custom channel policy.

Parameters

Parameters of setChannelPolicy()
NameTypeDescription
$channelstring
$policyarray<string, mixed>