Commit Graph
20 Commits
Author SHA1 Message Date
yuhao e81c3a9409 docs(skill): sync video creation harness guidance 2026-04-19 16:25:19 +00:00
yuhao 8120c9f231 fix(cli): improve video creation harness workflows 2026-04-19 16:00:33 +00:00
yuhao 99f92f0525 WIP transfer root-skills and hub updates 2026-04-18 10:12:58 +00: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 0beb0d6f30 Merge pull request #83 from sehawq/codex/gimp-file-load-fix
Use gimp-file-load for non-PNG inputs in apply_filter_and_export
2026-03-20 20:00:40 +08:00
sehawq 08f6eb5e61 fix: persist session state in CLI mode and handle quoted text in REPL
- Add auto-save via result_callback so --project flag triggers disk
  write after every mutating command, fixing broken consecutive
  operations in non-REPL mode.
- Switch REPL arg parsing from str.split() to shlex.split() so that
  quoted strings with spaces (e.g. --text "Summer Sale") are handled
  correctly.

Fixes #111
2026-03-20 13:18:20 +03: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
ZJZACandClaude Opus 4.6 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
yuhaoandClaude Opus 4.6 31abba22a4 docs: populate Command Groups tables in all 11 SKILL.md files
Fill in the previously empty command tables with actual commands
extracted from each CLI's Click decorators. All 11 harnesses now
have complete command documentation in their SKILL.md files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 09:23:30 +00:00
yuhaoandClaude Opus 4.6 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
yuhaoandClaude Opus 4.6 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
Yuhao c939f64c08 Merge pull request #76 from Xyerophyte/fix/gimp-pillow-to-native-backend
fix: replace Pillow with GIMP-native Script-Fu rendering backend (fixes #48)
2026-03-16 15:57:32 +08:00
sehawq 29bc44add2 Use gimp-file-load for non-PNG inputs 2026-03-15 18:10:56 +03:00
7. Sun 479fa5c31e feat(session): sort JSON keys for deterministic agent diffing 2026-03-15 07:57:50 +00:00
harsh 2c73b80915 fix: replace Pillow with GIMP-native Script-Fu rendering backend
Addresses #48 - the GIMP harness relied on Pillow for all image
processing despite gimp_backend.py already having Script-Fu
infrastructure.  This commit:

- export.py: render() now tries GIMP Script-Fu batch mode first
  (gimp -i -b) and falls back to Pillow only when GIMP is absent.
  All PIL imports moved from top-level to lazy imports.

- gimp_backend.py: Added is_available(), render_project(),
  GIMP_BLEND_MODES, and _filter_to_script_fu() mapping all 20+
  CLI filters to native GIMP Script-Fu equivalents.

- layers.py: Replaced PIL.Image.open() for dimension reading with
  pure-Python struct-based header parsing (PNG/JPEG/GIF/BMP/WebP/TIFF).

- media.py: probe_image() degrades gracefully to pure-Python header
  parsing when Pillow is not installed.

- setup.py: Pillow moved from install_requires to extras_require,
  making it optional.

All 64 unit tests and 39 E2E tests continue to pass.

Made-with: Cursor
2026-03-15 04:17:29 +05:30
Alon TevetandClaude Opus 4.6 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
Mirza-Samad-Ahmed-Baig fc6ca82f36 Escape Script-Fu path literals to prevent injection 2026-03-13 15:07:53 +03:00
OpenClaw 02acd54ca1 fix: replace placeholder URLs with correct HKUDS/CLI-Anything URL
Fixed 8 setup.py files that had placeholder URLs:
- Changed 'yourusername' to 'HKUDS'
- Changed repo name to 'CLI-Anything'

This fixes broken metadata when packages are published to PyPI.
2026-03-11 13:53:20 +08:00
yuh 01488030bd first commit 2026-03-08 21:58:43 +08:00