Peekaboo/package.json
codegen-sh[bot] 271814cc90 Update tests for Linux compatibility and resolve merge conflicts
 **Merge Conflicts Resolved**
- Merged latest changes from main branch
- Resolved conflicts in docs/spec.md by keeping comprehensive specification
- Added PEEKABOO_CLI_TIMEOUT environment variable documentation

🧪 **Test Suite Updates for Linux Compatibility**
- Added platform-specific test skipping for Swift-dependent tests
- Created tests/setup.ts for global test configuration
- Updated vitest.config.ts with platform detection
- Modified integration tests to skip on non-macOS platforms:
  - tests/integration/peekaboo-cli-integration.test.ts
  - tests/integration/image-tool.test.ts
  - tests/integration/analyze-tool.test.ts

📦 **New Test Scripts**
- `npm run test:unit` - Run only unit tests (any platform)
- `npm run test:typescript` - Run TypeScript tests, skip Swift (Linux-friendly)
- `npm run test:typescript:watch` - Watch mode for TypeScript-only tests

🌍 **Platform Support**
- **macOS**: All tests run (unit + integration + Swift)
- **Linux/CI**: Only TypeScript tests run (Swift tests auto-skipped)
- **Environment Variables**:
  - `SKIP_SWIFT_TESTS=true` - Force skip Swift tests
  - `CI=true` - Auto-skip Swift tests in CI

📚 **Documentation Updates**
- Added comprehensive testing section to README.md
- Documented platform-specific test behavior
- Added environment variable documentation for test control

This allows the TypeScript parts of Peekaboo to be tested on Linux while maintaining full test coverage on macOS.
2025-06-08 06:03:49 +00:00

82 lines
2.5 KiB
JSON

{
"name": "@steipete/peekaboo-mcp",
"version": "1.0.0-beta.19",
"description": "A macOS utility exposed via Node.js MCP server for advanced screen captures, image analysis, and window management",
"type": "module",
"main": "dist/index.js",
"bin": {
"peekaboo-mcp": "dist/index.js"
},
"files": [
"dist/",
"peekaboo",
"README.md",
"LICENSE"
],
"scripts": {
"build": "tsc",
"build:swift": "./scripts/build-swift-universal.sh",
"build:all": "npm run build:swift && npm run build",
"start": "node dist/index.js",
"prepublishOnly": "npm run build:all",
"dev": "tsc --watch",
"clean": "rm -rf dist",
"test": "vitest run",
"test:watch": "vitest watch",
"test:coverage": "vitest run --coverage",
"test:unit": "vitest run tests/unit",
"test:typescript": "SKIP_SWIFT_TESTS=true vitest run",
"test:typescript:watch": "SKIP_SWIFT_TESTS=true vitest watch",
"test:swift": "cd peekaboo-cli && swift test --parallel --skip \"LocalIntegrationTests|ScreenshotValidationTests|ApplicationFinderTests|WindowManagerTests\"",
"test:integration": "npm run build && npm run test:swift && vitest run",
"test:all": "npm run test:integration",
"lint": "eslint 'src/**/*.ts'",
"lint:fix": "eslint 'src/**/*.ts' --fix",
"lint:swift": "cd peekaboo-cli && swiftlint",
"format:swift": "cd peekaboo-cli && swiftformat .",
"prepare-release": "node ./scripts/prepare-release.js",
"inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
"postinstall": "chmod +x dist/index.js 2>/dev/null || true"
},
"keywords": [
"mcp",
"screen-capture",
"macos",
"ai-analysis",
"image-analysis",
"window-management"
],
"author": "Peter Steinberger <steipete@gmail.com>",
"license": "MIT",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.12.0",
"openai": "^4.0.0",
"pino": "^9.7.0",
"zod": "^3.25.28"
},
"devDependencies": {
"@types/node": "^22.15.21",
"@typescript-eslint/eslint-plugin": "^8.19.1",
"@typescript-eslint/parser": "^8.19.1",
"eslint": "^8.57.1",
"pino-pretty": "^13.0.0",
"typescript": "^5.3.0",
"vitest": "^3.1.4",
"@vitest/ui": "^3.1.4",
"@vitest/coverage-v8": "^3.1.4"
},
"engines": {
"node": ">=18.0.0"
},
"os": [
"darwin"
],
"repository": {
"type": "git",
"url": "git+https://github.com/steipete/peekaboo.git"
},
"bugs": {
"url": "https://github.com/steipete/peekaboo/issues"
},
"homepage": "https://github.com/steipete/peekaboo#readme"
}