mirror of
https://github.com/trycua/computer.git
synced 2026-01-06 13:30:06 -06:00
- Add `.editorconfig` for editor consistency. - Configure GitHub Actions workflow for linting (`.github/workflows/lint.yml`). - Add pre-commit hooks for automated checks (`.pre-commit-config.yaml`). - Configure Prettier and exclusions (`.prettierrc.yaml`, `.prettierignore`). - Update VS Code extensions to include formatting tools (`.vscode/extensions.json`). - Adjust VS Code settings for auto-formatting (`.vscode/settings.json`).
CUA TypeScript Libraries
This repository contains TypeScript implementations of the CUA libraries:
@trycua/core: Core functionality including telemetry and logging@trycua/computer: Computer interaction SDK for VM management and control
Project Structure
libs/typescript/
├── computer/ # Computer SDK package
├── core/ # Core functionality package
├── package.json # Root package configuration
└── pnpm-workspace.yaml # Workspace configuration
Prerequisites
Setup and Installation
- Install dependencies for all packages:
pnpm install
- Build all packages:
pnpm build:all
Development Workflow
Building Packages
Build all packages in the correct dependency order:
pnpm build:all
Build specific packages:
# Build core package
pnpm --filter @trycua/core build
# Build computer package
pnpm --filter @trycua/computer build
Running Tests
Run tests for all packages:
pnpm test:all
Run tests for specific packages:
# Test core package
pnpm --filter @trycua/core test
# Test computer package
pnpm --filter @trycua/computer test
Linting
Lint all packages:
pnpm lint:all
Fix linting issues:
pnpm lint:fix:all
Package Details
@trycua/core
Core functionality for CUA libraries including:
- Telemetry with PostHog integration
- Common utilities and types
@trycua/computer
Computer interaction SDK for managing and controlling virtual machines:
- VM provider system (Cloud)
- Interface system for OS-specific interactions
- Screenshot, keyboard, and mouse control
- Command execution
Publishing
Prepare packages for publishing:
pnpm -r build
Publish packages:
pnpm -r publish