mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
WordPress has no AI surface in core, so the requirement applies to whichever connector the role pins rather than leaving the choice to a site administrator. The pinned connector is ai-engine, whose `custom` engine type takes an OpenAI-compatible base URL and an API key per environment. AI Engine keeps every setting in a single mwai_options array and its REST route replaces that array wholesale, so the deploy merges instead of assigning: ai_engine_configure.php filters ai_envs by id, re-appends the managed environment, and leaves every other environment and API key untouched. A straight write would delete configuration this deploy never owned. Both scripts are fed to `wp eval-file -` over stdin with their input passed as an environment variable. The first attempt used `wp eval` with the code inline, which cannot survive the quoting: a YAML folded scalar hands Jinja a literal backslash sequence and PHP fails to parse. That was reproduced in the container, along with the detail that `wp eval-file -` requires the opening <?php tag, before the approach was changed. Passing the payload as base64 in an env var means no shell quoting touches either the code or the virtual key. ai_engine_endpoint.php reads back the endpoint AI Engine actually stored for the managed environment, so the assertion compares the plugin's own state rather than the payload the deploy just sent. Not verified: the configure script has never run against a live AI Engine install, so the merge is reasoned from the option shape rather than observed, and addons/ai-engine.spec.js has executed zero times because the addon bridge gate resolved svc-ai-litellm against the Playwright role list and skipped it. ai-engine is third-party, so a change to its option schema would leave this writing a shape the plugin no longer reads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 lines
148 B
YAML
5 lines
148 B
YAML
---
|
|
- name: "🖥️ WP AI Engine: stack-host container ops"
|
|
ansible.builtin.include_tasks: ai-engine-stack-host.yml
|
|
when: IS_STACK_HOST | bool
|