--- xworkmate_bridge_service_name: xworkmate-bridge xworkmate_bridge_service_user: "{{ ansible_env.USER | default('ubuntu') }}" xworkmate_bridge_service_group: "{{ 'staff' if ansible_os_family == 'Darwin' else (ansible_env.USER | default('ubuntu')) }}" xworkmate_bridge_service_home: "{{ ansible_env.HOME | default('/home/' + xworkmate_bridge_service_user) }}" ai_workspace_auth_token: "{{ lookup('ansible.builtin.env', 'AI_WORKSPACE_AUTH_TOKEN') | default('', true) }}" xworkmate_bridge_auth_token: "{{ lookup('ansible.builtin.env', 'BRIDGE_AUTH_TOKEN') | default(lookup('ansible.builtin.env', 'XWORKMATE_BRIDGE_AUTH_TOKEN') | default(ai_workspace_auth_token, true), true) }}" xworkmate_bridge_review_auth_token: "{{ lookup('ansible.builtin.env', 'BRIDGE_REVIEW_AUTH_TOKEN') | default('', true) }}" xworkmate_bridge_listen_host: 127.0.0.1 xworkmate_bridge_listen_port: 8787 xworkmate_bridge_listen_addr: "{{ xworkmate_bridge_listen_host }}:{{ xworkmate_bridge_listen_port }}" xworkmate_bridge_base_dir: "{{ (ansible_env.HOME ~ '/Library/Application Support/cloud-neutral/xworkmate-bridge') if ansible_os_family == 'Darwin' else '/opt/cloud-neutral/xworkmate-bridge' }}" xworkmate_bridge_config_file: "{{ xworkmate_bridge_base_dir }}/config.yaml" xworkmate_bridge_binary_path: /usr/local/bin/xworkmate-go-core xworkmate_bridge_systemd_unit_path: "/etc/systemd/system/{{ xworkmate_bridge_service_name }}.service" xworkmate_bridge_user_systemd_unit_path: "{{ xworkmate_bridge_service_home }}/.config/systemd/user/{{ xworkmate_bridge_service_name }}.service" xworkmate_bridge_deprecated_container_name: xworkmate-bridge-managed xworkmate_bridge_deprecated_compose_file: "{{ xworkmate_bridge_base_dir }}/docker-compose.yml" xworkmate_bridge_obsolete_systemd_dropin_paths: - "/etc/systemd/system/{{ xworkmate_bridge_service_name }}.service.d/20-distributed-forward.conf" xworkmate_bridge_service_environment: AI_WORKSPACE_AUTH_TOKEN: "{{ ai_workspace_auth_token }}" BRIDGE_AUTH_TOKEN: "{{ xworkmate_bridge_effective_auth_token | default(xworkmate_bridge_auth_token) }}" BRIDGE_REVIEW_AUTH_TOKEN: "{{ xworkmate_bridge_effective_review_auth_token | default(xworkmate_bridge_review_auth_token) }}" BRIDGE_CONFIG_PATH: "{{ xworkmate_bridge_config_file }}" IMAGE: "{{ xworkmate_bridge_effective_runtime_image_ref | default(xworkmate_bridge_runtime_image_ref) }}" XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_MAX_ACTIVE: "{{ xworkmate_bridge_openclaw_gateway_max_active }}" XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_MAX_QUEUED: "{{ xworkmate_bridge_openclaw_gateway_max_queued }}" XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_QUEUE_TIMEOUT: "{{ xworkmate_bridge_openclaw_gateway_queue_timeout }}" xworkmate_bridge_openclaw_gateway_max_active: 2 xworkmate_bridge_openclaw_gateway_max_queued: 20 xworkmate_bridge_openclaw_gateway_queue_timeout: 10m xworkmate_bridge_distributed_topology: "" xworkmate_bridge_distributed_local_node_id: "" xworkmate_bridge_distributed_task_forward_peer_id: "" xworkmate_bridge_distributed_task_forward_endpoint: "" xworkmate_bridge_distributed_task_forward_token: "" xworkmate_bridge_distributed_nodes: [] xworkmate_bridge_required_services: - acp-codex.service - acp-opencode.service - acp-gemini.service - acp-hermes.service # ACP Deployment Flags deploy_acp_codex: true deploy_acp_opencode: true deploy_acp_gemini: true deploy_acp_hermes: true # Unified domain settings ai_workspace_public_domain: "{{ lookup('ansible.builtin.env', 'SERVER_DOMAIN') | default(lookup('ansible.builtin.env', 'ACP_BRIDGE_DOMAIN') | default(lookup('ansible.builtin.env', 'BRIDGE_DOMAIN') | default('xworkmate-bridge.svc.plus', true), true), true) }}" xworkmate_bridge_domain: "{{ lookup('ansible.builtin.env', 'XWORKMATE_BRIDGE_DOMAIN') | default(ai_workspace_public_domain, true) }}" # When false, disables public Caddy access to XWorkmate Bridge. xworkmate_bridge_public_access: true xworkmate_bridge_public_base_url: "https://{{ xworkmate_bridge_domain }}" xworkmate_bridge_service_domain: "{{ xworkmate_bridge_domain }}" xworkmate_bridge_service_public_base_url: "https://{{ xworkmate_bridge_domain }}" xworkmate_bridge_validation_base_url: "{{ xworkmate_bridge_service_public_base_url }}" xworkmate_bridge_validation_validate_certs: true xworkmate_bridge_validation_origin: https://xworkmate.svc.plus # Caddy configuration paths xworkmate_bridge_caddyfile_path: "{{ caddy_config_dir }}/Caddyfile" xworkmate_bridge_caddy_conf_dir: "{{ caddy_config_dir }}/conf.d" xworkmate_bridge_service_caddy_fragment_path: "{{ caddy_config_dir }}/conf.d/xworkmate-bridge.caddy" # Upstream host/port settings for summary and validation xworkmate_bridge_codex_upstream_host: 127.0.0.1 xworkmate_bridge_codex_upstream_port: 9001 xworkmate_bridge_opencode_upstream_host: 127.0.0.1 xworkmate_bridge_opencode_upstream_port: 38992 xworkmate_bridge_gemini_upstream_host: 127.0.0.1 xworkmate_bridge_gemini_upstream_port: 8791 xworkmate_bridge_hermes_upstream_host: 127.0.0.1 xworkmate_bridge_hermes_upstream_port: 3920 xworkmate_bridge_openclaw_upstream_host: 127.0.0.1 xworkmate_bridge_openclaw_upstream_port: 18789 xworkmate_bridge_required_listeners: - host: "{{ xworkmate_bridge_listen_host }}" port: "{{ xworkmate_bridge_listen_port }}" name: bridge - host: "{{ xworkmate_bridge_codex_upstream_host }}" port: "{{ xworkmate_bridge_codex_upstream_port }}" name: codex - host: "{{ xworkmate_bridge_opencode_upstream_host }}" port: "{{ xworkmate_bridge_opencode_upstream_port }}" name: opencode - host: "{{ xworkmate_bridge_gemini_upstream_host }}" port: "{{ xworkmate_bridge_gemini_upstream_port }}" name: gemini - host: "{{ xworkmate_bridge_hermes_upstream_host }}" port: "{{ xworkmate_bridge_hermes_upstream_port }}" name: hermes - host: "{{ xworkmate_bridge_openclaw_upstream_host }}" port: "{{ xworkmate_bridge_openclaw_upstream_port }}" name: openclaw # Internal RPC URLs (Source of Truth for the bridge service) xworkmate_bridge_openclaw_url: "ws://{{ xworkmate_bridge_openclaw_upstream_host }}:{{ xworkmate_bridge_openclaw_upstream_port }}/" xworkmate_bridge_codex_rpc_url: "ws://{{ xworkmate_bridge_codex_upstream_host }}:{{ xworkmate_bridge_codex_upstream_port }}/acp" xworkmate_bridge_opencode_rpc_url: "http://{{ xworkmate_bridge_opencode_upstream_host }}:{{ xworkmate_bridge_opencode_upstream_port }}" xworkmate_bridge_gemini_rpc_url: "http://{{ xworkmate_bridge_gemini_upstream_host }}:{{ xworkmate_bridge_gemini_upstream_port }}" xworkmate_bridge_hermes_rpc_url: "http://{{ xworkmate_bridge_hermes_upstream_host }}:{{ xworkmate_bridge_hermes_upstream_port }}" # Obsolete paths to clean up xworkmate_bridge_obsolete_caddy_fragment_paths: - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server.caddy" - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-codex.caddy" - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-opencode.caddy" - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-gemini.caddy" - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-bridge.caddy" - "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-bridge-server.caddy" xworkmate_bridge_packages: - caddy - gstreamer1.0-tools - gstreamer1.0-plugins-base - gstreamer1.0-plugins-good - gstreamer1.0-plugins-bad - gstreamer1.0-plugins-ugly - gstreamer1.0-libav - libgstreamer1.0-dev - libgstreamer-plugins-base1.0-dev - xdotool - ffmpeg