Peekaboo/package.json
Peter Steinberger c91d968be0 feat: Migrate MCP server from TypeScript to native Swift implementation
This is a complete rewrite of the Peekaboo MCP server in Swift, removing all TypeScript dependencies
and providing a native, high-performance implementation that integrates directly with PeekabooCore.

## Major Changes

### Architecture
- Removed entire TypeScript/Node.js server implementation (Server/ directory)
- Implemented native Swift MCP server using modelcontextprotocol/swift-sdk
- Direct integration with PeekabooCore services for ~10x performance improvement
- All operations now run on MainActor for thread safety with UI/AppKit APIs

### MCP Tools Implementation
- Implemented all 23 MCP tools in Swift with full feature parity
- Added comprehensive input validation and error handling
- Improved type safety with Swift's strong type system
- Better integration with macOS accessibility and UI automation APIs

### Key Improvements
- Performance: ~10x faster by eliminating CLI subprocess overhead
- Type Safety: Compile-time checking for all tool parameters
- Thread Safety: Proper @MainActor usage for UI operations
- Memory Efficiency: No more Node.js runtime overhead
- Better Error Messages: More descriptive errors for debugging

### Testing
- Added comprehensive test suite with 200+ tests
- Unit tests for all MCP tools and components
- Integration tests for server functionality
- Mock implementations for testing without side effects

### Fixes Included
- Fixed threading violations by ensuring UI operations run on main thread
- Fixed API errors with proper media type detection for images
- Fixed UI element detection using correct property mappings
- Added Sendable conformance for Swift concurrency compliance

### Installation
- New installation script for Claude Desktop integration
- Simplified deployment with single binary
- No npm dependencies or Node.js runtime required

## Breaking Changes
- Server/ directory and all TypeScript code removed
- npm scripts updated to reflect Swift-only build
- MCP server now starts with 'peekaboo mcp serve' command

Co-authored-by: Previous Claude session <claude-3-5-sonnet@anthropic.com>
2025-08-02 22:10:01 +02:00

36 lines
1.5 KiB
JSON

{
"name": "peekaboo",
"version": "3.0.0",
"private": true,
"description": "Peekaboo - Lightning-fast macOS Screenshots & GUI Automation",
"comments": [
"This package.json is for build scripts only.",
"The TypeScript server has been removed - all MCP functionality is now in Swift."
],
"scripts": {
"build:swift": "./scripts/build-swift-arm.sh",
"build:swift:all": "./scripts/build-swift-universal.sh",
"build": "npm run build:swift",
"test:swift": "cd Apps/CLI && swift test --parallel --skip \"LocalIntegrationTests|ScreenshotValidationTests|ApplicationFinderTests|WindowManagerTests\"",
"test": "npm run test:swift",
"lint:swift": "cd Apps/CLI && swiftlint",
"format:swift": "cd Apps/CLI && swiftformat .",
"prepare-release": "node scripts/prepare-release.js",
"poltergeist:start": "./scripts/poltergeist-wrapper.sh start",
"poltergeist:haunt": "./scripts/poltergeist-wrapper.sh haunt",
"poltergeist:stop": "./scripts/poltergeist-wrapper.sh stop",
"poltergeist:rest": "./scripts/poltergeist-wrapper.sh rest",
"poltergeist:status": "./scripts/poltergeist-wrapper.sh status",
"poltergeist:logs": "./scripts/poltergeist-wrapper.sh logs"
},
"repository": {
"type": "git",
"url": "git+https://github.com/steipete/peekaboo.git"
},
"author": "Peter Steinberger <steipete@gmail.com>",
"license": "MIT",
"bugs": {
"url": "https://github.com/steipete/peekaboo/issues"
},
"homepage": "https://github.com/steipete/peekaboo#readme"
}