Commit Graph

452 Commits

Author SHA1 Message Date
aimidi ec955b13e8 fix: modernize nsight graphics capture compatibility 2026-04-19 01:40:31 +08:00
aimidi de78798f60 fix: align nsight graphics docs and repl skin 2026-04-19 01:10:19 +08:00
aimidi 2ad94e8b3c merge: sync upstream/main and normalize nsight graphics metadata 2026-04-17 16:56:04 +08:00
Yuhao 7edf8ca88c Merge pull request #207 from scially/add/qgis/agent
feature: add QGIS agent harness
2026-04-16 22:29:32 +08:00
Yuhao ab79beb19e Merge pull request #204 from sjhddh/fix/apt-get-pkg-extraction
fix: extract_system_package returns wrong command for apt-get matches
2026-04-16 22:28:44 +08:00
aimidi d080b2eb10 fix(nsight-graphics): avoid stale gpu trace summaries 2026-04-16 19:20:28 +08:00
aimidi 7eaf55024c Move Nsight Graphics guide into harness README 2026-04-16 18:16:12 +08:00
aimidi 57bd6a5ce9 Add Nsight Graphics docs and GPU Trace summary 2026-04-16 17:37:06 +08:00
aimidi 3720b5be55 Merge branch 'main' into codex/nsight-graphics-agent-harness 2026-04-16 17:15:36 +08:00
aimidi 34ed5e60ad Merge remote-tracking branch 'upstream/main' 2026-04-16 16:59:41 +08:00
aimidi e2ccb9daed Add Nsight Graphics harness 2026-04-16 16:50:41 +08:00
Yuhao 7458172068 Merge pull request #219 from 545487677/feature/unimol-tools
feat: add Uni-Mol Tools agent harness
2026-04-16 15:48:15 +08:00
yuhao 2c8a7815a8 update cli-hub 2026-04-16 07:47:10 +00:00
yuhao 56c9610f76 update cli-hub; more public CLIs 2026-04-16 06:52:28 +00:00
yuhao d1ba665bb2 improve cli-hub 2026-04-15 17:56:44 +00:00
yuhao 92db509b23 **CLI-Hub** updated to **v0.2.0** — the PyPI package now supports public CLIs from multiple install sources (pip, npm, brew, bundled/system tools), backed by a new public_registry.json. The Hub frontend was redesigned with separate **CLI-Anything CLIs** and **Public CLIs** decks, and live end-to-end checks now cover real install, update, and uninstall flows across both pip and npm packages. 2026-04-15 17:06:06 +00:00
545487677 85c16c0dce test: fix project path assertion in test_core.py
- Updated test to check for 'project.json' filename instead of 'test_project.json'
- Project structure changed to use project_dir/project.json format
- All core tests now passing (4/4)
2026-04-15 15:19:14 +00:00
545487677 38c57afb3c fix: correct registry.json format - separate unimol_tools and safari entries
- Fixed missing JSON closing braces between unimol_tools and safari entries
- Both CLIs are now properly separated in the registry
- Validated JSON syntax
2026-04-15 15:10:54 +00:00
Cody Zhao d4f9ad3d9c Merge branch 'main' into feature/unimol-tools 2026-04-15 22:50:40 +08:00
Yuhao 5ec2aebee0 Merge pull request #206 from hiSandog/docs/clarify-command-syntax-20260409-9d06841
docs: clarify CLI-Anything command syntax in README
2026-04-15 16:52:04 +08:00
scially 4f83716439 Fix QGIS agent harness review issues: hardcoded paths, functools.wraps, export file checks, degenerate extent handling, canonical repl_skin sync, and registry/README updates 2026-04-15 14:41:26 +08:00
scially 9eb8bc5109 Add QGIS agent harness 2026-04-15 14:39:48 +08:00
= 0c031b760a fix: correct --json option position and improve comparison output
- Remove incorrect --json flag from models rank debug output
- Fix --json option position in example commands (must be before subcommand)
- Improve empty metrics detection in compare output with len() check
- Add clearer warning message when no metrics available

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 03:33:04 +00:00
= 36be153887 fix: improve compare output and predict run_id extraction
- Add warning message when no metrics found in model comparison
- Fix run_id extraction in demo script using proper JSON parsing
- Add debug output in demo to show model metrics before comparison

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 03:18:15 +00:00
= 8fc704854f fix: address PR feedback - Windows compat, REPL mode, remove setup.py, update README
- Add Windows compatibility for fcntl (fallback to atomic rename)
- Fix global _json_output leak in REPL by using ctx.obj
- Add @functools.wraps to handle_error decorator
- Remove duplicate setup.py, keep only pyproject.toml
- Fix package-data glob to match SKILL.md location
- Add REPL mode when no subcommand specified
- Fix compare_models output (use 'comparisons' key)
- Fix batch_cleanup output (use list lengths instead of _count keys)
- Add Uni-Mol Tools to main README.md software table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 03:01:03 +00:00
Yuhao c05cfe1cf2 Merge pull request #212 from achiya-automation/add-safari-harness
Add safari/agent-harness — Safari browser automation via safari-mcp
2026-04-14 22:28:55 +08:00
= 309c921fef docs: add required PR checklist files for unimol_tools
- Add UNIMOL_TOOLS.md SOP document
- Add SKILL.md in cli_anything/unimol_tools/
- Add test_full_e2e.py for end-to-end testing
- Add registry.json entry for unimol_tools
2026-04-14 11:38:44 +00:00
= 07e6e32fbc feat: add Uni-Mol Tools agent harness
- Add complete agent harness for Uni-Mol Tools molecular property prediction
- Include 5 task types: classification, regression, multiclass, multilabel
- Add interactive model management with storage analysis and cleanup
- Provide comprehensive documentation and 67 passing tests (100%)
- Add demo script with instructions
- Include project management and performance tracking features

Test data available at: https://github.com/545487677/CLI-Anything-unimol-tools/tree/main/unimol_tools/examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 11:25:15 +00:00
Achiya Automation 0509220dee feat(safari): add to registry.json for CLI-Hub visibility 2026-04-14 11:19:36 +03:00
Yuhao e3cef52f5b Merge pull request #216 from abcfy2/main
fix(kdenlive): rewrite XML output as Gen 5 format for native kdenlive compatibility
2026-04-14 13:42:11 +08:00
Feng Yu b64ee841bc fix(kdenlive): rewrite XML output as Gen 5 format for native kdenlive compatibility
- Replace string-concatenation with ElementTree for proper XML generation
- Generate Gen 5 (doc v1.1) nested structure: per-track tractors,
  sequence tractor with UUID, main_bin playlist, project tractor
- Fix filters not taking effect: add id attribute and kdenlive_id
  property on filter elements (closes #213)
- Fix "removed effect" dialog: use child <property> for mlt_service
  instead of XML attribute
- Add kdenlive_name mappings for fade/brightness/speed effects
- Rewrite tests from string-matching to ET-based assertions

Fix #213
2026-04-14 11:31:32 +08:00
yuhao 18f75791f3 add auto-save and dry-run for all session-based softwares on one-shot cmds; highlight the design in cli-anything skill 2026-04-13 17:32:06 +00:00
yuhao 1b90df1b7f fix kdenlive producing error projects issue 2026-04-13 16:06:09 +00:00
Achiya Automation 6b974fb26d Merge remote-tracking branch 'upstream/main' into add-safari-harness
# Conflicts:
#	.gitignore
2026-04-13 14:23:06 +03:00
yuhao 69a64a30b6 fix update date for outer repo 2026-04-13 09:16:44 +00:00
yuhao df55322d33 update registry.json; welcome outer repo contributions 2026-04-13 09:04:52 +00:00
Yuhao fed86fe727 Merge pull request #201 from PiaoyangGuohai1/update-zotero-v0.3.3
feat(zotero): update registry to v0.4.1 — standalone repo with 52 MCP tools
2026-04-13 16:31:31 +08:00
yuhao 58b928935c feat(hub): support remote URLs in skill_md registry field
The hub previously always prepended the monorepo base URL to skill_md
values, breaking links for CLIs that moved to standalone repos. Now
absolute URLs (starting with "http") are passed through directly.

Also restores the zotero skill_md link pointing to its standalone repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 08:29:21 +00:00
Yuhao 36215cb164 Merge pull request #195 from chimera-defi/feat/resubmit-eth2-quickstart-cli-harness
Add eth2-quickstart CLI harness
2026-04-13 14:42:30 +08:00
Yuhao ca2f99c7ae Merge pull request #211 from dorukozgen/feat/add-obsidian-harness
feat: add Obsidian CLI harness
2026-04-13 14:35:39 +08:00
陈家名 5e8a01a459 docs(review): trim command syntax note to one sentence per PR #206 review feedback 2026-04-13 10:18:15 +08:00
sjhddh 447a654128 style: unify if/elif chain in extract_system_package across both modules
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 23:33:39 +02:00
Achiya Automation 5e1bc6ebdd fix: address review feedback — dead code, control flow, promotional language
- Remove unused `sanitize_dom_text` and `_PROMPT_INJECTION_PATTERNS`
  from security.py (and 11 corresponding tests). The function was
  never called in the CLI pipeline.
- Add explicit `return` after `_handle_error` in `_validate_url_or_exit`
  so control flow is unambiguous if `sys.exit` is mocked.
- Replace manual `__name__`/`__doc__` copy with `functools.wraps` in
  `handle_error` decorator.
- Document `asyncio.run()` limitation in `call()` docstring.
- Add `safari` entry to `_ACCENT_COLORS` in repl_skin.py (was falling
  back to default).
- Add conflict-of-interest disclosure to HARNESS.md and SAFARI.md.
- Strip promotional language, cost comparisons, and benchmark tables
  from HARNESS.md, SAFARI.md, SKILL.md, and README.md. Keep factual
  per-call overhead note; remove dollar-amount positioning.
- Remove DOMShell comparison table from HARNESS.md.

All 49 non-E2E tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 11:37:15 +03:00
longxinyang 0c1dd18539 fix(zotero): set skill_md to null until CLI-Hub supports remote URLs 2026-04-12 16:33:05 +08:00
Doruk Özgen 295dbecec8 fix: reset global host state between CLI invocations
- Always reset _host to DEFAULT_BASE_URL when --host not provided
- Fix test_missing_api_key to clear OBSIDIAN_API_KEY env var
2026-04-12 11:17:15 +03:00
Doruk Özgen 617fcf3d15 fix: correct search endpoint, remove dead api_patch, add error catch-all
- search_query() now hits POST /search/ with JSON body per SOP
- search_simple() stays on POST /search/simple/ with query params
- Remove unused api_patch() and its test (v3.x API changed PATCH semantics)
- Add generic except Exception catch-all to handle_error decorator
2026-04-12 11:13:36 +03:00
Achiya Automation 7d1444dca4 Add safari/agent-harness — Safari browser automation via safari-mcp
Brings safari-mcp (https://github.com/achiya-automation/safari-mcp)
to CLI-Anything as a schema-driven harness. Every one of the 84 MCP
tools is auto-generated as a Click command from the bundled tool
schema (resources/tools.json) — guaranteed 1:1 parity with the
upstream server.

Architecture highlights:
- Schema-driven CLI generation via scripts/extract_tools.py (offline
  parser of safari-mcp's Zod schemas with depth-aware modifier
  detection for nested z.array(z.object(...)).describe() patterns)
- Dynamic Click command registration at import time from tools.json
- TestCLISubprocess with _resolve_cli() per HARNESS.md Phase 5
- URL validation with scheme blocking and optional private-network
  lockdown (utils/security.py)
- 95 tests: 16 unit + 36 security + 24 parity + 19 E2E (all pass
  against real Safari; SAFARI_E2E=1 to enable live tests)

Honest positioning:
The harness is STRICTLY slower than using safari-mcp directly for
MCP-compatible agents (Claude Code, Cursor, Cline). Per-call
latency: 119ms (persistent MCP session) vs 3,023ms (CLI subprocess
spawn). See HARNESS.md "Performance Tradeoffs" for the full
benchmark — MCP wins by ~25× on latency. The CLI is optimized for
a different audience:
- Agents that do not speak MCP (Codex CLI, GitHub Copilot CLI)
- Bash scripting and jq pipelines
- CI/CD and cron jobs
- Long-running Opus sessions where tool-definition token overhead
  (~8K tokens per API call with MCP vs ~100 with CLI) dominates cost

Both paths return byte-identical output (verified live with Unicode
titles via list_tabs).

Files:
- safari/agent-harness/HARNESS.md         architecture deep-dive
- safari/agent-harness/SAFARI.md          software-specific SOP
- safari/agent-harness/setup.py           PyPI package metadata
- safari/agent-harness/scripts/
    extract_tools.py                      offline Zod parser → tools.json
- safari/agent-harness/cli_anything/safari/
    safari_cli.py                         Click CLI with dynamic tool group
    core/session.py                       in-memory REPL state
    utils/safari_backend.py               sync MCP stdio client wrapper
    utils/security.py                     URL validation + DOM sanitization
    utils/tool_registry.py                loads tools.json, kebab↔camel
    utils/repl_skin.py                    copied verbatim from plugin
    resources/tools.json                  84-tool schema bundle (safari-mcp 2.7.8)
    skills/SKILL.md                       agent discovery manifest
    README.md                             user-facing docs
    tests/                                11/36/24/19 test files + TEST.md
2026-04-12 01:40:34 +03:00
Doruk Özgen 25149e66b2 feat: add Obsidian CLI harness
Add CLI harness for Obsidian knowledge management via the Obsidian
Local REST API plugin. Includes vault CRUD, search, active note
operations, command execution, and interactive REPL mode.

- 48 unit tests (mocked, no backend required)
- 7 E2E tests (requires Obsidian with Local REST API plugin)
- Full documentation (SOP, README, SKILL.md, TEST.md)
- Registry entry for CLI-Hub
2026-04-12 00:29:45 +03:00
yuhao 9e586b09fc put cli-hub auto-publish yml 2026-04-11 16:34:36 +00:00
yuhao 09fd682f91 update cli-anything-hub pypi pkg 2026-04-11 16:17:48 +00:00