@anionex/dsh-computer-use 0.1.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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.i18n.yaml +6 -0
  3. package/README.md +307 -0
  4. package/README.zh.md +307 -0
  5. package/assets/computer-use-fixture.png +0 -0
  6. package/assets/cursor.png +0 -0
  7. package/cordis.patch.yml +13 -0
  8. package/docs/interaction-policy.i18n.yaml +4 -0
  9. package/docs/interaction-policy.md +140 -0
  10. package/docs/interaction-policy.zh.md +140 -0
  11. package/lib/approval-policy.js +12 -0
  12. package/lib/approval-policy.js.map +1 -0
  13. package/lib/artifacts.js +79 -0
  14. package/lib/artifacts.js.map +1 -0
  15. package/lib/backend.js +3 -0
  16. package/lib/backend.js.map +1 -0
  17. package/lib/client.js +349 -0
  18. package/lib/client.js.map +1 -0
  19. package/lib/config.js +120 -0
  20. package/lib/config.js.map +1 -0
  21. package/lib/confirmations.js +99 -0
  22. package/lib/confirmations.js.map +1 -0
  23. package/lib/diff.js +58 -0
  24. package/lib/diff.js.map +1 -0
  25. package/lib/errors.js +22 -0
  26. package/lib/errors.js.map +1 -0
  27. package/lib/exposure.js +231 -0
  28. package/lib/exposure.js.map +1 -0
  29. package/lib/index.js +56 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/leases.js +259 -0
  32. package/lib/leases.js.map +1 -0
  33. package/lib/providers/macos.js +148 -0
  34. package/lib/providers/macos.js.map +1 -0
  35. package/lib/providers/native-helper.js +356 -0
  36. package/lib/providers/native-helper.js.map +1 -0
  37. package/lib/service.js +480 -0
  38. package/lib/service.js.map +1 -0
  39. package/lib/skill.js +119 -0
  40. package/lib/skill.js.map +1 -0
  41. package/lib/target-resolver.js +180 -0
  42. package/lib/target-resolver.js.map +1 -0
  43. package/lib/tools.js +493 -0
  44. package/lib/tools.js.map +1 -0
  45. package/lib/types/approval-policy.d.ts +13 -0
  46. package/lib/types/approval-policy.d.ts.map +1 -0
  47. package/lib/types/artifacts.d.ts +10 -0
  48. package/lib/types/artifacts.d.ts.map +1 -0
  49. package/lib/types/backend.d.ts +94 -0
  50. package/lib/types/backend.d.ts.map +1 -0
  51. package/lib/types/client/index.d.ts +78 -0
  52. package/lib/types/client/index.d.ts.map +1 -0
  53. package/lib/types/config.d.ts +75 -0
  54. package/lib/types/config.d.ts.map +1 -0
  55. package/lib/types/confirmations.d.ts +23 -0
  56. package/lib/types/confirmations.d.ts.map +1 -0
  57. package/lib/types/diff.d.ts +5 -0
  58. package/lib/types/diff.d.ts.map +1 -0
  59. package/lib/types/errors.d.ts +15 -0
  60. package/lib/types/errors.d.ts.map +1 -0
  61. package/lib/types/exposure.d.ts +30 -0
  62. package/lib/types/exposure.d.ts.map +1 -0
  63. package/lib/types/index.d.ts +21 -0
  64. package/lib/types/index.d.ts.map +1 -0
  65. package/lib/types/leases.d.ts +80 -0
  66. package/lib/types/leases.d.ts.map +1 -0
  67. package/lib/types/providers/macos.d.ts +15 -0
  68. package/lib/types/providers/macos.d.ts.map +1 -0
  69. package/lib/types/providers/native-helper.d.ts +36 -0
  70. package/lib/types/providers/native-helper.d.ts.map +1 -0
  71. package/lib/types/service.d.ts +52 -0
  72. package/lib/types/service.d.ts.map +1 -0
  73. package/lib/types/skill.d.ts +9 -0
  74. package/lib/types/skill.d.ts.map +1 -0
  75. package/lib/types/target-resolver.d.ts +38 -0
  76. package/lib/types/target-resolver.d.ts.map +1 -0
  77. package/lib/types/tools.d.ts +6 -0
  78. package/lib/types/tools.d.ts.map +1 -0
  79. package/lib/types/types.d.ts +246 -0
  80. package/lib/types/types.d.ts.map +1 -0
  81. package/lib/types/web.d.ts +32 -0
  82. package/lib/types/web.d.ts.map +1 -0
  83. package/lib/types.js +9 -0
  84. package/lib/types.js.map +1 -0
  85. package/lib/web.js +163 -0
  86. package/lib/web.js.map +1 -0
  87. package/native/macos/Sources/Fixture/main.swift +366 -0
  88. package/native/macos/Sources/Helper/CursorImage.swift +11 -0
  89. package/native/macos/Sources/Helper/CursorOverlay.swift +488 -0
  90. package/native/macos/Sources/Helper/TargetedPointer.swift +314 -0
  91. package/native/macos/Sources/Helper/main.swift +1140 -0
  92. package/native/macos/Sources/Monitor/main.swift +139 -0
  93. package/native/macos/bin/dsh-computer-use-helper +0 -0
  94. package/native/macos/manifest.json +14 -0
  95. package/package.json +128 -0
  96. package/scripts/build-client.mjs +24 -0
  97. package/scripts/build-native.mjs +158 -0
  98. package/scripts/check-native.mjs +92 -0
  99. package/scripts/model-e2e.mjs +291 -0
  100. package/scripts/session-transcript.mjs +117 -0
  101. package/scripts/validate.mjs +256 -0
  102. package/src/approval-policy.ts +16 -0
  103. package/src/artifacts.ts +93 -0
  104. package/src/backend.ts +103 -0
  105. package/src/client/index.tsx +539 -0
  106. package/src/config.ts +196 -0
  107. package/src/confirmations.ts +128 -0
  108. package/src/diff.ts +52 -0
  109. package/src/errors.ts +39 -0
  110. package/src/exposure.ts +236 -0
  111. package/src/index.ts +66 -0
  112. package/src/leases.ts +337 -0
  113. package/src/providers/macos.ts +185 -0
  114. package/src/providers/native-helper.ts +393 -0
  115. package/src/service.ts +583 -0
  116. package/src/skill.ts +123 -0
  117. package/src/target-resolver.ts +237 -0
  118. package/src/tools.ts +528 -0
  119. package/src/types.ts +299 -0
  120. package/src/web.ts +180 -0
package/lib/tools.js ADDED
@@ -0,0 +1,493 @@
1
+ /** Focused model-facing Computer Use Tool definitions. */
2
+ import { createUserMessage } from '@deepseek-ai/dsh-llm';
3
+ import { defineTool } from '@deepseek-ai/dsh-tools';
4
+ import { ComputerConfirmationToken, ComputerObservationId, ComputerTargetHandle, } from "./types.js";
5
+ function renderJson(_args, value) {
6
+ return [{ type: 'text', text: JSON.stringify(value, null, 2) }];
7
+ }
8
+ function contextOf(exec) {
9
+ const agent = exec.agent;
10
+ if (agent === undefined)
11
+ throw new Error(`${exec.name}: an Agent Session is required`);
12
+ return {
13
+ agent,
14
+ workspace: agent.session.header.cwd ?? process.cwd(),
15
+ callId: exec.callId,
16
+ signal: exec.signal,
17
+ };
18
+ }
19
+ function deferVisionHandoff(exec, artifact) {
20
+ if (artifact === undefined)
21
+ return;
22
+ exec.deferContext(createUserMessage({
23
+ content: [{
24
+ type: 'text',
25
+ text: [
26
+ `Computer Use returned a screenshot Artifact at ${JSON.stringify(artifact.path)}.`,
27
+ 'If the task now needs OCR, visual grounding, or pixel inspection and vision_glance is not visible, call the skill tool with {"name":"vision-tools"}; then pass this exact Artifact path to vision_glance, vision_ground, vision_detect, vision_crop, or vision_long_screenshot_ocr.',
28
+ 'Do not inspect OCR executables or use bash, tesseract, screencapture, or an ad hoc Swift/Python OCR implementation.',
29
+ ].join(' '),
30
+ }],
31
+ source: { kind: 'plugin', plugin: 'dsh-computer-use' },
32
+ }));
33
+ }
34
+ const rectSchema = {
35
+ type: 'object',
36
+ additionalProperties: false,
37
+ properties: {
38
+ x: { type: 'number', required: true },
39
+ y: { type: 'number', required: true },
40
+ width: { type: 'number', required: true },
41
+ height: { type: 'number', required: true },
42
+ },
43
+ };
44
+ const appSelectorSchema = {
45
+ type: 'object',
46
+ additionalProperties: false,
47
+ properties: {
48
+ bundleId: { type: 'string', description: 'Preferred exact macOS bundle identifier.' },
49
+ pid: { type: 'integer', description: 'Exact current process id when already observed.' },
50
+ name: { type: 'string', description: 'Display name accepted only when it resolves uniquely.' },
51
+ },
52
+ };
53
+ const appSchema = {
54
+ type: 'object',
55
+ additionalProperties: false,
56
+ properties: {
57
+ bundleId: { type: 'string', required: true },
58
+ pid: { type: 'integer', required: true },
59
+ name: { type: 'string', required: true },
60
+ },
61
+ };
62
+ const elementSchema = {
63
+ type: 'object',
64
+ additionalProperties: false,
65
+ properties: {
66
+ index: { type: 'integer', required: true },
67
+ targetHandle: { type: 'string', required: true },
68
+ role: { type: 'string', required: true },
69
+ subrole: { type: 'string' },
70
+ title: { type: 'string' },
71
+ label: { type: 'string' },
72
+ value: { type: 'string' },
73
+ enabled: { type: 'boolean' },
74
+ focused: { type: 'boolean' },
75
+ selected: { type: 'boolean' },
76
+ frame: rectSchema,
77
+ actions: { type: 'array', items: { type: 'string' }, required: true },
78
+ },
79
+ };
80
+ const artifactSchema = {
81
+ type: 'object',
82
+ additionalProperties: false,
83
+ properties: {
84
+ path: { type: 'string', required: true },
85
+ filename: { type: 'string', required: true },
86
+ mimeType: { type: 'string', enum: ['image/png'], required: true },
87
+ kind: { type: 'string', enum: ['image'], required: true },
88
+ description: { type: 'string', required: true },
89
+ sourceTool: { type: 'string', enum: ['computer_observe', 'computer_action'], required: true },
90
+ previewIntent: { type: 'string', enum: ['image'], required: true },
91
+ bytes: { type: 'integer', required: true },
92
+ width: { type: 'integer', required: true },
93
+ height: { type: 'integer', required: true },
94
+ },
95
+ };
96
+ const observationSchema = {
97
+ type: 'object',
98
+ additionalProperties: false,
99
+ properties: {
100
+ observationId: { type: 'string', required: true },
101
+ app: { ...appSchema, required: true },
102
+ createdAt: { type: 'string', required: true },
103
+ expiresAt: { type: 'string', required: true },
104
+ frontmost: { type: 'boolean', required: true },
105
+ window: {
106
+ type: 'object',
107
+ additionalProperties: false,
108
+ properties: {
109
+ title: { type: 'string' },
110
+ frame: { ...rectSchema, required: true },
111
+ id: { type: 'integer' },
112
+ },
113
+ },
114
+ tree: {
115
+ type: 'object',
116
+ additionalProperties: false,
117
+ required: true,
118
+ properties: {
119
+ mode: { type: 'string', enum: ['full', 'diff'], required: true },
120
+ text: { type: 'string', required: true },
121
+ truncated: { type: 'boolean', required: true },
122
+ },
123
+ },
124
+ elements: { type: 'array', items: elementSchema, required: true },
125
+ screenshot: artifactSchema,
126
+ permissions: {
127
+ type: 'object',
128
+ additionalProperties: false,
129
+ required: true,
130
+ properties: {
131
+ accessibility: { type: 'string', enum: ['granted', 'denied', 'not-determined', 'unavailable'], required: true },
132
+ screenRecording: { type: 'string', enum: ['granted', 'denied', 'not-determined', 'unavailable'], required: true },
133
+ },
134
+ },
135
+ },
136
+ };
137
+ const actionResultSchema = {
138
+ type: 'object',
139
+ additionalProperties: false,
140
+ properties: {
141
+ action: { type: 'string', enum: ['click', 'set-value', 'type-text', 'press-key', 'scroll', 'drag', 'perform-action', 'wait'], required: true },
142
+ channel: { type: 'string', enum: ['accessibility', 'coordinates', 'keyboard', 'wait'], required: true },
143
+ activation: { type: 'string', enum: ['not-requested', 'already-frontmost', 'activated'], required: true },
144
+ pointerInput: { type: 'boolean', required: true },
145
+ pointerRouting: { type: 'string', enum: ['none', 'target-process'], required: true },
146
+ resolution: {
147
+ type: 'object',
148
+ additionalProperties: false,
149
+ properties: {
150
+ mode: { type: 'string', enum: ['exact-locator', 'native-identifier', 'semantic-rebind'], required: true },
151
+ confidence: { type: 'number', required: true },
152
+ candidateCount: { type: 'integer', required: true },
153
+ targetChanged: { type: 'boolean', required: true },
154
+ },
155
+ },
156
+ observation: { ...observationSchema, required: true },
157
+ },
158
+ };
159
+ const sensitiveParameters = {
160
+ sensitive: { type: 'boolean', description: 'Set true for an action classified by the Skill as high impact or sensitive.' },
161
+ confirmationToken: { type: 'string', description: 'One-use token from computer_confirm for this exact action.' },
162
+ };
163
+ const keyNames = [
164
+ 'a', 's', 'd', 'f', 'h', 'g', 'z', 'x', 'c', 'v', 'b', 'q', 'w', 'e', 'r', 'y', 't',
165
+ '1', '2', '3', '4', '6', '5', '=', '9', '7', '-', '8', '0', ']', 'o', 'u', '[', 'i', 'p',
166
+ 'return', 'l', 'j', "'", 'k', ';', '\\', ',', '/', 'n', 'm', '.', 'tab', 'space', 'delete',
167
+ 'escape', 'home', 'pageup', 'forwarddelete', 'end', 'pagedown', 'left', 'right', 'down', 'up',
168
+ ];
169
+ const confirmationActionSchema = {
170
+ oneOf: [
171
+ {
172
+ type: 'object', additionalProperties: false, properties: {
173
+ kind: { type: 'string', const: 'click', required: true },
174
+ observationId: { type: 'string', required: true },
175
+ elementIndex: { type: 'integer' },
176
+ targetHandle: { type: 'string' },
177
+ allowRebind: { type: 'boolean' },
178
+ x: { type: 'number' },
179
+ y: { type: 'number' },
180
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'] },
181
+ button: { type: 'string', enum: ['left', 'right', 'middle'] },
182
+ clickCount: { type: 'integer' },
183
+ allowCoordinateFallback: { type: 'boolean' },
184
+ },
185
+ },
186
+ {
187
+ type: 'object', additionalProperties: false, properties: {
188
+ kind: { type: 'string', const: 'set-value', required: true },
189
+ observationId: { type: 'string', required: true },
190
+ elementIndex: { type: 'integer' },
191
+ targetHandle: { type: 'string' },
192
+ allowRebind: { type: 'boolean' },
193
+ value: { type: 'string', required: true },
194
+ },
195
+ },
196
+ {
197
+ type: 'object', additionalProperties: false, properties: {
198
+ kind: { type: 'string', const: 'type-text', required: true },
199
+ observationId: { type: 'string', required: true },
200
+ text: { type: 'string', required: true },
201
+ },
202
+ },
203
+ {
204
+ type: 'object', additionalProperties: false, properties: {
205
+ kind: { type: 'string', const: 'press-key', required: true },
206
+ observationId: { type: 'string', required: true },
207
+ key: { type: 'string', enum: keyNames, required: true },
208
+ modifiers: { type: 'array', items: { type: 'string', enum: ['command', 'control', 'option', 'shift'] } },
209
+ },
210
+ },
211
+ {
212
+ type: 'object', additionalProperties: false, properties: {
213
+ kind: { type: 'string', const: 'scroll', required: true },
214
+ observationId: { type: 'string', required: true },
215
+ elementIndex: { type: 'integer' },
216
+ targetHandle: { type: 'string' },
217
+ allowRebind: { type: 'boolean' },
218
+ x: { type: 'number' },
219
+ y: { type: 'number' },
220
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'] },
221
+ direction: { type: 'string', enum: ['up', 'down', 'left', 'right'], required: true },
222
+ pages: { type: 'integer' },
223
+ },
224
+ },
225
+ {
226
+ type: 'object', additionalProperties: false, properties: {
227
+ kind: { type: 'string', const: 'drag', required: true },
228
+ observationId: { type: 'string', required: true },
229
+ fromX: { type: 'number', required: true },
230
+ fromY: { type: 'number', required: true },
231
+ toX: { type: 'number', required: true },
232
+ toY: { type: 'number', required: true },
233
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'] },
234
+ },
235
+ },
236
+ {
237
+ type: 'object', additionalProperties: false, properties: {
238
+ kind: { type: 'string', const: 'perform-action', required: true },
239
+ observationId: { type: 'string', required: true },
240
+ elementIndex: { type: 'integer' },
241
+ targetHandle: { type: 'string' },
242
+ allowRebind: { type: 'boolean' },
243
+ action: { type: 'string', required: true },
244
+ },
245
+ },
246
+ ],
247
+ };
248
+ function actionBase(args) {
249
+ return {
250
+ observationId: ComputerObservationId(args.observationId),
251
+ ...(args.sensitive === undefined ? {} : { sensitive: args.sensitive }),
252
+ ...(args.confirmationToken === undefined ? {} : { confirmationToken: ComputerConfirmationToken(args.confirmationToken) }),
253
+ };
254
+ }
255
+ function elementTarget(args) {
256
+ return {
257
+ ...(args.elementIndex === undefined ? {} : { elementIndex: args.elementIndex }),
258
+ ...(args.targetHandle === undefined ? {} : { targetHandle: ComputerTargetHandle(args.targetHandle) }),
259
+ ...(args.allowRebind === undefined ? {} : { allowRebind: args.allowRebind }),
260
+ };
261
+ }
262
+ function artifactPresentation(artifact) {
263
+ return {
264
+ path: artifact.path,
265
+ filename: artifact.filename,
266
+ mimeType: artifact.mimeType,
267
+ kind: artifact.kind,
268
+ description: artifact.description,
269
+ sourceTool: artifact.sourceTool,
270
+ previewIntent: artifact.previewIntent,
271
+ bytes: artifact.bytes,
272
+ width: artifact.width,
273
+ height: artifact.height,
274
+ };
275
+ }
276
+ function actionOutput() {
277
+ return {
278
+ schema: actionResultSchema,
279
+ render: renderJson,
280
+ presentationMeta: (_args, value) => value.observation.screenshot === undefined
281
+ ? {}
282
+ : { artifacts: [artifactPresentation(value.observation.screenshot)] },
283
+ };
284
+ }
285
+ /** Create the focused execution definitions bound to one active Service generation. */
286
+ export function createComputerUseTools(service) {
287
+ const listApps = defineTool({
288
+ name: 'computer_list_apps',
289
+ description: 'List bounded running user-facing macOS applications. Use this only when the task does not already identify a unique bundle id.',
290
+ parameters: {},
291
+ output: {
292
+ schema: {
293
+ type: 'array',
294
+ items: {
295
+ type: 'object',
296
+ additionalProperties: false,
297
+ properties: {
298
+ ...appSchema.properties,
299
+ frontmost: { type: 'boolean', required: true },
300
+ accessibility: { type: 'string', enum: ['granted', 'denied', 'not-determined', 'unavailable'], required: true },
301
+ screenRecording: { type: 'string', enum: ['granted', 'denied', 'not-determined', 'unavailable'], required: true },
302
+ },
303
+ },
304
+ },
305
+ render: renderJson,
306
+ },
307
+ execute: (_args, exec) => service.listApps(contextOf(exec)),
308
+ presentCall: () => ({ card: 'generic', title: 'List macOS apps', kind: 'read' }),
309
+ });
310
+ const observe = defineTool({
311
+ name: 'computer_observe',
312
+ description: 'Read a fresh Accessibility observation for one exact running app. Element indexes belong only to the returned observationId. Prefer the tree; request a screenshot for pixel-only facts. When a screenshot needs OCR, visual grounding, or pixel inspection, load the vision-tools Skill and pass the returned Artifact path to its native tools instead of using bash, tesseract, screencapture, or an ad hoc OCR script.',
313
+ parameters: {
314
+ app: { ...appSelectorSchema, required: true },
315
+ screenshot: { type: 'string', enum: ['none', 'optional', 'required'], description: 'Default optional. Required fails when Screen Recording is unavailable.' },
316
+ full: { type: 'boolean', description: 'Return a full tree instead of a diff from the previous observation.' },
317
+ },
318
+ output: {
319
+ schema: observationSchema,
320
+ render: renderJson,
321
+ presentationMeta: (_args, value) => value.screenshot === undefined ? {} : { artifacts: [value.screenshot] },
322
+ },
323
+ execute: async (args, exec) => {
324
+ const observation = await service.observe(args, contextOf(exec));
325
+ deferVisionHandoff(exec, observation.screenshot);
326
+ return observation;
327
+ },
328
+ presentCall: () => ({ card: 'generic', title: 'Observe macOS app', kind: 'read' }),
329
+ });
330
+ const click = defineTool({
331
+ name: 'computer_click',
332
+ description: 'Click an observed element, preferring AXPress without foreground activation, or use a window-relative or screen-global coordinate when host pointer policy allows it. For safe recovery after harmless tree reordering, pass the element targetHandle and allowRebind=true; elementIndex remains exact-observation compatibility. The successful result includes deterministic resolution metadata and a fresh post-click observation.',
333
+ parameters: {
334
+ observationId: { type: 'string', required: true },
335
+ elementIndex: { type: 'integer' },
336
+ targetHandle: { type: 'string', description: 'Opaque handle returned on the selected observation element.' },
337
+ allowRebind: { type: 'boolean', description: 'Allow fail-closed native-identifier or unique semantic rebinding. Requires targetHandle.' },
338
+ x: { type: 'number' },
339
+ y: { type: 'number' },
340
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'], description: 'Default window interprets x/y inside the observed window frame; screen uses Quartz screen-global coordinates.' },
341
+ button: { type: 'string', enum: ['left', 'right', 'middle'] },
342
+ clickCount: { type: 'integer' },
343
+ allowCoordinateFallback: { type: 'boolean' },
344
+ ...sensitiveParameters,
345
+ },
346
+ output: actionOutput(),
347
+ execute: (args, exec) => service.act({ kind: 'click', ...actionBase(args), ...elementTarget(args), ...args.x === undefined ? {} : { x: args.x }, ...args.y === undefined ? {} : { y: args.y }, ...args.coordinateSpace === undefined ? {} : { coordinateSpace: args.coordinateSpace }, ...args.button === undefined ? {} : { button: args.button }, ...args.clickCount === undefined ? {} : { clickCount: args.clickCount }, ...args.allowCoordinateFallback === undefined ? {} : { allowCoordinateFallback: args.allowCoordinateFallback } }, contextOf(exec)),
348
+ presentCall: () => ({ card: 'generic', title: 'Click macOS app', kind: 'execute' }),
349
+ });
350
+ const setValue = defineTool({
351
+ name: 'computer_set_value',
352
+ description: 'Set one observed editable Accessibility value without using the clipboard. Supply elementIndex or targetHandle; targetHandle plus allowRebind=true permits deterministic fail-closed recovery after harmless tree reordering.',
353
+ parameters: {
354
+ observationId: { type: 'string', required: true },
355
+ elementIndex: { type: 'integer' },
356
+ targetHandle: { type: 'string' },
357
+ allowRebind: { type: 'boolean' },
358
+ value: { type: 'string', required: true },
359
+ ...sensitiveParameters,
360
+ },
361
+ output: actionOutput(),
362
+ execute: (args, exec) => service.act({ kind: 'set-value', ...actionBase(args), ...elementTarget(args), value: args.value }, contextOf(exec)),
363
+ presentCall: () => ({ card: 'generic', title: 'Set app value', kind: 'execute' }),
364
+ });
365
+ const typeText = defineTool({
366
+ name: 'computer_type_text',
367
+ description: 'Type Unicode into the currently focused control without reading or replacing the clipboard. Focus a control using fresh state first; keyboard fallback may require host-authorized foreground activation. The result does not echo the supplied text.',
368
+ parameters: {
369
+ observationId: { type: 'string', required: true },
370
+ text: { type: 'string', required: true },
371
+ ...sensitiveParameters,
372
+ },
373
+ output: actionOutput(),
374
+ execute: (args, exec) => service.act({ kind: 'type-text', ...actionBase(args), text: args.text }, contextOf(exec)),
375
+ presentCall: () => ({ card: 'generic', title: 'Type in macOS app', kind: 'execute' }),
376
+ });
377
+ const pressKey = defineTool({
378
+ name: 'computer_press_key',
379
+ description: 'Press one validated key or chord by routing it to the selected app process. The default host policy preserves the current foreground app; use documented key names and read the returned fresh observation.',
380
+ parameters: {
381
+ observationId: { type: 'string', required: true },
382
+ key: { type: 'string', enum: keyNames, required: true },
383
+ modifiers: { type: 'array', items: { type: 'string', enum: ['command', 'control', 'option', 'shift'] } },
384
+ ...sensitiveParameters,
385
+ },
386
+ output: actionOutput(),
387
+ execute: (args, exec) => service.act({ kind: 'press-key', ...actionBase(args), key: args.key, ...args.modifiers === undefined ? {} : { modifiers: args.modifiers } }, contextOf(exec)),
388
+ presentCall: () => ({ card: 'generic', title: 'Press app key', kind: 'execute' }),
389
+ });
390
+ const scroll = defineTool({
391
+ name: 'computer_scroll',
392
+ description: 'Scroll by routing a wheel event only to the selected app process at an observed element or window-relative/screen-global coordinate. The system cursor is not moved.',
393
+ parameters: {
394
+ observationId: { type: 'string', required: true },
395
+ elementIndex: { type: 'integer' },
396
+ targetHandle: { type: 'string' },
397
+ allowRebind: { type: 'boolean' },
398
+ x: { type: 'number' },
399
+ y: { type: 'number' },
400
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'], description: 'Default window interprets x/y inside the observed window frame; screen uses Quartz screen-global coordinates.' },
401
+ direction: { type: 'string', enum: ['up', 'down', 'left', 'right'], required: true },
402
+ pages: { type: 'integer' },
403
+ ...sensitiveParameters,
404
+ },
405
+ output: actionOutput(),
406
+ execute: (args, exec) => service.act({ kind: 'scroll', ...actionBase(args), ...elementTarget(args), direction: args.direction, ...args.x === undefined ? {} : { x: args.x }, ...args.y === undefined ? {} : { y: args.y }, ...args.coordinateSpace === undefined ? {} : { coordinateSpace: args.coordinateSpace }, ...args.pages === undefined ? {} : { pages: args.pages } }, contextOf(exec)),
407
+ presentCall: () => ({ card: 'generic', title: 'Scroll macOS app', kind: 'execute' }),
408
+ });
409
+ const drag = defineTool({
410
+ name: 'computer_drag',
411
+ description: 'Drag by routing mouse events only to the selected app process between two points in the observed-window or screen-global coordinate space. The system cursor is not moved.',
412
+ parameters: {
413
+ observationId: { type: 'string', required: true },
414
+ fromX: { type: 'number', required: true },
415
+ fromY: { type: 'number', required: true },
416
+ toX: { type: 'number', required: true },
417
+ toY: { type: 'number', required: true },
418
+ coordinateSpace: { type: 'string', enum: ['window', 'screen'], description: 'Default window interprets the points inside the observed window frame; screen uses Quartz screen-global coordinates.' },
419
+ ...sensitiveParameters,
420
+ },
421
+ output: actionOutput(),
422
+ execute: (args, exec) => service.act({ kind: 'drag', ...actionBase(args), fromX: args.fromX, fromY: args.fromY, toX: args.toX, toY: args.toY, ...args.coordinateSpace === undefined ? {} : { coordinateSpace: args.coordinateSpace } }, contextOf(exec)),
423
+ presentCall: () => ({ card: 'generic', title: 'Drag in macOS app', kind: 'execute' }),
424
+ });
425
+ const perform = defineTool({
426
+ name: 'computer_perform_action',
427
+ description: 'Perform one Accessibility action advertised by an observed element. Supply elementIndex or targetHandle; targetHandle plus allowRebind=true permits deterministic fail-closed recovery after harmless tree reordering.',
428
+ parameters: {
429
+ observationId: { type: 'string', required: true },
430
+ elementIndex: { type: 'integer' },
431
+ targetHandle: { type: 'string' },
432
+ allowRebind: { type: 'boolean' },
433
+ action: { type: 'string', required: true },
434
+ ...sensitiveParameters,
435
+ },
436
+ output: actionOutput(),
437
+ execute: (args, exec) => service.act({ kind: 'perform-action', ...actionBase(args), ...elementTarget(args), action: args.action }, contextOf(exec)),
438
+ presentCall: () => ({ card: 'generic', title: 'Perform app action', kind: 'execute' }),
439
+ });
440
+ const wait = defineTool({
441
+ name: 'computer_wait',
442
+ description: 'Wait for one bounded Accessibility condition and return fresh state without mutating the app.',
443
+ parameters: {
444
+ observationId: { type: 'string', required: true },
445
+ condition: {
446
+ type: 'object',
447
+ additionalProperties: false,
448
+ required: true,
449
+ properties: {
450
+ text: { type: 'string' },
451
+ elementRole: { type: 'string' },
452
+ elementTitle: { type: 'string' },
453
+ },
454
+ },
455
+ timeoutMs: { type: 'integer' },
456
+ },
457
+ output: actionOutput(),
458
+ execute: (args, exec) => service.act({ kind: 'wait', observationId: ComputerObservationId(args.observationId), condition: args.condition, ...args.timeoutMs === undefined ? {} : { timeoutMs: args.timeoutMs } }, contextOf(exec)),
459
+ presentCall: () => ({ card: 'generic', title: 'Wait for app state', kind: 'read' }),
460
+ });
461
+ const confirm = defineTool({
462
+ name: 'computer_confirm',
463
+ description: 'Request just-in-time approval for one exact sensitive action. Call immediately before the action, then repeat the same action with sensitive=true and the returned token.',
464
+ parameters: {
465
+ action: { ...confirmationActionSchema, required: true },
466
+ reason: { type: 'string', required: true },
467
+ target: { type: 'string', required: true },
468
+ dataSummary: { type: 'string' },
469
+ },
470
+ output: {
471
+ schema: {
472
+ type: 'object',
473
+ additionalProperties: false,
474
+ properties: {
475
+ token: { type: 'string', required: true },
476
+ observationId: { type: 'string', required: true },
477
+ app: { ...appSchema, required: true },
478
+ expiresAt: { type: 'string', required: true },
479
+ },
480
+ },
481
+ render: renderJson,
482
+ },
483
+ execute: (args, exec) => service.confirm({
484
+ action: { ...args.action, observationId: ComputerObservationId(args.action.observationId), sensitive: true },
485
+ reason: args.reason,
486
+ target: args.target,
487
+ ...(args.dataSummary === undefined ? {} : { dataSummary: args.dataSummary }),
488
+ }, contextOf(exec)),
489
+ presentCall: () => ({ card: 'generic', title: 'Confirm sensitive app action', kind: 'execute' }),
490
+ });
491
+ return [listApps, observe, click, setValue, typeText, pressKey, scroll, drag, perform, wait, confirm];
492
+ }
493
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Shared DSH approval-policy read for Computer Use permission paths. */
2
+ import type { Agent } from '@deepseek-ai/dsh-agent';
3
+ import type { ApprovalPolicy } from '@deepseek-ai/dsh-user-approval';
4
+ import type { Context } from '@deepseek-ai/cordis';
5
+ /**
6
+ * The session's effective DSH approval policy: a logged override, else the
7
+ * approval plugin's configured default.
8
+ * @param ctx - context with the approval service injected.
9
+ * @param agent - the agent whose session policy applies.
10
+ * @returns `'never'` when every approval ask would auto-reject without a prompt.
11
+ */
12
+ export declare function approvalPolicy(ctx: Context, agent: Agent): ApprovalPolicy;
13
+ //# sourceMappingURL=approval-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-policy.d.ts","sourceRoot":"","sources":["../../src/approval-policy.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,cAAc,CAEzE"}
@@ -0,0 +1,10 @@
1
+ /** Workspace-fenced screenshot artifact allocation and validation. */
2
+ import type { SessionId } from '@deepseek-ai/dsh-session';
3
+ import type { ComputerArtifact } from './types.ts';
4
+ /** Screenshot description that hands visual analysis to the sibling Vision Toolkit. */
5
+ export declare const COMPUTER_SCREENSHOT_DESCRIPTION: string;
6
+ /** Allocate a unique managed PNG path inside the current Session workspace. */
7
+ export declare function allocateScreenshotPath(workspace: string, artifactRoot: string, sessionId: SessionId): Promise<string>;
8
+ /** Validate a committed screenshot and return its stable model/client descriptor. */
9
+ export declare function describeScreenshot(path: string, width: number, height: number, maxBytes: number, sourceTool: ComputerArtifact['sourceTool']): Promise<ComputerArtifact>;
10
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/artifacts.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAKtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,QAIjC,CAAA;AAyBX,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,qFAAqF;AACrF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,GACzC,OAAO,CAAC,gBAAgB,CAAC,CA0B3B"}