dsh-plugin-lcu 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +23 -19
- package/cordis.patch.yml +1 -0
- package/docs/README.zh.md +17 -14
- package/lib/bridge.js +72 -0
- package/lib/bridge.js.map +1 -0
- package/lib/connection.js +3 -3
- package/lib/index.js +9 -8
- package/lib/index.js.map +1 -1
- package/lib/ptc.js +372 -0
- package/lib/ptc.js.map +1 -0
- package/lib/tool.js +5 -8
- package/lib/tool.js.map +1 -1
- package/lib/types/bridge.d.ts +38 -0
- package/lib/types/bridge.d.ts.map +1 -0
- package/lib/types/connection.d.ts +3 -3
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/ptc.d.ts +85 -0
- package/lib/types/ptc.d.ts.map +1 -0
- package/lib/types/tool.d.ts +18 -8
- package/lib/types/tool.d.ts.map +1 -1
- package/package.json +2 -2
- package/scripts/codex-baseline.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
PTC Computer Use.
|
|
6
|
+
|
|
7
|
+
**The model interface is now `cua`, not `js`.** PTC programs get a
|
|
8
|
+
`connectCua` prelude and call `tools.cua` underneath. App, browser and tab
|
|
9
|
+
objects come back as opaque handles, so `cua.getApp`, `cua.getTab`,
|
|
10
|
+
`cua.createBrowserTab` and handle methods all run in one `run_code` program.
|
|
11
|
+
`cua.stopApp(app?)` replaces the old `computer_use_stop` tool, and
|
|
12
|
+
`cua.documentation()` returns the runtime API manual.
|
|
13
|
+
|
|
14
|
+
**Both generated presets use PTC.** `heavy` no longer swaps in
|
|
15
|
+
`tool-executor-native`; the generator emits `tool-executor-ptc` for both
|
|
16
|
+
`daily` and `heavy`, and the profile's LCU allowlist covers both.
|
|
17
|
+
|
|
18
|
+
The underlying ChatGPT runtime, Chrome surface, approvals, `allowedOrigins`,
|
|
19
|
+
turn cleanup and image attachment pipeline are unchanged.
|
|
20
|
+
|
|
21
|
+
|
|
3
22
|
## 0.3.8
|
|
4
23
|
|
|
5
24
|
The Codex upgrade script works across DSH Desktop releases again, and its
|
package/README.md
CHANGED
|
@@ -33,17 +33,21 @@ downloaded, rewritten or authenticated.
|
|
|
33
33
|
|
|
34
34
|
| Tool | What it does |
|
|
35
35
|
|---|---|
|
|
36
|
-
| `
|
|
37
|
-
| `js_reset` | Discard the persistent JavaScript session and start a fresh runtime. |
|
|
36
|
+
| `cua` | The PTC bridge to the desktop/browser runtime. `cua.getState`, `cua.getApp`, `cua.getBrowser`, `cua.getTab` and `cua.createBrowserTab` return values or handles; handle methods (screenshots, clicks, typing, AX reads) run through the same binding. |
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
`
|
|
38
|
+
The plugin adds the bridge, not a native `js` tool. PTC programs initialize it with
|
|
39
|
+
`connectCua` and use the runtime exactly like the old `cua` object:
|
|
41
40
|
|
|
42
|
-
|
|
41
|
+
```ts
|
|
42
|
+
var { connectCua } = await import('<profile>/node_modules/dsh-plugin-lcu/lib/bridge.js')
|
|
43
|
+
var cua = connectCua((request) => tools.cua(request), text => console.log(text))
|
|
44
|
+
const state = await cua.getState()
|
|
45
|
+
const app = await cua.getApp('Finder')
|
|
46
|
+
```
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
`cua.stopApp(app?)` lists or releases held applications; `cua.reset()` clears the
|
|
49
|
+
runtime. The old host-only `turn_ended` / `js_add_node_module_dir` tools remain
|
|
50
|
+
internal and are never shown to the model.
|
|
47
51
|
|
|
48
52
|
Screenshots arrive as durable images through DSH's attachment store, so a model route that declares
|
|
49
53
|
image input can actually look at the screen.
|
|
@@ -91,7 +95,7 @@ This writes a marked block into that profile's `cordis.patch.yml` containing two
|
|
|
91
95
|
| Preset | Base | Adds |
|
|
92
96
|
|---|---|---|
|
|
93
97
|
| `daily` | the shipped `ptc` preset | a Codex delegation provider of its own |
|
|
94
|
-
| `heavy` | the same, with `tool-
|
|
98
|
+
| `heavy` | the same, with `tool-executor-ptc` | everything above, plus the PTC `cua` Computer/Browser bridge |
|
|
95
99
|
|
|
96
100
|
Re-run it after a DSH upgrade so the copies keep up. `--daily-only` emits just `daily`, `--dry-run`
|
|
97
101
|
prints without writing, and `--out FILE` writes somewhere else. The official Codex tool is no longer
|
|
@@ -100,10 +104,9 @@ a separate provider registers its own same-named tool per Agent for the generate
|
|
|
100
104
|
the global one. Two registrations in one scope still collide, so nothing may enable a same-name
|
|
101
105
|
`tool-subagent` row beside that provider.
|
|
102
106
|
|
|
103
|
-
>
|
|
104
|
-
>
|
|
105
|
-
>
|
|
106
|
-
> JavaScript program. `native` keeps `js` directly callable and gives up PTC for that preset.
|
|
107
|
+
> Both presets use PTC. The plugin's PTC bridge turns the runtime's `cua` object into a
|
|
108
|
+
> `tools.cua` binding, so the model writes one `run_code` program instead of nesting a
|
|
109
|
+
> `js` string inside another JavaScript program.
|
|
107
110
|
|
|
108
111
|
### 3. Configure which modes get the capability
|
|
109
112
|
|
|
@@ -115,15 +118,16 @@ The plugin is one root row with a `presets` allowlist. Edit the installed `cordi
|
|
|
115
118
|
name: 'dsh-plugin-lcu'
|
|
116
119
|
config:
|
|
117
120
|
presets:
|
|
121
|
+
- daily
|
|
118
122
|
- heavy
|
|
119
123
|
```
|
|
120
124
|
|
|
121
125
|
### 4. Restart, then make one call
|
|
122
126
|
|
|
123
127
|
Restart the harness — plugin **code and configuration changes are not hot-reloaded**. Then start a
|
|
124
|
-
task in
|
|
128
|
+
task in either mode and ask it to do something harmless:
|
|
125
129
|
|
|
126
|
-
> Use the `
|
|
130
|
+
> Use the PTC `cua` bridge to run `await cua.getState();` and tell me which apps are running.
|
|
127
131
|
|
|
128
132
|
The first time an app is touched, the runtime asks for approval. See below.
|
|
129
133
|
|
|
@@ -185,7 +189,7 @@ Open Safari, go to example.com and read the page title.
|
|
|
185
189
|
| `command` | unset | An explicit executable that replaces the computed launch, for an application the built-in resolution cannot reach. It bypasses the runtime's own environment setup. |
|
|
186
190
|
| `chrome` | `false` | Enable the browser surface. |
|
|
187
191
|
| `audio` | `false` | Enable the runtime's computer-audio API. |
|
|
188
|
-
| `presets` | `["heavy"]` | Agent preset ids whose sessions get the
|
|
192
|
+
| `presets` | `["daily", "heavy"]` | Agent preset ids whose sessions get the PTC bridge. |
|
|
189
193
|
| `allowedOrigins` | `[]` | Exact HTTP(S) origins answered without asking. Invalid entries are dropped, never widened. |
|
|
190
194
|
| `allowedApps` | `[]` | Bundle identifiers computer use may use without asking. The application hosting the agent is refused even when it is listed here. |
|
|
191
195
|
| `sectionOrder` | `0` | Prompt section order for the injected runtime instructions. |
|
|
@@ -318,7 +322,7 @@ otherwise swallowed silently.
|
|
|
318
322
|
| `computer use is unavailable (…)` at load, or no tools | The application could not be resolved. The log names the reason and the path; check `app`. |
|
|
319
323
|
| `no userQuestions service -> cancel (fail closed)` | The approval surface is not mounted in this profile. |
|
|
320
324
|
| `refusing to approve the app hosting this agent` | Working as designed; ask for a different app. |
|
|
321
|
-
| The ChatGPT app still shows computer use on an app | Ask for `
|
|
325
|
+
| The ChatGPT app still shows computer use on an app | Ask for `cua.stopApp()`, or close the session — the connection owns the runtime process tree and releases it on the way out. |
|
|
322
326
|
| Chrome tabs never appear with `chrome: true` | The official extension is not enabled in that browser profile. Open `chrome://extensions`, enable it, and confirm it shows up in `cua.getState()`. |
|
|
323
327
|
| An application refuses every turn with "explicitly stopped by the user" | The host application's turn cleanup has not run. Check the log for a `turn cleanup` failure, and quit and relaunch the ChatGPT application to clear the state. |
|
|
324
328
|
|
|
@@ -362,10 +366,10 @@ usually wants both:
|
|
|
362
366
|
- **A delegated child cannot be asked for approval.** DSH only accepts a human answer for a live
|
|
363
367
|
runtime root, so a subagent's approval fails closed. Subagents can perform read-only work that
|
|
364
368
|
needs no approval; anything that needs one must be driven from the top-level session.
|
|
365
|
-
- **A per-application Stop is released by the turn that asked for it.** `
|
|
369
|
+
- **A per-application Stop is released by the turn that asked for it.** `cua.stopApp()` — and pressing
|
|
366
370
|
Esc on the host application's "using your computer" banner — ask the runtime to stop using one application
|
|
367
371
|
for the current turn. The plugin performs the host application's turn-ended cleanup through its own IPC, so
|
|
368
|
-
the next turn can use that application again, and `
|
|
372
|
+
the next turn can use that application again, and `cua.stopApp()` with no argument reports what is held.
|
|
369
373
|
If an application is still refused every turn, that cleanup failed and the log says so. **Ordinary use —
|
|
370
374
|
screenshots, clicks, typing, browser tabs — is unaffected**; the plugin's tool description says so, so a
|
|
371
375
|
model does not stop an application on its own initiative.
|
package/cordis.patch.yml
CHANGED
package/docs/README.zh.md
CHANGED
|
@@ -28,16 +28,18 @@
|
|
|
28
28
|
|
|
29
29
|
| 工具 | 作用 |
|
|
30
30
|
|---|---|
|
|
31
|
-
| `
|
|
32
|
-
| `js_reset` | 丢弃持久的 JavaScript 会话,重新起一个运行时。 |
|
|
31
|
+
| `cua` | 到桌面/浏览器运行时的 PTC bridge。`cua.getState`、`cua.getApp`、`cua.getBrowser`、`cua.getTab` 和 `cua.createBrowserTab` 返回值或 handle;handle 上的截图、点击、输入、AX 读取都走同一个 binding。 |
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
插件不再暴露 native `js` 工具。PTC 程序用 `connectCua` 初始化,然后按原来的对象 API 使用:
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
```ts
|
|
36
|
+
var { connectCua } = await import('<profile>/node_modules/dsh-plugin-lcu/lib/bridge.js')
|
|
37
|
+
var cua = connectCua((request) => tools.cua(request), text => console.log(text))
|
|
38
|
+
const state = await cua.getState()
|
|
39
|
+
const app = await cua.getApp('Finder')
|
|
40
|
+
```
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|---|---|
|
|
40
|
-
| `computer_use_stop` | 不带参数时列出运行时当前为本次会话持有的应用;带 `app`(其中一个 bundle id)时释放它。它清除宿主应用对**某一个**应用的"正在使用你的电脑"状态,而不结束会话。 |
|
|
42
|
+
`cua.stopApp(app?)` 列出或释放持有的应用;`cua.documentation()` 返回运行时 API 手册;`cua.reset()` 清除运行时。原来的宿主专用 `turn_ended` / `js_add_node_module_dir` 仍是内部工具,不展示给模型。
|
|
41
43
|
|
|
42
44
|
截图通过 DSH 的附件存储以持久图片返回,所以声明了图像输入的模型路由**真的能看见屏幕**。
|
|
43
45
|
|
|
@@ -79,11 +81,11 @@ node dsh-preset-generator/src/gen-presets.mjs --profile ~/.dsh/profiles/<profile
|
|
|
79
81
|
| preset | 基底 | 增加 |
|
|
80
82
|
|---|---|---|
|
|
81
83
|
| `daily` | 自带的 `ptc` preset | 一套自己的 Codex 委派 provider |
|
|
82
|
-
| `heavy` | 同上,且 `tool-
|
|
84
|
+
| `heavy` | 同上,且 `tool-executor-ptc` | 以上全部,且接入 PTC `cua` Computer/Browser bridge |
|
|
83
85
|
|
|
84
86
|
DSH 升级后重跑一次,让副本跟上。`--daily-only` 只生成 `daily`;`--dry-run` 只打印不写;`--out FILE` 写到别处。官方的 Codex 工具不再是 per-preset 行:从 DSH 0.2.1 起官方 bundle 提供的是**全局** `subagent_codex`,独立 provider 在这些生成的 preset 里按 Agent 注册同名工具,遮蔽全局那个。同一个 scope 内的两次注册仍会冲突,所以不能在这个 provider 之外再启用同名的 `tool-subagent` 行。
|
|
85
87
|
|
|
86
|
-
>
|
|
88
|
+
> 两个 preset 都使用 PTC。插件的 PTC bridge 把运行时的 `cua` 对象变成 `tools.cua` binding,模型写一个 `run_code` 程序即可,不需要把 `js` 字符串嵌进另一个 JavaScript 程序。
|
|
87
89
|
|
|
88
90
|
### 3. 配置哪些模式能用
|
|
89
91
|
|
|
@@ -94,14 +96,15 @@ DSH 升级后重跑一次,让副本跟上。`--daily-only` 只生成 `daily`
|
|
|
94
96
|
name: 'dsh-plugin-lcu'
|
|
95
97
|
config:
|
|
96
98
|
presets:
|
|
99
|
+
- daily
|
|
97
100
|
- heavy
|
|
98
101
|
```
|
|
99
102
|
|
|
100
103
|
### 4. 重启,然后做一次调用
|
|
101
104
|
|
|
102
|
-
重启 harness ——
|
|
105
|
+
重启 harness —— 插件**代码和配置都不热更新**。然后在任意一个已生成的模式里起一个任务,让它做点无害的事:
|
|
103
106
|
|
|
104
|
-
> 用 `
|
|
107
|
+
> 用 PTC `cua` bridge 运行 `await cua.getState();`,告诉我哪些应用在跑。
|
|
105
108
|
|
|
106
109
|
第一次触碰某个应用时,运行时会请求批准。见下文。
|
|
107
110
|
|
|
@@ -157,7 +160,7 @@ config:
|
|
|
157
160
|
| `command` | 未设 | 用一个显式可执行文件替换计算出的启动方式,用于内置解析够不到的应用。它会跳过运行时自己的环境设置。 |
|
|
158
161
|
| `chrome` | `false` | 打开浏览器面。 |
|
|
159
162
|
| `audio` | `false` | 打开运行时的 computer-audio API。 |
|
|
160
|
-
| `presets` | `["heavy"]` |
|
|
163
|
+
| `presets` | `["daily", "heavy"]` | 允许使用 PTC bridge 的 Agent preset id。 |
|
|
161
164
|
| `allowedOrigins` | `[]` | 免问的精确 HTTP(S) origin。非法条目会被丢弃,绝不放宽。 |
|
|
162
165
|
| `allowedApps` | `[]` | 免批准的 bundle identifier。**承载 agent 的应用即使被列进去也会被拒**。 |
|
|
163
166
|
| `sectionOrder` | `0` | 注入的运行时指令在 prompt 中的排序。 |
|
|
@@ -242,7 +245,7 @@ helper/sky-service.mjs 运行时的 Sky 服务:turn-ended 钩子 + 控制通
|
|
|
242
245
|
| 加载时报 `computer use is unavailable (…)`,或没有工具 | 应用解析失败。日志里有原因和路径;检查 `app`。 |
|
|
243
246
|
| `no userQuestions service -> cancel (fail closed)` | 这个 profile 里没挂载提问界面。 |
|
|
244
247
|
| `refusing to approve the app hosting this agent` | 按设计工作;换一个应用。 |
|
|
245
|
-
| ChatGPT 应用仍显示某应用正被 computer use 占用 | 让模型调 `
|
|
248
|
+
| ChatGPT 应用仍显示某应用正被 computer use 占用 | 让模型调 `cua.stopApp()`,或关掉会话 —— 连接拥有运行时进程树,退出时会释放。 |
|
|
246
249
|
| `chrome: true` 但 Chrome 标签页一直不出现 | 那个浏览器 profile 里没启用官方扩展。打开 `chrome://extensions` 启用它,并确认它出现在 `cua.getState()` 里。 |
|
|
247
250
|
| 某应用后续每个回合都报 "explicitly stopped by the user" | 宿主应用的回合清理没跑成。检查日志里的 `turn cleanup` 失败;退出并重启 ChatGPT 应用可清除该状态。 |
|
|
248
251
|
|
|
@@ -270,7 +273,7 @@ helper/sky-service.mjs 运行时的 Sky 服务:turn-ended 钩子 + 控制通
|
|
|
270
273
|
## 已知限制与未做的工作
|
|
271
274
|
|
|
272
275
|
- **被委派的子代理无法被询问批准。** DSH 只接受来自活跃 runtime root 的人的回答,所以子代理的批准会 fail closed。子代理可以做不需要批准的只读工作;需要批准的事必须从顶层会话驱动。
|
|
273
|
-
- **按应用的 Stop 会被"请求它的那个回合"释放。** `
|
|
276
|
+
- **按应用的 Stop 会被"请求它的那个回合"释放。** `cua.stopApp()`(以及在宿主应用的"正在使用你的电脑"横幅上按 Esc)会请求运行时**在当前回合内**停用某一个应用。插件通过应用自己的 IPC 执行宿主应用的 turn-ended 清理,所以**下一个回合可以重新使用那个应用**;不带参数的 `cua.stopApp()` 会报告当前持有哪些。如果某应用后续每个回合仍被拒绝,说明那次清理失败了,日志会写明。**常规使用 —— 截图、点击、输入、浏览器标签页 —— 不受影响**;插件的工具描述也这么写,所以模型不会自行去停用某个应用。
|
|
274
277
|
- **`js` 沙箱不能写文件。** 每一次写入都以 `EPERM` 失败,**包括临时目录**,所以截图无法从 `js` 里保存。图片改为以附件形式交给 harness,每张存下来的图都会在工具结果里带上它的宿主文件系统路径;把它复制进工作区是一行 `bash`(`install -m 644 '<path>' <target>` —— 存储对象的模式是 400)。插件在工具结果和注入的指令里都写了这两点。
|
|
275
278
|
- **macOS 权限属于 harness,不属于 OpenAI 助手。** macOS 把权限请求归给**负责进程**,而 harness 派生的一切都归给 harness 自己。所以屏幕录制和辅助功能必须给 **DeepSeek Harness** 打开;只给 ChatGPT 或 "Codex Computer Use" 是不够的,而且 macOS **不会自己弹窗**询问缺失的那些。
|
|
276
279
|
- **没有 Codex 账号时的浏览器面还没接。** 驱动页面靠桌面应用注册的 native messaging host。那台"没有 Codex 应用"的机器上需要的 relay(强制扩展的 agent-request header)还没有实现。
|
package/lib/bridge.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The program-facing side of the LCU PTC bridge.
|
|
3
|
+
*
|
|
4
|
+
* PTC programs run in the harness's own Node runtime, so they cannot reach the
|
|
5
|
+
* objects that live inside the ChatGPT application's CUA REPL directly. This
|
|
6
|
+
* module exposes those objects as a small proxy tree: every method call becomes
|
|
7
|
+
* one `tools.cua` binding call, and every object returned by the runtime becomes
|
|
8
|
+
* an opaque handle whose methods are routed back through the same binding.
|
|
9
|
+
*
|
|
10
|
+
* The file is imported from generated `run_code` programs, so it must stay
|
|
11
|
+
* dependency-free and run in any of the PTC execution modes.
|
|
12
|
+
*
|
|
13
|
+
* @module dsh-plugin-lcu/bridge
|
|
14
|
+
*/
|
|
15
|
+
const METHOD_NAME = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
16
|
+
/** Reserved names a model-controlled method string must never reach. */
|
|
17
|
+
const RESERVED_METHODS = new Set(['__proto__', 'prototype', 'constructor']);
|
|
18
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
19
|
+
/**
|
|
20
|
+
* Build the `cua` object used by PTC programs.
|
|
21
|
+
*
|
|
22
|
+
* @param call - the `tools.cua` binding supplied by the generated SDK.
|
|
23
|
+
* @param log - optional sink for runtime text; currently unused but kept so a
|
|
24
|
+
* caller can pass the same logger as the generic CUA bridge.
|
|
25
|
+
* @returns a proxy whose top-level and returned-object methods all route through
|
|
26
|
+
* `call`.
|
|
27
|
+
*/
|
|
28
|
+
export function connectCua(call, log) {
|
|
29
|
+
void log;
|
|
30
|
+
const invoke = async (target, method, args) => {
|
|
31
|
+
if (!METHOD_NAME.test(method) || RESERVED_METHODS.has(method)) {
|
|
32
|
+
throw new Error(`cua: invalid method name "${method}"`);
|
|
33
|
+
}
|
|
34
|
+
const request = {
|
|
35
|
+
method,
|
|
36
|
+
...(target === undefined ? {} : { target }),
|
|
37
|
+
...(args.length === 0 ? {} : { args }),
|
|
38
|
+
};
|
|
39
|
+
const result = await call(request);
|
|
40
|
+
return decode(result);
|
|
41
|
+
};
|
|
42
|
+
const makeHandle = (id) => new Proxy({}, {
|
|
43
|
+
get(_target, property) {
|
|
44
|
+
// A Proxy is otherwise awaitable if it exposes `then`; a handle must not
|
|
45
|
+
// be mistaken for a promise by `await cua.getApp(...)`.
|
|
46
|
+
if (property === 'then')
|
|
47
|
+
return undefined;
|
|
48
|
+
if (typeof property !== 'string' || !METHOD_NAME.test(property) || RESERVED_METHODS.has(property)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return (...args) => invoke(id, property, args);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const decode = (value) => {
|
|
55
|
+
if (Array.isArray(value))
|
|
56
|
+
return value.map(decode);
|
|
57
|
+
if (isRecord(value) && typeof value.__handle === 'string')
|
|
58
|
+
return makeHandle(value.__handle);
|
|
59
|
+
return value;
|
|
60
|
+
};
|
|
61
|
+
return new Proxy({}, {
|
|
62
|
+
get(_target, property) {
|
|
63
|
+
if (property === 'then')
|
|
64
|
+
return undefined;
|
|
65
|
+
if (typeof property !== 'string' || !METHOD_NAME.test(property) || RESERVED_METHODS.has(property)) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return (...args) => invoke(undefined, property, args);
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
|
package/lib/connection.js
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Contract taken from the runtime:
|
|
12
12
|
* - declare `capabilities.elicitation` and answer `elicitation/create`
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
13
|
+
* - `js` and `js_reset` remain the host transport; the PTC surface wraps them
|
|
14
|
+
* and never exposes them to the model
|
|
15
15
|
* - inject the server's `initialize.instructions` into model context
|
|
16
16
|
* - fail closed: an elicitation with no handler, or any unknown shape, cancels
|
|
17
17
|
* - approvals never time out; a pending approval freezes the call deadline
|
|
@@ -267,7 +267,7 @@ export class LcuConnection {
|
|
|
267
267
|
await this.#refreshTools(signal);
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
|
-
* Call one tool. `
|
|
270
|
+
* Call one tool. `js` and `js_reset` back the PTC bridge; the host-only
|
|
271
271
|
* tools are reachable here too because the lifecycle needs `turn_ended`.
|
|
272
272
|
*
|
|
273
273
|
* Requests carry no client-side deadline by default: a pause for a human
|
package/lib/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import { ManagedSession } from "./session.js";
|
|
|
22
22
|
import { AppError, generationOf, planLaunch, resolveApp } from "./app.js";
|
|
23
23
|
import { diag, describe } from "./diag.js";
|
|
24
24
|
import { isAgentHostApp } from "./host-guard.js";
|
|
25
|
-
import {
|
|
25
|
+
import { ptcBridgeInstructions, registerCuaTool } from "./ptc.js";
|
|
26
26
|
export const name = 'lcu';
|
|
27
27
|
export const inject = ['tools', 'systemPrompt'];
|
|
28
28
|
/**
|
|
@@ -35,14 +35,17 @@ export const inject = ['tools', 'systemPrompt'];
|
|
|
35
35
|
*/
|
|
36
36
|
const LCU_HOST_NOTE = [
|
|
37
37
|
'Host notes for this environment:',
|
|
38
|
-
'-
|
|
38
|
+
'- The Computer Use runtime is reached through the PTC `cua` object; there is no model-facing `js` tool.',
|
|
39
|
+
'- The runtime JavaScript sandbox cannot write files (writes fail with EPERM, including in the',
|
|
39
40
|
' temporary directory). Do not try to save with `fs`; it will not work.',
|
|
40
41
|
'- Screenshots are delivered to the harness as images, and every stored image reports its host',
|
|
41
42
|
' filesystem path in the tool result. To put a copy in the workspace use bash, setting the mode as',
|
|
42
43
|
" you copy: `install -m 644 '<path>' <target>`. A plain `cp` leaves the mode 400 object unreadable.",
|
|
43
|
-
'- Anything the
|
|
44
|
+
'- Anything the runtime cannot do — writing files, reading the host filesystem — is available through',
|
|
44
45
|
' the `bash` tool instead.',
|
|
45
46
|
].join('\n');
|
|
47
|
+
/** Absolute URL of the compiled PTC bridge, embedded in the generated SDK guidance. */
|
|
48
|
+
const BRIDGE_URL = new URL('./bridge.js', import.meta.url).href;
|
|
46
49
|
/** The section order of the injected instructions, after the tool guidance. */
|
|
47
50
|
const DEFAULT_SECTION_ORDER = 0;
|
|
48
51
|
/** The message shown for a browser-origin approval. */
|
|
@@ -53,7 +56,7 @@ function resolveSettings(config) {
|
|
|
53
56
|
command: config.command,
|
|
54
57
|
chrome: config.chrome === true,
|
|
55
58
|
audio: config.audio === true,
|
|
56
|
-
presets: config.presets ?? ['heavy'],
|
|
59
|
+
presets: config.presets ?? ['daily', 'heavy'],
|
|
57
60
|
allowedOrigins: normalizeOrigins(config.allowedOrigins ?? []),
|
|
58
61
|
allowedApps: normalizeApps(config.allowedApps),
|
|
59
62
|
sectionOrder: config.sectionOrder ?? DEFAULT_SECTION_ORDER,
|
|
@@ -272,7 +275,7 @@ export function apply(ctx, config) {
|
|
|
272
275
|
void connection.close();
|
|
273
276
|
});
|
|
274
277
|
try {
|
|
275
|
-
|
|
278
|
+
registerCuaTool(agent.ctx, connection, ctx, {
|
|
276
279
|
currentTurn: () => state.turnId,
|
|
277
280
|
beforeCall: async () => {
|
|
278
281
|
const pending = state.pendingCleanup;
|
|
@@ -296,9 +299,7 @@ export function apply(ctx, config) {
|
|
|
296
299
|
agent.ctx.systemPrompt.section({
|
|
297
300
|
name: 'lcu-instructions',
|
|
298
301
|
order: settings.sectionOrder,
|
|
299
|
-
text:
|
|
300
|
-
? LCU_HOST_NOTE
|
|
301
|
-
: `${first.instructions}\n\n${LCU_HOST_NOTE}`,
|
|
302
|
+
text: `${ptcBridgeInstructions(BRIDGE_URL)}\n\n${LCU_HOST_NOTE}`,
|
|
302
303
|
});
|
|
303
304
|
ctx.logger.info(`lcu: ${first.serverInfo.name ?? 'server'} attached for this session`);
|
|
304
305
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/ptc.js
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The PTC-facing LCU surface.
|
|
3
|
+
*
|
|
4
|
+
* The ChatGPT application's CUA runtime is a JavaScript REPL (`js`). PTC
|
|
5
|
+
* programs cannot call that REPL's `cua` object directly, so this module exposes
|
|
6
|
+
* one ordinary tool, `cua`, whose binding is a small RPC: a program calls a
|
|
7
|
+
* method, the host runs it inside the persistent CUA REPL, and app/tab/window
|
|
8
|
+
* objects come back as opaque handles.
|
|
9
|
+
*
|
|
10
|
+
* The model never sees the `js` tool. It sees the generated SDK's `tools.cua`
|
|
11
|
+
* binding and the `connectCua` prelude in {@link ptcBridgeInstructions}.
|
|
12
|
+
*
|
|
13
|
+
* @module dsh-plugin-lcu/ptc
|
|
14
|
+
*/
|
|
15
|
+
import { randomUUID } from 'node:crypto';
|
|
16
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
17
|
+
import { LcuError } from "./connection.js";
|
|
18
|
+
import { extractText, prepareProjection } from "./tool.js";
|
|
19
|
+
/** The single model-facing tool of the PTC surface. */
|
|
20
|
+
export const CUA_TOOL_NAME = 'cua';
|
|
21
|
+
/** Marker printed by the in-REPL bridge so the host can find structured output. */
|
|
22
|
+
export const CUA_RESULT_MARKER = '__DSH_LCU_RESULT__';
|
|
23
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
24
|
+
/** Method names the host may route; keeps model input out of the prototype chain. */
|
|
25
|
+
const METHOD_NAME = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
26
|
+
const RESERVED_METHODS = new Set(['__proto__', 'prototype', 'constructor']);
|
|
27
|
+
/**
|
|
28
|
+
* The in-REPL half of the bridge.
|
|
29
|
+
*
|
|
30
|
+
* It is deliberately installed with `??=` so a persistent PTC runtime (or a
|
|
31
|
+
* persistent CUA REPL) can call it many times without replacing live handles.
|
|
32
|
+
* Values that expose methods are remembered and returned as opaque handles;
|
|
33
|
+
* plain JSON is passed through unchanged.
|
|
34
|
+
*/
|
|
35
|
+
export const CUA_PRELUDE = String.raw `
|
|
36
|
+
globalThis.__dshLcu ??= (() => {
|
|
37
|
+
const objects = new Map()
|
|
38
|
+
const results = new Map()
|
|
39
|
+
let next = 1
|
|
40
|
+
const methodName = /^[A-Za-z_$][A-Za-z0-9_$]*$/
|
|
41
|
+
const reserved = new Set(['__proto__', 'prototype', 'constructor'])
|
|
42
|
+
const remember = (value) => {
|
|
43
|
+
const id = 'h' + String(next++)
|
|
44
|
+
objects.set(id, value)
|
|
45
|
+
return { __handle: id }
|
|
46
|
+
}
|
|
47
|
+
const hasMethods = (value) => {
|
|
48
|
+
let current = value
|
|
49
|
+
while (current !== null && current !== Object.prototype) {
|
|
50
|
+
for (const key of Object.getOwnPropertyNames(current)) {
|
|
51
|
+
if (key !== 'constructor' && typeof current[key] === 'function') return true
|
|
52
|
+
}
|
|
53
|
+
current = Object.getPrototypeOf(current)
|
|
54
|
+
}
|
|
55
|
+
return false
|
|
56
|
+
}
|
|
57
|
+
const encode = (value, seen) => {
|
|
58
|
+
if (value === undefined) return null
|
|
59
|
+
if (typeof value === 'bigint') return String(value)
|
|
60
|
+
if (value instanceof String) return String(value)
|
|
61
|
+
if (value instanceof Number) return Number(value)
|
|
62
|
+
if (value instanceof Boolean) return Boolean(value)
|
|
63
|
+
if (value instanceof Uint8Array) return { __bytes: value.length }
|
|
64
|
+
if (value === null || typeof value !== 'object') return value
|
|
65
|
+
if (Array.isArray(value)) return value.map((item) => encode(item, seen))
|
|
66
|
+
if (value instanceof Date) return value.toISOString()
|
|
67
|
+
if (seen.has(value)) return '[circular]'
|
|
68
|
+
seen.add(value)
|
|
69
|
+
if (hasMethods(value)) return remember(value)
|
|
70
|
+
const keys = Object.keys(value)
|
|
71
|
+
const out = {}
|
|
72
|
+
for (const key of keys) out[key] = encode(value[key], seen)
|
|
73
|
+
return out
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
objects,
|
|
77
|
+
results,
|
|
78
|
+
encode,
|
|
79
|
+
async invoke(target, method, args) {
|
|
80
|
+
if (typeof method !== 'string' || !methodName.test(method) || reserved.has(method)) {
|
|
81
|
+
throw new Error('cua: invalid method')
|
|
82
|
+
}
|
|
83
|
+
const receiver = target == null ? cua : objects.get(target)
|
|
84
|
+
if (receiver == null) throw new Error('cua: unknown handle')
|
|
85
|
+
const fn = receiver[method]
|
|
86
|
+
if (typeof fn !== 'function') throw new Error('cua: unknown method ' + method)
|
|
87
|
+
const value = await fn.apply(receiver, Array.isArray(args) ? args : [])
|
|
88
|
+
return encode(value, new WeakSet())
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
})()
|
|
92
|
+
`;
|
|
93
|
+
/**
|
|
94
|
+
* Validate the model's arguments.
|
|
95
|
+
*
|
|
96
|
+
* The tool is intentionally generic; the method name and positional arguments
|
|
97
|
+
* are checked here so the in-REPL bridge never receives a non-string method or
|
|
98
|
+
* a non-array argument list.
|
|
99
|
+
*
|
|
100
|
+
* @param value - parsed tool arguments.
|
|
101
|
+
* @returns the normalized request.
|
|
102
|
+
* @throws {Error} when the request shape is not usable.
|
|
103
|
+
*/
|
|
104
|
+
export function readCuaRequest(value) {
|
|
105
|
+
if (!isRecord(value))
|
|
106
|
+
throw new Error('cua: expected an object');
|
|
107
|
+
const method = value.method;
|
|
108
|
+
if (typeof method !== 'string' || method.length === 0) {
|
|
109
|
+
throw new Error('cua: method must be a non-empty string');
|
|
110
|
+
}
|
|
111
|
+
if (!METHOD_NAME.test(method) || RESERVED_METHODS.has(method)) {
|
|
112
|
+
throw new Error(`cua: invalid method name "${method}"`);
|
|
113
|
+
}
|
|
114
|
+
const target = typeof value.target === 'string' && value.target !== '' ? value.target : undefined;
|
|
115
|
+
const args = value.args === undefined ? [] : value.args;
|
|
116
|
+
if (!Array.isArray(args))
|
|
117
|
+
throw new Error('cua: args must be an array when present');
|
|
118
|
+
return {
|
|
119
|
+
...(target === undefined ? {} : { target }),
|
|
120
|
+
method,
|
|
121
|
+
args,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Execute one method against the persistent CUA REPL.
|
|
126
|
+
*
|
|
127
|
+
* @param connection - the Agent's LCU connection.
|
|
128
|
+
* @param request - the validated method call.
|
|
129
|
+
* @param options - host hooks.
|
|
130
|
+
* @param exec - the current DSH tool execution.
|
|
131
|
+
* @returns the method's structured result.
|
|
132
|
+
*/
|
|
133
|
+
async function invokeCua(connection, request, options, exec) {
|
|
134
|
+
const turn = options.currentTurn?.();
|
|
135
|
+
const token = `r-${randomUUID()}`;
|
|
136
|
+
const subCall = (suffix) => ({
|
|
137
|
+
signal: exec.signal,
|
|
138
|
+
...(turn === undefined ? {} : { turnId: turn }),
|
|
139
|
+
...(exec.callId === undefined || exec.callId === '' ? {} : { callId: `${exec.callId}:cua:${suffix}` }),
|
|
140
|
+
});
|
|
141
|
+
const firstCode = [
|
|
142
|
+
CUA_PRELUDE,
|
|
143
|
+
'{',
|
|
144
|
+
' try {',
|
|
145
|
+
` const receiver = ${request.target === undefined ? 'cua' : `globalThis.__dshLcu.objects.get(${JSON.stringify(request.target)})`}`,
|
|
146
|
+
` if (receiver == null) throw new Error('cua: unknown handle')`,
|
|
147
|
+
` const fn = receiver[${JSON.stringify(request.method)}]`,
|
|
148
|
+
` if (typeof fn !== 'function') throw new Error(${JSON.stringify(`cua: unknown method ${request.method}`)})`,
|
|
149
|
+
` const value = await fn.apply(receiver, ${JSON.stringify(request.args)})`,
|
|
150
|
+
` globalThis.__dshLcu.results.set(${JSON.stringify(token)}, { ok: true, value: globalThis.__dshLcu.encode(value, new WeakSet()) })`,
|
|
151
|
+
' } catch (error) {',
|
|
152
|
+
` globalThis.__dshLcu.results.set(${JSON.stringify(token)}, { ok: false, error: String(error && error.message ? error.message : error) })`,
|
|
153
|
+
' }',
|
|
154
|
+
'}',
|
|
155
|
+
].join('\n');
|
|
156
|
+
const first = await connection.callTool('js', { code: firstCode }, subCall('1'));
|
|
157
|
+
const firstText = extractText(first.content, 'js');
|
|
158
|
+
// The runtime's first call also returns its API manual and auto-emits the
|
|
159
|
+
// initial UI state. A large AX/screenshot result can push a trailing marker
|
|
160
|
+
// past that output budget, so the method result is stored in the REPL and
|
|
161
|
+
// fetched by a second, tiny call. The first call's content is retained for its
|
|
162
|
+
// images and attachment projection.
|
|
163
|
+
const secondCode = [
|
|
164
|
+
'{',
|
|
165
|
+
` const result = globalThis.__dshLcu && globalThis.__dshLcu.results.get(${JSON.stringify(token)})`,
|
|
166
|
+
` if (globalThis.__dshLcu) globalThis.__dshLcu.results.delete(${JSON.stringify(token)})`,
|
|
167
|
+
` console.log(${JSON.stringify(CUA_RESULT_MARKER)} + JSON.stringify(result ?? { ok: false, error: 'missing bridge result' }))`,
|
|
168
|
+
'}',
|
|
169
|
+
].join('\n');
|
|
170
|
+
const second = await connection.callTool('js', { code: secondCode }, subCall('2'));
|
|
171
|
+
const text = extractText(second.content, 'js');
|
|
172
|
+
const at = text.lastIndexOf(CUA_RESULT_MARKER);
|
|
173
|
+
if (at < 0) {
|
|
174
|
+
throw new LcuError('tools/call', `cua ${request.method}: the runtime returned no bridge result (${(first.isError ? firstText : text).slice(0, 500)})`);
|
|
175
|
+
}
|
|
176
|
+
const raw = text.slice(at + CUA_RESULT_MARKER.length).trim();
|
|
177
|
+
let payload;
|
|
178
|
+
try {
|
|
179
|
+
payload = JSON.parse(raw);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
throw new LcuError('tools/call', `cua ${request.method}: the runtime returned invalid bridge output`);
|
|
183
|
+
}
|
|
184
|
+
if (!isRecord(payload) || payload.ok !== true) {
|
|
185
|
+
const reason = isRecord(payload) && typeof payload.error === 'string' ? payload.error : 'unknown runtime error';
|
|
186
|
+
throw new Error(`cua ${request.method}: ${reason}`);
|
|
187
|
+
}
|
|
188
|
+
return { value: payload.value, content: first.isError ? [] : first.content };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The per-application Stop, exposed as `cua.stopApp(...)`.
|
|
192
|
+
*
|
|
193
|
+
* This is the PTC equivalent of the old `computer_use_stop` tool. The control
|
|
194
|
+
* channel is still the only authority; the PTC surface only changes where the
|
|
195
|
+
* method is called from.
|
|
196
|
+
*
|
|
197
|
+
* @param connection - the Agent's LCU connection.
|
|
198
|
+
* @param options - host hooks, including the active turn.
|
|
199
|
+
* @param args - `[]` to list, or `[bundleIdentifier]` to stop one application.
|
|
200
|
+
* @returns the held applications and, when requested, the stopped identifier.
|
|
201
|
+
*/
|
|
202
|
+
async function stopApp(connection, options, args) {
|
|
203
|
+
if (!connection.hasHostControl) {
|
|
204
|
+
throw new Error('the per-application Stop is unavailable: nothing in this configuration serves the runtime control channel');
|
|
205
|
+
}
|
|
206
|
+
const turn = options.currentTurn?.();
|
|
207
|
+
if (turn === undefined)
|
|
208
|
+
throw new Error('no active turn: computer use is released between turns');
|
|
209
|
+
const sessionId = connection.sessionId;
|
|
210
|
+
if (sessionId === undefined)
|
|
211
|
+
throw new Error('this runtime is not bound to a session');
|
|
212
|
+
const requested = typeof args[0] === 'string' && args[0] !== '' ? args[0] : undefined;
|
|
213
|
+
const activeApplications = await connection.controlStatus(sessionId, turn);
|
|
214
|
+
if (requested === undefined)
|
|
215
|
+
return { activeApplications };
|
|
216
|
+
const target = activeApplications.find((app) => app.bundleIdentifier === requested)
|
|
217
|
+
?? activeApplications.find((app) => app.name === requested);
|
|
218
|
+
if (target === undefined) {
|
|
219
|
+
throw new Error(`computer use is not holding "${requested}"; held: `
|
|
220
|
+
+ (activeApplications.map((app) => app.bundleIdentifier).join(', ') || 'nothing'));
|
|
221
|
+
}
|
|
222
|
+
await connection.controlStop(sessionId, turn, target.bundleIdentifier);
|
|
223
|
+
return { activeApplications, stopped: target.bundleIdentifier };
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Build the one model-facing PTC tool.
|
|
227
|
+
*
|
|
228
|
+
* @param connection - the Agent's LCU connection.
|
|
229
|
+
* @param ctx - the plugin context, kept for the screenshot/attachment projection.
|
|
230
|
+
* @param options - host hooks.
|
|
231
|
+
* @returns a registrable tool definition.
|
|
232
|
+
*/
|
|
233
|
+
export function createCuaTool(connection, ctx, options = {}) {
|
|
234
|
+
const projections = new WeakMap();
|
|
235
|
+
return {
|
|
236
|
+
name: CUA_TOOL_NAME,
|
|
237
|
+
description: 'Call the persistent Computer Use runtime. Use `method` for the runtime method and `args` for its '
|
|
238
|
+
+ 'positional arguments; `target` is an opaque handle returned by a previous call. The PTC prelude '
|
|
239
|
+
+ 'wraps this binding as `cua`, whose app, browser and tab handles expose the same method tree. '
|
|
240
|
+
+ 'Call `cua.getState()` first when the available apps, browsers or tabs are unknown.',
|
|
241
|
+
parameters: {
|
|
242
|
+
type: 'object',
|
|
243
|
+
properties: {
|
|
244
|
+
target: {
|
|
245
|
+
type: 'string',
|
|
246
|
+
description: 'Opaque handle from a previous call; omit for top-level cua methods.',
|
|
247
|
+
},
|
|
248
|
+
method: {
|
|
249
|
+
type: 'string',
|
|
250
|
+
description: 'Runtime method name, such as getState, getApp, getTab, or a method on a handle.',
|
|
251
|
+
},
|
|
252
|
+
args: {
|
|
253
|
+
type: 'array',
|
|
254
|
+
items: {},
|
|
255
|
+
description: 'Positional arguments for the runtime method.',
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
required: ['method'],
|
|
259
|
+
additionalProperties: false,
|
|
260
|
+
},
|
|
261
|
+
output: {
|
|
262
|
+
schema: {},
|
|
263
|
+
render(_args, value) {
|
|
264
|
+
let text;
|
|
265
|
+
if (typeof value === 'string')
|
|
266
|
+
text = value;
|
|
267
|
+
else {
|
|
268
|
+
try {
|
|
269
|
+
text = JSON.stringify(value, null, 2) ?? String(value);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
text = String(value);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return [{ type: 'text', text }];
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
async execute(args, exec) {
|
|
279
|
+
await options.beforeCall?.();
|
|
280
|
+
const request = readCuaRequest(args);
|
|
281
|
+
if (request.method === 'stopApp')
|
|
282
|
+
return stopApp(connection, options, request.args);
|
|
283
|
+
if (request.method === 'documentation') {
|
|
284
|
+
const turn = options.currentTurn?.();
|
|
285
|
+
const result = await connection.callTool('js', { code: 'await cua.rewriteDocumentation()' }, {
|
|
286
|
+
signal: exec.signal,
|
|
287
|
+
...(turn === undefined ? {} : { turnId: turn }),
|
|
288
|
+
...(exec.callId === undefined || exec.callId === '' ? {} : { callId: exec.callId }),
|
|
289
|
+
});
|
|
290
|
+
const text = extractText(result.content, 'js');
|
|
291
|
+
if (result.isError)
|
|
292
|
+
throw new LcuError('tools/call', text);
|
|
293
|
+
return text;
|
|
294
|
+
}
|
|
295
|
+
if (request.method === 'reset') {
|
|
296
|
+
const turn = options.currentTurn?.();
|
|
297
|
+
const result = await connection.callTool('js_reset', {}, {
|
|
298
|
+
signal: exec.signal,
|
|
299
|
+
...(turn === undefined ? {} : { turnId: turn }),
|
|
300
|
+
...(exec.callId === undefined || exec.callId === '' ? {} : { callId: exec.callId }),
|
|
301
|
+
});
|
|
302
|
+
if (result.isError)
|
|
303
|
+
throw new LcuError('tools/call', extractText(result.content, 'js_reset'));
|
|
304
|
+
return { reset: true };
|
|
305
|
+
}
|
|
306
|
+
const result = await invokeCua(connection, request, options, exec);
|
|
307
|
+
if (result.content.some((block) => isRecord(block) && block.type === 'image')) {
|
|
308
|
+
const content = await prepareProjection(ctx, exec, result.content, 'cua');
|
|
309
|
+
projections.set(exec, { value: result.value, content });
|
|
310
|
+
}
|
|
311
|
+
return result.value;
|
|
312
|
+
},
|
|
313
|
+
projectContent(exec, result) {
|
|
314
|
+
const projection = projections.get(exec);
|
|
315
|
+
if (projection === undefined)
|
|
316
|
+
return undefined;
|
|
317
|
+
projections.delete(exec);
|
|
318
|
+
if (result.isError === true)
|
|
319
|
+
return undefined;
|
|
320
|
+
if (!isDeepStrictEqual(result.value, projection.value))
|
|
321
|
+
return undefined;
|
|
322
|
+
return projection.content;
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Register the PTC surface in one Agent's scope.
|
|
328
|
+
*
|
|
329
|
+
* @param agentCtx - the Agent's own context; registrations unwind on disposal.
|
|
330
|
+
* @param connection - the Agent's connected LCU session.
|
|
331
|
+
* @param ctx - the plugin context.
|
|
332
|
+
* @param options - host hooks.
|
|
333
|
+
* @returns a disposer that unregisters the tool.
|
|
334
|
+
*/
|
|
335
|
+
export function registerCuaTool(agentCtx, connection, ctx, options = {}) {
|
|
336
|
+
return agentCtx.tools.register(createCuaTool(connection, ctx, options));
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Model-facing PTC instructions.
|
|
340
|
+
*
|
|
341
|
+
* The generated SDK already declares `tools.cua`; this section teaches the model
|
|
342
|
+
* how to turn it into the same `cua` object the native REPL used to expose.
|
|
343
|
+
*
|
|
344
|
+
* @param bridgeUrl - absolute `file:` URL of the compiled `bridge.js`.
|
|
345
|
+
* @returns the prompt section text.
|
|
346
|
+
*/
|
|
347
|
+
export function ptcBridgeInstructions(bridgeUrl) {
|
|
348
|
+
return [
|
|
349
|
+
'Computer Use is available through the PTC bridge in this program.',
|
|
350
|
+
'Initialize it once, before the first CUA call:',
|
|
351
|
+
'```ts',
|
|
352
|
+
`var { connectCua } = await import(${JSON.stringify(bridgeUrl)});`,
|
|
353
|
+
'var cua = connectCua((request) => tools.cua(request), text => console.log(text));',
|
|
354
|
+
'```',
|
|
355
|
+
'Then use the runtime API directly:',
|
|
356
|
+
'```ts',
|
|
357
|
+
'const state = await cua.getState();',
|
|
358
|
+
"const app = await cua.getApp('Finder');",
|
|
359
|
+
"const tab = await cua.getTab({ url: 'https://example.com' }, { browser: 'chrome' });",
|
|
360
|
+
'```',
|
|
361
|
+
'`cua.getApp`, `cua.getBrowser`, `cua.getTab` and `cua.createBrowserTab` return handles. '
|
|
362
|
+
+ 'Call methods on those handles directly; every call is routed through `tools.cua`. '
|
|
363
|
+
+ '`cua.stopApp(app?)` lists or releases held applications, `cua.documentation()` returns the '
|
|
364
|
+
+ 'runtime API manual, and `cua.reset()` clears the runtime.',
|
|
365
|
+
'Call `cua.documentation()` once to load the runtime API manual, and `cua.getState()` when the '
|
|
366
|
+
+ 'available applications, browsers or tabs are unknown. '
|
|
367
|
+
+ 'Screenshots are delivered through the harness attachment pipeline; browser access still '
|
|
368
|
+
+ 'requires the configured Chrome surface and site approvals.',
|
|
369
|
+
'Do not call `js` or `js_reset`: those native tools are not part of the PTC surface.',
|
|
370
|
+
].join('\n');
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=ptc.js.map
|
package/lib/ptc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptc.js","sourceRoot":"","sources":["../src/ptc.ts"],"names":[],"mappings":"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"}
|
package/lib/tool.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Model-facing tools for LCU.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* unchanged — this module only adapts the transport (canonical value, text
|
|
8
|
-
* fallback, durable images) and enforces the visibility rule that only `js` and
|
|
9
|
-
* `js_reset` may reach the model.
|
|
4
|
+
* These builders predate the PTC surface and remain for the internal `js`
|
|
5
|
+
* transport plus the tests that cover it. The model-facing registration in
|
|
6
|
+
* `index.ts` now uses `ptc.ts`: PTC programs see `cua`, never `js`.
|
|
10
7
|
*
|
|
11
8
|
* @module dsh-plugin-lcu/tool
|
|
12
9
|
*/
|
|
@@ -107,7 +104,7 @@ async function resolveAttachments(ctx, exec) {
|
|
|
107
104
|
* exactly as the server emitted them, with any inadmissible image replaced by a
|
|
108
105
|
* diagnostic instead of failing the whole call.
|
|
109
106
|
*/
|
|
110
|
-
async function prepareProjection(ctx, exec, content, toolName) {
|
|
107
|
+
export async function prepareProjection(ctx, exec, content, toolName) {
|
|
111
108
|
const decoded = [];
|
|
112
109
|
const indexes = [];
|
|
113
110
|
const failures = new Map();
|
|
@@ -321,7 +318,7 @@ export function createLcuTool(descriptor, connection, ctx, options = {}) {
|
|
|
321
318
|
};
|
|
322
319
|
}
|
|
323
320
|
/**
|
|
324
|
-
* Build
|
|
321
|
+
* Build the legacy native tools for one agent's connection.
|
|
325
322
|
*
|
|
326
323
|
* @param connection - the connected LCU session.
|
|
327
324
|
* @param ctx - the plugin context.
|
package/lib/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The program-facing side of the LCU PTC bridge.
|
|
3
|
+
*
|
|
4
|
+
* PTC programs run in the harness's own Node runtime, so they cannot reach the
|
|
5
|
+
* objects that live inside the ChatGPT application's CUA REPL directly. This
|
|
6
|
+
* module exposes those objects as a small proxy tree: every method call becomes
|
|
7
|
+
* one `tools.cua` binding call, and every object returned by the runtime becomes
|
|
8
|
+
* an opaque handle whose methods are routed back through the same binding.
|
|
9
|
+
*
|
|
10
|
+
* The file is imported from generated `run_code` programs, so it must stay
|
|
11
|
+
* dependency-free and run in any of the PTC execution modes.
|
|
12
|
+
*
|
|
13
|
+
* @module dsh-plugin-lcu/bridge
|
|
14
|
+
*/
|
|
15
|
+
/** One method call routed to the LCU runtime. */
|
|
16
|
+
export interface CuaBridgeRequest {
|
|
17
|
+
/** Opaque handle returned by a previous call; absent for top-level `cua` methods. */
|
|
18
|
+
readonly target?: string;
|
|
19
|
+
/** Method name on the runtime object. */
|
|
20
|
+
readonly method: string;
|
|
21
|
+
/** Positional arguments, exactly as the program passed them. */
|
|
22
|
+
readonly args?: readonly unknown[];
|
|
23
|
+
}
|
|
24
|
+
/** The binding supplied by the PTC program. */
|
|
25
|
+
export type CuaBridgeCall = (request: CuaBridgeRequest) => Promise<unknown>;
|
|
26
|
+
/** A callable object exposed to the program. */
|
|
27
|
+
export type CuaBridgeObject = Record<string, (...args: unknown[]) => Promise<unknown>>;
|
|
28
|
+
/**
|
|
29
|
+
* Build the `cua` object used by PTC programs.
|
|
30
|
+
*
|
|
31
|
+
* @param call - the `tools.cua` binding supplied by the generated SDK.
|
|
32
|
+
* @param log - optional sink for runtime text; currently unused but kept so a
|
|
33
|
+
* caller can pass the same logger as the generic CUA bridge.
|
|
34
|
+
* @returns a proxy whose top-level and returned-object methods all route through
|
|
35
|
+
* `call`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function connectCua(call: CuaBridgeCall, log?: (text: string) => void): CuaBridgeObject;
|
|
38
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;CACnC;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE3E,gDAAgD;AAChD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;AAUtF;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,eAAe,CA2C7F"}
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Contract taken from the runtime:
|
|
12
12
|
* - declare `capabilities.elicitation` and answer `elicitation/create`
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
13
|
+
* - `js` and `js_reset` remain the host transport; the PTC surface wraps them
|
|
14
|
+
* and never exposes them to the model
|
|
15
15
|
* - inject the server's `initialize.instructions` into model context
|
|
16
16
|
* - fail closed: an elicitation with no handler, or any unknown shape, cancels
|
|
17
17
|
* - approvals never time out; a pending approval freezes the call deadline
|
|
@@ -177,7 +177,7 @@ export declare class LcuConnection {
|
|
|
177
177
|
*/
|
|
178
178
|
connect(signal?: AbortSignal): Promise<void>;
|
|
179
179
|
/**
|
|
180
|
-
* Call one tool. `
|
|
180
|
+
* Call one tool. `js` and `js_reset` back the PTC bridge; the host-only
|
|
181
181
|
* tools are reachable here too because the lifecycle needs `turn_ended`.
|
|
182
182
|
*
|
|
183
183
|
* Requests carry no client-side deadline by default: a pause for a human
|
package/lib/types/index.d.ts
CHANGED
|
@@ -41,8 +41,8 @@ export interface Config {
|
|
|
41
41
|
* Agent preset ids whose sessions get the tools.
|
|
42
42
|
*
|
|
43
43
|
* Presets are independent compositions, so this is an explicit list rather
|
|
44
|
-
* than a capability the preset itself declares;
|
|
45
|
-
*
|
|
44
|
+
* than a capability the preset itself declares; the generator builds `daily`
|
|
45
|
+
* and `heavy`, and both now use PTC.
|
|
46
46
|
*/
|
|
47
47
|
presets?: string[];
|
|
48
48
|
/** Exact HTTP(S) origins pre-approved for browser access, never widened. */
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAUxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAC+C,kBAAkB,EAEvE,MAAM,iBAAiB,CAAA;AAUxB,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB,eAAO,MAAM,MAAM,UAA4B,CAAA;AA6B/C,4BAA4B;AAC5B,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA8BD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA4WxD;AAYD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The PTC-facing LCU surface.
|
|
3
|
+
*
|
|
4
|
+
* The ChatGPT application's CUA runtime is a JavaScript REPL (`js`). PTC
|
|
5
|
+
* programs cannot call that REPL's `cua` object directly, so this module exposes
|
|
6
|
+
* one ordinary tool, `cua`, whose binding is a small RPC: a program calls a
|
|
7
|
+
* method, the host runs it inside the persistent CUA REPL, and app/tab/window
|
|
8
|
+
* objects come back as opaque handles.
|
|
9
|
+
*
|
|
10
|
+
* The model never sees the `js` tool. It sees the generated SDK's `tools.cua`
|
|
11
|
+
* binding and the `connectCua` prelude in {@link ptcBridgeInstructions}.
|
|
12
|
+
*
|
|
13
|
+
* @module dsh-plugin-lcu/ptc
|
|
14
|
+
*/
|
|
15
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
16
|
+
import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
|
|
17
|
+
import type { RuntimeConnection } from './session.ts';
|
|
18
|
+
/** The single model-facing tool of the PTC surface. */
|
|
19
|
+
export declare const CUA_TOOL_NAME = "cua";
|
|
20
|
+
/** Marker printed by the in-REPL bridge so the host can find structured output. */
|
|
21
|
+
export declare const CUA_RESULT_MARKER = "__DSH_LCU_RESULT__";
|
|
22
|
+
/**
|
|
23
|
+
* The in-REPL half of the bridge.
|
|
24
|
+
*
|
|
25
|
+
* It is deliberately installed with `??=` so a persistent PTC runtime (or a
|
|
26
|
+
* persistent CUA REPL) can call it many times without replacing live handles.
|
|
27
|
+
* Values that expose methods are remembered and returned as opaque handles;
|
|
28
|
+
* plain JSON is passed through unchanged.
|
|
29
|
+
*/
|
|
30
|
+
export declare const CUA_PRELUDE: string;
|
|
31
|
+
/** Host-owned hooks around one bridge call. */
|
|
32
|
+
export interface CuaToolOptions {
|
|
33
|
+
/** Awaited before every call; a rejection fails the call. */
|
|
34
|
+
readonly beforeCall?: () => Promise<void>;
|
|
35
|
+
/** The Agent's active turn identity, used for runtime approvals and cleanup. */
|
|
36
|
+
readonly currentTurn?: () => string | undefined;
|
|
37
|
+
}
|
|
38
|
+
/** One validated bridge request. */
|
|
39
|
+
export interface CuaRequest {
|
|
40
|
+
readonly target?: string;
|
|
41
|
+
readonly method: string;
|
|
42
|
+
readonly args: readonly unknown[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validate the model's arguments.
|
|
46
|
+
*
|
|
47
|
+
* The tool is intentionally generic; the method name and positional arguments
|
|
48
|
+
* are checked here so the in-REPL bridge never receives a non-string method or
|
|
49
|
+
* a non-array argument list.
|
|
50
|
+
*
|
|
51
|
+
* @param value - parsed tool arguments.
|
|
52
|
+
* @returns the normalized request.
|
|
53
|
+
* @throws {Error} when the request shape is not usable.
|
|
54
|
+
*/
|
|
55
|
+
export declare function readCuaRequest(value: unknown): CuaRequest;
|
|
56
|
+
/**
|
|
57
|
+
* Build the one model-facing PTC tool.
|
|
58
|
+
*
|
|
59
|
+
* @param connection - the Agent's LCU connection.
|
|
60
|
+
* @param ctx - the plugin context, kept for the screenshot/attachment projection.
|
|
61
|
+
* @param options - host hooks.
|
|
62
|
+
* @returns a registrable tool definition.
|
|
63
|
+
*/
|
|
64
|
+
export declare function createCuaTool(connection: RuntimeConnection, ctx: Context, options?: CuaToolOptions): ToolDefinition;
|
|
65
|
+
/**
|
|
66
|
+
* Register the PTC surface in one Agent's scope.
|
|
67
|
+
*
|
|
68
|
+
* @param agentCtx - the Agent's own context; registrations unwind on disposal.
|
|
69
|
+
* @param connection - the Agent's connected LCU session.
|
|
70
|
+
* @param ctx - the plugin context.
|
|
71
|
+
* @param options - host hooks.
|
|
72
|
+
* @returns a disposer that unregisters the tool.
|
|
73
|
+
*/
|
|
74
|
+
export declare function registerCuaTool(agentCtx: Context, connection: RuntimeConnection, ctx: Context, options?: CuaToolOptions): () => void;
|
|
75
|
+
/**
|
|
76
|
+
* Model-facing PTC instructions.
|
|
77
|
+
*
|
|
78
|
+
* The generated SDK already declares `tools.cua`; this section teaches the model
|
|
79
|
+
* how to turn it into the same `cua` object the native REPL used to expose.
|
|
80
|
+
*
|
|
81
|
+
* @param bridgeUrl - absolute `file:` URL of the compiled `bridge.js`.
|
|
82
|
+
* @returns the prompt section text.
|
|
83
|
+
*/
|
|
84
|
+
export declare function ptcBridgeInstructions(bridgeUrl: string): string;
|
|
85
|
+
//# sourceMappingURL=ptc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ptc.d.ts","sourceRoot":"","sources":["../../src/ptc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,KAAK,EAAE,cAAc,EAAsD,MAAM,wBAAwB,CAAA;AAGhH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGrD,uDAAuD;AACvD,eAAO,MAAM,aAAa,QAAQ,CAAA;AAElC,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AASrD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,QAyDvB,CAAA;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,gFAAgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAChD;AAED,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;CAClC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAiBzD;AAqHD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAqFhB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,IAAI,CAEZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwB/D"}
|
package/lib/types/tool.d.ts
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Model-facing tools for LCU.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* unchanged — this module only adapts the transport (canonical value, text
|
|
8
|
-
* fallback, durable images) and enforces the visibility rule that only `js` and
|
|
9
|
-
* `js_reset` may reach the model.
|
|
4
|
+
* These builders predate the PTC surface and remain for the internal `js`
|
|
5
|
+
* transport plus the tests that cover it. The model-facing registration in
|
|
6
|
+
* `index.ts` now uses `ptc.ts`: PTC programs see `cua`, never `js`.
|
|
10
7
|
*
|
|
11
8
|
* @module dsh-plugin-lcu/tool
|
|
12
9
|
*/
|
|
13
10
|
import type { Context } from '@deepseek-ai/cordis';
|
|
14
|
-
import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
|
|
11
|
+
import type { ToolDefinition, ToolRunContext } from '@deepseek-ai/dsh-tools';
|
|
15
12
|
import type { LcuContentBlock, LcuTool } from './connection.ts';
|
|
16
13
|
import type { RuntimeConnection } from './session.ts';
|
|
17
14
|
interface ImageBlock {
|
|
@@ -19,6 +16,13 @@ interface ImageBlock {
|
|
|
19
16
|
readonly data: string;
|
|
20
17
|
readonly mimeType: string;
|
|
21
18
|
}
|
|
19
|
+
interface PreparedProjection {
|
|
20
|
+
readonly value: unknown;
|
|
21
|
+
readonly content: readonly {
|
|
22
|
+
readonly type: string;
|
|
23
|
+
readonly [key: string]: unknown;
|
|
24
|
+
}[];
|
|
25
|
+
}
|
|
22
26
|
/**
|
|
23
27
|
* The model-facing text for one MCP result.
|
|
24
28
|
*
|
|
@@ -44,6 +48,12 @@ export declare function decodeImage(block: ImageBlock): {
|
|
|
44
48
|
};
|
|
45
49
|
/** Stable diagnostic text for an image the host could not admit. */
|
|
46
50
|
export declare function imageDiagnostic(block: unknown, reason: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Build the ordered content blocks for one result: text and images interleaved
|
|
53
|
+
* exactly as the server emitted them, with any inadmissible image replaced by a
|
|
54
|
+
* diagnostic instead of failing the whole call.
|
|
55
|
+
*/
|
|
56
|
+
export declare function prepareProjection(ctx: Context, exec: ToolRunContext, content: readonly LcuContentBlock[], toolName: string): Promise<PreparedProjection['content']>;
|
|
47
57
|
/** Host-owned hooks around one call. */
|
|
48
58
|
export interface LcuToolOptions {
|
|
49
59
|
/**
|
|
@@ -99,7 +109,7 @@ export declare function stuckStopHint(text: string): string | undefined;
|
|
|
99
109
|
*/
|
|
100
110
|
export declare function createLcuTool(descriptor: LcuTool, connection: RuntimeConnection, ctx: Context, options?: LcuToolOptions): ToolDefinition;
|
|
101
111
|
/**
|
|
102
|
-
* Build
|
|
112
|
+
* Build the legacy native tools for one agent's connection.
|
|
103
113
|
*
|
|
104
114
|
* @param connection - the connected LCU session.
|
|
105
115
|
* @param ctx - the plugin context.
|
package/lib/types/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAsC,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEhH,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAUrD,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,CAAA;CACxF;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWzF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQlF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtE;AAiCD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CA8DxC;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAO5E;AAWD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWtE;AAcD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,CA+DhB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,cAAc,EAAE,CAOlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,GACpC,cAAc,CAsEhB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,IAAI,CASZ"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-lcu",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "PTC Computer/Browser CUA for DeepSeek Harness, backed by the runtime inside the ChatGPT desktop application.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh-plugin",
|
|
7
7
|
"deepseek-harness",
|