Commit graph

184 commits

Author SHA1 Message Date
Peter Steinberger
e74796f7e3 fix: Handle case-insensitive format parameter and add jpeg alias
The image tool now properly handles:
- Case-insensitive format values (e.g., "PNG", "Png", "png" all work)
- "jpeg" as an alias for "jpg" format
- Invalid format values gracefully fall back to "png"

This is implemented through Zod schema preprocessing that normalizes
the format parameter before it reaches the Swift CLI, which only
accepts lowercase "png" and "jpg".

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:49:49 +01:00
Peter Steinberger
0301df2608 fix: Trim whitespace from app_target parameter
- Add .trim() to app_target when passing to Swift CLI
- Handles cases like "   Spotify   " correctly matching "Spotify"
- Applies to all app name formats including window specifiers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:47:56 +01:00
Peter Steinberger
979ae84f6b docs: Add release notes for v1.0.0-beta.19
🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:20:40 +01:00
Peter Steinberger
cef648fa8f style: Apply SwiftFormat formatting
🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:19:17 +01:00
Peter Steinberger
a10cbb59d5 style: Fix linting errors
- Removed trailing spaces
- Added curly braces for if statement

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:18:48 +01:00
Peter Steinberger
14749414b0 chore: Update package-lock.json for version 1.0.0-beta.19
🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:18:19 +01:00
Peter Steinberger
277ae64b61 chore: Bump version to 1.0.0-beta.19
- Updated package.json version
- Added CHANGELOG entry for beta.19 release

Features in this release:
- Auto-fallback to PNG for invalid format values and screen captures
- Enhanced error messages showing all matching apps for ambiguous identifiers

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:17:57 +01:00
Peter Steinberger
2676decf51 feat: Enhanced error messages for ambiguous app identifiers
- Error messages now include the list of matching applications when multiple apps match an identifier
- Shows bundle IDs alongside app names to help users disambiguate (e.g., Calendar (com.apple.iCal))
- Applies to both image and list tools for consistent user experience
- Added comprehensive tests for error detail handling

This makes it much easier for users to understand which specific application to target when there are multiple matches.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:16:15 +01:00
Peter Steinberger
dbb68e4294 feat: Auto-fallback to PNG for invalid format values and screen captures
- Screen captures with format 'data' now auto-fallback to PNG to prevent stack overflow
- Invalid format values (empty strings, null, unrecognized) gracefully fall back to PNG
- Added comprehensive tests for format validation
- Updated documentation to reflect the new behavior

This provides a better user experience by handling edge cases gracefully instead of returning errors.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 06:04:09 +01:00
Peter Steinberger
2e65e000f0 fallback to png for full screen captures. 2025-06-08 06:04:09 +01:00
Peter Steinberger
30277bbf6c fix: Prevent format 'data' for screen captures to avoid stack overflow
- Screen captures now reject format: 'data' with clear error message
- Large screen images cause JavaScript stack overflow when base64 encoded
- Application window captures can still use format: 'data'
- Update tests and documentation to reflect this limitation
2025-06-08 06:04:09 +01:00
codegen-sh[bot]
338b994ac9
Fix all test warnings (#4)
Co-authored-by: codegen-sh[bot] <131295404+codegen-sh[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-08 05:37:15 +01:00
Peter Steinberger
e24c2b6de7 fix: Resolve SwiftLint violations in fuzzy matching code 2025-06-08 05:24:34 +01:00
Peter Steinberger
09bea31b45 chore: Update package-lock.json for v1.0.0-beta.18 2025-06-08 05:23:32 +01:00
Peter Steinberger
ba36248bc7 ignore binary 2025-06-08 05:22:58 +01:00
Peter Steinberger
94e966fa98 feat: Add fuzzy matching for application names
- Implement Levenshtein distance algorithm for fuzzy app name matching
- Handle common typos like "Chromee" → "Google Chrome"
- Add window-specific labels in analysis results
- Improve error messages with app name suggestions
- Fix TypeScript JSON parsing for error responses
- Update tests for new error message formats

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 05:22:58 +01:00
Peter Steinberger
b3ec918363 Improve analyze description for multiple windows 2025-06-08 05:22:58 +01:00
Peter Steinberger
06cf4f144e
Merge pull request #3 from steipete/codegen-bot/remove-roadmap-section 2025-06-08 05:08:53 +01:00
codegen-sh[bot]
86d1a5b733 Remove Roadmap section from README.md 2025-06-08 04:03:28 +00:00
Peter Steinberger
2b72a69a70 Fix Swift lint violations for release
- Remove trailing comma in test array
- Fix long line in error message

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:38:27 +01:00
Peter Steinberger
e85f0c81b8 Apply SwiftFormat changes for release preparation
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:37:52 +01:00
Peter Steinberger
57c277f4da Fix ESLint violations for release preparation
- Remove unused imports and variables
- Fix quote consistency and trailing commas
- Remove non-null assertions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:37:35 +01:00
Peter Steinberger
020621582a Update package-lock.json version to 1.0.0-beta.17
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:35:36 +01:00
Peter Steinberger
61885a75f5 Bump version to 1.0.0-beta.17
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:35:18 +01:00
Peter Steinberger
282d00f5d9 Add auto capture focus mode and fix list tool validation
- Added new "auto" capture focus mode that intelligently brings windows to foreground only when needed
- Changed default capture_focus from "background" to "auto" for better screenshot success rates
- Fixed list tool server_status validation to allow empty include_window_details arrays
- Added comprehensive tests for new auto mode functionality
- Enhanced error messages for better user experience

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 04:31:28 +01:00
Peter Steinberger
e9e2cdb6cb Improve error handling when no windows are available 2025-06-08 04:05:52 +01:00
Peter Steinberger
17b74b4f1f accept path as silent fallback parameter 2025-06-08 04:05:13 +01:00
Peter Steinberger
76d0faef42 image + analyze keeps the temp files 2025-06-08 04:02:04 +01:00
Peter Steinberger
ee6aecda82 update docs 2025-06-08 03:49:54 +01:00
Peter Steinberger
b8fd8870dd more lenient tool handling 2025-06-08 03:49:46 +01:00
Peter Steinberger
bc834f977a better path handling 2025-06-08 03:49:23 +01:00
Peter Steinberger
e5e8123445 add more tests 2025-06-08 03:49:11 +01:00
Peter Steinberger
3ce1d38050 improve path resolve logic 2025-06-08 03:49:04 +01:00
Peter Steinberger
8145455fc4 add tests for path handling 2025-06-08 03:48:49 +01:00
Peter Steinberger
0c4706393e Improve output path handling 2025-06-08 03:48:33 +01:00
Peter Steinberger
e2eef703a6 Improve error handling 2025-06-08 03:48:19 +01:00
Peter Steinberger
4f674e82b5 chore: update package-lock.json for v1.0.0-beta.15 2025-06-08 02:36:19 +01:00
Peter Steinberger
10672e57c0 Prepare v1.0.0-beta.15: Improved list tool usability and robustness
### Improved
- The list tool is now more lenient and user-friendly
- item_type parameter is now optional (defaults to 'running_applications')
- Intelligent auto-detection when app parameter is provided
- Enhanced error handling and validation

### Fixed
- Fixed crash when list tool called with empty item_type
- Improved image tool path handling for temporary files
- Better error messages and validation throughout

### Tests
- Added comprehensive test coverage for new list tool features
- Enhanced integration tests for improved scenarios
- Total test count increased from 223 to 228 tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 02:36:13 +01:00
Peter Steinberger
c5e1adf7ff docs: add Cursor IDE install button for easier MCP setup 2025-06-08 02:13:10 +01:00
Peter Steinberger
dc0b29b0b1 fix: resolve Swift test compilation issue with allSatisfy closure 2025-06-08 02:03:45 +01:00
Peter Steinberger
68b5f6eca7 style: apply SwiftFormat changes 2025-06-08 02:03:33 +01:00
Peter Steinberger
d5df3ec53e fix: Swift test compilation error with allSatisfy closure 2025-06-08 02:03:17 +01:00
Peter Steinberger
c9ac341e08 style: apply SwiftFormat final formatting 2025-06-08 02:02:37 +01:00
Peter Steinberger
d621bf5a00 docs: add changelog entry for version 1.0.0-beta.14 2025-06-08 02:02:15 +01:00
Peter Steinberger
ef2f18cd99 chore: update package-lock.json for version 1.0.0-beta.14 2025-06-08 02:01:49 +01:00
Peter Steinberger
3bb05942a7 chore: bump version to 1.0.0-beta.14 2025-06-08 02:01:27 +01:00
Peter Steinberger
fbf32f8e21 Prepare for beta.14 release: comprehensive test improvements and code cleanup
- Fixed all Swift test compilation errors and SwiftLint violations
- Enhanced test host app with permission status display and CLI availability checking
- Refactored ImageCommand.swift to improve readability and reduce function length
- Updated all tests to use proper Swift Testing patterns
- Added comprehensive local testing framework for screenshot functionality
- Updated documentation with proper test execution instructions
- Applied SwiftFormat to all Swift files and achieved zero serious linting issues

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 02:00:44 +01:00
Peter Steinberger
f5ad072bc8 chore: bump version to 1.0.0-beta.13 2025-06-08 01:28:12 +01:00
Peter Steinberger
5ff72d1877 fix: Swift test compilation error 2025-06-08 00:48:37 +01:00
Peter Steinberger
8bbacfae75 style: apply SwiftFormat changes 2025-06-08 00:47:52 +01:00