@openruntime/cli 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 (77) hide show
  1. package/assets/auth-connector/icon-128.png +0 -0
  2. package/assets/auth-connector/icon-16.png +0 -0
  3. package/assets/auth-connector/icon-32.png +0 -0
  4. package/assets/auth-connector/icon-48.png +0 -0
  5. package/dist/args.d.ts +9 -0
  6. package/dist/args.d.ts.map +1 -0
  7. package/dist/args.js +52 -0
  8. package/dist/args.js.map +1 -0
  9. package/dist/auth-connector.d.ts +66 -0
  10. package/dist/auth-connector.d.ts.map +1 -0
  11. package/dist/auth-connector.js +1031 -0
  12. package/dist/auth-connector.js.map +1 -0
  13. package/dist/bridge-process.d.ts +64 -0
  14. package/dist/bridge-process.d.ts.map +1 -0
  15. package/dist/bridge-process.js +228 -0
  16. package/dist/bridge-process.js.map +1 -0
  17. package/dist/browser.d.ts +25 -0
  18. package/dist/browser.d.ts.map +1 -0
  19. package/dist/browser.js +180 -0
  20. package/dist/browser.js.map +1 -0
  21. package/dist/client.d.ts +21 -0
  22. package/dist/client.d.ts.map +1 -0
  23. package/dist/client.js +132 -0
  24. package/dist/client.js.map +1 -0
  25. package/dist/command-definition.d.ts +19 -0
  26. package/dist/command-definition.d.ts.map +1 -0
  27. package/dist/command-definition.js +42 -0
  28. package/dist/command-definition.js.map +1 -0
  29. package/dist/command-skill.d.ts +5 -0
  30. package/dist/command-skill.d.ts.map +1 -0
  31. package/dist/command-skill.js +25 -0
  32. package/dist/command-skill.js.map +1 -0
  33. package/dist/entry.d.ts +2 -0
  34. package/dist/entry.d.ts.map +1 -0
  35. package/dist/entry.js +16 -0
  36. package/dist/entry.js.map +1 -0
  37. package/dist/extension-api.d.ts +85 -0
  38. package/dist/extension-api.d.ts.map +1 -0
  39. package/dist/extension-api.js +313 -0
  40. package/dist/extension-api.js.map +1 -0
  41. package/dist/extensions/types.d.ts +3 -0
  42. package/dist/extensions/types.d.ts.map +1 -0
  43. package/dist/extensions/types.js +2 -0
  44. package/dist/extensions/types.js.map +1 -0
  45. package/dist/external-extensions.d.ts +19 -0
  46. package/dist/external-extensions.d.ts.map +1 -0
  47. package/dist/external-extensions.js +168 -0
  48. package/dist/external-extensions.js.map +1 -0
  49. package/dist/help.d.ts +17 -0
  50. package/dist/help.d.ts.map +1 -0
  51. package/dist/help.js +214 -0
  52. package/dist/help.js.map +1 -0
  53. package/dist/index.d.ts +100 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +1579 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/next-browser-profile-preload.d.ts +2 -0
  58. package/dist/next-browser-profile-preload.d.ts.map +1 -0
  59. package/dist/next-browser-profile-preload.js +391 -0
  60. package/dist/next-browser-profile-preload.js.map +1 -0
  61. package/dist/operation-log.d.ts +23 -0
  62. package/dist/operation-log.d.ts.map +1 -0
  63. package/dist/operation-log.js +76 -0
  64. package/dist/operation-log.js.map +1 -0
  65. package/dist/output.d.ts +42 -0
  66. package/dist/output.d.ts.map +1 -0
  67. package/dist/output.js +111 -0
  68. package/dist/output.js.map +1 -0
  69. package/dist/profile.d.ts +56 -0
  70. package/dist/profile.d.ts.map +1 -0
  71. package/dist/profile.js +414 -0
  72. package/dist/profile.js.map +1 -0
  73. package/dist/record.d.ts +17 -0
  74. package/dist/record.d.ts.map +1 -0
  75. package/dist/record.js +1494 -0
  76. package/dist/record.js.map +1 -0
  77. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-connector.js","sourceRoot":"","sources":["../src/auth-connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { BridgeRuntimeInfo } from "@openruntime/bridge";
2
+ import type { Fetcher, RuntimeSelector } from "./client.js";
3
+ export interface BridgeStartOptions {
4
+ port: number;
5
+ }
6
+ export interface BridgeStartResult {
7
+ pid?: number;
8
+ }
9
+ export interface BridgeStarter {
10
+ start(options: BridgeStartOptions): Promise<BridgeStartResult | void>;
11
+ }
12
+ export interface ManagedBridgeState {
13
+ bridgeUrl: string;
14
+ pid: number;
15
+ port: number;
16
+ startedAt: number;
17
+ }
18
+ export interface BridgeStateStore {
19
+ read(): Promise<ManagedBridgeState | undefined>;
20
+ write(state: ManagedBridgeState): Promise<void>;
21
+ remove(): Promise<void>;
22
+ }
23
+ export interface BridgeProcessController {
24
+ isRunning(pid: number): boolean;
25
+ stop(pid: number): void;
26
+ }
27
+ export interface EnsureBridgeOptions {
28
+ fetcher: Fetcher;
29
+ bridgeUrl: string;
30
+ starter: BridgeStarter;
31
+ stateStore?: BridgeStateStore;
32
+ port?: number;
33
+ timeout?: number;
34
+ }
35
+ export interface EnsureBridgeResult {
36
+ bridgeUrl: string;
37
+ pid?: number;
38
+ status: "running" | "started";
39
+ }
40
+ export interface StopBridgeOptions {
41
+ bridgeUrl: string;
42
+ stateStore: BridgeStateStore;
43
+ processController?: BridgeProcessController;
44
+ }
45
+ export interface StopBridgeResult {
46
+ bridgeUrl: string;
47
+ pid?: number;
48
+ stopped: boolean;
49
+ reason?: string;
50
+ }
51
+ export interface WaitForRuntimeSelectionOptions {
52
+ fetcher: Fetcher;
53
+ bridgeUrl: string;
54
+ selector: RuntimeSelector;
55
+ timeout?: number;
56
+ }
57
+ export declare function createDetachedBridgeStarter(entryModuleUrl: string): BridgeStarter;
58
+ export declare function createFileBridgeStateStore(bridgeUrl: string, stateDirectory?: string): BridgeStateStore;
59
+ export declare function ensureBridge(options: EnsureBridgeOptions): Promise<EnsureBridgeResult>;
60
+ export declare function stopManagedBridge(options: StopBridgeOptions): Promise<StopBridgeResult>;
61
+ export declare function waitForSelectedRuntime(options: WaitForRuntimeSelectionOptions): Promise<BridgeRuntimeInfo>;
62
+ export declare function getBridgePort(bridgeUrl: string): number | undefined;
63
+ export declare function canAutoStartBridge(bridgeUrl: string): boolean;
64
+ //# sourceMappingURL=bridge-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-process.d.ts","sourceRoot":"","sources":["../src/bridge-process.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAChD,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAgBjF;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,cAAc,SAAkC,GAC/C,gBAAgB,CAoBlB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2C5F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoC7F;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAanE;AAwBD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAW7D"}
@@ -0,0 +1,228 @@
1
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { spawn } from "node:child_process";
5
+ import { fileURLToPath } from "node:url";
6
+ import { OPEN_RUNTIME_BRIDGE_DEFAULT_PORT } from "@openruntime/core";
7
+ import { fetchRuntimes, selectRuntime } from "./client.js";
8
+ export function createDetachedBridgeStarter(entryModuleUrl) {
9
+ return {
10
+ start: async ({ port }) => {
11
+ const child = spawn(process.execPath, [
12
+ fileURLToPath(entryModuleUrl),
13
+ "__bridge-server",
14
+ "--port",
15
+ String(port)
16
+ ], {
17
+ detached: true,
18
+ stdio: "ignore"
19
+ });
20
+ child.unref();
21
+ return child.pid === undefined ? {} : { pid: child.pid };
22
+ }
23
+ };
24
+ }
25
+ export function createFileBridgeStateStore(bridgeUrl, stateDirectory = join(homedir(), ".openruntime")) {
26
+ const stateFile = join(stateDirectory, `${createStateFileName(bridgeUrl)}.json`);
27
+ return {
28
+ read: async () => {
29
+ try {
30
+ const parsed = JSON.parse(await readFile(stateFile, "utf8"));
31
+ if (!isManagedBridgeState(parsed))
32
+ return undefined;
33
+ return parsed;
34
+ }
35
+ catch {
36
+ return undefined;
37
+ }
38
+ },
39
+ write: async (state) => {
40
+ await mkdir(stateDirectory, { recursive: true });
41
+ await writeFile(stateFile, `${JSON.stringify(state, null, 2)}\n`, "utf8");
42
+ },
43
+ remove: async () => {
44
+ await rm(stateFile, { force: true });
45
+ }
46
+ };
47
+ }
48
+ export async function ensureBridge(options) {
49
+ const firstProbe = await probeBridge(options.fetcher, options.bridgeUrl);
50
+ if (firstProbe === "available") {
51
+ return {
52
+ bridgeUrl: options.bridgeUrl,
53
+ status: "running"
54
+ };
55
+ }
56
+ if (firstProbe === "wrong-service") {
57
+ throw new Error(`A non-OpenRuntime service is responding at ${options.bridgeUrl}. Use --bridge or --port to choose another Bridge.`);
58
+ }
59
+ const port = options.port ?? getBridgePort(options.bridgeUrl);
60
+ if (port === undefined || !canAutoStartBridge(options.bridgeUrl)) {
61
+ throw new Error(`OpenRuntime Bridge is not reachable at ${options.bridgeUrl}. Use a local --bridge URL for automatic startup, or start the remote Bridge yourself.`);
62
+ }
63
+ const startResult = await options.starter.start({ port });
64
+ const deadline = Date.now() + (options.timeout ?? 5000);
65
+ while (Date.now() <= deadline) {
66
+ const probe = await probeBridge(options.fetcher, options.bridgeUrl);
67
+ if (probe === "available") {
68
+ if (startResult?.pid !== undefined && options.stateStore !== undefined) {
69
+ await options.stateStore.write({
70
+ bridgeUrl: options.bridgeUrl,
71
+ pid: startResult.pid,
72
+ port,
73
+ startedAt: Date.now()
74
+ });
75
+ }
76
+ return {
77
+ bridgeUrl: options.bridgeUrl,
78
+ status: "started",
79
+ ...createOptionalNumberProperty("pid", startResult?.pid)
80
+ };
81
+ }
82
+ if (probe === "wrong-service") {
83
+ throw new Error(`A non-OpenRuntime service is responding at ${options.bridgeUrl}. Use --bridge or --port to choose another Bridge.`);
84
+ }
85
+ await sleep(100);
86
+ }
87
+ throw new Error(`OpenRuntime Bridge did not become available at ${options.bridgeUrl}.`);
88
+ }
89
+ export async function stopManagedBridge(options) {
90
+ const processController = options.processController ?? defaultBridgeProcessController;
91
+ const state = await options.stateStore.read();
92
+ if (state === undefined) {
93
+ return {
94
+ bridgeUrl: options.bridgeUrl,
95
+ stopped: false,
96
+ reason: "No OpenRuntime Bridge process started by this CLI was found."
97
+ };
98
+ }
99
+ if (normalizeUrl(state.bridgeUrl) !== normalizeUrl(options.bridgeUrl)) {
100
+ return {
101
+ bridgeUrl: options.bridgeUrl,
102
+ stopped: false,
103
+ reason: `Tracked Bridge is ${state.bridgeUrl}, not ${options.bridgeUrl}.`
104
+ };
105
+ }
106
+ if (!processController.isRunning(state.pid)) {
107
+ await options.stateStore.remove();
108
+ return {
109
+ bridgeUrl: options.bridgeUrl,
110
+ pid: state.pid,
111
+ stopped: false,
112
+ reason: "Tracked OpenRuntime Bridge process is no longer running."
113
+ };
114
+ }
115
+ processController.stop(state.pid);
116
+ await options.stateStore.remove();
117
+ return {
118
+ bridgeUrl: options.bridgeUrl,
119
+ pid: state.pid,
120
+ stopped: true
121
+ };
122
+ }
123
+ export async function waitForSelectedRuntime(options) {
124
+ const deadline = Date.now() + (options.timeout ?? 10000);
125
+ let lastError;
126
+ while (Date.now() <= deadline) {
127
+ try {
128
+ const runtimes = await fetchRuntimes(options.fetcher, options.bridgeUrl);
129
+ return selectRuntime(runtimes, options.selector);
130
+ }
131
+ catch (error) {
132
+ lastError = error;
133
+ await sleep(100);
134
+ }
135
+ }
136
+ if (lastError instanceof Error) {
137
+ throw new Error(`${lastError.message} Make sure the page service is running and the page connects to OpenRuntime Bridge.`);
138
+ }
139
+ throw new Error("No connected runtime was found. Make sure the page service is running and the page connects to OpenRuntime Bridge.");
140
+ }
141
+ export function getBridgePort(bridgeUrl) {
142
+ try {
143
+ const url = new URL(bridgeUrl);
144
+ if (url.port.length > 0) {
145
+ return Number(url.port);
146
+ }
147
+ if (url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "[::1]") {
148
+ return OPEN_RUNTIME_BRIDGE_DEFAULT_PORT;
149
+ }
150
+ return undefined;
151
+ }
152
+ catch {
153
+ return undefined;
154
+ }
155
+ }
156
+ async function probeBridge(fetcher, bridgeUrl) {
157
+ try {
158
+ const response = await fetcher(`${bridgeUrl}/runtimes`);
159
+ if (!response.ok) {
160
+ return "wrong-service";
161
+ }
162
+ const body = await response.text();
163
+ const parsed = body.length === 0 ? undefined : JSON.parse(body);
164
+ if (parsed !== null &&
165
+ typeof parsed === "object" &&
166
+ Array.isArray(parsed.runtimes)) {
167
+ return "available";
168
+ }
169
+ return "wrong-service";
170
+ }
171
+ catch {
172
+ return "unreachable";
173
+ }
174
+ }
175
+ export function canAutoStartBridge(bridgeUrl) {
176
+ try {
177
+ const url = new URL(bridgeUrl);
178
+ return url.protocol === "http:" && (url.hostname === "localhost" ||
179
+ url.hostname === "127.0.0.1" ||
180
+ url.hostname === "[::1]");
181
+ }
182
+ catch {
183
+ return false;
184
+ }
185
+ }
186
+ function createStateFileName(bridgeUrl) {
187
+ return `bridge-${bridgeUrl.replace(/[^a-zA-Z0-9._-]/g, "_")}`;
188
+ }
189
+ function isManagedBridgeState(value) {
190
+ if (value === null || typeof value !== "object")
191
+ return false;
192
+ const state = value;
193
+ return typeof state.bridgeUrl === "string" &&
194
+ typeof state.pid === "number" &&
195
+ typeof state.port === "number" &&
196
+ typeof state.startedAt === "number";
197
+ }
198
+ const defaultBridgeProcessController = {
199
+ isRunning: (pid) => {
200
+ try {
201
+ process.kill(pid, 0);
202
+ return true;
203
+ }
204
+ catch {
205
+ return false;
206
+ }
207
+ },
208
+ stop: (pid) => {
209
+ process.kill(pid, "SIGTERM");
210
+ }
211
+ };
212
+ function normalizeUrl(value) {
213
+ try {
214
+ return new URL(value).toString();
215
+ }
216
+ catch {
217
+ return value;
218
+ }
219
+ }
220
+ function createOptionalNumberProperty(name, value) {
221
+ return value === undefined ? {} : { [name]: value };
222
+ }
223
+ function sleep(milliseconds) {
224
+ return new Promise((resolve) => {
225
+ setTimeout(resolve, milliseconds);
226
+ });
227
+ }
228
+ //# sourceMappingURL=bridge-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-process.js","sourceRoot":"","sources":["../src/bridge-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface BrowserRunResult {
2
+ exitCode: number;
3
+ stdout: string;
4
+ stderr: string;
5
+ }
6
+ export interface BrowserRunOptions {
7
+ ui?: boolean;
8
+ }
9
+ export interface BrowserRunner {
10
+ run(args: string[], options?: BrowserRunOptions): Promise<BrowserRunResult>;
11
+ }
12
+ export declare const OPENRUNTIME_BROWSER_PROFILE_ENV = "OPENRUNTIME_BROWSER_PROFILE_DIR";
13
+ export interface NextBrowserRunnerOptions {
14
+ profileDirectory?: string;
15
+ }
16
+ export declare function createNextBrowserRunner(options?: NextBrowserRunnerOptions): BrowserRunner;
17
+ export declare function createDefaultBrowserProfileDirectory(): string;
18
+ export declare function resolveBrowserProfileDirectory(baseEnv?: NodeJS.ProcessEnv, profileDirectory?: string): string;
19
+ export declare function createNextBrowserEnvironment(baseEnv: NodeJS.ProcessEnv, profileDirectory?: string, options?: BrowserRunOptions): NodeJS.ProcessEnv;
20
+ export declare function createGetWindowScript(path: string): string;
21
+ export declare function createWaitEvalScript(script: string): string;
22
+ export declare function createConsoleLogScript(): string;
23
+ export declare function createInteractiveTextClickScript(text: string): string;
24
+ export declare function parseBrowserJsonOutput(stdout: string): unknown;
25
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC7E;AAED,eAAO,MAAM,+BAA+B,oCAAoC,CAAC;AAGjF,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,aAAa,CAyB7F;AAED,wBAAgB,oCAAoC,IAAI,MAAM,CAE7D;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,MAAM,CAAC,UAAwB,EACxC,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAIR;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,CAAC,UAAU,EAC1B,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAAC,UAAU,CAWnB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB1D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAO/C;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsErE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM9D"}
@@ -0,0 +1,180 @@
1
+ import { execFile } from "node:child_process";
2
+ import { createRequire } from "node:module";
3
+ import { homedir } from "node:os";
4
+ import { dirname, join, resolve } from "node:path";
5
+ import { promisify } from "node:util";
6
+ const execFileAsync = promisify(execFile);
7
+ export const OPENRUNTIME_BROWSER_PROFILE_ENV = "OPENRUNTIME_BROWSER_PROFILE_DIR";
8
+ const NEXT_BROWSER_PROFILE_ENV = "OPENRUNTIME_NEXT_BROWSER_PROFILE_DIR";
9
+ export function createNextBrowserRunner(options = {}) {
10
+ return {
11
+ run: async (args, runOptions = {}) => {
12
+ try {
13
+ const result = await execFileAsync(process.execPath, [resolveNextBrowserCliPath(), ...args], {
14
+ env: createNextBrowserEnvironment(process.env, options.profileDirectory, runOptions),
15
+ maxBuffer: 1024 * 1024 * 10
16
+ });
17
+ return {
18
+ exitCode: 0,
19
+ stdout: result.stdout,
20
+ stderr: result.stderr
21
+ };
22
+ }
23
+ catch (error) {
24
+ if (isExecError(error)) {
25
+ return {
26
+ exitCode: typeof error.code === "number" ? error.code : 1,
27
+ stdout: typeof error.stdout === "string" ? error.stdout : "",
28
+ stderr: typeof error.stderr === "string" ? error.stderr : error.message
29
+ };
30
+ }
31
+ throw error;
32
+ }
33
+ }
34
+ };
35
+ }
36
+ export function createDefaultBrowserProfileDirectory() {
37
+ return join(homedir(), ".openruntime", "browser-profile");
38
+ }
39
+ export function resolveBrowserProfileDirectory(baseEnv = process.env, profileDirectory) {
40
+ return resolve(profileDirectory ?? baseEnv[OPENRUNTIME_BROWSER_PROFILE_ENV] ?? createDefaultBrowserProfileDirectory());
41
+ }
42
+ export function createNextBrowserEnvironment(baseEnv, profileDirectory, options = {}) {
43
+ const resolvedProfileDirectory = resolveBrowserProfileDirectory(baseEnv, profileDirectory);
44
+ const envWithoutBrowserMode = { ...baseEnv };
45
+ delete envWithoutBrowserMode.NEXT_BROWSER_HEADLESS;
46
+ return {
47
+ ...envWithoutBrowserMode,
48
+ [NEXT_BROWSER_PROFILE_ENV]: resolvedProfileDirectory,
49
+ ...(options.ui === true ? {} : { NEXT_BROWSER_HEADLESS: "1" }),
50
+ NODE_OPTIONS: appendNodeImportOption(baseEnv.NODE_OPTIONS, resolveNextBrowserProfilePreloadUrl())
51
+ };
52
+ }
53
+ export function createGetWindowScript(path) {
54
+ return [
55
+ "((path) => {",
56
+ " const segments = path.split('.').filter(Boolean);",
57
+ " let value = globalThis;",
58
+ " for (const segment of segments) {",
59
+ " if (value == null) {",
60
+ " value = undefined;",
61
+ " break;",
62
+ " }",
63
+ " value = value[segment];",
64
+ " }",
65
+ " return {",
66
+ " path,",
67
+ " found: value !== undefined,",
68
+ " value: value === undefined ? null : value",
69
+ " };",
70
+ `})(${JSON.stringify(path)})`
71
+ ].join("\n");
72
+ }
73
+ export function createWaitEvalScript(script) {
74
+ return `Boolean((${script}))`;
75
+ }
76
+ export function createConsoleLogScript() {
77
+ return [
78
+ "(() => {",
79
+ " const logs = window.__NEXT_BROWSER_CONSOLE_LOGS__;",
80
+ " return Array.isArray(logs) ? logs : [];",
81
+ "})()"
82
+ ].join("\n");
83
+ }
84
+ export function createInteractiveTextClickScript(text) {
85
+ return [
86
+ "((targetText) => {",
87
+ " const normalize = (value) => String(value ?? '').replace(/\\s+/g, ' ').trim();",
88
+ " const expected = normalize(targetText);",
89
+ " const selectors = [",
90
+ " 'button',",
91
+ " 'a[href]',",
92
+ " 'input[type=\"button\"]',",
93
+ " 'input[type=\"submit\"]',",
94
+ " 'input[type=\"reset\"]',",
95
+ " '[role=\"button\"]',",
96
+ " '[role=\"link\"]',",
97
+ " '[role=\"menuitem\"]',",
98
+ " '[role=\"tab\"]',",
99
+ " '[role=\"option\"]',",
100
+ " '[role=\"checkbox\"]',",
101
+ " '[role=\"radio\"]',",
102
+ " '[role=\"switch\"]',",
103
+ " '[onclick]'",
104
+ " ];",
105
+ " const isVisible = (element) => {",
106
+ " if (!(element instanceof HTMLElement)) return false;",
107
+ " const style = window.getComputedStyle(element);",
108
+ " const rect = element.getBoundingClientRect();",
109
+ " return style.display !== 'none' &&",
110
+ " style.visibility !== 'hidden' &&",
111
+ " style.pointerEvents !== 'none' &&",
112
+ " Number(style.opacity) !== 0 &&",
113
+ " rect.width > 0 &&",
114
+ " rect.height > 0;",
115
+ " };",
116
+ " const isDisabled = (element) => Boolean(element.disabled) || element.getAttribute('aria-disabled') === 'true';",
117
+ " const getLabels = (element) => [",
118
+ " element.getAttribute('aria-label'),",
119
+ " element instanceof HTMLInputElement ? element.value : undefined,",
120
+ " element.textContent,",
121
+ " element.getAttribute('title')",
122
+ " ].map(normalize).filter(Boolean);",
123
+ " const matches = Array.from(document.querySelectorAll(selectors.join(',')))",
124
+ " .filter((element) => isVisible(element) && !isDisabled(element))",
125
+ " .map((element) => {",
126
+ " const matchedText = getLabels(element).find((label) => label === expected);",
127
+ " return matchedText === undefined ? undefined : { element, matchedText };",
128
+ " })",
129
+ " .filter(Boolean);",
130
+ " if (matches.length === 0) {",
131
+ " throw new Error(`No interactive element exactly matched text \"${expected}\".`);",
132
+ " }",
133
+ " if (matches.length > 1) {",
134
+ " const summary = matches.slice(0, 5).map(({ element, matchedText }) => {",
135
+ " const tagName = element.tagName.toLowerCase();",
136
+ " const role = element.getAttribute('role');",
137
+ " return role === null ? `${tagName}:${matchedText}` : `${tagName}[role=${role}]:${matchedText}`;",
138
+ " }).join(', ');",
139
+ " throw new Error(`Multiple interactive elements matched text \"${expected}\": ${summary}`);",
140
+ " }",
141
+ " const match = matches[0];",
142
+ " match.element.scrollIntoView({ block: 'center', inline: 'center' });",
143
+ " match.element.click();",
144
+ " return {",
145
+ " clicked: true,",
146
+ " mode: 'interactive-text',",
147
+ " text: expected,",
148
+ " tagName: match.element.tagName.toLowerCase(),",
149
+ " role: match.element.getAttribute('role'),",
150
+ " matchedText: match.matchedText",
151
+ " };",
152
+ `})(${JSON.stringify(text)})`
153
+ ].join("\n");
154
+ }
155
+ export function parseBrowserJsonOutput(stdout) {
156
+ const trimmed = stdout.trim();
157
+ if (trimmed.length === 0) {
158
+ return undefined;
159
+ }
160
+ return JSON.parse(trimmed);
161
+ }
162
+ function resolveNextBrowserCliPath() {
163
+ const require = createRequire(import.meta.url);
164
+ const packageJsonPath = require.resolve("@vercel/next-browser/package.json");
165
+ return join(dirname(packageJsonPath), "dist", "cli.js");
166
+ }
167
+ function resolveNextBrowserProfilePreloadUrl() {
168
+ return new URL("./next-browser-profile-preload.js", import.meta.url).href;
169
+ }
170
+ function appendNodeImportOption(nodeOptions, importUrl) {
171
+ const importOption = `--import ${importUrl}`;
172
+ if (nodeOptions === undefined || nodeOptions.trim().length === 0) {
173
+ return importOption;
174
+ }
175
+ return `${nodeOptions} ${importOption}`;
176
+ }
177
+ function isExecError(error) {
178
+ return error instanceof Error && ("stdout" in error || "stderr" in error || "code" in error);
179
+ }
180
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type RuntimeDataCondition } from "@openruntime/core";
2
+ import type { BridgeRuntimeInfo } from "@openruntime/bridge";
3
+ export type Fetcher = typeof fetch;
4
+ export interface RuntimeSelector {
5
+ runtimeId?: string;
6
+ sessionId?: string;
7
+ url?: string;
8
+ }
9
+ export interface RuntimeResourceResult<T> {
10
+ runtime: BridgeRuntimeInfo;
11
+ result: T;
12
+ }
13
+ export declare function fetchRuntimes(fetcher: Fetcher, bridgeUrl: string): Promise<BridgeRuntimeInfo[]>;
14
+ export declare function fetchRuntimeResource<T>(fetcher: Fetcher, bridgeUrl: string, runtime: BridgeRuntimeInfo, resource: string, searchParams: URLSearchParams): Promise<RuntimeResourceResult<T>>;
15
+ export declare function fetchInputOptions<T>(fetcher: Fetcher, bridgeUrl: string, runtime: BridgeRuntimeInfo, actionName: string, inputName: string, payload: Record<string, unknown> | undefined, timeout: number | undefined): Promise<RuntimeResourceResult<T>>;
16
+ export declare function runRuntimeAction<T>(fetcher: Fetcher, bridgeUrl: string, runtime: BridgeRuntimeInfo, actionName: string, payload: Record<string, unknown> | undefined): Promise<RuntimeResourceResult<T>>;
17
+ export declare function waitForRuntime<T>(fetcher: Fetcher, bridgeUrl: string, runtime: BridgeRuntimeInfo, targetId: string, status: string, timeout: number | undefined, where: RuntimeDataCondition[] | undefined): Promise<RuntimeResourceResult<T>>;
18
+ export declare function selectRuntime(runtimes: BridgeRuntimeInfo[], selector?: RuntimeSelector): BridgeRuntimeInfo;
19
+ export declare function normalizeBridgeUrl(input: string | undefined): string;
20
+ export declare function requestJson<T>(fetcher: Fetcher, url: string, init?: RequestInit): Promise<T>;
21
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC;CACX;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAGrG;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAWnC;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAenC;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAanC;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,oBAAoB,EAAE,GAAG,SAAS,GACxC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CA6BnC;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,QAAQ,GAAE,eAAoB,GAC7B,iBAAiB,CAsBnB;AAyBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGpE;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAWlG"}