Skip to content
Draft
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
2 changes: 1 addition & 1 deletion README.ja-JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ OpenGUIはDSH `0.1.0-rc.7`、`0.1.0-rc.8`、`0.1.1-rc.1`、`0.1.1-rc.2`を正式
@OpenGUI Open Settings and report the Android version
```

このプラグインは、OpenGUIバックエンド一式を必要とせず、DSHにスマートフォンとブラウザの操作機能を追加します。[ユースケース](./deepseek-harness-plugin/docs/use-cases.md)を確認するか、[v0.1.13リリースパッケージ](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13)をダウンロードできます。
このプラグインは、OpenGUIバックエンド一式を必要とせず、DSHにスマートフォンとブラウザの操作機能を追加します。現在のソース実装はDSH Sessionごとに1つのルートタスクを受け付け、デバイスが競合しない別のTabも受け付けます。管理対象ブラウザは引き続きグローバルに直列実行されます。これはソースの動作説明であり、リリース済みであることを示すものではありません。[ユースケース](./deepseek-harness-plugin/docs/use-cases.md)を確認するか、[v0.1.13リリースパッケージ](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13)をダウンロードできます。

主なユースケース:

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ After installation, add or select a DSH workspace, connect and select an authori
@OpenGUI Open Settings and report the Android version
```

The plugin adds phone and browser operation to DSH without requiring the full OpenGUI backend stack. See more [use cases](./deepseek-harness-plugin/docs/use-cases.md) or download the [v0.1.13 release package](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13).
The plugin adds phone and browser operation to DSH without requiring the full OpenGUI backend stack. The current source implementation admits one OpenGUI task per DSH session and separate tabs on non-conflicting phone sets; the managed browser remains globally serial. This source behavior is not a release claim. See more [use cases](./deepseek-harness-plugin/docs/use-cases.md) or download the [v0.1.13 release package](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13).

Good fits include:

Expand Down
2 changes: 1 addition & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ OpenGUI 正式支持 DSH `0.1.0-rc.7`、`0.1.0-rc.8`、`0.1.1-rc.1` 和 `0.1.1-r
@OpenGUI 打开设置并报告 Android 版本
```

插件可以直接为 DSH 增加手机与浏览器操作能力,不需要部署完整的 OpenGUI 后端。你还可以查看更多[使用场景](./deepseek-harness-plugin/docs/use-cases.zh.md),或下载 [v0.1.13 安装包](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13)。
插件可以直接为 DSH 增加手机与浏览器操作能力,不需要部署完整的 OpenGUI 后端。当前源码按 DSH Session 接纳根任务,允许不同 Tab 使用不冲突的手机集合;托管浏览器仍保持全局串行。这是源码行为说明,不代表已发布。你还可以查看更多[使用场景](./deepseek-harness-plugin/docs/use-cases.zh.md),或下载 [v0.1.13 安装包](https://github.com/Core-Mate/OpenGUI/releases/tag/dsh-coremate-mobile-v0.1.13)。

适合的使用场景包括:

Expand Down
4 changes: 2 additions & 2 deletions deepseek-harness-plugin/README.i18n.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Bilingual-pair consistency record. Both languages carry equal authority.
README.md: 1e6181df4e9a161e6eb20e05f4d3425456b83c01
README.zh.md: 857edcf990cda065eb3dccad83abc883418d6d9d
README.md: 9c72c82b532e590e6dc0b650e59da32759e40ff9
README.zh.md: 5f651c223e3e192fcabc619e46e5cd0842b9ad67
10 changes: 5 additions & 5 deletions deepseek-harness-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,25 +208,25 @@ Keep the phone unlocked and authorized for USB debugging, then send:
/opengui Open Settings and report the Android version
```

The native **OpenGUI** tab owns phone selection and status. One authorized phone is selected automatically. With multiple phones, check any subset in that workbench before sending `/opengui` or `@OpenGUI`. A non-empty task resolves the current-model choice or dedicated fallback setup before it waits for a phone, but it sends no provider request until the selected-device snapshot is ready. Device selection remains editable while waiting, then locks after detection until the whole batch finishes.
The native **OpenGUI** tab owns phone selection and status for its DSH session. One authorized phone is selected automatically. With multiple phones, check any subset in that workbench before sending `/opengui` or `@OpenGUI`. A non-empty task resolves the current-model choice or dedicated fallback setup before it waits for a phone, but it sends no provider request until the selected-device snapshot is ready. OpenGUI acquires the entire selected set atomically when execution starts; if another session owns any selected phone, the task reports that phone as busy without retaining a partial lease. Selection remains editable while waiting, then locks only for its owning session until the whole batch finishes.

The native **OpenGUI** tab is a full-width device wall. It renders every visible phone in Host order and appends one connection guide, without reserving empty slots. A connected phone shows an uncropped JPEG preview immediately while OpenGUI prepares its low-latency H.264 view in the background, then switches automatically. Unsupported browsers and stream failures keep the screenshot preview available with a retry action. Each phone can also be opened in an optional independent mirror window.

After startup, the plugin checks the public `Core-Mate/OpenGUI` GitHub Releases list in the background, at most once every six hours. It ignores Android APK, draft, and prerelease entries and considers only stable `dsh-coremate-mobile-v*` releases with a version-matched `.tgz` and `.sha256`. The OpenGUI tab offers **Update** only for a newer verified package. Installation is blocked while an OpenGUI task is active, keeps the current version intact on failure, and takes effect after Harness restarts.

Selecting `@OpenGUI` opens the native input menu with free-form, QA, operations, and game-assistant choices. A scene only fills the composer and never submits automatically. A non-empty OpenGUI submission releases the composer immediately while the task continues in its owner session. Starting another DSH session opens a genuinely blank conversation; the original task keeps running there, with a compact link back from the new session.
Selecting `@OpenGUI` opens the native input menu with free-form, QA, operations, and game-assistant choices. A scene only fills the composer and never submits automatically. A non-empty OpenGUI submission releases the composer immediately while the task continues in its owner session. Switching, hiding, or unmounting a conversation view does not stop that task. Each tab renders only its own OpenGUI status and errors; deleting the owning session cancels its task and clears its device preference.

`/opengui` starts a restricted routing child that can call only `phone_agent`, `browser_agent`, or both sequentially when the task truly spans both targets. Phone work still creates one fixed-device child per selected phone. Only one OpenGUI task runs at a time, including tasks started through the legacy `/coremate` alias.
`/opengui` starts a restricted routing child that can call only `phone_agent`, `browser_agent`, or both sequentially when the task truly spans both targets. Phone work still creates one fixed-device child per selected phone. Each DSH session admits only one root OpenGUI task, including tasks started through the legacy `/coremate` alias; different sessions may run concurrently when their phone leases do not conflict. Task stop and cleanup use the exact session, task, and attempt identity, so a delayed request from an older task cannot affect its replacement.

While it runs, the outer `phone_agent` / `browser_agent` card streams nested `phone_control` / `browser_control` calls and their visible results. Hidden reasoning, system prompts, and model configuration are not projected into the parent conversation.

While an OpenGUI task is active, a square **Stop OpenGUI operation** button appears at the right side of the composer. It cancels routing, phone or browser children, in-flight ADB work, browser downloads, and browser operations. Manually opened mirrors remain independent.
While the current session has an active OpenGUI task, a square **Stop OpenGUI operation** button appears at the right side of its composer. It cancels only that exact task, including routing, phone or browser children, in-flight ADB work, browser downloads, and browser operations. Tasks in other tabs and manually opened mirrors remain independent.

After a successful direct OpenGUI task, one turn-tail card may show 2–3 validated follow-up prompts. Clicking one only fills an `@OpenGUI` draft. The same card links to the [use-case guide](docs/use-cases.md) and OpenGUI GitHub. Failed, cancelled, empty, configuration-only, and ordinary tasks do not show it.

## On-demand browser control

The plugin checks for its managed Chromium only when a task actually calls `browser_agent`. If absent, the **OpenGUI** tab shows the pinned version, download size, approval actions, and installation progress; Chat only directs the user to that tab. After approval, the same task downloads the archive, verifies its SHA-256, installs it atomically, and opens a visible browser. Declining or pressing Stop ends that task. Later tasks reuse `$DSH_HOME/cache/coremate-mobile/browser` and its isolated profile.
The plugin checks for its managed Chromium only when a task actually calls `browser_agent`. If absent, only the owning session's **OpenGUI** tab shows the pinned version, download size, approval actions, and installation progress; Chat only directs that session to the tab. After approval, the same task downloads the archive, verifies its SHA-256, installs it atomically, and opens a visible browser. Declining or pressing Stop ends that exact task. Later tasks reuse `$DSH_HOME/cache/coremate-mobile/browser` and its isolated profile. The managed browser remains one global, precisely owned resource: a concurrent browser task reports busy in its own session, while unrelated phone tasks may continue.

`browser_control` is intentionally limited to HTTP/HTTPS navigation, observation, clicking, Unicode text insertion, selected keys, scrolling, back, reload, and bounded waits. It does not expose arbitrary CDP or JavaScript execution. The binary lifecycle and control implementation are wholly contained in this plugin.

Expand Down
10 changes: 5 additions & 5 deletions deepseek-harness-plugin/README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,25 +210,25 @@ Usage: /opengui <task>
/opengui 打开设置并报告 Android 版本
```

手机选择和状态统一放在原生 **OpenGUI** Tab。只有一台已授权手机时会自动选中;有多台时,可在工作台中勾选任意一台或多台后再发送 `/opengui` 或 `@OpenGUI`。非空任务会先确定当前模型或完成专用回退配置,再等待手机;在选定设备快照就绪前不会向 provider 发起模型请求。等待期间仍可连接、选择和投屏,检测成功后才锁定本次设备快照,直到整批结束。
每个 DSH 会话的手机选择和状态统一放在其原生 **OpenGUI** Tab。只有一台已授权手机时会自动选中;有多台时,可在工作台中勾选任意一台或多台后再发送 `/opengui` 或 `@OpenGUI`。非空任务会先确定当前模型或完成专用回退配置,再等待手机;在选定设备快照就绪前不会向 provider 发起模型请求。真正开始执行时会原子获取全部已选手机;若其中任意一台已被其他会话占用,本次任务会明确报忙且不保留部分租约。等待期间仍可连接、选择和投屏,检测成功后只锁定所属会话的设备选择,直到整批结束。

原生 **OpenGUI** Tab 是全宽设备照片墙。界面按 Host 顺序展示全部可见手机,并在末尾追加唯一的连接说明卡,不会为凑列数预留空卡。新检测到的手机先立即展示完整截图,后台自动准备低延迟实时画面,完成后无缝切换;普通用户不需要理解或批准底层组件。浏览器不支持或视频流失败时会继续显示截图,并提供重试。每台手机还可按需打开独立投屏窗口。

插件启动后会在后台检查公开的 `Core-Mate/OpenGUI` GitHub Releases 列表,并将频率限制为每 6 小时最多一次。它会忽略 Android APK、草稿和预发布条目,只识别带版本匹配 `.tgz` 与 `.sha256` 的稳定 `dsh-coremate-mobile-v*` Release。只有发现更高版本时,OpenGUI Tab 才显示**更新**按钮;OpenGUI 任务运行期间禁止安装,失败时保留当前版本,成功后重启 Harness 生效。

选中 `@OpenGUI` 后,原生输入菜单会显示自由描述、QA、运营和手游四个选项;场景只填入草稿,不会自动发送。提交非空 OpenGUI 任务后,输入框会立即恢复,任务继续写入所属会话。此时新建 DSH 会话会进入真正的空白对话,原任务仍在原会话运行,新会话中会提供紧凑的返回入口
选中 `@OpenGUI` 后,原生输入菜单会显示自由描述、QA、运营和手游四个选项;场景只填入草稿,不会自动发送。提交非空 OpenGUI 任务后,输入框会立即恢复,任务继续写入所属会话。切换、隐藏或卸载会话视图不会停止任务;每个 Tab 只显示自己的 OpenGUI 状态和错误。只有真正删除所属 Session 才会取消其任务并清理设备偏好

`/opengui` 会启动一个受限的任务路由子任务,只能选择 `phone_agent`、`browser_agent`,或在确有必要时顺序调用两者。手机任务仍为每台已选手机创建一个绑定固定设备的子任务;普通对话也可以直接使用两个委派工具。同一时间只允许一个 OpenGUI 任务,包括通过旧 `/coremate` 别名启动的任务。
`/opengui` 会启动一个受限的任务路由子任务,只能选择 `phone_agent`、`browser_agent`,或在确有必要时顺序调用两者。手机任务仍为每台已选手机创建一个绑定固定设备的子任务;普通对话也可以直接使用两个委派工具。同一 DSH Session 同时只允许一个根 OpenGUI 任务,包括通过旧 `/coremate` 别名启动的任务;设备租约不冲突时,不同 Session 可以并行。停止和清理会精确校验 Session、任务与 attempt 身份,旧任务的延迟请求不会影响替代它的新任务

执行期间,外层 `phone_agent` / `browser_agent` 卡片会实时展示内部 `phone_control` / `browser_control` 调用及其可见结果。内部推理、系统提示词和模型配置不会投影到父对话。

OpenGUI 任务运行时,输入框右侧会出现方形“停止 OpenGUI 操作”按钮。点击会取消路由、手机或浏览器子任务,以及正在运行的 ADB、浏览器下载和浏览器操作;手动打开的投屏窗口保持独立
当前 Session 有 OpenGUI 任务运行时,其输入框右侧会出现方形“停止 OpenGUI 操作”按钮。点击只会取消该精确任务,包括路由、手机或浏览器子任务,以及正在运行的 ADB、浏览器下载和浏览器操作;其他 Tab 的任务与手动打开的投屏窗口保持独立

成功的直接 OpenGUI 任务会在对应 Turn 尾部最多显示一次组合卡片,其中可包含 2–3 个经过校验的动态追问。点击建议只会填入 `@OpenGUI` 草稿。卡片同时提供[用例页](docs/use-cases.zh.md)与 OpenGUI GitHub 入口;失败、取消、空命令、仅配置和普通任务均不展示。

## 按需浏览器控制

只有任务实际调用 `browser_agent` 时,插件才检查托管 Chromium。若尚未安装,**OpenGUI** Tab 会显示固定版本、下载大小、确认操作和安装进度,Chat 只提示前往该 Tab;确认后当前任务继续下载、校验 SHA-256、原子解压并打开可见浏览器。取消安装或点击停止按钮会终止本次任务。后续任务复用 `$DSH_HOME/cache/coremate-mobile/browser` 中的缓存和独立浏览器配置目录。
只有任务实际调用 `browser_agent` 时,插件才检查托管 Chromium。若尚未安装,只有所属 Session 的 **OpenGUI** Tab 会显示固定版本、下载大小、确认操作和安装进度,Chat 也只在该 Session 提示前往对应 Tab;确认后当前任务继续下载、校验 SHA-256、原子解压并打开可见浏览器。取消安装或点击停止按钮会终止该精确任务。后续任务复用 `$DSH_HOME/cache/coremate-mobile/browser` 中的缓存和独立浏览器配置目录。托管浏览器仍是全局单实例并带精确 owner:并发浏览器任务会在自己的 Session 明确报忙,但不影响其他独立手机任务继续执行

浏览器工具只允许 HTTP/HTTPS 导航,以及观察、点击、Unicode 文本输入、有限按键、滚动、后退、刷新和等待。中文通过 CDP 直接写入当前焦点字段。浏览器二进制、生命周期和控制代码均由插件负责,不会查找或调用 CoreMateDesktop2 或系统 Chrome。

Expand Down
Loading
Loading