'agents', 'label' => __( 'Agents', 'desktop-mode' ), 'icon' => desktop_mode_agent_avatar_url(), 'restPath' => 'desktop-mode/v1/agents', 'kind' => 'agent', ); return $entities; } add_filter( 'desktop_mode_my_wordpress_entities', 'desktop_mode_agents_my_wordpress_entity' ); /** * Ship the agents section config on the site folder window config. * * `aiAvailable` is the cheap structural check (WP 7.0 AI Client + * Abilities API present); whether a connector is actually configured * is probed live by the renderer against `aiStatusUrl`, mirroring the * OS Settings Features tab, so a freshly configured connector is * picked up without a reload. * * @param array $window_args Args passed to `desktop_mode_register_window()`. * @return array */ function desktop_mode_agents_my_wordpress_window_args( $window_args ) { if ( ! is_array( $window_args ) || ! desktop_mode_agents_user_can_read() ) { return $window_args; } if ( ! isset( $window_args['config'] ) || ! is_array( $window_args['config'] ) ) { $window_args['config'] = array(); } $window_args['config']['agents'] = array( 'canManage' => desktop_mode_agents_user_can_manage(), 'canInvoke' => desktop_mode_agents_user_can_invoke(), 'aiAvailable' => function_exists( 'desktop_mode_ai_is_available' ) && desktop_mode_ai_is_available(), 'aiStatusUrl' => esc_url_raw( rest_url( 'desktop-mode/v1/ai/status' ) ), 'connectorsUrl' => esc_url_raw( admin_url( 'options-connectors.php' ) ), 'runWindowId' => 'desktop-mode-agent-run', ); return $window_args; } add_filter( 'desktop_mode_my_wordpress_window_args', 'desktop_mode_agents_my_wordpress_window_args' );