mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-28 13:32:23 +00:00
* feat(memory_recipes): introduce memory recipes module for source-type-specific ingestion - Added a new `memory_recipes` module that includes functionality for handling various source types, such as email and chat, with dedicated recipes for ingestion. - Implemented core types and the `Recipe` trait to facilitate the ingestion process, allowing for structured handling of raw content and metadata. - Created specific recipes for email and chat, enhancing the ability to process and normalize content before storing it in memory. - Updated the core controller registration to include new endpoints for memory recipes, enabling JSON-RPC interactions for ingesting content and listing available recipes. - Enhanced task management by integrating task storage and query helpers, allowing for better tracking and management of action items extracted during ingestion. These changes significantly improve the ingestion capabilities of the application, providing a robust framework for handling diverse content types. * refactor: remove API key references from configuration and schema - Eliminated the `api_key` field from various configuration schemas and related structures, including `Config`, `ModelSettingsPatch`, and `ComposioConfig`, to streamline the configuration process. - Updated the handling of API keys in the application to rely solely on session JWTs, enhancing security and simplifying the authentication flow. - Adjusted related documentation and comments to reflect the removal of the API key, ensuring clarity in the new authentication approach. - Refactored multiple components and functions to remove dependencies on the API key, improving code maintainability and reducing complexity. These changes significantly enhance the security posture of the application by removing reliance on static API keys and promoting the use of session-based authentication. * chore: update .env.example and documentation for API key removal - Removed references to `OPENHUMAN_API_KEY` from the `.env.example` file to reflect recent changes in the authentication approach. - Updated documentation in `AGENTS.md` and `CLAUDE.md` to clarify that `OPENHUMAN_API_URL` now overrides `config.api_url`, ensuring consistency across configuration references. - Bumped the version in `Cargo.lock` to 0.52.23 to align with the latest changes. These updates enhance clarity in configuration management and documentation following the removal of static API keys. * fix: address config pruning review comments * feat(tests): add validation tests for SearchResponse deserialization - Introduced new tests to ensure that the SearchResponse struct correctly rejects JSON inputs missing required fields: searchId, results, and costUsd. - Updated DelegateTool instantiation to remove the unused fallback_credential parameter, simplifying the constructor and related tests. These changes enhance the robustness of the SearchResponse handling and improve code clarity by removing unnecessary parameters. * refactor: remove api_key params from provider factory signatures The OpenHuman backend now only uses the app-session JWT for auth — the api_key parameter was ignored (as _api_key) after the config pruning. Drop it from the signatures entirely instead of leaving dead None arguments at every call site. Also removes the unused ChannelContext.api_key field. * refactor: remove api_key/composio_key params from factory signatures Every caller was passing None after the config pruning: - create_embedding_provider / create_memory* — the api_key param was only threaded to the openai / custom embedding branches, but no caller has ever supplied a non-None value since the pruning. Embeddings use an empty key; the param is gone. - all_tools / all_tools_with_runtime — both composio_key and composio_entity_id only fed the ComposioTool registration block, which was already dead after the JWT migration. Drop both args and the block; the modern path is all_composio_agent_tools via build_composio_client(config). * style: apply cargo fmt
1909 lines
54 KiB
JSON
1909 lines
54 KiB
JSON
{
|
|
"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": "Suggest questions for provided context.",
|
|
"function": "suggest_questions",
|
|
"inputs": [
|
|
{
|
|
"comment": "Context text.",
|
|
"name": "context",
|
|
"required": false,
|
|
"ty": { "Option": "String" }
|
|
},
|
|
{
|
|
"comment": "Alternative context as lines.",
|
|
"name": "lines",
|
|
"required": false,
|
|
"ty": { "Option": { "Array": "String" } }
|
|
}
|
|
],
|
|
"method": "openhuman.local_ai_suggest_questions",
|
|
"namespace": "local_ai",
|
|
"outputs": [
|
|
{
|
|
"comment": "Suggested questions payload.",
|
|
"name": "suggestions",
|
|
"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" }
|
|
]
|
|
}
|
|
]
|
|
}
|