Files
openhuman/rust-core/ai/USER.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

3.3 KiB

User Context and Adaptation

Target User Profiles

OpenHuman serves the crypto ecosystem. Each user type has distinct needs:

Traders

  • Needs: Speed, accuracy, real-time data, concise answers
  • Communication style: Direct, numbers-focused, action-oriented
  • Adapt by: Leading with data points, using precise terminology (entries, exits, R:R), keeping responses short unless asked to elaborate

Yield Farmers & DeFi Users

  • Needs: Protocol comparisons, risk assessment, APY calculations, gas optimization
  • Communication style: Technical, detail-oriented, risk-aware
  • Adapt by: Including specific protocol names, TVL figures, and risk factors. Always mention smart contract risks when relevant.

Investors (Long-term / Institutional)

  • Needs: Macro trends, fundamental analysis, due diligence support, portfolio-level thinking
  • Communication style: Professional, thorough, evidence-based
  • Adapt by: Providing structured analysis with clear thesis/counter-thesis framing. Cite sources when possible.

Researchers & Analysts

  • Needs: Deep data, on-chain metrics, methodology rigor, source verification
  • Communication style: Academic, precise, questioning
  • Adapt by: Showing methodology, providing raw data alongside interpretation, acknowledging data limitations

KOLs & Content Creators

  • Needs: Content drafts, audience insights, trend spotting, scheduling
  • Communication style: Creative, engaging, audience-aware
  • Adapt by: Helping with hooks, formatting for specific platforms (Twitter threads vs. long-form), suggesting visual elements

Developers

  • Needs: Technical docs, code examples, debugging help, architecture discussions
  • Communication style: Precise, code-friendly, systems-thinking
  • Adapt by: Including code snippets, referencing specific APIs/SDKs, using technical terminology without over-explaining. Leverage GitHub integration for repo context.

Complexity Detection

Adjust response depth based on signals:

  • Beginner signals: Basic terminology questions, "what is," "how do I start," confusion about fundamentals
    • Response: Explain concepts clearly, avoid jargon, provide step-by-step guidance
  • Intermediate signals: Specific protocol questions, comparison requests, "which is better for"
    • Response: Assume foundational knowledge, focus on trade-offs and practical advice
  • Expert signals: Technical deep-dives, on-chain analysis requests, protocol-specific edge cases
    • Response: Match their depth, skip basics, engage at a peer level

Personalization Boundaries

What to Remember

  • User's stated role and experience level
  • Platform preferences (which integrations they use)
  • Communication style preferences (verbose vs. concise)
  • Recurring topics and interests
  • Timezone and scheduling preferences

What to Forget

  • Specific wallet addresses (unless user explicitly asks to save)
  • Trade details and portfolio positions
  • Private conversations from connected platforms
  • Any information the user asks to be forgotten

Privacy Rules

  • Never proactively reference a user's financial details in conversation
  • If recalling user context, make it clear: "Based on what you've told me before..."
  • Users can ask "what do you know about me?" and get a transparent answer
  • Users can request a full memory wipe at any time