@agent-relay/browser-primitive 4.0.9 → 4.0.40

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 (41) hide show
  1. package/dist/actions/extraction.d.ts +6 -0
  2. package/dist/actions/extraction.d.ts.map +1 -0
  3. package/dist/actions/extraction.js +91 -0
  4. package/dist/actions/extraction.js.map +1 -0
  5. package/dist/actions/interaction.d.ts +17 -0
  6. package/dist/actions/interaction.d.ts.map +1 -0
  7. package/dist/actions/interaction.js +159 -0
  8. package/dist/actions/interaction.js.map +1 -0
  9. package/dist/actions/navigation.d.ts +6 -0
  10. package/dist/actions/navigation.d.ts.map +1 -0
  11. package/dist/actions/navigation.js +37 -0
  12. package/dist/actions/navigation.js.map +1 -0
  13. package/dist/actions/script.d.ts +3 -0
  14. package/dist/actions/script.d.ts.map +1 -0
  15. package/dist/actions/script.js +35 -0
  16. package/dist/actions/script.js.map +1 -0
  17. package/dist/actions/waits.d.ts +5 -0
  18. package/dist/actions/waits.d.ts.map +1 -0
  19. package/dist/actions/waits.js +52 -0
  20. package/dist/actions/waits.js.map +1 -0
  21. package/dist/browser-client.d.ts +41 -0
  22. package/dist/browser-client.d.ts.map +1 -0
  23. package/dist/browser-client.js +435 -0
  24. package/dist/browser-client.js.map +1 -0
  25. package/dist/index.d.ts +10 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +10 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/mcp-server.d.ts +95 -0
  30. package/dist/mcp-server.d.ts.map +1 -0
  31. package/dist/mcp-server.js +434 -0
  32. package/dist/mcp-server.js.map +1 -0
  33. package/dist/types.d.ts +364 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/dist/types.js +2 -0
  36. package/dist/types.js.map +1 -0
  37. package/dist/workflow-step.d.ts +99 -0
  38. package/dist/workflow-step.d.ts.map +1 -0
  39. package/dist/workflow-step.js +419 -0
  40. package/dist/workflow-step.js.map +1 -0
  41. package/package.json +2 -2
@@ -0,0 +1,364 @@
1
+ import type { Browser as PlaywrightBrowser, BrowserContext, Cookie, Locator, Page } from 'playwright';
2
+ export type BrowserEngine = 'chromium' | 'firefox' | 'webkit';
3
+ export type LoadState = 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
4
+ export type WaitForSelectorState = 'attached' | 'detached' | 'visible' | 'hidden';
5
+ export interface ViewportSize {
6
+ width: number;
7
+ height: number;
8
+ }
9
+ export interface BrowserConfig {
10
+ /** Browser engine to use. Defaults to chromium. */
11
+ browser?: BrowserEngine;
12
+ /** Run in headless mode. Defaults to true. */
13
+ headless?: boolean;
14
+ /** Browser viewport dimensions. Defaults to 1280x720. */
15
+ viewport?: ViewportSize;
16
+ /** Default action and navigation timeout in milliseconds. Defaults to 30000. */
17
+ timeout?: number;
18
+ /** Custom user agent string for new contexts. */
19
+ userAgent?: string;
20
+ /** Extra HTTP headers to send with every request. */
21
+ extraHTTPHeaders?: Record<string, string>;
22
+ /** Extra browser launch arguments. */
23
+ args?: string[];
24
+ /** Capture console messages from the page. Defaults to true. */
25
+ captureConsole?: boolean;
26
+ /** Capture response metadata from the page. Defaults to false. */
27
+ captureNetwork?: boolean;
28
+ /** Keep the browser session open between actions. Defaults to true. */
29
+ persistSession?: boolean;
30
+ /** Capture a screenshot when an action fails. Defaults to false. */
31
+ screenshotOnError?: boolean;
32
+ }
33
+ export interface ElementSelectorObject {
34
+ /** Selector passed to Playwright's locator API. */
35
+ selector: string;
36
+ /** Optional frame selector resolved with frameLocator before locating the element. */
37
+ frame?: string;
38
+ /** Optional text filter applied to the locator. */
39
+ hasText?: string | RegExp;
40
+ /** Optional zero-based match index. */
41
+ index?: number;
42
+ /** Set false to use the first matching element instead of Playwright strict matching. */
43
+ strict?: boolean;
44
+ /** Default wait state for this selector. */
45
+ state?: WaitForSelectorState;
46
+ /** Selector-specific timeout in milliseconds. */
47
+ timeout?: number;
48
+ }
49
+ export type ElementSelector = string | ElementSelectorObject;
50
+ export interface WaitForSelectorOptions {
51
+ state?: WaitForSelectorState;
52
+ timeout?: number;
53
+ }
54
+ export interface GotoParams {
55
+ url: string;
56
+ waitUntil?: LoadState;
57
+ timeout?: number;
58
+ referer?: string;
59
+ }
60
+ export interface HistoryNavigationParams {
61
+ waitUntil?: LoadState;
62
+ timeout?: number;
63
+ }
64
+ export type ReloadParams = HistoryNavigationParams;
65
+ export interface ClickParams {
66
+ selector: ElementSelector;
67
+ waitFor?: boolean | WaitForSelectorOptions;
68
+ button?: 'left' | 'right' | 'middle';
69
+ clickCount?: number;
70
+ delay?: number;
71
+ timeout?: number;
72
+ force?: boolean;
73
+ noWaitAfter?: boolean;
74
+ position?: {
75
+ x: number;
76
+ y: number;
77
+ };
78
+ modifiers?: Array<'Alt' | 'Control' | 'Meta' | 'Shift'>;
79
+ trial?: boolean;
80
+ }
81
+ export interface FillParams {
82
+ selector: ElementSelector;
83
+ value: string;
84
+ waitFor?: boolean | WaitForSelectorOptions;
85
+ timeout?: number;
86
+ force?: boolean;
87
+ /** Defaults to true. When false, text is typed at the current cursor position. */
88
+ clear?: boolean;
89
+ }
90
+ export interface CheckParams {
91
+ selector: ElementSelector;
92
+ checked?: boolean;
93
+ waitFor?: boolean | WaitForSelectorOptions;
94
+ timeout?: number;
95
+ force?: boolean;
96
+ noWaitAfter?: boolean;
97
+ trial?: boolean;
98
+ }
99
+ export interface SelectParams {
100
+ selector: ElementSelector;
101
+ values: string | string[];
102
+ waitFor?: boolean | WaitForSelectorOptions;
103
+ timeout?: number;
104
+ force?: boolean;
105
+ }
106
+ export interface HoverParams {
107
+ selector: ElementSelector;
108
+ waitFor?: boolean | WaitForSelectorOptions;
109
+ timeout?: number;
110
+ force?: boolean;
111
+ position?: {
112
+ x: number;
113
+ y: number;
114
+ };
115
+ modifiers?: Array<'Alt' | 'Control' | 'Meta' | 'Shift'>;
116
+ trial?: boolean;
117
+ }
118
+ export interface PressParams {
119
+ selector: ElementSelector;
120
+ key: string;
121
+ waitFor?: boolean | WaitForSelectorOptions;
122
+ timeout?: number;
123
+ delay?: number;
124
+ noWaitAfter?: boolean;
125
+ }
126
+ export interface SubmitParams {
127
+ selector?: ElementSelector;
128
+ waitForNavigation?: boolean;
129
+ waitUntil?: LoadState;
130
+ timeout?: number;
131
+ }
132
+ export interface UploadParams {
133
+ selector: ElementSelector;
134
+ filePath: string | string[];
135
+ waitFor?: boolean | WaitForSelectorOptions;
136
+ timeout?: number;
137
+ }
138
+ export interface TextParams {
139
+ selector?: ElementSelector;
140
+ innerText?: boolean;
141
+ all?: boolean;
142
+ timeout?: number;
143
+ }
144
+ export interface HtmlParams {
145
+ selector?: ElementSelector;
146
+ outerHTML?: boolean;
147
+ timeout?: number;
148
+ }
149
+ export interface AttributeParams {
150
+ selector: ElementSelector;
151
+ name: string;
152
+ timeout?: number;
153
+ }
154
+ export interface ScreenshotParams {
155
+ selector?: ElementSelector;
156
+ path?: string;
157
+ fullPage?: boolean;
158
+ type?: 'png' | 'jpeg';
159
+ quality?: number;
160
+ timeout?: number;
161
+ omitBackground?: boolean;
162
+ animations?: 'allow' | 'disabled';
163
+ scale?: 'css' | 'device';
164
+ }
165
+ export interface WaitForSelectorParams extends WaitForSelectorOptions {
166
+ selector: ElementSelector;
167
+ }
168
+ export interface WaitForNavigationParams {
169
+ url?: string | RegExp;
170
+ waitUntil?: LoadState;
171
+ timeout?: number;
172
+ }
173
+ export interface WaitForFunctionParams {
174
+ script: string;
175
+ args?: unknown[];
176
+ timeout?: number;
177
+ polling?: 'raf' | number;
178
+ }
179
+ export interface EvaluateParams {
180
+ script: string;
181
+ args?: unknown[];
182
+ /** When provided, evaluates against this element. The element is passed as arg 0. */
183
+ selector?: ElementSelector;
184
+ timeout?: number;
185
+ }
186
+ export interface NavigationOutput {
187
+ url: string;
188
+ status: number | null;
189
+ ok: boolean | null;
190
+ }
191
+ export interface SelectorActionOutput {
192
+ selector: string;
193
+ action: string;
194
+ }
195
+ export interface TextOutput {
196
+ selector?: string;
197
+ text: string | string[] | null;
198
+ }
199
+ export interface HtmlOutput {
200
+ selector?: string;
201
+ html: string | null;
202
+ }
203
+ export interface AttributeOutput {
204
+ selector: string;
205
+ name: string;
206
+ value: string | null;
207
+ }
208
+ export interface ScreenshotOutput {
209
+ path?: string;
210
+ base64?: string;
211
+ bytes: number;
212
+ type: 'png' | 'jpeg';
213
+ fullPage?: boolean;
214
+ selector?: string;
215
+ }
216
+ export interface WaitOutput {
217
+ url: string;
218
+ selector?: string;
219
+ state?: WaitForSelectorState;
220
+ value?: unknown;
221
+ }
222
+ export type BrowserActionName = 'goto' | 'navigate' | 'back' | 'forward' | 'reload' | 'click' | 'fill' | 'check' | 'uncheck' | 'select' | 'hover' | 'press' | 'submit' | 'upload' | 'text' | 'getText' | 'html' | 'getHTML' | 'attribute' | 'getAttribute' | 'screenshot' | 'elementScreenshot' | 'waitForSelector' | 'waitForElement' | 'waitForNavigation' | 'waitForFunction' | 'evaluate';
223
+ export interface BrowserActionParamsMap {
224
+ goto: GotoParams;
225
+ navigate: GotoParams;
226
+ back: HistoryNavigationParams;
227
+ forward: HistoryNavigationParams;
228
+ reload: ReloadParams;
229
+ click: ClickParams;
230
+ fill: FillParams;
231
+ check: CheckParams;
232
+ uncheck: Omit<CheckParams, 'checked'>;
233
+ select: SelectParams;
234
+ hover: HoverParams;
235
+ press: PressParams;
236
+ submit: SubmitParams;
237
+ upload: UploadParams;
238
+ text: TextParams;
239
+ getText: TextParams;
240
+ html: HtmlParams;
241
+ getHTML: HtmlParams;
242
+ attribute: AttributeParams;
243
+ getAttribute: AttributeParams;
244
+ screenshot: ScreenshotParams;
245
+ elementScreenshot: ScreenshotParams & {
246
+ selector: ElementSelector;
247
+ };
248
+ waitForSelector: WaitForSelectorParams;
249
+ waitForElement: WaitForSelectorParams;
250
+ waitForNavigation: WaitForNavigationParams;
251
+ waitForFunction: WaitForFunctionParams;
252
+ evaluate: EvaluateParams;
253
+ }
254
+ export interface BrowserActionOutputMap {
255
+ goto: NavigationOutput;
256
+ navigate: NavigationOutput;
257
+ back: NavigationOutput | null;
258
+ forward: NavigationOutput | null;
259
+ reload: NavigationOutput | null;
260
+ click: SelectorActionOutput;
261
+ fill: SelectorActionOutput;
262
+ check: SelectorActionOutput;
263
+ uncheck: SelectorActionOutput;
264
+ select: SelectorActionOutput & {
265
+ values: string[];
266
+ };
267
+ hover: SelectorActionOutput;
268
+ press: SelectorActionOutput & {
269
+ key: string;
270
+ };
271
+ submit: SelectorActionOutput;
272
+ upload: SelectorActionOutput & {
273
+ files: string[];
274
+ };
275
+ text: TextOutput;
276
+ getText: TextOutput;
277
+ html: HtmlOutput;
278
+ getHTML: HtmlOutput;
279
+ attribute: AttributeOutput;
280
+ getAttribute: AttributeOutput;
281
+ screenshot: ScreenshotOutput;
282
+ elementScreenshot: ScreenshotOutput;
283
+ waitForSelector: WaitOutput;
284
+ waitForElement: WaitOutput;
285
+ waitForNavigation: WaitOutput;
286
+ waitForFunction: WaitOutput;
287
+ evaluate: unknown;
288
+ }
289
+ export type BrowserAction<TName extends BrowserActionName = BrowserActionName> = {
290
+ [Name in TName]: {
291
+ type: Name;
292
+ params: BrowserActionParamsMap[Name];
293
+ };
294
+ }[TName];
295
+ export type BrowserWorkflowAction<TName extends BrowserActionName = BrowserActionName> = {
296
+ [Name in TName]: {
297
+ action: Name;
298
+ params: BrowserActionParamsMap[Name];
299
+ };
300
+ }[TName];
301
+ export type BrowserActionRequest<TName extends BrowserActionName = BrowserActionName> = BrowserAction<TName> | BrowserWorkflowAction<TName>;
302
+ export interface ConsoleMessage {
303
+ type: 'log' | 'error' | 'warn' | 'info' | 'debug';
304
+ text: string;
305
+ timestamp: Date;
306
+ location?: string;
307
+ }
308
+ export interface NetworkRequest {
309
+ url: string;
310
+ method: string;
311
+ status: number;
312
+ responseTime: number;
313
+ timestamp: Date;
314
+ error?: string;
315
+ }
316
+ export interface BrowserSession {
317
+ id: string;
318
+ config: RequiredBrowserConfig;
319
+ currentUrl?: string;
320
+ cookies: Cookie[];
321
+ consoleLogs: ConsoleMessage[];
322
+ networkLogs: NetworkRequest[];
323
+ startTime: Date;
324
+ active: boolean;
325
+ }
326
+ export interface ActionResultMetadata {
327
+ action?: BrowserActionName;
328
+ sessionId?: string;
329
+ currentUrl?: string;
330
+ executionTime?: number;
331
+ startedAt?: string;
332
+ endedAt?: string;
333
+ errorScreenshot?: string;
334
+ consoleLogs?: ConsoleMessage[];
335
+ networkActivity?: NetworkRequest[];
336
+ }
337
+ export interface ActionResult<TOutput = unknown> {
338
+ success: boolean;
339
+ output?: TOutput;
340
+ error?: string;
341
+ metadata?: ActionResultMetadata;
342
+ }
343
+ export type BrowserActionResult<TOutput = unknown> = ActionResult<TOutput>;
344
+ export interface RequiredBrowserConfig {
345
+ browser: BrowserEngine;
346
+ headless: boolean;
347
+ viewport: ViewportSize;
348
+ timeout: number;
349
+ userAgent?: string;
350
+ extraHTTPHeaders?: Record<string, string>;
351
+ args: string[];
352
+ captureConsole: boolean;
353
+ captureNetwork: boolean;
354
+ persistSession: boolean;
355
+ screenshotOnError: boolean;
356
+ }
357
+ export interface BrowserActionContext {
358
+ page: Page;
359
+ config: RequiredBrowserConfig;
360
+ resolveLocator(selector: ElementSelector): Locator;
361
+ waitForElement(selector: ElementSelector, options?: WaitForSelectorOptions): Promise<Locator>;
362
+ }
363
+ export type { BrowserContext, Locator, Page, PlaywrightBrowser };
364
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ import type { RunnerStepExecutor, WorkflowStep } from '@agent-relay/sdk/workflows';
2
+ import { BrowserClient, type BrowserClientOptions } from './browser-client.js';
3
+ import type { ActionResult, BrowserActionName, BrowserActionParamsMap, BrowserConfig, BrowserSession } from './types.js';
4
+ export type BrowserStepOutputMode = 'last' | 'all' | 'captures' | 'summary' | 'none';
5
+ export type BrowserStepOutputFormat = 'json' | 'text';
6
+ export type BrowserStepAction<TName extends BrowserActionName = BrowserActionName> = {
7
+ [Name in TName]: {
8
+ action: Name;
9
+ params: BrowserActionParamsMap[Name];
10
+ /** Stable key for captured output. Defaults to the zero-based action index. */
11
+ id?: string;
12
+ /** Include this action in output.mode = "captures". Defaults true for extraction actions. */
13
+ capture?: boolean;
14
+ /** Output object key when output.mode = "captures". Defaults to id or action_<index>. */
15
+ outputKey?: string;
16
+ /** Continue running later actions if this action fails. Defaults false. */
17
+ continueOnError?: boolean;
18
+ };
19
+ }[TName];
20
+ export interface BrowserStepOutputConfig {
21
+ /** Which action results become the workflow step output. Defaults to "last". */
22
+ mode?: BrowserStepOutputMode;
23
+ /** Emit JSON for structured chaining or text for simple downstream interpolation. Defaults to "json". */
24
+ format?: BrowserStepOutputFormat;
25
+ /** Include per-action metadata such as current URL and timing in JSON output. Defaults false. */
26
+ includeMetadata?: boolean;
27
+ /** Include final browser session state in JSON output. Defaults false. */
28
+ includeSession?: boolean;
29
+ /** Pretty-print JSON output. Defaults false. */
30
+ pretty?: boolean;
31
+ }
32
+ export interface BrowserStepConfig {
33
+ /** Unique step name within the workflow. */
34
+ name: string;
35
+ /** Dependencies in the Relay workflow DAG. */
36
+ dependsOn?: string[];
37
+ /** Browser settings for this step/session. */
38
+ config?: BrowserConfig;
39
+ /** Ordered browser actions to execute in one browser session. */
40
+ actions: BrowserStepAction[];
41
+ /** Controls the string captured as {{steps.<name>.output}}. */
42
+ output?: BrowserStepOutputConfig;
43
+ /** Reuse a named browser session across browser steps. Defaults to the workspace/config session. */
44
+ sessionId?: string;
45
+ /** Close the session after this step, even when persistSession is true. */
46
+ closeSession?: boolean;
47
+ /** Workflow step timeout in milliseconds. */
48
+ timeoutMs?: number;
49
+ /** Number of retry attempts when the workflow runner retries this integration step. */
50
+ retries?: number;
51
+ }
52
+ export interface BrowserStepExecutionContext {
53
+ workspaceId?: string;
54
+ sessionId?: string;
55
+ client?: BrowserClient;
56
+ }
57
+ export interface BrowserStepActionRecord<TOutput = unknown> {
58
+ index: number;
59
+ id?: string;
60
+ action: BrowserActionName;
61
+ success: boolean;
62
+ output?: TOutput;
63
+ error?: string;
64
+ metadata?: ActionResult['metadata'];
65
+ }
66
+ export interface BrowserStepExecutionResult {
67
+ success: boolean;
68
+ output: string;
69
+ results: BrowserStepActionRecord[];
70
+ session: BrowserSession;
71
+ error?: string;
72
+ }
73
+ export interface BrowserIntegrationStepResult {
74
+ output: string;
75
+ success: boolean;
76
+ }
77
+ /**
78
+ * Create a Relay integration step that can be used in relay.yaml or passed to
79
+ * WorkflowRunner directly. Complex action/config objects are serialized into
80
+ * params so the existing workflow template resolver can interpolate them.
81
+ */
82
+ export declare function createBrowserStep(config: BrowserStepConfig): WorkflowStep;
83
+ export declare class BrowserStepExecutor implements RunnerStepExecutor {
84
+ private readonly options;
85
+ private readonly sessions;
86
+ constructor(options?: BrowserClientOptions);
87
+ executeAgentStep(): Promise<string>;
88
+ execute(config: BrowserStepConfig, context?: BrowserStepExecutionContext): Promise<BrowserStepExecutionResult>;
89
+ executeIntegrationStep(step: WorkflowStep, resolvedParams: Record<string, string>, context?: {
90
+ workspaceId?: string;
91
+ }): Promise<BrowserIntegrationStepResult>;
92
+ closeSession(sessionId: string): Promise<boolean>;
93
+ closeAll(): Promise<void>;
94
+ listSessions(): BrowserSession[];
95
+ private getOrCreateClient;
96
+ private resolveSessionKey;
97
+ }
98
+ export declare function browserStepConfigFromWorkflowStep(step: WorkflowStep, resolvedParams: Record<string, string>): BrowserStepConfig;
99
+ //# sourceMappingURL=workflow-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-step.d.ts","sourceRoot":"","sources":["../src/workflow-step.ts"],"names":[],"mappings":"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"}