[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81530":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":11,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":12,"stars7d":12,"stars30d":12,"stars90d":12,"forks30d":12,"starsTrendScore":12,"compositeScore":12,"rankGlobal":9,"rankLanguage":9,"license":13,"archived":14,"fork":14,"defaultBranch":15,"hasWiki":14,"hasPages":14,"topics":16,"createdAt":9,"pushedAt":9,"updatedAt":17,"readmeContent":18,"aiSummary":19,"trendingCount":12,"starSnapshotCount":12,"syncStatus":20,"lastSyncTime":21,"discoverSource":22},81530,"agent-device-vscode","azizbecha\u002Fagent-device-vscode","azizbecha","VS Code extension for agent-device — author, run, and inspect .ad scripts.",null,"TypeScript",26,0,"MIT License",false,"main",[],"2026-06-12 02:04:16","# Agent Device DevTools for VS Code\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fazizbecha\u002Fagent-device-vscode\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fazizbecha\u002Fagent-device-vscode\u002Factions\u002Fworkflows\u002Fci.yml)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n\nAuthor, run, and inspect [agent-device](https:\u002F\u002Fincubator.callstack.com\u002Fagent-device) `.ad` scripts inside VS Code — Vitest-style.\n\n![Agent Device for VS Code — overview](media\u002Fscreenshots\u002Foverview.png)\n\n## Features\n\n### Authoring\n\n- **Syntax highlighting** for `.ad` files — commands, `@eN` refs, flags, double-quoted strings, `${VAR}` interpolation, `#` comments\n- **Completion** for commands, command-scoped flags, `context` keys (`platform=`, `timeout=`, `retries=`), `find` sub-actions\n- **Variable completion** inside `${...}` — built-in `AD_*` plus `env`-defined names from the same file\n- **Platform value completion + diagnostic** — suggests `android` \u002F `ios` after `--platform` and `context platform=`, errors on anything else\n- **Hover** docs for commands, directives, and flags\n\n![Command completion](media\u002Fscreenshots\u002Fcommand-completion.png)\n\n![Variable completion in ${...}](media\u002Fscreenshots\u002Fvariable-completion.png)\n\n### Running\n\n- **Run Output panel** in the bottom panel container — opens to a workspace-wide `.ad` file picker; click any file to run\n- **Per-step UI** as steps execute live: pending circle → spinner → green ✓ \u002F red ✗ \u002F muted skipped, with live duration counters\n- **Click any step row** (passed\u002Ffailed\u002Frunning) to expand stdout, stderr, or the error block; copy buttons on every output block\n- **Stop** button kills the in-flight subprocess immediately (forwards `AbortSignal` to the spawned `agent-device`)\n- **CodeLenses** above each action line: `▶ Run` (just that line) and `▶ Run up to here`\n- **Native gutter test icons** — every action line is a child `TestItem` with a `range`, so the editor gutter shows pass\u002Ffail icons after each run\n- **Test Explorer integration** — every `.ad` file appears as a `TestItem`; runs from any entry point (panel, CodeLens, palette, native test gutter) all reflect the same state in the Testing view\n\n![Live per-step run with the Test Results streaming](media\u002Fscreenshots\u002Frun-live.png)\n\n![Test Explorer with passed steps and the Run Output panel](media\u002Fscreenshots\u002Ftest-explorer.png)\n\n### Templates\n\n- `+ New` opens a QuickPick with 9 starter templates: empty file, iOS\u002FAndroid Settings smoke, login flow, search & assert, scroll & discover, swipe gestures, visual baseline, React Native (Metro)\n\n![Template picker](media\u002Fscreenshots\u002Ftemplates.png)\n\n### Devices\n\n- **Devices view** lists every iOS simulator and Android AVD, grouped by platform, booted entries first\n- **Boot \u002F Shut down** inline icons on hover, also in the right-click menu and Command Palette\n- iOS uses `xcrun simctl` directly; Android uses `emulator -avd` + `adb emu kill` for reliable per-device control regardless of the daemon's session lock\n\n### Reports\n\n- Every run writes a self-contained HTML report to `\u003Cworkspace>\u002F.agent-device-reports\u002F\u003Ciso-timestamp>\u002F`\n- Sticky toolbar with **search** (`\u002F` to focus), **status filter pills** (All \u002F Passed \u002F Failed \u002F Skipped with counts), **Expand all \u002F Collapse all**\n- Per-step Copy command + Copy stdout\u002Fstderr buttons; light\u002Fdark mode auto-detected; pure HTML\u002FCSS\u002FJS, no external assets — share by zipping the run folder\n\n## Install (development)\n\n```bash\nnpm install\nnpm run watch\n```\n\nThen press `F5` in VS Code to launch the Extension Development Host. Open any folder containing `.ad` files and click the **Agent Device** tab in the bottom panel.\n\n## Install (packaged)\n\n```bash\nnpm run package    # produces agent-device-devtools-\u003Cversion>.vsix\ncode --install-extension agent-device-devtools-\u003Cversion>.vsix\n```\n\n## Settings\n\nOpen via the gear icon in either Agent Device view title, the Command Palette (`Agent Device: Open Settings`), or VS Code's settings UI filtered to `agentDevice`.\n\n| Setting                             | Default         | Purpose                                                                                      |\n| ----------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |\n| `agentDevice.cliPath`               | bundled         | Override path to the `agent-device` binary. Useful when developing against a local checkout. |\n| `agentDevice.session`               | `vscode`        | Daemon session name used for replay runs.                                                    |\n| `agentDevice.androidSdkPath`        | `$ANDROID_HOME` | Override the Android SDK location used to find `adb` and `emulator`.                         |\n| `agentDevice.report.enabled`        | `true`          | Generate HTML reports under `.agent-device-reports\u002F`.                                        |\n| `agentDevice.notifications.enabled` | `true`          | Show success \u002F failure popups (status bar pill always shows).                                |\n\nUser-level settings apply globally; workspace-level settings override per project — both surfaces are reachable from the gear icon.\n\n## Architecture\n\n```\nsrc\u002F\n  extension.ts                — activation; wires everything\n  data\u002F                       — static catalogs (commands, templates, platforms, variables)\n  diagnostics\u002F                — platform-value validator\n  panels\u002F                     — RunOutputPanel (webview, list + run views)\n  providers\u002F                  — completion, hover, codelens\n  reports\u002F                    — HtmlReportWriter + reportTemplate\n  runners\u002F                    — ReplayRunner (event emitter), CliRunner, scriptParser\n  services\u002F                   — AdFileIndex, DeviceCatalog, AgentDeviceConfig\n  testing\u002F                    — AgentDeviceTestController (TestRun mirroring)\n  views\u002F                      — DeviceTreeProvider\n  util\u002F                       — duration \u002F pluralize helpers\nmedia\u002F\n  agent-device.svg            — activity bar icon\n  runOutput.css               — webview styles (loaded via webview.asWebviewUri)\nsyntaxes\u002F\n  agent-device.tmLanguage.json\nexamples\u002F\n  demo.ad\n```\n\nThe runner spawns the `agent-device` CLI per step (so cancellation kills the in-flight subprocess immediately), parses `.ad` itself for variable interpolation and step-by-step events, and emits a typed event stream that every UI surface consumes.\n\n## Releases\n\nSee [CHANGELOG.md](CHANGELOG.md). Publishing is documented in [PUBLISHING.md](PUBLISHING.md).\n\n## License\n\n[MIT](LICENSE).\n","该项目是一款针对VS Code的扩展，用于编写、运行和检查agent-device的.ad脚本。它支持.ad文件的语法高亮、自动补全（包括命令、标志、上下文键等）、变量补全以及平台值建议与诊断等功能，极大提升了开发效率。此外，该扩展还提供了直观的运行界面，能够实时显示每一步执行的状态，并且集成了测试资源管理器，使得每一个.ad文件都可以作为测试项被管理和运行。此工具特别适合需要频繁编写和调试移动应用自动化测试脚本的开发者使用。",2,"2026-06-11 04:05:24","CREATED_QUERY"]