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): voidSet the policy rule provider for database-driven rules.
Parameters
| Name | Type | Description |
|---|---|---|
| $provider | Milpa\ToolRuntime\Contracts\PolicyRuleProviderInterface |
PolicyGate::getRuleProvider()
public function getRuleProvider(): ?Milpa\ToolRuntime\Contracts\PolicyRuleProviderInterfaceGet the current rule provider (if set).
PolicyGate::authorize()
public function authorize(Milpa\ToolRuntime\Contracts\ToolContext $ctx, Milpa\ToolRuntime\ToolDefinition $tool): Milpa\ToolRuntime\Policy\AuthorizationResultAuthorize a tool call.
Parameters
| Name | Type | Description |
|---|---|---|
| $ctx | ToolContext | The execution context |
| $tool | ToolDefinition | The tool being called |
PolicyGate::requiresConfirmation()
public function requiresConfirmation(Milpa\ToolRuntime\Contracts\ToolContext $ctx, Milpa\ToolRuntime\ToolDefinition $tool): boolCheck if confirmation is required for this context + tool.
Parameters
| Name | Type | Description |
|---|---|---|
| $ctx | Milpa\ToolRuntime\Contracts\ToolContext | |
| $tool | Milpa\ToolRuntime\ToolDefinition |
PolicyGate::setChannelPolicy()
public function setChannelPolicy(string $channel, array $policy): voidSet custom channel policy.
Parameters
| Name | Type | Description |
|---|---|---|
| $channel | string | |
| $policy | array<string, mixed> |