Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
Expand All @@ -40,3 +40,30 @@ jobs:

- name: Build
run: pnpm build

integration:
name: Integration Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v6
with:
node-version: 24
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Install Chromium
run: pnpm --filter @office-agents/browser test:install-browsers

- name: Browser integration tests
run: pnpm --filter @office-agents/browser test:integration
env:
BROWSER_USE_API_KEY: ${{ secrets.BROWSER_USE_API_KEY }}
2 changes: 1 addition & 1 deletion .github/workflows/release-excel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:

- uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-ppt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:

- uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-word.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:

- uses: actions/setup-node@v6
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ npm-debug.log*
*.key
*.pem
headless-test/

# Wrangler local state
.wrangler/
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
"stop:excel": "pnpm --filter @office-agents/excel stop",
"stop:ppt": "pnpm --filter @office-agents/powerpoint stop",
"stop:word": "pnpm --filter @office-agents/word stop",
"lint": "biome check packages/sdk/src packages/core/src packages/bridge/src packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"lint:fix": "biome check --write packages/sdk/src packages/core/src packages/bridge/src packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"format": "biome format --write packages/sdk/src packages/core/src packages/bridge/src packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"lint": "biome check packages/sdk/src packages/core/src packages/bridge/src packages/browser/src packages/browser/tests packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"lint:fix": "biome check --write packages/sdk/src packages/core/src packages/bridge/src packages/browser/src packages/browser/tests packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"format": "biome format --write packages/sdk/src packages/core/src packages/bridge/src packages/browser/src packages/browser/tests packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts",
"test": "pnpm -r test",
"typecheck": "tsc -b packages/sdk packages/core packages/excel packages/powerpoint packages/word && tsc -p packages/bridge/tsconfig.json --noEmit && pnpm svelte:check",
"typecheck": "tsc -b packages/sdk packages/core packages/excel packages/powerpoint packages/word && tsc -p packages/bridge/tsconfig.json --noEmit && tsc -p packages/browser/tsconfig.json --noEmit && pnpm svelte:check",
"svelte:check": "svelte-check --tsconfig ./packages/core/tsconfig.json && svelte-check --tsconfig ./packages/excel/tsconfig.json && svelte-check --tsconfig ./packages/powerpoint/tsconfig.json && svelte-check --tsconfig ./packages/word/tsconfig.json",
"check": "tsc -b packages/sdk packages/core packages/excel packages/powerpoint packages/word && tsc -p packages/bridge/tsconfig.json --noEmit && pnpm svelte:check && biome check packages/sdk/src packages/core/src packages/bridge/src packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts && pnpm validate",
"check": "tsc -b packages/sdk packages/core packages/excel packages/powerpoint packages/word && tsc -p packages/bridge/tsconfig.json --noEmit && tsc -p packages/browser/tsconfig.json --noEmit && pnpm svelte:check && biome check packages/sdk/src packages/core/src packages/bridge/src packages/browser/src packages/browser/tests packages/excel/src packages/excel/vite.config.ts packages/powerpoint/src packages/powerpoint/vite.config.ts packages/word/src packages/word/vite.config.ts && pnpm validate",
"validate": "pnpm --filter @office-agents/excel exec office-addin-manifest validate manifest.xml && pnpm --filter @office-agents/excel exec office-addin-manifest validate manifest.prod.xml && pnpm --filter @office-agents/powerpoint exec office-addin-manifest validate manifest.xml && pnpm --filter @office-agents/powerpoint exec office-addin-manifest validate manifest.prod.xml && pnpm --filter @office-agents/word exec office-addin-manifest validate manifest.xml && pnpm --filter @office-agents/word exec office-addin-manifest validate manifest.prod.xml",
"release:excel": "node scripts/release.mjs excel",
"release:ppt": "node scripts/release.mjs ppt",
Expand Down
138 changes: 138 additions & 0 deletions packages/browser/PARITY_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# browse ↔ agent-browser parity checklist

Scope: browser automation and agent-facing CLI ergonomics for `@office-agents/browser`'s `browse` command.

Out of scope for now: native install/upgrade flows, daemon/dashboard/session registry, iOS/device-management, local DevTools proxying, video/trace/profiler, auth vault, and other features that depend on the Rust daemon architecture from `agent-browser`.

## Target

Reach ~90% parity for the browser-automation subset by closing the biggest command-surface gaps and adding command-contract tests.

## Command parity

### Navigation / session
- [x] `open`
- [x] `back`
- [x] `forward`
- [x] `reload`
- [x] `status`
- [x] `stop`
- [x] `connect <port|url>`
- [x] `close | quit | exit`
- [x] `close --all` (local alias for single in-process session)

### Core actions
- [x] `click <ref|selector>`
- [x] `click <selector> --new-tab`
- [x] `dblclick <ref|selector>`
- [x] `type` (`type <selector> <text>` plus focused-element fallback)
- [x] `fill <ref|selector> <value>`
- [x] `press <key>`
- [x] `key` alias for `press`
- [x] `keydown <key>`
- [x] `keyup <key>`
- [x] `keyboard type <text>`
- [x] `keyboard inserttext <text>`
- [x] `hover`
- [x] `focus`
- [x] `check`
- [x] `uncheck`
- [x] `select`
- [x] `drag <src> <tgt>`
- [x] `upload <sel> <files...>`

### Scrolling / waiting
- [x] `scroll` (directional mode + low-level XY deltas)
- [x] `scrollintoview | scrollinto`
- [x] `wait <selector>`
- [x] `wait <ms>`
- [x] `wait --text`
- [x] `wait --url`
- [x] `wait --load`
- [x] `wait --fn`
- [x] wait state parity (`visible|hidden|attached|detached`)

### Artifacts
- [x] `snapshot`
- [ ] `snapshot --selector`
- [x] `screenshot` (selector/path parity)
- [x] `pdf` (base64 + file output parity)
- [x] `download` (URL or selector-driven path parity)

### Get / state
- [x] `get text`
- [x] `get html`
- [x] `get value`
- [x] `get attr`
- [x] `get title`
- [x] `get url`
- [x] `get count`
- [x] `get box`
- [x] `get styles`
- [x] `get cdp-url`
- [x] `is visible`
- [x] `is enabled`
- [x] `is checked`

### Semantic locators
- [x] `find role`
- [x] `find text`
- [x] `find label`
- [x] `find placeholder`
- [x] `find alt`
- [x] `find title`
- [x] `find testid`
- [x] `find first`
- [x] `find last`
- [x] `find nth`

### Mouse / keyboard namespaces
- [x] `mouse move`
- [x] `mouse down`
- [x] `mouse up`
- [x] `mouse wheel`

### Browser settings
- [x] `set viewport`
- [x] `set device`
- [x] `set geo`
- [x] `set offline`
- [x] `set headers`
- [x] `set credentials | set auth`
- [x] `set media` (color scheme + reduced-motion parity)

### Cookies / storage / tabs
- [x] `cookies`
- [x] `cookies set`
- [x] `cookies clear`
- [x] `storage local`
- [x] `storage session`
- [x] `tab`
- [x] `tab new`
- [x] `tab close`

### Possible later
- [ ] `clipboard`
- [ ] `batch`
- [ ] `network ...`
- [ ] `inspect`
- [ ] `console`
- [ ] `errors`
- [ ] `highlight`

## Test expansion plan

### Phase 1 — command contract tests
- [x] add `tests/command.test.ts`
- [x] cover existing commands with fake `Browser` / `Page`
- [x] add tests for new aliases and error cases

### Phase 2 — page/integration coverage
- [x] drag + upload fixtures
- [x] semantic locator integration tests
- [x] device / screenshot selector coverage
- [x] scroll direction + scroll-into-view coverage

### Phase 3 — docs
- [ ] update `packages/browser/README.md`
- [ ] update `browse --help` output
Loading