@anionex/dsh-computer-use 0.2.1 → 0.3.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.
Files changed (53) hide show
  1. package/README.md +13 -7
  2. package/README.zh.md +13 -7
  3. package/cordis.patch.yml +3 -0
  4. package/docs/interaction-policy.md +6 -4
  5. package/docs/interaction-policy.zh.md +7 -5
  6. package/lib/client.js +23 -11
  7. package/lib/client.js.map +1 -1
  8. package/lib/config.js +13 -3
  9. package/lib/config.js.map +1 -1
  10. package/lib/providers/macos.js +79 -14
  11. package/lib/providers/macos.js.map +1 -1
  12. package/lib/providers/native-helper.js +240 -17
  13. package/lib/providers/native-helper.js.map +1 -1
  14. package/lib/providers/unsupported.js +6 -0
  15. package/lib/providers/unsupported.js.map +1 -1
  16. package/lib/service.js +74 -32
  17. package/lib/service.js.map +1 -1
  18. package/lib/types/backend.d.ts +18 -3
  19. package/lib/types/backend.d.ts.map +1 -1
  20. package/lib/types/client/index.d.ts +5 -2
  21. package/lib/types/client/index.d.ts.map +1 -1
  22. package/lib/types/client/settings-validation.d.ts +3 -0
  23. package/lib/types/client/settings-validation.d.ts.map +1 -0
  24. package/lib/types/config.d.ts +7 -1
  25. package/lib/types/config.d.ts.map +1 -1
  26. package/lib/types/providers/macos.d.ts +8 -2
  27. package/lib/types/providers/macos.d.ts.map +1 -1
  28. package/lib/types/providers/native-helper.d.ts +9 -1
  29. package/lib/types/providers/native-helper.d.ts.map +1 -1
  30. package/lib/types/providers/unsupported.d.ts +6 -2
  31. package/lib/types/providers/unsupported.d.ts.map +1 -1
  32. package/lib/types/service.d.ts.map +1 -1
  33. package/native/macos/Sources/Fixture/main.swift +46 -0
  34. package/native/macos/Sources/Helper/CursorMotion.swift +67 -0
  35. package/native/macos/Sources/Helper/CursorOverlay.swift +334 -60
  36. package/native/macos/Sources/Helper/TargetedPointer.swift +23 -10
  37. package/native/macos/Sources/Helper/main.swift +80 -5
  38. package/native/macos/Sources/Monitor/main.swift +15 -1
  39. package/native/macos/bin/dsh-computer-use-helper +0 -0
  40. package/native/macos/manifest.json +3 -3
  41. package/package.json +16 -18
  42. package/scripts/build-client.mjs +0 -0
  43. package/scripts/build-native.mjs +0 -0
  44. package/scripts/model-e2e.mjs +0 -0
  45. package/scripts/validate.mjs +0 -0
  46. package/src/backend.ts +18 -3
  47. package/src/client/index.tsx +36 -13
  48. package/src/client/settings-validation.ts +14 -0
  49. package/src/config.ts +20 -4
  50. package/src/providers/macos.ts +102 -14
  51. package/src/providers/native-helper.ts +234 -17
  52. package/src/providers/unsupported.ts +11 -1
  53. package/src/service.ts +100 -37
@@ -35,7 +35,21 @@ export class MacOSBackend {
35
35
  options,
36
36
  }, signal);
37
37
  }
38
+ async activateForCursor(app, expectedStateHash, options, signal) {
39
+ return await this.client.invoke({
40
+ command: 'activate-for-cursor',
41
+ app,
42
+ expectedStateHash,
43
+ options,
44
+ actionTimeoutMs: this.config.actionTimeoutMs,
45
+ }, signal);
46
+ }
38
47
  async act(request, signal) {
48
+ if (request.action.kind === 'drag') {
49
+ const execution = await this.prepareNativeDrag(request, signal);
50
+ await execution.start();
51
+ return await execution.result;
52
+ }
39
53
  return await this.client.invoke({
40
54
  command: 'act',
41
55
  request: {
@@ -49,7 +63,47 @@ export class MacOSBackend {
49
63
  },
50
64
  }, signal);
51
65
  }
66
+ async actDragWithCursor(request, cursor, signal) {
67
+ const execution = await this.prepareNativeDrag(request, signal);
68
+ let started = false;
69
+ let cursorResult;
70
+ try {
71
+ cursorResult = await this.visualizeCursorPhase(cursor, 'during', signal, async () => {
72
+ await execution.start();
73
+ started = true;
74
+ });
75
+ }
76
+ catch (error) {
77
+ if (!started) {
78
+ execution.cancel();
79
+ await execution.result.catch(() => undefined);
80
+ throw error;
81
+ }
82
+ cursorResult = {
83
+ visible: false,
84
+ reason: `the agent cursor could not track the drag action: ${error instanceof Error ? error.message : String(error)}`,
85
+ };
86
+ }
87
+ return { action: await execution.result, cursor: cursorResult };
88
+ }
89
+ async prepareNativeDrag(request, signal) {
90
+ return await this.client.prepareDrag({
91
+ command: 'act',
92
+ request: {
93
+ ...request,
94
+ actionTimeoutMs: this.config.actionTimeoutMs,
95
+ limits: {
96
+ maxNodes: this.config.maxNodes,
97
+ maxDepth: this.config.maxDepth,
98
+ maxTextBytes: this.config.maxTextBytes,
99
+ },
100
+ },
101
+ }, signal, this.config.actionTimeoutMs + 2_000);
102
+ }
52
103
  async visualizeCursor(action, phase, signal) {
104
+ return await this.visualizeCursorPhase(action, phase, signal);
105
+ }
106
+ async visualizeCursorPhase(action, phase, signal, onMoveWritten) {
53
107
  if (this.config.interaction.cursorVisualization !== 'visible')
54
108
  return { visible: false, reason: 'the agent cursor is disabled by configuration' };
55
109
  // The overlay answers per command; the least visible outcome wins, because
@@ -60,17 +114,23 @@ export class MacOSBackend {
60
114
  outcome = response;
61
115
  };
62
116
  const autoHideMs = this.config.interaction.cursorAutoHideMs;
63
- const move = async (point, durationMs) => {
64
- record(await this.client.cursorCommand({
117
+ const move = async (point, onWritten) => {
118
+ const command = {
65
119
  op: 'move',
66
120
  x: point.x,
67
121
  y: point.y,
68
- durationMs,
69
- autoHideMs,
122
+ speedPxPerSecond: this.config.interaction.cursorSpeedPxPerSecond,
123
+ accelerationPxPerSecondSquared: this.config.interaction.cursorAccelerationPxPerSecondSquared,
124
+ // The after phase arms the configured timeout once native input has
125
+ // completed. Hiding during travel or dwell would invalidate press.
126
+ autoHideMs: 0,
70
127
  targetPid: action.targetPid,
71
128
  targetWindowNumber: action.targetWindowNumber,
72
129
  targetWindowFrame: action.targetWindowFrame,
73
- }, signal));
130
+ };
131
+ record(await (onWritten === undefined
132
+ ? this.client.cursorCommand(command, signal)
133
+ : this.client.cursorCommand(command, signal, onWritten)));
74
134
  };
75
135
  if (phase === 'after') {
76
136
  // Every action validates the bound target after native input. Only drag
@@ -84,26 +144,31 @@ export class MacOSBackend {
84
144
  }, signal));
85
145
  return outcome;
86
146
  }
147
+ if (phase === 'during') {
148
+ if (action.kind !== 'drag')
149
+ return { visible: false, reason: 'only drag has a during-action cursor phase' };
150
+ await move(action.to, onMoveWritten);
151
+ return outcome;
152
+ }
87
153
  const start = action.kind === 'drag' ? action.from : action.to;
88
154
  if (start === undefined)
89
155
  return { visible: false, reason: 'this action has no cursor position to show' };
90
- await move(start, this.config.interaction.cursorMotionMs);
91
- if (this.config.interaction.cursorMotionMs > 0) {
92
- await delay(this.config.interaction.cursorMotionMs, undefined, { signal });
93
- }
94
- if (action.kind === 'scroll')
156
+ // A move response means the native overlay reached its destination. Keep
157
+ // the configurable dwell after arrival and before the visual/native press.
158
+ await move(start);
159
+ if (!outcome.visible || action.kind === 'scroll')
95
160
  return outcome;
161
+ if (this.config.interaction.cursorClickDelayMs > 0) {
162
+ await delay(this.config.interaction.cursorClickDelayMs, undefined, { signal });
163
+ }
96
164
  record(await this.client.cursorCommand({
97
165
  op: 'press',
98
- autoHideMs,
166
+ autoHideMs: 0,
99
167
  targetPid: action.targetPid,
100
168
  targetWindowNumber: action.targetWindowNumber,
101
169
  targetWindowFrame: action.targetWindowFrame,
102
170
  sustainedPress: action.kind === 'drag',
103
171
  }, signal));
104
- if (action.kind === 'drag') {
105
- await move(action.to, Math.max(this.config.interaction.cursorMotionMs, 240));
106
- }
107
172
  return outcome;
108
173
  }
109
174
  async dispose() {
@@ -1 +1 @@
1
- {"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/providers/macos.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAExF,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAe3D,OAAO,EACL,MAAM,EACN,+BAA+B,EAC/B,aAAa,GAGd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAU7D,SAAS,aAAa,CAAC,GAAY,EAAE,MAAiC;IACpE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;QAC/B,CAAC,CAAC,IAAI,0BAA0B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACtD,CAAC;AAED,oCAAoC;AACpC,MAAM,OAAO,YAAY;IAIoB;IAHlC,IAAI,GAAG,UAAmB,CAAA;IAC1B,MAAM,CAAoB;IAEnC,YAAY,GAAY,EAAmB,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;QAC1E,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAA6B,EAAE,MAAmB;QACjE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAsB,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAA;IACpG,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAmB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAA;IACzF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAwB,EAAE,OAA8B,EAAE,MAAmB;QACzF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAoB;YACjD,OAAO,EAAE,SAAS;YAClB,GAAG;YACH,OAAO;SACR,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAA6B,EAAE,MAAmB;QAC1D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAsB;YACnD,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBAC5C,MAAM,EAAE;oBACN,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;iBACvC;aACF;SACF,EAAE,MAAM,CAAC,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA2B,EAAE,KAAyB,EAAE,MAAmB;QAC/F,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAA;QACjJ,2EAA2E;QAC3E,6EAA6E;QAC7E,IAAI,OAAO,GAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QACjD,MAAM,MAAM,GAAG,CAAC,QAA0B,EAAQ,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;gBAAE,OAAO,GAAG,QAAQ,CAAA;QAC9D,CAAC,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAA;QAC3D,MAAM,IAAI,GAAG,KAAK,EAAE,KAA+B,EAAE,UAAkB,EAAiB,EAAE;YACxF,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACrC,EAAE,EAAE,MAAM;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,UAAU;gBACV,UAAU;gBACV,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,EAAE,MAAM,CAAC,CAAC,CAAA;QACb,CAAC,CAAA;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACrC,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;gBACnD,UAAU;gBACV,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,EAAE,MAAM,CAAC,CAAC,CAAA;YACX,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAA;QAC9D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAA;QACxG,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAA;QAC5C,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACrC,EAAE,EAAE,OAAO;YACX,UAAU;YACV,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,cAAc,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM;SACvC,EAAE,MAAM,CAAC,CAAC,CAAA;QACX,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAmB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAA;QACpF,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,OAAO;YACvD,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA0C,EAAE,MAAmB;QAChF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAC9D,MAAM,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC5E,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAEL,QAAQ,CAAA;IAEzB,YAAY,GAAY,EAAE,SAA4B,EAAE;QACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,EAAE;YAC9E,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;SAC9C,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QAC9C,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8EAA8E,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAClD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YACrC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC7C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;gBACvB,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAA;QACvC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAA;IAC5H,CAAC;IAED,gFAAgF;IACtE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;;AAGH,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/providers/macos.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto';
3
3
  import { access, chmod, lstat, readFile, realpath, stat } from 'node:fs/promises';
4
4
  import { constants } from 'node:fs';
5
5
  import { dirname, resolve } from 'node:path';
6
+ import { createInterface } from 'node:readline';
6
7
  import { fileURLToPath } from 'node:url';
7
8
  import { ComputerUseError, computerUseError } from "../errors.js";
8
9
  /**
@@ -12,8 +13,19 @@ import { ComputerUseError, computerUseError } from "../errors.js";
12
13
  // Keep the bound finite. A timed-out generation is discarded before the next
13
14
  // serialized command, so a late frame cannot satisfy a later command.
14
15
  const CURSOR_RESPONSE_TIMEOUT_MS = 1_000;
16
+ const CURSOR_MOTION_RESPONSE_TIMEOUT_MS = 4_000;
15
17
  const CURSOR_READY_TIMEOUT_MS = 2_000;
16
18
  const CURSOR_PROTOCOL_MAX_BYTES = 64 * 1024;
19
+ function cursorResponseTimeout(command) {
20
+ if (command.op !== 'move')
21
+ return CURSOR_RESPONSE_TIMEOUT_MS;
22
+ if (typeof command.speedPxPerSecond === 'number')
23
+ return CURSOR_MOTION_RESPONSE_TIMEOUT_MS;
24
+ if (typeof command.durationMs === 'number' && Number.isFinite(command.durationMs)) {
25
+ return Math.max(CURSOR_RESPONSE_TIMEOUT_MS, Math.trunc(command.durationMs) + 2 * CURSOR_RESPONSE_TIMEOUT_MS);
26
+ }
27
+ return CURSOR_RESPONSE_TIMEOUT_MS;
28
+ }
17
29
  function collected(reader) {
18
30
  if (reader === undefined)
19
31
  return '';
@@ -64,9 +76,13 @@ function normalizeCursorResponse(command, response) {
64
76
  if (response.visible === true)
65
77
  return { result: { visible: true }, discardGeneration: false };
66
78
  if (response.visible === false) {
79
+ const reasonCode = response.reasonCode === 'target-not-frontmost' || response.reasonCode === 'target-invalid'
80
+ ? response.reasonCode
81
+ : undefined;
67
82
  return {
68
83
  result: {
69
84
  visible: false,
85
+ ...(reasonCode === undefined ? {} : { reasonCode }),
70
86
  ...(typeof response.reason === 'string' && response.reason.length > 0
71
87
  ? { reason: response.reason.slice(0, 1000) }
72
88
  : { reason: 'the native cursor overlay reported that the cursor is not visible' }),
@@ -88,6 +104,7 @@ export class NativeHelperClient {
88
104
  cursor;
89
105
  cursorStart;
90
106
  cursorCommandTail = Promise.resolve();
107
+ disposed = false;
91
108
  constructor(ctx, config, managedRoot = nativeRoot()) {
92
109
  this.ctx = ctx;
93
110
  this.config = config;
@@ -201,16 +218,187 @@ export class NativeHelperClient {
201
218
  throw new ComputerUseError(envelope.error.code, envelope.error.message.slice(0, 1000));
202
219
  return envelope.value;
203
220
  }
221
+ /** Prepare and validate a drag, then wait for an explicit pre-mouse-down start barrier. */
222
+ async prepareDrag(request, signal, readinessTimeoutMs) {
223
+ const prepared = this.prepared ?? await this.prepare(signal);
224
+ if (signal.aborted)
225
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native drag preparation was cancelled');
226
+ const processAbort = new AbortController();
227
+ const handle = this.ctx.subprocess.spawn({
228
+ argv: [prepared.path, '--drag-action'],
229
+ cwd: dirname(prepared.path),
230
+ stdio: {
231
+ stdin: 'pipe',
232
+ stdout: 'pipe',
233
+ stderr: { maxBytes: 64 * 1024 },
234
+ },
235
+ graceMs: 1000,
236
+ signal: processAbort.signal,
237
+ env: {
238
+ LANG: process.env.LANG ?? 'en_US.UTF-8',
239
+ LC_ALL: process.env.LC_ALL ?? 'en_US.UTF-8',
240
+ },
241
+ });
242
+ if (handle.stdin === undefined || handle.stdout === undefined) {
243
+ handle.terminate();
244
+ await handle.waitForExit();
245
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native drag barrier protocol pipes are unavailable');
246
+ }
247
+ const stdin = handle.stdin;
248
+ stdin.on('error', () => {
249
+ // Write callbacks and process completion own protocol error reporting.
250
+ });
251
+ const lines = createInterface({ input: handle.stdout, crlfDelay: Infinity });
252
+ const iterator = lines[Symbol.asyncIterator]();
253
+ const readLine = async (readSignal) => await new Promise((resolveLine, rejectLine) => {
254
+ const onAbort = () => { rejectLine(readSignal.reason); };
255
+ if (readSignal.aborted) {
256
+ onAbort();
257
+ return;
258
+ }
259
+ readSignal.addEventListener('abort', onAbort, { once: true });
260
+ void iterator.next().then(next => {
261
+ readSignal.removeEventListener('abort', onAbort);
262
+ if (next.done === true)
263
+ rejectLine(new Error('native drag helper closed before replying'));
264
+ else if (Buffer.byteLength(next.value) > 4 * 1024 * 1024)
265
+ rejectLine(new Error('native drag helper response exceeded its protocol limit'));
266
+ else
267
+ resolveLine(next.value);
268
+ }, error => {
269
+ readSignal.removeEventListener('abort', onAbort);
270
+ rejectLine(error);
271
+ });
272
+ });
273
+ const writeLine = async (line) => await new Promise((resolveWrite, rejectWrite) => {
274
+ stdin.write(`${line}\n`, error => {
275
+ if (error === undefined || error === null)
276
+ resolveWrite();
277
+ else
278
+ rejectWrite(error);
279
+ });
280
+ });
281
+ let started = false;
282
+ const onCallerAbort = () => {
283
+ if (!started)
284
+ processAbort.abort();
285
+ };
286
+ signal.addEventListener('abort', onCallerAbort);
287
+ const readinessTimeout = AbortSignal.timeout(readinessTimeoutMs);
288
+ try {
289
+ await writeLine(JSON.stringify({ protocolVersion: 1, ...request }));
290
+ const readySignal = AbortSignal.any([signal, readinessTimeout, processAbort.signal]);
291
+ const ready = JSON.parse(await readLine(readySignal));
292
+ if (ready.ok !== true || ready.event !== 'drag-ready') {
293
+ throw new Error('native drag helper returned an invalid ready frame');
294
+ }
295
+ }
296
+ catch (error) {
297
+ processAbort.abort();
298
+ await handle.done.catch(() => undefined);
299
+ signal.removeEventListener('abort', onCallerAbort);
300
+ lines.close();
301
+ if (signal.aborted)
302
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native drag preparation was cancelled', { cause: error });
303
+ if (readinessTimeout.aborted) {
304
+ throw new ComputerUseError('COMPUTER_TIMEOUT', `native drag preparation exceeded ${readinessTimeoutMs} milliseconds`, { cause: error });
305
+ }
306
+ throw computerUseError(error, 'native drag preparation failed');
307
+ }
308
+ const result = (async () => {
309
+ try {
310
+ const raw = await readLine(processAbort.signal);
311
+ const outcome = await handle.done;
312
+ let envelope;
313
+ try {
314
+ envelope = JSON.parse(raw);
315
+ }
316
+ catch (error) {
317
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native drag helper returned invalid JSON', { cause: error });
318
+ }
319
+ if (envelope.ok !== true)
320
+ throw new ComputerUseError(envelope.error.code, envelope.error.message.slice(0, 1000));
321
+ if (outcome.exitCode !== 0) {
322
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', `native drag helper exited ${String(outcome.exitCode)}`);
323
+ }
324
+ if (signal.aborted)
325
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native drag action was cancelled after safe mouse release');
326
+ return envelope.value;
327
+ }
328
+ catch (error) {
329
+ if (error instanceof ComputerUseError && error.code === 'COMPUTER_CANCELLED')
330
+ throw error;
331
+ if (signal.aborted) {
332
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native drag action was cancelled', { cause: error });
333
+ }
334
+ throw computerUseError(error, 'native drag action failed');
335
+ }
336
+ finally {
337
+ signal.removeEventListener('abort', onCallerAbort);
338
+ lines.close();
339
+ }
340
+ })();
341
+ void result.catch(() => undefined);
342
+ return {
343
+ result,
344
+ start: async () => {
345
+ if (started)
346
+ return;
347
+ if (signal.aborted) {
348
+ processAbort.abort();
349
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native drag action was cancelled before mouse-down');
350
+ }
351
+ started = true;
352
+ signal.removeEventListener('abort', onCallerAbort);
353
+ // Once native mouse-down is possible, caller cancellation no longer
354
+ // owns this process. The bounded native motion must reach mouse-up.
355
+ try {
356
+ await writeLine('START');
357
+ }
358
+ catch (error) {
359
+ processAbort.abort();
360
+ throw computerUseError(error, 'native drag start barrier failed');
361
+ }
362
+ },
363
+ cancel: () => {
364
+ if (!started)
365
+ processAbort.abort();
366
+ },
367
+ };
368
+ }
204
369
  /** Send one serialized command to the persistent, click-through Agent cursor overlay. */
205
- cursorCommand(command, signal) {
206
- const run = this.cursorCommandTail.then(async () => await this.executeCursorCommand(command, signal));
370
+ cursorCommand(command, signal, onWritten) {
371
+ const run = this.cursorCommandTail.then(async () => {
372
+ if (signal.aborted)
373
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native cursor overlay command was cancelled');
374
+ if (this.disposed)
375
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
376
+ return await this.executeCursorCommand(command, signal, onWritten);
377
+ });
207
378
  this.cursorCommandTail = run.then(() => undefined, () => undefined);
208
- return run;
379
+ return new Promise((resolveCommand, rejectCommand) => {
380
+ const onAbort = () => {
381
+ rejectCommand(new ComputerUseError('COMPUTER_CANCELLED', 'native cursor overlay command was cancelled'));
382
+ };
383
+ if (signal.aborted)
384
+ onAbort();
385
+ else
386
+ signal.addEventListener('abort', onAbort, { once: true });
387
+ void run.then(resolveCommand, rejectCommand).finally(() => {
388
+ signal.removeEventListener('abort', onAbort);
389
+ });
390
+ });
209
391
  }
210
- async executeCursorCommand(command, signal) {
392
+ async executeCursorCommand(command, signal, onWritten) {
211
393
  const prepared = this.prepared ?? await this.prepare(signal);
394
+ if (this.disposed)
395
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
212
396
  const cursor = await this.getCursor(prepared, signal);
213
397
  signal.throwIfAborted();
398
+ if (this.disposed) {
399
+ this.discardCursor(cursor);
400
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
401
+ }
214
402
  try {
215
403
  await new Promise((resolveWrite, rejectWrite) => {
216
404
  cursor.stdin.write(`${JSON.stringify(command)}\n`, error => {
@@ -220,7 +408,8 @@ export class NativeHelperClient {
220
408
  rejectWrite(error);
221
409
  });
222
410
  });
223
- const frame = await cursor.nextResponse();
411
+ await onWritten?.();
412
+ const frame = await cursor.nextResponse(cursorResponseTimeout(command), signal);
224
413
  if (frame.kind === 'failure') {
225
414
  this.discardCursor(cursor);
226
415
  return { visible: false, reason: frame.reason };
@@ -232,6 +421,9 @@ export class NativeHelperClient {
232
421
  }
233
422
  catch (error) {
234
423
  this.discardCursor(cursor);
424
+ if (signal.aborted) {
425
+ throw new ComputerUseError('COMPUTER_CANCELLED', 'native cursor overlay command was cancelled', { cause: error });
426
+ }
235
427
  throw computerUseError(error, 'native cursor overlay command failed');
236
428
  }
237
429
  }
@@ -242,21 +434,25 @@ export class NativeHelperClient {
242
434
  }
243
435
  /** Stop the cursor process before a provider generation is replaced or disposed. */
244
436
  async dispose() {
437
+ this.disposed = true;
245
438
  const cursor = this.cursor ?? await this.cursorStart?.promise.catch(() => undefined);
246
439
  this.cursorStart = undefined;
247
440
  this.cursor = undefined;
248
- if (cursor === undefined)
441
+ if (cursor === undefined) {
442
+ await this.cursorCommandTail.catch(() => undefined);
249
443
  return;
444
+ }
250
445
  try {
251
446
  cursor.stdin.end(`${JSON.stringify({ op: 'stop' })}\n`);
252
447
  }
253
448
  catch {
254
449
  // A child that already closed its pipe is handled by the tree-exit wait below.
255
450
  }
256
- if (await cursor.waitForExit(AbortSignal.timeout(1_000)))
257
- return;
258
- cursor.terminate();
259
- await cursor.waitForExit();
451
+ if (!await cursor.waitForExit(AbortSignal.timeout(1_000))) {
452
+ cursor.terminate();
453
+ await cursor.waitForExit();
454
+ }
455
+ await this.cursorCommandTail.catch(() => undefined);
260
456
  }
261
457
  /** Prepared integrity facts used by provider health. */
262
458
  preparedInfo() {
@@ -289,9 +485,13 @@ export class NativeHelperClient {
289
485
  }
290
486
  async getCursor(prepared, signal) {
291
487
  signal.throwIfAborted();
488
+ if (this.disposed)
489
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
292
490
  if (this.cursor !== undefined)
293
491
  return this.cursor;
294
492
  if (this.cursorStart === undefined) {
493
+ if (this.disposed)
494
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
295
495
  const start = { promise: Promise.resolve(undefined) };
296
496
  start.promise = this.spawnCursor(prepared).then(cursor => {
297
497
  this.cursor = cursor;
@@ -308,6 +508,10 @@ export class NativeHelperClient {
308
508
  }
309
509
  const cursor = await this.cursorStart.promise;
310
510
  signal.throwIfAborted();
511
+ if (this.disposed) {
512
+ this.discardCursor(cursor);
513
+ throw new ComputerUseError('COMPUTER_PROVIDER_FAILURE', 'native cursor overlay client is disposed');
514
+ }
311
515
  return cursor;
312
516
  }
313
517
  async spawnCursor(prepared) {
@@ -400,22 +604,41 @@ export class NativeHelperClient {
400
604
  return {
401
605
  stdin: handle.stdin,
402
606
  done: handle.done,
403
- nextResponse: async () => {
607
+ nextResponse: async (timeoutMs, signal) => {
404
608
  const ready = buffered.shift();
405
- if (ready !== undefined)
609
+ if (ready !== undefined) {
610
+ signal.throwIfAborted();
406
611
  return ready;
407
- return await new Promise((resolveResponse) => {
612
+ }
613
+ return await new Promise((resolveResponse, rejectResponse) => {
614
+ let timer;
408
615
  const settle = (frame) => {
409
616
  const index = pending.indexOf(settle);
410
617
  if (index >= 0)
411
618
  pending.splice(index, 1);
412
- clearTimeout(timer);
619
+ if (timer !== undefined)
620
+ clearTimeout(timer);
621
+ signal.removeEventListener('abort', onAbort);
413
622
  resolveResponse(frame);
414
623
  };
415
- const timer = setTimeout(() => settle({
624
+ const onAbort = () => {
625
+ const index = pending.indexOf(settle);
626
+ if (index >= 0)
627
+ pending.splice(index, 1);
628
+ if (timer !== undefined)
629
+ clearTimeout(timer);
630
+ signal.removeEventListener('abort', onAbort);
631
+ rejectResponse(signal.reason);
632
+ };
633
+ timer = setTimeout(() => settle({
416
634
  kind: 'failure',
417
- reason: `the native cursor overlay did not respond within ${CURSOR_RESPONSE_TIMEOUT_MS} milliseconds`,
418
- }), CURSOR_RESPONSE_TIMEOUT_MS);
635
+ reason: `the native cursor overlay did not respond within ${timeoutMs} milliseconds`,
636
+ }), timeoutMs);
637
+ if (signal.aborted) {
638
+ onAbort();
639
+ return;
640
+ }
641
+ signal.addEventListener('abort', onAbort, { once: true });
419
642
  pending.push(settle);
420
643
  });
421
644
  },
@@ -1 +1 @@
1
- {"version":3,"file":"native-helper.js","sourceRoot":"","sources":["../../src/providers/native-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-helper.js","sourceRoot":"","sources":["../../src/providers/native-helper.ts"],"names":[],"mappings":"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"}