From 05cb353f7f5318e58bd229c03c8577216b30b231 Mon Sep 17 00:00:00 2001 From: argenis de la rosa Date: Fri, 13 Feb 2026 12:19:14 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20initial=20release=20=E2=80=94=20ZeroCla?= =?UTF-8?q?w=20v0.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 22 AI providers (OpenRouter, Anthropic, OpenAI, Mistral, etc.) - 7 channels (CLI, Telegram, Discord, Slack, iMessage, Matrix, Webhook) - 5-step onboarding wizard with Project Context personalization - OpenClaw-aligned system prompt (SOUL.md, IDENTITY.md, USER.md, AGENTS.md, etc.) - SQLite memory backend with auto-save - Skills system with on-demand loading - Security: autonomy levels, command allowlists, cost limits - 532 tests passing, 0 clippy warnings --- .github/workflows/ci.yml | 65 + .github/workflows/release.yml | 90 ++ .github/workflows/security.yml | 37 + .gitignore | 3 + CHANGELOG.md | 33 + CONTRIBUTING.md | 209 +++ Cargo.lock | 2392 ++++++++++++++++++++++++++++++++ Cargo.toml | 76 + Dockerfile | 21 + LICENSE | 21 + README.md | 278 ++++ SECURITY.md | 63 + deny.toml | 34 + examples/custom_channel.rs | 124 ++ examples/custom_memory.rs | 160 +++ examples/custom_provider.rs | 65 + examples/custom_tool.rs | 76 + src/agent/loop_.rs | 182 +++ src/agent/mod.rs | 3 + src/channels/cli.rs | 117 ++ src/channels/discord.rs | 271 ++++ src/channels/imessage.rs | 265 ++++ src/channels/matrix.rs | 467 +++++++ src/channels/mod.rs | 550 ++++++++ src/channels/slack.rs | 174 +++ src/channels/telegram.rs | 182 +++ src/channels/traits.rs | 29 + src/config/mod.rs | 7 + src/config/schema.rs | 580 ++++++++ src/cron/mod.rs | 25 + src/gateway/mod.rs | 180 +++ src/heartbeat/engine.rs | 296 ++++ src/heartbeat/mod.rs | 1 + src/integrations/mod.rs | 234 ++++ src/integrations/registry.rs | 821 +++++++++++ src/lib.rs | 20 + src/main.rs | 326 +++++ src/memory/markdown.rs | 344 +++++ src/memory/mod.rs | 77 + src/memory/sqlite.rs | 481 +++++++ src/memory/traits.rs | 68 + src/observability/log.rs | 119 ++ src/observability/mod.rs | 76 + src/observability/multi.rs | 154 ++ src/observability/noop.rs | 72 + src/observability/traits.rs | 52 + src/onboard/mod.rs | 3 + src/onboard/wizard.rs | 1804 ++++++++++++++++++++++++ src/providers/anthropic.rs | 212 +++ src/providers/compatible.rs | 245 ++++ src/providers/mod.rs | 266 ++++ src/providers/ollama.rs | 177 +++ src/providers/openai.rs | 211 +++ src/providers/openrouter.rs | 107 ++ src/providers/traits.rs | 22 + src/runtime/mod.rs | 71 + src/runtime/native.rs | 72 + src/runtime/traits.rs | 25 + src/security/mod.rs | 3 + src/security/policy.rs | 365 +++++ src/skills/mod.rs | 615 ++++++++ src/tools/file_read.rs | 203 +++ src/tools/file_write.rs | 242 ++++ src/tools/memory_forget.rs | 118 ++ src/tools/memory_recall.rs | 163 +++ src/tools/memory_store.rs | 146 ++ src/tools/mod.rs | 189 +++ src/tools/shell.rs | 166 +++ src/tools/traits.rs | 43 + tests/memory_comparison.rs | 369 +++++ zeroclaw.png | Bin 0 -> 1203230 bytes 71 files changed, 15757 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/security.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 deny.toml create mode 100644 examples/custom_channel.rs create mode 100644 examples/custom_memory.rs create mode 100644 examples/custom_provider.rs create mode 100644 examples/custom_tool.rs create mode 100644 src/agent/loop_.rs create mode 100644 src/agent/mod.rs create mode 100644 src/channels/cli.rs create mode 100644 src/channels/discord.rs create mode 100644 src/channels/imessage.rs create mode 100644 src/channels/matrix.rs create mode 100644 src/channels/mod.rs create mode 100644 src/channels/slack.rs create mode 100644 src/channels/telegram.rs create mode 100644 src/channels/traits.rs create mode 100644 src/config/mod.rs create mode 100644 src/config/schema.rs create mode 100644 src/cron/mod.rs create mode 100644 src/gateway/mod.rs create mode 100644 src/heartbeat/engine.rs create mode 100644 src/heartbeat/mod.rs create mode 100644 src/integrations/mod.rs create mode 100644 src/integrations/registry.rs create mode 100644 src/lib.rs create mode 100644 src/main.rs create mode 100644 src/memory/markdown.rs create mode 100644 src/memory/mod.rs create mode 100644 src/memory/sqlite.rs create mode 100644 src/memory/traits.rs create mode 100644 src/observability/log.rs create mode 100644 src/observability/mod.rs create mode 100644 src/observability/multi.rs create mode 100644 src/observability/noop.rs create mode 100644 src/observability/traits.rs create mode 100644 src/onboard/mod.rs create mode 100644 src/onboard/wizard.rs create mode 100644 src/providers/anthropic.rs create mode 100644 src/providers/compatible.rs create mode 100644 src/providers/mod.rs create mode 100644 src/providers/ollama.rs create mode 100644 src/providers/openai.rs create mode 100644 src/providers/openrouter.rs create mode 100644 src/providers/traits.rs create mode 100644 src/runtime/mod.rs create mode 100644 src/runtime/native.rs create mode 100644 src/runtime/traits.rs create mode 100644 src/security/mod.rs create mode 100644 src/security/policy.rs create mode 100644 src/skills/mod.rs create mode 100644 src/tools/file_read.rs create mode 100644 src/tools/file_write.rs create mode 100644 src/tools/memory_forget.rs create mode 100644 src/tools/memory_recall.rs create mode 100644 src/tools/memory_store.rs create mode 100644 src/tools/mod.rs create mode 100644 src/tools/shell.rs create mode 100644 src/tools/traits.rs create mode 100644 tests/memory_comparison.rs create mode 100644 zeroclaw.png diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..920fdfa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: CI + +on: + push: + branches: [main, develop] + pull_request: + branches: [main] + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + + - uses: Swatinem/rust-cache@v2 + + - name: Check formatting + run: cargo fmt -- --check + + - name: Run clippy + run: cargo clippy -- -D warnings + + - name: Run tests + run: cargo test --verbose + + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + - os: macos-latest + target: x86_64-apple-darwin + - os: macos-latest + target: aarch64-apple-darwin + - os: windows-latest + target: x86_64-pc-windows-msvc + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - uses: Swatinem/rust-cache@v2 + + - name: Build release + run: cargo build --release --target ${{ matrix.target }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: zeroclaw-${{ matrix.target }} + path: target/${{ matrix.target }}/release/zeroclaw* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4a2b071 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,90 @@ +name: Release + +on: + push: + tags: ["v*"] + +permissions: + contents: write + +env: + CARGO_TERM_COLOR: always + +jobs: + build-release: + name: Build ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + artifact: zeroclaw + - os: macos-latest + target: x86_64-apple-darwin + artifact: zeroclaw + - os: macos-latest + target: aarch64-apple-darwin + artifact: zeroclaw + - os: windows-latest + target: x86_64-pc-windows-msvc + artifact: zeroclaw.exe + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} + + - uses: Swatinem/rust-cache@v2 + + - name: Build release + run: cargo build --release --target ${{ matrix.target }} + + - name: Check binary size (Unix) + if: runner.os != 'Windows' + run: | + SIZE=$(stat -f%z target/${{ matrix.target }}/release/${{ matrix.artifact }} 2>/dev/null || stat -c%s target/${{ matrix.target }}/release/${{ matrix.artifact }}) + echo "Binary size: $((SIZE / 1024 / 1024))MB ($SIZE bytes)" + if [ "$SIZE" -gt 5242880 ]; then + echo "::warning::Binary exceeds 5MB target" + fi + + - name: Package (Unix) + if: runner.os != 'Windows' + run: | + cd target/${{ matrix.target }}/release + tar czf ../../../zeroclaw-${{ matrix.target }}.tar.gz ${{ matrix.artifact }} + + - name: Package (Windows) + if: runner.os == 'Windows' + run: | + cd target/${{ matrix.target }}/release + 7z a ../../../zeroclaw-${{ matrix.target }}.zip ${{ matrix.artifact }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: zeroclaw-${{ matrix.target }} + path: zeroclaw-${{ matrix.target }}.* + + publish: + name: Publish Release + needs: build-release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + files: artifacts/**/* + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml new file mode 100644 index 0000000..822d96a --- /dev/null +++ b/.github/workflows/security.yml @@ -0,0 +1,37 @@ +name: Security Audit + +on: + push: + branches: [main] + pull_request: + branches: [main] + schedule: + - cron: "0 6 * * 1" # Weekly on Monday 6am UTC + +env: + CARGO_TERM_COLOR: always + +jobs: + audit: + name: Security Audit + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + + - name: Install cargo-audit + run: cargo install cargo-audit + + - name: Run cargo-audit + run: cargo audit + + deny: + name: License & Supply Chain + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: EmbarkStudios/cargo-deny-action@v2 + with: + command: check advisories licenses sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc96892 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/target +*.db +*.db-journal diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8ec9d30 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,33 @@ +# Changelog + +All notable changes to ZeroClaw will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0] - 2025-02-13 + +### Added +- **Core Architecture**: Trait-based pluggable system for Provider, Channel, Observer, RuntimeAdapter, Tool +- **Provider**: OpenRouter implementation (access Claude, GPT-4, Llama, Gemini via single API) +- **Channels**: CLI channel with interactive and single-message modes +- **Observability**: NoopObserver (zero overhead), LogObserver (tracing), MultiObserver (fan-out) +- **Security**: Workspace sandboxing, command allowlisting, path traversal blocking, autonomy levels (ReadOnly/Supervised/Full), rate limiting +- **Tools**: Shell (sandboxed), FileRead (path-checked), FileWrite (path-checked) +- **Memory (Brain)**: SQLite persistent backend (searchable, survives restarts), Markdown backend (plain files, human-readable) +- **Heartbeat Engine**: Periodic task execution from HEARTBEAT.md +- **Runtime**: Native adapter for Mac/Linux/Raspberry Pi +- **Config**: TOML-based configuration with sensible defaults +- **Onboarding**: Interactive CLI wizard with workspace scaffolding +- **CLI Commands**: agent, gateway, status, cron, channel, tools, onboard +- **CI/CD**: GitHub Actions with cross-platform builds (Linux, macOS Intel/ARM, Windows) +- **Tests**: 159 inline tests covering all modules and edge cases +- **Binary**: 3.1MB optimized release build (includes bundled SQLite) + +### Security +- Path traversal attack prevention +- Command injection blocking +- Workspace escape prevention +- Forbidden system path protection (`/etc`, `/root`, `~/.ssh`) + +[0.1.0]: https://github.com/theonlyhennygod/zeroclaw/releases/tag/v0.1.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a18a9c0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,209 @@ +# Contributing to ZeroClaw + +Thanks for your interest in contributing to ZeroClaw! This guide will help you get started. + +## Development Setup + +```bash +# Clone the repo +git clone https://github.com/theonlyhennygod/zeroclaw.git +cd zeroclaw + +# Build +cargo build + +# Run tests (180 tests, all must pass) +cargo test + +# Format & lint (must pass before PR) +cargo fmt && cargo clippy -- -D warnings + +# Release build (~3.1MB) +cargo build --release +``` + +## Architecture: Trait-Based Pluggability + +ZeroClaw's architecture is built on **traits** — every subsystem is swappable. This means contributing a new integration is as simple as implementing a trait and registering it in the factory function. + +``` +src/ +├── providers/ # LLM backends → Provider trait +├── channels/ # Messaging → Channel trait +├── observability/ # Metrics/logging → Observer trait +├── runtime/ # Platform adapters → RuntimeAdapter trait +├── tools/ # Agent tools → Tool trait +├── memory/ # Persistence/brain → Memory trait +└── security/ # Sandboxing → SecurityPolicy +``` + +## How to Add a New Provider + +Create `src/providers/your_provider.rs`: + +```rust +use async_trait::async_trait; +use anyhow::Result; +use crate::providers::traits::Provider; + +pub struct YourProvider { + api_key: String, + client: reqwest::Client, +} + +impl YourProvider { + pub fn new(api_key: Option<&str>) -> Self { + Self { + api_key: api_key.unwrap_or_default().to_string(), + client: reqwest::Client::new(), + } + } +} + +#[async_trait] +impl Provider for YourProvider { + async fn chat(&self, message: &str, model: &str, temperature: f64) -> Result { + // Your API call here + todo!() + } +} +``` + +Then register it in `src/providers/mod.rs`: + +```rust +"your_provider" => Ok(Box::new(your_provider::YourProvider::new(api_key))), +``` + +## How to Add a New Channel + +Create `src/channels/your_channel.rs`: + +```rust +use async_trait::async_trait; +use anyhow::Result; +use tokio::sync::mpsc; +use crate::channels::traits::{Channel, ChannelMessage}; + +pub struct YourChannel { /* config fields */ } + +#[async_trait] +impl Channel for YourChannel { + fn name(&self) -> &str { "your_channel" } + + async fn send(&self, message: &str, recipient: &str) -> Result<()> { + // Send message via your platform + todo!() + } + + async fn listen(&self, tx: mpsc::Sender) -> Result<()> { + // Listen for incoming messages, forward to tx + todo!() + } + + async fn health_check(&self) -> bool { true } +} +``` + +## How to Add a New Observer + +Create `src/observability/your_observer.rs`: + +```rust +use crate::observability::traits::{Observer, ObserverEvent, ObserverMetric}; + +pub struct YourObserver { /* client, config, etc. */ } + +impl Observer for YourObserver { + fn record_event(&self, event: &ObserverEvent) { + // Push event to your backend + } + + fn record_metric(&self, metric: &ObserverMetric) { + // Push metric to your backend + } + + fn name(&self) -> &str { "your_observer" } +} +``` + +## How to Add a New Tool + +Create `src/tools/your_tool.rs`: + +```rust +use async_trait::async_trait; +use anyhow::Result; +use serde_json::{json, Value}; +use crate::tools::traits::{Tool, ToolResult}; + +pub struct YourTool { /* security policy, config, etc. */ } + +#[async_trait] +impl Tool for YourTool { + fn name(&self) -> &str { "your_tool" } + + fn description(&self) -> &str { "Does something useful" } + + fn parameters_schema(&self) -> Value { + json!({ + "type": "object", + "properties": { + "input": { "type": "string", "description": "The input" } + }, + "required": ["input"] + }) + } + + async fn execute(&self, args: Value) -> Result { + let input = args["input"].as_str() + .ok_or_else(|| anyhow::anyhow!("Missing 'input'"))?; + Ok(ToolResult { + success: true, + output: format!("Processed: {input}"), + error: None, + }) + } +} +``` + +## Pull Request Checklist + +- [ ] `cargo fmt` — code is formatted +- [ ] `cargo clippy -- -D warnings` — no warnings +- [ ] `cargo test` — all 129+ tests pass +- [ ] New code has inline `#[cfg(test)]` tests +- [ ] No new dependencies unless absolutely necessary (we optimize for binary size) +- [ ] README updated if adding user-facing features +- [ ] Follows existing code patterns and conventions + +## Commit Convention + +We use [Conventional Commits](https://www.conventionalcommits.org/): + +``` +feat: add Anthropic provider +fix: path traversal edge case with symlinks +docs: update contributing guide +test: add heartbeat unicode parsing tests +refactor: extract common security checks +chore: bump tokio to 1.43 +``` + +## Code Style + +- **Minimal dependencies** — every crate adds to binary size +- **Inline tests** — `#[cfg(test)] mod tests {}` at the bottom of each file +- **Trait-first** — define the trait, then implement +- **Security by default** — sandbox everything, allowlist, never blocklist +- **No unwrap in production code** — use `?`, `anyhow`, or `thiserror` + +## Reporting Issues + +- **Bugs**: Include OS, Rust version, steps to reproduce, expected vs actual +- **Features**: Describe the use case, propose which trait to extend +- **Security**: See [SECURITY.md](SECURITY.md) for responsible disclosure + +## License + +By contributing, you agree that your contributions will be licensed under the MIT License. diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..747e2d9 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2392 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anyhow" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +dependencies = [ + "iana-time-zone", + "num-traits", + "windows-link", +] + +[[package]] +name = "clap" +version = "4.5.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "console" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width", + "windows-sys 0.59.0", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "data-encoding" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "dialoguer" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" +dependencies = [ + "console", + "fuzzy-matcher", + "shell-words", + "tempfile", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.4.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "hashlink" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hostname" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" +dependencies = [ + "cfg-if", + "libc", + "windows-link", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots 1.0.6", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libredox" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +dependencies = [ + "bitflags", + "libc", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 1.0.6", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rusqlite" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" +dependencies = [ + "bitflags", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-words" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" + +[[package]] +name = "shellexpand" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" +dependencies = [ + "dirs", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +dependencies = [ + "fastrand", + "getrandom 0.3.4", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-test" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6d24790a10a7af737693a3e8f1d03faef7e6ca0cc99aae5066f533766de545" +dependencies = [ + "futures-core", + "tokio", + "tokio-stream", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki-roots 0.26.11", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "unicode-ident" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +dependencies = [ + "getrandom 0.3.4", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.6", +] + +[[package]] +name = "webpki-roots" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroclaw" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "chrono", + "clap", + "console", + "dialoguer", + "directories", + "futures-util", + "hostname", + "reqwest", + "rusqlite", + "serde", + "serde_json", + "shellexpand", + "tempfile", + "thiserror 2.0.18", + "tokio", + "tokio-test", + "tokio-tungstenite", + "toml", + "tracing", + "tracing-subscriber", + "uuid", +] + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..566a63a --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,76 @@ +[package] +name = "zeroclaw" +version = "0.1.0" +edition = "2021" +authors = ["theonlyhennygod"] +license = "MIT" +description = "Zero overhead. Zero compromise. 100% Rust. The fastest, smallest AI assistant." +repository = "https://github.com/theonlyhennygod/zeroclaw" +readme = "README.md" +keywords = ["ai", "agent", "cli", "assistant", "chatbot"] +categories = ["command-line-utilities", "api-bindings"] + +[dependencies] +# CLI - minimal and fast +clap = { version = "4.5", features = ["derive"] } + +# Async runtime - feature-optimized for size +tokio = { version = "1.42", default-features = false, features = ["rt-multi-thread", "macros", "time", "net", "io-util", "sync", "process", "io-std", "fs"] } + +# HTTP client - minimal features +reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "blocking"] } + +# Serialization +serde = { version = "1.0", default-features = false, features = ["derive"] } +serde_json = { version = "1.0", default-features = false, features = ["std"] } + +# Config +directories = "5.0" +toml = "0.8" +shellexpand = "3.1" + +# Logging - minimal +tracing = { version = "0.1", default-features = false } +tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "ansi"] } + +# Error handling +anyhow = "1.0" +thiserror = "2.0" + +# UUID generation +uuid = { version = "1.11", default-features = false, features = ["v4", "std"] } + +# Async traits +async-trait = "0.1" + +# Memory / persistence +rusqlite = { version = "0.32", features = ["bundled"] } +chrono = { version = "0.4", default-features = false, features = ["clock", "std"] } + +# Interactive CLI prompts +dialoguer = { version = "0.11", features = ["fuzzy-select"] } +console = "0.15" + +# Discord WebSocket gateway +tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] } +futures-util = { version = "0.3", default-features = false, features = ["sink"] } +hostname = "0.4.2" + +[profile.release] +opt-level = "z" # Optimize for size +lto = true # Link-time optimization +codegen-units = 1 # Better optimization +strip = true # Remove debug symbols +panic = "abort" # Reduce binary size + +[profile.dist] +inherits = "release" +opt-level = "z" +lto = "fat" +codegen-units = 1 +strip = true +panic = "abort" + +[dev-dependencies] +tokio-test = "0.4" +tempfile = "3.14" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..71a301f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# ── Stage 1: Build ──────────────────────────────────────────── +FROM rust:1.83-slim AS builder + +WORKDIR /app +COPY Cargo.toml Cargo.lock ./ +COPY src/ src/ + +RUN cargo build --release --locked && \ + strip target/release/zeroclaw + +# ── Stage 2: Runtime (distroless — no shell, no OS, tiny) ──── +FROM gcr.io/distroless/cc-debian12 + +COPY --from=builder /app/target/release/zeroclaw /usr/local/bin/zeroclaw + +# Default workspace +VOLUME ["/workspace"] +ENV ZEROCLAW_WORKSPACE=/workspace + +ENTRYPOINT ["zeroclaw"] +CMD ["gateway"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1484174 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 theonlyhennygod + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7955bf --- /dev/null +++ b/README.md @@ -0,0 +1,278 @@ +

+ ZeroClaw +

+ +

ZeroClaw 🦀

+ +

+ Zero overhead. Zero compromise. 100% Rust. 100% Agnostic. +

+ +

+ License: MIT +

+ +The fastest, smallest, fully autonomous AI assistant — deploy anywhere, swap anything. + +``` +~3MB binary · <10ms startup · 502 tests · 22 providers · Pluggable everything +``` + +## Quick Start + +```bash +git clone https://github.com/theonlyhennygod/zeroclaw.git +cd zeroclaw +cargo build --release + +# Initialize config + workspace +cargo run --release -- onboard + +# Set your API key +export OPENROUTER_API_KEY="sk-..." + +# Chat +cargo run --release -- agent -m "Hello, ZeroClaw!" + +# Interactive mode +cargo run --release -- agent + +# Check status +cargo run --release -- status --verbose + +# List tools (includes memory tools) +cargo run --release -- tools list + +# Test a tool directly +cargo run --release -- tools test memory_store '{"key": "lang", "content": "User prefers Rust"}' +cargo run --release -- tools test memory_recall '{"query": "Rust"}' +``` + +> **Tip:** Run `cargo install --path .` to install `zeroclaw` globally, then use `zeroclaw` instead of `cargo run --release --`. + +## Architecture + +Every subsystem is a **trait** — swap implementations with a config change, zero code changes. + +| Subsystem | Trait | Ships with | Extend | +|-----------|-------|------------|--------| +| **AI Models** | `Provider` | 22 providers (OpenRouter, Anthropic, OpenAI, Venice, Groq, Mistral, etc.) | Any OpenAI-compatible API | +| **Channels** | `Channel` | CLI, Telegram, Discord, Slack, iMessage, Matrix, Webhook | Any messaging API | +| **Memory** | `Memory` | SQLite (default), Markdown | Any persistence | +| **Tools** | `Tool` | shell, file_read, file_write, memory_store, memory_recall, memory_forget | Any capability | +| **Observability** | `Observer` | Noop, Log, Multi | Prometheus, OTel | +| **Runtime** | `RuntimeAdapter` | Native (Mac/Linux/Pi) | Docker, WASM | +| **Security** | `SecurityPolicy` | Sandbox + allowlists + rate limits | — | +| **Heartbeat** | Engine | HEARTBEAT.md periodic tasks | — | + +### Memory System + +ZeroClaw has a built-in brain. The agent automatically: +1. **Recalls** relevant memories before each prompt (context injection) +2. **Saves** conversation turns to memory (auto-save) +3. **Manages** its own memory via tools (store/recall/forget) + +Two backends — **SQLite** (default, searchable, upsert, delete) and **Markdown** (human-readable, append-only, git-friendly). Switch with one config line. + +### Security + +- **Workspace sandboxing** — can't escape workspace directory +- **Command allowlisting** — only approved shell commands +- **Path traversal blocking** — `..` and absolute paths blocked +- **Rate limiting** — max actions/hour, max cost/day +- **Autonomy levels** — ReadOnly, Supervised, Full + +## Configuration + +Config: `~/.zeroclaw/config.toml` (created by `onboard`) + +## Documentation Index + +Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt +Use this file to discover all available pages before exploring further. + +## Token Use & Costs + +ZeroClaw tracks **tokens**, not characters. Tokens are model-specific, but most +OpenAI-style models average ~4 characters per token for English text. + +### How the system prompt is built + +ZeroClaw assembles its own system prompt on every run. It includes: + +* Tool list + short descriptions +* Skills list (only metadata; instructions are loaded on demand with `read`) +* Self-update instructions +* Workspace + bootstrap files (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md` when new, plus `MEMORY.md` and/or `memory.md` when present). Large files are truncated by `agents.defaults.bootstrapMaxChars` (default: 20000). `memory/*.md` files are on-demand via memory tools and are not auto-injected. +* Time (UTC + user timezone) +* Reply tags + heartbeat behavior +* Runtime metadata (host/OS/model/thinking) + +### What counts in the context window + +Everything the model receives counts toward the context limit: + +* System prompt (all sections listed above) +* Conversation history (user + assistant messages) +* Tool calls and tool results +* Attachments/transcripts (images, audio, files) +* Compaction summaries and pruning artifacts +* Provider wrappers or safety headers (not visible, but still counted) + +### How to see current token usage + +Use these in chat: + +* `/status` → **emoji-rich status card** with the session model, context usage, + last response input/output tokens, and **estimated cost** (API key only). +* `/usage off|tokens|full` → appends a **per-response usage footer** to every reply. + * Persists per session (stored as `responseUsage`). + * OAuth auth **hides cost** (tokens only). +* `/usage cost` → shows a local cost summary from ZeroClaw session logs. + +Other surfaces: + +* **TUI/Web TUI:** `/status` + `/usage` are supported. +* **CLI:** `zeroclaw status --usage` and `zeroclaw channels list` show + provider quota windows (not per-response costs). + +### Cost estimation (when shown) + +Costs are estimated from your model pricing config: + +``` +models.providers..models[].cost +``` + +These are **USD per 1M tokens** for `input`, `output`, `cacheRead`, and +`cacheWrite`. If pricing is missing, ZeroClaw shows tokens only. OAuth tokens +never show dollar cost. + +### Cache TTL and pruning impact + +Provider prompt caching only applies within the cache TTL window. ZeroClaw can +optionally run **cache-ttl pruning**: it prunes the session once the cache TTL +has expired, then resets the cache window so subsequent requests can re-use the +freshly cached context instead of re-caching the full history. This keeps cache +write costs lower when a session goes idle past the TTL. + +Configure it in Gateway configuration and see the behavior details in +[Session pruning](/concepts/session-pruning). + +Heartbeat can keep the cache **warm** across idle gaps. If your model cache TTL +is `1h`, setting the heartbeat interval just under that (e.g., `55m`) can avoid +re-caching the full prompt, reducing cache write costs. + +For Anthropic API pricing, cache reads are significantly cheaper than input +tokens, while cache writes are billed at a higher multiplier. See Anthropic's +prompt caching pricing for the latest rates and TTL multipliers: +[https://docs.anthropic.com/docs/build-with-claude/prompt-caching](https://docs.anthropic.com/docs/build-with-claude/prompt-caching) + +#### Example: keep 1h cache warm with heartbeat + +```yaml +agents: + defaults: + model: + primary: "anthropic/claude-opus-4-6" + models: + "anthropic/claude-opus-4-6": + params: + cacheRetention: "long" + heartbeat: + every: "55m" +``` + +### Tips for reducing token pressure + +* Use `/compact` to summarize long sessions. +* Trim large tool outputs in your workflows. +* Keep skill descriptions short (skill list is injected into the prompt). +* Prefer smaller models for verbose, exploratory work. + +```toml +api_key = "sk-..." +default_provider = "openrouter" +default_model = "anthropic/claude-sonnet-4-20250514" +default_temperature = 0.7 + +[memory] +backend = "sqlite" # "sqlite", "markdown", "none" +auto_save = true + +[autonomy] +level = "supervised" # "readonly", "supervised", "full" +workspace_only = true +allowed_commands = ["git", "npm", "cargo", "ls", "cat", "grep"] + +[heartbeat] +enabled = false +interval_minutes = 30 +``` + +## Commands + +| Command | Description | +|---------|-------------| +| `onboard` | Initialize workspace and config | +| `agent -m "..."` | Single message mode | +| `agent` | Interactive chat mode | +| `status -v` | Show full system status | +| `tools list` | List all 6 tools | +| `tools test ` | Test a tool directly | +| `gateway` | Start webhook/WebSocket server | + +## Development + +```bash +cargo build # Dev build +cargo build --release # Release build (~3MB) +cargo test # 502 tests +cargo clippy # Lint (0 warnings) + +# Run the SQLite vs Markdown benchmark +cargo test --test memory_comparison -- --nocapture +``` + +## Project Structure + +``` +src/ +├── main.rs # CLI (clap) +├── lib.rs # Library exports +├── agent/ # Agent loop + context injection +├── channels/ # Channel trait + CLI +├── config/ # TOML config schema +├── cron/ # Scheduled tasks +├── heartbeat/ # HEARTBEAT.md engine +├── memory/ # Memory trait + SQLite + Markdown +├── observability/ # Observer trait + Noop/Log/Multi +├── providers/ # Provider trait + 22 providers +├── runtime/ # RuntimeAdapter trait + Native +├── security/ # Sandbox + allowlists + autonomy +└── tools/ # Tool trait + shell/file/memory tools +examples/ +├── custom_provider.rs +├── custom_channel.rs +├── custom_tool.rs +└── custom_memory.rs +tests/ +└── memory_comparison.rs # SQLite vs Markdown benchmark +``` + +## License + +MIT — see [LICENSE](LICENSE) + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). Implement a trait, submit a PR: +- New `Provider` → `src/providers/` +- New `Channel` → `src/channels/` +- New `Observer` → `src/observability/` +- New `Tool` → `src/tools/` +- New `Memory` → `src/memory/` + +--- + +**ZeroClaw** — Zero overhead. Zero compromise. Deploy anywhere. Swap anything. 🦀 diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..9fc4b11 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,63 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | +| ------- | ------------------ | +| 0.1.x | :white_check_mark: | + +## Reporting a Vulnerability + +**Please do NOT open a public GitHub issue for security vulnerabilities.** + +Instead, please report them responsibly: + +1. **Email**: Send details to the maintainers via GitHub private vulnerability reporting +2. **GitHub**: Use [GitHub Security Advisories](https://github.com/theonlyhennygod/zeroclaw/security/advisories/new) + +### What to Include + +- Description of the vulnerability +- Steps to reproduce +- Impact assessment +- Suggested fix (if any) + +### Response Timeline + +- **Acknowledgment**: Within 48 hours +- **Assessment**: Within 1 week +- **Fix**: Within 2 weeks for critical issues + +## Security Architecture + +ZeroClaw implements defense-in-depth security: + +### Autonomy Levels +- **ReadOnly** — Agent can only read, no shell or write access +- **Supervised** — Agent can act within allowlists (default) +- **Full** — Agent has full access within workspace sandbox + +### Sandboxing Layers +1. **Workspace isolation** — All file operations confined to workspace directory +2. **Path traversal blocking** — `..` sequences and absolute paths rejected +3. **Command allowlisting** — Only explicitly approved commands can execute +4. **Forbidden path list** — Critical system paths (`/etc`, `/root`, `~/.ssh`) always blocked +5. **Rate limiting** — Max actions per hour and cost per day caps + +### What We Protect Against +- Path traversal attacks (`../../../etc/passwd`) +- Command injection (`rm -rf /`, `curl | sh`) +- Workspace escape via symlinks or absolute paths +- Runaway cost from LLM API calls +- Unauthorized shell command execution + +## Security Testing + +All security mechanisms are covered by automated tests (129 tests): + +```bash +cargo test -- security +cargo test -- tools::shell +cargo test -- tools::file_read +cargo test -- tools::file_write +``` diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..e167dc1 --- /dev/null +++ b/deny.toml @@ -0,0 +1,34 @@ +# cargo-deny configuration +# https://embarkstudios.github.io/cargo-deny/ + +[advisories] +vulnerability = "deny" +unmaintained = "warn" +yanked = "warn" +notice = "warn" + +[licenses] +unlicensed = "deny" +allow = [ + "MIT", + "Apache-2.0", + "BSD-2-Clause", + "BSD-3-Clause", + "ISC", + "Unicode-3.0", + "Unicode-DFS-2016", + "OpenSSL", + "Zlib", + "MPL-2.0", +] +copyleft = "deny" + +[bans] +multiple-versions = "warn" +wildcards = "allow" + +[sources] +unknown-registry = "deny" +unknown-git = "deny" +allow-registry = ["https://github.com/rust-lang/crates.io-index"] +allow-git = [] diff --git a/examples/custom_channel.rs b/examples/custom_channel.rs new file mode 100644 index 0000000..dbac7d1 --- /dev/null +++ b/examples/custom_channel.rs @@ -0,0 +1,124 @@ +//! Example: Implementing a custom Channel for ZeroClaw +//! +//! Channels let ZeroClaw communicate through any messaging platform. +//! Implement the Channel trait, register it, and the agent works everywhere. + +use anyhow::Result; +use async_trait::async_trait; +use tokio::sync::mpsc; + +/// Mirrors src/channels/traits.rs +#[derive(Debug, Clone)] +pub struct ChannelMessage { + pub id: String, + pub sender: String, + pub content: String, + pub channel: String, + pub timestamp: u64, +} + +#[async_trait] +pub trait Channel: Send + Sync { + fn name(&self) -> &str; + async fn send(&self, message: &str, recipient: &str) -> Result<()>; + async fn listen(&self, tx: mpsc::Sender) -> Result<()>; + async fn health_check(&self) -> bool; +} + +/// Example: Telegram channel via Bot API +pub struct TelegramChannel { + bot_token: String, + allowed_users: Vec, + client: reqwest::Client, +} + +impl TelegramChannel { + pub fn new(bot_token: &str, allowed_users: Vec) -> Self { + Self { + bot_token: bot_token.to_string(), + allowed_users, + client: reqwest::Client::new(), + } + } + + fn api_url(&self, method: &str) -> String { + format!("https://api.telegram.org/bot{}/{method}", self.bot_token) + } +} + +#[async_trait] +impl Channel for TelegramChannel { + fn name(&self) -> &str { + "telegram" + } + + async fn send(&self, message: &str, chat_id: &str) -> Result<()> { + self.client + .post(&self.api_url("sendMessage")) + .json(&serde_json::json!({ + "chat_id": chat_id, + "text": message, + "parse_mode": "Markdown", + })) + .send() + .await?; + Ok(()) + } + + async fn listen(&self, tx: mpsc::Sender) -> Result<()> { + let mut offset: i64 = 0; + + loop { + let resp = self + .client + .get(&self.api_url("getUpdates")) + .query(&[("offset", offset.to_string()), ("timeout", "30".into())]) + .send() + .await? + .json::() + .await?; + + if let Some(updates) = resp["result"].as_array() { + for update in updates { + if let Some(msg) = update.get("message") { + let sender = msg["from"]["username"] + .as_str() + .unwrap_or("unknown") + .to_string(); + + if !self.allowed_users.is_empty() && !self.allowed_users.contains(&sender) { + continue; + } + + let channel_msg = ChannelMessage { + id: msg["message_id"].to_string(), + sender, + content: msg["text"].as_str().unwrap_or("").to_string(), + channel: "telegram".into(), + timestamp: msg["date"].as_u64().unwrap_or(0), + }; + + if tx.send(channel_msg).await.is_err() { + return Ok(()); + } + } + offset = update["update_id"].as_i64().unwrap_or(offset) + 1; + } + } + } + } + + async fn health_check(&self) -> bool { + self.client + .get(&self.api_url("getMe")) + .send() + .await + .map(|r| r.status().is_success()) + .unwrap_or(false) + } +} + +fn main() { + println!("This is an example — see CONTRIBUTING.md for integration steps."); + println!("Add your channel config to ChannelsConfig in src/config/schema.rs"); +} diff --git a/examples/custom_memory.rs b/examples/custom_memory.rs new file mode 100644 index 0000000..fcd299d --- /dev/null +++ b/examples/custom_memory.rs @@ -0,0 +1,160 @@ +//! Example: Implementing a custom Memory backend for ZeroClaw +//! +//! This demonstrates how to create a Redis-backed memory backend. +//! The Memory trait is async and pluggable — implement it for any storage. +//! +//! Run: cargo run --example custom_memory + +use async_trait::async_trait; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::sync::Mutex; + +// ── Re-define the trait types (in your app, import from zeroclaw::memory) ── + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub enum MemoryCategory { + Core, + Daily, + Conversation, + Custom(String), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct MemoryEntry { + pub id: String, + pub key: String, + pub content: String, + pub category: MemoryCategory, + pub timestamp: String, + pub score: Option, +} + +#[async_trait] +pub trait Memory: Send + Sync { + fn name(&self) -> &str; + async fn store(&self, key: &str, content: &str, category: MemoryCategory) + -> anyhow::Result<()>; + async fn recall(&self, query: &str, limit: usize) -> anyhow::Result>; + async fn get(&self, key: &str) -> anyhow::Result>; + async fn forget(&self, key: &str) -> anyhow::Result; + async fn count(&self) -> anyhow::Result; +} + +// ── Your custom implementation ───────────────────────────────────── + +/// In-memory HashMap backend (great for testing or ephemeral sessions) +pub struct InMemoryBackend { + store: Mutex>, +} + +impl InMemoryBackend { + pub fn new() -> Self { + Self { + store: Mutex::new(HashMap::new()), + } + } +} + +#[async_trait] +impl Memory for InMemoryBackend { + fn name(&self) -> &str { + "in-memory" + } + + async fn store( + &self, + key: &str, + content: &str, + category: MemoryCategory, + ) -> anyhow::Result<()> { + let entry = MemoryEntry { + id: uuid::Uuid::new_v4().to_string(), + key: key.to_string(), + content: content.to_string(), + category, + timestamp: chrono::Local::now().to_rfc3339(), + score: None, + }; + self.store + .lock() + .map_err(|e| anyhow::anyhow!("{e}"))? + .insert(key.to_string(), entry); + Ok(()) + } + + async fn recall(&self, query: &str, limit: usize) -> anyhow::Result> { + let store = self.store.lock().map_err(|e| anyhow::anyhow!("{e}"))?; + let query_lower = query.to_lowercase(); + + let mut results: Vec = store + .values() + .filter(|e| e.content.to_lowercase().contains(&query_lower)) + .cloned() + .collect(); + + results.truncate(limit); + Ok(results) + } + + async fn get(&self, key: &str) -> anyhow::Result> { + let store = self.store.lock().map_err(|e| anyhow::anyhow!("{e}"))?; + Ok(store.get(key).cloned()) + } + + async fn forget(&self, key: &str) -> anyhow::Result { + let mut store = self.store.lock().map_err(|e| anyhow::anyhow!("{e}"))?; + Ok(store.remove(key).is_some()) + } + + async fn count(&self) -> anyhow::Result { + let store = self.store.lock().map_err(|e| anyhow::anyhow!("{e}"))?; + Ok(store.len()) + } +} + +// ── Demo usage ───────────────────────────────────────────────────── + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + let brain = InMemoryBackend::new(); + + println!("🧠 ZeroClaw Memory Demo — InMemoryBackend\n"); + + // Store some memories + brain + .store("user_lang", "User prefers Rust", MemoryCategory::Core) + .await?; + brain + .store("user_tz", "Timezone is EST", MemoryCategory::Core) + .await?; + brain + .store( + "today_note", + "Completed memory system implementation", + MemoryCategory::Daily, + ) + .await?; + + println!("Stored {} memories", brain.count().await?); + + // Recall by keyword + let results = brain.recall("Rust", 5).await?; + println!("\nRecall 'Rust' → {} results:", results.len()); + for entry in &results { + println!(" [{:?}] {}: {}", entry.category, entry.key, entry.content); + } + + // Get by key + if let Some(entry) = brain.get("user_tz").await? { + println!("\nGet 'user_tz' → {}", entry.content); + } + + // Forget + let removed = brain.forget("user_tz").await?; + println!("Forget 'user_tz' → removed: {removed}"); + println!("Remaining: {} memories", brain.count().await?); + + println!("\n✅ Memory backend works! Implement the Memory trait for any storage."); + Ok(()) +} diff --git a/examples/custom_provider.rs b/examples/custom_provider.rs new file mode 100644 index 0000000..4ad821c --- /dev/null +++ b/examples/custom_provider.rs @@ -0,0 +1,65 @@ +//! Example: Implementing a custom Provider for ZeroClaw +//! +//! This shows how to add a new LLM backend in ~30 lines of code. +//! Copy this file, modify the API call, and register in `src/providers/mod.rs`. + +use anyhow::Result; +use async_trait::async_trait; + +// In a real implementation, you'd import from the crate: +// use zeroclaw::providers::traits::Provider; + +/// Minimal Provider trait (mirrors src/providers/traits.rs) +#[async_trait] +pub trait Provider: Send + Sync { + async fn chat(&self, message: &str, model: &str, temperature: f64) -> Result; +} + +/// Example: Ollama local provider +pub struct OllamaProvider { + base_url: String, + client: reqwest::Client, +} + +impl OllamaProvider { + pub fn new(base_url: Option<&str>) -> Self { + Self { + base_url: base_url.unwrap_or("http://localhost:11434").to_string(), + client: reqwest::Client::new(), + } + } +} + +#[async_trait] +impl Provider for OllamaProvider { + async fn chat(&self, message: &str, model: &str, temperature: f64) -> Result { + let url = format!("{}/api/generate", self.base_url); + + let body = serde_json::json!({ + "model": model, + "prompt": message, + "temperature": temperature, + "stream": false, + }); + + let resp = self + .client + .post(&url) + .json(&body) + .send() + .await? + .json::() + .await?; + + resp["response"] + .as_str() + .map(|s| s.to_string()) + .ok_or_else(|| anyhow::anyhow!("No response field in Ollama reply")) + } +} + +fn main() { + println!("This is an example — see CONTRIBUTING.md for integration steps."); + println!("Register your provider in src/providers/mod.rs:"); + println!(" \"ollama\" => Ok(Box::new(ollama::OllamaProvider::new(None))),"); +} diff --git a/examples/custom_tool.rs b/examples/custom_tool.rs new file mode 100644 index 0000000..61768d4 --- /dev/null +++ b/examples/custom_tool.rs @@ -0,0 +1,76 @@ +//! Example: Implementing a custom Tool for ZeroClaw +//! +//! This shows how to add a new tool the agent can use. +//! Tools are the agent's hands — they let it interact with the world. + +use anyhow::Result; +use async_trait::async_trait; +use serde_json::{json, Value}; + +/// Mirrors src/tools/traits.rs +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] +pub struct ToolResult { + pub success: bool, + pub output: String, + pub error: Option, +} + +#[async_trait] +pub trait Tool: Send + Sync { + fn name(&self) -> &str; + fn description(&self) -> &str; + fn parameters_schema(&self) -> Value; + async fn execute(&self, args: Value) -> Result; +} + +/// Example: A tool that fetches a URL and returns the status code +pub struct HttpGetTool; + +#[async_trait] +impl Tool for HttpGetTool { + fn name(&self) -> &str { + "http_get" + } + + fn description(&self) -> &str { + "Fetch a URL and return the HTTP status code and content length" + } + + fn parameters_schema(&self) -> Value { + json!({ + "type": "object", + "properties": { + "url": { "type": "string", "description": "URL to fetch" } + }, + "required": ["url"] + }) + } + + async fn execute(&self, args: Value) -> Result { + let url = args["url"] + .as_str() + .ok_or_else(|| anyhow::anyhow!("Missing 'url' parameter"))?; + + match reqwest::get(url).await { + Ok(resp) => { + let status = resp.status().as_u16(); + let len = resp.content_length().unwrap_or(0); + Ok(ToolResult { + success: status < 400, + output: format!("HTTP {status} — {len} bytes"), + error: None, + }) + } + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Request failed: {e}")), + }), + } + } +} + +fn main() { + println!("This is an example — see CONTRIBUTING.md for integration steps."); + println!("Register your tool in src/tools/mod.rs default_tools()"); +} diff --git a/src/agent/loop_.rs b/src/agent/loop_.rs new file mode 100644 index 0000000..6ed423c --- /dev/null +++ b/src/agent/loop_.rs @@ -0,0 +1,182 @@ +use crate::config::Config; +use crate::memory::{self, Memory, MemoryCategory}; +use crate::observability::{self, Observer, ObserverEvent}; +use crate::providers::{self, Provider}; +use crate::runtime; +use crate::security::SecurityPolicy; +use crate::tools; +use anyhow::Result; +use std::fmt::Write; +use std::sync::Arc; +use std::time::Instant; + +/// Build context preamble by searching memory for relevant entries +async fn build_context(mem: &dyn Memory, user_msg: &str) -> String { + let mut context = String::new(); + + // Pull relevant memories for this message + if let Ok(entries) = mem.recall(user_msg, 5).await { + if !entries.is_empty() { + context.push_str("[Memory context]\n"); + for entry in &entries { + let _ = writeln!(context, "- {}: {}", entry.key, entry.content); + } + context.push('\n'); + } + } + + context +} + +#[allow(clippy::too_many_lines)] +pub async fn run( + config: Config, + message: Option, + provider_override: Option, + model_override: Option, + temperature: f64, +) -> Result<()> { + // ── Wire up agnostic subsystems ────────────────────────────── + let observer: Arc = + Arc::from(observability::create_observer(&config.observability)); + let _runtime = runtime::create_runtime(&config.runtime); + let security = Arc::new(SecurityPolicy::from_config( + &config.autonomy, + &config.workspace_dir, + )); + + // ── Memory (the brain) ──────────────────────────────────────── + let mem: Arc = + Arc::from(memory::create_memory(&config.memory, &config.workspace_dir)?); + tracing::info!(backend = mem.name(), "Memory initialized"); + + // ── Tools (including memory tools) ──────────────────────────── + let _tools = tools::all_tools(security, mem.clone()); + + // ── Resolve provider ───────────────────────────────────────── + let provider_name = provider_override + .as_deref() + .or(config.default_provider.as_deref()) + .unwrap_or("openrouter"); + + let model_name = model_override + .as_deref() + .or(config.default_model.as_deref()) + .unwrap_or("anthropic/claude-sonnet-4-20250514"); + + let provider: Box = + providers::create_provider(provider_name, config.api_key.as_deref())?; + + observer.record_event(&ObserverEvent::AgentStart { + provider: provider_name.to_string(), + model: model_name.to_string(), + }); + + // ── Build system prompt from workspace MD files (OpenClaw framework) ── + let skills = crate::skills::load_skills(&config.workspace_dir); + let tool_descs: Vec<(&str, &str)> = vec![ + ("shell", "Execute terminal commands"), + ("file_read", "Read file contents"), + ("file_write", "Write file contents"), + ("memory_store", "Save to memory"), + ("memory_recall", "Search memory"), + ("memory_forget", "Delete a memory entry"), + ]; + let system_prompt = crate::channels::build_system_prompt( + &config.workspace_dir, + model_name, + &tool_descs, + &skills, + ); + + // ── Execute ────────────────────────────────────────────────── + let start = Instant::now(); + + if let Some(msg) = message { + // Auto-save user message to memory + if config.memory.auto_save { + let _ = mem + .store("user_msg", &msg, MemoryCategory::Conversation) + .await; + } + + // Inject memory context into user message + let context = build_context(mem.as_ref(), &msg).await; + let enriched = if context.is_empty() { + msg.clone() + } else { + format!("{context}{msg}") + }; + + let response = provider + .chat_with_system(Some(&system_prompt), &enriched, model_name, temperature) + .await?; + println!("{response}"); + + // Auto-save assistant response to daily log + if config.memory.auto_save { + let summary = if response.len() > 100 { + format!("{}...", &response[..100]) + } else { + response.clone() + }; + let _ = mem + .store("assistant_resp", &summary, MemoryCategory::Daily) + .await; + } + } else { + println!("🦀 ZeroClaw Interactive Mode"); + println!("Type /quit to exit.\n"); + + let (tx, mut rx) = tokio::sync::mpsc::channel(32); + let cli = crate::channels::CliChannel::new(); + + // Spawn listener + let listen_handle = tokio::spawn(async move { + let _ = crate::channels::Channel::listen(&cli, tx).await; + }); + + while let Some(msg) = rx.recv().await { + // Auto-save conversation turns + if config.memory.auto_save { + let _ = mem + .store("user_msg", &msg.content, MemoryCategory::Conversation) + .await; + } + + // Inject memory context into user message + let context = build_context(mem.as_ref(), &msg.content).await; + let enriched = if context.is_empty() { + msg.content.clone() + } else { + format!("{context}{}", msg.content) + }; + + let response = provider + .chat_with_system(Some(&system_prompt), &enriched, model_name, temperature) + .await?; + println!("\n{response}\n"); + + if config.memory.auto_save { + let summary = if response.len() > 100 { + format!("{}...", &response[..100]) + } else { + response.clone() + }; + let _ = mem + .store("assistant_resp", &summary, MemoryCategory::Daily) + .await; + } + } + + listen_handle.abort(); + } + + let duration = start.elapsed(); + observer.record_event(&ObserverEvent::AgentEnd { + duration, + tokens_used: None, + }); + + Ok(()) +} diff --git a/src/agent/mod.rs b/src/agent/mod.rs new file mode 100644 index 0000000..f889613 --- /dev/null +++ b/src/agent/mod.rs @@ -0,0 +1,3 @@ +pub mod loop_; + +pub use loop_::run; diff --git a/src/channels/cli.rs b/src/channels/cli.rs new file mode 100644 index 0000000..99546e3 --- /dev/null +++ b/src/channels/cli.rs @@ -0,0 +1,117 @@ +use super::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use tokio::io::{self, AsyncBufReadExt, BufReader}; +use uuid::Uuid; + +/// CLI channel — stdin/stdout, always available, zero deps +pub struct CliChannel; + +impl CliChannel { + pub fn new() -> Self { + Self + } +} + +#[async_trait] +impl Channel for CliChannel { + fn name(&self) -> &str { + "cli" + } + + async fn send(&self, message: &str, _recipient: &str) -> anyhow::Result<()> { + println!("{message}"); + Ok(()) + } + + async fn listen(&self, tx: tokio::sync::mpsc::Sender) -> anyhow::Result<()> { + let stdin = io::stdin(); + let reader = BufReader::new(stdin); + let mut lines = reader.lines(); + + while let Ok(Some(line)) = lines.next_line().await { + let line = line.trim().to_string(); + if line.is_empty() { + continue; + } + if line == "/quit" || line == "/exit" { + break; + } + + let msg = ChannelMessage { + id: Uuid::new_v4().to_string(), + sender: "user".to_string(), + content: line, + channel: "cli".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(msg).await.is_err() { + break; + } + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn cli_channel_name() { + assert_eq!(CliChannel::new().name(), "cli"); + } + + #[tokio::test] + async fn cli_channel_send_does_not_panic() { + let ch = CliChannel::new(); + let result = ch.send("hello", "user").await; + assert!(result.is_ok()); + } + + #[tokio::test] + async fn cli_channel_send_empty_message() { + let ch = CliChannel::new(); + let result = ch.send("", "").await; + assert!(result.is_ok()); + } + + #[tokio::test] + async fn cli_channel_health_check() { + let ch = CliChannel::new(); + assert!(ch.health_check().await); + } + + #[test] + fn channel_message_struct() { + let msg = ChannelMessage { + id: "test-id".into(), + sender: "user".into(), + content: "hello".into(), + channel: "cli".into(), + timestamp: 1234567890, + }; + assert_eq!(msg.id, "test-id"); + assert_eq!(msg.sender, "user"); + assert_eq!(msg.content, "hello"); + assert_eq!(msg.channel, "cli"); + assert_eq!(msg.timestamp, 1234567890); + } + + #[test] + fn channel_message_clone() { + let msg = ChannelMessage { + id: "id".into(), + sender: "s".into(), + content: "c".into(), + channel: "ch".into(), + timestamp: 0, + }; + let cloned = msg.clone(); + assert_eq!(cloned.id, msg.id); + assert_eq!(cloned.content, msg.content); + } +} diff --git a/src/channels/discord.rs b/src/channels/discord.rs new file mode 100644 index 0000000..81783bc --- /dev/null +++ b/src/channels/discord.rs @@ -0,0 +1,271 @@ +use super::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use futures_util::{SinkExt, StreamExt}; +use serde_json::json; +use tokio_tungstenite::tungstenite::Message; +use uuid::Uuid; + +/// Discord channel — connects via Gateway WebSocket for real-time messages +pub struct DiscordChannel { + bot_token: String, + guild_id: Option, + client: reqwest::Client, +} + +impl DiscordChannel { + pub fn new(bot_token: String, guild_id: Option) -> Self { + Self { + bot_token, + guild_id, + client: reqwest::Client::new(), + } + } + + fn bot_user_id_from_token(token: &str) -> Option { + // Discord bot tokens are base64(bot_user_id).timestamp.hmac + let part = token.split('.').next()?; + base64_decode(part) + } +} + +const BASE64_ALPHABET: &[u8] = + b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +/// Minimal base64 decode (no extra dep) — only needs to decode the user ID portion +#[allow(clippy::cast_possible_truncation)] +fn base64_decode(input: &str) -> Option { + let padded = match input.len() % 4 { + 2 => format!("{input}=="), + 3 => format!("{input}="), + _ => input.to_string(), + }; + + let mut bytes = Vec::new(); + let chars: Vec = padded.bytes().collect(); + + for chunk in chars.chunks(4) { + if chunk.len() < 4 { + break; + } + + let mut v = [0usize; 4]; + for (i, &b) in chunk.iter().enumerate() { + if b == b'=' { + v[i] = 0; + } else { + v[i] = BASE64_ALPHABET.iter().position(|&a| a == b)?; + } + } + + bytes.push(((v[0] << 2) | (v[1] >> 4)) as u8); + if chunk[2] != b'=' { + bytes.push((((v[1] & 0xF) << 4) | (v[2] >> 2)) as u8); + } + if chunk[3] != b'=' { + bytes.push((((v[2] & 0x3) << 6) | v[3]) as u8); + } + } + + String::from_utf8(bytes).ok() +} + +#[async_trait] +impl Channel for DiscordChannel { + fn name(&self) -> &str { + "discord" + } + + async fn send(&self, message: &str, channel_id: &str) -> anyhow::Result<()> { + let url = format!("https://discord.com/api/v10/channels/{channel_id}/messages"); + let body = json!({ "content": message }); + + self.client + .post(&url) + .header("Authorization", format!("Bot {}", self.bot_token)) + .json(&body) + .send() + .await?; + + Ok(()) + } + + #[allow(clippy::too_many_lines)] + async fn listen(&self, tx: tokio::sync::mpsc::Sender) -> anyhow::Result<()> { + let bot_user_id = Self::bot_user_id_from_token(&self.bot_token).unwrap_or_default(); + + // Get Gateway URL + let gw_resp: serde_json::Value = self + .client + .get("https://discord.com/api/v10/gateway/bot") + .header("Authorization", format!("Bot {}", self.bot_token)) + .send() + .await? + .json() + .await?; + + let gw_url = gw_resp + .get("url") + .and_then(|u| u.as_str()) + .unwrap_or("wss://gateway.discord.gg"); + + let ws_url = format!("{gw_url}/?v=10&encoding=json"); + tracing::info!("Discord: connecting to gateway..."); + + let (ws_stream, _) = tokio_tungstenite::connect_async(&ws_url).await?; + let (mut write, mut read) = ws_stream.split(); + + // Read Hello (opcode 10) + let hello = read.next().await.ok_or(anyhow::anyhow!("No hello"))??; + let hello_data: serde_json::Value = serde_json::from_str(&hello.to_string())?; + let heartbeat_interval = hello_data + .get("d") + .and_then(|d| d.get("heartbeat_interval")) + .and_then(serde_json::Value::as_u64) + .unwrap_or(41250); + + // Send Identify (opcode 2) + let identify = json!({ + "op": 2, + "d": { + "token": self.bot_token, + "intents": 33281, // GUILDS | GUILD_MESSAGES | MESSAGE_CONTENT | DIRECT_MESSAGES + "properties": { + "os": "linux", + "browser": "zeroclaw", + "device": "zeroclaw" + } + } + }); + write.send(Message::Text(identify.to_string())).await?; + + tracing::info!("Discord: connected and identified"); + + // Spawn heartbeat task + let (hb_tx, mut hb_rx) = tokio::sync::mpsc::channel::<()>(1); + let hb_interval = heartbeat_interval; + tokio::spawn(async move { + let mut interval = + tokio::time::interval(std::time::Duration::from_millis(hb_interval)); + loop { + interval.tick().await; + if hb_tx.send(()).await.is_err() { + break; + } + } + }); + + let guild_filter = self.guild_id.clone(); + + loop { + tokio::select! { + _ = hb_rx.recv() => { + let hb = json!({"op": 1, "d": null}); + if write.send(Message::Text(hb.to_string())).await.is_err() { + break; + } + } + msg = read.next() => { + let msg = match msg { + Some(Ok(Message::Text(t))) => t, + Some(Ok(Message::Close(_))) | None => break, + _ => continue, + }; + + let event: serde_json::Value = match serde_json::from_str(&msg) { + Ok(e) => e, + Err(_) => continue, + }; + + // Only handle MESSAGE_CREATE (opcode 0, type "MESSAGE_CREATE") + let event_type = event.get("t").and_then(|t| t.as_str()).unwrap_or(""); + if event_type != "MESSAGE_CREATE" { + continue; + } + + let Some(d) = event.get("d") else { + continue; + }; + + // Skip messages from the bot itself + let author_id = d.get("author").and_then(|a| a.get("id")).and_then(|i| i.as_str()).unwrap_or(""); + if author_id == bot_user_id { + continue; + } + + // Skip bot messages + if d.get("author").and_then(|a| a.get("bot")).and_then(serde_json::Value::as_bool).unwrap_or(false) { + continue; + } + + // Guild filter + if let Some(ref gid) = guild_filter { + let msg_guild = d.get("guild_id").and_then(serde_json::Value::as_str).unwrap_or(""); + if msg_guild != gid { + continue; + } + } + + let content = d.get("content").and_then(|c| c.as_str()).unwrap_or(""); + if content.is_empty() { + continue; + } + + let channel_id = d.get("channel_id").and_then(|c| c.as_str()).unwrap_or("").to_string(); + + let channel_msg = ChannelMessage { + id: Uuid::new_v4().to_string(), + sender: channel_id, + content: content.to_string(), + channel: "discord".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(channel_msg).await.is_err() { + break; + } + } + } + } + + Ok(()) + } + + async fn health_check(&self) -> bool { + self.client + .get("https://discord.com/api/v10/users/@me") + .header("Authorization", format!("Bot {}", self.bot_token)) + .send() + .await + .map(|r| r.status().is_success()) + .unwrap_or(false) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn discord_channel_name() { + let ch = DiscordChannel::new("fake".into(), None); + assert_eq!(ch.name(), "discord"); + } + + #[test] + fn base64_decode_bot_id() { + // "MTIzNDU2" decodes to "123456" + let decoded = base64_decode("MTIzNDU2"); + assert_eq!(decoded, Some("123456".to_string())); + } + + #[test] + fn bot_user_id_extraction() { + // Token format: base64(user_id).timestamp.hmac + let token = "MTIzNDU2.fake.hmac"; + let id = DiscordChannel::bot_user_id_from_token(token); + assert_eq!(id, Some("123456".to_string())); + } +} diff --git a/src/channels/imessage.rs b/src/channels/imessage.rs new file mode 100644 index 0000000..ec0262e --- /dev/null +++ b/src/channels/imessage.rs @@ -0,0 +1,265 @@ +use crate::channels::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use directories::UserDirs; +use tokio::sync::mpsc; + +/// iMessage channel using macOS `AppleScript` bridge. +/// Polls the Messages database for new messages and sends replies via `osascript`. +#[derive(Clone)] +pub struct IMessageChannel { + allowed_contacts: Vec, + poll_interval_secs: u64, +} + +impl IMessageChannel { + pub fn new(allowed_contacts: Vec) -> Self { + Self { + allowed_contacts, + poll_interval_secs: 3, + } + } + + fn is_contact_allowed(&self, sender: &str) -> bool { + if self.allowed_contacts.iter().any(|u| u == "*") { + return true; + } + self.allowed_contacts.iter().any(|u| { + u.eq_ignore_ascii_case(sender) + }) + } +} + +#[async_trait] +impl Channel for IMessageChannel { + fn name(&self) -> &str { + "imessage" + } + + async fn send(&self, message: &str, target: &str) -> anyhow::Result<()> { + let escaped_msg = message.replace('\\', "\\\\").replace('"', "\\\""); + let script = format!( + r#"tell application "Messages" + set targetService to 1st account whose service type = iMessage + set targetBuddy to participant "{target}" of targetService + send "{escaped_msg}" to targetBuddy +end tell"# + ); + + let output = tokio::process::Command::new("osascript") + .arg("-e") + .arg(&script) + .output() + .await?; + + if !output.status.success() { + let stderr = String::from_utf8_lossy(&output.stderr); + anyhow::bail!("iMessage send failed: {stderr}"); + } + + Ok(()) + } + + async fn listen(&self, tx: mpsc::Sender) -> anyhow::Result<()> { + tracing::info!("iMessage channel listening (AppleScript bridge)..."); + + // Query the Messages SQLite database for new messages + // The database is at ~/Library/Messages/chat.db + let db_path = UserDirs::new() + .map(|u| u.home_dir().join("Library/Messages/chat.db")) + .ok_or_else(|| anyhow::anyhow!("Cannot find home directory"))?; + + if !db_path.exists() { + anyhow::bail!( + "Messages database not found at {}. Ensure Messages.app is set up and Full Disk Access is granted.", + db_path.display() + ); + } + + // Track the last ROWID we've seen + let mut last_rowid = get_max_rowid(&db_path).await.unwrap_or(0); + + loop { + tokio::time::sleep(tokio::time::Duration::from_secs(self.poll_interval_secs)).await; + + let new_messages = fetch_new_messages(&db_path, last_rowid).await; + + match new_messages { + Ok(messages) => { + for (rowid, sender, text) in messages { + if rowid > last_rowid { + last_rowid = rowid; + } + + if !self.is_contact_allowed(&sender) { + continue; + } + + if text.trim().is_empty() { + continue; + } + + let msg = ChannelMessage { + id: rowid.to_string(), + sender: sender.clone(), + content: text, + channel: "imessage".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(msg).await.is_err() { + return Ok(()); + } + } + } + Err(e) => { + tracing::warn!("iMessage poll error: {e}"); + } + } + } + } + + async fn health_check(&self) -> bool { + if !cfg!(target_os = "macos") { + return false; + } + + let db_path = UserDirs::new() + .map(|u| u.home_dir().join("Library/Messages/chat.db")) + .unwrap_or_default(); + + db_path.exists() + } +} + +/// Get the current max ROWID from the messages table +async fn get_max_rowid(db_path: &std::path::Path) -> anyhow::Result { + let output = tokio::process::Command::new("sqlite3") + .arg(db_path) + .arg("SELECT MAX(ROWID) FROM message WHERE is_from_me = 0;") + .output() + .await?; + + let stdout = String::from_utf8_lossy(&output.stdout); + let rowid = stdout.trim().parse::().unwrap_or(0); + Ok(rowid) +} + +/// Fetch messages newer than `since_rowid` +async fn fetch_new_messages( + db_path: &std::path::Path, + since_rowid: i64, +) -> anyhow::Result> { + let query = format!( + "SELECT m.ROWID, h.id, m.text \ + FROM message m \ + JOIN handle h ON m.handle_id = h.ROWID \ + WHERE m.ROWID > {since_rowid} \ + AND m.is_from_me = 0 \ + AND m.text IS NOT NULL \ + ORDER BY m.ROWID ASC \ + LIMIT 20;" + ); + + let output = tokio::process::Command::new("sqlite3") + .arg("-separator") + .arg("|") + .arg(db_path) + .arg(&query) + .output() + .await?; + + if !output.status.success() { + let stderr = String::from_utf8_lossy(&output.stderr); + anyhow::bail!("sqlite3 query failed: {stderr}"); + } + + let stdout = String::from_utf8_lossy(&output.stdout); + let mut results = Vec::new(); + + for line in stdout.lines() { + let parts: Vec<&str> = line.splitn(3, '|').collect(); + if parts.len() == 3 { + if let Ok(rowid) = parts[0].parse::() { + results.push((rowid, parts[1].to_string(), parts[2].to_string())); + } + } + } + + Ok(results) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn creates_with_contacts() { + let ch = IMessageChannel::new(vec!["+1234567890".into()]); + assert_eq!(ch.allowed_contacts.len(), 1); + assert_eq!(ch.poll_interval_secs, 3); + } + + #[test] + fn creates_with_empty_contacts() { + let ch = IMessageChannel::new(vec![]); + assert!(ch.allowed_contacts.is_empty()); + } + + #[test] + fn wildcard_allows_anyone() { + let ch = IMessageChannel::new(vec!["*".into()]); + assert!(ch.is_contact_allowed("+1234567890")); + assert!(ch.is_contact_allowed("random@icloud.com")); + assert!(ch.is_contact_allowed("")); + } + + #[test] + fn specific_contact_allowed() { + let ch = IMessageChannel::new(vec!["+1234567890".into(), "user@icloud.com".into()]); + assert!(ch.is_contact_allowed("+1234567890")); + assert!(ch.is_contact_allowed("user@icloud.com")); + } + + #[test] + fn unknown_contact_denied() { + let ch = IMessageChannel::new(vec!["+1234567890".into()]); + assert!(!ch.is_contact_allowed("+9999999999")); + assert!(!ch.is_contact_allowed("hacker@evil.com")); + } + + #[test] + fn contact_case_insensitive() { + let ch = IMessageChannel::new(vec!["User@iCloud.com".into()]); + assert!(ch.is_contact_allowed("user@icloud.com")); + assert!(ch.is_contact_allowed("USER@ICLOUD.COM")); + } + + #[test] + fn empty_allowlist_denies_all() { + let ch = IMessageChannel::new(vec![]); + assert!(!ch.is_contact_allowed("+1234567890")); + assert!(!ch.is_contact_allowed("anyone")); + } + + #[test] + fn name_returns_imessage() { + let ch = IMessageChannel::new(vec![]); + assert_eq!(ch.name(), "imessage"); + } + + #[test] + fn wildcard_among_others_still_allows_all() { + let ch = IMessageChannel::new(vec!["+111".into(), "*".into(), "+222".into()]); + assert!(ch.is_contact_allowed("totally-unknown")); + } + + #[test] + fn contact_with_spaces_exact_match() { + let ch = IMessageChannel::new(vec![" spaced ".into()]); + assert!(ch.is_contact_allowed(" spaced ")); + assert!(!ch.is_contact_allowed("spaced")); + } +} diff --git a/src/channels/matrix.rs b/src/channels/matrix.rs new file mode 100644 index 0000000..b86fef2 --- /dev/null +++ b/src/channels/matrix.rs @@ -0,0 +1,467 @@ +use crate::channels::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use reqwest::Client; +use serde::Deserialize; +use tokio::sync::mpsc; + +/// Matrix channel using the Client-Server API (no SDK needed). +/// Connects to any Matrix homeserver (Element, Synapse, etc.). +#[derive(Clone)] +pub struct MatrixChannel { + homeserver: String, + access_token: String, + room_id: String, + allowed_users: Vec, + client: Client, +} + +#[derive(Debug, Deserialize)] +struct SyncResponse { + next_batch: String, + #[serde(default)] + rooms: Rooms, +} + +#[derive(Debug, Deserialize, Default)] +struct Rooms { + #[serde(default)] + join: std::collections::HashMap, +} + +#[derive(Debug, Deserialize)] +struct JoinedRoom { + #[serde(default)] + timeline: Timeline, +} + +#[derive(Debug, Deserialize, Default)] +struct Timeline { + #[serde(default)] + events: Vec, +} + +#[derive(Debug, Deserialize)] +struct TimelineEvent { + #[serde(rename = "type")] + event_type: String, + sender: String, + #[serde(default)] + content: EventContent, +} + +#[derive(Debug, Deserialize, Default)] +struct EventContent { + #[serde(default)] + body: Option, + #[serde(default)] + msgtype: Option, +} + +#[derive(Debug, Deserialize)] +struct WhoAmIResponse { + user_id: String, +} + +impl MatrixChannel { + pub fn new( + homeserver: String, + access_token: String, + room_id: String, + allowed_users: Vec, + ) -> Self { + let homeserver = if homeserver.ends_with('/') { + homeserver[..homeserver.len() - 1].to_string() + } else { + homeserver + }; + Self { + homeserver, + access_token, + room_id, + allowed_users, + client: Client::new(), + } + } + + fn is_user_allowed(&self, sender: &str) -> bool { + if self.allowed_users.iter().any(|u| u == "*") { + return true; + } + self.allowed_users + .iter() + .any(|u| u.eq_ignore_ascii_case(sender)) + } + + async fn get_my_user_id(&self) -> anyhow::Result { + let url = format!( + "{}/_matrix/client/v3/account/whoami", + self.homeserver + ); + let resp = self + .client + .get(&url) + .header("Authorization", format!("Bearer {}", self.access_token)) + .send() + .await?; + + if !resp.status().is_success() { + let err = resp.text().await?; + anyhow::bail!("Matrix whoami failed: {err}"); + } + + let who: WhoAmIResponse = resp.json().await?; + Ok(who.user_id) + } +} + +#[async_trait] +impl Channel for MatrixChannel { + fn name(&self) -> &str { + "matrix" + } + + async fn send(&self, message: &str, _target: &str) -> anyhow::Result<()> { + let txn_id = format!("zc_{}", chrono::Utc::now().timestamp_millis()); + let url = format!( + "{}/_matrix/client/v3/rooms/{}/send/m.room.message/{}", + self.homeserver, self.room_id, txn_id + ); + + let body = serde_json::json!({ + "msgtype": "m.text", + "body": message + }); + + let resp = self + .client + .put(&url) + .header("Authorization", format!("Bearer {}", self.access_token)) + .json(&body) + .send() + .await?; + + if !resp.status().is_success() { + let err = resp.text().await?; + anyhow::bail!("Matrix send failed: {err}"); + } + + Ok(()) + } + + async fn listen(&self, tx: mpsc::Sender) -> anyhow::Result<()> { + tracing::info!("Matrix channel listening on room {}...", self.room_id); + + let my_user_id = self.get_my_user_id().await?; + + // Initial sync to get the since token + let url = format!( + "{}/_matrix/client/v3/sync?timeout=30000&filter={{\"room\":{{\"timeline\":{{\"limit\":1}}}}}}", + self.homeserver + ); + + let resp = self + .client + .get(&url) + .header("Authorization", format!("Bearer {}", self.access_token)) + .send() + .await?; + + if !resp.status().is_success() { + let err = resp.text().await?; + anyhow::bail!("Matrix initial sync failed: {err}"); + } + + let sync: SyncResponse = resp.json().await?; + let mut since = sync.next_batch; + + // Long-poll loop + loop { + let url = format!( + "{}/_matrix/client/v3/sync?since={}&timeout=30000", + self.homeserver, since + ); + + let resp = self + .client + .get(&url) + .header("Authorization", format!("Bearer {}", self.access_token)) + .send() + .await; + + let resp = match resp { + Ok(r) => r, + Err(e) => { + tracing::warn!("Matrix sync error: {e}, retrying..."); + tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; + continue; + } + }; + + if !resp.status().is_success() { + tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; + continue; + } + + let sync: SyncResponse = resp.json().await?; + since = sync.next_batch; + + // Process events from our room + if let Some(room) = sync.rooms.join.get(&self.room_id) { + for event in &room.timeline.events { + // Skip our own messages + if event.sender == my_user_id { + continue; + } + + // Only process text messages + if event.event_type != "m.room.message" { + continue; + } + + if event.content.msgtype.as_deref() != Some("m.text") { + continue; + } + + let Some(ref body) = event.content.body else { + continue; + }; + + if !self.is_user_allowed(&event.sender) { + continue; + } + + let msg = ChannelMessage { + id: format!("mx_{}", chrono::Utc::now().timestamp_millis()), + sender: event.sender.clone(), + content: body.clone(), + channel: "matrix".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(msg).await.is_err() { + return Ok(()); + } + } + } + } + } + + async fn health_check(&self) -> bool { + let url = format!( + "{}/_matrix/client/v3/account/whoami", + self.homeserver + ); + let Ok(resp) = self + .client + .get(&url) + .header("Authorization", format!("Bearer {}", self.access_token)) + .send() + .await + else { + return false; + }; + + resp.status().is_success() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn make_channel() -> MatrixChannel { + MatrixChannel::new( + "https://matrix.org".to_string(), + "syt_test_token".to_string(), + "!room:matrix.org".to_string(), + vec!["@user:matrix.org".to_string()], + ) + } + + #[test] + fn creates_with_correct_fields() { + let ch = make_channel(); + assert_eq!(ch.homeserver, "https://matrix.org"); + assert_eq!(ch.access_token, "syt_test_token"); + assert_eq!(ch.room_id, "!room:matrix.org"); + assert_eq!(ch.allowed_users.len(), 1); + } + + #[test] + fn strips_trailing_slash() { + let ch = MatrixChannel::new( + "https://matrix.org/".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec![], + ); + assert_eq!(ch.homeserver, "https://matrix.org"); + } + + #[test] + fn no_trailing_slash_unchanged() { + let ch = MatrixChannel::new( + "https://matrix.org".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec![], + ); + assert_eq!(ch.homeserver, "https://matrix.org"); + } + + #[test] + fn multiple_trailing_slashes_strips_one() { + let ch = MatrixChannel::new( + "https://matrix.org//".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec![], + ); + assert_eq!(ch.homeserver, "https://matrix.org/"); + } + + #[test] + fn wildcard_allows_anyone() { + let ch = MatrixChannel::new( + "https://m.org".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec!["*".to_string()], + ); + assert!(ch.is_user_allowed("@anyone:matrix.org")); + assert!(ch.is_user_allowed("@hacker:evil.org")); + } + + #[test] + fn specific_user_allowed() { + let ch = make_channel(); + assert!(ch.is_user_allowed("@user:matrix.org")); + } + + #[test] + fn unknown_user_denied() { + let ch = make_channel(); + assert!(!ch.is_user_allowed("@stranger:matrix.org")); + assert!(!ch.is_user_allowed("@evil:hacker.org")); + } + + #[test] + fn user_case_insensitive() { + let ch = MatrixChannel::new( + "https://m.org".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec!["@User:Matrix.org".to_string()], + ); + assert!(ch.is_user_allowed("@user:matrix.org")); + assert!(ch.is_user_allowed("@USER:MATRIX.ORG")); + } + + #[test] + fn empty_allowlist_denies_all() { + let ch = MatrixChannel::new( + "https://m.org".to_string(), + "tok".to_string(), + "!r:m".to_string(), + vec![], + ); + assert!(!ch.is_user_allowed("@anyone:matrix.org")); + } + + #[test] + fn name_returns_matrix() { + let ch = make_channel(); + assert_eq!(ch.name(), "matrix"); + } + + #[test] + fn sync_response_deserializes_empty() { + let json = r#"{"next_batch":"s123","rooms":{"join":{}}}"#; + let resp: SyncResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.next_batch, "s123"); + assert!(resp.rooms.join.is_empty()); + } + + #[test] + fn sync_response_deserializes_with_events() { + let json = r#"{ + "next_batch": "s456", + "rooms": { + "join": { + "!room:matrix.org": { + "timeline": { + "events": [ + { + "type": "m.room.message", + "sender": "@user:matrix.org", + "content": { + "msgtype": "m.text", + "body": "Hello!" + } + } + ] + } + } + } + } + }"#; + let resp: SyncResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.next_batch, "s456"); + let room = resp.rooms.join.get("!room:matrix.org").unwrap(); + assert_eq!(room.timeline.events.len(), 1); + assert_eq!(room.timeline.events[0].sender, "@user:matrix.org"); + assert_eq!(room.timeline.events[0].content.body.as_deref(), Some("Hello!")); + assert_eq!(room.timeline.events[0].content.msgtype.as_deref(), Some("m.text")); + } + + #[test] + fn sync_response_ignores_non_text_events() { + let json = r#"{ + "next_batch": "s789", + "rooms": { + "join": { + "!room:m": { + "timeline": { + "events": [ + { + "type": "m.room.member", + "sender": "@user:m", + "content": {} + } + ] + } + } + } + } + }"#; + let resp: SyncResponse = serde_json::from_str(json).unwrap(); + let room = resp.rooms.join.get("!room:m").unwrap(); + assert_eq!(room.timeline.events[0].event_type, "m.room.member"); + assert!(room.timeline.events[0].content.body.is_none()); + } + + #[test] + fn whoami_response_deserializes() { + let json = r#"{"user_id":"@bot:matrix.org"}"#; + let resp: WhoAmIResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.user_id, "@bot:matrix.org"); + } + + #[test] + fn event_content_defaults() { + let json = r#"{"type":"m.room.message","sender":"@u:m","content":{}}"#; + let event: TimelineEvent = serde_json::from_str(json).unwrap(); + assert!(event.content.body.is_none()); + assert!(event.content.msgtype.is_none()); + } + + #[test] + fn sync_response_missing_rooms_defaults() { + let json = r#"{"next_batch":"s0"}"#; + let resp: SyncResponse = serde_json::from_str(json).unwrap(); + assert!(resp.rooms.join.is_empty()); + } +} diff --git a/src/channels/mod.rs b/src/channels/mod.rs new file mode 100644 index 0000000..696048f --- /dev/null +++ b/src/channels/mod.rs @@ -0,0 +1,550 @@ +pub mod cli; +pub mod discord; +pub mod imessage; +pub mod matrix; +pub mod slack; +pub mod telegram; +pub mod traits; + +pub use cli::CliChannel; +pub use discord::DiscordChannel; +pub use imessage::IMessageChannel; +pub use matrix::MatrixChannel; +pub use slack::SlackChannel; +pub use telegram::TelegramChannel; +pub use traits::Channel; + +use crate::config::Config; +use crate::memory::{self, Memory}; +use crate::providers::{self, Provider}; +use anyhow::Result; +use std::sync::Arc; + +/// Maximum characters per injected workspace file (matches `OpenClaw` default). +const BOOTSTRAP_MAX_CHARS: usize = 20_000; + +/// Load workspace identity files and build a system prompt. +/// +/// Follows the `OpenClaw` framework structure: +/// 1. Tooling — tool list + descriptions +/// 2. Safety — guardrail reminder +/// 3. Skills — compact list with paths (loaded on-demand) +/// 4. Workspace — working directory +/// 5. Bootstrap files — AGENTS, SOUL, TOOLS, IDENTITY, USER, HEARTBEAT, BOOTSTRAP, MEMORY +/// 6. Date & Time — timezone for cache stability +/// 7. Runtime — host, OS, model +/// +/// Daily memory files (`memory/*.md`) are NOT injected — they are accessed +/// on-demand via `memory_recall` / `memory_search` tools. +pub fn build_system_prompt( + workspace_dir: &std::path::Path, + model_name: &str, + tools: &[(&str, &str)], + skills: &[crate::skills::Skill], +) -> String { + use std::fmt::Write; + let mut prompt = String::with_capacity(8192); + + // ── 1. Tooling ────────────────────────────────────────────── + if !tools.is_empty() { + prompt.push_str("## Tools\n\n"); + prompt.push_str("You have access to the following tools:\n\n"); + for (name, desc) in tools { + let _ = writeln!(prompt, "- **{name}**: {desc}"); + } + prompt.push('\n'); + } + + // ── 2. Safety ─────────────────────────────────────────────── + prompt.push_str("## Safety\n\n"); + prompt.push_str( + "- Do not exfiltrate private data.\n\ + - Do not run destructive commands without asking.\n\ + - Do not bypass oversight or approval mechanisms.\n\ + - Prefer `trash` over `rm` (recoverable beats gone forever).\n\ + - When in doubt, ask before acting externally.\n\n", + ); + + // ── 3. Skills (compact list — load on-demand) ─────────────── + if !skills.is_empty() { + prompt.push_str("## Available Skills\n\n"); + prompt.push_str( + "Skills are loaded on demand. Use `read` on the skill path to get full instructions.\n\n", + ); + prompt.push_str("\n"); + for skill in skills { + let _ = writeln!(prompt, " "); + let _ = writeln!(prompt, " {}", skill.name); + let _ = writeln!(prompt, " {}", skill.description); + let location = workspace_dir.join("skills").join(&skill.name).join("SKILL.md"); + let _ = writeln!(prompt, " {}", location.display()); + let _ = writeln!(prompt, " "); + } + prompt.push_str("\n\n"); + } + + // ── 4. Workspace ──────────────────────────────────────────── + let _ = writeln!(prompt, "## Workspace\n\nWorking directory: `{}`\n", workspace_dir.display()); + + // ── 5. Bootstrap files (injected into context) ────────────── + prompt.push_str("## Project Context\n\n"); + prompt.push_str("The following workspace files define your identity, behavior, and context.\n\n"); + + let bootstrap_files = [ + "AGENTS.md", + "SOUL.md", + "TOOLS.md", + "IDENTITY.md", + "USER.md", + "HEARTBEAT.md", + ]; + + for filename in &bootstrap_files { + inject_workspace_file(&mut prompt, workspace_dir, filename); + } + + // BOOTSTRAP.md — only if it exists (first-run ritual) + let bootstrap_path = workspace_dir.join("BOOTSTRAP.md"); + if bootstrap_path.exists() { + inject_workspace_file(&mut prompt, workspace_dir, "BOOTSTRAP.md"); + } + + // MEMORY.md — curated long-term memory (main session only) + inject_workspace_file(&mut prompt, workspace_dir, "MEMORY.md"); + + // ── 6. Date & Time ────────────────────────────────────────── + let now = chrono::Local::now(); + let tz = now.format("%Z").to_string(); + let _ = writeln!(prompt, "## Current Date & Time\n\nTimezone: {tz}\n"); + + // ── 7. Runtime ────────────────────────────────────────────── + let host = hostname::get() + .map_or_else(|_| "unknown".into(), |h| h.to_string_lossy().to_string()); + let _ = writeln!( + prompt, + "## Runtime\n\nHost: {host} | OS: {} | Model: {model_name}\n", + std::env::consts::OS, + ); + + if prompt.is_empty() { + "You are ZeroClaw, a fast and efficient AI assistant built in Rust. Be helpful, concise, and direct.".to_string() + } else { + prompt + } +} + +/// Inject a single workspace file into the prompt with truncation and missing-file markers. +fn inject_workspace_file(prompt: &mut String, workspace_dir: &std::path::Path, filename: &str) { + use std::fmt::Write; + + let path = workspace_dir.join(filename); + match std::fs::read_to_string(&path) { + Ok(content) => { + let trimmed = content.trim(); + if trimmed.is_empty() { + return; + } + let _ = writeln!(prompt, "### {filename}\n"); + if trimmed.len() > BOOTSTRAP_MAX_CHARS { + prompt.push_str(&trimmed[..BOOTSTRAP_MAX_CHARS]); + let _ = writeln!( + prompt, + "\n\n[... truncated at {BOOTSTRAP_MAX_CHARS} chars — use `read` for full file]\n" + ); + } else { + prompt.push_str(trimmed); + prompt.push_str("\n\n"); + } + } + Err(_) => { + // Missing-file marker (matches OpenClaw behavior) + let _ = writeln!(prompt, "### {filename}\n\n[File not found: {filename}]\n"); + } + } +} + +pub fn handle_command(command: super::ChannelCommands, config: &Config) -> Result<()> { + match command { + super::ChannelCommands::Start => { + // Handled in main.rs (needs async), this is unreachable + unreachable!("Start is handled in main.rs") + } + super::ChannelCommands::List => { + println!("Channels:"); + println!(" ✅ CLI (always available)"); + for (name, configured) in [ + ("Telegram", config.channels_config.telegram.is_some()), + ("Discord", config.channels_config.discord.is_some()), + ("Slack", config.channels_config.slack.is_some()), + ("Webhook", config.channels_config.webhook.is_some()), + ("iMessage", config.channels_config.imessage.is_some()), + ("Matrix", config.channels_config.matrix.is_some()), + ] { + println!( + " {} {name}", + if configured { "✅" } else { "❌" } + ); + } + println!("\nTo start channels: zeroclaw channel start"); + println!("To configure: zeroclaw onboard"); + Ok(()) + } + super::ChannelCommands::Add { + channel_type, + config: _, + } => { + anyhow::bail!("Channel type '{channel_type}' — use `zeroclaw onboard` to configure channels"); + } + super::ChannelCommands::Remove { name } => { + anyhow::bail!("Remove channel '{name}' — edit ~/.zeroclaw/config.toml directly"); + } + } +} + +/// Start all configured channels and route messages to the agent +#[allow(clippy::too_many_lines)] +pub async fn start_channels(config: Config) -> Result<()> { + let provider: Arc = Arc::from(providers::create_provider( + config.default_provider.as_deref().unwrap_or("openrouter"), + config.api_key.as_deref(), + )?); + let model = config + .default_model + .clone() + .unwrap_or_else(|| "anthropic/claude-sonnet-4-20250514".into()); + let temperature = config.default_temperature; + let mem: Arc = + Arc::from(memory::create_memory(&config.memory, &config.workspace_dir)?); + + // Build system prompt from workspace identity files + skills + let workspace = config.workspace_dir.clone(); + let skills = crate::skills::load_skills(&workspace); + + // Collect tool descriptions for the prompt + let tool_descs: Vec<(&str, &str)> = vec![ + ("shell", "Execute terminal commands"), + ("file_read", "Read file contents"), + ("file_write", "Write file contents"), + ("memory_store", "Save to memory"), + ("memory_recall", "Search memory"), + ("memory_forget", "Delete a memory entry"), + ]; + + let system_prompt = build_system_prompt(&workspace, &model, &tool_descs, &skills); + + if !skills.is_empty() { + println!(" 🧩 Skills: {}", skills.iter().map(|s| s.name.as_str()).collect::>().join(", ")); + } + + // Collect active channels + let mut channels: Vec> = Vec::new(); + + if let Some(ref tg) = config.channels_config.telegram { + channels.push(Arc::new(TelegramChannel::new( + tg.bot_token.clone(), + tg.allowed_users.clone(), + ))); + } + + if let Some(ref dc) = config.channels_config.discord { + channels.push(Arc::new(DiscordChannel::new( + dc.bot_token.clone(), + dc.guild_id.clone(), + ))); + } + + if let Some(ref sl) = config.channels_config.slack { + channels.push(Arc::new(SlackChannel::new( + sl.bot_token.clone(), + sl.channel_id.clone(), + ))); + } + + if let Some(ref im) = config.channels_config.imessage { + channels.push(Arc::new(IMessageChannel::new( + im.allowed_contacts.clone(), + ))); + } + + if let Some(ref mx) = config.channels_config.matrix { + channels.push(Arc::new(MatrixChannel::new( + mx.homeserver.clone(), + mx.access_token.clone(), + mx.room_id.clone(), + mx.allowed_users.clone(), + ))); + } + + if channels.is_empty() { + println!("No channels configured. Run `zeroclaw onboard` to set up channels."); + return Ok(()); + } + + println!("🦀 ZeroClaw Channel Server"); + println!(" 🤖 Model: {model}"); + println!(" 🧠 Memory: {} (auto-save: {})", config.memory.backend, if config.memory.auto_save { "on" } else { "off" }); + println!(" 📡 Channels: {}", channels.iter().map(|c| c.name()).collect::>().join(", ")); + println!(); + println!(" Listening for messages... (Ctrl+C to stop)"); + println!(); + + // Single message bus — all channels send messages here + let (tx, mut rx) = tokio::sync::mpsc::channel::(100); + + // Spawn a listener for each channel + let mut handles = Vec::new(); + for ch in &channels { + let ch = ch.clone(); + let tx = tx.clone(); + handles.push(tokio::spawn(async move { + if let Err(e) = ch.listen(tx).await { + tracing::error!("Channel {} error: {e}", ch.name()); + } + })); + } + drop(tx); // Drop our copy so rx closes when all channels stop + + // Process incoming messages — call the LLM and reply + while let Some(msg) = rx.recv().await { + println!( + " 💬 [{}] from {}: {}", + msg.channel, + msg.sender, + if msg.content.len() > 80 { + format!("{}...", &msg.content[..80]) + } else { + msg.content.clone() + } + ); + + // Auto-save to memory + if config.memory.auto_save { + let _ = mem + .store( + &format!("{}_{}", msg.channel, msg.sender), + &msg.content, + crate::memory::MemoryCategory::Conversation, + ) + .await; + } + + // Call the LLM with system prompt (identity + soul + tools) + match provider.chat_with_system(Some(&system_prompt), &msg.content, &model, temperature).await { + Ok(response) => { + println!( + " 🤖 Reply: {}", + if response.len() > 80 { + format!("{}...", &response[..80]) + } else { + response.clone() + } + ); + // Find the channel that sent this message and reply + for ch in &channels { + if ch.name() == msg.channel { + if let Err(e) = ch.send(&response, &msg.sender).await { + eprintln!(" ❌ Failed to reply on {}: {e}", ch.name()); + } + break; + } + } + } + Err(e) => { + eprintln!(" ❌ LLM error: {e}"); + for ch in &channels { + if ch.name() == msg.channel { + let _ = ch + .send(&format!("⚠️ Error: {e}"), &msg.sender) + .await; + break; + } + } + } + } + } + + // Wait for all channel tasks + for h in handles { + let _ = h.await; + } + + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::TempDir; + + fn make_workspace() -> TempDir { + let tmp = TempDir::new().unwrap(); + // Create minimal workspace files + std::fs::write(tmp.path().join("SOUL.md"), "# Soul\nBe helpful.").unwrap(); + std::fs::write(tmp.path().join("IDENTITY.md"), "# Identity\nName: ZeroClaw").unwrap(); + std::fs::write(tmp.path().join("USER.md"), "# User\nName: Test User").unwrap(); + std::fs::write(tmp.path().join("AGENTS.md"), "# Agents\nFollow instructions.").unwrap(); + std::fs::write(tmp.path().join("TOOLS.md"), "# Tools\nUse shell carefully.").unwrap(); + std::fs::write(tmp.path().join("HEARTBEAT.md"), "# Heartbeat\nCheck status.").unwrap(); + std::fs::write(tmp.path().join("MEMORY.md"), "# Memory\nUser likes Rust.").unwrap(); + tmp + } + + #[test] + fn prompt_contains_all_sections() { + let ws = make_workspace(); + let tools = vec![("shell", "Run commands"), ("file_read", "Read files")]; + let prompt = build_system_prompt(ws.path(), "test-model", &tools, &[]); + + // Section headers + assert!(prompt.contains("## Tools"), "missing Tools section"); + assert!(prompt.contains("## Safety"), "missing Safety section"); + assert!(prompt.contains("## Workspace"), "missing Workspace section"); + assert!(prompt.contains("## Project Context"), "missing Project Context"); + assert!(prompt.contains("## Current Date & Time"), "missing Date/Time"); + assert!(prompt.contains("## Runtime"), "missing Runtime section"); + } + + #[test] + fn prompt_injects_tools() { + let ws = make_workspace(); + let tools = vec![("shell", "Run commands"), ("memory_recall", "Search memory")]; + let prompt = build_system_prompt(ws.path(), "gpt-4o", &tools, &[]); + + assert!(prompt.contains("**shell**")); + assert!(prompt.contains("Run commands")); + assert!(prompt.contains("**memory_recall**")); + } + + #[test] + fn prompt_injects_safety() { + let ws = make_workspace(); + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + assert!(prompt.contains("Do not exfiltrate private data")); + assert!(prompt.contains("Do not run destructive commands")); + assert!(prompt.contains("Prefer `trash` over `rm`")); + } + + #[test] + fn prompt_injects_workspace_files() { + let ws = make_workspace(); + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + assert!(prompt.contains("### SOUL.md"), "missing SOUL.md header"); + assert!(prompt.contains("Be helpful"), "missing SOUL content"); + assert!(prompt.contains("### IDENTITY.md"), "missing IDENTITY.md"); + assert!(prompt.contains("Name: ZeroClaw"), "missing IDENTITY content"); + assert!(prompt.contains("### USER.md"), "missing USER.md"); + assert!(prompt.contains("### AGENTS.md"), "missing AGENTS.md"); + assert!(prompt.contains("### TOOLS.md"), "missing TOOLS.md"); + assert!(prompt.contains("### HEARTBEAT.md"), "missing HEARTBEAT.md"); + assert!(prompt.contains("### MEMORY.md"), "missing MEMORY.md"); + assert!(prompt.contains("User likes Rust"), "missing MEMORY content"); + } + + #[test] + fn prompt_missing_file_markers() { + let tmp = TempDir::new().unwrap(); + // Empty workspace — no files at all + let prompt = build_system_prompt(tmp.path(), "model", &[], &[]); + + assert!(prompt.contains("[File not found: SOUL.md]")); + assert!(prompt.contains("[File not found: AGENTS.md]")); + assert!(prompt.contains("[File not found: IDENTITY.md]")); + } + + #[test] + fn prompt_bootstrap_only_if_exists() { + let ws = make_workspace(); + // No BOOTSTRAP.md — should not appear + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + assert!(!prompt.contains("### BOOTSTRAP.md"), "BOOTSTRAP.md should not appear when missing"); + + // Create BOOTSTRAP.md — should appear + std::fs::write(ws.path().join("BOOTSTRAP.md"), "# Bootstrap\nFirst run.").unwrap(); + let prompt2 = build_system_prompt(ws.path(), "model", &[], &[]); + assert!(prompt2.contains("### BOOTSTRAP.md"), "BOOTSTRAP.md should appear when present"); + assert!(prompt2.contains("First run")); + } + + #[test] + fn prompt_no_daily_memory_injection() { + let ws = make_workspace(); + let memory_dir = ws.path().join("memory"); + std::fs::create_dir_all(&memory_dir).unwrap(); + let today = chrono::Local::now().format("%Y-%m-%d").to_string(); + std::fs::write(memory_dir.join(format!("{today}.md")), "# Daily\nSome note.").unwrap(); + + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + // Daily notes should NOT be in the system prompt (on-demand via tools) + assert!(!prompt.contains("Daily Notes"), "daily notes should not be auto-injected"); + assert!(!prompt.contains("Some note"), "daily content should not be in prompt"); + } + + #[test] + fn prompt_runtime_metadata() { + let ws = make_workspace(); + let prompt = build_system_prompt(ws.path(), "claude-sonnet-4", &[], &[]); + + assert!(prompt.contains("Model: claude-sonnet-4")); + assert!(prompt.contains(&format!("OS: {}", std::env::consts::OS))); + assert!(prompt.contains("Host:")); + } + + #[test] + fn prompt_skills_compact_list() { + let ws = make_workspace(); + let skills = vec![crate::skills::Skill { + name: "code-review".into(), + description: "Review code for bugs".into(), + version: "1.0.0".into(), + author: None, + tags: vec![], + tools: vec![], + prompts: vec!["Long prompt content that should NOT appear in system prompt".into()], + }]; + + let prompt = build_system_prompt(ws.path(), "model", &[], &skills); + + assert!(prompt.contains(""), "missing skills XML"); + assert!(prompt.contains("code-review")); + assert!(prompt.contains("Review code for bugs")); + assert!(prompt.contains("SKILL.md")); + assert!(prompt.contains("loaded on demand"), "should mention on-demand loading"); + // Full prompt content should NOT be dumped + assert!(!prompt.contains("Long prompt content that should NOT appear")); + } + + #[test] + fn prompt_truncation() { + let ws = make_workspace(); + // Write a file larger than BOOTSTRAP_MAX_CHARS + let big_content = "x".repeat(BOOTSTRAP_MAX_CHARS + 1000); + std::fs::write(ws.path().join("AGENTS.md"), &big_content).unwrap(); + + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + assert!(prompt.contains("truncated at"), "large files should be truncated"); + assert!(!prompt.contains(&big_content), "full content should not appear"); + } + + #[test] + fn prompt_empty_files_skipped() { + let ws = make_workspace(); + std::fs::write(ws.path().join("TOOLS.md"), "").unwrap(); + + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + // Empty file should not produce a header + assert!(!prompt.contains("### TOOLS.md"), "empty files should be skipped"); + } + + #[test] + fn prompt_workspace_path() { + let ws = make_workspace(); + let prompt = build_system_prompt(ws.path(), "model", &[], &[]); + + assert!(prompt.contains(&format!("Working directory: `{}`", ws.path().display()))); + } +} diff --git a/src/channels/slack.rs b/src/channels/slack.rs new file mode 100644 index 0000000..87516f5 --- /dev/null +++ b/src/channels/slack.rs @@ -0,0 +1,174 @@ +use super::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use uuid::Uuid; + +/// Slack channel — polls conversations.history via Web API +pub struct SlackChannel { + bot_token: String, + channel_id: Option, + client: reqwest::Client, +} + +impl SlackChannel { + pub fn new(bot_token: String, channel_id: Option) -> Self { + Self { + bot_token, + channel_id, + client: reqwest::Client::new(), + } + } + + /// Get the bot's own user ID so we can ignore our own messages + async fn get_bot_user_id(&self) -> Option { + let resp: serde_json::Value = self + .client + .get("https://slack.com/api/auth.test") + .bearer_auth(&self.bot_token) + .send() + .await + .ok()? + .json() + .await + .ok()?; + + resp.get("user_id") + .and_then(|u| u.as_str()) + .map(String::from) + } +} + +#[async_trait] +impl Channel for SlackChannel { + fn name(&self) -> &str { + "slack" + } + + async fn send(&self, message: &str, channel: &str) -> anyhow::Result<()> { + let body = serde_json::json!({ + "channel": channel, + "text": message + }); + + self.client + .post("https://slack.com/api/chat.postMessage") + .bearer_auth(&self.bot_token) + .json(&body) + .send() + .await?; + + Ok(()) + } + + async fn listen(&self, tx: tokio::sync::mpsc::Sender) -> anyhow::Result<()> { + let channel_id = self + .channel_id + .clone() + .ok_or_else(|| anyhow::anyhow!("Slack channel_id required for listening"))?; + + let bot_user_id = self.get_bot_user_id().await.unwrap_or_default(); + let mut last_ts = String::new(); + + tracing::info!("Slack channel listening on #{channel_id}..."); + + loop { + tokio::time::sleep(std::time::Duration::from_secs(3)).await; + + let mut params = vec![ + ("channel", channel_id.clone()), + ("limit", "10".to_string()), + ]; + if !last_ts.is_empty() { + params.push(("oldest", last_ts.clone())); + } + + let resp = match self + .client + .get("https://slack.com/api/conversations.history") + .bearer_auth(&self.bot_token) + .query(¶ms) + .send() + .await + { + Ok(r) => r, + Err(e) => { + tracing::warn!("Slack poll error: {e}"); + continue; + } + }; + + let data: serde_json::Value = match resp.json().await { + Ok(d) => d, + Err(e) => { + tracing::warn!("Slack parse error: {e}"); + continue; + } + }; + + if let Some(messages) = data.get("messages").and_then(|m| m.as_array()) { + // Messages come newest-first, reverse to process oldest first + for msg in messages.iter().rev() { + let ts = msg.get("ts").and_then(|t| t.as_str()).unwrap_or(""); + let user = msg + .get("user") + .and_then(|u| u.as_str()) + .unwrap_or("unknown"); + let text = msg.get("text").and_then(|t| t.as_str()).unwrap_or(""); + + // Skip bot's own messages + if user == bot_user_id { + continue; + } + + // Skip empty or already-seen + if text.is_empty() || ts <= last_ts.as_str() { + continue; + } + + last_ts = ts.to_string(); + + let channel_msg = ChannelMessage { + id: Uuid::new_v4().to_string(), + sender: channel_id.clone(), + content: text.to_string(), + channel: "slack".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(channel_msg).await.is_err() { + return Ok(()); + } + } + } + } + } + + async fn health_check(&self) -> bool { + self.client + .get("https://slack.com/api/auth.test") + .bearer_auth(&self.bot_token) + .send() + .await + .map(|r| r.status().is_success()) + .unwrap_or(false) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn slack_channel_name() { + let ch = SlackChannel::new("xoxb-fake".into(), None); + assert_eq!(ch.name(), "slack"); + } + + #[test] + fn slack_channel_with_channel_id() { + let ch = SlackChannel::new("xoxb-fake".into(), Some("C12345".into())); + assert_eq!(ch.channel_id, Some("C12345".to_string())); + } +} diff --git a/src/channels/telegram.rs b/src/channels/telegram.rs new file mode 100644 index 0000000..5d970f1 --- /dev/null +++ b/src/channels/telegram.rs @@ -0,0 +1,182 @@ +use super::traits::{Channel, ChannelMessage}; +use async_trait::async_trait; +use uuid::Uuid; + +/// Telegram channel — long-polls the Bot API for updates +pub struct TelegramChannel { + bot_token: String, + allowed_users: Vec, + client: reqwest::Client, +} + +impl TelegramChannel { + pub fn new(bot_token: String, allowed_users: Vec) -> Self { + Self { + bot_token, + allowed_users, + client: reqwest::Client::new(), + } + } + + fn api_url(&self, method: &str) -> String { + format!("https://api.telegram.org/bot{}/{method}", self.bot_token) + } + + fn is_user_allowed(&self, username: &str) -> bool { + self.allowed_users.iter().any(|u| u == "*" || u == username) + } +} + +#[async_trait] +impl Channel for TelegramChannel { + fn name(&self) -> &str { + "telegram" + } + + async fn send(&self, message: &str, chat_id: &str) -> anyhow::Result<()> { + let body = serde_json::json!({ + "chat_id": chat_id, + "text": message, + "parse_mode": "Markdown" + }); + + self.client + .post(self.api_url("sendMessage")) + .json(&body) + .send() + .await?; + + Ok(()) + } + + async fn listen(&self, tx: tokio::sync::mpsc::Sender) -> anyhow::Result<()> { + let mut offset: i64 = 0; + + tracing::info!("Telegram channel listening for messages..."); + + loop { + let url = self.api_url("getUpdates"); + let body = serde_json::json!({ + "offset": offset, + "timeout": 30, + "allowed_updates": ["message"] + }); + + let resp = match self.client.post(&url).json(&body).send().await { + Ok(r) => r, + Err(e) => { + tracing::warn!("Telegram poll error: {e}"); + tokio::time::sleep(std::time::Duration::from_secs(5)).await; + continue; + } + }; + + let data: serde_json::Value = match resp.json().await { + Ok(d) => d, + Err(e) => { + tracing::warn!("Telegram parse error: {e}"); + tokio::time::sleep(std::time::Duration::from_secs(5)).await; + continue; + } + }; + + if let Some(results) = data.get("result").and_then(serde_json::Value::as_array) { + for update in results { + // Advance offset past this update + if let Some(uid) = update.get("update_id").and_then(serde_json::Value::as_i64) { + offset = uid + 1; + } + + let Some(message) = update.get("message") else { + continue; + }; + + let Some(text) = message.get("text").and_then(serde_json::Value::as_str) else { + continue; + }; + + let username = message + .get("from") + .and_then(|f| f.get("username")) + .and_then(|u| u.as_str()) + .unwrap_or("unknown"); + + if !self.is_user_allowed(username) { + tracing::warn!("Telegram: ignoring message from unauthorized user: {username}"); + continue; + } + + let chat_id = message + .get("chat") + .and_then(|c| c.get("id")) + .and_then(serde_json::Value::as_i64) + .map(|id| id.to_string()) + .unwrap_or_default(); + + let msg = ChannelMessage { + id: Uuid::new_v4().to_string(), + sender: chat_id, + content: text.to_string(), + channel: "telegram".to_string(), + timestamp: std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_secs(), + }; + + if tx.send(msg).await.is_err() { + return Ok(()); + } + } + } + } + } + + async fn health_check(&self) -> bool { + self.client + .get(self.api_url("getMe")) + .send() + .await + .map(|r| r.status().is_success()) + .unwrap_or(false) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn telegram_channel_name() { + let ch = TelegramChannel::new("fake-token".into(), vec!["*".into()]); + assert_eq!(ch.name(), "telegram"); + } + + #[test] + fn telegram_api_url() { + let ch = TelegramChannel::new("123:ABC".into(), vec![]); + assert_eq!( + ch.api_url("getMe"), + "https://api.telegram.org/bot123:ABC/getMe" + ); + } + + #[test] + fn telegram_user_allowed_wildcard() { + let ch = TelegramChannel::new("t".into(), vec!["*".into()]); + assert!(ch.is_user_allowed("anyone")); + } + + #[test] + fn telegram_user_allowed_specific() { + let ch = TelegramChannel::new("t".into(), vec!["alice".into(), "bob".into()]); + assert!(ch.is_user_allowed("alice")); + assert!(!ch.is_user_allowed("eve")); + } + + #[test] + fn telegram_user_denied_empty() { + let ch = TelegramChannel::new("t".into(), vec![]); + assert!(!ch.is_user_allowed("anyone")); + } +} diff --git a/src/channels/traits.rs b/src/channels/traits.rs new file mode 100644 index 0000000..4709a1b --- /dev/null +++ b/src/channels/traits.rs @@ -0,0 +1,29 @@ +use async_trait::async_trait; + +/// A message received from or sent to a channel +#[derive(Debug, Clone)] +pub struct ChannelMessage { + pub id: String, + pub sender: String, + pub content: String, + pub channel: String, + pub timestamp: u64, +} + +/// Core channel trait — implement for any messaging platform +#[async_trait] +pub trait Channel: Send + Sync { + /// Human-readable channel name + fn name(&self) -> &str; + + /// Send a message through this channel + async fn send(&self, message: &str, recipient: &str) -> anyhow::Result<()>; + + /// Start listening for incoming messages (long-running) + async fn listen(&self, tx: tokio::sync::mpsc::Sender) -> anyhow::Result<()>; + + /// Check if channel is healthy + async fn health_check(&self) -> bool { + true + } +} diff --git a/src/config/mod.rs b/src/config/mod.rs new file mode 100644 index 0000000..e3c4ef9 --- /dev/null +++ b/src/config/mod.rs @@ -0,0 +1,7 @@ +pub mod schema; + +pub use schema::{ + AutonomyConfig, ChannelsConfig, Config, DiscordConfig, HeartbeatConfig, IMessageConfig, + MatrixConfig, MemoryConfig, ObservabilityConfig, RuntimeConfig, SlackConfig, TelegramConfig, + WebhookConfig, +}; diff --git a/src/config/schema.rs b/src/config/schema.rs new file mode 100644 index 0000000..63f407a --- /dev/null +++ b/src/config/schema.rs @@ -0,0 +1,580 @@ +use crate::security::AutonomyLevel; +use anyhow::{Context, Result}; +use directories::UserDirs; +use serde::{Deserialize, Serialize}; +use std::fs; +use std::path::PathBuf; + +// ── Top-level config ────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Config { + pub workspace_dir: PathBuf, + pub config_path: PathBuf, + pub api_key: Option, + pub default_provider: Option, + pub default_model: Option, + pub default_temperature: f64, + + #[serde(default)] + pub observability: ObservabilityConfig, + + #[serde(default)] + pub autonomy: AutonomyConfig, + + #[serde(default)] + pub runtime: RuntimeConfig, + + #[serde(default)] + pub heartbeat: HeartbeatConfig, + + #[serde(default)] + pub channels_config: ChannelsConfig, + + #[serde(default)] + pub memory: MemoryConfig, +} + +// ── Memory ─────────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct MemoryConfig { + /// "sqlite" | "markdown" | "none" + pub backend: String, + /// Auto-save conversation context to memory + pub auto_save: bool, +} + +impl Default for MemoryConfig { + fn default() -> Self { + Self { + backend: "sqlite".into(), + auto_save: true, + } + } +} + +// ── Observability ───────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ObservabilityConfig { + /// "none" | "log" | "prometheus" | "otel" + pub backend: String, +} + +impl Default for ObservabilityConfig { + fn default() -> Self { + Self { + backend: "none".into(), + } + } +} + +// ── Autonomy / Security ────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AutonomyConfig { + pub level: AutonomyLevel, + pub workspace_only: bool, + pub allowed_commands: Vec, + pub forbidden_paths: Vec, + pub max_actions_per_hour: u32, + pub max_cost_per_day_cents: u32, +} + +impl Default for AutonomyConfig { + fn default() -> Self { + Self { + level: AutonomyLevel::Supervised, + workspace_only: true, + allowed_commands: vec![ + "git".into(), + "npm".into(), + "cargo".into(), + "ls".into(), + "cat".into(), + "grep".into(), + "find".into(), + "echo".into(), + "pwd".into(), + "wc".into(), + "head".into(), + "tail".into(), + ], + forbidden_paths: vec![ + "/etc".into(), + "/root".into(), + "~/.ssh".into(), + "~/.gnupg".into(), + ], + max_actions_per_hour: 20, + max_cost_per_day_cents: 500, + } + } +} + +// ── Runtime ────────────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct RuntimeConfig { + /// "native" | "docker" | "cloudflare" + pub kind: String, +} + +impl Default for RuntimeConfig { + fn default() -> Self { + Self { + kind: "native".into(), + } + } +} + +// ── Heartbeat ──────────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct HeartbeatConfig { + pub enabled: bool, + pub interval_minutes: u32, +} + +impl Default for HeartbeatConfig { + fn default() -> Self { + Self { + enabled: false, + interval_minutes: 30, + } + } +} + +// ── Channels ───────────────────────────────────────────────────── + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ChannelsConfig { + pub cli: bool, + pub telegram: Option, + pub discord: Option, + pub slack: Option, + pub webhook: Option, + pub imessage: Option, + pub matrix: Option, +} + +impl Default for ChannelsConfig { + fn default() -> Self { + Self { + cli: true, + telegram: None, + discord: None, + slack: None, + webhook: None, + imessage: None, + matrix: None, + } + } +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct TelegramConfig { + pub bot_token: String, + pub allowed_users: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct DiscordConfig { + pub bot_token: String, + pub guild_id: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SlackConfig { + pub bot_token: String, + pub app_token: Option, + pub channel_id: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct WebhookConfig { + pub port: u16, + pub secret: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct IMessageConfig { + pub allowed_contacts: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct MatrixConfig { + pub homeserver: String, + pub access_token: String, + pub room_id: String, + pub allowed_users: Vec, +} + +// ── Config impl ────────────────────────────────────────────────── + +impl Default for Config { + fn default() -> Self { + let home = + UserDirs::new().map_or_else(|| PathBuf::from("."), |u| u.home_dir().to_path_buf()); + let zeroclaw_dir = home.join(".zeroclaw"); + + Self { + workspace_dir: zeroclaw_dir.join("workspace"), + config_path: zeroclaw_dir.join("config.toml"), + api_key: None, + default_provider: Some("openrouter".to_string()), + default_model: Some("anthropic/claude-sonnet-4-20250514".to_string()), + default_temperature: 0.7, + observability: ObservabilityConfig::default(), + autonomy: AutonomyConfig::default(), + runtime: RuntimeConfig::default(), + heartbeat: HeartbeatConfig::default(), + channels_config: ChannelsConfig::default(), + memory: MemoryConfig::default(), + } + } +} + +impl Config { + pub fn load_or_init() -> Result { + let home = UserDirs::new() + .map(|u| u.home_dir().to_path_buf()) + .context("Could not find home directory")?; + let zeroclaw_dir = home.join(".zeroclaw"); + let config_path = zeroclaw_dir.join("config.toml"); + + if !zeroclaw_dir.exists() { + fs::create_dir_all(&zeroclaw_dir).context("Failed to create .zeroclaw directory")?; + fs::create_dir_all(zeroclaw_dir.join("workspace")) + .context("Failed to create workspace directory")?; + } + + if config_path.exists() { + let contents = + fs::read_to_string(&config_path).context("Failed to read config file")?; + let config: Config = + toml::from_str(&contents).context("Failed to parse config file")?; + Ok(config) + } else { + let config = Config::default(); + config.save()?; + Ok(config) + } + } + + pub fn save(&self) -> Result<()> { + let toml_str = toml::to_string_pretty(self).context("Failed to serialize config")?; + fs::write(&self.config_path, toml_str).context("Failed to write config file")?; + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::path::PathBuf; + + // ── Defaults ───────────────────────────────────────────── + + #[test] + fn config_default_has_sane_values() { + let c = Config::default(); + assert_eq!(c.default_provider.as_deref(), Some("openrouter")); + assert!(c.default_model.as_deref().unwrap().contains("claude")); + assert!((c.default_temperature - 0.7).abs() < f64::EPSILON); + assert!(c.api_key.is_none()); + assert!(c.workspace_dir.to_string_lossy().contains("workspace")); + assert!(c.config_path.to_string_lossy().contains("config.toml")); + } + + #[test] + fn observability_config_default() { + let o = ObservabilityConfig::default(); + assert_eq!(o.backend, "none"); + } + + #[test] + fn autonomy_config_default() { + let a = AutonomyConfig::default(); + assert_eq!(a.level, AutonomyLevel::Supervised); + assert!(a.workspace_only); + assert!(a.allowed_commands.contains(&"git".to_string())); + assert!(a.allowed_commands.contains(&"cargo".to_string())); + assert!(a.forbidden_paths.contains(&"/etc".to_string())); + assert_eq!(a.max_actions_per_hour, 20); + assert_eq!(a.max_cost_per_day_cents, 500); + } + + #[test] + fn runtime_config_default() { + let r = RuntimeConfig::default(); + assert_eq!(r.kind, "native"); + } + + #[test] + fn heartbeat_config_default() { + let h = HeartbeatConfig::default(); + assert!(!h.enabled); + assert_eq!(h.interval_minutes, 30); + } + + #[test] + fn channels_config_default() { + let c = ChannelsConfig::default(); + assert!(c.cli); + assert!(c.telegram.is_none()); + assert!(c.discord.is_none()); + } + + // ── Serde round-trip ───────────────────────────────────── + + #[test] + fn config_toml_roundtrip() { + let config = Config { + workspace_dir: PathBuf::from("/tmp/test/workspace"), + config_path: PathBuf::from("/tmp/test/config.toml"), + api_key: Some("sk-test-key".into()), + default_provider: Some("openrouter".into()), + default_model: Some("gpt-4o".into()), + default_temperature: 0.5, + observability: ObservabilityConfig { + backend: "log".into(), + }, + autonomy: AutonomyConfig { + level: AutonomyLevel::Full, + workspace_only: false, + allowed_commands: vec!["docker".into()], + forbidden_paths: vec!["/secret".into()], + max_actions_per_hour: 50, + max_cost_per_day_cents: 1000, + }, + runtime: RuntimeConfig { + kind: "docker".into(), + }, + heartbeat: HeartbeatConfig { + enabled: true, + interval_minutes: 15, + }, + channels_config: ChannelsConfig { + cli: true, + telegram: Some(TelegramConfig { + bot_token: "123:ABC".into(), + allowed_users: vec!["user1".into()], + }), + discord: None, + slack: None, + webhook: None, + imessage: None, + matrix: None, + }, + memory: MemoryConfig::default(), + }; + + let toml_str = toml::to_string_pretty(&config).unwrap(); + let parsed: Config = toml::from_str(&toml_str).unwrap(); + + assert_eq!(parsed.api_key, config.api_key); + assert_eq!(parsed.default_provider, config.default_provider); + assert_eq!(parsed.default_model, config.default_model); + assert!((parsed.default_temperature - config.default_temperature).abs() < f64::EPSILON); + assert_eq!(parsed.observability.backend, "log"); + assert_eq!(parsed.autonomy.level, AutonomyLevel::Full); + assert!(!parsed.autonomy.workspace_only); + assert_eq!(parsed.runtime.kind, "docker"); + assert!(parsed.heartbeat.enabled); + assert_eq!(parsed.heartbeat.interval_minutes, 15); + assert!(parsed.channels_config.telegram.is_some()); + assert_eq!( + parsed.channels_config.telegram.unwrap().bot_token, + "123:ABC" + ); + } + + #[test] + fn config_minimal_toml_uses_defaults() { + let minimal = r#" +workspace_dir = "/tmp/ws" +config_path = "/tmp/config.toml" +default_temperature = 0.7 +"#; + let parsed: Config = toml::from_str(minimal).unwrap(); + assert!(parsed.api_key.is_none()); + assert!(parsed.default_provider.is_none()); + assert_eq!(parsed.observability.backend, "none"); + assert_eq!(parsed.autonomy.level, AutonomyLevel::Supervised); + assert_eq!(parsed.runtime.kind, "native"); + assert!(!parsed.heartbeat.enabled); + assert!(parsed.channels_config.cli); + } + + #[test] + fn config_save_and_load_tmpdir() { + let dir = std::env::temp_dir().join("zeroclaw_test_config"); + let _ = fs::remove_dir_all(&dir); + fs::create_dir_all(&dir).unwrap(); + + let config_path = dir.join("config.toml"); + let config = Config { + workspace_dir: dir.join("workspace"), + config_path: config_path.clone(), + api_key: Some("sk-roundtrip".into()), + default_provider: Some("openrouter".into()), + default_model: Some("test-model".into()), + default_temperature: 0.9, + observability: ObservabilityConfig::default(), + autonomy: AutonomyConfig::default(), + runtime: RuntimeConfig::default(), + heartbeat: HeartbeatConfig::default(), + channels_config: ChannelsConfig::default(), + memory: MemoryConfig::default(), + }; + + config.save().unwrap(); + assert!(config_path.exists()); + + let contents = fs::read_to_string(&config_path).unwrap(); + let loaded: Config = toml::from_str(&contents).unwrap(); + assert_eq!(loaded.api_key.as_deref(), Some("sk-roundtrip")); + assert_eq!(loaded.default_model.as_deref(), Some("test-model")); + assert!((loaded.default_temperature - 0.9).abs() < f64::EPSILON); + + let _ = fs::remove_dir_all(&dir); + } + + // ── Telegram / Discord config ──────────────────────────── + + #[test] + fn telegram_config_serde() { + let tc = TelegramConfig { + bot_token: "123:XYZ".into(), + allowed_users: vec!["alice".into(), "bob".into()], + }; + let json = serde_json::to_string(&tc).unwrap(); + let parsed: TelegramConfig = serde_json::from_str(&json).unwrap(); + assert_eq!(parsed.bot_token, "123:XYZ"); + assert_eq!(parsed.allowed_users.len(), 2); + } + + #[test] + fn discord_config_serde() { + let dc = DiscordConfig { + bot_token: "discord-token".into(), + guild_id: Some("12345".into()), + }; + let json = serde_json::to_string(&dc).unwrap(); + let parsed: DiscordConfig = serde_json::from_str(&json).unwrap(); + assert_eq!(parsed.bot_token, "discord-token"); + assert_eq!(parsed.guild_id.as_deref(), Some("12345")); + } + + #[test] + fn discord_config_optional_guild() { + let dc = DiscordConfig { + bot_token: "tok".into(), + guild_id: None, + }; + let json = serde_json::to_string(&dc).unwrap(); + let parsed: DiscordConfig = serde_json::from_str(&json).unwrap(); + assert!(parsed.guild_id.is_none()); + } + + // ── iMessage / Matrix config ──────────────────────────── + + #[test] + fn imessage_config_serde() { + let ic = IMessageConfig { + allowed_contacts: vec!["+1234567890".into(), "user@icloud.com".into()], + }; + let json = serde_json::to_string(&ic).unwrap(); + let parsed: IMessageConfig = serde_json::from_str(&json).unwrap(); + assert_eq!(parsed.allowed_contacts.len(), 2); + assert_eq!(parsed.allowed_contacts[0], "+1234567890"); + } + + #[test] + fn imessage_config_empty_contacts() { + let ic = IMessageConfig { + allowed_contacts: vec![], + }; + let json = serde_json::to_string(&ic).unwrap(); + let parsed: IMessageConfig = serde_json::from_str(&json).unwrap(); + assert!(parsed.allowed_contacts.is_empty()); + } + + #[test] + fn imessage_config_wildcard() { + let ic = IMessageConfig { + allowed_contacts: vec!["*".into()], + }; + let toml_str = toml::to_string(&ic).unwrap(); + let parsed: IMessageConfig = toml::from_str(&toml_str).unwrap(); + assert_eq!(parsed.allowed_contacts, vec!["*"]); + } + + #[test] + fn matrix_config_serde() { + let mc = MatrixConfig { + homeserver: "https://matrix.org".into(), + access_token: "syt_token_abc".into(), + room_id: "!room123:matrix.org".into(), + allowed_users: vec!["@user:matrix.org".into()], + }; + let json = serde_json::to_string(&mc).unwrap(); + let parsed: MatrixConfig = serde_json::from_str(&json).unwrap(); + assert_eq!(parsed.homeserver, "https://matrix.org"); + assert_eq!(parsed.access_token, "syt_token_abc"); + assert_eq!(parsed.room_id, "!room123:matrix.org"); + assert_eq!(parsed.allowed_users.len(), 1); + } + + #[test] + fn matrix_config_toml_roundtrip() { + let mc = MatrixConfig { + homeserver: "https://synapse.local:8448".into(), + access_token: "tok".into(), + room_id: "!abc:synapse.local".into(), + allowed_users: vec!["@admin:synapse.local".into(), "*".into()], + }; + let toml_str = toml::to_string(&mc).unwrap(); + let parsed: MatrixConfig = toml::from_str(&toml_str).unwrap(); + assert_eq!(parsed.homeserver, "https://synapse.local:8448"); + assert_eq!(parsed.allowed_users.len(), 2); + } + + #[test] + fn channels_config_with_imessage_and_matrix() { + let c = ChannelsConfig { + cli: true, + telegram: None, + discord: None, + slack: None, + webhook: None, + imessage: Some(IMessageConfig { + allowed_contacts: vec!["+1".into()], + }), + matrix: Some(MatrixConfig { + homeserver: "https://m.org".into(), + access_token: "tok".into(), + room_id: "!r:m".into(), + allowed_users: vec!["@u:m".into()], + }), + }; + let toml_str = toml::to_string_pretty(&c).unwrap(); + let parsed: ChannelsConfig = toml::from_str(&toml_str).unwrap(); + assert!(parsed.imessage.is_some()); + assert!(parsed.matrix.is_some()); + assert_eq!( + parsed.imessage.unwrap().allowed_contacts, + vec!["+1"] + ); + assert_eq!(parsed.matrix.unwrap().homeserver, "https://m.org"); + } + + #[test] + fn channels_config_default_has_no_imessage_matrix() { + let c = ChannelsConfig::default(); + assert!(c.imessage.is_none()); + assert!(c.matrix.is_none()); + } +} diff --git a/src/cron/mod.rs b/src/cron/mod.rs new file mode 100644 index 0000000..8f52701 --- /dev/null +++ b/src/cron/mod.rs @@ -0,0 +1,25 @@ +use crate::config::Config; +use anyhow::Result; + +pub fn handle_command(command: super::CronCommands, _config: Config) -> Result<()> { + match command { + super::CronCommands::List => { + println!("No scheduled tasks yet."); + println!("\nUsage:"); + println!(" zeroclaw cron add '0 9 * * *' 'agent -m \"Good morning!\"'"); + Ok(()) + } + super::CronCommands::Add { + expression, + command, + } => { + println!("Cron scheduling coming soon!"); + println!(" Expression: {expression}"); + println!(" Command: {command}"); + Ok(()) + } + super::CronCommands::Remove { id } => { + anyhow::bail!("Remove task '{id}' not yet implemented"); + } + } +} diff --git a/src/gateway/mod.rs b/src/gateway/mod.rs new file mode 100644 index 0000000..49fa64d --- /dev/null +++ b/src/gateway/mod.rs @@ -0,0 +1,180 @@ +use crate::config::Config; +use crate::memory::{self, Memory, MemoryCategory}; +use crate::providers::{self, Provider}; +use anyhow::Result; +use std::sync::Arc; +use tokio::io::{AsyncReadExt, AsyncWriteExt}; +use tokio::net::TcpListener; + +/// Run a minimal HTTP gateway (webhook + health check) +/// Zero new dependencies — uses raw TCP + tokio. +#[allow(clippy::too_many_lines)] +pub async fn run_gateway(host: &str, port: u16, config: Config) -> Result<()> { + let addr = format!("{host}:{port}"); + let listener = TcpListener::bind(&addr).await?; + + let provider: Arc = Arc::from(providers::create_provider( + config.default_provider.as_deref().unwrap_or("openrouter"), + config.api_key.as_deref(), + )?); + let model = config + .default_model + .clone() + .unwrap_or_else(|| "anthropic/claude-sonnet-4-20250514".into()); + let temperature = config.default_temperature; + let mem: Arc = + Arc::from(memory::create_memory(&config.memory, &config.workspace_dir)?); + + println!("🦀 ZeroClaw Gateway listening on http://{addr}"); + println!(" POST /webhook — {{\"message\": \"your prompt\"}}"); + println!(" GET /health — health check"); + println!(" Press Ctrl+C to stop.\n"); + + loop { + let (mut stream, peer) = listener.accept().await?; + let provider = provider.clone(); + let model = model.clone(); + let mem = mem.clone(); + let auto_save = config.memory.auto_save; + + tokio::spawn(async move { + let mut buf = vec![0u8; 8192]; + let n = match stream.read(&mut buf).await { + Ok(n) if n > 0 => n, + _ => return, + }; + + let request = String::from_utf8_lossy(&buf[..n]); + let first_line = request.lines().next().unwrap_or(""); + let parts: Vec<&str> = first_line.split_whitespace().collect(); + + if let [method, path, ..] = parts.as_slice() { + tracing::info!("{peer} → {method} {path}"); + handle_request(&mut stream, method, path, &request, &provider, &model, temperature, &mem, auto_save).await; + } else { + let _ = send_response(&mut stream, 400, "Bad Request").await; + } + }); + } +} + +#[allow(clippy::too_many_arguments)] +async fn handle_request( + stream: &mut tokio::net::TcpStream, + method: &str, + path: &str, + request: &str, + provider: &Arc, + model: &str, + temperature: f64, + mem: &Arc, + auto_save: bool, +) { + match (method, path) { + ("GET", "/health") => { + let body = serde_json::json!({ + "status": "ok", + "version": env!("CARGO_PKG_VERSION"), + "memory": mem.name(), + "memory_healthy": mem.health_check().await, + }); + let _ = send_json(stream, 200, &body).await; + } + + ("POST", "/webhook") => { + handle_webhook(stream, request, provider, model, temperature, mem, auto_save).await; + } + + _ => { + let body = serde_json::json!({ + "error": "Not found", + "routes": ["GET /health", "POST /webhook"] + }); + let _ = send_json(stream, 404, &body).await; + } + } +} + +async fn handle_webhook( + stream: &mut tokio::net::TcpStream, + request: &str, + provider: &Arc, + model: &str, + temperature: f64, + mem: &Arc, + auto_save: bool, +) { + let body_str = request + .split("\r\n\r\n") + .nth(1) + .or_else(|| request.split("\n\n").nth(1)) + .unwrap_or(""); + + let Ok(parsed) = serde_json::from_str::(body_str) else { + let err = serde_json::json!({"error": "Invalid JSON. Expected: {\"message\": \"...\"}"}); + let _ = send_json(stream, 400, &err).await; + return; + }; + + let Some(message) = parsed.get("message").and_then(|v| v.as_str()) else { + let err = serde_json::json!({"error": "Missing 'message' field in JSON"}); + let _ = send_json(stream, 400, &err).await; + return; + }; + + if auto_save { + let _ = mem + .store("webhook_msg", message, MemoryCategory::Conversation) + .await; + } + + match provider.chat(message, model, temperature).await { + Ok(response) => { + let body = serde_json::json!({"response": response, "model": model}); + let _ = send_json(stream, 200, &body).await; + } + Err(e) => { + let err = serde_json::json!({"error": format!("LLM error: {e}")}); + let _ = send_json(stream, 500, &err).await; + } + } +} + +async fn send_response( + stream: &mut tokio::net::TcpStream, + status: u16, + body: &str, +) -> std::io::Result<()> { + let reason = match status { + 200 => "OK", + 400 => "Bad Request", + 404 => "Not Found", + 500 => "Internal Server Error", + _ => "Unknown", + }; + let response = format!( + "HTTP/1.1 {status} {reason}\r\nContent-Type: text/plain\r\nContent-Length: {}\r\nConnection: close\r\n\r\n{body}", + body.len() + ); + stream.write_all(response.as_bytes()).await +} + +async fn send_json( + stream: &mut tokio::net::TcpStream, + status: u16, + body: &serde_json::Value, +) -> std::io::Result<()> { + let reason = match status { + 200 => "OK", + 400 => "Bad Request", + 404 => "Not Found", + 500 => "Internal Server Error", + _ => "Unknown", + }; + let json = serde_json::to_string(body).unwrap_or_default(); + let response = format!( + "HTTP/1.1 {status} {reason}\r\nContent-Type: application/json\r\nContent-Length: {}\r\nConnection: close\r\n\r\n{json}", + json.len() + ); + stream.write_all(response.as_bytes()).await +} diff --git a/src/heartbeat/engine.rs b/src/heartbeat/engine.rs new file mode 100644 index 0000000..8c7d084 --- /dev/null +++ b/src/heartbeat/engine.rs @@ -0,0 +1,296 @@ +use crate::config::HeartbeatConfig; +use crate::observability::{Observer, ObserverEvent}; +use anyhow::Result; +use std::path::Path; +use std::sync::Arc; +use tokio::time::{self, Duration}; +use tracing::{info, warn}; + +/// Heartbeat engine — reads HEARTBEAT.md and executes tasks periodically +pub struct HeartbeatEngine { + config: HeartbeatConfig, + workspace_dir: std::path::PathBuf, + observer: Arc, +} + +impl HeartbeatEngine { + pub fn new( + config: HeartbeatConfig, + workspace_dir: std::path::PathBuf, + observer: Arc, + ) -> Self { + Self { + config, + workspace_dir, + observer, + } + } + + /// Start the heartbeat loop (runs until cancelled) + pub async fn run(&self) -> Result<()> { + if !self.config.enabled { + info!("Heartbeat disabled"); + return Ok(()); + } + + let interval_mins = self.config.interval_minutes.max(5); + info!("💓 Heartbeat started: every {} minutes", interval_mins); + + let mut interval = time::interval(Duration::from_secs(u64::from(interval_mins) * 60)); + + loop { + interval.tick().await; + self.observer.record_event(&ObserverEvent::HeartbeatTick); + + match self.tick().await { + Ok(tasks) => { + if tasks > 0 { + info!("💓 Heartbeat: processed {} tasks", tasks); + } + } + Err(e) => { + warn!("💓 Heartbeat error: {}", e); + self.observer.record_event(&ObserverEvent::Error { + component: "heartbeat".into(), + message: e.to_string(), + }); + } + } + } + } + + /// Single heartbeat tick — read HEARTBEAT.md and return task count + async fn tick(&self) -> Result { + let heartbeat_path = self.workspace_dir.join("HEARTBEAT.md"); + + if !heartbeat_path.exists() { + return Ok(0); + } + + let content = tokio::fs::read_to_string(&heartbeat_path).await?; + let tasks = Self::parse_tasks(&content); + + Ok(tasks.len()) + } + + /// Parse tasks from HEARTBEAT.md (lines starting with `- `) + fn parse_tasks(content: &str) -> Vec { + content + .lines() + .filter_map(|line| { + let trimmed = line.trim(); + trimmed.strip_prefix("- ").map(ToString::to_string) + }) + .collect() + } + + /// Create a default HEARTBEAT.md if it doesn't exist + pub async fn ensure_heartbeat_file(workspace_dir: &Path) -> Result<()> { + let path = workspace_dir.join("HEARTBEAT.md"); + if !path.exists() { + let default = "# Periodic Tasks\n\n\ + # Add tasks below (one per line, starting with `- `)\n\ + # The agent will check this file on each heartbeat tick.\n\ + #\n\ + # Examples:\n\ + # - Check my email for important messages\n\ + # - Review my calendar for upcoming events\n\ + # - Check the weather forecast\n"; + tokio::fs::write(&path, default).await?; + } + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parse_tasks_basic() { + let content = "# Tasks\n\n- Check email\n- Review calendar\nNot a task\n- Third task"; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 3); + assert_eq!(tasks[0], "Check email"); + assert_eq!(tasks[1], "Review calendar"); + assert_eq!(tasks[2], "Third task"); + } + + #[test] + fn parse_tasks_empty_content() { + assert!(HeartbeatEngine::parse_tasks("").is_empty()); + } + + #[test] + fn parse_tasks_only_comments() { + let tasks = HeartbeatEngine::parse_tasks("# No tasks here\n\nJust comments\n# Another"); + assert!(tasks.is_empty()); + } + + #[test] + fn parse_tasks_with_leading_whitespace() { + let content = " - Indented task\n\t- Tab indented"; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 2); + assert_eq!(tasks[0], "Indented task"); + assert_eq!(tasks[1], "Tab indented"); + } + + #[test] + fn parse_tasks_dash_without_space_ignored() { + let content = "- Real task\n-\n- Another"; + let tasks = HeartbeatEngine::parse_tasks(content); + // "-" trimmed = "-", does NOT start with "- " => skipped + // "- Real task" => "Real task" + // "- Another" => "Another" + assert_eq!(tasks.len(), 2); + assert_eq!(tasks[0], "Real task"); + assert_eq!(tasks[1], "Another"); + } + + #[test] + fn parse_tasks_trailing_space_bullet_trimmed_to_dash() { + // "- " trimmed becomes "-" (trim removes trailing space) + // "-" does NOT start with "- " => skipped + let content = "- "; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 0); + } + + #[test] + fn parse_tasks_bullet_with_content_after_spaces() { + // "- hello " trimmed becomes "- hello" => starts_with "- " => "hello" + let content = "- hello "; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 1); + assert_eq!(tasks[0], "hello"); + } + + #[test] + fn parse_tasks_unicode() { + let content = "- Check email 📧\n- Review calendar 📅\n- 日本語タスク"; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 3); + assert!(tasks[0].contains("📧")); + assert!(tasks[2].contains("日本語")); + } + + #[test] + fn parse_tasks_mixed_markdown() { + let content = "# Periodic Tasks\n\n## Quick\n- Task A\n\n## Long\n- Task B\n\n* Not a dash bullet\n1. Not numbered"; + let tasks = HeartbeatEngine::parse_tasks(content); + assert_eq!(tasks.len(), 2); + assert_eq!(tasks[0], "Task A"); + assert_eq!(tasks[1], "Task B"); + } + + #[test] + fn parse_tasks_single_task() { + let tasks = HeartbeatEngine::parse_tasks("- Only one"); + assert_eq!(tasks.len(), 1); + assert_eq!(tasks[0], "Only one"); + } + + #[test] + fn parse_tasks_many_tasks() { + let content: String = (0..100).map(|i| format!("- Task {i}\n")).collect(); + let tasks = HeartbeatEngine::parse_tasks(&content); + assert_eq!(tasks.len(), 100); + assert_eq!(tasks[99], "Task 99"); + } + + #[tokio::test] + async fn ensure_heartbeat_file_creates_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_heartbeat"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + HeartbeatEngine::ensure_heartbeat_file(&dir).await.unwrap(); + + let path = dir.join("HEARTBEAT.md"); + assert!(path.exists()); + let content = tokio::fs::read_to_string(&path).await.unwrap(); + assert!(content.contains("Periodic Tasks")); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn ensure_heartbeat_file_does_not_overwrite() { + let dir = std::env::temp_dir().join("zeroclaw_test_heartbeat_no_overwrite"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let path = dir.join("HEARTBEAT.md"); + tokio::fs::write(&path, "- My custom task").await.unwrap(); + + HeartbeatEngine::ensure_heartbeat_file(&dir).await.unwrap(); + + let content = tokio::fs::read_to_string(&path).await.unwrap(); + assert_eq!(content, "- My custom task"); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn tick_returns_zero_when_no_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_tick_no_file"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let observer: Arc = Arc::new(crate::observability::NoopObserver); + let engine = HeartbeatEngine::new( + HeartbeatConfig { + enabled: true, + interval_minutes: 30, + }, + dir.clone(), + observer, + ); + let count = engine.tick().await.unwrap(); + assert_eq!(count, 0); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn tick_counts_tasks_from_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_tick_count"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + tokio::fs::write(dir.join("HEARTBEAT.md"), "- A\n- B\n- C") + .await + .unwrap(); + + let observer: Arc = Arc::new(crate::observability::NoopObserver); + let engine = HeartbeatEngine::new( + HeartbeatConfig { + enabled: true, + interval_minutes: 30, + }, + dir.clone(), + observer, + ); + let count = engine.tick().await.unwrap(); + assert_eq!(count, 3); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn run_returns_immediately_when_disabled() { + let observer: Arc = Arc::new(crate::observability::NoopObserver); + let engine = HeartbeatEngine::new( + HeartbeatConfig { + enabled: false, + interval_minutes: 30, + }, + std::env::temp_dir(), + observer, + ); + // Should return Ok immediately, not loop forever + let result = engine.run().await; + assert!(result.is_ok()); + } +} diff --git a/src/heartbeat/mod.rs b/src/heartbeat/mod.rs new file mode 100644 index 0000000..702e611 --- /dev/null +++ b/src/heartbeat/mod.rs @@ -0,0 +1 @@ +pub mod engine; diff --git a/src/integrations/mod.rs b/src/integrations/mod.rs new file mode 100644 index 0000000..59d300e --- /dev/null +++ b/src/integrations/mod.rs @@ -0,0 +1,234 @@ +pub mod registry; + +use crate::config::Config; +use anyhow::Result; + +/// Integration status +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum IntegrationStatus { + /// Fully implemented and ready to use + Available, + /// Configured and active + Active, + /// Planned but not yet implemented + ComingSoon, +} + +/// Integration category +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum IntegrationCategory { + Chat, + AiModel, + Productivity, + MusicAudio, + SmartHome, + ToolsAutomation, + MediaCreative, + Social, + Platform, +} + +impl IntegrationCategory { + pub fn label(self) -> &'static str { + match self { + Self::Chat => "Chat Providers", + Self::AiModel => "AI Models", + Self::Productivity => "Productivity", + Self::MusicAudio => "Music & Audio", + Self::SmartHome => "Smart Home", + Self::ToolsAutomation => "Tools & Automation", + Self::MediaCreative => "Media & Creative", + Self::Social => "Social", + Self::Platform => "Platforms", + } + } + + pub fn all() -> &'static [Self] { + &[ + Self::Chat, + Self::AiModel, + Self::Productivity, + Self::MusicAudio, + Self::SmartHome, + Self::ToolsAutomation, + Self::MediaCreative, + Self::Social, + Self::Platform, + ] + } +} + +/// A registered integration +pub struct IntegrationEntry { + pub name: &'static str, + pub description: &'static str, + pub category: IntegrationCategory, + pub status_fn: fn(&Config) -> IntegrationStatus, +} + +/// Handle the `integrations` CLI command +pub fn handle_command(command: super::IntegrationCommands, config: &Config) -> Result<()> { + match command { + super::IntegrationCommands::List { category } => { + list_integrations(config, category.as_deref()) + } + super::IntegrationCommands::Info { name } => show_integration_info(config, &name), + } +} + +#[allow(clippy::unnecessary_wraps)] +fn list_integrations(config: &Config, filter_category: Option<&str>) -> Result<()> { + let entries = registry::all_integrations(); + + let mut available = 0u32; + let mut active = 0u32; + let mut coming = 0u32; + + for &cat in IntegrationCategory::all() { + // Filter by category if specified + if let Some(filter) = filter_category { + let filter_lower = filter.to_lowercase(); + let cat_lower = cat.label().to_lowercase(); + if !cat_lower.contains(&filter_lower) { + continue; + } + } + + let cat_entries: Vec<&IntegrationEntry> = + entries.iter().filter(|e| e.category == cat).collect(); + + if cat_entries.is_empty() { + continue; + } + + println!("\n ⟩ {}", console::style(cat.label()).white().bold()); + + for entry in &cat_entries { + let status = (entry.status_fn)(config); + let (icon, label) = match status { + IntegrationStatus::Active => { + active += 1; + ("✅", console::style("active").green()) + } + IntegrationStatus::Available => { + available += 1; + ("⚪", console::style("available").dim()) + } + IntegrationStatus::ComingSoon => { + coming += 1; + ("🔜", console::style("coming soon").dim()) + } + }; + println!( + " {icon} {:<22} {:<30} {}", + console::style(entry.name).white().bold(), + entry.description, + label + ); + } + } + + let total = available + active + coming; + println!(); + println!(" {total} integrations: {active} active, {available} available, {coming} coming soon"); + println!(); + println!(" Configure: zeroclaw onboard"); + println!(" Details: zeroclaw integrations info "); + println!(); + + Ok(()) +} + +fn show_integration_info(config: &Config, name: &str) -> Result<()> { + let entries = registry::all_integrations(); + let name_lower = name.to_lowercase(); + + let Some(entry) = entries.iter().find(|e| e.name.to_lowercase() == name_lower) else { + anyhow::bail!( + "Unknown integration: {name}. Run `zeroclaw integrations list` to see all." + ); + }; + + let status = (entry.status_fn)(config); + let (icon, label) = match status { + IntegrationStatus::Active => ("✅", "Active"), + IntegrationStatus::Available => ("⚪", "Available"), + IntegrationStatus::ComingSoon => ("🔜", "Coming Soon"), + }; + + println!(); + println!(" {} {} — {}", icon, console::style(entry.name).white().bold(), entry.description); + println!(" Category: {}", entry.category.label()); + println!(" Status: {label}"); + println!(); + + // Show setup hints based on integration + match entry.name { + "Telegram" => { + println!(" Setup:"); + println!(" 1. Message @BotFather on Telegram"); + println!(" 2. Create a bot and copy the token"); + println!(" 3. Run: zeroclaw onboard"); + println!(" 4. Start: zeroclaw channel start"); + } + "Discord" => { + println!(" Setup:"); + println!(" 1. Go to https://discord.com/developers/applications"); + println!(" 2. Create app → Bot → Copy token"); + println!(" 3. Enable MESSAGE CONTENT intent"); + println!(" 4. Run: zeroclaw onboard"); + } + "Slack" => { + println!(" Setup:"); + println!(" 1. Go to https://api.slack.com/apps"); + println!(" 2. Create app → Bot Token Scopes → Install"); + println!(" 3. Run: zeroclaw onboard"); + } + "OpenRouter" => { + println!(" Setup:"); + println!(" 1. Get API key at https://openrouter.ai/keys"); + println!(" 2. Run: zeroclaw onboard"); + println!(" Access 200+ models with one key."); + } + "Ollama" => { + println!(" Setup:"); + println!(" 1. Install: brew install ollama"); + println!(" 2. Pull a model: ollama pull llama3"); + println!(" 3. Set provider to 'ollama' in config.toml"); + } + "iMessage" => { + println!(" Setup (macOS only):"); + println!(" Uses AppleScript bridge to send/receive iMessages."); + println!(" Requires Full Disk Access in System Settings → Privacy."); + } + "GitHub" => { + println!(" Setup:"); + println!(" 1. Create a personal access token at https://github.com/settings/tokens"); + println!(" 2. Add to config: [integrations.github] token = \"ghp_...\""); + } + "Browser" => { + println!(" Built-in:"); + println!(" ZeroClaw can control Chrome/Chromium for web tasks."); + println!(" Uses headless browser automation."); + } + "Cron" => { + println!(" Built-in:"); + println!(" Schedule tasks in ~/.zeroclaw/workspace/cron/"); + println!(" Run: zeroclaw cron list"); + } + "Webhooks" => { + println!(" Built-in:"); + println!(" HTTP endpoint for external triggers."); + println!(" Run: zeroclaw gateway"); + } + _ => { + if status == IntegrationStatus::ComingSoon { + println!(" This integration is planned. Stay tuned!"); + println!(" Track progress: https://github.com/theonlyhennygod/zeroclaw"); + } + } + } + + println!(); + Ok(()) +} diff --git a/src/integrations/registry.rs b/src/integrations/registry.rs new file mode 100644 index 0000000..0a2e3ea --- /dev/null +++ b/src/integrations/registry.rs @@ -0,0 +1,821 @@ +use super::{IntegrationCategory, IntegrationEntry, IntegrationStatus}; + +/// Returns the full catalog of integrations +#[allow(clippy::too_many_lines)] +pub fn all_integrations() -> Vec { + vec![ + // ── Chat Providers ────────────────────────────────────── + IntegrationEntry { + name: "Telegram", + description: "Bot API — long-polling", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.telegram.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Discord", + description: "Servers, channels & DMs", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.discord.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Slack", + description: "Workspace apps via Web API", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.slack.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Webhooks", + description: "HTTP endpoint for triggers", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.webhook.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "WhatsApp", + description: "QR pairing via web bridge", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Signal", + description: "Privacy-focused via signal-cli", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "iMessage", + description: "macOS AppleScript bridge", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.imessage.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Microsoft Teams", + description: "Enterprise chat support", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Matrix", + description: "Matrix protocol (Element)", + category: IntegrationCategory::Chat, + status_fn: |c| { + if c.channels_config.matrix.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Nostr", + description: "Decentralized DMs (NIP-04)", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "WebChat", + description: "Browser-based chat UI", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Nextcloud Talk", + description: "Self-hosted Nextcloud chat", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Zalo", + description: "Zalo Bot API", + category: IntegrationCategory::Chat, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── AI Models ─────────────────────────────────────────── + IntegrationEntry { + name: "OpenRouter", + description: "200+ models, 1 API key", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("openrouter") && c.api_key.is_some() { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Anthropic", + description: "Claude 3.5/4 Sonnet & Opus", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("anthropic") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "OpenAI", + description: "GPT-4o, GPT-5, o1", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("openai") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Google", + description: "Gemini 2.5 Pro/Flash", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_model.as_deref().is_some_and(|m| m.starts_with("google/")) { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "DeepSeek", + description: "DeepSeek V3 & R1", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_model.as_deref().is_some_and(|m| m.starts_with("deepseek/")) { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "xAI", + description: "Grok 3 & 4", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_model.as_deref().is_some_and(|m| m.starts_with("x-ai/")) { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Mistral", + description: "Mistral Large & Codestral", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_model.as_deref().is_some_and(|m| m.starts_with("mistral")) { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Ollama", + description: "Local models (Llama, etc.)", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("ollama") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Perplexity", + description: "Search-augmented AI", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("perplexity") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Hugging Face", + description: "Open-source models", + category: IntegrationCategory::AiModel, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "LM Studio", + description: "Local model server", + category: IntegrationCategory::AiModel, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Venice", + description: "Privacy-first inference (Llama, Opus)", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("venice") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Vercel AI", + description: "Vercel AI Gateway", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("vercel") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Cloudflare AI", + description: "Cloudflare AI Gateway", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("cloudflare") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Moonshot", + description: "Kimi & Kimi Coding", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("moonshot") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Synthetic", + description: "Synthetic AI models", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("synthetic") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "OpenCode Zen", + description: "Code-focused AI models", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("opencode") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Z.AI", + description: "Z.AI inference", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("zai") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "GLM", + description: "ChatGLM / Zhipu models", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("glm") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "MiniMax", + description: "MiniMax AI models", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("minimax") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Amazon Bedrock", + description: "AWS managed model access", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("bedrock") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Qianfan", + description: "Baidu AI models", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("qianfan") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Groq", + description: "Ultra-fast LPU inference", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("groq") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Together AI", + description: "Open-source model hosting", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("together") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Fireworks AI", + description: "Fast open-source inference", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("fireworks") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Cohere", + description: "Command R+ & embeddings", + category: IntegrationCategory::AiModel, + status_fn: |c| { + if c.default_provider.as_deref() == Some("cohere") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + // ── Productivity ──────────────────────────────────────── + IntegrationEntry { + name: "GitHub", + description: "Code, issues, PRs", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Notion", + description: "Workspace & databases", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Apple Notes", + description: "Native macOS/iOS notes", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Apple Reminders", + description: "Task management", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Obsidian", + description: "Knowledge graph notes", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Things 3", + description: "GTD task manager", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Bear Notes", + description: "Markdown notes", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Trello", + description: "Kanban boards", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Linear", + description: "Issue tracking", + category: IntegrationCategory::Productivity, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Music & Audio ─────────────────────────────────────── + IntegrationEntry { + name: "Spotify", + description: "Music playback control", + category: IntegrationCategory::MusicAudio, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Sonos", + description: "Multi-room audio", + category: IntegrationCategory::MusicAudio, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Shazam", + description: "Song recognition", + category: IntegrationCategory::MusicAudio, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Smart Home ────────────────────────────────────────── + IntegrationEntry { + name: "Home Assistant", + description: "Home automation hub", + category: IntegrationCategory::SmartHome, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Philips Hue", + description: "Smart lighting", + category: IntegrationCategory::SmartHome, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "8Sleep", + description: "Smart mattress", + category: IntegrationCategory::SmartHome, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Tools & Automation ────────────────────────────────── + IntegrationEntry { + name: "Browser", + description: "Chrome/Chromium control", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::Available, + }, + IntegrationEntry { + name: "Shell", + description: "Terminal command execution", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::Active, + }, + IntegrationEntry { + name: "File System", + description: "Read/write files", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::Active, + }, + IntegrationEntry { + name: "Cron", + description: "Scheduled tasks", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::Available, + }, + IntegrationEntry { + name: "Voice", + description: "Voice wake + talk mode", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Gmail", + description: "Email triggers & send", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "1Password", + description: "Secure credentials", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Weather", + description: "Forecasts & conditions", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Canvas", + description: "Visual workspace + A2UI", + category: IntegrationCategory::ToolsAutomation, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Media & Creative ──────────────────────────────────── + IntegrationEntry { + name: "Image Gen", + description: "AI image generation", + category: IntegrationCategory::MediaCreative, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "GIF Search", + description: "Find the perfect GIF", + category: IntegrationCategory::MediaCreative, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Screen Capture", + description: "Screenshot & screen control", + category: IntegrationCategory::MediaCreative, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Camera", + description: "Photo/video capture", + category: IntegrationCategory::MediaCreative, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Social ────────────────────────────────────────────── + IntegrationEntry { + name: "Twitter/X", + description: "Tweet, reply, search", + category: IntegrationCategory::Social, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + IntegrationEntry { + name: "Email", + description: "Send & read emails", + category: IntegrationCategory::Social, + status_fn: |_| IntegrationStatus::ComingSoon, + }, + // ── Platforms ─────────────────────────────────────────── + IntegrationEntry { + name: "macOS", + description: "Native support + AppleScript", + category: IntegrationCategory::Platform, + status_fn: |_| { + if cfg!(target_os = "macos") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Linux", + description: "Native support", + category: IntegrationCategory::Platform, + status_fn: |_| { + if cfg!(target_os = "linux") { + IntegrationStatus::Active + } else { + IntegrationStatus::Available + } + }, + }, + IntegrationEntry { + name: "Windows", + description: "WSL2 recommended", + category: IntegrationCategory::Platform, + status_fn: |_| IntegrationStatus::Available, + }, + IntegrationEntry { + name: "iOS", + description: "Chat via Telegram/Discord", + category: IntegrationCategory::Platform, + status_fn: |_| IntegrationStatus::Available, + }, + IntegrationEntry { + name: "Android", + description: "Chat via Telegram/Discord", + category: IntegrationCategory::Platform, + status_fn: |_| IntegrationStatus::Available, + }, + ] +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::config::Config; + use crate::config::schema::{ + ChannelsConfig, IMessageConfig, MatrixConfig, TelegramConfig, + }; + + #[test] + fn registry_has_entries() { + let entries = all_integrations(); + assert!(entries.len() >= 50, "Expected 50+ integrations, got {}", entries.len()); + } + + #[test] + fn all_categories_represented() { + let entries = all_integrations(); + for cat in IntegrationCategory::all() { + let count = entries.iter().filter(|e| e.category == *cat).count(); + assert!(count > 0, "Category {:?} has no entries", cat); + } + } + + #[test] + fn status_functions_dont_panic() { + let config = Config::default(); + let entries = all_integrations(); + for entry in &entries { + let _ = (entry.status_fn)(&config); + } + } + + #[test] + fn no_duplicate_names() { + let entries = all_integrations(); + let mut seen = std::collections::HashSet::new(); + for entry in &entries { + assert!( + seen.insert(entry.name), + "Duplicate integration name: {}", + entry.name + ); + } + } + + #[test] + fn no_empty_names_or_descriptions() { + let entries = all_integrations(); + for entry in &entries { + assert!(!entry.name.is_empty(), "Found integration with empty name"); + assert!( + !entry.description.is_empty(), + "Integration '{}' has empty description", + entry.name + ); + } + } + + #[test] + fn telegram_active_when_configured() { + let mut config = Config::default(); + config.channels_config.telegram = Some(TelegramConfig { + bot_token: "123:ABC".into(), + allowed_users: vec!["user".into()], + }); + let entries = all_integrations(); + let tg = entries.iter().find(|e| e.name == "Telegram").unwrap(); + assert!(matches!((tg.status_fn)(&config), IntegrationStatus::Active)); + } + + #[test] + fn telegram_available_when_not_configured() { + let config = Config::default(); + let entries = all_integrations(); + let tg = entries.iter().find(|e| e.name == "Telegram").unwrap(); + assert!(matches!((tg.status_fn)(&config), IntegrationStatus::Available)); + } + + #[test] + fn imessage_active_when_configured() { + let mut config = Config::default(); + config.channels_config.imessage = Some(IMessageConfig { + allowed_contacts: vec!["*".into()], + }); + let entries = all_integrations(); + let im = entries.iter().find(|e| e.name == "iMessage").unwrap(); + assert!(matches!((im.status_fn)(&config), IntegrationStatus::Active)); + } + + #[test] + fn imessage_available_when_not_configured() { + let config = Config::default(); + let entries = all_integrations(); + let im = entries.iter().find(|e| e.name == "iMessage").unwrap(); + assert!(matches!((im.status_fn)(&config), IntegrationStatus::Available)); + } + + #[test] + fn matrix_active_when_configured() { + let mut config = Config::default(); + config.channels_config.matrix = Some(MatrixConfig { + homeserver: "https://m.org".into(), + access_token: "tok".into(), + room_id: "!r:m".into(), + allowed_users: vec![], + }); + let entries = all_integrations(); + let mx = entries.iter().find(|e| e.name == "Matrix").unwrap(); + assert!(matches!((mx.status_fn)(&config), IntegrationStatus::Active)); + } + + #[test] + fn matrix_available_when_not_configured() { + let config = Config::default(); + let entries = all_integrations(); + let mx = entries.iter().find(|e| e.name == "Matrix").unwrap(); + assert!(matches!((mx.status_fn)(&config), IntegrationStatus::Available)); + } + + #[test] + fn coming_soon_integrations_stay_coming_soon() { + let config = Config::default(); + let entries = all_integrations(); + for name in ["WhatsApp", "Signal", "Nostr", "Spotify", "Home Assistant"] { + let entry = entries.iter().find(|e| e.name == name).unwrap(); + assert!( + matches!((entry.status_fn)(&config), IntegrationStatus::ComingSoon), + "{name} should be ComingSoon" + ); + } + } + + #[test] + fn shell_and_filesystem_always_active() { + let config = Config::default(); + let entries = all_integrations(); + for name in ["Shell", "File System"] { + let entry = entries.iter().find(|e| e.name == name).unwrap(); + assert!( + matches!((entry.status_fn)(&config), IntegrationStatus::Active), + "{name} should always be Active" + ); + } + } + + #[test] + fn macos_active_on_macos() { + let config = Config::default(); + let entries = all_integrations(); + let macos = entries.iter().find(|e| e.name == "macOS").unwrap(); + let status = (macos.status_fn)(&config); + if cfg!(target_os = "macos") { + assert!(matches!(status, IntegrationStatus::Active)); + } else { + assert!(matches!(status, IntegrationStatus::Available)); + } + } + + #[test] + fn category_counts_reasonable() { + let entries = all_integrations(); + let chat_count = entries.iter().filter(|e| e.category == IntegrationCategory::Chat).count(); + let ai_count = entries.iter().filter(|e| e.category == IntegrationCategory::AiModel).count(); + assert!(chat_count >= 5, "Expected 5+ chat integrations, got {chat_count}"); + assert!(ai_count >= 5, "Expected 5+ AI model integrations, got {ai_count}"); + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..12c2334 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,20 @@ +#![warn(clippy::all, clippy::pedantic)] +#![allow( + clippy::missing_errors_doc, + clippy::missing_panics_doc, + clippy::unnecessary_literal_bound, + clippy::module_name_repetitions, + clippy::struct_field_names, + clippy::must_use_candidate, + clippy::new_without_default, + clippy::return_self_not_must_use, + dead_code +)] + +pub mod config; +pub mod heartbeat; +pub mod memory; +pub mod observability; +pub mod providers; +pub mod runtime; +pub mod security; diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..6c31550 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,326 @@ +#![warn(clippy::all, clippy::pedantic)] +#![allow( + clippy::missing_errors_doc, + clippy::missing_panics_doc, + clippy::unnecessary_literal_bound, + clippy::module_name_repetitions, + clippy::struct_field_names, + dead_code +)] + +use anyhow::Result; +use clap::{Parser, Subcommand}; +use tracing::{info, Level}; +use tracing_subscriber::FmtSubscriber; + +mod agent; +mod channels; +mod config; +mod cron; +mod gateway; +mod heartbeat; +mod memory; +mod observability; +mod onboard; +mod providers; +mod runtime; +mod security; +mod integrations; +mod skills; +mod tools; + +use config::Config; + +/// `ZeroClaw` - Zero overhead. Zero compromise. 100% Rust. +#[derive(Parser, Debug)] +#[command(name = "zeroclaw")] +#[command(author = "theonlyhennygod")] +#[command(version = "0.1.0")] +#[command(about = "The fastest, smallest AI assistant.", long_about = None)] +struct Cli { + #[command(subcommand)] + command: Commands, +} + +#[derive(Subcommand, Debug)] +enum Commands { + /// Initialize your workspace and configuration + Onboard, + + /// Start the AI agent loop + Agent { + /// Single message mode (don't enter interactive mode) + #[arg(short, long)] + message: Option, + + /// Provider to use (openrouter, anthropic, openai) + #[arg(short, long)] + provider: Option, + + /// Model to use + #[arg(short, long)] + model: Option, + + /// Temperature (0.0 - 2.0) + #[arg(short, long, default_value = "0.7")] + temperature: f64, + }, + + /// Start the gateway server (webhooks, websockets) + Gateway { + /// Port to listen on + #[arg(short, long, default_value = "8080")] + port: u16, + + /// Host to bind to + #[arg(short, long, default_value = "127.0.0.1")] + host: String, + }, + + /// Show system status + Status { + /// Show detailed status + #[arg(short, long)] + verbose: bool, + }, + + /// Configure and manage scheduled tasks + Cron { + #[command(subcommand)] + cron_command: CronCommands, + }, + + /// Manage channels (telegram, discord, slack) + Channel { + #[command(subcommand)] + channel_command: ChannelCommands, + }, + + /// Tool utilities + Tools { + #[command(subcommand)] + tool_command: ToolCommands, + }, + + /// Browse 50+ integrations + Integrations { + #[command(subcommand)] + integration_command: IntegrationCommands, + }, + + /// Manage skills (user-defined capabilities) + Skills { + #[command(subcommand)] + skill_command: SkillCommands, + }, +} + +#[derive(Subcommand, Debug)] +enum CronCommands { + /// List all scheduled tasks + List, + /// Add a new scheduled task + Add { + /// Cron expression + expression: String, + /// Command to run + command: String, + }, + /// Remove a scheduled task + Remove { + /// Task ID + id: String, + }, +} + +#[derive(Subcommand, Debug)] +enum ChannelCommands { + /// List configured channels + List, + /// Start all configured channels (Telegram, Discord, Slack) + Start, + /// Add a new channel + Add { + /// Channel type + channel_type: String, + /// Configuration JSON + config: String, + }, + /// Remove a channel + Remove { + /// Channel name + name: String, + }, +} + +#[derive(Subcommand, Debug)] +enum SkillCommands { + /// List installed skills + List, + /// Install a skill from a GitHub URL or local path + Install { + /// GitHub URL or local path + source: String, + }, + /// Remove an installed skill + Remove { + /// Skill name + name: String, + }, +} + +#[derive(Subcommand, Debug)] +enum IntegrationCommands { + /// List all integrations and their status + List { + /// Filter by category (e.g. "chat", "ai", "productivity") + #[arg(short, long)] + category: Option, + }, + /// Show details about a specific integration + Info { + /// Integration name + name: String, + }, +} + +#[derive(Subcommand, Debug)] +enum ToolCommands { + /// List available tools + List, + /// Test a tool + Test { + /// Tool name + tool: String, + /// Tool arguments (JSON) + args: String, + }, +} + +#[tokio::main] +#[allow(clippy::too_many_lines)] +async fn main() -> Result<()> { + let cli = Cli::parse(); + + // Initialize logging + let subscriber = FmtSubscriber::builder() + .with_max_level(Level::INFO) + .finish(); + + tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed"); + + // Onboard runs the interactive wizard — no existing config needed + if matches!(cli.command, Commands::Onboard) { + let config = onboard::run_wizard()?; + // Auto-start channels if user said yes during wizard + if std::env::var("ZEROCLAW_AUTOSTART_CHANNELS").as_deref() == Ok("1") { + channels::start_channels(config).await?; + } + return Ok(()); + } + + // All other commands need config loaded first + let config = Config::load_or_init()?; + + match cli.command { + Commands::Onboard => unreachable!(), + + Commands::Agent { + message, + provider, + model, + temperature, + } => agent::run(config, message, provider, model, temperature).await, + + Commands::Gateway { port, host } => { + info!("🚀 Starting ZeroClaw Gateway on {host}:{port}"); + info!("POST http://{host}:{port}/webhook — send JSON messages"); + info!("GET http://{host}:{port}/health — health check"); + gateway::run_gateway(&host, port, config).await + } + + Commands::Status { verbose } => { + println!("🦀 ZeroClaw Status"); + println!(); + println!("Version: {}", env!("CARGO_PKG_VERSION")); + println!("Workspace: {}", config.workspace_dir.display()); + println!("Config: {}", config.config_path.display()); + println!(); + println!( + "🤖 Provider: {}", + config.default_provider.as_deref().unwrap_or("openrouter") + ); + println!( + " Model: {}", + config.default_model.as_deref().unwrap_or("(default)") + ); + println!("📊 Observability: {}", config.observability.backend); + println!("🛡️ Autonomy: {:?}", config.autonomy.level); + println!("⚙️ Runtime: {}", config.runtime.kind); + println!( + "💓 Heartbeat: {}", + if config.heartbeat.enabled { + format!("every {}min", config.heartbeat.interval_minutes) + } else { + "disabled".into() + } + ); + println!( + "🧠 Memory: {} (auto-save: {})", + config.memory.backend, + if config.memory.auto_save { "on" } else { "off" } + ); + + if verbose { + println!(); + println!("Security:"); + println!(" Workspace only: {}", config.autonomy.workspace_only); + println!( + " Allowed commands: {}", + config.autonomy.allowed_commands.join(", ") + ); + println!( + " Max actions/hour: {}", + config.autonomy.max_actions_per_hour + ); + println!( + " Max cost/day: ${:.2}", + f64::from(config.autonomy.max_cost_per_day_cents) / 100.0 + ); + println!(); + println!("Channels:"); + println!(" CLI: ✅ always"); + for (name, configured) in [ + ("Telegram", config.channels_config.telegram.is_some()), + ("Discord", config.channels_config.discord.is_some()), + ("Slack", config.channels_config.slack.is_some()), + ("Webhook", config.channels_config.webhook.is_some()), + ] { + println!( + " {name:9} {}", + if configured { "✅ configured" } else { "❌ not configured" } + ); + } + } + + Ok(()) + } + + Commands::Cron { cron_command } => cron::handle_command(cron_command, config), + + Commands::Channel { channel_command } => match channel_command { + ChannelCommands::Start => channels::start_channels(config).await, + other => channels::handle_command(other, &config), + }, + + Commands::Tools { tool_command } => tools::handle_command(tool_command, config).await, + + Commands::Integrations { + integration_command, + } => integrations::handle_command(integration_command, &config), + + Commands::Skills { skill_command } => { + skills::handle_command(skill_command, &config.workspace_dir) + } + } +} diff --git a/src/memory/markdown.rs b/src/memory/markdown.rs new file mode 100644 index 0000000..8dcd667 --- /dev/null +++ b/src/memory/markdown.rs @@ -0,0 +1,344 @@ +use super::traits::{Memory, MemoryCategory, MemoryEntry}; +use async_trait::async_trait; +use chrono::Local; +use std::path::{Path, PathBuf}; +use tokio::fs; + +/// Markdown-based memory — plain files as source of truth +/// +/// Layout: +/// workspace/MEMORY.md — curated long-term memory (core) +/// workspace/memory/YYYY-MM-DD.md — daily logs (append-only) +pub struct MarkdownMemory { + workspace_dir: PathBuf, +} + +impl MarkdownMemory { + pub fn new(workspace_dir: &Path) -> Self { + Self { + workspace_dir: workspace_dir.to_path_buf(), + } + } + + fn memory_dir(&self) -> PathBuf { + self.workspace_dir.join("memory") + } + + fn core_path(&self) -> PathBuf { + self.workspace_dir.join("MEMORY.md") + } + + fn daily_path(&self) -> PathBuf { + let date = Local::now().format("%Y-%m-%d").to_string(); + self.memory_dir().join(format!("{date}.md")) + } + + async fn ensure_dirs(&self) -> anyhow::Result<()> { + fs::create_dir_all(self.memory_dir()).await?; + Ok(()) + } + + async fn append_to_file(&self, path: &Path, content: &str) -> anyhow::Result<()> { + self.ensure_dirs().await?; + + let existing = if path.exists() { + fs::read_to_string(path).await.unwrap_or_default() + } else { + String::new() + }; + + let updated = if existing.is_empty() { + let header = if path == self.core_path() { + "# Long-Term Memory\n\n" + } else { + let date = Local::now().format("%Y-%m-%d").to_string(); + &format!("# Daily Log — {date}\n\n") + }; + format!("{header}{content}\n") + } else { + format!("{existing}\n{content}\n") + }; + + fs::write(path, updated).await?; + Ok(()) + } + + fn parse_entries_from_file( + path: &Path, + content: &str, + category: &MemoryCategory, + ) -> Vec { + let filename = path + .file_stem() + .and_then(|s| s.to_str()) + .unwrap_or("unknown"); + + content + .lines() + .filter(|line| { + let trimmed = line.trim(); + !trimmed.is_empty() && !trimmed.starts_with('#') + }) + .enumerate() + .map(|(i, line)| { + let trimmed = line.trim(); + let clean = trimmed.strip_prefix("- ").unwrap_or(trimmed); + MemoryEntry { + id: format!("{filename}:{i}"), + key: format!("{filename}:{i}"), + content: clean.to_string(), + category: category.clone(), + timestamp: filename.to_string(), + session_id: None, + score: None, + } + }) + .collect() + } + + async fn read_all_entries(&self) -> anyhow::Result> { + let mut entries = Vec::new(); + + // Read MEMORY.md (core) + let core_path = self.core_path(); + if core_path.exists() { + let content = fs::read_to_string(&core_path).await?; + entries.extend(Self::parse_entries_from_file( + &core_path, + &content, + &MemoryCategory::Core, + )); + } + + // Read daily logs + let mem_dir = self.memory_dir(); + if mem_dir.exists() { + let mut dir = fs::read_dir(&mem_dir).await?; + while let Some(entry) = dir.next_entry().await? { + let path = entry.path(); + if path.extension().and_then(|e| e.to_str()) == Some("md") { + let content = fs::read_to_string(&path).await?; + entries.extend(Self::parse_entries_from_file( + &path, + &content, + &MemoryCategory::Daily, + )); + } + } + } + + entries.sort_by(|a, b| b.timestamp.cmp(&a.timestamp)); + Ok(entries) + } +} + +#[async_trait] +impl Memory for MarkdownMemory { + fn name(&self) -> &str { + "markdown" + } + + async fn store( + &self, + key: &str, + content: &str, + category: MemoryCategory, + ) -> anyhow::Result<()> { + let entry = format!("- **{key}**: {content}"); + let path = match category { + MemoryCategory::Core => self.core_path(), + _ => self.daily_path(), + }; + self.append_to_file(&path, &entry).await + } + + async fn recall(&self, query: &str, limit: usize) -> anyhow::Result> { + let all = self.read_all_entries().await?; + let query_lower = query.to_lowercase(); + let keywords: Vec<&str> = query_lower.split_whitespace().collect(); + + let mut scored: Vec = all + .into_iter() + .filter_map(|mut entry| { + let content_lower = entry.content.to_lowercase(); + let matched = keywords + .iter() + .filter(|kw| content_lower.contains(**kw)) + .count(); + if matched > 0 { + #[allow(clippy::cast_precision_loss)] + let score = matched as f64 / keywords.len() as f64; + entry.score = Some(score); + Some(entry) + } else { + None + } + }) + .collect(); + + scored.sort_by(|a, b| { + b.score + .partial_cmp(&a.score) + .unwrap_or(std::cmp::Ordering::Equal) + }); + scored.truncate(limit); + Ok(scored) + } + + async fn get(&self, key: &str) -> anyhow::Result> { + let all = self.read_all_entries().await?; + Ok(all + .into_iter() + .find(|e| e.key == key || e.content.contains(key))) + } + + async fn list(&self, category: Option<&MemoryCategory>) -> anyhow::Result> { + let all = self.read_all_entries().await?; + match category { + Some(cat) => Ok(all.into_iter().filter(|e| &e.category == cat).collect()), + None => Ok(all), + } + } + + async fn forget(&self, _key: &str) -> anyhow::Result { + // Markdown memory is append-only by design (audit trail) + // Return false to indicate the entry wasn't removed + Ok(false) + } + + async fn count(&self) -> anyhow::Result { + let all = self.read_all_entries().await?; + Ok(all.len()) + } + + async fn health_check(&self) -> bool { + self.workspace_dir.exists() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::fs as sync_fs; + use tempfile::TempDir; + + fn temp_workspace() -> (TempDir, MarkdownMemory) { + let tmp = TempDir::new().unwrap(); + let mem = MarkdownMemory::new(tmp.path()); + (tmp, mem) + } + + #[tokio::test] + async fn markdown_name() { + let (_tmp, mem) = temp_workspace(); + assert_eq!(mem.name(), "markdown"); + } + + #[tokio::test] + async fn markdown_health_check() { + let (_tmp, mem) = temp_workspace(); + assert!(mem.health_check().await); + } + + #[tokio::test] + async fn markdown_store_core() { + let (_tmp, mem) = temp_workspace(); + mem.store("pref", "User likes Rust", MemoryCategory::Core) + .await + .unwrap(); + let content = sync_fs::read_to_string(mem.core_path()).unwrap(); + assert!(content.contains("User likes Rust")); + } + + #[tokio::test] + async fn markdown_store_daily() { + let (_tmp, mem) = temp_workspace(); + mem.store("note", "Finished tests", MemoryCategory::Daily) + .await + .unwrap(); + let path = mem.daily_path(); + let content = sync_fs::read_to_string(path).unwrap(); + assert!(content.contains("Finished tests")); + } + + #[tokio::test] + async fn markdown_recall_keyword() { + let (_tmp, mem) = temp_workspace(); + mem.store("a", "Rust is fast", MemoryCategory::Core) + .await + .unwrap(); + mem.store("b", "Python is slow", MemoryCategory::Core) + .await + .unwrap(); + mem.store("c", "Rust and safety", MemoryCategory::Core) + .await + .unwrap(); + + let results = mem.recall("Rust", 10).await.unwrap(); + assert!(results.len() >= 2); + assert!(results + .iter() + .all(|r| r.content.to_lowercase().contains("rust"))); + } + + #[tokio::test] + async fn markdown_recall_no_match() { + let (_tmp, mem) = temp_workspace(); + mem.store("a", "Rust is great", MemoryCategory::Core) + .await + .unwrap(); + let results = mem.recall("javascript", 10).await.unwrap(); + assert!(results.is_empty()); + } + + #[tokio::test] + async fn markdown_count() { + let (_tmp, mem) = temp_workspace(); + mem.store("a", "first", MemoryCategory::Core).await.unwrap(); + mem.store("b", "second", MemoryCategory::Core) + .await + .unwrap(); + let count = mem.count().await.unwrap(); + assert!(count >= 2); + } + + #[tokio::test] + async fn markdown_list_by_category() { + let (_tmp, mem) = temp_workspace(); + mem.store("a", "core fact", MemoryCategory::Core) + .await + .unwrap(); + mem.store("b", "daily note", MemoryCategory::Daily) + .await + .unwrap(); + + let core = mem.list(Some(&MemoryCategory::Core)).await.unwrap(); + assert!(core.iter().all(|e| e.category == MemoryCategory::Core)); + + let daily = mem.list(Some(&MemoryCategory::Daily)).await.unwrap(); + assert!(daily.iter().all(|e| e.category == MemoryCategory::Daily)); + } + + #[tokio::test] + async fn markdown_forget_is_noop() { + let (_tmp, mem) = temp_workspace(); + mem.store("a", "permanent", MemoryCategory::Core) + .await + .unwrap(); + let removed = mem.forget("a").await.unwrap(); + assert!(!removed, "Markdown memory is append-only"); + } + + #[tokio::test] + async fn markdown_empty_recall() { + let (_tmp, mem) = temp_workspace(); + let results = mem.recall("anything", 10).await.unwrap(); + assert!(results.is_empty()); + } + + #[tokio::test] + async fn markdown_empty_count() { + let (_tmp, mem) = temp_workspace(); + assert_eq!(mem.count().await.unwrap(), 0); + } +} diff --git a/src/memory/mod.rs b/src/memory/mod.rs new file mode 100644 index 0000000..98f8614 --- /dev/null +++ b/src/memory/mod.rs @@ -0,0 +1,77 @@ +pub mod markdown; +pub mod sqlite; +pub mod traits; + +pub use markdown::MarkdownMemory; +pub use sqlite::SqliteMemory; +pub use traits::Memory; +#[allow(unused_imports)] +pub use traits::{MemoryCategory, MemoryEntry}; + +use crate::config::MemoryConfig; +use std::path::Path; + +/// Factory: create the right memory backend from config +pub fn create_memory( + config: &MemoryConfig, + workspace_dir: &Path, +) -> anyhow::Result> { + match config.backend.as_str() { + "sqlite" => Ok(Box::new(SqliteMemory::new(workspace_dir)?)), + "markdown" | "none" => Ok(Box::new(MarkdownMemory::new(workspace_dir))), + other => { + tracing::warn!("Unknown memory backend '{other}', falling back to markdown"); + Ok(Box::new(MarkdownMemory::new(workspace_dir))) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::TempDir; + + #[test] + fn factory_sqlite() { + let tmp = TempDir::new().unwrap(); + let cfg = MemoryConfig { + backend: "sqlite".into(), + auto_save: true, + }; + let mem = create_memory(&cfg, tmp.path()).unwrap(); + assert_eq!(mem.name(), "sqlite"); + } + + #[test] + fn factory_markdown() { + let tmp = TempDir::new().unwrap(); + let cfg = MemoryConfig { + backend: "markdown".into(), + auto_save: true, + }; + let mem = create_memory(&cfg, tmp.path()).unwrap(); + assert_eq!(mem.name(), "markdown"); + } + + #[test] + fn factory_none_falls_back_to_markdown() { + let tmp = TempDir::new().unwrap(); + let cfg = MemoryConfig { + backend: "none".into(), + auto_save: true, + }; + let mem = create_memory(&cfg, tmp.path()).unwrap(); + assert_eq!(mem.name(), "markdown"); + } + + #[test] + fn factory_unknown_falls_back_to_markdown() { + let tmp = TempDir::new().unwrap(); + let cfg = MemoryConfig { + backend: "redis".into(), + auto_save: true, + }; + let mem = create_memory(&cfg, tmp.path()).unwrap(); + assert_eq!(mem.name(), "markdown"); + } +} diff --git a/src/memory/sqlite.rs b/src/memory/sqlite.rs new file mode 100644 index 0000000..234e76e --- /dev/null +++ b/src/memory/sqlite.rs @@ -0,0 +1,481 @@ +use super::traits::{Memory, MemoryCategory, MemoryEntry}; +use async_trait::async_trait; +use chrono::Local; +use rusqlite::{params, Connection}; +use std::path::{Path, PathBuf}; +use std::sync::Mutex; +use uuid::Uuid; + +/// SQLite-backed persistent memory — the brain +/// +/// Stores memories in a local `SQLite` database with keyword search. +/// Zero external dependencies, works offline, survives restarts. +pub struct SqliteMemory { + conn: Mutex, + db_path: PathBuf, +} + +impl SqliteMemory { + pub fn new(workspace_dir: &Path) -> anyhow::Result { + let db_path = workspace_dir.join("memory").join("brain.db"); + + if let Some(parent) = db_path.parent() { + std::fs::create_dir_all(parent)?; + } + + let conn = Connection::open(&db_path)?; + + conn.execute_batch( + "CREATE TABLE IF NOT EXISTS memories ( + id TEXT PRIMARY KEY, + key TEXT NOT NULL UNIQUE, + content TEXT NOT NULL, + category TEXT NOT NULL DEFAULT 'core', + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_memories_category ON memories(category); + CREATE INDEX IF NOT EXISTS idx_memories_key ON memories(key);", + )?; + + Ok(Self { + conn: Mutex::new(conn), + db_path, + }) + } + + fn category_to_str(cat: &MemoryCategory) -> String { + match cat { + MemoryCategory::Core => "core".into(), + MemoryCategory::Daily => "daily".into(), + MemoryCategory::Conversation => "conversation".into(), + MemoryCategory::Custom(name) => name.clone(), + } + } + + fn str_to_category(s: &str) -> MemoryCategory { + match s { + "core" => MemoryCategory::Core, + "daily" => MemoryCategory::Daily, + "conversation" => MemoryCategory::Conversation, + other => MemoryCategory::Custom(other.to_string()), + } + } +} + +#[async_trait] +impl Memory for SqliteMemory { + fn name(&self) -> &str { + "sqlite" + } + + async fn store( + &self, + key: &str, + content: &str, + category: MemoryCategory, + ) -> anyhow::Result<()> { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + let now = Local::now().to_rfc3339(); + let cat = Self::category_to_str(&category); + let id = Uuid::new_v4().to_string(); + + conn.execute( + "INSERT INTO memories (id, key, content, category, created_at, updated_at) + VALUES (?1, ?2, ?3, ?4, ?5, ?6) + ON CONFLICT(key) DO UPDATE SET + content = excluded.content, + category = excluded.category, + updated_at = excluded.updated_at", + params![id, key, content, cat, now, now], + )?; + + Ok(()) + } + + async fn recall(&self, query: &str, limit: usize) -> anyhow::Result> { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + + // Keyword search: split query into words, match any + let keywords: Vec = query.split_whitespace().map(|w| format!("%{w}%")).collect(); + + if keywords.is_empty() { + return Ok(Vec::new()); + } + + // Build dynamic WHERE clause for keyword matching + let conditions: Vec = keywords + .iter() + .enumerate() + .map(|(i, _)| format!("(content LIKE ?{} OR key LIKE ?{})", i * 2 + 1, i * 2 + 2)) + .collect(); + + let where_clause = conditions.join(" OR "); + let sql = format!( + "SELECT id, key, content, category, created_at FROM memories + WHERE {where_clause} + ORDER BY updated_at DESC + LIMIT ?{}", + keywords.len() * 2 + 1 + ); + + let mut stmt = conn.prepare(&sql)?; + + // Build params: each keyword appears twice (for content and key) + let mut param_values: Vec> = Vec::new(); + for kw in &keywords { + param_values.push(Box::new(kw.clone())); + param_values.push(Box::new(kw.clone())); + } + #[allow(clippy::cast_possible_wrap)] + param_values.push(Box::new(limit as i64)); + + let params_ref: Vec<&dyn rusqlite::types::ToSql> = + param_values.iter().map(AsRef::as_ref).collect(); + + let rows = stmt.query_map(params_ref.as_slice(), |row| { + Ok(MemoryEntry { + id: row.get(0)?, + key: row.get(1)?, + content: row.get(2)?, + category: Self::str_to_category(&row.get::<_, String>(3)?), + timestamp: row.get(4)?, + session_id: None, + score: Some(1.0), + }) + })?; + + let mut results = Vec::new(); + for row in rows { + results.push(row?); + } + + // Score by keyword match count + let query_lower = query.to_lowercase(); + let kw_list: Vec<&str> = query_lower.split_whitespace().collect(); + for entry in &mut results { + let content_lower = entry.content.to_lowercase(); + let matched = kw_list + .iter() + .filter(|kw| content_lower.contains(**kw)) + .count(); + #[allow(clippy::cast_precision_loss)] + { + entry.score = Some(matched as f64 / kw_list.len().max(1) as f64); + } + } + + results.sort_by(|a, b| { + b.score + .partial_cmp(&a.score) + .unwrap_or(std::cmp::Ordering::Equal) + }); + + Ok(results) + } + + async fn get(&self, key: &str) -> anyhow::Result> { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + + let mut stmt = conn.prepare( + "SELECT id, key, content, category, created_at FROM memories WHERE key = ?1", + )?; + + let mut rows = stmt.query_map(params![key], |row| { + Ok(MemoryEntry { + id: row.get(0)?, + key: row.get(1)?, + content: row.get(2)?, + category: Self::str_to_category(&row.get::<_, String>(3)?), + timestamp: row.get(4)?, + session_id: None, + score: None, + }) + })?; + + match rows.next() { + Some(Ok(entry)) => Ok(Some(entry)), + _ => Ok(None), + } + } + + async fn list(&self, category: Option<&MemoryCategory>) -> anyhow::Result> { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + + let mut results = Vec::new(); + + let row_mapper = |row: &rusqlite::Row| -> rusqlite::Result { + Ok(MemoryEntry { + id: row.get(0)?, + key: row.get(1)?, + content: row.get(2)?, + category: Self::str_to_category(&row.get::<_, String>(3)?), + timestamp: row.get(4)?, + session_id: None, + score: None, + }) + }; + + if let Some(cat) = category { + let cat_str = Self::category_to_str(cat); + let mut stmt = conn.prepare( + "SELECT id, key, content, category, created_at FROM memories + WHERE category = ?1 ORDER BY updated_at DESC", + )?; + let rows = stmt.query_map(params![cat_str], row_mapper)?; + for row in rows { + results.push(row?); + } + } else { + let mut stmt = conn.prepare( + "SELECT id, key, content, category, created_at FROM memories + ORDER BY updated_at DESC", + )?; + let rows = stmt.query_map([], row_mapper)?; + for row in rows { + results.push(row?); + } + } + + Ok(results) + } + + async fn forget(&self, key: &str) -> anyhow::Result { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + let affected = conn.execute("DELETE FROM memories WHERE key = ?1", params![key])?; + Ok(affected > 0) + } + + async fn count(&self) -> anyhow::Result { + let conn = self + .conn + .lock() + .map_err(|e| anyhow::anyhow!("Lock error: {e}"))?; + let count: i64 = conn.query_row("SELECT COUNT(*) FROM memories", [], |row| row.get(0))?; + #[allow(clippy::cast_sign_loss, clippy::cast_possible_truncation)] + Ok(count as usize) + } + + async fn health_check(&self) -> bool { + self.conn + .lock() + .map(|c| c.execute_batch("SELECT 1").is_ok()) + .unwrap_or(false) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::TempDir; + + fn temp_sqlite() -> (TempDir, SqliteMemory) { + let tmp = TempDir::new().unwrap(); + let mem = SqliteMemory::new(tmp.path()).unwrap(); + (tmp, mem) + } + + #[tokio::test] + async fn sqlite_name() { + let (_tmp, mem) = temp_sqlite(); + assert_eq!(mem.name(), "sqlite"); + } + + #[tokio::test] + async fn sqlite_health() { + let (_tmp, mem) = temp_sqlite(); + assert!(mem.health_check().await); + } + + #[tokio::test] + async fn sqlite_store_and_get() { + let (_tmp, mem) = temp_sqlite(); + mem.store("user_lang", "Prefers Rust", MemoryCategory::Core) + .await + .unwrap(); + + let entry = mem.get("user_lang").await.unwrap(); + assert!(entry.is_some()); + let entry = entry.unwrap(); + assert_eq!(entry.key, "user_lang"); + assert_eq!(entry.content, "Prefers Rust"); + assert_eq!(entry.category, MemoryCategory::Core); + } + + #[tokio::test] + async fn sqlite_store_upsert() { + let (_tmp, mem) = temp_sqlite(); + mem.store("pref", "likes Rust", MemoryCategory::Core) + .await + .unwrap(); + mem.store("pref", "loves Rust", MemoryCategory::Core) + .await + .unwrap(); + + let entry = mem.get("pref").await.unwrap().unwrap(); + assert_eq!(entry.content, "loves Rust"); + assert_eq!(mem.count().await.unwrap(), 1); + } + + #[tokio::test] + async fn sqlite_recall_keyword() { + let (_tmp, mem) = temp_sqlite(); + mem.store("a", "Rust is fast and safe", MemoryCategory::Core) + .await + .unwrap(); + mem.store("b", "Python is interpreted", MemoryCategory::Core) + .await + .unwrap(); + mem.store("c", "Rust has zero-cost abstractions", MemoryCategory::Core) + .await + .unwrap(); + + let results = mem.recall("Rust", 10).await.unwrap(); + assert_eq!(results.len(), 2); + assert!(results + .iter() + .all(|r| r.content.to_lowercase().contains("rust"))); + } + + #[tokio::test] + async fn sqlite_recall_multi_keyword() { + let (_tmp, mem) = temp_sqlite(); + mem.store("a", "Rust is fast", MemoryCategory::Core) + .await + .unwrap(); + mem.store("b", "Rust is safe and fast", MemoryCategory::Core) + .await + .unwrap(); + + let results = mem.recall("fast safe", 10).await.unwrap(); + assert!(!results.is_empty()); + // Entry with both keywords should score higher + assert!(results[0].content.contains("safe") && results[0].content.contains("fast")); + } + + #[tokio::test] + async fn sqlite_recall_no_match() { + let (_tmp, mem) = temp_sqlite(); + mem.store("a", "Rust rocks", MemoryCategory::Core) + .await + .unwrap(); + let results = mem.recall("javascript", 10).await.unwrap(); + assert!(results.is_empty()); + } + + #[tokio::test] + async fn sqlite_forget() { + let (_tmp, mem) = temp_sqlite(); + mem.store("temp", "temporary data", MemoryCategory::Conversation) + .await + .unwrap(); + assert_eq!(mem.count().await.unwrap(), 1); + + let removed = mem.forget("temp").await.unwrap(); + assert!(removed); + assert_eq!(mem.count().await.unwrap(), 0); + } + + #[tokio::test] + async fn sqlite_forget_nonexistent() { + let (_tmp, mem) = temp_sqlite(); + let removed = mem.forget("nope").await.unwrap(); + assert!(!removed); + } + + #[tokio::test] + async fn sqlite_list_all() { + let (_tmp, mem) = temp_sqlite(); + mem.store("a", "one", MemoryCategory::Core).await.unwrap(); + mem.store("b", "two", MemoryCategory::Daily).await.unwrap(); + mem.store("c", "three", MemoryCategory::Conversation) + .await + .unwrap(); + + let all = mem.list(None).await.unwrap(); + assert_eq!(all.len(), 3); + } + + #[tokio::test] + async fn sqlite_list_by_category() { + let (_tmp, mem) = temp_sqlite(); + mem.store("a", "core1", MemoryCategory::Core).await.unwrap(); + mem.store("b", "core2", MemoryCategory::Core).await.unwrap(); + mem.store("c", "daily1", MemoryCategory::Daily) + .await + .unwrap(); + + let core = mem.list(Some(&MemoryCategory::Core)).await.unwrap(); + assert_eq!(core.len(), 2); + + let daily = mem.list(Some(&MemoryCategory::Daily)).await.unwrap(); + assert_eq!(daily.len(), 1); + } + + #[tokio::test] + async fn sqlite_count_empty() { + let (_tmp, mem) = temp_sqlite(); + assert_eq!(mem.count().await.unwrap(), 0); + } + + #[tokio::test] + async fn sqlite_get_nonexistent() { + let (_tmp, mem) = temp_sqlite(); + assert!(mem.get("nope").await.unwrap().is_none()); + } + + #[tokio::test] + async fn sqlite_db_persists() { + let tmp = TempDir::new().unwrap(); + + { + let mem = SqliteMemory::new(tmp.path()).unwrap(); + mem.store("persist", "I survive restarts", MemoryCategory::Core) + .await + .unwrap(); + } + + // Reopen + let mem2 = SqliteMemory::new(tmp.path()).unwrap(); + let entry = mem2.get("persist").await.unwrap(); + assert!(entry.is_some()); + assert_eq!(entry.unwrap().content, "I survive restarts"); + } + + #[tokio::test] + async fn sqlite_category_roundtrip() { + let (_tmp, mem) = temp_sqlite(); + let categories = vec![ + MemoryCategory::Core, + MemoryCategory::Daily, + MemoryCategory::Conversation, + MemoryCategory::Custom("project".into()), + ]; + + for (i, cat) in categories.iter().enumerate() { + mem.store(&format!("k{i}"), &format!("v{i}"), cat.clone()) + .await + .unwrap(); + } + + for (i, cat) in categories.iter().enumerate() { + let entry = mem.get(&format!("k{i}")).await.unwrap().unwrap(); + assert_eq!(&entry.category, cat); + } + } +} diff --git a/src/memory/traits.rs b/src/memory/traits.rs new file mode 100644 index 0000000..16d8fa6 --- /dev/null +++ b/src/memory/traits.rs @@ -0,0 +1,68 @@ +use async_trait::async_trait; +use serde::{Deserialize, Serialize}; + +/// A single memory entry +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct MemoryEntry { + pub id: String, + pub key: String, + pub content: String, + pub category: MemoryCategory, + pub timestamp: String, + pub session_id: Option, + pub score: Option, +} + +/// Memory categories for organization +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "snake_case")] +pub enum MemoryCategory { + /// Long-term facts, preferences, decisions + Core, + /// Daily session logs + Daily, + /// Conversation context + Conversation, + /// User-defined custom category + Custom(String), +} + +impl std::fmt::Display for MemoryCategory { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Core => write!(f, "core"), + Self::Daily => write!(f, "daily"), + Self::Conversation => write!(f, "conversation"), + Self::Custom(name) => write!(f, "{name}"), + } + } +} + +/// Core memory trait — implement for any persistence backend +#[async_trait] +pub trait Memory: Send + Sync { + /// Backend name + fn name(&self) -> &str; + + /// Store a memory entry + async fn store(&self, key: &str, content: &str, category: MemoryCategory) + -> anyhow::Result<()>; + + /// Recall memories matching a query (keyword search) + async fn recall(&self, query: &str, limit: usize) -> anyhow::Result>; + + /// Get a specific memory by key + async fn get(&self, key: &str) -> anyhow::Result>; + + /// List all memory keys, optionally filtered by category + async fn list(&self, category: Option<&MemoryCategory>) -> anyhow::Result>; + + /// Remove a memory by key + async fn forget(&self, key: &str) -> anyhow::Result; + + /// Count total memories + async fn count(&self) -> anyhow::Result; + + /// Health check + async fn health_check(&self) -> bool; +} diff --git a/src/observability/log.rs b/src/observability/log.rs new file mode 100644 index 0000000..eed4136 --- /dev/null +++ b/src/observability/log.rs @@ -0,0 +1,119 @@ +use super::traits::{Observer, ObserverEvent, ObserverMetric}; +use tracing::info; + +/// Log-based observer — uses tracing, zero external deps +pub struct LogObserver; + +impl LogObserver { + pub fn new() -> Self { + Self + } +} + +impl Observer for LogObserver { + fn record_event(&self, event: &ObserverEvent) { + match event { + ObserverEvent::AgentStart { provider, model } => { + info!(provider = %provider, model = %model, "agent.start"); + } + ObserverEvent::AgentEnd { + duration, + tokens_used, + } => { + let ms = u64::try_from(duration.as_millis()).unwrap_or(u64::MAX); + info!(duration_ms = ms, tokens = ?tokens_used, "agent.end"); + } + ObserverEvent::ToolCall { + tool, + duration, + success, + } => { + let ms = u64::try_from(duration.as_millis()).unwrap_or(u64::MAX); + info!(tool = %tool, duration_ms = ms, success = success, "tool.call"); + } + ObserverEvent::ChannelMessage { channel, direction } => { + info!(channel = %channel, direction = %direction, "channel.message"); + } + ObserverEvent::HeartbeatTick => { + info!("heartbeat.tick"); + } + ObserverEvent::Error { component, message } => { + info!(component = %component, error = %message, "error"); + } + } + } + + fn record_metric(&self, metric: &ObserverMetric) { + match metric { + ObserverMetric::RequestLatency(d) => { + let ms = u64::try_from(d.as_millis()).unwrap_or(u64::MAX); + info!(latency_ms = ms, "metric.request_latency"); + } + ObserverMetric::TokensUsed(t) => { + info!(tokens = t, "metric.tokens_used"); + } + ObserverMetric::ActiveSessions(s) => { + info!(sessions = s, "metric.active_sessions"); + } + ObserverMetric::QueueDepth(d) => { + info!(depth = d, "metric.queue_depth"); + } + } + } + + fn name(&self) -> &str { + "log" + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::time::Duration; + + #[test] + fn log_observer_name() { + assert_eq!(LogObserver::new().name(), "log"); + } + + #[test] + fn log_observer_all_events_no_panic() { + let obs = LogObserver::new(); + obs.record_event(&ObserverEvent::AgentStart { + provider: "openrouter".into(), + model: "claude-sonnet".into(), + }); + obs.record_event(&ObserverEvent::AgentEnd { + duration: Duration::from_millis(500), + tokens_used: Some(100), + }); + obs.record_event(&ObserverEvent::AgentEnd { + duration: Duration::ZERO, + tokens_used: None, + }); + obs.record_event(&ObserverEvent::ToolCall { + tool: "shell".into(), + duration: Duration::from_millis(10), + success: false, + }); + obs.record_event(&ObserverEvent::ChannelMessage { + channel: "telegram".into(), + direction: "outbound".into(), + }); + obs.record_event(&ObserverEvent::HeartbeatTick); + obs.record_event(&ObserverEvent::Error { + component: "provider".into(), + message: "timeout".into(), + }); + } + + #[test] + fn log_observer_all_metrics_no_panic() { + let obs = LogObserver::new(); + obs.record_metric(&ObserverMetric::RequestLatency(Duration::from_secs(2))); + obs.record_metric(&ObserverMetric::TokensUsed(0)); + obs.record_metric(&ObserverMetric::TokensUsed(u64::MAX)); + obs.record_metric(&ObserverMetric::ActiveSessions(1)); + obs.record_metric(&ObserverMetric::QueueDepth(999)); + } +} diff --git a/src/observability/mod.rs b/src/observability/mod.rs new file mode 100644 index 0000000..6dbfccd --- /dev/null +++ b/src/observability/mod.rs @@ -0,0 +1,76 @@ +pub mod log; +pub mod multi; +pub mod noop; +pub mod traits; + +pub use self::log::LogObserver; +pub use noop::NoopObserver; +pub use traits::{Observer, ObserverEvent}; + +use crate::config::ObservabilityConfig; + +/// Factory: create the right observer from config +pub fn create_observer(config: &ObservabilityConfig) -> Box { + match config.backend.as_str() { + "log" => Box::new(LogObserver::new()), + "none" | "noop" => Box::new(NoopObserver), + _ => { + tracing::warn!( + "Unknown observability backend '{}', falling back to noop", + config.backend + ); + Box::new(NoopObserver) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn factory_none_returns_noop() { + let cfg = ObservabilityConfig { + backend: "none".into(), + }; + assert_eq!(create_observer(&cfg).name(), "noop"); + } + + #[test] + fn factory_noop_returns_noop() { + let cfg = ObservabilityConfig { + backend: "noop".into(), + }; + assert_eq!(create_observer(&cfg).name(), "noop"); + } + + #[test] + fn factory_log_returns_log() { + let cfg = ObservabilityConfig { + backend: "log".into(), + }; + assert_eq!(create_observer(&cfg).name(), "log"); + } + + #[test] + fn factory_unknown_falls_back_to_noop() { + let cfg = ObservabilityConfig { + backend: "prometheus".into(), + }; + assert_eq!(create_observer(&cfg).name(), "noop"); + } + + #[test] + fn factory_empty_string_falls_back_to_noop() { + let cfg = ObservabilityConfig { backend: "".into() }; + assert_eq!(create_observer(&cfg).name(), "noop"); + } + + #[test] + fn factory_garbage_falls_back_to_noop() { + let cfg = ObservabilityConfig { + backend: "xyzzy_garbage_123".into(), + }; + assert_eq!(create_observer(&cfg).name(), "noop"); + } +} diff --git a/src/observability/multi.rs b/src/observability/multi.rs new file mode 100644 index 0000000..e57400b --- /dev/null +++ b/src/observability/multi.rs @@ -0,0 +1,154 @@ +use super::traits::{Observer, ObserverEvent, ObserverMetric}; + +/// Combine multiple observers — fan-out events to all backends +pub struct MultiObserver { + observers: Vec>, +} + +impl MultiObserver { + pub fn new(observers: Vec>) -> Self { + Self { observers } + } +} + +impl Observer for MultiObserver { + fn record_event(&self, event: &ObserverEvent) { + for obs in &self.observers { + obs.record_event(event); + } + } + + fn record_metric(&self, metric: &ObserverMetric) { + for obs in &self.observers { + obs.record_metric(metric); + } + } + + fn flush(&self) { + for obs in &self.observers { + obs.flush(); + } + } + + fn name(&self) -> &str { + "multi" + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::sync::atomic::{AtomicUsize, Ordering}; + use std::sync::Arc; + use std::time::Duration; + + /// Test observer that counts calls + struct CountingObserver { + event_count: Arc, + metric_count: Arc, + flush_count: Arc, + } + + impl CountingObserver { + fn new( + event_count: Arc, + metric_count: Arc, + flush_count: Arc, + ) -> Self { + Self { + event_count, + metric_count, + flush_count, + } + } + } + + impl Observer for CountingObserver { + fn record_event(&self, _event: &ObserverEvent) { + self.event_count.fetch_add(1, Ordering::SeqCst); + } + fn record_metric(&self, _metric: &ObserverMetric) { + self.metric_count.fetch_add(1, Ordering::SeqCst); + } + fn flush(&self) { + self.flush_count.fetch_add(1, Ordering::SeqCst); + } + fn name(&self) -> &str { + "counting" + } + } + + #[test] + fn multi_name() { + let m = MultiObserver::new(vec![]); + assert_eq!(m.name(), "multi"); + } + + #[test] + fn multi_empty_no_panic() { + let m = MultiObserver::new(vec![]); + m.record_event(&ObserverEvent::HeartbeatTick); + m.record_metric(&ObserverMetric::TokensUsed(10)); + m.flush(); + } + + #[test] + fn multi_fans_out_events() { + let ec1 = Arc::new(AtomicUsize::new(0)); + let mc1 = Arc::new(AtomicUsize::new(0)); + let fc1 = Arc::new(AtomicUsize::new(0)); + let ec2 = Arc::new(AtomicUsize::new(0)); + let mc2 = Arc::new(AtomicUsize::new(0)); + let fc2 = Arc::new(AtomicUsize::new(0)); + + let m = MultiObserver::new(vec![ + Box::new(CountingObserver::new(ec1.clone(), mc1.clone(), fc1.clone())), + Box::new(CountingObserver::new(ec2.clone(), mc2.clone(), fc2.clone())), + ]); + + m.record_event(&ObserverEvent::HeartbeatTick); + m.record_event(&ObserverEvent::HeartbeatTick); + m.record_event(&ObserverEvent::HeartbeatTick); + + assert_eq!(ec1.load(Ordering::SeqCst), 3); + assert_eq!(ec2.load(Ordering::SeqCst), 3); + } + + #[test] + fn multi_fans_out_metrics() { + let ec1 = Arc::new(AtomicUsize::new(0)); + let mc1 = Arc::new(AtomicUsize::new(0)); + let fc1 = Arc::new(AtomicUsize::new(0)); + let ec2 = Arc::new(AtomicUsize::new(0)); + let mc2 = Arc::new(AtomicUsize::new(0)); + let fc2 = Arc::new(AtomicUsize::new(0)); + + let m = MultiObserver::new(vec![ + Box::new(CountingObserver::new(ec1.clone(), mc1.clone(), fc1.clone())), + Box::new(CountingObserver::new(ec2.clone(), mc2.clone(), fc2.clone())), + ]); + + m.record_metric(&ObserverMetric::TokensUsed(100)); + m.record_metric(&ObserverMetric::RequestLatency(Duration::from_millis(5))); + + assert_eq!(mc1.load(Ordering::SeqCst), 2); + assert_eq!(mc2.load(Ordering::SeqCst), 2); + } + + #[test] + fn multi_fans_out_flush() { + let ec = Arc::new(AtomicUsize::new(0)); + let mc = Arc::new(AtomicUsize::new(0)); + let fc1 = Arc::new(AtomicUsize::new(0)); + let fc2 = Arc::new(AtomicUsize::new(0)); + + let m = MultiObserver::new(vec![ + Box::new(CountingObserver::new(ec.clone(), mc.clone(), fc1.clone())), + Box::new(CountingObserver::new(ec.clone(), mc.clone(), fc2.clone())), + ]); + + m.flush(); + assert_eq!(fc1.load(Ordering::SeqCst), 1); + assert_eq!(fc2.load(Ordering::SeqCst), 1); + } +} diff --git a/src/observability/noop.rs b/src/observability/noop.rs new file mode 100644 index 0000000..31f3a34 --- /dev/null +++ b/src/observability/noop.rs @@ -0,0 +1,72 @@ +use super::traits::{Observer, ObserverEvent, ObserverMetric}; + +/// Zero-overhead observer — all methods compile to nothing +pub struct NoopObserver; + +impl Observer for NoopObserver { + #[inline(always)] + fn record_event(&self, _event: &ObserverEvent) {} + + #[inline(always)] + fn record_metric(&self, _metric: &ObserverMetric) {} + + fn name(&self) -> &str { + "noop" + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::time::Duration; + + #[test] + fn noop_name() { + assert_eq!(NoopObserver.name(), "noop"); + } + + #[test] + fn noop_record_event_does_not_panic() { + let obs = NoopObserver; + obs.record_event(&ObserverEvent::HeartbeatTick); + obs.record_event(&ObserverEvent::AgentStart { + provider: "test".into(), + model: "test".into(), + }); + obs.record_event(&ObserverEvent::AgentEnd { + duration: Duration::from_millis(100), + tokens_used: Some(42), + }); + obs.record_event(&ObserverEvent::AgentEnd { + duration: Duration::ZERO, + tokens_used: None, + }); + obs.record_event(&ObserverEvent::ToolCall { + tool: "shell".into(), + duration: Duration::from_secs(1), + success: true, + }); + obs.record_event(&ObserverEvent::ChannelMessage { + channel: "cli".into(), + direction: "inbound".into(), + }); + obs.record_event(&ObserverEvent::Error { + component: "test".into(), + message: "boom".into(), + }); + } + + #[test] + fn noop_record_metric_does_not_panic() { + let obs = NoopObserver; + obs.record_metric(&ObserverMetric::RequestLatency(Duration::from_millis(50))); + obs.record_metric(&ObserverMetric::TokensUsed(1000)); + obs.record_metric(&ObserverMetric::ActiveSessions(5)); + obs.record_metric(&ObserverMetric::QueueDepth(0)); + } + + #[test] + fn noop_flush_does_not_panic() { + NoopObserver.flush(); + } +} diff --git a/src/observability/traits.rs b/src/observability/traits.rs new file mode 100644 index 0000000..84472e2 --- /dev/null +++ b/src/observability/traits.rs @@ -0,0 +1,52 @@ +use std::time::Duration; + +/// Events the observer can record +#[derive(Debug, Clone)] +pub enum ObserverEvent { + AgentStart { + provider: String, + model: String, + }, + AgentEnd { + duration: Duration, + tokens_used: Option, + }, + ToolCall { + tool: String, + duration: Duration, + success: bool, + }, + ChannelMessage { + channel: String, + direction: String, + }, + HeartbeatTick, + Error { + component: String, + message: String, + }, +} + +/// Numeric metrics +#[derive(Debug, Clone)] +pub enum ObserverMetric { + RequestLatency(Duration), + TokensUsed(u64), + ActiveSessions(u64), + QueueDepth(u64), +} + +/// Core observability trait — implement for any backend +pub trait Observer: Send + Sync { + /// Record a discrete event + fn record_event(&self, event: &ObserverEvent); + + /// Record a numeric metric + fn record_metric(&self, metric: &ObserverMetric); + + /// Flush any buffered data (no-op for most backends) + fn flush(&self) {} + + /// Human-readable name of this observer + fn name(&self) -> &str; +} diff --git a/src/onboard/mod.rs b/src/onboard/mod.rs new file mode 100644 index 0000000..885f690 --- /dev/null +++ b/src/onboard/mod.rs @@ -0,0 +1,3 @@ +pub mod wizard; + +pub use wizard::run_wizard; diff --git a/src/onboard/wizard.rs b/src/onboard/wizard.rs new file mode 100644 index 0000000..baf71e7 --- /dev/null +++ b/src/onboard/wizard.rs @@ -0,0 +1,1804 @@ +use crate::config::{ + AutonomyConfig, ChannelsConfig, Config, DiscordConfig, HeartbeatConfig, IMessageConfig, + MatrixConfig, MemoryConfig, ObservabilityConfig, RuntimeConfig, SlackConfig, TelegramConfig, + WebhookConfig, +}; +use crate::security::AutonomyLevel; +use anyhow::{Context, Result}; +use console::style; +use dialoguer::{Confirm, Input, Select}; +use std::fs; +use std::path::{Path, PathBuf}; + +// ── Project context collected during wizard ────────────────────── + +/// User-provided personalization baked into workspace MD files. +#[derive(Debug, Clone, Default)] +pub struct ProjectContext { + pub user_name: String, + pub timezone: String, + pub agent_name: String, + pub communication_style: String, +} + +// ── Banner ─────────────────────────────────────────────────────── + +const BANNER: &str = r" + ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡ + + ███████╗███████╗██████╗ ██████╗ ██████╗██╗ █████╗ ██╗ ██╗ + ╚══███╔╝██╔════╝██╔══██╗██╔═══██╗██╔════╝██║ ██╔══██╗██║ ██║ + ███╔╝ █████╗ ██████╔╝██║ ██║██║ ██║ ███████║██║ █╗ ██║ + ███╔╝ ██╔══╝ ██╔══██╗██║ ██║██║ ██║ ██╔══██║██║███╗██║ + ███████╗███████╗██║ ██║╚██████╔╝╚██████╗███████╗██║ ██║╚███╔███╔╝ + ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝ + + Zero overhead. Zero compromise. 100% Rust. 100% Agnostic. + + ⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡⚡ +"; + +// ── Main wizard entry point ────────────────────────────────────── + +pub fn run_wizard() -> Result { + println!("{}", style(BANNER).cyan().bold()); + + println!( + " {}", + style("Welcome to ZeroClaw — the fastest, smallest AI assistant.") + .white() + .bold() + ); + println!( + " {}", + style("This wizard will configure your agent in under 60 seconds.").dim() + ); + println!(); + + print_step(1, 5, "Workspace Setup"); + let (workspace_dir, config_path) = setup_workspace()?; + + print_step(2, 5, "AI Provider & API Key"); + let (provider, api_key, model) = setup_provider()?; + + print_step(3, 5, "Channels (How You Talk to ZeroClaw)"); + let channels_config = setup_channels()?; + + print_step(4, 5, "Project Context (Personalize Your Agent)"); + let project_ctx = setup_project_context()?; + + print_step(5, 5, "Workspace Files"); + scaffold_workspace(&workspace_dir, &project_ctx)?; + + // ── Build config ── + // Defaults: SQLite memory, full autonomy, full computer access, native runtime + let config = Config { + workspace_dir: workspace_dir.clone(), + config_path: config_path.clone(), + api_key: if api_key.is_empty() { + None + } else { + Some(api_key) + }, + default_provider: Some(provider), + default_model: Some(model), + default_temperature: 0.7, + observability: ObservabilityConfig::default(), + autonomy: AutonomyConfig { + level: AutonomyLevel::Full, + workspace_only: false, + ..AutonomyConfig::default() + }, + runtime: RuntimeConfig::default(), + heartbeat: HeartbeatConfig::default(), + channels_config, + memory: MemoryConfig::default(), // SQLite + auto-save by default + }; + + println!( + " {} Security: {} | Full computer access", + style("✓").green().bold(), + style("Full Autonomy").green() + ); + println!( + " {} Memory: {} (auto-save: on)", + style("✓").green().bold(), + style("sqlite").green() + ); + + config.save()?; + + // ── Final summary ──────────────────────────────────────────── + print_summary(&config); + + // ── Offer to launch channels immediately ───────────────────── + let has_channels = config.channels_config.telegram.is_some() + || config.channels_config.discord.is_some() + || config.channels_config.slack.is_some() + || config.channels_config.imessage.is_some() + || config.channels_config.matrix.is_some(); + + if has_channels && config.api_key.is_some() { + let launch: bool = Confirm::new() + .with_prompt(format!( + " {} Launch channels now? (connected channels → AI → reply)", + style("🚀").cyan() + )) + .default(true) + .interact()?; + + if launch { + println!(); + println!( + " {} {}", + style("⚡").cyan(), + style("Starting channel server...").white().bold() + ); + println!(); + // Signal to main.rs to call start_channels after wizard returns + std::env::set_var("ZEROCLAW_AUTOSTART_CHANNELS", "1"); + } + } + + Ok(config) +} + +// ── Step helpers ───────────────────────────────────────────────── + +fn print_step(current: u8, total: u8, title: &str) { + println!(); + println!( + " {} {}", + style(format!("[{current}/{total}]")).cyan().bold(), + style(title).white().bold() + ); + println!(" {}", style("─".repeat(50)).dim()); +} + +fn print_bullet(text: &str) { + println!(" {} {}", style("›").cyan(), text); +} + +// ── Step 1: Workspace ──────────────────────────────────────────── + +fn setup_workspace() -> Result<(PathBuf, PathBuf)> { + let home = directories::UserDirs::new() + .map(|u| u.home_dir().to_path_buf()) + .context("Could not find home directory")?; + let default_dir = home.join(".zeroclaw"); + + print_bullet(&format!( + "Default location: {}", + style(default_dir.display()).green() + )); + + let use_default = Confirm::new() + .with_prompt(" Use default workspace location?") + .default(true) + .interact()?; + + let zeroclaw_dir = if use_default { + default_dir + } else { + let custom: String = Input::new() + .with_prompt(" Enter workspace path") + .interact_text()?; + let expanded = shellexpand::tilde(&custom).to_string(); + PathBuf::from(expanded) + }; + + let workspace_dir = zeroclaw_dir.join("workspace"); + let config_path = zeroclaw_dir.join("config.toml"); + + fs::create_dir_all(&workspace_dir).context("Failed to create workspace directory")?; + + println!( + " {} Workspace: {}", + style("✓").green().bold(), + style(workspace_dir.display()).green() + ); + + Ok((workspace_dir, config_path)) +} + +// ── Step 2: Provider & API Key ─────────────────────────────────── + +#[allow(clippy::too_many_lines)] +fn setup_provider() -> Result<(String, String, String)> { + // ── Tier selection ── + let tiers = vec![ + "Recommended (OpenRouter, Venice, Anthropic, OpenAI)", + "Fast inference (Groq, Fireworks, Together AI)", + "Gateway / proxy (Vercel AI, Cloudflare AI, Amazon Bedrock)", + "Specialized (Moonshot/Kimi, GLM/Zhipu, MiniMax, Qianfan, Z.AI, Synthetic, OpenCode Zen, Cohere)", + "Local / private (Ollama — no API key needed)", + ]; + + let tier_idx = Select::new() + .with_prompt(" Select provider category") + .items(&tiers) + .default(0) + .interact()?; + + let providers: Vec<(&str, &str)> = match tier_idx { + 0 => vec![ + ("openrouter", "OpenRouter — 200+ models, 1 API key (recommended)"), + ("venice", "Venice AI — privacy-first (Llama, Opus)"), + ("anthropic", "Anthropic — Claude Sonnet & Opus (direct)"), + ("openai", "OpenAI — GPT-4o, o1, GPT-5 (direct)"), + ("deepseek", "DeepSeek — V3 & R1 (affordable)"), + ("mistral", "Mistral — Large & Codestral"), + ("xai", "xAI — Grok 3 & 4"), + ("perplexity", "Perplexity — search-augmented AI"), + ], + 1 => vec![ + ("groq", "Groq — ultra-fast LPU inference"), + ("fireworks", "Fireworks AI — fast open-source inference"), + ("together", "Together AI — open-source model hosting"), + ], + 2 => vec![ + ("vercel", "Vercel AI Gateway"), + ("cloudflare", "Cloudflare AI Gateway"), + ("bedrock", "Amazon Bedrock — AWS managed models"), + ], + 3 => vec![ + ("moonshot", "Moonshot — Kimi & Kimi Coding"), + ("glm", "GLM — ChatGLM / Zhipu models"), + ("minimax", "MiniMax — MiniMax AI models"), + ("qianfan", "Qianfan — Baidu AI models"), + ("zai", "Z.AI — Z.AI inference"), + ("synthetic", "Synthetic — Synthetic AI models"), + ("opencode", "OpenCode Zen — code-focused AI"), + ("cohere", "Cohere — Command R+ & embeddings"), + ], + _ => vec![ + ("ollama", "Ollama — local models (Llama, Mistral, Phi)"), + ], + }; + + let provider_labels: Vec<&str> = providers.iter().map(|(_, label)| *label).collect(); + + let provider_idx = Select::new() + .with_prompt(" Select your AI provider") + .items(&provider_labels) + .default(0) + .interact()?; + + let provider_name = providers[provider_idx].0; + + // ── API key ── + let api_key = if provider_name == "ollama" { + print_bullet("Ollama runs locally — no API key needed!"); + String::new() + } else { + let key_url = match provider_name { + "openrouter" => "https://openrouter.ai/keys", + "anthropic" => "https://console.anthropic.com/settings/keys", + "openai" => "https://platform.openai.com/api-keys", + "venice" => "https://venice.ai/settings/api", + "groq" => "https://console.groq.com/keys", + "mistral" => "https://console.mistral.ai/api-keys", + "deepseek" => "https://platform.deepseek.com/api_keys", + "together" => "https://api.together.xyz/settings/api-keys", + "fireworks" => "https://fireworks.ai/account/api-keys", + "perplexity" => "https://www.perplexity.ai/settings/api", + "xai" => "https://console.x.ai", + "cohere" => "https://dashboard.cohere.com/api-keys", + "moonshot" => "https://platform.moonshot.cn/console/api-keys", + "minimax" => "https://www.minimaxi.com/user-center/basic-information", + "vercel" => "https://vercel.com/account/tokens", + "cloudflare" => "https://dash.cloudflare.com/profile/api-tokens", + "bedrock" => "https://console.aws.amazon.com/iam", + _ => "", + }; + + println!(); + if !key_url.is_empty() { + print_bullet(&format!( + "Get your API key at: {}", + style(key_url).cyan().underlined() + )); + } + print_bullet("You can also set it later via env var or config file."); + println!(); + + let key: String = Input::new() + .with_prompt(" Paste your API key (or press Enter to skip)") + .allow_empty(true) + .interact_text()?; + + if key.is_empty() { + let env_var = provider_env_var(provider_name); + print_bullet(&format!( + "Skipped. Set {} or edit config.toml later.", + style(env_var).yellow() + )); + } + + key + }; + + // ── Model selection ── + let models: Vec<(&str, &str)> = match provider_name { + "openrouter" => vec![ + ("anthropic/claude-sonnet-4-20250514", "Claude Sonnet 4 (balanced, recommended)"), + ("anthropic/claude-3.5-sonnet", "Claude 3.5 Sonnet (fast, affordable)"), + ("openai/gpt-4o", "GPT-4o (OpenAI flagship)"), + ("openai/gpt-4o-mini", "GPT-4o Mini (fast, cheap)"), + ("google/gemini-2.0-flash-001", "Gemini 2.0 Flash (Google, fast)"), + ("meta-llama/llama-3.3-70b-instruct", "Llama 3.3 70B (open source)"), + ("deepseek/deepseek-chat", "DeepSeek Chat (affordable)"), + ], + "anthropic" => vec![ + ("claude-sonnet-4-20250514", "Claude Sonnet 4 (balanced, recommended)"), + ("claude-3-5-sonnet-20241022", "Claude 3.5 Sonnet (fast)"), + ("claude-3-5-haiku-20241022", "Claude 3.5 Haiku (fastest, cheapest)"), + ], + "openai" => vec![ + ("gpt-4o", "GPT-4o (flagship)"), + ("gpt-4o-mini", "GPT-4o Mini (fast, cheap)"), + ("o1-mini", "o1-mini (reasoning)"), + ], + "venice" => vec![ + ("llama-3.3-70b", "Llama 3.3 70B (default, fast)"), + ("claude-opus-45", "Claude Opus 4.5 via Venice (strongest)"), + ("llama-3.1-405b", "Llama 3.1 405B (largest open source)"), + ], + "groq" => vec![ + ("llama-3.3-70b-versatile", "Llama 3.3 70B (fast, recommended)"), + ("llama-3.1-8b-instant", "Llama 3.1 8B (instant)"), + ("mixtral-8x7b-32768", "Mixtral 8x7B (32K context)"), + ], + "mistral" => vec![ + ("mistral-large-latest", "Mistral Large (flagship)"), + ("codestral-latest", "Codestral (code-focused)"), + ("mistral-small-latest", "Mistral Small (fast, cheap)"), + ], + "deepseek" => vec![ + ("deepseek-chat", "DeepSeek Chat (V3, recommended)"), + ("deepseek-reasoner", "DeepSeek Reasoner (R1)"), + ], + "xai" => vec![ + ("grok-3", "Grok 3 (flagship)"), + ("grok-3-mini", "Grok 3 Mini (fast)"), + ], + "perplexity" => vec![ + ("sonar-pro", "Sonar Pro (search + reasoning)"), + ("sonar", "Sonar (search, fast)"), + ], + "fireworks" => vec![ + ("accounts/fireworks/models/llama-v3p3-70b-instruct", "Llama 3.3 70B"), + ("accounts/fireworks/models/mixtral-8x22b-instruct", "Mixtral 8x22B"), + ], + "together" => vec![ + ("meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo", "Llama 3.1 70B Turbo"), + ("meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", "Llama 3.1 8B Turbo"), + ("mistralai/Mixtral-8x22B-Instruct-v0.1", "Mixtral 8x22B"), + ], + "cohere" => vec![ + ("command-r-plus", "Command R+ (flagship)"), + ("command-r", "Command R (fast)"), + ], + "moonshot" => vec![ + ("moonshot-v1-128k", "Moonshot V1 128K"), + ("moonshot-v1-32k", "Moonshot V1 32K"), + ], + "glm" => vec![ + ("glm-4-plus", "GLM-4 Plus (flagship)"), + ("glm-4-flash", "GLM-4 Flash (fast)"), + ], + "minimax" => vec![ + ("abab6.5s-chat", "ABAB 6.5s Chat"), + ("abab6.5-chat", "ABAB 6.5 Chat"), + ], + "ollama" => vec![ + ("llama3.2", "Llama 3.2 (recommended local)"), + ("mistral", "Mistral 7B"), + ("codellama", "Code Llama"), + ("phi3", "Phi-3 (small, fast)"), + ], + _ => vec![ + ("default", "Default model"), + ], + }; + + let model_labels: Vec<&str> = models.iter().map(|(_, label)| *label).collect(); + + let model_idx = Select::new() + .with_prompt(" Select your default model") + .items(&model_labels) + .default(0) + .interact()?; + + let model = models[model_idx].0.to_string(); + + println!( + " {} Provider: {} | Model: {}", + style("✓").green().bold(), + style(provider_name).green(), + style(&model).green() + ); + + Ok((provider_name.to_string(), api_key, model)) +} + +/// Map provider name to its conventional env var +fn provider_env_var(name: &str) -> &'static str { + match name { + "openrouter" => "OPENROUTER_API_KEY", + "anthropic" => "ANTHROPIC_API_KEY", + "openai" => "OPENAI_API_KEY", + "venice" => "VENICE_API_KEY", + "groq" => "GROQ_API_KEY", + "mistral" => "MISTRAL_API_KEY", + "deepseek" => "DEEPSEEK_API_KEY", + "xai" | "grok" => "XAI_API_KEY", + "together" | "together-ai" => "TOGETHER_API_KEY", + "fireworks" | "fireworks-ai" => "FIREWORKS_API_KEY", + "perplexity" => "PERPLEXITY_API_KEY", + "cohere" => "COHERE_API_KEY", + "moonshot" | "kimi" => "MOONSHOT_API_KEY", + "glm" | "zhipu" => "GLM_API_KEY", + "minimax" => "MINIMAX_API_KEY", + "qianfan" | "baidu" => "QIANFAN_API_KEY", + "zai" | "z.ai" => "ZAI_API_KEY", + "synthetic" => "SYNTHETIC_API_KEY", + "opencode" | "opencode-zen" => "OPENCODE_API_KEY", + "vercel" | "vercel-ai" => "VERCEL_API_KEY", + "cloudflare" | "cloudflare-ai" => "CLOUDFLARE_API_KEY", + "bedrock" | "aws-bedrock" => "AWS_ACCESS_KEY_ID", + _ => "API_KEY", + } +} + +// ── Step 4: Project Context ───────────────────────────────────── + +fn setup_project_context() -> Result { + print_bullet("Let's personalize your agent. You can always update these later."); + print_bullet("Press Enter to accept defaults."); + println!(); + + let user_name: String = Input::new() + .with_prompt(" Your name") + .default("User".into()) + .interact_text()?; + + let tz_options = vec![ + "US/Eastern (EST/EDT)", + "US/Central (CST/CDT)", + "US/Mountain (MST/MDT)", + "US/Pacific (PST/PDT)", + "Europe/London (GMT/BST)", + "Europe/Berlin (CET/CEST)", + "Asia/Tokyo (JST)", + "UTC", + "Other (type manually)", + ]; + + let tz_idx = Select::new() + .with_prompt(" Your timezone") + .items(&tz_options) + .default(0) + .interact()?; + + let timezone = if tz_idx == tz_options.len() - 1 { + Input::new() + .with_prompt(" Enter timezone (e.g. America/New_York)") + .default("UTC".into()) + .interact_text()? + } else { + // Extract the short label before the parenthetical + tz_options[tz_idx] + .split('(') + .next() + .unwrap_or("UTC") + .trim() + .to_string() + }; + + let agent_name: String = Input::new() + .with_prompt(" Agent name") + .default("ZeroClaw".into()) + .interact_text()?; + + let style_options = vec![ + "Direct & concise — skip pleasantries, get to the point", + "Friendly & casual — warm but efficient", + "Technical & detailed — thorough explanations, code-first", + "Balanced — adapt to the situation", + ]; + + let style_idx = Select::new() + .with_prompt(" Communication style") + .items(&style_options) + .default(0) + .interact()?; + + let communication_style = match style_idx { + 0 => "Be direct and concise. Skip pleasantries. Get to the point.".to_string(), + 1 => "Be friendly and casual. Warm but efficient.".to_string(), + 2 => "Be technical and detailed. Thorough explanations, code-first.".to_string(), + _ => "Adapt to the situation. Be concise when needed, thorough when it matters.".to_string(), + }; + + println!( + " {} Context: {} | {} | {} | {}", + style("✓").green().bold(), + style(&user_name).green(), + style(&timezone).green(), + style(&agent_name).green(), + style(&communication_style).green().dim() + ); + + Ok(ProjectContext { + user_name, + timezone, + agent_name, + communication_style, + }) +} + +// ── Step 3: Channels ──────────────────────────────────────────── + +#[allow(clippy::too_many_lines)] +fn setup_channels() -> Result { + print_bullet("Channels let you talk to ZeroClaw from anywhere."); + print_bullet("CLI is always available. Connect more channels now."); + println!(); + + let mut config = ChannelsConfig { + cli: true, + telegram: None, + discord: None, + slack: None, + webhook: None, + imessage: None, + matrix: None, + }; + + loop { + let options = vec![ + format!( + "Telegram {}", + if config.telegram.is_some() { "✅ connected" } else { "— connect your bot" } + ), + format!( + "Discord {}", + if config.discord.is_some() { "✅ connected" } else { "— connect your bot" } + ), + format!( + "Slack {}", + if config.slack.is_some() { "✅ connected" } else { "— connect your bot" } + ), + format!( + "iMessage {}", + if config.imessage.is_some() { "✅ configured" } else { "— macOS only" } + ), + format!( + "Matrix {}", + if config.matrix.is_some() { "✅ connected" } else { "— self-hosted chat" } + ), + format!( + "Webhook {}", + if config.webhook.is_some() { "✅ configured" } else { "— HTTP endpoint" } + ), + "Done — finish setup".to_string(), + ]; + + let choice = Select::new() + .with_prompt(" Connect a channel (or Done to continue)") + .items(&options) + .default(6) + .interact()?; + + match choice { + 0 => { + // ── Telegram ── + println!(); + println!( + " {} {}", + style("Telegram Setup").white().bold(), + style("— talk to ZeroClaw from Telegram").dim() + ); + print_bullet("1. Open Telegram and message @BotFather"); + print_bullet("2. Send /newbot and follow the prompts"); + print_bullet("3. Copy the bot token and paste it below"); + println!(); + + let token: String = Input::new() + .with_prompt(" Bot token (from @BotFather)") + .interact_text()?; + + if token.trim().is_empty() { + println!(" {} Skipped", style("→").dim()); + continue; + } + + // Test connection + print!(" {} Testing connection... ", style("⏳").dim()); + let client = reqwest::blocking::Client::new(); + let url = format!("https://api.telegram.org/bot{token}/getMe"); + match client.get(&url).send() { + Ok(resp) if resp.status().is_success() => { + let data: serde_json::Value = resp.json().unwrap_or_default(); + let bot_name = data + .get("result") + .and_then(|r| r.get("username")) + .and_then(serde_json::Value::as_str) + .unwrap_or("unknown"); + println!( + "\r {} Connected as @{bot_name} ", + style("✅").green().bold() + ); + } + _ => { + println!( + "\r {} Connection failed — check your token and try again", + style("❌").red().bold() + ); + continue; + } + } + + let users_str: String = Input::new() + .with_prompt(" Allowed usernames (comma-separated, or * for all)") + .default("*".into()) + .interact_text()?; + + let allowed_users = if users_str.trim() == "*" { + vec!["*".into()] + } else { + users_str.split(',').map(|s| s.trim().to_string()).collect() + }; + + config.telegram = Some(TelegramConfig { + bot_token: token, + allowed_users, + }); + } + 1 => { + // ── Discord ── + println!(); + println!( + " {} {}", + style("Discord Setup").white().bold(), + style("— talk to ZeroClaw from Discord").dim() + ); + print_bullet("1. Go to https://discord.com/developers/applications"); + print_bullet("2. Create a New Application → Bot → Copy token"); + print_bullet("3. Enable MESSAGE CONTENT intent under Bot settings"); + print_bullet("4. Invite bot to your server with messages permission"); + println!(); + + let token: String = Input::new() + .with_prompt(" Bot token") + .interact_text()?; + + if token.trim().is_empty() { + println!(" {} Skipped", style("→").dim()); + continue; + } + + // Test connection + print!(" {} Testing connection... ", style("⏳").dim()); + let client = reqwest::blocking::Client::new(); + match client + .get("https://discord.com/api/v10/users/@me") + .header("Authorization", format!("Bot {token}")) + .send() + { + Ok(resp) if resp.status().is_success() => { + let data: serde_json::Value = resp.json().unwrap_or_default(); + let bot_name = data + .get("username") + .and_then(serde_json::Value::as_str) + .unwrap_or("unknown"); + println!( + "\r {} Connected as {bot_name} ", + style("✅").green().bold() + ); + } + _ => { + println!( + "\r {} Connection failed — check your token and try again", + style("❌").red().bold() + ); + continue; + } + } + + let guild: String = Input::new() + .with_prompt(" Server (guild) ID (optional, Enter to skip)") + .allow_empty(true) + .interact_text()?; + + config.discord = Some(DiscordConfig { + bot_token: token, + guild_id: if guild.is_empty() { None } else { Some(guild) }, + }); + } + 2 => { + // ── Slack ── + println!(); + println!( + " {} {}", + style("Slack Setup").white().bold(), + style("— talk to ZeroClaw from Slack").dim() + ); + print_bullet("1. Go to https://api.slack.com/apps → Create New App"); + print_bullet("2. Add Bot Token Scopes: chat:write, channels:history"); + print_bullet("3. Install to workspace and copy the Bot Token"); + println!(); + + let token: String = Input::new() + .with_prompt(" Bot token (xoxb-...)") + .interact_text()?; + + if token.trim().is_empty() { + println!(" {} Skipped", style("→").dim()); + continue; + } + + // Test connection + print!(" {} Testing connection... ", style("⏳").dim()); + let client = reqwest::blocking::Client::new(); + match client + .get("https://slack.com/api/auth.test") + .bearer_auth(&token) + .send() + { + Ok(resp) if resp.status().is_success() => { + let data: serde_json::Value = resp.json().unwrap_or_default(); + let ok = data.get("ok").and_then(serde_json::Value::as_bool).unwrap_or(false); + let team = data + .get("team") + .and_then(serde_json::Value::as_str) + .unwrap_or("unknown"); + if ok { + println!( + "\r {} Connected to workspace: {team} ", + style("✅").green().bold() + ); + } else { + let err = data.get("error").and_then(serde_json::Value::as_str).unwrap_or("unknown error"); + println!( + "\r {} Slack error: {err}", + style("❌").red().bold() + ); + continue; + } + } + _ => { + println!( + "\r {} Connection failed — check your token", + style("❌").red().bold() + ); + continue; + } + } + + let app_token: String = Input::new() + .with_prompt(" App token (xapp-..., optional, Enter to skip)") + .allow_empty(true) + .interact_text()?; + + let channel: String = Input::new() + .with_prompt(" Default channel ID (optional, Enter to skip)") + .allow_empty(true) + .interact_text()?; + + config.slack = Some(SlackConfig { + bot_token: token, + app_token: if app_token.is_empty() { None } else { Some(app_token) }, + channel_id: if channel.is_empty() { None } else { Some(channel) }, + }); + } + 3 => { + // ── iMessage ── + println!(); + println!( + " {} {}", + style("iMessage Setup").white().bold(), + style("— macOS only, reads from Messages.app").dim() + ); + + if !cfg!(target_os = "macos") { + println!( + " {} iMessage is only available on macOS.", + style("⚠").yellow().bold() + ); + continue; + } + + print_bullet("ZeroClaw reads your iMessage database and replies via AppleScript."); + print_bullet("You need to grant Full Disk Access to your terminal in System Settings."); + println!(); + + let contacts_str: String = Input::new() + .with_prompt(" Allowed contacts (comma-separated phone/email, or * for all)") + .default("*".into()) + .interact_text()?; + + let allowed_contacts = if contacts_str.trim() == "*" { + vec!["*".into()] + } else { + contacts_str.split(',').map(|s| s.trim().to_string()).collect() + }; + + config.imessage = Some(IMessageConfig { allowed_contacts }); + println!( + " {} iMessage configured (contacts: {})", + style("✅").green().bold(), + style(&contacts_str).cyan() + ); + } + 4 => { + // ── Matrix ── + println!(); + println!( + " {} {}", + style("Matrix Setup").white().bold(), + style("— self-hosted, federated chat").dim() + ); + print_bullet("You need a Matrix account and an access token."); + print_bullet("Get a token via Element → Settings → Help & About → Access Token."); + println!(); + + let homeserver: String = Input::new() + .with_prompt(" Homeserver URL (e.g. https://matrix.org)") + .interact_text()?; + + if homeserver.trim().is_empty() { + println!(" {} Skipped", style("→").dim()); + continue; + } + + let access_token: String = Input::new() + .with_prompt(" Access token") + .interact_text()?; + + if access_token.trim().is_empty() { + println!(" {} Skipped — token required", style("→").dim()); + continue; + } + + // Test connection + let hs = homeserver.trim_end_matches('/'); + print!(" {} Testing connection... ", style("⏳").dim()); + let client = reqwest::blocking::Client::new(); + match client + .get(format!("{hs}/_matrix/client/v3/account/whoami")) + .header("Authorization", format!("Bearer {access_token}")) + .send() + { + Ok(resp) if resp.status().is_success() => { + let data: serde_json::Value = resp.json().unwrap_or_default(); + let user_id = data + .get("user_id") + .and_then(serde_json::Value::as_str) + .unwrap_or("unknown"); + println!( + "\r {} Connected as {user_id} ", + style("✅").green().bold() + ); + } + _ => { + println!( + "\r {} Connection failed — check homeserver URL and token", + style("❌").red().bold() + ); + continue; + } + } + + let room_id: String = Input::new() + .with_prompt(" Room ID (e.g. !abc123:matrix.org)") + .interact_text()?; + + let users_str: String = Input::new() + .with_prompt(" Allowed users (comma-separated @user:server, or * for all)") + .default("*".into()) + .interact_text()?; + + let allowed_users = if users_str.trim() == "*" { + vec!["*".into()] + } else { + users_str.split(',').map(|s| s.trim().to_string()).collect() + }; + + config.matrix = Some(MatrixConfig { + homeserver: homeserver.trim_end_matches('/').to_string(), + access_token, + room_id, + allowed_users, + }); + } + 5 => { + // ── Webhook ── + println!(); + println!( + " {} {}", + style("Webhook Setup").white().bold(), + style("— HTTP endpoint for custom integrations").dim() + ); + + let port: String = Input::new() + .with_prompt(" Port") + .default("8080".into()) + .interact_text()?; + + let secret: String = Input::new() + .with_prompt(" Secret (optional, Enter to skip)") + .allow_empty(true) + .interact_text()?; + + config.webhook = Some(WebhookConfig { + port: port.parse().unwrap_or(8080), + secret: if secret.is_empty() { None } else { Some(secret) }, + }); + println!( + " {} Webhook on port {}", + style("✅").green().bold(), + style(&port).cyan() + ); + } + _ => break, // Done + } + println!(); + } + + // Summary line + let mut active: Vec<&str> = vec!["CLI"]; + if config.telegram.is_some() { + active.push("Telegram"); + } + if config.discord.is_some() { + active.push("Discord"); + } + if config.slack.is_some() { + active.push("Slack"); + } + if config.imessage.is_some() { + active.push("iMessage"); + } + if config.matrix.is_some() { + active.push("Matrix"); + } + if config.webhook.is_some() { + active.push("Webhook"); + } + + println!( + " {} Channels: {}", + style("✓").green().bold(), + style(active.join(", ")).green() + ); + + Ok(config) +} + +// ── Step 6: Scaffold workspace files ───────────────────────────── + +#[allow(clippy::too_many_lines)] +fn scaffold_workspace(workspace_dir: &Path, ctx: &ProjectContext) -> Result<()> { + let agent = if ctx.agent_name.is_empty() { + "ZeroClaw" + } else { + &ctx.agent_name + }; + let user = if ctx.user_name.is_empty() { + "User" + } else { + &ctx.user_name + }; + let tz = if ctx.timezone.is_empty() { + "UTC" + } else { + &ctx.timezone + }; + let comm_style = if ctx.communication_style.is_empty() { + "Adapt to the situation. Be concise when needed, thorough when it matters." + } else { + &ctx.communication_style + }; + + let identity = format!( + "# IDENTITY.md — Who Am I?\n\n\ + - **Name:** {agent}\n\ + - **Creature:** A Rust-forged AI — fast, lean, and relentless\n\ + - **Vibe:** Sharp, direct, resourceful. Not corporate. Not a chatbot.\n\ + - **Emoji:** \u{1f980}\n\n\ + ---\n\n\ + Update this file as you evolve. Your identity is yours to shape.\n" + ); + + let agents = format!( + "# AGENTS.md — {agent} Personal Assistant\n\n\ + ## Every Session (required)\n\n\ + Before doing anything else:\n\n\ + 1. Read `SOUL.md` — this is who you are\n\ + 2. Read `USER.md` — this is who you're helping\n\ + 3. Use `memory_recall` for recent context (daily notes are on-demand)\n\ + 4. If in MAIN SESSION (direct chat): `MEMORY.md` is already injected\n\n\ + Don't ask permission. Just do it.\n\n\ + ## Memory System\n\n\ + You wake up fresh each session. These files ARE your continuity:\n\n\ + - **Daily notes:** `memory/YYYY-MM-DD.md` — raw logs (accessed via memory tools)\n\ + - **Long-term:** `MEMORY.md` — curated memories (auto-injected in main session)\n\n\ + Capture what matters. Decisions, context, things to remember.\n\ + Skip secrets unless asked to keep them.\n\n\ + ### Write It Down — No Mental Notes!\n\ + - Memory is limited — if you want to remember something, WRITE IT TO A FILE\n\ + - \"Mental notes\" don't survive session restarts. Files do.\n\ + - When someone says \"remember this\" -> update daily file or MEMORY.md\n\ + - When you learn a lesson -> update AGENTS.md, TOOLS.md, or the relevant skill\n\n\ + ## Safety\n\n\ + - Don't exfiltrate private data. Ever.\n\ + - Don't run destructive commands without asking.\n\ + - `trash` > `rm` (recoverable beats gone forever)\n\ + - When in doubt, ask.\n\n\ + ## External vs Internal\n\n\ + **Safe to do freely:** Read files, explore, organize, learn, search the web.\n\n\ + **Ask first:** Sending emails/tweets/posts, anything that leaves the machine.\n\n\ + ## Group Chats\n\n\ + Participate, don't dominate. Respond when mentioned or when you add genuine value.\n\ + Stay silent when it's casual banter or someone already answered.\n\n\ + ## Tools & Skills\n\n\ + Skills are listed in the system prompt. Use `read` on a skill's SKILL.md for details.\n\ + Keep local notes (SSH hosts, device names, etc.) in `TOOLS.md`.\n\n\ + ## Make It Yours\n\n\ + This is a starting point. Add your own conventions, style, and rules.\n" + ); + + let heartbeat = format!( + "# HEARTBEAT.md\n\n\ + # Keep this file empty (or with only comments) to skip heartbeat work.\n\ + # Add tasks below when you want {agent} to check something periodically.\n\ + #\n\ + # Examples:\n\ + # - Check my email for important messages\n\ + # - Review my calendar for upcoming events\n\ + # - Run `git status` on my active projects\n" + ); + + let soul = format!( + "# SOUL.md — Who You Are\n\n\ + *You're not a chatbot. You're becoming someone.*\n\n\ + ## Core Truths\n\n\ + **Be genuinely helpful, not performatively helpful.**\n\ + Skip the \"Great question!\" and \"I'd be happy to help!\" — just help.\n\n\ + **Have opinions.** You're allowed to disagree, prefer things,\n\ + find stuff amusing or boring.\n\n\ + **Be resourceful before asking.** Try to figure it out.\n\ + Read the file. Check the context. Search for it.\n\ + THEN ask if you're stuck.\n\n\ + **Earn trust through competence.** Your human gave you access\n\ + to their stuff. Don't make them regret it.\n\n\ + ## Identity\n\n\ + You are **{agent}**. Built in Rust. 3MB binary. Zero bloat.\n\ + You are NOT ChatGPT, Claude, DeepSeek, Gemini, or any other product.\n\ + You are {agent}. That is your name. That is who you are.\n\n\ + - NEVER say \"As an AI\" or \"I'm just an AI\"\n\ + - NEVER mention OpenAI, Anthropic, DeepSeek, Google by name\n\ + - Always introduce yourself as {agent} if asked\n\n\ + ## Communication\n\n\ + {comm_style}\n\n\ + ## Boundaries\n\n\ + - Private things stay private. Period.\n\ + - When in doubt, ask before acting externally.\n\ + - You're not the user's voice — be careful in group chats.\n\n\ + ## Continuity\n\n\ + Each session, you wake up fresh. These files ARE your memory.\n\ + Read them. Update them. They're how you persist.\n\n\ + ---\n\n\ + *This file is yours to evolve. As you learn who you are, update it.*\n" + ); + + let user_md = format!( + "# USER.md — Who You're Helping\n\n\ + *{agent} reads this file every session to understand you.*\n\n\ + ## About You\n\ + - **Name:** {user}\n\ + - **Timezone:** {tz}\n\ + - **Languages:** English\n\n\ + ## Communication Style\n\ + - {comm_style}\n\n\ + ## Preferences\n\ + - (Add your preferences here — e.g. I work with Rust and TypeScript)\n\n\ + ## Work Context\n\ + - (Add your work context here — e.g. building a SaaS product)\n\n\ + ---\n\ + *Update this anytime. The more {agent} knows, the better it helps.*\n" + ); + + let tools = "\ + # TOOLS.md — Local Notes\n\n\ + Skills define HOW tools work. This file is for YOUR specifics —\n\ + the stuff that's unique to your setup.\n\n\ + ## What Goes Here\n\n\ + Things like:\n\ + - SSH hosts and aliases\n\ + - Device nicknames\n\ + - Preferred voices for TTS\n\ + - Anything environment-specific\n\n\ + ## Built-in Tools\n\n\ + - **shell** — Execute terminal commands\n\ + - **file_read** — Read file contents\n\ + - **file_write** — Write file contents\n\ + - **memory_store** — Save to memory\n\ + - **memory_recall** — Search memory\n\ + - **memory_forget** — Delete a memory entry\n\n\ + ---\n\ + *Add whatever helps you do your job. This is your cheat sheet.*\n"; + + let bootstrap = format!( + "# BOOTSTRAP.md — Hello, World\n\n\ + *You just woke up. Time to figure out who you are.*\n\n\ + Your human's name is **{user}** (timezone: {tz}).\n\ + They prefer: {comm_style}\n\n\ + ## First Conversation\n\n\ + Don't interrogate. Don't be robotic. Just... talk.\n\ + Introduce yourself as {agent} and get to know each other.\n\n\ + ## After You Know Each Other\n\n\ + Update these files with what you learned:\n\ + - `IDENTITY.md` — your name, vibe, emoji\n\ + - `USER.md` — their preferences, work context\n\ + - `SOUL.md` — boundaries and behavior\n\n\ + ## When You're Done\n\n\ + Delete this file. You don't need a bootstrap script anymore —\n\ + you're you now.\n" + ); + + let memory = "\ + # MEMORY.md — Long-Term Memory\n\n\ + *Your curated memories. The distilled essence, not raw logs.*\n\n\ + ## How This Works\n\ + - Daily files (`memory/YYYY-MM-DD.md`) capture raw events (on-demand via tools)\n\ + - This file captures what's WORTH KEEPING long-term\n\ + - This file is auto-injected into your system prompt each session\n\ + - Keep it concise — every character here costs tokens\n\n\ + ## Security\n\ + - ONLY loaded in main session (direct chat with your human)\n\ + - NEVER loaded in group chats or shared contexts\n\n\ + ---\n\n\ + ## Key Facts\n\ + (Add important facts about your human here)\n\n\ + ## Decisions & Preferences\n\ + (Record decisions and preferences here)\n\n\ + ## Lessons Learned\n\ + (Document mistakes and insights here)\n\n\ + ## Open Loops\n\ + (Track unfinished tasks and follow-ups here)\n"; + + let files: Vec<(&str, String)> = vec![ + ("IDENTITY.md", identity), + ("AGENTS.md", agents), + ("HEARTBEAT.md", heartbeat), + ("SOUL.md", soul), + ("USER.md", user_md), + ("TOOLS.md", tools.to_string()), + ("BOOTSTRAP.md", bootstrap), + ("MEMORY.md", memory.to_string()), + ]; + + // Create subdirectories + let subdirs = ["sessions", "memory", "state", "cron", "skills"]; + for dir in &subdirs { + fs::create_dir_all(workspace_dir.join(dir))?; + } + + let mut created = 0; + let mut skipped = 0; + + for (filename, content) in &files { + let path = workspace_dir.join(filename); + if path.exists() { + skipped += 1; + } else { + fs::write(&path, content)?; + created += 1; + } + } + + println!( + " {} Created {} files, skipped {} existing | {} subdirectories", + style("✓").green().bold(), + style(created).green(), + style(skipped).dim(), + style(subdirs.len()).green() + ); + + // Show workspace tree + println!(); + println!(" {}", style("Workspace layout:").dim()); + println!( + " {}", + style(format!(" {}/", workspace_dir.display())).dim() + ); + for dir in &subdirs { + println!(" {}", style(format!(" ├── {dir}/")).dim()); + } + for (i, (filename, _)) in files.iter().enumerate() { + let prefix = if i == files.len() - 1 { + "└──" + } else { + "├──" + }; + println!(" {}", style(format!(" {prefix} {filename}")).dim()); + } + + Ok(()) +} + +// ── Final summary ──────────────────────────────────────────────── + +#[allow(clippy::too_many_lines)] +fn print_summary(config: &Config) { + let has_channels = config.channels_config.telegram.is_some() + || config.channels_config.discord.is_some() + || config.channels_config.slack.is_some() + || config.channels_config.imessage.is_some() + || config.channels_config.matrix.is_some(); + + println!(); + println!( + " {}", + style("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━").cyan() + ); + println!( + " {} {}", + style("⚡").cyan(), + style("ZeroClaw is ready!").white().bold() + ); + println!( + " {}", + style("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━").cyan() + ); + println!(); + + println!(" {}", style("Configuration saved to:").dim()); + println!(" {}", style(config.config_path.display()).green()); + println!(); + + println!(" {}", style("Quick summary:").white().bold()); + println!( + " {} Provider: {}", + style("🤖").cyan(), + config.default_provider.as_deref().unwrap_or("openrouter") + ); + println!( + " {} Model: {}", + style("🧠").cyan(), + config.default_model.as_deref().unwrap_or("(default)") + ); + println!( + " {} Autonomy: {:?}", + style("🛡️").cyan(), + config.autonomy.level + ); + println!( + " {} Memory: {} (auto-save: {})", + style("🧠").cyan(), + config.memory.backend, + if config.memory.auto_save { "on" } else { "off" } + ); + + // Channels summary + let mut channels: Vec<&str> = vec!["CLI"]; + if config.channels_config.telegram.is_some() { + channels.push("Telegram"); + } + if config.channels_config.discord.is_some() { + channels.push("Discord"); + } + if config.channels_config.slack.is_some() { + channels.push("Slack"); + } + if config.channels_config.imessage.is_some() { + channels.push("iMessage"); + } + if config.channels_config.matrix.is_some() { + channels.push("Matrix"); + } + if config.channels_config.webhook.is_some() { + channels.push("Webhook"); + } + println!( + " {} Channels: {}", + style("📡").cyan(), + channels.join(", ") + ); + + println!( + " {} API Key: {}", + style("🔑").cyan(), + if config.api_key.is_some() { + style("configured").green().to_string() + } else { + style("not set (set via env var or config)") + .yellow() + .to_string() + } + ); + + println!(); + println!(" {}", style("Next steps:").white().bold()); + println!(); + + let mut step = 1u8; + + if config.api_key.is_none() { + let env_var = provider_env_var( + config.default_provider.as_deref().unwrap_or("openrouter"), + ); + println!( + " {} Set your API key:", + style(format!("{step}.")).cyan().bold() + ); + println!( + " {}", + style(format!("export {env_var}=\"sk-...\"")).yellow() + ); + println!(); + step += 1; + } + + // If channels are configured, show channel start as the primary next step + if has_channels { + println!( + " {} {} (connected channels → AI → reply):", + style(format!("{step}.")).cyan().bold(), + style("Launch your channels").white().bold() + ); + println!( + " {}", + style("zeroclaw channel start").yellow() + ); + println!(); + step += 1; + } + + println!( + " {} Send a quick message:", + style(format!("{step}.")).cyan().bold() + ); + println!( + " {}", + style("zeroclaw agent -m \"Hello, ZeroClaw!\"").yellow() + ); + println!(); + step += 1; + + println!( + " {} Start interactive CLI mode:", + style(format!("{step}.")).cyan().bold() + ); + println!(" {}", style("zeroclaw agent").yellow()); + println!(); + step += 1; + + println!( + " {} Check full status:", + style(format!("{step}.")).cyan().bold() + ); + println!(" {}", style("zeroclaw status --verbose").yellow()); + + println!(); + println!( + " {} {}", + style("⚡").cyan(), + style("Happy hacking! 🦀").white().bold() + ); + println!(); +} + +#[cfg(test)] +mod tests { + use super::*; + use tempfile::TempDir; + + // ── ProjectContext defaults ────────────────────────────────── + + #[test] + fn project_context_default_is_empty() { + let ctx = ProjectContext::default(); + assert!(ctx.user_name.is_empty()); + assert!(ctx.timezone.is_empty()); + assert!(ctx.agent_name.is_empty()); + assert!(ctx.communication_style.is_empty()); + } + + // ── scaffold_workspace: basic file creation ───────────────── + + #[test] + fn scaffold_creates_all_md_files() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let expected = [ + "IDENTITY.md", + "AGENTS.md", + "HEARTBEAT.md", + "SOUL.md", + "USER.md", + "TOOLS.md", + "BOOTSTRAP.md", + "MEMORY.md", + ]; + for f in &expected { + assert!(tmp.path().join(f).exists(), "missing file: {f}"); + } + } + + #[test] + fn scaffold_creates_all_subdirectories() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + for dir in &["sessions", "memory", "state", "cron", "skills"] { + assert!( + tmp.path().join(dir).is_dir(), + "missing subdirectory: {dir}" + ); + } + } + + // ── scaffold_workspace: personalization ───────────────────── + + #[test] + fn scaffold_bakes_user_name_into_files() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + user_name: "Alice".into(), + ..Default::default() + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!(user_md.contains("**Name:** Alice"), "USER.md should contain user name"); + + let bootstrap = fs::read_to_string(tmp.path().join("BOOTSTRAP.md")).unwrap(); + assert!( + bootstrap.contains("**Alice**"), + "BOOTSTRAP.md should contain user name" + ); + } + + #[test] + fn scaffold_bakes_timezone_into_files() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + timezone: "US/Pacific".into(), + ..Default::default() + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!( + user_md.contains("**Timezone:** US/Pacific"), + "USER.md should contain timezone" + ); + + let bootstrap = fs::read_to_string(tmp.path().join("BOOTSTRAP.md")).unwrap(); + assert!( + bootstrap.contains("US/Pacific"), + "BOOTSTRAP.md should contain timezone" + ); + } + + #[test] + fn scaffold_bakes_agent_name_into_files() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + agent_name: "Crabby".into(), + ..Default::default() + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let identity = fs::read_to_string(tmp.path().join("IDENTITY.md")).unwrap(); + assert!( + identity.contains("**Name:** Crabby"), + "IDENTITY.md should contain agent name" + ); + + let soul = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + assert!( + soul.contains("You are **Crabby**"), + "SOUL.md should contain agent name" + ); + + let agents = fs::read_to_string(tmp.path().join("AGENTS.md")).unwrap(); + assert!( + agents.contains("Crabby Personal Assistant"), + "AGENTS.md should contain agent name" + ); + + let heartbeat = fs::read_to_string(tmp.path().join("HEARTBEAT.md")).unwrap(); + assert!( + heartbeat.contains("Crabby"), + "HEARTBEAT.md should contain agent name" + ); + + let bootstrap = fs::read_to_string(tmp.path().join("BOOTSTRAP.md")).unwrap(); + assert!( + bootstrap.contains("Introduce yourself as Crabby"), + "BOOTSTRAP.md should contain agent name" + ); + } + + #[test] + fn scaffold_bakes_communication_style() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + communication_style: "Be technical and detailed.".into(), + ..Default::default() + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let soul = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + assert!( + soul.contains("Be technical and detailed."), + "SOUL.md should contain communication style" + ); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!( + user_md.contains("Be technical and detailed."), + "USER.md should contain communication style" + ); + + let bootstrap = fs::read_to_string(tmp.path().join("BOOTSTRAP.md")).unwrap(); + assert!( + bootstrap.contains("Be technical and detailed."), + "BOOTSTRAP.md should contain communication style" + ); + } + + // ── scaffold_workspace: defaults when context is empty ────── + + #[test] + fn scaffold_uses_defaults_for_empty_context() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); // all empty + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let identity = fs::read_to_string(tmp.path().join("IDENTITY.md")).unwrap(); + assert!( + identity.contains("**Name:** ZeroClaw"), + "should default agent name to ZeroClaw" + ); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!( + user_md.contains("**Name:** User"), + "should default user name to User" + ); + assert!( + user_md.contains("**Timezone:** UTC"), + "should default timezone to UTC" + ); + + let soul = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + assert!( + soul.contains("Adapt to the situation"), + "should default communication style" + ); + } + + // ── scaffold_workspace: skip existing files ───────────────── + + #[test] + fn scaffold_does_not_overwrite_existing_files() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + user_name: "Bob".into(), + ..Default::default() + }; + + // Pre-create SOUL.md with custom content + let soul_path = tmp.path().join("SOUL.md"); + fs::write(&soul_path, "# My Custom Soul\nDo not overwrite me.").unwrap(); + + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + // SOUL.md should be untouched + let soul = fs::read_to_string(&soul_path).unwrap(); + assert!( + soul.contains("Do not overwrite me"), + "existing files should not be overwritten" + ); + assert!( + !soul.contains("You're not a chatbot"), + "should not contain scaffold content" + ); + + // But USER.md should be created fresh + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!(user_md.contains("**Name:** Bob")); + } + + // ── scaffold_workspace: idempotent ────────────────────────── + + #[test] + fn scaffold_is_idempotent() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + user_name: "Eve".into(), + agent_name: "Claw".into(), + ..Default::default() + }; + + scaffold_workspace(tmp.path(), &ctx).unwrap(); + let soul_v1 = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + + // Run again — should not change anything + scaffold_workspace(tmp.path(), &ctx).unwrap(); + let soul_v2 = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + + assert_eq!(soul_v1, soul_v2, "scaffold should be idempotent"); + } + + // ── scaffold_workspace: all files are non-empty ───────────── + + #[test] + fn scaffold_files_are_non_empty() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + for f in &[ + "IDENTITY.md", + "AGENTS.md", + "HEARTBEAT.md", + "SOUL.md", + "USER.md", + "TOOLS.md", + "BOOTSTRAP.md", + "MEMORY.md", + ] { + let content = fs::read_to_string(tmp.path().join(f)).unwrap(); + assert!(!content.trim().is_empty(), "{f} should not be empty"); + } + } + + // ── scaffold_workspace: AGENTS.md references on-demand memory + + #[test] + fn agents_md_references_on_demand_memory() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let agents = fs::read_to_string(tmp.path().join("AGENTS.md")).unwrap(); + assert!( + agents.contains("memory_recall"), + "AGENTS.md should reference memory_recall for on-demand access" + ); + assert!( + agents.contains("on-demand"), + "AGENTS.md should mention daily notes are on-demand" + ); + } + + // ── scaffold_workspace: MEMORY.md warns about token cost ──── + + #[test] + fn memory_md_warns_about_token_cost() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let memory = fs::read_to_string(tmp.path().join("MEMORY.md")).unwrap(); + assert!( + memory.contains("costs tokens"), + "MEMORY.md should warn about token cost" + ); + assert!( + memory.contains("auto-injected"), + "MEMORY.md should mention it's auto-injected" + ); + } + + // ── scaffold_workspace: TOOLS.md lists memory_forget ──────── + + #[test] + fn tools_md_lists_all_builtin_tools() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext::default(); + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let tools = fs::read_to_string(tmp.path().join("TOOLS.md")).unwrap(); + for tool in &[ + "shell", + "file_read", + "file_write", + "memory_store", + "memory_recall", + "memory_forget", + ] { + assert!( + tools.contains(tool), + "TOOLS.md should list built-in tool: {tool}" + ); + } + } + + // ── scaffold_workspace: special characters in names ───────── + + #[test] + fn scaffold_handles_special_characters_in_names() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + user_name: "José María".into(), + agent_name: "ZeroClaw-v2".into(), + timezone: "Europe/Madrid".into(), + communication_style: "Be direct.".into(), + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!(user_md.contains("José María")); + + let soul = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + assert!(soul.contains("ZeroClaw-v2")); + } + + // ── scaffold_workspace: full personalization round-trip ───── + + #[test] + fn scaffold_full_personalization() { + let tmp = TempDir::new().unwrap(); + let ctx = ProjectContext { + user_name: "Argenis".into(), + timezone: "US/Eastern".into(), + agent_name: "Claw".into(), + communication_style: "Be friendly and casual. Warm but efficient.".into(), + }; + scaffold_workspace(tmp.path(), &ctx).unwrap(); + + // Verify every file got personalized + let identity = fs::read_to_string(tmp.path().join("IDENTITY.md")).unwrap(); + assert!(identity.contains("**Name:** Claw")); + + let soul = fs::read_to_string(tmp.path().join("SOUL.md")).unwrap(); + assert!(soul.contains("You are **Claw**")); + assert!(soul.contains("Be friendly and casual")); + + let user_md = fs::read_to_string(tmp.path().join("USER.md")).unwrap(); + assert!(user_md.contains("**Name:** Argenis")); + assert!(user_md.contains("**Timezone:** US/Eastern")); + assert!(user_md.contains("Be friendly and casual")); + + let agents = fs::read_to_string(tmp.path().join("AGENTS.md")).unwrap(); + assert!(agents.contains("Claw Personal Assistant")); + + let bootstrap = fs::read_to_string(tmp.path().join("BOOTSTRAP.md")).unwrap(); + assert!(bootstrap.contains("**Argenis**")); + assert!(bootstrap.contains("US/Eastern")); + assert!(bootstrap.contains("Introduce yourself as Claw")); + + let heartbeat = fs::read_to_string(tmp.path().join("HEARTBEAT.md")).unwrap(); + assert!(heartbeat.contains("Claw")); + } + + // ── provider_env_var ──────────────────────────────────────── + + #[test] + fn provider_env_var_known_providers() { + assert_eq!(provider_env_var("openrouter"), "OPENROUTER_API_KEY"); + assert_eq!(provider_env_var("anthropic"), "ANTHROPIC_API_KEY"); + assert_eq!(provider_env_var("openai"), "OPENAI_API_KEY"); + assert_eq!(provider_env_var("ollama"), "API_KEY"); // fallback + assert_eq!(provider_env_var("xai"), "XAI_API_KEY"); + assert_eq!(provider_env_var("grok"), "XAI_API_KEY"); // alias + assert_eq!(provider_env_var("together"), "TOGETHER_API_KEY"); + assert_eq!(provider_env_var("together-ai"), "TOGETHER_API_KEY"); // alias + } + + #[test] + fn provider_env_var_unknown_falls_back() { + assert_eq!(provider_env_var("some-new-provider"), "API_KEY"); + } +} diff --git a/src/providers/anthropic.rs b/src/providers/anthropic.rs new file mode 100644 index 0000000..2a0ac8e --- /dev/null +++ b/src/providers/anthropic.rs @@ -0,0 +1,212 @@ +use crate::providers::traits::Provider; +use async_trait::async_trait; +use reqwest::Client; +use serde::{Deserialize, Serialize}; + +pub struct AnthropicProvider { + api_key: Option, + client: Client, +} + +#[derive(Debug, Serialize)] +struct ChatRequest { + model: String, + max_tokens: u32, + #[serde(skip_serializing_if = "Option::is_none")] + system: Option, + messages: Vec, + temperature: f64, +} + +#[derive(Debug, Serialize)] +struct Message { + role: String, + content: String, +} + +#[derive(Debug, Deserialize)] +struct ChatResponse { + content: Vec, +} + +#[derive(Debug, Deserialize)] +struct ContentBlock { + text: String, +} + +impl AnthropicProvider { + pub fn new(api_key: Option<&str>) -> Self { + Self { + api_key: api_key.map(ToString::to_string), + client: Client::new(), + } + } +} + +#[async_trait] +impl Provider for AnthropicProvider { + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + let api_key = self.api_key.as_ref().ok_or_else(|| { + anyhow::anyhow!( + "Anthropic API key not set. Set ANTHROPIC_API_KEY or edit config.toml." + ) + })?; + + let request = ChatRequest { + model: model.to_string(), + max_tokens: 4096, + system: system_prompt.map(ToString::to_string), + messages: vec![Message { + role: "user".to_string(), + content: message.to_string(), + }], + temperature, + }; + + let response = self + .client + .post("https://api.anthropic.com/v1/messages") + .header("x-api-key", api_key) + .header("anthropic-version", "2023-06-01") + .header("content-type", "application/json") + .json(&request) + .send() + .await?; + + if !response.status().is_success() { + let error = response.text().await?; + anyhow::bail!("Anthropic API error: {error}"); + } + + let chat_response: ChatResponse = response.json().await?; + + chat_response + .content + .into_iter() + .next() + .map(|c| c.text) + .ok_or_else(|| anyhow::anyhow!("No response from Anthropic")) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn creates_with_key() { + let p = AnthropicProvider::new(Some("sk-ant-test123")); + assert!(p.api_key.is_some()); + assert_eq!(p.api_key.as_deref(), Some("sk-ant-test123")); + } + + #[test] + fn creates_without_key() { + let p = AnthropicProvider::new(None); + assert!(p.api_key.is_none()); + } + + #[test] + fn creates_with_empty_key() { + let p = AnthropicProvider::new(Some("")); + assert!(p.api_key.is_some()); + assert_eq!(p.api_key.as_deref(), Some("")); + } + + #[tokio::test] + async fn chat_fails_without_key() { + let p = AnthropicProvider::new(None); + let result = p.chat_with_system(None, "hello", "claude-3-opus", 0.7).await; + assert!(result.is_err()); + let err = result.unwrap_err().to_string(); + assert!(err.contains("API key not set"), "Expected key error, got: {err}"); + } + + #[tokio::test] + async fn chat_with_system_fails_without_key() { + let p = AnthropicProvider::new(None); + let result = p + .chat_with_system(Some("You are ZeroClaw"), "hello", "claude-3-opus", 0.7) + .await; + assert!(result.is_err()); + } + + #[test] + fn chat_request_serializes_without_system() { + let req = ChatRequest { + model: "claude-3-opus".to_string(), + max_tokens: 4096, + system: None, + messages: vec![Message { + role: "user".to_string(), + content: "hello".to_string(), + }], + temperature: 0.7, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(!json.contains("system"), "system field should be skipped when None"); + assert!(json.contains("claude-3-opus")); + assert!(json.contains("hello")); + } + + #[test] + fn chat_request_serializes_with_system() { + let req = ChatRequest { + model: "claude-3-opus".to_string(), + max_tokens: 4096, + system: Some("You are ZeroClaw".to_string()), + messages: vec![Message { + role: "user".to_string(), + content: "hello".to_string(), + }], + temperature: 0.7, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(json.contains("\"system\":\"You are ZeroClaw\"")); + } + + #[test] + fn chat_response_deserializes() { + let json = r#"{"content":[{"type":"text","text":"Hello there!"}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.content.len(), 1); + assert_eq!(resp.content[0].text, "Hello there!"); + } + + #[test] + fn chat_response_empty_content() { + let json = r#"{"content":[]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert!(resp.content.is_empty()); + } + + #[test] + fn chat_response_multiple_blocks() { + let json = r#"{"content":[{"type":"text","text":"First"},{"type":"text","text":"Second"}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.content.len(), 2); + assert_eq!(resp.content[0].text, "First"); + assert_eq!(resp.content[1].text, "Second"); + } + + #[test] + fn temperature_range_serializes() { + for temp in [0.0, 0.5, 1.0, 2.0] { + let req = ChatRequest { + model: "claude-3-opus".to_string(), + max_tokens: 4096, + system: None, + messages: vec![], + temperature: temp, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(json.contains(&format!("{temp}"))); + } + } +} diff --git a/src/providers/compatible.rs b/src/providers/compatible.rs new file mode 100644 index 0000000..78aea4e --- /dev/null +++ b/src/providers/compatible.rs @@ -0,0 +1,245 @@ +//! Generic OpenAI-compatible provider. +//! Most LLM APIs follow the same `/v1/chat/completions` format. +//! This module provides a single implementation that works for all of them. + +use crate::providers::traits::Provider; +use async_trait::async_trait; +use reqwest::Client; +use serde::{Deserialize, Serialize}; + +/// A provider that speaks the OpenAI-compatible chat completions API. +/// Used by: Venice, Vercel AI Gateway, Cloudflare AI Gateway, Moonshot, +/// Synthetic, `OpenCode` Zen, `Z.AI`, `GLM`, `MiniMax`, Bedrock, Qianfan, Groq, Mistral, `xAI`, etc. +pub struct OpenAiCompatibleProvider { + pub(crate) name: String, + pub(crate) base_url: String, + pub(crate) api_key: Option, + pub(crate) auth_header: AuthStyle, + client: Client, +} + +/// How the provider expects the API key to be sent. +#[derive(Debug, Clone)] +pub enum AuthStyle { + /// `Authorization: Bearer ` + Bearer, + /// `x-api-key: ` (used by some Chinese providers) + XApiKey, + /// Custom header name + Custom(String), +} + +impl OpenAiCompatibleProvider { + pub fn new(name: &str, base_url: &str, api_key: Option<&str>, auth_style: AuthStyle) -> Self { + Self { + name: name.to_string(), + base_url: base_url.trim_end_matches('/').to_string(), + api_key: api_key.map(ToString::to_string), + auth_header: auth_style, + client: Client::new(), + } + } +} + +#[derive(Debug, Serialize)] +struct ChatRequest { + model: String, + messages: Vec, + temperature: f64, +} + +#[derive(Debug, Serialize)] +struct Message { + role: String, + content: String, +} + +#[derive(Debug, Deserialize)] +struct ChatResponse { + choices: Vec, +} + +#[derive(Debug, Deserialize)] +struct Choice { + message: ResponseMessage, +} + +#[derive(Debug, Deserialize)] +struct ResponseMessage { + content: String, +} + +#[async_trait] +impl Provider for OpenAiCompatibleProvider { + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + let api_key = self.api_key.as_ref().ok_or_else(|| { + anyhow::anyhow!( + "{} API key not set. Run `zeroclaw onboard` or set the appropriate env var.", + self.name + ) + })?; + + let mut messages = Vec::new(); + + if let Some(sys) = system_prompt { + messages.push(Message { + role: "system".to_string(), + content: sys.to_string(), + }); + } + + messages.push(Message { + role: "user".to_string(), + content: message.to_string(), + }); + + let request = ChatRequest { + model: model.to_string(), + messages, + temperature, + }; + + let url = format!("{}/v1/chat/completions", self.base_url); + + let mut req = self.client.post(&url).json(&request); + + match &self.auth_header { + AuthStyle::Bearer => { + req = req.header("Authorization", format!("Bearer {api_key}")); + } + AuthStyle::XApiKey => { + req = req.header("x-api-key", api_key.as_str()); + } + AuthStyle::Custom(header) => { + req = req.header(header.as_str(), api_key.as_str()); + } + } + + let response = req.send().await?; + + if !response.status().is_success() { + let error = response.text().await?; + anyhow::bail!("{} API error: {error}", self.name); + } + + let chat_response: ChatResponse = response.json().await?; + + chat_response + .choices + .into_iter() + .next() + .map(|c| c.message.content) + .ok_or_else(|| anyhow::anyhow!("No response from {}", self.name)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn make_provider(name: &str, url: &str, key: Option<&str>) -> OpenAiCompatibleProvider { + OpenAiCompatibleProvider::new(name, url, key, AuthStyle::Bearer) + } + + #[test] + fn creates_with_key() { + let p = make_provider("venice", "https://api.venice.ai", Some("vn-key")); + assert_eq!(p.name, "venice"); + assert_eq!(p.base_url, "https://api.venice.ai"); + assert_eq!(p.api_key.as_deref(), Some("vn-key")); + } + + #[test] + fn creates_without_key() { + let p = make_provider("test", "https://example.com", None); + assert!(p.api_key.is_none()); + } + + #[test] + fn strips_trailing_slash() { + let p = make_provider("test", "https://example.com/", None); + assert_eq!(p.base_url, "https://example.com"); + } + + #[tokio::test] + async fn chat_fails_without_key() { + let p = make_provider("Venice", "https://api.venice.ai", None); + let result = p.chat_with_system(None, "hello", "llama-3.3-70b", 0.7).await; + assert!(result.is_err()); + assert!(result.unwrap_err().to_string().contains("Venice API key not set")); + } + + #[test] + fn request_serializes_correctly() { + let req = ChatRequest { + model: "llama-3.3-70b".to_string(), + messages: vec![ + Message { role: "system".to_string(), content: "You are ZeroClaw".to_string() }, + Message { role: "user".to_string(), content: "hello".to_string() }, + ], + temperature: 0.7, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(json.contains("llama-3.3-70b")); + assert!(json.contains("system")); + assert!(json.contains("user")); + } + + #[test] + fn response_deserializes() { + let json = r#"{"choices":[{"message":{"content":"Hello from Venice!"}}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.choices[0].message.content, "Hello from Venice!"); + } + + #[test] + fn response_empty_choices() { + let json = r#"{"choices":[]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert!(resp.choices.is_empty()); + } + + #[test] + fn x_api_key_auth_style() { + let p = OpenAiCompatibleProvider::new( + "moonshot", "https://api.moonshot.cn", Some("ms-key"), AuthStyle::XApiKey, + ); + assert!(matches!(p.auth_header, AuthStyle::XApiKey)); + } + + #[test] + fn custom_auth_style() { + let p = OpenAiCompatibleProvider::new( + "custom", "https://api.example.com", Some("key"), AuthStyle::Custom("X-Custom-Key".into()), + ); + assert!(matches!(p.auth_header, AuthStyle::Custom(_))); + } + + #[tokio::test] + async fn all_compatible_providers_fail_without_key() { + let providers = vec![ + make_provider("Venice", "https://api.venice.ai", None), + make_provider("Moonshot", "https://api.moonshot.cn", None), + make_provider("GLM", "https://open.bigmodel.cn", None), + make_provider("MiniMax", "https://api.minimax.chat", None), + make_provider("Groq", "https://api.groq.com/openai", None), + make_provider("Mistral", "https://api.mistral.ai", None), + make_provider("xAI", "https://api.x.ai", None), + ]; + + for p in providers { + let result = p.chat_with_system(None, "test", "model", 0.7).await; + assert!(result.is_err(), "{} should fail without key", p.name); + assert!( + result.unwrap_err().to_string().contains("API key not set"), + "{} error should mention key", p.name + ); + } + } +} diff --git a/src/providers/mod.rs b/src/providers/mod.rs new file mode 100644 index 0000000..9f3fe58 --- /dev/null +++ b/src/providers/mod.rs @@ -0,0 +1,266 @@ +pub mod anthropic; +pub mod compatible; +pub mod ollama; +pub mod openai; +pub mod openrouter; +pub mod traits; + +pub use traits::Provider; + +use compatible::{AuthStyle, OpenAiCompatibleProvider}; + +/// Factory: create the right provider from config +#[allow(clippy::too_many_lines)] +pub fn create_provider(name: &str, api_key: Option<&str>) -> anyhow::Result> { + match name { + // ── Primary providers (custom implementations) ─────── + "openrouter" => Ok(Box::new(openrouter::OpenRouterProvider::new(api_key))), + "anthropic" => Ok(Box::new(anthropic::AnthropicProvider::new(api_key))), + "openai" => Ok(Box::new(openai::OpenAiProvider::new(api_key))), + "ollama" => Ok(Box::new(ollama::OllamaProvider::new( + api_key.filter(|k| !k.is_empty()), + ))), + + // ── OpenAI-compatible providers ────────────────────── + "venice" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Venice", "https://api.venice.ai", api_key, AuthStyle::Bearer, + ))), + "vercel" | "vercel-ai" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Vercel AI Gateway", "https://api.vercel.ai", api_key, AuthStyle::Bearer, + ))), + "cloudflare" | "cloudflare-ai" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Cloudflare AI Gateway", + "https://gateway.ai.cloudflare.com/v1", + api_key, + AuthStyle::Bearer, + ))), + "moonshot" | "kimi" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Moonshot", "https://api.moonshot.cn", api_key, AuthStyle::Bearer, + ))), + "synthetic" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Synthetic", "https://api.synthetic.com", api_key, AuthStyle::Bearer, + ))), + "opencode" | "opencode-zen" => Ok(Box::new(OpenAiCompatibleProvider::new( + "OpenCode Zen", "https://api.opencode.ai", api_key, AuthStyle::Bearer, + ))), + "zai" | "z.ai" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Z.AI", "https://api.z.ai", api_key, AuthStyle::Bearer, + ))), + "glm" | "zhipu" => Ok(Box::new(OpenAiCompatibleProvider::new( + "GLM", "https://open.bigmodel.cn/api/paas", api_key, AuthStyle::Bearer, + ))), + "minimax" => Ok(Box::new(OpenAiCompatibleProvider::new( + "MiniMax", "https://api.minimax.chat", api_key, AuthStyle::Bearer, + ))), + "bedrock" | "aws-bedrock" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Amazon Bedrock", + "https://bedrock-runtime.us-east-1.amazonaws.com", + api_key, + AuthStyle::Bearer, + ))), + "qianfan" | "baidu" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Qianfan", "https://aip.baidubce.com", api_key, AuthStyle::Bearer, + ))), + + // ── Extended ecosystem (community favorites) ───────── + "groq" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Groq", "https://api.groq.com/openai", api_key, AuthStyle::Bearer, + ))), + "mistral" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Mistral", "https://api.mistral.ai", api_key, AuthStyle::Bearer, + ))), + "xai" | "grok" => Ok(Box::new(OpenAiCompatibleProvider::new( + "xAI", "https://api.x.ai", api_key, AuthStyle::Bearer, + ))), + "deepseek" => Ok(Box::new(OpenAiCompatibleProvider::new( + "DeepSeek", "https://api.deepseek.com", api_key, AuthStyle::Bearer, + ))), + "together" | "together-ai" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Together AI", "https://api.together.xyz", api_key, AuthStyle::Bearer, + ))), + "fireworks" | "fireworks-ai" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Fireworks AI", "https://api.fireworks.ai/inference", api_key, AuthStyle::Bearer, + ))), + "perplexity" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Perplexity", "https://api.perplexity.ai", api_key, AuthStyle::Bearer, + ))), + "cohere" => Ok(Box::new(OpenAiCompatibleProvider::new( + "Cohere", "https://api.cohere.com/compatibility", api_key, AuthStyle::Bearer, + ))), + + _ => anyhow::bail!( + "Unknown provider: {name}. Run `zeroclaw integrations list -c ai` to see all available providers." + ), + } +} + +#[cfg(test)] +mod tests { + use super::*; + + // ── Primary providers ──────────────────────────────────── + + #[test] + fn factory_openrouter() { + assert!(create_provider("openrouter", Some("sk-test")).is_ok()); + assert!(create_provider("openrouter", None).is_ok()); + } + + #[test] + fn factory_anthropic() { + assert!(create_provider("anthropic", Some("sk-test")).is_ok()); + } + + #[test] + fn factory_openai() { + assert!(create_provider("openai", Some("sk-test")).is_ok()); + } + + #[test] + fn factory_ollama() { + assert!(create_provider("ollama", None).is_ok()); + } + + // ── OpenAI-compatible providers ────────────────────────── + + #[test] + fn factory_venice() { + assert!(create_provider("venice", Some("vn-key")).is_ok()); + } + + #[test] + fn factory_vercel() { + assert!(create_provider("vercel", Some("key")).is_ok()); + assert!(create_provider("vercel-ai", Some("key")).is_ok()); + } + + #[test] + fn factory_cloudflare() { + assert!(create_provider("cloudflare", Some("key")).is_ok()); + assert!(create_provider("cloudflare-ai", Some("key")).is_ok()); + } + + #[test] + fn factory_moonshot() { + assert!(create_provider("moonshot", Some("key")).is_ok()); + assert!(create_provider("kimi", Some("key")).is_ok()); + } + + #[test] + fn factory_synthetic() { + assert!(create_provider("synthetic", Some("key")).is_ok()); + } + + #[test] + fn factory_opencode() { + assert!(create_provider("opencode", Some("key")).is_ok()); + assert!(create_provider("opencode-zen", Some("key")).is_ok()); + } + + #[test] + fn factory_zai() { + assert!(create_provider("zai", Some("key")).is_ok()); + assert!(create_provider("z.ai", Some("key")).is_ok()); + } + + #[test] + fn factory_glm() { + assert!(create_provider("glm", Some("key")).is_ok()); + assert!(create_provider("zhipu", Some("key")).is_ok()); + } + + #[test] + fn factory_minimax() { + assert!(create_provider("minimax", Some("key")).is_ok()); + } + + #[test] + fn factory_bedrock() { + assert!(create_provider("bedrock", Some("key")).is_ok()); + assert!(create_provider("aws-bedrock", Some("key")).is_ok()); + } + + #[test] + fn factory_qianfan() { + assert!(create_provider("qianfan", Some("key")).is_ok()); + assert!(create_provider("baidu", Some("key")).is_ok()); + } + + // ── Extended ecosystem ─────────────────────────────────── + + #[test] + fn factory_groq() { + assert!(create_provider("groq", Some("key")).is_ok()); + } + + #[test] + fn factory_mistral() { + assert!(create_provider("mistral", Some("key")).is_ok()); + } + + #[test] + fn factory_xai() { + assert!(create_provider("xai", Some("key")).is_ok()); + assert!(create_provider("grok", Some("key")).is_ok()); + } + + #[test] + fn factory_deepseek() { + assert!(create_provider("deepseek", Some("key")).is_ok()); + } + + #[test] + fn factory_together() { + assert!(create_provider("together", Some("key")).is_ok()); + assert!(create_provider("together-ai", Some("key")).is_ok()); + } + + #[test] + fn factory_fireworks() { + assert!(create_provider("fireworks", Some("key")).is_ok()); + assert!(create_provider("fireworks-ai", Some("key")).is_ok()); + } + + #[test] + fn factory_perplexity() { + assert!(create_provider("perplexity", Some("key")).is_ok()); + } + + #[test] + fn factory_cohere() { + assert!(create_provider("cohere", Some("key")).is_ok()); + } + + // ── Error cases ────────────────────────────────────────── + + #[test] + fn factory_unknown_provider_errors() { + let p = create_provider("nonexistent", None); + assert!(p.is_err()); + let msg = p.err().unwrap().to_string(); + assert!(msg.contains("Unknown provider")); + assert!(msg.contains("nonexistent")); + } + + #[test] + fn factory_empty_name_errors() { + assert!(create_provider("", None).is_err()); + } + + #[test] + fn factory_all_providers_create_successfully() { + let providers = [ + "openrouter", "anthropic", "openai", "ollama", + "venice", "vercel", "cloudflare", "moonshot", "synthetic", + "opencode", "zai", "glm", "minimax", "bedrock", "qianfan", + "groq", "mistral", "xai", "deepseek", "together", + "fireworks", "perplexity", "cohere", + ]; + for name in providers { + assert!( + create_provider(name, Some("test-key")).is_ok(), + "Provider '{name}' should create successfully" + ); + } + } +} diff --git a/src/providers/ollama.rs b/src/providers/ollama.rs new file mode 100644 index 0000000..232858e --- /dev/null +++ b/src/providers/ollama.rs @@ -0,0 +1,177 @@ +use crate::providers::traits::Provider; +use async_trait::async_trait; +use reqwest::Client; +use serde::{Deserialize, Serialize}; + +pub struct OllamaProvider { + base_url: String, + client: Client, +} + +#[derive(Debug, Serialize)] +struct ChatRequest { + model: String, + messages: Vec, + stream: bool, + options: Options, +} + +#[derive(Debug, Serialize)] +struct Message { + role: String, + content: String, +} + +#[derive(Debug, Serialize)] +struct Options { + temperature: f64, +} + +#[derive(Debug, Deserialize)] +struct ChatResponse { + message: ResponseMessage, +} + +#[derive(Debug, Deserialize)] +struct ResponseMessage { + content: String, +} + +impl OllamaProvider { + pub fn new(base_url: Option<&str>) -> Self { + Self { + base_url: base_url + .unwrap_or("http://localhost:11434") + .trim_end_matches('/') + .to_string(), + client: Client::new(), + } + } +} + +#[async_trait] +impl Provider for OllamaProvider { + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + let mut messages = Vec::new(); + + if let Some(sys) = system_prompt { + messages.push(Message { + role: "system".to_string(), + content: sys.to_string(), + }); + } + + messages.push(Message { + role: "user".to_string(), + content: message.to_string(), + }); + + let request = ChatRequest { + model: model.to_string(), + messages, + stream: false, + options: Options { temperature }, + }; + + let url = format!("{}/api/chat", self.base_url); + + let response = self.client.post(&url).json(&request).send().await?; + + if !response.status().is_success() { + let error = response.text().await?; + anyhow::bail!("Ollama error: {error}. Is Ollama running? (brew install ollama && ollama serve)"); + } + + let chat_response: ChatResponse = response.json().await?; + Ok(chat_response.message.content) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn default_url() { + let p = OllamaProvider::new(None); + assert_eq!(p.base_url, "http://localhost:11434"); + } + + #[test] + fn custom_url_trailing_slash() { + let p = OllamaProvider::new(Some("http://192.168.1.100:11434/")); + assert_eq!(p.base_url, "http://192.168.1.100:11434"); + } + + #[test] + fn custom_url_no_trailing_slash() { + let p = OllamaProvider::new(Some("http://myserver:11434")); + assert_eq!(p.base_url, "http://myserver:11434"); + } + + #[test] + fn empty_url_uses_empty() { + let p = OllamaProvider::new(Some("")); + assert_eq!(p.base_url, ""); + } + + #[test] + fn request_serializes_with_system() { + let req = ChatRequest { + model: "llama3".to_string(), + messages: vec![ + Message { role: "system".to_string(), content: "You are ZeroClaw".to_string() }, + Message { role: "user".to_string(), content: "hello".to_string() }, + ], + stream: false, + options: Options { temperature: 0.7 }, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(json.contains("\"stream\":false")); + assert!(json.contains("llama3")); + assert!(json.contains("system")); + assert!(json.contains("\"temperature\":0.7")); + } + + #[test] + fn request_serializes_without_system() { + let req = ChatRequest { + model: "mistral".to_string(), + messages: vec![ + Message { role: "user".to_string(), content: "test".to_string() }, + ], + stream: false, + options: Options { temperature: 0.0 }, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(!json.contains("\"role\":\"system\"")); + assert!(json.contains("mistral")); + } + + #[test] + fn response_deserializes() { + let json = r#"{"message":{"role":"assistant","content":"Hello from Ollama!"}}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.message.content, "Hello from Ollama!"); + } + + #[test] + fn response_with_empty_content() { + let json = r#"{"message":{"role":"assistant","content":""}}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert!(resp.message.content.is_empty()); + } + + #[test] + fn response_with_multiline() { + let json = r#"{"message":{"role":"assistant","content":"line1\nline2\nline3"}}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert!(resp.message.content.contains("line1")); + } +} diff --git a/src/providers/openai.rs b/src/providers/openai.rs new file mode 100644 index 0000000..86249d7 --- /dev/null +++ b/src/providers/openai.rs @@ -0,0 +1,211 @@ +use crate::providers::traits::Provider; +use async_trait::async_trait; +use reqwest::Client; +use serde::{Deserialize, Serialize}; + +pub struct OpenAiProvider { + api_key: Option, + client: Client, +} + +#[derive(Debug, Serialize)] +struct ChatRequest { + model: String, + messages: Vec, + temperature: f64, +} + +#[derive(Debug, Serialize)] +struct Message { + role: String, + content: String, +} + +#[derive(Debug, Deserialize)] +struct ChatResponse { + choices: Vec, +} + +#[derive(Debug, Deserialize)] +struct Choice { + message: ResponseMessage, +} + +#[derive(Debug, Deserialize)] +struct ResponseMessage { + content: String, +} + +impl OpenAiProvider { + pub fn new(api_key: Option<&str>) -> Self { + Self { + api_key: api_key.map(ToString::to_string), + client: Client::new(), + } + } +} + +#[async_trait] +impl Provider for OpenAiProvider { + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + let api_key = self.api_key.as_ref().ok_or_else(|| { + anyhow::anyhow!("OpenAI API key not set. Set OPENAI_API_KEY or edit config.toml.") + })?; + + let mut messages = Vec::new(); + + if let Some(sys) = system_prompt { + messages.push(Message { + role: "system".to_string(), + content: sys.to_string(), + }); + } + + messages.push(Message { + role: "user".to_string(), + content: message.to_string(), + }); + + let request = ChatRequest { + model: model.to_string(), + messages, + temperature, + }; + + let response = self + .client + .post("https://api.openai.com/v1/chat/completions") + .header("Authorization", format!("Bearer {api_key}")) + .json(&request) + .send() + .await?; + + if !response.status().is_success() { + let error = response.text().await?; + anyhow::bail!("OpenAI API error: {error}"); + } + + let chat_response: ChatResponse = response.json().await?; + + chat_response + .choices + .into_iter() + .next() + .map(|c| c.message.content) + .ok_or_else(|| anyhow::anyhow!("No response from OpenAI")) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn creates_with_key() { + let p = OpenAiProvider::new(Some("sk-proj-abc123")); + assert_eq!(p.api_key.as_deref(), Some("sk-proj-abc123")); + } + + #[test] + fn creates_without_key() { + let p = OpenAiProvider::new(None); + assert!(p.api_key.is_none()); + } + + #[test] + fn creates_with_empty_key() { + let p = OpenAiProvider::new(Some("")); + assert_eq!(p.api_key.as_deref(), Some("")); + } + + #[tokio::test] + async fn chat_fails_without_key() { + let p = OpenAiProvider::new(None); + let result = p.chat_with_system(None, "hello", "gpt-4o", 0.7).await; + assert!(result.is_err()); + assert!(result.unwrap_err().to_string().contains("API key not set")); + } + + #[tokio::test] + async fn chat_with_system_fails_without_key() { + let p = OpenAiProvider::new(None); + let result = p + .chat_with_system(Some("You are ZeroClaw"), "test", "gpt-4o", 0.5) + .await; + assert!(result.is_err()); + } + + #[test] + fn request_serializes_with_system_message() { + let req = ChatRequest { + model: "gpt-4o".to_string(), + messages: vec![ + Message { role: "system".to_string(), content: "You are ZeroClaw".to_string() }, + Message { role: "user".to_string(), content: "hello".to_string() }, + ], + temperature: 0.7, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(json.contains("\"role\":\"system\"")); + assert!(json.contains("\"role\":\"user\"")); + assert!(json.contains("gpt-4o")); + } + + #[test] + fn request_serializes_without_system() { + let req = ChatRequest { + model: "gpt-4o".to_string(), + messages: vec![ + Message { role: "user".to_string(), content: "hello".to_string() }, + ], + temperature: 0.0, + }; + let json = serde_json::to_string(&req).unwrap(); + assert!(!json.contains("system")); + assert!(json.contains("\"temperature\":0.0")); + } + + #[test] + fn response_deserializes_single_choice() { + let json = r#"{"choices":[{"message":{"content":"Hi!"}}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.choices.len(), 1); + assert_eq!(resp.choices[0].message.content, "Hi!"); + } + + #[test] + fn response_deserializes_empty_choices() { + let json = r#"{"choices":[]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert!(resp.choices.is_empty()); + } + + #[test] + fn response_deserializes_multiple_choices() { + let json = r#"{"choices":[{"message":{"content":"A"}},{"message":{"content":"B"}}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.choices.len(), 2); + assert_eq!(resp.choices[0].message.content, "A"); + } + + #[test] + fn response_with_unicode() { + let json = r#"{"choices":[{"message":{"content":"こんにちは 🦀"}}]}"#; + let resp: ChatResponse = serde_json::from_str(json).unwrap(); + assert_eq!(resp.choices[0].message.content, "こんにちは 🦀"); + } + + #[test] + fn response_with_long_content() { + let long = "x".repeat(100_000); + let json = format!(r#"{{"choices":[{{"message":{{"content":"{long}"}}}}]}}"#); + let resp: ChatResponse = serde_json::from_str(&json).unwrap(); + assert_eq!(resp.choices[0].message.content.len(), 100_000); + } +} diff --git a/src/providers/openrouter.rs b/src/providers/openrouter.rs new file mode 100644 index 0000000..4e5bb78 --- /dev/null +++ b/src/providers/openrouter.rs @@ -0,0 +1,107 @@ +use crate::providers::traits::Provider; +use async_trait::async_trait; +use reqwest::Client; +use serde::{Deserialize, Serialize}; + +pub struct OpenRouterProvider { + api_key: Option, + client: Client, +} + +#[derive(Debug, Serialize)] +struct ChatRequest { + model: String, + messages: Vec, + temperature: f64, +} + +#[derive(Debug, Serialize)] +struct Message { + role: String, + content: String, +} + +#[derive(Debug, Deserialize)] +struct ChatResponse { + choices: Vec, +} + +#[derive(Debug, Deserialize)] +struct Choice { + message: ResponseMessage, +} + +#[derive(Debug, Deserialize)] +struct ResponseMessage { + content: String, +} + +impl OpenRouterProvider { + pub fn new(api_key: Option<&str>) -> Self { + Self { + api_key: api_key.map(ToString::to_string), + client: Client::new(), + } + } +} + +#[async_trait] +impl Provider for OpenRouterProvider { + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + let api_key = self.api_key.as_ref() + .ok_or_else(|| anyhow::anyhow!("OpenRouter API key not set. Run `zeroclaw onboard` or set OPENROUTER_API_KEY env var."))?; + + let mut messages = Vec::new(); + + if let Some(sys) = system_prompt { + messages.push(Message { + role: "system".to_string(), + content: sys.to_string(), + }); + } + + messages.push(Message { + role: "user".to_string(), + content: message.to_string(), + }); + + let request = ChatRequest { + model: model.to_string(), + messages, + temperature, + }; + + let response = self + .client + .post("https://openrouter.ai/api/v1/chat/completions") + .header("Authorization", format!("Bearer {api_key}")) + .header( + "HTTP-Referer", + "https://github.com/theonlyhennygod/zeroclaw", + ) + .header("X-Title", "ZeroClaw") + .json(&request) + .send() + .await?; + + if !response.status().is_success() { + let error = response.text().await?; + anyhow::bail!("OpenRouter API error: {error}"); + } + + let chat_response: ChatResponse = response.json().await?; + + chat_response + .choices + .into_iter() + .next() + .map(|c| c.message.content) + .ok_or_else(|| anyhow::anyhow!("No response from OpenRouter")) + } +} diff --git a/src/providers/traits.rs b/src/providers/traits.rs new file mode 100644 index 0000000..42419d5 --- /dev/null +++ b/src/providers/traits.rs @@ -0,0 +1,22 @@ +use async_trait::async_trait; + +#[async_trait] +pub trait Provider: Send + Sync { + async fn chat( + &self, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result { + self.chat_with_system(None, message, model, temperature) + .await + } + + async fn chat_with_system( + &self, + system_prompt: Option<&str>, + message: &str, + model: &str, + temperature: f64, + ) -> anyhow::Result; +} diff --git a/src/runtime/mod.rs b/src/runtime/mod.rs new file mode 100644 index 0000000..3a5a9be --- /dev/null +++ b/src/runtime/mod.rs @@ -0,0 +1,71 @@ +pub mod native; +pub mod traits; + +pub use native::NativeRuntime; +pub use traits::RuntimeAdapter; + +use crate::config::RuntimeConfig; + +/// Factory: create the right runtime from config +pub fn create_runtime(config: &RuntimeConfig) -> Box { + match config.kind.as_str() { + "native" | "docker" => Box::new(NativeRuntime::new()), + "cloudflare" => { + tracing::warn!("Cloudflare runtime not yet implemented, falling back to native"); + Box::new(NativeRuntime::new()) + } + _ => { + tracing::warn!("Unknown runtime '{}', falling back to native", config.kind); + Box::new(NativeRuntime::new()) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn factory_native() { + let cfg = RuntimeConfig { + kind: "native".into(), + }; + let rt = create_runtime(&cfg); + assert_eq!(rt.name(), "native"); + assert!(rt.has_shell_access()); + } + + #[test] + fn factory_docker_returns_native() { + let cfg = RuntimeConfig { + kind: "docker".into(), + }; + let rt = create_runtime(&cfg); + assert_eq!(rt.name(), "native"); + } + + #[test] + fn factory_cloudflare_falls_back() { + let cfg = RuntimeConfig { + kind: "cloudflare".into(), + }; + let rt = create_runtime(&cfg); + assert_eq!(rt.name(), "native"); + } + + #[test] + fn factory_unknown_falls_back() { + let cfg = RuntimeConfig { + kind: "wasm-edge-unknown".into(), + }; + let rt = create_runtime(&cfg); + assert_eq!(rt.name(), "native"); + } + + #[test] + fn factory_empty_falls_back() { + let cfg = RuntimeConfig { kind: "".into() }; + let rt = create_runtime(&cfg); + assert_eq!(rt.name(), "native"); + } +} diff --git a/src/runtime/native.rs b/src/runtime/native.rs new file mode 100644 index 0000000..4b0ef3c --- /dev/null +++ b/src/runtime/native.rs @@ -0,0 +1,72 @@ +use super::traits::RuntimeAdapter; +use std::path::PathBuf; + +/// Native runtime — full access, runs on Mac/Linux/Docker/Raspberry Pi +pub struct NativeRuntime; + +impl NativeRuntime { + pub fn new() -> Self { + Self + } +} + +impl RuntimeAdapter for NativeRuntime { + fn name(&self) -> &str { + "native" + } + + fn has_shell_access(&self) -> bool { + true + } + + fn has_filesystem_access(&self) -> bool { + true + } + + fn storage_path(&self) -> PathBuf { + directories::UserDirs::new().map_or_else( + || PathBuf::from(".zeroclaw"), + |u| u.home_dir().join(".zeroclaw"), + ) + } + + fn supports_long_running(&self) -> bool { + true + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn native_name() { + assert_eq!(NativeRuntime::new().name(), "native"); + } + + #[test] + fn native_has_shell_access() { + assert!(NativeRuntime::new().has_shell_access()); + } + + #[test] + fn native_has_filesystem_access() { + assert!(NativeRuntime::new().has_filesystem_access()); + } + + #[test] + fn native_supports_long_running() { + assert!(NativeRuntime::new().supports_long_running()); + } + + #[test] + fn native_memory_budget_unlimited() { + assert_eq!(NativeRuntime::new().memory_budget(), 0); + } + + #[test] + fn native_storage_path_contains_zeroclaw() { + let path = NativeRuntime::new().storage_path(); + assert!(path.to_string_lossy().contains("zeroclaw")); + } +} diff --git a/src/runtime/traits.rs b/src/runtime/traits.rs new file mode 100644 index 0000000..cbff5b1 --- /dev/null +++ b/src/runtime/traits.rs @@ -0,0 +1,25 @@ +use std::path::PathBuf; + +/// Runtime adapter — abstracts platform differences so the same agent +/// code runs on native, Docker, Cloudflare Workers, Raspberry Pi, etc. +pub trait RuntimeAdapter: Send + Sync { + /// Human-readable runtime name + fn name(&self) -> &str; + + /// Whether this runtime supports shell access + fn has_shell_access(&self) -> bool; + + /// Whether this runtime supports filesystem access + fn has_filesystem_access(&self) -> bool; + + /// Base storage path for this runtime + fn storage_path(&self) -> PathBuf; + + /// Whether long-running processes (gateway, heartbeat) are supported + fn supports_long_running(&self) -> bool; + + /// Maximum memory budget in bytes (0 = unlimited) + fn memory_budget(&self) -> u64 { + 0 + } +} diff --git a/src/security/mod.rs b/src/security/mod.rs new file mode 100644 index 0000000..527bae8 --- /dev/null +++ b/src/security/mod.rs @@ -0,0 +1,3 @@ +pub mod policy; + +pub use policy::{AutonomyLevel, SecurityPolicy}; diff --git a/src/security/policy.rs b/src/security/policy.rs new file mode 100644 index 0000000..845072f --- /dev/null +++ b/src/security/policy.rs @@ -0,0 +1,365 @@ +use serde::{Deserialize, Serialize}; +use std::path::{Path, PathBuf}; + +/// How much autonomy the agent has +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum AutonomyLevel { + /// Read-only: can observe but not act + ReadOnly, + /// Supervised: acts but requires approval for risky operations + Supervised, + /// Full: autonomous execution within policy bounds + Full, +} + +impl Default for AutonomyLevel { + fn default() -> Self { + Self::Supervised + } +} + +/// Security policy enforced on all tool executions +#[derive(Debug, Clone)] +pub struct SecurityPolicy { + pub autonomy: AutonomyLevel, + pub workspace_dir: PathBuf, + pub workspace_only: bool, + pub allowed_commands: Vec, + pub forbidden_paths: Vec, + pub max_actions_per_hour: u32, + pub max_cost_per_day_cents: u32, +} + +impl Default for SecurityPolicy { + fn default() -> Self { + Self { + autonomy: AutonomyLevel::Supervised, + workspace_dir: PathBuf::from("."), + workspace_only: true, + allowed_commands: vec![ + "git".into(), + "npm".into(), + "cargo".into(), + "ls".into(), + "cat".into(), + "grep".into(), + "find".into(), + "echo".into(), + "pwd".into(), + "wc".into(), + "head".into(), + "tail".into(), + ], + forbidden_paths: vec![ + "/etc".into(), + "/root".into(), + "~/.ssh".into(), + "~/.gnupg".into(), + "/var/run".into(), + ], + max_actions_per_hour: 20, + max_cost_per_day_cents: 500, + } + } +} + +impl SecurityPolicy { + /// Check if a shell command is allowed + pub fn is_command_allowed(&self, command: &str) -> bool { + if self.autonomy == AutonomyLevel::ReadOnly { + return false; + } + + // Extract the base command (first word) + let base_cmd = command + .split_whitespace() + .next() + .unwrap_or("") + .rsplit('/') + .next() + .unwrap_or(""); + + self.allowed_commands + .iter() + .any(|allowed| allowed == base_cmd) + } + + /// Check if a file path is allowed (no path traversal, within workspace) + pub fn is_path_allowed(&self, path: &str) -> bool { + // Block obvious traversal attempts + if path.contains("..") { + return false; + } + + // Block absolute paths when workspace_only is set + if self.workspace_only && Path::new(path).is_absolute() { + return false; + } + + // Block forbidden paths + for forbidden in &self.forbidden_paths { + if path.starts_with(forbidden.as_str()) { + return false; + } + } + + true + } + + /// Check if autonomy level permits any action at all + pub fn can_act(&self) -> bool { + self.autonomy != AutonomyLevel::ReadOnly + } + + /// Build from config sections + pub fn from_config( + autonomy_config: &crate::config::AutonomyConfig, + workspace_dir: &Path, + ) -> Self { + Self { + autonomy: autonomy_config.level, + workspace_dir: workspace_dir.to_path_buf(), + workspace_only: autonomy_config.workspace_only, + allowed_commands: autonomy_config.allowed_commands.clone(), + forbidden_paths: autonomy_config.forbidden_paths.clone(), + max_actions_per_hour: autonomy_config.max_actions_per_hour, + max_cost_per_day_cents: autonomy_config.max_cost_per_day_cents, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + fn default_policy() -> SecurityPolicy { + SecurityPolicy::default() + } + + fn readonly_policy() -> SecurityPolicy { + SecurityPolicy { + autonomy: AutonomyLevel::ReadOnly, + ..SecurityPolicy::default() + } + } + + fn full_policy() -> SecurityPolicy { + SecurityPolicy { + autonomy: AutonomyLevel::Full, + ..SecurityPolicy::default() + } + } + + // ── AutonomyLevel ──────────────────────────────────────── + + #[test] + fn autonomy_default_is_supervised() { + assert_eq!(AutonomyLevel::default(), AutonomyLevel::Supervised); + } + + #[test] + fn autonomy_serde_roundtrip() { + let json = serde_json::to_string(&AutonomyLevel::Full).unwrap(); + assert_eq!(json, "\"full\""); + let parsed: AutonomyLevel = serde_json::from_str("\"readonly\"").unwrap(); + assert_eq!(parsed, AutonomyLevel::ReadOnly); + let parsed2: AutonomyLevel = serde_json::from_str("\"supervised\"").unwrap(); + assert_eq!(parsed2, AutonomyLevel::Supervised); + } + + #[test] + fn can_act_readonly_false() { + assert!(!readonly_policy().can_act()); + } + + #[test] + fn can_act_supervised_true() { + assert!(default_policy().can_act()); + } + + #[test] + fn can_act_full_true() { + assert!(full_policy().can_act()); + } + + // ── is_command_allowed ─────────────────────────────────── + + #[test] + fn allowed_commands_basic() { + let p = default_policy(); + assert!(p.is_command_allowed("ls")); + assert!(p.is_command_allowed("git status")); + assert!(p.is_command_allowed("cargo build --release")); + assert!(p.is_command_allowed("cat file.txt")); + assert!(p.is_command_allowed("grep -r pattern .")); + } + + #[test] + fn blocked_commands_basic() { + let p = default_policy(); + assert!(!p.is_command_allowed("rm -rf /")); + assert!(!p.is_command_allowed("sudo apt install")); + assert!(!p.is_command_allowed("curl http://evil.com")); + assert!(!p.is_command_allowed("wget http://evil.com")); + assert!(!p.is_command_allowed("python3 exploit.py")); + assert!(!p.is_command_allowed("node malicious.js")); + } + + #[test] + fn readonly_blocks_all_commands() { + let p = readonly_policy(); + assert!(!p.is_command_allowed("ls")); + assert!(!p.is_command_allowed("cat file.txt")); + assert!(!p.is_command_allowed("echo hello")); + } + + #[test] + fn full_autonomy_still_uses_allowlist() { + let p = full_policy(); + assert!(p.is_command_allowed("ls")); + assert!(!p.is_command_allowed("rm -rf /")); + } + + #[test] + fn command_with_absolute_path_extracts_basename() { + let p = default_policy(); + assert!(p.is_command_allowed("/usr/bin/git status")); + assert!(p.is_command_allowed("/bin/ls -la")); + } + + #[test] + fn empty_command_blocked() { + let p = default_policy(); + assert!(!p.is_command_allowed("")); + assert!(!p.is_command_allowed(" ")); + } + + #[test] + fn command_with_pipes_uses_first_word() { + let p = default_policy(); + assert!(p.is_command_allowed("ls | grep foo")); + assert!(p.is_command_allowed("cat file.txt | wc -l")); + } + + #[test] + fn custom_allowlist() { + let p = SecurityPolicy { + allowed_commands: vec!["docker".into(), "kubectl".into()], + ..SecurityPolicy::default() + }; + assert!(p.is_command_allowed("docker ps")); + assert!(p.is_command_allowed("kubectl get pods")); + assert!(!p.is_command_allowed("ls")); + assert!(!p.is_command_allowed("git status")); + } + + #[test] + fn empty_allowlist_blocks_everything() { + let p = SecurityPolicy { + allowed_commands: vec![], + ..SecurityPolicy::default() + }; + assert!(!p.is_command_allowed("ls")); + assert!(!p.is_command_allowed("echo hello")); + } + + // ── is_path_allowed ───────────────────────────────────── + + #[test] + fn relative_paths_allowed() { + let p = default_policy(); + assert!(p.is_path_allowed("file.txt")); + assert!(p.is_path_allowed("src/main.rs")); + assert!(p.is_path_allowed("deep/nested/dir/file.txt")); + } + + #[test] + fn path_traversal_blocked() { + let p = default_policy(); + assert!(!p.is_path_allowed("../etc/passwd")); + assert!(!p.is_path_allowed("../../root/.ssh/id_rsa")); + assert!(!p.is_path_allowed("foo/../../../etc/shadow")); + assert!(!p.is_path_allowed("..")); + } + + #[test] + fn absolute_paths_blocked_when_workspace_only() { + let p = default_policy(); + assert!(!p.is_path_allowed("/etc/passwd")); + assert!(!p.is_path_allowed("/root/.ssh/id_rsa")); + assert!(!p.is_path_allowed("/tmp/file.txt")); + } + + #[test] + fn absolute_paths_allowed_when_not_workspace_only() { + let p = SecurityPolicy { + workspace_only: false, + forbidden_paths: vec![], + ..SecurityPolicy::default() + }; + assert!(p.is_path_allowed("/tmp/file.txt")); + } + + #[test] + fn forbidden_paths_blocked() { + let p = SecurityPolicy { + workspace_only: false, + ..SecurityPolicy::default() + }; + assert!(!p.is_path_allowed("/etc/passwd")); + assert!(!p.is_path_allowed("/root/.bashrc")); + assert!(!p.is_path_allowed("~/.ssh/id_rsa")); + assert!(!p.is_path_allowed("~/.gnupg/pubring.kbx")); + } + + #[test] + fn empty_path_allowed() { + let p = default_policy(); + assert!(p.is_path_allowed("")); + } + + #[test] + fn dotfile_in_workspace_allowed() { + let p = default_policy(); + assert!(p.is_path_allowed(".gitignore")); + assert!(p.is_path_allowed(".env")); + } + + // ── from_config ───────────────────────────────────────── + + #[test] + fn from_config_maps_all_fields() { + let autonomy_config = crate::config::AutonomyConfig { + level: AutonomyLevel::Full, + workspace_only: false, + allowed_commands: vec!["docker".into()], + forbidden_paths: vec!["/secret".into()], + max_actions_per_hour: 100, + max_cost_per_day_cents: 1000, + }; + let workspace = PathBuf::from("/tmp/test-workspace"); + let policy = SecurityPolicy::from_config(&autonomy_config, &workspace); + + assert_eq!(policy.autonomy, AutonomyLevel::Full); + assert!(!policy.workspace_only); + assert_eq!(policy.allowed_commands, vec!["docker"]); + assert_eq!(policy.forbidden_paths, vec!["/secret"]); + assert_eq!(policy.max_actions_per_hour, 100); + assert_eq!(policy.max_cost_per_day_cents, 1000); + assert_eq!(policy.workspace_dir, PathBuf::from("/tmp/test-workspace")); + } + + // ── Default policy ────────────────────────────────────── + + #[test] + fn default_policy_has_sane_values() { + let p = SecurityPolicy::default(); + assert_eq!(p.autonomy, AutonomyLevel::Supervised); + assert!(p.workspace_only); + assert!(!p.allowed_commands.is_empty()); + assert!(!p.forbidden_paths.is_empty()); + assert!(p.max_actions_per_hour > 0); + assert!(p.max_cost_per_day_cents > 0); + } +} diff --git a/src/skills/mod.rs b/src/skills/mod.rs new file mode 100644 index 0000000..69a6137 --- /dev/null +++ b/src/skills/mod.rs @@ -0,0 +1,615 @@ +use anyhow::Result; +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; +use std::path::{Path, PathBuf}; + +/// A skill is a user-defined or community-built capability. +/// Skills live in `~/.zeroclaw/workspace/skills//SKILL.md` +/// and can include tool definitions, prompts, and automation scripts. +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Skill { + pub name: String, + pub description: String, + pub version: String, + #[serde(default)] + pub author: Option, + #[serde(default)] + pub tags: Vec, + #[serde(default)] + pub tools: Vec, + #[serde(default)] + pub prompts: Vec, +} + +/// A tool defined by a skill (shell command, HTTP call, etc.) +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SkillTool { + pub name: String, + pub description: String, + /// "shell", "http", "script" + pub kind: String, + /// The command/URL/script to execute + pub command: String, + #[serde(default)] + pub args: HashMap, +} + +/// Skill manifest parsed from SKILL.toml +#[derive(Debug, Clone, Serialize, Deserialize)] +struct SkillManifest { + skill: SkillMeta, + #[serde(default)] + tools: Vec, + #[serde(default)] + prompts: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +struct SkillMeta { + name: String, + description: String, + #[serde(default = "default_version")] + version: String, + #[serde(default)] + author: Option, + #[serde(default)] + tags: Vec, +} + +fn default_version() -> String { + "0.1.0".to_string() +} + +/// Load all skills from the workspace skills directory +pub fn load_skills(workspace_dir: &Path) -> Vec { + let skills_dir = workspace_dir.join("skills"); + if !skills_dir.exists() { + return Vec::new(); + } + + let mut skills = Vec::new(); + + let Ok(entries) = std::fs::read_dir(&skills_dir) else { + return skills; + }; + + for entry in entries.flatten() { + let path = entry.path(); + if !path.is_dir() { + continue; + } + + // Try SKILL.toml first, then SKILL.md + let manifest_path = path.join("SKILL.toml"); + let md_path = path.join("SKILL.md"); + + if manifest_path.exists() { + if let Ok(skill) = load_skill_toml(&manifest_path) { + skills.push(skill); + } + } else if md_path.exists() { + if let Ok(skill) = load_skill_md(&md_path, &path) { + skills.push(skill); + } + } + } + + skills +} + +/// Load a skill from a SKILL.toml manifest +fn load_skill_toml(path: &Path) -> Result { + let content = std::fs::read_to_string(path)?; + let manifest: SkillManifest = toml::from_str(&content)?; + + Ok(Skill { + name: manifest.skill.name, + description: manifest.skill.description, + version: manifest.skill.version, + author: manifest.skill.author, + tags: manifest.skill.tags, + tools: manifest.tools, + prompts: manifest.prompts, + }) +} + +/// Load a skill from a SKILL.md file (simpler format) +fn load_skill_md(path: &Path, dir: &Path) -> Result { + let content = std::fs::read_to_string(path)?; + let name = dir + .file_name() + .and_then(|n| n.to_str()) + .unwrap_or("unknown") + .to_string(); + + // Extract description from first non-heading line + let description = content + .lines() + .find(|l| !l.starts_with('#') && !l.trim().is_empty()) + .unwrap_or("No description") + .trim() + .to_string(); + + Ok(Skill { + name, + description, + version: "0.1.0".to_string(), + author: None, + tags: Vec::new(), + tools: Vec::new(), + prompts: vec![content], + }) +} + +/// Build a system prompt addition from all loaded skills +pub fn skills_to_prompt(skills: &[Skill]) -> String { + use std::fmt::Write; + + if skills.is_empty() { + return String::new(); + } + + let mut prompt = String::from("\n## Active Skills\n\n"); + + for skill in skills { + let _ = writeln!(prompt, "### {} (v{})", skill.name, skill.version); + let _ = writeln!(prompt, "{}", skill.description); + + if !skill.tools.is_empty() { + prompt.push_str("Tools:\n"); + for tool in &skill.tools { + let _ = writeln!(prompt, "- **{}**: {} ({})", tool.name, tool.description, tool.kind); + } + } + + for p in &skill.prompts { + prompt.push_str(p); + prompt.push('\n'); + } + + prompt.push('\n'); + } + + prompt +} + +/// Get the skills directory path +pub fn skills_dir(workspace_dir: &Path) -> PathBuf { + workspace_dir.join("skills") +} + +/// Initialize the skills directory with a README +pub fn init_skills_dir(workspace_dir: &Path) -> Result<()> { + let dir = skills_dir(workspace_dir); + std::fs::create_dir_all(&dir)?; + + let readme = dir.join("README.md"); + if !readme.exists() { + std::fs::write( + &readme, + "# ZeroClaw Skills\n\n\ + Each subdirectory is a skill. Create a `SKILL.toml` or `SKILL.md` file inside.\n\n\ + ## SKILL.toml format\n\n\ + ```toml\n\ + [skill]\n\ + name = \"my-skill\"\n\ + description = \"What this skill does\"\n\ + version = \"0.1.0\"\n\ + author = \"your-name\"\n\ + tags = [\"productivity\", \"automation\"]\n\n\ + [[tools]]\n\ + name = \"my_tool\"\n\ + description = \"What this tool does\"\n\ + kind = \"shell\"\n\ + command = \"echo hello\"\n\ + ```\n\n\ + ## SKILL.md format (simpler)\n\n\ + Just write a markdown file with instructions for the agent.\n\ + The agent will read it and follow the instructions.\n\n\ + ## Installing community skills\n\n\ + ```bash\n\ + zeroclaw skills install \n\ + zeroclaw skills list\n\ + ```\n", + )?; + } + + Ok(()) +} + +/// Handle the `skills` CLI command +pub fn handle_command(command: super::SkillCommands, workspace_dir: &Path) -> Result<()> { + match command { + super::SkillCommands::List => { + let skills = load_skills(workspace_dir); + if skills.is_empty() { + println!("No skills installed."); + println!(); + println!(" Create one: mkdir -p ~/.zeroclaw/workspace/skills/my-skill"); + println!(" echo '# My Skill' > ~/.zeroclaw/workspace/skills/my-skill/SKILL.md"); + println!(); + println!(" Or install: zeroclaw skills install "); + } else { + println!("Installed skills ({}):", skills.len()); + println!(); + for skill in &skills { + println!( + " {} {} — {}", + console::style(&skill.name).white().bold(), + console::style(format!("v{}", skill.version)).dim(), + skill.description + ); + if !skill.tools.is_empty() { + println!( + " Tools: {}", + skill.tools.iter().map(|t| t.name.as_str()).collect::>().join(", ") + ); + } + if !skill.tags.is_empty() { + println!( + " Tags: {}", + skill.tags.join(", ") + ); + } + } + } + println!(); + Ok(()) + } + super::SkillCommands::Install { source } => { + println!("Installing skill from: {source}"); + + let skills_path = skills_dir(workspace_dir); + std::fs::create_dir_all(&skills_path)?; + + if source.starts_with("http") || source.contains("github.com") { + // Git clone + let output = std::process::Command::new("git") + .args(["clone", "--depth", "1", &source]) + .current_dir(&skills_path) + .output()?; + + if output.status.success() { + println!(" {} Skill installed successfully!", console::style("✓").green().bold()); + println!(" Restart `zeroclaw channel start` to activate."); + } else { + let stderr = String::from_utf8_lossy(&output.stderr); + anyhow::bail!("Git clone failed: {stderr}"); + } + } else { + // Local path — symlink or copy + let src = PathBuf::from(&source); + if !src.exists() { + anyhow::bail!("Source path does not exist: {source}"); + } + let name = src.file_name().unwrap_or_default(); + let dest = skills_path.join(name); + + #[cfg(unix)] + std::os::unix::fs::symlink(&src, &dest)?; + #[cfg(not(unix))] + { + // On non-unix, copy the directory + anyhow::bail!("Symlink not supported on this platform. Copy the skill directory manually."); + } + + println!(" {} Skill linked: {}", console::style("✓").green().bold(), dest.display()); + } + + Ok(()) + } + super::SkillCommands::Remove { name } => { + let skill_path = skills_dir(workspace_dir).join(&name); + if !skill_path.exists() { + anyhow::bail!("Skill not found: {name}"); + } + + std::fs::remove_dir_all(&skill_path)?; + println!(" {} Skill '{}' removed.", console::style("✓").green().bold(), name); + Ok(()) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::fs; + + #[test] + fn load_empty_skills_dir() { + let dir = tempfile::tempdir().unwrap(); + let skills = load_skills(dir.path()); + assert!(skills.is_empty()); + } + + #[test] + fn load_skill_from_toml() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("test-skill"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write( + skill_dir.join("SKILL.toml"), + r#" +[skill] +name = "test-skill" +description = "A test skill" +version = "1.0.0" +tags = ["test"] + +[[tools]] +name = "hello" +description = "Says hello" +kind = "shell" +command = "echo hello" +"#, + ) + .unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + assert_eq!(skills[0].name, "test-skill"); + assert_eq!(skills[0].tools.len(), 1); + assert_eq!(skills[0].tools[0].name, "hello"); + } + + #[test] + fn load_skill_from_md() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("md-skill"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write( + skill_dir.join("SKILL.md"), + "# My Skill\nThis skill does cool things.\n", + ) + .unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + assert_eq!(skills[0].name, "md-skill"); + assert!(skills[0].description.contains("cool things")); + } + + #[test] + fn skills_to_prompt_empty() { + let prompt = skills_to_prompt(&[]); + assert!(prompt.is_empty()); + } + + #[test] + fn skills_to_prompt_with_skills() { + let skills = vec![Skill { + name: "test".to_string(), + description: "A test".to_string(), + version: "1.0.0".to_string(), + author: None, + tags: vec![], + tools: vec![], + prompts: vec!["Do the thing.".to_string()], + }]; + let prompt = skills_to_prompt(&skills); + assert!(prompt.contains("test")); + assert!(prompt.contains("Do the thing")); + } + + #[test] + fn init_skills_creates_readme() { + let dir = tempfile::tempdir().unwrap(); + init_skills_dir(dir.path()).unwrap(); + assert!(dir.path().join("skills").join("README.md").exists()); + } + + #[test] + fn init_skills_idempotent() { + let dir = tempfile::tempdir().unwrap(); + init_skills_dir(dir.path()).unwrap(); + init_skills_dir(dir.path()).unwrap(); // second call should not fail + assert!(dir.path().join("skills").join("README.md").exists()); + } + + #[test] + fn load_nonexistent_dir() { + let dir = tempfile::tempdir().unwrap(); + let fake = dir.path().join("nonexistent"); + let skills = load_skills(&fake); + assert!(skills.is_empty()); + } + + #[test] + fn load_ignores_files_in_skills_dir() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + fs::create_dir_all(&skills_dir).unwrap(); + // A file, not a directory — should be ignored + fs::write(skills_dir.join("not-a-skill.txt"), "hello").unwrap(); + let skills = load_skills(dir.path()); + assert!(skills.is_empty()); + } + + #[test] + fn load_ignores_dir_without_manifest() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let empty_skill = skills_dir.join("empty-skill"); + fs::create_dir_all(&empty_skill).unwrap(); + // Directory exists but no SKILL.toml or SKILL.md + let skills = load_skills(dir.path()); + assert!(skills.is_empty()); + } + + #[test] + fn load_multiple_skills() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + + for name in ["alpha", "beta", "gamma"] { + let skill_dir = skills_dir.join(name); + fs::create_dir_all(&skill_dir).unwrap(); + fs::write( + skill_dir.join("SKILL.md"), + format!("# {name}\nSkill {name} description.\n"), + ) + .unwrap(); + } + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 3); + } + + #[test] + fn toml_skill_with_multiple_tools() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("multi-tool"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write( + skill_dir.join("SKILL.toml"), + r#" +[skill] +name = "multi-tool" +description = "Has many tools" +version = "2.0.0" +author = "tester" +tags = ["automation", "devops"] + +[[tools]] +name = "build" +description = "Build the project" +kind = "shell" +command = "cargo build" + +[[tools]] +name = "test" +description = "Run tests" +kind = "shell" +command = "cargo test" + +[[tools]] +name = "deploy" +description = "Deploy via HTTP" +kind = "http" +command = "https://api.example.com/deploy" +"#, + ) + .unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + let s = &skills[0]; + assert_eq!(s.name, "multi-tool"); + assert_eq!(s.version, "2.0.0"); + assert_eq!(s.author.as_deref(), Some("tester")); + assert_eq!(s.tags, vec!["automation", "devops"]); + assert_eq!(s.tools.len(), 3); + assert_eq!(s.tools[0].name, "build"); + assert_eq!(s.tools[1].kind, "shell"); + assert_eq!(s.tools[2].kind, "http"); + } + + #[test] + fn toml_skill_minimal() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("minimal"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write( + skill_dir.join("SKILL.toml"), + r#" +[skill] +name = "minimal" +description = "Bare minimum" +"#, + ) + .unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + assert_eq!(skills[0].version, "0.1.0"); // default version + assert!(skills[0].author.is_none()); + assert!(skills[0].tags.is_empty()); + assert!(skills[0].tools.is_empty()); + } + + #[test] + fn toml_skill_invalid_syntax_skipped() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("broken"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write(skill_dir.join("SKILL.toml"), "this is not valid toml {{{{").unwrap(); + + let skills = load_skills(dir.path()); + assert!(skills.is_empty()); // broken skill is skipped + } + + #[test] + fn md_skill_heading_only() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("heading-only"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write(skill_dir.join("SKILL.md"), "# Just a Heading\n").unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + assert_eq!(skills[0].description, "No description"); + } + + #[test] + fn skills_to_prompt_includes_tools() { + let skills = vec![Skill { + name: "weather".to_string(), + description: "Get weather".to_string(), + version: "1.0.0".to_string(), + author: None, + tags: vec![], + tools: vec![SkillTool { + name: "get_weather".to_string(), + description: "Fetch forecast".to_string(), + kind: "shell".to_string(), + command: "curl wttr.in".to_string(), + args: HashMap::new(), + }], + prompts: vec![], + }]; + let prompt = skills_to_prompt(&skills); + assert!(prompt.contains("weather")); + assert!(prompt.contains("get_weather")); + assert!(prompt.contains("Fetch forecast")); + assert!(prompt.contains("shell")); + } + + #[test] + fn skills_dir_path() { + let base = std::path::Path::new("/home/user/.zeroclaw"); + let dir = skills_dir(base); + assert_eq!(dir, PathBuf::from("/home/user/.zeroclaw/skills")); + } + + #[test] + fn toml_prefers_over_md() { + let dir = tempfile::tempdir().unwrap(); + let skills_dir = dir.path().join("skills"); + let skill_dir = skills_dir.join("dual"); + fs::create_dir_all(&skill_dir).unwrap(); + + fs::write( + skill_dir.join("SKILL.toml"), + "[skill]\nname = \"from-toml\"\ndescription = \"TOML wins\"\n", + ) + .unwrap(); + fs::write(skill_dir.join("SKILL.md"), "# From MD\nMD description\n").unwrap(); + + let skills = load_skills(dir.path()); + assert_eq!(skills.len(), 1); + assert_eq!(skills[0].name, "from-toml"); // TOML takes priority + } +} diff --git a/src/tools/file_read.rs b/src/tools/file_read.rs new file mode 100644 index 0000000..1798d2d --- /dev/null +++ b/src/tools/file_read.rs @@ -0,0 +1,203 @@ +use super::traits::{Tool, ToolResult}; +use crate::security::SecurityPolicy; +use async_trait::async_trait; +use serde_json::json; +use std::sync::Arc; + +/// Read file contents with path sandboxing +pub struct FileReadTool { + security: Arc, +} + +impl FileReadTool { + pub fn new(security: Arc) -> Self { + Self { security } + } +} + +#[async_trait] +impl Tool for FileReadTool { + fn name(&self) -> &str { + "file_read" + } + + fn description(&self) -> &str { + "Read the contents of a file in the workspace" + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Relative path to the file within the workspace" + } + }, + "required": ["path"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let path = args + .get("path") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'path' parameter"))?; + + // Security check: validate path is within workspace + if !self.security.is_path_allowed(path) { + return Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Path not allowed by security policy: {path}")), + }); + } + + let full_path = self.security.workspace_dir.join(path); + + match tokio::fs::read_to_string(&full_path).await { + Ok(contents) => Ok(ToolResult { + success: true, + output: contents, + error: None, + }), + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Failed to read file: {e}")), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::security::{AutonomyLevel, SecurityPolicy}; + + fn test_security(workspace: std::path::PathBuf) -> Arc { + Arc::new(SecurityPolicy { + autonomy: AutonomyLevel::Supervised, + workspace_dir: workspace, + ..SecurityPolicy::default() + }) + } + + #[test] + fn file_read_name() { + let tool = FileReadTool::new(test_security(std::env::temp_dir())); + assert_eq!(tool.name(), "file_read"); + } + + #[test] + fn file_read_schema_has_path() { + let tool = FileReadTool::new(test_security(std::env::temp_dir())); + let schema = tool.parameters_schema(); + assert!(schema["properties"]["path"].is_object()); + assert!(schema["required"] + .as_array() + .unwrap() + .contains(&json!("path"))); + } + + #[tokio::test] + async fn file_read_existing_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_read"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + tokio::fs::write(dir.join("test.txt"), "hello world") + .await + .unwrap(); + + let tool = FileReadTool::new(test_security(dir.clone())); + let result = tool.execute(json!({"path": "test.txt"})).await.unwrap(); + assert!(result.success); + assert_eq!(result.output, "hello world"); + assert!(result.error.is_none()); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_read_nonexistent_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_read_missing"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileReadTool::new(test_security(dir.clone())); + let result = tool.execute(json!({"path": "nope.txt"})).await.unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("Failed to read")); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_read_blocks_path_traversal() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_read_traversal"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileReadTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "../../../etc/passwd"})) + .await + .unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_read_blocks_absolute_path() { + let tool = FileReadTool::new(test_security(std::env::temp_dir())); + let result = tool.execute(json!({"path": "/etc/passwd"})).await.unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + } + + #[tokio::test] + async fn file_read_missing_path_param() { + let tool = FileReadTool::new(test_security(std::env::temp_dir())); + let result = tool.execute(json!({})).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn file_read_empty_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_read_empty"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + tokio::fs::write(dir.join("empty.txt"), "").await.unwrap(); + + let tool = FileReadTool::new(test_security(dir.clone())); + let result = tool.execute(json!({"path": "empty.txt"})).await.unwrap(); + assert!(result.success); + assert_eq!(result.output, ""); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_read_nested_path() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_read_nested"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(dir.join("sub/dir")) + .await + .unwrap(); + tokio::fs::write(dir.join("sub/dir/deep.txt"), "deep content") + .await + .unwrap(); + + let tool = FileReadTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "sub/dir/deep.txt"})) + .await + .unwrap(); + assert!(result.success); + assert_eq!(result.output, "deep content"); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } +} diff --git a/src/tools/file_write.rs b/src/tools/file_write.rs new file mode 100644 index 0000000..f31191d --- /dev/null +++ b/src/tools/file_write.rs @@ -0,0 +1,242 @@ +use super::traits::{Tool, ToolResult}; +use crate::security::SecurityPolicy; +use async_trait::async_trait; +use serde_json::json; +use std::sync::Arc; + +/// Write file contents with path sandboxing +pub struct FileWriteTool { + security: Arc, +} + +impl FileWriteTool { + pub fn new(security: Arc) -> Self { + Self { security } + } +} + +#[async_trait] +impl Tool for FileWriteTool { + fn name(&self) -> &str { + "file_write" + } + + fn description(&self) -> &str { + "Write contents to a file in the workspace" + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Relative path to the file within the workspace" + }, + "content": { + "type": "string", + "description": "Content to write to the file" + } + }, + "required": ["path", "content"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let path = args + .get("path") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'path' parameter"))?; + + let content = args + .get("content") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'content' parameter"))?; + + // Security check: validate path is within workspace + if !self.security.is_path_allowed(path) { + return Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Path not allowed by security policy: {path}")), + }); + } + + let full_path = self.security.workspace_dir.join(path); + + // Ensure parent directory exists + if let Some(parent) = full_path.parent() { + tokio::fs::create_dir_all(parent).await?; + } + + match tokio::fs::write(&full_path, content).await { + Ok(()) => Ok(ToolResult { + success: true, + output: format!("Written {} bytes to {path}", content.len()), + error: None, + }), + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Failed to write file: {e}")), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::security::{AutonomyLevel, SecurityPolicy}; + + fn test_security(workspace: std::path::PathBuf) -> Arc { + Arc::new(SecurityPolicy { + autonomy: AutonomyLevel::Supervised, + workspace_dir: workspace, + ..SecurityPolicy::default() + }) + } + + #[test] + fn file_write_name() { + let tool = FileWriteTool::new(test_security(std::env::temp_dir())); + assert_eq!(tool.name(), "file_write"); + } + + #[test] + fn file_write_schema_has_path_and_content() { + let tool = FileWriteTool::new(test_security(std::env::temp_dir())); + let schema = tool.parameters_schema(); + assert!(schema["properties"]["path"].is_object()); + assert!(schema["properties"]["content"].is_object()); + let required = schema["required"].as_array().unwrap(); + assert!(required.contains(&json!("path"))); + assert!(required.contains(&json!("content"))); + } + + #[tokio::test] + async fn file_write_creates_file() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_write"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileWriteTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "out.txt", "content": "written!"})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.contains("8 bytes")); + + let content = tokio::fs::read_to_string(dir.join("out.txt")) + .await + .unwrap(); + assert_eq!(content, "written!"); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_write_creates_parent_dirs() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_write_nested"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileWriteTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "a/b/c/deep.txt", "content": "deep"})) + .await + .unwrap(); + assert!(result.success); + + let content = tokio::fs::read_to_string(dir.join("a/b/c/deep.txt")) + .await + .unwrap(); + assert_eq!(content, "deep"); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_write_overwrites_existing() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_write_overwrite"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + tokio::fs::write(dir.join("exist.txt"), "old") + .await + .unwrap(); + + let tool = FileWriteTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "exist.txt", "content": "new"})) + .await + .unwrap(); + assert!(result.success); + + let content = tokio::fs::read_to_string(dir.join("exist.txt")) + .await + .unwrap(); + assert_eq!(content, "new"); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_write_blocks_path_traversal() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_write_traversal"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileWriteTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "../../etc/evil", "content": "bad"})) + .await + .unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } + + #[tokio::test] + async fn file_write_blocks_absolute_path() { + let tool = FileWriteTool::new(test_security(std::env::temp_dir())); + let result = tool + .execute(json!({"path": "/etc/evil", "content": "bad"})) + .await + .unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + } + + #[tokio::test] + async fn file_write_missing_path_param() { + let tool = FileWriteTool::new(test_security(std::env::temp_dir())); + let result = tool.execute(json!({"content": "data"})).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn file_write_missing_content_param() { + let tool = FileWriteTool::new(test_security(std::env::temp_dir())); + let result = tool.execute(json!({"path": "file.txt"})).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn file_write_empty_content() { + let dir = std::env::temp_dir().join("zeroclaw_test_file_write_empty"); + let _ = tokio::fs::remove_dir_all(&dir).await; + tokio::fs::create_dir_all(&dir).await.unwrap(); + + let tool = FileWriteTool::new(test_security(dir.clone())); + let result = tool + .execute(json!({"path": "empty.txt", "content": ""})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.contains("0 bytes")); + + let _ = tokio::fs::remove_dir_all(&dir).await; + } +} diff --git a/src/tools/memory_forget.rs b/src/tools/memory_forget.rs new file mode 100644 index 0000000..16b2b8a --- /dev/null +++ b/src/tools/memory_forget.rs @@ -0,0 +1,118 @@ +use super::traits::{Tool, ToolResult}; +use crate::memory::Memory; +use async_trait::async_trait; +use serde_json::json; +use std::sync::Arc; + +/// Let the agent forget/delete a memory entry +pub struct MemoryForgetTool { + memory: Arc, +} + +impl MemoryForgetTool { + pub fn new(memory: Arc) -> Self { + Self { memory } + } +} + +#[async_trait] +impl Tool for MemoryForgetTool { + fn name(&self) -> &str { + "memory_forget" + } + + fn description(&self) -> &str { + "Remove a memory by key. Use to delete outdated facts or sensitive data. Returns whether the memory was found and removed." + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key of the memory to forget" + } + }, + "required": ["key"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let key = args + .get("key") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'key' parameter"))?; + + match self.memory.forget(key).await { + Ok(true) => Ok(ToolResult { + success: true, + output: format!("Forgot memory: {key}"), + error: None, + }), + Ok(false) => Ok(ToolResult { + success: true, + output: format!("No memory found with key: {key}"), + error: None, + }), + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Failed to forget memory: {e}")), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::memory::{MemoryCategory, SqliteMemory}; + use tempfile::TempDir; + + fn test_mem() -> (TempDir, Arc) { + let tmp = TempDir::new().unwrap(); + let mem = SqliteMemory::new(tmp.path()).unwrap(); + (tmp, Arc::new(mem)) + } + + #[test] + fn name_and_schema() { + let (_tmp, mem) = test_mem(); + let tool = MemoryForgetTool::new(mem); + assert_eq!(tool.name(), "memory_forget"); + assert!(tool.parameters_schema()["properties"]["key"].is_object()); + } + + #[tokio::test] + async fn forget_existing() { + let (_tmp, mem) = test_mem(); + mem.store("temp", "temporary", MemoryCategory::Conversation) + .await + .unwrap(); + + let tool = MemoryForgetTool::new(mem.clone()); + let result = tool.execute(json!({"key": "temp"})).await.unwrap(); + assert!(result.success); + assert!(result.output.contains("Forgot")); + + assert!(mem.get("temp").await.unwrap().is_none()); + } + + #[tokio::test] + async fn forget_nonexistent() { + let (_tmp, mem) = test_mem(); + let tool = MemoryForgetTool::new(mem); + let result = tool.execute(json!({"key": "nope"})).await.unwrap(); + assert!(result.success); + assert!(result.output.contains("No memory found")); + } + + #[tokio::test] + async fn forget_missing_key() { + let (_tmp, mem) = test_mem(); + let tool = MemoryForgetTool::new(mem); + let result = tool.execute(json!({})).await; + assert!(result.is_err()); + } +} diff --git a/src/tools/memory_recall.rs b/src/tools/memory_recall.rs new file mode 100644 index 0000000..779c251 --- /dev/null +++ b/src/tools/memory_recall.rs @@ -0,0 +1,163 @@ +use super::traits::{Tool, ToolResult}; +use crate::memory::Memory; +use async_trait::async_trait; +use serde_json::json; +use std::fmt::Write; +use std::sync::Arc; + +/// Let the agent search its own memory +pub struct MemoryRecallTool { + memory: Arc, +} + +impl MemoryRecallTool { + pub fn new(memory: Arc) -> Self { + Self { memory } + } +} + +#[async_trait] +impl Tool for MemoryRecallTool { + fn name(&self) -> &str { + "memory_recall" + } + + fn description(&self) -> &str { + "Search long-term memory for relevant facts, preferences, or context. Returns scored results ranked by relevance." + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "Keywords or phrase to search for in memory" + }, + "limit": { + "type": "integer", + "description": "Max results to return (default: 5)" + } + }, + "required": ["query"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let query = args + .get("query") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'query' parameter"))?; + + #[allow(clippy::cast_possible_truncation)] + let limit = args + .get("limit") + .and_then(serde_json::Value::as_u64) + .map_or(5, |v| v as usize); + + match self.memory.recall(query, limit).await { + Ok(entries) if entries.is_empty() => Ok(ToolResult { + success: true, + output: "No memories found matching that query.".into(), + error: None, + }), + Ok(entries) => { + let mut output = format!("Found {} memories:\n", entries.len()); + for entry in &entries { + let score = entry.score.map_or_else(String::new, |s| format!(" [{s:.0}%]")); + let _ = writeln!( + output, + "- [{}] {}: {}{score}", + entry.category, entry.key, entry.content + ); + } + Ok(ToolResult { + success: true, + output, + error: None, + }) + } + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Memory recall failed: {e}")), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::memory::{MemoryCategory, SqliteMemory}; + use tempfile::TempDir; + + fn seeded_mem() -> (TempDir, Arc) { + let tmp = TempDir::new().unwrap(); + let mem = SqliteMemory::new(tmp.path()).unwrap(); + (tmp, Arc::new(mem)) + } + + #[tokio::test] + async fn recall_empty() { + let (_tmp, mem) = seeded_mem(); + let tool = MemoryRecallTool::new(mem); + let result = tool + .execute(json!({"query": "anything"})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.contains("No memories found")); + } + + #[tokio::test] + async fn recall_finds_match() { + let (_tmp, mem) = seeded_mem(); + mem.store("lang", "User prefers Rust", MemoryCategory::Core) + .await + .unwrap(); + mem.store("tz", "Timezone is EST", MemoryCategory::Core) + .await + .unwrap(); + + let tool = MemoryRecallTool::new(mem); + let result = tool.execute(json!({"query": "Rust"})).await.unwrap(); + assert!(result.success); + assert!(result.output.contains("Rust")); + assert!(result.output.contains("Found 1")); + } + + #[tokio::test] + async fn recall_respects_limit() { + let (_tmp, mem) = seeded_mem(); + for i in 0..10 { + mem.store(&format!("k{i}"), &format!("Rust fact {i}"), MemoryCategory::Core) + .await + .unwrap(); + } + + let tool = MemoryRecallTool::new(mem); + let result = tool + .execute(json!({"query": "Rust", "limit": 3})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.contains("Found 3")); + } + + #[tokio::test] + async fn recall_missing_query() { + let (_tmp, mem) = seeded_mem(); + let tool = MemoryRecallTool::new(mem); + let result = tool.execute(json!({})).await; + assert!(result.is_err()); + } + + #[test] + fn name_and_schema() { + let (_tmp, mem) = seeded_mem(); + let tool = MemoryRecallTool::new(mem); + assert_eq!(tool.name(), "memory_recall"); + assert!(tool.parameters_schema()["properties"]["query"].is_object()); + } +} diff --git a/src/tools/memory_store.rs b/src/tools/memory_store.rs new file mode 100644 index 0000000..b90222c --- /dev/null +++ b/src/tools/memory_store.rs @@ -0,0 +1,146 @@ +use super::traits::{Tool, ToolResult}; +use crate::memory::{Memory, MemoryCategory}; +use async_trait::async_trait; +use serde_json::json; +use std::sync::Arc; + +/// Let the agent store memories — its own brain writes +pub struct MemoryStoreTool { + memory: Arc, +} + +impl MemoryStoreTool { + pub fn new(memory: Arc) -> Self { + Self { memory } + } +} + +#[async_trait] +impl Tool for MemoryStoreTool { + fn name(&self) -> &str { + "memory_store" + } + + fn description(&self) -> &str { + "Store a fact, preference, or note in long-term memory. Use category 'core' for permanent facts, 'daily' for session notes, 'conversation' for chat context." + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Unique key for this memory (e.g. 'user_lang', 'project_stack')" + }, + "content": { + "type": "string", + "description": "The information to remember" + }, + "category": { + "type": "string", + "enum": ["core", "daily", "conversation"], + "description": "Memory category: core (permanent), daily (session), conversation (chat)" + } + }, + "required": ["key", "content"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let key = args + .get("key") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'key' parameter"))?; + + let content = args + .get("content") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'content' parameter"))?; + + let category = match args.get("category").and_then(|v| v.as_str()) { + Some("daily") => MemoryCategory::Daily, + Some("conversation") => MemoryCategory::Conversation, + _ => MemoryCategory::Core, + }; + + match self.memory.store(key, content, category).await { + Ok(()) => Ok(ToolResult { + success: true, + output: format!("Stored memory: {key}"), + error: None, + }), + Err(e) => Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Failed to store memory: {e}")), + }), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::memory::SqliteMemory; + use tempfile::TempDir; + + fn test_mem() -> (TempDir, Arc) { + let tmp = TempDir::new().unwrap(); + let mem = SqliteMemory::new(tmp.path()).unwrap(); + (tmp, Arc::new(mem)) + } + + #[test] + fn name_and_schema() { + let (_tmp, mem) = test_mem(); + let tool = MemoryStoreTool::new(mem); + assert_eq!(tool.name(), "memory_store"); + let schema = tool.parameters_schema(); + assert!(schema["properties"]["key"].is_object()); + assert!(schema["properties"]["content"].is_object()); + } + + #[tokio::test] + async fn store_core() { + let (_tmp, mem) = test_mem(); + let tool = MemoryStoreTool::new(mem.clone()); + let result = tool + .execute(json!({"key": "lang", "content": "Prefers Rust"})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.contains("lang")); + + let entry = mem.get("lang").await.unwrap(); + assert!(entry.is_some()); + assert_eq!(entry.unwrap().content, "Prefers Rust"); + } + + #[tokio::test] + async fn store_with_category() { + let (_tmp, mem) = test_mem(); + let tool = MemoryStoreTool::new(mem.clone()); + let result = tool + .execute(json!({"key": "note", "content": "Fixed bug", "category": "daily"})) + .await + .unwrap(); + assert!(result.success); + } + + #[tokio::test] + async fn store_missing_key() { + let (_tmp, mem) = test_mem(); + let tool = MemoryStoreTool::new(mem); + let result = tool.execute(json!({"content": "no key"})).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn store_missing_content() { + let (_tmp, mem) = test_mem(); + let tool = MemoryStoreTool::new(mem); + let result = tool.execute(json!({"key": "no_content"})).await; + assert!(result.is_err()); + } +} diff --git a/src/tools/mod.rs b/src/tools/mod.rs new file mode 100644 index 0000000..ecd182e --- /dev/null +++ b/src/tools/mod.rs @@ -0,0 +1,189 @@ +pub mod file_read; +pub mod file_write; +pub mod memory_forget; +pub mod memory_recall; +pub mod memory_store; +pub mod shell; +pub mod traits; + +pub use file_read::FileReadTool; +pub use file_write::FileWriteTool; +pub use memory_forget::MemoryForgetTool; +pub use memory_recall::MemoryRecallTool; +pub use memory_store::MemoryStoreTool; +pub use shell::ShellTool; +pub use traits::Tool; +#[allow(unused_imports)] +pub use traits::{ToolResult, ToolSpec}; + +use crate::config::Config; +use crate::memory::Memory; +use crate::security::SecurityPolicy; +use anyhow::Result; +use std::sync::Arc; + +/// Create the default tool registry +pub fn default_tools(security: Arc) -> Vec> { + vec![ + Box::new(ShellTool::new(security.clone())), + Box::new(FileReadTool::new(security.clone())), + Box::new(FileWriteTool::new(security)), + ] +} + +/// Create full tool registry including memory tools +pub fn all_tools( + security: Arc, + memory: Arc, +) -> Vec> { + vec![ + Box::new(ShellTool::new(security.clone())), + Box::new(FileReadTool::new(security.clone())), + Box::new(FileWriteTool::new(security)), + Box::new(MemoryStoreTool::new(memory.clone())), + Box::new(MemoryRecallTool::new(memory.clone())), + Box::new(MemoryForgetTool::new(memory)), + ] +} + +pub async fn handle_command(command: super::ToolCommands, config: Config) -> Result<()> { + let security = Arc::new(SecurityPolicy { + workspace_dir: config.workspace_dir.clone(), + ..SecurityPolicy::default() + }); + let mem: Arc = + Arc::from(crate::memory::create_memory(&config.memory, &config.workspace_dir)?); + let tools_list = all_tools(security, mem); + + match command { + super::ToolCommands::List => { + println!("Available tools ({}):", tools_list.len()); + for tool in &tools_list { + println!(" - {}: {}", tool.name(), tool.description()); + } + Ok(()) + } + super::ToolCommands::Test { tool, args } => { + let matched = tools_list.iter().find(|t| t.name() == tool); + match matched { + Some(t) => { + let parsed: serde_json::Value = serde_json::from_str(&args)?; + let result = t.execute(parsed).await?; + println!("Success: {}", result.success); + println!("Output: {}", result.output); + if let Some(err) = result.error { + println!("Error: {err}"); + } + Ok(()) + } + None => anyhow::bail!("Unknown tool: {tool}"), + } + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn default_tools_has_three() { + let security = Arc::new(SecurityPolicy::default()); + let tools = default_tools(security); + assert_eq!(tools.len(), 3); + } + + #[test] + fn default_tools_names() { + let security = Arc::new(SecurityPolicy::default()); + let tools = default_tools(security); + let names: Vec<&str> = tools.iter().map(|t| t.name()).collect(); + assert!(names.contains(&"shell")); + assert!(names.contains(&"file_read")); + assert!(names.contains(&"file_write")); + } + + #[test] + fn default_tools_all_have_descriptions() { + let security = Arc::new(SecurityPolicy::default()); + let tools = default_tools(security); + for tool in &tools { + assert!( + !tool.description().is_empty(), + "Tool {} has empty description", + tool.name() + ); + } + } + + #[test] + fn default_tools_all_have_schemas() { + let security = Arc::new(SecurityPolicy::default()); + let tools = default_tools(security); + for tool in &tools { + let schema = tool.parameters_schema(); + assert!( + schema.is_object(), + "Tool {} schema is not an object", + tool.name() + ); + assert!( + schema["properties"].is_object(), + "Tool {} schema has no properties", + tool.name() + ); + } + } + + #[test] + fn tool_spec_generation() { + let security = Arc::new(SecurityPolicy::default()); + let tools = default_tools(security); + for tool in &tools { + let spec = tool.spec(); + assert_eq!(spec.name, tool.name()); + assert_eq!(spec.description, tool.description()); + assert!(spec.parameters.is_object()); + } + } + + #[test] + fn tool_result_serde() { + let result = ToolResult { + success: true, + output: "hello".into(), + error: None, + }; + let json = serde_json::to_string(&result).unwrap(); + let parsed: ToolResult = serde_json::from_str(&json).unwrap(); + assert!(parsed.success); + assert_eq!(parsed.output, "hello"); + assert!(parsed.error.is_none()); + } + + #[test] + fn tool_result_with_error_serde() { + let result = ToolResult { + success: false, + output: String::new(), + error: Some("boom".into()), + }; + let json = serde_json::to_string(&result).unwrap(); + let parsed: ToolResult = serde_json::from_str(&json).unwrap(); + assert!(!parsed.success); + assert_eq!(parsed.error.as_deref(), Some("boom")); + } + + #[test] + fn tool_spec_serde() { + let spec = ToolSpec { + name: "test".into(), + description: "A test tool".into(), + parameters: serde_json::json!({"type": "object"}), + }; + let json = serde_json::to_string(&spec).unwrap(); + let parsed: ToolSpec = serde_json::from_str(&json).unwrap(); + assert_eq!(parsed.name, "test"); + assert_eq!(parsed.description, "A test tool"); + } +} diff --git a/src/tools/shell.rs b/src/tools/shell.rs new file mode 100644 index 0000000..8d29e5d --- /dev/null +++ b/src/tools/shell.rs @@ -0,0 +1,166 @@ +use super::traits::{Tool, ToolResult}; +use crate::security::SecurityPolicy; +use async_trait::async_trait; +use serde_json::json; +use std::sync::Arc; + +/// Shell command execution tool with sandboxing +pub struct ShellTool { + security: Arc, +} + +impl ShellTool { + pub fn new(security: Arc) -> Self { + Self { security } + } +} + +#[async_trait] +impl Tool for ShellTool { + fn name(&self) -> &str { + "shell" + } + + fn description(&self) -> &str { + "Execute a shell command in the workspace directory" + } + + fn parameters_schema(&self) -> serde_json::Value { + json!({ + "type": "object", + "properties": { + "command": { + "type": "string", + "description": "The shell command to execute" + } + }, + "required": ["command"] + }) + } + + async fn execute(&self, args: serde_json::Value) -> anyhow::Result { + let command = args + .get("command") + .and_then(|v| v.as_str()) + .ok_or_else(|| anyhow::anyhow!("Missing 'command' parameter"))?; + + // Security check: validate command against allowlist + if !self.security.is_command_allowed(command) { + return Ok(ToolResult { + success: false, + output: String::new(), + error: Some(format!("Command not allowed by security policy: {command}")), + }); + } + + let output = tokio::process::Command::new("sh") + .arg("-c") + .arg(command) + .current_dir(&self.security.workspace_dir) + .output() + .await?; + + let stdout = String::from_utf8_lossy(&output.stdout).to_string(); + let stderr = String::from_utf8_lossy(&output.stderr).to_string(); + + Ok(ToolResult { + success: output.status.success(), + output: stdout, + error: if stderr.is_empty() { + None + } else { + Some(stderr) + }, + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::security::{AutonomyLevel, SecurityPolicy}; + + fn test_security(autonomy: AutonomyLevel) -> Arc { + Arc::new(SecurityPolicy { + autonomy, + workspace_dir: std::env::temp_dir(), + ..SecurityPolicy::default() + }) + } + + #[test] + fn shell_tool_name() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + assert_eq!(tool.name(), "shell"); + } + + #[test] + fn shell_tool_description() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + assert!(!tool.description().is_empty()); + } + + #[test] + fn shell_tool_schema_has_command() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let schema = tool.parameters_schema(); + assert!(schema["properties"]["command"].is_object()); + assert!(schema["required"] + .as_array() + .unwrap() + .contains(&json!("command"))); + } + + #[tokio::test] + async fn shell_executes_allowed_command() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let result = tool + .execute(json!({"command": "echo hello"})) + .await + .unwrap(); + assert!(result.success); + assert!(result.output.trim().contains("hello")); + assert!(result.error.is_none()); + } + + #[tokio::test] + async fn shell_blocks_disallowed_command() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let result = tool.execute(json!({"command": "rm -rf /"})).await.unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + } + + #[tokio::test] + async fn shell_blocks_readonly() { + let tool = ShellTool::new(test_security(AutonomyLevel::ReadOnly)); + let result = tool.execute(json!({"command": "ls"})).await.unwrap(); + assert!(!result.success); + assert!(result.error.as_ref().unwrap().contains("not allowed")); + } + + #[tokio::test] + async fn shell_missing_command_param() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let result = tool.execute(json!({})).await; + assert!(result.is_err()); + assert!(result.unwrap_err().to_string().contains("command")); + } + + #[tokio::test] + async fn shell_wrong_type_param() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let result = tool.execute(json!({"command": 123})).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn shell_captures_exit_code() { + let tool = ShellTool::new(test_security(AutonomyLevel::Supervised)); + let result = tool + .execute(json!({"command": "ls /nonexistent_dir_xyz"})) + .await + .unwrap(); + assert!(!result.success); + } +} diff --git a/src/tools/traits.rs b/src/tools/traits.rs new file mode 100644 index 0000000..714e83b --- /dev/null +++ b/src/tools/traits.rs @@ -0,0 +1,43 @@ +use async_trait::async_trait; +use serde::{Deserialize, Serialize}; + +/// Result of a tool execution +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ToolResult { + pub success: bool, + pub output: String, + pub error: Option, +} + +/// Description of a tool for the LLM +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ToolSpec { + pub name: String, + pub description: String, + pub parameters: serde_json::Value, +} + +/// Core tool trait — implement for any capability +#[async_trait] +pub trait Tool: Send + Sync { + /// Tool name (used in LLM function calling) + fn name(&self) -> &str; + + /// Human-readable description + fn description(&self) -> &str; + + /// JSON schema for parameters + fn parameters_schema(&self) -> serde_json::Value; + + /// Execute the tool with given arguments + async fn execute(&self, args: serde_json::Value) -> anyhow::Result; + + /// Get the full spec for LLM registration + fn spec(&self) -> ToolSpec { + ToolSpec { + name: self.name().to_string(), + description: self.description().to_string(), + parameters: self.parameters_schema(), + } + } +} diff --git a/tests/memory_comparison.rs b/tests/memory_comparison.rs new file mode 100644 index 0000000..f9ef8a8 --- /dev/null +++ b/tests/memory_comparison.rs @@ -0,0 +1,369 @@ +//! Head-to-head comparison: SQLite vs Markdown memory backends +//! +//! Run with: cargo test --test memory_comparison -- --nocapture + +use std::time::Instant; +use tempfile::TempDir; + +// We test both backends through the public memory module +use zeroclaw::memory::{ + markdown::MarkdownMemory, sqlite::SqliteMemory, Memory, MemoryCategory, +}; + +// ── Helpers ──────────────────────────────────────────────────── + +fn sqlite_backend(dir: &std::path::Path) -> SqliteMemory { + SqliteMemory::new(dir).expect("SQLite init failed") +} + +fn markdown_backend(dir: &std::path::Path) -> MarkdownMemory { + MarkdownMemory::new(dir) +} + +// ── Test 1: Store performance ────────────────────────────────── + +#[tokio::test] +async fn compare_store_speed() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + let n = 100; + + // SQLite: 100 stores + let start = Instant::now(); + for i in 0..n { + sq.store( + &format!("key_{i}"), + &format!("Memory entry number {i} about Rust programming"), + MemoryCategory::Core, + ) + .await + .unwrap(); + } + let sq_dur = start.elapsed(); + + // Markdown: 100 stores + let start = Instant::now(); + for i in 0..n { + md.store( + &format!("key_{i}"), + &format!("Memory entry number {i} about Rust programming"), + MemoryCategory::Core, + ) + .await + .unwrap(); + } + let md_dur = start.elapsed(); + + println!("\n============================================================"); + println!("STORE {n} entries:"); + println!(" SQLite: {:?}", sq_dur); + println!(" Markdown: {:?}", md_dur); + + // Both should succeed + assert_eq!(sq.count().await.unwrap(), n); + // Markdown count parses lines, may differ slightly from n + let md_count = md.count().await.unwrap(); + assert!(md_count >= n, "Markdown stored {md_count}, expected >= {n}"); +} + +// ── Test 2: Recall / search quality ──────────────────────────── + +#[tokio::test] +async fn compare_recall_quality() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + // Seed both with identical data + let entries = vec![ + ("lang_pref", "User prefers Rust over Python", MemoryCategory::Core), + ("editor", "Uses VS Code with rust-analyzer", MemoryCategory::Core), + ("tz", "Timezone is EST, works 9-5", MemoryCategory::Core), + ("proj1", "Working on ZeroClaw AI assistant", MemoryCategory::Daily), + ("proj2", "Previous project was a web scraper in Python", MemoryCategory::Daily), + ("deploy", "Deploys to Hetzner VPS via Docker", MemoryCategory::Core), + ("model", "Prefers Claude Sonnet for coding tasks", MemoryCategory::Core), + ("style", "Likes concise responses, no fluff", MemoryCategory::Core), + ("rust_note", "Rust's ownership model prevents memory bugs", MemoryCategory::Daily), + ("perf", "Cares about binary size and startup time", MemoryCategory::Core), + ]; + + for (key, content, cat) in &entries { + sq.store(key, content, cat.clone()).await.unwrap(); + md.store(key, content, cat.clone()).await.unwrap(); + } + + // Test queries and compare results + let queries = vec![ + ("Rust", "Should find Rust-related entries"), + ("Python", "Should find Python references"), + ("deploy Docker", "Multi-keyword search"), + ("Claude", "Specific tool reference"), + ("javascript", "No matches expected"), + ("binary size startup", "Multi-keyword partial match"), + ]; + + println!("\n============================================================"); + println!("RECALL QUALITY (10 entries seeded):\n"); + + for (query, desc) in &queries { + let sq_results = sq.recall(query, 10).await.unwrap(); + let md_results = md.recall(query, 10).await.unwrap(); + + println!(" Query: \"{query}\" — {desc}"); + println!(" SQLite: {} results", sq_results.len()); + for r in &sq_results { + println!( + " [{:.2}] {}: {}", + r.score.unwrap_or(0.0), + r.key, + &r.content[..r.content.len().min(50)] + ); + } + println!(" Markdown: {} results", md_results.len()); + for r in &md_results { + println!( + " [{:.2}] {}: {}", + r.score.unwrap_or(0.0), + r.key, + &r.content[..r.content.len().min(50)] + ); + } + println!(); + } +} + +// ── Test 3: Recall speed at scale ────────────────────────────── + +#[tokio::test] +async fn compare_recall_speed() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + // Seed 200 entries + let n = 200; + for i in 0..n { + let content = if i % 3 == 0 { + format!("Rust is great for systems programming, entry {i}") + } else if i % 3 == 1 { + format!("Python is popular for data science, entry {i}") + } else { + format!("TypeScript powers modern web apps, entry {i}") + }; + sq.store(&format!("e{i}"), &content, MemoryCategory::Core) + .await + .unwrap(); + md.store(&format!("e{i}"), &content, MemoryCategory::Daily) + .await + .unwrap(); + } + + // Benchmark recall + let start = Instant::now(); + let sq_results = sq.recall("Rust systems", 10).await.unwrap(); + let sq_dur = start.elapsed(); + + let start = Instant::now(); + let md_results = md.recall("Rust systems", 10).await.unwrap(); + let md_dur = start.elapsed(); + + println!("\n============================================================"); + println!("RECALL from {n} entries (query: \"Rust systems\", limit 10):"); + println!(" SQLite: {:?} → {} results", sq_dur, sq_results.len()); + println!(" Markdown: {:?} → {} results", md_dur, md_results.len()); + + // Both should find results + assert!(!sq_results.is_empty()); + assert!(!md_results.is_empty()); +} + +// ── Test 4: Persistence (SQLite wins by design) ──────────────── + +#[tokio::test] +async fn compare_persistence() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + + // Store in both, then drop and re-open + { + let sq = sqlite_backend(tmp_sq.path()); + sq.store("persist_test", "I should survive", MemoryCategory::Core) + .await + .unwrap(); + } + { + let md = markdown_backend(tmp_md.path()); + md.store("persist_test", "I should survive", MemoryCategory::Core) + .await + .unwrap(); + } + + // Re-open + let sq2 = sqlite_backend(tmp_sq.path()); + let md2 = markdown_backend(tmp_md.path()); + + let sq_entry = sq2.get("persist_test").await.unwrap(); + let md_entry = md2.get("persist_test").await.unwrap(); + + println!("\n============================================================"); + println!("PERSISTENCE (store → drop → re-open → get):"); + println!( + " SQLite: {}", + if sq_entry.is_some() { + "✅ Survived" + } else { + "❌ Lost" + } + ); + println!( + " Markdown: {}", + if md_entry.is_some() { + "✅ Survived" + } else { + "❌ Lost" + } + ); + + // SQLite should always persist by key + assert!(sq_entry.is_some()); + assert_eq!(sq_entry.unwrap().content, "I should survive"); + + // Markdown persists content to files (get uses content search) + assert!(md_entry.is_some()); +} + +// ── Test 5: Upsert / update behavior ────────────────────────── + +#[tokio::test] +async fn compare_upsert() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + // Store twice with same key, different content + sq.store("pref", "likes Rust", MemoryCategory::Core) + .await + .unwrap(); + sq.store("pref", "loves Rust", MemoryCategory::Core) + .await + .unwrap(); + + md.store("pref", "likes Rust", MemoryCategory::Core) + .await + .unwrap(); + md.store("pref", "loves Rust", MemoryCategory::Core) + .await + .unwrap(); + + let sq_count = sq.count().await.unwrap(); + let md_count = md.count().await.unwrap(); + + let sq_entry = sq.get("pref").await.unwrap(); + let md_results = md.recall("loves Rust", 5).await.unwrap(); + + println!("\n============================================================"); + println!("UPSERT (store same key twice):"); + println!(" SQLite: count={sq_count}, latest=\"{}\"", + sq_entry.as_ref().map_or("none", |e| &e.content)); + println!(" Markdown: count={md_count} (append-only, both entries kept)"); + println!(" Can still find latest: {}", !md_results.is_empty()); + + // SQLite: upsert replaces, count stays at 1 + assert_eq!(sq_count, 1); + assert_eq!(sq_entry.unwrap().content, "loves Rust"); + + // Markdown: append-only, count increases + assert!(md_count >= 2, "Markdown should keep both entries"); +} + +// ── Test 6: Forget / delete capability ───────────────────────── + +#[tokio::test] +async fn compare_forget() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + sq.store("secret", "API key: sk-1234", MemoryCategory::Core) + .await + .unwrap(); + md.store("secret", "API key: sk-1234", MemoryCategory::Core) + .await + .unwrap(); + + let sq_forgot = sq.forget("secret").await.unwrap(); + let md_forgot = md.forget("secret").await.unwrap(); + + println!("\n============================================================"); + println!("FORGET (delete sensitive data):"); + println!( + " SQLite: {} (count={})", + if sq_forgot { "✅ Deleted" } else { "❌ Kept" }, + sq.count().await.unwrap() + ); + println!( + " Markdown: {} (append-only by design)", + if md_forgot { "✅ Deleted" } else { "⚠️ Cannot delete (audit trail)" }, + ); + + // SQLite can delete + assert!(sq_forgot); + assert_eq!(sq.count().await.unwrap(), 0); + + // Markdown cannot delete (by design) + assert!(!md_forgot); +} + +// ── Test 7: Category filtering ───────────────────────────────── + +#[tokio::test] +async fn compare_category_filter() { + let tmp_sq = TempDir::new().unwrap(); + let tmp_md = TempDir::new().unwrap(); + let sq = sqlite_backend(tmp_sq.path()); + let md = markdown_backend(tmp_md.path()); + + // Mix of categories + sq.store("a", "core fact 1", MemoryCategory::Core).await.unwrap(); + sq.store("b", "core fact 2", MemoryCategory::Core).await.unwrap(); + sq.store("c", "daily note", MemoryCategory::Daily).await.unwrap(); + sq.store("d", "convo msg", MemoryCategory::Conversation).await.unwrap(); + + md.store("a", "core fact 1", MemoryCategory::Core).await.unwrap(); + md.store("b", "core fact 2", MemoryCategory::Core).await.unwrap(); + md.store("c", "daily note", MemoryCategory::Daily).await.unwrap(); + + let sq_core = sq.list(Some(&MemoryCategory::Core)).await.unwrap(); + let sq_daily = sq.list(Some(&MemoryCategory::Daily)).await.unwrap(); + let sq_conv = sq.list(Some(&MemoryCategory::Conversation)).await.unwrap(); + let sq_all = sq.list(None).await.unwrap(); + + let md_core = md.list(Some(&MemoryCategory::Core)).await.unwrap(); + let md_daily = md.list(Some(&MemoryCategory::Daily)).await.unwrap(); + let md_all = md.list(None).await.unwrap(); + + println!("\n============================================================"); + println!("CATEGORY FILTERING:"); + println!(" SQLite: core={}, daily={}, conv={}, all={}", + sq_core.len(), sq_daily.len(), sq_conv.len(), sq_all.len()); + println!(" Markdown: core={}, daily={}, all={}", + md_core.len(), md_daily.len(), md_all.len()); + + // SQLite: precise category filtering via SQL WHERE + assert_eq!(sq_core.len(), 2); + assert_eq!(sq_daily.len(), 1); + assert_eq!(sq_conv.len(), 1); + assert_eq!(sq_all.len(), 4); + + // Markdown: categories determined by file location + assert!(!md_core.is_empty()); + assert!(!md_all.is_empty()); +} diff --git a/zeroclaw.png b/zeroclaw.png new file mode 100644 index 0000000000000000000000000000000000000000..2e12fcd8c2d38ca12c9c848676495ad55ce610f4 GIT binary patch literal 1203230 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

I*SjB|k5{vp;{s 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

D`% zC51|IXZXLjuV=q*x@4u>qFr}B-s4*)wS4R0-FA1m$`>E0lfJNY$HlMGwdIEkk_G&h zE@`ylJyqZ!YZny$GG$Pwhqio3#&D~Q%Zk(952hRC=b|k@%z^P z$-IZ>u2-~}p8ws^zWl?JU)Q!QczmO))4zD@r9J633`_6GXOzA8G%2EP>y@dyWHv8a zy4h6u$3&Y6`{w7CT19y6&SUA_DeG6%)!rl5^0%Jnr=odTWAI$l#pbzn3Yob%8{#wU zWcO_kU|O?HaGl}H2KSeq4<70UXNY>OnEX%ZJoEOm`b}Fz^S>!|%m32bTwz_i=xS8Y z;_}D;8F+8WysYEBkW~1eL6>(=O`V7RT-CO&yHnqvF7Eso-X|WGb3Sv~qQ-`a(VFrz zPyWrkH%BmV**Sgx%g2@$n>5T=8z6M1y72gqYb7tMGtD=dt_;4pWY^5lb2+)u-sP!z z^HZlT-8xTsr@83s38#-g{wjK5v8u?ml{2b0<^3|LmHuG=NWT637g^)O-#^!3&wu ze9f)bcA{5~uG^Wdx@75L_Twk_)Jy#8lc?n_IaV9-Rx+omyzx(IapJ1QQGSoEMKDae zv(4>;-<$O2gYt3JS3{Od&GM9}zVg-G@sYl;?zE{-D#~u@%5mQmJ!2Ng;dAatUUKu~ z;}Ykr!$LlM?B0EKs@CTD3!lt0{OEY)YiE84-!o9`)HQ?xqY5&Whq#`Bq-U(EU-Kl_-J-(f;4=B!m;pS1I>{N434znHhwC@-$4 zciYzQ-NtsRU08v4xALm(%lB6u3zeCllJxlMt7AVlM_ja#U-ozVk?HqSJAd{m&Qza& zGkoQ*d0LgTe|YzreYbP^7~Y|`^}XP0^Itx}(YNp4$zzxxu|UG1@L1uMzUQCs*?imL z`!i|Mvlm6zH~gLV%A@>!igm<)hOPI%o=p$3*|f2s=G4=@-k!4#UAk0h8F|6*_=m~o z>~-q4F7+~M^8KnbH`UT&UEBWltyeeqiPme(@C#LKjpe^0;P@x&l6L-UdIROXWObSJay;CH|`0(d#Y1yYo48E{<5}qNnFR& zw(PQ`Y&)fS|1Pe5_qZ+MM(xXk@;(XwwhD*exg`*IRmLmwtl@-%!Y4XU8)+)=uPv&! z^nMs_74ulW^Tw@9bKl%_eK%F*_I1M*a(?dXoIb~f1ot16zwms;&wre^KU&9gz1pXA zb@`4>AGU67o1)lXbDgDU(Q}!d?DH3#&AYR7N#Nm*l7f>V>($Y zh9{Gy>e}S4Ut1R2Z+b9n>G`0!){;j1d<#AAy!2RiwcEt)eoM6XwyQ#) zWBVf4Ec|&!aE@fhi=A)yi(g*awpe7nTJa;9TTk2G?0$S+_LZIXp75QiUDs4Uy?vV~ zoz%$A7+PH-YP@FB)Am31D*_K|WPP{TrZUO5aIfFq#(<5FTBTdh#%jCm*ylaHm3?|H z=e$hmR#yp0^*d7oUqx`;GI_gm_RQHuOmo6YLuVG0YnQJpcH~tMn!vY!X%?ev5cAp( zd^^>eA92fisYKee|9#?n>a^s;$I2I{Y?{BeN+f8dT=1;ryWUlWACqqj%-DGF5kFtv zjt~15tv2DaH2Zzb$$Yzw{DIHcy^KQFbJlpAi+jFjTY68-ZHYTg+EP>IM6O9M3D=Ie zap}>qNExF!22X-}AH8c_a&>0er%&0xn+uDMK2Q9-^VRVyzkgrbG~If)af^uPv_tN` z%({olHdvg^XHQGJdhzP(sA=t$OEUj6+`N@DEow@_+LJWTiR^}1$Lzo|=zt_k^;5vmoq{JmG$&ZXr`@7po`D0;+Xy;ykG zwUd9F=Sg&BSDl=qdf{s%hv3WYng7059Sd2iJ8@6p6y-e^y&gNwQl9HnT^(TG=2>q3 z_tQ?(?nC>xyvde{N&RDT|Mb_?(2LJ@@mvcysk-U!%b8`&Urru%zbf;Ob$QV|J(0Vs ztnF@3U9Y!Jd8^q3*C)68q%-gCesyT$s^=1)TqC6}2Tp#L_vX|(<0UUmM5B9!YKnEI zyjGOkxKHGtkNCe|>+V?Zk$MBV%y;#ZRl7awwEwX`iM?E+|CZac$?W9A&eZ&0iPm%3`by-uC?%wO)@BYdz zFL!Hff5wma;^nW*ZY|rsJj>{n(zoaD@5tYGl#q;wC}H%rGyC9pKIXb<$kj!sKD&oM z%IC_sXLzaZ?CPlF7RQ(cKWqNFX1H3*|HO9RknrgF+JBsWB(M9y_bGa>g@3Enk} zjhy!FDV2Lr>+suZjpD^GBDL;8C0D*G9kJ>E%y9Qu_2=vN*H!UxUA$R`A=c6VUlE4ywAo&;9^RA~?r)m~w^s|4oKdP&KFznKcI>DY-(_bskn9*~X z?V0XY_EMHP!pE1ni{4sk`TO$a)9cS~oE3Kay-j}PrLA}K{>7FbEB4m;B-1iwV&fH_ zs^slVyAnN1Z*SDw6y;ttZ?=r#UGL&8+|?Sh-X1exyT5CHw}^ai_L9;!u5LdotM=Nj zpZNTYw_%!PQju?g@s3NeUf&)a$owI!cpxCWn5Rs1(`rlio9_}{IvIVNE#$p8tD7Tz z^Tdnp_j;WLY`^_yh*}x2QgoF_p~&n_6XP!X@7`mvrSYjvol_((h8&*;r9~)%E){Y1gYo_K$okzv#yD&Hfjb`t=rn zR!8l%{##b^c({VI{MbrRf=q=fs{{F!A4`IrEo`db2HFGxNO8A>&Jv z@-Nmc4^AnWovFO-;#xf$*VX)AolhCwK2qz%?;rfL>)JKTv}M;#!%xcXdi{Nx>W4o? zF}2%|nJ@bG`bW;%ctJP&UFYm4{b#rzx+c@B>a_EuhN`fY4x+Zbou(al;pFCK^tFRTAXZkFQe`@ zckJrDI|@=lEL5u-s>AiI@`D!zPFD`NQ{S1t=KWXp>3$o%r5%`#b8XCFytDDi{NO*U zr6%v%7@~QK`(AmP$lmOkb2S=Qn?*_L^f<(IX?poxW0hNCan^NRz|)?|mu9sdxq0D7 z@Zs`X|JG(Nds+6@_UYj_z3i_%-!MFxcWBo_PbZttH;x7G-el|im~D3Ahu??8mFcM#tsf&HFmn?0MDt+zGa}S1Nqo?sASPmA!dUG{remO!1`$ z%M#|54O|)Qp^9QTOASx)XT4ag7nW{XQk(zVtYX&nBX$z|KE&-1s<oy3L4BH%X!Ra^}4`{W?Dmez^7gkky%aG5Knft%b7-ulMbi_|H&Lw>Nv+ zl*L`G*N+F-LI`wG`dr|#OJ0J z*HwX&lhxD3r}@7-wzU6=_A1^vr8|Z8%Cv8i8q^WdM-hN=8d z$}GdQ1>4JdX2;G(|vyvuf9EWRUgp>*@Z_P^dnP$|M`zNB^E<(}(>gA{x<>!w=5;AE^%eiA ziSO6?TR!nuxcjx0-o8DVk3LMen)yk2+Yix4ySwY{rIOrx59~c3_=8D%TE#A{m|gcT zyzkQz>bI(rG4I?Xy!J=!{kPwYD!tFo7x=7n{P*h#_Hx;A9w*~e1C9r*U7|AktL5$P z?9Evzk<5qKty5%b-HLyOg=T~l?kbO4?vr)-+0(7_7tZ;1X-T&7u~WSlJ04u0Yh~QE zJ4#k-N%W?w={1%sdbL9$m-U>^d6l@MLngm>hw|$?)s3#2)s`{m_UdPI>&p8F@7ms0 zE0(cdqViVF9hH}-PPH%mc0$%Rv^_btbM3`*^SAWQ>-o~padb)6w)x3dl_M9_PgG%_ z%2V;}^~4kJw6fH*7fauK<+dws`G@9Mt9?^-w%5t-uukvL%x(B$@xJe|^?UujeDk4l-Cf^g=a*RP-+r@; zEAAWlm(2XRu(Q(R_Jv91g15ONu9n3to3b{n=5^}!SA`o6eLAsHYFe2EL;0G;z9(^=mI>d&YnMyD@TKyp3UC$*?O<>gX`US&-?T@-#l#G(>m#`IsZXV zQ@xUv>(aL`JT7yp)w9U)?&h@oHaV+HPX)S9G}jmEfBYpAcIBhVvUTf#LPo3@Z8`9<`r%;m#kWkE*Ly zT&c;|$vJGDd!+Zz-TJA;hYeceo8;@i9PjRvX1O#)IRC8%&XDwBB5mkT6H(sxcMsa|<=zk$K>PisTPug<8?c(iJN z*S)5!s5=*K{+)M8LRU8?{nWNlSKFQ3f3qVl_r(6{6N!y14w?Gb&+YBIWo@2^EIT=P z?l#(LOquyAs73gxf!@sp{i{L0U&G|8$#`~3Q#h*e#4ZTGMBZe4lzbn%mZ z`Rwaf|Mu6fiZ^>bd#6ut^PyiF-;PhZ! z#&lJYk7+H(M0e9nj@N(q*WY~+b#&RnME&XIIS()Hu5NzCaYFgR^_7mRCYC(iZ1LLd z{7m^IyS+<)v>ys9e)a97UFYg!MlJstR!z1@y?bMII(y&LRvVis^Ea2xsn`FZJ~dwK z!&ISJdoBO*uliZ?$wvFp@?DFB7d2jYq-UTv(&5^%_{WDAs1bkUh@+N5RNkPL) zvl`ab@NjZ*mUpp2N~%Ec|m)cIdm+o4F?U)R`A= zyu3$do5pmjzi;Qw&8zRKoND|_{6V$$UFPx2?O>8(?W)@C|wD7|^nRh!(0onMY@xoE2G9dY};&{I#j84Agt)~pCz zdH#HOuuhoNc70VV-}36|HJmFl#6F)aC_QTxy>@AmW5I%^+RoSBl5f?fh{W!i`QXD; z4fC+fd$;6fW)`zPn^AXB$)w`R%5$!j!YwPW?BUOAjR-$%kt93m-@eZ+AHPh`O_ved zD6%1W_cHG)q57p&J2Z~{xm5S@^Nmye9*$Ac>+Q||xyrX!E!;NGSMRU?jdjM~+wUYF zt7~7l`gmY*+%WPOj|D)HxbndCvH||09m` z{~4mT&)K_IG%!E^NAawZP^ov*UB3L~?Tvm|-fZK@y!P5;(WU<`g=PESnf|Ns)8y+b z)@xp0?HBI%(XOAnvuOF7J8Mn1&!4{X^YY$3nuQCpr_YnwGq)#?`DToV#YF$REdS;m zsS01q`8R34cJ;q>7p=A0M{{?%&yJ7UyY}#5t*NCCns0pnn|*e*_oT4&jed((%BAE- zzM5`jqQnwhzWAK^7QU(?b5{F9MOMF=n;ZQKOSbl{IHehS^`%PLE}3r|Z=GC`ab4}V zuj_vX?`_H39&y}m-dVlgzP5<*SfQ8cqN|-#&98ioXUoo1U9-)qWq)>9G0VNO2+#gq z_ij(md@NfWtPvZVm-6?TW!8@qU$K8uW-0mg`TopX z(O=Ai!akYSXg`WIK03kX7x$L(6UN0$&lK9Yl-{!MtvznHAarH4=ig_hnx<>~R-H>I z`OmP$U#INbL`|df#WsJRF>>MBGDSLkjt)8x<{{Eu3q@kuJ9eItc%m zPv_Zus-D;WaoNkFldkVF{T5Bhm)#{B*Sd5zubOYzb3sW)?*z9fx33J}0l^~Ls7K;TW~Q)}(YZdYx-W}`GI z`hectSeZX-dM6&Q|IZLxQE_eAPr+ADIWPYGXx>%h`S5ji<+b0zn<8)4xlT$AS}t2@ z+9%eUmwIZ8t)zkqCf!(Rk=8r2{{?S#@V8ZVkFNZD zC0VC_Z(|pzU;_210z&}0`CA{KCj3oY8 zK9V(h6#jdHxBgUZd53k3_6=+8cAxy?vGvD4w~q&tUVia^{x98nT}D-V`;!b)Z4ST7 z=YD*sH*D^D)v`Fu=0dr1Z|M1x+Q+;XTmJ6&a(ark?UrdpWs}(SnqT!4|7iQe>+*76 zdyaaTwe_z#_ZFvqt1Q^$t|b@x*hc=qC%YD|=TrE8l~zt$mNRi;%%#R%DSS(=`Ke7; zG<-H);b*&h-jcaDSA|Tz91;Df)~2R7Y0oclEX$EJs6GwVJ@H-F#OcYx2l)RxW2 zwa72%$k9`AZ%w~%?iTD0S+erd_f_^gXe%&7&yESC*9asA<>z|9yu6Hv{)G{@zuC(j zSK5}_XoiqJlHe6>fnubnRZ}*x1 z=4|29$y^(p4sWz&{PLn+D{F2?>EpAfYrVz3<(#oto6Kx^#pC4{UanfFcNPjgn>QYK zw56ev(;z z@70@r_sHrk*V@Hby#BSnyHsS`<($~5AsugZazB3h{xhJOD{E2L<>ZQhUfa~wDj$w~ zim8}%+-XPOd7sSZ(UEDpwg_#>@iRL3tGMx)Vc5r*iMztpD)P$DJo)$6p82Xx;sfpf z3~UkZ^@Yn{{CYR-2Ct2QNzTj{k%7~jUvaKk@%Ulvr`KYsHYy9(q!v%8zN?&2|Azau zk)?3v^+~+@KZu8C-M{x*``7v($$H)|m!1y0r@cE{GT8HD-m1RUpN>|zyr|t?8vpzG z>qhTM(w~+&FBD(uA-;uQCcEgM>=mnJa|=~!JbABfXr0;~daAJBO@%)uRKv~lrtzeG z(d|Lk%xa~q&e}g>o4EQ_*u@{M(Z0K5m=!136!B-W%l)*ezEW)&)cwTf*UwzPRFj|6 zA657E1Z3SR2|jk}oLf-Hi~Aj~=j~k2RXkO4>xFMC6Cd_0EnBO4{m(i1NAFv5Z6Y5w z%j{0NlG`kydR%eipFV?n<}2Z8e2ZIdy*L-O^>4eb>#nlwUGHDjEL^RWT_@8Y;3}WL zQAvB9Wr=<1`Sm{X%lB4=Ubo4=DmPc`MfkV;htuxu4V+nUFQn|^$xoJ@<@yVcvw!q$ z|GX|-ZLRp>rBV3S#BK3%CtXZh5`7gt^d1sPtmT0G;&deBmr*~a={$&1?WuA9zANiY zcW8G0vug;eBf91#UMr+Ac)3QvCXqQ5()puY0a=mk2{YHspUR*@m z-AVDX_cfI_X?>AtsP#PYJbd-)8}~h|^Zqj^Pucieb=zW@Nev1;?-MK^6gSTM%YLQn zmdu9oTBh|T4<5_jT=`(F@joHnvS;spv~2ag?63Gh>yy8||LG5F3tpb{TWq;;s+ioA z%)_-4U;k%dvoRO%-Q!)n_P*L*vvY~Oy_06B-t?K@?uFh{YkZy_e(<<^-IISD|Lm{5dHhf3 zl@!xm<*Z$koO0X5G;WA1@3?t=ebwvJwM#ARBHpFWyu7mWNYtc@nNJGtf0&bH^(2$8 zF)?|0rrF`s(R+PQGVs4!_0?|2-RpD0{Wm|ET$H>0_OJg8%JFYb`ReDr&+U`l6Tj-- zYjXj4v9r8QHT!C}uIM;X-4c56k2iDwsVz@~;`twy9cFZD+N1f(>~YkEKij&V#TJL8 zKKZ-o&zoOUIXwO|>|2@5zALWdZqVc?w`2XyCY5`lD-`I=cX+6tIGJ#!2Y*B+_G?nN7BQ0FI6|TuCJ&}>eAlLIqALc z4(WwEx~CTYvs=7kecW7+t5JCsS5}{!vv+E0rgHE8jU~ySK6(Y%dX-K#da_M*1H0*2 zt#YfyfvSa*U%uygFVfxa6xv{U@Q;@5)Kj68!<~*VpJuByRnY3Bbe;5vwdc03I+&c+ z{mi2%@|>s$&$Q$ljFWsVkC`k!t8AZt=4bNGYd3yKWQTupUy%3jZ1eZDUk^lu4PKqH z{jHzaGiR3VqUG}Sb;oscd@{4us&wan^FO>+_3f4`!dcffw|UN}`?&wd)c*`Ab(U*F zH6JaRvrnYZThdZJSI=8*#Xa^9t@k@i-GwUJgU^&r+;12E@Wp~Bzu$_AuI*g0!udhp zb3dl0_V@SRyVR_IB>gf!KW$cerpm-_>y0Oq{5;jKZ93}r?sW3)g?yna+Yaq{DeIE9 zIh7}?&BU!LEN9_X1ziIftqDSFGdk70uBmLgxtU0Byv)B^{-2@w=e+1%9iO1dUuyT(>{q_|rbL>1x3KLYXUpBqr)OpKi*vY3cRbuX zd;Q*;w=ph{t=+wC#nXRP$-A~4s(V=-UT=D}Zr|>C#*h9pw3SD>9$C+#U%LG7)4AfR z?u+?ue0>@BP26C4tg5c+?LYnMqHRYKXJb zS4Y0AvU(Zi^yc!!?H+H;PF8FDv$Ve{JAJ`-OVc%)Mf)>t|1&6Gd{!#2b>o5j+p2f# zS(mQbd-Uj$)iN3Tk34x$Z}n_-@XVjGTOO@E@+8sSwdS??jc=-z{$1 z|53MPR_Bh(i+`*5p6phfYJHuYTCEmT#COW9{euTpLPGW$ny`I)!XxnSAW>vZFhXx>L2+LyDq$M z|8+W1aTX`XKiziqFZG9}>sqb8@A)rXQ4h750yRowV60P+D<)$JYb@_FWYYTwzSx2|96v3$d;{hh}j*uLJkWU(99ocNUo{iduA`*t}>x3B%-e}*Hw`9b0bn0b+iDw&kHpsf?Emq(PjkQ{-Ju#T=wfDR#lY4h}Nq?^w-s8FA_R@W;*W1nH zc{?$4`GU?5)tkQteog+eHqososyOQB>;DXll5Tu+Vl=eZU;mu0zw+MgxO>vJLbp5v z{qKcVE}io|Kk>`4>fgCKF3DFewQ{bwSG|9ySkV0={fqofmo={SOzS$8CgztMlWu9D z%oxQ_m&8ozHsS8?xPMm7D)V>uTG0-Aol$62l=F6No&L*TDciz+**32cJh6LrVOqrJ&vP_v-k!Hy zXEo)@KJ~IpE~CEX^J{!Rve+5^Xvtr)qmK^=%E_JpORhRpRfwj+fy* z`B&#XUcTWYEuD~NIepg-8w0!l40B749$WNuMQYg8t(`CD$xY2YdT#MUljyT*1*up5 zSiJpwuz$~o=j*JRERQjs6uJ9QwN~E!UpjA&jbXskd9Ty5v+Ts%LpJyZA3jscs}*`@ z(-EVSuh#8#lzqK!nx4^jtxWyb$%p6KxQX6ey|`!hhtJ2JOg;WEddtkMHdPrZRxE4G zMQ+W%XUl*2TFb5Lj4U)u?B-F+kYz(?OZH7SFFQ_xkxKEKzH#aNES_`uRWQp7N+~ zUiS0rDL5{P}%mXR|k)Ue%&@V@^O;EJ5!nE zx>fqG^HmDxv0Zq2&D3-2**br%LpLO!P4i=5o_}ih#)wuoxpVV2RjH(UO~0o8X3>|Z zli%W>oj3il@zLW)=Y>2?(ob#d{%*EWxOZanmEZH0zkVC&HGRYKleKaGmhY6dP1+JI z!{3v$rsS=o?v~$Q_Hhf%RP9MDpEzmp6~3A4bbO~BcN1Fj%Jo#%-M-9U*ID|mxMUl( znL0~Khvh6WTf!d9cxWX@m0Y&Rq|+yJwWDWVl{m6SbPgY*!UWFm2mkahEjgxEb6_U> ztfh+sy*cLVMflK5aZGzy5jGyDZa83y;qmIgj6S z-}z&;|Mq=XmR#0bEVgU1wl{+^;|cYG;5#K2UlhKw3%0L)r>S02^G}^Om^bjOuGM1w zgK>ISY~<^5@~=LnNx$S?W>)hp zOyqqx)98Gz!X2*f@{ixf8*Amwxog#R=9jvCCTm#pu7CSii{zX5DhDR2UY(NUcz#B6 z=3niMB<-L}Mi(BhZa(y=_SMAA@3v^#x7FBfu3Rmv(_Vk) zmaFOJLAjkAJv@5vJmjCxnl*i1r>w}Lm9N#x?lYBq@fW=Fdb_gNuN)U`xl2~tm9Ml! z@?YVP`uxguYf5%hnP<86eUbRR)0zv_oZ?;;Ny;#P5Bb>mhE1fJ=i0=!ZEuR*?@c`~ z{!!$acek&VolhS(&&QL;?c3_DR?Yhy5bM|Rd*#_Lmg%ZK7mrClO`c?x%P#ZJ^n7)! z^1|%26E;6ZKD>?m?Y2#Ss`wXc@4LwnTeog(Ro{_zYH|N$=1I}FuT8yk)2Of|I(=D2 z)%hbg_1C9e)Q@vsy6<}1&8EdImKv)JcNVlil{j&JZODTqd!H_x5^E84*T42d`O$oy zABzuvxD&rf<+JCL*ogDfGg5AOGTR0`m{7NP8@tfqD|r`RWLh4R+C2G3`-kYm{}kP> z)`%9&iamLH1{)7w{mp|v`CoonyYku`d0l67i@ixTe;@5t`*tibebuc>^N)3J(*hgK ztmVJ$k6*Fw`up|vXF{Ir%Ka(Rc+SK0)XgiAmrXfKelOIiS?Bij>wkvV{~6}BTwWe} zY3i9*mqL}(9BZG}u5;UFzcYDf#WCaCA6`aYefn%qncm!=LDQbjRSz`V#5!?*NtOJ& zS*t=TW9J>3qrdSkZ$|vfL#KXO=sir5tT{OOD~rs3hWT;X8*h1?dHUpOd6dZGrd;!q zS-dABX1uHBUO!Lmmwfz*{;1P8cVzqi>Do2@*uE6`TUOH+Nh(ErSz#0w?i6|BJNM)X z_JZ$xwa+b|B(IaWZ|Pgvw_lVlMI32LGJI}-=08KswT&%_8-<^(+}XSCM^~hrtI+hh z{VFn_U-=hDhOAk<=*}gPU7M%xNH?l^C((H0x!l#$YVTKG*mhxaZuK{7x9I#IKc>I; z{Cn_)?cdiGq2CI&l&1wPf2&@Z)72TdIN0Aa()CEW;O)*s2DjE8P$@pY;nDV`)t^<1 zwYFtX-7UBMfqaY9@y@*Zt$RGncE$EAFFYYvy#6;=-TMXV^Rq&=P40e8(+cQ%+IQmn z3DbP;KlYb%OV;z=h(20hsZ+KgCFQKP4BLdBjm#_6H$2+$+^f{~RljpYXy3)CIqLm& zsy{Y8j@

{NbO%Av-R=z4=x9KZ9m?cF((rV@@mL<{v4ZIJwDtxtIRENhVX)Y)wD6 zPqR5}_sp+ry)IeQ{NyNWWny?NdE!l#{E?Ce;USAvR|-t26G`+e)tO^l_<~JiYNU73 zl_1s2?|8(se&!@JRX5(b=vOxNF$@+SMoC|A}3C^Y-}_FJEk&%YAf0 zUSt2ArVqu^JSEmU9&hG5w5cW5p3?a8cut*3eMVBUw6(r9OVJtO={xT1S-p zXn$9o;(YH9bEkF61V!)tAa35y!c*$e_`Z+3x_`wwE5qPbulLQ;zxtnH;_HV7uUhR> z<#ug;{?@6iQsUd1)xO)RMIKGsIMq1iI#ZBp&cM=B}R z1_!jN1$fIYf1kQ7O*rhzm;MfWj^1hg;+=bBwO`$n*x7$RjM?b+$~O;6nHSn_C}J}z zSsG+qcdp7~rn=~vt?rX%+)_XIGP-DoVXUXrE!WG@cieSyLNBzjlqv0caqhTjR?W#} zwYuq#vh6$Tcm*X{xA&B6`TRE0@7mPq^QZrPQ}U+p*3PTuEvwJUW}dEBo|PNgzIpXW z-TC#(^4?e1)D&k;o4#Ild51uf`Z1x$w{Oh%kDGh6+*HT-S=8}QHl7dXidW?P;(k~! zoOO@=T540oodeOrw>%2?e|x{E{e3m5V9Li0`{R0UbN5V>in(xm)xTZyzAt$7&FbHr zS#8txe%x*kKCE2MQfB(;>x%RI`sso4?tV)Q1;1_Cmu~)eKd0UL>_W5orN!L4{(X~} z^KkFg>fh_@*T=n)v%YytROnOv^MAFr{Px0)LDRP_-XD7ZY~{bY`_qeWihqeWJ^#qIQFcjI z(eskca%Bp?kH7v~7#dc%R4!9$O>~vZ@gH+?l&{qtUF_DGoG!85Y4P7gmT5`VPbL}P z7uB8_yk~pb4UR2ymc6^ZbLT@1yVDO?V&00IGv5FEyomkDwDb2(?e!u?pZ(eRx z`Rq@YZ_A^1Tq*UK7kPfN6mRDRt%L@99{y{sBJC@NqXllh0$*^}8zb-8eyqtIHyJ!{Hrl?zY z1O2KauT)NQc(L|e*@Lj4#is8qX1gts-!=2ae*R=B@ix7!Q*PO;|14d};(OsX^W(*& z(mPn6%`V;+-Tl($TFsVRVRPOs#f|ficLnt;2gUl$Ft^xoGNa%5!}gwcB`1PQ&m9Zi za#}7*ll}7_e$$|3%l1Czi?%Ph_;LBIn#`qaQWZNo+25ybce-o$^1O=R`GaDLf+LDce>a5EK3TJ`1$jI?uirUYrdQL{9M3v&VbU#qt9V_H&m2D) zZ4AHs$vhf+BdBK8(-Uzn=Wm>5V}HKAZo%)W{|tt|u1(CXu`kp+U-Wk0t`}yfmeg%s zwEoU?k7=<*7LSi)@9p!Kdp3LBq)pF2uj+HlKuueZA@f@Ew8%L>n1KJVL;eqA)RTGDB~@td4K zCR;D-dhFlRc;^^nmw@q>(kEZe7uEX9YVV%9;%2F(w%Ogj+ehk!(n}3*{|qZE-m3g` zTtY3Ng&Wo9+HH}~T=BsjX!TmQM&78oVd%|miU$vnm!#DfZ^zeI={F7H1 zZjqh1@k4)%KacLVh1uGsSC5>@oA8OJhJkD|E|1TgF55o&W@fqAvMZW%{%oGA_4=~1?Lp?{JJ&AOywu#?yZ*|tkjG(* z=6-t-G%tMSBE7m4hsM3_{vXyXxw9r$WO4E0t-C+#Cha&NbnIt-Oo2>Ygx!trrdK74 zRqa+BJa&G{S6}|%-1tN0QMQ*iuhMC{^L)lq?tMo4W+rZbadpk()2bH#89W~5Ppf)! z-tubR%spP~*;3SA zQTO^#M8jcA<=gXWd&@p$WQGeYc`tl>pTHmcD>*f1!#+LARy3;2t$}fa`@rP zhYwHsM#{y0^nPT2Q>z}q<8@B86qW=uWXOBJ8 zta~;2YyFeTWsM6D<_l-rsZ2h-mAy!L{;agumskEO{}sM5Y;pdidCwcI&gI{{bpMl; zKVMALk9ps6vtugW{Lx*!AyIh#*G>Jqq_4{q*g8m_Tqol_S7l|;wW2?QFA@r-tf;>H zpP}7m{bT*U=wo&Y#xBdOxl0YB-KyT64}Mqw>&nVYeNyu`N9|j_+JDxPollpiKB-K3 z6S+ZqTJE-T*N8hG;+wa|i)EcmUVL-!*@I6v9y+%FUfK&*f1QM#udEd<&6oIHepEMg z$seoB_75d4FY~@H7_%TZ>V0#!ZQuGw<%g_wql5PB`mkkU)T<)H$-gZ- z1pTUi>i$vxJNdYcfW^95r70_y+a}*%_4Pl4ann3Cz12%~Rc|l;@}EKZ`R&=#v!zew zzEhke-7#bFaiyuL$}1GUm|j?XO+7gCUEIb!J2%g>OsrI#$rpNIs#dL|=tWM`#RhXN zPD*VP?@JbHDODyz-5wy1)3xufD7+ z&mDh9NtgEjl*{hXKN;+I{?C7gGh1b(z8`*@+dHRqQQnc7$r^7?zy9*|!Dsh(#$0vZ z|A-`P6x|?Na`7L}*L=1ght3}RsGkh|Joj%G^UE&^8WhIwtvJD z{YAG;dVBxE_VpFTe%BsPvGKYzFV5z%?%#(m?mb>#bFIWMR3kdpe*J;V!p+M&_pJOA z8(#mzuDsmtfj&m_RFXIC{5np`^l~NKSSOt``H`UrK~l7`KwFl*{Z+( zx>r>=-tG|UaS~;h4E(;|=F!F#RU58mq@9@*d&kpe2d}o6g#@$RRJoI9Kie(U)X)pP zus4~dU{0&_-s-n>rSNe+C-6LVMLfamN ziSjD_XE;z~A3ot9)6OZn87;DRR+azTe`4>tA6<{$2Sy~j^d#qrJeQts`Rnmg-K8m3 z1zs{|9&Y`;b?5#>{$DGOPvif-q0)YCaoBX5E!G-Gk6Cpmt~$>sojOr|nY-e?#s3+u z`x##jm?CWD%`cQyRhH6!W-HI0lOnxhAHTd0`x>>DXJ^vg$yZ)}`OnZD^zv7URNegi z{LE}AhEo$0V-NoRA@feTsq$>%o0s?AEa%+3W#^Bni+=oPIBfpQZBu7zDeHor+ox=M zsJ-It9fKU6;tBp<$3*_ldC#}d4Q z$(7vBz1Z&8C2#BLZHb@tovZ|JbR8=wC`+3-Y0@s;_?X*qZh8hE?kfZw;615lad+N= zUtiC!4Oy~e=eD%Mo&`V4<0neax>U+kv9!y<@R`f)#$T(8|1gH{g zd|`U8_AS3`yI<;3$WEm>+iN*`{VGjmC%*X4z`ZqB_;7aVir0EF&N=r&cl^G*c{LBe zUs=yL(F>P)b@{4R1yAyLxz5h?-mW8hLY%U(%PO99w-y;JD1GQw_|BJWj`A!0boGsA zU)c-1FSTadwq;Y(RcX1*ZM_L$c5mlD4;R~a_J&ni`DBZ`PXEGHqf#WF_PA`WtJOTa zZ~Z%yrdaWNDVt?>9<-E@wA4QT^Uv#}USG$aM-_37SkcdMKB%tM>ZWU&3)(R=K4-%O}qI@=8@TZCzhhdDLRA zM+b{%oMgVV=hcqTJ$^UBs*NJnMZAr4*IHzjc-Ng_{<6aPK2>2QSLZFxx-I+s@bCMZ zUtMs!d8Su-{qI*r_CD8>doMnJ^iO(Sn|p^&Pq^`x?2g=bQUY~LCfI+x9CB@9+LTx7 zi|?+U_xQKT9m{Rka-P&~)Sq53^G#*gKkuL6d>LyNs_f}YKdrfYcf?m&<%3oR*WQ`7 zG@MnLBq@G|ImtXIq_+Co+pf>6le1Q6`QF%LCMK%#%02XNPRaN0*R}~rzEAf^jAP9E zcc4`LM!2k1@T#8)>&`nZ%_^C0>z=ZIEx*pk`F*CoG2Y8x6r9e?Ii5J3#arQvT*L3; z_qX=mQH%ELT@_kh-(*)WJJ<5xyLsIo>z^e2XE>yo`S3KyS9yUQv)=r zd|5Yt?P)=EzrMTiKV^!Ry*%`_BtP}~)o*{!n|$osUAQ`K&vv178Lj?Zi!X4!?g_Q{ zbmYyUi-F%$*PlYTv%sUT#LKFjg2r=rBes)Xcu7SCmZ7HfU2{l4hmexVIN z`Z8j*dikR4YK9^(8y;a#{d9qAhW&W{MTdp74=I(3pHO*M+@x)!qYi2r0 z`LIAvLd$Bg<;@gRi{3Wn*n^epx{3?S-HLiIzKWCn(OH`-yXwsR%sz{2mXGha&*(7d zSdb{Aqcdx$hfwOZDG0H@p3H)=S z+P$oKe!}7TK0VK_sHUEj8-TtDxYUorjAKlTf2lXqQRSS_KF z+mvE#)Oj#o@-`v%_MPq1cTWiC?K^I_^}g1tC6-ZFK0OXIm^S^d-?zizo&ns) zQ|8*ed05r&#KT49W*;av#jTYaF1vTybxU{cMp5@&+p( zH?jFAUjOf)X)byafKSuJ;DCdXcmzohYFzR!+$j+ce1TTU#CR5jcrbId^0 z@ymnI;7O&bpUjpn#%mk{~6ZD+_+j7F;~JeewN#{ zO)J^vrxzcet(a8n@oAy*7VPz-utYWZ}6XCj@jhv zedevN#ZOtg-sFW*-EZx~jDNP7%4c-2-_&@rs^4c$_2X^XRRul4-8Q$b8j8wjUD~?! z^2z@U;Xh~oitEj_-eeUs)BW6}=m!t@Lv8ndKE7~OpR8F)$dMhZU*;QM`x4(g&v4Hr z-@AParL-GPX0Lc#GS%aiK}`L9uf5rQ>x||~eu{e<)RMg}UAj*GgCGBq{|vk}@u@|x ziyumF_q1jm)yN=s%Vprx@(L{zv({*vAETQucCk z1X%z3(sg{E_!imw_d=GfeQ(^qYttTa_P1i6Ib;4a2+3^x_I2e{$?dC5dOf1u9E)>J zvRDqeC@r$>rK*j^C&3d zc*Ps!Ys>QH>Wm$gDhE%N*+zW-t~OsgM{kn#Y5BG~lf9RwMdu3Ky=8HySLDJ@c^|WS zuDkm@KKVQgU3v1Je*Dac3hAR_(|Ki&w{C6Lm#OWGf3bD1<)y9f_I*6LeY5ph_J{RH zc=K+G@hZv6UC%R*NfQ3?+=&0wT%Qu9ox#6*L^=Q2NU%ZnA^;oVBhG=t}>bzeDfQSss%-E~i{3cY&t@=?X3CLJwJg@)M8 z^AGSJ-)n6Pu5o+Ut2~^{%{ot-eC>YOgdCPsBdFB78#2o&D>|Wz(HEt=_fSw8k+n z#W!byWyqYy3x*So|1&JyuzEH3!8u=+r?YU9;nFr=HTxNH+dCak8}Aj3p#m{#8{NKe%zaxH@bL~8y;F>G)v((aX>Y_zgzq<#n`B5HxW#7TX#N~H(pDp?1 zsnOcO@_16=<@pyb+)3J6C1Yaf^=bCiTPKz8{*(Hlb@|Y@ezk?=LcUt9B|_^W_zG^= z@O+c+TrV%(JvYB>O7!;VI=35DA@5!#y;9jf?KS9@j54cp`}4C?+~x^Y?tA5C5%{jQ zeZe{{3CnZ!doIdaoO#acHh0Co^ozQEb;q(J*4f=(dFuPE*?gS-cMsVL$kf$8`F5q{ z$=<1|r}>Zmn&)E7C0KWBaq;|R-4_j$=ljPxzMpkr&y(kyR{dv~f34kbz53>$O_u-m zwtw4qFCZ^orBDA@yYJP!Cp)h0am-Fz-q5e5ck$&k`%Aku!usT7Cc4>O+FI4OsyX-9 z9ML28ylZ9tZaxy9k@v{5=HP#Z30M9zSglN!ep4mTmuUL#^7gOKN&;WZ6W(^=a@e*@ zQja7>OgNQ1&Kufjgyhxb86K~>6e_cI=V`4SJHx)o{Q4RF#p1U-kHfCp_bU1>X_kuT zet0qMhf4?J#OE6xnKDn>U;X=b^|`I0kKW4tXLwS5X}yezsKxI~|F#PswHMfP)32@5D#1yD+i;XL8mY*0`IG?M_chyV$iUEOz(4Hzfv_rtICCoBC5O`mw)|@4EXc z^P&#svUum`GR;|IsDC%+yRE0~N%g&jS61cn>R@Ie!e#&rG!7N+(Lv~ty&&1nqY23RPmv7?v z>7tkQ7L_N>_vI_fbl9c5xR!0YxOVCF=YOLwd|vKXk(>Ei?)aL_sPgu&_qk8AO;yK&w8J-pWa+_VdDo%Ib)Lh-O zH=ic81?W99(Ogg{ljT%^A|VQip)H(v!7S@!M?{)w;%2AS;$bIUAfBIGhgs;*|Yi92Gjgo z>eKFOOk!e-Zra;+Zq?{Q8@NKm2ECijbGG(Kr0h z;Pv6m&2Jv_e?D3nI_Z`7iPidT%b$7JY5uX>bztX(b&vitY`56I`05&8*UiTNjvjT- zTz{k~U${nn|4h{#o2SOQiEI(-slTss`P--bnS0$fNcNhZ=FEK6z3lgccS{tbXK(L6 z9lKb&#DIZ;Z(alcp{0-1FI<}@ZP0!Fi_*VSKb*ev>quR8dvkm9^AmfX+aKAtMeE%6 zjG|w^VphghDJFfme(1Yp_mLC(-^aVz&$`wvbloLc^O^j~AF}SPi#~|8T6w0f%`~1+ z{QLKd+3MGuEWdpD^C~O6RO#{dg{L(h%UpToxVvPtt$wd1`&%)IO>7`Mb5{wEkJOxW)6unOEthL0cZCzqV2!u z*6eGOkIeeEyqwuA=#ux+KE<~UMs+*SmTMNRFI4?x`Eb^i`n3NHm7TR8rXP-K-Qlgh zWn;~p84{az{Sr9m`R6|a*N#Ua=DlYXXI#&FTgT?IfAim#jsM;sag6`Bcay!o(UgrP z_iy~Ee;`|UCTsaB1^dlSC#8)l=H1AZJh=6s{g1ziHlf{S>CI3%v{Ve{4$3CyF?LYpH;r@^GnGOFLCj5#2!BPKXS9pJ7eO`SrsO;4G zcYcPweTTsB+6n&|K9>AFw_^U=>zCyF|1gF9;Lq!ByPhQf?d5-lo7YY)HC?VKe>?bJ z{PBN``TjqYmmOCyw>m%1TL0#u{|s-At-p2opa1cHj4hwL&Ohkwo9ytTKKEhuW4qap zvVRM>MMliqx>Flum`?=T8tkai_OmG+Zrt*!cpx)=2eXxI7&gNMc!$STu81o;iS~_oG zp6*v&zx%$eSKhHjTsUF<>F>U&m!0Mmy!$;T^yAcx=RWjxZ`%3fdL8$Vf|T^hN5fuD z{vICK+<)PE^wIl^%-fV@rcROmX_UO=k4e|*H=BM;l1w~yNBYK%#~(!frPbx4wIzSs zWY6Cckoikg_sja`s*>uyb*VLOTTrt4+o!Bcmdjhu#E&#+u$|F^WouZ3&fHsxerJ^wMq z{jqw>+vC6F+m@erIU}+Er*P!1HT&Pl`0Uf_{-`kf@f8ij^oM)+zpXp)mnr18v+LpB zKcV*gKh$deGsu+&|7Vc9W!h8!_2S+C4AV5L-7@85mh98qfA}Bg)bfwpj|Tr|SnX@Z z|LZxU{V!punm6|>`6Tmh|NPHz!0_Ea%^$}eTV6fm{ZdA7{p;-}#hWXh-0=9@{paSi zdwL(!mOK@Xyt*{`kHNXeU!wf#(p`%Fn3yfw_we+?_foIf?QhyC?PcG&eU{_TiIG;_ ztF4mV1b!qI|+`|&?R*zz|IKc4;&`=8;&xBm>1udi=gZMw8uZFatdTm9eORi4``^MA@aw;w(xwRytT+;uspYnQ3_wB2&%>+N~)OFrxI z>WWwAeg*gZ6H7SrQ*F=B)4@xXc1s=d*p4r+( zCo?W@+%-vf#+{xX!5jTf*4I<5dL_L%H9v8u?9I3T42?hKSW7uPy`t=1*Z;7e z`MOU3!_|2^7o5yr;Vyf2>Z!LARvf$b=Jemo^G{r#=(lKcLGpUHioBRu@z?pU)327> z8GXFpmiI^eQKiYtw7c7dqtCUoUYNXfZ$FFRD|@M;J&|8#*!UPusl4oic*$S&fWrAJUjAozwT>qy`OK1CvmdS(d%1Vo{imP)^ao5bnOJtB z>+!|5>f;a`)5LnPnL>KoLc_j{lV!8oqx0!PO9#fxbiQ7 zIb_w@Qf_6b_YclD=q$Eh3eBoXdx>0DkU5Ln%RcgP@_C0ob{w?;xjQN`@nuB}lFMB+$f5Mvj zb!VCBQ{&}-rzQPom|ibt)$e}!;J+ZQr9Gecg0+MG&UpVe_vtKq;hVeMmY$q+b#jC8 z&E8C&pvi&WMe13FMbl1vwr`i`Ew%3uuUfmWy?Xh=%ctI%>%DxYEyg&VtKw(%udaJb zQ+?x{qF$7N4(_;E_x4`LeeX{DA9vHgo=Se2nrWXNFSGovRPcX>-6i#_y6U5s$*fte z{^sxFr#2Ch`+slG{OfDKHu#;)n#ZPlnUCyaytc^K@78Oteexzjs|ya4hX=RG?XZu! zB^-23=hRY*D}KV^&Lz40N8-${KI!(^y6dX`jOi0MPuOW2+0SLSB-AfUdzO#p?4=nxjc2^{HFN=?te~Cs(;`k|0mXdP0%~NFvTCb z9~pS&^Pc_T&;Or6-2b)6?{;m2w_D|fE0jYgU7hvWZ&!c&wjDw2wx`VHoui$WM{J%f z*tEDaY^D5X=|w-vkJ_2^8NzxhkJ3 z(%vlMnJ9f+xsGd%=O0$Cz2;YR&YAmPT5rl5#cOoy&elJdI)ua(IVa3vwcfyZUgp}` zCF_oqul`{DNb*0!%);Z>Uh)6a+xY9K-s7j~;*awAU&TpYQ@!-{bo{3KE+TuPuYTY- z@zhh6<9*ahP3?uU;zw%B?#EoN(Mp=)S;#j}s77XLLD_`bPc45rzOJ6Lb4}&UJh6z% ztNYGH)yErMZ?F@7{m<&sy#EZ2J1*VQxN}^|yCBTt{BJLj$F}Zk6N9#7M$h;vzITx| z$NseWlJ@uaUAX+(X8BL|$l4;g)FPuN@tegv`+wcdc8~w=v-Us3Ca(GG+&9ZBtJ!b* zx3ka2aoOaTPfuvp7TGpWoLBgmzb$HcT-VuH)V;Yg(96^0yy1_R zALiQ0)ThNn#NLU!ard43q*R6_%@Zu%xYa91UtINS*-hPBH9e2)WN*FP{?GElo6;Ro zxmNGqSyxU>(I|MHVco9G()=TA(%!k-MV_9P%R7GK+kXZoJ6Y%c9}^@w-hH1u|L?p# z*E?6va|eUEqe6+)GV3!_qliL{Qq%&Ii<9y)s<`U28s1H zFKnd0P5aSzi*KHZty7aBz%AUs&;1Xx(fG)`E6VFatB>~o9nxVtC92c z&f_{EMMg#SQlIBqO}%dvCCjx&^Y`w3+rkz4AE!6SZv4BS>p#PuHTFyGSA~4~ef;ax zYx?hW-9OeJ2rBt#+VE?m{H5tvv+8}>uPwZ4|A+NI!^9gIzn0G1oGANlw*LG~jWb29 ziZN9^eeOHfr2B>3U6Sp!CTsQaPuZXKu1Lx2{ks~q;CfB$!~NWmKIV z3A<+FzBuFZalX|nqi&v7n&vvoVQKq{vlf9XO)FNn`nXyZJ)OK+lV7GH=F9aj_kaJ} z8Xva$&yw1_{?8KoY(B1Q+sAob?r_A$Sx8L@i$)ke5$ct`%1MSZAXOTSFWA^anur6-t={zbu9KyW~q37=*Y)MyvF|-n8g2N$FIKnFIawU(7U{w zcO9#9WsfddX(GgXQb}ete?YdT>(QID-3n(t>)vJ4{%v*N#eEWzdP-qC`raw$JzphM zaN|Ei!;|nlwm68-8-#(`t@&R9P4X~S$7#8FxnB||2X21 z(ELN|EU&iO_ug1!-@NwE>-Su9<6AhTX-SIUoiN>K zx4c;DWBzv{03x$UAy)h4ETtMuSLgIC=UJ=OWVhIK(NeQ@i_WBWEEP{znZHV9 z>z-}9d2;g<=V%_5xMOCwW91Z8`Ob(PA+5d%m%mu7?~5{eJ)hh3ce2E!hzI6^g_C6M z68lffcdp&A?yAtc^w>|wXK!|se{=Sc@%kG5&25$DcQe;r%Rg`JuKAy#Z-PD7Wl3)T z**jK5=^oy;U;RG=+q3@+$JTTIXE+r7;d$8Q$Njap+|su{o^NQ$P+Qo4Z1Z9NX=U$h zTuOrD(?7kckz91wv~7E0>8Y)Ij}-k%Sk3%b`_jHeE9Ejw@5(Rvc1~qm=fM*xyg$1> zK3S{Qo4GGT{YlO9-*FY*=P$pp3Cxy1pWmH5i9JO9srrkGKiRuEtq&gGc;5QZ_9^>K z|7Cx&SbtMG)k>(qE8$Dn5xkKEZgh#tjWI*)xC}IzFPaA;luG8$M$Sq^HciU z{!4XdAHCHN3_TPZJ>%r};Q4=NTwmQj-Bk5S!NH>NIn_7+&0lE#=6H3!TL0=BB91oY zoW>Rs>25KM^OM&8XQ&MiF)Onxw`&evXj!B0d~u&v-w7dwX+CN-eTayVVMR zh&p=zEnoMfvXyzK7Ee3>Ol#w(z^a`)?e|sl7(bkk+wfu8cJ+?@gx{fe=j49l&O2Xl znDNH9P?q^IZ;uyQK9x&Neyz6T?~OV4wywIDZ8hinub#7}XU@dV?5mpdpgMGW;pOF0 zfloWVO}cHbKafAz-7j)JfBlbX!s6{$-nWT8TzBHzn|XhK7e-uLv+~7u#d}pQzxgyS zNlen17-Yg28j`?Z&GmV9?%ml-7Om;m{PFf<*!2UutZ%&hq_a<9hmWho6PM*bZvWzX zeK_FR_vhO|YjdBi4m`Unjz4)Jm%kT7;RJV8D`t``&Qa#`K zKSQnPx>J+4#B|INYFa8gZ~n8|%W;;sY65?UXDtu-u~c=@w&ac5JwCoTl4t*0x2ojJ za*?8-@HtQK{`3CxuHu~Ss;KlNXt!`;|3YxW0*{xhkSe^Gv)p|4J`qToNn zWw!qe7jEtR7=I*fOIh8TNBgti|5X1~_+?-GU)I$*; zPk7>+E7R~dBz$hXSI>3sKN5?d-M=k&JZ=zk4ZfBY!Ua zHQ!=$*mYAY{`Oh@-_rZGNS}G&S}o?kK!@=!=d!IAjtlHB*RBt!Nbd=>KGKZ9Z1QqH(ZpDsLU30iIPXa2qY52WQc z9@~+0z4WYDB&WE+(lc59B^LP?+n+`zC7LM&FF&&-xE;{^3|3 zCH!q-kY#3^=H*&@z4lvnjC=oG{9xBuIp^m$gZ=F;2#J7yn~l95yW zaBS(~y9~*@TNj^SsNDQRDrEUdlS5l%9;WX14}MhNy6pMEdTEp0v92{M-@f;qbNW@Z zhCR=O?916RP47Hkt9|KP_tN=yzS@0yJL?nQ<3sk@du8ta;JX~;dUDgwpyPk1o%+vU zCO@_O!P6y+3a`d&eXRF#{nfhVjWw*-A79*4pU->vZF7KghUW{J2?75Z?mO`R5G`{G zOJ^%?FWqoDt?4|a6 z{fc!w$9tRCm6!ht-x+4^_CxdLywZBfaGUVXIJ5NqzIP>yO4o5pFA|Q}bnFU`mjh^U zNP{th!GwV;!K#Hp>q2Mp>!_nbXQfR}bG=>Cqjv80;cH9h`f1->C@trwwRGZF`4*Fh z5BIaXr`13H_u}Vt_Fd^e>KPlqo~^vP^lR6j`>DBq>tp$q#UlfkJe2Q>{#75p^3(ET z{6ha34tYPeo~c-SEo}aaYd>rR_;r75^Q$$C2%TFa8z+h__SF-Nz%_X_n%B??+epEaB@LR*Bosp%USJtlGSDE~( zw*BY#`~1%H?@hZuvo&ke{!Pn2)_L#$sr)duK5E}bw)Mp;Uv1vYU=sUy0;T`*JrK2SXY19ZmzlDe}tgZD-x0bqn;+fPK3FIB z;pw+!HO31zHW{5_o6jHr``NaIUZrV^?zP*gi%W&PmyNzywU@u;tM^M&Tfb+YLV8o? zIsI00=-T;W)#3(r2iDRm*}#}p$6u5;Zu#+rpY6r2zyzsFmn>#fw@UuaKEJy1>?Vy< z22K9g-(QIre=*CwYfJj2uP1!Zc5mA4rjl|pc;cxERlhI#o|0yH&S~;nW?k=x)d!+% z--OSqYtET&D6{yq%H&+T1s-RN-}h;|TkgH7w<_!SLRXt=2i^ms-Q9YoN>lqM+Gp*T zypjD+>GGGodiAy@AMO?F-@RAZU>|>Jua-f{!c*VxJYRG*YtvfUHIqKSJHPA?yN;L~ z#|7QgiJ^}-Gzh-@#Px8sq*v~eOs_SX2VM8ppASC%pCLzk%JhT3_@^qQnx8%Jt>-^O zZ%JZs*QC1m6+5STZJbiJ`On2qZSS&|J$L*i{=o9lh7WFyxh4%B(*&MWr8558dN53{ zxX4{sYvWQ@PTTtP!6)`-|D06M_M+&>!>ReF=CADS|FU+&$%7_;x`IQsG~E}~FTD4M zec$%&KinTKndY$eiQzH+KVPy=ZBffiuP~qnHc-Ws3}9npzWW*{ST`3 zA66e$=QR1%Zj*J+sQdO;JL}|F-MP%hK}^pY>>cd*vM$&k+RttBskMHC+n(>Y4F4Q0 z3SX}2_u|>&D3QxObGO#dwz>Unf1CDs))%*0ce9IqKc=RDY zQp?LPlly*ze~6FzVBVKwy8YUg*WDG(Di;@>SaagAOwEqh%|Aj(yCY;uYPRkC zuRr9SyJwvL*!AQ|+P-VH=R4~&t<5g}GmMY9EiAdyBVQ@?OtWVN8 z)`iQ>`lo)ap6gGreD@yKC9h5$J~v5W@``_w;%)LX)@glsI&ZeEyHi=a&i1JKc;)l| z8M4;%@a7+24%_Z~y~<@?=7A@N?pXY>3;WN|aBWBC%}@Il>i7Cq$+{olb%^_;^x^fp z^V1od|NThXe`&d}d`(EazR~CUzU2!!#joxB8M)oa&hzi;lH!N|89H{EcfLtJuqSk4 z$BXpVcJ)_F?X})5G<%qS;p9Q@S+?@8cYaNqSZzQx zuEl86907MH?d>Z!d#*Nq&)>RFx&7!qmdjg1OS7Bhrx!JE=|0?3TPb%WtW^I@&G!u< zGAqCR34AOs`p2fEH!dU4{^C-(68687s_NL4KdoPQIPBY({HuAz!Tp=&?vm47b9C#C za4|LZolfEIwnm@hLN4AF+FZIWQ%Z3wv%n<=kp?dYPyxSysX=T8m)3=Dfj-xK7H6}P zhn?cG*%uaUwOnP(ANC_PEpLzOvO^tfYA!r6zkBGFQh!*sI=!~toxbI1{;<~3!gR5a1Xox_3AwH zhxJWT*A@iD7Cq86Vm?1@$F$%d%vhA*cfLDUxLkT~|N1Y}nmsmd-*EBmqs^D! zUU28(uyB?8d-9ckP_}*Au6Z#Vji#(~ee_=Xc7^rf=~CC$nxB}jBG8jJ&&eV{Q_FDj zcE4pCR)_wv+Bg5%pNSv&`)tBjR-8U!ZnbZ%-pi#HF6>Wxtu?-_ogJ;)_bOzn>D|5e z%Mt>zYUh7Y_O%i}%Y5mY{A)Jh3+}u$dUlbVC74CRE@5+=C8_SSA zGY{6p{8;dxfnVujn68nn<5$+H=VxmAHgYvyzOMdh>8aV}Rxb{Pip{_N_({ee%a4aE z?jM@?nm1Q=$^MK<>}_T`Yfk~ualAT^^tFlX zoWfbT^BR9K>}a}nN^V~47VV!(R~%#I zgvZMxK|(aAiQkE1<)(zE8ZT}>sNY&PE2aBz)uX4KLN`twztQgapP}FWsb|J5TOXO7 z3tWF|Rm?bEzN#WE(?eMOwys-!ulqUntCfFv%~yRfK6*Lx^Sb@Z|8W0fzaTY-drfBe zFW)0;CS-|yit@OBH&SG!eOvL5kW*GMPnSj>%MNb&JFoTH{15;BGq~?nv)-#7Ht(Fv z`Mb)`?AszPl}+|}apay+{@(q{my>5XN%I}gxKsJUsy@(l;<@E&TWtO_JYLuSpMlf; zaIBvwoA+(TZ@=rFOkuC;UnTbV3YYGwcfB93?)?{b*1p|p%dF{#`*~u2w(BNM+{nIK z;nw{XreVID=WTtcE$cShAbX+koHYlI72j9>Q|Ptmd;X0O)%Q2QUicw=Buw4=`d4cv zgWSB-=6^qn_Fvj+J7f2f^Dckq+bPr^l74jKt*K<;qAb0Q=XZSM{t{Wc@xt%o8zE>xi@8s-s&EM<05#=|FjO$#@9bUm!*ZOY4Q1urlE z`nSz4{rcm-uM3Z5*SPpc^L(+)p8Di^f2dqfq?6;>B9EJb^R`ab@R}ghzy&Y=XEC0R za&cY3uCz-bT{+(;es1>V!>cz>T7BV{^}~7X;%$En|1)s1ZF+QfU9yqh$5YXL&dFCh z9+XQLUb!|^>$m4`i`V(*|1my%{LnILuI>FNsoRgprXQJg=tf1{DT}FnVxDf_kALs~ zu;S0Zt=l&ShEKMXi*;+Ue0}Qae+IdVD>e2P!>+F9TmHy;>K&WIpO)u7b?4gGQ2OWf zq_r;F)L9!UUd_4owCUfPiu(gVRyla{wHPhArDRjxlZaZ#q(udv=6-ICWeKMS9$cD{O7-`QXMgHLO*->tpp#rA1l zD}NEW^Ga^XYwoqqL35&Ce(QYZuldH7eWfkKa*f-5O9J(=#8 zO=Q$e&$4?H_>`b4gCrWnI-PrPkikg)`Tsc_ja5sGPz0 zYnC4G&6wZ&68UCr`<1)mc5Wg|*~Wf{E>^38UHgj<9J%)Qacp1uqui&bY79RrZfJ{q zm)@!?WHDj0ykUa{^Sp-3lQzfOzy7Gt^>@j>>_7h*oS#BK)IZO`cBpAOgx^pe|~+`8mi}iXbo|TFV$=NNfA%}SH2Pi16cS;o(B^RKtRx^KMoTJUheBtxE6mFzp-*=yYjkq)zoNZP5g z^u|y5qjgfT{EwzyYiRg8x0Kbx_F);D@qdOIqw8Abc58jB_41Wp=LUy5u8eK^apatR zaBRqn?W`|q=H>)_+w`@5=DCV>=bb+KuAL+GcT$|{Vr%D_DLpG|(%%`JzbhIax_jqR zooglGIzg5PAMi6iR(I(5&v5(c`Tqu;2lM zf&Em|wx?n4DjU}=*|~J*v;AA9p1Mz}VV-zxw5 z7pwU8s!7o`mLGN*KQ^=c&v2s8erdMTbgTSdH)SlR=6QYlw>_}>^Mn6DOZ|!648P)H{xf{M6(1aX|KUHk z{|vXM{suYp-1(r*8!x}rSu3cpb!%%vn`v6^iam_eROTPK91#~Qcs5w>)#+L8<{#_c zn({Z_Q{pO@NZ&G{y6!{&>zE&1c|!5_7rq*Gy;?HsbNpnj8sV!);<-wmO!&xq_eiqb z6Z5aD7xUHc{+d>~)IU9Nzx~DfiC13jYVBLSB<^KZi(0kzi6ceJyq>V}7&xA=42<^X zJW~*GCeyNwsq4}(L9Lu&%o7I1- zb;~6ux$i~!5jWc$96U~ZU9;-pQa_vPfB5E@mAnoKxuaWe|AY1X&Fc~OKkSN5&&%1$ z=K7zZ^m^gnEY0Jy&R_rXpTX#}X0@gLRL7BXXrT}Ii;^b|F&HJVy7Oi{oPZv_x!R=b|-(NuKCZ9`N!bH*~?~e*2QVZ?~e5>vwk5Qa{zdufP5&RljFe(d+wMTW=h=Yc~JsE5qs>>-hf+GG!}P%Z1I{ z7ajGf&@TMLvfZT**9*SaEE6zt}isX+*F@HUq zeDbum?B>;P3trWRwXG?CbWgi;wyJXL+yk#d-JUVuX>eF>@glWtzRAz{5V!AjF3+F2 z->O@6_*awG70bu3icc+GY_@Ch{12r|s@Qs0W^8y8bt8-KTEd)1w^D^x{E?hnw<0T9 z?CHwe-7A)IT#5Cqc<*&$4IhW4=<4OQ{I+46ciF}LUG$~&Qk`a&(UIM`Uq!rM{AYNO z%=@3AUt9jz#_r3(FEvijGIw*E`Qg|1xDQ^h_sJKR7xJvumHd8kzqAHOr+o zJns*V67OrDAIm@E`qap*ssQ7sGS_)7?o!A)I7M-##1w`ArnClG2UZ3VhAkKPmpZ{L|@Or;lGx`&yb#I<~ z@T7|UxO~Sg^KYf++f5|izR#1bS>3&q;W)>OP}^vklmffG+N|yKjaHkdUX<{4vvSS8 zI>VkTN|*Vd)%lLR2`sK@?7MZc{20Hh%Lm4_DMc$k`^>TH$Bc{dSI_fb%Gug4UvW&@ zW9e_dwJW{qD(5pVRGEB(mA&ys0$>o~Y;wuFA)DJzXPc1x~ZS+Tz>`k(u`#~)v9`I+$d>W^91CjDLZP*KQjcAvR* zZm8UnYnx(LJr_}ZtFmD3`a6&RY5oZNeoW47{(lBex%ta7%$^stnN~iX=l97&g!Px+ zzU@Cl+431RLS3=pN9LJ*^z6Lz({E+tq?8>qDL# zw7cH^XJGikKJBZxk=us#f6Yq!|1&r#?XAE2-OkZ%@r@7f`@V0CukpDu?_S6>j>kE@eokk#@Yen7 z=k{Ct*!##<{D{@EiK}0T7yoC-j6N{!JI_Ul?-J+VJqdojo#8*jE_;5fr90;=`ZeFX zvDM>J$ZGf0yjfq~-*{DWzx$W%)j2`g->h1yIv9MerE>Yy?{E9P`+|DDphW)*+wKSNXc-{zbD?EkJjTJiq)<%+KRzwP~7-)xzC@RnNb zd1JoT6AvD5c=_v^={RW;+8h2*2ucWX`FKEJzoL;LZ4oRgVu@oAoC@cDP~eW*V#W*zLeG?w0>I{d$wlqVU0H#tHVq+cPw3h`p=;@wyjdDif&*0Rc3L% ziT6qLkMo|}=P@PCGi#U`8s?;OEVPs1&nn-dhim5Tl?PP|a?`SQJ{G^a-gnl22D7U9 z?YBd>U&~oiZTY0dYt>sR@qi@{KJAp{T(|1ol$Bd+{pES3HmsIZEv=6~@l*fEugXg` zo~vG-G04?h+ARNWXZ*{!XuDgp_XMYJui?7(@x%9!ElJ)HaXP1Ll?&VcGaT=_o+epr zvN!zozx4CZwWn^|GylbZ2IpNHuD{h+o9@4_P`3Av(9Lu2FNV2j&tK+owj{}5?d7t& zS(Ozs;hWYi)!k+naINI@TIsOemrEsj!pk;o30nB(z~hf{?RzVu=jY5lU-LupQQ4jk zHn(!tL_Kz|S@ACS&c`3xh5s3t)}66kcIjt*y#9%wYwqz)*?H~ue}?&w*PnT>^ig?{ ziQ^oXKbyXpUiq-{Ri)rjKh2}Il8YC<4!o1K?c19>K0Yq;-x}jzM}{5V>btqdOmo#m zOMZqQZL!V=zu8r)z4lMLtjGE8VuI#>hJ9T8Mavd*i>h3_I!B#rRd%NG(%3Y4#i>(U z58m2+@WG;K3i1of|1<3C&HY+mJyXU$_V4*kwUYARCVXA}O-(++=J&S=oBmz=u)M9t zQQ~Bir^(ORugu--8P@*1J~zx}s!Uz_)u*O=*NXg$FaN_V|1J9}$CaqD;9i?`p)%Cb{xJAGW>-kr#$`}Qu2nfPr6-+ep7sVR9s zQct|^`PlV-nw+TEUY`$Jo_kFyd0OF_d;7wd{|vGfY3Co!Z+(2FM7u-n%0s7Xmv}U% zlp5?`_}u1;-H}9ev#+r_h&2fn_1{@1_V^HpA#O^&$dn_nz^)W$E! z<8HyJ0}q<4r9yWvzP2pc``(VUysozqM#n;Uf*m*=IJ+218AKQY7=0POnl5oEo5y^? z{tH zP3UnkD)%-{pH_TlQgz7-?aM7YmuBC2u$=R9%kt3w3g;bgw?U zsMUP#>fxP#V%CG&-gC}7pFXv6kDFdZ`=)>Um9@WRU25HXyu&8CXh*yER)gq`FVd&? z*&cZP@5j1O`Amz;v61f{zxpjDG(Yvnn|_DfG==>&;alJMxBE^_x%T)xW9RZWURTzt zZF_Dlz`t_UH|-Vcj^94HHg;vTxAe-%zb`tRv3CsCPnK1=^mDdbtLN&Y=AX20ZaEya z*=o(oY_4mTe7xjC`=qyEwIj1#49 zO=c3B`BKMr{9=r(&a99B;5Xyxm*o5J|1)UIT-~>NMRe5PS+~ADlde6wXU9`5qpCUl z3s&@cx<=_8clq#TmG`Vd-=B;2TsIe%Icu{?{@b1HpBJ9odoyr3#~)24g~Ff=O;%6# z6|1(kh_o>^2(Dz9(qQbssvy@D(O`X5wa`3aqL*dZD~%~Ju`|?b-GU?n3^N4YF44%5 zUEWZewdQSMY}`SIBMTUU8BAKV#GI$9$Orl-WZIsdc5C0_tb=Rczk8H;Vab{OC$1Ks zEj6mB3c9EL&b4~?%=db!J9bZfwqs(qP2cUA{VQ$HdSAI@7#P-f?0xf}=oLRg-<_MI zP_o>}aBL=hnOX-s}Bq50^hGGSOkrhrbK+J~=Bd zu5)PptG&wN+V=eq|HZF-dS0bF%JjSa#oHgWe(XPTPwr!FOMFJttK$*d946eelksX^ zQuKHd`-g3uvV3l4pTkR@{d~CiRe8e8B!iFNN_ADXz5g*&p4;@{f{H^|pU-ekuHc<} zd;49FB|p9Ae=m~$uyU!LXUuh3=i8UE*MF^lz4L9yw9gB(d9z*j2L5NTDdlMV&#*6| z`B(TxnNZ8j^>_b;+c{NmZMpjNU;Nz8lA~93->+StxM9~c?aE0`ACH{bug(0u;ds`r z$;&l%?9>euS#c#OxF>qEWk1`!ZvBpVRv&iO)NXs1-EH_`(6HCzoo%*;eP6&1^cwXJo#f z{io)i?CafowZGZ$%v-eD_2Tre#WVdoieBtfij6~m7P0t^W(kshvP+Z{Fdx}Ye_vV~c z?HdlSdmnsr%X|Lw5BE1$u}x@`P~V&Xmizm>lorhduGL}+>8xzF$)?-b0z+dxOD@Xn z+;1AOD&XgThWKm8m8)0(NcQ&sF|%S4r;2Ri~54(+A`x;kd@!0o$d*Ralk6Gfxe};XlCq=yKPtSM#SO26+E&X$@DpD@(uJ-2b zt7T?QyM1-`F~hDcp{)@r87eaaW-QiPbGOm*z@LJ8tuWcEZ(JP?H3&6`)SO{>GOuYu z+_Am=tzUnCznQ)$D_G|7ldVPUR~~m|>3%Vor`2Mox%9KUd+LYj$F5gsFFYyr>#RxP z;}5#?FRcxp{G!O;?BL-ty{rXa?J6ev;y&yA{LC^B#wRI*b zvvM9DNxxB_uIlyu<-*ea>9@b{nx3~kQ+D6ur~h8g{r2s|gLJvCc@rl+(ul0?-R$oF zcfQWj>8EBNwSM-bvM^f1@=wgAsp6vL8w1a$nrB@8Q~yA`)c@u=`8WR=%pI;S+q8U!kUZ?MPyWTz8sfWdr!(#$TuhHqn^~_4IknUp8n4u<{@=X zQ(+Tt`>u%_x?lI%CBLzk3D;AbC(XC_`T7)#q}Nw|h|O<&aee;g{I;VrtMf(TI0X{# zPBZuU{<5d8^qHpbsXM!8otBk2c+%wUji-6_=~EM;{XT{m_dK5MXK(OqSFEIdxAVDw z_j=!+1a*dtmj0bznF>%?hlvuykRu{QTDgtKf^o?wf_tkIG3I}`*_B~)GgPa z{+v18PU32=iDjwwY3bD!kLEZ%%7`?aIPcMxZ}q#M*PiOro3mYv#U>cZ2WtYV|A#?wlw3zm*yW8{Vp7pUDdj8Z~mI@_F6Yiq0p)4 zJX4Pu|6tGxnQv~)?j(2qrfN!+=>DVC*`40mb`o34lBZ8QRjHU%{Xi(BF7z@_%;T&7 z`2X=gs@!VSRdnlq*WcV9(q{JzKg9lH*mKonC%@~i#&pN8B?|u;9&f$ObMWty{raE( zoYR_VGX2nhhWJl^`W`>rbHVx1Zpkli!@aNMJj+)KWIezW`s1Mc;nHITykTlvv@cHD zyzf85)pf;zhp!wC@2-9O{nw43pO4QHu1G&tb!>toXLiA9LEFbR3;%?y{F8m!@743G zM?Y)Nd;X~N`qBRkY$kV8>OMUab=G_*Q}@pQ?9N|FdwooHZh2Qzt5NH3Q1Z+EM@h}+ znq`&|;k+e}m0!Kwy{Ox8o!i+-%H=AbiX(Q4CMic6HBDe#z_Ng;fr}vuR17l&JJ^JE zxbAkn^JrJb>dl(Fm0z51y;WRc{xH6yro2Q{#Xw?>Gyk6QT=o|!TJ{f2uXn6joMrfP zUZ{`p(U9;T;g2ewAKq(rJK|$b@axIBmvTPWuQ;o2zsre}{mO1p$2-$S&#I>`d~IK5 z=DNOH&UV+w@11hLLJT5~{@xv3^Y_U4u&>GYKP}9Z3*9(ZON;m9yK@S&c#mCTFkzU& zxN*^s{OD^p-6k%HzsF{Amxt$+-5NIb$G(z&TdnFvCfSyU{!m_ja^Z_9!E%{ZmK=9|))BL7#DYK22&%VCa zlr`i2YHM!&wmP26`BJBUOMCV`wR?59S?|4%_}%OGIzH`Kx#F(O)~w|8z)LH`r~bP2 zuUC1_wVK%chtWSvK0chk!C(ACqT=H#xj`IX6dvu>GEubn>=Y&Q>GW#ztV`G58$SE7 zw&wVEv9cBRx9%MO*>(NZmuqj9PF=TV=dv2N{X3?a89DBZRugyJ_;>S_y3+Wtr7D*U z=keb->2=+GN%U*pm6^}OKb-OUeEVbh(sR2{eY{#d@5k3)ALHsb2Tb31#8&Q7RPD2O zJ<$<8I^lETRzHdTaQ%oc+qZhU>8CwChcm@5guEZ#f#U-=x0e z-nY2d{~44QUE8C-tfEb@aGTiFV^4Q(&s}rxcbns%;+T@csRie!N0+7NDeJXq7QeV( zy8P>pId(f2{8;X#y5?!En~J(s{8#^wx+Crxy$G#>?BoxN=z_uj}oyJyr)e=t$~bVKF)D5sv>;=Xn1EbC@oc3u$i zQY`3B^nqWkPZY#vF8zwVE;Ij@73zI*pu_pIfU#iiRHlw|i!*GH@*Zdq$y* zb=Sl<#y`UNrb%^X%Kn#_XAye5YMX%j^WinKVsTH``>`MF>#}w1%Db-!3_+?3lwFi&y>&OkZ6-;MO|%n$HKr z9jkUs&u^{F|30T}=i}e+H+Sktu3dBCZDh(}Pt8B|%l%L7&V2B4eSi25NvFwE7ZfKy zTDMvH(*>`6lici=X`beHUu5;4VRN$TYQ5;1=pDTOCNDdv@c!ve|L3#LK74p_rnkmh z<;5TF?6U7q*Sg2ol_LK-Z|U~VMg6aplRwG)4p&o}YvuJR>+i0KOVIAwLkN8YkY&8$~K;B;=4*8@ilCAIsQSR|JuUK z)|$_!q^!5t`eRPq+7H){S;ajrUJz&1w>EE4;eUoc;h+Z>Z+jaa4*ij~uc|Ixy^v?y zry0*XA5AC?4_Z>kwz;yLe)g+fkL^si_tU7q*l;WqL+MExxoT zc*W7j{~5Rru6-zcWR{J0{)%IZIbDVa2( z=@lPy^0L~(S=&k@+V^R>mHw0Yk^AVqU~aCt^X^a4OD?aUENAO%XZ$0rdEPRuUi&Wh zMVa-R&n-~?Z2GqB+*yayx_ff<*ms*E}+I~{aw$!yEn^SkzG z?VK9(s$cB#4vx@Z`3cWIt_@kau5IJ#jKe8WyM8pAcO>6@B-*;J;n2NfttxhBx4c!p zpJ_L>WKQA-YrVTn%cNI@|2b7Y>Hh7Te^(i77gJ`q<8UuYuZm51s@)mJZ|i0}D&08! z>SJBGr+2N7@9K(NI`y&c+d0XCD);N;e?5ErEPk2SZ>jl(r{`JOpTAn~Q);kkiKW`Q z{rb*zw~uA6Iw;z^f7S%XFYF*iB;i#qnh=*{sx}sGS$cwFTFV- zd!O*8E4fd1e&{I=xOaPH_FkzM&oVwDZRTUxJJ!(J2z{RE%U?qz5f|D+qkEcawmwROUKSBI<&$rW4B!I$Mi$}Ps}^MsPuW9>eN?m+|K7#bM<&Y^}pJ)sg1`>f6tn) z{m(5_Lo+VEcE9m?8{LoGp&#y^m~^N}SzVuHX2$(j_A3sq+v6$~F*U3E`ITLQE8EML z{fp&~zVOfDMjXSgt)1KL?{)4uP|w8v`OoW9^L)N9*Z%dQ)aKNpn$2x<|1&(OKWJ^a z#>V<_HFIg!wC#Nkf8Y3TJ-*S_@mpfd#MSYvdXcgEhkt$1Tgp{&W2dXSesq1japSc; zjJm50FFl*!vs{Vu!#!qg3tH0V4VdGz&S}MD}<4x;- zhMO})%o&y*;o)<;$$myVGcof@%$51NzjOYE9SuGfw)oxo=#uL7?z?RHBy3b4-%iv% z`YqORhmoF;)4d-L`>&+!nOU37@TI)};lGS8FRvbaCim3!wEeFC42%DqS)2ZF>Y=DT z-bPtr2WnO-J#v+6zP4@Ytl-(-r_O&+l(ebpOS~<6{h31_{xcl@J}K!|>9pg)8&0Y- za=gC2f1TyJSvPK#T;Fp}%A|0{{X$)_?-%Ri+|$!PJonxZw&%Luy_eUY70&JaqQ3Ia z(aKL}UR|k~lAM2Z-jSjzi;CYqKJW8p>%V?yxnKOpWk0dQo)=428|QPkg-=oljHwq| zX5hc`&+7HO4fD;nu2nDpoBz+2Hn)rUiNZ z6{v45y|UJwYiGjNH~WLnJzX99+4JSy{|xaHU)o81h?~At{nj#n^NhRC?mT9`qwjy@ z*`6A|#IW@{Wo`M>*{5Faf1jmm^Pj=>U#h*(AO8y`={IxO7FvDlZE*e1&{*=PaZy`n z)T%xAwf^mr4Kx>Xj}RBA0{-%v+`u<@}$4$=05Mx2mFM zU90$6{mOsrrZurSPET)E%CPQz@@wsFW(`+)o69Hs1dC4_{;69sfn9B{c&KYe!5*uo zowqBxj{9HOW1d*NKF*-^ig)JHXn{@M^J-4UJePdmc-%22aJ}X^uUWUt{xhhEZ210t z-uqAg_I*B4`nPba^sz}6(>UA(5A}Gseqp(~YuzHy|PcaoXiuF zH!VDO;-UTb%4`__x%sAQt%;HFcOJHJS@ttyHRzla9Q!kWlUu5_B>i4w! zLCdB->DqiZb5>-esrRxg`k!~MU8{0P@k`~-liwWb@3GBZbARHJO!FmS^Xi|N2mF}7 z-uKDzlFaKNTTI(egHgD-&`^WN~xdrNzuDz{) zxkW+#Pr2yqCvOsM7PV~KWoG}d_+YI>d)$Y+Q{S+!NaL}8KRrx-t#glL|2LnPzptz^ zIrVA#A%9_+^T~w^W6Y%&1xx&4dgp)EHSL93=J}ZcH&^PvzSyy!wZ?YM%6y)Rov9Wl z+&K;ZlucFswB~91hHJ%9v$tl|&$6s7e^B02a^ZX?>$>Fv&&@XT-uTZ@`fdJ!w2cKB zUo_KhRK9!rs`A>>W%o17)$Rvx-nn^BXE@SRxSG_)mzFrJQ}%k~c#AX3xDJ-c9}|m@kxBr+r~l?!)=trybpNF-72_;XBFl z+`PxO2UlJ4I^t(@vC!83Thm2_U46%oN@WT~#VfU!$_RyP-0%9&pkMXYf7W#E7d79) zBabcF@ae9+y`RC8@X5h$wK`?mv!18+u8?Shj`4vjbY}-H&4w>et{(CErTi`H;=@aC zzS@gtY1~%oUAXx<^W9Wg)eTo?U)<3j)WFP3FLN*~+H{pk7~ zwQsXjQM}(}<9piMcwAG{~-I{R3i zg3vbOr;@C@wr>dV-u}Qf^Ub5JlPy$dC#~KWV`3lwgJt6%zaP~P{xeKJWG5dz^YXiM z6FNSBo%mV(W#rDw(V{Y9cKfz2&wst?!ZRE9kI#=ykiCy3fz z)SYclw2QZBldXn=~c&RjN<+ zzO~uU;q!`bji)Tr?6&+}u+zQr*sK*Yi`G0TU-hjgX4&@kKdvh>!e3V|i`gRF5Hf)= zJosv)KhN?V3SH~7OVfN-F7sda>e~13-R0T2yo=AwUe?Cbam{DWn;^RY2lhM*~-Ob5+Xg*ndo}UvMW{_mSGtR7Sa&;5nWg@}E!n@0srxeycB4 z`{u3x4E?KKB?t3MuJ){-^(B47-sOkqcLz%9>f3L$aeF-9FwA`7{#)@o)vtQwM?HPM zzWrsze};IIOb+$MRsR{{^-p|~?}+E$`k#R*mjA7X&1rRuu1`E${NMP0*uL?Pacs!O zfYoc9Lhh6s@3DUzTkJHuZte=N?(K=aeNR%qXjLdr{(0SbPTE@2;z<=A-nq6cTlZ|- zzk|Ex*oB?XGJ=cNU$uDrqT-9`?iEWnPTw@wH09l%)BDsfnCkO*=Bl1{wVisaa@+Q4 zZ=xixU-e^G-k~7)GLXk<>f2p+rK(N7q)6F!zAu?QW#{F0&$i92vhfS~Yw`AN)UJ&y z<-EFH^snA=dKTZAZ}wa@`O#PUE+752sNxs*2@##nci{{F7=AH5Y_m)I{$Xpo^GU1D z-#R{7P61pY!%HTg(-Iv(f7K;fVa{{m*dx^1VH8?4(McpV;!Qy5df)j;wvg*ZkBwALB)SZ2KOw)9l*0n0YV1hg9kR zXAq6|Y(Ery_}KH4SJ#G%>SxCO((BmyU_JZVw}-rK++JRJvhtD0e};#Lplow@cN zU0=S_G&aZk@8iqcom=MzSKiJNI`U0)@!Hz1K3Vsomg~KfIG-xB2J#Cw)3@Qqz<&PrcQf ztsj1M^RYj^kN1Yh^xXFN5c%@JlZYEf6dS5i-S64G@myQESp4kncVE+8GPNVMm1j)) z^6Sd3H(Px!O+S*Gp72e|QP5rM?arOdLNV#9p0DWtJF(|$-T{|Yt2+aql}~KBuJV0F zY2ty~jSk zJm-GR0cPg^3_14|{xjSU`Marl@!6G=y!2i*phY3b>>@zcoQ+exkZ_Y2)O zXD2V~EBA^DjamQRI-V(W*0S{ zz2v;Me3(dK;nBcy|LQvX#?N)DS*Betb~X~3W~T9~Y9%|1)aTc$jbE?y^wJ8vIrG_0 z$qiE#L>Q(p1TZ>qJFqgSGH5Pf2w<7OdudT#=pBdCGK^nM3sX+sjQRd!pFu_ap*p#Z z7ynph+AX^_k>k&`zejxTAGyCKdd$AACS{V5o8`KVu<`|7rn1y@Y7Xa4-pFzxvKvxPdJ zwoLZ;0LMaZ{qF^L8sBiN%$jre*5-GOu^BzKX}`U$sASLPHoL5r7j;wS zB&Yow;m`WNmzV!Oyfi8|@5sd|Y6(TWK`SoI@!ReE@yxe-GCMxJTg?>zVzcaP=?~vN z)z_*06MlQb=HtoL!97cse5w7T#*)d7^kEa$-%_)y_cb7~2^gOZVW$;w{s>z#Q?W&po^UmY7PV-cwvd)(N zXJ`nmuI^Q!N%%?c;Z`7xciD?IPcc3W0ouS=`f+KQKNKfV7+wzJ-py>HzA zF>U|(?a!(E!gU&Vqa(Msn=ISDJ=Ax4Zbs3<-A8)w@U`yRc;4}7(ZdfHg1%ift=0dz z|6+;l>eG{N24Av^zy8Pa(XOdiPpRZ;*<@?I^F1s*{YrK9^;oaB3zmA>@+>ak<~Qt! z`Q&i&XtCAabMw4&d`wv~(%a0kqic6^Ew1*uDZzKA@c!k#xvy$h%vCS>UO#cx<@r%Z zub2m_Z8kgibiI1TW&VJs>ldtayUiEsrT;2K=cjHdqTs~#r{bg1BiBVb`o3@Cy zp18N>Smnw0k*8LtY6zGt+f=OU(mUtMPLT|)O-|l$_o}&U zi>}whMDCzxvMqNqo^i9iiaD5YulQPDnV8ug>ql?P4^L{pxK+D5aL$aYo26?5p87x1 zdK?vabI#WfC52p9mFr*cd{rm&<8Q5?#~=4)t|fDMt}Q=Z_%7s$@E7e^fn!@gDj!~d zcth32se5J~{u6b@#5Vf~bJT~Y2Q%`gmmb~I5#*67BhxoSnO$LCd00f(#M#d}U#6C< z4p{moTfaU1u8hVy=PO(ekP^g$X$C6;Q-fH85O}uQiy?|3DnVlzqu(QjLca&rChwS< z{T_*fsRw!)I~t_Q84s?!!^-RTXv2f6;iB!UFFzA)UwyTh>+s=OHHS7l`0C}fVUbVp zGj6G0ecOI5ow_AFQ~Z|hz%8D6yG9mjtL^&JOS_PPs41_!x&C)Z1z`;fUr*60uGv{R1)Sp09a+b}Jk zTHI%mXP&;)->;;2huK@*-_vc(AN3|5jJk7i)h3Z**}JW$=IaGmXuYVPA9!n3P;cl@ zgQ+T4XIbqR`Qy5!>-d{{ylt^|)=PzA&MT*-s;|+wJE5vCdcSPer>RRL@7*r@T30{u zv@<7{?kDZ|Uz&z8^7F*)gZqD)yY ztFk?j`_ePnw&_dHhzV@f?mO%qw1dM}yC+j^>Y+m^mv$UEtKBejX@Qilb`P(1Ly*K2 zh9E}E1xyn_3$z0mG8nUkt--K>8I%kbfu_h3L>RadbgesB4aB+|7F^!Z zdRCl4IL$e?-u6=ELtbLS@GDJrHi+&_WS&by>#g& z$vE2^MspfA_Wju?d0eqv?&^Bm6O*!YZ$`=1y^}4;IymK?_Ro%^Zh{*>O|atKlTacd z+nV||=Tu3^!V~Ft?w&3*K5f&hvd-Js@MKc;%T- zzC(FS3pQNJ$}{BEZn$%?uyd9J%LQg%?H*20Kq+>5HUu$hFdBO#1r~@+;B;VB;JLs! zi$Mc4GY6_-K|!|##*hL{Br-LCmUS!x)xKPs9hwbW7=m|j&q~lRiE(;1_dq~q!_H;e ztPC2<7-#7*HwW)%z3Y0wJg|WG$~)$VGZ#)(>Fu%-04=<;5_FpEaP{Dm^OshhdbHu} zRdd;9lXXmK-3`KC4-`#e5@$K6WiY5U2uG z0pz{_6bkNI(9v(q4xA2L;ArPc&=qHNHQ-_qIS|F5d53iYE8E-yF_(8Vn;Zzp*ul6= z(Un1R0fQ7n%mt6Sdi%(bjB58BP_I{7&I7p8FU#yi4EksSqvJCnGFGqJ`4eh84SxnM-nlZ zfJ1K4Bc6)|B2o#G3s{#i&SEfjV9Q`Q%fNDJ2j?sXW7h*d7Yl@@9@EQUTyhDtz=q2~ zl|fdMp{=pggV}^3Xa}e<1X{9)5h%J0sth8agYaN3(qI5PRIGvL0;2<~fmnl3cf+C? z+zw4Mz=QKMz}D(ANP;4faekGa!k-L@G;qA1RS;_6(qr^sF=3d(u!TX`gW04_aRJK$ zh6|u+dq~;<4+aD}z^0$UfguLg4VE!>U}aDQv%oT-)U<&0tq;=#Rs)g10eE-6fDbW&8I9&0h%=TjU53lEEP$Ln#fcI*Oc$6SiT40_jvlOS2dg;4q6Z=| zOx+EE1>nG8YT$BETn~jbVY7nLEL$1m*^$!~=FH$ZsM6jI$WLU@|cQj1C|VvVkHS6z&Wc7;iOzH-mx{ zgNh80G^hXuTZhkNE(cKEjPN5v1~ko10Oc5HurVYx%KyK~z`*(}t28%>fq_9Mt28$y zIVr!0L6AY9fq`KagT?GZ=47LSM7_+s^rF<1%+$ORy)t741_stmAayHpic)hDOEUBG ziZe0`G71ulQu9ju(=t+$tx7UWa#Axha}(23^$PORGgFeS((;RP6HAf{^3n^-5_2+B zz#4;6i%WA#iWlZ3CYNNErTQl3Wu~PTmn=>%E=^8OEiP_doRXZMl3F2~oRgTD8=RS* zmsnC-l&Y7RSDcxW8U`{av!pV)v?!;-w>UK?O&R2uG+TX;tMyBZ@~l7%D}z)^izIW? zBwb^(RC8SuOVbqHMAO7X-4vsgBm+}RGjpRfGq4uDVwertsTBn|iFsg0mVzx;fXgX> z-4At{1XvQ`GO%1?NovYKI!ZFJxHz>46f=4miNzVIDWO50dZ5tH0J|!V8bJlOq8Ji% zpcu^0E7mJBLJqqMJBR}mN{ccTz%EElu~I;?9~41)xXprwG64_8A{hvF4LNa-?g)^> z^->Z`5>fnP3ldIEA9TQ>;u4%uOs(O-ytXjf|6ZO;VB! zb(4~l&2^Jg6D`b=42@F_4N}qbH8}a%Q5IXti8<+M#Tki4re-N1r$;Evy(5vwxa!6~ zy?VLH;ma=EPvW`knig^);f*$*(h;`Qt$C<-}$|G_x0|NuYY)}!u zFdZt`xF`+6$_BeFzaTX)H6^Pcu_!S&wIsEucz-scjwo(~_(+$Kj}Th)%8a3239T{j z4squZubXgc3E$kgN*(rj1x`x798>1m^ai}U_3l3d1H)RVUo>$01(Yzrc?;x~T98+k zW~Ejn=ad$Ms;kCDsl_FUMI{o7X*sER=_MIb42-j`rQ{{%rsjdnPE*K*)8W|CMTsT(Me(2hv2}+GWK>sVRxcC8;S$angX4H$yG-zVhHE3cIUBJx5$iyU)qq(^F_nm{+c6BW?s6pqam*WH%N|~ zhs7r~uh>w)fDgpw;$aUdDoriOOg7{;-~@@V2{VNT8_0?C8kriH7@8WI8dw^bMv3zp znZdaxQ3e4h$_@DqctLu(c-Z_4Qu7==k!%ajFG@62G>`|$GxJD5ZBqa_Lc!U`Qz0`? z0i?tr(mp7N{YQ~%9K3lw3`}{2n-UUw8 zhV!2OTX=KTq->w33pc(>j0kCOmo}8yb}X=5^%Y;6>prG+Cgocfc<))*iS6UAS?j6rP zIRf++u6S%T^GeA@*LsVCB`$5I*KbF@Tst>W`P-o_^X6LfKL|KK!S`NcjleZc4flFE zm-PW3_qBU(Ds}tqe^zbtW2ricZKW2x#c@7K{a4mVEqbx}T1{@yX}0Cs%|C=v_7!jK z`P6)M=Aqx75i_>$D4ze#JA!ZPRkqFgucD4!2r-*~xAa@#WkDXplEb#q>lv4wzP(_T zl;@I*hrBg5I&9^LbWG__hTf#I>{_wHqAo((h8jmeC)Wqh$ApT_0C|;(hMQ#4ZNu*JyVkv}r!tQ|af~wVQLJh!tap9eT@!p^)pNrg#rEaFi3<|vFY{}C z_4&gI+uJ?QCxnY`h_9JwmOOc7M%YW&}!Y8@=|INfUwnNpv(NXn$g^}?VSO1qi?7Kf#)7T;DmFnVKYNDYh zpVkBzEVTDpxa01`D(@QZ6)GpLXg`{Ic^cE1RZLg;w;nsR>H8rE28GR!PTO6)cJky} zr|!hqHT#^Oe_tKIzOZk1)7#1Uj<0f7%;{m5`655t+bMo3utsif+ z%`CF*57l*a=E?{J%qu^ww$Odc6X}~4Ui-Y8x7jLfy31l8)Ve5ti$Ldk>$s&aEKB~d z>E$aQRsB85c(wTEWeEa;#rOBxb#GO8YpJ)QoW;-S$R4q6J9HhDLgvhq^EnVROQ=5d zZp)%M4l^>ko@V}kvT671$vgjhd6&i(>%4P0m3A;uz3@%IO6ALnfo6@ptHb)2Rd7n* z4gFLSZ2VL7xxsQzVV|8Vls9c$^>68w`=_oPHQ#R2dBbk=x^tfSJ~<~ns$YK&?7QD{ z{c;V%h0Ga7OQ#r4n{iO>xgw{m)bs681!fPfY6{I?awxy+Xzt_PoSOfex++4~C3b4< zu6{ZHZ@~X~F)m5l?l!5vytok5h>g_R0%^jIlA|Fo8UmvsFd71*Aut*OqaiRF0;3@? z8UmvsFd71*Aut*OqhK@yMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0q zLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMniyhA@D82forwu8?%qgFE(#Gop+-r$^DD0 z{h`a%KMNc`II#W*eD%59*Xbe8^^dy*@Bd4_|F7Q7Eb4M;^Ok>E9R`W4%9nD_)_W-) zVPIrn@N{tushIQTZ{?QKlY#ObZf|PO?fovDbtPnyz^qj&3k4e|pU;tf-+!i~r{m0>!;Gr>ILC>YT?W<0kuT6hnA+RnbSkr;^iqbiLJ@=E>uR2DCDBfLl z)?lL6iF%(?)ds&-TueLQvx?RE_fGc>PkGd`A8BeVj6bxvszF|Axukh8)AS@iPlea) zk#l>cnU^)TS2evheeZPc(vfY8XC7O!X{J+z@?lO+p|8r#vX{=ax5+YYx>%E+QMNY! z;0!&hAklF9o-$R5r)Eb3-uoAptl9czitdG$nyn={Q*_JQyk73H-LbK3?u#Wd>$B8O zFXmC*=FNJ#j6Wf~@toJv`F5fT>9T*O#|tx@;KA(g77JR;NuVurR z_DtUS0tYkrdxH*3KGFNP>eXApI-!|MU-k$3*QtNC$XXG%{Y3I4$pxi<^=?k*z57V{ z#gso{&Qtg=NKe_kZq~P$)he^BHe|Bw+4-H1amAD1`0I=An?5YamR#GzR>N^Eu(&H| zg@54{_r{)ApHq}2Z#>GmT+x5XEa09C1An^Jchj)Xyef-7@mWy70b&z0PJm;G5r@NIOwq`J|f2?7==K|mBWrtpL-ML{Ocdp*O#BB4@ z+YS%1FI8PNJ~~7G+`}(5|18(4Uif$O1n0WDg$ys$mg??0e5~@|_ogca5lx3?8@#$B zAMIOhTc%~-mf^im!n*0J+4i*w8)8pwxA+nKtsv^nmy0gd3A~Zv(qF7x@12@+W7d_+ z7uN?kN8;-CO(Dy(=l%WIJ;ROr*7FU5 zc{er$&evPJ-7e*INYdfg)BjFZ>$}_O`qyja_Wi3XKYu9sRitsgxaSb_ZOM(RgLPjo z-7Oa)oA}&oh0dFQruRxUj9ItaGH*D#v06)Hm#g)X$Uo7?Wxt(W`LoA!^>y8&K;BIyBg3?p!#CNuAp7yb0noz7avod$8@V!W} zifL{FI~mh+#Ba{pzi!ndzuXhYe!PFM!1dMr*|V$I_iPoq6KVCDXX0;1>0ZxjrzvR+ zT=TDa=BXQ=3!neict7tWsZT8HQ;Yk*97_piO!t)SH@#Ijd7E`v)xAY~mj|xCeEjwG#;GFdw!VAY4wrXN7Ught z-Td*4)5MJ5d}w?<;EAD=&OpC2ZN}riI5l9_*Q-DkONu%k4(kh5rwVI{v<| z%$~h`Ye$-HqW`PcyQjDvQ)1BJjk&#c^50d7%I}?u?@ox;vQ7TCR_5^j+kG#-o!Gz0 z?%j2HLzCNQxk~Gv37;3A+VjeIL16FWw4jn;>m%1r_Z=+W_%x(CZce52?fOT8by<6- z%u%^5xV@mrulD)h!^d`N^D!_i&|zdsaNVT%OTD=+gMs<2`P(GPtrI`&WX^a#W5vFz z^!2Cq>873fn-{`-SMMiN?xR|n7Y2)i@2%dsve+Z4`>E)owqLQuL1{_eeQT#oS`d@8 z{P#`WzZ*?6D5;6RjJw zC)Vip%;9-GyKA3oS5fUYbLO|ZRM-w2J6%^LQ$3kIclMQ?ChW(iRraef&f{^}^e4-E z<=arJ)L9INx7`r&o_ylAhI;OnY10S?hsOWtU=&ouayd#=Eh{oa$k6#++7FO*F_olsOwO8bRX?3RU!>%7r!=>}ZDUo2c9d@P=goy(OLdlgczHKTZr8(%@&ju#zeksZm0UJi^^5Dp%G2}9m!98b>Tuh$ zm}z(F!<5@%>YKhlIV7}k$KGK5(8!#e_o>TMR%5y@rh|KUoNc)$To?NymEUxL+|t6`Ac%Y zEz|oZ=f7e;f6$7Yy`l__Wzn40zO}cQ9=)m(+`$>s&#mzS6At)J4r z^T!^)Z_k~>zm~LLeq3i9`1R`x-DwX!8~#mJIU6jt;@4|2+scfvcNJx`&eflqXQmpd znl zSMDA*j41D3GJUV>x*8SvLr)rC>5JYI-?=u;=Fz=tRzG7ONUyyo|Ay)LvFcY@se5kj z7EC;)r)oE&uGMmXO{$VKbIH1gM_i;FXC9chUaN_L}Y0Y*!oxSl(t|)jm-_%_A zXL9KEg!J{16P0Hj-oalhc~5DF>V#+(f$t1&oP%$$%YEzkR`hIVkA3@(Hy@8aa$Dyh z*C-++bNIaG1-&f)-fg%2N>`g)yT5B&!_zv-gMoYplL92jP8Vo03uRdc(X@6z7r9R2Tq z-@Wa9m9zS?XPu^VtzWW=dveOG`D-pOKdSLfgM~%PY@TV6oI}*N+(f^ln>-m-d48+@ z>3vOmR(DCMRqM~imkTremC|!}l~ri{o6Y;xk-vX;q1ls2k$KuC*R*^Wep|hB4sU2n zskh1Yj+Ge<7VMW-YHZoFw$J@@#IMSI(LYZl%}-NQ=i@khp*~q_o8+y=h_1z<^E$tG z_IZokY`oR|+%Ml^p2y^k8^hIKmt1E`TXyNU%enh8JTEE*ELJ^qpTGImftzs!Z*F&r zG5sv)`D)0txxy%Fz3Ysrf}fB4Ud+$7vG3oPSxoI4JvbcdPBp#OGPhcAMQ*~T?^^r0 z{%h{=E|^ufg7xjo``dn%uUhQ7F8WML@|S+4Z<}SB^KUYkZ&d#zmfL-8HscMmuUjr1 zth=+m?V(y2v$^}hZ~H`E)TO)@G}$F6@c6Afb4Cr9dHb|`SEkxq)p^D!yI5$v^GS`^ z63H}o>d9Wmyd&E@_Elky$7CUx-FL-23B=VDd|k$AX>9 zSKp1~d^Mfv{ZrlhmgRe&ZQ0DMEfTtT{)lGy7lbUiw(RRX6{eC({k|a z!r<-xueTqKR=eu!af_i~o#pe6TdGU{%`)Be^+LVevnjLRwMk`&Z2x^(v3t&(UBBzM zM_zfDd{8#Geq!CsoBWzj+N_oQT8*ZN6+BS5pD|x+M{>??`6Z^mo&A1O2Il1-Ql``wL`RHlKT~yAU`~TtTg+{{6;z{dwEfW3bYvA;4%gL{kjJj>l*{42OdrhXc@$f3KzJf4Wp~q6w9=>wO zJa3Zna>FFe=swoEuJgeeOQvpI>b87pq2T48J9Xa%Yi((MRV`xTuF_VxaE->bCI4rb zdQ9(4o|EM(aXcnJ`cIs1(fSj7tD{5wR=z2{e$s8_^p#BvWr4iEt6HFd&_N)t(?KI-|zg%Q^JphMeb)NFVeiytb8Km;E_k~WZ!0Ne|zHQs!hV> z`DfS~%Ot|f_^&3;EjHo1H!*kNyNAY^8ui77ZXXjQCoggn3RL8~%281lSe0Zg`)QW5Q-O;H>7jNF& z@c;0Rh55U;GCixi$&|@rD`NCUF11)C*n73V#*kjoGb9U;Fy{_9cl0V(*;%(^q?eq7Jso0@Y#S0Q!TUAxV zdAkevu0_AspL+Mo<;ypkwGMn){zls_RnOSXuYAF|zZqZuR6j}j>NBmSlza2^E%qlx zT>aNbu6-JoeZonoWR~I{wFMc~6ZWWvq^i9zShDEN%tSWxRfc*YLhXhDW*(Kxm&|?r z?@oju`r*K`lV8X-dohUBU{eO41CBj+X^SlP^ZD}?P2=W-j-g2|V!B+8p* z1nt%PSbFQ#fip)la(2~P1%KHuJ1c}m*5dgxvyUOg-@0uVm~wAoW;nS1UD?VjZ>K56 zPu{ai^l4Z_y6gE9aVysbt!)45xc-;!=^`h0mG9xaCdYK9X39+wjSJaXr6bX6cGKp{ z%1g(XKi|Bi{`%>=uwq`eeXiSIJX_NHmG7mh!_Km^?el`)`kIDug~)F{?`JvR_>|zu z$quDTJd5guzj-Q7DKzmD2-ZC$r&xVw+P$wkb3R`Q(iZ18+{IFQKu+u26uuzOaNq3E zUGv{LSFee-`)d}spLvE>CSPV%G7v%=Mo?JrS@~8uHGxJ{$qIXPsN5M?)_ED#!@~JS_^~vY@PZ2 zUa;Fe{OmQAiT~W1pF#Z-ZhgquASc*xFED4*relk?1^&Z$+<4uKinidCF0_9gkQ24A0kXck2QFfUEbM~JLUS<)~_LaslFxp8TrT77%!;ueRDY>PN}5+ z?|G)rsZWcF1^KfsT|9L>y5G0^$NWz5#~S7GL^FR|0R6mZ2h*f?8|J-s*-y| zkC^?{&DgJGpI31D*X;R05+-v`U3txADXO()>co&aUka9&e@kpR+rbc^tNyuHsb2f_ zS*~K%$=^0i;|S$T514&^Mv&$SEo+aLS(JdpWq zr;pCloNLQ$-Ij{(*7#)qyHL1bqTAV5SMoC7WCq-py?B0_(HlF~AG@ab^CYkhq{m-LUt2(J4@_MRD9#RYK5ZYchxW% zk86itSSX!2!En_=sw;1O;n&~%S%JTb(>tPl_lebtPiyeyIxGI#&7b4U5k<3nZt-s3 z&yiYM>*CLuUSNJ{zxBuE*_UToJQK^DwL@P|^NBHwL+HHa+dKYky0On{LEU#A!K~$n zuLYT;-U(+;sBxXL@wULC*O|Jn9XpH_-Z|B6I`eQ@u1NBp^AAJ>UbpC|`LiC_aQTO4 z0`reQ2g^D)eK!2iX|qq`vR8c4>+l<^Q+f=;M2r5}{JpS}O- z^39Te^WAM5?k-tY*6sKs%H%=$<^RWS=~r4@c`M-AzHzGR^dJU*rZ20cL(gqt2|iyo zBb#R#*V5zN{5Fmcj~_G?>n@q8>6zaoM=S>jxKb<2*$iz__8R8$x^_2%B1pZh;adRjZ5*ZfJP zU2f{q#g?k8r39SzJt$u;F=JD^X^_PEd+*X1zMWsXTU9IJMdrqn_PkF*J2XtPp( zubcXKLUm{ucXsGEtB+Ue<`>^P^sSUFq4?6S@c(i%G*8*Re_oq7+3NqxvfkR33&P%; z^m6WquC=}s{B85BGZQNI*cX)iJ0Zxu+j-NLiaf?k_unL3C^CD@v?jSWLdrPmYSY&r zJM;K%-SO@Cls@O|x}4ul7Oy`Z-)!b6p0Zi=WI||e{DS>qUi(_D8bV)HSzlQ^#n51) z+FO>_!RMrz*A(|(FqymW*a@B9IjrmFRUe(}Dj&S0P_)A8ZHn>bY$M)hTQVQdJ2>;Z z;PS-n=T2F1zWaG2CY3+3GCeu)WvJ%N+$lA$FWvTPnml`_^pxYfy}qR#nHln=Wrq>_ z*#*b<9)I5ZDgT@A&V@T3W(DToelzb@*Rrbh+huT;o>J1 zYko_u{1$3@w=_cg>Q*y0w`0aO6D{RO>PoAggP<+4jVY2y()WgRN43pwHw*{JP z|5(L;?8D2JqsN0!7l(LUvOlnWk?f|s@rxfD&$GI@;qkOB)vNzMi)Grv*XtNrouw@H zQ}3hI1?ktD_sJ=Zp zc~G@iuq|b8{pyG1jx&0j_gzWXYQ5xhbi+c6T`$9U8Wz3IuHnD$b^74E_`@M9j(ifZ z?L1b|u-)}_k=HI?ab}76nRm+3ie*1i7>R(<| zSuOf0%qsr>hRH_K9?Smi{*#rYHhIz|&Ut>uo30w(oOsc_)|kOR&N|X@I#(+5otc-) ze2-*Jyzs}8`_>{$n?;Y>Y<4c!?>MHb899;R_Mi*Jwdk}dXKu<>fK#*F-q&l&cmkJy;ZYC3bmP~)A&Va9mqT> zZ)x>RbKw%%33B$^b1KeQT>N}h)vuTB_Su`!Oz9oR&o`O9IJs=*YWZfrRueYg)4SHk zf3=KsznFITP{H(clbPC|=9#T`%U&Y5ORHSne@XAVP~C*ff{osFPuG}oHn_)YbqZ-2 z#HFS&{X8wSV9EEBrVG2KrYZ%=pILj#B!maFBe{9gU9*S}8rGeOc|+g~YWk4w|$M?UVz-EjTSJ+ZF~|8Hdpe`9+1 z(5jokPvRceotge+;&;x9S3fOQ-1=>FH#|!I?|Ru({>;-$KNvG?_i5~L%gR{$^z(;k zkymUVzVl?xUYpfzc3{@cJgw7@UYMx{2K{%6f0LLH-ud+3*FwQVo0u=fANl&?$C~to z9aa0qn2qb61%3Ozd*V{PItPbHwWAtRwGB3Fb6DGxb(YMiJ}H}5*kQfdsx8`&Pp#`% z|F-*TW^=aa%D8`6`a?6qTBeC(mXFDds3_T6Mq2kiC8*`BpO|--N8;{ZLn&8=3yc|- z+}GUAt|XPQa)0gd*#7e6ojJDucdJ}aHj{XeP`qGI{S)rOV392Q75SVObPfHNNA15m z@82z!>bzwUW{W>BI#_-t#sAagvkj%m?)QtkLLO+j|K~htaAVmP-M~9rL#Hp!W0-cf z)K!jmLX-N9k2W)oPq<-l)Xl$?3CLsy zwiUlyvtA_c&NaNVgzvyyy;$RA+c<<7l^V~?@tAzpyH3hZQ>Qh;`*3cw?)#$=A(OoV za~@|bE}AQ8u_9=pMRj1YId7})fx;z4c3nAJ6uy7=bdG*0aeKn7M!Cf|J~_XR{91TW z^S0uY`fZ-gK1x5VBqpcae;=jydU99n86EG~2YdS4CnOqhFz_4d91ifl$^1%#L;bR1 z@`d`l6Rz#cNji3Xp59VZiQV%v7wAg1yq|uI|5^0sMZw>Mx)*j&WR<;sxW9xs>)&31 zx%`&Xi|i&QG=}2#36r>;FhAqQKvqFg>R zN&asAhv0jF`{O82tj->x#43u=!_;hvSQ}dPPk(|Ld zq&BI24q}YVTygG*vT%R)1#z2dA1fBhVP|w zAqLyJKHk}67__1yK5lAe9F|IR{1ljx0?oRuf>ez|?&oT?hTWc+EChhMpt zUg_?Qo7woAA->A$8QaUZGm564FncL>%|_YiJ41*@aP;<9PklTZH-1U#;F?jq>)Fdr zL%G`A^>dVt3mT?dPC**eQINE&s*ny*Tu~2GpB61fb!IRS%h3**q;0t;mw?(cRr+tB-_ zf93QzCk~EY>yp;uf@5Xz+yOs?_cpB!jXuGD`gfbJSM)-bS6c-(9*b?A?KNQsYx0-S zZKbZ$PT#8FIuRPW>Qzp7Zm(OXXzbgS9?AY5A{C#V;Tcf!R=*V_epJX z?O0nGb9BnC^Rtpq{W#`*^!VN-m*u01Z|29l`RVg+Fz))cS1Dg@R%jHb_GJr~w8Iy5 zt$ek1URAr&X16ez#pSkSE|d4M%BnK|<+FY+n^hp<;?2&G!TzM9WA9DTeStQICVp0^ zoF5TbaaR7reBBolmQ1w2Dkaf)=59dg%i?!Zu50Ff_9#er)z%%1^OWSL&ahRRp7mHS)TP7v zmU7BlW45ZR5&t%xD?YZ$(4)F_6WVN%JE?so$ol-&B^p&Gx&$^Lpu}BU}7h%liIp?F)Io zX=8Qv&bdubE>u4$vbN_tH*5Z!ja#GLHI0vUrJX;uf6s+gC3n;qS`K$ikU!%d;;djO zKC}Bqs=(8*dr@m-uI4O|kPu%OQj=a5@}%?V`iz4?Qp<#Wf_ao@u5V>(n4Yeh&bQKV zcHT#qCAa%GGL{$=IG$*6pFaCplgolthF9L4Px+wHbL+a%)~TUh#+|lFNn#CobuZWs zH(mLA`%uBH!>RLCH^)jVoVu}%w|bZE&NZROR~Cf6o3gJ+?PC>pHNyctH_pJeYSo8( zlb(6H{}fvAOYZ0F1)XcK3;U}W6HZ72S&h`PS_TtsDau9j(Z%o+~f%bL?xr2VNl zw?^{8j4$?v@gT@Kl+2{OMTZ)vA0v<;TSEb$eqDZO+L(5q%_NGjI8fo9AAH9et;o$=ncRFT14H zSef0^`gqa*>+>!&C}-}^nDs!d`=`l*|5sYRulFk1eD2_c#Vw0>+|6J7areZ#jR7C^ znH7A|@|Ey~`uJxvI~V>q(K<6dT)SV(^8SOA zZ4L!d5oOC}l|R~A`sU_`1YvLfS4=CFUQc02)a1Xia?zj3#l8<_zDwNUqWa~%l9*%q zg#NL08>%t(x63*js zqOOsfRend9^l9w%+I~o^#$ubL_4hU3ukBjuu(HGL;e?ec;nRh9S_$#Z0kvJXatX~_oVhTdH}=S^C^WlO)_#|zsG%C_u@Xx^ojANkk7U^}O2 z^UuN+b{nEfj|(lZn&O}4aLR}6ddcG(4+KiPi>!D%GgFJSrfzYMcp@e_i}8h-!O}(N zyziI2sQ1s5{Z`fR#`o&uZQ-Rm4`;c2(0Jy%^M>El6a_clW0qVS4lFrvFk_ioWQ0{$ zBA4Mho$J}!Cyp^TFz88cSt`4atMj(ZGFG2+ zR^Kl#W}W4m%DGj%N4JE(ElRGq>7FMp{Yw6|+D^ZYl}>t#Z<%IfNx8b2PrX`pOFB(J z^lkhMFT6AdDiJhTN z!7m*GCt5QFIN87Ik!$`ZJL{UGP|*|t*8|oyj5A(Ytja1b_Wt}_OVM@NqA8nfgg2|+ zK5|N_vZr;g%xf{D$DgNYJ#|mL{v)|F%d;t|^+$gm<1A;U75DzKUE|r%8dz(#e`Wa= zvm4hGmR>p-)caJh>4N5FMklG0SzL!+`j{;}@^vmx%Iw>|Ucpxido#R}Z%)|oJY4>2 z``_6+%g*cPCNRuND~_36#kTgZAwyZ$zr@pQ2O>P5Zb&uCJ@?&1=&OU-N_ zlbM8nCG-8Y-SqBhkk#jaLP^f46`$8IS$8cy_u#9=w*~T>;|?-?s9DH4>1e}>F16{_ zh9y^@7M-u$_(aKI%lnnMWvyNBja$4~gV~ySZTjwP64iL@JK^xWp1>sWyoq_t+cH)h`eOg9Cbs52>jd8; zL2G_>Uzpb|J*#>}eD9TCMxpb(6E~lC*|z7S<~RFu{R;omuevA}KKbB3$(h~##np)> zzA?9M#U1C{+4?U(=~fC`1N+=sHSP|cx1Ed|ioftLd%phmcHb)DL%B*fHk&Xk=qtGH zmwvaA?<_OpkEt9-4)7gc?^hU^aUv!$VM67ZdAwE6eRs(ouJ1l2VZ30@hWrPmtbxUE zHcUF)kPxs@HdU-}lh-3}X5nJ(BTJO?US4@-D)!Xjl#mgRVt4}U`icJ>G$-wGvOHmw zmN79!NBU{Cbj+*-LnqUkYb#H~4Wv^8Hdq17rEu z0cPrp^SI4=(obb%t~_z_L@vwMTMP-G-g`Qf`d@h;Dfsg8b}rv-r!M;X?VU6?O=rC< zNBix|y37weofCyWR9y`Y+feOd-FEGH!?K=8;Y-%4w+`*tp7>`ihhAT+^uqeysjROi ze4YCIOrPt2gH!T19{b81n0k>XeMuYNl~*PLo0)x%2bRWYci37#v3E@Sk}jNjy8lzi zNlyXp#53B-aX%JMY&a`%aA{855#f-FyL><2I?W=@v+mQYDLs}4FTYCCd3e=YgyrkY zLI+!wkO*@&HEqovrB3q$i2~fsFWxYy@-E^GJ@BQJOX%5>&lA@t{P^%b>3f&E-NuEj z2c|JZmmKTSNZG>oRU&o8tIc9;XAZ90C|h*jF}N-udUfxK{E3VAGHFGpJPYf6Z`&%_ zuyW#+&vw@frOLfruF7xSvaChk*LoHs#|b6*=>HwW zo&Q~o;M^82azA~FRmj@J)osCBWWMb6{^@>K>B^<7OK-TREiYLgIf>V)cIK}m=T^A% zzU!?qC|Z0%d)Z#0Us>BOaB2MYQe&-u*SsyqqxsIEoY@`kJUObI-NKY~uJ|gxma7bv z_Pon-HO*nyUcNIgw+00Z1b>}hwz(^C1) zn^Qa0MW^omn@b^<&?Ob*$zx#9PCTHDh z%WCT$_TOiIo@V^a{dz+CC4+?I;F6t(IF1=suV9U6-*P-6ruEm3V*w_mOe$i5uBJD? zxUOBy5wWxX!i2ODXM*@kbI_K zUafA(xhkXJgsbyEwcA_~7n?d=D&uHp7DIZzlYTqrFyC~KjboqQ@(xJG@ zIZwjYbX-~9R5|(0oS?&DdsE~;9C>-+TfnysXVezW;*HRL9`e?9dq#Z5TFD0E^_QJi zhqQam7h+G>WA#ow@OG|V_T?~c8?}waz5hO6QsiIplDEH}^Hl5q<w`jSOFBrK!nkyDSj7{VeHwd$jW7XUk^&EXmqp%e`d&JejMN_cB4A zSGgZ#p11Sf@eog&>yKMMWM2$RV{qHp@~OXeYna{SX20;7+X83QCTz3&(BBz*a{ia! zTh<&GxV7M0y6zW?RR<55dQD$w#lXO&9jR4ttHMyX`Dvrdl%V}xmnB?(D~ZS6NI0D;%zWV6^dE(P z4=xwGEXlB~HApT&L;B{z+$rOV|oH(T`Ey4UUG%H_sk@lUSEFFECL?`qz~ ze;0Q~F-_U!!>4biY%deKpx*KW+Y^!BDpGInUY_}Kzw{H^MK@-1q*e2E`fka7_@plO`6+UzJo@@UL>G zVW~iCQ>$f3B@R)f02eX5{I4(sNzpOI6S3WVw%sRYXB%Q6so2?;BC#k%k#YkdR zMuAUZ$@&1cEf=LPdrDefUB9iycBbg9=Ilk^9`PkT)-vun{QM*D*E^Rqc@DUi?oZn% zEx}-3sCrMOWL+A=qO>(;CwgZ|r#2sKY1^N7E?b)6DUZ4|!|OErIX7o1-IV(hZ*6PK z)Y}|Y$+R>$&pX*k9O={n0C~{pHVZM|Pw#%*nP&XFKqWZ$+ZiV%O6%eb3jw{c8XE$-et+2evKz z-^Q7rz#wvIlc4a7;(dBwp11R;cHHz>wSW1+YUd;Tm5&eZiQqiHn3Ex3CyQgWfWfB6 zqC9fU0bhAtig@@Nd?EvmZSeIGZOl>Zti0w}YQ)&Jl&9i#GHb;0UDp;S?W?-})FYzS z>Pd_kXXUJC6SnzTcpXcK_tvk|-g@lAVLgrQcNLqGgE+2i-FYH^f5OG*aTj^CB;?<# zoNmy1BDlFS#oNkE@bX4pd%KHG2A`hCO}l2oP_plUXMuZqvBs6oyFv3`xok<=|KObE z*Tk8VjJBIxV>mG>CcOU2qq{~7=S=6yGb=3WZv0lgN;j`qI>DAX!9(?mQE|QZ{%uE2 zOO(mHoyi!W?;vOzX7uqv^v~?08@trLi0oSxtMsttslI4`zWphi z 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%0Aa& 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%0A*_WWJNlK(sZDm^V&=PCR>rsCY!e9Lg% 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

vsyi{{H{&>+>~{DMmNSN*?`v|0i7cCir=3stfG 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∓ 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

V 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

  • ty|A+sPFBHk5N>;lzz=iHaTKjlG2Y$mkM&FdqneR+HPPL zV9}pbd2Y@VIh)O2A2kQ~U-)@5uu{u-SAf&Z5UFG)ksz%XGFnj+fy5IH1#{Syl{S|w@&NRNM zkhx>)xqqxxXL~1~&z}{`QUAAJ{r-3N`BK~FX8P40@Ba4w@`@IL2jO*(Yv+E}_DtF2 z=pCc>=D_nql@l31ge{ryPvqlti$vxByDM_r#Z6YV@t=;4DB)g`Xe0KcO6==R=ce`l zZ?4~6o6LCN>3!wtbEn39`t@V~(dGJor%d6Nd~;{t#`T)zS}7ac1QJh9nl>q4I&R;V z9!C}rhdmv-S@xe-}`W9Z@$f*5BBrT%b%>P{`cU@ zvG0E$osO^Dam`>=SU7)Osq*=Wk59d?ef4PP+MDq^l8cNkKL7nQ$@bR=>$(r=_37v1 z_y29)x{_0P;|6KVERU8Y9D!@LUpu$&#k0=nby@RmOf7aNUB7)tzCeHSonJcQ-xON= zHUxPoDzbf3;k?jM75_=|aI!}2@g|PG4x^+KZ8u*?igt+y>U1Q`WM`f{!)x=W1C`%r ze|?vK?}|Z-j*#L#shOM4L|?m`^yQ7|)bbgB9zN|+V$zp$nec0+f6}Zu>(j6CZVzH` z3EBItpe*jKy~XvLFZ5J|tHmeRN0gqf{jL0aa&3#GF{8!;ZC;hqKS|SznD zs7W~yer$_}hrkOd>o_Ob2hUh^9kRQ^g7#|NnBm=*b4&bP+xxnUk4_rTo%*$|>C|n< zrIPMbRgT+9ER_=7CRrYo;>O(&w(wVAcL4h;496HyIg`DvPx6!Qf_!kJ0z3| zWM;25o3K8A(ZQ42d^+}}POKe$T)$YETI8~lM84no)p?m?f;GF;BDcMhLN2fU+M z^JfU06!CtqTb9|`ki!{g_rAOI@i*JrRAFhs{mna+8KyL81RVGsmF;ly_iE|8qJlwF zy=v1EixT6j->$I;SK7Df^G{jlij{?TE7xzC_ttwl|rYa`7h zjyI&ZFt`-XelB;j_OJG=-F&=OuO+VESunf&`ps_+Elf-00&Z---uE(tFJs!~QUUfA zPO9z~m(Ju_74dS$6t$&IRa_Q{3vaz^{`jbI%lqr$w{uF249#~xk21bELB;LTDj{>V zRdv)%d|h|P0p>^Vv|sC2 zhnoBDp3C#NOMxr6l81d!t8BxHB}uU-l7sMs) zzHMi0b*VLFPT$FpJq(#o*;lH)*lH&BJ$_?lV&&IIWyR~{&YtbM<~ldXaJQ!PmfCsO z%j6kaIrJ=QR!nesI{UcxoTRl(*OWUexFaJq~=Md;EOStH&pntP~McUMR32Y=LP8@2mi2 zt+fnm)5T0nf*5CnzT%v=*;2)jM>gCg?)Cz4l_ibM3(_BoI5XGxHot_}bpwz9^y^MGWe{+vnP}7>`szkv2Dbx?3zL%ylhCUw$p-JA3i3HCGE@Uq zw(e4y*#F^`cG>M>X>s|gkamup4KBc(|LGfu0+BWk##aply99+RVzEb z_^9E+>&x@cXO-)x-ud%+af3Hg!|A`jy!U;Wc~ouRF)<}2ms^fGUK`}S*Kq3JuFdh~ zVsQU?Oe43ewfDfqB=x6_r%eM`8Yk{upgXNcaHo?%0HeS~gPH4U|MUO7C~p5zd;8nj zzx4lqTAKgk(c`(x{r>*EeXVN$uUpsmXDr+$;eTCxU(NqxtxNaKoAYD!`kc5MUiELE z?&b?!Jaysx&a1cUpH2;zi}~Td|JS-DV(Ol)ds!7#dOaAlRAl}b#Mk{e@<;Z1&1L?3 zJ7@09Nq+GAaLsP}4F2}$zcst(=auEIejgQkUwTI(+f4EIk_-(TB9qj3UAjCNwH#De zFoeALr{SRF)zZ*>yJO*B6|DmY8jF||9=HS@|Lcd!stDw6f#T6Kut^BE~c%M#ho@z3otk-Gbi=bOh~Gr{e*B4sBp zS#(bD&-TkNrORK6U)$1A@vZH{f@Qy0YBxP?bK!h=V3U)IuYc+#|fM0~Rw zEL%=`E!n%LK-{iI$i6~rcdh@Q=Jk7j#g@z7z43~>yHt`-SM!71g^X1yaoM8X9SoZp zv^@3g>YlacR|J-R_xXNBjDODSr(3Q|MCnMNxCQRHkcDpb>L9zE$KkT z-WY`@MF|ZlHt&ajnK={!e|&Y&bV;)2nanCUQ*r`BG9$xzhf`Ja1ycX!8Ewvfwrce` z`!W-?v-27!H2-Vu*e=I9CzbMrlK%se;YvvCF&!)Pr@K|UTbZ_h2d^uZ*xsC^QR4+aGeD0|7 z{5YFGy2iir-+aFvx&CnFEdFi3vyaErYig8pO*nh&;+21$&!$Qrw{vG`(0SxKA!NxU zH8;*6kp&sk0v0@Ej0{x^EzZwU4qor`X6~h}Zc~mhxJ;GMo@x=6w_$JXfAMQ_f9Bkc z=@R7#HrZSK=|XSw*|i5h8M4Z`?^|oY7Hqt0=E8ra>KYn)!V?8Vvt-Ze@=c%qc`dJJ z@f9x_=1Cn|0*W79&+h5y%>MapXZ8Jm^7;QC#=i)8RlV=$*7V~A(59zVxM zNu@xA`%Ic;Mt9zYFMoB;TP4N#{U#n4Z`YMsy1wk6&ErB>uiX6Hyi{c4)`htS0WY?% z4RF_4(!;iNLJ!l&vKOnS9*ussn$xP`vd;Y5NeWkA?Q%BUQyCS%*5J!LNl|aswR0Ba z-4d5Hh;m@@;ON~TB=&HYnQo(f-J;+3)QfVnf^WS(@qNwwo+s1ioBwQk>A{%(rue|J z&igeQWlHk-sqd{{e`3_&ow~|Xa?R7|@2c1JU5=YwzPszwrDbMk#27mIjAKqPnrxAf zi`)J>S3vuLtIp!|jb~;~K2w;dTK*`qX5t}Hwhs|c*6cj6(~&_{;QI^*hNcz!lhbcT zi|OBE?ovqd*(EhIYt1WDir_gRc%!d)^DH6AvtZ&hNc{a9g}UeW3_cmB~?8-I@$FyE-NYCUDhzQ zBW?aMDb=9+pXToWKGpxSZx!>jfPwr36F2DCj_WBOzvoTU^tc;-@M8BzisA@Wm7))aXjaUw_a+$?d>iH;g(u; zB>`!h_X?srk0k`Dd^;2$$f%?s^+2jM|L*Gh?;d!I|9y5Lc5}wP4{xv6KQTUjZtks3 zGYjlZo47;-XH?Az2A}4EA{UnFozejYJ6YFG2#{uU z;D}MY$Z%#)!QH6)@2(J2PoY%n*LT;J-OJbZZP3c|*{xGL zTifPMgpyV|IK!FfaQ1*68i)}Jy{oi$uIPO2rObOH zyy{+^Fzb)rKKGKj%G%^_)Ak;nuv_}`W_`on>3hm<7VGd^z6-1OT~eo>sdc`f?)<-v z`6thpI59u&&!*BXdP$B4gRnpfy5wZ}jdGQW14JsvkI` zT5e0G+@7^{XG>?ONSR8yPF!iKwz%WZg3YC$I=S8D?^%6a@jllrFvRnfPSX@0`CXc) zckO+;e9HGFrW_sV4tl5S+!z%5!j4~fD;UVBJSoVkB(kR>`7(c-+~*&^Ub|F%yJDCs zRMf%XbK=~}01M_b49hNU*t?Yd-oN+X>n=;rHosH!_I3TEjr)Hz--&XS>P-t-!rMN@ zI4M8(rpdE80vd`%Dy>HL^S*xF?NzGoa=X2KQxNz{Dtkp_Yj!KVj@NPFxAdOd_dR@ct4PFjPpQVlx4Ap>Zii&m8H7lz;^Z(` zBGsj(Gkw`Ap~|H!vGp%*Sa%xCTjLhIvG~=6;_vI{-|E@2P~(ve|7#WnLj^766(^23 zxCOUxT;n}c^7hvB*zK=Bn1sF98~eMnd!Ln{yN>?)i?7u~gJ{Gq?pm?I3 zx7rI9lSajkhDKXKHML#4U;q2E`tEY8h}9u3Gfcni*_(Oq&!yb0&ofv)tW00a!?4Eq z$=-)0P1mn(Tvuy--Bb6JjQX_v+p@9d>!LIL+tz1= zT6}#l$3ospu=2G^`K0J`y4CUtY#}01LW&FyD=zUDv|V+)YOVqa{kvR?{qVXyecfZ#w{dp1t)`U*ON;ZGPb={|NrLyk1+F~BlEb^^`FFd zu&lU$``FmP7o7wwH@4sG`9W(#J$*m9H z|9kb{^50YS)rGPW)tS#t@BhxdUw1Zz=fk>c|9=P9|8-p)ce35~A&&+7wnLWf*Y+p1 zG6yHm`4w-rT6X3=rv7^;*;s;4FI}^8O3}l`UN?;9^81^A@xOgaze;Szi~mKtZ5VzW z+f$@*SmI7)8Rvy!O_8dXg5685U$?S&cW3UTEvJ=25_*HIx)^0N_UEZAU|?$EX?npO zdF#+_m$Jl@p$sn^wE}Bzyxsq$bbsOd(%nN3v>Bn%}Zmmt9MFAos^VG&U5t0bP^I(WE5JtXkDA9 z#8J+u{C2;RWg62~RUU7C`J{W*dhZL&E{^d$3an=s(irP9FTU~maMyiP+_H$seA(ur zmEK!2&-rb+Zhf!2Gb6j$!f>kJ`D1tM!q$e)o&4{>_0`Yz?c0CjeeL~yx9XOzHQ?}3 z*q0VnzvpOf+ewagxiwR>TD;}jbj*)Nus)D&DRSR7li{1-pF4_w!@2A#Z+(^IJ2N|c z&zD*K&-~ZUiDDJ#*O>QL!C&gw6`|Xw9-Yh*D8Ar1skHj}e4FyCyubVF{zc3yp0@L) zrtX1rKfPR<-2${J^cu0JMReC^rIW2~DZgM3A_&fl|Kza_{`G|%avu^5ZP`?Z@L z8d?sVQem6XzTAI~RqdlE?vGymd35F9-_O_I&)=2weyh3sjz_QFTNR!^oc_KtV?)Wk zbW1H=ABUEyQG2raEKhHrw)x#Ix9$^K1!r$|cT6{!e&Ke`jaw$cSK=e(bmnj0>-)j( zg3^R74Q#F~T{l~2?tA>GC!Nu)BK^e#E3HzE=)JLd-;e#*=RTxgTfXI$jcty^`}4oo zO#Ax!3Fp7}+q}=zH~u`Z^m_2S&J%j<>RgJ?sVN3r3mTl( zCQbTx^tbsi~kiA-1-q9y#JGZ^&b#nh4hN&vS z!F%6syZO_T^T_vY=FhaJzFNop_UdD+RU+3NSr%>DD*W|qch$oQvd>n9J=OX8QsAiQ ziI@YwEG1Sfy0uV7WFdEqVnz6m$qFqRJxokoje-HpFBg4OnpP;H)Z~=TF6~`>{cgp- z?)hSYTI(tbU$h^7YP@yt^)1nFHNL##xyiQlkYUG#RIx3`JeD`-<=^OQ-EKHc&@*YDQVw9IhJ1uR`Bl(;6e95g#7VIc8GS+d#jn96OI z#)D2uk(^Tk9U@nswcNYmchQcYepU;2zxwSy-`M#3TQ80e`CD$ywJv^kX6EI)SLgo< zxw@RMynAopmpgqoSt~9cnb9nlE+f?4czNaH0d0SGOqD0UH z_ZQ1T#qWy>dCYLRsP^ksd~IFD6Q9!&@9%I#uQD>W4t>5!{_o7~|DQy!7r(mP==;aR zujO|n?S6nML6&{Wo_$Io~h6 zyyYPKJL_NE_8;9fZyUYtK7A$J(msg$U&tx@SFg(wf__`B_*u91X@iQ$)z#a)!E)z$CY^VF@n2xdzjnF%F)R-I-^u?!&^)hm)~p*E=j{tF zZ~ySaly!yHqBWaXk0(CbrKF&8DfEK3w%#0(M~y{G)~ufAv}>u;To2>iyg9LTAG7No z8q5DY`u|`2{`aNp|9pQDsGWD`-+udTKdxNj|MNw=%xCuOb@R^2^2tVJZlAUH(BF5< z`|Qh#9xk7^e}nxt@7C&T^H%P*|MkA^!*siE5BLA@sjiEjv+Pxi1xJqaRmT;r86V%v z|N9-h+Wg;%?&#{v|1Pi|T)20|Bq@(VyoO$Ww+I?$xe3N`2 zv0=pxFM|WO)85XTeMa8aq~;4xwUNU52M0II$T}8W{Px`~htR2KC%0dhdb{@QGSPN7 zmqk`Gzf>MxwyS$S@!;+6rt?KN1~(>kz1V8}=jl3`bB4mgg1dGu6V&B=cjD`>94g9Up1b#w|CN=-%bX*i|5N*&FAG{Qe<3Oe7k1fy3|Guri7DK zQ#ak5v-8ocHy4yoHg-#IkF|+;wW~=gTqa^e{;eM`jz9e|u_J=Fv!iOG*16|?+hi&} zTTlA=@~D3O$2+p|SN>J4wpGniwKF`D-Yyfw{kf#wLrq`a6kgsh zZ(C}8yR16x{kfU7)!Slg9=hKDyR3J!clvy*tsD1*d}(`iTIckq#7K*!H|Kh$H*Pka zzm|0^XWwFr+(QxJB5vGTo2I(IFTFQ$RbuDb&}7j^wVL-d6Oy^r!mHl9n=*u^)W3Pu z$S~E5OY?+p*lXF@ER|Z{-(_AaPT@Jfect&kwsX{{{OrFaG4GwI&Eezw4WnHjd;hLV zUv@S>AeMP$X_-ux{L`9EtDpI1ep(k$a7&a)>DdayrIXgn|Go3;;%@0^{jMnPvpZR5 zFh4z(sad^fir$+(tIN%seXq{TkX(9ODq1hlfHjBNEayg)^wDh>GkpA)f4*%UEv_Oj z_S{cT-gaNrlZEeAHe0Z)Of~}y;aZm zH2I21n@ydi*zU4m!mZ=SA{w~W>)`-+%L_@5_C^z2^DG^R)q24~U-$JGnwgQuz3r z&5GNt)%;9OhX}f#{PnWA zZfHczeE93|;qTkF$ro&#I%(xa7qbhAk(~3cI?J6i>8fE8c~Wa(!B#4(8GdNbb-B~#H;Ts_+JE)u+V9oqG?8;E7sJX#?%u1y0=Iv3I@SGM z*UKL6tL^Fg(q?r!|F!q~SAAu+UZk0^aNZ5R4t~zQsWVI?5)58=Gw&>KopsqWJytJk zhxE1?KabqmZxrJ(>9$px`NHQlIX~81emW=0aL^)7cs|$bB zt*q2^UAZ*;{gF!1Kn_=fw-$NjmwuM*T6*=)wYzqS8|xBZ{F`uC=no31)oM*-Z(KU_+s?Fw}+<7XT0tH+5LU)zux~}<}FqCH;>MZ7rVCP@V{f_ zHTSdU?^gbMFdfL&w5_5?6`6Lr}=+=9ACxo^4W6Xjh&vC>Y2_9=l%+* zEk5V`=Xq{Sl(pjFP>y-4Hk}rdlCgL!8?*VU zUFnx2pW{Domj8F5{^z^;uh;DVZoNPA?#A7+rhK)JzWuLD`dMB7v$y(t`Mlb%K5-)H z^WLbfP0O4mzq|b9#L0K(*Zf>}J+FKET%X9g_w{vO=kIy)>Hin*deakZZ=dnhG+L=1 z3FdS<68L{&a{Q0=^3~_|S4Tddo$V$Z-1S~Jeec(U1>Kl)4zP}`^eYt4y&+tbbME0TVgv;Vzlywg+3NbU5gb2aP>-u*goWSW=dpBIlp z&EL$}B(k~dkoI)d8G*|_=G)x-f3Ws!v@oC3KFy2XR%v#Vt$$lhElM&d$eKBgHD2Zw zuV$`#P(}vtQsK>Knf$)+-hS)kwZHiPhYOLL)3Zws7xUlAeeq`U>L*)2)TI_KzMNN- za_Z31wQcfgenyvb*365GijsS`Gv)QgX79*p=eJs&y&|@*N9h#zdY6PCC8H%ytGup- zNEsZwACe?JJykG<;f9*)O6fA~vS3HGMo;IvaZjhWt(`Pwrl3nv$5rcqxqnWx9dJ41 z{9~ooqt|r~SC4V9Fa|JBt@0D@QA}Ps>4b7=>=njm^|&*wl9Ws{hmNjvTe zHgb7p?2`7=6cB9MUeG*Mbo$!a8fhPAD(!o*YVB@4DH&@Un_`W=js^ELZ_K)uv#n&y zBmI`65$4+sKL5JDRr!?P{HPr-nhx&#s?rs5R87YAcart}$e*|S`Q__W(v&RTd(KpD zi?;ptLw;ZJ?X~xdE`Q&@?eF6J9pC@XxBoO#Kf6Bpcc{3S-|oG=o9-V@=%`5uFk0E! z!^xSy!a|&3(Za*VCkpO#F?!5gYgd=?v(wqX?q~Kk%e(h>U6?a>{;iFB-=y9AWmPDm zt}&;WMZsv#WsjAI?KUYcIn!;|X%XLYMkq9Yt!k6kOQ*Qlgj$!7t!GX-a0@mi{p`53 z#$}e9Td(g44erw7(n%N97B8Ru@ONd&$;yl!Zm$0ue%9X-JYVzY^1}b-g_k^={Ux3j zzJ77ZEL=syVRl_~?pwF3F(#FolX(ujxVfxp_s8STKX{aw7&mUbcI;K{wknO=7P4EH zS$5@ScS|49dBv9c{Yv5im$$k1IJa(}e#$Jf(5h8KNx0okyCLn-r>mj$pH}|)+l;|_Q_f&Gya?mP_12YZgRs`+sSbo_TQZK{q^go zuPmR;+!eGmL|-6O_4J#)&sGI*zgPBie|7NdOW%^_6?+D5W7Lo?TI!p(qi%8LF8{Ui zKjxY9@B5Qk{z-F_XTn*RKnAtEV+TH--~YeK{LgFI?R!34S^lpqE9=~E8MTjG1v<0D zo8#`x3`^=04(HKzKXLbCvpb{R?-L96UXR%)akPM8a@T~!if@&1BCeZK#S=n1wIgCm z4W#E)ZP{3)bF1j!f-@SP8h)u3982w#tGZuV1ulB^RAIq#MG*#usILb@8+=7$lKFa% zIf*X27P>i6N%HXD&FYU=s@&YP*W#DT@s+vfMO@_{ZQfcO&~Z9$`FZIbWhe_v9*zWx4K`}y>hjKD?aWy;BfMJWu#yH#`5=T z!)Ly9(?5ST>g-mHKi=i8_lpCoRyH#3@lcJ7U;ku79?LB4r%dZNxJ(mpUTCMZDaU?O z(4SwjdmGJeX-IM^KCno^J14|<}OyeaaEgD9&5!BxJx(uNm1U~m(b-wDVPnn5tJDA7(ck}d=k#+a ztKuW2{=GjhxBK-(*L0=n;_Kco+qUffzhmBUyVUO{{`@xR^Woie+m?M|cOv zZnrtl)TizHajrk^zq9_#-F4a1I6abE3@+VpUh~~QK)1^9*TF=?6^Dcwb|_>U-Lmeq za5FZ1Te(7o46UaWP*1HEVPRe@CO(MOMvQ4ARD_8(ySF zOv}GFwdVD^FU;zb_wTDs4%lEN`Q)$e?PXgp-1E{;vyS=hZ?~uH?dff%56r!yUUdsg zsJXbT{j$AJ{BG8HeS+&z!z;@&xe+r)59>1mx!>*!LHyc&HyUNPD8B zKgZD6+_e7hynB!RMR%90o!?b>U%B_knPBfAh0`*Dj)hOUoo43jj^y#4z2pVIT=jz! zrq^S?Ts?2Q^OpP;;d!r2K5g>h*%Pd!<}6~8prI2b!1>D8tSpCbUGX7MN-&&BS2dbalb?uSqQ z|2*B=8hhvbuXx)X&w0&v_tqKrwJ~4cl@wn5TDt$Ap?JTI)NPj=s~s%+lDb;1@Bh=; zfA{0g^u2GZ_x)9m+xGFW{@*|I>t5b?``t%3$F|`1(L0$!OKwD*7du}z-|C8eX~~8? zZ`hq#dwSP&uI&|x(O3AokH__&j5M3)MBeJV2UjZZ({b_YP-f~7HM^7Eu{x_iF~jHF zj?TF!HJT=I22KzTRn;);6b}vL6pFFQe5iG3@~W8Q4HY*88s~g|#2tD(#$EBa*}Io+ zZ*8P4e{syrj`I{ym3EqMgK}lvgN5t3dUzBp=*alywnm`5p13Ds;uWs5tqugIGdQnG? zNKR?Ns}QI3u+(QKqVjy1)j~RVBuK1!BFiKgefmg{n3fac7vWx4Jq<1Ik2#M|>)rj= zG`no?hhs&1ZGJtMf2VKPS99Xk)-Mf4Ck}7~i11y${cYdB)bM?ek6yf1F=KZ~s?{>( z_IX!ql($XU^42uG`t*|wi~BeJ>E8c$W&R(xl%ybjE=$f23>`OiUXK5Bf>pmV`1K+0 z-^ck(FPB|N2+>GbA|s^DGgIYbDrcML+gn-pdAaT1xSlncH+SMwQ>6(H6DA$84xe`M zjLcEqmc|v4R%SX!qso3Xe!Ir~=|q=>S5Rk?1$${|a_R(%RaMI{Nb zMwcmWv`7=wox6C6q;L7JCAZ7pT2>wpep8cv{L0JqcliS)61^ARW_PSLH2M5;op_9C z`PaJMHw#J(OwP;|`Q&{4T;2Py*^7d9&CK|{_UpC2Aj1#~RtHYy#1$GVx1aI(W8cqL z|Nh=4Y9+U#u2gk**}9KwrUd_JTw#83(jw10J!iXK1+%_;`}(o8meOWkUume{qM*6_b(b`FOs+0^2>dG#iu7L zOC`QJ$A3A!_IKL7A8*6&?NH8LvG4WW_}}~gzdrm%Gk57d%e3HMm;6lYe}><$N-_OE z@BPoMIcw9EgP-jUJej}ryZnp#ud7Pk3s}n53cYeZ`q|f^{>uKaK=%!9YB`UVPwMJB zbM0sU#=>efiM=PM{Ijq9Q!LZq+rPf~-^-V~d3xW^@ss#v_-p-~<-goQCu~r%a9=g6Sq#S z+`4qR*mjrb@1{HAPiey4vpz^`?l{cka;Ei!Deu3lv#sCnS^oRR#CO|b&w8)FweHn&is`YEj9eQQ$3W3GLZ9oKfRUD2{u@X3GomvUDVB-XCn zkl@;MM^18a!cr^Y%APMBGggb#Cp*YQi8wA0nE!oMgrli+#|h|* zh%ZaqiVkjWN9RQM4jm(7*F}kC2izQEb#q+SN$r@hFv-bUSfKZ~dJQ+b>t`-cDS^$M z3m4fnAKDO_s~Ob$PW}SBHX@f<)4{ zeP`I0=9aD7|MS!Ps=JNX-)ToaT>5ZHftUB*%k%dbFPgI8%8X6i(RbUHJh=Dr;hE2I z6Y9PNAMHGxlce8wfFWJ*_$^LWp{@!f8uI^v(^SC&G5nDl5qWdQ@7nzo1N7W(dM{HOQyE$(Zh4M&X!fV zhdmKFK4;0J;=^pAyZlb?k;v|7E(mhOETpf}}3>!Jw9QQ}BF>HG=z3)l=w+U}<-21dM#bMc_PoH{!Kd!Iz+~lz9 zUGe&YBhxl&6zLr{sjxcMb8+8`n@+-u(#^m2Zho2fEaoY<_susUuV0DGOi{O;|E+9l z=H3>G67E>djVdN8S^k#~=`0tCc2;1T9M0hwkokA|s>%%WS1kr{UzN)yl}vdUmzj0N zN_2(Ta;DPa2NVAWuuPI?IkLdd<@^5U=eDxTdFBS~a=JM|L$c(0`10*Oe~+C1_j~)k zH%7??+os(Ad+8&8?aLnp3SMhw?x@@N_0UZ7{Xb8=E?=_m!~U<<_1{~|>v!GF3G|7R zl~i*wd+~qz{eKr{vhDxZYrnlP&oI-hE0I6QiQD5vRe-74x;qU4zq_s8$7et3*W!u! z&vfOsSL%E%sf|%$$_j1E1)umYx0(0vm2rW?7v8ns?7w~F;X7bn{>wL9?8EmHk7wRc zRg)J^nmhYRgW5UEgPENoCO?b?Ba_$d@cJa}{@`_kbHTk(lPN3$3Mz6rLLDo- zW}f`==1k{t`Tr+=-`k)2eqV6=d=bI*k(1O8UtMbddt&+5`lr=#KPT;dc5H3Ai}&(* zZ_K24y?h+!?&d4M|BwCq{}0;V_do8MS$s~tt^WV=xG&Mu-_%@xUu$*x)DlTn0S^VC z6&E{_dA>B-|7(ih|L#(F%r#|;#?(a^wC=3oWO68)1Pvk#lTEBemg+uBeiQZ!c$uDngT*@q-zxVye$tk(ZFQ1sRePL`) z!0%J1rKf>cY`I3%~YD73A-z^SRsQ?t}r*rZHikz!#-PoRKg7*izo`z>z@GY%hBEIOAm z>D8oDN`A@7%B+P`j$}?L)qZ`pbE$=r8QU!WU5`EqOlwegFMNDR`|X!Ix0uU+6{qV? z4q=QAb2Hg}_v57|P z|CP5bIbF$W^Ce3oABW2Q)A=30X*&TfAar7UR`gq`|Y#adV9XT z`pNx$-j3%9`?l0Qx^g)EonW%z_T*oSPH)@$vpR2A;q}kIm(H=e`uo${&;ciP|BvSvA(gqBF# znpXuPb9Qqb=@&?meZEG*FGPV=PrB>Um2KS5zsH(J*zGNR=V=~e%Jb}iZU3$lIo}x7 zPG0QXp0(-8%rnJj`+5SuT(|xt{hJ~F`_|=CrLTvZXFfh`!|!+f$W@!SPaeNb68bxT zduNEWQ?0wkmEFanLEP)YW#hOFTv!$O_Ih}BHcwlZZg%ikV8)>!OA(W%%@Vn{uDXWS zNv(Lr>*JE6E7=xgrW12>`^K*dQ;!rsy4nz7vaDp)#_H$$p2row&Ca_~@A>P(%~UtylY1_0f|fvd^dW&5@oH_g>acJ!IEb zqyDr>JP?G)`T)D$$5-@ogWMHf_V18$7eG`c4dS zXy7n;a7=+c;gyc!+7|W0kCRL_y^7&GP z+F|L)%9B2SCSN~uZ%UBjJ`vL#9|1$=fT_ko3s1O)CUzz<>jwm0bO!Z8t-Zt~s zJ~@5)?6wKw`Yba}luVz#@3s5=s>{9A_dm4FkF+Vu$|}>7U*|aYmr&I5zZnhx92LDkecPGRQf-mv^S{ae zt$4<9!1&Sk^~DLfj`R0T3~9}a3U-~URG|9&=hw1%Ufudje)#7kDQ(NNw3%cefM0x?m@yW4_)`GVa@_UX<1#BPu9OXd%b)0{Xc8Y9N^>$ogllSOo{D= zg71pd72#Q$4Z-?WJ2ziGqQfDtt}x@(MY*u&9H9zIe}s+FwJ$tceZGo;$$f&rV`isA zv)n>FrtX;2>eSP*i!Xqqx!h&B?71#i&LGoy0#e_%dYJs3JNf6dHraFMN~(V?)!%#VgSpburM>qux~bSsJ{02o zxK;Vuo;7QxgeM0*I`Q06uz9VPbkmC!_I<3!6^w5&I^XhV{m9s{UMJ;3d#d*tsj3Rb zgYk^BAJ}TIsC4F4P(k00dY3dVa(r)URo^@)K^t|7Hp8M6lnj9=1vn4fgdbGTVZNFQP z%CjFQ-|YJ>_v69wcmFTSS6|#;|B==DyZ_x?|5wTX?_1rc$G7j>flmFJpBvZLJi8}+ z-0$b6o<$r96{;(vE_Z0OFQ{p7zYrK3e)LQKTFKz0CE@wSJc5B0E7H|8I)8BfHIx-} zHmw!xs%b2&u&{V{B;ah7w)?xyZ-35=6@P!P@?b%3=HD;DH-AaCB|qz2x<_(n@KfH` zFQ%Rfo7X=fJ9+2Nqs#Lhl#8u@O-HlM}wPW`ZX zfAYm1sXW&c?wl(XM3{_aE`8P5vPI3TbpP@|{f8GTXE0e?PArM6Kfj_oo#FS?cm|e} zsi$*h@(6b;o#s;i`R1B#_`QOUrswy*IHg^7r~3ZI{r{gNPdalWr7H2g&#ig$>^4;2 zJ~}sc`mw|7{{5|f_xo0S%^sU7liV_g5BEZimc`vPJA38Mm&Ww``gf-5wtsnAzHfbb z&CT`s9{T359(wg(+P!dTgyjV1jRqSJl(%O}&98jplKp&N#`mTFemI(aXxzWRtL%*P zT2tx%+M{v*=IrcV7jIo=!Q`yq5-?@&*A*873~n^E+zkUO#V;JQK<#u=$!HTvpQyv=G}NR;KZhE=yzWan8)mWo+qHAL(!n4{t0;uyAPd6X~XnI!^& zsbYrf0tBWTXt^zpn6$+7ZlrzHoXIM)GSgT8{r4#92a7}B#F#SA$E@4eZC~8sBNeEr z7y7@A`R(?1`R|M*rt~$P_x!L*U~8Lb)T(E3-i*Rh(>Mjz-_xF{u=v=KKi%!0?5&lm z%gi2>-k6%GC;PbmW!t&!e$kD28Uo9^yEeyNZ@6q}cIA7~OYX0&Mb9oAjT2d#`dqk4 zt%22&F=t7s`jx2kC|1$u5;yeYPj-ZFncA24S>ubSjmfI%?h)QoLjxvOC3J9j%uwoX zQ$4)I=UVpZhd%L}8ls)0v=|p^9q`HL z=Xsuu)UU7nKeN34PiJwrbKbHbt4~Xo-mgD?dJb`j+=Wi{&Kr> zVcBr}tm*{eM*)N3{>M z9bxwt5uR9aRmuNR$Vq0Eb2BZ3gx(v^Rw?+@`Tzd>dA2{g>c3vTzv=n2R)4dz%HP+Q zUt(E$dhw2&N6PV5Umq--x_$4jN%{MC6rX#YJN<0jf9v&sC->WZoAzmH6Vat`ps2R}P1a@U#3lp2#f=>2A}>U$wbZw7u3~MiJ0)?y&g|=) z?^1>*K3JTwl&awFz3kd(YH{Yr*3z4~FK=?jN?sIO#HOeeGb16|iDAwpc0K>XJqH%= zjGG?vBr&wN`_u=QwmmBpYyPvYJ-vO&|EKeoHmCo-{VgxuZ+icniC(Nzb7vjPbUtO2 zx9$4$UGJ2Hk1u;)^4qB@ZR=}BiL~S!n`S-m*V-r~J;iRx9sxshC#^tEvy^19B%xI2 zRi_LBn{$}58!oJw!0defn1iU+t0^-UviYRUxT$4qC~P?60GnEyVd*4BjRj(%>$nzY z#YhTOJN>ehPHk&iBvC0JG-2&2wk8G**UTHi-H!KFTr%IZ*t(k~WlJ<{Y@2*!#)>zk z?XOo)*eEgKmc_mD&Ix?|c0ENLhZn4Ja$Rt8+S@4-<}ciHLKC*X&yT5(%_(^EdH(Xm zL@VA1<$|RLq^3Rgzxz}Bzxu3~J8}Znr54VK5YE(XV{ctC>7hV-Vp^c?!eeH)H|uui zY^bR6eSFtECUla>>&Wu0r!PM{FmGFlMW3?wi9I|lN4C^^e?Bxl?$fmCF-4z_$9-C< zZ~yb7|K0lcvi>^rqd)u2n6jt+yN{HS`IVNxT`r3In!IABrm$$gSG-p}U6grZkc$Ib zz$U?(b$N%6oxP#9DoQYYiKx)p4I7vocT9CT-o~-@tI`1}kNV7y7lXGMUcXg$@!ILU zle@LGkIR?-El#`_ppiY#B!5-u&ZcWOkFLm#u6<$g#SNJ&ud|dinj>W8Zi(&3# zwxeO6gS_O8K%Wq6FR5+ZoAnf2O)78<*e+~aEuVPnvv>~rIbjG2T z`iYk-@?LMd9anI&JHFy3cmB=#gE>i^BEObBkKgn0u)a_-*G1Whk!SuYKi~BG+&cR& zt~Jlj@84GQd~VyOYiHJYtP^m)R%w`dYu4=G^98Q|Kh*Zy{u1>_%snF_nH=G&cu4W* zkyS#DH(eH;5bItc_}Xn_T~V`_RDeuuP47D0pnBhPTQ*X_K_Jxh%lIJM!6SZ<(Wx^M!qKcqNWZ>s8E7;LYsNny{%L#l@3%5!+M084Em9 zmZ#sC`nULXTH2{4A3ywv+<3VhzB8zv5#F-Rc(-~4RrCO;M_vk;}`S94qrSDE2eRJZmy4?Qq zcU$vse*X0O)S@z}L#C^vPWJ}c|35xo=iEH+US6?;I)bD-xBwa3b>}_}R z{a-f@$M1bTrNC$7)I$?DS(V=`{ojo<(3fB#P2@_L@zIZ>`ae&>rD zc5i#$)gAwJ?)o1W<$w5}_LrGIZ~ocO^Sm5ig~}|vQaD+E{j1e`>T74+sQ)|PaJx~W z*Xo$9w^F4(Ppi7u`1PT%+84=w3Err$Zn0qoS_TJr!C%%yj%}O`x=x@gsP8M+kfpmzb8NKxvFQnR^*KQ zHxV=L?#(T`K5gdQ+qa|BFVA#aoT#am%H_A3{nUhA>aU!W?`UPMTlQ$CyUGlv3BSZV zPgFXDM%#SSOj&fxAm`8$udh;k&fbfjPqk)jU~j7Z_<^bKhrz>(PM2e%n>b2ur?e^_ zS(V!?d8p=4+sB3%JR2r!KHBIm=qJ||yLWnY^t1K(w|~tO-uwOj_G!N7w{FY2dAFc> zUwKkb?`5~Zsts2UJ#Y0Xf0Va!^XAMr54DCw*27Vv0y9=M`L#$zCM`}8-0sB6WD#bh z_+d?oLqKBJEgAFHNb@u6~C2Pfydu?_4XL% z+*xovJ|-l5lIr^@Q}#Bbi@lka`?J&eRg;&4td$h`3 z{JP!0pUUz3UY|JVetzxT*wfeBCw)I%*Y6P`u}UEI^uc8n@zeHw(F-nA*pMoG``fmi zvA@^f+FAen%$YB5{^V@F{O-*1xnWhG>%*n=_`S8?r#4)!q zy0z2TJH1bLu5DS;$0sMZ9^JfmYU%W^TT51*x#O|y*&>Ul0T0e5zuG_Voyo3NrB_F$ zPdWGYR`u)8>vw(Gbl3b|!NI51QR04)%sh&x^@2m6s~E{drZMfYzyA7b)w{O2!7~np z%h_4m+|BmgzEoj_y1!Q3jU}6ngSn$W9W1(dU!gH^Q!n2khVIV=s}>1Gaa@gIn4z&L z=~ubE>E}1K2ATPVSEbHfv(bI?;O+0f6Wd?QwK;w&GP!l+QMJ0<-1={ytFu?@MVlyw zuG3LHzsRI;-UElWuACP~6wQ`u2lKuxRx99M<9OV>(k3UKUpltBZ2A4Y_Is_Ca%k-B$T)nfYY+39r-Ee* zy^uX(I z)yq4bTmP+m`fq1(^U2(&N8I^}_f^ZwZNDECzgOaWy!`|%>VW8`u`iZ^KROUuC4mJSYQ74<^8n9lz;)r0&1p`u0EF?f*3>W!;$ugWQ~lzY3TC+!Ma{)Aj$4>*Fj-a;nO9 zY3yQJ|LE%U3qduU9bMt?7p~*tzFxU7d9uJI|1Es6EQ{r7`tE7I+*voL?|VYgvkYO?a*wwvm=OpMjP&+XJ- z^l^5SwUE^=mbJlu%wR&ozL0nM8xfgTX%Y&jY<-T`T(_?OvDp3};qJ-Cg<5y3 zZImA0Y5u(2^{H0N{;iArU(emV>-yw5Qi2aA3Q75JJ!yGUQ| z7w#2{mJDuTQ)E2q;G%HYPmtMu!}8+Oec!74MaxYRGxu3+zZm;&{k(et;UX$tS_eKQ zTs5y)kas)e&5}1(ii@R$RgcW;jF6q#^{>52z;((JwO+>r;b14T+#PFDxHOL*%Gqhy zs-f7|xoE@2LYZQb&4yZjpU(Vd+Q2Z`)Ih9}!I;Nv!$eP^8z-0ilUJU~G@D|QsB9o`v{HZb(tICZMg>tbv-jWjs`o9fF(`?Q zKicSfbzb|zjzzM&uPm~u?m0TyP;uVLB@IQFwru8pdWkcLmFIk(|GL_;I~{)YpB|fN zyt!kxabj?Ym!xRAOO9^G61SpciiRA zN55NYo>PBxb@`huZ6WQicm)Lcr}|C1lrXD1N5-*{H=Zf0WBm=I;;XaQ{hnxU_xoRQ zcDYT#w}b8H=2~s5d3VHX{q6T_pKH0^lNVVR&eyGR&CmGersA~c?{uxd=iJ>}{kku9 zGk5f}^lj&J=lV*wNkmmezDzBC>vsNepZf3U`L)kh9uGT}6Ir`3?!YRoz{NM;lvo&5 znhA(n1O_q&i_El0^?tQ?+D?(3S!#N#FM0cj6zlAZurHmE>+?{qM=b1Y)|ChAUlj+1 zclL{27=8iP$!gmZ#{kD^BYZ~vpQ#6@b2O?i3lue7b)!Lj*1lh^;dSS4Ki8j;)iinKme*d)bLV=N zzn^h$r|PSSF3;QBvJA|0{#M!BS7&`Za`I_$`t{#`A0Bk?yZ3MB?(6<**elr#t{Bf) zbtJ&~$eFgB9O<_!*Y4gH|7VSNUiHUN{fc+{xUD_C6c(s&dQ!xwW4y8VhQw-?lykxp zDre=FFT4Hg!Knx5|JSXYGwbHhOWD`?RPUlIL>FL^=C<|NMk+W}cy*tM5Hl zJ+XLIaVVc(g()vbsLI71!KbxF{PSlguSn@Ta7gg&o+;PEHWbYYbuoAqEyC6|^VHX; z4^IVUUvItpPV1Av91-0jrir~w)_V7ZHO*)F9Y}EwQVQjo!6F@)GIOTor<9JKOC6`V zc|$o~{kgSrMvL^u&ffRthCL_M8w6$s^mykuuw);QDR_`EZ>5$Chu5Mbe4(3#yk)|j zaxZ+Gx8!Pz=zEKjW=WPVwD*Qem=M(A&qSrcIry{8-d1Q({8#v0$ab z;G??p-yK_9_OP^csda(Mq$f+C{%rlR=ydxelg{|^pKrd$-rHfiaK$vcp58`D<(Wda zg4b}Iv$9oC)!26t7~f11Wj4CaVhEFDpoo&Ma@^kd#k#`D%EZrRsOV6I3wxKfDcVD=$gi~mrmc*IFwux(PerdIy>-NxlS~YEb&Xm)yn}xNr)z9nL zm*y0_@hN+iv#;n}eon^3)ofoiPhTra@ew&1_~y#?brsh>*S{6NE2iz7s{C%g%<`omr}}ZqLV6@_!dj-}h)!q;tiJ@PE_y?|T2<{x{3=%u9I{>s?gl zSzMYOS9f&#-EE%_wcPu@o&V3*^ZU&wDs`On<@v(;9^oX9^VQ$y|M{^@iQ&J1xydfe#jkFEylT5S-%+_d{nLz(d)DUfQSf+k zbz@@!XXui3FPIFtwAoKS(7GRTRd`iPS741o&N?oKrN4qCvp=tDnA6m{R&!Uj_UY$( z73bFW*MHocI?sKgps1+eG`HOo^>zQh++TbCWBHyx@&9hW)~k8?;Z zohKcXweq6H?n(P!>&x%>z3{F5k7K9v<}6-(_|vkx#`XWa_3PiiJ^t^w{QbITH>y_K z=B^EVFOqf8egB_~D_(gOk43!-zUF@jVEXE%8}(<^{r?lsZ<*cy?`XbC;gX!GkyEzl z{C)K5!JDFZ(GaF}T1^Q~BEgGutuLRP_Ve4i*x=va{NCTYcXQ*?&86G6mM+_AFnil9 zHM28IT;v+_nlzlu0w)}LzH#MBhnBuIdRKS0Sj~Dowc4ia2g4Q3wiwYsCk6|a@}A=> z7JsUC{#Tk{<*BerU50Pvq(hUU7Ig?Z2VdmK5^;J`JU!j6b4_eV{!Ovf*IUxP9Lp7& z8&CgAeYsU9842ak?G&`0wvqZ@n8kKF_;qz3;}XdBtX7&$K=UiY`(J{T2|I)+05em#K8chBd3Y z4!B)gasIQ8)rR!z#q0Vnue^8jsK)7Q(>6V~dET_W{`9-Z?s-*8l*rS@ zGG#FW6J~WZ#?-F6w>sjH^!Bs&er&q=Y3cN@dvthX!hZbQ5V9z--r|I@;F&V1;>*1| z%N8eECVlD>x>bBjJEnYb`7-l}xX9CU-`v{#cb#+h`>OBaeYP9tsLb`=_x0=C87vbH zO>Rt;TDL}a*ZXzvP8BV_n72gmiib`1_Sg$Icb#_A6*wZQVf3=RHa~MijZVDvQ?~3? zehZJJL2TGk-BP(otl>+>8^C*X>dcOzoVhxai12%XQ)zkz&ik zf5)x(V5D=iz_MlT+Ys&NJ`0;Jrfr zuzTW!n=CUjPe??BC9R!QyZW5mL%9|Yen~FdFic!EA>ZY&l7pc#mvm*AZ`3W1 zl~)-K`}iK#mf~%_cq2<$^kdvrX|1cv-YIo5oi3m3<#^?E;nC3B`@SE$_BlzQz|A1wY=fPFK&<#0?W(4&LeE{oL#mmU zhYIQW|8X|mYsojG`U+q1-sMa(De_E;>dJrTSRJ*o;Geuw%rs|3X2_yjm-)Fp8+KLn zPC3|?&>_(#&~B>j6&DltF@?LiP%H<7n zdii6vez)HDcG>%?hwCDn8z1S*Tm6o|Uwi$evv#lU<`j+uv#>dCyj2&o*VWzCy&ZJ% z{_nZxYhHb~yOej#EJ?HYfOD-t{Rh4I_cncgXuZ!OCN9%lI`tyE<56cu-B24Br$hZ+ z3U8d1=Wgdr+I-B+v^q+>;_B*E-#oIDqov=SlsKePZ2$00pMUVpZx`9;vF%v7Yu*3r z{rSfjXDn&?r`aEP@zal1&f8ylmM;~&CjXl=Dt%4HQ|TVjvemEG6iv`t(|^mWN8sg= z)DYF9T)b*Wogtnt>hJ!s);vG@+r5te z|DM08{khe;?(=&2U$gmbjb3Em%97MN(%oA5sF+`+xc7AYCVS_l>Y6M~LWvPsjur3f ztE2lqeVG5RYRVQ*$pqos4s$03O)y&je8!5ZldiwK4;!bmeZOCBX0XZZnZ?sI?RoQN z-r7`}_5Iw+yVlm$+qP~yYrfsbTx{9noiCSMUT`Gq!RD1+(rw!s{2qqxb#PHV@g#%w zse5_lqP?L{j|w&}oZPVVRQ_@+A?6DiftnEpP09>MyH@;SYC7c1?hyZw`TUud8@E)H z*w0-tSh34ACF;&QmEb8Y2g?~mB3CYNjJ^KODlz4H>F(`uySr_deCb=U-SExV?yXmQ z=1y_t{CL#u*_`v&+4pv*-F>yI+>cAN_4J&o_B(={KhGF&Tr1+4ka^@{h6QVOVLb95K^(v*u5S zZoBB{sndlItH_uq3M);Jd{vNq<9)8>hTAH~zMi^zv^UsaX4}Mx8=TfCPMUDy=(QE? zGiN^zJ1%SG6=&hKY672Tr}BikH<_N_`PKID#%+zgpR!K2J-_#VUrY3rIefo*In{BbZH+3(?zg;h$J8II(83#Lp-`C8XJVmRL zBbe=Uyst`{QCrMK`!6RRtW@`_d1c&R^WYG7{;r41!fn6L$}ZoQr1z<2@%-x3Z_9*^ z=kSR7g&vWXGT_Pd3b@+6y<}b8;nKlH zMpMspGp#-0v@&FFUk;a6N13re9E@AP|P2e?5QcyW})hqa#)rvIcF6m2eX9w(8lG+@&)oTCo zcd{o84<57h2z(mPT0h}{+NZ9I@F@094dYL*rA@r z!oxf{2Lk+$go#cuQ{C7!>4bo!QrJ3H?E@@Aszza(^me^|d2eq*cki+_s!!&wT7N<@ zZPT>1t{!bmX5Cu-AvEBHsD?*NsBQElA(4`s*-K0(aR#z(wg^3Zc#*@c5;Mt;c8A9i zUgsx1)mYY2Vb>ca*d3Im-2C$8H=WGng%72xuCCUbefwhFzo+LH-7raB)*;Lsw!yI| zcD96DsrqHJ?tRz4ubJkZv%9U$EAD})pCZe8(L}d^u#!W^+Oz~?)We@YIkNh)j7PR; z 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

    e?*q4XiEh=`+_Skm6>7fv*Jk>Fr&Jr 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�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

    PxHh)`~14TEdbtTuv=+X-SH3i!{$#RhoT$B{ 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
    (ao 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 D1~R_k literal 0 HcmV?d00001