| 开发者 | haktansuren |
|---|---|
| 更新时间 | 2026年8月21日 12:15 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/wp-content/plugins/handl-ai-connector-access-control/Connector Approvals in the WordPress AI plugin controls which plugins and themes can use configured AI connector credentials. HandL AI Connector Access Control governs AI Client prompts through wp_ai_client_prevent_prompt, adding per-plugin allow/deny rules, a capability-family matrix, tool-arming denial, shadow-AI detection for direct connections outside the AI Client, and estimated spend / denial alerting. Both can run together because they govern different layers. See Dashboard → “Beyond Connector Approvals”.
Only AI calls made through the WordPress AI Client APIs that pass through wp_ai_client_prevent_prompt. The shadow-AI detector can observe direct HTTP to known AI hosts (when logging or Learn mode is on) and, if you enable Block direct calls to known AI providers, can block those requests with optional per-plugin exceptions. AI Client traffic is never treated as shadow traffic.
A plugin (or other PHP code) issued a WordPress HTTP request to a known AI provider host without going through the AI Client path this plugin gates. With blocking off, those rows are labeled observe. With Block direct calls to known AI providers on, they may be denied or allowed as an exception. Plugin Allow/Deny rules still apply only to AI Client traffic.
No. It is best-effort and may be unknown or ambiguous for some execution paths (cron, REST bootstraps, shared libraries, MU plugins). Experimental model force uses the same attribution: a pin follows the detected caller, not a guarantee of which product “owns” the spend.
No. It pins the route for calls we attribute to that plugin’s nearest stack frame. Unattributed calls are unforced by default (configurable). Misattribution can apply another plugin’s pin without failing closed — existence of a resolved plugin is not proof it is the right one.
Yes. With WP-CLI available and this plugin active:
wp aicac rule list — table of every installed plugin (active and inactive) with family-level allow/deny/inherit state. Use --format=json for machine-readable output.
wp aicac rule set <plugin-basename> <family> <allow|deny|inherit> — set one capability-family cell (text, image, speech, tts, video). Writes through the same sanitized policy path as the Rules tab. Plugin basename must match an installed plugin file (e.g. acme-plugin/acme-plugin.php), including inactive plugins.
wp handl-aicac policy export --redacted replaces alert email and webhook URLs with present/absent placeholders, strips rule notes, and omits the site URL. Regular export is unchanged. Import of a redacted file keeps live secrets.wp handl-aicac policy list and wp handl-aicac log summary (table or JSON) for scripted audits without opening wp-admin.wp_ai_client_prevent_prompt).channel=direct_http, host, path-only (no query), shadow provider id, decision observe — no body, no Authorization headers.count = HTTP calls (not page loads) via in-request tally + shutdown flush.counts).functionDeclarations — WordPress abilities and custom tools) at prevent time.denial_reason and matched_tools on every denial (including non-tool denials that also armed a blocked tool).armed_tools from model config without reflection.denied_tools (migrates legacy denied_abilities on read).is_supported_for_* and matching generate_* / convert_text_to_speech* map to the same family rule.is_supported / generate_result resolve family via core capability inference (no silent unknown bypass).wp_ai_client_after_generate_result when logging is enabled.handl-ai-connector-access-control). Prefixed options, constants, menus, and forms per WordPress.org guidelines. Migrates settings from previous plugin slugs when present.