@linkshell/host 0.4.70 → 0.4.71

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 (52) hide show
  1. package/dist/host/src/acp-settings.js +1 -1
  2. package/dist/host/src/acp-settings.js.map +1 -1
  3. package/dist/host/src/computer-preview.d.ts +1 -9
  4. package/dist/host/src/drivers/acp/questions.js +2 -2
  5. package/dist/host/src/drivers/acp/questions.js.map +1 -1
  6. package/dist/host/src/drivers/claude/driver.js +4 -1
  7. package/dist/host/src/drivers/claude/driver.js.map +1 -1
  8. package/dist/host/src/drivers/claude/tasks.d.ts +3 -3
  9. package/dist/host/src/drivers/claude/transcript.d.ts +383 -348
  10. package/dist/host/src/fs.d.ts +9 -9
  11. package/dist/host/src/hub.d.ts +85 -80
  12. package/dist/host/src/input.d.ts +43 -89
  13. package/dist/host/src/input.js +1 -1
  14. package/dist/host/src/input.js.map +1 -1
  15. package/dist/host/src/screen-session.d.ts +3 -17
  16. package/dist/host/src/screen-session.js +2 -2
  17. package/dist/host/src/screen-session.js.map +1 -1
  18. package/dist/host/src/terminals.d.ts +9 -9
  19. package/dist/host/tsconfig.tsbuildinfo +1 -1
  20. package/dist/wire/src/acp.d.ts +68 -430
  21. package/dist/wire/src/acp.js +5 -5
  22. package/dist/wire/src/acp.js.map +1 -1
  23. package/dist/wire/src/async-questions.d.ts +2 -10
  24. package/dist/wire/src/computer-preview.d.ts +1 -15
  25. package/dist/wire/src/computer-preview.js +1 -1
  26. package/dist/wire/src/computer-preview.js.map +1 -1
  27. package/dist/wire/src/content.d.ts +207 -372
  28. package/dist/wire/src/content.js +4 -4
  29. package/dist/wire/src/content.js.map +1 -1
  30. package/dist/wire/src/editor.d.ts +48 -592
  31. package/dist/wire/src/envelopes.js +13 -1
  32. package/dist/wire/src/envelopes.js.map +1 -1
  33. package/dist/wire/src/goal.d.ts +15 -48
  34. package/dist/wire/src/live-activity.d.ts +83 -212
  35. package/dist/wire/src/live-activity.js +1 -1
  36. package/dist/wire/src/live-activity.js.map +1 -1
  37. package/dist/wire/src/model.d.ts +454 -2309
  38. package/dist/wire/src/relay.d.ts +41 -267
  39. package/dist/wire/src/relay.js +1 -1
  40. package/dist/wire/src/relay.js.map +1 -1
  41. package/dist/wire/src/rpc-mcp.d.ts +21 -136
  42. package/dist/wire/src/rpc-mcp.js +1 -1
  43. package/dist/wire/src/rpc-mcp.js.map +1 -1
  44. package/dist/wire/src/rpc.d.ts +6829 -31501
  45. package/dist/wire/src/rpc.js +5 -5
  46. package/dist/wire/src/rpc.js.map +1 -1
  47. package/dist/wire/src/side.d.ts +13 -61
  48. package/dist/wire/src/updates.d.ts +1815 -6935
  49. package/dist/wire/src/usage.d.ts +17 -195
  50. package/dist/wire/src/watch.d.ts +223 -1141
  51. package/dist/wire/src/workflow.d.ts +46 -139
  52. package/package.json +4 -4
@@ -4,22 +4,22 @@ export declare function listDirectory(input: {
4
4
  files?: boolean;
5
5
  }): Promise<{
6
6
  entries: {
7
- path: string;
8
7
  name: string;
9
- size?: number | undefined;
10
- file?: boolean | undefined;
8
+ path: string;
11
9
  project?: boolean | undefined;
10
+ file?: boolean | undefined;
11
+ size?: number | undefined;
12
12
  }[];
13
13
  path: string;
14
14
  parent: string | undefined;
15
15
  home: string;
16
16
  } | {
17
17
  entries: {
18
- path: string;
19
18
  name: string;
20
- size?: number | undefined;
21
- file?: boolean | undefined;
19
+ path: string;
22
20
  project?: boolean | undefined;
21
+ file?: boolean | undefined;
22
+ size?: number | undefined;
23
23
  }[];
24
24
  truncated: true | undefined;
25
25
  path: string;
@@ -35,11 +35,11 @@ export declare function searchDirectories(input: {
35
35
  limit: number;
36
36
  }, budgetMs?: number): Promise<{
37
37
  entries: {
38
- path: string;
39
38
  name: string;
40
- size?: number | undefined;
41
- file?: boolean | undefined;
39
+ path: string;
42
40
  project?: boolean | undefined;
41
+ file?: boolean | undefined;
42
+ size?: number | undefined;
43
43
  }[];
44
44
  truncated: boolean;
45
45
  }>;
@@ -88,47 +88,53 @@ export declare class SessionHub {
88
88
  pendingInteractions(): {
89
89
  agent: string;
90
90
  request: {
91
+ requestId: string;
92
+ title: string;
91
93
  options: {
94
+ optionId: string;
92
95
  name: string;
93
96
  kind: "allow_once" | "allow_always" | "reject_once" | "reject_always";
94
- optionId: string;
95
97
  }[];
96
- title: string;
97
- requestId: string;
98
+ childSessionId?: string | undefined;
98
99
  toolCallId?: string | undefined;
100
+ detail?: string | undefined;
99
101
  tool?: {
100
102
  title?: string | undefined;
101
103
  kind?: "search" | "delete" | "other" | "read" | "edit" | "move" | "execute" | "think" | "fetch" | "switch_mode" | undefined;
104
+ rawInput?: unknown;
102
105
  content?: ({
103
106
  type: "content";
104
107
  content: {
105
108
  type: "text";
106
109
  text: string;
107
- annotations?: import("zod").objectOutputType<{
108
- audience: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodEnum<["user", "assistant"]>, "many">>>, ("user" | "assistant")[] | undefined, ("user" | "assistant")[] | null | undefined>;
109
- priority: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>, number | undefined, number | null | undefined>;
110
- lastModified: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, string | undefined, string | null | undefined>;
111
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
110
+ annotations?: {
111
+ [x: string]: unknown;
112
+ audience?: ("user" | "assistant")[] | undefined;
113
+ priority?: number | undefined;
114
+ lastModified?: string | undefined;
115
+ } | undefined;
112
116
  _meta?: Record<string, unknown> | undefined;
113
117
  } | {
114
118
  type: "image";
115
119
  mimeType: string;
116
- annotations?: import("zod").objectOutputType<{
117
- audience: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodEnum<["user", "assistant"]>, "many">>>, ("user" | "assistant")[] | undefined, ("user" | "assistant")[] | null | undefined>;
118
- priority: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>, number | undefined, number | null | undefined>;
119
- lastModified: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, string | undefined, string | null | undefined>;
120
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
120
+ annotations?: {
121
+ [x: string]: unknown;
122
+ audience?: ("user" | "assistant")[] | undefined;
123
+ priority?: number | undefined;
124
+ lastModified?: string | undefined;
125
+ } | undefined;
121
126
  _meta?: Record<string, unknown> | undefined;
122
127
  data?: string | undefined;
123
128
  uri?: string | undefined;
124
129
  } | {
125
130
  type: "audio";
126
131
  mimeType: string;
127
- annotations?: import("zod").objectOutputType<{
128
- audience: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodEnum<["user", "assistant"]>, "many">>>, ("user" | "assistant")[] | undefined, ("user" | "assistant")[] | null | undefined>;
129
- priority: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>, number | undefined, number | null | undefined>;
130
- lastModified: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, string | undefined, string | null | undefined>;
131
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
132
+ annotations?: {
133
+ [x: string]: unknown;
134
+ audience?: ("user" | "assistant")[] | undefined;
135
+ priority?: number | undefined;
136
+ lastModified?: string | undefined;
137
+ } | undefined;
132
138
  _meta?: Record<string, unknown> | undefined;
133
139
  data?: string | undefined;
134
140
  uri?: string | undefined;
@@ -136,69 +142,66 @@ export declare class SessionHub {
136
142
  type: "resource";
137
143
  resource: {
138
144
  uri: string;
139
- text?: string | undefined;
140
- _meta?: Record<string, unknown> | undefined;
141
145
  mimeType?: string | undefined;
146
+ text?: string | undefined;
142
147
  blob?: string | undefined;
143
148
  assetUri?: string | undefined;
149
+ _meta?: Record<string, unknown> | undefined;
144
150
  };
145
- annotations?: import("zod").objectOutputType<{
146
- audience: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodEnum<["user", "assistant"]>, "many">>>, ("user" | "assistant")[] | undefined, ("user" | "assistant")[] | null | undefined>;
147
- priority: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>, number | undefined, number | null | undefined>;
148
- lastModified: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, string | undefined, string | null | undefined>;
149
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
151
+ annotations?: {
152
+ [x: string]: unknown;
153
+ audience?: ("user" | "assistant")[] | undefined;
154
+ priority?: number | undefined;
155
+ lastModified?: string | undefined;
156
+ } | undefined;
150
157
  _meta?: Record<string, unknown> | undefined;
151
158
  } | {
152
159
  type: "resource_link";
153
160
  uri: string;
154
161
  name: string;
155
- annotations?: import("zod").objectOutputType<{
156
- audience: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodEnum<["user", "assistant"]>, "many">>>, ("user" | "assistant")[] | undefined, ("user" | "assistant")[] | null | undefined>;
157
- priority: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodNumber>>, number | undefined, number | null | undefined>;
158
- lastModified: import("zod").ZodEffects<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, string | undefined, string | null | undefined>;
159
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
162
+ kind?: "file" | "skill" | "agent" | undefined;
163
+ annotations?: {
164
+ [x: string]: unknown;
165
+ audience?: ("user" | "assistant")[] | undefined;
166
+ priority?: number | undefined;
167
+ lastModified?: string | undefined;
168
+ } | undefined;
160
169
  _meta?: Record<string, unknown> | undefined;
161
- mimeType?: string | undefined;
162
170
  title?: string | undefined;
163
171
  description?: string | undefined;
172
+ mimeType?: string | undefined;
164
173
  size?: number | undefined;
165
- kind?: "file" | "skill" | "agent" | undefined;
166
174
  };
167
175
  } | {
168
- path: string;
169
176
  type: "diff";
177
+ path: string;
170
178
  newText: string;
171
179
  oldText?: string | null | undefined;
172
180
  } | {
173
- path: string;
174
181
  type: "patch";
175
- diff: string;
182
+ path: string;
176
183
  change: "add" | "delete" | "update";
184
+ diff: string;
177
185
  movePath?: string | undefined;
178
186
  } | {
179
187
  type: "terminal";
180
188
  terminalId: string;
181
189
  })[] | undefined;
182
- rawInput?: unknown;
183
190
  locations?: {
184
191
  path: string;
185
192
  line?: number | undefined;
186
193
  }[] | undefined;
187
194
  } | undefined;
188
- detail?: string | undefined;
195
+ url?: {
196
+ url: string;
197
+ elicitationId: string;
198
+ } | undefined;
189
199
  questions?: {
200
+ id: string;
190
201
  text: string;
191
202
  kind: "text" | "choice" | "choices";
192
- id: string;
193
- secret?: boolean | undefined;
194
- options?: {
195
- value: string;
196
- label: string;
197
- description?: string | undefined;
198
- }[] | undefined;
199
- other?: boolean | undefined;
200
203
  constraints?: {
201
- type: "string" | "number" | "boolean" | "integer" | "array";
204
+ type: "string" | "number" | "boolean" | "array" | "integer";
202
205
  minimum?: number | undefined;
203
206
  maximum?: number | undefined;
204
207
  minLength?: number | undefined;
@@ -210,41 +213,24 @@ export declare class SessionHub {
210
213
  } | undefined;
211
214
  defaults?: string[] | undefined;
212
215
  header?: string | undefined;
216
+ options?: {
217
+ value: string;
218
+ label: string;
219
+ description?: string | undefined;
220
+ }[] | undefined;
221
+ other?: boolean | undefined;
222
+ secret?: boolean | undefined;
213
223
  required?: boolean | undefined;
214
224
  }[] | undefined;
215
- childSessionId?: string | undefined;
216
- url?: {
217
- url: string;
218
- elicitationId: string;
219
- } | undefined;
220
225
  };
221
226
  }[];
222
227
  editor(input: EditorRequest): Promise<{
228
+ editorId?: string | undefined;
223
229
  path?: string | undefined;
224
230
  text?: string | undefined;
225
231
  version?: number | undefined;
226
- preview?: {
227
- path: string;
228
- kind: "edit" | "jump" | "searchAndReplace";
229
- id: string;
230
- before: string;
231
- after: string;
232
- position?: {
233
- line: number;
234
- character: number;
235
- } | undefined;
236
- } | undefined;
237
- position?: {
238
- line: number;
239
- character: number;
240
- } | undefined;
241
- editorId?: string | undefined;
242
232
  suggestions?: ({
243
- uri: string;
244
- kind: "edit";
245
- id: string;
246
233
  edits: {
247
- newText: string;
248
234
  range: {
249
235
  start: {
250
236
  line: number;
@@ -255,36 +241,55 @@ export declare class SessionHub {
255
241
  character: number;
256
242
  };
257
243
  };
244
+ newText: string;
258
245
  }[];
246
+ id: string;
247
+ uri: string;
248
+ kind: "edit";
259
249
  cursorPosition?: {
260
250
  line: number;
261
251
  character: number;
262
252
  } | null | undefined;
263
253
  } | {
264
- uri: string;
265
- kind: "jump";
266
- id: string;
267
254
  position: {
268
255
  line: number;
269
256
  character: number;
270
257
  };
271
- } | {
272
- uri: string;
273
- kind: "rename";
274
258
  id: string;
259
+ uri: string;
260
+ kind: "jump";
261
+ } | {
275
262
  position: {
276
263
  line: number;
277
264
  character: number;
278
265
  };
279
266
  newName: string;
267
+ id: string;
268
+ uri: string;
269
+ kind: "rename";
280
270
  } | {
281
- replace: string;
282
271
  search: string;
272
+ replace: string;
273
+ id: string;
283
274
  uri: string;
284
275
  kind: "searchAndReplace";
285
- id: string;
286
276
  isRegex?: boolean | null | undefined;
287
277
  })[] | undefined;
278
+ preview?: {
279
+ id: string;
280
+ path: string;
281
+ before: string;
282
+ after: string;
283
+ kind: "edit" | "jump" | "searchAndReplace";
284
+ position?: {
285
+ line: number;
286
+ character: number;
287
+ } | undefined;
288
+ } | undefined;
289
+ position?: {
290
+ line: number;
291
+ character: number;
292
+ } | undefined;
288
293
  }>;
289
294
  configureAcp(agent: string, settings: AcpAgentSettings, sessionId?: string): Promise<void>;
290
295
  authenticate(agent: string, methodId?: string, logout?: boolean): Promise<{
@@ -300,9 +305,9 @@ export declare class SessionHub {
300
305
  baseUrl?: string;
301
306
  headers?: Record<string, string>;
302
307
  }): Promise<{
303
- required: boolean;
304
308
  providerId: string;
305
309
  supported: string[];
310
+ required: boolean;
306
311
  current?: {
307
312
  apiType: string;
308
313
  baseUrl: string;
@@ -1,90 +1,60 @@
1
1
  import { z } from "zod";
2
2
  /** What a viewer may ask the helper to do. Positions are fractions of the display being watched. */
3
- export declare const inputEvent: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
3
+ export declare const inputEvent: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
4
  t: z.ZodLiteral<"move">;
5
5
  x: z.ZodNumber;
6
6
  y: z.ZodNumber;
7
- }, "strip", z.ZodTypeAny, {
8
- t: "move";
9
- x: number;
10
- y: number;
11
- }, {
12
- t: "move";
13
- x: number;
14
- y: number;
15
- }>, z.ZodObject<{
7
+ }, z.core.$strip>, z.ZodObject<{
16
8
  t: z.ZodLiteral<"down">;
17
- b: z.ZodEnum<["left", "right"]>;
9
+ b: z.ZodEnum<{
10
+ left: "left";
11
+ right: "right";
12
+ }>;
18
13
  n: z.ZodOptional<z.ZodNumber>;
19
- m: z.ZodOptional<z.ZodArray<z.ZodEnum<["cmd", "shift", "alt", "ctrl"]>, "many">>;
20
- }, "strip", z.ZodTypeAny, {
21
- t: "down";
22
- b: "left" | "right";
23
- n?: number | undefined;
24
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
25
- }, {
26
- t: "down";
27
- b: "left" | "right";
28
- n?: number | undefined;
29
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
30
- }>, z.ZodObject<{
14
+ m: z.ZodOptional<z.ZodArray<z.ZodEnum<{
15
+ shift: "shift";
16
+ cmd: "cmd";
17
+ alt: "alt";
18
+ ctrl: "ctrl";
19
+ }>>>;
20
+ }, z.core.$strip>, z.ZodObject<{
31
21
  t: z.ZodLiteral<"up">;
32
- b: z.ZodEnum<["left", "right"]>;
22
+ b: z.ZodEnum<{
23
+ left: "left";
24
+ right: "right";
25
+ }>;
33
26
  n: z.ZodOptional<z.ZodNumber>;
34
- m: z.ZodOptional<z.ZodArray<z.ZodEnum<["cmd", "shift", "alt", "ctrl"]>, "many">>;
35
- }, "strip", z.ZodTypeAny, {
36
- t: "up";
37
- b: "left" | "right";
38
- n?: number | undefined;
39
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
40
- }, {
41
- t: "up";
42
- b: "left" | "right";
43
- n?: number | undefined;
44
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
45
- }>, z.ZodObject<{
27
+ m: z.ZodOptional<z.ZodArray<z.ZodEnum<{
28
+ shift: "shift";
29
+ cmd: "cmd";
30
+ alt: "alt";
31
+ ctrl: "ctrl";
32
+ }>>>;
33
+ }, z.core.$strip>, z.ZodObject<{
46
34
  t: z.ZodLiteral<"scroll">;
47
35
  dx: z.ZodNumber;
48
36
  dy: z.ZodNumber;
49
- m: z.ZodOptional<z.ZodArray<z.ZodEnum<["cmd", "shift", "alt", "ctrl"]>, "many">>;
50
- }, "strip", z.ZodTypeAny, {
51
- t: "scroll";
52
- dx: number;
53
- dy: number;
54
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
55
- }, {
56
- t: "scroll";
57
- dx: number;
58
- dy: number;
59
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
60
- }>, z.ZodObject<{
37
+ m: z.ZodOptional<z.ZodArray<z.ZodEnum<{
38
+ shift: "shift";
39
+ cmd: "cmd";
40
+ alt: "alt";
41
+ ctrl: "ctrl";
42
+ }>>>;
43
+ }, z.core.$strip>, z.ZodObject<{
61
44
  t: z.ZodLiteral<"key">;
62
45
  k: z.ZodString;
63
- m: z.ZodOptional<z.ZodArray<z.ZodEnum<["cmd", "shift", "alt", "ctrl"]>, "many">>;
64
- }, "strip", z.ZodTypeAny, {
65
- t: "key";
66
- k: string;
67
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
68
- }, {
69
- t: "key";
70
- k: string;
71
- m?: ("shift" | "cmd" | "alt" | "ctrl")[] | undefined;
72
- }>, z.ZodObject<{
46
+ m: z.ZodOptional<z.ZodArray<z.ZodEnum<{
47
+ shift: "shift";
48
+ cmd: "cmd";
49
+ alt: "alt";
50
+ ctrl: "ctrl";
51
+ }>>>;
52
+ }, z.core.$strip>, z.ZodObject<{
73
53
  t: z.ZodLiteral<"text">;
74
54
  s: z.ZodString;
75
- }, "strip", z.ZodTypeAny, {
76
- t: "text";
77
- s: string;
78
- }, {
79
- t: "text";
80
- s: string;
81
- }>, z.ZodObject<{
55
+ }, z.core.$strip>, z.ZodObject<{
82
56
  t: z.ZodLiteral<"prompt">;
83
- }, "strip", z.ZodTypeAny, {
84
- t: "prompt";
85
- }, {
86
- t: "prompt";
87
- }>]>;
57
+ }, z.core.$strip>], "t">;
88
58
  export type InputEvent = z.infer<typeof inputEvent>;
89
59
  /** `app` is the name the system's privacy settings list: the one to allow. */
90
60
  export type ControlState = {
@@ -185,31 +155,15 @@ export type VideoSignal = {
185
155
  sdpMid: string | null;
186
156
  sdpMLineIndex: number | null;
187
157
  };
188
- export declare const videoSignal: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
158
+ export declare const videoSignal: z.ZodDiscriminatedUnion<[z.ZodObject<{
189
159
  t: z.ZodLiteral<"rtc.answer">;
190
160
  sdp: z.ZodString;
191
- }, "strip", z.ZodTypeAny, {
192
- sdp: string;
193
- t: "rtc.answer";
194
- }, {
195
- sdp: string;
196
- t: "rtc.answer";
197
- }>, z.ZodObject<{
161
+ }, z.core.$strip>, z.ZodObject<{
198
162
  t: z.ZodLiteral<"rtc.ice">;
199
163
  candidate: z.ZodString;
200
164
  sdpMid: z.ZodNullable<z.ZodString>;
201
165
  sdpMLineIndex: z.ZodNullable<z.ZodNumber>;
202
- }, "strip", z.ZodTypeAny, {
203
- t: "rtc.ice";
204
- candidate: string;
205
- sdpMid: string | null;
206
- sdpMLineIndex: number | null;
207
- }, {
208
- t: "rtc.ice";
209
- candidate: string;
210
- sdpMid: string | null;
211
- sdpMLineIndex: number | null;
212
- }>]>;
166
+ }, z.core.$strip>], "t">;
213
167
  /**
214
168
  * The app out of the archive it is shipped in, unpacked under the user's own
215
169
  * directory. An archive, because a package can carry neither the links a
@@ -21,7 +21,7 @@ const unit = z.number().min(0).max(1);
21
21
  const button = z.enum(["left", "right"]);
22
22
  const modifiers = z.array(z.enum(["cmd", "shift", "alt", "ctrl"])).max(4).optional();
23
23
  const clicks = z.number().int().min(1).max(3).optional();
24
- const delta = z.number().finite();
24
+ const delta = z.number();
25
25
  /** What a viewer may ask the helper to do. Positions are fractions of the display being watched. */
26
26
  export const inputEvent = z.discriminatedUnion("t", [
27
27
  z.object({ t: z.literal("move"), x: unit, y: unit }),