codex-computer-use-mcp 0.4.0 → 0.5.1
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/README.md +34 -14
- package/dist/code-executor.d.ts +23 -0
- package/dist/code-executor.js +216 -0
- package/dist/code-executor.js.map +1 -0
- package/dist/code-worker.d.ts +1 -0
- package/dist/code-worker.js +120 -0
- package/dist/code-worker.js.map +1 -0
- package/dist/direct-broker.d.ts +18 -2
- package/dist/direct-broker.js +65 -10
- package/dist/direct-broker.js.map +1 -1
- package/dist/direct-service.d.ts +3 -0
- package/dist/direct-service.js +8 -4
- package/dist/direct-service.js.map +1 -1
- package/dist/session-executor.js +3 -2
- package/dist/session-executor.js.map +1 -1
- package/integrations/pi/index.ts +106 -76
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,8 +8,8 @@ OpenAI does not produce or endorse this independent project. It relies on an exp
|
|
|
8
8
|
|
|
9
9
|
- macOS with an unlocked user session
|
|
10
10
|
- Node.js 22 or newer
|
|
11
|
-
- the official ChatGPT macOS app at `/Applications/ChatGPT.app`
|
|
12
|
-
- the Computer Use component installed by ChatGPT under `~/.codex/computer-use/`
|
|
11
|
+
- the official ChatGPT macOS app, by default at `/Applications/ChatGPT.app`
|
|
12
|
+
- the Computer Use component installed by ChatGPT, by default under `~/.codex/computer-use/`
|
|
13
13
|
- Pi 0.80.7 or newer when using the Pi integration
|
|
14
14
|
|
|
15
15
|
macOS Screen Recording, Accessibility and TCC controls still apply.
|
|
@@ -22,21 +22,26 @@ Install from npm:
|
|
|
22
22
|
pi install npm:codex-computer-use-mcp
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
The extension registers and activates
|
|
25
|
+
The extension registers and activates one composable tool:
|
|
26
26
|
|
|
27
27
|
```text
|
|
28
|
-
|
|
29
|
-
computer_use_get_app_state
|
|
30
|
-
computer_use_click
|
|
31
|
-
computer_use_perform_secondary_action
|
|
32
|
-
computer_use_set_value
|
|
33
|
-
computer_use_select_text
|
|
34
|
-
computer_use_scroll
|
|
35
|
-
computer_use_drag
|
|
36
|
-
computer_use_press_key
|
|
37
|
-
computer_use_type_text
|
|
28
|
+
computer_use({ code: string })
|
|
38
29
|
```
|
|
39
30
|
|
|
31
|
+
The code runs with `sky`, `emit`, `emitImage` and a persistent `store` object. `sky` exposes all ten official Computer Use methods, so known sequential actions can run without a model round-trip between each action:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
const state = await sky.get_app_state({ app: "TextEdit" });
|
|
35
|
+
emit(state.text);
|
|
36
|
+
|
|
37
|
+
await sky.click({ app: "TextEdit", element_index: "7" });
|
|
38
|
+
await sky.type_text({ app: "TextEdit", text: "hello" });
|
|
39
|
+
const next = await sky.get_app_state({ app: "TextEdit" });
|
|
40
|
+
emit(next.text);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Only values passed to `emit(...)` or `emitImage(...)` are returned to Pi. `list_apps` returns the official text inventory produced by the app-server transport; unlike native `@oai/sky`, that transport does not provide the structured app array. `get_app_state` may return an accessibility-tree diff after the first inspection; pass `disableDiff: true` to request a fresh full tree. Screenshot payloads remain in the parent process and cross the code-worker boundary only as small opaque handles. Code runs in a worker so an unbounded loop can be terminated without freezing Pi; time spent inside an official Computer Use call does not count toward the code execution slice. If a later action fails, Pi still receives earlier emitted observations and the attempted method sequence.
|
|
44
|
+
|
|
40
45
|
Use `/computer-use-status` to inspect the installed component and transport status.
|
|
41
46
|
|
|
42
47
|
To run a source checkout:
|
|
@@ -73,12 +78,27 @@ Example Pi MCP configuration:
|
|
|
73
78
|
|
|
74
79
|
## Behaviour
|
|
75
80
|
|
|
76
|
-
The adapter has one mode.
|
|
81
|
+
The adapter has one mode. Pi exposes the ten official methods through the single `computer_use` code tool; MCP exposes them as ten typed methods. Both are available without wrapper permission prompts. It adds no app allowlist, action gate, intent classifier, selector rewrite or focus policy. App-server uses Codex Full access. The adapter forwards any elicitation that the official host still emits.
|
|
77
82
|
|
|
78
83
|
Production calls require verified OpenAI-signed app-server and Computer Use binaries with Team ID `2DC432GLL2`. The adapter uses an isolated, credential-free app-server context. It rejects any model-turn activity. Calls after `get_app_state` reuse the signed session, preserving element identifiers and official app state.
|
|
79
84
|
|
|
80
85
|
Audit records contain bounded metadata. They exclude arguments, app content, screenshots, prompts and credentials. MCP and CLI state defaults to `~/.direct-computer-use`. Pi state defaults to `direct-computer-use` under the Pi agent directory. Set `CODEX_COMPUTER_USE_HOME` to override either default.
|
|
81
86
|
|
|
87
|
+
### Paths
|
|
88
|
+
|
|
89
|
+
By default the adapter uses the Codex app-server at `/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex`, falling back to `/Applications/ChatGPT.app/Contents/Resources/codex` on older ChatGPT builds. It uses the Computer Use app at `~/.codex/computer-use/Codex Computer Use.app`, falling back to the copy bundled in older ChatGPT builds.
|
|
90
|
+
|
|
91
|
+
When ChatGPT is installed elsewhere or moves these files, set either path in `config.json` in the state directory:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"codexPath": "/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex",
|
|
96
|
+
"computerUseAppPath": "/Users/me/.codex/computer-use/Codex Computer Use.app"
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The adapter reads this file when it starts each Computer Use session, so changes apply without restarting Pi or the MCP server. Configured binaries must pass the same OpenAI signature and Team ID checks. When a component is missing, the error lists the paths checked and the config file to edit. `/computer-use-status` and `codex-computer-use-mcp --status` show the config path and the current error.
|
|
101
|
+
|
|
82
102
|
Pi limits returned text to 50KB or 2,000 lines. When text exceeds that limit, the complete text is written to a mode-0600 file in a private directory under `/tmp`. Images are returned directly and are never spilled to disk.
|
|
83
103
|
|
|
84
104
|
## Development
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DirectServiceDependencies } from "./direct-service.ts";
|
|
2
|
+
import { DirectSessionExecutor } from "./session-executor.ts";
|
|
3
|
+
import { type DirectMethod, type JsonObject, type JsonValue } from "./tools.ts";
|
|
4
|
+
export interface ComputerUseCodeResult {
|
|
5
|
+
content: JsonObject[];
|
|
6
|
+
calls: DirectMethod[];
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
type CodeSessionExecutor = Pick<DirectSessionExecutor, "execute" | "close">;
|
|
10
|
+
export declare class ComputerUseCodeExecutor {
|
|
11
|
+
private queue;
|
|
12
|
+
private readonly sessionExecutor;
|
|
13
|
+
private readonly codeSliceTimeoutMs;
|
|
14
|
+
private readonly screenshots;
|
|
15
|
+
private nextScreenshotId;
|
|
16
|
+
readonly store: Record<string, JsonValue | undefined>;
|
|
17
|
+
constructor(sessionExecutor?: CodeSessionExecutor, codeSliceTimeoutMs?: number);
|
|
18
|
+
private runExclusive;
|
|
19
|
+
private registerScreenshot;
|
|
20
|
+
execute(code: string, dependencies: DirectServiceDependencies): Promise<ComputerUseCodeResult>;
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Worker } from "node:worker_threads";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { DirectSessionExecutor } from "./session-executor.js";
|
|
4
|
+
import { COMPUTER_USE_METHODS, } from "./tools.js";
|
|
5
|
+
const MAX_CODE_BYTES = 20_000;
|
|
6
|
+
const MAX_CALLS = 50;
|
|
7
|
+
const MAX_SCREENSHOT_HANDLES = 50;
|
|
8
|
+
const MAX_EMITTED_IMAGES = 10;
|
|
9
|
+
const MAX_EMITTED_IMAGE_BYTES = 20 * 1024 * 1024;
|
|
10
|
+
const CODE_SLICE_TIMEOUT_MS = 5_000;
|
|
11
|
+
const WORKER_STARTUP_TIMEOUT_MS = 5_000;
|
|
12
|
+
const workerMessageSchema = z.discriminatedUnion("type", [
|
|
13
|
+
z.object({ type: z.literal("ready") }),
|
|
14
|
+
z.object({ type: z.literal("call"), id: z.number().int(), method: z.enum(COMPUTER_USE_METHODS), args: z.string() }),
|
|
15
|
+
z.object({ type: z.literal("emit"), value: z.string() }),
|
|
16
|
+
z.object({ type: z.literal("emit_image"), value: z.string() }),
|
|
17
|
+
z.object({ type: z.literal("done"), store: z.string(), error: z.string().optional() }),
|
|
18
|
+
]);
|
|
19
|
+
const argumentsSchema = z.record(z.string(), z.json());
|
|
20
|
+
const emittedValueSchema = z.json();
|
|
21
|
+
const emittedStringSchema = z.string();
|
|
22
|
+
const screenshotHandleSchema = z.object({
|
|
23
|
+
type: z.literal("computer_use_screenshot"),
|
|
24
|
+
id: z.string(),
|
|
25
|
+
});
|
|
26
|
+
export class ComputerUseCodeExecutor {
|
|
27
|
+
queue = Promise.resolve();
|
|
28
|
+
sessionExecutor;
|
|
29
|
+
codeSliceTimeoutMs;
|
|
30
|
+
screenshots = new Map();
|
|
31
|
+
nextScreenshotId = 1;
|
|
32
|
+
store = {};
|
|
33
|
+
constructor(sessionExecutor = new DirectSessionExecutor(), codeSliceTimeoutMs = CODE_SLICE_TIMEOUT_MS) {
|
|
34
|
+
this.sessionExecutor = sessionExecutor;
|
|
35
|
+
this.codeSliceTimeoutMs = codeSliceTimeoutMs;
|
|
36
|
+
}
|
|
37
|
+
runExclusive(operation) {
|
|
38
|
+
const result = this.queue.then(operation);
|
|
39
|
+
this.queue = result.then(() => undefined, () => undefined);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
registerScreenshot(image) {
|
|
43
|
+
const id = String(this.nextScreenshotId++);
|
|
44
|
+
this.screenshots.set(id, image);
|
|
45
|
+
if (this.screenshots.size > MAX_SCREENSHOT_HANDLES) {
|
|
46
|
+
this.screenshots.delete(this.screenshots.keys().next().value);
|
|
47
|
+
}
|
|
48
|
+
return { type: "computer_use_screenshot", id };
|
|
49
|
+
}
|
|
50
|
+
execute(code, dependencies) {
|
|
51
|
+
return this.runExclusive(async () => {
|
|
52
|
+
if (Buffer.byteLength(code, "utf8") > MAX_CODE_BYTES) {
|
|
53
|
+
throw new Error(`Computer Use code exceeds ${MAX_CODE_BYTES} bytes`);
|
|
54
|
+
}
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const content = [];
|
|
57
|
+
const calls = [];
|
|
58
|
+
const worker = new Worker(import.meta.url.endsWith(".ts")
|
|
59
|
+
? new URL("../dist/code-worker.js", import.meta.url)
|
|
60
|
+
: new URL("./code-worker.js", import.meta.url), { workerData: { code, store: this.store } });
|
|
61
|
+
let emittedImages = 0;
|
|
62
|
+
let emittedImageBytes = 0;
|
|
63
|
+
let settled = false;
|
|
64
|
+
let timer;
|
|
65
|
+
const clearTimer = () => {
|
|
66
|
+
if (timer)
|
|
67
|
+
clearTimeout(timer);
|
|
68
|
+
timer = undefined;
|
|
69
|
+
};
|
|
70
|
+
const finish = (result) => {
|
|
71
|
+
if (settled)
|
|
72
|
+
return;
|
|
73
|
+
settled = true;
|
|
74
|
+
clearTimer();
|
|
75
|
+
dependencies.signal?.removeEventListener("abort", abort);
|
|
76
|
+
void worker.terminate();
|
|
77
|
+
resolve(result);
|
|
78
|
+
};
|
|
79
|
+
const fail = (error) => {
|
|
80
|
+
if (settled)
|
|
81
|
+
return;
|
|
82
|
+
settled = true;
|
|
83
|
+
clearTimer();
|
|
84
|
+
dependencies.signal?.removeEventListener("abort", abort);
|
|
85
|
+
void worker.terminate();
|
|
86
|
+
reject(error);
|
|
87
|
+
};
|
|
88
|
+
const stopWithError = (message) => {
|
|
89
|
+
content.push({ type: "text", text: `Computer Use code stopped: ${message}` });
|
|
90
|
+
finish({ content, calls, error: message });
|
|
91
|
+
};
|
|
92
|
+
const armTimer = () => {
|
|
93
|
+
clearTimer();
|
|
94
|
+
if (settled)
|
|
95
|
+
return;
|
|
96
|
+
timer = setTimeout(() => stopWithError(`execution exceeded ${this.codeSliceTimeoutMs}ms between Computer Use calls`), this.codeSliceTimeoutMs);
|
|
97
|
+
timer.unref();
|
|
98
|
+
};
|
|
99
|
+
const abort = () => fail(new Error("Computer Use code cancelled"));
|
|
100
|
+
if (dependencies.signal?.aborted) {
|
|
101
|
+
abort();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
dependencies.signal?.addEventListener("abort", abort, { once: true });
|
|
105
|
+
let messageQueue = Promise.resolve();
|
|
106
|
+
worker.on("message", (rawMessage) => {
|
|
107
|
+
messageQueue = messageQueue.then(async () => {
|
|
108
|
+
if (settled)
|
|
109
|
+
return;
|
|
110
|
+
const message = workerMessageSchema.parse(rawMessage);
|
|
111
|
+
if (message.type === "ready") {
|
|
112
|
+
armTimer();
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (message.type === "emit") {
|
|
116
|
+
const parsed = emittedValueSchema.parse(JSON.parse(message.value));
|
|
117
|
+
const stringResult = emittedStringSchema.safeParse(parsed);
|
|
118
|
+
content.push({ type: "text", text: stringResult.success ? stringResult.data : JSON.stringify(parsed, null, 2) });
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (message.type === "emit_image") {
|
|
122
|
+
const handle = screenshotHandleSchema.parse(JSON.parse(message.value));
|
|
123
|
+
const image = this.screenshots.get(handle.id);
|
|
124
|
+
if (!image) {
|
|
125
|
+
stopWithError("screenshot is no longer available");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const imageBytes = Buffer.byteLength(image.data, "utf8");
|
|
129
|
+
if (emittedImages >= MAX_EMITTED_IMAGES || emittedImageBytes + imageBytes > MAX_EMITTED_IMAGE_BYTES) {
|
|
130
|
+
stopWithError(`emitted images exceed ${MAX_EMITTED_IMAGES} images or ${MAX_EMITTED_IMAGE_BYTES} bytes`);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
emittedImages += 1;
|
|
134
|
+
emittedImageBytes += imageBytes;
|
|
135
|
+
content.push(image);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (message.type === "done") {
|
|
139
|
+
const nextStore = argumentsSchema.parse(JSON.parse(message.store));
|
|
140
|
+
for (const key of Object.keys(this.store))
|
|
141
|
+
delete this.store[key];
|
|
142
|
+
Object.assign(this.store, nextStore);
|
|
143
|
+
if (message.error)
|
|
144
|
+
stopWithError(message.error);
|
|
145
|
+
else
|
|
146
|
+
finish({ content, calls });
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (calls.length >= MAX_CALLS) {
|
|
150
|
+
worker.postMessage({ type: "call_result", id: message.id, error: `Computer Use code exceeded ${MAX_CALLS} calls` });
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
clearTimer();
|
|
154
|
+
calls.push(message.method);
|
|
155
|
+
try {
|
|
156
|
+
const args = argumentsSchema.parse(JSON.parse(message.args));
|
|
157
|
+
const response = await this.sessionExecutor.execute(message.method, args, dependencies);
|
|
158
|
+
const text = response.content
|
|
159
|
+
.filter((block) => block.type !== "image")
|
|
160
|
+
.map((block) => String(block.text ?? ""))
|
|
161
|
+
.join("\n");
|
|
162
|
+
if (response.isError)
|
|
163
|
+
throw new Error(text.slice(0, 2_000) || "Official Computer Use returned an error");
|
|
164
|
+
let value = response.structuredContent;
|
|
165
|
+
if (message.method === "get_app_state") {
|
|
166
|
+
const block = response.content.find((item) => item.type === "image");
|
|
167
|
+
const screenshot = block ? {
|
|
168
|
+
type: "image",
|
|
169
|
+
data: String(block.data),
|
|
170
|
+
mimeType: String(block.mimeType),
|
|
171
|
+
} : undefined;
|
|
172
|
+
value = {
|
|
173
|
+
app: String(args.app),
|
|
174
|
+
text,
|
|
175
|
+
screenshot: screenshot ? this.registerScreenshot(screenshot) : null,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
else if (value === undefined) {
|
|
179
|
+
value = text || undefined;
|
|
180
|
+
}
|
|
181
|
+
worker.postMessage({ type: "call_result", id: message.id, value: JSON.stringify(value ?? null) });
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
worker.postMessage({
|
|
185
|
+
type: "call_result",
|
|
186
|
+
id: message.id,
|
|
187
|
+
error: error instanceof Error ? error.message : String(error),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
armTimer();
|
|
192
|
+
}
|
|
193
|
+
}).catch((error) => fail(error instanceof Error ? error : new Error(String(error))));
|
|
194
|
+
});
|
|
195
|
+
worker.once("error", (error) => fail(error));
|
|
196
|
+
worker.once("exit", (code) => {
|
|
197
|
+
if (!settled)
|
|
198
|
+
fail(new Error(`Computer Use code worker exited before completion (${code})`));
|
|
199
|
+
});
|
|
200
|
+
timer = setTimeout(() => fail(new Error("Computer Use code worker failed to start")), WORKER_STARTUP_TIMEOUT_MS);
|
|
201
|
+
timer.unref();
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
async close() {
|
|
206
|
+
await this.runExclusive(async () => {
|
|
207
|
+
try {
|
|
208
|
+
await this.sessionExecutor.close();
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
this.screenshots.clear();
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=code-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-executor.js","sourceRoot":"","sources":["../src/code-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import vm from "node:vm";
|
|
2
|
+
import { parentPort, workerData } from "node:worker_threads";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const MAX_BRIDGE_BYTES = 1_000_000;
|
|
5
|
+
const MAX_EMITS = 100;
|
|
6
|
+
const bridgeStringSchema = z.string();
|
|
7
|
+
// SAFETY: ComputerUseCodeExecutor is the sole worker creator and supplies this exact cloneable shape.
|
|
8
|
+
const input = workerData;
|
|
9
|
+
const port = parentPort;
|
|
10
|
+
if (!port)
|
|
11
|
+
throw new Error("Computer Use code worker requires a parent port");
|
|
12
|
+
let nextCallId = 1;
|
|
13
|
+
const pending = new Map();
|
|
14
|
+
port.on("message", (message) => {
|
|
15
|
+
const waiter = pending.get(message.id);
|
|
16
|
+
if (!waiter)
|
|
17
|
+
return;
|
|
18
|
+
pending.delete(message.id);
|
|
19
|
+
if ("error" in message)
|
|
20
|
+
waiter.reject(new Error(message.error));
|
|
21
|
+
else
|
|
22
|
+
waiter.resolve(message.value);
|
|
23
|
+
});
|
|
24
|
+
let emitCount = 0;
|
|
25
|
+
let emittedBytes = 0;
|
|
26
|
+
const checkBridgeValue = (value, label) => {
|
|
27
|
+
const bytes = Buffer.byteLength(value, "utf8");
|
|
28
|
+
if (bytes > MAX_BRIDGE_BYTES)
|
|
29
|
+
throw new Error(`${label} exceeds ${MAX_BRIDGE_BYTES} bytes`);
|
|
30
|
+
return bytes;
|
|
31
|
+
};
|
|
32
|
+
const callBridge = (method, args) => {
|
|
33
|
+
checkBridgeValue(args, "Computer Use arguments");
|
|
34
|
+
const id = nextCallId++;
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
pending.set(id, { resolve, reject });
|
|
37
|
+
port.postMessage({ type: "call", id, method, args });
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const emitValue = (type, value) => {
|
|
41
|
+
if (emitCount >= MAX_EMITS)
|
|
42
|
+
throw new Error(`Computer Use code exceeded ${MAX_EMITS} emits`);
|
|
43
|
+
const bytes = checkBridgeValue(value, "Computer Use emitted value");
|
|
44
|
+
if (emittedBytes + bytes > MAX_BRIDGE_BYTES) {
|
|
45
|
+
throw new Error(`Computer Use emitted output exceeds ${MAX_BRIDGE_BYTES} bytes`);
|
|
46
|
+
}
|
|
47
|
+
emitCount += 1;
|
|
48
|
+
emittedBytes += bytes;
|
|
49
|
+
port.postMessage({ type, value });
|
|
50
|
+
};
|
|
51
|
+
const emitBridge = (value) => emitValue("emit", value);
|
|
52
|
+
const emitImageBridge = (value) => emitValue("emit_image", value);
|
|
53
|
+
Object.setPrototypeOf(callBridge, null);
|
|
54
|
+
Object.setPrototypeOf(emitBridge, null);
|
|
55
|
+
Object.setPrototypeOf(emitImageBridge, null);
|
|
56
|
+
const context = vm.createContext({
|
|
57
|
+
__callBridge: callBridge,
|
|
58
|
+
__emitBridge: emitBridge,
|
|
59
|
+
__emitImageBridge: emitImageBridge,
|
|
60
|
+
__storeJson: JSON.stringify(input.store),
|
|
61
|
+
}, {
|
|
62
|
+
codeGeneration: { strings: false, wasm: false },
|
|
63
|
+
name: "computer-use",
|
|
64
|
+
});
|
|
65
|
+
const bootstrap = new vm.Script(`(() => {
|
|
66
|
+
const callBridge = globalThis.__callBridge;
|
|
67
|
+
const emitBridge = globalThis.__emitBridge;
|
|
68
|
+
const emitImageBridge = globalThis.__emitImageBridge;
|
|
69
|
+
const storeJson = globalThis.__storeJson;
|
|
70
|
+
delete globalThis.__callBridge;
|
|
71
|
+
delete globalThis.__emitBridge;
|
|
72
|
+
delete globalThis.__emitImageBridge;
|
|
73
|
+
delete globalThis.__storeJson;
|
|
74
|
+
const call = async (method, args = {}) => JSON.parse(await callBridge(method, JSON.stringify(args)));
|
|
75
|
+
globalThis.sky = Object.freeze({
|
|
76
|
+
list_apps: (args) => call("list_apps", args),
|
|
77
|
+
get_app_state: (args) => call("get_app_state", args),
|
|
78
|
+
click: (args) => call("click", args),
|
|
79
|
+
perform_secondary_action: (args) => call("perform_secondary_action", args),
|
|
80
|
+
set_value: (args) => call("set_value", args),
|
|
81
|
+
select_text: (args) => call("select_text", args),
|
|
82
|
+
scroll: (args) => call("scroll", args),
|
|
83
|
+
drag: (args) => call("drag", args),
|
|
84
|
+
press_key: (args) => call("press_key", args),
|
|
85
|
+
type_text: (args) => call("type_text", args),
|
|
86
|
+
});
|
|
87
|
+
globalThis.emit = (value) => emitBridge(JSON.stringify(value));
|
|
88
|
+
globalThis.emitImage = (value) => {
|
|
89
|
+
if (value === null) throw new Error("get_app_state returned no screenshot");
|
|
90
|
+
emitImageBridge(JSON.stringify(value));
|
|
91
|
+
};
|
|
92
|
+
globalThis.store = JSON.parse(storeJson);
|
|
93
|
+
})()`);
|
|
94
|
+
const serializedStore = () => {
|
|
95
|
+
const parsed = bridgeStringSchema.safeParse(new vm.Script("JSON.stringify(store)").runInContext(context));
|
|
96
|
+
if (!parsed.success)
|
|
97
|
+
throw new Error("Computer Use store must remain a JSON object");
|
|
98
|
+
checkBridgeValue(parsed.data, "Computer Use store");
|
|
99
|
+
return parsed.data;
|
|
100
|
+
};
|
|
101
|
+
try {
|
|
102
|
+
bootstrap.runInContext(context);
|
|
103
|
+
port.postMessage({ type: "ready" });
|
|
104
|
+
const script = new vm.Script(`(async () => {\n${input.code}\n})()`, { filename: "computer-use.js" });
|
|
105
|
+
await script.runInContext(context);
|
|
106
|
+
port.postMessage({ type: "done", store: serializedStore() });
|
|
107
|
+
}
|
|
108
|
+
catch (cause) {
|
|
109
|
+
let error = cause instanceof Error ? cause.message : String(cause);
|
|
110
|
+
let store;
|
|
111
|
+
try {
|
|
112
|
+
store = serializedStore();
|
|
113
|
+
}
|
|
114
|
+
catch (storeError) {
|
|
115
|
+
store = JSON.stringify(input.store);
|
|
116
|
+
error = storeError instanceof Error ? storeError.message : String(storeError);
|
|
117
|
+
}
|
|
118
|
+
port.postMessage({ type: "done", store, error });
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=code-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-worker.js","sourceRoot":"","sources":["../src/code-worker.ts"],"names":[],"mappings":"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"}
|
package/dist/direct-broker.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export interface DirectBrokerOptions {
|
|
|
39
39
|
/** Test-only process-enumerator override. */
|
|
40
40
|
processEnumeratorCommand?: string;
|
|
41
41
|
onSpawn?: (pid: number) => void;
|
|
42
|
+
/** Path configuration file; see `readOfficialPathConfig`. */
|
|
43
|
+
configPath?: string;
|
|
42
44
|
}
|
|
43
45
|
export declare class DirectBrokerCallError extends Error {
|
|
44
46
|
readonly cleanupVerified: boolean;
|
|
@@ -66,21 +68,35 @@ type RunSync = (command: string, args: string[]) => CommandResult;
|
|
|
66
68
|
export interface OfficialComputerUseClient {
|
|
67
69
|
clientPath: string;
|
|
68
70
|
appPath: string;
|
|
69
|
-
layout: "installed-component" | "legacy-plugin-bundle";
|
|
71
|
+
layout: "installed-component" | "legacy-plugin-bundle" | "configured";
|
|
70
72
|
}
|
|
73
|
+
declare const pathConfigSchema: z.ZodObject<{
|
|
74
|
+
codexPath: z.ZodOptional<z.ZodString>;
|
|
75
|
+
computerUseAppPath: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$strict>;
|
|
77
|
+
export type OfficialPathConfig = z.infer<typeof pathConfigSchema>;
|
|
78
|
+
export declare function pathConfigFile(stateRoot: string): string;
|
|
79
|
+
/** Read optional path overrides. A missing file means the default official locations. */
|
|
80
|
+
export declare function readOfficialPathConfig(configPath: string): OfficialPathConfig;
|
|
71
81
|
interface ResolveOfficialComputerUseClientOptions {
|
|
72
82
|
/** Test-only OS-account home override. Production never reads HOME or CODEX_HOME. */
|
|
73
83
|
userHome?: string;
|
|
74
84
|
/** Test-only legacy root override. */
|
|
75
85
|
legacyPluginRoot?: string;
|
|
86
|
+
/** Test-only default Codex locations override. */
|
|
87
|
+
defaultCodexPaths?: string[];
|
|
88
|
+
configPath?: string;
|
|
76
89
|
runSync?: RunSync;
|
|
77
90
|
}
|
|
78
|
-
/** Resolve
|
|
91
|
+
/** Resolve the configured client, or else the two reviewed official layouts, preferring ChatGPT's current installed-component contract. */
|
|
79
92
|
export declare function resolveOfficialComputerUseClient(options?: ResolveOfficialComputerUseClientOptions): OfficialComputerUseClient;
|
|
93
|
+
/** Resolve the configured Codex app-server executable, or else the first default ChatGPT location that exists. */
|
|
94
|
+
export declare function resolveOfficialCodex(options?: ResolveOfficialComputerUseClientOptions): string;
|
|
80
95
|
export declare function verifyOfficialDirectBroker(options?: ResolveOfficialComputerUseClientOptions): {
|
|
81
96
|
brokerVersion: string;
|
|
82
97
|
clientBuild: string;
|
|
83
98
|
client: OfficialComputerUseClient;
|
|
99
|
+
codexPath: string;
|
|
84
100
|
};
|
|
85
101
|
export declare function buildDirectAppServerArgs(mcpCwd?: string, clientPath?: string): string[];
|
|
86
102
|
export interface OfficialDirectToolSession {
|
package/dist/direct-broker.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { spawn, spawnSync } from "node:child_process";
|
|
2
|
-
import { existsSync, realpathSync } from "node:fs";
|
|
2
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
3
3
|
import { chmod, mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { createInterface } from "node:readline";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { PACKAGE_VERSION } from "./version.js";
|
|
9
|
-
const
|
|
9
|
+
const DEFAULT_CODEX_PATHS = [
|
|
10
|
+
"/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex",
|
|
11
|
+
"/Applications/ChatGPT.app/Contents/Resources/codex",
|
|
12
|
+
];
|
|
10
13
|
const COMPUTER_USE_PLUGIN_ROOT = "/Applications/ChatGPT.app/Contents/Resources/plugins/openai-bundled/plugins/computer-use";
|
|
11
14
|
const COMPUTER_USE_APP_RELATIVE_PATH = "computer-use/Codex Computer Use.app";
|
|
12
15
|
const CLIENT_RELATIVE_PATH = "Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient";
|
|
@@ -73,6 +76,34 @@ function verifySignedBinary(binaryPath, runSync) {
|
|
|
73
76
|
throw new BrokerVerificationError(`${path.basename(binaryPath)} is not signed by the expected OpenAI team`);
|
|
74
77
|
}
|
|
75
78
|
}
|
|
79
|
+
const pathConfigSchema = z.object({
|
|
80
|
+
codexPath: z.string().min(1).optional(),
|
|
81
|
+
computerUseAppPath: z.string().min(1).optional(),
|
|
82
|
+
}).strict();
|
|
83
|
+
export function pathConfigFile(stateRoot) {
|
|
84
|
+
return path.join(stateRoot, "config.json");
|
|
85
|
+
}
|
|
86
|
+
/** Read optional path overrides. A missing file means the default official locations. */
|
|
87
|
+
export function readOfficialPathConfig(configPath) {
|
|
88
|
+
if (!existsSync(configPath))
|
|
89
|
+
return {};
|
|
90
|
+
let parsed;
|
|
91
|
+
try {
|
|
92
|
+
parsed = JSON.parse(readFileSync(configPath, "utf8"));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
throw new BrokerVerificationError(`Computer Use config at ${configPath} is not valid JSON`);
|
|
96
|
+
}
|
|
97
|
+
const config = pathConfigSchema.safeParse(parsed);
|
|
98
|
+
if (!config.success) {
|
|
99
|
+
throw new BrokerVerificationError(`Computer Use config at ${configPath} may only set "codexPath" and "computerUseAppPath" to path strings`);
|
|
100
|
+
}
|
|
101
|
+
return config.data;
|
|
102
|
+
}
|
|
103
|
+
function notFoundError(component, checked, key, hint, configPath) {
|
|
104
|
+
const where = configPath ? `in ${configPath}` : "in the Computer Use config.json in the state directory";
|
|
105
|
+
return new BrokerVerificationError(`${component} was not found. Checked: ${checked.join(", ")}. ${hint} Then set "${key}" to its absolute path ${where}.`);
|
|
106
|
+
}
|
|
76
107
|
function checkedCandidate(appPath, clientPath, layout, runSync) {
|
|
77
108
|
if (!existsSync(clientPath))
|
|
78
109
|
return undefined;
|
|
@@ -91,9 +122,18 @@ function checkedCandidate(appPath, clientPath, layout, runSync) {
|
|
|
91
122
|
verifySignedBinary(canonicalClient, runSync);
|
|
92
123
|
return { appPath: canonicalApp, clientPath: canonicalClient, layout };
|
|
93
124
|
}
|
|
94
|
-
/** Resolve
|
|
125
|
+
/** Resolve the configured client, or else the two reviewed official layouts, preferring ChatGPT's current installed-component contract. */
|
|
95
126
|
export function resolveOfficialComputerUseClient(options = {}) {
|
|
96
127
|
const runSync = options.runSync ?? productionRunSync;
|
|
128
|
+
const config = options.configPath ? readOfficialPathConfig(options.configPath) : {};
|
|
129
|
+
const clientHint = "Find the OpenAI-signed \"Codex Computer Use.app\" installed by ChatGPT.";
|
|
130
|
+
if (config.computerUseAppPath) {
|
|
131
|
+
const configuredApp = existsSync(config.computerUseAppPath) ? realpathSync(config.computerUseAppPath) : path.resolve(config.computerUseAppPath);
|
|
132
|
+
const configured = checkedCandidate(configuredApp, path.join(configuredApp, CLIENT_RELATIVE_PATH), "configured", runSync);
|
|
133
|
+
if (configured)
|
|
134
|
+
return configured;
|
|
135
|
+
throw notFoundError("Official Computer Use client", [path.join(configuredApp, CLIENT_RELATIVE_PATH)], "computerUseAppPath", clientHint, options.configPath);
|
|
136
|
+
}
|
|
97
137
|
const userHome = options.userHome ?? os.userInfo().homedir;
|
|
98
138
|
const canonicalUserHome = existsSync(userHome) ? realpathSync(userHome) : path.resolve(userHome);
|
|
99
139
|
const currentApp = path.join(canonicalUserHome, ".codex", COMPUTER_USE_APP_RELATIVE_PATH);
|
|
@@ -106,13 +146,26 @@ export function resolveOfficialComputerUseClient(options = {}) {
|
|
|
106
146
|
const legacy = checkedCandidate(legacyApp, path.join(legacyApp, CLIENT_RELATIVE_PATH), "legacy-plugin-bundle", runSync);
|
|
107
147
|
if (legacy)
|
|
108
148
|
return legacy;
|
|
109
|
-
throw
|
|
149
|
+
throw notFoundError("Official Computer Use client", [path.join(currentApp, CLIENT_RELATIVE_PATH), path.join(legacyApp, CLIENT_RELATIVE_PATH)], "computerUseAppPath", clientHint, options.configPath);
|
|
150
|
+
}
|
|
151
|
+
/** Resolve the configured Codex app-server executable, or else the first default ChatGPT location that exists. */
|
|
152
|
+
export function resolveOfficialCodex(options = {}) {
|
|
153
|
+
const runSync = options.runSync ?? productionRunSync;
|
|
154
|
+
const config = options.configPath ? readOfficialPathConfig(options.configPath) : {};
|
|
155
|
+
const candidates = config.codexPath ? [path.resolve(config.codexPath)] : options.defaultCodexPaths ?? DEFAULT_CODEX_PATHS;
|
|
156
|
+
const found = candidates.find((candidate) => existsSync(candidate));
|
|
157
|
+
if (!found) {
|
|
158
|
+
throw notFoundError("Codex app-server", candidates, "codexPath", "Find the OpenAI-signed \"codex\" executable inside ChatGPT.app.", options.configPath);
|
|
159
|
+
}
|
|
160
|
+
const codexPath = realpathSync(found);
|
|
161
|
+
verifySignedBinary(codexPath, runSync);
|
|
162
|
+
return codexPath;
|
|
110
163
|
}
|
|
111
164
|
export function verifyOfficialDirectBroker(options = {}) {
|
|
112
165
|
const runSync = options.runSync ?? productionRunSync;
|
|
113
|
-
|
|
166
|
+
const codexPath = resolveOfficialCodex({ ...options, runSync });
|
|
114
167
|
const client = resolveOfficialComputerUseClient({ ...options, runSync });
|
|
115
|
-
const version = runSync(
|
|
168
|
+
const version = runSync(codexPath, ["--version"]);
|
|
116
169
|
if (version.status !== 0 || !/^codex-cli\s+\d+\./.test((version.stdout ?? "").trim())) {
|
|
117
170
|
throw new BrokerVerificationError("Could not verify the app-bundled Codex app-server version");
|
|
118
171
|
}
|
|
@@ -121,7 +174,7 @@ export function verifyOfficialDirectBroker(options = {}) {
|
|
|
121
174
|
if (build.status !== 0 || !clientBuild) {
|
|
122
175
|
throw new BrokerVerificationError("Could not verify the official Computer Use client build");
|
|
123
176
|
}
|
|
124
|
-
return { brokerVersion: (version.stdout ?? "").trim(), clientBuild, client };
|
|
177
|
+
return { brokerVersion: (version.stdout ?? "").trim(), clientBuild, client, codexPath };
|
|
125
178
|
}
|
|
126
179
|
function buildBrokerEnv(codexHome, tempRoot) {
|
|
127
180
|
const env = {
|
|
@@ -364,8 +417,8 @@ async function terminateGroup(proc, workDir, processEnumeratorCommand = "/usr/bi
|
|
|
364
417
|
}
|
|
365
418
|
export async function createOfficialDirectToolSession(options = {}) {
|
|
366
419
|
const verification = options.skipSignatureVerification
|
|
367
|
-
? { brokerVersion: "test-app-server", clientBuild: "test-client", client: undefined }
|
|
368
|
-
: verifyOfficialDirectBroker();
|
|
420
|
+
? { brokerVersion: "test-app-server", clientBuild: "test-client", client: undefined, codexPath: undefined }
|
|
421
|
+
: verifyOfficialDirectBroker({ configPath: options.configPath });
|
|
369
422
|
const tempRoot = await mkdtemp(path.join(os.tmpdir(), "pi-direct-computer-use."));
|
|
370
423
|
const codexHome = path.join(tempRoot, "codex-home");
|
|
371
424
|
const workDir = path.join(tempRoot, "work");
|
|
@@ -456,7 +509,9 @@ export async function createOfficialDirectToolSession(options = {}) {
|
|
|
456
509
|
return closePromise;
|
|
457
510
|
};
|
|
458
511
|
try {
|
|
459
|
-
const command = options.appServerCommand ??
|
|
512
|
+
const command = options.appServerCommand ?? verification.codexPath;
|
|
513
|
+
if (!command)
|
|
514
|
+
throw new BrokerVerificationError("The Codex app-server was not verified");
|
|
460
515
|
let commandArgs = options.appServerArgs;
|
|
461
516
|
if (!commandArgs) {
|
|
462
517
|
if (!verification.client)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-broker.js","sourceRoot":"","sources":["../src/direct-broker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"direct-broker.js","sourceRoot":"","sources":["../src/direct-broker.ts"],"names":[],"mappings":"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"}
|
package/dist/direct-service.d.ts
CHANGED
|
@@ -12,11 +12,14 @@ export interface DirectServiceDependencies {
|
|
|
12
12
|
supportsOpenAiFormElicitation?: boolean;
|
|
13
13
|
callTool?: typeof callOfficialDirectTool;
|
|
14
14
|
}
|
|
15
|
+
export declare function defaultStateRoot(): string;
|
|
15
16
|
export declare function executeDirectTool(raw: JsonValue, deps?: DirectServiceDependencies): Promise<DirectResponse>;
|
|
16
17
|
interface DirectStatus extends JsonObject {
|
|
17
18
|
stateRoot: string;
|
|
18
19
|
permissionMode: "no-permissions";
|
|
20
|
+
configPath: string;
|
|
19
21
|
brokerVerified: boolean;
|
|
22
|
+
brokerError?: string;
|
|
20
23
|
brokerVersion?: string;
|
|
21
24
|
clientBuild?: string;
|
|
22
25
|
methods: DirectMethod[];
|
package/dist/direct-service.js
CHANGED
|
@@ -3,13 +3,13 @@ import { homedir } from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { appendAudit } from "./audit.js";
|
|
6
|
-
import { callOfficialDirectTool, DirectBrokerCallError, verifyOfficialDirectBroker, } from "./direct-broker.js";
|
|
6
|
+
import { callOfficialDirectTool, DirectBrokerCallError, pathConfigFile, verifyOfficialDirectBroker, } from "./direct-broker.js";
|
|
7
7
|
import { COMPUTER_USE_METHODS, validateDirectArguments, } from "./tools.js";
|
|
8
8
|
const requestSchema = z.object({
|
|
9
9
|
method: z.enum(COMPUTER_USE_METHODS),
|
|
10
10
|
arguments: z.record(z.string(), z.json()).default({}),
|
|
11
11
|
});
|
|
12
|
-
function defaultStateRoot() {
|
|
12
|
+
export function defaultStateRoot() {
|
|
13
13
|
return process.env.CODEX_COMPUTER_USE_HOME || path.join(homedir(), ".direct-computer-use");
|
|
14
14
|
}
|
|
15
15
|
function auditAppIdentifier(app) {
|
|
@@ -69,6 +69,7 @@ export async function executeDirectTool(raw, deps = {}) {
|
|
|
69
69
|
timeoutMs: 120_000,
|
|
70
70
|
onElicitation: deps.onElicitation,
|
|
71
71
|
supportsOpenAiFormElicitation: deps.supportsOpenAiFormElicitation,
|
|
72
|
+
configPath: pathConfigFile(stateRoot),
|
|
72
73
|
});
|
|
73
74
|
brokerCleanupVerified = broker.brokerCleanupVerified;
|
|
74
75
|
outcome = broker.isError ? "official_error" : "ok";
|
|
@@ -115,17 +116,20 @@ export async function executeDirectTool(raw, deps = {}) {
|
|
|
115
116
|
export function getDirectStatus(stateRoot = defaultStateRoot()) {
|
|
116
117
|
const status = {
|
|
117
118
|
stateRoot,
|
|
119
|
+
configPath: pathConfigFile(stateRoot),
|
|
118
120
|
permissionMode: "no-permissions",
|
|
119
121
|
brokerVerified: false,
|
|
120
122
|
methods: [...COMPUTER_USE_METHODS],
|
|
121
123
|
};
|
|
122
124
|
try {
|
|
123
|
-
const verification = verifyOfficialDirectBroker();
|
|
125
|
+
const verification = verifyOfficialDirectBroker({ configPath: status.configPath });
|
|
124
126
|
status.brokerVerified = true;
|
|
125
127
|
status.brokerVersion = verification.brokerVersion;
|
|
126
128
|
status.clientBuild = verification.clientBuild;
|
|
127
129
|
}
|
|
128
|
-
catch {
|
|
130
|
+
catch (error) {
|
|
131
|
+
status.brokerError = error instanceof Error ? error.message : String(error);
|
|
132
|
+
}
|
|
129
133
|
return status;
|
|
130
134
|
}
|
|
131
135
|
//# sourceMappingURL=direct-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-service.js","sourceRoot":"","sources":["../src/direct-service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAC3D,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,GAI1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,oBAAoB,EACpB,uBAAuB,GAKvB,MAAM,YAAY,CAAC;AAEpB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACrD,CAAC,CAAC;AAsBH,
|
|
1
|
+
{"version":3,"file":"direct-service.js","sourceRoot":"","sources":["../src/direct-service.ts"],"names":[],"mappings":"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"}
|
package/dist/session-executor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createOfficialDirectToolSession, } from "./direct-broker.js";
|
|
2
|
-
import { executeDirectTool, } from "./direct-service.js";
|
|
1
|
+
import { createOfficialDirectToolSession, pathConfigFile, } from "./direct-broker.js";
|
|
2
|
+
import { defaultStateRoot, executeDirectTool, } from "./direct-service.js";
|
|
3
3
|
export class DirectSessionExecutor {
|
|
4
4
|
queue = Promise.resolve();
|
|
5
5
|
session;
|
|
@@ -59,6 +59,7 @@ export class DirectSessionExecutor {
|
|
|
59
59
|
callTool: async (directMethod, args, options) => {
|
|
60
60
|
this.session = await (this.dependencies.createSession ?? createOfficialDirectToolSession)({
|
|
61
61
|
supportsOpenAiFormElicitation: dependencies.supportsOpenAiFormElicitation === true,
|
|
62
|
+
configPath: pathConfigFile(dependencies.stateRoot ?? defaultStateRoot()),
|
|
62
63
|
});
|
|
63
64
|
return this.session.call(directMethod, args, options);
|
|
64
65
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-executor.js","sourceRoot":"","sources":["../src/session-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,+BAA+B,
|
|
1
|
+
{"version":3,"file":"session-executor.js","sourceRoot":"","sources":["../src/session-executor.ts"],"names":[],"mappings":"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"}
|
package/integrations/pi/index.ts
CHANGED
|
@@ -16,21 +16,46 @@ import {
|
|
|
16
16
|
type DirectBrokerElicitationRequest,
|
|
17
17
|
type DirectBrokerElicitationResponse,
|
|
18
18
|
} from "../../dist/direct-broker.js";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
TOOL_INPUT_SCHEMAS,
|
|
22
|
-
TOOL_METADATA,
|
|
23
|
-
COMPUTER_USE_METHODS,
|
|
24
|
-
type DirectMethod,
|
|
25
|
-
type JsonObject,
|
|
26
|
-
} from "../../dist/tools.js";
|
|
19
|
+
import { ComputerUseCodeExecutor } from "../../dist/code-executor.js";
|
|
20
|
+
import { type JsonObject } from "../../dist/tools.js";
|
|
27
21
|
|
|
28
22
|
const jsonObjectSchema = z.record(z.string(), z.json());
|
|
29
|
-
const
|
|
23
|
+
const codeParameters = {
|
|
24
|
+
type: "object",
|
|
25
|
+
additionalProperties: false,
|
|
26
|
+
required: ["code"],
|
|
27
|
+
properties: {
|
|
28
|
+
code: {
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "JavaScript body to execute. Use await sky.<method>(args), emit(value), emitImage(screenshot), and store for state shared across calls.",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
} as const;
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
const codeDescription = `Run JavaScript that composes OpenAI's official signed macOS Computer Use methods in one call. No nested model is used.
|
|
36
|
+
|
|
37
|
+
Available globals:
|
|
38
|
+
- sky.list_apps() -> text app inventory
|
|
39
|
+
- sky.get_app_state({ app, disableDiff? }) -> { app, text, screenshot }
|
|
40
|
+
- sky.click({ app, element_index?, x?, y?, mouse_button?, click_count? })
|
|
41
|
+
- sky.perform_secondary_action({ app, element_index, action })
|
|
42
|
+
- sky.set_value({ app, element_index, value })
|
|
43
|
+
- sky.select_text({ app, element_index, text, prefix?, suffix?, selection? })
|
|
44
|
+
- sky.scroll({ app, element_index, direction, pages? })
|
|
45
|
+
- sky.drag({ app, from_x, from_y, to_x, to_y })
|
|
46
|
+
- sky.press_key({ app, key })
|
|
47
|
+
- sky.type_text({ app, text })
|
|
48
|
+
- emit(value) returns text or JSON to Pi
|
|
49
|
+
- emitImage(state.screenshot) returns a screenshot to Pi
|
|
50
|
+
- store is a persistent JSON object shared across calls
|
|
51
|
+
|
|
52
|
+
get_app_state may return an accessibility-tree diff after the first inspection. Pass disableDiff: true when you need a fresh full tree.
|
|
53
|
+
|
|
54
|
+
Example:
|
|
55
|
+
const state = await sky.get_app_state({ app: "TextEdit" });
|
|
56
|
+
emit(state.text);
|
|
57
|
+
|
|
58
|
+
Batch known actions sequentially, then inspect again before deciding the next step.`;
|
|
34
59
|
|
|
35
60
|
interface PiContentResult {
|
|
36
61
|
content: Array<{ type: "text"; text: string } | { type: "image"; data: string; mimeType: string }>;
|
|
@@ -38,34 +63,44 @@ interface PiContentResult {
|
|
|
38
63
|
}
|
|
39
64
|
|
|
40
65
|
export async function toPiContent(content: JsonObject[]): Promise<PiContentResult> {
|
|
41
|
-
const textBlocks = content
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const tempDir = await mkdtemp(path.join(tmpdir(), "pi-computer-use-"));
|
|
51
|
-
fullOutputPath = path.join(tempDir, "output.txt");
|
|
52
|
-
await writeFile(fullOutputPath, textBlocks.join("\n\n"), { encoding: "utf8", mode: 0o600 });
|
|
66
|
+
const textBlocks = content.filter((block) => block.type !== "image").map((block) => String(block.text ?? ""));
|
|
67
|
+
const fullText = textBlocks.join("\n\n");
|
|
68
|
+
const aggregate = truncateHead(fullText, { maxLines: DEFAULT_MAX_LINES, maxBytes: DEFAULT_MAX_BYTES });
|
|
69
|
+
if (!aggregate.truncated) {
|
|
70
|
+
return {
|
|
71
|
+
content: content.map((block) => block.type === "image"
|
|
72
|
+
? { type: "image", data: String(block.data), mimeType: String(block.mimeType) }
|
|
73
|
+
: { type: "text", text: String(block.text ?? "") }),
|
|
74
|
+
};
|
|
53
75
|
}
|
|
54
76
|
|
|
55
|
-
const
|
|
77
|
+
const tempDir = await mkdtemp(path.join(tmpdir(), "pi-computer-use-"));
|
|
78
|
+
const fullOutputPath = path.join(tempDir, "output.txt");
|
|
79
|
+
await writeFile(fullOutputPath, fullText, { encoding: "utf8", mode: 0o600 });
|
|
80
|
+
const suffix = `\n\n[Official Computer Use text truncated: showing ${aggregate.outputLines} of ${aggregate.totalLines} lines (${formatSize(aggregate.outputBytes)} of ${formatSize(aggregate.totalBytes)}). Full output saved to: ${fullOutputPath}]`;
|
|
81
|
+
const result: PiContentResult = { content: [], fullOutputPath };
|
|
56
82
|
let textIndex = 0;
|
|
83
|
+
let textOffset = 0;
|
|
84
|
+
let noticeAdded = false;
|
|
57
85
|
for (const block of content) {
|
|
58
86
|
if (block.type === "image") {
|
|
59
87
|
result.content.push({ type: "image", data: String(block.data), mimeType: String(block.mimeType) });
|
|
60
88
|
continue;
|
|
61
89
|
}
|
|
62
|
-
const
|
|
63
|
-
const
|
|
64
|
-
|
|
90
|
+
const blockText = String(block.text ?? "");
|
|
91
|
+
const start = textOffset + (textIndex > 0 ? 2 : 0);
|
|
92
|
+
const end = start + blockText.length;
|
|
93
|
+
const retained = aggregate.content.length > start
|
|
94
|
+
? blockText.slice(0, Math.min(end, aggregate.content.length) - start)
|
|
65
95
|
: "";
|
|
66
|
-
|
|
96
|
+
const cutoffHere: boolean = !noticeAdded && aggregate.content.length < end;
|
|
97
|
+
if (retained || cutoffHere) {
|
|
98
|
+
result.content.push({ type: "text", text: `${retained}${cutoffHere ? suffix : ""}` });
|
|
99
|
+
noticeAdded ||= cutoffHere;
|
|
100
|
+
}
|
|
101
|
+
textOffset = end;
|
|
102
|
+
textIndex += 1;
|
|
67
103
|
}
|
|
68
|
-
if (fullOutputPath) result.fullOutputPath = fullOutputPath;
|
|
69
104
|
return result;
|
|
70
105
|
}
|
|
71
106
|
|
|
@@ -127,7 +162,7 @@ export async function handleOfficialElicitation(
|
|
|
127
162
|
|
|
128
163
|
export default function directComputerUse(pi: ExtensionAPI) {
|
|
129
164
|
const stateRoot = process.env.CODEX_COMPUTER_USE_HOME || path.join(getAgentDir(), "direct-computer-use");
|
|
130
|
-
const
|
|
165
|
+
const codeExecutor = new ComputerUseCodeExecutor();
|
|
131
166
|
|
|
132
167
|
pi.registerCommand("computer-use-status", {
|
|
133
168
|
description: "Show Computer Use status",
|
|
@@ -136,50 +171,45 @@ export default function directComputerUse(pi: ExtensionAPI) {
|
|
|
136
171
|
},
|
|
137
172
|
});
|
|
138
173
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
const label = theme.fg("toolTitle", theme.bold(piName));
|
|
177
|
-
return new Text(app ? `${label} ${theme.fg("accent", app)}` : label, 0, 0);
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
}
|
|
174
|
+
pi.registerTool({
|
|
175
|
+
name: "computer_use",
|
|
176
|
+
label: "Computer Use",
|
|
177
|
+
description: codeDescription,
|
|
178
|
+
promptSnippet: "Run composable JavaScript against OpenAI's official signed macOS Computer Use surface",
|
|
179
|
+
promptGuidelines: [
|
|
180
|
+
"Use computer_use for macOS app UI work, composing known sequential actions in one JavaScript call and emitting only the state needed for the next decision.",
|
|
181
|
+
],
|
|
182
|
+
// SAFETY: Pi accepts this standard JSON Schema object as a custom-tool parameter schema.
|
|
183
|
+
parameters: codeParameters as any,
|
|
184
|
+
async execute(_toolCallId, params, signal, _onUpdate, ctx) {
|
|
185
|
+
const { code } = z.object({ code: z.string() }).parse(params);
|
|
186
|
+
const result = await codeExecutor.execute(code, {
|
|
187
|
+
stateRoot,
|
|
188
|
+
signal,
|
|
189
|
+
supportsOpenAiFormElicitation: true,
|
|
190
|
+
onElicitation: (request) => handleOfficialElicitation(
|
|
191
|
+
request,
|
|
192
|
+
ctx,
|
|
193
|
+
async (url) => (await pi.exec("/usr/bin/open", ["--", url], { signal, timeout: 15_000 })).code === 0,
|
|
194
|
+
),
|
|
195
|
+
});
|
|
196
|
+
const rendered = await toPiContent(result.content);
|
|
197
|
+
const details: JsonObject = { calls: result.calls };
|
|
198
|
+
if (result.error) details.error = result.error;
|
|
199
|
+
if (rendered.fullOutputPath) details.fullOutputPath = rendered.fullOutputPath;
|
|
200
|
+
return { content: rendered.content, details };
|
|
201
|
+
},
|
|
202
|
+
renderCall(args, theme) {
|
|
203
|
+
const parsed = z.object({ code: z.string() }).safeParse(args);
|
|
204
|
+
const firstLine = parsed.success
|
|
205
|
+
? parsed.data.code.split("\n").map((line) => line.trim()).find(Boolean)?.slice(0, 100)
|
|
206
|
+
: undefined;
|
|
207
|
+
const label = theme.fg("toolTitle", theme.bold("computer_use"));
|
|
208
|
+
return new Text(firstLine ? `${label} ${theme.fg("dim", firstLine)}` : label, 0, 0);
|
|
209
|
+
},
|
|
210
|
+
});
|
|
181
211
|
|
|
182
|
-
pi.on("session_start", () => pi.setActiveTools([...new Set([...pi.getActiveTools(),
|
|
183
|
-
pi.on("agent_settled", () =>
|
|
184
|
-
pi.on("session_shutdown", () =>
|
|
212
|
+
pi.on("session_start", () => pi.setActiveTools([...new Set([...pi.getActiveTools(), "computer_use"])]));
|
|
213
|
+
pi.on("agent_settled", () => codeExecutor.close());
|
|
214
|
+
pi.on("session_shutdown", () => codeExecutor.close());
|
|
185
215
|
}
|
package/package.json
CHANGED