feat(clawhub): add full LLM tool integration + CLI (RMN-300)#1432
Closed
klampatech wants to merge 1197 commits intozeroclaw-labs:masterfrom
Closed
feat(clawhub): add full LLM tool integration + CLI (RMN-300)#1432klampatech wants to merge 1197 commits intozeroclaw-labs:masterfrom
klampatech wants to merge 1197 commits intozeroclaw-labs:masterfrom
Conversation
|
Thanks for contributing to ZeroClaw. For faster review, please ensure:
See |
Contributor
Author
Updated PR DetailsValidation Evidencecargo fmt --all -- --check # Pass
cargo clippy --all-targets -- -D warnings # Pass (pre-existing warnings only)
cargo test --lib # Pass (2829 tests)Manual Testing Evidence:
Security Impact
Privacy Status
Rollback Plan
Note on Target BranchThis PR targets |
…InstalledSkill structs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add module-level documentation to clawhub integration - Re-export types for cleaner public API - Fix serialization: change stars and total from i32 to u32 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements ClawHubClient for interacting with clawhub.ai API. - search(): search skills by query with limit - get_skill(): get skill metadata by slug - get_user(): get authenticated user info Includes tests for default and custom API URL configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SkillDownloader for fetching skill content from GitHub raw URLs - Add Registry for tracking installed ClawHub skills locally - Both modules include inline unit tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add ClawHubConfig struct to schema with: - api_url: ClawHub API URL (default: https://clawhub.ai) - auto_update: Auto-update installed clawhub skills on agent start Add clawhub field to main Config struct. Add ClawHubConfig to config module exports. Update all Config initializations in tests and wizard. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CLI commands for managing ClawHub skills: - search: Search for skills on ClawHub - install: Install a skill from ClawHub - uninstall: Uninstall a skill - list: List installed skills - update: Update all installed skills - inspect: Show skill details - login: Login to ClawHub - whoami: Show current user Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add two new tools: - clawhub_search: Search for skills on ClawHub by query - clawhub_install: Get info about a skill by slug (install placeholder) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update SearchResult to use 'results' field from API - Add SkillDetail, SkillInfo, SkillStats, LatestVersion, SkillOwner types - Fix client to use correct API endpoints (/api/search, /api/skill?slug=) - Convert API responses to internal ClawHubSkill format - Update CLI and tools to use new client methods
- Add full install: download, security audit, save to skills dir - Add uninstall: remove skill directory and update registry - Make skills::audit module accessible from clawhub - Fix command name to use 'clawhub' instead of 'claw-hub'
- Add ClawhubSearchTool and ClawhubInstallTool to all_tools - Tools available to LLM for autonomous skill discovery and installation
- Implement full clawhub_install tool (downloads, audits, installs skills) - Add clawhub_uninstall tool for LLM use - Fix Telegram channel causing MiniMax 500 errors (image marker parsing) - Update CLI search to show install commands - Downgrade ACK reaction warnings to debug level - Fix observability config (stdout -> none) - src/tools/clawhub_install.rs: Full implementation - src/tools/clawhub_uninstall.rs: New tool - src/channels/mod.rs: Fix Telegram media marker format - src/channels/telegram.rs: Debug-level reaction warnings - src/clawhub/cli.rs: Show install command in search - config: Change observability backend to "none" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove unused PathBuf import - Fix format! in format! args using writeln! - Fix cast_possible_truncation using try_into() - Fix ignored_unit_patterns using () explicitly - Add std::fmt::Write imports where needed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previously the downloader would silently write 404 error pages as SKILL.md content when skills didn't have the required file in their repository. This adds explicit HTTP status checking to fail with a clear error message instead. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Some repos use 'master' instead of 'main' branch. This adds: - readme_url_master field to ClawHubSkill - download_skill_with_fallback method that tries main first, then master CLI to use the fallback - Updated download method Also fixes HTTP 404 error handling to fail gracefully. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…or handling - Add download_fallback config option for skills hosted on ClawHub backend - Add zip extraction support for Convex-hosted skill downloads - Improve error messages when GitHub download fails - Show helpful guidance about ClawHub-hosted skills Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add default download_fallback URL pointing to ClawHub's Convex backend - Wire up config loading in CLI to use fallback URL - Now skills like 'github' that are hosted on ClawHub's backend install correctly Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The clawhub_install tool was ignoring the download_fallback config and only trying GitHub URLs. This caused 404 errors for skills hosted on ClawHub's Convex backend. Now the tool: - Reads clawhub.download_fallback from config - Uses download_skill_with_zip_fallback() (tries GitHub main, then master, then falls back to zip URL) - Provides helpful error messages about backend-hosted skills Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add URL encoding for search and get_skill API calls - Add HTTP status checking before JSON parsing in all API methods - Add slug validation to prevent path traversal attacks - Add version parameter rejection (not yet supported) - Add limit clamping (1-100) for search results - Improve downloader error messages to be more specific - Fix README link paths in update_skills_readme - Fix handle_whoami misleading token message - Improve zip extraction to handle nested folders Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Convert raw string literals to r#""# syntax to fix Rust 2021 brace-quote
parsing issues in leak_detector.rs (e.g., {20,}" was misinterpreted)
- Add missing serde::Deserialize import for WatiVerifyQuery in gateway
- Add missing wati field to AppState test initializations
- Add #[allow(unused_imports)] for security module exports
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Registry: add warning on parse/read errors instead of silently dropping data - Registry: update name and source_url when updating existing skills - Channels: restore ClawdTalkConfig re-export for backward compatibility - Channels: fix find slice coercion for MSRV compatibility Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
|
Closing — the core ClawHub integration is already on master. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: RMN-300
Summary
[IMAGE:markers in system prompt being incorrectly parsed as image referencesclawhub_installtool implementation with download, audit, installclawhub_uninstalltool for LLM useLabel Snapshot
risk: low|medium|high): mediumsize: XS|S|M|L|XL): MChange Metadata
bug|feature|refactor|docs|security|chore): featureruntime|provider|channel|memory|security|ci|docs|multi): toolValidation Evidence
clawhub searchshows install commandsclawhub installworksclawhub uninstallworksSecurity Impact
Compatibility / Migration
Human Verification
Side Effects / Blast Radius
Rollback Plan
git revert HEADRisks and Mitigations
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes