Files
openhuman/rust-core/ai/TOOLS.md
T
Steven EnamakelandGitHub 37991fc567 refactor: split tauri host from openhuman_core runtime (#43)
* chore: add Cargo.toml and Cargo.lock for rust-core workspace

- Introduced a new workspace for the rust-core module with its own Cargo.toml.
- Added Cargo.lock to manage dependencies for the rust-core module.
- Updated .gitignore to exclude the target directory generated by Cargo.
- Modified GitHub Actions workflow to build from the new rust-core path instead of src-tauri.

* feat: enhance memory and authentication models in rust-core

- Added new `memory` module to handle persistent memory operations for skills, including methods for storing and querying skill data.
- Introduced `models` module with `auth` and `socket` submodules to manage user session and socket connection states.
- Updated `lib.rs` to include new modules and ensure proper integration within the rust-core workspace.
- Modified `eslint.config.js` to ignore target directories in linting processes.

* feat: integrate Tauri and QuickJS support in rust-core

- Added `tauri` and `rquickjs` as optional dependencies in `Cargo.toml` to enable Tauri integration and JavaScript execution.
- Introduced `CronScheduler` and `PingScheduler` modules for managing scheduled tasks and health checks for skills.
- Implemented `MemoryState` struct for shared app-state management in the memory client.
- Updated the runtime module to include new schedulers and ensure proper integration with Tauri features.
- Enhanced the skill registry to support new functionalities related to skill management and communication.

* chore: update ESLint configuration and refactor Rust module imports

- Added 'rust-core/**' to ESLint ignore list to streamline linting processes.
- Refactored import paths in Rust modules to directly reference the `memory` module, enhancing clarity and maintainability.
- Improved formatting in JavaScript files for better readability and consistency.

* refactor: rename rust-core to openhuman-core and update dependencies

- Renamed the `rust-core` module to `openhuman-core` across all files for consistency.
- Updated `Cargo.lock` to include `openhuman-core` as a new dependency and removed `rust-core`.
- Adjusted import paths in the codebase to reflect the new module name, ensuring all references are updated.
- Enhanced the Tauri integration by modifying dependencies in `src-tauri/Cargo.toml` to point to `openhuman-core`.

* refactor: simplify platform detection using match statements

- Replaced multiple if-else statements with match expressions in `current_platform`, `get_platform`, and `register` functions for improved readability and maintainability.
- Removed unnecessary conditional compilation for Android and iOS in the `SocketManager` and `tauri_bridge` modules, streamlining the codebase.
- Enhanced the `send_notification` function to handle platform checks more efficiently.

* refactor: update platform detection to use std::env::consts

- Replaced `cfg!(target_os = "os_name")` checks with `std::env::consts::OS` for improved clarity and consistency across the codebase.
- Added `rppal` as an optional dependency in `Cargo.toml` for Raspberry Pi support.
- Cleaned up platform-specific code in various modules, enhancing maintainability.

* refactor: streamline platform-specific code and improve readability

- Replaced conditional compilation with `std::env::consts::OS` checks in various modules to enhance clarity and maintainability.
- Simplified platform detection logic in `available_disk_space_mb`, `ensure_arduino_cli`, and `open_in_brave` functions.
- Updated `screenshot_command_exists` test to conditionally skip based on the operating system.
- Cleaned up unnecessary `#[cfg]` attributes, focusing on a more consistent approach across the codebase.

* feat: introduce comprehensive AI configuration and memory management

- Added multiple configuration files for OpenHuman AI, including `AGENTS.md`, `BOOTSTRAP.md`, `CONSCIOUS_LOOP.md`, `IDENTITY.md`, `MEMORY.md`, `README.md`, `SOUL.md`, `TOOLS.md`, and `USER.md` to define agent roles, onboarding processes, identity, memory management, and tool capabilities.
- Implemented an encryption layer for AI memory storage in `encryption.rs`, utilizing AES-256-GCM for secure data handling.
- Updated `lib.rs` to include the new AI module structure, enhancing the overall architecture and maintainability of the codebase.

* refactor: update dependencies and configuration for improved structure

- Removed `android_logger` and related packages from `Cargo.lock` and `Cargo.toml`, streamlining the dependency list.
- Adjusted the `APP_IDENTIFIER` constant in `config.rs` to reflect the new application identifier.
- Updated resource paths in `tauri.conf.json` for better organization.
- Enhanced platform-specific dependency management in `Cargo.toml` for clarity and maintainability.

* fix(core): gate ai module behind tauri-host feature

* refactor: update AI loading mechanisms and improve platform handling

- Refactored the AI configuration loading in `loader.ts` and `tools/loader.ts` to utilize Tauri commands for desktop environments, enhancing performance and reliability.
- Updated paths for AI markdown files to reflect the new `rust-core` structure.
- Introduced a new end-to-end test for Tauri command interactions in `tauriCoreBridge.e2e.test.ts`.
- Cleaned up platform-specific code across various modules, ensuring a more consistent approach to handling desktop and web contexts.

* feat: add sidecar core binary build and staging for Tauri bundler

- Implemented build steps for the sidecar core binary in multiple workflows, targeting both x86_64-unknown-linux-gnu and aarch64-apple-darwin architectures.
- Added staging steps to copy the built binaries into the Tauri resources directory, ensuring proper integration for application bundling.
- Updated relevant workflows to enhance the build process and streamline artifact management.

* refactor: enhance AI loading logic for Tauri integration

- Updated `loader.ts` and `tools/loader.ts` to prioritize Tauri commands for loading configurations in desktop environments, with a fallback to bundled markdown files for web contexts.
- Adjusted test mocks to reflect the new file paths for tools markdown.
- Improved test setup to mock Tauri API behavior accurately.

* docs: update CLAUDE.md and remove Android build scripts from package.json

- Added a new section in CLAUDE.md detailing the runtime scope, clarifying that Tauri is desktop-only and should not include mobile or web branches.
- Removed Android development and build scripts from package.json to streamline the project for desktop platforms only.

* refactor: streamline import statements and enhance test mock structure

- Reordered import statements in `loader.ts` and `tools/loader.ts` for consistency.
- Simplified mock implementation in `tauriCoreBridge.e2e.test.ts` to improve readability and maintainability.
- Added external binary configuration in `build.rs` to support resource management during local builds.

* test: stabilize core/unit test paths and tauri build-test config

* chore: update subproject commit reference in skills

* chore: update Tauri build configuration to include custom environment variable

- Modified the Tauri build command in the GitHub Actions workflow to set a custom configuration for updater artifacts, enhancing the build process for the x86_64-unknown-linux-gnu target.
2026-03-27 13:30:32 -07:00

8.4 KiB

OpenHuman Tools

This document lists all available tools that OpenHuman can use to interact with external services and perform actions. Tools are organized by integration and automatically updated when the app loads.

Architecture note: All read/query operations (get-page, list-*, query-database, search, etc.) are handled by the memory layer — data is fetched from the TinyHumans Neocortex memory system and injected into context automatically. Only write, create, update, delete, and trigger operations are exposed as tools.

Overview

OpenHuman has access to 12 tools across 1 integrations.

Quick Statistics:

  • Notion: 12 tools

Available Tools

Notion Tools

This skill provides 12 tools for notion integration. Data retrieval is handled by the memory layer, not tools.

append-blocks

Description: Append child blocks to a page or block. Supports various block types.

Parameters:

  • block_id (string) (required): The parent page or block ID
  • blocks (string) (required): JSON string of blocks array. Example: [{"type":"paragraph","paragraph":{"rich_text":[{"text":{"content":"Hello"}}]}}]

Usage Context: Available in all environments

Example:

{
  "tool": "append-blocks",
  "parameters": { "block_id": "example_block_id", "blocks": "example_blocks" }
}

append-text

Description: Append text content to a page or block. Use the page id (or block_id) from memory context. Creates paragraph blocks with the given text.

Parameters:

  • block_id (string): The page or block ID to append to (use page id from memory context)
  • content (string): Alias for text — the content to append to the page
  • page_id (string): Alias for block_id when appending to a page (same as block_id)
  • text (string) (required): The text to append (required). Pass the exact content to add to the page.

Usage Context: Available in all environments

Example:

{
  "tool": "append-text",
  "parameters": {
    "block_id": "example_block_id",
    "content": "example_content",
    "page_id": "example_page_id",
    "text": "example_text"
  }
}

create-comment

Description: Create a comment on a page or block, or reply to a discussion. Provide either page_id (new comment on page) or discussion_id (reply). Requires Notion integration to have insert comment capability.

Parameters:

  • block_id (string): Block ID to comment on (optional, use instead of page_id)
  • discussion_id (string): Discussion ID to reply to an existing thread (use instead of page_id)
  • page_id (string): Page ID to create a comment on (new discussion)
  • text (string) (required): Comment text content

Usage Context: Available in all environments

Example:

{
  "tool": "create-comment",
  "parameters": {
    "block_id": "example_block_id",
    "discussion_id": "example_discussion_id",
    "page_id": "example_page_id",
    "text": "example_text"
  }
}

create-database

Description: Create a new database in Notion. Specify parent page_id and title. Optionally provide properties schema as JSON.

Parameters:

  • parent_page_id (string) (required): Parent page ID where the database will be created
  • properties (string): JSON string of properties schema. Example: {"Name":{"title":{}},"Status":{"select":{"options":[{"name":"Todo"},{"name":"Done"}]}}}
  • title (string) (required): Database title

Usage Context: Available in all environments

Example:

{
  "tool": "create-database",
  "parameters": {
    "parent_page_id": "example_parent_page_id",
    "properties": "example_properties",
    "title": "example_title"
  }
}

create-page

Description: Create a new page in Notion. Parent can be another page or a database. For database parents, properties must match the database schema.

Parameters:

  • content (string): Initial text content (creates a paragraph block)
  • parent_id (string) (required): Parent page ID or database ID
  • parent_type (string): Type of parent (default: page_id)
  • properties (string): JSON string of additional properties (for database pages)
  • title (string) (required): Page title

Usage Context: Available in all environments

Example:

{
  "tool": "create-page",
  "parameters": {
    "content": "example_content",
    "parent_id": "example_parent_id",
    "parent_type": "example_parent_type",
    "properties": "example_properties",
    "title": "example_title"
  }
}

delete-block

Description: Delete a block. Permanently removes the block from Notion.

Parameters:

  • block_id (string) (required): The block ID to delete

Usage Context: Available in all environments

Example:

{ "tool": "delete-block", "parameters": { "block_id": "example_block_id" } }

delete-page

Description: Delete (archive) a page. Archived pages can be restored from Notion's trash.

Parameters:

  • page_id (string) (required): The page ID to delete/archive

Usage Context: Available in all environments

Example:

{ "tool": "delete-page", "parameters": { "page_id": "example_page_id" } }

summarize-pages

Description: AI summarization of Notion pages is now handled by the backend server. Synced page content is submitted to the server which runs summarization.

Parameters: None

Usage Context: Available in all environments

Example:

{ "tool": "summarize-pages", "parameters": {} }

sync-now

Description: Trigger an immediate Notion sync to refresh local data. Returns sync results including counts of synced pages and databases.

Parameters: None

Usage Context: Available in all environments

Example:

{ "tool": "sync-now", "parameters": {} }

update-block

Description: Update a block's content. The structure depends on the block type.

Parameters:

  • archived (string): Set to true to archive the block
  • block_id (string) (required): The block ID to update
  • content (string): JSON string of the block type content. Example for paragraph: {"paragraph":{"rich_text":[{"text":{"content":"Updated text"}}]}}

Usage Context: Available in all environments

Example:

{
  "tool": "update-block",
  "parameters": {
    "archived": "example_archived",
    "block_id": "example_block_id",
    "content": "example_content"
  }
}

update-database

Description: Update a database's title or properties schema.

Parameters:

  • database_id (string) (required): The database ID to update
  • properties (string): JSON string of properties to add or update
  • title (string): New title (optional)

Usage Context: Available in all environments

Example:

{
  "tool": "update-database",
  "parameters": {
    "database_id": "example_database_id",
    "properties": "example_properties",
    "title": "example_title"
  }
}

update-page

Description: Update a page's properties. Can update title and other properties. Use append-text to add content blocks.

Parameters:

  • archived (string): Set to true to archive the page
  • page_id (string) (required): The page ID to update
  • properties (string): JSON string of properties to update
  • title (string): New title (optional)

Usage Context: Available in all environments

Example:

{
  "tool": "update-page",
  "parameters": {
    "archived": "example_archived",
    "page_id": "example_page_id",
    "properties": "example_properties",
    "title": "example_title"
  }
}

Tool Usage Guidelines

Authentication

  • All tools require proper authentication setup through the Skills system
  • OAuth credentials are managed securely and refreshed automatically
  • API keys are stored encrypted in the application keychain

Rate Limiting

  • Tools automatically respect API rate limits of external services
  • Intelligent retry logic handles temporary failures with exponential backoff

Error Handling

  • All tools return structured error responses with detailed information
  • Network failures trigger automatic retry with configurable attempts

Tool Statistics

  • Total Tools: 12
  • Active Skills: 1
  • Read/Query Tools: 0 (handled by memory layer)
  • Last Updated: 2026-03-26

This file was automatically generated when the app loaded. Tools are discovered from the running V8 skills runtime.