{
  "methods": [
    {
      "description": "Liveness probe for the core JSON-RPC server.",
      "function": "ping",
      "inputs": [],
      "method": "core.ping",
      "namespace": "core",
      "outputs": [
        {
          "comment": "Always true when the server is reachable.",
          "name": "ok",
          "required": true,
          "ty": "Bool"
        }
      ]
    },
    {
      "description": "Lists all JSON-RPC methods and their input/output schemas.",
      "function": "rpc_schema_dump",
      "inputs": [],
      "method": "core.rpc_schema_dump",
      "namespace": "core",
      "outputs": [
        {
          "comment": "All JSON-RPC method schemas available to clients.",
          "name": "methods",
          "required": true,
          "ty": {
            "Array": {
              "Object": {
                "fields": [
                  {
                    "comment": "Fully-qualified JSON-RPC method name.",
                    "name": "method",
                    "required": true,
                    "ty": "String"
                  },
                  {
                    "comment": "Method namespace.",
                    "name": "namespace",
                    "required": true,
                    "ty": "String"
                  },
                  {
                    "comment": "Method function name within the namespace.",
                    "name": "function",
                    "required": true,
                    "ty": "String"
                  },
                  {
                    "comment": "Human-readable method description.",
                    "name": "description",
                    "required": true,
                    "ty": "String"
                  },
                  {
                    "comment": "Ordered list of accepted input fields.",
                    "name": "inputs",
                    "required": true,
                    "ty": { "Array": { "Ref": "FieldSchema" } }
                  },
                  {
                    "comment": "Ordered list of output fields.",
                    "name": "outputs",
                    "required": true,
                    "ty": { "Array": { "Ref": "FieldSchema" } }
                  }
                ]
              }
            }
          }
        }
      ]
    },
    {
      "description": "Returns the core binary version.",
      "function": "version",
      "inputs": [],
      "method": "core.version",
      "namespace": "core",
      "outputs": [
        {
          "comment": "Semantic version string for the running core binary.",
          "name": "version",
          "required": true,
          "ty": "String"
        }
      ]
    },
    {
      "description": "Run one-shot agent chat with optional model overrides.",
      "function": "chat",
      "inputs": [
        { "comment": "User message.", "name": "message", "required": true, "ty": "String" },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.agent_chat",
      "namespace": "agent",
      "outputs": [
        { "comment": "Agent response payload.", "name": "response", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Run one-shot lightweight provider chat.",
      "function": "chat_simple",
      "inputs": [
        { "comment": "User message.", "name": "message", "required": true, "ty": "String" },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.agent_chat_simple",
      "namespace": "agent",
      "outputs": [
        { "comment": "Agent response payload.", "name": "response", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Terminate REPL session.",
      "function": "repl_session_end",
      "inputs": [
        { "comment": "REPL session id.", "name": "session_id", "required": true, "ty": "String" }
      ],
      "method": "openhuman.agent_repl_session_end",
      "namespace": "agent",
      "outputs": [
        { "comment": "Session end result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Clear REPL session history.",
      "function": "repl_session_reset",
      "inputs": [
        { "comment": "REPL session id.", "name": "session_id", "required": true, "ty": "String" }
      ],
      "method": "openhuman.agent_repl_session_reset",
      "namespace": "agent",
      "outputs": [
        { "comment": "Session reset result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Create a persistent REPL agent session.",
      "function": "repl_session_start",
      "inputs": [
        {
          "comment": "Optional session id.",
          "name": "session_id",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.agent_repl_session_start",
      "namespace": "agent",
      "outputs": [
        { "comment": "Session creation result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Return core runtime URL and status for agent calls.",
      "function": "server_status",
      "inputs": [],
      "method": "openhuman.agent_server_status",
      "namespace": "agent",
      "outputs": [
        {
          "comment": "Agent server status payload.",
          "name": "status",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Remove stored app session credentials.",
      "function": "clear_session",
      "inputs": [],
      "method": "openhuman.auth_clear_session",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Session clear result payload.",
          "name": "result",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Consume login handoff token and return session JWT.",
      "function": "consume_login_token",
      "inputs": [
        {
          "comment": "One-time login token.",
          "name": "loginToken",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.auth_consume_login_token",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Consumed login token result.",
          "name": "result",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Read stored app session token.",
      "function": "get_session_token",
      "inputs": [],
      "method": "openhuman.auth_get_session_token",
      "namespace": "auth",
      "outputs": [
        { "comment": "Session token payload.", "name": "token", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Get current auth/session state.",
      "function": "get_state",
      "inputs": [],
      "method": "openhuman.auth_get_state",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Current auth state response.",
          "name": "state",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "List stored provider credentials.",
      "function": "list_provider_credentials",
      "inputs": [
        {
          "comment": "Optional provider filter.",
          "name": "provider",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.auth_list_provider_credentials",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Listed provider credentials.",
          "name": "profiles",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Create OAuth connect URL for provider.",
      "function": "oauth_connect",
      "inputs": [
        { "comment": "Provider id.", "name": "provider", "required": true, "ty": "String" },
        {
          "comment": "Optional skill id.",
          "name": "skillId",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional OAuth response type.",
          "name": "responseType",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.auth_oauth_connect",
      "namespace": "auth",
      "outputs": [
        { "comment": "OAuth connect payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Fetch integration handoff tokens.",
      "function": "oauth_fetch_integration_tokens",
      "inputs": [
        { "comment": "Integration id.", "name": "integrationId", "required": true, "ty": "String" },
        { "comment": "Encryption key.", "name": "key", "required": true, "ty": "String" }
      ],
      "method": "openhuman.auth_oauth_fetch_integration_tokens",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Integration tokens handoff payload.",
          "name": "tokens",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "List OAuth integrations for current session.",
      "function": "oauth_list_integrations",
      "inputs": [],
      "method": "openhuman.auth_oauth_list_integrations",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "OAuth integration list.",
          "name": "integrations",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Revoke OAuth integration.",
      "function": "oauth_revoke_integration",
      "inputs": [
        { "comment": "Integration id.", "name": "integrationId", "required": true, "ty": "String" }
      ],
      "method": "openhuman.auth_oauth_revoke_integration",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Integration revoke result.",
          "name": "result",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Remove provider credentials for a profile.",
      "function": "remove_provider_credentials",
      "inputs": [
        { "comment": "Provider id.", "name": "provider", "required": true, "ty": "String" },
        {
          "comment": "Optional profile name.",
          "name": "profile",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.auth_remove_provider_credentials",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Provider credential removal result.",
          "name": "result",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Store provider credentials for a profile.",
      "function": "store_provider_credentials",
      "inputs": [
        { "comment": "Provider id.", "name": "provider", "required": true, "ty": "String" },
        {
          "comment": "Optional profile name.",
          "name": "profile",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Provider access token.",
          "name": "token",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Additional credential fields.",
          "name": "fields",
          "required": false,
          "ty": { "Option": "Json" }
        },
        {
          "comment": "Whether to set profile as active.",
          "name": "setActive",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.auth_store_provider_credentials",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Stored provider profile summary.",
          "name": "profile",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Store and validate app session JWT.",
      "function": "store_session",
      "inputs": [
        { "comment": "Session JWT token.", "name": "token", "required": true, "ty": "String" },
        {
          "comment": "Optional user id hint.",
          "name": "user_id",
          "required": false,
          "ty": { "Option": "Json" }
        },
        {
          "comment": "Optional user payload.",
          "name": "user",
          "required": false,
          "ty": { "Option": "Json" }
        }
      ],
      "method": "openhuman.auth_store_session",
      "namespace": "auth",
      "outputs": [
        {
          "comment": "Stored auth profile summary.",
          "name": "profile",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Accept and apply current or provided autocomplete suggestion.",
      "function": "accept",
      "inputs": [
        {
          "comment": "Optional explicit suggestion value to apply.",
          "name": "suggestion",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.autocomplete_accept",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Suggestion acceptance result.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteAcceptResult" }
        }
      ]
    },
    {
      "description": "Compute current suggestion for provided or captured context.",
      "function": "current",
      "inputs": [
        {
          "comment": "Optional explicit context to score suggestions against.",
          "name": "context",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.autocomplete_current",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Current suggestion payload.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteCurrentResult" }
        }
      ]
    },
    {
      "description": "Inspect focused element and text context used by autocomplete.",
      "function": "debug_focus",
      "inputs": [],
      "method": "openhuman.autocomplete_debug_focus",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Focused context diagnostics.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteDebugFocusResult" }
        }
      ]
    },
    {
      "description": "Update autocomplete style configuration fields.",
      "function": "set_style",
      "inputs": [
        {
          "comment": "Enable or disable autocomplete.",
          "name": "enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        },
        {
          "comment": "Debounce interval override in milliseconds.",
          "name": "debounce_ms",
          "required": false,
          "ty": { "Option": "U64" }
        },
        {
          "comment": "Maximum suggestion length in characters.",
          "name": "max_chars",
          "required": false,
          "ty": { "Option": "U64" }
        },
        {
          "comment": "Named style preset.",
          "name": "style_preset",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Custom style instructions.",
          "name": "style_instructions",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Style examples used for prompt shaping.",
          "name": "style_examples",
          "required": false,
          "ty": { "Option": { "Array": "String" } }
        },
        {
          "comment": "App allow/deny override list.",
          "name": "disabled_apps",
          "required": false,
          "ty": { "Option": { "Array": "String" } }
        },
        {
          "comment": "Whether tab key applies suggestion.",
          "name": "accept_with_tab",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.autocomplete_set_style",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Updated autocomplete style config.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteSetStyleResult" }
        }
      ]
    },
    {
      "description": "Start autocomplete engine with optional debounce override.",
      "function": "start",
      "inputs": [
        {
          "comment": "Optional debounce interval in milliseconds.",
          "name": "debounce_ms",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.autocomplete_start",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Whether the engine started.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteStartResult" }
        }
      ]
    },
    {
      "description": "Read autocomplete engine status and latest suggestion metadata.",
      "function": "status",
      "inputs": [],
      "method": "openhuman.autocomplete_status",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Current runtime status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "AutocompleteStatus" }
        }
      ]
    },
    {
      "description": "Stop autocomplete engine and optionally record stop reason.",
      "function": "stop",
      "inputs": [
        {
          "comment": "Optional reason for stopping.",
          "name": "reason",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.autocomplete_stop",
      "namespace": "autocomplete",
      "outputs": [
        {
          "comment": "Whether the engine stopped.",
          "name": "result",
          "required": true,
          "ty": { "Ref": "AutocompleteStopResult" }
        }
      ]
    },
    {
      "description": "Return agent server runtime URL and status.",
      "function": "agent_server_status",
      "inputs": [],
      "method": "openhuman.config_agent_server_status",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Agent server status payload.",
          "name": "status",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Read persisted config snapshot and resolved paths.",
      "function": "get",
      "inputs": [],
      "method": "openhuman.config_get",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Config snapshot with workspace and config paths.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Read environment-driven runtime flags.",
      "function": "get_runtime_flags",
      "inputs": [],
      "method": "openhuman.config_get_runtime_flags",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Runtime flag state.",
          "name": "flags",
          "required": true,
          "ty": { "Ref": "RuntimeFlagsOut" }
        }
      ]
    },
    {
      "description": "Set OPENHUMAN_BROWSER_ALLOW_ALL runtime flag.",
      "function": "set_browser_allow_all",
      "inputs": [
        {
          "comment": "Whether to enable browser allow-all mode.",
          "name": "enabled",
          "required": true,
          "ty": "Bool"
        }
      ],
      "method": "openhuman.config_set_browser_allow_all",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated runtime flag state.",
          "name": "flags",
          "required": true,
          "ty": { "Ref": "RuntimeFlagsOut" }
        }
      ]
    },
    {
      "description": "Update browser automation settings.",
      "function": "update_browser_settings",
      "inputs": [
        {
          "comment": "Enable browser integration.",
          "name": "enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.config_update_browser_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Update memory backend and embedding settings.",
      "function": "update_memory_settings",
      "inputs": [
        {
          "comment": "Memory backend identifier.",
          "name": "backend",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Enable auto-save.",
          "name": "auto_save",
          "required": false,
          "ty": { "Option": "Bool" }
        },
        {
          "comment": "Embedding provider identifier.",
          "name": "embedding_provider",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Embedding model identifier.",
          "name": "embedding_model",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Embedding dimensions.",
          "name": "embedding_dimensions",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.config_update_memory_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Update model and API connection settings.",
      "function": "update_model_settings",
      "inputs": [
        {
          "comment": "Backend API URL.",
          "name": "api_url",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Default model id.",
          "name": "default_model",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Default model temperature.",
          "name": "default_temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.config_update_model_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Update runtime execution strategy settings.",
      "function": "update_runtime_settings",
      "inputs": [
        {
          "comment": "Runtime kind.",
          "name": "kind",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Enable reasoning mode.",
          "name": "reasoning_enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.config_update_runtime_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Update screen intelligence runtime settings.",
      "function": "update_screen_intelligence_settings",
      "inputs": [
        {
          "comment": "Enable screen intelligence.",
          "name": "enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        },
        {
          "comment": "Capture policy mode.",
          "name": "capture_policy",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Policy mode override.",
          "name": "policy_mode",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Baseline capture FPS.",
          "name": "baseline_fps",
          "required": false,
          "ty": { "Option": "F64" }
        },
        {
          "comment": "Enable vision analysis.",
          "name": "vision_enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        },
        {
          "comment": "Enable autocomplete integration.",
          "name": "autocomplete_enabled",
          "required": false,
          "ty": { "Option": "Bool" }
        },
        {
          "comment": "Allowed app list.",
          "name": "allowlist",
          "required": false,
          "ty": { "Option": { "Array": "String" } }
        },
        {
          "comment": "Denied app list.",
          "name": "denylist",
          "required": false,
          "ty": { "Option": { "Array": "String" } }
        }
      ],
      "method": "openhuman.config_update_screen_intelligence_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Replace tunnel settings with provided config payload.",
      "function": "update_tunnel_settings",
      "inputs": [
        { "comment": "Tunnel provider id.", "name": "provider", "required": true, "ty": "String" },
        {
          "comment": "Cloudflare tunnel settings.",
          "name": "cloudflare",
          "required": false,
          "ty": { "Option": { "Ref": "CloudflareTunnelConfig" } }
        },
        {
          "comment": "Tailscale tunnel settings.",
          "name": "tailscale",
          "required": false,
          "ty": { "Option": { "Ref": "TailscaleTunnelConfig" } }
        },
        {
          "comment": "ngrok tunnel settings.",
          "name": "ngrok",
          "required": false,
          "ty": { "Option": { "Ref": "NgrokTunnelConfig" } }
        },
        {
          "comment": "Custom tunnel settings.",
          "name": "custom",
          "required": false,
          "ty": { "Option": { "Ref": "CustomTunnelConfig" } }
        }
      ],
      "method": "openhuman.config_update_tunnel_settings",
      "namespace": "config",
      "outputs": [
        {
          "comment": "Updated config snapshot.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Check if onboarding flag file exists in workspace.",
      "function": "workspace_onboarding_flag_exists",
      "inputs": [
        {
          "comment": "Optional onboarding flag name override.",
          "name": "flag_name",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.config_workspace_onboarding_flag_exists",
      "namespace": "config",
      "outputs": [
        {
          "comment": "True when the flag file is present.",
          "name": "exists",
          "required": true,
          "ty": "Bool"
        }
      ]
    },
    {
      "description": "List all configured cron jobs ordered by next run.",
      "function": "list",
      "inputs": [],
      "method": "openhuman.cron_list",
      "namespace": "cron",
      "outputs": [
        {
          "comment": "Cron jobs currently stored in the workspace.",
          "name": "jobs",
          "required": true,
          "ty": { "Array": { "Ref": "CronJob" } }
        }
      ]
    },
    {
      "description": "Remove a cron job by id.",
      "function": "remove",
      "inputs": [
        {
          "comment": "Identifier of the cron job to remove.",
          "name": "job_id",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.cron_remove",
      "namespace": "cron",
      "outputs": [
        {
          "comment": "Removal result payload.",
          "name": "result",
          "required": true,
          "ty": {
            "Object": {
              "fields": [
                {
                  "comment": "Identifier that was requested for removal.",
                  "name": "job_id",
                  "required": true,
                  "ty": "String"
                },
                {
                  "comment": "True when the job was removed.",
                  "name": "removed",
                  "required": true,
                  "ty": "Bool"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "description": "Run a cron job immediately and record run metadata.",
      "function": "run",
      "inputs": [
        {
          "comment": "Identifier of the cron job to execute immediately.",
          "name": "job_id",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.cron_run",
      "namespace": "cron",
      "outputs": [
        {
          "comment": "Immediate execution result payload.",
          "name": "result",
          "required": true,
          "ty": {
            "Object": {
              "fields": [
                {
                  "comment": "Executed cron job identifier.",
                  "name": "job_id",
                  "required": true,
                  "ty": "String"
                },
                {
                  "comment": "Execution status.",
                  "name": "status",
                  "required": true,
                  "ty": { "Enum": { "variants": ["ok", "error"] } }
                },
                {
                  "comment": "Execution duration in milliseconds.",
                  "name": "duration_ms",
                  "required": true,
                  "ty": "I64"
                },
                {
                  "comment": "Captured command output (possibly truncated).",
                  "name": "output",
                  "required": true,
                  "ty": "String"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "description": "Read historical run records for one cron job.",
      "function": "runs",
      "inputs": [
        {
          "comment": "Identifier of the cron job whose history to read.",
          "name": "job_id",
          "required": true,
          "ty": "String"
        },
        {
          "comment": "Maximum number of records to return; defaults to 20.",
          "name": "limit",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.cron_runs",
      "namespace": "cron",
      "outputs": [
        {
          "comment": "Ordered cron run history entries.",
          "name": "runs",
          "required": true,
          "ty": { "Array": { "Ref": "CronRun" } }
        }
      ]
    },
    {
      "description": "Apply a partial patch to an existing cron job.",
      "function": "update",
      "inputs": [
        {
          "comment": "Identifier of the cron job to update.",
          "name": "job_id",
          "required": true,
          "ty": "String"
        },
        {
          "comment": "Partial update payload with the fields to mutate.",
          "name": "patch",
          "required": true,
          "ty": { "Ref": "CronJobPatch" }
        }
      ],
      "method": "openhuman.cron_update",
      "namespace": "cron",
      "outputs": [
        {
          "comment": "Updated cron job after applying the patch.",
          "name": "job",
          "required": true,
          "ty": { "Ref": "CronJob" }
        }
      ]
    },
    {
      "description": "Decrypt a previously encrypted secret payload.",
      "function": "secret",
      "inputs": [
        {
          "comment": "Encrypted secret payload to decrypt.",
          "name": "ciphertext",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.decrypt_secret",
      "namespace": "decrypt",
      "outputs": [
        {
          "comment": "Decrypted plaintext secret.",
          "name": "plaintext",
          "required": true,
          "ty": "String"
        }
      ]
    },
    {
      "description": "Probe provider model availability and auth status.",
      "function": "models",
      "inputs": [
        {
          "comment": "Reuse cached provider metadata when available.",
          "name": "use_cache",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.doctor_models",
      "namespace": "doctor",
      "outputs": [
        {
          "comment": "Model probe summary grouped by provider.",
          "name": "report",
          "required": true,
          "ty": { "Ref": "ModelProbeReport" }
        }
      ]
    },
    {
      "description": "Run diagnostics for workspace and runtime configuration.",
      "function": "report",
      "inputs": [],
      "method": "openhuman.doctor_report",
      "namespace": "doctor",
      "outputs": [
        {
          "comment": "Aggregated diagnostics report.",
          "name": "report",
          "required": true,
          "ty": { "Ref": "DoctorReport" }
        }
      ]
    },
    {
      "description": "Encrypt a plaintext secret using local secret storage.",
      "function": "secret",
      "inputs": [
        {
          "comment": "Plaintext value to encrypt.",
          "name": "plaintext",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.encrypt_secret",
      "namespace": "encrypt",
      "outputs": [
        {
          "comment": "Encrypted secret payload.",
          "name": "ciphertext",
          "required": true,
          "ty": "String"
        }
      ]
    },
    {
      "description": "Return process and component health snapshot.",
      "function": "snapshot",
      "inputs": [],
      "method": "openhuman.health_snapshot",
      "namespace": "health",
      "outputs": [
        {
          "comment": "Serialized health snapshot payload.",
          "name": "snapshot",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Run one-shot agent chat with optional model overrides.",
      "function": "agent_chat",
      "inputs": [
        { "comment": "User message.", "name": "message", "required": true, "ty": "String" },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.local_ai_agent_chat",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Agent response payload.", "name": "response", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Run one-shot lightweight provider chat.",
      "function": "agent_chat_simple",
      "inputs": [
        { "comment": "User message.", "name": "message", "required": true, "ty": "String" },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.local_ai_agent_chat_simple",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Agent response payload.", "name": "response", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Terminate REPL session.",
      "function": "agent_repl_session_end",
      "inputs": [
        { "comment": "REPL session id.", "name": "session_id", "required": true, "ty": "String" }
      ],
      "method": "openhuman.local_ai_agent_repl_session_end",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Session end result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Clear REPL session history.",
      "function": "agent_repl_session_reset",
      "inputs": [
        { "comment": "REPL session id.", "name": "session_id", "required": true, "ty": "String" }
      ],
      "method": "openhuman.local_ai_agent_repl_session_reset",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Session reset result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Create a persistent REPL agent session.",
      "function": "agent_repl_session_start",
      "inputs": [
        {
          "comment": "Optional session id.",
          "name": "session_id",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional model override.",
          "name": "model_override",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "Optional temperature override.",
          "name": "temperature",
          "required": false,
          "ty": { "Option": "F64" }
        }
      ],
      "method": "openhuman.local_ai_agent_repl_session_start",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Session creation result.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Get local AI asset installation status.",
      "function": "assets_status",
      "inputs": [],
      "method": "openhuman.local_ai_assets_status",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Assets status payload.", "name": "status", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Trigger local AI model download bootstrap.",
      "function": "download",
      "inputs": [
        {
          "comment": "Reset state before download.",
          "name": "force",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.local_ai_download",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Local AI status payload.", "name": "status", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Trigger full local AI asset download.",
      "function": "download_all_assets",
      "inputs": [
        {
          "comment": "Reset state before download.",
          "name": "force",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.local_ai_download_all_assets",
      "namespace": "local_ai",
      "outputs": [
        {
          "comment": "Download progress payload.",
          "name": "progress",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Trigger download for one local AI asset capability.",
      "function": "download_asset",
      "inputs": [
        {
          "comment": "Asset capability id.",
          "name": "capability",
          "required": true,
          "ty": "String"
        }
      ],
      "method": "openhuman.local_ai_download_asset",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Assets status payload.", "name": "status", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Get local AI download progress.",
      "function": "downloads_progress",
      "inputs": [],
      "method": "openhuman.local_ai_downloads_progress",
      "namespace": "local_ai",
      "outputs": [
        {
          "comment": "Download progress payload.",
          "name": "progress",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Generate embeddings for text inputs.",
      "function": "embed",
      "inputs": [
        {
          "comment": "Texts to embed.",
          "name": "inputs",
          "required": true,
          "ty": { "Array": "String" }
        }
      ],
      "method": "openhuman.local_ai_embed",
      "namespace": "local_ai",
      "outputs": [
        {
          "comment": "Embedding result payload.",
          "name": "embedding",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Run direct local AI prompt.",
      "function": "prompt",
      "inputs": [
        { "comment": "Prompt text.", "name": "prompt", "required": true, "ty": "String" },
        {
          "comment": "Optional max output tokens.",
          "name": "max_tokens",
          "required": false,
          "ty": { "Option": "U64" }
        },
        {
          "comment": "Disable thinking mode.",
          "name": "no_think",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.local_ai_prompt",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Prompt output text.", "name": "output", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Read local AI service status.",
      "function": "status",
      "inputs": [],
      "method": "openhuman.local_ai_status",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Local AI status payload.", "name": "status", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Summarize text with local AI model.",
      "function": "summarize",
      "inputs": [
        { "comment": "Input text.", "name": "text", "required": true, "ty": "String" },
        {
          "comment": "Optional max output tokens.",
          "name": "max_tokens",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.local_ai_summarize",
      "namespace": "local_ai",
      "outputs": [{ "comment": "Summary text.", "name": "summary", "required": true, "ty": "Json" }]
    },
    {
      "description": "Transcribe audio from file path.",
      "function": "transcribe",
      "inputs": [
        { "comment": "Input audio path.", "name": "audio_path", "required": true, "ty": "String" }
      ],
      "method": "openhuman.local_ai_transcribe",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Transcription payload.", "name": "speech", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Transcribe audio from raw bytes.",
      "function": "transcribe_bytes",
      "inputs": [
        { "comment": "Raw audio bytes.", "name": "audio_bytes", "required": true, "ty": "Bytes" },
        {
          "comment": "Optional audio extension.",
          "name": "extension",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.local_ai_transcribe_bytes",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Transcription payload.", "name": "speech", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Synthesize speech from text.",
      "function": "tts",
      "inputs": [
        { "comment": "Input text.", "name": "text", "required": true, "ty": "String" },
        {
          "comment": "Optional output path.",
          "name": "output_path",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.local_ai_tts",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "TTS result payload.", "name": "tts", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Run multimodal local AI prompt with image refs.",
      "function": "vision_prompt",
      "inputs": [
        { "comment": "Prompt text.", "name": "prompt", "required": true, "ty": "String" },
        {
          "comment": "Image references to include.",
          "name": "image_refs",
          "required": true,
          "ty": { "Array": "String" }
        },
        {
          "comment": "Optional max output tokens.",
          "name": "max_tokens",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.local_ai_vision_prompt",
      "namespace": "local_ai",
      "outputs": [
        { "comment": "Prompt output text.", "name": "output", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Migrate OpenClaw memory into current workspace.",
      "function": "openclaw",
      "inputs": [
        {
          "comment": "Optional source workspace path override.",
          "name": "source_workspace",
          "required": false,
          "ty": { "Option": "String" }
        },
        {
          "comment": "When true, report migration plan only.",
          "name": "dry_run",
          "required": false,
          "ty": { "Option": "Bool" }
        }
      ],
      "method": "openhuman.migrate_openclaw",
      "namespace": "migrate",
      "outputs": [
        {
          "comment": "Migration report and stats.",
          "name": "report",
          "required": true,
          "ty": { "Ref": "MigrationReport" }
        }
      ]
    },
    {
      "description": "Capture screenshot and return image ref.",
      "function": "capture_image_ref",
      "inputs": [],
      "method": "openhuman.screen_intelligence_capture_image_ref",
      "namespace": "screen_intelligence",
      "outputs": [
        {
          "comment": "Capture image_ref payload.",
          "name": "capture",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Trigger immediate screen capture.",
      "function": "capture_now",
      "inputs": [],
      "method": "openhuman.screen_intelligence_capture_now",
      "namespace": "screen_intelligence",
      "outputs": [
        { "comment": "Capture result payload.", "name": "capture", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Perform input action through accessibility automation.",
      "function": "input_action",
      "inputs": [
        {
          "comment": "Input action payload.",
          "name": "action",
          "required": true,
          "ty": { "Ref": "InputActionParams" }
        }
      ],
      "method": "openhuman.screen_intelligence_input_action",
      "namespace": "screen_intelligence",
      "outputs": [
        {
          "comment": "Input action result payload.",
          "name": "result",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Request one accessibility permission.",
      "function": "request_permission",
      "inputs": [
        { "comment": "Permission name.", "name": "permission", "required": true, "ty": "String" }
      ],
      "method": "openhuman.screen_intelligence_request_permission",
      "namespace": "screen_intelligence",
      "outputs": [
        {
          "comment": "Permission status payload.",
          "name": "permissions",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Request required accessibility permissions.",
      "function": "request_permissions",
      "inputs": [],
      "method": "openhuman.screen_intelligence_request_permissions",
      "namespace": "screen_intelligence",
      "outputs": [
        {
          "comment": "Permission status payload.",
          "name": "permissions",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Start screen intelligence session.",
      "function": "start_session",
      "inputs": [
        {
          "comment": "Capture interval in milliseconds.",
          "name": "sample_interval_ms",
          "required": false,
          "ty": { "Option": "U64" }
        },
        {
          "comment": "Capture policy mode.",
          "name": "capture_policy",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.screen_intelligence_start_session",
      "namespace": "screen_intelligence",
      "outputs": [
        { "comment": "Session status payload.", "name": "session", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Read screen intelligence accessibility status.",
      "function": "status",
      "inputs": [],
      "method": "openhuman.screen_intelligence_status",
      "namespace": "screen_intelligence",
      "outputs": [
        {
          "comment": "Accessibility status payload.",
          "name": "status",
          "required": true,
          "ty": "Json"
        }
      ]
    },
    {
      "description": "Stop screen intelligence session.",
      "function": "stop_session",
      "inputs": [
        {
          "comment": "Optional stop reason.",
          "name": "reason",
          "required": false,
          "ty": { "Option": "String" }
        }
      ],
      "method": "openhuman.screen_intelligence_stop_session",
      "namespace": "screen_intelligence",
      "outputs": [
        { "comment": "Session status payload.", "name": "session", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Flush stored vision summaries.",
      "function": "vision_flush",
      "inputs": [],
      "method": "openhuman.screen_intelligence_vision_flush",
      "namespace": "screen_intelligence",
      "outputs": [
        { "comment": "Vision flush payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Read recent vision summaries.",
      "function": "vision_recent",
      "inputs": [
        {
          "comment": "Maximum number of summaries.",
          "name": "limit",
          "required": false,
          "ty": { "Option": "U64" }
        }
      ],
      "method": "openhuman.screen_intelligence_vision_recent",
      "namespace": "screen_intelligence",
      "outputs": [
        { "comment": "Vision recent payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Manage desktop service lifecycle.",
      "function": "install",
      "inputs": [],
      "method": "openhuman.service_install",
      "namespace": "service",
      "outputs": [
        {
          "comment": "Service status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "ServiceStatus" }
        }
      ]
    },
    {
      "description": "Manage desktop service lifecycle.",
      "function": "start",
      "inputs": [],
      "method": "openhuman.service_start",
      "namespace": "service",
      "outputs": [
        {
          "comment": "Service status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "ServiceStatus" }
        }
      ]
    },
    {
      "description": "Manage desktop service lifecycle.",
      "function": "status",
      "inputs": [],
      "method": "openhuman.service_status",
      "namespace": "service",
      "outputs": [
        {
          "comment": "Service status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "ServiceStatus" }
        }
      ]
    },
    {
      "description": "Manage desktop service lifecycle.",
      "function": "stop",
      "inputs": [],
      "method": "openhuman.service_stop",
      "namespace": "service",
      "outputs": [
        {
          "comment": "Service status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "ServiceStatus" }
        }
      ]
    },
    {
      "description": "Manage desktop service lifecycle.",
      "function": "uninstall",
      "inputs": [],
      "method": "openhuman.service_uninstall",
      "namespace": "service",
      "outputs": [
        {
          "comment": "Service status payload.",
          "name": "status",
          "required": true,
          "ty": { "Ref": "ServiceStatus" }
        }
      ]
    },
    {
      "description": "Skill runtime socket manager bridge.",
      "function": "connect",
      "inputs": [
        {
          "comment": "Socket request payload.",
          "name": "payload",
          "required": false,
          "ty": { "Option": "Json" }
        }
      ],
      "method": "openhuman.socket_connect",
      "namespace": "socket",
      "outputs": [
        { "comment": "Socket response payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Skill runtime socket manager bridge.",
      "function": "disconnect",
      "inputs": [
        {
          "comment": "Socket request payload.",
          "name": "payload",
          "required": false,
          "ty": { "Option": "Json" }
        }
      ],
      "method": "openhuman.socket_disconnect",
      "namespace": "socket",
      "outputs": [
        { "comment": "Socket response payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Skill runtime socket manager bridge.",
      "function": "emit",
      "inputs": [
        {
          "comment": "Socket request payload.",
          "name": "payload",
          "required": false,
          "ty": { "Option": "Json" }
        }
      ],
      "method": "openhuman.socket_emit",
      "namespace": "socket",
      "outputs": [
        { "comment": "Socket response payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    },
    {
      "description": "Skill runtime socket manager bridge.",
      "function": "state",
      "inputs": [
        {
          "comment": "Socket request payload.",
          "name": "payload",
          "required": false,
          "ty": { "Option": "Json" }
        }
      ],
      "method": "openhuman.socket_state",
      "namespace": "socket",
      "outputs": [
        { "comment": "Socket response payload.", "name": "result", "required": true, "ty": "Json" }
      ]
    }
  ]
}
