Commit Graph

25 Commits

Author SHA1 Message Date
yuhao
3c2b7fd09f upgrade to v0.2.0 with a series of updates 2026-03-30 09:16:10 +00:00
Yuhao
1be706e4ee Merge pull request #118 from furkankoykiran/feat/browser-domshell-mcp-harness
feat: add Browser automation CLI via DOMShell MCP server
2026-03-23 00:37:48 +08:00
Furkan Köykıran
2e99c4ff69 fix(docs): add missing import to code example
The _call_tool example used -> Any type annotation without showing
the required `from typing import Any` import.
2026-03-22 13:27:35 +03:00
Furkan Köykıran
6129577587 fix(docs): correct npx installation command
Change from invalid "npx install -g npx" to "npm install -g npx" for
correct npx installation instructions.
2026-03-21 21:55:50 +03:00
Furkan Köykıran
5fa31fc122 feat: add Browser automation CLI via DOMShell MCP server
Implement filesystem-first browser automation using DOMShell's MCP
server. Maps Chrome's Accessibility Tree to a virtual filesystem
for agent-native navigation with ls, cd, cat, grep, click commands.

Key features:
- MCP backend pattern (first in CLI-Anything)
- Daemon mode for persistent connections
- Page state management (URL, working directory, history)
- Filesystem-first commands (fs, page, act, session)
- Comprehensive test coverage (31 unit tests, 10 E2E tests)

Resolves #90
2026-03-21 21:28:18 +03:00
Yuhao
b1e9d53e9d Sync license for the CC plugin 2026-03-22 01:27:04 +08:00
Yuhao
4fda419f4a Merge pull request #94 from ZJZAC/fix/session-race-condition
fix(session): atomic file locking to prevent race conditions in all harnesses
2026-03-17 16:30:03 +08:00
ZJZAC
2f44c85f7c fix(session): add atomic file locking to prevent race conditions in all harnesses
Closes #51

The root cause: all 10 harnesses used bare `open("w") + json.dump()` for
session saves. `open("w")` truncates the file before any lock can be
acquired, so concurrent writes silently corrupt or lose data.

Fix: add `_locked_save_json()` to each session.py that opens with "r+"
(no truncation), acquires fcntl.LOCK_EX, then truncates inside the lock.
Falls back gracefully on Windows where fcntl is unavailable.

Also:
- Update HARNESS.md with session file locking guidance (per maintainer
  request on PR #52)
- Add concurrent write tests (4 threads × 50 writes) to verify the fix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 14:35:13 +08:00
yuhao
11acc2c66c Merge remote-tracking branch 'origin/main' into feature/skill-generation
# Conflicts:
#	.gitignore
#	blender/agent-harness/setup.py
2026-03-16 09:37:34 +00:00
yuhao
1db1622156 refactor: move SKILL.md inside Python package for pip install support
Move skills/SKILL.md from the harness root into
cli_anything/<software>/skills/SKILL.md so it is installed alongside the
package via pip. Add package_data to all 11 setup.py files. Make
ReplSkin auto-detect the skill file relative to its own __file__
location, removing the need for an explicit skill_path argument.
Update HARNESS.md, cli-anything.md, plugin README, and main README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 09:06:31 +00:00
yuhao
f73833d15a refactor: rename skill files to SKILL.md, drop software prefix from filename
Standardize skill file naming from <software>_SKILL.md to SKILL.md across
all 11 harnesses. Update skill_generator.py, HARNESS.md, repl_skin.py,
cli-anything.md, and plugin README.md to reference the new path. Add
SKILL.md generation section to main README.md and mark roadmap item done.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 08:39:51 +00:00
sehawq
ed4520ecd2 feat: guard Windows bash without cygpath 2026-03-14 17:58:25 +03:00
Alon Tevet
167b8a8b51 feat: Add skill path display in CLI banner and generate SKILL.md for all harnesses
## Changes

### 1. Display skill path in CLI header (repl_skin.py)
- Added `skill_path` parameter to ReplSkin class
- Banner now displays skill path when provided: `◇ Skill: skills/<software>_SKILL.md`
- This enables AI agents to discover where to read the skill documentation

### 2. Generate SKILL.md files for all 11 existing CLI harnesses
- anygen/agent-harness/skills/anygen_SKILL.md
- audacity/agent-harness/skills/audacity_SKILL.md
- blender/agent-harness/skills/blender_SKILL.md
- drawio/agent-harness/skills/drawio_SKILL.md
- gimp/agent-harness/skills/gimp_SKILL.md
- inkscape/agent-harness/skills/inkscape_SKILL.md
- kdenlive/agent-harness/skills/kdenlive_SKILL.md
- libreoffice/agent-harness/skills/libreoffice_SKILL.md
- obs-studio/agent-harness/skills/obs_studio_SKILL.md
- shotcut/agent-harness/skills/shotcut_SKILL.md
- zoom/agent-harness/skills/zoom_SKILL.md

### 3. Update HARNESS.md with skill path guidance
- Updated Phase 3 (REPL section) to show skill_path parameter usage
- Added "Display Skill Path in CLI Banner" section in Phase 6.5

### 4. Fix skill_generator.py syntax error
- Fixed list comprehension indentation on line 80-81

Addresses maintainer feedback from PR #47 comment:
- "displaying the skill path on the cli header so that agents can know where to read it"
- "generate skill.md files for all existing CLIs we have in the repo"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 12:44:51 +02:00
sehawq
ec52653005 docs: add Windows bash/cygpath note 2026-03-13 23:28:11 +03:00
Alon Tevet
71230bca77 fix: Address Copilot review comments on PR #47
This commit resolves all 8 Copilot review comments:

Template fixes (SKILL.md.template):
- Fix #8: Use YAML block scalars for frontmatter to safely handle quotes/newlines
- Fix #2: Add conditional wrapper for command groups section to prevent empty headers

Generator fixes (skill_generator.py):
- Fix #6: Remove unused imports (os, json) and unused decorator_name variable
- Fix #5: Add cli_anything_dir.exists() check before iterdir() with descriptive error
- Fix #7: Add _format_display_name() helper for proper software name formatting
- Fix #4: Change output_path default to use harness_path instead of CWD
- Fix #3: Update regex patterns to handle multi-line decorators and docstrings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:56:33 +02:00
Alon Tevet
65f3cf9df7 feat: add SKILL.md generation for AI agent discovery (Phase 6.5)
- Add skill_generator.py module for extracting CLI metadata
- Add templates/SKILL.md.template with Jinja2 placeholders
- Update HARNESS.md with Phase 6.5: SKILL.md Generation section
- Update cli-anything.md command to include skill generation step
- Update README.md to move SKILL.md generation to Features section
- SKILL.md follows skill-creator methodology with YAML frontmatter
- Generated files enable AI agents to discover and use CLIs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:10:51 +02:00
Yuhao
a73e3fd550 Merge pull request #8 from Lin-Jiong-HDU/feature/list-command
Add /cli-anything:list command and update documentation
2026-03-10 22:47:01 +08:00
Lin-Jiong-HDU
1be9afd4a6 docs: update /cli-anything:list docs with --depth parameter
- Add --depth option to command signature
- Document options and update examples
- Clarify version is now shown for all tools

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:30:42 +08:00
Lin-Jiong-HDU
4f8392a71e fix: --depth N now scans depths 0 through N (not just depth N)
Previously --depth 2 only scanned exactly 2 levels deep, missing
tools at depth 1. Now it scans all depths from 0 to N inclusive.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:56:37 +08:00
Lin-Jiong-HDU
b7f8ab4f85 feat: add --depth parameter to control scan recursion depth
- Add --depth option to limit how many directory levels to search
- depth=0 scans only current directory, depth=1 scans one level deep, etc.
- Default is unlimited depth (recursive ** glob)
- Helps control scan time in large directory structures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:52:00 +08:00
Lin-Jiong-HDU
55052b3fd3 fix: extract version from setup.py for generated CLIs
The setup.py file is in agent-harness/, not cli_anything/. Fixed the
path calculation to correctly extract version info.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:33:54 +08:00
Lin-Jiong-HDU
6bc2890a19 docs: add /cli-anything:list to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:52:20 +08:00
Lin-Jiong-HDU
af9455704b feat: add /cli-anything:list command
Add new command to list all available CLI-Anything tools.
Supports both installed and generated CLIs with table/JSON output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:50:42 +08:00
Jason Zhao
ad2d69a074 docs: replace stale build.md references with refine.md 2026-03-09 18:55:08 +08:00
yuh
01488030bd first commit 2026-03-08 21:58:43 +08:00