@melra/computer-runtime 0.3.0-alpha.10

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,259 @@
1
+ // Copyright 2026 XAGI Labs Private Limited
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { describe, expect, it } from "vitest";
4
+ import { ComputerOperationSchema } from "@melra/protocol";
5
+ import { ComputerRuntime, matchElement, parseOcrElements, parseSecureInput, } from "./index.js";
6
+ class TestAdapter {
7
+ overrides;
8
+ calls = [];
9
+ operations = [];
10
+ /** What `inspect` reports back; a live desktop is the only other source. */
11
+ elements = [];
12
+ constructor(overrides = {}) {
13
+ this.overrides = overrides;
14
+ }
15
+ async capabilities() {
16
+ return {
17
+ platform: "darwin",
18
+ adapter: "macos-native",
19
+ available: true,
20
+ screenshot: true,
21
+ pointer: true,
22
+ keyboard: true,
23
+ scroll: true,
24
+ inspect: true,
25
+ elements: true,
26
+ ocr: false,
27
+ drag: true,
28
+ coordinateSpaces: ["normalized", "pixel"],
29
+ limitations: [],
30
+ ...this.overrides,
31
+ };
32
+ }
33
+ async execute(operation) {
34
+ this.calls.push(operation.action);
35
+ this.operations.push(operation);
36
+ return {
37
+ success: true,
38
+ action: operation.action,
39
+ ...(operation.action === "inspect" ? { elements: this.elements } : {}),
40
+ };
41
+ }
42
+ }
43
+ const BUTTON = (name, x) => ({
44
+ role: "AXButton",
45
+ name,
46
+ x,
47
+ y: 40,
48
+ width: 80,
49
+ height: 20,
50
+ });
51
+ describe("ComputerRuntime", () => {
52
+ it("reports adapter capabilities without a mutation", async () => {
53
+ const adapter = new TestAdapter();
54
+ const runtime = new ComputerRuntime({
55
+ artifactDirectory: "/tmp",
56
+ adapter,
57
+ });
58
+ const result = await runtime.execute(ComputerOperationSchema.parse({
59
+ kind: "computer",
60
+ action: "capabilities",
61
+ }));
62
+ expect(result.available).toBe(true);
63
+ expect(adapter.calls).toEqual([]);
64
+ });
65
+ it("requires explicit bounded coordinates for pointer actions", async () => {
66
+ const runtime = new ComputerRuntime({
67
+ artifactDirectory: "/tmp",
68
+ adapter: new TestAdapter(),
69
+ });
70
+ await expect(runtime.execute(ComputerOperationSchema.parse({
71
+ kind: "computer",
72
+ action: "click",
73
+ }))).rejects.toThrow("computer_click_requires_coordinates");
74
+ await expect(runtime.execute(ComputerOperationSchema.parse({
75
+ kind: "computer",
76
+ action: "click",
77
+ coordinateSpace: "normalized",
78
+ x: 2,
79
+ y: 0.5,
80
+ }))).rejects.toThrow("computer_normalized_coordinates_out_of_range");
81
+ });
82
+ it.each([
83
+ ["screenshot", "screenshot", "computer_screenshot_unavailable"],
84
+ ["inspect", "inspect", "computer_inspect_unavailable"],
85
+ ["click", "pointer", "computer_pointer_unavailable"],
86
+ ["drag", "drag", "computer_drag_unavailable"],
87
+ ["type", "keyboard", "computer_keyboard_unavailable"],
88
+ ["scroll", "scroll", "computer_scroll_unavailable"],
89
+ ])("rejects %s when its adapter capability is unavailable", async (action, capability, error) => {
90
+ const adapter = new TestAdapter({ [capability]: false });
91
+ const runtime = new ComputerRuntime({
92
+ artifactDirectory: "/tmp",
93
+ adapter,
94
+ });
95
+ const operation = {
96
+ kind: "computer",
97
+ action,
98
+ ...(action === "click"
99
+ ? { coordinateSpace: "pixel", x: 10, y: 10 }
100
+ : {}),
101
+ ...(action === "drag"
102
+ ? { coordinateSpace: "pixel", x: 10, y: 10, toX: 40, toY: 40 }
103
+ : {}),
104
+ ...(action === "type" ? { text: "safe" } : {}),
105
+ };
106
+ await expect(runtime.execute(ComputerOperationSchema.parse(operation))).rejects.toThrow(error);
107
+ expect(adapter.calls).toEqual([]);
108
+ });
109
+ it("requires a destination for a drag and bounds it like the press point", async () => {
110
+ const adapter = new TestAdapter();
111
+ const runtime = new ComputerRuntime({
112
+ artifactDirectory: "/tmp",
113
+ adapter,
114
+ });
115
+ await expect(runtime.execute(ComputerOperationSchema.parse({
116
+ kind: "computer",
117
+ action: "drag",
118
+ coordinateSpace: "pixel",
119
+ x: 10,
120
+ y: 10,
121
+ }))).rejects.toThrow("computer_drag_requires_destination");
122
+ // The destination shares the coordinate space, so it has to be bounded by
123
+ // the same rule — an out-of-range `toY` used to slip through untouched.
124
+ await expect(runtime.execute(ComputerOperationSchema.parse({
125
+ kind: "computer",
126
+ action: "drag",
127
+ coordinateSpace: "normalized",
128
+ x: 0.1,
129
+ y: 0.1,
130
+ toX: 0.5,
131
+ toY: 4,
132
+ }))).rejects.toThrow("computer_normalized_coordinates_out_of_range");
133
+ expect(adapter.calls).toEqual([]);
134
+ });
135
+ it("passes a bounded drag and a read-only inspect to the adapter", async () => {
136
+ const adapter = new TestAdapter();
137
+ const runtime = new ComputerRuntime({
138
+ artifactDirectory: "/tmp",
139
+ adapter,
140
+ });
141
+ await runtime.execute(ComputerOperationSchema.parse({ kind: "computer", action: "inspect" }));
142
+ await runtime.execute(ComputerOperationSchema.parse({
143
+ kind: "computer",
144
+ action: "drag",
145
+ coordinateSpace: "normalized",
146
+ x: 0.1,
147
+ y: 0.2,
148
+ toX: 0.8,
149
+ toY: 0.9,
150
+ }));
151
+ expect(adapter.calls).toEqual(["inspect", "drag"]);
152
+ });
153
+ });
154
+ describe("matchElement", () => {
155
+ const elements = [
156
+ BUTTON("Save", 0),
157
+ BUTTON("Save As…", 100),
158
+ { role: "AXTextField", name: "Save", x: 200, y: 40, width: 60, height: 20 },
159
+ ];
160
+ it("prefers an exact name over the substring it is a prefix of", () => {
161
+ expect(matchElement(elements, { role: "AXButton", name: "Save" }).x).toBe(0);
162
+ });
163
+ it("matches a role case-insensitively and a name by substring", () => {
164
+ expect(matchElement(elements, { role: "axbutton", name: "as…" }).x).toBe(100);
165
+ });
166
+ it("refuses rather than guessing between equally good candidates", () => {
167
+ // Two exact "Save" matches across roles: picking either would be a coin
168
+ // flip on which control gets clicked.
169
+ expect(() => matchElement(elements, { name: "Save" })).toThrow("computer_target_ambiguous");
170
+ expect(() => matchElement(elements, { name: "Print" })).toThrow("computer_target_not_found");
171
+ expect(() => matchElement(elements, {})).toThrow("computer_target_requires_role_or_name");
172
+ });
173
+ it("refuses to click a reading it is not sure of", () => {
174
+ // Reported by `inspect` — a caller may want to know the word is there — but
175
+ // not clickable, because the point under a doubtful reading is a guess.
176
+ const read = [{ ...BUTTON("Delete", 0), role: "text", confidence: 0.42 }];
177
+ expect(() => matchElement(read, { name: "Delete" })).toThrow("computer_target_confidence_too_low");
178
+ expect(matchElement([{ ...read[0], confidence: 0.91 }], { name: "Delete" }).x).toBe(0);
179
+ });
180
+ });
181
+ describe("parseOcrElements", () => {
182
+ // Real `tesseract 5 … tsv` output, trimmed: a page row, the block/para/line
183
+ // rows above a word, and the words themselves.
184
+ const tsv = [
185
+ "level\tpage_num\tblock_num\tpar_num\tline_num\tword_num\tleft\ttop\twidth\theight\tconf\ttext",
186
+ "1\t1\t0\t0\t0\t0\t0\t0\t2940\t1912\t-1\t",
187
+ "4\t1\t1\t1\t1\t0\t42\t15\t167\t31\t-1\t",
188
+ "5\t1\t1\t1\t1\t1\t100\t40\t80\t20\t96.720352\tSave",
189
+ "5\t1\t1\t1\t1\t2\t300\t40\t90\t20\t41.5\tCancel",
190
+ "5\t1\t1\t1\t1\t3\t500\t40\t60\t20\t12.25\tl1lI",
191
+ "5\t1\t1\t1\t1\t4\t600\t40\t60\t20\t95.0\t ",
192
+ ].join("\n");
193
+ it("scales a Retina capture back onto the display it came from", () => {
194
+ // The image measured 2940 wide, the display is 1470: every box halves, so a
195
+ // click computed from one lands where the word actually is.
196
+ expect(parseOcrElements(tsv, 1470)).toEqual([
197
+ { role: "text", name: "Save", x: 50, y: 20, width: 40, height: 10, confidence: 0.97 },
198
+ { role: "text", name: "Cancel", x: 150, y: 20, width: 45, height: 10, confidence: 0.42 },
199
+ ]);
200
+ });
201
+ it("drops noise and reads nothing at all from a capture with no page row", () => {
202
+ // `l1lI` is under the reporting floor and the blank token has no name;
203
+ // without a page row there is no scale, and guessing one would move a click.
204
+ expect(parseOcrElements(tsv, 1470).map((e) => e.name)).not.toContain("l1lI");
205
+ expect(parseOcrElements("level\tpage_num\n4\t1", 1470)).toEqual([]);
206
+ });
207
+ });
208
+ describe("named targets", () => {
209
+ const click = (target, extra = {}) => ComputerOperationSchema.parse({
210
+ kind: "computer",
211
+ action: "click",
212
+ target,
213
+ ...extra,
214
+ });
215
+ it("inspects, then clicks the centre of the resolved element", async () => {
216
+ const adapter = new TestAdapter();
217
+ adapter.elements = [BUTTON("Save", 300)];
218
+ const runtime = new ComputerRuntime({ artifactDirectory: "/tmp", adapter });
219
+ const result = await runtime.execute(click({ name: "Save" }));
220
+ expect(adapter.calls).toEqual(["inspect", "click"]);
221
+ const acted = adapter.operations[1];
222
+ // 300 + 80/2, 40 + 20/2 — in pixels, because that is what the tree measures.
223
+ expect([acted.coordinateSpace, acted.x, acted.y]).toEqual(["pixel", 340, 50]);
224
+ expect(acted.target).toBe(undefined);
225
+ expect(result.element).toEqual(BUTTON("Save", 300));
226
+ });
227
+ it("refuses a target the platform or the request cannot support", async () => {
228
+ const adapter = new TestAdapter();
229
+ const runtime = new ComputerRuntime({ artifactDirectory: "/tmp", adapter });
230
+ adapter.elements = [BUTTON("Save", 300)];
231
+ await expect(runtime.execute(click({ name: "Save" }, { x: 10, y: 10 }))).rejects.toThrow("computer_target_conflicts_with_coordinates");
232
+ adapter.elements = [];
233
+ await expect(runtime.execute(click({ name: "Save" }))).rejects.toThrow("computer_elements_unavailable");
234
+ const blind = new ComputerRuntime({
235
+ artifactDirectory: "/tmp",
236
+ adapter: new TestAdapter({ elements: false }),
237
+ });
238
+ await expect(blind.execute(click({ name: "Save" }))).rejects.toThrow("computer_elements_unavailable");
239
+ });
240
+ });
241
+ describe("parseSecureInput", () => {
242
+ // Trimmed from real `ioreg -l -d 1 -w 0 -r -c IOResources` output on macOS 26.
243
+ const session = '"IOConsoleUsers" = ({"kCGSSessionOnConsoleKey"=Yes,"kSCSecuritySessionID"=100024,' +
244
+ '"kCGSSessionIDKey"=257,"kCGSSessionUserNameKey"="dheeraj"';
245
+ it("reads a held secure-input session as active", () => {
246
+ expect(parseSecureInput(`${session},"kCGSSessionSecureInputPID"=843})`)).toBe(true);
247
+ });
248
+ it("reads a session without the key, or with it cleared, as inactive", () => {
249
+ expect(parseSecureInput(`${session}})`)).toBe(false);
250
+ expect(parseSecureInput(`${session},"kCGSSessionSecureInputPID"=0})`)).toBe(false);
251
+ });
252
+ it("reports no reading at all when no console session was dumped", () => {
253
+ // Absence of the key in output that never described a session is not
254
+ // evidence that secure input is off — reporting `false` here would let a
255
+ // keystroke-swallowing state through as verified.
256
+ expect(parseSecureInput("+-o Root <class IORegistryEntry>")).toBe(undefined);
257
+ });
258
+ });
259
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sCAAsC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAA0B,MAAM,iBAAiB,CAAC;AAClF,OAAO,EACL,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW;IAOI;IANV,KAAK,GAAa,EAAE,CAAC;IACrB,UAAU,GAAwB,EAAE,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,GAAqB,EAAE,CAAC;IAEhC,YACmB,YAA2C,EAAE;QAA7C,cAAS,GAAT,SAAS,CAAoC;IAC7D,CAAC;IAEJ,KAAK,CAAC,YAAY;QAChB,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;YACzC,WAAW,EAAE,EAAE;YACf,GAAG,IAAI,CAAC,SAAS;SAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAA4B;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,CAAS,EAAkB,EAAE,CAAC,CAAC;IAC3D,IAAI,EAAE,UAAU;IAChB,IAAI;IACJ,CAAC;IACD,CAAC,EAAE,EAAE;IACL,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,iBAAiB,EAAE,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,cAAc;SACvB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,iBAAiB,EAAE,MAAM;YACzB,OAAO,EAAE,IAAI,WAAW,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CACb,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACzD,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CACb,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,OAAO;YACf,eAAe,EAAE,YAAY;YAC7B,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,GAAG;SACP,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,YAAY,EAAE,YAAY,EAAE,iCAAiC,CAAC;QAC/D,CAAC,SAAS,EAAE,SAAS,EAAE,8BAA8B,CAAC;QACtD,CAAC,OAAO,EAAE,SAAS,EAAE,8BAA8B,CAAC;QACpD,CAAC,MAAM,EAAE,MAAM,EAAE,2BAA2B,CAAC;QAC7C,CAAC,MAAM,EAAE,UAAU,EAAE,+BAA+B,CAAC;QACrD,CAAC,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,CAAC;KAC3C,CAAC,CACT,uDAAuD,EACvD,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,iBAAiB,EAAE,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,SAAS,GAAG;YAChB,IAAI,EAAE,UAAU;YAChB,MAAM;YACN,GAAG,CAAC,MAAM,KAAK,OAAO;gBACpB,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC5C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,KAAK,MAAM;gBACnB,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC9D,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;QAEF,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAC1D,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,iBAAiB,EAAE,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CACb,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,OAAO;YACxB,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACxD,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CACb,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,YAAY;YAC7B,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,CAAC;SACP,CAAC,CACH,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,iBAAiB,EAAE,MAAM;YACzB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,CACnB,uBAAuB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACvE,CAAC;QACF,MAAM,OAAO,CAAC,OAAO,CACnB,uBAAuB,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,YAAY;YAC7B,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;SACT,CAAC,CACH,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,QAAQ,GAAG;QACf,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;QACvB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAC5E,CAAC;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACtE,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAC5D,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAC7D,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAC9C,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAC1D,oCAAoC,CACrC,CAAC;QACF,MAAM,CACJ,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CACxE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,GAAG,GAAG;QACV,+FAA+F;QAC/F,0CAA0C;QAC1C,yCAAyC;QACzC,oDAAoD;QACpD,iDAAiD;QACjD,gDAAgD;QAChD,8CAA8C;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,4EAA4E;QAC5E,4DAA4D;QAC5D,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;YACrF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SACzF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,uEAAuE;QACvE,6EAA6E;QAC7E,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,KAAK,GAAG,CACZ,MAA8B,EAC9B,QAAiC,EAAE,EAChB,EAAE,CACrB,uBAAuB,CAAC,KAAK,CAAC;QAC5B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,OAAO;QACf,MAAM;QACN,GAAG,KAAK;KACT,CAAC,CAAC;IAEL,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QACrC,6EAA6E;QAC7E,MAAM,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5E,OAAO,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,CACV,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3D,CAAC,OAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAEhE,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACpE,+BAA+B,CAChC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;YAChC,iBAAiB,EAAE,MAAM;YACzB,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClE,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,+EAA+E;IAC/E,MAAM,OAAO,GACX,mFAAmF;QACnF,2DAA2D,CAAC;IAE9D,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CACJ,gBAAgB,CAAC,GAAG,OAAO,oCAAoC,CAAC,CACjE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,gBAAgB,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CACJ,gBAAgB,CAAC,GAAG,OAAO,kCAAkC,CAAC,CAC/D,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,qEAAqE;QACrE,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAChE,SAAS,CACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=windows.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.test.d.ts","sourceRoot":"","sources":["../src/windows.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ // Copyright 2026 XAGI Labs Private Limited
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { mkdtemp, rm, stat } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
6
+ import { ComputerOperationSchema } from "@melra/protocol";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ import { ComputerRuntime, createSystemComputerAdapter, escapeSendKeys } from "./index.js";
9
+ /**
10
+ * Windows computer use was entirely absent: the factory had no `win32` branch,
11
+ * so `capabilities` reported `unavailable` and every input action threw a bare
12
+ * `computer_use_unavailable`. CI ran on `windows-latest` and stayed green
13
+ * because nothing exercised Windows behaviour — which is why the adapter tests
14
+ * below run for real on Windows rather than against a stub.
15
+ */
16
+ const onWindows = process.platform === "win32";
17
+ const roots = [];
18
+ /**
19
+ * Two clocks, and both have to clear the same wait: vitest's own default killed
20
+ * these tests at 5s, and once that was raised the operation's `timeoutMs` cap
21
+ * killed them at 30s — which is why the schema now allows 120s for a computer
22
+ * action like every other operation kind.
23
+ *
24
+ * The wait is real, not slack. A computer action spawns a whole interpreter:
25
+ * `powershell.exe` cold-starts in seconds, the pointer script's
26
+ * `Add-Type -TypeDefinition` runs the C# compiler to build the P/Invoke shim,
27
+ * and the first such spawn after boot pays for a cold disk on top. That cost is
28
+ * per-process, so it is paid on every action, and a caller who leaves
29
+ * `timeoutMs` at its 10s default is closer to the edge on a cold or loaded
30
+ * machine than the number suggests.
31
+ */
32
+ const POWERSHELL_TEST_TIMEOUT_MS = 120_000;
33
+ afterEach(async () => {
34
+ await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true })));
35
+ });
36
+ async function workspace() {
37
+ const root = await mkdtemp(join(tmpdir(), "melra-computer-"));
38
+ roots.push(root);
39
+ return root;
40
+ }
41
+ describe("escapeSendKeys", () => {
42
+ it("neutralizes the characters SendKeys reads as modifiers", () => {
43
+ // Unescaped, `+` is Shift, `^` is Ctrl, `%` is Alt, `~` is Enter, and the
44
+ // brackets group — so this password would have typed a chord and pressed
45
+ // Enter instead of entering any of these characters.
46
+ expect(escapeSendKeys("a+b^c%d~e")).toBe("a{+}b{^}c{%}d{~}e");
47
+ expect(escapeSendKeys("({x})[y]")).toBe("{(}{{}x{}}{)}{[}y{]}");
48
+ });
49
+ it("leaves ordinary text alone", () => {
50
+ expect(escapeSendKeys("Hello, world 123")).toBe("Hello, world 123");
51
+ });
52
+ });
53
+ describe.runIf(onWindows)("Windows computer adapter", () => {
54
+ it("reports itself as available rather than unavailable", async () => {
55
+ const runtime = new ComputerRuntime({
56
+ artifactDirectory: await workspace(),
57
+ adapter: createSystemComputerAdapter(),
58
+ });
59
+ const observed = await runtime.execute(ComputerOperationSchema.parse({ kind: "computer", action: "capabilities" }));
60
+ expect(observed.platform).toBe("win32");
61
+ expect(observed.adapter).toBe("windows-powershell");
62
+ expect(observed.available).toBe(true);
63
+ expect(observed.screenshot).toBe(true);
64
+ expect(observed.pointer).toBe(true);
65
+ // The honest ceiling of SendKeys-based input, stated rather than implied.
66
+ expect(observed.limitations.join(" ")).toContain("focus");
67
+ });
68
+ it("captures a real screenshot to the artifact directory", async () => {
69
+ const artifactDirectory = join(await workspace(), "artifacts");
70
+ const runtime = new ComputerRuntime({
71
+ artifactDirectory,
72
+ adapter: createSystemComputerAdapter(),
73
+ });
74
+ const observed = await runtime.execute(ComputerOperationSchema.parse({
75
+ kind: "computer",
76
+ action: "screenshot",
77
+ timeoutMs: 90_000,
78
+ }));
79
+ expect(observed.captured).toBe(true);
80
+ expect(String(observed.path).startsWith(artifactDirectory)).toBe(true);
81
+ const written = await stat(String(observed.path));
82
+ expect(written.size).toBeGreaterThan(0);
83
+ expect(observed.size).toBe(written.size);
84
+ expect(String(observed.sha256)).toHaveLength(64);
85
+ }, POWERSHELL_TEST_TIMEOUT_MS);
86
+ it("resolves a normalized coordinate against the virtual desktop", async () => {
87
+ const runtime = new ComputerRuntime({
88
+ artifactDirectory: await workspace(),
89
+ adapter: createSystemComputerAdapter(),
90
+ });
91
+ // A pointer move is the P/Invoke path — the part most likely to be wrong —
92
+ // and moving the cursor on a headless runner has no side effect worth
93
+ // avoiding. Clicking would, so this does not click.
94
+ const observed = await runtime.execute(ComputerOperationSchema.parse({
95
+ kind: "computer",
96
+ action: "move",
97
+ x: 0.5,
98
+ y: 0.5,
99
+ coordinateSpace: "normalized",
100
+ timeoutMs: 90_000,
101
+ }));
102
+ expect(observed.success).toBe(true);
103
+ // The pixel point comes back from the script rather than being recomputed
104
+ // here, so a normalized centre must land somewhere other than the origin.
105
+ expect(observed.x).toBeGreaterThan(0);
106
+ expect(observed.y).toBeGreaterThan(0);
107
+ }, POWERSHELL_TEST_TIMEOUT_MS);
108
+ it("names a timeout as a timeout instead of echoing the script", async () => {
109
+ const runtime = new ComputerRuntime({
110
+ artifactDirectory: await workspace(),
111
+ adapter: createSystemComputerAdapter(),
112
+ });
113
+ /**
114
+ * This is how the screenshot failure first presented: Node builds the
115
+ * rejection message from the whole command line, so the caller received
116
+ * fifteen lines of echoed PowerShell with an empty stderr and no way to
117
+ * tell a killed helper from a script that failed instantly.
118
+ *
119
+ * 100ms is unreachable for a process that has to load the CLR, so this is a
120
+ * timeout by construction rather than by timing luck.
121
+ */
122
+ await expect(runtime.execute(ComputerOperationSchema.parse({
123
+ kind: "computer",
124
+ action: "screenshot",
125
+ timeoutMs: 100,
126
+ }))).rejects.toThrow(/^computer_helper_timeout:powershell\.exe:100ms$/);
127
+ }, POWERSHELL_TEST_TIMEOUT_MS);
128
+ });
129
+ //# sourceMappingURL=windows.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.test.js","sourceRoot":"","sources":["../src/windows.test.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@melra/computer-runtime",
3
+ "version": "0.3.0-alpha.10",
4
+ "description": "Computer-use reference effect adapter for the MELRA kernel.",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/XAGI-Lab/melra.git",
9
+ "directory": "packages/computer-runtime"
10
+ },
11
+ "homepage": "https://github.com/XAGI-Lab/melra#readme",
12
+ "bugs": "https://github.com/XAGI-Lab/melra/issues",
13
+ "type": "module",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "dependencies": {
24
+ "@melra/protocol": "0.3.0-alpha.10"
25
+ },
26
+ "scripts": {
27
+ "build": "tsc -p tsconfig.json",
28
+ "clean": "rm -rf dist",
29
+ "test": "vitest run",
30
+ "typecheck": "tsc -p tsconfig.json --noEmit"
31
+ }
32
+ }