Commit Graph
364 Commits
Author SHA1 Message Date
sjhddhandClaude Opus 4.6 1a93cce183 refactor: remove extract_system_package changes (split to #204)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 23:34:47 +02:00
sjhddhandClaude Sonnet 4.6 5952147376 fix: handle empty skill_intro in skill_description generation
When a harness has no README.md, skill_intro is an empty string.
The previous code unconditionally appended " - ..." producing malformed
output like "Command-line interface for TestApp - ..." in SKILL.md
YAML frontmatter.

Also fixed: when skill_intro is non-empty but <=100 chars, no ellipsis
is appended (previously appended to complete text).

Applied the same fix to both:
- cli-anything-plugin/skill_generator.py (line 118)
- mubu/agent-harness/skill_generator.py (line 238)

Updated test_harness_without_readme to assert skill_description is
well-formed when intro is empty.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 19:05:31 +02:00
Yuhao 9d06841248 Merge pull request #181 from rsasaki0109/feature/cloudanalyzer-harness
Add CloudAnalyzer agent harness
2026-04-08 21:49:18 +08:00
Yuhao ba1ea89654 Merge pull request #129 from t4tarzan/feat/add-seaclip-pm2-chromadb-harnesses
feat: Add SeaClip, PM2, and ChromaDB CLI harnesses
2026-04-08 21:43:20 +08:00
yuhaoandClaude Opus 4.6 56552ea522 Address review feedback: fix hardcoded paths, PATH logic, SQLite mode
1. Replace all hardcoded /Users/whitenoise-oc/ dev paths in SEACLIP.md
   and TEST.md files (seaclip, pm2, chromadb) with generic placeholders
2. Extract shared _EXTRA_PATH_DIRS constant and _augmented_path() helper
   in pm2_backend.py so _find_pm2() and _build_env() use identical logic
3. Open SQLite in read-only mode (file:...?mode=ro) in _query_db()
4. Add trailing newline to registry.json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:00:21 +00:00
Ryohei Sasaki 3702ff029f fix(cloudanalyzer): address code review findings
- Remove unused imports (load_project, save_project, etc.)
- Use shlex.split() in REPL for proper quoted-path handling
- Pass json_mode to _error() in REPL for consistent JSON errors
- Add --trajectory-reference to inspect web/web-export commands
- Add --heatmap/--trajectory to web-export command
- Validate --history/--history-dir in baseline decision (fail fast)
- Combine --history and --history-dir instead of ignoring one
- Add JSON validation with clear errors in baseline_decision backend
- Add try/except to info version command
- Pass --plot to backend instead of post-hoc dict mutation
2026-04-08 07:20:04 +09:00
Ryohei Sasaki dbce794db4 fix(cloudanalyzer): align command counts to 27 in SKILL.md header and README trajectory row 2026-04-08 05:57:35 +09:00
Ryohei Sasaki c9fc67619c chore: add cloudanalyzer to CLI-Hub registry.json
Made-with: Cursor
2026-04-08 05:56:53 +09:00
Ryohei Sasaki a75b174c08 fix(cloudanalyzer): address harness review (backend guard, docs, README, e2e skips)
Made-with: Cursor
2026-04-08 05:56:23 +09:00
Ryohei Sasaki d73c588078 Fix license classifier to MIT (matching CloudAnalyzer) 2026-04-08 05:55:52 +09:00
Ryohei Sasaki 9412347b09 Fix self-review issues: add missing CLI commands, clean unused imports
- Add all missing CLI commands: evaluate batch/pipeline, trajectory
  batch/run-evaluate, process sample/filter/merge/convert, inspect
  view/web/web-export (now matches SKILL.md documentation)
- Remove unused imports (sys, tempfile, subprocess)
- Remove unused variable (project in session_new)
- Fix license to GPL-3.0 to match CLI-Anything repo
2026-04-08 05:55:52 +09:00
Ryohei Sasaki 04ad941861 Add CloudAnalyzer agent harness
CloudAnalyzer is a QA platform for mapping, localization, and
perception point cloud outputs with 32 CLI commands.

Unlike other harnesses, the backend imports CloudAnalyzer's Python
API directly (no subprocess needed). Includes Click CLI with --json
on all commands, project/session management, REPL, SKILL.md, and
unit + E2E tests (14 passed).
2026-04-08 05:55:52 +09:00
Ömer 1dcf1e033d Merge pull request #156 from furkankoykiran/security/domshell-security-hardening
feat(browser): add security hardening for DOMShell MCP automation
2026-04-07 22:06:57 +03:00
Ömer d7e70e0cbe Merge pull request #191 from Akabane71/feat/add-dify-workflow
Feat/add dify workflow
2026-04-07 21:46:36 +03:00
Ömer ba467bae38 Merge pull request #193 from octo-patch/fix/issue-182-inkscape-auto-save
fix(inkscape): add -s/--save flag for auto-save in one-shot mode
2026-04-07 21:44:35 +03:00
Ömer 47ee93d4ec Merge pull request #178 from ruttybob/feat/pi-coding-agent
feat: add Pi Coding Agent extension
2026-04-07 21:36:31 +03:00
yuhao 336c1fcd3b update 2026-04-07 17:01:44 +00:00
Yuhao 95f541b813 Merge pull request #183 from ndpvt-web/feat/openscreen-harness
feat: add Openscreen screen recording editor CLI harness
2026-04-08 00:09:30 +08:00
Octopus c1e5d4f195 fix(inkscape): add -s/--save flag for auto-save in one-shot mode (fixes #182)
One-shot commands start a fresh Session each run, so in-memory changes
were silently discarded without an explicit 'document save'. This ports
the same pattern already used in the Shotcut harness (commit 17a30ba):

- Add -s/--save flag to the cli() group
- Register ctx.call_on_close(_auto_save_callback)
- _auto_save_callback saves if session is modified and not in REPL mode
2026-04-07 20:01:40 +08:00
akabane-rog a1e928d2ac feat: add CLI-Anything wrapper for Dify workflow
- Implemented a new CLI wrapper for the Dify workflow DSL, allowing users to create, inspect, validate, edit, export, and layout workflows through a unified command-line interface.
- Added REPL functionality for interactive command execution.
- Created utility functions for backend command resolution and subprocess execution.
- Developed comprehensive test suite covering core functionality and end-to-end scenarios.
- Included installation instructions and usage documentation in SKILL.md.
- Updated registry.json to include the new Dify Workflow entry with installation and usage details.
2026-04-07 15:31:14 +08:00
yuhao 69dea56a61 improve frontend 2026-04-06 13:42:02 +00:00
yuhao 369e02b9c0 Address reviewer feedback: merge main, fix namespace packages, hardcoded path, PATH mutation, SKILL.md format, setup.py completeness
Must fix:
- Merge conflicts with main resolved
- Remove hardcoded developer path in seaclip_backend.py; require SEACLIP_DB
  env var for SQLite queries (raises RuntimeError if unset)
- Switch all three setup.py from find_packages() to
  find_namespace_packages(include=["cli_anything.*"])
- Remove global os.environ["PATH"] mutation in pm2_backend.py; use
  shutil.which(path=...) with a local variable instead

Should fix:
- Align PM2 SKILL.md format with existing convention (name + description
  with >- folding syntax, command group tables)
- Add missing setup.py fields: classifiers, extras_require, package_data,
  include_package_data, zip_safe, url, consistent author

All 91 unit tests pass (25 seaclip + 28 pm2 + 38 chromadb).
2026-04-06 13:25:31 +00:00
Yuhao ae76e0890b Merge pull request #172 from tgonzalezc5/feat/add-exa-cli
feat: add Exa CLI harness — AI-powered web search and answers
2026-04-06 21:18:54 +08:00
yuhaoandClaude Opus 4.6 e84ed7fecd Resolve merge conflicts with main (registry.json, README.md)
Keep all new CLI entries (exa, sts2, rms, renderdoc, videocaptioner,
intelwatch, clibrowser, cloudcompare) and incorporate the godot entry
added on main.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 13:17:50 +00:00
Yuhao 2ac5be9e39 Merge pull request #140 from HKUDS/feat/add-godot-cli
feat: add Godot Engine CLI harness
2026-04-06 21:11:37 +08:00
ndpvt-webandClaude Opus 4.6 3579c6d1b4 fix: address PR review feedback (4 items)
1. Fix project_save --output parameter: add Click parameter name
   mapping so --output correctly maps to output_path
2. Use functools.wraps in handle_error decorator to preserve
   __click_params__ and other attributes
3. Fix test count mismatch: OPENSCREEN.md now shows 101 (78+23),
   TEST.md table updated with missing test row and correct numbering
4. Replace raw input() with skin.sub_input() in REPL add flows
   (zoom, speed, trim, crop) to use prompt_toolkit when available

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 07:58:28 +00:00
Sereja 262502f93e fix: address PR review — correct path mismatch, relocate tests
1. Rename pi-extension/ to .pi-extension/ to match Pi auto-discovery
   convention. Update root README install instructions to reference
   correct path and install.sh workflow instead of non-existent
   .pi-extension/extensions/cli-anything/.

2. Move test_skill_generator.py from .pi-extension/cli-anything/tests/
   to cli-anything-plugin/tests/ (next to skill_generator.py) so it
   runs standalone without fragile parent-navigation fallbacks.
   Update install.sh to copy tests during global install.

31/31 pytest tests pass.
2026-04-06 00:19:37 +03:00
Teo Gonzalez CollazoandClaude Opus 4.6 28cf94ec5e fix: address SDK compat, version pin, gitignore, and exit code issues
- Replace invalid `additional_headers` kwarg with `user_agent` in Exa client
- Pin exa-py>=2.0.0 (code uses v2-only `contents` param)
- Add missing .gitignore Step 5/6 entries for exa/
- Exit non-zero from `server status` when check fails

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 09:19:34 -07:00
Teo Gonzalez CollazoandClaude Opus 4.6 574f5bd4b0 fix: address PR review feedback (items 1-6)
- Reformat PR body to match repo template
- Add Exa to root README (category table, software grid, directory tree)
- Add comment explaining different build_contents_param() usage in search vs get_contents
- Document that server status consumes 1 search credit
- Clarify auto=neural in --type help text
- Remove stale noqa: SIM114 comment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 09:19:23 -07:00
Teo Gonzalez CollazoandClaude Opus 4.6 7e6fdf3413 fix: address Copilot review feedback on Exa CLI harness
- Fix REPL to use skin.get_input() instead of skin.prompt() so it
  actually reads user input
- Use shlex.split() instead of str.split() to preserve quoted arguments
- Remove unnecessary ImportError guard on ReplSkin (prompt-toolkit is
  optional within ReplSkin itself)
- Deduplicate get_contents() by reusing build_contents_param()
- Use shutil.which() instead of shelling out to `which` in tests
- Fix get_client() docstring to match actual RuntimeError raise

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 09:19:23 -07:00
Teo Gonzalez CollazoandClaude Sonnet 4.6 db2ff670ef revert: remove unnecessary _json_output reset in REPL loop
cli.main() re-invokes the root group callback on every dispatch, which
already resets _json_output = use_json before any output runs — so the
reset in finally was a no-op.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 09:19:23 -07:00
Teo Gonzalez CollazoandClaude Sonnet 4.6 b8329a5907 fix: reset _json_output after each REPL dispatch
Prevents --json from leaking across subsequent REPL commands when a
user types e.g. `--json search "foo"` — the global was left True for
all following commands in the session.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 09:19:23 -07:00
Devin AIandteo@exa.ai b0e360262b refactor: remove deprecated answer, similar, and session endpoints
- Delete core/answer.py (Exa deprecating /answer)
- Delete core/session.py (not Exa-specific)
- Remove find_similar() from core/search.py (Exa deprecating /similar)
- Remove answer, similar, session CLI commands from exa_cli.py
- Fix ReplSkin constructor call (wrong kwargs)
- Add x-exa-integration header to all API calls
- Update all docs and tests to match
- Update setup.py and registry.json descriptions

Co-Authored-By: teo@exa.ai <teodorolgonzalez5@gmail.com>
2026-04-05 09:19:23 -07:00
Teo Gonzalez Collazo b1c9dd4f0d feat: add Exa CLI harness for AI-powered web search and answers
- Web search with neural/fast/instant/deep/deep-reasoning modes
- Find similar pages by URL
- Fetch full-text or highlighted page contents
- LLM-synthesised answers with cited sources
- Category filters, domain filters, date filters, geo-bias
- --json flag for agent-native output on all commands
- Interactive REPL mode
- 40 unit tests passing (no API calls required)
- E2E test suite (requires EXA_API_KEY)
- registry.json entry added
2026-04-05 09:19:23 -07:00
Sergey Kostrov a1ee8756ef fix: correct indentation in cli-anything-plugin/commands/list.md Python example 2026-04-05 16:34:13 +03:00
Sergey Kostrov 7a6e8665e3 feat: add pi-extension/cli-anything with updated index.ts, install.sh and tests 2026-04-05 16:34:06 +03:00
Sergey Kostrov 2e7939694d refactor: remove old .pi-extension layout, update .gitignore for new pi-extension dir 2026-04-05 16:34:00 +03:00
ndpvt-webandClaude Opus 4.6 e5db3582b9 feat: fuse manual + auto-generated harness (50 -> 101 tests)
Merge best-of-both from manual CLI harness and HARNESS.md auto-generated
version. Adds update/query helpers, input validation, sorted list output,
_resolve_cli test helper, and 51 new tests covering edge cases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 09:12:19 +00:00
ndpvt-webandClaude Opus 4.6 3aa4c2d83f feat: add Openscreen screen recording editor CLI harness
Adds a complete CLI harness for Openscreen (https://github.com/siddharthvaddem/openscreen),
an Electron-based screen recording editor. The harness provides agent-native access to
zoom effects, speed ramps, trim, crop, annotations, backgrounds, and polished video exports
via ffmpeg.

- 50 tests (37 unit + 13 E2E) all passing
- Full segment-based rendering pipeline (crop+scale zoom, setpts+atempo speed)
- Session management with 50-level undo/redo
- REPL mode with prompt-toolkit
- JSON and human-readable output modes
- SKILL.md for AI agent discovery
- OPENSCREEN.md SOP document

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 08:25:44 +00:00
Ömer 4d881c373b Merge branch 'main' into feat/add-godot-cli 2026-04-04 13:42:02 +03:00
Ömer 47a14ed0a9 fix: address review feedback — repl_skin, gitignore, README, parser bug
- Replace repl_skin.py with standard 521-line copy
- Add godot entries to .gitignore (steps 4, 5, 6)
- Add Godot Engine to root README.md (table + directory tree)
- Fix list_export_presets() parser to skip [preset.N.options] sections
- Remove unused configparser import from project.py
2026-04-04 13:38:42 +03:00
Sergey Kostrov 612bbfcdcf feat: add Pi Coding Agent extension
Adds .pi-extension directory with full CLI-Anything plugin support:
- 5 slash commands: /cli-anything, /cli-anything:refine,
  /cli-anything:test, /cli-anything:validate, /cli-anything:list
- Full HARNESS.md methodology documentation
- Guides for skill generation, PyPI publishing, MCP backend, etc.
- Utility scripts: repl_skin.py, skill_generator.py, setup-cli-anything.sh
- SKILL.md template for AI-discoverable skill definitions
- README.md documenting the extension structure and usage
- Updated root README.md to include Pi as a supported platform
2026-04-03 18:16:03 +03:00
Yuhao 0ab6b0931e Merge pull request #170 from fabiomantel/add-wiremock-harness
feat: add WireMock HTTP mock server CLI harness
2026-04-03 19:13:22 +08:00
Yuhao 46fe30e512 Merge pull request #169 from manucian-official/patch-4
Refactor setup.py for better package configuration
2026-04-03 15:12:38 +08:00
yuhao 8980fdc249 update README 2026-04-02 16:59:05 +00:00
yuhao 1e9487d5a5 include CLI demos 2026-04-02 16:54:44 +00:00
fabio.mantelmacher 82894c6d68 fix: address 3 sixth-round Copilot review comments
- setup.py: fallback long_description (README.md → WIREMOCK.md → '') prevents FileNotFoundError in sdist builds
- repl_skin.py: remove unused accent_hex variable (dead code / lint)
2026-04-01 14:35:25 +03:00
fabio.mantelmacher fc8ba18fbe fix: address 5 fifth-round Copilot review comments
- setup.py: add description, long_description, package_data for SKILL.md
- wiremock_cli.py: explicit encoding="utf-8" on all file reads
- wiremock_cli.py: stub_get, request_find, request_unmatched now have
  human-mode formatting instead of always printing raw JSON
2026-04-01 14:34:48 +03:00
fabio.mantelmacher 666d3ee9b8 fix: address 3 fourth-round Copilot review comments
- session.py: guard WIREMOCK_PORT int cast with try/except ValueError
- repl_skin.py: remove unused sep_parts variable
- wiremock_cli.py: Session.from_env() no longer crashes on invalid WIREMOCK_PORT
2026-04-01 14:34:48 +03:00
fabio.mantelmacher 05eae688be fix: address 7 third-round Copilot review comments
- test_full_e2e.py: use shutil.which() instead of subprocess `which`
- test_full_e2e.py: fix all envelope assertions to match raw API JSON output
- stubs.py: quick_stub body check uses `is not None` for empty string support
- wiremock_cli.py: CLI option overrides use `is not None` for falsy values
2026-04-01 14:34:48 +03:00