Skip to content

feat: add configurable target-agent profiles - #59

Open
sparkg wants to merge 14 commits into
GitFrog1111:mainfrom
sparkg:feat/universal-agent-profiles
Open

feat: add configurable target-agent profiles#59
sparkg wants to merge 14 commits into
GitFrog1111:mainfrom
sparkg:feat/universal-agent-profiles

Conversation

@sparkg

@sparkg sparkg commented Jul 30, 2026

Copy link
Copy Markdown

What changed

  • replace the hard-coded macro with one AgentProfile -> resolveSteps(platform) -> InputDriver.execute path
  • keep Claude Code as the default profile and add a Codex profile that sends message -> Enter for both CLI and Desktop workflows
  • add an explicit Target Agent tray selector, persisted selection, configurable custom profiles, serialized state mutations, and atomic profile reloads
  • translate the allowlisted keystroke, message, and delay actions for Windows, macOS, and Linux without adding dependencies
  • use Unicode SendInput for Windows messages while retaining portable keystrokes, and normalize custom letter keys at the schema boundary
  • add a Windows/macOS/Ubuntu GitHub Actions matrix for installation, tests, syntax checks, and package inspection
  • document the versioned JSON format, limits, ASCII-only messages, and foreground-window scope

OpenWhip still does not detect the active Agent. Users explicitly choose a profile, and custom configuration cannot execute shell commands, JavaScript, or external scripts.

Validation

  • npm test — 33 tests passed locally and on all three hosted operating systems
  • Cross-platform GitHub Actions runwindows-latest, macos-latest, and ubuntu-latest all passed
  • every matrix job completed npm ci, npm test, JavaScript syntax checks, and npm pack --dry-run
  • package inspection reports 18 files, includes lib/, and excludes tests and local development context
  • automated fake-driver coverage verifies Windows FFI calls, macOS AppleScript, and Linux xdotool arguments
  • git diff --check

The hosted matrix verifies Node behavior, platform-action translation, dependency installation, and packaging on all three operating systems. It does not exercise real global keyboard injection, desktop focus, accessibility permissions, or a live Agent application; those remain platform-specific manual checks.

Relationship to existing PRs

  • #25 automatically routes by the active macOS application and also changes package/security/dependency scope. This PR uses explicit profile selection, does no process detection, and leaves package identity and dependency versions unchanged.
  • #23 adds visual modes and hotkeys. This PR does not modify the overlay or preload bridge; it only generalizes target input behavior, so the designs are independent.

@sparkg
sparkg marked this pull request as ready for review July 30, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant