@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
package/dist/client.js ADDED
@@ -0,0 +1,132 @@
1
+ import { OPEN_RUNTIME_SESSION_QUERY_PARAM } from "@openruntime/core";
2
+ import { normalizeOpenRuntimeUrlForMatch } from "./operation-log.js";
3
+ export async function fetchRuntimes(fetcher, bridgeUrl) {
4
+ const body = await requestJson(fetcher, `${bridgeUrl}/runtimes`);
5
+ return body.runtimes;
6
+ }
7
+ export async function fetchRuntimeResource(fetcher, bridgeUrl, runtime, resource, searchParams) {
8
+ const url = new URL(`${bridgeUrl}/runtimes/${encodeURIComponent(runtime.runtimeId)}/${resource}`);
9
+ for (const [name, value] of searchParams) {
10
+ url.searchParams.append(name, value);
11
+ }
12
+ const result = await requestJson(fetcher, url.toString());
13
+ return {
14
+ runtime,
15
+ result
16
+ };
17
+ }
18
+ export async function fetchInputOptions(fetcher, bridgeUrl, runtime, actionName, inputName, payload, timeout) {
19
+ const url = new URL(`${bridgeUrl}/runtimes/${encodeURIComponent(runtime.runtimeId)}/actions/${encodeURIComponent(actionName)}/options`);
20
+ url.searchParams.set("input", inputName);
21
+ if (payload !== undefined) {
22
+ url.searchParams.set("payload", JSON.stringify(payload));
23
+ }
24
+ if (timeout !== undefined) {
25
+ url.searchParams.set("timeout", String(timeout));
26
+ }
27
+ const result = await requestJson(fetcher, url.toString());
28
+ return {
29
+ runtime,
30
+ result
31
+ };
32
+ }
33
+ export async function runRuntimeAction(fetcher, bridgeUrl, runtime, actionName, payload) {
34
+ const url = `${bridgeUrl}/runtimes/${encodeURIComponent(runtime.runtimeId)}/actions/${encodeURIComponent(actionName)}/run`;
35
+ const result = await requestJson(fetcher, url, {
36
+ method: "POST",
37
+ headers: {
38
+ "content-type": "application/json"
39
+ },
40
+ body: JSON.stringify(payload === undefined ? {} : { payload })
41
+ });
42
+ return {
43
+ runtime,
44
+ result
45
+ };
46
+ }
47
+ export async function waitForRuntime(fetcher, bridgeUrl, runtime, targetId, status, timeout, where) {
48
+ const url = `${bridgeUrl}/runtimes/${encodeURIComponent(runtime.runtimeId)}/wait-for`;
49
+ const body = {
50
+ targetId,
51
+ status
52
+ };
53
+ if (timeout !== undefined) {
54
+ body.timeout = timeout;
55
+ }
56
+ if (where !== undefined && where.length > 0) {
57
+ body.where = where;
58
+ }
59
+ const result = await requestJson(fetcher, url, {
60
+ method: "POST",
61
+ headers: {
62
+ "content-type": "application/json"
63
+ },
64
+ body: JSON.stringify(body)
65
+ });
66
+ return {
67
+ runtime,
68
+ result
69
+ };
70
+ }
71
+ export function selectRuntime(runtimes, selector = {}) {
72
+ if (selector.runtimeId !== undefined) {
73
+ const runtime = runtimes.find((item) => item.runtimeId === selector.runtimeId);
74
+ if (runtime === undefined) {
75
+ throw new Error(`Runtime "${selector.runtimeId}" was not found.`);
76
+ }
77
+ return runtime;
78
+ }
79
+ const selectorSessionId = selector.sessionId ?? getOpenRuntimeSessionIdFromUrl(selector.url);
80
+ const selectorUrl = selector.url === undefined ? undefined : normalizeOpenRuntimeUrlForMatch(selector.url);
81
+ const candidates = runtimes.filter((runtime) => runtime.status === "connected" &&
82
+ (selectorSessionId === undefined || runtimeMatchesSession(runtime, selectorSessionId)) &&
83
+ (selectorUrl === undefined || normalizeOpenRuntimeUrlForMatch(runtime.url) === selectorUrl));
84
+ if (candidates.length === 0) {
85
+ throw new Error(createNoRuntimeMessage(selector));
86
+ }
87
+ return candidates.sort((left, right) => right.lastSeenAt - left.lastSeenAt)[0];
88
+ }
89
+ function runtimeMatchesSession(runtime, sessionId) {
90
+ return runtime.sessionId === sessionId || getOpenRuntimeSessionIdFromUrl(runtime.url) === sessionId;
91
+ }
92
+ function getOpenRuntimeSessionIdFromUrl(input) {
93
+ if (input === undefined)
94
+ return undefined;
95
+ try {
96
+ const sessionId = new URL(input).searchParams.get(OPEN_RUNTIME_SESSION_QUERY_PARAM);
97
+ return sessionId === null || sessionId.length === 0 ? undefined : sessionId;
98
+ }
99
+ catch {
100
+ return undefined;
101
+ }
102
+ }
103
+ function createNoRuntimeMessage(selector) {
104
+ const conditions = [
105
+ selector.sessionId === undefined ? undefined : `session "${selector.sessionId}"`,
106
+ selector.url === undefined ? undefined : `URL "${selector.url}"`
107
+ ].filter((condition) => condition !== undefined);
108
+ if (conditions.length === 0)
109
+ return "No connected runtime was found.";
110
+ return `No connected runtime matched ${conditions.join(" and ")}.`;
111
+ }
112
+ export function normalizeBridgeUrl(input) {
113
+ const bridgeUrl = input ?? "http://localhost:17321";
114
+ return bridgeUrl.endsWith("/") ? bridgeUrl.slice(0, -1) : bridgeUrl;
115
+ }
116
+ export async function requestJson(fetcher, url, init) {
117
+ const response = await fetcher(url, init);
118
+ const body = await response.text();
119
+ const parsed = body.length === 0 ? undefined : JSON.parse(body);
120
+ if (!response.ok) {
121
+ const message = getErrorMessage(parsed) ?? `Bridge request failed with status ${response.status}.`;
122
+ throw new Error(message);
123
+ }
124
+ return parsed;
125
+ }
126
+ function getErrorMessage(value) {
127
+ if (value === null || typeof value !== "object")
128
+ return undefined;
129
+ const error = value.error;
130
+ return typeof error?.message === "string" ? error.message : undefined;
131
+ }
132
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type OpenRuntimeCommandSkill } from "./command-skill.js";
2
+ import type { CliCommandReference } from "./help.js";
3
+ import type { CliExtensionRunOptions } from "./index.js";
4
+ export declare const OPENRUNTIME_COMMAND_SCHEMA_VERSION = 1;
5
+ export interface OpenRuntimeCommandDefinition {
6
+ schemaVersion: typeof OPENRUNTIME_COMMAND_SCHEMA_VERSION;
7
+ name: string;
8
+ displayName?: string;
9
+ description?: string;
10
+ skill?: OpenRuntimeCommandSkill;
11
+ commandReferences?: readonly CliCommandReference[];
12
+ run(options: CliExtensionRunOptions): Promise<number>;
13
+ }
14
+ export interface ValidateCommandOptions {
15
+ path?: string;
16
+ }
17
+ export declare function defineCommand(command: OpenRuntimeCommandDefinition): OpenRuntimeCommandDefinition;
18
+ export declare function validateCommand(value: unknown, options?: ValidateCommandOptions): OpenRuntimeCommandDefinition;
19
+ //# sourceMappingURL=command-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-definition.d.ts","sourceRoot":"","sources":["../src/command-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,OAAO,kCAAkC,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,iBAAiB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,GAAG,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,4BAA4B,GAAG,4BAA4B,CAEjG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,sBAA2B,GAAG,4BAA4B,CAmClH"}
@@ -0,0 +1,42 @@
1
+ import { validateCommandSkill } from "./command-skill.js";
2
+ export const OPENRUNTIME_COMMAND_SCHEMA_VERSION = 1;
3
+ export function defineCommand(command) {
4
+ return validateCommand(command);
5
+ }
6
+ export function validateCommand(value, options = {}) {
7
+ if (typeof value !== "object" || value === null) {
8
+ throw new Error(createValidationMessage("Command must default-export an object.", options));
9
+ }
10
+ const candidate = value;
11
+ if (candidate.schemaVersion !== OPENRUNTIME_COMMAND_SCHEMA_VERSION) {
12
+ throw new Error(`Command schemaVersion must be ${OPENRUNTIME_COMMAND_SCHEMA_VERSION}.`);
13
+ }
14
+ if (typeof candidate.name !== "string" || candidate.name.length === 0) {
15
+ throw new Error("Command name must be a non-empty string.");
16
+ }
17
+ if (!/^[a-z][a-z0-9-]*$/.test(candidate.name)) {
18
+ throw new Error(`Command name "${candidate.name}" must match /^[a-z][a-z0-9-]*$/.`);
19
+ }
20
+ if (typeof candidate.run !== "function") {
21
+ throw new Error(`Command "${candidate.name}" must export a run(options) function.`);
22
+ }
23
+ if (candidate.commandReferences !== undefined && !Array.isArray(candidate.commandReferences)) {
24
+ throw new Error(`Command "${candidate.name}" commandReferences must be an array.`);
25
+ }
26
+ const skill = candidate.skill === undefined
27
+ ? undefined
28
+ : validateCommandSkill(candidate.skill, candidate.name);
29
+ return {
30
+ schemaVersion: candidate.schemaVersion,
31
+ name: candidate.name,
32
+ ...(candidate.displayName === undefined ? {} : { displayName: candidate.displayName }),
33
+ ...(candidate.description === undefined ? {} : { description: candidate.description }),
34
+ ...(skill === undefined ? {} : { skill }),
35
+ ...(candidate.commandReferences === undefined ? {} : { commandReferences: candidate.commandReferences }),
36
+ run: async (runOptions) => await candidate.run(runOptions)
37
+ };
38
+ }
39
+ function createValidationMessage(message, options) {
40
+ return options.path === undefined ? message : `${message} ${options.path}`;
41
+ }
42
+ //# sourceMappingURL=command-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-definition.js","sourceRoot":"","sources":["../src/command-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAgC,MAAM,oBAAoB,CAAC;AAIxF,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAgBpD,MAAM,UAAU,aAAa,CAAC,OAAqC;IACjE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,UAAkC,EAAE;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,SAAS,GAAG,KAA8C,CAAC;IACjE,IAAI,SAAS,CAAC,aAAa,KAAK,kCAAkC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,iCAAiC,kCAAkC,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,CAAC,IAAI,mCAAmC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,CAAC,IAAI,wCAAwC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,SAAS,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,CAAC,IAAI,uCAAuC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS;QACzC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAE1D,OAAO;QACL,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,GAAG,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;QACtF,GAAG,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;QACtF,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACxG,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,GAAI,CAAC,UAAU,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe,EAAE,OAA+B;IAC/E,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface OpenRuntimeCommandSkill {
2
+ path: string;
3
+ }
4
+ export declare function validateCommandSkill(value: unknown, commandName: string): OpenRuntimeCommandSkill;
5
+ //# sourceMappingURL=command-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-skill.d.ts","sourceRoot":"","sources":["../src/command-skill.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAsBjG"}
@@ -0,0 +1,25 @@
1
+ import { accessSync, constants, existsSync, statSync } from "node:fs";
2
+ import { basename, isAbsolute } from "node:path";
3
+ export function validateCommandSkill(value, commandName) {
4
+ if (typeof value !== "object" || value === null) {
5
+ throw new Error(`Command "${commandName}" skill must be an object.`);
6
+ }
7
+ const path = value.path;
8
+ if (typeof path !== "string" || path.length === 0 || !isAbsolute(path) || basename(path) !== "SKILL.md") {
9
+ throw new Error(`Command "${commandName}" skill.path must be an absolute path to SKILL.md.`);
10
+ }
11
+ if (!existsSync(path)) {
12
+ throw new Error(`Command "${commandName}" skill does not exist: ${path}`);
13
+ }
14
+ if (!statSync(path).isFile()) {
15
+ throw new Error(`Command "${commandName}" skill must point to a file: ${path}`);
16
+ }
17
+ try {
18
+ accessSync(path, constants.R_OK);
19
+ }
20
+ catch {
21
+ throw new Error(`Command "${commandName}" skill is not readable: ${path}`);
22
+ }
23
+ return { path };
24
+ }
25
+ //# sourceMappingURL=command-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-skill.js","sourceRoot":"","sources":["../src/command-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAMjD,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,WAAmB;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,4BAA4B,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAI,KAA0C,CAAC,IAAI,CAAC;IAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,oDAAoD,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,2BAA2B,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isEntryPoint(entry: string | undefined, moduleUrl: string): boolean;
2
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAWlF"}
package/dist/entry.js ADDED
@@ -0,0 +1,16 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
3
+ export function isEntryPoint(entry, moduleUrl) {
4
+ if (entry === undefined)
5
+ return false;
6
+ try {
7
+ const entryUrl = pathToFileURL(realpathSync(entry)).href;
8
+ const modulePath = fileURLToPath(moduleUrl);
9
+ const moduleRealUrl = pathToFileURL(realpathSync(modulePath)).href;
10
+ return entryUrl === moduleRealUrl;
11
+ }
12
+ catch {
13
+ return moduleUrl === pathToFileURL(entry).href;
14
+ }
15
+ }
16
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../src/entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,UAAU,YAAY,CAAC,KAAyB,EAAE,SAAiB;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,OAAO,QAAQ,KAAK,aAAa,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { type RuntimeDataCondition, type RuntimeSnapshot, type RuntimeTargetDescriptor } from "@openruntime/core";
2
+ import { type BrowserRunner } from "./browser.js";
3
+ import { type BridgeStarter, type BridgeStateStore } from "./bridge-process.js";
4
+ import { type Fetcher, type RuntimeResourceResult } from "./client.js";
5
+ import { type ParsedCliArgs } from "./args.js";
6
+ import type { CliOperationLogEntry } from "./operation-log.js";
7
+ export type OpenRuntimeQueryValue = string | number | boolean | null | undefined | readonly (string | number | boolean | null | undefined)[];
8
+ export type OpenRuntimeResourceQuery = Record<string, OpenRuntimeQueryValue>;
9
+ export interface OpenRuntimeWaitOptions {
10
+ timeout?: number;
11
+ where?: RuntimeDataCondition[];
12
+ }
13
+ export interface OpenRuntimeInputOptionsRequest {
14
+ payload?: Record<string, unknown>;
15
+ timeout?: number;
16
+ }
17
+ export interface OpenRuntimeBrowserScreenshotOptions {
18
+ fullPage?: boolean;
19
+ }
20
+ export interface OpenRuntimeBrowserNetworkOptions {
21
+ url?: string;
22
+ }
23
+ export type OpenRuntimeBrowserConsoleLevel = "log" | "info" | "warn" | "error";
24
+ export interface OpenRuntimeBrowserConsoleOptions {
25
+ levels?: OpenRuntimeBrowserConsoleLevel[] | Set<OpenRuntimeBrowserConsoleLevel>;
26
+ query?: string;
27
+ limit?: number;
28
+ }
29
+ export interface OpenRuntimeBrowserConsoleEntry {
30
+ level: OpenRuntimeBrowserConsoleLevel;
31
+ args: string;
32
+ timestamp?: number;
33
+ }
34
+ export interface OpenRuntimeBrowserConsoleResult {
35
+ entries: OpenRuntimeBrowserConsoleEntry[];
36
+ summary: {
37
+ total: number;
38
+ log: number;
39
+ info: number;
40
+ warn: number;
41
+ error: number;
42
+ };
43
+ }
44
+ export interface OpenRuntimeBrowserWaitEvalResult {
45
+ success: boolean;
46
+ condition: {
47
+ script: string;
48
+ };
49
+ value?: unknown;
50
+ reason?: string;
51
+ }
52
+ export interface OpenRuntimeBrowserApi {
53
+ pageSnapshot<T = unknown>(): Promise<T>;
54
+ click(target: string): Promise<string>;
55
+ fill(target: string, value: string): Promise<string>;
56
+ eval<T = unknown>(script: string): Promise<T>;
57
+ evalFile<T = unknown>(path: string): Promise<T>;
58
+ waitEval(script: string, options?: {
59
+ timeout?: number;
60
+ }): Promise<OpenRuntimeBrowserWaitEvalResult>;
61
+ getWindow<T = unknown>(path: string): Promise<T>;
62
+ screenshot(name?: string, options?: OpenRuntimeBrowserScreenshotOptions): Promise<string>;
63
+ network(options?: OpenRuntimeBrowserNetworkOptions): Promise<string>;
64
+ console(options?: OpenRuntimeBrowserConsoleOptions): Promise<OpenRuntimeBrowserConsoleResult>;
65
+ }
66
+ export interface OpenRuntimeExtensionApi {
67
+ targets<T = RuntimeTargetDescriptor[]>(query?: OpenRuntimeResourceQuery): Promise<RuntimeResourceResult<T>>;
68
+ snapshot<T = RuntimeSnapshot>(query?: OpenRuntimeResourceQuery): Promise<RuntimeResourceResult<T>>;
69
+ events<T = unknown>(query?: OpenRuntimeResourceQuery): Promise<RuntimeResourceResult<T>>;
70
+ actions<T = unknown>(query?: OpenRuntimeResourceQuery): Promise<RuntimeResourceResult<T>>;
71
+ inputOptions<T = unknown>(actionName: string, inputName: string, options?: OpenRuntimeInputOptionsRequest): Promise<RuntimeResourceResult<T>>;
72
+ runAction<T = unknown>(actionName: string, payload?: Record<string, unknown>): Promise<RuntimeResourceResult<T>>;
73
+ waitFor<T = unknown>(targetId: string, status: string, options?: OpenRuntimeWaitOptions): Promise<RuntimeResourceResult<T>>;
74
+ browser: OpenRuntimeBrowserApi;
75
+ }
76
+ export interface CreateOpenRuntimeExtensionApiOptions {
77
+ args: ParsedCliArgs;
78
+ fetcher: Fetcher;
79
+ browserRunner: BrowserRunner;
80
+ bridgeStarter: BridgeStarter;
81
+ bridgeStateStore?: BridgeStateStore;
82
+ openContext?: CliOperationLogEntry;
83
+ }
84
+ export declare function createOpenRuntimeExtensionApi(options: CreateOpenRuntimeExtensionApiOptions): OpenRuntimeExtensionApi;
85
+ //# sourceMappingURL=extension-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-api.d.ts","sourceRoot":"","sources":["../src/extension-api.ts"],"names":[],"mappings":"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"}