@ikenga/contract 0.5.0 → 0.6.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.
- package/dist/browser.d.ts +624 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +264 -0
- package/dist/browser.js.map +1 -0
- package/dist/engine/acp.d.ts +271 -0
- package/dist/engine/acp.d.ts.map +1 -0
- package/dist/engine/acp.js +13 -0
- package/dist/engine/acp.js.map +1 -0
- package/dist/{engine.d.ts → engine/adapter.d.ts} +60 -243
- package/dist/engine/adapter.d.ts.map +1 -0
- package/dist/{engine.js → engine/adapter.js} +14 -6
- package/dist/engine/adapter.js.map +1 -0
- package/dist/engine/errors.d.ts +17 -0
- package/dist/engine/errors.d.ts.map +1 -0
- package/dist/engine/errors.js +19 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/index.d.ts +12 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +12 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +147 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +32 -1
- package/dist/manifest.js.map +1 -1
- package/dist/registry.d.ts +216 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +23 -0
- package/dist/registry.js.map +1 -1
- package/dist/rpc.d.ts +1 -1
- package/dist/rpc.d.ts.map +1 -1
- package/package.json +7 -3
- package/src/browser.test.ts +350 -0
- package/src/browser.ts +364 -0
- package/src/{engine.ts → engine/acp.ts} +49 -198
- package/src/engine/adapter.ts +243 -0
- package/src/{engine.test.ts → engine/engine.test.ts} +33 -2
- package/src/engine/errors.ts +20 -0
- package/src/engine/index.ts +12 -0
- package/src/index.ts +2 -1
- package/src/manifest.ts +35 -1
- package/src/registry.ts +25 -0
- package/src/rpc.ts +1 -1
- package/dist/engine.d.ts.map +0 -1
- package/dist/engine.js.map +0 -1
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Pattern for pane ids allocated by the MCP server. */
|
|
3
|
+
export declare const BROWSER_PANE_ID_PATTERN: RegExp;
|
|
4
|
+
/** Pattern for element refs returned by a snapshot. */
|
|
5
|
+
export declare const BROWSER_REF_PATTERN: RegExp;
|
|
6
|
+
export declare const BrowserPaneIdSchema: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
7
|
+
export type BrowserPaneId = z.infer<typeof BrowserPaneIdSchema>;
|
|
8
|
+
export declare const BrowserRefSchema: z.ZodBranded<z.ZodString, "BrowserRef">;
|
|
9
|
+
export type BrowserRef = z.infer<typeof BrowserRefSchema>;
|
|
10
|
+
export declare const BrowserSnapshotNodeSchema: z.ZodObject<{
|
|
11
|
+
ref: z.ZodBranded<z.ZodString, "BrowserRef">;
|
|
12
|
+
role: z.ZodString;
|
|
13
|
+
/** Accessible name (label, alt text, innerText, etc.). */
|
|
14
|
+
name: z.ZodOptional<z.ZodString>;
|
|
15
|
+
/** Current value for inputs / selects / textareas. */
|
|
16
|
+
value: z.ZodOptional<z.ZodString>;
|
|
17
|
+
/** Best-effort tag name for non-ARIA debugging. */
|
|
18
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
19
|
+
/** Truthy iff `checked`/`aria-checked` is set on a checkbox/radio. */
|
|
20
|
+
checked: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
/** Truthy iff the element is `disabled`/`aria-disabled`. */
|
|
22
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
/** Truthy iff `aria-expanded === "true"`. */
|
|
24
|
+
expanded: z.ZodOptional<z.ZodBoolean>;
|
|
25
|
+
/** Truthy iff `aria-selected === "true"`. */
|
|
26
|
+
selected: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
+
/** Hidden / aria-hidden / display:none. Always set when `all=true`. */
|
|
28
|
+
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
29
|
+
/** Refs of direct children, in document order. Omitted on leaves. */
|
|
30
|
+
children: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodString, "BrowserRef">, "many">>;
|
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
|
32
|
+
ref: string & z.BRAND<"BrowserRef">;
|
|
33
|
+
role: string;
|
|
34
|
+
value?: string | undefined;
|
|
35
|
+
name?: string | undefined;
|
|
36
|
+
tag?: string | undefined;
|
|
37
|
+
checked?: boolean | undefined;
|
|
38
|
+
disabled?: boolean | undefined;
|
|
39
|
+
expanded?: boolean | undefined;
|
|
40
|
+
selected?: boolean | undefined;
|
|
41
|
+
hidden?: boolean | undefined;
|
|
42
|
+
children?: (string & z.BRAND<"BrowserRef">)[] | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
ref: string;
|
|
45
|
+
role: string;
|
|
46
|
+
value?: string | undefined;
|
|
47
|
+
name?: string | undefined;
|
|
48
|
+
tag?: string | undefined;
|
|
49
|
+
checked?: boolean | undefined;
|
|
50
|
+
disabled?: boolean | undefined;
|
|
51
|
+
expanded?: boolean | undefined;
|
|
52
|
+
selected?: boolean | undefined;
|
|
53
|
+
hidden?: boolean | undefined;
|
|
54
|
+
children?: string[] | undefined;
|
|
55
|
+
}>;
|
|
56
|
+
export type BrowserSnapshotNode = z.infer<typeof BrowserSnapshotNodeSchema>;
|
|
57
|
+
export declare const BrowserSnapshotSchema: z.ZodObject<{
|
|
58
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
59
|
+
url: z.ZodString;
|
|
60
|
+
title: z.ZodString;
|
|
61
|
+
/** Playwright-style accessibility tree, ref-annotated. */
|
|
62
|
+
text: z.ZodString;
|
|
63
|
+
/** Flat list keyed by ref. The first entry is the document root. */
|
|
64
|
+
nodes: z.ZodArray<z.ZodObject<{
|
|
65
|
+
ref: z.ZodBranded<z.ZodString, "BrowserRef">;
|
|
66
|
+
role: z.ZodString;
|
|
67
|
+
/** Accessible name (label, alt text, innerText, etc.). */
|
|
68
|
+
name: z.ZodOptional<z.ZodString>;
|
|
69
|
+
/** Current value for inputs / selects / textareas. */
|
|
70
|
+
value: z.ZodOptional<z.ZodString>;
|
|
71
|
+
/** Best-effort tag name for non-ARIA debugging. */
|
|
72
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
73
|
+
/** Truthy iff `checked`/`aria-checked` is set on a checkbox/radio. */
|
|
74
|
+
checked: z.ZodOptional<z.ZodBoolean>;
|
|
75
|
+
/** Truthy iff the element is `disabled`/`aria-disabled`. */
|
|
76
|
+
disabled: z.ZodOptional<z.ZodBoolean>;
|
|
77
|
+
/** Truthy iff `aria-expanded === "true"`. */
|
|
78
|
+
expanded: z.ZodOptional<z.ZodBoolean>;
|
|
79
|
+
/** Truthy iff `aria-selected === "true"`. */
|
|
80
|
+
selected: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
+
/** Hidden / aria-hidden / display:none. Always set when `all=true`. */
|
|
82
|
+
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
/** Refs of direct children, in document order. Omitted on leaves. */
|
|
84
|
+
children: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodString, "BrowserRef">, "many">>;
|
|
85
|
+
}, "strip", z.ZodTypeAny, {
|
|
86
|
+
ref: string & z.BRAND<"BrowserRef">;
|
|
87
|
+
role: string;
|
|
88
|
+
value?: string | undefined;
|
|
89
|
+
name?: string | undefined;
|
|
90
|
+
tag?: string | undefined;
|
|
91
|
+
checked?: boolean | undefined;
|
|
92
|
+
disabled?: boolean | undefined;
|
|
93
|
+
expanded?: boolean | undefined;
|
|
94
|
+
selected?: boolean | undefined;
|
|
95
|
+
hidden?: boolean | undefined;
|
|
96
|
+
children?: (string & z.BRAND<"BrowserRef">)[] | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
ref: string;
|
|
99
|
+
role: string;
|
|
100
|
+
value?: string | undefined;
|
|
101
|
+
name?: string | undefined;
|
|
102
|
+
tag?: string | undefined;
|
|
103
|
+
checked?: boolean | undefined;
|
|
104
|
+
disabled?: boolean | undefined;
|
|
105
|
+
expanded?: boolean | undefined;
|
|
106
|
+
selected?: boolean | undefined;
|
|
107
|
+
hidden?: boolean | undefined;
|
|
108
|
+
children?: string[] | undefined;
|
|
109
|
+
}>, "many">;
|
|
110
|
+
/** Monotonic counter for this pane; used to detect stale refs. */
|
|
111
|
+
snapshotId: z.ZodNumber;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
url: string;
|
|
114
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
115
|
+
title: string;
|
|
116
|
+
text: string;
|
|
117
|
+
nodes: {
|
|
118
|
+
ref: string & z.BRAND<"BrowserRef">;
|
|
119
|
+
role: string;
|
|
120
|
+
value?: string | undefined;
|
|
121
|
+
name?: string | undefined;
|
|
122
|
+
tag?: string | undefined;
|
|
123
|
+
checked?: boolean | undefined;
|
|
124
|
+
disabled?: boolean | undefined;
|
|
125
|
+
expanded?: boolean | undefined;
|
|
126
|
+
selected?: boolean | undefined;
|
|
127
|
+
hidden?: boolean | undefined;
|
|
128
|
+
children?: (string & z.BRAND<"BrowserRef">)[] | undefined;
|
|
129
|
+
}[];
|
|
130
|
+
snapshotId: number;
|
|
131
|
+
}, {
|
|
132
|
+
url: string;
|
|
133
|
+
id: string;
|
|
134
|
+
title: string;
|
|
135
|
+
text: string;
|
|
136
|
+
nodes: {
|
|
137
|
+
ref: string;
|
|
138
|
+
role: string;
|
|
139
|
+
value?: string | undefined;
|
|
140
|
+
name?: string | undefined;
|
|
141
|
+
tag?: string | undefined;
|
|
142
|
+
checked?: boolean | undefined;
|
|
143
|
+
disabled?: boolean | undefined;
|
|
144
|
+
expanded?: boolean | undefined;
|
|
145
|
+
selected?: boolean | undefined;
|
|
146
|
+
hidden?: boolean | undefined;
|
|
147
|
+
children?: string[] | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
snapshotId: number;
|
|
150
|
+
}>;
|
|
151
|
+
export type BrowserSnapshot = z.infer<typeof BrowserSnapshotSchema>;
|
|
152
|
+
declare const RectSchema: z.ZodObject<{
|
|
153
|
+
x: z.ZodNumber;
|
|
154
|
+
y: z.ZodNumber;
|
|
155
|
+
w: z.ZodNumber;
|
|
156
|
+
h: z.ZodNumber;
|
|
157
|
+
}, "strip", z.ZodTypeAny, {
|
|
158
|
+
x: number;
|
|
159
|
+
y: number;
|
|
160
|
+
w: number;
|
|
161
|
+
h: number;
|
|
162
|
+
}, {
|
|
163
|
+
x: number;
|
|
164
|
+
y: number;
|
|
165
|
+
w: number;
|
|
166
|
+
h: number;
|
|
167
|
+
}>;
|
|
168
|
+
export type BrowserRect = z.infer<typeof RectSchema>;
|
|
169
|
+
export declare const BrowserOpenInputSchema: z.ZodEffects<z.ZodObject<{
|
|
170
|
+
url: z.ZodString;
|
|
171
|
+
/**
|
|
172
|
+
* Named cookie/storage jar slug. Must be declared in the pkg manifest's
|
|
173
|
+
* `capabilities.webview.partitions` unless it's `"default"`. Mutually
|
|
174
|
+
* exclusive with `session`.
|
|
175
|
+
*/
|
|
176
|
+
partition: z.ZodOptional<z.ZodString>;
|
|
177
|
+
/**
|
|
178
|
+
* Named-session handle (see {@link BrowserSessionSchema}). The MCP
|
|
179
|
+
* server resolves this to a partition before calling the shell, so
|
|
180
|
+
* multiple sessions can share an underlying partition if the caller
|
|
181
|
+
* declared it that way at create time.
|
|
182
|
+
*/
|
|
183
|
+
session: z.ZodOptional<z.ZodString>;
|
|
184
|
+
/**
|
|
185
|
+
* Optional initial rect in main-window-client coordinates. Omitted when
|
|
186
|
+
* the FE owns layout (the kernel will refuse without a rect; the MCP
|
|
187
|
+
* layer is expected to supply a sane default if the caller didn't).
|
|
188
|
+
*/
|
|
189
|
+
rect: z.ZodOptional<z.ZodObject<{
|
|
190
|
+
x: z.ZodNumber;
|
|
191
|
+
y: z.ZodNumber;
|
|
192
|
+
w: z.ZodNumber;
|
|
193
|
+
h: z.ZodNumber;
|
|
194
|
+
}, "strip", z.ZodTypeAny, {
|
|
195
|
+
x: number;
|
|
196
|
+
y: number;
|
|
197
|
+
w: number;
|
|
198
|
+
h: number;
|
|
199
|
+
}, {
|
|
200
|
+
x: number;
|
|
201
|
+
y: number;
|
|
202
|
+
w: number;
|
|
203
|
+
h: number;
|
|
204
|
+
}>>;
|
|
205
|
+
}, "strip", z.ZodTypeAny, {
|
|
206
|
+
url: string;
|
|
207
|
+
partition?: string | undefined;
|
|
208
|
+
session?: string | undefined;
|
|
209
|
+
rect?: {
|
|
210
|
+
x: number;
|
|
211
|
+
y: number;
|
|
212
|
+
w: number;
|
|
213
|
+
h: number;
|
|
214
|
+
} | undefined;
|
|
215
|
+
}, {
|
|
216
|
+
url: string;
|
|
217
|
+
partition?: string | undefined;
|
|
218
|
+
session?: string | undefined;
|
|
219
|
+
rect?: {
|
|
220
|
+
x: number;
|
|
221
|
+
y: number;
|
|
222
|
+
w: number;
|
|
223
|
+
h: number;
|
|
224
|
+
} | undefined;
|
|
225
|
+
}>, {
|
|
226
|
+
url: string;
|
|
227
|
+
partition?: string | undefined;
|
|
228
|
+
session?: string | undefined;
|
|
229
|
+
rect?: {
|
|
230
|
+
x: number;
|
|
231
|
+
y: number;
|
|
232
|
+
w: number;
|
|
233
|
+
h: number;
|
|
234
|
+
} | undefined;
|
|
235
|
+
}, {
|
|
236
|
+
url: string;
|
|
237
|
+
partition?: string | undefined;
|
|
238
|
+
session?: string | undefined;
|
|
239
|
+
rect?: {
|
|
240
|
+
x: number;
|
|
241
|
+
y: number;
|
|
242
|
+
w: number;
|
|
243
|
+
h: number;
|
|
244
|
+
} | undefined;
|
|
245
|
+
}>;
|
|
246
|
+
export type BrowserOpenInput = z.infer<typeof BrowserOpenInputSchema>;
|
|
247
|
+
export declare const BrowserOpenResultSchema: z.ZodObject<{
|
|
248
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
249
|
+
url: z.ZodString;
|
|
250
|
+
partition: z.ZodString;
|
|
251
|
+
}, "strip", z.ZodTypeAny, {
|
|
252
|
+
url: string;
|
|
253
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
254
|
+
partition: string;
|
|
255
|
+
}, {
|
|
256
|
+
url: string;
|
|
257
|
+
id: string;
|
|
258
|
+
partition: string;
|
|
259
|
+
}>;
|
|
260
|
+
export type BrowserOpenResult = z.infer<typeof BrowserOpenResultSchema>;
|
|
261
|
+
export declare const BrowserPaneIdInputSchema: z.ZodObject<{
|
|
262
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
263
|
+
}, "strip", z.ZodTypeAny, {
|
|
264
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
265
|
+
}, {
|
|
266
|
+
id: string;
|
|
267
|
+
}>;
|
|
268
|
+
export type BrowserPaneIdInput = z.infer<typeof BrowserPaneIdInputSchema>;
|
|
269
|
+
export declare const BrowserOkResultSchema: z.ZodObject<{
|
|
270
|
+
ok: z.ZodLiteral<true>;
|
|
271
|
+
}, "strip", z.ZodTypeAny, {
|
|
272
|
+
ok: true;
|
|
273
|
+
}, {
|
|
274
|
+
ok: true;
|
|
275
|
+
}>;
|
|
276
|
+
export type BrowserOkResult = z.infer<typeof BrowserOkResultSchema>;
|
|
277
|
+
export declare const BrowserListEntrySchema: z.ZodObject<{
|
|
278
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
279
|
+
url: z.ZodString;
|
|
280
|
+
partition: z.ZodString;
|
|
281
|
+
focused: z.ZodBoolean;
|
|
282
|
+
}, "strip", z.ZodTypeAny, {
|
|
283
|
+
url: string;
|
|
284
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
285
|
+
partition: string;
|
|
286
|
+
focused: boolean;
|
|
287
|
+
}, {
|
|
288
|
+
url: string;
|
|
289
|
+
id: string;
|
|
290
|
+
partition: string;
|
|
291
|
+
focused: boolean;
|
|
292
|
+
}>;
|
|
293
|
+
export type BrowserListEntry = z.infer<typeof BrowserListEntrySchema>;
|
|
294
|
+
export declare const BrowserListResultSchema: z.ZodObject<{
|
|
295
|
+
panes: z.ZodArray<z.ZodObject<{
|
|
296
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
297
|
+
url: z.ZodString;
|
|
298
|
+
partition: z.ZodString;
|
|
299
|
+
focused: z.ZodBoolean;
|
|
300
|
+
}, "strip", z.ZodTypeAny, {
|
|
301
|
+
url: string;
|
|
302
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
303
|
+
partition: string;
|
|
304
|
+
focused: boolean;
|
|
305
|
+
}, {
|
|
306
|
+
url: string;
|
|
307
|
+
id: string;
|
|
308
|
+
partition: string;
|
|
309
|
+
focused: boolean;
|
|
310
|
+
}>, "many">;
|
|
311
|
+
}, "strip", z.ZodTypeAny, {
|
|
312
|
+
panes: {
|
|
313
|
+
url: string;
|
|
314
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
315
|
+
partition: string;
|
|
316
|
+
focused: boolean;
|
|
317
|
+
}[];
|
|
318
|
+
}, {
|
|
319
|
+
panes: {
|
|
320
|
+
url: string;
|
|
321
|
+
id: string;
|
|
322
|
+
partition: string;
|
|
323
|
+
focused: boolean;
|
|
324
|
+
}[];
|
|
325
|
+
}>;
|
|
326
|
+
export type BrowserListResult = z.infer<typeof BrowserListResultSchema>;
|
|
327
|
+
export declare const BrowserGotoInputSchema: z.ZodObject<{
|
|
328
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
329
|
+
url: z.ZodString;
|
|
330
|
+
}, "strip", z.ZodTypeAny, {
|
|
331
|
+
url: string;
|
|
332
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
333
|
+
}, {
|
|
334
|
+
url: string;
|
|
335
|
+
id: string;
|
|
336
|
+
}>;
|
|
337
|
+
export type BrowserGotoInput = z.infer<typeof BrowserGotoInputSchema>;
|
|
338
|
+
export declare const BrowserNavResultSchema: z.ZodObject<{
|
|
339
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
340
|
+
url: z.ZodString;
|
|
341
|
+
}, "strip", z.ZodTypeAny, {
|
|
342
|
+
url: string;
|
|
343
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
344
|
+
}, {
|
|
345
|
+
url: string;
|
|
346
|
+
id: string;
|
|
347
|
+
}>;
|
|
348
|
+
export type BrowserNavResult = z.infer<typeof BrowserNavResultSchema>;
|
|
349
|
+
export declare const BrowserSnapshotInputSchema: z.ZodObject<{
|
|
350
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
351
|
+
/** Substring filter against role/name/value. */
|
|
352
|
+
query: z.ZodOptional<z.ZodString>;
|
|
353
|
+
/** Include hidden + aria-hidden elements. */
|
|
354
|
+
all: z.ZodOptional<z.ZodBoolean>;
|
|
355
|
+
}, "strip", z.ZodTypeAny, {
|
|
356
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
357
|
+
query?: string | undefined;
|
|
358
|
+
all?: boolean | undefined;
|
|
359
|
+
}, {
|
|
360
|
+
id: string;
|
|
361
|
+
query?: string | undefined;
|
|
362
|
+
all?: boolean | undefined;
|
|
363
|
+
}>;
|
|
364
|
+
export type BrowserSnapshotInput = z.infer<typeof BrowserSnapshotInputSchema>;
|
|
365
|
+
export declare const BrowserReadTextInputSchema: z.ZodObject<{
|
|
366
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
367
|
+
ref: z.ZodBranded<z.ZodString, "BrowserRef">;
|
|
368
|
+
}, "strip", z.ZodTypeAny, {
|
|
369
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
370
|
+
ref: string & z.BRAND<"BrowserRef">;
|
|
371
|
+
}, {
|
|
372
|
+
id: string;
|
|
373
|
+
ref: string;
|
|
374
|
+
}>;
|
|
375
|
+
export type BrowserReadTextInput = z.infer<typeof BrowserReadTextInputSchema>;
|
|
376
|
+
export declare const BrowserReadTextResultSchema: z.ZodObject<{
|
|
377
|
+
text: z.ZodString;
|
|
378
|
+
}, "strip", z.ZodTypeAny, {
|
|
379
|
+
text: string;
|
|
380
|
+
}, {
|
|
381
|
+
text: string;
|
|
382
|
+
}>;
|
|
383
|
+
export type BrowserReadTextResult = z.infer<typeof BrowserReadTextResultSchema>;
|
|
384
|
+
export declare const BrowserScreenshotInputSchema: z.ZodObject<{
|
|
385
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
386
|
+
/** Override default output path (`~/.local/share/ikenga/screenshots/…`). */
|
|
387
|
+
out_path: z.ZodOptional<z.ZodString>;
|
|
388
|
+
}, "strip", z.ZodTypeAny, {
|
|
389
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
390
|
+
out_path?: string | undefined;
|
|
391
|
+
}, {
|
|
392
|
+
id: string;
|
|
393
|
+
out_path?: string | undefined;
|
|
394
|
+
}>;
|
|
395
|
+
export type BrowserScreenshotInput = z.infer<typeof BrowserScreenshotInputSchema>;
|
|
396
|
+
export declare const BrowserScreenshotResultSchema: z.ZodObject<{
|
|
397
|
+
path: z.ZodString;
|
|
398
|
+
width: z.ZodNumber;
|
|
399
|
+
height: z.ZodNumber;
|
|
400
|
+
bytes: z.ZodNumber;
|
|
401
|
+
}, "strip", z.ZodTypeAny, {
|
|
402
|
+
path: string;
|
|
403
|
+
width: number;
|
|
404
|
+
height: number;
|
|
405
|
+
bytes: number;
|
|
406
|
+
}, {
|
|
407
|
+
path: string;
|
|
408
|
+
width: number;
|
|
409
|
+
height: number;
|
|
410
|
+
bytes: number;
|
|
411
|
+
}>;
|
|
412
|
+
export type BrowserScreenshotResult = z.infer<typeof BrowserScreenshotResultSchema>;
|
|
413
|
+
export declare const BrowserClickInputSchema: z.ZodObject<{
|
|
414
|
+
/** innerText substring match. Lower-priority than ref/selector. */
|
|
415
|
+
text: z.ZodOptional<z.ZodString>;
|
|
416
|
+
ref: z.ZodOptional<z.ZodBranded<z.ZodString, "BrowserRef">>;
|
|
417
|
+
selector: z.ZodOptional<z.ZodString>;
|
|
418
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
419
|
+
}, "strip", z.ZodTypeAny, {
|
|
420
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
421
|
+
ref?: (string & z.BRAND<"BrowserRef">) | undefined;
|
|
422
|
+
text?: string | undefined;
|
|
423
|
+
selector?: string | undefined;
|
|
424
|
+
}, {
|
|
425
|
+
id: string;
|
|
426
|
+
ref?: string | undefined;
|
|
427
|
+
text?: string | undefined;
|
|
428
|
+
selector?: string | undefined;
|
|
429
|
+
}>;
|
|
430
|
+
export type BrowserClickInput = z.infer<typeof BrowserClickInputSchema>;
|
|
431
|
+
export declare const BrowserFillInputSchema: z.ZodObject<{
|
|
432
|
+
text: z.ZodString;
|
|
433
|
+
/** Default false (append). True overwrites the existing value. */
|
|
434
|
+
replace: z.ZodOptional<z.ZodBoolean>;
|
|
435
|
+
ref: z.ZodOptional<z.ZodBranded<z.ZodString, "BrowserRef">>;
|
|
436
|
+
selector: z.ZodOptional<z.ZodString>;
|
|
437
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
438
|
+
}, "strip", z.ZodTypeAny, {
|
|
439
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
440
|
+
text: string;
|
|
441
|
+
ref?: (string & z.BRAND<"BrowserRef">) | undefined;
|
|
442
|
+
selector?: string | undefined;
|
|
443
|
+
replace?: boolean | undefined;
|
|
444
|
+
}, {
|
|
445
|
+
id: string;
|
|
446
|
+
text: string;
|
|
447
|
+
ref?: string | undefined;
|
|
448
|
+
selector?: string | undefined;
|
|
449
|
+
replace?: boolean | undefined;
|
|
450
|
+
}>;
|
|
451
|
+
export type BrowserFillInput = z.infer<typeof BrowserFillInputSchema>;
|
|
452
|
+
export declare const BrowserSelectInputSchema: z.ZodObject<{
|
|
453
|
+
/** Option `value` attribute (preferred) or visible label. */
|
|
454
|
+
value: z.ZodString;
|
|
455
|
+
ref: z.ZodOptional<z.ZodBranded<z.ZodString, "BrowserRef">>;
|
|
456
|
+
selector: z.ZodOptional<z.ZodString>;
|
|
457
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
458
|
+
}, "strip", z.ZodTypeAny, {
|
|
459
|
+
value: string;
|
|
460
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
461
|
+
ref?: (string & z.BRAND<"BrowserRef">) | undefined;
|
|
462
|
+
selector?: string | undefined;
|
|
463
|
+
}, {
|
|
464
|
+
value: string;
|
|
465
|
+
id: string;
|
|
466
|
+
ref?: string | undefined;
|
|
467
|
+
selector?: string | undefined;
|
|
468
|
+
}>;
|
|
469
|
+
export type BrowserSelectInput = z.infer<typeof BrowserSelectInputSchema>;
|
|
470
|
+
export declare const BrowserPressKeyInputSchema: z.ZodObject<{
|
|
471
|
+
/** Key combo, e.g. "Enter", "Escape", "Ctrl+S", "Meta+K", "Shift+Tab". */
|
|
472
|
+
combo: z.ZodString;
|
|
473
|
+
ref: z.ZodOptional<z.ZodBranded<z.ZodString, "BrowserRef">>;
|
|
474
|
+
selector: z.ZodOptional<z.ZodString>;
|
|
475
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
476
|
+
}, "strip", z.ZodTypeAny, {
|
|
477
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
478
|
+
combo: string;
|
|
479
|
+
ref?: (string & z.BRAND<"BrowserRef">) | undefined;
|
|
480
|
+
selector?: string | undefined;
|
|
481
|
+
}, {
|
|
482
|
+
id: string;
|
|
483
|
+
combo: string;
|
|
484
|
+
ref?: string | undefined;
|
|
485
|
+
selector?: string | undefined;
|
|
486
|
+
}>;
|
|
487
|
+
export type BrowserPressKeyInput = z.infer<typeof BrowserPressKeyInputSchema>;
|
|
488
|
+
export declare const BROWSER_WAIT_FOR_KINDS: readonly ["url", "ref", "text", "gone-text", "selector", "gone-selector", "idle"];
|
|
489
|
+
export type BrowserWaitForKind = (typeof BROWSER_WAIT_FOR_KINDS)[number];
|
|
490
|
+
export declare const BrowserWaitForInputSchema: z.ZodObject<{
|
|
491
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
492
|
+
kind: z.ZodEnum<["url", "ref", "text", "gone-text", "selector", "gone-selector", "idle"]>;
|
|
493
|
+
/**
|
|
494
|
+
* Predicate value. Required for `url`/`ref`/`text`; ignored for `idle`.
|
|
495
|
+
* - `url`: substring match against `location.href`.
|
|
496
|
+
* - `ref`: wait for an element with this ref to appear in the next
|
|
497
|
+
* snapshot (i.e. snapshot is re-taken until the ref exists).
|
|
498
|
+
* - `text`: substring match against the snapshot's rendered text.
|
|
499
|
+
*/
|
|
500
|
+
value: z.ZodOptional<z.ZodString>;
|
|
501
|
+
/** Default 10_000ms; clamped to [100, 60_000] by the server. */
|
|
502
|
+
timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
503
|
+
}, "strip", z.ZodTypeAny, {
|
|
504
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
505
|
+
kind: "url" | "ref" | "text" | "selector" | "gone-text" | "gone-selector" | "idle";
|
|
506
|
+
value?: string | undefined;
|
|
507
|
+
timeout_ms?: number | undefined;
|
|
508
|
+
}, {
|
|
509
|
+
id: string;
|
|
510
|
+
kind: "url" | "ref" | "text" | "selector" | "gone-text" | "gone-selector" | "idle";
|
|
511
|
+
value?: string | undefined;
|
|
512
|
+
timeout_ms?: number | undefined;
|
|
513
|
+
}>;
|
|
514
|
+
export type BrowserWaitForInput = z.infer<typeof BrowserWaitForInputSchema>;
|
|
515
|
+
export declare const BrowserWaitForResultSchema: z.ZodObject<{
|
|
516
|
+
satisfied: z.ZodBoolean;
|
|
517
|
+
elapsed_ms: z.ZodNumber;
|
|
518
|
+
message: z.ZodOptional<z.ZodString>;
|
|
519
|
+
}, "strip", z.ZodTypeAny, {
|
|
520
|
+
satisfied: boolean;
|
|
521
|
+
elapsed_ms: number;
|
|
522
|
+
message?: string | undefined;
|
|
523
|
+
}, {
|
|
524
|
+
satisfied: boolean;
|
|
525
|
+
elapsed_ms: number;
|
|
526
|
+
message?: string | undefined;
|
|
527
|
+
}>;
|
|
528
|
+
export type BrowserWaitForResult = z.infer<typeof BrowserWaitForResultSchema>;
|
|
529
|
+
export declare const BrowserEvalInputSchema: z.ZodObject<{
|
|
530
|
+
id: z.ZodBranded<z.ZodString, "BrowserPaneId">;
|
|
531
|
+
/**
|
|
532
|
+
* JavaScript source to evaluate in the child webview's page context.
|
|
533
|
+
* Fire-and-forget at the kernel layer; the caller is expected to ferry
|
|
534
|
+
* results back via a known callback shape if needed.
|
|
535
|
+
*/
|
|
536
|
+
script: z.ZodString;
|
|
537
|
+
}, "strip", z.ZodTypeAny, {
|
|
538
|
+
id: string & z.BRAND<"BrowserPaneId">;
|
|
539
|
+
script: string;
|
|
540
|
+
}, {
|
|
541
|
+
id: string;
|
|
542
|
+
script: string;
|
|
543
|
+
}>;
|
|
544
|
+
export type BrowserEvalInput = z.infer<typeof BrowserEvalInputSchema>;
|
|
545
|
+
export declare const BrowserSessionSchema: z.ZodObject<{
|
|
546
|
+
pkg_id: z.ZodString;
|
|
547
|
+
name: z.ZodString;
|
|
548
|
+
partition: z.ZodString;
|
|
549
|
+
created_at: z.ZodNumber;
|
|
550
|
+
last_used_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
551
|
+
}, "strip", z.ZodTypeAny, {
|
|
552
|
+
name: string;
|
|
553
|
+
partition: string;
|
|
554
|
+
pkg_id: string;
|
|
555
|
+
created_at: number;
|
|
556
|
+
last_used_at?: number | null | undefined;
|
|
557
|
+
}, {
|
|
558
|
+
name: string;
|
|
559
|
+
partition: string;
|
|
560
|
+
pkg_id: string;
|
|
561
|
+
created_at: number;
|
|
562
|
+
last_used_at?: number | null | undefined;
|
|
563
|
+
}>;
|
|
564
|
+
export type BrowserSession = z.infer<typeof BrowserSessionSchema>;
|
|
565
|
+
export declare const BrowserSessionCreateInputSchema: z.ZodObject<{
|
|
566
|
+
name: z.ZodString;
|
|
567
|
+
/** Defaults to a sanitized form of `name` if omitted. */
|
|
568
|
+
partition: z.ZodOptional<z.ZodString>;
|
|
569
|
+
}, "strip", z.ZodTypeAny, {
|
|
570
|
+
name: string;
|
|
571
|
+
partition?: string | undefined;
|
|
572
|
+
}, {
|
|
573
|
+
name: string;
|
|
574
|
+
partition?: string | undefined;
|
|
575
|
+
}>;
|
|
576
|
+
export type BrowserSessionCreateInput = z.infer<typeof BrowserSessionCreateInputSchema>;
|
|
577
|
+
export declare const BrowserSessionDeleteInputSchema: z.ZodObject<{
|
|
578
|
+
name: z.ZodString;
|
|
579
|
+
}, "strip", z.ZodTypeAny, {
|
|
580
|
+
name: string;
|
|
581
|
+
}, {
|
|
582
|
+
name: string;
|
|
583
|
+
}>;
|
|
584
|
+
export type BrowserSessionDeleteInput = z.infer<typeof BrowserSessionDeleteInputSchema>;
|
|
585
|
+
export declare const BrowserSessionListResultSchema: z.ZodObject<{
|
|
586
|
+
sessions: z.ZodArray<z.ZodObject<{
|
|
587
|
+
pkg_id: z.ZodString;
|
|
588
|
+
name: z.ZodString;
|
|
589
|
+
partition: z.ZodString;
|
|
590
|
+
created_at: z.ZodNumber;
|
|
591
|
+
last_used_at: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
592
|
+
}, "strip", z.ZodTypeAny, {
|
|
593
|
+
name: string;
|
|
594
|
+
partition: string;
|
|
595
|
+
pkg_id: string;
|
|
596
|
+
created_at: number;
|
|
597
|
+
last_used_at?: number | null | undefined;
|
|
598
|
+
}, {
|
|
599
|
+
name: string;
|
|
600
|
+
partition: string;
|
|
601
|
+
pkg_id: string;
|
|
602
|
+
created_at: number;
|
|
603
|
+
last_used_at?: number | null | undefined;
|
|
604
|
+
}>, "many">;
|
|
605
|
+
}, "strip", z.ZodTypeAny, {
|
|
606
|
+
sessions: {
|
|
607
|
+
name: string;
|
|
608
|
+
partition: string;
|
|
609
|
+
pkg_id: string;
|
|
610
|
+
created_at: number;
|
|
611
|
+
last_used_at?: number | null | undefined;
|
|
612
|
+
}[];
|
|
613
|
+
}, {
|
|
614
|
+
sessions: {
|
|
615
|
+
name: string;
|
|
616
|
+
partition: string;
|
|
617
|
+
pkg_id: string;
|
|
618
|
+
created_at: number;
|
|
619
|
+
last_used_at?: number | null | undefined;
|
|
620
|
+
}[];
|
|
621
|
+
}>;
|
|
622
|
+
export type BrowserSessionListResult = z.infer<typeof BrowserSessionListResultSchema>;
|
|
623
|
+
export {};
|
|
624
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|